Commit d65be16
authored
[AArch64][GlobalISel] Add combine for build_vector(unmerge, unmerge, undef, undef) (#165539)
This PR adds a new combine to the `post-legalizer-combiner` pass. The
new combine checks for vectors being unmerged and subsequently padded
with `G_IMPLICIT_DEF` values by building a new vector. If such a case is
found, the vector being unmerged is instead just concatenated with a
`G_IMPLICIT_DEF` that is as wide as the vector being unmerged.
This removes unnecessary `mov` instructions in a few places.1 parent 38811be commit d65be16
File tree
6 files changed
+131
-91
lines changed- llvm
- include/llvm
- CodeGen/GlobalISel
- Target/GlobalISel
- lib/CodeGen/GlobalISel
- test/CodeGen
- AArch64
- AMDGPU
6 files changed
+131
-91
lines changed| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
647 | 647 | | |
648 | 648 | | |
649 | 649 | | |
| 650 | + | |
| 651 | + | |
| 652 | + | |
| 653 | + | |
| 654 | + | |
| 655 | + | |
650 | 656 | | |
651 | 657 | | |
652 | 658 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
921 | 921 | | |
922 | 922 | | |
923 | 923 | | |
| 924 | + | |
| 925 | + | |
| 926 | + | |
| 927 | + | |
| 928 | + | |
| 929 | + | |
| 930 | + | |
| 931 | + | |
| 932 | + | |
924 | 933 | | |
925 | 934 | | |
926 | 935 | | |
| |||
930 | 939 | | |
931 | 940 | | |
932 | 941 | | |
933 | | - | |
| 942 | + | |
| 943 | + | |
934 | 944 | | |
935 | 945 | | |
936 | 946 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
3463 | 3463 | | |
3464 | 3464 | | |
3465 | 3465 | | |
| 3466 | + | |
| 3467 | + | |
| 3468 | + | |
| 3469 | + | |
| 3470 | + | |
| 3471 | + | |
| 3472 | + | |
| 3473 | + | |
| 3474 | + | |
| 3475 | + | |
| 3476 | + | |
| 3477 | + | |
| 3478 | + | |
| 3479 | + | |
| 3480 | + | |
| 3481 | + | |
| 3482 | + | |
| 3483 | + | |
| 3484 | + | |
| 3485 | + | |
| 3486 | + | |
| 3487 | + | |
| 3488 | + | |
| 3489 | + | |
| 3490 | + | |
| 3491 | + | |
| 3492 | + | |
| 3493 | + | |
| 3494 | + | |
| 3495 | + | |
| 3496 | + | |
| 3497 | + | |
| 3498 | + | |
| 3499 | + | |
| 3500 | + | |
| 3501 | + | |
| 3502 | + | |
| 3503 | + | |
| 3504 | + | |
| 3505 | + | |
| 3506 | + | |
| 3507 | + | |
| 3508 | + | |
| 3509 | + | |
| 3510 | + | |
| 3511 | + | |
| 3512 | + | |
| 3513 | + | |
| 3514 | + | |
| 3515 | + | |
| 3516 | + | |
| 3517 | + | |
| 3518 | + | |
| 3519 | + | |
| 3520 | + | |
| 3521 | + | |
| 3522 | + | |
| 3523 | + | |
| 3524 | + | |
| 3525 | + | |
| 3526 | + | |
| 3527 | + | |
| 3528 | + | |
| 3529 | + | |
| 3530 | + | |
| 3531 | + | |
| 3532 | + | |
| 3533 | + | |
| 3534 | + | |
| 3535 | + | |
| 3536 | + | |
| 3537 | + | |
| 3538 | + | |
| 3539 | + | |
| 3540 | + | |
| 3541 | + | |
| 3542 | + | |
| 3543 | + | |
| 3544 | + | |
| 3545 | + | |
| 3546 | + | |
| 3547 | + | |
3466 | 3548 | | |
3467 | 3549 | | |
3468 | 3550 | | |
| |||
8426 | 8508 | | |
8427 | 8509 | | |
8428 | 8510 | | |
8429 | | - | |
| 8511 | + | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
345 | 345 | | |
346 | 346 | | |
347 | 347 | | |
348 | | - | |
349 | | - | |
350 | | - | |
351 | | - | |
352 | | - | |
353 | | - | |
354 | | - | |
355 | | - | |
356 | | - | |
357 | | - | |
358 | | - | |
359 | | - | |
360 | | - | |
| 348 | + | |
| 349 | + | |
| 350 | + | |
| 351 | + | |
| 352 | + | |
361 | 353 | | |
362 | 354 | | |
363 | 355 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
5763 | 5763 | | |
5764 | 5764 | | |
5765 | 5765 | | |
5766 | | - | |
5767 | | - | |
5768 | | - | |
| 5766 | + | |
5769 | 5767 | | |
5770 | 5768 | | |
5771 | 5769 | | |
5772 | 5770 | | |
5773 | 5771 | | |
5774 | 5772 | | |
5775 | | - | |
5776 | | - | |
5777 | | - | |
| 5773 | + | |
5778 | 5774 | | |
5779 | 5775 | | |
5780 | 5776 | | |
| |||
5808 | 5804 | | |
5809 | 5805 | | |
5810 | 5806 | | |
5811 | | - | |
5812 | | - | |
5813 | | - | |
| 5807 | + | |
5814 | 5808 | | |
5815 | 5809 | | |
5816 | 5810 | | |
5817 | 5811 | | |
5818 | 5812 | | |
5819 | 5813 | | |
5820 | | - | |
5821 | | - | |
5822 | | - | |
| 5814 | + | |
5823 | 5815 | | |
5824 | 5816 | | |
5825 | 5817 | | |
| |||
6232 | 6224 | | |
6233 | 6225 | | |
6234 | 6226 | | |
6235 | | - | |
6236 | | - | |
6237 | | - | |
| 6227 | + | |
6238 | 6228 | | |
6239 | 6229 | | |
6240 | 6230 | | |
6241 | 6231 | | |
6242 | 6232 | | |
6243 | | - | |
6244 | | - | |
6245 | | - | |
| 6233 | + | |
6246 | 6234 | | |
6247 | 6235 | | |
6248 | 6236 | | |
| |||
6267 | 6255 | | |
6268 | 6256 | | |
6269 | 6257 | | |
6270 | | - | |
6271 | | - | |
6272 | | - | |
| 6258 | + | |
6273 | 6259 | | |
6274 | 6260 | | |
6275 | 6261 | | |
6276 | 6262 | | |
6277 | 6263 | | |
6278 | | - | |
6279 | | - | |
6280 | | - | |
| 6264 | + | |
6281 | 6265 | | |
6282 | 6266 | | |
6283 | 6267 | | |
| |||
6480 | 6464 | | |
6481 | 6465 | | |
6482 | 6466 | | |
6483 | | - | |
6484 | | - | |
6485 | | - | |
| 6467 | + | |
6486 | 6468 | | |
6487 | 6469 | | |
6488 | 6470 | | |
| |||
6509 | 6491 | | |
6510 | 6492 | | |
6511 | 6493 | | |
6512 | | - | |
6513 | | - | |
6514 | | - | |
| 6494 | + | |
6515 | 6495 | | |
6516 | 6496 | | |
6517 | 6497 | | |
| |||
6766 | 6746 | | |
6767 | 6747 | | |
6768 | 6748 | | |
6769 | | - | |
6770 | | - | |
6771 | | - | |
| 6749 | + | |
6772 | 6750 | | |
6773 | 6751 | | |
6774 | 6752 | | |
| |||
6817 | 6795 | | |
6818 | 6796 | | |
6819 | 6797 | | |
6820 | | - | |
6821 | | - | |
6822 | | - | |
| 6798 | + | |
6823 | 6799 | | |
6824 | 6800 | | |
6825 | 6801 | | |
| |||
Lines changed: 14 additions & 40 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
762 | 762 | | |
763 | 763 | | |
764 | 764 | | |
765 | | - | |
766 | | - | |
767 | | - | |
768 | | - | |
769 | | - | |
770 | | - | |
771 | | - | |
772 | | - | |
773 | | - | |
774 | | - | |
775 | | - | |
776 | | - | |
777 | | - | |
778 | | - | |
779 | | - | |
780 | | - | |
781 | | - | |
782 | | - | |
783 | | - | |
| 765 | + | |
| 766 | + | |
| 767 | + | |
| 768 | + | |
| 769 | + | |
| 770 | + | |
| 771 | + | |
784 | 772 | | |
785 | 773 | | |
786 | 774 | | |
| |||
803 | 791 | | |
804 | 792 | | |
805 | 793 | | |
806 | | - | |
807 | | - | |
808 | | - | |
809 | | - | |
810 | | - | |
811 | | - | |
812 | | - | |
813 | | - | |
814 | | - | |
815 | | - | |
816 | | - | |
817 | | - | |
818 | | - | |
819 | | - | |
820 | | - | |
821 | | - | |
822 | | - | |
823 | | - | |
824 | | - | |
| 794 | + | |
| 795 | + | |
| 796 | + | |
| 797 | + | |
| 798 | + | |
| 799 | + | |
| 800 | + | |
825 | 801 | | |
826 | 802 | | |
827 | 803 | | |
| |||
842 | 818 | | |
843 | 819 | | |
844 | 820 | | |
845 | | - | |
846 | | - | |
0 commit comments