]> granicus.if.org Git - llvm/commitdiff
[X86] Colocate all of the X86VBroadcast patterns for v2i64 and v2f64. NFC
authorCraig Topper <craig.topper@intel.com>
Sun, 17 Sep 2017 18:59:30 +0000 (18:59 +0000)
committerCraig Topper <craig.topper@intel.com>
Sun, 17 Sep 2017 18:59:30 +0000 (18:59 +0000)
The memory patterns were near the MOVDDUP definition, but the non-memory patterns were near the broadcast instructions.

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

lib/Target/X86/X86InstrSSE.td

index 4bf42b026d183da0e9f69f68462fae8d1fb2a407..b8d1240b4e2c3200a6172713ee6e5a51be781dec 100644 (file)
@@ -4755,13 +4755,6 @@ let Predicates = [HasAVX, NoVLX] in {
             (VMOVDDUPrm addr:$src)>, Requires<[HasAVX]>;
 }
 
-let Predicates = [HasAVX, NoVLX] in
-def : Pat<(v2f64 (X86VBroadcast (loadf64 addr:$src))),
-          (VMOVDDUPrm addr:$src)>;
-let Predicates = [HasAVX1Only] in
-def : Pat<(v2i64 (X86VBroadcast (loadi64 addr:$src))),
-          (VMOVDDUPrm addr:$src)>;
-
 let Predicates = [UseSSE3] in {
   // No need for aligned memory as this only loads 64-bits.
   def : Pat<(X86Movddup (loadv2f64 addr:$src)),
@@ -7982,6 +7975,8 @@ let Predicates = [HasAVX, NoVLX] in {
   // 128bit broadcasts:
   def : Pat<(v2f64 (X86VBroadcast f64:$src)),
             (VMOVDDUPrr (COPY_TO_REGCLASS FR64:$src, VR128))>;
+  def : Pat<(v2f64 (X86VBroadcast (loadf64 addr:$src))),
+            (VMOVDDUPrm addr:$src)>;
 }
 
 let Predicates = [HasAVX1Only] in {
@@ -8009,6 +8004,8 @@ let Predicates = [HasAVX1Only] in {
 
   def : Pat<(v2i64 (X86VBroadcast i64:$src)),
             (VPSHUFDri (COPY_TO_REGCLASS GR64:$src, VR128), 0x44)>;
+  def : Pat<(v2i64 (X86VBroadcast (loadi64 addr:$src))),
+            (VMOVDDUPrm addr:$src)>;
 }
 
 //===----------------------------------------------------------------------===//