----- Original Message ----- > > On Sep 12, 2013, at 2:08 PM, Hal Finkel <[email protected]> wrote: > > > ----- Original Message ----- > >> > >> On Wed, Sep 11, 2013 at 3:34 PM, Hal Finkel < [email protected] > > >> wrote: > >> > >> ----- Original Message ----- > >>> On Sep 11, 2013, at 3:29 PM, Hal Finkel < [email protected] > > >>> 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.
OIC, all of the convert_* functions. I've been thinking about constructing a patch to implement __builtin_vectorconvert(type, value), do you think that is a reasonable approach? Thanks again, Hal -- Hal Finkel Assistant Computational Scientist Leadership Computing Facility Argonne National Laboratory _______________________________________________ cfe-commits mailing list [email protected] http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits
