blob: 8ff931a4490dcf5d49b9445d6baf10483a969053 [file] [log] [blame]
Saleem Abdulrasool905b6d192014-04-03 23:47:24 +00001; RUN: llc -mtriple=thumb-eabi -mcpu=arm1156t2-s -mattr=+thumb2 %s -o - | FileCheck %s
Anton Korobeynikov02bb33c2009-06-17 18:13:58 +00002
3define i32 @t2ADDrc_255(i32 %lhs) {
Stephen Lind24ab202013-07-14 06:24:09 +00004; CHECK-LABEL: t2ADDrc_255:
Chandler Carrutha6e593b2011-07-02 21:34:52 +00005; CHECK-NOT: bx lr
6; CHECK: add{{.*}} #255
7; CHECK: bx lr
8
Dan Gohmanfb419362010-01-05 17:55:26 +00009 %Rd = add i32 %lhs, 255
Anton Korobeynikov02bb33c2009-06-17 18:13:58 +000010 ret i32 %Rd
11}
12
13define i32 @t2ADDrc_256(i32 %lhs) {
Stephen Lind24ab202013-07-14 06:24:09 +000014; CHECK-LABEL: t2ADDrc_256:
Chandler Carrutha6e593b2011-07-02 21:34:52 +000015; CHECK-NOT: bx lr
16; CHECK: add{{.*}} #256
17; CHECK: bx lr
18
Dan Gohmanfb419362010-01-05 17:55:26 +000019 %Rd = add i32 %lhs, 256
Anton Korobeynikov02bb33c2009-06-17 18:13:58 +000020 ret i32 %Rd
21}
22
23define i32 @t2ADDrc_257(i32 %lhs) {
Stephen Lind24ab202013-07-14 06:24:09 +000024; CHECK-LABEL: t2ADDrc_257:
Chandler Carrutha6e593b2011-07-02 21:34:52 +000025; CHECK-NOT: bx lr
26; CHECK: add{{.*}} #257
27; CHECK: bx lr
28
Dan Gohmanfb419362010-01-05 17:55:26 +000029 %Rd = add i32 %lhs, 257
Anton Korobeynikov02bb33c2009-06-17 18:13:58 +000030 ret i32 %Rd
31}
32
33define i32 @t2ADDrc_4094(i32 %lhs) {
Stephen Lind24ab202013-07-14 06:24:09 +000034; CHECK-LABEL: t2ADDrc_4094:
Chandler Carrutha6e593b2011-07-02 21:34:52 +000035; CHECK-NOT: bx lr
36; CHECK: add{{.*}} #4094
37; CHECK: bx lr
38
Dan Gohmanfb419362010-01-05 17:55:26 +000039 %Rd = add i32 %lhs, 4094
Anton Korobeynikov02bb33c2009-06-17 18:13:58 +000040 ret i32 %Rd
41}
42
43define i32 @t2ADDrc_4095(i32 %lhs) {
Stephen Lind24ab202013-07-14 06:24:09 +000044; CHECK-LABEL: t2ADDrc_4095:
Chandler Carrutha6e593b2011-07-02 21:34:52 +000045; CHECK-NOT: bx lr
46; CHECK: add{{.*}} #4095
47; CHECK: bx lr
48
Dan Gohmanfb419362010-01-05 17:55:26 +000049 %Rd = add i32 %lhs, 4095
Anton Korobeynikov02bb33c2009-06-17 18:13:58 +000050 ret i32 %Rd
51}
52
53define i32 @t2ADDrc_4096(i32 %lhs) {
Stephen Lind24ab202013-07-14 06:24:09 +000054; CHECK-LABEL: t2ADDrc_4096:
Chandler Carrutha6e593b2011-07-02 21:34:52 +000055; CHECK-NOT: bx lr
56; CHECK: add{{.*}} #4096
57; CHECK: bx lr
58
Dan Gohmanfb419362010-01-05 17:55:26 +000059 %Rd = add i32 %lhs, 4096
Anton Korobeynikov02bb33c2009-06-17 18:13:58 +000060 ret i32 %Rd
61}
62
63define i32 @t2ADDrr(i32 %lhs, i32 %rhs) {
Stephen Lind24ab202013-07-14 06:24:09 +000064; CHECK-LABEL: t2ADDrr:
Chandler Carrutha6e593b2011-07-02 21:34:52 +000065; CHECK-NOT: bx lr
66; CHECK: add
67; CHECK: bx lr
68
Dan Gohmanfb419362010-01-05 17:55:26 +000069 %Rd = add i32 %lhs, %rhs
Anton Korobeynikov02bb33c2009-06-17 18:13:58 +000070 ret i32 %Rd
71}
72
73define i32 @t2ADDrs(i32 %lhs, i32 %rhs) {
Stephen Lind24ab202013-07-14 06:24:09 +000074; CHECK-LABEL: t2ADDrs:
Chandler Carrutha6e593b2011-07-02 21:34:52 +000075; CHECK-NOT: bx lr
76; CHECK: add{{.*}} lsl #8
77; CHECK: bx lr
78
Anton Korobeynikov02bb33c2009-06-17 18:13:58 +000079 %tmp = shl i32 %rhs, 8
Dan Gohmanfb419362010-01-05 17:55:26 +000080 %Rd = add i32 %lhs, %tmp
Anton Korobeynikov02bb33c2009-06-17 18:13:58 +000081 ret i32 %Rd
82}
83