]> granicus.if.org Git - llvm/commitdiff
[X86] Broadcast from memory intructions aren't unfoldable
authorZvi Rackover <zvi.rackover@intel.com>
Fri, 4 Nov 2016 15:15:19 +0000 (15:15 +0000)
committerZvi Rackover <zvi.rackover@intel.com>
Fri, 4 Nov 2016 15:15:19 +0000 (15:15 +0000)
Broadcast from memory instructions should be treated as moves. They can't be unfolded.

Fixes pr30693.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@285998 91177308-0d34-0410-b5e6-96231b3b80d8

lib/Target/X86/X86InstrInfo.cpp
test/CodeGen/X86/pr30693.ll

index 0acbe9da46f1559210f63d79e8b9112809845244..fd082097f9d12d9bd19b46926a031657ba7b9be8 100644 (file)
@@ -739,14 +739,14 @@ X86InstrInfo::X86InstrInfo(X86Subtarget &STI)
     { 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 },
index c5162559a865618fc1051b43c077d486b217cd45..834365911ed51102c548a43276ec19eb0239d364 100644 (file)
@@ -1,5 +1,4 @@
 ; PR30693
-; XFAIL: *
 ; RUN: llc < %s | FileCheck %s
 
 ; CHECK:      .p2align 2