[llvm] r285998 - [X86] Broadcast from memory intructions aren't unfoldable

Zvi Rackover via llvm-commits llvm-commits at lists.llvm.org
Fri Nov 4 08:15:19 PDT 2016


Author: zvi
Date: Fri Nov  4 10:15:19 2016
New Revision: 285998

URL: http://llvm.org/viewvc/llvm-project?rev=285998&view=rev
Log:
[X86] Broadcast from memory intructions aren't unfoldable

Broadcast from memory instructions should be treated as moves. They can't be unfolded.

Fixes pr30693.


Modified:
    llvm/trunk/lib/Target/X86/X86InstrInfo.cpp
    llvm/trunk/test/CodeGen/X86/pr30693.ll

Modified: llvm/trunk/lib/Target/X86/X86InstrInfo.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/X86/X86InstrInfo.cpp?rev=285998&r1=285997&r2=285998&view=diff
==============================================================================
--- llvm/trunk/lib/Target/X86/X86InstrInfo.cpp (original)
+++ llvm/trunk/lib/Target/X86/X86InstrInfo.cpp Fri Nov  4 10:15:19 2016
@@ -739,14 +739,14 @@ X86InstrInfo::X86InstrInfo(X86Subtarget
     { X86::VPABSBYrr,       X86::VPABSBYrm,           0 },
     { X86::VPABSDYrr,       X86::VPABSDYrm,           0 },
     { X86::VPABSWYrr,       X86::VPABSWYrm,           0 },
-    { X86::VPBROADCASTBrr,  X86::VPBROADCASTBrm,      0 },
-    { X86::VPBROADCASTBYrr, X86::VPBROADCASTBYrm,     0 },
-    { X86::VPBROADCASTDrr,  X86::VPBROADCASTDrm,      0 },
-    { X86::VPBROADCASTDYrr, X86::VPBROADCASTDYrm,     0 },
-    { X86::VPBROADCASTQrr,  X86::VPBROADCASTQrm,      0 },
-    { X86::VPBROADCASTQYrr, X86::VPBROADCASTQYrm,     0 },
-    { X86::VPBROADCASTWrr,  X86::VPBROADCASTWrm,      0 },
-    { X86::VPBROADCASTWYrr, X86::VPBROADCASTWYrm,     0 },
+    { X86::VPBROADCASTBrr,  X86::VPBROADCASTBrm,      TB_NO_REVERSE },
+    { X86::VPBROADCASTBYrr, X86::VPBROADCASTBYrm,     TB_NO_REVERSE },
+    { X86::VPBROADCASTDrr,  X86::VPBROADCASTDrm,      TB_NO_REVERSE },
+    { X86::VPBROADCASTDYrr, X86::VPBROADCASTDYrm,     TB_NO_REVERSE },
+    { X86::VPBROADCASTQrr,  X86::VPBROADCASTQrm,      TB_NO_REVERSE },
+    { X86::VPBROADCASTQYrr, X86::VPBROADCASTQYrm,     TB_NO_REVERSE },
+    { X86::VPBROADCASTWrr,  X86::VPBROADCASTWrm,      TB_NO_REVERSE },
+    { X86::VPBROADCASTWYrr, X86::VPBROADCASTWYrm,     TB_NO_REVERSE },
     { X86::VPERMPDYri,      X86::VPERMPDYmi,          0 },
     { X86::VPERMQYri,       X86::VPERMQYmi,           0 },
     { X86::VPMOVSXBDYrr,    X86::VPMOVSXBDYrm,        0 },

Modified: llvm/trunk/test/CodeGen/X86/pr30693.ll
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/X86/pr30693.ll?rev=285998&r1=285997&r2=285998&view=diff
==============================================================================
--- llvm/trunk/test/CodeGen/X86/pr30693.ll (original)
+++ llvm/trunk/test/CodeGen/X86/pr30693.ll Fri Nov  4 10:15:19 2016
@@ -1,5 +1,4 @@
 ; PR30693
-; XFAIL: *
 ; RUN: llc < %s | FileCheck %s
 
 ; CHECK:      .p2align	2




More information about the llvm-commits mailing list