[llvm] [AMDGPU] Fix performFMACombine FDOT2 fold ignores denormal-fp-math-f32 (PR #205101)
Wooseok Lee via llvm-commits
llvm-commits at lists.llvm.org
Mon Jun 22 09:55:39 PDT 2026
================
@@ -411,3 +412,27 @@ entry:
store float %acc2, ptr addrspace(1) %dst, align 4
ret void
}
+
+; GCN-LABEL: {{^}}dotproduct_f16_f32_contract_ieee_denorm
+; GFX950-DENORM: v_fma_mix_f32
+; GFX950-DENORM: v_fma_mix_f32
+; GFX950-DENORM-NOT: v_dot2c_f32_f16
+; GFX950-DENORM-NOT: v_dot2_f32_f16
+define amdgpu_kernel void @dotproduct_f16_f32_contract_ieee_denorm(<2 x half> %a, <2 x half> %b, float %z, ptr addrspace(1) %out) #0 {
+ %ax = extractelement <2 x half> %a, i32 0
+ %axf = fpext half %ax to float
+ %ay = extractelement <2 x half> %a, i32 1
+ %ayf = fpext half %ay to float
+
+ %bx = extractelement <2 x half> %b, i32 0
+ %bxf = fpext half %bx to float
+ %by = extractelement <2 x half> %b, i32 1
+ %byf = fpext half %by to float
+
+ %inner = call contract float @llvm.fma.f32(float %ayf, float %byf, float %z)
+ %outer = call contract float @llvm.fma.f32(float %axf, float %bxf, float %inner)
+ store float %outer, ptr addrspace(1) %out
+ ret void
+}
+
+attributes #0 = { "denormal-fp-math-f32"="ieee,ieee" }
----------------
wooseoklee wrote:
Thanks. I will update the test as you guided.
https://github.com/llvm/llvm-project/pull/205101
More information about the llvm-commits
mailing list