[cfe-dev] cfe-dev Digest, Vol 55, Issue 35

Anton Lokhmotov Anton.Lokhmotov at arm.com
Tue Jan 10 08:58:23 PST 2012


Hi Guy,

> the scalar operand should be converted to the Vector's
> elements type, and the widened to a vector of the same size as the
> vector operand.


There's a complication described in Section 6.2.6 (Usual Arithmetic
Conversions):

- "An error shall occur if any scalar operand has greater rank than the type
of the vector element."

- "2. The rank of any floating-point type is greater than the rank of any
integer type."

Therefore, expressions like "(int2)(0,1) + 1.0f" must be rejected.  Our
frontend gives the following error messages on your test code:

vector_scalar_operation.cl:9:18: error: Cannot downconvert and widen scalar
type 'float' to vector type 'int4'
        int4 res = ivec + f;
                   ~~~~ ^ ~
vector_scalar_operation.cl:10:16: error: Cannot downconvert and widen scalar
type 'float' to vector type 'int4'
        int4 res2 = f + ivec;
                    ~ ^ ~~~~

We are happy to submit soon a patch implementing this, but are about to
submit another one (and also are waiting for last submitted patch
(http://lists.cs.uiuc.edu/pipermail/cfe-dev/2012-January/019448.html to be
committed).

Best wishes,
Anton.







More information about the cfe-dev mailing list