[ARM] Generate 8.1-m CSINC, CSNEG and CSINV instructions.
[llvm-core.git] / test / CodeGen / Thumb2 / thumb2-add.ll
blob8ff931a4490dcf5d49b9445d6baf10483a969053
1 ; RUN: llc -mtriple=thumb-eabi -mcpu=arm1156t2-s -mattr=+thumb2 %s -o - | FileCheck %s
3 define i32 @t2ADDrc_255(i32 %lhs) {
4 ; CHECK-LABEL: t2ADDrc_255:
5 ; CHECK-NOT: bx lr
6 ; CHECK: add{{.*}} #255
7 ; CHECK: bx lr
9     %Rd = add i32 %lhs, 255
10     ret i32 %Rd
13 define i32 @t2ADDrc_256(i32 %lhs) {
14 ; CHECK-LABEL: t2ADDrc_256:
15 ; CHECK-NOT: bx lr
16 ; CHECK: add{{.*}} #256
17 ; CHECK: bx lr
19     %Rd = add i32 %lhs, 256
20     ret i32 %Rd
23 define i32 @t2ADDrc_257(i32 %lhs) {
24 ; CHECK-LABEL: t2ADDrc_257:
25 ; CHECK-NOT: bx lr
26 ; CHECK: add{{.*}} #257
27 ; CHECK: bx lr
29     %Rd = add i32 %lhs, 257
30     ret i32 %Rd
33 define i32 @t2ADDrc_4094(i32 %lhs) {
34 ; CHECK-LABEL: t2ADDrc_4094:
35 ; CHECK-NOT: bx lr
36 ; CHECK: add{{.*}} #4094
37 ; CHECK: bx lr
39     %Rd = add i32 %lhs, 4094
40     ret i32 %Rd
43 define i32 @t2ADDrc_4095(i32 %lhs) {
44 ; CHECK-LABEL: t2ADDrc_4095:
45 ; CHECK-NOT: bx lr
46 ; CHECK: add{{.*}} #4095
47 ; CHECK: bx lr
49     %Rd = add i32 %lhs, 4095
50     ret i32 %Rd
53 define i32 @t2ADDrc_4096(i32 %lhs) {
54 ; CHECK-LABEL: t2ADDrc_4096:
55 ; CHECK-NOT: bx lr
56 ; CHECK: add{{.*}} #4096
57 ; CHECK: bx lr
59     %Rd = add i32 %lhs, 4096
60     ret i32 %Rd
63 define i32 @t2ADDrr(i32 %lhs, i32 %rhs) {
64 ; CHECK-LABEL: t2ADDrr:
65 ; CHECK-NOT: bx lr
66 ; CHECK: add
67 ; CHECK: bx lr
69     %Rd = add i32 %lhs, %rhs
70     ret i32 %Rd
73 define i32 @t2ADDrs(i32 %lhs, i32 %rhs) {
74 ; CHECK-LABEL: t2ADDrs:
75 ; CHECK-NOT: bx lr
76 ; CHECK: add{{.*}} lsl #8
77 ; CHECK: bx lr
79     %tmp = shl i32 %rhs, 8
80     %Rd = add i32 %lhs, %tmp
81     ret i32 %Rd