[PATCH] [X86][SSE] Improve support for 128-bit vector sign extension

Simon Pilgrim llvm-dev at redking.me.uk
Tue May 19 06:56:15 PDT 2015


REPOSITORY
  rL LLVM

================
Comment at: lib/Target/X86/X86ISelLowering.cpp:23687
@@ -23621,1 +23686,3 @@
 
+  if (VT.isVector()) {
+    auto ExtendToVec128 = [&DAG](SDLoc DL, SDValue N) {
----------------
delena wrote:
> I still don't understand why it should be done before type legalizer. You don't want to deal with 3 x i8 or 6 x i32.
> What information disappears after type legalizer?
What happens is that the legalizer promotes the SIGN_EXTEND nodes to a ANY_EXTEND / SIGN_EXTEND_INREG pair (see PromoteIntOp_SIGN_EXTEND) - after which its much harder to match these again for lowering ;-(

I can place the new code before the (!DCI.isBeforeLegalizeOps()) early exit but it won't hit.

http://reviews.llvm.org/D9848

EMAIL PREFERENCES
  http://reviews.llvm.org/settings/panel/emailpreferences/






More information about the llvm-commits mailing list