@@ -38,14 +38,25 @@ namespace xsimd
3838#if XSIMD_WITH_ALTIVEC
3939 namespace types
4040 {
41- XSIMD_DECLARE_SIMD_REGISTER (signed char , altivec, __vector signed char );
42- XSIMD_DECLARE_SIMD_REGISTER (unsigned char , altivec, __vector unsigned char );
43- XSIMD_DECLARE_SIMD_REGISTER (char , altivec, __vector char );
44- XSIMD_DECLARE_SIMD_REGISTER (unsigned short , altivec, __vector unsigned short );
45- XSIMD_DECLARE_SIMD_REGISTER (short , altivec, __vector short );
46- XSIMD_DECLARE_SIMD_REGISTER (unsigned int , altivec, __vector unsigned int );
47- XSIMD_DECLARE_SIMD_REGISTER (int , altivec, __vector int );
48- XSIMD_DECLARE_SIMD_REGISTER (float , altivec, __vector float );
41+
42+ #define XSIMD_DECLARE_SIMD_BOOL_ALTIVEC_REGISTER (T ) \
43+ template <> \
44+ struct get_bool_simd_register <T, altivec> \
45+ { \
46+ using type = __vector __bool T; \
47+ }; \
48+ XSIMD_DECLARE_SIMD_REGISTER (T, altivec, __vector T)
49+
50+ XSIMD_DECLARE_SIMD_BOOL_ALTIVEC_REGISTER (signed char );
51+ XSIMD_DECLARE_SIMD_BOOL_ALTIVEC_REGISTER (unsigned char );
52+ XSIMD_DECLARE_SIMD_BOOL_ALTIVEC_REGISTER (char );
53+ XSIMD_DECLARE_SIMD_BOOL_ALTIVEC_REGISTER (unsigned short );
54+ XSIMD_DECLARE_SIMD_BOOL_ALTIVEC_REGISTER (short );
55+ XSIMD_DECLARE_SIMD_BOOL_ALTIVEC_REGISTER (unsigned int );
56+ XSIMD_DECLARE_SIMD_BOOL_ALTIVEC_REGISTER (int );
57+ XSIMD_DECLARE_SIMD_BOOL_ALTIVEC_REGISTER (float );
58+
59+ #undef XSIMD_DECLARE_SIMD_BOOL_ALTIVEC_REGISTER
4960 }
5061#endif
5162}
0 commit comments