@@ -271,10 +271,7 @@ define i1 @bools_logical_commute1_and1_and2(i1 %b, i1 %c) {
271
271
272
272
define <2 x i1 > @bools_logical_commute2 (<2 x i1 > %a , <2 x i1 > %b , <2 x i1 > %c ) {
273
273
; CHECK-LABEL: @bools_logical_commute2(
274
- ; CHECK-NEXT: [[NOT:%.*]] = xor <2 x i1> [[C:%.*]], <i1 true, i1 true>
275
- ; CHECK-NEXT: [[AND1:%.*]] = select <2 x i1> [[NOT]], <2 x i1> [[A:%.*]], <2 x i1> zeroinitializer
276
- ; CHECK-NEXT: [[AND2:%.*]] = select <2 x i1> [[B:%.*]], <2 x i1> [[C]], <2 x i1> zeroinitializer
277
- ; CHECK-NEXT: [[OR:%.*]] = select <2 x i1> [[AND1]], <2 x i1> <i1 true, i1 true>, <2 x i1> [[AND2]]
274
+ ; CHECK-NEXT: [[OR:%.*]] = select <2 x i1> [[C:%.*]], <2 x i1> [[B:%.*]], <2 x i1> [[A:%.*]]
278
275
; CHECK-NEXT: ret <2 x i1> [[OR]]
279
276
;
280
277
%not = xor <2 x i1 > %c , <i1 -1 , i1 -1 >
@@ -286,10 +283,7 @@ define <2 x i1> @bools_logical_commute2(<2 x i1> %a, <2 x i1> %b, <2 x i1> %c) {
286
283
287
284
define <2 x i1 > @bools_logical_commute2_and1 (<2 x i1 > %a , <2 x i1 > %b , <2 x i1 > %c ) {
288
285
; CHECK-LABEL: @bools_logical_commute2_and1(
289
- ; CHECK-NEXT: [[NOT:%.*]] = xor <2 x i1> [[C:%.*]], <i1 true, i1 true>
290
- ; CHECK-NEXT: [[AND1:%.*]] = and <2 x i1> [[NOT]], [[A:%.*]]
291
- ; CHECK-NEXT: [[AND2:%.*]] = select <2 x i1> [[B:%.*]], <2 x i1> [[C]], <2 x i1> zeroinitializer
292
- ; CHECK-NEXT: [[OR:%.*]] = select <2 x i1> [[AND1]], <2 x i1> <i1 true, i1 true>, <2 x i1> [[AND2]]
286
+ ; CHECK-NEXT: [[OR:%.*]] = select <2 x i1> [[C:%.*]], <2 x i1> [[B:%.*]], <2 x i1> [[A:%.*]]
293
287
; CHECK-NEXT: ret <2 x i1> [[OR]]
294
288
;
295
289
%not = xor <2 x i1 > %c , <i1 -1 , i1 -1 >
@@ -301,10 +295,7 @@ define <2 x i1> @bools_logical_commute2_and1(<2 x i1> %a, <2 x i1> %b, <2 x i1>
301
295
302
296
define <2 x i1 > @bools_logical_commute2_and2 (<2 x i1 > %a , <2 x i1 > %b , <2 x i1 > %c ) {
303
297
; CHECK-LABEL: @bools_logical_commute2_and2(
304
- ; CHECK-NEXT: [[NOT:%.*]] = xor <2 x i1> [[C:%.*]], <i1 true, i1 true>
305
- ; CHECK-NEXT: [[AND1:%.*]] = select <2 x i1> [[NOT]], <2 x i1> [[A:%.*]], <2 x i1> zeroinitializer
306
- ; CHECK-NEXT: [[AND2:%.*]] = and <2 x i1> [[B:%.*]], [[C]]
307
- ; CHECK-NEXT: [[OR:%.*]] = select <2 x i1> [[AND1]], <2 x i1> <i1 true, i1 true>, <2 x i1> [[AND2]]
298
+ ; CHECK-NEXT: [[OR:%.*]] = select <2 x i1> [[C:%.*]], <2 x i1> [[B:%.*]], <2 x i1> [[A:%.*]]
308
299
; CHECK-NEXT: ret <2 x i1> [[OR]]
309
300
;
310
301
%not = xor <2 x i1 > %c , <i1 -1 , i1 -1 >
@@ -316,10 +307,7 @@ define <2 x i1> @bools_logical_commute2_and2(<2 x i1> %a, <2 x i1> %b, <2 x i1>
316
307
317
308
define <2 x i1 > @bools_logical_commute2_and1_and2 (<2 x i1 > %a , <2 x i1 > %b , <2 x i1 > %c ) {
318
309
; CHECK-LABEL: @bools_logical_commute2_and1_and2(
319
- ; CHECK-NEXT: [[NOT:%.*]] = xor <2 x i1> [[C:%.*]], <i1 true, i1 true>
320
- ; CHECK-NEXT: [[AND1:%.*]] = and <2 x i1> [[NOT]], [[A:%.*]]
321
- ; CHECK-NEXT: [[AND2:%.*]] = and <2 x i1> [[B:%.*]], [[C]]
322
- ; CHECK-NEXT: [[OR:%.*]] = select <2 x i1> [[AND1]], <2 x i1> <i1 true, i1 true>, <2 x i1> [[AND2]]
310
+ ; CHECK-NEXT: [[OR:%.*]] = select <2 x i1> [[C:%.*]], <2 x i1> [[B:%.*]], <2 x i1> [[A:%.*]]
323
311
; CHECK-NEXT: ret <2 x i1> [[OR]]
324
312
;
325
313
%not = xor <2 x i1 > %c , <i1 -1 , i1 -1 >
@@ -443,10 +431,7 @@ define i1 @bools2_logical_commute0_and1_and2(i1 %a, i1 %b, i1 %c) {
443
431
444
432
define i1 @bools2_logical_commute1 (i1 %a , i1 %b , i1 %c ) {
445
433
; CHECK-LABEL: @bools2_logical_commute1(
446
- ; CHECK-NEXT: [[NOT:%.*]] = xor i1 [[C:%.*]], true
447
- ; CHECK-NEXT: [[AND1:%.*]] = select i1 [[A:%.*]], i1 [[C]], i1 false
448
- ; CHECK-NEXT: [[AND2:%.*]] = select i1 [[NOT]], i1 [[B:%.*]], i1 false
449
- ; CHECK-NEXT: [[OR:%.*]] = select i1 [[AND1]], i1 true, i1 [[AND2]]
434
+ ; CHECK-NEXT: [[OR:%.*]] = select i1 [[C:%.*]], i1 [[A:%.*]], i1 [[B:%.*]]
450
435
; CHECK-NEXT: ret i1 [[OR]]
451
436
;
452
437
%not = xor i1 %c , -1
@@ -458,10 +443,7 @@ define i1 @bools2_logical_commute1(i1 %a, i1 %b, i1 %c) {
458
443
459
444
define i1 @bools2_logical_commute1_and1 (i1 %a , i1 %b , i1 %c ) {
460
445
; CHECK-LABEL: @bools2_logical_commute1_and1(
461
- ; CHECK-NEXT: [[NOT:%.*]] = xor i1 [[C:%.*]], true
462
- ; CHECK-NEXT: [[AND1:%.*]] = and i1 [[A:%.*]], [[C]]
463
- ; CHECK-NEXT: [[AND2:%.*]] = select i1 [[NOT]], i1 [[B:%.*]], i1 false
464
- ; CHECK-NEXT: [[OR:%.*]] = select i1 [[AND1]], i1 true, i1 [[AND2]]
446
+ ; CHECK-NEXT: [[OR:%.*]] = select i1 [[C:%.*]], i1 [[A:%.*]], i1 [[B:%.*]]
465
447
; CHECK-NEXT: ret i1 [[OR]]
466
448
;
467
449
%not = xor i1 %c , -1
@@ -473,10 +455,7 @@ define i1 @bools2_logical_commute1_and1(i1 %a, i1 %b, i1 %c) {
473
455
474
456
define i1 @bools2_logical_commute1_and2 (i1 %a , i1 %b , i1 %c ) {
475
457
; CHECK-LABEL: @bools2_logical_commute1_and2(
476
- ; CHECK-NEXT: [[NOT:%.*]] = xor i1 [[C:%.*]], true
477
- ; CHECK-NEXT: [[AND1:%.*]] = select i1 [[A:%.*]], i1 [[C]], i1 false
478
- ; CHECK-NEXT: [[AND2:%.*]] = and i1 [[NOT]], [[B:%.*]]
479
- ; CHECK-NEXT: [[OR:%.*]] = select i1 [[AND1]], i1 true, i1 [[AND2]]
458
+ ; CHECK-NEXT: [[OR:%.*]] = select i1 [[C:%.*]], i1 [[A:%.*]], i1 [[B:%.*]]
480
459
; CHECK-NEXT: ret i1 [[OR]]
481
460
;
482
461
%not = xor i1 %c , -1
@@ -488,10 +467,7 @@ define i1 @bools2_logical_commute1_and2(i1 %a, i1 %b, i1 %c) {
488
467
489
468
define i1 @bools2_logical_commute1_and1_and2 (i1 %a , i1 %b , i1 %c ) {
490
469
; CHECK-LABEL: @bools2_logical_commute1_and1_and2(
491
- ; CHECK-NEXT: [[NOT:%.*]] = xor i1 [[C:%.*]], true
492
- ; CHECK-NEXT: [[AND1:%.*]] = and i1 [[A:%.*]], [[C]]
493
- ; CHECK-NEXT: [[AND2:%.*]] = and i1 [[NOT]], [[B:%.*]]
494
- ; CHECK-NEXT: [[OR:%.*]] = select i1 [[AND1]], i1 true, i1 [[AND2]]
470
+ ; CHECK-NEXT: [[OR:%.*]] = select i1 [[C:%.*]], i1 [[A:%.*]], i1 [[B:%.*]]
495
471
; CHECK-NEXT: ret i1 [[OR]]
496
472
;
497
473
%not = xor i1 %c , -1
0 commit comments