Ira Rosen IRAR@il.ibm.com writes:
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?
Sorry, my bad. Like you say, I suppose the two options are to (a) overload __builtin_load_lanes or (b) have a third built-in function. And as you imply, I suppose (b) is going to be less confusing.
Do you have any suggestions for names? __builtin_load_replicate?
Richard