diff options
-rw-r--r-- | llvm/lib/Target/X86/X86InstrAVX512.td | 18 |
1 files changed, 12 insertions, 6 deletions
diff --git a/llvm/lib/Target/X86/X86InstrAVX512.td b/llvm/lib/Target/X86/X86InstrAVX512.td index 0be0b11b0d1..a3cf050619a 100644 --- a/llvm/lib/Target/X86/X86InstrAVX512.td +++ b/llvm/lib/Target/X86/X86InstrAVX512.td @@ -11333,22 +11333,26 @@ let hasSideEffects = 0, mayLoad = 1, ExeDomain = SSEPackedSingle, defm V4FMADDPSrm : AVX512_maskable_3src_in_asm<0x9A, MRMSrcMem, v16f32_info, (outs VR512:$dst), (ins VR512:$src2, f128mem:$src3), "v4fmaddps", "$src3, $src2", "$src2, $src3", - []>, EVEX_V512, EVEX_4V, T8XD, EVEX_CD8<32, CD8VQ>; + []>, EVEX_V512, EVEX_4V, T8XD, EVEX_CD8<32, CD8VQ>, + Sched<[SchedWriteFMA.ZMM.Folded]>; defm V4FNMADDPSrm : AVX512_maskable_3src_in_asm<0xAA, MRMSrcMem, v16f32_info, (outs VR512:$dst), (ins VR512:$src2, f128mem:$src3), "v4fnmaddps", "$src3, $src2", "$src2, $src3", - []>, EVEX_V512, EVEX_4V, T8XD, EVEX_CD8<32, CD8VQ>; + []>, EVEX_V512, EVEX_4V, T8XD, EVEX_CD8<32, CD8VQ>, + Sched<[SchedWriteFMA.ZMM.Folded]>; defm V4FMADDSSrm : AVX512_maskable_3src_in_asm<0x9B, MRMSrcMem, f32x_info, (outs VR128X:$dst), (ins VR128X:$src2, f128mem:$src3), "v4fmaddss", "$src3, $src2", "$src2, $src3", - []>, EVEX_V128, EVEX_4V, T8XD, EVEX_CD8<32, CD8VF>; + []>, EVEX_V128, EVEX_4V, T8XD, EVEX_CD8<32, CD8VF>, + Sched<[SchedWriteFMA.Scl.Folded]>; defm V4FNMADDSSrm : AVX512_maskable_3src_in_asm<0xAB, MRMSrcMem, f32x_info, (outs VR128X:$dst), (ins VR128X:$src2, f128mem:$src3), "v4fnmaddss", "$src3, $src2", "$src2, $src3", - []>, EVEX_V128, EVEX_4V, T8XD, EVEX_CD8<32, CD8VF>; + []>, EVEX_V128, EVEX_4V, T8XD, EVEX_CD8<32, CD8VF>, + Sched<[SchedWriteFMA.Scl.Folded]>; } //===----------------------------------------------------------------------===// @@ -11360,11 +11364,13 @@ let hasSideEffects = 0, mayLoad = 1, ExeDomain = SSEPackedInt, defm VP4DPWSSDrm : AVX512_maskable_3src_in_asm<0x52, MRMSrcMem, v16i32_info, (outs VR512:$dst), (ins VR512:$src2, f128mem:$src3), "vp4dpwssd", "$src3, $src2", "$src2, $src3", - []>, EVEX_V512, EVEX_4V, T8XD, EVEX_CD8<32, CD8VQ>; + []>, EVEX_V512, EVEX_4V, T8XD, EVEX_CD8<32, CD8VQ>, + Sched<[SchedWriteFMA.ZMM.Folded]>; defm VP4DPWSSDSrm : AVX512_maskable_3src_in_asm<0x53, MRMSrcMem, v16i32_info, (outs VR512:$dst), (ins VR512:$src2, f128mem:$src3), "vp4dpwssds", "$src3, $src2", "$src2, $src3", - []>, EVEX_V512, EVEX_4V, T8XD, EVEX_CD8<32, CD8VQ>; + []>, EVEX_V512, EVEX_4V, T8XD, EVEX_CD8<32, CD8VQ>, + Sched<[SchedWriteFMA.ZMM.Folded]>; } |