[X86] Make the VFMA*231 variants commutable and relax the alignment restrictions
[oota-llvm.git] / lib / Target / X86 / X86InstrFMA.td
index d994f5f3ecb5b6b848cf402625721eb2e47cb98b..df6c9da6977cb3060a909183d16548eacdcfd856 100644 (file)
@@ -67,6 +67,7 @@ let neverHasSideEffects = 1 in {
   defm r132 : fma3p_rm<opc132,
                        !strconcat(OpcodeStr, "132", PackTy),
                        MemFrag128, MemFrag256, OpTy128, OpTy256>;
+  let isCommutable = 1 in
   defm r231 : fma3p_rm<opc231,
                        !strconcat(OpcodeStr, "231", PackTy),
                        MemFrag128, MemFrag256, OpTy128, OpTy256>;
@@ -146,6 +147,7 @@ multiclass fma3s_forms<bits<8> opc132, bits<8> opc213, bits<8> opc231,
 let neverHasSideEffects = 1 in {
   defm r132 : fma3s_rm<opc132, !strconcat(OpStr, "132", PackTy),
                        x86memop, RC, OpVT, mem_frag>;
+  let isCommutable = 1 in
   defm r231 : fma3s_rm<opc231, !strconcat(OpStr, "231", PackTy),
                        x86memop, RC, OpVT, mem_frag>;
 }