summaryrefslogtreecommitdiffstats
path: root/llvm/lib/Target/X86/X86InstrAVX512.td
diff options
context:
space:
mode:
Diffstat (limited to 'llvm/lib/Target/X86/X86InstrAVX512.td')
-rw-r--r--llvm/lib/Target/X86/X86InstrAVX512.td44
1 files changed, 44 insertions, 0 deletions
diff --git a/llvm/lib/Target/X86/X86InstrAVX512.td b/llvm/lib/Target/X86/X86InstrAVX512.td
index cf1a5a20c0b..3e3e57c5bdb 100644
--- a/llvm/lib/Target/X86/X86InstrAVX512.td
+++ b/llvm/lib/Target/X86/X86InstrAVX512.td
@@ -11296,3 +11296,47 @@ defm VGF2P8AFFINEINVQB : GF2P8AFFINE_avx512_common<0xCF, "vgf2p8affineinvqb",
defm VGF2P8AFFINEQB : GF2P8AFFINE_avx512_common<0xCE, "vgf2p8affineqb",
X86GF2P8affineqb, SchedWriteVecIMul>,
EVEX_4V, EVEX_CD8<8, CD8VF>, VEX_W, AVX512AIi8Base;
+
+
+//===----------------------------------------------------------------------===//
+// AVX5124FMAPS
+//===----------------------------------------------------------------------===//
+
+let hasSideEffects = 0, mayLoad = 1, ExeDomain = SSEPackedSingle in {
+defm V4FMADDPSrm : AVX512_maskable_in_asm<0x9A, MRMSrcMem, v16f32_info,
+ (outs VR512:$dst), (ins VR512:$src1, f128mem:$src2),
+ "v4fmaddps", "$src2, $src1", "$src1, $src2",
+ []>, EVEX_V512, EVEX_4V, T8XD, EVEX_CD8<32, CD8VQ>;
+
+defm V4FNMADDPSrm : AVX512_maskable_in_asm<0xAA, MRMSrcMem, v16f32_info,
+ (outs VR512:$dst), (ins VR512:$src1, f128mem:$src2),
+ "v4fnmaddps", "$src2, $src1", "$src1, $src2",
+ []>, EVEX_V512, EVEX_4V, T8XD, EVEX_CD8<32, CD8VQ>;
+
+defm V4FMADDSSrm : AVX512_maskable_in_asm<0x9B, MRMSrcMem, f32x_info,
+ (outs VR128X:$dst), (ins VR128X:$src1, f128mem:$src2),
+ "v4fmaddss", "$src2, $src1", "$src1, $src2",
+ []>, EVEX_V128, EVEX_4V, T8XD, EVEX_CD8<32, CD8VF>;
+
+defm V4FNMADDSSrm : AVX512_maskable_in_asm<0xAB, MRMSrcMem, f32x_info,
+ (outs VR128X:$dst), (ins VR128X:$src1, f128mem:$src2),
+ "v4fnmaddss", "$src2, $src1", "$src1, $src2",
+ []>, EVEX_V128, EVEX_4V, T8XD, EVEX_CD8<32, CD8VF>;
+}
+
+//===----------------------------------------------------------------------===//
+// AVX5124VNNIW
+//===----------------------------------------------------------------------===//
+
+let hasSideEffects = 0, mayLoad = 1, ExeDomain = SSEPackedInt in {
+defm VP4DPWSSDrm : AVX512_maskable_in_asm<0x52, MRMSrcMem, v16i32_info,
+ (outs VR512:$dst), (ins VR512:$src1, f128mem:$src2),
+ "vp4dpwssd", "$src2, $src1", "$src1, $src2",
+ []>, EVEX_V512, EVEX_4V, T8XD, EVEX_CD8<32, CD8VQ>;
+
+defm VP4DPWSSDSrm : AVX512_maskable_in_asm<0x53, MRMSrcMem, v16i32_info,
+ (outs VR512:$dst), (ins VR512:$src1, f128mem:$src2),
+ "vp4dpwssds", "$src2, $src1", "$src1, $src2",
+ []>, EVEX_V512, EVEX_4V, T8XD, EVEX_CD8<32, CD8VQ>;
+}
+
OpenPOWER on IntegriCloud