[DAGCombine] `combineShuffleToZeroExtendVectorInReg()`: widen shuffle elements before...
authorRoman Lebedev <lebedev.ri@gmail.com>
Mon, 26 Dec 2022 20:45:37 +0000 (23:45 +0300)
committerRoman Lebedev <lebedev.ri@gmail.com>
Mon, 26 Dec 2022 21:47:45 +0000 (00:47 +0300)
commitc4f815d7052805d613d95eb6a1fc8853ad61ba38
tree0d824d2ad9df990dba0f13c508c5ae30b3cc7658
parentcc051b07303687e7848447f024b90f69335667b6
[DAGCombine] `combineShuffleToZeroExtendVectorInReg()`: widen shuffle elements before trying to match

We might have sunk a bitcast into shuffle, and now it might be operating
on more fine-grained elements than what we'd match, so we must not be
dependent on whatever the granularity the shuffle happened to be in,
but transform it into the one canonical for us - with widest elements.
llvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp
llvm/test/CodeGen/X86/vector-shuffle-512-v64.ll