@@ -38,14 +38,25 @@ namespace xsimd
38
38
#if XSIMD_WITH_ALTIVEC
39
39
namespace types
40
40
{
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, Tb ) \
43
+ template <> \
44
+ struct get_bool_simd_register <T, altivec> \
45
+ { \
46
+ using type = __vector __bool Tb; \
47
+ }; \
48
+ XSIMD_DECLARE_SIMD_REGISTER (T, altivec, __vector T)
49
+
50
+ XSIMD_DECLARE_SIMD_BOOL_ALTIVEC_REGISTER (signed char , char );
51
+ XSIMD_DECLARE_SIMD_BOOL_ALTIVEC_REGISTER (unsigned char , char );
52
+ XSIMD_DECLARE_SIMD_BOOL_ALTIVEC_REGISTER (char , char );
53
+ XSIMD_DECLARE_SIMD_BOOL_ALTIVEC_REGISTER (unsigned short , short );
54
+ XSIMD_DECLARE_SIMD_BOOL_ALTIVEC_REGISTER (short , short );
55
+ XSIMD_DECLARE_SIMD_BOOL_ALTIVEC_REGISTER (unsigned int , int );
56
+ XSIMD_DECLARE_SIMD_BOOL_ALTIVEC_REGISTER (int , int );
57
+ XSIMD_DECLARE_SIMD_BOOL_ALTIVEC_REGISTER (float , float );
58
+
59
+ #undef XSIMD_DECLARE_SIMD_BOOL_ALTIVEC_REGISTER
49
60
}
50
61
#endif
51
62
}
0 commit comments