Commit a9b3c0f
committed
[LV] Support argmin/argmax with strict predicates.
Extend handleMultiUseReductions to support strict predicates (>, <),
matching the first index instead of the last for non-strict predicates.
For strict predicates is detected, the transformation converts the
FindLastIV reduction to FindFirstIV by:
1. Checking the IV range to ensure it does not include the sentinel value (max).
2. Creating a new reduction with the appropriate FindFirstIV kind
(FindFirstIVSMin or FindFirstIVUMin based on the IV range)
3. Replacing the old reduction recipe with the new one1 parent ec78750 commit a9b3c0f
File tree
14 files changed
+1080
-257
lines changed- llvm
- include/llvm/Analysis
- lib
- Analysis
- Transforms/Vectorize
- test/Transforms/LoopVectorize
- AArch64
14 files changed
+1080
-257
lines changed| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
28 | 28 | | |
29 | 29 | | |
30 | 30 | | |
| 31 | + | |
31 | 32 | | |
32 | 33 | | |
33 | 34 | | |
| |||
310 | 311 | | |
311 | 312 | | |
312 | 313 | | |
| 314 | + | |
| 315 | + | |
| 316 | + | |
| 317 | + | |
| 318 | + | |
313 | 319 | | |
314 | 320 | | |
315 | 321 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
715 | 715 | | |
716 | 716 | | |
717 | 717 | | |
| 718 | + | |
| 719 | + | |
| 720 | + | |
| 721 | + | |
| 722 | + | |
| 723 | + | |
| 724 | + | |
| 725 | + | |
| 726 | + | |
| 727 | + | |
| 728 | + | |
| 729 | + | |
| 730 | + | |
| 731 | + | |
| 732 | + | |
| 733 | + | |
| 734 | + | |
| 735 | + | |
| 736 | + | |
| 737 | + | |
| 738 | + | |
| 739 | + | |
| 740 | + | |
| 741 | + | |
| 742 | + | |
| 743 | + | |
| 744 | + | |
| 745 | + | |
| 746 | + | |
| 747 | + | |
718 | 748 | | |
719 | 749 | | |
720 | 750 | | |
| |||
792 | 822 | | |
793 | 823 | | |
794 | 824 | | |
795 | | - | |
796 | | - | |
797 | | - | |
798 | | - | |
799 | | - | |
800 | | - | |
801 | | - | |
802 | | - | |
803 | | - | |
804 | | - | |
805 | | - | |
806 | | - | |
807 | | - | |
808 | | - | |
809 | | - | |
810 | | - | |
811 | | - | |
812 | | - | |
813 | | - | |
814 | | - | |
815 | | - | |
816 | | - | |
817 | | - | |
818 | | - | |
819 | | - | |
820 | | - | |
821 | | - | |
822 | | - | |
823 | | - | |
824 | | - | |
| 825 | + | |
825 | 826 | | |
826 | | - | |
| 827 | + | |
| 828 | + | |
827 | 829 | | |
828 | | - | |
| 830 | + | |
| 831 | + | |
829 | 832 | | |
830 | 833 | | |
831 | 834 | | |
832 | 835 | | |
833 | 836 | | |
834 | 837 | | |
835 | | - | |
| 838 | + | |
| 839 | + | |
836 | 840 | | |
837 | | - | |
| 841 | + | |
| 842 | + | |
838 | 843 | | |
839 | 844 | | |
840 | 845 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
8587 | 8587 | | |
8588 | 8588 | | |
8589 | 8589 | | |
8590 | | - | |
8591 | | - | |
| 8590 | + | |
8592 | 8591 | | |
8593 | 8592 | | |
8594 | 8593 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
13 | 13 | | |
14 | 14 | | |
15 | 15 | | |
| 16 | + | |
16 | 17 | | |
17 | 18 | | |
18 | 19 | | |
19 | 20 | | |
| 21 | + | |
20 | 22 | | |
21 | 23 | | |
22 | 24 | | |
| 25 | + | |
23 | 26 | | |
24 | 27 | | |
25 | 28 | | |
| |||
997 | 1000 | | |
998 | 1001 | | |
999 | 1002 | | |
1000 | | - | |
| 1003 | + | |
| 1004 | + | |
| 1005 | + | |
| 1006 | + | |
| 1007 | + | |
| 1008 | + | |
| 1009 | + | |
| 1010 | + | |
| 1011 | + | |
| 1012 | + | |
| 1013 | + | |
| 1014 | + | |
| 1015 | + | |
| 1016 | + | |
| 1017 | + | |
| 1018 | + | |
| 1019 | + | |
| 1020 | + | |
| 1021 | + | |
| 1022 | + | |
| 1023 | + | |
| 1024 | + | |
| 1025 | + | |
| 1026 | + | |
| 1027 | + | |
| 1028 | + | |
| 1029 | + | |
| 1030 | + | |
| 1031 | + | |
| 1032 | + | |
| 1033 | + | |
| 1034 | + | |
| 1035 | + | |
| 1036 | + | |
| 1037 | + | |
| 1038 | + | |
| 1039 | + | |
| 1040 | + | |
| 1041 | + | |
| 1042 | + | |
| 1043 | + | |
| 1044 | + | |
1001 | 1045 | | |
1002 | 1046 | | |
1003 | 1047 | | |
| |||
1080 | 1124 | | |
1081 | 1125 | | |
1082 | 1126 | | |
| 1127 | + | |
| 1128 | + | |
| 1129 | + | |
1083 | 1130 | | |
1084 | 1131 | | |
1085 | 1132 | | |
1086 | 1133 | | |
1087 | 1134 | | |
1088 | | - | |
| 1135 | + | |
| 1136 | + | |
1089 | 1137 | | |
1090 | 1138 | | |
1091 | | - | |
| 1139 | + | |
1092 | 1140 | | |
1093 | | - | |
| 1141 | + | |
1094 | 1142 | | |
1095 | | - | |
| 1143 | + | |
1096 | 1144 | | |
1097 | | - | |
| 1145 | + | |
1098 | 1146 | | |
1099 | 1147 | | |
1100 | 1148 | | |
1101 | 1149 | | |
1102 | 1150 | | |
1103 | | - | |
1104 | | - | |
1105 | | - | |
| 1151 | + | |
1106 | 1152 | | |
1107 | 1153 | | |
1108 | | - | |
1109 | | - | |
| 1154 | + | |
| 1155 | + | |
| 1156 | + | |
| 1157 | + | |
| 1158 | + | |
| 1159 | + | |
| 1160 | + | |
| 1161 | + | |
1110 | 1162 | | |
1111 | 1163 | | |
1112 | 1164 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
163 | 163 | | |
164 | 164 | | |
165 | 165 | | |
| 166 | + | |
166 | 167 | | |
167 | 168 | | |
168 | 169 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
146 | 146 | | |
147 | 147 | | |
148 | 148 | | |
149 | | - | |
150 | | - | |
151 | | - | |
| 149 | + | |
| 150 | + | |
| 151 | + | |
| 152 | + | |
152 | 153 | | |
153 | 154 | | |
154 | 155 | | |
| |||
0 commit comments