[PATCH] Allow casts of mixed-size same-arity vectors
Stephen Canon
scanon at apple.com
Thu Sep 12 14:10:16 PDT 2013
On Sep 12, 2013, at 2:08 PM, Hal Finkel <hfinkel at anl.gov> wrote:
> ----- Original Message -----
>>
>> On Wed, Sep 11, 2013 at 3:34 PM, Hal Finkel < hfinkel at anl.gov >
>> wrote:
>>
>> ----- Original Message -----
>>> On Sep 11, 2013, at 3:29 PM, Hal Finkel < hfinkel at anl.gov > wrote:
>>>
>>>
>>>
>>>
>>>
>>> ----- Original Message -----
>>>
>>>
>>> ----- Original Message -----
>>>
>>>
>>> Hal —
>>>
>>> Am I understanding this correctly:
>>>
>>> vector4float x;
>>> vector4int16 y = (vector4int16)x; // this is a conversion
>>> vector4int32 z = (vector4int32)x; // this is a bitcast
>>>
>>> This seems confusing in the extreme.
>>>
>>> On the other hand, I don't really like the implied int-to-float
>>> bitcast semantics. Maybe it would be better to just add a warning
>>> for this case. What do you think?
>>>
>>> bitcast semantics for vector casts are an essential tool for SIMD
>>> programming. Essentially all warnings generated would be false
>>> positives.
>>
>> Do you specifically mean in OpenCL, or generally? (I've worked on
>> SIMD special function implementations, so I understand the utility).
>>
>> OpenCL doesn't allow writing casts like this at all, if that's what
>> you're asking; OpenCL requires using intrinsics.
>
> So is there already an intrinsic that does what I want here?
In OpenCL there are ~5000 of them (IIRC), yes.
More information about the cfe-commits
mailing list