1
; RUN: llc < %s -march=thumb -mattr=+thumb2 | FileCheck %s
3
define i32 @f1(i32 %a.s) {
9
%tmp = icmp eq i32 %a.s, 4
10
%tmp1.s = select i1 %tmp, i32 2, i32 3
14
define i32 @f2(i32 %a.s) {
19
%tmp = icmp sgt i32 %a.s, 4
20
%tmp1.s = select i1 %tmp, i32 2, i32 3
24
define i32 @f3(i32 %a.s, i32 %b.s) {
29
%tmp = icmp slt i32 %a.s, %b.s
30
%tmp1.s = select i1 %tmp, i32 2, i32 3
34
define i32 @f4(i32 %a.s, i32 %b.s) {
40
%tmp = icmp sle i32 %a.s, %b.s
41
%tmp1.s = select i1 %tmp, i32 2, i32 3
45
define i32 @f5(i32 %a.u, i32 %b.u) {
50
%tmp = icmp ule i32 %a.u, %b.u
51
%tmp1.s = select i1 %tmp, i32 2, i32 3
55
define i32 @f6(i32 %a.u, i32 %b.u) {
60
%tmp = icmp ugt i32 %a.u, %b.u
61
%tmp1.s = select i1 %tmp, i32 2, i32 3
65
define i32 @f7(i32 %a, i32 %b, i32 %c) {
70
%tmp1 = icmp ugt i32 %a, %b
71
%tmp2 = udiv i32 %c, 3
72
%tmp3 = select i1 %tmp1, i32 %tmp2, i32 3
76
define i32 @f8(i32 %a, i32 %b, i32 %c) {
81
%tmp1 = icmp ult i32 %a, %b
83
%tmp3 = select i1 %tmp1, i32 %tmp2, i32 3
87
define i32 @f9(i32 %a, i32 %b, i32 %c) {
92
%tmp1 = icmp sge i32 %a, %b
93
%tmp2 = shl i32 %c, 10
94
%tmp3 = lshr i32 %c, 22
95
%tmp4 = or i32 %tmp2, %tmp3
96
%tmp5 = select i1 %tmp1, i32 %tmp4, i32 3