Put HasAVX512 predicate on some patterns to properly disable them when AVX512 isn...
authorCraig Topper <craig.topper@gmail.com>
Fri, 27 Sep 2013 07:20:47 +0000 (07:20 +0000)
committerCraig Topper <craig.topper@gmail.com>
Fri, 27 Sep 2013 07:20:47 +0000 (07:20 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@191490 91177308-0d34-0410-b5e6-96231b3b80d8

lib/Target/X86/X86InstrAVX512.td

index 884d7252c0658842ef394a7cffdcd2a2774bfedc..c9901bca0b119c28d0de387f9ac6eece64a6c67f 100644 (file)
@@ -1997,15 +1997,17 @@ def VMOVHLPSZrr : AVX512PSI<0x12, MRMSrcReg, (outs VR128X:$dst),
           [(set VR128X:$dst, (v4f32 (X86Movhlps VR128X:$src1, VR128X:$src2)))],
           IIC_SSE_MOV_LH>, EVEX_4V;
 
-// MOVLHPS patterns
-def : Pat<(v4i32 (X86Movlhps VR128X:$src1, VR128X:$src2)),
-          (VMOVLHPSZrr VR128X:$src1, VR128X:$src2)>;
-def : Pat<(v2i64 (X86Movlhps VR128X:$src1, VR128X:$src2)),
-          (VMOVLHPSZrr (v2i64 VR128X:$src1), VR128X:$src2)>;
-
-// MOVHLPS patterns
-def : Pat<(v4i32 (X86Movhlps VR128X:$src1, VR128X:$src2)),
-          (VMOVHLPSZrr VR128X:$src1, VR128X:$src2)>;
+let Predicates = [HasAVX512] in {
+  // MOVLHPS patterns
+  def : Pat<(v4i32 (X86Movlhps VR128X:$src1, VR128X:$src2)),
+            (VMOVLHPSZrr VR128X:$src1, VR128X:$src2)>;
+  def : Pat<(v2i64 (X86Movlhps VR128X:$src1, VR128X:$src2)),
+            (VMOVLHPSZrr (v2i64 VR128X:$src1), VR128X:$src2)>;
+
+  // MOVHLPS patterns
+  def : Pat<(v4i32 (X86Movhlps VR128X:$src1, VR128X:$src2)),
+            (VMOVHLPSZrr VR128X:$src1, VR128X:$src2)>;
+}
 
 //===----------------------------------------------------------------------===//
 // FMA - Fused Multiply Operations