]> granicus.if.org Git - llvm/commitdiff
[AVX512] Minor fix in lowering pattern for broadcast intrustions.
authorRobert Khasanov <rob.khasanov@gmail.com>
Fri, 12 Dec 2014 14:21:30 +0000 (14:21 +0000)
committerRobert Khasanov <rob.khasanov@gmail.com>
Fri, 12 Dec 2014 14:21:30 +0000 (14:21 +0000)
No functional change.

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

lib/Target/X86/X86InstrAVX512.td

index 26b71c32b975fae70af801517e4eb642996007d9..5933e1844006d80bacd6f4065961f74d8706a7d6 100644 (file)
@@ -3,9 +3,10 @@
 // The idea is to pass one of these as the template argument rather than the
 // individual arguments.
 // The template is also used for scalar types, in this case numelts is 1.
-class X86VectorVTInfo<int numelts, ValueType EltVT, RegisterClass rc,
+class X86VectorVTInfo<int numelts, ValueType eltvt, RegisterClass rc,
                       string suffix = ""> {
   RegisterClass RC = rc;
+  ValueType EltVT = eltvt;
   int NumElts = numelts;
 
   // Corresponding mask register class.
@@ -656,20 +657,18 @@ let ExeDomain = SSEPackedDouble in {
 multiclass avx512_broadcast_pat<string InstName, SDNode OpNode,
                                 X86VectorVTInfo _, RegisterClass SrcRC_v,
                                 RegisterClass SrcRC_s> {
-  def : Pat<(_.VT (OpNode  (!cast<ValueType>(_.EltTypeName) SrcRC_s:$src))),
+  def : Pat<(_.VT (OpNode  (_.EltVT SrcRC_s:$src))),
             (!cast<Instruction>(InstName##"r")
               (COPY_TO_REGCLASS SrcRC_s:$src, SrcRC_v))>;
 
   let AddedComplexity = 30 in {
     def : Pat<(_.VT (vselect _.KRCWM:$mask,
-                (OpNode (!cast<ValueType>(_.EltTypeName) SrcRC_s:$src)),
-                _.RC:$src0)),
+                (OpNode (_.EltVT SrcRC_s:$src)), _.RC:$src0)),
               (!cast<Instruction>(InstName##"rk") _.RC:$src0, _.KRCWM:$mask,
                 (COPY_TO_REGCLASS SrcRC_s:$src, SrcRC_v))>;
 
     def : Pat<(_.VT(vselect _.KRCWM:$mask,
-                (OpNode (!cast<ValueType>(_.EltTypeName) SrcRC_s:$src)),
-                _.ImmAllZerosV)),
+                (OpNode (_.EltVT SrcRC_s:$src)), _.ImmAllZerosV)),
               (!cast<Instruction>(InstName##"rkz") _.KRCWM:$mask,
                 (COPY_TO_REGCLASS SrcRC_s:$src, SrcRC_v))>;
   }