[llvm-commits] [llvm] r140246 - /llvm/trunk/lib/Target/X86/X86ISelLowering.cpp

Nadav Rotem nadav.rotem at intel.com
Wed Sep 21 01:45:11 PDT 2011


Author: nadav
Date: Wed Sep 21 03:45:10 2011
New Revision: 140246

URL: http://llvm.org/viewvc/llvm-project?rev=140246&view=rev
Log:
Insert a sanity check on the combining of x86 truncing-store nodes. This comes to replace the problematic check that was removed in r139995.

Modified:
    llvm/trunk/lib/Target/X86/X86ISelLowering.cpp

Modified: llvm/trunk/lib/Target/X86/X86ISelLowering.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/X86/X86ISelLowering.cpp?rev=140246&r1=140245&r2=140246&view=diff
==============================================================================
--- llvm/trunk/lib/Target/X86/X86ISelLowering.cpp (original)
+++ llvm/trunk/lib/Target/X86/X86ISelLowering.cpp Wed Sep 21 03:45:10 2011
@@ -13563,6 +13563,9 @@
 
     // From, To sizes and ElemCount must be pow of two
     if (!isPowerOf2_32(NumElems * FromSz * ToSz)) return SDValue();
+    // We are going to use the original vector elt for storing.
+    // accumulated smaller vector elements must be a multiple of the store size.
+    if (0 != (NumElems * FromSz) % ToSz) return SDValue();
 
     unsigned SizeRatio  = FromSz / ToSz;
 





More information about the llvm-commits mailing list