The patched roots work for me (at least gcc_os (gcc 3.3) did). How did you install it? Shantonu On Aug 6, 2005, at 7:57 AM, Michael Franz wrote:
You can just look at the generated assembly. Like this: [shantonu@localhost]$ cat foo.c int foo(double a) { return (int)a; } [shantonu@ localhost]$ cc -S -o - -arch i386 foo.c | grep xmm movsd -16(%ebp), %xmm0 cvttsd2si %xmm0, %eax [shantonu@ localhost]$ cc -S -o - -arch i386 foo.c -mno-sse2 | grep xmm [shantonu@ localhost]$ cc -S -o - -arch i386 foo.c - march=pentiumpro | grep xmm [shantonu@ localhost]$
If you don't get any output for all 3 invocations, your compiler is not auto-generating SSE2 instructions (or at least, that's a pretty good metric). There are probably SSE(1) instructions that use the xmm registers, this is just a quick heuristic for this one program.
When I run this test on the base install, 1 & 3 have output, the same for using the patched roots. However, when I build the patched gcc myself, the resulting compiler produces no mmx results. So, do I infer that the patched roots ARE producing SSE2, but that the gcc patch does work?
Michael