@@ -1194,9 +1194,7 @@ define i32 @or_xor_tree_0001(i32 %ax, i32 %bx, i32 %cx) {
1194
1194
; CHECK-NEXT: [[B:%.*]] = mul i32 [[BX:%.*]], 42
1195
1195
; CHECK-NEXT: [[C:%.*]] = mul i32 [[CX:%.*]], 42
1196
1196
; CHECK-NEXT: [[XOR1:%.*]] = xor i32 [[B]], [[A]]
1197
- ; CHECK-NEXT: [[XOR2:%.*]] = xor i32 [[B]], [[C]]
1198
- ; CHECK-NEXT: [[XOR3:%.*]] = xor i32 [[XOR2]], [[A]]
1199
- ; CHECK-NEXT: [[OR:%.*]] = or i32 [[XOR1]], [[XOR3]]
1197
+ ; CHECK-NEXT: [[OR:%.*]] = or i32 [[XOR1]], [[C]]
1200
1198
; CHECK-NEXT: ret i32 [[OR]]
1201
1199
;
1202
1200
%a = mul i32 %ax , 42
@@ -1215,9 +1213,7 @@ define i32 @or_xor_tree_0010(i32 %ax, i32 %bx, i32 %cx) {
1215
1213
; CHECK-NEXT: [[B:%.*]] = mul i32 [[BX:%.*]], 42
1216
1214
; CHECK-NEXT: [[C:%.*]] = mul i32 [[CX:%.*]], 42
1217
1215
; CHECK-NEXT: [[XOR1:%.*]] = xor i32 [[A]], [[B]]
1218
- ; CHECK-NEXT: [[XOR2:%.*]] = xor i32 [[C]], [[B]]
1219
- ; CHECK-NEXT: [[XOR3:%.*]] = xor i32 [[XOR2]], [[A]]
1220
- ; CHECK-NEXT: [[OR:%.*]] = or i32 [[XOR1]], [[XOR3]]
1216
+ ; CHECK-NEXT: [[OR:%.*]] = or i32 [[XOR1]], [[C]]
1221
1217
; CHECK-NEXT: ret i32 [[OR]]
1222
1218
;
1223
1219
%a = mul i32 %ax , 42
@@ -1236,9 +1232,7 @@ define i32 @or_xor_tree_0011(i32 %ax, i32 %bx, i32 %cx) {
1236
1232
; CHECK-NEXT: [[B:%.*]] = mul i32 [[BX:%.*]], 42
1237
1233
; CHECK-NEXT: [[C:%.*]] = mul i32 [[CX:%.*]], 42
1238
1234
; CHECK-NEXT: [[XOR1:%.*]] = xor i32 [[B]], [[A]]
1239
- ; CHECK-NEXT: [[XOR2:%.*]] = xor i32 [[C]], [[B]]
1240
- ; CHECK-NEXT: [[XOR3:%.*]] = xor i32 [[XOR2]], [[A]]
1241
- ; CHECK-NEXT: [[OR:%.*]] = or i32 [[XOR1]], [[XOR3]]
1235
+ ; CHECK-NEXT: [[OR:%.*]] = or i32 [[XOR1]], [[C]]
1242
1236
; CHECK-NEXT: ret i32 [[OR]]
1243
1237
;
1244
1238
%a = mul i32 %ax , 42
@@ -1257,9 +1251,7 @@ define i32 @or_xor_tree_0100(i32 %ax, i32 %bx, i32 %cx) {
1257
1251
; CHECK-NEXT: [[B:%.*]] = mul i32 [[BX:%.*]], 42
1258
1252
; CHECK-NEXT: [[C:%.*]] = mul i32 [[CX:%.*]], 42
1259
1253
; CHECK-NEXT: [[XOR1:%.*]] = xor i32 [[A]], [[B]]
1260
- ; CHECK-NEXT: [[XOR2:%.*]] = xor i32 [[B]], [[C]]
1261
- ; CHECK-NEXT: [[XOR3:%.*]] = xor i32 [[A]], [[XOR2]]
1262
- ; CHECK-NEXT: [[OR:%.*]] = or i32 [[XOR1]], [[XOR3]]
1254
+ ; CHECK-NEXT: [[OR:%.*]] = or i32 [[XOR1]], [[C]]
1263
1255
; CHECK-NEXT: ret i32 [[OR]]
1264
1256
;
1265
1257
%a = mul i32 %ax , 42
@@ -1278,9 +1270,7 @@ define i32 @or_xor_tree_0101(i32 %ax, i32 %bx, i32 %cx) {
1278
1270
; CHECK-NEXT: [[B:%.*]] = mul i32 [[BX:%.*]], 42
1279
1271
; CHECK-NEXT: [[C:%.*]] = mul i32 [[CX:%.*]], 42
1280
1272
; CHECK-NEXT: [[XOR1:%.*]] = xor i32 [[B]], [[A]]
1281
- ; CHECK-NEXT: [[XOR2:%.*]] = xor i32 [[B]], [[C]]
1282
- ; CHECK-NEXT: [[XOR3:%.*]] = xor i32 [[A]], [[XOR2]]
1283
- ; CHECK-NEXT: [[OR:%.*]] = or i32 [[XOR1]], [[XOR3]]
1273
+ ; CHECK-NEXT: [[OR:%.*]] = or i32 [[XOR1]], [[C]]
1284
1274
; CHECK-NEXT: ret i32 [[OR]]
1285
1275
;
1286
1276
%a = mul i32 %ax , 42
@@ -1299,9 +1289,7 @@ define i32 @or_xor_tree_0110(i32 %ax, i32 %bx, i32 %cx) {
1299
1289
; CHECK-NEXT: [[B:%.*]] = mul i32 [[BX:%.*]], 42
1300
1290
; CHECK-NEXT: [[C:%.*]] = mul i32 [[CX:%.*]], 42
1301
1291
; CHECK-NEXT: [[XOR1:%.*]] = xor i32 [[A]], [[B]]
1302
- ; CHECK-NEXT: [[XOR2:%.*]] = xor i32 [[C]], [[B]]
1303
- ; CHECK-NEXT: [[XOR3:%.*]] = xor i32 [[A]], [[XOR2]]
1304
- ; CHECK-NEXT: [[OR:%.*]] = or i32 [[XOR1]], [[XOR3]]
1292
+ ; CHECK-NEXT: [[OR:%.*]] = or i32 [[XOR1]], [[C]]
1305
1293
; CHECK-NEXT: ret i32 [[OR]]
1306
1294
;
1307
1295
%a = mul i32 %ax , 42
@@ -1320,9 +1308,7 @@ define i32 @or_xor_tree_0111(i32 %ax, i32 %bx, i32 %cx) {
1320
1308
; CHECK-NEXT: [[B:%.*]] = mul i32 [[BX:%.*]], 42
1321
1309
; CHECK-NEXT: [[C:%.*]] = mul i32 [[CX:%.*]], 42
1322
1310
; CHECK-NEXT: [[XOR1:%.*]] = xor i32 [[B]], [[A]]
1323
- ; CHECK-NEXT: [[XOR2:%.*]] = xor i32 [[C]], [[B]]
1324
- ; CHECK-NEXT: [[XOR3:%.*]] = xor i32 [[A]], [[XOR2]]
1325
- ; CHECK-NEXT: [[OR:%.*]] = or i32 [[XOR1]], [[XOR3]]
1311
+ ; CHECK-NEXT: [[OR:%.*]] = or i32 [[XOR1]], [[C]]
1326
1312
; CHECK-NEXT: ret i32 [[OR]]
1327
1313
;
1328
1314
%a = mul i32 %ax , 42
@@ -1360,9 +1346,7 @@ define i32 @or_xor_tree_1001(i32 %ax, i32 %bx, i32 %cx) {
1360
1346
; CHECK-NEXT: [[B:%.*]] = mul i32 [[BX:%.*]], 42
1361
1347
; CHECK-NEXT: [[C:%.*]] = mul i32 [[CX:%.*]], 42
1362
1348
; CHECK-NEXT: [[XOR1:%.*]] = xor i32 [[B]], [[A]]
1363
- ; CHECK-NEXT: [[XOR2:%.*]] = xor i32 [[B]], [[C]]
1364
- ; CHECK-NEXT: [[XOR3:%.*]] = xor i32 [[XOR2]], [[A]]
1365
- ; CHECK-NEXT: [[OR:%.*]] = or i32 [[XOR3]], [[XOR1]]
1349
+ ; CHECK-NEXT: [[OR:%.*]] = or i32 [[XOR1]], [[C]]
1366
1350
; CHECK-NEXT: ret i32 [[OR]]
1367
1351
;
1368
1352
%a = mul i32 %ax , 42
@@ -1381,9 +1365,7 @@ define i32 @or_xor_tree_1010(i32 %ax, i32 %bx, i32 %cx) {
1381
1365
; CHECK-NEXT: [[B:%.*]] = mul i32 [[BX:%.*]], 42
1382
1366
; CHECK-NEXT: [[C:%.*]] = mul i32 [[CX:%.*]], 42
1383
1367
; CHECK-NEXT: [[XOR1:%.*]] = xor i32 [[A]], [[B]]
1384
- ; CHECK-NEXT: [[XOR2:%.*]] = xor i32 [[C]], [[B]]
1385
- ; CHECK-NEXT: [[XOR3:%.*]] = xor i32 [[XOR2]], [[A]]
1386
- ; CHECK-NEXT: [[OR:%.*]] = or i32 [[XOR3]], [[XOR1]]
1368
+ ; CHECK-NEXT: [[OR:%.*]] = or i32 [[XOR1]], [[C]]
1387
1369
; CHECK-NEXT: ret i32 [[OR]]
1388
1370
;
1389
1371
%a = mul i32 %ax , 42
@@ -1402,9 +1384,7 @@ define i32 @or_xor_tree_1011(i32 %ax, i32 %bx, i32 %cx) {
1402
1384
; CHECK-NEXT: [[B:%.*]] = mul i32 [[BX:%.*]], 42
1403
1385
; CHECK-NEXT: [[C:%.*]] = mul i32 [[CX:%.*]], 42
1404
1386
; CHECK-NEXT: [[XOR1:%.*]] = xor i32 [[B]], [[A]]
1405
- ; CHECK-NEXT: [[XOR2:%.*]] = xor i32 [[C]], [[B]]
1406
- ; CHECK-NEXT: [[XOR3:%.*]] = xor i32 [[XOR2]], [[A]]
1407
- ; CHECK-NEXT: [[OR:%.*]] = or i32 [[XOR3]], [[XOR1]]
1387
+ ; CHECK-NEXT: [[OR:%.*]] = or i32 [[XOR1]], [[C]]
1408
1388
; CHECK-NEXT: ret i32 [[OR]]
1409
1389
;
1410
1390
%a = mul i32 %ax , 42
@@ -1423,9 +1403,7 @@ define i32 @or_xor_tree_1100(i32 %ax, i32 %bx, i32 %cx) {
1423
1403
; CHECK-NEXT: [[B:%.*]] = mul i32 [[BX:%.*]], 42
1424
1404
; CHECK-NEXT: [[C:%.*]] = mul i32 [[CX:%.*]], 42
1425
1405
; CHECK-NEXT: [[XOR1:%.*]] = xor i32 [[A]], [[B]]
1426
- ; CHECK-NEXT: [[XOR2:%.*]] = xor i32 [[B]], [[C]]
1427
- ; CHECK-NEXT: [[XOR3:%.*]] = xor i32 [[A]], [[XOR2]]
1428
- ; CHECK-NEXT: [[OR:%.*]] = or i32 [[XOR3]], [[XOR1]]
1406
+ ; CHECK-NEXT: [[OR:%.*]] = or i32 [[XOR1]], [[C]]
1429
1407
; CHECK-NEXT: ret i32 [[OR]]
1430
1408
;
1431
1409
%a = mul i32 %ax , 42
@@ -1444,9 +1422,7 @@ define i32 @or_xor_tree_1101(i32 %ax, i32 %bx, i32 %cx) {
1444
1422
; CHECK-NEXT: [[B:%.*]] = mul i32 [[BX:%.*]], 42
1445
1423
; CHECK-NEXT: [[C:%.*]] = mul i32 [[CX:%.*]], 42
1446
1424
; CHECK-NEXT: [[XOR1:%.*]] = xor i32 [[B]], [[A]]
1447
- ; CHECK-NEXT: [[XOR2:%.*]] = xor i32 [[B]], [[C]]
1448
- ; CHECK-NEXT: [[XOR3:%.*]] = xor i32 [[A]], [[XOR2]]
1449
- ; CHECK-NEXT: [[OR:%.*]] = or i32 [[XOR3]], [[XOR1]]
1425
+ ; CHECK-NEXT: [[OR:%.*]] = or i32 [[XOR1]], [[C]]
1450
1426
; CHECK-NEXT: ret i32 [[OR]]
1451
1427
;
1452
1428
%a = mul i32 %ax , 42
@@ -1465,9 +1441,7 @@ define i32 @or_xor_tree_1110(i32 %ax, i32 %bx, i32 %cx) {
1465
1441
; CHECK-NEXT: [[B:%.*]] = mul i32 [[BX:%.*]], 42
1466
1442
; CHECK-NEXT: [[C:%.*]] = mul i32 [[CX:%.*]], 42
1467
1443
; CHECK-NEXT: [[XOR1:%.*]] = xor i32 [[A]], [[B]]
1468
- ; CHECK-NEXT: [[XOR2:%.*]] = xor i32 [[C]], [[B]]
1469
- ; CHECK-NEXT: [[XOR3:%.*]] = xor i32 [[A]], [[XOR2]]
1470
- ; CHECK-NEXT: [[OR:%.*]] = or i32 [[XOR3]], [[XOR1]]
1444
+ ; CHECK-NEXT: [[OR:%.*]] = or i32 [[XOR1]], [[C]]
1471
1445
; CHECK-NEXT: ret i32 [[OR]]
1472
1446
;
1473
1447
%a = mul i32 %ax , 42
@@ -1486,9 +1460,7 @@ define i32 @or_xor_tree_1111(i32 %ax, i32 %bx, i32 %cx) {
1486
1460
; CHECK-NEXT: [[B:%.*]] = mul i32 [[BX:%.*]], 42
1487
1461
; CHECK-NEXT: [[C:%.*]] = mul i32 [[CX:%.*]], 42
1488
1462
; CHECK-NEXT: [[XOR1:%.*]] = xor i32 [[B]], [[A]]
1489
- ; CHECK-NEXT: [[XOR2:%.*]] = xor i32 [[C]], [[B]]
1490
- ; CHECK-NEXT: [[XOR3:%.*]] = xor i32 [[A]], [[XOR2]]
1491
- ; CHECK-NEXT: [[OR:%.*]] = or i32 [[XOR3]], [[XOR1]]
1463
+ ; CHECK-NEXT: [[OR:%.*]] = or i32 [[XOR1]], [[C]]
1492
1464
; CHECK-NEXT: ret i32 [[OR]]
1493
1465
;
1494
1466
%a = mul i32 %ax , 42
0 commit comments