This is the mail archive of the
glibc-bugs@sourceware.org
mailing list for the glibc project.
[Bug libc/14059] HAS_FMA4 check needs to also check for AVX
- From: "jwestfall at surrealistic dot net" <sourceware-bugzilla at sourceware dot org>
- To: glibc-bugs at sources dot redhat dot com
- Date: Mon, 07 May 2012 22:46:18 +0000
- Subject: [Bug libc/14059] HAS_FMA4 check needs to also check for AVX
- Auto-submitted: auto-generated
- References: <bug-14059-131@http.sourceware.org/bugzilla/>
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.