@@ -169,6 +169,16 @@ INLINE TYPE##VEC_SIZE OVERLOADABLE FUNC( TYPE##VEC_SIZE base ) { \
169169 return __builtin_spirv_##OP##_v##VEC_SIZE##ABBR_TYPE(base); \
170170}
171171
172+ #define GEN_DEFINITION_BFREV_SIGNED ( FUNC , OP , TYPE , ABBR_TYPE ) \
173+ INLINE TYPE OVERLOADABLE FUNC( TYPE base ) { \
174+ return as_##TYPE( __builtin_spirv_##OP##_##ABBR_TYPE( as_##u##TYPE( base ) ) ); \
175+ }
176+
177+ #define GEN_VECTOR_DEFINITION_BFREV_SIGNED ( FUNC , OP , TYPE , ABBR_TYPE , VEC_SIZE ) \
178+ INLINE TYPE##VEC_SIZE OVERLOADABLE FUNC( TYPE##VEC_SIZE base ) { \
179+ return as_##TYPE##VEC_SIZE( __builtin_spirv_##OP##_v##VEC_SIZE##ABBR_TYPE( as_##u##TYPE##VEC_SIZE(base) ) ); \
180+ }
181+
172182#define GEN_DEFINITIONS_BFREV ( FUNC , OP ) \
173183 GEN_DEFINITION_BFREV( FUNC, OP, uchar, i8) \
174184 GEN_VECTOR_DEFINITION_BFREV( FUNC, OP, uchar, i8, 2) \
@@ -194,6 +204,30 @@ INLINE TYPE##VEC_SIZE OVERLOADABLE FUNC( TYPE##VEC_SIZE base ) { \
194204 GEN_VECTOR_DEFINITION_BFREV( FUNC, OP, ulong, i64, 4) \
195205 GEN_VECTOR_DEFINITION_BFREV( FUNC, OP, ulong, i64, 8) \
196206 GEN_VECTOR_DEFINITION_BFREV( FUNC, OP, ulong, i64, 16) \
207+ GEN_DEFINITION_BFREV_SIGNED( FUNC, OP, char, i8) \
208+ GEN_VECTOR_DEFINITION_BFREV_SIGNED( FUNC, OP, char, i8, 2) \
209+ GEN_VECTOR_DEFINITION_BFREV_SIGNED( FUNC, OP, char, i8, 3) \
210+ GEN_VECTOR_DEFINITION_BFREV_SIGNED( FUNC, OP, char, i8, 4) \
211+ GEN_VECTOR_DEFINITION_BFREV_SIGNED( FUNC, OP, char, i8, 8) \
212+ GEN_VECTOR_DEFINITION_BFREV_SIGNED( FUNC, OP, char, i8, 16) \
213+ GEN_DEFINITION_BFREV_SIGNED( FUNC, OP, short, i16) \
214+ GEN_VECTOR_DEFINITION_BFREV_SIGNED( FUNC, OP, short, i16, 2) \
215+ GEN_VECTOR_DEFINITION_BFREV_SIGNED( FUNC, OP, short, i16, 3) \
216+ GEN_VECTOR_DEFINITION_BFREV_SIGNED( FUNC, OP, short, i16, 4) \
217+ GEN_VECTOR_DEFINITION_BFREV_SIGNED( FUNC, OP, short, i16, 8) \
218+ GEN_VECTOR_DEFINITION_BFREV_SIGNED( FUNC, OP, short, i16, 16 ) \
219+ GEN_DEFINITION_BFREV_SIGNED( FUNC, OP, int, i32) \
220+ GEN_VECTOR_DEFINITION_BFREV_SIGNED( FUNC, OP, int, i32, 2) \
221+ GEN_VECTOR_DEFINITION_BFREV_SIGNED( FUNC, OP, int, i32, 3) \
222+ GEN_VECTOR_DEFINITION_BFREV_SIGNED( FUNC, OP, int, i32, 4) \
223+ GEN_VECTOR_DEFINITION_BFREV_SIGNED( FUNC, OP, int, i32, 8) \
224+ GEN_VECTOR_DEFINITION_BFREV_SIGNED( FUNC, OP, int, i32, 16) \
225+ GEN_DEFINITION_BFREV_SIGNED( FUNC, OP, long, i64) \
226+ GEN_VECTOR_DEFINITION_BFREV_SIGNED( FUNC, OP, long, i64, 2) \
227+ GEN_VECTOR_DEFINITION_BFREV_SIGNED( FUNC, OP, long, i64, 3) \
228+ GEN_VECTOR_DEFINITION_BFREV_SIGNED( FUNC, OP, long, i64, 4) \
229+ GEN_VECTOR_DEFINITION_BFREV_SIGNED( FUNC, OP, long, i64, 8) \
230+ GEN_VECTOR_DEFINITION_BFREV_SIGNED( FUNC, OP, long, i64, 16)
197231
198232GEN_DEFINITIONS_BFI ( intel_bfi , BitFieldInsert )
199233GEN_DEFINITIONS_SBFE ( intel_sbfe , OpBitFieldSExtract )
0 commit comments