[InstCombine] Signed saturation patterns
[llvm-complete.git] / test / CodeGen / Thumb / cmp-add-fold.ll
blobaa61b0825b0ccb61041d9a9781a594ad032af1a1
1 ; RUN: llc -mtriple=thumbv6m-eabi -verify-machineinstrs < %s | FileCheck --check-prefix=CHECK --check-prefix=T1 %s
2 ; RUN: llc -mtriple=thumbv7m-eabi -verify-machineinstrs < %s | FileCheck --check-prefix=CHECK --check-prefix=T2 %s
4 ; CHECK-LABEL: addri1:
5 ; T1: adds r0, r0, #3
6 ; T1-NEXT: b{{eq|ne}}
7 ; T2: adds r0, #3
8 ; T2-NOT: cmp
9 define i32 @addri1(i32 %a, i32 %b) {
10   %c = add i32 %a, 3
11   %d = icmp eq i32 %c, 0
12   br i1 %d, label %true, label %false
14 true:
15   ret i32 4
16 false:
17   ret i32 5
20 ; CHECK-LABEL: addri2:
21 ; CHECK: adds r0, #254
22 ; T1-NEXT: b{{eq|ne}}
23 ; T2-NOT: cmp
24 define i32 @addri2(i32 %a, i32 %b) {
25   %c = add i32 %a, 254
26   %d = icmp eq i32 %c, 0
27   br i1 %d, label %true, label %false
29 true:
30   ret i32 4
31 false:
32   ret i32 5