https://gcc.gnu.org/bugzilla/show_bug.cgi?id=120638
chenglulu <chenglulu at loongson dot cn> changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |chenglulu at loongson dot cn Target| |x86_64,loongarch64 --- Comment #1 from chenglulu <chenglulu at loongson dot cn> --- On x86_64: test.c ``` extern unsigned int step; extern float sqrtf (float x); extern void test1 (float); void test () { test1 (0.5 / sqrtf (1. + step)); } ``` # cc1 testf.c -o - -O2 -ffast-math -msse -mfpmath=sse -mrecip -fdump-tree-all --param=ranger-debug=all test.s ``` test: .LFB0: .cfi_startproc movss .LC0(%rip), %xmm0 jmp test1 .cfi_endproc .LFE0: .size test, .-test .section .rodata.cst4,"aM",@progbits,4 .align 4 .LC0: .long 1056964608 .ident "GCC: (GNU) 16.0.0 20250605 (experimental)" .section .note.GNU-stack,"",@progbits ``` In commit r16-1191 and later, the parameters of test1 were incorrectly optimized to 0.5.