Skip to content

Commit f4f535d

Browse files
committed
Leave C++17 comments
1 parent 6cd5f69 commit f4f535d

1 file changed

Lines changed: 31 additions & 0 deletions

File tree

include/xsimd/arch/xsimd_neon.hpp

Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -53,6 +53,7 @@ namespace xsimd
5353

5454
namespace wrap
5555
{
56+
// TODO(c++17): Make a single function with if constexpr switch
5657
template <class R, class T, std::enable_if_t<std::is_same<R, uint8_t>::value && std::is_same<T, uint8_t>::value, int> = 0>
5758
XSIMD_INLINE uint8x16_t x_vreinterpretq(uint8x16_t a) noexcept { return a; }
5859
template <class R, class T, std::enable_if_t<std::is_same<R, uint8_t>::value && std::is_same<T, int8_t>::value, int> = 0>
@@ -72,6 +73,7 @@ namespace xsimd
7273
template <class R, class T, std::enable_if_t<std::is_same<R, uint8_t>::value && std::is_same<T, float>::value, int> = 0>
7374
XSIMD_INLINE uint8x16_t x_vreinterpretq(float32x4_t a) noexcept { return vreinterpretq_u8_f32(a); }
7475

76+
// TODO(c++17): Make a single function with if constexpr switch
7577
template <class R, class T, std::enable_if_t<std::is_same<R, int8_t>::value && std::is_same<T, uint8_t>::value, int> = 0>
7678
XSIMD_INLINE int8x16_t x_vreinterpretq(uint8x16_t a) noexcept { return vreinterpretq_s8_u8(a); }
7779
template <class R, class T, std::enable_if_t<std::is_same<R, int8_t>::value && std::is_same<T, int8_t>::value, int> = 0>
@@ -91,6 +93,7 @@ namespace xsimd
9193
template <class R, class T, std::enable_if_t<std::is_same<R, int8_t>::value && std::is_same<T, float>::value, int> = 0>
9294
XSIMD_INLINE int8x16_t x_vreinterpretq(float32x4_t a) noexcept { return vreinterpretq_s8_f32(a); }
9395

96+
// TODO(c++17): Make a single function with if constexpr switch
9497
template <class R, class T, std::enable_if_t<std::is_same<R, uint16_t>::value && std::is_same<T, uint8_t>::value, int> = 0>
9598
XSIMD_INLINE uint16x8_t x_vreinterpretq(uint8x16_t a) noexcept { return vreinterpretq_u16_u8(a); }
9699
template <class R, class T, std::enable_if_t<std::is_same<R, uint16_t>::value && std::is_same<T, int8_t>::value, int> = 0>
@@ -110,6 +113,7 @@ namespace xsimd
110113
template <class R, class T, std::enable_if_t<std::is_same<R, uint16_t>::value && std::is_same<T, float>::value, int> = 0>
111114
XSIMD_INLINE uint16x8_t x_vreinterpretq(float32x4_t a) noexcept { return vreinterpretq_u16_f32(a); }
112115

116+
// TODO(c++17): Make a single function with if constexpr switch
113117
template <class R, class T, std::enable_if_t<std::is_same<R, int16_t>::value && std::is_same<T, uint8_t>::value, int> = 0>
114118
XSIMD_INLINE int16x8_t x_vreinterpretq(uint8x16_t a) noexcept { return vreinterpretq_s16_u8(a); }
115119
template <class R, class T, std::enable_if_t<std::is_same<R, int16_t>::value && std::is_same<T, int8_t>::value, int> = 0>
@@ -129,6 +133,7 @@ namespace xsimd
129133
template <class R, class T, std::enable_if_t<std::is_same<R, int16_t>::value && std::is_same<T, float>::value, int> = 0>
130134
XSIMD_INLINE int16x8_t x_vreinterpretq(float32x4_t a) noexcept { return vreinterpretq_s16_f32(a); }
131135

136+
// TODO(c++17): Make a single function with if constexpr switch
132137
template <class R, class T, std::enable_if_t<std::is_same<R, uint32_t>::value && std::is_same<T, uint8_t>::value, int> = 0>
133138
XSIMD_INLINE uint32x4_t x_vreinterpretq(uint8x16_t a) noexcept { return vreinterpretq_u32_u8(a); }
134139
template <class R, class T, std::enable_if_t<std::is_same<R, uint32_t>::value && std::is_same<T, int8_t>::value, int> = 0>
@@ -148,6 +153,7 @@ namespace xsimd
148153
template <class R, class T, std::enable_if_t<std::is_same<R, uint32_t>::value && std::is_same<T, float>::value, int> = 0>
149154
XSIMD_INLINE uint32x4_t x_vreinterpretq(float32x4_t a) noexcept { return vreinterpretq_u32_f32(a); }
150155

156+
// TODO(c++17): Make a single function with if constexpr switch
151157
template <class R, class T, std::enable_if_t<std::is_same<R, int32_t>::value && std::is_same<T, uint8_t>::value, int> = 0>
152158
XSIMD_INLINE int32x4_t x_vreinterpretq(uint8x16_t a) noexcept { return vreinterpretq_s32_u8(a); }
153159
template <class R, class T, std::enable_if_t<std::is_same<R, int32_t>::value && std::is_same<T, int8_t>::value, int> = 0>
@@ -167,6 +173,7 @@ namespace xsimd
167173
template <class R, class T, std::enable_if_t<std::is_same<R, int32_t>::value && std::is_same<T, float>::value, int> = 0>
168174
XSIMD_INLINE int32x4_t x_vreinterpretq(float32x4_t a) noexcept { return vreinterpretq_s32_f32(a); }
169175

176+
// TODO(c++17): Make a single function with if constexpr switch
170177
template <class R, class T, std::enable_if_t<std::is_same<R, uint64_t>::value && std::is_same<T, uint8_t>::value, int> = 0>
171178
XSIMD_INLINE uint64x2_t x_vreinterpretq(uint8x16_t a) noexcept { return vreinterpretq_u64_u8(a); }
172179
template <class R, class T, std::enable_if_t<std::is_same<R, uint64_t>::value && std::is_same<T, int8_t>::value, int> = 0>
@@ -186,6 +193,7 @@ namespace xsimd
186193
template <class R, class T, std::enable_if_t<std::is_same<R, uint64_t>::value && std::is_same<T, float>::value, int> = 0>
187194
XSIMD_INLINE uint64x2_t x_vreinterpretq(float32x4_t a) noexcept { return vreinterpretq_u64_f32(a); }
188195

196+
// TODO(c++17): Make a single function with if constexpr switch
189197
template <class R, class T, std::enable_if_t<std::is_same<R, int64_t>::value && std::is_same<T, uint8_t>::value, int> = 0>
190198
XSIMD_INLINE int64x2_t x_vreinterpretq(uint8x16_t a) noexcept { return vreinterpretq_s64_u8(a); }
191199
template <class R, class T, std::enable_if_t<std::is_same<R, int64_t>::value && std::is_same<T, int8_t>::value, int> = 0>
@@ -205,6 +213,7 @@ namespace xsimd
205213
template <class R, class T, std::enable_if_t<std::is_same<R, int64_t>::value && std::is_same<T, float>::value, int> = 0>
206214
XSIMD_INLINE int64x2_t x_vreinterpretq(float32x4_t a) noexcept { return vreinterpretq_s64_f32(a); }
207215

216+
// TODO(c++17): Make a single function with if constexpr switch
208217
template <class R, class T, std::enable_if_t<std::is_same<R, float>::value && std::is_same<T, uint8_t>::value, int> = 0>
209218
XSIMD_INLINE float32x4_t x_vreinterpretq(uint8x16_t a) noexcept { return vreinterpretq_f32_u8(a); }
210219
template <class R, class T, std::enable_if_t<std::is_same<R, float>::value && std::is_same<T, int8_t>::value, int> = 0>
@@ -792,6 +801,7 @@ namespace xsimd
792801

793802
namespace wrap
794803
{
804+
// TODO(c++17): Make a single function with if constexpr switch
795805
template <class T, std::enable_if_t<std::is_same<T, uint8_t>::value, int> = 0>
796806
XSIMD_INLINE uint8x16_t x_vaddq(uint8x16_t a, uint8x16_t b) noexcept { return vaddq_u8(a, b); }
797807
template <class T, std::enable_if_t<std::is_same<T, int8_t>::value, int> = 0>
@@ -825,6 +835,7 @@ namespace xsimd
825835

826836
namespace wrap
827837
{
838+
// TODO(c++17): Make a single function with if constexpr switch
828839
template <class T, std::enable_if_t<std::is_same<T, uint8_t>::value, int> = 0>
829840
XSIMD_INLINE uint8x16_t x_vhaddq(uint8x16_t a, uint8x16_t b) noexcept { return vhaddq_u8(a, b); }
830841
template <class T, std::enable_if_t<std::is_same<T, uint16_t>::value, int> = 0>
@@ -846,6 +857,7 @@ namespace xsimd
846857

847858
namespace wrap
848859
{
860+
// TODO(c++17): Make a single function with if constexpr switch
849861
template <class T, std::enable_if_t<std::is_same<T, uint8_t>::value, int> = 0>
850862
XSIMD_INLINE uint8x16_t x_vrhaddq(uint8x16_t a, uint8x16_t b) noexcept { return vrhaddq_u8(a, b); }
851863
template <class T, std::enable_if_t<std::is_same<T, uint16_t>::value, int> = 0>
@@ -867,6 +879,7 @@ namespace xsimd
867879

868880
namespace wrap
869881
{
882+
// TODO(c++17): Make a single function with if constexpr switch
870883
template <class T, std::enable_if_t<std::is_same<T, uint8_t>::value, int> = 0>
871884
XSIMD_INLINE uint8x16_t x_vqaddq(uint8x16_t a, uint8x16_t b) noexcept { return vqaddq_u8(a, b); }
872885
template <class T, std::enable_if_t<std::is_same<T, int8_t>::value, int> = 0>
@@ -900,6 +913,7 @@ namespace xsimd
900913

901914
namespace wrap
902915
{
916+
// TODO(c++17): Make a single function with if constexpr switch
903917
template <class T, std::enable_if_t<std::is_same<T, uint8_t>::value, int> = 0>
904918
XSIMD_INLINE uint8x16_t x_vsubq(uint8x16_t a, uint8x16_t b) noexcept { return vsubq_u8(a, b); }
905919
template <class T, std::enable_if_t<std::is_same<T, int8_t>::value, int> = 0>
@@ -933,6 +947,7 @@ namespace xsimd
933947

934948
namespace wrap
935949
{
950+
// TODO(c++17): Make a single function with if constexpr switch
936951
template <class T, std::enable_if_t<std::is_same<T, uint8_t>::value, int> = 0>
937952
XSIMD_INLINE uint8x16_t x_vqsubq(uint8x16_t a, uint8x16_t b) noexcept { return vqsubq_u8(a, b); }
938953
template <class T, std::enable_if_t<std::is_same<T, int8_t>::value, int> = 0>
@@ -966,6 +981,7 @@ namespace xsimd
966981

967982
namespace wrap
968983
{
984+
// TODO(c++17): Make a single function with if constexpr switch
969985
template <class T, std::enable_if_t<std::is_same<T, uint8_t>::value, int> = 0>
970986
XSIMD_INLINE uint8x16_t x_vmulq(uint8x16_t a, uint8x16_t b) noexcept { return vmulq_u8(a, b); }
971987
template <class T, std::enable_if_t<std::is_same<T, int8_t>::value, int> = 0>
@@ -1030,6 +1046,7 @@ namespace xsimd
10301046

10311047
namespace wrap
10321048
{
1049+
// TODO(c++17): Make a single function with if constexpr switch
10331050
template <class T, std::enable_if_t<std::is_same<T, uint8_t>::value, int> = 0>
10341051
XSIMD_INLINE uint8x16_t x_vceqq(uint8x16_t a, uint8x16_t b) noexcept { return vceqq_u8(a, b); }
10351052
template <class T, std::enable_if_t<std::is_same<T, int8_t>::value, int> = 0>
@@ -1122,6 +1139,7 @@ namespace xsimd
11221139

11231140
namespace wrap
11241141
{
1142+
// TODO(c++17): Make a single function with if constexpr switch
11251143
template <class T, std::enable_if_t<std::is_same<T, uint8_t>::value, int> = 0>
11261144
XSIMD_INLINE uint8x16_t x_vcltq(uint8x16_t a, uint8x16_t b) noexcept { return vcltq_u8(a, b); }
11271145
template <class T, std::enable_if_t<std::is_same<T, int8_t>::value, int> = 0>
@@ -1166,6 +1184,7 @@ namespace xsimd
11661184

11671185
namespace wrap
11681186
{
1187+
// TODO(c++17): Make a single function with if constexpr switch
11691188
template <class T, std::enable_if_t<std::is_same<T, uint8_t>::value, int> = 0>
11701189
XSIMD_INLINE uint8x16_t x_vcleq(uint8x16_t a, uint8x16_t b) noexcept { return vcleq_u8(a, b); }
11711190
template <class T, std::enable_if_t<std::is_same<T, int8_t>::value, int> = 0>
@@ -1201,6 +1220,7 @@ namespace xsimd
12011220

12021221
namespace wrap
12031222
{
1223+
// TODO(c++17): Make a single function with if constexpr switch
12041224
template <class T, std::enable_if_t<std::is_same<T, uint8_t>::value, int> = 0>
12051225
XSIMD_INLINE uint8x16_t x_vcgtq(uint8x16_t a, uint8x16_t b) noexcept { return vcgtq_u8(a, b); }
12061226
template <class T, std::enable_if_t<std::is_same<T, int8_t>::value, int> = 0>
@@ -1245,6 +1265,7 @@ namespace xsimd
12451265

12461266
namespace wrap
12471267
{
1268+
// TODO(c++17): Make a single function with if constexpr switch
12481269
template <class T, std::enable_if_t<std::is_same<T, uint8_t>::value, int> = 0>
12491270
XSIMD_INLINE uint8x16_t x_vcgeq(uint8x16_t a, uint8x16_t b) noexcept { return vcgeq_u8(a, b); }
12501271
template <class T, std::enable_if_t<std::is_same<T, int8_t>::value, int> = 0>
@@ -1291,6 +1312,7 @@ namespace xsimd
12911312

12921313
namespace wrap
12931314
{
1315+
// TODO(c++17): Make a single function with if constexpr switch
12941316
template <class T, std::enable_if_t<std::is_same<T, uint8_t>::value, int> = 0>
12951317
XSIMD_INLINE uint8x16_t x_vandq(uint8x16_t a, uint8x16_t b) noexcept { return vandq_u8(a, b); }
12961318
template <class T, std::enable_if_t<std::is_same<T, int8_t>::value, int> = 0>
@@ -1335,6 +1357,7 @@ namespace xsimd
13351357

13361358
namespace wrap
13371359
{
1360+
// TODO(c++17): Make a single function with if constexpr switch
13381361
template <class T, std::enable_if_t<std::is_same<T, uint8_t>::value, int> = 0>
13391362
XSIMD_INLINE uint8x16_t x_vorrq(uint8x16_t a, uint8x16_t b) noexcept { return vorrq_u8(a, b); }
13401363
template <class T, std::enable_if_t<std::is_same<T, int8_t>::value, int> = 0>
@@ -1379,6 +1402,7 @@ namespace xsimd
13791402

13801403
namespace wrap
13811404
{
1405+
// TODO(c++17): Make a single function with if constexpr switch
13821406
template <class T, std::enable_if_t<std::is_same<T, uint8_t>::value, int> = 0>
13831407
XSIMD_INLINE uint8x16_t x_veorq(uint8x16_t a, uint8x16_t b) noexcept { return veorq_u8(a, b); }
13841408
template <class T, std::enable_if_t<std::is_same<T, int8_t>::value, int> = 0>
@@ -1433,6 +1457,7 @@ namespace xsimd
14331457

14341458
namespace wrap
14351459
{
1460+
// TODO(c++17): Make a single function with if constexpr switch
14361461
template <class T, std::enable_if_t<std::is_same<T, uint8_t>::value, int> = 0>
14371462
XSIMD_INLINE uint8x16_t x_vmvnq(uint8x16_t a) noexcept { return vmvnq_u8(a); }
14381463
template <class T, std::enable_if_t<std::is_same<T, int8_t>::value, int> = 0>
@@ -1482,6 +1507,7 @@ namespace xsimd
14821507

14831508
namespace wrap
14841509
{
1510+
// TODO(c++17): Make a single function with if constexpr switch
14851511
template <class T, std::enable_if_t<std::is_same<T, uint8_t>::value, int> = 0>
14861512
XSIMD_INLINE uint8x16_t x_vbicq(uint8x16_t a, uint8x16_t b) noexcept { return vbicq_u8(a, b); }
14871513
template <class T, std::enable_if_t<std::is_same<T, int8_t>::value, int> = 0>
@@ -1525,6 +1551,7 @@ namespace xsimd
15251551

15261552
namespace wrap
15271553
{
1554+
// TODO(c++17): Make a single function with if constexpr switch
15281555
template <class T, std::enable_if_t<std::is_same<T, uint8_t>::value, int> = 0>
15291556
XSIMD_INLINE uint8x16_t x_vminq(uint8x16_t a, uint8x16_t b) noexcept { return vminq_u8(a, b); }
15301557
template <class T, std::enable_if_t<std::is_same<T, int8_t>::value, int> = 0>
@@ -1560,6 +1587,7 @@ namespace xsimd
15601587

15611588
namespace wrap
15621589
{
1590+
// TODO(c++17): Make a single function with if constexpr switch
15631591
template <class T, std::enable_if_t<std::is_same<T, uint8_t>::value, int> = 0>
15641592
XSIMD_INLINE uint8x16_t x_vmaxq(uint8x16_t a, uint8x16_t b) noexcept { return vmaxq_u8(a, b); }
15651593
template <class T, std::enable_if_t<std::is_same<T, int8_t>::value, int> = 0>
@@ -1595,6 +1623,7 @@ namespace xsimd
15951623

15961624
namespace wrap
15971625
{
1626+
// TODO(c++17): Make a single function with if constexpr switch
15981627
template <class T, std::enable_if_t<std::is_same<T, uint8_t>::value, int> = 0>
15991628
XSIMD_INLINE uint8x16_t x_vabsq(uint8x16_t a) noexcept { return a; }
16001629
template <class T, std::enable_if_t<std::is_same<T, int8_t>::value, int> = 0>
@@ -1937,6 +1966,7 @@ namespace xsimd
19371966

19381967
namespace wrap
19391968
{
1969+
// TODO(c++17): Make a single function with if constexpr switch
19401970
template <class T, std::enable_if_t<std::is_same<T, uint8_t>::value, int> = 0>
19411971
XSIMD_INLINE uint8x16_t x_vbslq(uint8x16_t a, uint8x16_t b, uint8x16_t c) noexcept { return vbslq_u8(a, b, c); }
19421972
template <class T, std::enable_if_t<std::is_same<T, int8_t>::value, int> = 0>
@@ -3065,6 +3095,7 @@ namespace xsimd
30653095
****************/
30663096
namespace wrap
30673097
{
3098+
// TODO(c++17): Make a single function with if constexpr switch
30683099
template <size_t N, class T, std::enable_if_t<std::is_same<T, uint8_t>::value, int> = 0>
30693100
XSIMD_INLINE uint8x16_t x_rotate_left(uint8x16_t a, uint8x16_t b) noexcept { return vextq_u8(a, b, N); }
30703101
template <size_t N, class T, std::enable_if_t<std::is_same<T, int8_t>::value, int> = 0>

0 commit comments

Comments
 (0)