[PATCH] [X86] Canonicalize various patterns to vector extloads.

Elena Demikhovsky elena.demikhovsky at intel.com
Sun Jan 11 09:10:37 PST 2015


Please see my notes.
Context is missing in review.


================
Comment at: lib/Target/X86/X86ISelLowering.cpp:25650
@@ -25649,1 +25649,3 @@
 
+/// performVSZEXTCombine - Performs VSEXT/VZEXT combines
+static SDValue performVSZEXTCombine(SDNode *N, SelectionDAG &DAG,
----------------
You have 2 functions VSEXT / VZEXT and VZEXT. May be you planned to remove VZEXT?

================
Comment at: lib/Target/X86/X86ISelLowering.cpp:25685
@@ +25684,3 @@
+        N->getOpcode() == X86ISD::VZEXT ? ISD::ZEXTLOAD : ISD::SEXTLOAD, DL, VT,
+        Ld->getChain(), Ld->getBasePtr(), Ld->getPointerInfo(), MemVT,
+        Ld->isVolatile(), Ld->isNonTemporal(), Ld->isInvariant(),
----------------
I think that MemVT should be taken from original load and not from ZEXT operand

================
Comment at: lib/Target/X86/X86ISelLowering.cpp:25692
@@ -25650,2 +25691,3 @@
+
 /// performVZEXTCombine - Performs build vector combines
 static SDValue performVZEXTCombine(SDNode *N, SelectionDAG &DAG,
----------------
The comment is very strange here

http://reviews.llvm.org/D6896

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






More information about the llvm-commits mailing list