[PATCH] Optimize shufflevector that copies an i64/f64 and zeros the rest.
Elena Demikhovsky
elena.demikhovsky at intel.com
Tue May 6 23:32:18 PDT 2014
================
Comment at: lib/Target/X86/X86ISelLowering.cpp:7506
@@ -7508,1 +7505,3 @@
}
+ } else if ((VT == MVT::v2i64 || VT == MVT::v2f64) && Subtarget->hasSSE2()) {
+ // Emit movq and vmovq to copy an i64 or f64 to a vector and zero the
----------------
You can change the previous "if" and do not duplicate the code.
else if (VT.is128BitVector() && Subtarget->hasSSE2()) {
..
}
and RewriteAsNarrowerShuffle() will return the same node for v2f64 and v2i64.
But the logic is right and the optimization is very good!
http://reviews.llvm.org/D3518
More information about the llvm-commits
mailing list