@@ -7,8 +7,8 @@ define i1 @src_is_mask_zext(i16 %x_in, i8 %y) {
7
7
; CHECK-LABEL: @src_is_mask_zext(
8
8
; CHECK-NEXT: [[M_IN:%.*]] = lshr i8 -1, [[Y:%.*]]
9
9
; CHECK-NEXT: [[MASK:%.*]] = zext i8 [[M_IN]] to i16
10
- ; CHECK-NEXT: [[X :%.*]] = xor i16 [[X_IN:%.*]], 123
11
- ; CHECK-NEXT: [[R:%.*]] = icmp ule i16 [[X ]], [[MASK]]
10
+ ; CHECK-NEXT: [[TMP1 :%.*]] = xor i16 [[X_IN:%.*]], 123
11
+ ; CHECK-NEXT: [[R:%.*]] = icmp ule i16 [[TMP1 ]], [[MASK]]
12
12
; CHECK-NEXT: ret i1 [[R]]
13
13
;
14
14
%x = xor i16 %x_in , 123
@@ -83,8 +83,8 @@ define i1 @src_is_mask_and(i8 %x_in, i8 %y, i8 %z) {
83
83
; CHECK-NEXT: [[MY:%.*]] = lshr i8 7, [[Y:%.*]]
84
84
; CHECK-NEXT: [[MZ:%.*]] = lshr i8 -1, [[Z:%.*]]
85
85
; CHECK-NEXT: [[MASK:%.*]] = and i8 [[MY]], [[MZ]]
86
- ; CHECK-NEXT: [[X :%.*]] = xor i8 [[X_IN:%.*]], 123
87
- ; CHECK-NEXT: [[R:%.*]] = icmp ule i8 [[X ]], [[MASK]]
86
+ ; CHECK-NEXT: [[TMP1 :%.*]] = xor i8 [[X_IN:%.*]], 123
87
+ ; CHECK-NEXT: [[R:%.*]] = icmp ule i8 [[TMP1 ]], [[MASK]]
88
88
; CHECK-NEXT: ret i1 [[R]]
89
89
;
90
90
%x = xor i8 %x_in , 123
@@ -121,8 +121,8 @@ define i1 @src_is_mask_or(i8 %x_in, i8 %y) {
121
121
; CHECK-LABEL: @src_is_mask_or(
122
122
; CHECK-NEXT: [[MY:%.*]] = lshr i8 -1, [[Y:%.*]]
123
123
; CHECK-NEXT: [[MASK:%.*]] = and i8 [[MY]], 7
124
- ; CHECK-NEXT: [[X :%.*]] = xor i8 [[X_IN:%.*]], 123
125
- ; CHECK-NEXT: [[R:%.*]] = icmp ule i8 [[X ]], [[MASK]]
124
+ ; CHECK-NEXT: [[TMP1 :%.*]] = xor i8 [[X_IN:%.*]], 123
125
+ ; CHECK-NEXT: [[R:%.*]] = icmp ule i8 [[TMP1 ]], [[MASK]]
126
126
; CHECK-NEXT: ret i1 [[R]]
127
127
;
128
128
%x = xor i8 %x_in , 123
@@ -138,8 +138,8 @@ define i1 @src_is_mask_xor(i8 %x_in, i8 %y) {
138
138
; CHECK-LABEL: @src_is_mask_xor(
139
139
; CHECK-NEXT: [[Y_M1:%.*]] = add i8 [[Y:%.*]], -1
140
140
; CHECK-NEXT: [[MASK:%.*]] = xor i8 [[Y_M1]], [[Y]]
141
- ; CHECK-NEXT: [[X :%.*]] = xor i8 [[X_IN:%.*]], 123
142
- ; CHECK-NEXT: [[R:%.*]] = icmp ugt i8 [[X ]], [[MASK]]
141
+ ; CHECK-NEXT: [[TMP1 :%.*]] = xor i8 [[X_IN:%.*]], 123
142
+ ; CHECK-NEXT: [[R:%.*]] = icmp ugt i8 [[TMP1 ]], [[MASK]]
143
143
; CHECK-NEXT: ret i1 [[R]]
144
144
;
145
145
%x = xor i8 %x_in , 123
@@ -173,8 +173,8 @@ define i1 @src_is_mask_select(i8 %x_in, i8 %y, i1 %cond) {
173
173
; CHECK-NEXT: [[Y_M1:%.*]] = add i8 [[Y:%.*]], -1
174
174
; CHECK-NEXT: [[YMASK:%.*]] = xor i8 [[Y_M1]], [[Y]]
175
175
; CHECK-NEXT: [[MASK:%.*]] = select i1 [[COND:%.*]], i8 [[YMASK]], i8 15
176
- ; CHECK-NEXT: [[X :%.*]] = xor i8 [[X_IN:%.*]], 123
177
- ; CHECK-NEXT: [[R:%.*]] = icmp ugt i8 [[X ]], [[MASK]]
176
+ ; CHECK-NEXT: [[TMP1 :%.*]] = xor i8 [[X_IN:%.*]], 123
177
+ ; CHECK-NEXT: [[R:%.*]] = icmp ugt i8 [[TMP1 ]], [[MASK]]
178
178
; CHECK-NEXT: ret i1 [[R]]
179
179
;
180
180
%x = xor i8 %x_in , 123
@@ -249,8 +249,8 @@ define i1 @src_is_mask_lshr(i8 %x_in, i8 %y, i8 %z, i1 %cond) {
249
249
; CHECK-NEXT: [[YMASK:%.*]] = xor i8 [[Y_M1]], [[Y]]
250
250
; CHECK-NEXT: [[SMASK:%.*]] = select i1 [[COND:%.*]], i8 [[YMASK]], i8 15
251
251
; CHECK-NEXT: [[MASK:%.*]] = lshr i8 [[SMASK]], [[Z:%.*]]
252
- ; CHECK-NEXT: [[X :%.*]] = xor i8 [[X_IN:%.*]], 123
253
- ; CHECK-NEXT: [[R:%.*]] = icmp ugt i8 [[X ]], [[MASK]]
252
+ ; CHECK-NEXT: [[TMP1 :%.*]] = xor i8 [[X_IN:%.*]], 123
253
+ ; CHECK-NEXT: [[R:%.*]] = icmp ugt i8 [[TMP1 ]], [[MASK]]
254
254
; CHECK-NEXT: ret i1 [[R]]
255
255
;
256
256
%x = xor i8 %x_in , 123
@@ -269,8 +269,8 @@ define i1 @src_is_mask_ashr(i8 %x_in, i8 %y, i8 %z, i1 %cond) {
269
269
; CHECK-NEXT: [[YMASK:%.*]] = xor i8 [[Y_M1]], [[Y]]
270
270
; CHECK-NEXT: [[SMASK:%.*]] = select i1 [[COND:%.*]], i8 [[YMASK]], i8 15
271
271
; CHECK-NEXT: [[MASK:%.*]] = ashr i8 [[SMASK]], [[Z:%.*]]
272
- ; CHECK-NEXT: [[X :%.*]] = xor i8 [[X_IN:%.*]], 123
273
- ; CHECK-NEXT: [[R:%.*]] = icmp ugt i8 [[X ]], [[MASK]]
272
+ ; CHECK-NEXT: [[TMP1 :%.*]] = xor i8 [[X_IN:%.*]], 123
273
+ ; CHECK-NEXT: [[R:%.*]] = icmp ugt i8 [[TMP1 ]], [[MASK]]
274
274
; CHECK-NEXT: ret i1 [[R]]
275
275
;
276
276
%x = xor i8 %x_in , 123
@@ -287,8 +287,8 @@ define i1 @src_is_mask_p2_m1(i8 %x_in, i8 %y) {
287
287
; CHECK-LABEL: @src_is_mask_p2_m1(
288
288
; CHECK-NEXT: [[P2ORZ:%.*]] = shl i8 2, [[Y:%.*]]
289
289
; CHECK-NEXT: [[MASK:%.*]] = add i8 [[P2ORZ]], -1
290
- ; CHECK-NEXT: [[X :%.*]] = xor i8 [[X_IN:%.*]], 123
291
- ; CHECK-NEXT: [[R:%.*]] = icmp ugt i8 [[X ]], [[MASK]]
290
+ ; CHECK-NEXT: [[TMP1 :%.*]] = xor i8 [[X_IN:%.*]], 123
291
+ ; CHECK-NEXT: [[R:%.*]] = icmp ugt i8 [[TMP1 ]], [[MASK]]
292
292
; CHECK-NEXT: ret i1 [[R]]
293
293
;
294
294
%x = xor i8 %x_in , 123
@@ -304,8 +304,8 @@ define i1 @src_is_mask_umax(i8 %x_in, i8 %y) {
304
304
; CHECK-NEXT: [[Y_M1:%.*]] = add i8 [[Y:%.*]], -1
305
305
; CHECK-NEXT: [[YMASK:%.*]] = xor i8 [[Y_M1]], [[Y]]
306
306
; CHECK-NEXT: [[MASK:%.*]] = call i8 @llvm.umax.i8(i8 [[YMASK]], i8 3)
307
- ; CHECK-NEXT: [[X :%.*]] = xor i8 [[X_IN:%.*]], 123
308
- ; CHECK-NEXT: [[R:%.*]] = icmp ugt i8 [[X ]], [[MASK]]
307
+ ; CHECK-NEXT: [[TMP1 :%.*]] = xor i8 [[X_IN:%.*]], 123
308
+ ; CHECK-NEXT: [[R:%.*]] = icmp ugt i8 [[TMP1 ]], [[MASK]]
309
309
; CHECK-NEXT: ret i1 [[R]]
310
310
;
311
311
%x = xor i8 %x_in , 123
@@ -324,8 +324,8 @@ define i1 @src_is_mask_umin(i8 %x_in, i8 %y, i8 %z) {
324
324
; CHECK-NEXT: [[YMASK:%.*]] = xor i8 [[Y_M1]], [[Y]]
325
325
; CHECK-NEXT: [[ZMASK:%.*]] = lshr i8 15, [[Z:%.*]]
326
326
; CHECK-NEXT: [[MASK:%.*]] = call i8 @llvm.umin.i8(i8 [[YMASK]], i8 [[ZMASK]])
327
- ; CHECK-NEXT: [[X :%.*]] = xor i8 [[X_IN:%.*]], 123
328
- ; CHECK-NEXT: [[R:%.*]] = icmp ugt i8 [[X ]], [[MASK]]
327
+ ; CHECK-NEXT: [[TMP1 :%.*]] = xor i8 [[X_IN:%.*]], 123
328
+ ; CHECK-NEXT: [[R:%.*]] = icmp ugt i8 [[TMP1 ]], [[MASK]]
329
329
; CHECK-NEXT: ret i1 [[R]]
330
330
;
331
331
%x = xor i8 %x_in , 123
@@ -364,8 +364,8 @@ define i1 @src_is_mask_smax(i8 %x_in, i8 %y) {
364
364
; CHECK-NEXT: [[Y_M1:%.*]] = add i8 [[Y:%.*]], -1
365
365
; CHECK-NEXT: [[YMASK:%.*]] = xor i8 [[Y_M1]], [[Y]]
366
366
; CHECK-NEXT: [[MASK:%.*]] = call i8 @llvm.smax.i8(i8 [[YMASK]], i8 -1)
367
- ; CHECK-NEXT: [[X :%.*]] = xor i8 [[X_IN:%.*]], 123
368
- ; CHECK-NEXT: [[R:%.*]] = icmp ule i8 [[X ]], [[MASK]]
367
+ ; CHECK-NEXT: [[TMP1 :%.*]] = xor i8 [[X_IN:%.*]], 123
368
+ ; CHECK-NEXT: [[R:%.*]] = icmp ule i8 [[TMP1 ]], [[MASK]]
369
369
; CHECK-NEXT: ret i1 [[R]]
370
370
;
371
371
%x = xor i8 %x_in , 123
@@ -383,8 +383,8 @@ define i1 @src_is_mask_smin(i8 %x_in, i8 %y) {
383
383
; CHECK-NEXT: [[Y_M1:%.*]] = add i8 [[Y:%.*]], -1
384
384
; CHECK-NEXT: [[YMASK:%.*]] = xor i8 [[Y_M1]], [[Y]]
385
385
; CHECK-NEXT: [[MASK:%.*]] = call i8 @llvm.smin.i8(i8 [[YMASK]], i8 0)
386
- ; CHECK-NEXT: [[X :%.*]] = xor i8 [[X_IN:%.*]], 123
387
- ; CHECK-NEXT: [[R:%.*]] = icmp ule i8 [[X ]], [[MASK]]
386
+ ; CHECK-NEXT: [[TMP1 :%.*]] = xor i8 [[X_IN:%.*]], 123
387
+ ; CHECK-NEXT: [[R:%.*]] = icmp ule i8 [[TMP1 ]], [[MASK]]
388
388
; CHECK-NEXT: ret i1 [[R]]
389
389
;
390
390
%x = xor i8 %x_in , 123
@@ -401,8 +401,8 @@ define i1 @src_is_mask_bitreverse_not_mask(i8 %x_in, i8 %y) {
401
401
; CHECK-LABEL: @src_is_mask_bitreverse_not_mask(
402
402
; CHECK-NEXT: [[NMASK:%.*]] = shl nsw i8 -1, [[Y:%.*]]
403
403
; CHECK-NEXT: [[MASK:%.*]] = call i8 @llvm.bitreverse.i8(i8 [[NMASK]])
404
- ; CHECK-NEXT: [[X :%.*]] = xor i8 [[X_IN:%.*]], 123
405
- ; CHECK-NEXT: [[R:%.*]] = icmp ule i8 [[X ]], [[MASK]]
404
+ ; CHECK-NEXT: [[TMP1 :%.*]] = xor i8 [[X_IN:%.*]], 123
405
+ ; CHECK-NEXT: [[R:%.*]] = icmp ule i8 [[TMP1 ]], [[MASK]]
406
406
; CHECK-NEXT: ret i1 [[R]]
407
407
;
408
408
%x = xor i8 %x_in , 123
@@ -455,9 +455,9 @@ define i1 @src_is_notmask_shl(i8 %x_in, i8 %y, i1 %cond) {
455
455
define i1 @src_is_notmask_x_xor_neg_x (i8 %x_in , i8 %y , i1 %cond ) {
456
456
; CHECK-LABEL: @src_is_notmask_x_xor_neg_x(
457
457
; CHECK-NEXT: [[X:%.*]] = xor i8 [[X_IN:%.*]], 123
458
- ; CHECK-NEXT: [[NEG_Y :%.*]] = add i8 [[Y:%.*]], -1
459
- ; CHECK-NEXT: [[NOTMASK0 :%.*]] = xor i8 [[NEG_Y ]], [[Y]]
460
- ; CHECK-NEXT: [[TMP3:%.*]] = select i1 [[COND:%.*]], i8 [[NOTMASK0 ]], i8 7
458
+ ; CHECK-NEXT: [[TMP1 :%.*]] = add i8 [[Y:%.*]], -1
459
+ ; CHECK-NEXT: [[TMP2 :%.*]] = xor i8 [[TMP1 ]], [[Y]]
460
+ ; CHECK-NEXT: [[TMP3:%.*]] = select i1 [[COND:%.*]], i8 [[TMP2 ]], i8 7
461
461
; CHECK-NEXT: [[R:%.*]] = icmp ule i8 [[X]], [[TMP3]]
462
462
; CHECK-NEXT: ret i1 [[R]]
463
463
;
@@ -473,9 +473,9 @@ define i1 @src_is_notmask_x_xor_neg_x(i8 %x_in, i8 %y, i1 %cond) {
473
473
define i1 @src_is_notmask_x_xor_neg_x_inv (i8 %x_in , i8 %y , i1 %cond ) {
474
474
; CHECK-LABEL: @src_is_notmask_x_xor_neg_x_inv(
475
475
; CHECK-NEXT: [[X:%.*]] = xor i8 [[X_IN:%.*]], 123
476
- ; CHECK-NEXT: [[NEG_Y :%.*]] = add i8 [[Y:%.*]], -1
477
- ; CHECK-NEXT: [[NOTMASK0 :%.*]] = xor i8 [[NEG_Y ]], [[Y]]
478
- ; CHECK-NEXT: [[TMP3:%.*]] = select i1 [[COND:%.*]], i8 [[NOTMASK0 ]], i8 7
476
+ ; CHECK-NEXT: [[TMP1 :%.*]] = add i8 [[Y:%.*]], -1
477
+ ; CHECK-NEXT: [[TMP2 :%.*]] = xor i8 [[TMP1 ]], [[Y]]
478
+ ; CHECK-NEXT: [[TMP3:%.*]] = select i1 [[COND:%.*]], i8 [[TMP2 ]], i8 7
479
479
; CHECK-NEXT: [[R:%.*]] = icmp ule i8 [[X]], [[TMP3]]
480
480
; CHECK-NEXT: ret i1 [[R]]
481
481
;
@@ -625,9 +625,7 @@ define i1 @src_is_notmask_xor_fail(i8 %x_in, i8 %y) {
625
625
626
626
define i1 @src_is_mask_const_slt (i8 %x_in ) {
627
627
; CHECK-LABEL: @src_is_mask_const_slt(
628
- ; CHECK-NEXT: [[X:%.*]] = xor i8 [[X_IN:%.*]], 123
629
- ; CHECK-NEXT: [[AND:%.*]] = and i8 [[X]], 7
630
- ; CHECK-NEXT: [[R:%.*]] = icmp slt i8 [[X]], [[AND]]
628
+ ; CHECK-NEXT: [[R:%.*]] = icmp slt i8 [[X_IN:%.*]], 0
631
629
; CHECK-NEXT: ret i1 [[R]]
632
630
;
633
631
%x = xor i8 %x_in , 123
@@ -650,9 +648,7 @@ define i1 @src_is_mask_const_sgt(i8 %x_in) {
650
648
651
649
define i1 @src_is_mask_const_sle (i8 %x_in ) {
652
650
; CHECK-LABEL: @src_is_mask_const_sle(
653
- ; CHECK-NEXT: [[X:%.*]] = xor i8 [[X_IN:%.*]], 123
654
- ; CHECK-NEXT: [[AND:%.*]] = and i8 [[X]], 31
655
- ; CHECK-NEXT: [[R:%.*]] = icmp sle i8 [[AND]], [[X]]
651
+ ; CHECK-NEXT: [[R:%.*]] = icmp sgt i8 [[X_IN:%.*]], -1
656
652
; CHECK-NEXT: ret i1 [[R]]
657
653
;
658
654
%x = xor i8 %x_in , 123
0 commit comments