> [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?
Sorry, I guess I just don't understand the syntax. I meant to ask about three different types of vld/vst. For example, vld3 can be (1) multiple 3-element structures: loads multiple 3-element structures into 3 registers (2) single 3-element structure to one lane: loads one 3-element structure into corresponding elements of 3 registers (3) single 3-element structure to all lanes: loads one 3-element structure into all lanes of 3 registers. I understood that __builtin_load_lanes implements (1) and __builtin_load_lane implements (2), is that correct? And what function corresponds to (3)? __builtin_load_lanes? Thanks, Ira > > 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 _______________________________________________ linaro-toolchain mailing list linaro-toolchain@lists.linaro.org http://lists.linaro.org/mailman/listinfo/linaro-toolchain