File tree Expand file tree Collapse file tree 1 file changed +17
-7
lines changed
Expand file tree Collapse file tree 1 file changed +17
-7
lines changed Original file line number Diff line number Diff line change @@ -39,12 +39,22 @@ namespace xsimd
3939 namespace types
4040 {
4141
42- #define XSIMD_DECLARE_SIMD_BOOL_ALTIVEC_REGISTER (T, Tb ) \
43- template <> \
44- struct get_bool_simd_register <T, altivec> \
45- { \
46- using type = __vector __bool Tb; \
47- }; \
42+ #define XSIMD_DECLARE_SIMD_BOOL_ALTIVEC_REGISTER (T, Tb ) \
43+ template <> \
44+ struct get_bool_simd_register <T, altivec> \
45+ { \
46+ struct type \
47+ { \
48+ using register_type = __vector __bool Tb; \
49+ register_type data; \
50+ type () = default ; \
51+ type (register_type r) \
52+ : data(r) \
53+ { \
54+ } \
55+ operator register_type () const noexcept { return data; } \
56+ }; \
57+ }; \
4858 XSIMD_DECLARE_SIMD_REGISTER (T, altivec, __vector T)
4959
5060 XSIMD_DECLARE_SIMD_BOOL_ALTIVEC_REGISTER (signed char , char );
@@ -54,7 +64,7 @@ namespace xsimd
5464 XSIMD_DECLARE_SIMD_BOOL_ALTIVEC_REGISTER (short , short );
5565 XSIMD_DECLARE_SIMD_BOOL_ALTIVEC_REGISTER (unsigned int , int );
5666 XSIMD_DECLARE_SIMD_BOOL_ALTIVEC_REGISTER (int , int );
57- XSIMD_DECLARE_SIMD_BOOL_ALTIVEC_REGISTER (float , float );
67+ XSIMD_DECLARE_SIMD_BOOL_ALTIVEC_REGISTER (float , int );
5868
5969#undef XSIMD_DECLARE_SIMD_BOOL_ALTIVEC_REGISTER
6070 }
You can’t perform that action at this time.
0 commit comments