[InstCombine] Signed saturation patterns
[llvm-core.git] / test / CodeGen / Thumb2 / thumb2-orn2.ll
blobc8347df2d8a5bc390e345960c92756d86fe2488e
1 ; RUN: llc -mtriple=thumb-eabi -mcpu=arm1156t2-s -mattr=+thumb2 %s -o - | FileCheck %s
3 ; 0x000000bb = 187
4 define i32 @f1(i32 %a) {
5     %tmp1 = xor i32 4294967295, 187
6     %tmp2 = or i32 %a, %tmp1
7     ret i32 %tmp2
9 ; CHECK-LABEL: f1:
10 ; CHECK:        orn     r0, r0, #187
12 ; 0x00aa00aa = 11141290
13 define i32 @f2(i32 %a) {
14     %tmp1 = xor i32 4294967295, 11141290 
15     %tmp2 = or i32 %a, %tmp1
16     ret i32 %tmp2
18 ; CHECK-LABEL: f2:
19 ; CHECK:        orn     r0, r0, #11141290
21 ; 0xcc00cc00 = 3422604288
22 define i32 @f3(i32 %a) {
23     %tmp1 = xor i32 4294967295, 3422604288
24     %tmp2 = or i32 %a, %tmp1
25     ret i32 %tmp2
27 ; CHECK-LABEL: f3:
28 ; CHECK:        orn     r0, r0, #-872363008
30 ; 0x00110000 = 1114112
31 define i32 @f5(i32 %a) {
32     %tmp1 = xor i32 4294967295, 1114112
33     %tmp2 = or i32 %a, %tmp1
34     ret i32 %tmp2
36 ; CHECK-LABEL: f5:
37 ; CHECK:        orn     r0, r0, #1114112