This intrinsic selects v_mad_f32 regardless of fp32 denorm support.
Details
Diff Detail
Event Timeline
| include/llvm/IR/IntrinsicsAMDGPU.td | ||
|---|---|---|
| 364 | Does v_mad_f16 flush denormals? I don't think it does | |
| include/llvm/IR/IntrinsicsAMDGPU.td | ||
|---|---|---|
| 364 | It does. It cannot preserve denormals. It is even lowered into FMAD_FTZ, which is lowered to mad. The new part is this intrinsic sitting above the existing SDNode. | |
| include/llvm/IR/IntrinsicsAMDGPU.td | ||
|---|---|---|
| 364 | In that case I would make this intrinsic type mangled and make it work for f16 as well | |
| include/llvm/IR/IntrinsicsAMDGPU.td | ||
|---|---|---|
| 364 | AFAIR f16 does not flush. | |
| include/llvm/IR/IntrinsicsAMDGPU.td | ||
|---|---|---|
| 364 | Sorry for confusion: v_mad_f32 flushes. v_mad_f16 does not. That is why it is not overloaded. | |
Actually according to the selection code, f16 mad does not support denormals the same, so the intrinsic should work with f16 if that is correct
Perhaps fixes needed.
| include/llvm/IR/IntrinsicsAMDGPU.td | ||
|---|---|---|
| 364 | According to SCDevUtil/SCMathengine, V_MAD_F16 always flushes HP denormals. Please double-check. | |
Does v_mad_f16 flush denormals? I don't think it does