Hey,

I have to admit I am not super familiar with long doubles, either than knowing they are 128-bit FP representations... but bisect has pointed me to this patch when investigating a regression on aarch64_be-none-elf for the libstdc++ testcase: 26_numerics/complex/13450.cc

After some reduction and investigation I found that __complex_pow<long double> now returns a different value (which I believe is a NaN) after this patch. Some debugging and it seems that the implementation of complex_pow itself has not changed, or at least I didn't spot a change but the underlying sqrtl is different, assuming one is from libstdc++ and the other from newlib? The one used prior to this patch when called with input 0x3fff0000...0000 which I believe to be the value 1.0, returns the same value. Whereas the new one returns 0x4101000...0000fdfa with the same input.

Can you just confirm this is 'wrong' and that the problem is likely to be with the big-endian implementation of sqrtl in I'm guessing newlib?


Kind regards,
Andre

Reply via email to