Commit 29e75d2
committed
[X86] Disable lowering constant build vectors to broadcasts on AVX512 targets
On AVX512 targets we're better off keeping constant vector at full width to ensure that they can be load folded into vector instructions, reducing register pressure.
If a vector constant remains as a basic load, X86FixupVectorConstantsPass will still convert this to a broadcast instruction for us.
Non-VLX targets are still seeing some regressions due to these being implicitly widened to 512-bit ops in isel patterns and not in the DAG, so I've limited this to just 512-bit vectors for now.
We still use lowerBuildVectorAsBroadcast on AVX512 targets if we're optimizing for size.1 parent c59cc2b commit 29e75d2
File tree
111 files changed
+93989
-97482
lines changed- llvm
- lib/Target/X86
- test/CodeGen/X86
Some content is hidden
Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.
111 files changed
+93989
-97482
lines changedLarge diffs are not rendered by default.
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
7646 | 7646 | | |
7647 | 7647 | | |
7648 | 7648 | | |
| 7649 | + | |
| 7650 | + | |
| 7651 | + | |
| 7652 | + | |
| 7653 | + | |
| 7654 | + | |
| 7655 | + | |
| 7656 | + | |
| 7657 | + | |
| 7658 | + | |
| 7659 | + | |
| 7660 | + | |
| 7661 | + | |
| 7662 | + | |
| 7663 | + | |
7649 | 7664 | | |
7650 | 7665 | | |
7651 | 7666 | | |
| |||
7771 | 7786 | | |
7772 | 7787 | | |
7773 | 7788 | | |
7774 | | - | |
7775 | | - | |
7776 | | - | |
7777 | | - | |
7778 | | - | |
7779 | | - | |
7780 | 7789 | | |
7781 | 7790 | | |
7782 | 7791 | | |
| |||
Lines changed: 10 additions & 20 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1478 | 1478 | | |
1479 | 1479 | | |
1480 | 1480 | | |
1481 | | - | |
1482 | | - | |
1483 | | - | |
1484 | | - | |
| 1481 | + | |
| 1482 | + | |
1485 | 1483 | | |
1486 | 1484 | | |
1487 | 1485 | | |
| |||
1493 | 1491 | | |
1494 | 1492 | | |
1495 | 1493 | | |
1496 | | - | |
1497 | | - | |
1498 | | - | |
1499 | | - | |
| 1494 | + | |
| 1495 | + | |
1500 | 1496 | | |
1501 | 1497 | | |
1502 | 1498 | | |
| |||
3235 | 3231 | | |
3236 | 3232 | | |
3237 | 3233 | | |
3238 | | - | |
3239 | | - | |
3240 | | - | |
3241 | | - | |
| 3234 | + | |
| 3235 | + | |
3242 | 3236 | | |
3243 | 3237 | | |
3244 | 3238 | | |
| |||
3252 | 3246 | | |
3253 | 3247 | | |
3254 | 3248 | | |
3255 | | - | |
3256 | | - | |
3257 | | - | |
3258 | | - | |
| 3249 | + | |
| 3250 | + | |
3259 | 3251 | | |
3260 | 3252 | | |
3261 | 3253 | | |
| |||
3762 | 3754 | | |
3763 | 3755 | | |
3764 | 3756 | | |
3765 | | - | |
3766 | | - | |
| 3757 | + | |
3767 | 3758 | | |
3768 | 3759 | | |
3769 | 3760 | | |
| |||
4015 | 4006 | | |
4016 | 4007 | | |
4017 | 4008 | | |
4018 | | - | |
4019 | | - | |
| 4009 | + | |
4020 | 4010 | | |
4021 | 4011 | | |
4022 | 4012 | | |
| |||
Lines changed: 10 additions & 16 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1205 | 1205 | | |
1206 | 1206 | | |
1207 | 1207 | | |
1208 | | - | |
1209 | | - | |
1210 | | - | |
1211 | | - | |
| 1208 | + | |
| 1209 | + | |
| 1210 | + | |
1212 | 1211 | | |
1213 | 1212 | | |
1214 | 1213 | | |
1215 | 1214 | | |
1216 | 1215 | | |
1217 | 1216 | | |
1218 | 1217 | | |
1219 | | - | |
1220 | | - | |
1221 | | - | |
1222 | | - | |
| 1218 | + | |
| 1219 | + | |
| 1220 | + | |
1223 | 1221 | | |
1224 | 1222 | | |
1225 | 1223 | | |
| |||
2574 | 2572 | | |
2575 | 2573 | | |
2576 | 2574 | | |
2577 | | - | |
2578 | | - | |
2579 | | - | |
2580 | | - | |
| 2575 | + | |
| 2576 | + | |
2581 | 2577 | | |
2582 | 2578 | | |
2583 | 2579 | | |
| |||
2589 | 2585 | | |
2590 | 2586 | | |
2591 | 2587 | | |
2592 | | - | |
2593 | | - | |
2594 | | - | |
2595 | | - | |
| 2588 | + | |
| 2589 | + | |
2596 | 2590 | | |
2597 | 2591 | | |
2598 | 2592 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1524 | 1524 | | |
1525 | 1525 | | |
1526 | 1526 | | |
1527 | | - | |
1528 | | - | |
| 1527 | + | |
| 1528 | + | |
1529 | 1529 | | |
1530 | 1530 | | |
1531 | 1531 | | |
| |||
1581 | 1581 | | |
1582 | 1582 | | |
1583 | 1583 | | |
1584 | | - | |
1585 | | - | |
| 1584 | + | |
| 1585 | + | |
1586 | 1586 | | |
1587 | 1587 | | |
1588 | 1588 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
303 | 303 | | |
304 | 304 | | |
305 | 305 | | |
306 | | - | |
| 306 | + | |
307 | 307 | | |
308 | 308 | | |
309 | 309 | | |
| |||
0 commit comments