Commit 24f34e2
[X86] LowerShuffle - don't call canonicalizeShuffleMaskWithHorizOp if we could shuffle whole lanes (llvm#170838)
canonicalizeShuffleMaskWithHorizOp was getting stuck as it was
canonicalizing a SHUFFLE(HADD(X,X)) to only refer to the results of the
LHS X, but the original shuffle was shuffling entire lanes (with
VPERM2F128), and the canonicalised shuffle was then attempting to
lowering back to the original VPERM2F128 pattern.
I think we can drop this call to canonicalizeShuffleMaskWithHorizOp once
llvm#143000 is addressed as vectorcombine should fold away all the patterns
this addresses.
Fixes llvm#1677931 parent a48c935 commit 24f34e2
File tree
2 files changed
+43
-9
lines changed- llvm
- lib/Target/X86
- test/CodeGen/X86
2 files changed
+43
-9
lines changed| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
18462 | 18462 | | |
18463 | 18463 | | |
18464 | 18464 | | |
| 18465 | + | |
| 18466 | + | |
18465 | 18467 | | |
18466 | | - | |
18467 | | - | |
18468 | | - | |
18469 | | - | |
18470 | | - | |
18471 | | - | |
18472 | | - | |
18473 | | - | |
18474 | | - | |
| 18468 | + | |
| 18469 | + | |
| 18470 | + | |
| 18471 | + | |
| 18472 | + | |
| 18473 | + | |
| 18474 | + | |
| 18475 | + | |
| 18476 | + | |
| 18477 | + | |
| 18478 | + | |
18475 | 18479 | | |
18476 | 18480 | | |
18477 | 18481 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
| 1 | + | |
| 2 | + | |
| 3 | + | |
| 4 | + | |
| 5 | + | |
| 6 | + | |
| 7 | + | |
| 8 | + | |
| 9 | + | |
| 10 | + | |
| 11 | + | |
| 12 | + | |
| 13 | + | |
| 14 | + | |
| 15 | + | |
| 16 | + | |
| 17 | + | |
| 18 | + | |
| 19 | + | |
| 20 | + | |
| 21 | + | |
| 22 | + | |
| 23 | + | |
| 24 | + | |
| 25 | + | |
| 26 | + | |
| 27 | + | |
| 28 | + | |
| 29 | + | |
| 30 | + | |
0 commit comments