|
Message-ID: <alpine.LRH.2.02.1902280305570.11194@key0.esi.com.au> Date: Thu, 28 Feb 2019 03:09:54 +1100 (AEDT) From: Damian McGuckin <damianm@....com.au> To: musl@...ts.openwall.com Subject: Re: FE Exception triggered by comparison Thanks for the feedback. On Wed, 27 Feb 2019, Alexander Monakov wrote: > On Thu, 28 Feb 2019, Damian McGuckin wrote: > >> I tried the code below, I was just shocked. >> >> #include <math.h> >> #include <stdio.h> >> >> main() >> { >> double x = 5.0; >> >> x -= x, x /= x; >> printf("what %s\n", isnan(x) ? "yes" : "no!"); >> return(0); >> } >> >> Looking at the assembler, there is a subroutine call to __isnan. Awful! > > Hm, no, for x86 with GCC you should not see that: the compiler knows how > to expand isnan efficiently. Are you perhaps on OS X and the 'gcc' > command actually invokes Clang/LLVM? No. > If not, can you show output of 'gcc -v', command-line flags you used, > and the assembly you're seeing? gcc -O3 -S -msse4.2 -mfma mynan.c Here is the assembler: .file "mynan.c" .section .rodata.str1.1,"aMS",@progbits,1 .LC0: .string "yes" .LC1: .string "no!" .LC3: .string "what %s\n" .section .text.startup,"ax",@progbits .p2align 4,,15 .globl main .type main, @function main: .LFB14: .cfi_startproc vxorpd %xmm0, %xmm0, %xmm0 subq $8, %rsp .cfi_def_cfa_offset 16 vdivsd %xmm0, %xmm0, %xmm0 call __isnan movl $.LC0, %esi testl %eax, %eax movl $.LC1, %eax cmove %rax, %rsi movl $.LC3, %edi xorl %eax, %eax call printf xorl %eax, %eax addq $8, %rsp .cfi_def_cfa_offset 8 ret .cfi_endproc .LFE14: .size main, .-main .ident "GCC: (GNU) 4.8.5 20150623 (Red Hat 4.8.5-36)" .section .note.GNU-stack,"",@progbits Regards - Damian Pacific Engineering Systems International, 277-279 Broadway, Glebe NSW 2037 Ph:+61-2-8571-0847 .. Fx:+61-2-9692-9623 | unsolicited email not wanted here Views & opinions here are mine and not those of any past or present employer
Powered by blists - more mailing lists
Confused about mailing lists and their use? Read about mailing lists on Wikipedia and check out these guidelines on proper formatting of your messages.