@@ -6,14 +6,12 @@ define i1 @andn_icmp_eq_i8(i8 signext %a, i8 signext %b) nounwind {
66; LA32-LABEL: andn_icmp_eq_i8:
77; LA32: # %bb.0:
88; LA32-NEXT: andn $a0, $a1, $a0
9- ; LA32-NEXT: andi $a0, $a0, 255
109; LA32-NEXT: sltui $a0, $a0, 1
1110; LA32-NEXT: ret
1211;
1312; LA64-LABEL: andn_icmp_eq_i8:
1413; LA64: # %bb.0:
1514; LA64-NEXT: andn $a0, $a1, $a0
16- ; LA64-NEXT: andi $a0, $a0, 255
1715; LA64-NEXT: sltui $a0, $a0, 1
1816; LA64-NEXT: ret
1917 %and = and i8 %a , %b
@@ -25,14 +23,12 @@ define i1 @andn_icmp_eq_i16(i16 signext %a, i16 signext %b) nounwind {
2523; LA32-LABEL: andn_icmp_eq_i16:
2624; LA32: # %bb.0:
2725; LA32-NEXT: andn $a0, $a1, $a0
28- ; LA32-NEXT: bstrpick.w $a0, $a0, 15, 0
2926; LA32-NEXT: sltui $a0, $a0, 1
3027; LA32-NEXT: ret
3128;
3229; LA64-LABEL: andn_icmp_eq_i16:
3330; LA64: # %bb.0:
3431; LA64-NEXT: andn $a0, $a1, $a0
35- ; LA64-NEXT: bstrpick.d $a0, $a0, 15, 0
3632; LA64-NEXT: sltui $a0, $a0, 1
3733; LA64-NEXT: ret
3834 %and = and i16 %a , %b
@@ -80,14 +76,12 @@ define i1 @andn_icmp_ne_i8(i8 signext %a, i8 signext %b) nounwind {
8076; LA32-LABEL: andn_icmp_ne_i8:
8177; LA32: # %bb.0:
8278; LA32-NEXT: andn $a0, $a1, $a0
83- ; LA32-NEXT: andi $a0, $a0, 255
8479; LA32-NEXT: sltu $a0, $zero, $a0
8580; LA32-NEXT: ret
8681;
8782; LA64-LABEL: andn_icmp_ne_i8:
8883; LA64: # %bb.0:
8984; LA64-NEXT: andn $a0, $a1, $a0
90- ; LA64-NEXT: andi $a0, $a0, 255
9185; LA64-NEXT: sltu $a0, $zero, $a0
9286; LA64-NEXT: ret
9387 %and = and i8 %a , %b
@@ -99,14 +93,12 @@ define i1 @andn_icmp_ne_i16(i16 signext %a, i16 signext %b) nounwind {
9993; LA32-LABEL: andn_icmp_ne_i16:
10094; LA32: # %bb.0:
10195; LA32-NEXT: andn $a0, $a1, $a0
102- ; LA32-NEXT: bstrpick.w $a0, $a0, 15, 0
10396; LA32-NEXT: sltu $a0, $zero, $a0
10497; LA32-NEXT: ret
10598;
10699; LA64-LABEL: andn_icmp_ne_i16:
107100; LA64: # %bb.0:
108101; LA64-NEXT: andn $a0, $a1, $a0
109- ; LA64-NEXT: bstrpick.d $a0, $a0, 15, 0
110102; LA64-NEXT: sltu $a0, $zero, $a0
111103; LA64-NEXT: ret
112104 %and = and i16 %a , %b
@@ -153,15 +145,13 @@ define i1 @andn_icmp_ne_i64(i64 %a, i64 %b) nounwind {
153145define i1 @andn_icmp_ult_i8 (i8 signext %a , i8 signext %b ) nounwind {
154146; LA32-LABEL: andn_icmp_ult_i8:
155147; LA32: # %bb.0:
156- ; LA32-NEXT: andi $a1, $a1, 255
157- ; LA32-NEXT: and $a0, $a1, $a0
148+ ; LA32-NEXT: and $a0, $a0, $a1
158149; LA32-NEXT: sltu $a0, $a0, $a1
159150; LA32-NEXT: ret
160151;
161152; LA64-LABEL: andn_icmp_ult_i8:
162153; LA64: # %bb.0:
163- ; LA64-NEXT: andi $a1, $a1, 255
164- ; LA64-NEXT: and $a0, $a1, $a0
154+ ; LA64-NEXT: and $a0, $a0, $a1
165155; LA64-NEXT: sltu $a0, $a0, $a1
166156; LA64-NEXT: ret
167157 %and = and i8 %a , %b
@@ -172,15 +162,13 @@ define i1 @andn_icmp_ult_i8(i8 signext %a, i8 signext %b) nounwind {
172162define i1 @andn_icmp_ult_i16 (i16 signext %a , i16 signext %b ) nounwind {
173163; LA32-LABEL: andn_icmp_ult_i16:
174164; 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
177166; LA32-NEXT: sltu $a0, $a0, $a1
178167; LA32-NEXT: ret
179168;
180169; LA64-LABEL: andn_icmp_ult_i16:
181170; 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
184172; LA64-NEXT: sltu $a0, $a0, $a1
185173; LA64-NEXT: ret
186174 %and = and i16 %a , %b
@@ -191,16 +179,14 @@ define i1 @andn_icmp_ult_i16(i16 signext %a, i16 signext %b) nounwind {
191179define i1 @andn_icmp_uge_i8 (i8 signext %a , i8 signext %b ) nounwind {
192180; LA32-LABEL: andn_icmp_uge_i8:
193181; LA32: # %bb.0:
194- ; LA32-NEXT: andi $a1, $a1, 255
195- ; LA32-NEXT: and $a0, $a1, $a0
182+ ; LA32-NEXT: and $a0, $a0, $a1
196183; LA32-NEXT: sltu $a0, $a0, $a1
197184; LA32-NEXT: xori $a0, $a0, 1
198185; LA32-NEXT: ret
199186;
200187; LA64-LABEL: andn_icmp_uge_i8:
201188; LA64: # %bb.0:
202- ; LA64-NEXT: andi $a1, $a1, 255
203- ; LA64-NEXT: and $a0, $a1, $a0
189+ ; LA64-NEXT: and $a0, $a0, $a1
204190; LA64-NEXT: sltu $a0, $a0, $a1
205191; LA64-NEXT: xori $a0, $a0, 1
206192; LA64-NEXT: ret
@@ -212,16 +198,14 @@ define i1 @andn_icmp_uge_i8(i8 signext %a, i8 signext %b) nounwind {
212198define i1 @andn_icmp_uge_i16 (i16 signext %a , i16 signext %b ) nounwind {
213199; LA32-LABEL: andn_icmp_uge_i16:
214200; 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
217202; LA32-NEXT: sltu $a0, $a0, $a1
218203; LA32-NEXT: xori $a0, $a0, 1
219204; LA32-NEXT: ret
220205;
221206; LA64-LABEL: andn_icmp_uge_i16:
222207; 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
225209; LA64-NEXT: sltu $a0, $a0, $a1
226210; LA64-NEXT: xori $a0, $a0, 1
227211; LA64-NEXT: ret
@@ -233,15 +217,13 @@ define i1 @andn_icmp_uge_i16(i16 signext %a, i16 signext %b) nounwind {
233217define i1 @andn_icmp_ugt_i8 (i8 signext %a , i8 signext %b ) nounwind {
234218; LA32-LABEL: andn_icmp_ugt_i8:
235219; LA32: # %bb.0:
236- ; LA32-NEXT: andi $a1, $a1, 255
237- ; LA32-NEXT: and $a0, $a1, $a0
220+ ; LA32-NEXT: and $a0, $a0, $a1
238221; LA32-NEXT: sltu $a0, $a1, $a0
239222; LA32-NEXT: ret
240223;
241224; LA64-LABEL: andn_icmp_ugt_i8:
242225; LA64: # %bb.0:
243- ; LA64-NEXT: andi $a1, $a1, 255
244- ; LA64-NEXT: and $a0, $a1, $a0
226+ ; LA64-NEXT: and $a0, $a0, $a1
245227; LA64-NEXT: sltu $a0, $a1, $a0
246228; LA64-NEXT: ret
247229 %and = and i8 %a , %b
@@ -252,15 +234,13 @@ define i1 @andn_icmp_ugt_i8(i8 signext %a, i8 signext %b) nounwind {
252234define i1 @andn_icmp_ugt_i16 (i16 signext %a , i16 signext %b ) nounwind {
253235; LA32-LABEL: andn_icmp_ugt_i16:
254236; 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
257238; LA32-NEXT: sltu $a0, $a1, $a0
258239; LA32-NEXT: ret
259240;
260241; LA64-LABEL: andn_icmp_ugt_i16:
261242; 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
264244; LA64-NEXT: sltu $a0, $a1, $a0
265245; LA64-NEXT: ret
266246 %and = and i16 %a , %b
@@ -271,16 +251,14 @@ define i1 @andn_icmp_ugt_i16(i16 signext %a, i16 signext %b) nounwind {
271251define i1 @andn_icmp_ule_i8 (i8 signext %a , i8 signext %b ) nounwind {
272252; LA32-LABEL: andn_icmp_ule_i8:
273253; LA32: # %bb.0:
274- ; LA32-NEXT: andi $a1, $a1, 255
275- ; LA32-NEXT: and $a0, $a1, $a0
254+ ; LA32-NEXT: and $a0, $a0, $a1
276255; LA32-NEXT: sltu $a0, $a1, $a0
277256; LA32-NEXT: xori $a0, $a0, 1
278257; LA32-NEXT: ret
279258;
280259; LA64-LABEL: andn_icmp_ule_i8:
281260; LA64: # %bb.0:
282- ; LA64-NEXT: andi $a1, $a1, 255
283- ; LA64-NEXT: and $a0, $a1, $a0
261+ ; LA64-NEXT: and $a0, $a0, $a1
284262; LA64-NEXT: sltu $a0, $a1, $a0
285263; LA64-NEXT: xori $a0, $a0, 1
286264; LA64-NEXT: ret
@@ -292,16 +270,14 @@ define i1 @andn_icmp_ule_i8(i8 signext %a, i8 signext %b) nounwind {
292270define i1 @andn_icmp_ule_i16 (i16 signext %a , i16 signext %b ) nounwind {
293271; LA32-LABEL: andn_icmp_ule_i16:
294272; 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
297274; LA32-NEXT: sltu $a0, $a1, $a0
298275; LA32-NEXT: xori $a0, $a0, 1
299276; LA32-NEXT: ret
300277;
301278; LA64-LABEL: andn_icmp_ule_i16:
302279; 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
305281; LA64-NEXT: sltu $a0, $a1, $a0
306282; LA64-NEXT: xori $a0, $a0, 1
307283; LA64-NEXT: ret
0 commit comments