[patch] extend.texi MIPS PS/3D Support

Chao-ying Fu fu@mips.com
Tue Sep 28 19:35:00 GMT 2004


Hello,

build_vector_type() -> make_vecotr_type() -> layout_type() returns DImode
for 2 units of SImode (innermode).

Then, vect_analyze_operatoions()->vectorizable_operation() checks if
optab->handlers[DImode].insn_code is available.

But, we should check optab->handlers[V2SImode].insn_code.

Regards,

Chao-ying

----- Original Message ----- 
From: "Dorit Naishlos" <DORIT@il.ibm.com>
To: "Richard Henderson" <rth@redhat.com>
Cc: "Chao-ying Fu" <fu@mips.com>; <gcc-patches@gcc.gnu.org>; "Stephens,
Nigel" <nigel@mercury.mips.com>; "Thekkath, Radhika"
<radhika@mercury.mips.com>; "Richard Sandiford" <rsandifo@redhat.com>;
"Uhler, Mike" <uhler@mercury.mips.com>; "Jim Wilson"
<wilson@specifixinc.com>
Sent: Tuesday, September 28, 2004 6:25 AM
Subject: Re: [patch] extend.texi MIPS PS/3D Support


>
> > The real problem is that you're pulling out SImode and deciding
> > that add_optab[SImode] is the vector addition operation.
>
> but how come we get SImode here? we call build_vector_type with
> innertype = SI, and
> nunits = UNITS_PER_SIMD_WORD / nbytes = 8 / 4 = 2
> so it should return a V2SI vectype, which is not supported by the target
> and therefore should have a BLKmode. no?
>
> dorit
>
>
>
>
>                       Richard Henderson
>                       <rth@redhat.com>         To:       Dorit
Naishlos/Haifa/IBM@IBMIL
>                                                cc:       Chao-ying Fu
<fu@mips.com>, gcc-patches@gcc.gnu.org, "Stephens, Nigel"
>                       28/09/2004 01:43          <nigel@mercury.mips.com>,
"Thekkath, Radhika" <radhika@mercury.mips.com>, Richard
>                                                 Sandiford
<rsandifo@redhat.com>, "Uhler, Mike" <uhler@mercury.mips.com>, Jim
>                                                 Wilson
<wilson@specifixinc.com>
>                                                Subject:  Re: [patch]
extend.texi MIPS PS/3D Support
>
>
>
>
>
> On Tue, Sep 28, 2004 at 01:30:00AM +0200, Dorit Naishlos wrote:
> > Maybe the problem is here (in get_vectype_for_scalar_type):
> >
> >   vectype = build_vector_type (scalar_type, nunits);
> >   if (TYPE_MODE (vectype) == BLKmode)
> >     return NULL_TREE;
> >
> > Maybe the vectype that is built has a mode other than BLKmode, although
> > it's not supported by the target?
>
> Yes, e.g. V4QI may be represented with SImode.  But that's fine,
> since the vectorizer may be able to optimize data movement loops
> with no other vector support in the target.  (E.g. if target and
> destination are alignable.)
>
> The real problem is that you're pulling out SImode and deciding
> that add_optab[SImode] is the vector addition operation.
>
>
> r~
>
>
>
>



More information about the Gcc-patches mailing list