HomePhabricator

[InstSimplify] fold splat of inserted constant to vector constant

Authored by spatel on Dec 15 2019, 6:32 AM.

Description

[InstSimplify] fold splat of inserted constant to vector constant

shuf (inselt ?, C, IndexC), undef, <IndexC, IndexC...> --> <C, C...>

This is another missing shuffle fold pattern uncovered by the
shuffle correctness fix from D70246.

The problem was visible in the post-commit thread example, but
we managed to overcome the limitation for that particular case
with D71220.

This is something like the inverse of the previous fix - there
we didn't demand the inserted scalar, and here we are only
demanding an inserted scalar.

Differential Revision: https://reviews.llvm.org/D71488

Details