----- 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? -Hal > > Ah, this is an excellent point. That does seem confusing. Do you have > an alternate suggestion? (would it be better to add some kind of > __builtin_convert intrinsic?) > > Thanks, > Hal > > > > > Thanks, > > – Steve > > > > On Sep 11, 2013, at 12:04 PM, Hal Finkel <[email protected]> wrote: > > > > > Hello, > > > > > > Please review the attached patch which adds support for casting > > > between vector types with different sizes (but the same number of > > > vector elements). LLVM supports these conversions for the > > > underlying LLVM vector types (just as for the scalar types), and > > > this adds support in Clang, requiring minor modifications in Sema > > > and CodeGen. > > > > > > For example, this patch allows the following to work: > > > > > > typedef double vector4double > > > __attribute__((__vector_size__(32))); > > > typedef float vector4float > > > __attribute__((__vector_size__(16))); > > > > > > vector4float flt_trunc(vector4double x) { > > > return (vector4float) x; > > > } > > > > > > On some targets the code generation for these conversions has > > > been > > > optimized (autovectorization can produce these conversions), and > > > accessing these capabilities from Clang is important, for > > > example, > > > when writing intrinsics headers (which, when possible, we prefer > > > to implement in terms of generic IR). > > > > > > Thanks in advance, > > > Hal > > > > > > -- > > > Hal Finkel > > > Assistant Computational Scientist > > > Leadership Computing Facility > > > Argonne National Laboratory > > > <mixed-size-vec-casts.patch>_______________________________________________ > > > cfe-commits mailing list > > > [email protected] > > > http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits > > > > > > -- > 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 > -- 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
