blob: b4bb0554208dae8e4b5a9d80433a9be6d0a15113 [file] [log] [blame]
Job Noormane9a1d4c2013-10-15 08:19:39 +00001; RUN: llc < %s | FileCheck %s
2
3target datalayout = "e-p:16:16:16-i8:8:8-i16:16:16-i32:16:32-n8:16-a0:16:16"
4target triple = "msp430---elf"
5
6define void @test() #0 {
7entry:
8; CHECK: test:
9
10; CHECK: call #f_i16
Anton Korobeynikov49045c62018-11-15 12:29:43 +000011; CHECK: mov r12, &g_i16
Job Noormane9a1d4c2013-10-15 08:19:39 +000012 %0 = call i16 @f_i16()
13 store volatile i16 %0, i16* @g_i16
14
15; CHECK: call #f_i32
Anton Korobeynikov49045c62018-11-15 12:29:43 +000016; CHECK: mov r13, &g_i32+2
17; CHECK: mov r12, &g_i32
Job Noormane9a1d4c2013-10-15 08:19:39 +000018 %1 = call i32 @f_i32()
19 store volatile i32 %1, i32* @g_i32
20
21; CHECK: call #f_i64
Anton Korobeynikov49045c62018-11-15 12:29:43 +000022; CHECK: mov r15, &g_i64+6
23; CHECK: mov r14, &g_i64+4
24; CHECK: mov r13, &g_i64+2
25; CHECK: mov r12, &g_i64
Job Noormane9a1d4c2013-10-15 08:19:39 +000026 %2 = call i64 @f_i64()
27 store volatile i64 %2, i64* @g_i64
28
29 ret void
30}
31
32@g_i16 = common global i16 0, align 2
33@g_i32 = common global i32 0, align 2
34@g_i64 = common global i64 0, align 2
35
36define i16 @f_i16() #0 {
37; CHECK: f_i16:
Anton Korobeynikov49045c62018-11-15 12:29:43 +000038; CHECK: mov #1, r12
Job Noormane9a1d4c2013-10-15 08:19:39 +000039; CHECK: ret
40 ret i16 1
41}
42
43define i32 @f_i32() #0 {
44; CHECK: f_i32:
Anton Korobeynikov49045c62018-11-15 12:29:43 +000045; CHECK: mov #772, r12
46; CHECK: mov #258, r13
Job Noormane9a1d4c2013-10-15 08:19:39 +000047; CHECK: ret
48 ret i32 16909060
49}
50
51define i64 @f_i64() #0 {
52; CHECK: f_i64:
Anton Korobeynikov49045c62018-11-15 12:29:43 +000053; CHECK: mov #1800, r12
54; CHECK: mov #1286, r13
55; CHECK: mov #772, r14
56; CHECK: mov #258, r15
Job Noormane9a1d4c2013-10-15 08:19:39 +000057; CHECK: ret
58 ret i64 72623859790382856
59}
60
61attributes #0 = { nounwind "less-precise-fpmad"="false" "no-frame-pointer-elim"="true" "no-frame-pointer-elim-non-leaf"="true" "no-infs-fp-math"="false" "no-nans-fp-math"="false" "unsafe-fp-math"="false" "use-soft-float"="false" }