This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Re: [doc, testsuite, libgfortran] Avoid use of SSE/SSE2/SSE3 on Solaris 8/9 x86
On Thu, Jul 15, 2010 at 12:43 PM, Rainer Orth
<ro@cebitec.uni-bielefeld.de> wrote:
> Uros Bizjak <ubizjak@gmail.com> writes:
>
>> This patch is OK, but please commit it without sse{,2}_runtime changes.
>
> Done after testing on the branches completed.
>
>> Please prepare another incremental patch that includes sse{,2}_runtime
>> stuff, we will discuss your approach separatelly.
>
> Right now, this is just the sse{, 2}_runtime part of the original patch
> as is. ?It seems possible to convert most of the tests to use sse{, 2,
> 3}-check.h instead, with the exception of the users of isa-check.h.
> Beyond, I think we still need the check_effective_target_sse{,
> 2}_runtime procs for use in lib/fortran-torture.exp and and
> gfortran.dg/vect/vect.exp.
>
> Comments?
I don't think we need separate check_sse_runtime and
check_sse2_runtime. There are no separate sse and sse2 registers (they
are called xmm registers). FYI, mmx regs are aliased to x87 register
stack and are not affected by this problem.
So, I propose to
a) Add only check_sse_os_support_available check
b) Search for all vect.exp files and add this check together with
check_sse2_hw_available to fix vect testsuites
c) Introduce new check_effective_target_sse2_runtime. Put
check_sse2_hw_available and check_sse_os_support_available into this
function (in a similar way as vect.exp does).
c1) Eventually, introduce check_effective_target_sse_runtime and
corresponding sse_hw_available.
d) You can then remove all homegrown runtime checks for SSE from the testcases.
I would also prefer to unify solaris check in i386.md IMO, it is
enough to check "movss %xmm2, %xmm1" for all SSE levels. This would
remove complications with ILL_INSN, since it will always be the same
and thus part of sol2-check.
BTW: I think you will need to change all *-check.h checks (minus
MMX/3dNOW! ones) to prevent tests from touching xmm regs.
Uros.