[llvm] [X86] Honor rewrite semantics of `contract` in X86ISel combines (PR #174440)

Simon Pilgrim via llvm-commits llvm-commits at lists.llvm.org
Tue Jan 6 06:08:05 PST 2026


================
@@ -56639,6 +56602,10 @@ static SDValue combineFMA(SDNode *N, SelectionDAG &DAG,
 // Combine FMSUBADD(A, B, FNEG(C)) -> FMADDSUB(A, B, C)
 static SDValue combineFMADDSUB(SDNode *N, SelectionDAG &DAG,
                                TargetLowering::DAGCombinerInfo &DCI) {
+  // FIXME: We should check for contract to perform this combine; but this
+  // breaks lowering of certain intrinsics that depend on this combine being
+  // perfomed (i.e.llvm.x86.avx512.mask3.vfmsubadd).
----------------
RKSimon wrote:

is this still relevant? its purely about negating the accumulator operand

https://github.com/llvm/llvm-project/pull/174440


More information about the llvm-commits mailing list