4
4
define i32 @select_by_icmp_ugt (i32 %t0 , i32 %t1 , i32 %t2 , i32 %t3 ) {
5
5
; CHECK-LABEL: select_by_icmp_ugt:
6
6
; CHECK: # %bb.0:
7
- ; CHECK-NEXT: addi16 a2, 10
8
7
; CHECK-NEXT: cmphs16 a1, a0
9
- ; CHECK-NEXT: movf32 a3, a2
8
+ ; CHECK-NEXT: incf32 a3, a2, 10
10
9
; CHECK-NEXT: mov16 a0, a3
11
10
; CHECK-NEXT: rts16
12
11
%t4 = icmp ugt i32 %t0 , %t1
@@ -18,9 +17,8 @@ define i32 @select_by_icmp_ugt(i32 %t0, i32 %t1, i32 %t2, i32 %t3) {
18
17
define i32 @select_by_icmp_sgt (i32 %t0 , i32 %t1 , i32 %t2 , i32 %t3 ) {
19
18
; CHECK-LABEL: select_by_icmp_sgt:
20
19
; CHECK: # %bb.0:
21
- ; CHECK-NEXT: addi16 a2, 10
22
20
; CHECK-NEXT: cmplt16 a1, a0
23
- ; CHECK-NEXT: movt32 a3, a2
21
+ ; CHECK-NEXT: inct32 a3, a2, 10
24
22
; CHECK-NEXT: mov16 a0, a3
25
23
; CHECK-NEXT: rts16
26
24
%t4 = icmp sgt i32 %t0 , %t1
@@ -32,9 +30,8 @@ define i32 @select_by_icmp_sgt(i32 %t0, i32 %t1, i32 %t2, i32 %t3) {
32
30
define i32 @select_by_icmp_uge (i32 %t0 , i32 %t1 , i32 %t2 , i32 %t3 ) {
33
31
; CHECK-LABEL: select_by_icmp_uge:
34
32
; CHECK: # %bb.0:
35
- ; CHECK-NEXT: addi16 a2, 10
36
33
; CHECK-NEXT: cmphs16 a0, a1
37
- ; CHECK-NEXT: movt32 a3, a2
34
+ ; CHECK-NEXT: inct32 a3, a2, 10
38
35
; CHECK-NEXT: mov16 a0, a3
39
36
; CHECK-NEXT: rts16
40
37
%t4 = icmp uge i32 %t0 , %t1
@@ -46,9 +43,8 @@ define i32 @select_by_icmp_uge(i32 %t0, i32 %t1, i32 %t2, i32 %t3) {
46
43
define i32 @select_by_icmp_sge (i32 %t0 , i32 %t1 , i32 %t2 , i32 %t3 ) {
47
44
; CHECK-LABEL: select_by_icmp_sge:
48
45
; CHECK: # %bb.0:
49
- ; CHECK-NEXT: addi16 a2, 10
50
46
; CHECK-NEXT: cmplt16 a0, a1
51
- ; CHECK-NEXT: movf32 a3, a2
47
+ ; CHECK-NEXT: incf32 a3, a2, 10
52
48
; CHECK-NEXT: mov16 a0, a3
53
49
; CHECK-NEXT: rts16
54
50
%t4 = icmp sge i32 %t0 , %t1
@@ -60,9 +56,8 @@ define i32 @select_by_icmp_sge(i32 %t0, i32 %t1, i32 %t2, i32 %t3) {
60
56
define i32 @select_by_icmp_ult (i32 %t0 , i32 %t1 , i32 %t2 , i32 %t3 ) {
61
57
; CHECK-LABEL: select_by_icmp_ult:
62
58
; CHECK: # %bb.0:
63
- ; CHECK-NEXT: addi16 a2, 10
64
59
; CHECK-NEXT: cmphs16 a0, a1
65
- ; CHECK-NEXT: movf32 a3, a2
60
+ ; CHECK-NEXT: incf32 a3, a2, 10
66
61
; CHECK-NEXT: mov16 a0, a3
67
62
; CHECK-NEXT: rts16
68
63
%t4 = icmp ult i32 %t0 , %t1
@@ -74,9 +69,8 @@ define i32 @select_by_icmp_ult(i32 %t0, i32 %t1, i32 %t2, i32 %t3) {
74
69
define i32 @select_by_icmp_slt (i32 %t0 , i32 %t1 , i32 %t2 , i32 %t3 ) {
75
70
; CHECK-LABEL: select_by_icmp_slt:
76
71
; CHECK: # %bb.0:
77
- ; CHECK-NEXT: addi16 a2, 10
78
72
; CHECK-NEXT: cmplt16 a0, a1
79
- ; CHECK-NEXT: movt32 a3, a2
73
+ ; CHECK-NEXT: inct32 a3, a2, 10
80
74
; CHECK-NEXT: mov16 a0, a3
81
75
; CHECK-NEXT: rts16
82
76
%t4 = icmp slt i32 %t0 , %t1
@@ -88,9 +82,8 @@ define i32 @select_by_icmp_slt(i32 %t0, i32 %t1, i32 %t2, i32 %t3) {
88
82
define i32 @select_by_icmp_ule (i32 %t0 , i32 %t1 , i32 %t2 , i32 %t3 ) {
89
83
; CHECK-LABEL: select_by_icmp_ule:
90
84
; CHECK: # %bb.0:
91
- ; CHECK-NEXT: addi16 a2, 10
92
85
; CHECK-NEXT: cmphs16 a1, a0
93
- ; CHECK-NEXT: movt32 a3, a2
86
+ ; CHECK-NEXT: inct32 a3, a2, 10
94
87
; CHECK-NEXT: mov16 a0, a3
95
88
; CHECK-NEXT: rts16
96
89
%t4 = icmp ule i32 %t0 , %t1
@@ -102,9 +95,8 @@ define i32 @select_by_icmp_ule(i32 %t0, i32 %t1, i32 %t2, i32 %t3) {
102
95
define i32 @select_by_icmp_sle (i32 %t0 , i32 %t1 , i32 %t2 , i32 %t3 ) {
103
96
; CHECK-LABEL: select_by_icmp_sle:
104
97
; CHECK: # %bb.0:
105
- ; CHECK-NEXT: addi16 a2, 10
106
98
; CHECK-NEXT: cmplt16 a1, a0
107
- ; CHECK-NEXT: movf32 a3, a2
99
+ ; CHECK-NEXT: incf32 a3, a2, 10
108
100
; CHECK-NEXT: mov16 a0, a3
109
101
; CHECK-NEXT: rts16
110
102
%t4 = icmp sle i32 %t0 , %t1
@@ -116,9 +108,8 @@ define i32 @select_by_icmp_sle(i32 %t0, i32 %t1, i32 %t2, i32 %t3) {
116
108
define i32 @select_by_icmp_ne (i32 %t0 , i32 %t1 , i32 %t2 , i32 %t3 ) {
117
109
; CHECK-LABEL: select_by_icmp_ne:
118
110
; CHECK: # %bb.0:
119
- ; CHECK-NEXT: addi16 a2, 10
120
111
; CHECK-NEXT: cmpne16 a0, a1
121
- ; CHECK-NEXT: movt32 a3, a2
112
+ ; CHECK-NEXT: inct32 a3, a2, 10
122
113
; CHECK-NEXT: mov16 a0, a3
123
114
; CHECK-NEXT: rts16
124
115
%t4 = icmp ne i32 %t0 , %t1
@@ -130,9 +121,8 @@ define i32 @select_by_icmp_ne(i32 %t0, i32 %t1, i32 %t2, i32 %t3) {
130
121
define i32 @select_by_icmp_eq (i32 %t0 , i32 %t1 , i32 %t2 , i32 %t3 ) {
131
122
; CHECK-LABEL: select_by_icmp_eq:
132
123
; CHECK: # %bb.0:
133
- ; CHECK-NEXT: addi16 a2, 10
134
124
; CHECK-NEXT: cmpne16 a0, a1
135
- ; CHECK-NEXT: movf32 a3, a2
125
+ ; CHECK-NEXT: incf32 a3, a2, 10
136
126
; CHECK-NEXT: mov16 a0, a3
137
127
; CHECK-NEXT: rts16
138
128
%t4 = icmp eq i32 %t0 , %t1
@@ -144,10 +134,9 @@ define i32 @select_by_icmp_eq(i32 %t0, i32 %t1, i32 %t2, i32 %t3) {
144
134
define i32 @select_by_icmp_ugt_imm (i32 %t0 , i32 %t2 , i32 %t3 ) {
145
135
; CHECK-LABEL: select_by_icmp_ugt_imm:
146
136
; CHECK: # %bb.0:
147
- ; CHECK-NEXT: addi16 a1, 10
148
137
; CHECK-NEXT: movi16 a3, 128
149
138
; CHECK-NEXT: cmphs16 a3, a0
150
- ; CHECK-NEXT: movf32 a2, a1
139
+ ; CHECK-NEXT: incf32 a2, a1, 10
151
140
; CHECK-NEXT: mov16 a0, a2
152
141
; CHECK-NEXT: rts16
153
142
%t4 = icmp ugt i32 %t0 , 128
@@ -159,10 +148,9 @@ define i32 @select_by_icmp_ugt_imm(i32 %t0, i32 %t2, i32 %t3) {
159
148
define i32 @select_by_icmp_sgt_imm (i32 %t0 , i32 %t2 , i32 %t3 ) {
160
149
; CHECK-LABEL: select_by_icmp_sgt_imm:
161
150
; CHECK: # %bb.0:
162
- ; CHECK-NEXT: addi16 a1, 10
163
151
; CHECK-NEXT: movi16 a3, 128
164
152
; CHECK-NEXT: cmplt16 a3, a0
165
- ; CHECK-NEXT: movt32 a2, a1
153
+ ; CHECK-NEXT: inct32 a2, a1, 10
166
154
; CHECK-NEXT: mov16 a0, a2
167
155
; CHECK-NEXT: rts16
168
156
%t4 = icmp sgt i32 %t0 , 128
@@ -174,10 +162,9 @@ define i32 @select_by_icmp_sgt_imm(i32 %t0, i32 %t2, i32 %t3) {
174
162
define i32 @select_by_icmp_uge_imm (i32 %t0 , i32 %t2 , i32 %t3 ) {
175
163
; CHECK-LABEL: select_by_icmp_uge_imm:
176
164
; CHECK: # %bb.0:
177
- ; CHECK-NEXT: addi16 a1, 10
178
165
; CHECK-NEXT: movi16 a3, 127
179
166
; CHECK-NEXT: cmphs16 a3, a0
180
- ; CHECK-NEXT: movf32 a2, a1
167
+ ; CHECK-NEXT: incf32 a2, a1, 10
181
168
; CHECK-NEXT: mov16 a0, a2
182
169
; CHECK-NEXT: rts16
183
170
%t4 = icmp uge i32 %t0 , 128
@@ -189,10 +176,9 @@ define i32 @select_by_icmp_uge_imm(i32 %t0, i32 %t2, i32 %t3) {
189
176
define i32 @select_by_icmp_sge_imm (i32 %t0 , i32 %t2 , i32 %t3 ) {
190
177
; CHECK-LABEL: select_by_icmp_sge_imm:
191
178
; CHECK: # %bb.0:
192
- ; CHECK-NEXT: addi16 a1, 10
193
179
; CHECK-NEXT: movi16 a3, 127
194
180
; CHECK-NEXT: cmplt16 a3, a0
195
- ; CHECK-NEXT: movt32 a2, a1
181
+ ; CHECK-NEXT: inct32 a2, a1, 10
196
182
; CHECK-NEXT: mov16 a0, a2
197
183
; CHECK-NEXT: rts16
198
184
%t4 = icmp sge i32 %t0 , 128
@@ -204,9 +190,8 @@ define i32 @select_by_icmp_sge_imm(i32 %t0, i32 %t2, i32 %t3) {
204
190
define i32 @select_by_icmp_ult_imm (i32 %t0 , i32 %t2 , i32 %t3 ) {
205
191
; CHECK-LABEL: select_by_icmp_ult_imm:
206
192
; CHECK: # %bb.0:
207
- ; CHECK-NEXT: addi16 a1, 10
208
193
; CHECK-NEXT: cmphsi32 a0, 128
209
- ; CHECK-NEXT: movf32 a2, a1
194
+ ; CHECK-NEXT: incf32 a2, a1, 10
210
195
; CHECK-NEXT: mov16 a0, a2
211
196
; CHECK-NEXT: rts16
212
197
%t4 = icmp ult i32 %t0 , 128
@@ -218,9 +203,8 @@ define i32 @select_by_icmp_ult_imm(i32 %t0, i32 %t2, i32 %t3) {
218
203
define i32 @select_by_icmp_slt_imm (i32 %t0 , i32 %t2 , i32 %t3 ) {
219
204
; CHECK-LABEL: select_by_icmp_slt_imm:
220
205
; CHECK: # %bb.0:
221
- ; CHECK-NEXT: addi16 a1, 10
222
206
; CHECK-NEXT: cmplti32 a0, 128
223
- ; CHECK-NEXT: movt32 a2, a1
207
+ ; CHECK-NEXT: inct32 a2, a1, 10
224
208
; CHECK-NEXT: mov16 a0, a2
225
209
; CHECK-NEXT: rts16
226
210
%t4 = icmp slt i32 %t0 , 128
@@ -232,9 +216,8 @@ define i32 @select_by_icmp_slt_imm(i32 %t0, i32 %t2, i32 %t3) {
232
216
define i32 @select_by_icmp_ule_imm (i32 %t0 , i32 %t2 , i32 %t3 ) {
233
217
; CHECK-LABEL: select_by_icmp_ule_imm:
234
218
; CHECK: # %bb.0:
235
- ; CHECK-NEXT: addi16 a1, 10
236
219
; CHECK-NEXT: cmphsi32 a0, 129
237
- ; CHECK-NEXT: movf32 a2, a1
220
+ ; CHECK-NEXT: incf32 a2, a1, 10
238
221
; CHECK-NEXT: mov16 a0, a2
239
222
; CHECK-NEXT: rts16
240
223
%t4 = icmp ule i32 %t0 , 128
@@ -246,9 +229,8 @@ define i32 @select_by_icmp_ule_imm(i32 %t0, i32 %t2, i32 %t3) {
246
229
define i32 @select_by_icmp_sle_imm (i32 %t0 , i32 %t2 , i32 %t3 ) {
247
230
; CHECK-LABEL: select_by_icmp_sle_imm:
248
231
; CHECK: # %bb.0:
249
- ; CHECK-NEXT: addi16 a1, 10
250
232
; CHECK-NEXT: cmplti32 a0, 129
251
- ; CHECK-NEXT: movt32 a2, a1
233
+ ; CHECK-NEXT: inct32 a2, a1, 10
252
234
; CHECK-NEXT: mov16 a0, a2
253
235
; CHECK-NEXT: rts16
254
236
%t4 = icmp sle i32 %t0 , 128
@@ -260,9 +242,8 @@ define i32 @select_by_icmp_sle_imm(i32 %t0, i32 %t2, i32 %t3) {
260
242
define i32 @select_by_icmp_ne_imm (i32 %t0 , i32 %t2 , i32 %t3 ) {
261
243
; CHECK-LABEL: select_by_icmp_ne_imm:
262
244
; CHECK: # %bb.0:
263
- ; CHECK-NEXT: addi16 a1, 10
264
245
; CHECK-NEXT: cmpnei32 a0, 128
265
- ; CHECK-NEXT: movt32 a2, a1
246
+ ; CHECK-NEXT: inct32 a2, a1, 10
266
247
; CHECK-NEXT: mov16 a0, a2
267
248
; CHECK-NEXT: rts16
268
249
%t4 = icmp ne i32 %t0 , 128
@@ -274,9 +255,8 @@ define i32 @select_by_icmp_ne_imm(i32 %t0, i32 %t2, i32 %t3) {
274
255
define i32 @select_by_icmp_eq_imm (i32 %t0 , i32 %t2 , i32 %t3 ) {
275
256
; CHECK-LABEL: select_by_icmp_eq_imm:
276
257
; CHECK: # %bb.0:
277
- ; CHECK-NEXT: addi16 a1, 10
278
258
; CHECK-NEXT: cmpnei32 a0, 128
279
- ; CHECK-NEXT: movf32 a2, a1
259
+ ; CHECK-NEXT: incf32 a2, a1, 10
280
260
; CHECK-NEXT: mov16 a0, a2
281
261
; CHECK-NEXT: rts16
282
262
%t4 = icmp eq i32 %t0 , 128
@@ -300,9 +280,8 @@ define i32 @select_by_call_t(i32 %t0, i32 %t1, i32 %t2) {
300
280
; CHECK-NEXT: mov16 l0, a2
301
281
; CHECK-NEXT: mov16 l1, a1
302
282
; CHECK-NEXT: jsri32 [.LCPI20_0]
303
- ; CHECK-NEXT: addi32 a1, l1, 10
304
283
; CHECK-NEXT: btsti16 a0, 0
305
- ; CHECK-NEXT: movt32 l0, a1
284
+ ; CHECK-NEXT: inct32 l0, l1, 10
306
285
; CHECK-NEXT: mov16 a0, l0
307
286
; CHECK-NEXT: ld32.w lr, (sp, 0) # 4-byte Folded Reload
308
287
; CHECK-NEXT: ld16.w l0, (sp, 4) # 4-byte Folded Reload
@@ -335,10 +314,9 @@ define i32 @select_by_call_f(i32 %t0, i32 %t1, i32 %t2) {
335
314
; CHECK-NEXT: mov16 l0, a2
336
315
; CHECK-NEXT: mov16 l1, a1
337
316
; CHECK-NEXT: jsri32 [.LCPI21_0]
338
- ; CHECK-NEXT: addi32 a1, l1, 10
339
317
; CHECK-NEXT: btsti16 a0, 0
340
- ; CHECK-NEXT: movt32 a1, l0
341
- ; CHECK-NEXT: mov16 a0, a1
318
+ ; CHECK-NEXT: incf32 l0, l1, 10
319
+ ; CHECK-NEXT: mov16 a0, l0
342
320
; CHECK-NEXT: ld32.w lr, (sp, 0) # 4-byte Folded Reload
343
321
; CHECK-NEXT: ld16.w l0, (sp, 4) # 4-byte Folded Reload
344
322
; CHECK-NEXT: ld16.w l1, (sp, 8) # 4-byte Folded Reload
0 commit comments