[InstCombine] Signed saturation patterns
[llvm-core.git] / test / CodeGen / Thumb2 / thumb2-cmn2.ll
blob83195aeb0bc30dbac476e92d87aa796dbb189b49
1 ; RUN: llc -mtriple=thumb-eabi -mcpu=arm1156t2-s -mattr=+thumb2 %s -o - | FileCheck %s
3 ; -0x000000bb = 4294967109
4 define i32 @f1(i32 %a) {
5 ; CHECK-LABEL: f1:
6 ; CHECK: adds {{r.*}}, #187
7     %tmp = icmp ne i32 %a, 4294967109
8     %ret = select i1 %tmp, i32 42, i32 24
9     ret i32 %ret
12 ; -0x00aa00aa = 4283826006
13 define i32 @f2(i32 %a) {
14 ; CHECK-LABEL: f2:
15 ; CHECK: cmn.w {{r.*}}, #11141290
16     %tmp = icmp eq i32 %a, 4283826006
17     %ret = select i1 %tmp, i32 42, i32 24
18     ret i32 %ret
21 ; -0xcc00cc00 = 872363008
22 define i32 @f3(i32 %a) {
23 ; CHECK-LABEL: f3:
24 ; CHECK: cmn.w {{r.*}}, #-872363008
25     %tmp = icmp ne i32 %a, 872363008
26     %ret = select i1 %tmp, i32 42, i32 24
27     ret i32 %ret
30 ; -0x00110000 = 4293853184
31 define i32 @f4(i32 %a) {
32 ; CHECK-LABEL: f4:
33 ; CHECK: cmn.w {{r.*}}, #1114112
34     %tmp = icmp eq i32 %a, 4293853184
35     %ret = select i1 %tmp, i32 42, i32 24
36     ret i32 %ret