Software Archive
Read-only legacy content
17061 Discussions

intel vector abi mangling questions

Aldy_Hernandez
Beginner
660 Views

Hi.

I have a few questions regarding vector function mangling as specified in 2012-v0.9.5.  If this is not the right forum for this, could I please be guided to the appropriate one?

1. What is the order of the vparameters and the alignment parameter ('s', 'l', 'u', 'v', 'a')?  For example, if an argument is constantly linear by 2 and uniform, is that encoded as "l2u" or "ul2".  Similarly for the rest of the encoding characters.

Just by looking at the "_ZGVxN4ua32vl_setArray" example on page 7, I would assume that the order is [uniform, aligned, vector, linear], but the spec does not specifically say that, so I don't know.

2. What specifically is the 'v' (vector) parameter for?  The mangling section (2.6) says "vector" but does not define it.  Furthermore, in the example therein, it says that "v" indicates private(x), not vector.  I'm a bit confused here..

3. The setArray() example has an "aligned" clause, yet Cilk Plus doesn't have an aligned clause in the language spec.

Thanks for any help on this.
Aldy

0 Kudos
3 Replies
Balaji_I_Intel
Employee
660 Views

Hi Aldy,

   The order is defined by the order of appearance of the parameter-list in the function. For example,  func (short a, int b) where a is uniform and b is linear with step-size of 2 it will be encoded as "ul2"

If the parameter is neither uniform or linear it will be called "vector" (I think private is an older name). It indicates that the parameter should be passed in through a vector register, whereas linear and uniform uses scalar registers.

Thanks,

Balaji V. Iyer. 

0 Kudos
Aldy_Hernandez
Beginner
660 Views

Whoops, my bad.  Uniform, linear, and vector can't coexist in one variable, and I see that alignment is always at the end.  Sorry.

Ok then, for number #3, I assume this is for OpenMP only, or there is a missing "aligned" clause in the Cilk Plus spec.

0 Kudos
Balaji_I_Intel
Employee
660 Views

Sorry I forgot to address about aligned clause. Yes, it is an OpenMP only clause.

-Balaji V. Iyer.

0 Kudos
Reply