I can confirm the issue, but it only occurs when no optimization
options are used.
Thanks for checking it. However, I think the fact that it does not happen with -O2 is just an an artefact due to the fact that "x" variable is initialized with a constant value: I suppose the compiler than sees that it can precompute the result of cabsf(x) without needing to call cabsf. If you remove the initialization of "x" (e.g. only use "float complex x;"), then cabsf is used again, even with -O2 turned on.