[Sorry, forgot to CC: the list]

Hi Ira,

Thanks for the feedback.

On 6 March 2011 09:20, Ira Rosen <i...@il.ibm.com> wrote:
> > So how about the following functions?  (Forgive the pascally syntax.)
> >
> >     __builtin_load_lanes (REF : array N*M of X)
> >       returns array N of vector M of X
> >       maps to vldN
> >       in practice, the result would be used in assignments of the form:
> >         vectorX = ARRAY_REF <result, X>
> >
> >     __builtin_store_lanes (VECTORS : array N of vector M of X)
> >       returns array N*M of X
> >       maps to vstN
> >       in practice, the argument would be populated by assignments ofthe
> form:
> >         vectorX = ARRAY_REF <result, X>
> >
> >     __builtin_load_lane (REF : array N of X,
> >           VECTORS : array N of vector M of X,
> >           LANE : integer)
> >       returns array N of vector M of X
> >       maps to vldN_lane
> >
> >     __builtin_store_lane (VECTORS : array N of vector M of X,
> >            LANE : integer)
> >       returns array N of X
> >       maps to vstN_lane
> >
>
> How do you distinguish between "multiple structures" and "single structure
> to all lanes"?

Sorry, I'm not sure I understand the question. Could you give a couple
of examples?

The idea is that the arrays above really are array types, regardless of the
actual type of the thing we're accessing (which might be a larger array
than the bounds above say, or which might be an array of structures
or a structure of arrays).  That should be OK because arrays alias
their elements.

Richard

_______________________________________________
linaro-toolchain mailing list
linaro-toolchain@lists.linaro.org
http://lists.linaro.org/mailman/listinfo/linaro-toolchain

Reply via email to