[X86] When post-processing the DAG to remove zero extending moves for YMM/ZMM, make...
authorCraig Topper <craig.topper@intel.com>
Fri, 3 Aug 2018 04:49:42 +0000 (04:49 +0000)
committerCraig Topper <craig.topper@intel.com>
Fri, 3 Aug 2018 04:49:42 +0000 (04:49 +0000)
commita80352c04e4a351c7e88faf9cec238870574fc42
tree03946b0f38a75c573453dd55318d3e0bf0680bd2
parentded14af7aaeaffa2fdddd925eeaac3140bd13813
[X86] When post-processing the DAG to remove zero extending moves for YMM/ZMM, make sure the producing instruction is VEX/XOP/EVEX encoded.

If the producing instruction is legacy encoded it doesn't implicitly zero the upper bits. This is important for the SHA instructions which don't have a VEX encoded version. We might also be able to hit this with the incomplete f128 support that hasn't been ported to VEX.

llvm-svn: 338812
llvm/lib/Target/X86/X86ISelDAGToDAG.cpp
llvm/test/CodeGen/X86/sha.ll