[all-commits] [llvm/llvm-project] f8d909: [DAGCombiner] `combineShuffleOfSplatVal()`: try to...
Roman Lebedev via All-commits
all-commits at lists.llvm.org
Sun Jan 15 10:12:34 PST 2023
Branch: refs/heads/main
Home: https://github.com/llvm/llvm-project
Commit: f8d9097168b73e3befd94ac4e16cbc5f944afcec
https://github.com/llvm/llvm-project/commit/f8d9097168b73e3befd94ac4e16cbc5f944afcec
Author: Roman Lebedev <lebedev.ri at gmail.com>
Date: 2023-01-15 (Sun, 15 Jan 2023)
Changed paths:
M llvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp
M llvm/test/CodeGen/PowerPC/v4i32_scalar_to_vector_shuffle.ll
M llvm/test/CodeGen/X86/srem-seteq-vec-nonsplat.ll
M llvm/test/CodeGen/X86/urem-seteq-illegal-types.ll
M llvm/test/CodeGen/X86/urem-seteq-vec-nonsplat.ll
M llvm/test/CodeGen/X86/vec_smulo.ll
M llvm/test/CodeGen/X86/vec_umulo.ll
Log Message:
-----------
[DAGCombiner] `combineShuffleOfSplatVal()`: try to canonicalize to a splat shuffle
As noted in https://reviews.llvm.org/D141778#inline-1369900,
we fail to produce splat shuffles from certain sequences
of shuffles, that may have non-shuffles in the middle of seq.
There is a big pitfail to avoid here: just because `isSplatValue()`
says that all demanded elements are splat, we can't pick any random
one of them, because some of them could be undef! We must ignore those!
More information about the All-commits
mailing list