[PATCH] D15786: [X86][Avx512] change broadcast to use maskable pattern

Asaf Badouh via llvm-commits llvm-commits at lists.llvm.org
Sun Dec 27 03:11:01 PST 2015


AsafBadouh created this revision.
AsafBadouh added reviewers: igorb, delena, m_zuckerman.
AsafBadouh added a subscriber: llvm-commits.
AsafBadouh set the repository for this revision to rL LLVM.

Repository:
  rL LLVM

http://reviews.llvm.org/D15786

Files:
  ../llvm/lib/Target/X86/X86InstrAVX512.td

Index: ../llvm/lib/Target/X86/X86InstrAVX512.td
===================================================================
--- ../llvm/lib/Target/X86/X86InstrAVX512.td
+++ ../llvm/lib/Target/X86/X86InstrAVX512.td
@@ -1000,23 +1000,12 @@
 
 multiclass avx512_subvec_broadcast_rm<bits<8> opc, string OpcodeStr,
                           X86VectorVTInfo _Dst, X86VectorVTInfo _Src> {
-  let mayLoad = 1 in {
-  def rm : AVX5128I<opc, MRMSrcMem, (outs _Dst.RC:$dst), (ins _Src.MemOp:$src),
-                  !strconcat(OpcodeStr, "\t{$src, $dst|$dst, $src}"),
-                  [(set _Dst.RC:$dst,
-                    (_Dst.VT (X86SubVBroadcast
-                    (_Src.VT (bitconvert (_Src.LdFrag addr:$src))))))]>, EVEX;
-  def rmk : AVX5128I<opc, MRMSrcMem, (outs _Dst.RC:$dst), (ins _Dst.KRCWM:$mask,
-                                                         _Src.MemOp:$src),
-                  !strconcat(OpcodeStr,
-                      "\t{$src, ${dst} {${mask}}|${dst} {${mask}}, $src}"),
-                  []>, EVEX, EVEX_K;
-  def rmkz : AVX5128I<opc, MRMSrcMem, (outs _Dst.RC:$dst), (ins _Dst.KRCWM:$mask,
-                                                         _Src.MemOp:$src),
-                  !strconcat(OpcodeStr,
-                    "\t{$src, ${dst} {${mask}} {z}|${dst} {${mask}} {z}, $src}"),
-                  []>, EVEX, EVEX_KZ;
-  }
+  let mayLoad = 1 in
+  defm rm : AVX512_maskable<opc, MRMSrcMem, _Dst, (outs _Dst.RC:$dst), 
+                           (ins _Src.MemOp:$src), OpcodeStr, "$src", "$src",
+                           (_Dst.VT (X86SubVBroadcast
+                              (_Src.VT (bitconvert (_Src.LdFrag addr:$src)))))>, 
+                           AVX5128IBase, EVEX;
 }
 
 defm VBROADCASTI32X4 : avx512_subvec_broadcast_rm<0x5a, "vbroadcasti32x4",


-------------- next part --------------
A non-text attachment was scrubbed...
Name: D15786.43656.patch
Type: text/x-patch
Size: 1828 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20151227/b35922c1/attachment.bin>


More information about the llvm-commits mailing list