blob: eeaaa7fbdf918a2fc0b489ddc822d3d228067621 [file] [log] [blame]
Edward O'Callaghanc5a7ee52009-11-22 15:18:27 +00001; RUN: llc < %s -march=thumb -mattr=+thumb2 | FileCheck %s
David Goodwin8bdcbb32009-06-29 15:33:01 +00002
3define i1 @f1(i32 %a, i32 %b) {
4 %nb = sub i32 0, %b
5 %tmp = icmp ne i32 %a, %nb
6 ret i1 %tmp
7}
Edward O'Callaghanc5a7ee52009-11-22 15:18:27 +00008; CHECK: f1:
9; CHECK: cmn.w r0, r1
David Goodwin8bdcbb32009-06-29 15:33:01 +000010
11define i1 @f2(i32 %a, i32 %b) {
12 %nb = sub i32 0, %b
13 %tmp = icmp ne i32 %nb, %a
14 ret i1 %tmp
15}
Edward O'Callaghanc5a7ee52009-11-22 15:18:27 +000016; CHECK: f2:
17; CHECK: cmn.w r0, r1
David Goodwin8bdcbb32009-06-29 15:33:01 +000018
19define i1 @f3(i32 %a, i32 %b) {
20 %nb = sub i32 0, %b
21 %tmp = icmp eq i32 %a, %nb
22 ret i1 %tmp
23}
Edward O'Callaghanc5a7ee52009-11-22 15:18:27 +000024; CHECK: f3:
25; CHECK: cmn.w r0, r1
David Goodwin8bdcbb32009-06-29 15:33:01 +000026
27define i1 @f4(i32 %a, i32 %b) {
28 %nb = sub i32 0, %b
29 %tmp = icmp eq i32 %nb, %a
30 ret i1 %tmp
31}
Edward O'Callaghanc5a7ee52009-11-22 15:18:27 +000032; CHECK: f4:
33; CHECK: cmn.w r0, r1
David Goodwin412a6f22009-06-30 01:02:20 +000034
35define i1 @f5(i32 %a, i32 %b) {
36 %tmp = shl i32 %b, 5
37 %nb = sub i32 0, %tmp
38 %tmp1 = icmp eq i32 %nb, %a
39 ret i1 %tmp1
40}
Edward O'Callaghanc5a7ee52009-11-22 15:18:27 +000041; CHECK: f5:
42; CHECK: cmn.w r0, r1, lsl #5
David Goodwin412a6f22009-06-30 01:02:20 +000043
44define i1 @f6(i32 %a, i32 %b) {
45 %tmp = lshr i32 %b, 6
46 %nb = sub i32 0, %tmp
47 %tmp1 = icmp ne i32 %nb, %a
48 ret i1 %tmp1
49}
Edward O'Callaghanc5a7ee52009-11-22 15:18:27 +000050; CHECK: f6:
51; CHECK: cmn.w r0, r1, lsr #6
David Goodwin412a6f22009-06-30 01:02:20 +000052
53define i1 @f7(i32 %a, i32 %b) {
54 %tmp = ashr i32 %b, 7
55 %nb = sub i32 0, %tmp
56 %tmp1 = icmp eq i32 %a, %nb
57 ret i1 %tmp1
58}
Edward O'Callaghanc5a7ee52009-11-22 15:18:27 +000059; CHECK: f7:
60; CHECK: cmn.w r0, r1, asr #7
David Goodwin412a6f22009-06-30 01:02:20 +000061
62define i1 @f8(i32 %a, i32 %b) {
63 %l8 = shl i32 %a, 24
64 %r8 = lshr i32 %a, 8
65 %tmp = or i32 %l8, %r8
66 %nb = sub i32 0, %tmp
67 %tmp1 = icmp ne i32 %a, %nb
68 ret i1 %tmp1
69}
Edward O'Callaghanc5a7ee52009-11-22 15:18:27 +000070; CHECK: f8:
71; CHECK: cmn.w r0, r0, ror #8
72