This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Re: Fix SPEC2000 GCC misscopilation and SIMD support
> On Tue, Dec 10, 2002 at 03:37:49PM +0100, Jan Hubicka wrote:
> > However this function uses CANNOT_CHANGE_MODE_CLASS and will generate
> > (subreg:V2DF (reg:DF xmm0) 0) sequences when CANNOT_CHANGE_MODE_CLASS
> > returns XMM_REGS.
>
> And why would you have CANNOT_CHANGE_MODE_CLASS prohibit
> paradoxical subregs?
Hmm, this is good question. You are right, I can prohibit only
the other way around. My first try was just too zelaous and I didn't
noticed this...
We still may want to generate the other round of subregs when unpacing
scalar floating point values.. Something of the form:
double a;
v2df b;
a=b.0;
This is of course not issue for 3.3 where SSE builtins generate lousy
code in other cases, but in future I think we should manage to convert
a into subreg of b.
Do you see such longer term plan without using the subregs?
I know we do have VEC_SELECT construct that in some ways is equivalent
to SUBREG (ie we can just manage to have VEC_SELECTS in all operations
on a) but that would mean to teach combine, regmove and similar mess
that VEC_SELECT is SUBREG-like construct...
Honza
>
>
> r~