https://gcc.gnu.org/bugzilla/show_bug.cgi?id=122323
Bug ID: 122323
Summary: [14/15/16 Regression] Failed to optimize copysign
Product: gcc
Version: 16.0
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component: middle-end
Assignee: unassigned at gcc dot gnu.org
Reporter: hjl.tools at gmail dot com
Target Milestone: ---
[hjl@gnu-tgl-3 pr99930]$ cat y.cc
#include <stdlib.h>
float t(float x)
{
return -abs (x);
}
[hjl@gnu-tgl-3 pr99930]$ /usr/gcc-13.2.1-x32/bin/gcc -O3 -S y.cc
[hjl@gnu-tgl-3 pr99930]$ cat y.s
.file "y.cc"
.text
.p2align 4
.globl _Z1tf
.type _Z1tf, @function
_Z1tf:
.LFB22:
.cfi_startproc
orps .LC1(%rip), %xmm0
ret
.cfi_endproc
.LFE22:
.size _Z1tf, .-_Z1tf
.section .rodata.cst16,"aM",@progbits,16
.align 16
.LC1:
.long -2147483648
.long 0
.long 0
.long 0
.ident "GCC: (GNU) 13.2.1 20240112"
.section .note.GNU-stack,"",@progbits
[hjl@gnu-tgl-3 pr99930]$ /usr/gcc-14.2.1-x32/bin/gcc -O3 -S y.cc
[hjl@gnu-tgl-3 pr99930]$ cat y.s
.file "y.cc"
.text
.p2align 4
.globl _Z1tf
.type _Z1tf, @function
_Z1tf:
.LFB23:
.cfi_startproc
movss .LC1(%rip), %xmm1
movss .LC0(%rip), %xmm2
movaps %xmm0, %xmm3
movaps %xmm1, %xmm0
andnps %xmm3, %xmm0
andps %xmm2, %xmm1
orps %xmm1, %xmm0
ret
.cfi_endproc
.LFE23:
.size _Z1tf, .-_Z1tf
.section .rodata.cst4,"aM",@progbits,4
.align 4
.LC0:
.long -1082130432
.section .rodata.cst16,"aM",@progbits,16
.align 16
.LC1:
.long -2147483648
.long 0
.long 0
.long 0
.ident "GCC: (GNU) 14.2.1 20240906 [releases/gcc-14
r14-10649-gaedf6f810ee]"
.section .note.GNU-stack,"",@progbits
[hjl@gnu-tgl-3 pr99930]$