[Bug c++/86497] New: Regression for x!=x
noone@turm-lahnstein.de
gcc-bugzilla@gcc.gnu.org
Wed Jul 11 22:06:00 GMT 2018
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=86497
Bug ID: 86497
Summary: Regression for x!=x
Product: gcc
Version: 8.1.0
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component: c++
Assignee: unassigned at gcc dot gnu.org
Reporter: noone@turm-lahnstein.de
Target Milestone: ---
When compiling
bool is_nan1(double x){
return x!=x;
}
with g++-8.1 -O3 the resulting assembler (https://godbolt.org/g/BBFM3Q) is
_Z7is_nan1d:
ucomisd %xmm0, %xmm0
movl $1, %edx
setne %al
cmovp %edx, %eax
ret
However, for version 7.3 the result was (https://godbolt.org/g/tR69jf) better:
_Z7is_nan1d:
ucomisd %xmm0, %xmm0
setp %al
ret
Also for 8.1 -Os is the assembler somewhat strange:
_Z7is_nan1d:
ucomisd %xmm0, %xmm0
movb $1, %al
jp .L2
setne %al
More information about the Gcc-bugs
mailing list