1 ; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py
2 ; RUN: llc < %s -mtriple thumbv7-eabi | FileCheck %s -check-prefix=T2
3 ; RUN: llc < %s -mtriple thumbv6m-eabi | FileCheck %s -check-prefix=T1
4 ; <rdar://problem/7569620>
6 define i32 @compare_i_gt(i32 %a) {
7 ; T2-LABEL: compare_i_gt:
8 ; T2: @ %bb.0: @ %entry
9 ; T2-NEXT: movs r1, #24
10 ; T2-NEXT: cmn.w r0, #78
12 ; T2-NEXT: movgt r1, #42
16 ; T1-LABEL: compare_i_gt:
17 ; T1: @ %bb.0: @ %entry
19 ; T1-NEXT: movs r0, #77
20 ; T1-NEXT: mvns r3, r0
21 ; T1-NEXT: movs r0, #42
22 ; T1-NEXT: movs r2, #24
24 ; T1-NEXT: bgt .LBB0_2
25 ; T1-NEXT: @ %bb.1: @ %entry
27 ; T1-NEXT: .LBB0_2: @ %entry
30 %cmp = icmp sgt i32 %a, -78
31 %ret = select i1 %cmp, i32 42, i32 24
35 define i32 @compare_r_eq(i32 %a, i32 %b) {
36 ; T2-LABEL: compare_r_eq:
37 ; T2: @ %bb.0: @ %entry
38 ; T2-NEXT: movs r2, #24
41 ; T2-NEXT: moveq r2, #42
45 ; T1-LABEL: compare_r_eq:
46 ; T1: @ %bb.0: @ %entry
48 ; T1-NEXT: movs r0, #42
49 ; T1-NEXT: movs r3, #24
51 ; T1-NEXT: beq .LBB1_2
52 ; T1-NEXT: @ %bb.1: @ %entry
54 ; T1-NEXT: .LBB1_2: @ %entry
57 %sub = sub nsw i32 0, %b
58 %cmp = icmp eq i32 %a, %sub
59 %ret = select i1 %cmp, i32 42, i32 24