This is the mail archive of the glibc-bugs@sourceware.org mailing list for the glibc project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[Bug libc/14059] HAS_FMA4 check needs to also check for AVX


http://sourceware.org/bugzilla/show_bug.cgi?id=14059

--- Comment #4 from Jim Westfall <jwestfall at surrealistic dot net> 2012-05-07 22:46:18 UTC ---
Hi

Here is what I see with master/head.  My test case is simply this

#include <math.h>

int main(void) {
  double x = 0.5;
  exp(x);
  return 0;
}
gcc -o exp-test exp-test.c -lm

Intel i5-2405S dom0 under xen.  AVX runtime detection is re-broken.

Program terminated with signal 4, Illegal instruction.
#0  0x00007f00d708ff71 in __ieee754_exp_avx (x=0.5) at
../sysdeps/ieee754/dbl-64/e_exp.c:55
55    __ieee754_exp(double x) {
(gdb) info address __ieee754_exp_avx
Symbol "__ieee754_exp_avx" is a function at address 0x7f00d708ff70.
(gdb) disassemble __ieee754_exp_avx,+30
Dump of assembler code from 0x7f00d708ff70 to 0x7f00d708ff8e:
   0x00007f00d708ff70 <__ieee754_exp_avx+0>:    push   %rbx
=> 0x00007f00d708ff71 <__ieee754_exp_avx+1>:    vmovapd %xmm0,%xmm2
   0x00007f00d708ff75 <__ieee754_exp_avx+5>:    sub    $0x20,%rsp
   0x00007f00d708ff79 <__ieee754_exp_avx+9>:    vstmxcsr 0x1c(%rsp)
   0x00007f00d708ff7f <__ieee754_exp_avx+15>:    mov    0x1c(%rsp),%ebx
   0x00007f00d708ff83 <__ieee754_exp_avx+19>:    mov    %ebx,%eax
   0x00007f00d708ff85 <__ieee754_exp_avx+21>:    and    $0x9f,%ah
   0x00007f00d708ff88 <__ieee754_exp_avx+24>:    mov    %eax,0x1c(%rsp)
   0x00007f00d708ff8c <__ieee754_exp_avx+28>:    vldmxcsr 0x1c(%rsp)
End of assembler dump.

AMD 6272 dom0 under xen
Program terminated with signal 4, Illegal instruction.
#0  0x00007fe07cf29d31 in __ieee754_exp_fma4 (x=0.5)
    at ../sysdeps/ieee754/dbl-64/e_exp.c:55
55    ../sysdeps/ieee754/dbl-64/e_exp.c: No such file or directory.
(gdb) disassemble __ieee754_exp_fma4,+30
Dump of assembler code from 0x7fe07cf29d30 to 0x7fe07cf29d4e:
   0x00007fe07cf29d30 <__ieee754_exp_fma4+0>:    push   %rbx
=> 0x00007fe07cf29d31 <__ieee754_exp_fma4+1>:    vmovapd %xmm0,%xmm1
   0x00007fe07cf29d35 <__ieee754_exp_fma4+5>:    sub    $0x20,%rsp
   0x00007fe07cf29d39 <__ieee754_exp_fma4+9>:    vstmxcsr 0x1c(%rsp)
   0x00007fe07cf29d3f <__ieee754_exp_fma4+15>:    mov    0x1c(%rsp),%ebx
   0x00007fe07cf29d43 <__ieee754_exp_fma4+19>:    mov    %ebx,%eax
   0x00007fe07cf29d45 <__ieee754_exp_fma4+21>:    and    $0x9f,%ah
   0x00007fe07cf29d48 <__ieee754_exp_fma4+24>:    mov    %eax,0x1c(%rsp)
   0x00007fe07cf29d4c <__ieee754_exp_fma4+28>:    vldmxcsr 0x1c(%rsp)
End of assembler dump.

jim

-- 
Configure bugmail: http://sourceware.org/bugzilla/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are on the CC list for the bug.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]