Commit 7fe60a7
authored
[AArch64][SVE] Avoid movprfx by reusing register for _UNDEF pseudos. (#166926)
For predicated SVE instructions where we know that the inactive lanes
are undef, it is better to pick a destination register that is not
unique. This avoids introducing a movprfx to copy a unique register to
the destination operand, which would be needed to comply with the tied
operand constraints.
For example:
```
%src1 = COPY $z1
%src2 = COPY $z2
%dst = SDIV_ZPZZ_S_UNDEF %p, %src1, %src2
```
Here it is beneficial to pick $z1 or $z2 as the destination register,
because if it would have chosen a unique register (e.g. $z0) then the
pseudo expand pass would need to insert a MOVPRFX to expand the
operation into:
```
$z0 = SDIV_ZPZZ_S_UNDEF $p0, $z1, $z2
->
$z0 = MOVPRFX $z1
$z0 = SDIV_ZPmZ_S $p0, $z0, $z2
```
By picking $z1 directly, we'd get:
```
$z1 = SDIV_ZPmZ_S, $p0 $z1, $z2
```1 parent e1f8690 commit 7fe60a7
File tree
30 files changed
+417
-527
lines changed- llvm
- lib/Target/AArch64
- test
- CodeGen/AArch64
- Transforms/LoopStrengthReduce/AArch64
30 files changed
+417
-527
lines changed| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1123 | 1123 | | |
1124 | 1124 | | |
1125 | 1125 | | |
1126 | | - | |
1127 | | - | |
1128 | | - | |
1129 | | - | |
1130 | | - | |
1131 | | - | |
| 1126 | + | |
| 1127 | + | |
| 1128 | + | |
| 1129 | + | |
1132 | 1130 | | |
1133 | | - | |
1134 | | - | |
1135 | | - | |
1136 | | - | |
| 1131 | + | |
| 1132 | + | |
1137 | 1133 | | |
| 1134 | + | |
| 1135 | + | |
| 1136 | + | |
| 1137 | + | |
| 1138 | + | |
| 1139 | + | |
| 1140 | + | |
| 1141 | + | |
| 1142 | + | |
| 1143 | + | |
| 1144 | + | |
| 1145 | + | |
1138 | 1146 | | |
1139 | 1147 | | |
1140 | 1148 | | |
1141 | 1149 | | |
1142 | | - | |
1143 | 1150 | | |
| 1151 | + | |
| 1152 | + | |
| 1153 | + | |
| 1154 | + | |
| 1155 | + | |
| 1156 | + | |
| 1157 | + | |
| 1158 | + | |
| 1159 | + | |
| 1160 | + | |
| 1161 | + | |
| 1162 | + | |
| 1163 | + | |
| 1164 | + | |
| 1165 | + | |
| 1166 | + | |
| 1167 | + | |
| 1168 | + | |
| 1169 | + | |
| 1170 | + | |
| 1171 | + | |
| 1172 | + | |
| 1173 | + | |
| 1174 | + | |
| 1175 | + | |
| 1176 | + | |
| 1177 | + | |
| 1178 | + | |
| 1179 | + | |
| 1180 | + | |
| 1181 | + | |
| 1182 | + | |
| 1183 | + | |
| 1184 | + | |
| 1185 | + | |
| 1186 | + | |
| 1187 | + | |
| 1188 | + | |
| 1189 | + | |
| 1190 | + | |
| 1191 | + | |
| 1192 | + | |
| 1193 | + | |
| 1194 | + | |
| 1195 | + | |
| 1196 | + | |
| 1197 | + | |
| 1198 | + | |
| 1199 | + | |
| 1200 | + | |
| 1201 | + | |
| 1202 | + | |
| 1203 | + | |
| 1204 | + | |
1144 | 1205 | | |
1145 | 1206 | | |
1146 | 1207 | | |
| |||
1153 | 1214 | | |
1154 | 1215 | | |
1155 | 1216 | | |
1156 | | - | |
1157 | | - | |
| 1217 | + | |
1158 | 1218 | | |
1159 | 1219 | | |
1160 | 1220 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
52 | 52 | | |
53 | 53 | | |
54 | 54 | | |
55 | | - | |
56 | 55 | | |
| 56 | + | |
57 | 57 | | |
58 | | - | |
59 | | - | |
60 | | - | |
| 58 | + | |
| 59 | + | |
61 | 60 | | |
62 | 61 | | |
63 | 62 | | |
| |||
Lines changed: 9 additions & 13 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
14 | 14 | | |
15 | 15 | | |
16 | 16 | | |
17 | | - | |
18 | | - | |
| 17 | + | |
19 | 18 | | |
20 | 19 | | |
21 | 20 | | |
22 | 21 | | |
23 | | - | |
| 22 | + | |
24 | 23 | | |
25 | 24 | | |
26 | 25 | | |
| |||
225 | 224 | | |
226 | 225 | | |
227 | 226 | | |
228 | | - | |
229 | | - | |
| 227 | + | |
230 | 228 | | |
231 | | - | |
232 | | - | |
233 | | - | |
234 | | - | |
235 | | - | |
236 | | - | |
237 | | - | |
238 | | - | |
| 229 | + | |
| 230 | + | |
| 231 | + | |
| 232 | + | |
| 233 | + | |
| 234 | + | |
239 | 235 | | |
240 | 236 | | |
241 | 237 | | |
| |||
Lines changed: 3 additions & 5 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
200 | 200 | | |
201 | 201 | | |
202 | 202 | | |
203 | | - | |
204 | | - | |
205 | | - | |
206 | | - | |
| 203 | + | |
| 204 | + | |
207 | 205 | | |
208 | | - | |
| 206 | + | |
209 | 207 | | |
210 | 208 | | |
211 | 209 | | |
| |||
Lines changed: 4 additions & 5 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
17 | 17 | | |
18 | 18 | | |
19 | 19 | | |
20 | | - | |
21 | | - | |
22 | | - | |
23 | | - | |
24 | | - | |
| 20 | + | |
| 21 | + | |
| 22 | + | |
| 23 | + | |
25 | 24 | | |
26 | 25 | | |
27 | 26 | | |
| |||
Lines changed: 3 additions & 4 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
18 | 18 | | |
19 | 19 | | |
20 | 20 | | |
21 | | - | |
22 | | - | |
| 21 | + | |
23 | 22 | | |
24 | | - | |
25 | | - | |
| 23 | + | |
| 24 | + | |
26 | 25 | | |
27 | 26 | | |
28 | 27 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1148 | 1148 | | |
1149 | 1149 | | |
1150 | 1150 | | |
1151 | | - | |
1152 | | - | |
| 1151 | + | |
1153 | 1152 | | |
1154 | 1153 | | |
1155 | | - | |
| 1154 | + | |
1156 | 1155 | | |
1157 | 1156 | | |
1158 | 1157 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
55 | 55 | | |
56 | 56 | | |
57 | 57 | | |
58 | | - | |
59 | | - | |
| 58 | + | |
60 | 59 | | |
61 | | - | |
| 60 | + | |
62 | 61 | | |
63 | 62 | | |
64 | 63 | | |
| |||
154 | 153 | | |
155 | 154 | | |
156 | 155 | | |
157 | | - | |
158 | | - | |
| 156 | + | |
159 | 157 | | |
160 | | - | |
| 158 | + | |
161 | 159 | | |
162 | 160 | | |
163 | 161 | | |
| |||
253 | 251 | | |
254 | 252 | | |
255 | 253 | | |
256 | | - | |
257 | | - | |
| 254 | + | |
258 | 255 | | |
259 | | - | |
| 256 | + | |
260 | 257 | | |
261 | 258 | | |
262 | 259 | | |
| |||
660 | 657 | | |
661 | 658 | | |
662 | 659 | | |
663 | | - | |
664 | | - | |
| 660 | + | |
665 | 661 | | |
666 | | - | |
| 662 | + | |
667 | 663 | | |
668 | 664 | | |
669 | 665 | | |
| |||
771 | 767 | | |
772 | 768 | | |
773 | 769 | | |
774 | | - | |
775 | | - | |
| 770 | + | |
776 | 771 | | |
777 | | - | |
| 772 | + | |
778 | 773 | | |
779 | 774 | | |
780 | 775 | | |
| |||
881 | 876 | | |
882 | 877 | | |
883 | 878 | | |
884 | | - | |
885 | | - | |
| 879 | + | |
886 | 880 | | |
887 | | - | |
| 881 | + | |
888 | 882 | | |
889 | 883 | | |
890 | 884 | | |
| |||
990 | 984 | | |
991 | 985 | | |
992 | 986 | | |
993 | | - | |
994 | | - | |
| 987 | + | |
995 | 988 | | |
996 | | - | |
| 989 | + | |
997 | 990 | | |
998 | 991 | | |
999 | 992 | | |
| |||
1089 | 1082 | | |
1090 | 1083 | | |
1091 | 1084 | | |
1092 | | - | |
1093 | | - | |
| 1085 | + | |
1094 | 1086 | | |
1095 | | - | |
| 1087 | + | |
1096 | 1088 | | |
1097 | 1089 | | |
1098 | 1090 | | |
| |||
1188 | 1180 | | |
1189 | 1181 | | |
1190 | 1182 | | |
1191 | | - | |
1192 | | - | |
| 1183 | + | |
1193 | 1184 | | |
1194 | | - | |
| 1185 | + | |
1195 | 1186 | | |
1196 | 1187 | | |
1197 | 1188 | | |
| |||
1827 | 1818 | | |
1828 | 1819 | | |
1829 | 1820 | | |
1830 | | - | |
1831 | | - | |
| 1821 | + | |
1832 | 1822 | | |
1833 | | - | |
| 1823 | + | |
1834 | 1824 | | |
1835 | 1825 | | |
1836 | 1826 | | |
| |||
1926 | 1916 | | |
1927 | 1917 | | |
1928 | 1918 | | |
1929 | | - | |
1930 | | - | |
| 1919 | + | |
1931 | 1920 | | |
1932 | | - | |
| 1921 | + | |
1933 | 1922 | | |
1934 | 1923 | | |
1935 | 1924 | | |
| |||
2025 | 2014 | | |
2026 | 2015 | | |
2027 | 2016 | | |
2028 | | - | |
2029 | | - | |
| 2017 | + | |
2030 | 2018 | | |
2031 | | - | |
| 2019 | + | |
2032 | 2020 | | |
2033 | 2021 | | |
2034 | 2022 | | |
| |||
0 commit comments