24 #ifndef ARM_COMPUTE_WRAPPER_SET_LANE_H
25 #define ARM_COMPUTE_WRAPPER_SET_LANE_H
33 #define VSETLANE_IMPL_8(stype, atype, vtype, postfix) \
34 inline stype vsetlane(const atype value, const vtype vector, const unsigned int lane) \
39 return vset_lane_##postfix(value, vector, 0); \
41 return vset_lane_##postfix(value, vector, 1); \
43 return vset_lane_##postfix(value, vector, 2); \
45 return vset_lane_##postfix(value, vector, 3); \
47 return vset_lane_##postfix(value, vector, 4); \
49 return vset_lane_##postfix(value, vector, 5); \
51 return vset_lane_##postfix(value, vector, 6); \
53 return vset_lane_##postfix(value, vector, 7); \
55 ARM_COMPUTE_ERROR("Invalid lane"); \
59 #define VSETLANE_IMPL_4(stype, atype, vtype, postfix) \
60 inline stype vsetlane(const atype value, const vtype vector, const unsigned int lane) \
65 return vset_lane_##postfix(value, vector, 0); \
67 return vset_lane_##postfix(value, vector, 1); \
69 return vset_lane_##postfix(value, vector, 2); \
71 return vset_lane_##postfix(value, vector, 3); \
73 ARM_COMPUTE_ERROR("Invalid lane"); \
77 #define VSETLANE_IMPL_2(stype, atype, vtype, postfix) \
78 inline stype vsetlane(const atype value, const vtype vector, const unsigned int lane) \
83 return vset_lane_##postfix(value, vector, 0); \
85 return vset_lane_##postfix(value, vector, 1); \
87 ARM_COMPUTE_ERROR("Invalid lane"); \
98 #ifdef __ARM_FEATURE_FP16_VECTOR_ARITHMETIC
100 #endif // __ARM_FEATURE_FP16_VECTOR_ARITHMETIC
102 #define VSETQLANE_IMPL_16(stype, atype, vtype, postfix) \
103 inline stype vsetlane(const atype value, const vtype vector, const unsigned int lane) \
108 return vsetq_lane_##postfix(value, vector, 0); \
110 return vsetq_lane_##postfix(value, vector, 1); \
112 return vsetq_lane_##postfix(value, vector, 2); \
114 return vsetq_lane_##postfix(value, vector, 3); \
116 return vsetq_lane_##postfix(value, vector, 4); \
118 return vsetq_lane_##postfix(value, vector, 5); \
120 return vsetq_lane_##postfix(value, vector, 6); \
122 return vsetq_lane_##postfix(value, vector, 7); \
124 return vsetq_lane_##postfix(value, vector, 8); \
126 return vsetq_lane_##postfix(value, vector, 9); \
128 return vsetq_lane_##postfix(value, vector, 10); \
130 return vsetq_lane_##postfix(value, vector, 11); \
132 return vsetq_lane_##postfix(value, vector, 12); \
134 return vsetq_lane_##postfix(value, vector, 13); \
136 return vsetq_lane_##postfix(value, vector, 14); \
138 return vsetq_lane_##postfix(value, vector, 15); \
140 ARM_COMPUTE_ERROR("Invalid lane"); \
144 #define VSETQLANE_IMPL_8(stype, atype, vtype, postfix) \
145 inline stype vsetlane(const atype value, const vtype vector, const unsigned int lane) \
150 return vsetq_lane_##postfix(value, vector, 0); \
152 return vsetq_lane_##postfix(value, vector, 1); \
154 return vsetq_lane_##postfix(value, vector, 2); \
156 return vsetq_lane_##postfix(value, vector, 3); \
158 return vsetq_lane_##postfix(value, vector, 4); \
160 return vsetq_lane_##postfix(value, vector, 5); \
162 return vsetq_lane_##postfix(value, vector, 6); \
164 return vsetq_lane_##postfix(value, vector, 7); \
166 ARM_COMPUTE_ERROR("Invalid lane"); \
170 #define VSETQLANE_IMPL_4(stype, atype, vtype, postfix) \
171 inline stype vsetlane(const atype value, const vtype vector, const unsigned int lane) \
176 return vsetq_lane_##postfix(value, vector, 0); \
178 return vsetq_lane_##postfix(value, vector, 1); \
180 return vsetq_lane_##postfix(value, vector, 2); \
182 return vsetq_lane_##postfix(value, vector, 3); \
184 ARM_COMPUTE_ERROR("Invalid lane"); \
195 #ifdef __ARM_FEATURE_FP16_VECTOR_ARITHMETIC
197 #endif // __ARM_FEATURE_FP16_VECTOR_ARITHMETIC
199 #undef VSETLANE_IMPL_8
200 #undef VSETLANE_IMPL_4
201 #undef VSETLANE_IMPL_2
203 #undef VSETQLANE_IMPL_16
204 #undef VSETQLANE_IMPL_8
205 #undef VSETQLANE_IMPL_4