diff --git a/lib/Target/X86/X86InstrFMA.td b/lib/Target/X86/X86InstrFMA.td index 3dd642f2cff..0b57382d956 100644 --- a/lib/Target/X86/X86InstrFMA.td +++ b/lib/Target/X86/X86InstrFMA.td @@ -17,6 +17,7 @@ let Constraints = "$src1 = $dst" in { multiclass fma3p_rm opc, string OpcodeStr> { +let neverHasSideEffects = 1 in { def r : FMA3 opc, string OpcodeStr> { (ins VR256:$src1, VR256:$src2, f256mem:$src3), !strconcat(OpcodeStr, "\t{$src3, $src2, $dst|$dst, $src2, $src3}"), []>; +} // neverHasSideEffects = 1 } // Intrinsic for 132 pattern @@ -117,14 +119,17 @@ let ExeDomain = SSEPackedDouble in { let Constraints = "$src1 = $dst" in { multiclass fma3s_rm opc, string OpcodeStr, X86MemOperand x86memop, RegisterClass RC> { +let neverHasSideEffects = 1 in { def r : FMA3; + let mayLoad = 1 in def m : FMA3; +} // neverHasSideEffects = 1 } multiclass fma3s_rm_int opc, string OpcodeStr, X86MemOperand x86memop,