Home | History | Annotate | Download | only in Thumb2
      1 ; RUN: llc -mtriple=thumb-eabi -mcpu=arm1156t2-s -mattr=+thumb2 %s -o - | FileCheck %s
      2 
      3 define i32 @t1(i32 %a, i32 %b, i32 %c) nounwind {
      4 ; CHECK: t1
      5 ; CHECK: mvn r0, #-2147483648
      6 ; CHECK: cmp r2, #10
      7 ; CHECK: it  le
      8 ; CHECK: addle r1, r0
      9 ; CHECK: mov r0, r1
     10         %tmp1 = icmp sgt i32 %c, 10
     11         %tmp2 = select i1 %tmp1, i32 0, i32 2147483647
     12         %tmp3 = add i32 %tmp2, %b
     13         ret i32 %tmp3
     14 }
     15 
     16 define i32 @t2(i32 %a, i32 %b, i32 %c) nounwind {
     17 ; CHECK: t2
     18 ; CHECK: cmp r2, #10
     19 ; CHECK: it  le
     20 ; CHECK: addle.w r1, r1, #-2147483648
     21 ; CHECK: mov r0, r1
     22 
     23         %tmp1 = icmp sgt i32 %c, 10
     24         %tmp2 = select i1 %tmp1, i32 0, i32 2147483648
     25         %tmp3 = add i32 %tmp2, %b
     26         ret i32 %tmp3
     27 }
     28 
     29 define i32 @t3(i32 %a, i32 %b, i32 %c, i32 %d) nounwind {
     30 ; CHECK: t3
     31 ; CHECK: cmp r2, #10
     32 ; CHECK: it  le
     33 ; CHECK: suble r1, #10
     34 ; CHECK: mov r0, r1
     35         %tmp1 = icmp sgt i32 %c, 10
     36         %tmp2 = select i1 %tmp1, i32 0, i32 10
     37         %tmp3 = sub i32 %b, %tmp2
     38         ret i32 %tmp3
     39 }
     40