Lurie97 wrote:

Thanks @arsenm, I have tried https://github.com/llvm/llvm-project/pull/222369.
It does fix the flush-to-zero issue, but CTS math_brute_force fmod still fails 
on our device (i.MX95 Mali-G310,
Panfrost/Rusticl, CL_FP_DENORM): six fp32 points where x is subnormal and y is 
normal now return NaN instead of x.
e.g.

  fmod(-0x1.26e13p-128, -0x1.2afc64p+16) -> nan, expected -0x1.26e13p-128

The reduction is fine; the NaN comes from the new edge-case handling, where 
__clc_isfinite(x) lowers to __builtin_isfpclass and misclassifies subnormals on 
this target.
I open a PR to fix this issue, https://github.com/llvm/llvm-project/pull/225351
Reduction loop is untouched, only the classification goes back to plain bit 
arithmetic (+15/-8), so the instruction
count win is kept.
Could you help to take a look please? And this PR I will close.

https://github.com/llvm/llvm-project/pull/215768
_______________________________________________
cfe-commits mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to