24 #ifndef ARM_COMPUTE_WRAPPER_BSL_H 25 #define ARM_COMPUTE_WRAPPER_BSL_H 33 #define VBSL_IMPL(stype, vtype, ctype, prefix, postfix) \ 34 inline vtype vbsl(const ctype &a, const vtype &b, const vtype &c) \ 36 return prefix##_##postfix(a, b, c); \ 41 VBSL_IMPL(uint16_t, uint16x4_t, uint16x4_t, vbsl, u16)
42 VBSL_IMPL(int16_t, int16x4_t, uint16x4_t, vbsl, s16)
43 VBSL_IMPL(uint32_t, uint32x2_t, uint32x2_t, vbsl, u32)
44 VBSL_IMPL(int32_t, int32x2_t, uint32x2_t, vbsl, s32)
45 VBSL_IMPL(float32x2_t, float32x2_t, uint32x2_t, vbsl, f32)
46 #ifdef __ARM_FEATURE_FP16_VECTOR_ARITHMETIC 47 VBSL_IMPL(float16x4_t, float16x4_t, uint16x4_t, vbsl, f16)
48 #endif // __ARM_FEATURE_FP16_VECTOR_ARITHMETIC 50 VBSL_IMPL(uint8_t, uint8x16_t, uint8x16_t, vbslq, u8)
52 VBSL_IMPL(uint16_t, uint16x8_t, uint16x8_t, vbslq, u16)
53 VBSL_IMPL(int16_t, int16x8_t, uint16x8_t, vbslq, s16)
54 VBSL_IMPL(uint32_t, uint32x4_t, uint32x4_t, vbslq, u32)
55 VBSL_IMPL(int32_t, int32x4_t, uint32x4_t, vbslq, s32)
56 VBSL_IMPL(float32x4_t, float32x4_t, uint32x4_t, vbslq, f32)
57 #ifdef __ARM_FEATURE_FP16_VECTOR_ARITHMETIC 58 VBSL_IMPL(float16x8_t, float16x8_t, uint16x8_t, vbslq, f16)
59 #endif // __ARM_FEATURE_FP16_VECTOR_ARITHMETIC Copyright (c) 2017-2021 Arm Limited.
#define VBSL_IMPL(stype, vtype, ctype, prefix, postfix)
uint8x8_t vbsl(const uint8x8_t &a, const uint8x8_t &b, const uint8x8_t &c)