[X86] Combine vector anyext + and into a vector zext
authorMichael Kuperstein <michael.m.kuperstein@intel.com>
Tue, 17 Feb 2015 08:22:51 +0000 (08:22 +0000)
committerMichael Kuperstein <michael.m.kuperstein@intel.com>
Tue, 17 Feb 2015 08:22:51 +0000 (08:22 +0000)
Vector zext tends to get legalized into a vector anyext, represented as a vector shuffle with an undef vector + a bitcast, that gets ANDed with a mask that zeroes the undef elements.
Combine this into an explicit shuffle with a zero vector instead. This allows shuffle lowering to match it as a zext, instead of matching it as an anyext and emitting an explicit AND.
This combine only covers a subset of the cases, but it's a start.

Differential Revision: http://reviews.llvm.org/D7666

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@229480 91177308-0d34-0410-b5e6-96231b3b80d8


No differences found