I was trying to prevent shuffle regressions while matching more horizontal ops and ended up here:
shuf (extract X, 0), (extract X, 4), Mask --> extract (shuf X, undef, Mask'), 0
I think the affected tests were added for:
https://bugs.llvm.org/show_bug.cgi?id=34380
This patch won't change the examples in the bug report itself, but we might be able to extend this to catch more types.
Really these should be safe now, but it might be better to use:
I keep wondering whether we should have made getConstantOperandVal return APInt&