[X86] Don't mutate shuffle arguments after early-out for AVX512
authorBenjamin Kramer <benny.kra@googlemail.com>
Wed, 17 Jan 2018 13:01:06 +0000 (13:01 +0000)
committerBenjamin Kramer <benny.kra@googlemail.com>
Wed, 17 Jan 2018 13:01:06 +0000 (13:01 +0000)
commit8d073a2c2d65f5a0ea945a74aff510f01b1181c3
treea5e21a58fb261dddc3716f7ce62953e8a19a8226
parent05dc3527de4255c28a149dee410edd0f7a3dc0d1
[X86] Don't mutate shuffle arguments after early-out for AVX512

The match* functions have the annoying behavior of modifying its inputs.
Save and restore the inputs, just in case the early out for AVX512 is
hit. This is still not great and its only a matter of time this kind of
bug happens again, but I couldn't come up with a better pattern without
rewriting significant chunks of this code. Fixes PR35977.

llvm-svn: 322644
llvm/lib/Target/X86/X86ISelLowering.cpp
llvm/test/CodeGen/X86/avx512-shuffles/partial_permute.ll