[llvm] r287991 - [X86] Remove alignment restrictions from load folding table for some instructions that don't have a restriction.

Craig Topper via llvm-commits llvm-commits at lists.llvm.org
Sat Nov 26 17:52:51 PST 2016


Author: ctopper
Date: Sat Nov 26 19:52:51 2016
New Revision: 287991

URL: http://llvm.org/viewvc/llvm-project?rev=287991&view=rev
Log:
[X86] Remove alignment restrictions from load folding table for some instructions that don't have a restriction.

Most of these are the SSE4.1 PMOVZX/PMOVSX instructions which all read less than 128-bits. The only other was PMOVUPD which by definition is an unaligned load.

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

Modified: llvm/trunk/lib/Target/X86/X86InstrInfo.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/X86/X86InstrInfo.cpp?rev=287991&r1=287990&r2=287991&view=diff
==============================================================================
--- llvm/trunk/lib/Target/X86/X86InstrInfo.cpp (original)
+++ llvm/trunk/lib/Target/X86/X86InstrInfo.cpp Sat Nov 26 19:52:51 2016
@@ -552,7 +552,7 @@ X86InstrInfo::X86InstrInfo(X86Subtarget
     { X86::MOVSX64rr16,     X86::MOVSX64rm16,         0 },
     { X86::MOVSX64rr32,     X86::MOVSX64rm32,         0 },
     { X86::MOVSX64rr8,      X86::MOVSX64rm8,          0 },
-    { X86::MOVUPDrr,        X86::MOVUPDrm,            TB_ALIGN_16 },
+    { X86::MOVUPDrr,        X86::MOVUPDrm,            0 },
     { X86::MOVUPSrr,        X86::MOVUPSrm,            0 },
     { X86::MOVZPQILo2PQIrr, X86::MOVQI2PQIrm,         TB_NO_REVERSE },
     { X86::MOVZX16rr8,      X86::MOVZX16rm8,          0 },
@@ -567,18 +567,18 @@ X86InstrInfo::X86InstrInfo(X86Subtarget
     { X86::PCMPISTRIrr,     X86::PCMPISTRIrm,         TB_ALIGN_16 },
     { X86::PCMPISTRM128rr,  X86::PCMPISTRM128rm,      TB_ALIGN_16 },
     { X86::PHMINPOSUWrr128, X86::PHMINPOSUWrm128,     TB_ALIGN_16 },
-    { X86::PMOVSXBDrr,      X86::PMOVSXBDrm,          TB_ALIGN_16 },
-    { X86::PMOVSXBQrr,      X86::PMOVSXBQrm,          TB_ALIGN_16 },
-    { X86::PMOVSXBWrr,      X86::PMOVSXBWrm,          TB_ALIGN_16 },
-    { X86::PMOVSXDQrr,      X86::PMOVSXDQrm,          TB_ALIGN_16 },
-    { X86::PMOVSXWDrr,      X86::PMOVSXWDrm,          TB_ALIGN_16 },
-    { X86::PMOVSXWQrr,      X86::PMOVSXWQrm,          TB_ALIGN_16 },
-    { X86::PMOVZXBDrr,      X86::PMOVZXBDrm,          TB_ALIGN_16 },
-    { X86::PMOVZXBQrr,      X86::PMOVZXBQrm,          TB_ALIGN_16 },
-    { X86::PMOVZXBWrr,      X86::PMOVZXBWrm,          TB_ALIGN_16 },
-    { X86::PMOVZXDQrr,      X86::PMOVZXDQrm,          TB_ALIGN_16 },
-    { X86::PMOVZXWDrr,      X86::PMOVZXWDrm,          TB_ALIGN_16 },
-    { X86::PMOVZXWQrr,      X86::PMOVZXWQrm,          TB_ALIGN_16 },
+    { X86::PMOVSXBDrr,      X86::PMOVSXBDrm,          0 },
+    { X86::PMOVSXBQrr,      X86::PMOVSXBQrm,          0 },
+    { X86::PMOVSXBWrr,      X86::PMOVSXBWrm,          0 },
+    { X86::PMOVSXDQrr,      X86::PMOVSXDQrm,          0 },
+    { X86::PMOVSXWDrr,      X86::PMOVSXWDrm,          0 },
+    { X86::PMOVSXWQrr,      X86::PMOVSXWQrm,          0 },
+    { X86::PMOVZXBDrr,      X86::PMOVZXBDrm,          0 },
+    { X86::PMOVZXBQrr,      X86::PMOVZXBQrm,          0 },
+    { X86::PMOVZXBWrr,      X86::PMOVZXBWrm,          0 },
+    { X86::PMOVZXDQrr,      X86::PMOVZXDQrm,          0 },
+    { X86::PMOVZXWDrr,      X86::PMOVZXWDrm,          0 },
+    { X86::PMOVZXWQrr,      X86::PMOVZXWQrm,          0 },
     { X86::PSHUFDri,        X86::PSHUFDmi,            TB_ALIGN_16 },
     { X86::PSHUFHWri,       X86::PSHUFHWmi,           TB_ALIGN_16 },
     { X86::PSHUFLWri,       X86::PSHUFLWmi,           TB_ALIGN_16 },




More information about the llvm-commits mailing list