[llvm] [AMDGPU][DAGCombiner][GlobalISel] Prevent FMA contraction when multiply cannot be eliminated (PR #169735)

Matt Arsenault via llvm-commits llvm-commits at lists.llvm.org
Mon Dec 1 09:06:37 PST 2025


================
@@ -665,19 +619,13 @@ define float @fsub_fneg_fpext_fmul_f16_to_f32(half %x, half %y, float %z) #0 {
 ; GFX11-FAKE16-NEXT:    v_sub_f32_e32 v0, v0, v2
 ; GFX11-FAKE16-NEXT:    s_setpc_b64 s[30:31]
 ;
-; GFX9-F32FLUSH-LABEL: fsub_fneg_fpext_fmul_f16_to_f32:
-; GFX9-F32FLUSH:       ; %bb.0: ; %entry
-; GFX9-F32FLUSH-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
-; GFX9-F32FLUSH-NEXT:    v_mad_mix_f32 v0, v0, -v1, -v2 op_sel_hi:[1,1,0]
-; GFX9-F32FLUSH-NEXT:    s_setpc_b64 s[30:31]
-;
-; GFX9-F32DENORM-LABEL: fsub_fneg_fpext_fmul_f16_to_f32:
-; GFX9-F32DENORM:       ; %bb.0: ; %entry
-; GFX9-F32DENORM-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
-; GFX9-F32DENORM-NEXT:    v_mul_f16_e64 v0, v0, -v1
-; GFX9-F32DENORM-NEXT:    v_cvt_f32_f16_e32 v0, v0
-; GFX9-F32DENORM-NEXT:    v_sub_f32_e32 v0, v0, v2
-; GFX9-F32DENORM-NEXT:    s_setpc_b64 s[30:31]
+; GFX89-LABEL: fsub_fneg_fpext_fmul_f16_to_f32:
+; GFX89:       ; %bb.0: ; %entry
+; GFX89-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
----------------
arsenm wrote:

Regression 

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


More information about the llvm-commits mailing list