Vincenzo Innocente
2014-07-05 15:33:34 UTC
at the end of
https://gcc.gnu.org/onlinedocs/gcc/Vector-Extensions.html
I read
"It is possible to cast from one vector type to another, provided they are of the same size"
when I try, it looks to me that it is actually more a type-punning rather than a C-style cast.
Is it possible to cast “vectors” as in C one casts intrinsic types?
given
typedef float __attribute__( ( vector_size( 16 ) ) ) float32x4_t;
typedef int __attribute__( ( vector_size( 16 ) ) ) int32x4_t;
float32x4_t vf{4.2,-3.2, 1.2, 7.2};
int32x4_t vi = int32x4_t(vf);
is not what I would like to be i.e.
int32x4_t vi{int(vf[0]),int(vf[1]),int(vf[2]),int(vf[3])};
best,
v.
https://gcc.gnu.org/onlinedocs/gcc/Vector-Extensions.html
I read
"It is possible to cast from one vector type to another, provided they are of the same size"
when I try, it looks to me that it is actually more a type-punning rather than a C-style cast.
Is it possible to cast “vectors” as in C one casts intrinsic types?
given
typedef float __attribute__( ( vector_size( 16 ) ) ) float32x4_t;
typedef int __attribute__( ( vector_size( 16 ) ) ) int32x4_t;
float32x4_t vf{4.2,-3.2, 1.2, 7.2};
int32x4_t vi = int32x4_t(vf);
is not what I would like to be i.e.
int32x4_t vi{int(vf[0]),int(vf[1]),int(vf[2]),int(vf[3])};
best,
v.