Commit 113aa0f
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.
Builds on top of #141431.
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 2864afb commit 113aa0f
File tree
14 files changed
+1115
-247
lines changed- llvm
- include/llvm/Analysis
- lib
- Analysis
- Transforms/Vectorize
- test/Transforms/LoopVectorize
- AArch64
14 files changed
+1115
-247
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 | |
|---|---|---|---|
| |||
8576 | 8576 | | |
8577 | 8577 | | |
8578 | 8578 | | |
8579 | | - | |
8580 | | - | |
| 8579 | + | |
8581 | 8580 | | |
8582 | 8581 | | |
8583 | 8582 | | |
| |||
| 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