Commit 416e891
committed
[Reland][InstCombine] Fold
This patch further improves the simplification of pattern `icmp eq/ne
min|max(X, Y), Z` as discussed in
[D156238](https://reviews.llvm.org/D156238).
When `X < Z`:
`min(X, Y) == Z -> false`
`min(X, Y) != Z -> true`
`max(X, Y) == Z -> Y == Z`
`max(Y, Z) != Z -> Y != Z`
When `X > Z`:
`max(X, Y) == Z -> false`
`max(X, Y) != Z -> true`
`min(X, Y) == Z -> Y == Z`
`min(Y, Z) != Z -> Y != Z`
Alive2: https://alive2.llvm.org/ce/z/evkmaqicmp eq/ne min|max(X, Y), Z (#67087)1 parent 7e5c267 commit 416e891
File tree
6 files changed
+92
-64
lines changed- llvm
- lib/Transforms/InstCombine
- test/Transforms/InstCombine
6 files changed
+92
-64
lines changed| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
5022 | 5022 | | |
5023 | 5023 | | |
5024 | 5024 | | |
| 5025 | + | |
| 5026 | + | |
| 5027 | + | |
| 5028 | + | |
| 5029 | + | |
| 5030 | + | |
5025 | 5031 | | |
5026 | 5032 | | |
5027 | 5033 | | |
| |||
5038 | 5044 | | |
5039 | 5045 | | |
5040 | 5046 | | |
5041 | | - | |
5042 | | - | |
5043 | | - | |
5044 | | - | |
5045 | | - | |
5046 | | - | |
| 5047 | + | |
| 5048 | + | |
| 5049 | + | |
| 5050 | + | |
| 5051 | + | |
| 5052 | + | |
| 5053 | + | |
| 5054 | + | |
| 5055 | + | |
| 5056 | + | |
| 5057 | + | |
| 5058 | + | |
| 5059 | + | |
| 5060 | + | |
| 5061 | + | |
| 5062 | + | |
| 5063 | + | |
| 5064 | + | |
| 5065 | + | |
| 5066 | + | |
| 5067 | + | |
| 5068 | + | |
| 5069 | + | |
| 5070 | + | |
| 5071 | + | |
| 5072 | + | |
| 5073 | + | |
| 5074 | + | |
| 5075 | + | |
5047 | 5076 | | |
5048 | 5077 | | |
5049 | 5078 | | |
| |||
5054 | 5083 | | |
5055 | 5084 | | |
5056 | 5085 | | |
5057 | | - | |
5058 | | - | |
5059 | | - | |
5060 | | - | |
5061 | | - | |
5062 | | - | |
5063 | | - | |
5064 | 5086 | | |
5065 | 5087 | | |
5066 | 5088 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
10 | 10 | | |
11 | 11 | | |
12 | 12 | | |
13 | | - | |
| 13 | + | |
14 | 14 | | |
15 | 15 | | |
16 | 16 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
370 | 370 | | |
371 | 371 | | |
372 | 372 | | |
373 | | - | |
| 373 | + | |
374 | 374 | | |
375 | | - | |
| 375 | + | |
376 | 376 | | |
377 | 377 | | |
378 | 378 | | |
| |||
429 | 429 | | |
430 | 430 | | |
431 | 431 | | |
432 | | - | |
| 432 | + | |
433 | 433 | | |
434 | | - | |
| 434 | + | |
435 | 435 | | |
436 | 436 | | |
437 | 437 | | |
| |||
602 | 602 | | |
603 | 603 | | |
604 | 604 | | |
605 | | - | |
606 | | - | |
607 | | - | |
608 | | - | |
| 605 | + | |
| 606 | + | |
609 | 607 | | |
610 | 608 | | |
611 | 609 | | |
| |||
657 | 655 | | |
658 | 656 | | |
659 | 657 | | |
660 | | - | |
661 | | - | |
662 | | - | |
663 | | - | |
| 658 | + | |
| 659 | + | |
664 | 660 | | |
665 | 661 | | |
666 | 662 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
465 | 465 | | |
466 | 466 | | |
467 | 467 | | |
468 | | - | |
469 | | - | |
470 | | - | |
471 | | - | |
| 468 | + | |
| 469 | + | |
472 | 470 | | |
473 | 471 | | |
474 | 472 | | |
| |||
520 | 518 | | |
521 | 519 | | |
522 | 520 | | |
523 | | - | |
524 | | - | |
525 | | - | |
526 | | - | |
| 521 | + | |
| 522 | + | |
527 | 523 | | |
528 | 524 | | |
529 | 525 | | |
| |||
693 | 689 | | |
694 | 690 | | |
695 | 691 | | |
696 | | - | |
| 692 | + | |
697 | 693 | | |
698 | | - | |
| 694 | + | |
699 | 695 | | |
700 | 696 | | |
701 | 697 | | |
| |||
752 | 748 | | |
753 | 749 | | |
754 | 750 | | |
755 | | - | |
| 751 | + | |
756 | 752 | | |
757 | | - | |
| 753 | + | |
758 | 754 | | |
759 | 755 | | |
760 | 756 | | |
| |||
1117 | 1113 | | |
1118 | 1114 | | |
1119 | 1115 | | |
1120 | | - | |
| 1116 | + | |
1121 | 1117 | | |
1122 | | - | |
| 1118 | + | |
1123 | 1119 | | |
1124 | 1120 | | |
1125 | 1121 | | |
| |||
1275 | 1271 | | |
1276 | 1272 | | |
1277 | 1273 | | |
| 1274 | + | |
| 1275 | + | |
| 1276 | + | |
| 1277 | + | |
| 1278 | + | |
| 1279 | + | |
| 1280 | + | |
| 1281 | + | |
| 1282 | + | |
| 1283 | + | |
| 1284 | + | |
| 1285 | + | |
| 1286 | + | |
| 1287 | + | |
| 1288 | + | |
| 1289 | + | |
| 1290 | + | |
| 1291 | + | |
| 1292 | + | |
| 1293 | + | |
| 1294 | + | |
| 1295 | + | |
1278 | 1296 | | |
1279 | 1297 | | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
370 | 370 | | |
371 | 371 | | |
372 | 372 | | |
373 | | - | |
| 373 | + | |
374 | 374 | | |
375 | | - | |
| 375 | + | |
376 | 376 | | |
377 | 377 | | |
378 | 378 | | |
| |||
429 | 429 | | |
430 | 430 | | |
431 | 431 | | |
432 | | - | |
| 432 | + | |
433 | 433 | | |
434 | | - | |
| 434 | + | |
435 | 435 | | |
436 | 436 | | |
437 | 437 | | |
| |||
602 | 602 | | |
603 | 603 | | |
604 | 604 | | |
605 | | - | |
606 | | - | |
607 | | - | |
608 | | - | |
| 605 | + | |
| 606 | + | |
609 | 607 | | |
610 | 608 | | |
611 | 609 | | |
| |||
657 | 655 | | |
658 | 656 | | |
659 | 657 | | |
660 | | - | |
661 | | - | |
662 | | - | |
663 | | - | |
| 658 | + | |
| 659 | + | |
664 | 660 | | |
665 | 661 | | |
666 | 662 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
366 | 366 | | |
367 | 367 | | |
368 | 368 | | |
369 | | - | |
370 | | - | |
371 | | - | |
372 | | - | |
| 369 | + | |
| 370 | + | |
373 | 371 | | |
374 | 372 | | |
375 | 373 | | |
| |||
421 | 419 | | |
422 | 420 | | |
423 | 421 | | |
424 | | - | |
425 | | - | |
426 | | - | |
427 | | - | |
| 422 | + | |
| 423 | + | |
428 | 424 | | |
429 | 425 | | |
430 | 426 | | |
| |||
594 | 590 | | |
595 | 591 | | |
596 | 592 | | |
597 | | - | |
| 593 | + | |
598 | 594 | | |
599 | | - | |
| 595 | + | |
600 | 596 | | |
601 | 597 | | |
602 | 598 | | |
| |||
653 | 649 | | |
654 | 650 | | |
655 | 651 | | |
656 | | - | |
| 652 | + | |
657 | 653 | | |
658 | | - | |
| 654 | + | |
659 | 655 | | |
660 | 656 | | |
661 | 657 | | |
| |||
0 commit comments