Commit 1070f6b
committed
[X86] SimplifyDemandedVectorEltsForTargetNode - reduce the size of VPERMV/VPERMV3 nodes if the upper elements are not demanded
With AVX512VL targets, use 128/256-bit VPERMV/VPERMV3 nodes when we only need the lower elements.
This exposed an issue with VPERMV3(X,M,Y) -> VPERMV(M,CONCAT(X,Y)) folds when X==Y, so I had to move that fold after the other VPERMV3 folds/canonicalizations.
I also took the opportunity to try to support the VPERMV(M,CONCAT(Y,X)) case as well, but we can revert this if we'd prefer to avoid the extra VSHUFF64X2 node for non-constant shuffle masks (but separate loads) instead.1 parent 2426ac6 commit 1070f6b
File tree
10 files changed
+256
-182
lines changed- llvm
- lib/Target/X86
- test/CodeGen/X86
10 files changed
+256
-182
lines changed| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
42675 | 42675 | | |
42676 | 42676 | | |
42677 | 42677 | | |
42678 | | - | |
42679 | | - | |
42680 | | - | |
42681 | | - | |
42682 | | - | |
42683 | | - | |
42684 | | - | |
42685 | | - | |
42686 | | - | |
42687 | | - | |
42688 | | - | |
42689 | | - | |
42690 | | - | |
42691 | | - | |
42692 | | - | |
42693 | | - | |
42694 | 42678 | | |
42695 | 42679 | | |
42696 | 42680 | | |
42697 | 42681 | | |
42698 | | - | |
42699 | | - | |
42700 | | - | |
42701 | | - | |
42702 | | - | |
42703 | | - | |
42704 | | - | |
42705 | | - | |
42706 | | - | |
42707 | | - | |
42708 | | - | |
42709 | | - | |
42710 | | - | |
42711 | | - | |
42712 | 42682 | | |
42713 | 42683 | | |
42714 | 42684 | | |
| |||
42743 | 42713 | | |
42744 | 42714 | | |
42745 | 42715 | | |
| 42716 | + | |
| 42717 | + | |
| 42718 | + | |
| 42719 | + | |
| 42720 | + | |
| 42721 | + | |
| 42722 | + | |
| 42723 | + | |
| 42724 | + | |
| 42725 | + | |
| 42726 | + | |
| 42727 | + | |
| 42728 | + | |
| 42729 | + | |
| 42730 | + | |
| 42731 | + | |
| 42732 | + | |
| 42733 | + | |
| 42734 | + | |
| 42735 | + | |
| 42736 | + | |
| 42737 | + | |
| 42738 | + | |
| 42739 | + | |
| 42740 | + | |
| 42741 | + | |
| 42742 | + | |
| 42743 | + | |
| 42744 | + | |
| 42745 | + | |
| 42746 | + | |
42746 | 42747 | | |
42747 | 42748 | | |
42748 | 42749 | | |
| |||
43814 | 43815 | | |
43815 | 43816 | | |
43816 | 43817 | | |
| 43818 | + | |
| 43819 | + | |
| 43820 | + | |
| 43821 | + | |
| 43822 | + | |
| 43823 | + | |
| 43824 | + | |
| 43825 | + | |
| 43826 | + | |
| 43827 | + | |
| 43828 | + | |
| 43829 | + | |
| 43830 | + | |
| 43831 | + | |
| 43832 | + | |
| 43833 | + | |
| 43834 | + | |
| 43835 | + | |
| 43836 | + | |
| 43837 | + | |
| 43838 | + | |
| 43839 | + | |
| 43840 | + | |
| 43841 | + | |
| 43842 | + | |
| 43843 | + | |
| 43844 | + | |
| 43845 | + | |
| 43846 | + | |
| 43847 | + | |
| 43848 | + | |
| 43849 | + | |
| 43850 | + | |
| 43851 | + | |
| 43852 | + | |
| 43853 | + | |
| 43854 | + | |
| 43855 | + | |
| 43856 | + | |
| 43857 | + | |
| 43858 | + | |
| 43859 | + | |
| 43860 | + | |
| 43861 | + | |
| 43862 | + | |
| 43863 | + | |
| 43864 | + | |
| 43865 | + | |
| 43866 | + | |
| 43867 | + | |
| 43868 | + | |
| 43869 | + | |
| 43870 | + | |
| 43871 | + | |
| 43872 | + | |
| 43873 | + | |
| 43874 | + | |
| 43875 | + | |
| 43876 | + | |
| 43877 | + | |
| 43878 | + | |
| 43879 | + | |
| 43880 | + | |
43817 | 43881 | | |
43818 | 43882 | | |
43819 | 43883 | | |
| |||
Lines changed: 23 additions & 23 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
749 | 749 | | |
750 | 750 | | |
751 | 751 | | |
752 | | - | |
753 | | - | |
754 | | - | |
755 | | - | |
| 752 | + | |
| 753 | + | |
| 754 | + | |
| 755 | + | |
756 | 756 | | |
757 | 757 | | |
758 | 758 | | |
| |||
763 | 763 | | |
764 | 764 | | |
765 | 765 | | |
766 | | - | |
| 766 | + | |
767 | 767 | | |
768 | 768 | | |
769 | 769 | | |
| |||
870 | 870 | | |
871 | 871 | | |
872 | 872 | | |
873 | | - | |
| 873 | + | |
874 | 874 | | |
875 | 875 | | |
876 | 876 | | |
| |||
883 | 883 | | |
884 | 884 | | |
885 | 885 | | |
886 | | - | |
| 886 | + | |
887 | 887 | | |
888 | 888 | | |
889 | 889 | | |
| |||
1000 | 1000 | | |
1001 | 1001 | | |
1002 | 1002 | | |
1003 | | - | |
1004 | | - | |
1005 | | - | |
1006 | | - | |
| 1003 | + | |
| 1004 | + | |
| 1005 | + | |
| 1006 | + | |
1007 | 1007 | | |
1008 | 1008 | | |
1009 | 1009 | | |
| |||
4610 | 4610 | | |
4611 | 4611 | | |
4612 | 4612 | | |
4613 | | - | |
4614 | 4613 | | |
4615 | | - | |
4616 | | - | |
| 4614 | + | |
| 4615 | + | |
| 4616 | + | |
4617 | 4617 | | |
4618 | 4618 | | |
4619 | 4619 | | |
| |||
4623 | 4623 | | |
4624 | 4624 | | |
4625 | 4625 | | |
4626 | | - | |
4627 | 4626 | | |
4628 | | - | |
4629 | | - | |
| 4627 | + | |
| 4628 | + | |
| 4629 | + | |
4630 | 4630 | | |
4631 | 4631 | | |
4632 | 4632 | | |
| |||
4868 | 4868 | | |
4869 | 4869 | | |
4870 | 4870 | | |
4871 | | - | |
4872 | 4871 | | |
4873 | | - | |
4874 | | - | |
| 4872 | + | |
| 4873 | + | |
| 4874 | + | |
4875 | 4875 | | |
4876 | 4876 | | |
4877 | 4877 | | |
| |||
4881 | 4881 | | |
4882 | 4882 | | |
4883 | 4883 | | |
4884 | | - | |
4885 | 4884 | | |
4886 | | - | |
4887 | | - | |
| 4885 | + | |
| 4886 | + | |
| 4887 | + | |
4888 | 4888 | | |
4889 | 4889 | | |
4890 | 4890 | | |
| |||
Lines changed: 4 additions & 4 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
644 | 644 | | |
645 | 645 | | |
646 | 646 | | |
647 | | - | |
| 647 | + | |
648 | 648 | | |
649 | 649 | | |
650 | 650 | | |
| |||
653 | 653 | | |
654 | 654 | | |
655 | 655 | | |
656 | | - | |
| 656 | + | |
657 | 657 | | |
658 | 658 | | |
659 | 659 | | |
| |||
738 | 738 | | |
739 | 739 | | |
740 | 740 | | |
741 | | - | |
| 741 | + | |
742 | 742 | | |
743 | 743 | | |
744 | 744 | | |
| |||
748 | 748 | | |
749 | 749 | | |
750 | 750 | | |
751 | | - | |
| 751 | + | |
752 | 752 | | |
753 | 753 | | |
754 | 754 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1113 | 1113 | | |
1114 | 1114 | | |
1115 | 1115 | | |
1116 | | - | |
1117 | | - | |
| 1116 | + | |
| 1117 | + | |
1118 | 1118 | | |
1119 | 1119 | | |
1120 | 1120 | | |
| |||
1124 | 1124 | | |
1125 | 1125 | | |
1126 | 1126 | | |
1127 | | - | |
1128 | | - | |
1129 | | - | |
| 1127 | + | |
| 1128 | + | |
| 1129 | + | |
1130 | 1130 | | |
1131 | 1131 | | |
1132 | 1132 | | |
1133 | 1133 | | |
1134 | | - | |
| 1134 | + | |
1135 | 1135 | | |
1136 | 1136 | | |
1137 | 1137 | | |
| |||
0 commit comments