[PATCH] [X86] Try to combine vector anyext + and into a vector zext
Michael Kuperstein
michael.m.kuperstein at intel.com
Mon Feb 16 03:36:52 PST 2015
Hi chandlerc, andreadb, RKSimon,
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 like it does now.
This doesn't cover all the cases, as you can see in the test, but it's a start.
http://reviews.llvm.org/D7666
Files:
lib/Target/X86/X86ISelLowering.cpp
test/CodeGen/X86/vector-zext.ll
EMAIL PREFERENCES
http://reviews.llvm.org/settings/panel/emailpreferences/
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D7666.20013.patch
Type: text/x-patch
Size: 13006 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20150216/4760c475/attachment.bin>
More information about the llvm-commits
mailing list