This is the mail archive of the gcc-patches@gcc.gnu.org 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: [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.


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