This is the mail archive of the mailing list for the GCC 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]

RE: [RFC PATCH, x86_64] Use -mno-sse[,2] to fall back to x87 FP argument passing convention


> I have results for povray-3.6.1 on "Intel(R) Xeon(TM) CPU 
> 3.60GHz", 32bit code:
> -pipe -Wno-multichar -O3 -mfpmath={387,sse} -ffast-math
> -D__NO_MATH_INLINES -march=pentium4 -mtune=pentium4 -malign-double
> -minline-all-stringops
> The results for _official_ povray.ini benchmark show nothing 
> conclusive, with
> 28m11.082s for -mfpmath=sse and
> 28m24.763s for -mfpmath=387
> Please note, that in this case, mfpmath=387 uses x87 intrinsics, and
> SSE uses register-passing convention for local functions. I'll
> benchmark Athlon XP soon.

As you use -malign-double, I gather that double-precision is important to you.  Therefore, you'll need at least an Athlon 64, for no Athlon XP supported SSE2.

Yet, as Maichael said, this is a bit of an apples and oranges comaprison.  You point out that x87 should be used to pass arguments on x86-64 in violation of the ABI.  Therefore, you should run x86-64 PovRay instead.  And as I said before, make sure that you're taking underperforming GLIBC transcendentals for x87 vs. SSE issues.

BTW, have you tried -ftree-vectorize and compared that with x87?  Keep this in mind when for 4.3 we intend to resume adding vectorized transcendentals. Which was regretably pulled out of 4.2.
> BTW: For my particular field of interest (processing real-world data),
> there is no need for strict IEEE compatibility as data is always in
> the same magnitude, and arguments to trigonometric functions are
> always less than <something>^38 ;).

Well, FSIN returns results accurate to only 11 mantissa bits for angles around multiples of 90° above 10E5...

Evandro Menezes               AMD            Austin, TX

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