Commit 07a31ad
authored
[X86] EltsFromConsecutiveLoads - recognise reverse load patterns. (#168706)
See if we can create a vector load from the src elements in reverse and
then shuffle these back into place.
SLP will (usually) catch this in the middle-end, but there are a few
BUILD_VECTOR scalarizations etc. that appear during DAG legalization.
I did start looking at a more general permute fold, but I haven't found
any good test examples for this yet - happy to take another look if
somebody has examples.1 parent e44646b commit 07a31ad
File tree
7 files changed
+163
-502
lines changed- llvm
- lib/Target/X86
- test/CodeGen/X86
7 files changed
+163
-502
lines changed| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
7557 | 7557 | | |
7558 | 7558 | | |
7559 | 7559 | | |
| 7560 | + | |
| 7561 | + | |
| 7562 | + | |
| 7563 | + | |
| 7564 | + | |
| 7565 | + | |
| 7566 | + | |
| 7567 | + | |
| 7568 | + | |
| 7569 | + | |
| 7570 | + | |
| 7571 | + | |
| 7572 | + | |
7560 | 7573 | | |
7561 | 7574 | | |
7562 | 7575 | | |
| |||
59490 | 59503 | | |
59491 | 59504 | | |
59492 | 59505 | | |
59493 | | - | |
59494 | | - | |
| 59506 | + | |
| 59507 | + | |
59495 | 59508 | | |
59496 | 59509 | | |
59497 | 59510 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
844 | 844 | | |
845 | 845 | | |
846 | 846 | | |
847 | | - | |
848 | | - | |
849 | | - | |
850 | | - | |
851 | | - | |
| 847 | + | |
| 848 | + | |
| 849 | + | |
852 | 850 | | |
853 | | - | |
| 851 | + | |
854 | 852 | | |
855 | 853 | | |
856 | 854 | | |
| |||
2071 | 2069 | | |
2072 | 2070 | | |
2073 | 2071 | | |
2074 | | - | |
2075 | | - | |
2076 | | - | |
2077 | | - | |
2078 | | - | |
| 2072 | + | |
| 2073 | + | |
| 2074 | + | |
2079 | 2075 | | |
2080 | | - | |
| 2076 | + | |
2081 | 2077 | | |
2082 | 2078 | | |
2083 | 2079 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
417 | 417 | | |
418 | 418 | | |
419 | 419 | | |
420 | | - | |
421 | | - | |
422 | | - | |
| 420 | + | |
| 421 | + | |
423 | 422 | | |
424 | 423 | | |
425 | 424 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
6 | 6 | | |
7 | 7 | | |
8 | 8 | | |
9 | | - | |
10 | 9 | | |
11 | | - | |
| 10 | + | |
12 | 11 | | |
13 | 12 | | |
14 | 13 | | |
| |||
0 commit comments