[PATCH] D11973: AVX512 : kadd implemantation

Phabricator via llvm-commits llvm-commits at lists.llvm.org
Mon Aug 31 04:51:39 PDT 2015


This revision was automatically updated to reflect the committed changes.
Closed by commit rL246432: AVX512: kadd implementation (authored by ibreger).

Changed prior to commit:
  http://reviews.llvm.org/D11973?vs=31906&id=33571#toc

Repository:
  rL LLVM

http://reviews.llvm.org/D11973

Files:
  llvm/trunk/lib/Target/X86/X86InstrAVX512.td
  llvm/trunk/test/MC/X86/x86-64-avx512bw.s
  llvm/trunk/test/MC/X86/x86-64-avx512dq.s

Index: llvm/trunk/test/MC/X86/x86-64-avx512bw.s
===================================================================
--- llvm/trunk/test/MC/X86/x86-64-avx512bw.s
+++ llvm/trunk/test/MC/X86/x86-64-avx512bw.s
@@ -4112,6 +4112,14 @@
 // CHECK:  encoding: [0x62,0x61,0x2d,0x40,0x69,0xb2,0xc0,0xdf,0xff,0xff]
           vpunpckhwd -8256(%rdx), %zmm26, %zmm30
 
+// CHECK: kaddd  %k6, %k6, %k2
+// CHECK:  encoding: [0xc4,0xe1,0xcd,0x4a,0xd6]
+          kaddd  %k6, %k6, %k2
+
+// CHECK: kaddq  %k4, %k6, %k3
+// CHECK:  encoding: [0xc4,0xe1,0xcc,0x4a,0xdc]
+          kaddq  %k4, %k6, %k3
+
 // CHECK: vpalignr $171, %zmm17, %zmm26, %zmm22
 // CHECK:  encoding: [0x62,0xa3,0x2d,0x40,0x0f,0xf1,0xab]
           vpalignr $171, %zmm17, %zmm26, %zmm22
Index: llvm/trunk/test/MC/X86/x86-64-avx512dq.s
===================================================================
--- llvm/trunk/test/MC/X86/x86-64-avx512dq.s
+++ llvm/trunk/test/MC/X86/x86-64-avx512dq.s
@@ -2371,3 +2371,19 @@
 // CHECK:  encoding: [0x62,0xa1,0xff,0xca,0x7a,0xd5]
           vcvtuqq2ps %zmm21, %ymm18 {%k2} {z}
 
+// CHECK: kaddb  %k7, %k4, %k5
+// CHECK:  encoding: [0xc5,0xdd,0x4a,0xef]
+          kaddb  %k7, %k4, %k5
+
+// CHECK: kaddb  %k4, %k6, %k5
+// CHECK:  encoding: [0xc5,0xcd,0x4a,0xec]
+          kaddb  %k4, %k6, %k5
+
+// CHECK: kaddw  %k4, %k3, %k2
+// CHECK:  encoding: [0xc5,0xe4,0x4a,0xd4]
+          kaddw  %k4, %k3, %k2
+
+// CHECK: kaddw  %k6, %k6, %k2
+// CHECK:  encoding: [0xc5,0xcc,0x4a,0xd6]
+          kaddw  %k6, %k6, %k2
+
Index: llvm/trunk/lib/Target/X86/X86InstrAVX512.td
===================================================================
--- llvm/trunk/lib/Target/X86/X86InstrAVX512.td
+++ llvm/trunk/lib/Target/X86/X86InstrAVX512.td
@@ -1955,11 +1955,12 @@
 }
 
 multiclass avx512_mask_binop_all<bits<8> opc, string OpcodeStr,
-                               SDPatternOperator OpNode, bit IsCommutable> {
+                               SDPatternOperator OpNode, bit IsCommutable,
+                               Predicate prdW = HasAVX512> {
   defm B : avx512_mask_binop<opc, !strconcat(OpcodeStr, "b"), VK8, OpNode,
                              HasDQI, IsCommutable>, VEX_4V, VEX_L, PD;
   defm W : avx512_mask_binop<opc, !strconcat(OpcodeStr, "w"), VK16, OpNode,
-                             HasAVX512, IsCommutable>, VEX_4V, VEX_L, PS;
+                             prdW, IsCommutable>, VEX_4V, VEX_L, PS;
   defm D : avx512_mask_binop<opc, !strconcat(OpcodeStr, "d"), VK32, OpNode,
                              HasBWI, IsCommutable>, VEX_4V, VEX_L, VEX_W, PD;
   defm Q : avx512_mask_binop<opc, !strconcat(OpcodeStr, "q"), VK64, OpNode,
@@ -1974,6 +1975,7 @@
 defm KXNOR : avx512_mask_binop_all<0x46, "kxnor", xnor, 1>;
 defm KXOR  : avx512_mask_binop_all<0x47, "kxor",  xor,  1>;
 defm KANDN : avx512_mask_binop_all<0x42, "kandn", andn, 0>;
+defm KADD  : avx512_mask_binop_all<0x4A, "kadd",  add,  1, HasDQI>;
 
 multiclass avx512_mask_binop_int<string IntName, string InstName> {
   let Predicates = [HasAVX512] in


-------------- next part --------------
A non-text attachment was scrubbed...
Name: D11973.33571.patch
Type: text/x-patch
Size: 3022 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20150831/3126053f/attachment.bin>


More information about the llvm-commits mailing list