@@ -6,14 +6,12 @@ define i1 @andn_icmp_eq_i8(i8 signext %a, i8 signext %b) nounwind {
6
6
; LA32-LABEL: andn_icmp_eq_i8:
7
7
; LA32: # %bb.0:
8
8
; LA32-NEXT: andn $a0, $a1, $a0
9
- ; LA32-NEXT: andi $a0, $a0, 255
10
9
; LA32-NEXT: sltui $a0, $a0, 1
11
10
; LA32-NEXT: ret
12
11
;
13
12
; LA64-LABEL: andn_icmp_eq_i8:
14
13
; LA64: # %bb.0:
15
14
; LA64-NEXT: andn $a0, $a1, $a0
16
- ; LA64-NEXT: andi $a0, $a0, 255
17
15
; LA64-NEXT: sltui $a0, $a0, 1
18
16
; LA64-NEXT: ret
19
17
%and = and i8 %a , %b
@@ -25,14 +23,12 @@ define i1 @andn_icmp_eq_i16(i16 signext %a, i16 signext %b) nounwind {
25
23
; LA32-LABEL: andn_icmp_eq_i16:
26
24
; LA32: # %bb.0:
27
25
; LA32-NEXT: andn $a0, $a1, $a0
28
- ; LA32-NEXT: bstrpick.w $a0, $a0, 15, 0
29
26
; LA32-NEXT: sltui $a0, $a0, 1
30
27
; LA32-NEXT: ret
31
28
;
32
29
; LA64-LABEL: andn_icmp_eq_i16:
33
30
; LA64: # %bb.0:
34
31
; LA64-NEXT: andn $a0, $a1, $a0
35
- ; LA64-NEXT: bstrpick.d $a0, $a0, 15, 0
36
32
; LA64-NEXT: sltui $a0, $a0, 1
37
33
; LA64-NEXT: ret
38
34
%and = and i16 %a , %b
@@ -80,14 +76,12 @@ define i1 @andn_icmp_ne_i8(i8 signext %a, i8 signext %b) nounwind {
80
76
; LA32-LABEL: andn_icmp_ne_i8:
81
77
; LA32: # %bb.0:
82
78
; LA32-NEXT: andn $a0, $a1, $a0
83
- ; LA32-NEXT: andi $a0, $a0, 255
84
79
; LA32-NEXT: sltu $a0, $zero, $a0
85
80
; LA32-NEXT: ret
86
81
;
87
82
; LA64-LABEL: andn_icmp_ne_i8:
88
83
; LA64: # %bb.0:
89
84
; LA64-NEXT: andn $a0, $a1, $a0
90
- ; LA64-NEXT: andi $a0, $a0, 255
91
85
; LA64-NEXT: sltu $a0, $zero, $a0
92
86
; LA64-NEXT: ret
93
87
%and = and i8 %a , %b
@@ -99,14 +93,12 @@ define i1 @andn_icmp_ne_i16(i16 signext %a, i16 signext %b) nounwind {
99
93
; LA32-LABEL: andn_icmp_ne_i16:
100
94
; LA32: # %bb.0:
101
95
; LA32-NEXT: andn $a0, $a1, $a0
102
- ; LA32-NEXT: bstrpick.w $a0, $a0, 15, 0
103
96
; LA32-NEXT: sltu $a0, $zero, $a0
104
97
; LA32-NEXT: ret
105
98
;
106
99
; LA64-LABEL: andn_icmp_ne_i16:
107
100
; LA64: # %bb.0:
108
101
; LA64-NEXT: andn $a0, $a1, $a0
109
- ; LA64-NEXT: bstrpick.d $a0, $a0, 15, 0
110
102
; LA64-NEXT: sltu $a0, $zero, $a0
111
103
; LA64-NEXT: ret
112
104
%and = and i16 %a , %b
@@ -153,15 +145,13 @@ define i1 @andn_icmp_ne_i64(i64 %a, i64 %b) nounwind {
153
145
define i1 @andn_icmp_ult_i8 (i8 signext %a , i8 signext %b ) nounwind {
154
146
; LA32-LABEL: andn_icmp_ult_i8:
155
147
; LA32: # %bb.0:
156
- ; LA32-NEXT: andi $a1, $a1, 255
157
- ; LA32-NEXT: and $a0, $a1, $a0
148
+ ; LA32-NEXT: and $a0, $a0, $a1
158
149
; LA32-NEXT: sltu $a0, $a0, $a1
159
150
; LA32-NEXT: ret
160
151
;
161
152
; LA64-LABEL: andn_icmp_ult_i8:
162
153
; LA64: # %bb.0:
163
- ; LA64-NEXT: andi $a1, $a1, 255
164
- ; LA64-NEXT: and $a0, $a1, $a0
154
+ ; LA64-NEXT: and $a0, $a0, $a1
165
155
; LA64-NEXT: sltu $a0, $a0, $a1
166
156
; LA64-NEXT: ret
167
157
%and = and i8 %a , %b
@@ -172,15 +162,13 @@ define i1 @andn_icmp_ult_i8(i8 signext %a, i8 signext %b) nounwind {
172
162
define i1 @andn_icmp_ult_i16 (i16 signext %a , i16 signext %b ) nounwind {
173
163
; LA32-LABEL: andn_icmp_ult_i16:
174
164
; LA32: # %bb.0:
175
- ; LA32-NEXT: bstrpick.w $a1, $a1, 15, 0
176
- ; LA32-NEXT: and $a0, $a1, $a0
165
+ ; LA32-NEXT: and $a0, $a0, $a1
177
166
; LA32-NEXT: sltu $a0, $a0, $a1
178
167
; LA32-NEXT: ret
179
168
;
180
169
; LA64-LABEL: andn_icmp_ult_i16:
181
170
; LA64: # %bb.0:
182
- ; LA64-NEXT: bstrpick.d $a1, $a1, 15, 0
183
- ; LA64-NEXT: and $a0, $a1, $a0
171
+ ; LA64-NEXT: and $a0, $a0, $a1
184
172
; LA64-NEXT: sltu $a0, $a0, $a1
185
173
; LA64-NEXT: ret
186
174
%and = and i16 %a , %b
@@ -191,16 +179,14 @@ define i1 @andn_icmp_ult_i16(i16 signext %a, i16 signext %b) nounwind {
191
179
define i1 @andn_icmp_uge_i8 (i8 signext %a , i8 signext %b ) nounwind {
192
180
; LA32-LABEL: andn_icmp_uge_i8:
193
181
; LA32: # %bb.0:
194
- ; LA32-NEXT: andi $a1, $a1, 255
195
- ; LA32-NEXT: and $a0, $a1, $a0
182
+ ; LA32-NEXT: and $a0, $a0, $a1
196
183
; LA32-NEXT: sltu $a0, $a0, $a1
197
184
; LA32-NEXT: xori $a0, $a0, 1
198
185
; LA32-NEXT: ret
199
186
;
200
187
; LA64-LABEL: andn_icmp_uge_i8:
201
188
; LA64: # %bb.0:
202
- ; LA64-NEXT: andi $a1, $a1, 255
203
- ; LA64-NEXT: and $a0, $a1, $a0
189
+ ; LA64-NEXT: and $a0, $a0, $a1
204
190
; LA64-NEXT: sltu $a0, $a0, $a1
205
191
; LA64-NEXT: xori $a0, $a0, 1
206
192
; LA64-NEXT: ret
@@ -212,16 +198,14 @@ define i1 @andn_icmp_uge_i8(i8 signext %a, i8 signext %b) nounwind {
212
198
define i1 @andn_icmp_uge_i16 (i16 signext %a , i16 signext %b ) nounwind {
213
199
; LA32-LABEL: andn_icmp_uge_i16:
214
200
; LA32: # %bb.0:
215
- ; LA32-NEXT: bstrpick.w $a1, $a1, 15, 0
216
- ; LA32-NEXT: and $a0, $a1, $a0
201
+ ; LA32-NEXT: and $a0, $a0, $a1
217
202
; LA32-NEXT: sltu $a0, $a0, $a1
218
203
; LA32-NEXT: xori $a0, $a0, 1
219
204
; LA32-NEXT: ret
220
205
;
221
206
; LA64-LABEL: andn_icmp_uge_i16:
222
207
; LA64: # %bb.0:
223
- ; LA64-NEXT: bstrpick.d $a1, $a1, 15, 0
224
- ; LA64-NEXT: and $a0, $a1, $a0
208
+ ; LA64-NEXT: and $a0, $a0, $a1
225
209
; LA64-NEXT: sltu $a0, $a0, $a1
226
210
; LA64-NEXT: xori $a0, $a0, 1
227
211
; LA64-NEXT: ret
@@ -233,15 +217,13 @@ define i1 @andn_icmp_uge_i16(i16 signext %a, i16 signext %b) nounwind {
233
217
define i1 @andn_icmp_ugt_i8 (i8 signext %a , i8 signext %b ) nounwind {
234
218
; LA32-LABEL: andn_icmp_ugt_i8:
235
219
; LA32: # %bb.0:
236
- ; LA32-NEXT: andi $a1, $a1, 255
237
- ; LA32-NEXT: and $a0, $a1, $a0
220
+ ; LA32-NEXT: and $a0, $a0, $a1
238
221
; LA32-NEXT: sltu $a0, $a1, $a0
239
222
; LA32-NEXT: ret
240
223
;
241
224
; LA64-LABEL: andn_icmp_ugt_i8:
242
225
; LA64: # %bb.0:
243
- ; LA64-NEXT: andi $a1, $a1, 255
244
- ; LA64-NEXT: and $a0, $a1, $a0
226
+ ; LA64-NEXT: and $a0, $a0, $a1
245
227
; LA64-NEXT: sltu $a0, $a1, $a0
246
228
; LA64-NEXT: ret
247
229
%and = and i8 %a , %b
@@ -252,15 +234,13 @@ define i1 @andn_icmp_ugt_i8(i8 signext %a, i8 signext %b) nounwind {
252
234
define i1 @andn_icmp_ugt_i16 (i16 signext %a , i16 signext %b ) nounwind {
253
235
; LA32-LABEL: andn_icmp_ugt_i16:
254
236
; LA32: # %bb.0:
255
- ; LA32-NEXT: bstrpick.w $a1, $a1, 15, 0
256
- ; LA32-NEXT: and $a0, $a1, $a0
237
+ ; LA32-NEXT: and $a0, $a0, $a1
257
238
; LA32-NEXT: sltu $a0, $a1, $a0
258
239
; LA32-NEXT: ret
259
240
;
260
241
; LA64-LABEL: andn_icmp_ugt_i16:
261
242
; LA64: # %bb.0:
262
- ; LA64-NEXT: bstrpick.d $a1, $a1, 15, 0
263
- ; LA64-NEXT: and $a0, $a1, $a0
243
+ ; LA64-NEXT: and $a0, $a0, $a1
264
244
; LA64-NEXT: sltu $a0, $a1, $a0
265
245
; LA64-NEXT: ret
266
246
%and = and i16 %a , %b
@@ -271,16 +251,14 @@ define i1 @andn_icmp_ugt_i16(i16 signext %a, i16 signext %b) nounwind {
271
251
define i1 @andn_icmp_ule_i8 (i8 signext %a , i8 signext %b ) nounwind {
272
252
; LA32-LABEL: andn_icmp_ule_i8:
273
253
; LA32: # %bb.0:
274
- ; LA32-NEXT: andi $a1, $a1, 255
275
- ; LA32-NEXT: and $a0, $a1, $a0
254
+ ; LA32-NEXT: and $a0, $a0, $a1
276
255
; LA32-NEXT: sltu $a0, $a1, $a0
277
256
; LA32-NEXT: xori $a0, $a0, 1
278
257
; LA32-NEXT: ret
279
258
;
280
259
; LA64-LABEL: andn_icmp_ule_i8:
281
260
; LA64: # %bb.0:
282
- ; LA64-NEXT: andi $a1, $a1, 255
283
- ; LA64-NEXT: and $a0, $a1, $a0
261
+ ; LA64-NEXT: and $a0, $a0, $a1
284
262
; LA64-NEXT: sltu $a0, $a1, $a0
285
263
; LA64-NEXT: xori $a0, $a0, 1
286
264
; LA64-NEXT: ret
@@ -292,16 +270,14 @@ define i1 @andn_icmp_ule_i8(i8 signext %a, i8 signext %b) nounwind {
292
270
define i1 @andn_icmp_ule_i16 (i16 signext %a , i16 signext %b ) nounwind {
293
271
; LA32-LABEL: andn_icmp_ule_i16:
294
272
; LA32: # %bb.0:
295
- ; LA32-NEXT: bstrpick.w $a1, $a1, 15, 0
296
- ; LA32-NEXT: and $a0, $a1, $a0
273
+ ; LA32-NEXT: and $a0, $a0, $a1
297
274
; LA32-NEXT: sltu $a0, $a1, $a0
298
275
; LA32-NEXT: xori $a0, $a0, 1
299
276
; LA32-NEXT: ret
300
277
;
301
278
; LA64-LABEL: andn_icmp_ule_i16:
302
279
; LA64: # %bb.0:
303
- ; LA64-NEXT: bstrpick.d $a1, $a1, 15, 0
304
- ; LA64-NEXT: and $a0, $a1, $a0
280
+ ; LA64-NEXT: and $a0, $a0, $a1
305
281
; LA64-NEXT: sltu $a0, $a1, $a0
306
282
; LA64-NEXT: xori $a0, $a0, 1
307
283
; LA64-NEXT: ret
0 commit comments