[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