blob: 3baa103e3d5df10842726970798c2246c6fb1469 [file] [log] [blame]
Jakob Stoklund Olesene7fdef42012-08-20 21:39:52 +00001; RUN: llc < %s -mtriple=armv4t-unknown-linux-gnueabi -disable-cgp-branch-opts -verify-machineinstrs | FileCheck %s
Rafael Espindola7246d332006-09-21 11:29:52 +00002
Tanya Lattner6263f942008-02-17 20:02:20 +00003define i32 @f1() {
Bob Wilson13e80bd2009-10-27 05:50:28 +00004; CHECK: f1
5; CHECK: mov r0, #0
Tanya Lattner6263f942008-02-17 20:02:20 +00006 ret i32 0
Rafael Espindola7246d332006-09-21 11:29:52 +00007}
8
Tanya Lattner6263f942008-02-17 20:02:20 +00009define i32 @f2() {
Bob Wilson13e80bd2009-10-27 05:50:28 +000010; CHECK: f2
11; CHECK: mov r0, #255
Tanya Lattner6263f942008-02-17 20:02:20 +000012 ret i32 255
Rafael Espindola7246d332006-09-21 11:29:52 +000013}
14
Tanya Lattner6263f942008-02-17 20:02:20 +000015define i32 @f3() {
Bob Wilson13e80bd2009-10-27 05:50:28 +000016; CHECK: f3
Jim Grosbach589130f2011-07-11 16:48:36 +000017; CHECK: mov r0, #256
Tanya Lattner6263f942008-02-17 20:02:20 +000018 ret i32 256
Rafael Espindola7246d332006-09-21 11:29:52 +000019}
20
Tanya Lattner6263f942008-02-17 20:02:20 +000021define i32 @f4() {
Bob Wilson13e80bd2009-10-27 05:50:28 +000022; CHECK: f4
Jim Grosbach589130f2011-07-11 16:48:36 +000023; CHECK: orr{{.*}}#256
Tanya Lattner6263f942008-02-17 20:02:20 +000024 ret i32 257
Rafael Espindola7246d332006-09-21 11:29:52 +000025}
26
Tanya Lattner6263f942008-02-17 20:02:20 +000027define i32 @f5() {
Bob Wilson13e80bd2009-10-27 05:50:28 +000028; CHECK: f5
Jim Grosbach589130f2011-07-11 16:48:36 +000029; CHECK: mov r0, #-1073741761
Tanya Lattner6263f942008-02-17 20:02:20 +000030 ret i32 -1073741761
Rafael Espindola7246d332006-09-21 11:29:52 +000031}
32
Tanya Lattner6263f942008-02-17 20:02:20 +000033define i32 @f6() {
Bob Wilson13e80bd2009-10-27 05:50:28 +000034; CHECK: f6
Jim Grosbach589130f2011-07-11 16:48:36 +000035; CHECK: mov r0, #1008
Tanya Lattner6263f942008-02-17 20:02:20 +000036 ret i32 1008
Rafael Espindola7246d332006-09-21 11:29:52 +000037}
Rafael Espindola8897a7b2006-12-14 18:58:37 +000038
Tanya Lattner6263f942008-02-17 20:02:20 +000039define void @f7(i32 %a) {
Bob Wilson13e80bd2009-10-27 05:50:28 +000040; CHECK: f7
Jim Grosbach589130f2011-07-11 16:48:36 +000041; CHECK: cmp r0, #65536
Jim Grosbachb2331552010-10-22 23:46:04 +000042 %b = icmp ugt i32 %a, 65536
Tanya Lattner6263f942008-02-17 20:02:20 +000043 br i1 %b, label %r, label %r
Jim Grosbachb2331552010-10-22 23:46:04 +000044r:
Tanya Lattner6263f942008-02-17 20:02:20 +000045 ret void
Rafael Espindola8897a7b2006-12-14 18:58:37 +000046}
Nick Lewycky5b7ac142011-06-22 18:55:03 +000047
Kristof Beyls789efba2012-09-12 11:25:02 +000048define i32 @f8() nounwind {
49; Check that constant propagation through (i32)-1 => (float)Nan => (i32)-1
50; gives expected result
51; CHECK: f8
52; CHECK: mvn r0, #0
53 %tmp0 = bitcast i32 -1 to float
54 %tmp1 = bitcast float %tmp0 to i32
55 ret i32 %tmp1
56}
57
Nick Lewycky5b7ac142011-06-22 18:55:03 +000058%t1 = type { <3 x float>, <3 x float> }
59
60@const1 = global %t1 { <3 x float> zeroinitializer,
61 <3 x float> <float 1.000000e+00,
62 float 2.000000e+00,
63 float 3.000000e+00> }, align 16
64; CHECK: const1
65; CHECK: .zero 16
66; CHECK: float 1.0
67; CHECK: float 2.0
68; CHECK: float 3.0
69; CHECK: .zero 4