Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
S
simde
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Analytics
Analytics
CI / CD
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Libraries
simde
Commits
b5835922
Commit
b5835922
authored
Mar 19, 2024
by
Michael R. Crusoe
Committed by
Michael R. Crusoe
Mar 20, 2024
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
arm platform: cleanup feature detection.
parent
e38f2568
Changes
27
Show whitespace changes
Inline
Side-by-side
Showing
27 changed files
with
180 additions
and
147 deletions
+180
-147
arm/neon/aes.h
arm/neon/aes.h
+4
-4
arm/neon/bcax.h
arm/neon/bcax.h
+16
-16
arm/neon/cmla.h
arm/neon/cmla.h
+5
-5
arm/neon/cmla_rot180.h
arm/neon/cmla_rot180.h
+5
-5
arm/neon/cmla_rot270.h
arm/neon/cmla_rot270.h
+5
-5
arm/neon/cmla_rot90.h
arm/neon/cmla_rot90.h
+5
-5
arm/neon/dot.h
arm/neon/dot.h
+5
-5
arm/neon/dot_lane.h
arm/neon/dot_lane.h
+12
-12
arm/neon/eor.h
arm/neon/eor.h
+8
-8
arm/neon/fmlal.h
arm/neon/fmlal.h
+12
-12
arm/neon/fmlsl.h
arm/neon/fmlsl.h
+12
-12
arm/neon/mmlaq.h
arm/neon/mmlaq.h
+4
-4
arm/neon/rax.h
arm/neon/rax.h
+1
-1
arm/neon/rnd32x.h
arm/neon/rnd32x.h
+4
-4
arm/neon/rnd32z.h
arm/neon/rnd32z.h
+4
-4
arm/neon/rnd64x.h
arm/neon/rnd64x.h
+4
-4
arm/neon/rnd64z.h
arm/neon/rnd64z.h
+4
-4
arm/neon/sha1.h
arm/neon/sha1.h
+6
-6
arm/neon/sha256.h
arm/neon/sha256.h
+4
-4
arm/neon/sha512.h
arm/neon/sha512.h
+4
-4
arm/neon/sm3.h
arm/neon/sm3.h
+7
-7
arm/neon/sm4.h
arm/neon/sm4.h
+2
-2
arm/neon/sudot_lane.h
arm/neon/sudot_lane.h
+4
-4
arm/neon/usdot.h
arm/neon/usdot.h
+2
-2
arm/neon/xar.h
arm/neon/xar.h
+2
-2
simde-arch.h
simde-arch.h
+38
-5
x86/clmul.h
x86/clmul.h
+1
-1
No files found.
arm/neon/aes.h
View file @
b5835922
...
@@ -42,7 +42,7 @@ static uint8_t simde_xtime(uint8_t x)
...
@@ -42,7 +42,7 @@ static uint8_t simde_xtime(uint8_t x)
SIMDE_FUNCTION_ATTRIBUTES
SIMDE_FUNCTION_ATTRIBUTES
simde_uint8x16_t
simde_uint8x16_t
simde_vaeseq_u8
(
simde_uint8x16_t
data
,
simde_uint8x16_t
key
)
{
simde_vaeseq_u8
(
simde_uint8x16_t
data
,
simde_uint8x16_t
key
)
{
#if defined(SIMDE_ARM_NEON_A32V8_NATIVE) && defined(
__ARM_FEATURE
_AES)
#if defined(SIMDE_ARM_NEON_A32V8_NATIVE) && defined(
SIMDE_ARCH_ARM
_AES)
return
vaeseq_u8
(
data
,
key
);
return
vaeseq_u8
(
data
,
key
);
#else
#else
/* ref: https://github.com/kokke/tiny-AES-c/blob/master/aes.c */
/* ref: https://github.com/kokke/tiny-AES-c/blob/master/aes.c */
...
@@ -92,7 +92,7 @@ simde_vaeseq_u8(simde_uint8x16_t data, simde_uint8x16_t key) {
...
@@ -92,7 +92,7 @@ simde_vaeseq_u8(simde_uint8x16_t data, simde_uint8x16_t key) {
SIMDE_FUNCTION_ATTRIBUTES
SIMDE_FUNCTION_ATTRIBUTES
simde_uint8x16_t
simde_uint8x16_t
simde_vaesdq_u8
(
simde_uint8x16_t
data
,
simde_uint8x16_t
key
)
{
simde_vaesdq_u8
(
simde_uint8x16_t
data
,
simde_uint8x16_t
key
)
{
#if defined(SIMDE_ARM_NEON_A32V8_NATIVE) && defined(
__ARM_FEATURE
_AES)
#if defined(SIMDE_ARM_NEON_A32V8_NATIVE) && defined(
SIMDE_ARCH_ARM
_AES)
return
vaesdq_u8
(
data
,
key
);
return
vaesdq_u8
(
data
,
key
);
#else
#else
/* ref: https://github.com/kokke/tiny-AES-c/blob/master/aes.c */
/* ref: https://github.com/kokke/tiny-AES-c/blob/master/aes.c */
...
@@ -140,7 +140,7 @@ simde_vaesdq_u8(simde_uint8x16_t data, simde_uint8x16_t key) {
...
@@ -140,7 +140,7 @@ simde_vaesdq_u8(simde_uint8x16_t data, simde_uint8x16_t key) {
SIMDE_FUNCTION_ATTRIBUTES
SIMDE_FUNCTION_ATTRIBUTES
simde_uint8x16_t
simde_uint8x16_t
simde_vaesmcq_u8
(
simde_uint8x16_t
data
)
{
simde_vaesmcq_u8
(
simde_uint8x16_t
data
)
{
#if defined(SIMDE_ARM_NEON_A32V8_NATIVE) && defined(
__ARM_FEATURE
_AES)
#if defined(SIMDE_ARM_NEON_A32V8_NATIVE) && defined(
SIMDE_ARCH_ARM
_AES)
return
vaesmcq_u8
(
data
);
return
vaesmcq_u8
(
data
);
#else
#else
/* ref: https://github.com/kokke/tiny-AES-c/blob/master/aes.c */
/* ref: https://github.com/kokke/tiny-AES-c/blob/master/aes.c */
...
@@ -177,7 +177,7 @@ static uint8_t Multiply(uint8_t x, uint8_t y)
...
@@ -177,7 +177,7 @@ static uint8_t Multiply(uint8_t x, uint8_t y)
SIMDE_FUNCTION_ATTRIBUTES
SIMDE_FUNCTION_ATTRIBUTES
simde_uint8x16_t
simde_uint8x16_t
simde_vaesimcq_u8
(
simde_uint8x16_t
data
)
{
simde_vaesimcq_u8
(
simde_uint8x16_t
data
)
{
#if defined(SIMDE_ARM_NEON_A32V8_NATIVE) && defined(
__ARM_FEATURE
_AES)
#if defined(SIMDE_ARM_NEON_A32V8_NATIVE) && defined(
SIMDE_ARCH_ARM
_AES)
return
vaesimcq_u8
(
data
);
return
vaesimcq_u8
(
data
);
#else
#else
simde_uint8x16_private
simde_uint8x16_private
...
...
arm/neon/bcax.h
View file @
b5835922
...
@@ -39,13 +39,13 @@ SIMDE_BEGIN_DECLS_
...
@@ -39,13 +39,13 @@ SIMDE_BEGIN_DECLS_
SIMDE_FUNCTION_ATTRIBUTES
SIMDE_FUNCTION_ATTRIBUTES
simde_uint8x16_t
simde_uint8x16_t
simde_vbcaxq_u8
(
simde_uint8x16_t
a
,
simde_uint8x16_t
b
,
simde_uint8x16_t
c
)
{
simde_vbcaxq_u8
(
simde_uint8x16_t
a
,
simde_uint8x16_t
b
,
simde_uint8x16_t
c
)
{
#if defined(SIMDE_ARM_NEON_A64V8_NATIVE) && defined(
__ARM_FEATURE
_SHA3)
#if defined(SIMDE_ARM_NEON_A64V8_NATIVE) && defined(
SIMDE_ARCH_ARM
_SHA3)
return
vbcaxq_u8
(
a
,
b
,
c
);
return
vbcaxq_u8
(
a
,
b
,
c
);
#else
#else
return
simde_veorq_u8
(
a
,
simde_vbicq_u8
(
b
,
c
));
return
simde_veorq_u8
(
a
,
simde_vbicq_u8
(
b
,
c
));
#endif
#endif
}
}
#if defined(SIMDE_ARM_NEON_A64V8_ENABLE_NATIVE_ALIASES) || (defined(SIMDE_ENABLE_NATIVE_ALIASES) && !defined(
__ARM_FEATURE
_SHA3))
#if defined(SIMDE_ARM_NEON_A64V8_ENABLE_NATIVE_ALIASES) || (defined(SIMDE_ENABLE_NATIVE_ALIASES) && !defined(
SIMDE_ARCH_ARM
_SHA3))
#undef vbcaxq_u8
#undef vbcaxq_u8
#define vbcaxq_u8(a, b, c) simde_vbcaxq_u8(a, b, c)
#define vbcaxq_u8(a, b, c) simde_vbcaxq_u8(a, b, c)
#endif
#endif
...
@@ -53,13 +53,13 @@ simde_vbcaxq_u8(simde_uint8x16_t a, simde_uint8x16_t b, simde_uint8x16_t c) {
...
@@ -53,13 +53,13 @@ simde_vbcaxq_u8(simde_uint8x16_t a, simde_uint8x16_t b, simde_uint8x16_t c) {
SIMDE_FUNCTION_ATTRIBUTES
SIMDE_FUNCTION_ATTRIBUTES
simde_uint16x8_t
simde_uint16x8_t
simde_vbcaxq_u16
(
simde_uint16x8_t
a
,
simde_uint16x8_t
b
,
simde_uint16x8_t
c
)
{
simde_vbcaxq_u16
(
simde_uint16x8_t
a
,
simde_uint16x8_t
b
,
simde_uint16x8_t
c
)
{
#if defined(SIMDE_ARM_NEON_A64V8_NATIVE) && defined(
__ARM_FEATURE
_SHA3)
#if defined(SIMDE_ARM_NEON_A64V8_NATIVE) && defined(
SIMDE_ARCH_ARM
_SHA3)
return
vbcaxq_u16
(
a
,
b
,
c
);
return
vbcaxq_u16
(
a
,
b
,
c
);
#else
#else
return
simde_veorq_u16
(
a
,
simde_vbicq_u16
(
b
,
c
));
return
simde_veorq_u16
(
a
,
simde_vbicq_u16
(
b
,
c
));
#endif
#endif
}
}
#if defined(SIMDE_ARM_NEON_A64V8_ENABLE_NATIVE_ALIASES) || (defined(SIMDE_ENABLE_NATIVE_ALIASES) && !defined(
__ARM_FEATURE
_SHA3))
#if defined(SIMDE_ARM_NEON_A64V8_ENABLE_NATIVE_ALIASES) || (defined(SIMDE_ENABLE_NATIVE_ALIASES) && !defined(
SIMDE_ARCH_ARM
_SHA3))
#undef vbcaxq_u16
#undef vbcaxq_u16
#define vbcaxq_u16(a, b, c) simde_vbcaxq_u16(a, b, c)
#define vbcaxq_u16(a, b, c) simde_vbcaxq_u16(a, b, c)
#endif
#endif
...
@@ -67,13 +67,13 @@ simde_vbcaxq_u16(simde_uint16x8_t a, simde_uint16x8_t b, simde_uint16x8_t c) {
...
@@ -67,13 +67,13 @@ simde_vbcaxq_u16(simde_uint16x8_t a, simde_uint16x8_t b, simde_uint16x8_t c) {
SIMDE_FUNCTION_ATTRIBUTES
SIMDE_FUNCTION_ATTRIBUTES
simde_uint32x4_t
simde_uint32x4_t
simde_vbcaxq_u32
(
simde_uint32x4_t
a
,
simde_uint32x4_t
b
,
simde_uint32x4_t
c
)
{
simde_vbcaxq_u32
(
simde_uint32x4_t
a
,
simde_uint32x4_t
b
,
simde_uint32x4_t
c
)
{
#if defined(SIMDE_ARM_NEON_A64V8_NATIVE) && defined(
__ARM_FEATURE
_SHA3)
#if defined(SIMDE_ARM_NEON_A64V8_NATIVE) && defined(
SIMDE_ARCH_ARM
_SHA3)
return
vbcaxq_u32
(
a
,
b
,
c
);
return
vbcaxq_u32
(
a
,
b
,
c
);
#else
#else
return
simde_veorq_u32
(
a
,
simde_vbicq_u32
(
b
,
c
));
return
simde_veorq_u32
(
a
,
simde_vbicq_u32
(
b
,
c
));
#endif
#endif
}
}
#if defined(SIMDE_ARM_NEON_A64V8_ENABLE_NATIVE_ALIASES) || (defined(SIMDE_ENABLE_NATIVE_ALIASES) && !defined(
__ARM_FEATURE
_SHA3))
#if defined(SIMDE_ARM_NEON_A64V8_ENABLE_NATIVE_ALIASES) || (defined(SIMDE_ENABLE_NATIVE_ALIASES) && !defined(
SIMDE_ARCH_ARM
_SHA3))
#undef vbcaxq_u32
#undef vbcaxq_u32
#define vbcaxq_u32(a, b, c) simde_vbcaxq_u32(a, b, c)
#define vbcaxq_u32(a, b, c) simde_vbcaxq_u32(a, b, c)
#endif
#endif
...
@@ -81,13 +81,13 @@ simde_vbcaxq_u32(simde_uint32x4_t a, simde_uint32x4_t b, simde_uint32x4_t c) {
...
@@ -81,13 +81,13 @@ simde_vbcaxq_u32(simde_uint32x4_t a, simde_uint32x4_t b, simde_uint32x4_t c) {
SIMDE_FUNCTION_ATTRIBUTES
SIMDE_FUNCTION_ATTRIBUTES
simde_uint64x2_t
simde_uint64x2_t
simde_vbcaxq_u64
(
simde_uint64x2_t
a
,
simde_uint64x2_t
b
,
simde_uint64x2_t
c
)
{
simde_vbcaxq_u64
(
simde_uint64x2_t
a
,
simde_uint64x2_t
b
,
simde_uint64x2_t
c
)
{
#if defined(SIMDE_ARM_NEON_A64V8_NATIVE) && defined(
__ARM_FEATURE
_SHA3)
#if defined(SIMDE_ARM_NEON_A64V8_NATIVE) && defined(
SIMDE_ARCH_ARM
_SHA3)
return
vbcaxq_u64
(
a
,
b
,
c
);
return
vbcaxq_u64
(
a
,
b
,
c
);
#else
#else
return
simde_veorq_u64
(
a
,
simde_vbicq_u64
(
b
,
c
));
return
simde_veorq_u64
(
a
,
simde_vbicq_u64
(
b
,
c
));
#endif
#endif
}
}
#if defined(SIMDE_ARM_NEON_A64V8_ENABLE_NATIVE_ALIASES) || (defined(SIMDE_ENABLE_NATIVE_ALIASES) && !defined(
__ARM_FEATURE
_SHA3))
#if defined(SIMDE_ARM_NEON_A64V8_ENABLE_NATIVE_ALIASES) || (defined(SIMDE_ENABLE_NATIVE_ALIASES) && !defined(
SIMDE_ARCH_ARM
_SHA3))
#undef vbcaxq_u64
#undef vbcaxq_u64
#define vbcaxq_u64(a, b, c) simde_vbcaxq_u64(a, b, c)
#define vbcaxq_u64(a, b, c) simde_vbcaxq_u64(a, b, c)
#endif
#endif
...
@@ -95,13 +95,13 @@ simde_vbcaxq_u64(simde_uint64x2_t a, simde_uint64x2_t b, simde_uint64x2_t c) {
...
@@ -95,13 +95,13 @@ simde_vbcaxq_u64(simde_uint64x2_t a, simde_uint64x2_t b, simde_uint64x2_t c) {
SIMDE_FUNCTION_ATTRIBUTES
SIMDE_FUNCTION_ATTRIBUTES
simde_int8x16_t
simde_int8x16_t
simde_vbcaxq_s8
(
simde_int8x16_t
a
,
simde_int8x16_t
b
,
simde_int8x16_t
c
)
{
simde_vbcaxq_s8
(
simde_int8x16_t
a
,
simde_int8x16_t
b
,
simde_int8x16_t
c
)
{
#if defined(SIMDE_ARM_NEON_A64V8_NATIVE) && defined(
__ARM_FEATURE
_SHA3)
#if defined(SIMDE_ARM_NEON_A64V8_NATIVE) && defined(
SIMDE_ARCH_ARM
_SHA3)
return
vbcaxq_s8
(
a
,
b
,
c
);
return
vbcaxq_s8
(
a
,
b
,
c
);
#else
#else
return
simde_veorq_s8
(
a
,
simde_vbicq_s8
(
b
,
c
));
return
simde_veorq_s8
(
a
,
simde_vbicq_s8
(
b
,
c
));
#endif
#endif
}
}
#if defined(SIMDE_ARM_NEON_A64V8_ENABLE_NATIVE_ALIASES) || (defined(SIMDE_ENABLE_NATIVE_ALIASES) && !defined(
__ARM_FEATURE
_SHA3))
#if defined(SIMDE_ARM_NEON_A64V8_ENABLE_NATIVE_ALIASES) || (defined(SIMDE_ENABLE_NATIVE_ALIASES) && !defined(
SIMDE_ARCH_ARM
_SHA3))
#undef vbcaxq_s8
#undef vbcaxq_s8
#define vbcaxq_s8(a, b, c) simde_vbcaxq_s8(a, b, c)
#define vbcaxq_s8(a, b, c) simde_vbcaxq_s8(a, b, c)
#endif
#endif
...
@@ -109,13 +109,13 @@ simde_vbcaxq_s8(simde_int8x16_t a, simde_int8x16_t b, simde_int8x16_t c) {
...
@@ -109,13 +109,13 @@ simde_vbcaxq_s8(simde_int8x16_t a, simde_int8x16_t b, simde_int8x16_t c) {
SIMDE_FUNCTION_ATTRIBUTES
SIMDE_FUNCTION_ATTRIBUTES
simde_int16x8_t
simde_int16x8_t
simde_vbcaxq_s16
(
simde_int16x8_t
a
,
simde_int16x8_t
b
,
simde_int16x8_t
c
)
{
simde_vbcaxq_s16
(
simde_int16x8_t
a
,
simde_int16x8_t
b
,
simde_int16x8_t
c
)
{
#if defined(SIMDE_ARM_NEON_A64V8_NATIVE) && defined(
__ARM_FEATURE
_SHA3)
#if defined(SIMDE_ARM_NEON_A64V8_NATIVE) && defined(
SIMDE_ARCH_ARM
_SHA3)
return
vbcaxq_s16
(
a
,
b
,
c
);
return
vbcaxq_s16
(
a
,
b
,
c
);
#else
#else
return
simde_veorq_s16
(
a
,
simde_vbicq_s16
(
b
,
c
));
return
simde_veorq_s16
(
a
,
simde_vbicq_s16
(
b
,
c
));
#endif
#endif
}
}
#if defined(SIMDE_ARM_NEON_A64V8_ENABLE_NATIVE_ALIASES) || (defined(SIMDE_ENABLE_NATIVE_ALIASES) && !defined(
__ARM_FEATURE
_SHA3))
#if defined(SIMDE_ARM_NEON_A64V8_ENABLE_NATIVE_ALIASES) || (defined(SIMDE_ENABLE_NATIVE_ALIASES) && !defined(
SIMDE_ARCH_ARM
_SHA3))
#undef vbcaxq_s16
#undef vbcaxq_s16
#define vbcaxq_s16(a, b, c) simde_vbcaxq_s16(a, b, c)
#define vbcaxq_s16(a, b, c) simde_vbcaxq_s16(a, b, c)
#endif
#endif
...
@@ -123,13 +123,13 @@ simde_vbcaxq_s16(simde_int16x8_t a, simde_int16x8_t b, simde_int16x8_t c) {
...
@@ -123,13 +123,13 @@ simde_vbcaxq_s16(simde_int16x8_t a, simde_int16x8_t b, simde_int16x8_t c) {
SIMDE_FUNCTION_ATTRIBUTES
SIMDE_FUNCTION_ATTRIBUTES
simde_int32x4_t
simde_int32x4_t
simde_vbcaxq_s32
(
simde_int32x4_t
a
,
simde_int32x4_t
b
,
simde_int32x4_t
c
)
{
simde_vbcaxq_s32
(
simde_int32x4_t
a
,
simde_int32x4_t
b
,
simde_int32x4_t
c
)
{
#if defined(SIMDE_ARM_NEON_A64V8_NATIVE) && defined(
__ARM_FEATURE
_SHA3)
#if defined(SIMDE_ARM_NEON_A64V8_NATIVE) && defined(
SIMDE_ARCH_ARM
_SHA3)
return
vbcaxq_s32
(
a
,
b
,
c
);
return
vbcaxq_s32
(
a
,
b
,
c
);
#else
#else
return
simde_veorq_s32
(
a
,
simde_vbicq_s32
(
b
,
c
));
return
simde_veorq_s32
(
a
,
simde_vbicq_s32
(
b
,
c
));
#endif
#endif
}
}
#if defined(SIMDE_ARM_NEON_A64V8_ENABLE_NATIVE_ALIASES) || (defined(SIMDE_ENABLE_NATIVE_ALIASES) && !defined(
__ARM_FEATURE
_SHA3))
#if defined(SIMDE_ARM_NEON_A64V8_ENABLE_NATIVE_ALIASES) || (defined(SIMDE_ENABLE_NATIVE_ALIASES) && !defined(
SIMDE_ARCH_ARM
_SHA3))
#undef vbcaxq_s32
#undef vbcaxq_s32
#define vbcaxq_s32(a, b, c) simde_vbcaxq_s32(a, b, c)
#define vbcaxq_s32(a, b, c) simde_vbcaxq_s32(a, b, c)
#endif
#endif
...
@@ -137,13 +137,13 @@ simde_vbcaxq_s32(simde_int32x4_t a, simde_int32x4_t b, simde_int32x4_t c) {
...
@@ -137,13 +137,13 @@ simde_vbcaxq_s32(simde_int32x4_t a, simde_int32x4_t b, simde_int32x4_t c) {
SIMDE_FUNCTION_ATTRIBUTES
SIMDE_FUNCTION_ATTRIBUTES
simde_int64x2_t
simde_int64x2_t
simde_vbcaxq_s64
(
simde_int64x2_t
a
,
simde_int64x2_t
b
,
simde_int64x2_t
c
)
{
simde_vbcaxq_s64
(
simde_int64x2_t
a
,
simde_int64x2_t
b
,
simde_int64x2_t
c
)
{
#if defined(SIMDE_ARM_NEON_A64V8_NATIVE) && defined(
__ARM_FEATURE
_SHA3)
#if defined(SIMDE_ARM_NEON_A64V8_NATIVE) && defined(
SIMDE_ARCH_ARM
_SHA3)
return
vbcaxq_s64
(
a
,
b
,
c
);
return
vbcaxq_s64
(
a
,
b
,
c
);
#else
#else
return
simde_veorq_s64
(
a
,
simde_vbicq_s64
(
b
,
c
));
return
simde_veorq_s64
(
a
,
simde_vbicq_s64
(
b
,
c
));
#endif
#endif
}
}
#if defined(SIMDE_ARM_NEON_A64V8_ENABLE_NATIVE_ALIASES) || (defined(SIMDE_ENABLE_NATIVE_ALIASES) && !defined(
__ARM_FEATURE
_SHA3))
#if defined(SIMDE_ARM_NEON_A64V8_ENABLE_NATIVE_ALIASES) || (defined(SIMDE_ENABLE_NATIVE_ALIASES) && !defined(
SIMDE_ARCH_ARM
_SHA3))
#undef vbcaxq_s64
#undef vbcaxq_s64
#define vbcaxq_s64(a, b, c) simde_vbcaxq_s64(a, b, c)
#define vbcaxq_s64(a, b, c) simde_vbcaxq_s64(a, b, c)
#endif
#endif
...
...
arm/neon/cmla.h
View file @
b5835922
...
@@ -40,7 +40,7 @@ simde_vcmla_f16(simde_float16x4_t r, simde_float16x4_t a, simde_float16x4_t b) {
...
@@ -40,7 +40,7 @@ simde_vcmla_f16(simde_float16x4_t r, simde_float16x4_t a, simde_float16x4_t b) {
#if defined(SIMDE_ARM_NEON_A32V8_NATIVE) && SIMDE_ARCH_ARM_CHECK(8,3) && \
#if defined(SIMDE_ARM_NEON_A32V8_NATIVE) && SIMDE_ARCH_ARM_CHECK(8,3) && \
(!defined(HEDLEY_GCC_VERSION) || HEDLEY_GCC_VERSION_CHECK(8,5,0)) && \
(!defined(HEDLEY_GCC_VERSION) || HEDLEY_GCC_VERSION_CHECK(8,5,0)) && \
(!defined(__clang__) || SIMDE_DETECT_CLANG_VERSION_CHECK(12,0,0)) && \
(!defined(__clang__) || SIMDE_DETECT_CLANG_VERSION_CHECK(12,0,0)) && \
defined(SIMDE_ARM_NEON_FP16) && defined(
__ARM_FEATURE
_COMPLEX)
defined(SIMDE_ARM_NEON_FP16) && defined(
SIMDE_ARCH_ARM
_COMPLEX)
return
vcmla_f16
(
r
,
a
,
b
);
return
vcmla_f16
(
r
,
a
,
b
);
#else
#else
simde_float16x4_private
simde_float16x4_private
...
@@ -74,7 +74,7 @@ simde_vcmla_f32(simde_float32x2_t r, simde_float32x2_t a, simde_float32x2_t b) {
...
@@ -74,7 +74,7 @@ simde_vcmla_f32(simde_float32x2_t r, simde_float32x2_t a, simde_float32x2_t b) {
#if defined(SIMDE_ARM_NEON_A32V8_NATIVE) && SIMDE_ARCH_ARM_CHECK(8,3) && \
#if defined(SIMDE_ARM_NEON_A32V8_NATIVE) && SIMDE_ARCH_ARM_CHECK(8,3) && \
(!defined(HEDLEY_GCC_VERSION) || HEDLEY_GCC_VERSION_CHECK(9,0,0)) && \
(!defined(HEDLEY_GCC_VERSION) || HEDLEY_GCC_VERSION_CHECK(9,0,0)) && \
(!defined(__clang__) || SIMDE_DETECT_CLANG_VERSION_CHECK(12,0,0)) && \
(!defined(__clang__) || SIMDE_DETECT_CLANG_VERSION_CHECK(12,0,0)) && \
defined(
__ARM_FEATURE
_COMPLEX)
defined(
SIMDE_ARCH_ARM
_COMPLEX)
return
vcmla_f32
(
r
,
a
,
b
);
return
vcmla_f32
(
r
,
a
,
b
);
#else
#else
simde_float32x2_private
simde_float32x2_private
...
@@ -106,7 +106,7 @@ simde_vcmlaq_f16(simde_float16x8_t r, simde_float16x8_t a, simde_float16x8_t b)
...
@@ -106,7 +106,7 @@ simde_vcmlaq_f16(simde_float16x8_t r, simde_float16x8_t a, simde_float16x8_t b)
#if defined(SIMDE_ARM_NEON_A32V8_NATIVE) && SIMDE_ARCH_ARM_CHECK(8,3) && \
#if defined(SIMDE_ARM_NEON_A32V8_NATIVE) && SIMDE_ARCH_ARM_CHECK(8,3) && \
(!defined(HEDLEY_GCC_VERSION) || HEDLEY_GCC_VERSION_CHECK(8,5,0)) && \
(!defined(HEDLEY_GCC_VERSION) || HEDLEY_GCC_VERSION_CHECK(8,5,0)) && \
(!defined(__clang__) || SIMDE_DETECT_CLANG_VERSION_CHECK(12,0,0)) && \
(!defined(__clang__) || SIMDE_DETECT_CLANG_VERSION_CHECK(12,0,0)) && \
defined(SIMDE_ARM_NEON_FP16) && defined(
__ARM_FEATURE
_COMPLEX)
defined(SIMDE_ARM_NEON_FP16) && defined(
SIMDE_ARCH_ARM
_COMPLEX)
return
vcmlaq_f16
(
r
,
a
,
b
);
return
vcmlaq_f16
(
r
,
a
,
b
);
#else
#else
simde_float16x8_private
simde_float16x8_private
...
@@ -140,7 +140,7 @@ simde_vcmlaq_f32(simde_float32x4_t r, simde_float32x4_t a, simde_float32x4_t b)
...
@@ -140,7 +140,7 @@ simde_vcmlaq_f32(simde_float32x4_t r, simde_float32x4_t a, simde_float32x4_t b)
#if defined(SIMDE_ARM_NEON_A32V8_NATIVE) && SIMDE_ARCH_ARM_CHECK(8,3) && \
#if defined(SIMDE_ARM_NEON_A32V8_NATIVE) && SIMDE_ARCH_ARM_CHECK(8,3) && \
(!defined(HEDLEY_GCC_VERSION) || HEDLEY_GCC_VERSION_CHECK(9,0,0)) && \
(!defined(HEDLEY_GCC_VERSION) || HEDLEY_GCC_VERSION_CHECK(9,0,0)) && \
(!defined(__clang__) || SIMDE_DETECT_CLANG_VERSION_CHECK(12,0,0)) && \
(!defined(__clang__) || SIMDE_DETECT_CLANG_VERSION_CHECK(12,0,0)) && \
defined(
__ARM_FEATURE
_COMPLEX)
defined(
SIMDE_ARCH_ARM
_COMPLEX)
return
vcmlaq_f32
(
r
,
a
,
b
);
return
vcmlaq_f32
(
r
,
a
,
b
);
#else
#else
simde_float32x4_private
simde_float32x4_private
...
@@ -174,7 +174,7 @@ simde_vcmlaq_f64(simde_float64x2_t r, simde_float64x2_t a, simde_float64x2_t b)
...
@@ -174,7 +174,7 @@ simde_vcmlaq_f64(simde_float64x2_t r, simde_float64x2_t a, simde_float64x2_t b)
#if defined(SIMDE_ARM_NEON_A64V8_NATIVE) && SIMDE_ARCH_ARM_CHECK(8,3) && \
#if defined(SIMDE_ARM_NEON_A64V8_NATIVE) && SIMDE_ARCH_ARM_CHECK(8,3) && \
(!defined(HEDLEY_GCC_VERSION) || HEDLEY_GCC_VERSION_CHECK(9,0,0)) && \
(!defined(HEDLEY_GCC_VERSION) || HEDLEY_GCC_VERSION_CHECK(9,0,0)) && \
(!defined(__clang__) || SIMDE_DETECT_CLANG_VERSION_CHECK(12,0,0)) && \
(!defined(__clang__) || SIMDE_DETECT_CLANG_VERSION_CHECK(12,0,0)) && \
defined(
__ARM_FEATURE
_COMPLEX)
defined(
SIMDE_ARCH_ARM
_COMPLEX)
return
vcmlaq_f64
(
r
,
a
,
b
);
return
vcmlaq_f64
(
r
,
a
,
b
);
#else
#else
simde_float64x2_private
simde_float64x2_private
...
...
arm/neon/cmla_rot180.h
View file @
b5835922
...
@@ -40,7 +40,7 @@ simde_vcmla_rot180_f16(simde_float16x4_t r, simde_float16x4_t a, simde_float16x4
...
@@ -40,7 +40,7 @@ simde_vcmla_rot180_f16(simde_float16x4_t r, simde_float16x4_t a, simde_float16x4
#if defined(SIMDE_ARM_NEON_A32V8_NATIVE) && SIMDE_ARCH_ARM_CHECK(8,3) && \
#if defined(SIMDE_ARM_NEON_A32V8_NATIVE) && SIMDE_ARCH_ARM_CHECK(8,3) && \
(!defined(HEDLEY_GCC_VERSION) || HEDLEY_GCC_VERSION_CHECK(8,5,0)) && \
(!defined(HEDLEY_GCC_VERSION) || HEDLEY_GCC_VERSION_CHECK(8,5,0)) && \
(!defined(__clang__) || SIMDE_DETECT_CLANG_VERSION_CHECK(12,0,0)) && \
(!defined(__clang__) || SIMDE_DETECT_CLANG_VERSION_CHECK(12,0,0)) && \
defined(SIMDE_ARM_NEON_FP16) && defined(
__ARM_FEATURE
_COMPLEX)
defined(SIMDE_ARM_NEON_FP16) && defined(
SIMDE_ARCH_ARM
_COMPLEX)
return
vcmla_rot180_f16
(
r
,
a
,
b
);
return
vcmla_rot180_f16
(
r
,
a
,
b
);
#else
#else
simde_float16x4_private
simde_float16x4_private
...
@@ -74,7 +74,7 @@ simde_vcmlaq_rot180_f16(simde_float16x8_t r, simde_float16x8_t a, simde_float16x
...
@@ -74,7 +74,7 @@ simde_vcmlaq_rot180_f16(simde_float16x8_t r, simde_float16x8_t a, simde_float16x
#if defined(SIMDE_ARM_NEON_A32V8_NATIVE) && SIMDE_ARCH_ARM_CHECK(8,3) && \
#if defined(SIMDE_ARM_NEON_A32V8_NATIVE) && SIMDE_ARCH_ARM_CHECK(8,3) && \
(!defined(HEDLEY_GCC_VERSION) || HEDLEY_GCC_VERSION_CHECK(8,5,0)) && \
(!defined(HEDLEY_GCC_VERSION) || HEDLEY_GCC_VERSION_CHECK(8,5,0)) && \
(!defined(__clang__) || SIMDE_DETECT_CLANG_VERSION_CHECK(12,0,0)) && \
(!defined(__clang__) || SIMDE_DETECT_CLANG_VERSION_CHECK(12,0,0)) && \
defined(SIMDE_ARM_NEON_FP16) && defined(
__ARM_FEATURE
_COMPLEX)
defined(SIMDE_ARM_NEON_FP16) && defined(
SIMDE_ARCH_ARM
_COMPLEX)
return
vcmlaq_rot180_f16
(
r
,
a
,
b
);
return
vcmlaq_rot180_f16
(
r
,
a
,
b
);
#else
#else
simde_float16x8_private
simde_float16x8_private
...
@@ -109,7 +109,7 @@ simde_vcmla_rot180_f32(simde_float32x2_t r, simde_float32x2_t a, simde_float32x2
...
@@ -109,7 +109,7 @@ simde_vcmla_rot180_f32(simde_float32x2_t r, simde_float32x2_t a, simde_float32x2
#if defined(SIMDE_ARM_NEON_A32V8_NATIVE) && SIMDE_ARCH_ARM_CHECK(8,3) && \
#if defined(SIMDE_ARM_NEON_A32V8_NATIVE) && SIMDE_ARCH_ARM_CHECK(8,3) && \
(!defined(HEDLEY_GCC_VERSION) || HEDLEY_GCC_VERSION_CHECK(9,0,0)) && \
(!defined(HEDLEY_GCC_VERSION) || HEDLEY_GCC_VERSION_CHECK(9,0,0)) && \
(!defined(__clang__) || SIMDE_DETECT_CLANG_VERSION_CHECK(12,0,0)) && \
(!defined(__clang__) || SIMDE_DETECT_CLANG_VERSION_CHECK(12,0,0)) && \
defined(
__ARM_FEATURE
_COMPLEX)
defined(
SIMDE_ARCH_ARM
_COMPLEX)
return
vcmla_rot180_f32
(
r
,
a
,
b
);
return
vcmla_rot180_f32
(
r
,
a
,
b
);
#else
#else
simde_float32x2_private
simde_float32x2_private
...
@@ -143,7 +143,7 @@ simde_vcmlaq_rot180_f32(simde_float32x4_t r, simde_float32x4_t a, simde_float32x
...
@@ -143,7 +143,7 @@ simde_vcmlaq_rot180_f32(simde_float32x4_t r, simde_float32x4_t a, simde_float32x
#if defined(SIMDE_ARM_NEON_A32V8_NATIVE) && SIMDE_ARCH_ARM_CHECK(8,3) && \
#if defined(SIMDE_ARM_NEON_A32V8_NATIVE) && SIMDE_ARCH_ARM_CHECK(8,3) && \
(!defined(HEDLEY_GCC_VERSION) || HEDLEY_GCC_VERSION_CHECK(9,0,0)) && \
(!defined(HEDLEY_GCC_VERSION) || HEDLEY_GCC_VERSION_CHECK(9,0,0)) && \
(!defined(__clang__) || SIMDE_DETECT_CLANG_VERSION_CHECK(12,0,0)) && \
(!defined(__clang__) || SIMDE_DETECT_CLANG_VERSION_CHECK(12,0,0)) && \
defined(
__ARM_FEATURE
_COMPLEX)
defined(
SIMDE_ARCH_ARM
_COMPLEX)
return
vcmlaq_rot180_f32
(
r
,
a
,
b
);
return
vcmlaq_rot180_f32
(
r
,
a
,
b
);
#else
#else
simde_float32x4_private
simde_float32x4_private
...
@@ -181,7 +181,7 @@ simde_vcmlaq_rot180_f64(simde_float64x2_t r, simde_float64x2_t a, simde_float64x
...
@@ -181,7 +181,7 @@ simde_vcmlaq_rot180_f64(simde_float64x2_t r, simde_float64x2_t a, simde_float64x
#if defined(SIMDE_ARM_NEON_A64V8_NATIVE) && SIMDE_ARCH_ARM_CHECK(8,3) && \
#if defined(SIMDE_ARM_NEON_A64V8_NATIVE) && SIMDE_ARCH_ARM_CHECK(8,3) && \
(!defined(HEDLEY_GCC_VERSION) || HEDLEY_GCC_VERSION_CHECK(9,0,0)) && \
(!defined(HEDLEY_GCC_VERSION) || HEDLEY_GCC_VERSION_CHECK(9,0,0)) && \
(!defined(__clang__) || SIMDE_DETECT_CLANG_VERSION_CHECK(12,0,0)) && \
(!defined(__clang__) || SIMDE_DETECT_CLANG_VERSION_CHECK(12,0,0)) && \
defined(
__ARM_FEATURE
_COMPLEX)
defined(
SIMDE_ARCH_ARM
_COMPLEX)
return
vcmlaq_rot180_f64
(
r
,
a
,
b
);
return
vcmlaq_rot180_f64
(
r
,
a
,
b
);
#else
#else
simde_float64x2_private
simde_float64x2_private
...
...
arm/neon/cmla_rot270.h
View file @
b5835922
...
@@ -40,7 +40,7 @@ simde_vcmla_rot270_f16(simde_float16x4_t r, simde_float16x4_t a, simde_float16x4
...
@@ -40,7 +40,7 @@ simde_vcmla_rot270_f16(simde_float16x4_t r, simde_float16x4_t a, simde_float16x4
#if defined(SIMDE_ARM_NEON_A32V8_NATIVE) && SIMDE_ARCH_ARM_CHECK(8,3) && \
#if defined(SIMDE_ARM_NEON_A32V8_NATIVE) && SIMDE_ARCH_ARM_CHECK(8,3) && \
(!defined(HEDLEY_GCC_VERSION) || HEDLEY_GCC_VERSION_CHECK(8,5,0)) && \
(!defined(HEDLEY_GCC_VERSION) || HEDLEY_GCC_VERSION_CHECK(8,5,0)) && \
(!defined(__clang__) || SIMDE_DETECT_CLANG_VERSION_CHECK(12,0,0)) && \
(!defined(__clang__) || SIMDE_DETECT_CLANG_VERSION_CHECK(12,0,0)) && \
defined(SIMDE_ARM_NEON_FP16) && defined(
__ARM_FEATURE
_COMPLEX)
defined(SIMDE_ARM_NEON_FP16) && defined(
SIMDE_ARCH_ARM
_COMPLEX)
return
vcmla_rot270_f16
(
r
,
a
,
b
);
return
vcmla_rot270_f16
(
r
,
a
,
b
);
#else
#else
simde_float16x4_private
simde_float16x4_private
...
@@ -74,7 +74,7 @@ simde_vcmlaq_rot270_f16(simde_float16x8_t r, simde_float16x8_t a, simde_float16x
...
@@ -74,7 +74,7 @@ simde_vcmlaq_rot270_f16(simde_float16x8_t r, simde_float16x8_t a, simde_float16x
#if defined(SIMDE_ARM_NEON_A32V8_NATIVE) && SIMDE_ARCH_ARM_CHECK(8,3) && \
#if defined(SIMDE_ARM_NEON_A32V8_NATIVE) && SIMDE_ARCH_ARM_CHECK(8,3) && \
(!defined(HEDLEY_GCC_VERSION) || HEDLEY_GCC_VERSION_CHECK(8,5,0)) && \
(!defined(HEDLEY_GCC_VERSION) || HEDLEY_GCC_VERSION_CHECK(8,5,0)) && \
(!defined(__clang__) || SIMDE_DETECT_CLANG_VERSION_CHECK(12,0,0)) && \
(!defined(__clang__) || SIMDE_DETECT_CLANG_VERSION_CHECK(12,0,0)) && \
defined(SIMDE_ARM_NEON_FP16) && defined(
__ARM_FEATURE
_COMPLEX)
defined(SIMDE_ARM_NEON_FP16) && defined(
SIMDE_ARCH_ARM
_COMPLEX)
return
vcmlaq_rot270_f16
(
r
,
a
,
b
);
return
vcmlaq_rot270_f16
(
r
,
a
,
b
);
#else
#else
simde_float16x8_private
simde_float16x8_private
...
@@ -108,7 +108,7 @@ simde_vcmla_rot270_f32(simde_float32x2_t r, simde_float32x2_t a, simde_float32x2
...
@@ -108,7 +108,7 @@ simde_vcmla_rot270_f32(simde_float32x2_t r, simde_float32x2_t a, simde_float32x2
#if defined(SIMDE_ARM_NEON_A32V8_NATIVE) && SIMDE_ARCH_ARM_CHECK(8,3) && \
#if defined(SIMDE_ARM_NEON_A32V8_NATIVE) && SIMDE_ARCH_ARM_CHECK(8,3) && \
(!defined(HEDLEY_GCC_VERSION) || HEDLEY_GCC_VERSION_CHECK(9,0,0)) && \
(!defined(HEDLEY_GCC_VERSION) || HEDLEY_GCC_VERSION_CHECK(9,0,0)) && \
(!defined(__clang__) || SIMDE_DETECT_CLANG_VERSION_CHECK(12,0,0)) && \
(!defined(__clang__) || SIMDE_DETECT_CLANG_VERSION_CHECK(12,0,0)) && \
defined(
__ARM_FEATURE
_COMPLEX)
defined(
SIMDE_ARCH_ARM
_COMPLEX)
return
vcmla_rot270_f32
(
r
,
a
,
b
);
return
vcmla_rot270_f32
(
r
,
a
,
b
);
#else
#else
simde_float32x2_private
simde_float32x2_private
...
@@ -142,7 +142,7 @@ simde_vcmlaq_rot270_f32(simde_float32x4_t r, simde_float32x4_t a, simde_float32x
...
@@ -142,7 +142,7 @@ simde_vcmlaq_rot270_f32(simde_float32x4_t r, simde_float32x4_t a, simde_float32x
#if defined(SIMDE_ARM_NEON_A32V8_NATIVE) && SIMDE_ARCH_ARM_CHECK(8,3) && \
#if defined(SIMDE_ARM_NEON_A32V8_NATIVE) && SIMDE_ARCH_ARM_CHECK(8,3) && \
(!defined(HEDLEY_GCC_VERSION) || HEDLEY_GCC_VERSION_CHECK(9,0,0)) && \
(!defined(HEDLEY_GCC_VERSION) || HEDLEY_GCC_VERSION_CHECK(9,0,0)) && \
(!defined(__clang__) || SIMDE_DETECT_CLANG_VERSION_CHECK(12,0,0)) && \
(!defined(__clang__) || SIMDE_DETECT_CLANG_VERSION_CHECK(12,0,0)) && \
defined(
__ARM_FEATURE
_COMPLEX)
defined(
SIMDE_ARCH_ARM
_COMPLEX)
return
vcmlaq_rot270_f32
(
r
,
a
,
b
);
return
vcmlaq_rot270_f32
(
r
,
a
,
b
);
#else
#else
simde_float32x4_private
simde_float32x4_private
...
@@ -180,7 +180,7 @@ simde_vcmlaq_rot270_f64(simde_float64x2_t r, simde_float64x2_t a, simde_float64x
...
@@ -180,7 +180,7 @@ simde_vcmlaq_rot270_f64(simde_float64x2_t r, simde_float64x2_t a, simde_float64x
#if defined(SIMDE_ARM_NEON_A64V8_NATIVE) && SIMDE_ARCH_ARM_CHECK(8,3) && \
#if defined(SIMDE_ARM_NEON_A64V8_NATIVE) && SIMDE_ARCH_ARM_CHECK(8,3) && \
(!defined(HEDLEY_GCC_VERSION) || HEDLEY_GCC_VERSION_CHECK(9,0,0)) && \
(!defined(HEDLEY_GCC_VERSION) || HEDLEY_GCC_VERSION_CHECK(9,0,0)) && \
(!defined(__clang__) || SIMDE_DETECT_CLANG_VERSION_CHECK(12,0,0)) && \
(!defined(__clang__) || SIMDE_DETECT_CLANG_VERSION_CHECK(12,0,0)) && \
defined(
__ARM_FEATURE
_COMPLEX)
defined(
SIMDE_ARCH_ARM
_COMPLEX)
return
vcmlaq_rot270_f64
(
r
,
a
,
b
);
return
vcmlaq_rot270_f64
(
r
,
a
,
b
);
#else
#else
simde_float64x2_private
simde_float64x2_private
...
...
arm/neon/cmla_rot90.h
View file @
b5835922
...
@@ -40,7 +40,7 @@ simde_vcmla_rot90_f16(simde_float16x4_t r, simde_float16x4_t a, simde_float16x4_
...
@@ -40,7 +40,7 @@ simde_vcmla_rot90_f16(simde_float16x4_t r, simde_float16x4_t a, simde_float16x4_
#if defined(SIMDE_ARM_NEON_A32V8_NATIVE) && SIMDE_ARCH_ARM_CHECK(8,3) && \
#if defined(SIMDE_ARM_NEON_A32V8_NATIVE) && SIMDE_ARCH_ARM_CHECK(8,3) && \
(!defined(HEDLEY_GCC_VERSION) || HEDLEY_GCC_VERSION_CHECK(8,5,0)) && \
(!defined(HEDLEY_GCC_VERSION) || HEDLEY_GCC_VERSION_CHECK(8,5,0)) && \
(!defined(__clang__) || SIMDE_DETECT_CLANG_VERSION_CHECK(12,0,0)) && \
(!defined(__clang__) || SIMDE_DETECT_CLANG_VERSION_CHECK(12,0,0)) && \
defined(SIMDE_ARM_NEON_FP16) && defined(
__ARM_FEATURE
_COMPLEX)
defined(SIMDE_ARM_NEON_FP16) && defined(
SIMDE_ARCH_ARM
_COMPLEX)
return
vcmla_rot90_f16
(
r
,
a
,
b
);
return
vcmla_rot90_f16
(
r
,
a
,
b
);
#else
#else
simde_float16x4_private
simde_float16x4_private
...
@@ -74,7 +74,7 @@ simde_vcmlaq_rot90_f16(simde_float16x8_t r, simde_float16x8_t a, simde_float16x8
...
@@ -74,7 +74,7 @@ simde_vcmlaq_rot90_f16(simde_float16x8_t r, simde_float16x8_t a, simde_float16x8
#if defined(SIMDE_ARM_NEON_A32V8_NATIVE) && SIMDE_ARCH_ARM_CHECK(8,3) && \
#if defined(SIMDE_ARM_NEON_A32V8_NATIVE) && SIMDE_ARCH_ARM_CHECK(8,3) && \
(!defined(HEDLEY_GCC_VERSION) || HEDLEY_GCC_VERSION_CHECK(8,5,0)) && \
(!defined(HEDLEY_GCC_VERSION) || HEDLEY_GCC_VERSION_CHECK(8,5,0)) && \
(!defined(__clang__) || SIMDE_DETECT_CLANG_VERSION_CHECK(12,0,0)) && \
(!defined(__clang__) || SIMDE_DETECT_CLANG_VERSION_CHECK(12,0,0)) && \
defined(SIMDE_ARM_NEON_FP16) && defined(
__ARM_FEATURE
_COMPLEX)
defined(SIMDE_ARM_NEON_FP16) && defined(
SIMDE_ARCH_ARM
_COMPLEX)
return
vcmlaq_rot90_f16
(
r
,
a
,
b
);
return
vcmlaq_rot90_f16
(
r
,
a
,
b
);
#else
#else
simde_float16x8_private
simde_float16x8_private
...
@@ -108,7 +108,7 @@ simde_vcmla_rot90_f32(simde_float32x2_t r, simde_float32x2_t a, simde_float32x2_
...
@@ -108,7 +108,7 @@ simde_vcmla_rot90_f32(simde_float32x2_t r, simde_float32x2_t a, simde_float32x2_
#if defined(SIMDE_ARM_NEON_A32V8_NATIVE) && SIMDE_ARCH_ARM_CHECK(8,3) && \
#if defined(SIMDE_ARM_NEON_A32V8_NATIVE) && SIMDE_ARCH_ARM_CHECK(8,3) && \
(!defined(HEDLEY_GCC_VERSION) || HEDLEY_GCC_VERSION_CHECK(9,0,0)) && \
(!defined(HEDLEY_GCC_VERSION) || HEDLEY_GCC_VERSION_CHECK(9,0,0)) && \
(!defined(__clang__) || SIMDE_DETECT_CLANG_VERSION_CHECK(12,0,0)) && \
(!defined(__clang__) || SIMDE_DETECT_CLANG_VERSION_CHECK(12,0,0)) && \
defined(
__ARM_FEATURE
_COMPLEX)
defined(
SIMDE_ARCH_ARM
_COMPLEX)
return
vcmla_rot90_f32
(
r
,
a
,
b
);
return
vcmla_rot90_f32
(
r
,
a
,
b
);
#else
#else
simde_float32x2_private
simde_float32x2_private
...
@@ -142,7 +142,7 @@ simde_vcmlaq_rot90_f32(simde_float32x4_t r, simde_float32x4_t a, simde_float32x4
...
@@ -142,7 +142,7 @@ simde_vcmlaq_rot90_f32(simde_float32x4_t r, simde_float32x4_t a, simde_float32x4
#if defined(SIMDE_ARM_NEON_A32V8_NATIVE) && SIMDE_ARCH_ARM_CHECK(8,3) && \
#if defined(SIMDE_ARM_NEON_A32V8_NATIVE) && SIMDE_ARCH_ARM_CHECK(8,3) && \
(!defined(HEDLEY_GCC_VERSION) || HEDLEY_GCC_VERSION_CHECK(9,0,0)) && \
(!defined(HEDLEY_GCC_VERSION) || HEDLEY_GCC_VERSION_CHECK(9,0,0)) && \
(!defined(__clang__) || SIMDE_DETECT_CLANG_VERSION_CHECK(12,0,0)) && \
(!defined(__clang__) || SIMDE_DETECT_CLANG_VERSION_CHECK(12,0,0)) && \
defined(
__ARM_FEATURE
_COMPLEX)
defined(
SIMDE_ARCH_ARM
_COMPLEX)
return
vcmlaq_rot90_f32
(
r
,
a
,
b
);
return
vcmlaq_rot90_f32
(
r
,
a
,
b
);
#else
#else
simde_float32x4_private
simde_float32x4_private
...
@@ -180,7 +180,7 @@ simde_vcmlaq_rot90_f64(simde_float64x2_t r, simde_float64x2_t a, simde_float64x2
...
@@ -180,7 +180,7 @@ simde_vcmlaq_rot90_f64(simde_float64x2_t r, simde_float64x2_t a, simde_float64x2
#if defined(SIMDE_ARM_NEON_A64V8_NATIVE) && SIMDE_ARCH_ARM_CHECK(8,3) && \
#if defined(SIMDE_ARM_NEON_A64V8_NATIVE) && SIMDE_ARCH_ARM_CHECK(8,3) && \
(!defined(HEDLEY_GCC_VERSION) || HEDLEY_GCC_VERSION_CHECK(9,0,0)) && \
(!defined(HEDLEY_GCC_VERSION) || HEDLEY_GCC_VERSION_CHECK(9,0,0)) && \
(!defined(__clang__) || SIMDE_DETECT_CLANG_VERSION_CHECK(12,0,0)) && \
(!defined(__clang__) || SIMDE_DETECT_CLANG_VERSION_CHECK(12,0,0)) && \
defined(
__ARM_FEATURE
_COMPLEX)
defined(
SIMDE_ARCH_ARM
_COMPLEX)
return
vcmlaq_rot90_f64
(
r
,
a
,
b
);
return
vcmlaq_rot90_f64
(
r
,
a
,
b
);
#else
#else
simde_float64x2_private
simde_float64x2_private
...
...
arm/neon/dot.h
View file @
b5835922
...
@@ -46,7 +46,7 @@ SIMDE_BEGIN_DECLS_
...
@@ -46,7 +46,7 @@ SIMDE_BEGIN_DECLS_
SIMDE_FUNCTION_ATTRIBUTES
SIMDE_FUNCTION_ATTRIBUTES
simde_int32x2_t
simde_int32x2_t
simde_vdot_s32
(
simde_int32x2_t
r
,
simde_int8x8_t
a
,
simde_int8x8_t
b
)
{
simde_vdot_s32
(
simde_int32x2_t
r
,
simde_int8x8_t
a
,
simde_int8x8_t
b
)
{
#if defined(SIMDE_ARM_NEON_A32V8_NATIVE) && defined(
__ARM_FEATURE
_DOTPROD)
#if defined(SIMDE_ARM_NEON_A32V8_NATIVE) && defined(
SIMDE_ARCH_ARM
_DOTPROD)
return
vdot_s32
(
r
,
a
,
b
);
return
vdot_s32
(
r
,
a
,
b
);
#elif defined(SIMDE_ARM_NEON_A32V7_NATIVE)
#elif defined(SIMDE_ARM_NEON_A32V7_NATIVE)
return
simde_vadd_s32
(
r
,
simde_vmovn_s64
(
simde_vpaddlq_s32
(
simde_vpaddlq_s16
(
simde_vmull_s8
(
a
,
b
)))));
return
simde_vadd_s32
(
r
,
simde_vmovn_s64
(
simde_vpaddlq_s32
(
simde_vpaddlq_s16
(
simde_vmull_s8
(
a
,
b
)))));
...
@@ -75,7 +75,7 @@ simde_vdot_s32(simde_int32x2_t r, simde_int8x8_t a, simde_int8x8_t b) {
...
@@ -75,7 +75,7 @@ simde_vdot_s32(simde_int32x2_t r, simde_int8x8_t a, simde_int8x8_t b) {
SIMDE_FUNCTION_ATTRIBUTES
SIMDE_FUNCTION_ATTRIBUTES
simde_uint32x2_t
simde_uint32x2_t
simde_vdot_u32
(
simde_uint32x2_t
r
,
simde_uint8x8_t
a
,
simde_uint8x8_t
b
)
{
simde_vdot_u32
(
simde_uint32x2_t
r
,
simde_uint8x8_t
a
,
simde_uint8x8_t
b
)
{
#if defined(SIMDE_ARM_NEON_A32V8_NATIVE) && defined(
__ARM_FEATURE
_DOTPROD)
#if defined(SIMDE_ARM_NEON_A32V8_NATIVE) && defined(
SIMDE_ARCH_ARM
_DOTPROD)
return
vdot_u32
(
r
,
a
,
b
);
return
vdot_u32
(
r
,
a
,
b
);
#elif defined(SIMDE_ARM_NEON_A32V7_NATIVE)
#elif defined(SIMDE_ARM_NEON_A32V7_NATIVE)
return
simde_vadd_u32
(
r
,
simde_vmovn_u64
(
simde_vpaddlq_u32
(
simde_vpaddlq_u16
(
simde_vmull_u8
(
a
,
b
)))));
return
simde_vadd_u32
(
r
,
simde_vmovn_u64
(
simde_vpaddlq_u32
(
simde_vpaddlq_u16
(
simde_vmull_u8
(
a
,
b
)))));
...
@@ -105,7 +105,7 @@ simde_vdot_u32(simde_uint32x2_t r, simde_uint8x8_t a, simde_uint8x8_t b) {
...
@@ -105,7 +105,7 @@ simde_vdot_u32(simde_uint32x2_t r, simde_uint8x8_t a, simde_uint8x8_t b) {
SIMDE_FUNCTION_ATTRIBUTES
SIMDE_FUNCTION_ATTRIBUTES
simde_int32x4_t
simde_int32x4_t
simde_vdotq_s32
(
simde_int32x4_t
r
,
simde_int8x16_t
a
,
simde_int8x16_t
b
)
{
simde_vdotq_s32
(
simde_int32x4_t
r
,
simde_int8x16_t
a
,
simde_int8x16_t
b
)
{
#if defined(SIMDE_ARM_NEON_A32V8_NATIVE) && defined(
__ARM_FEATURE
_DOTPROD)
#if defined(SIMDE_ARM_NEON_A32V8_NATIVE) && defined(
SIMDE_ARCH_ARM
_DOTPROD)
return
vdotq_s32
(
r
,
a
,
b
);
return
vdotq_s32
(
r
,
a
,
b
);
#elif defined(SIMDE_ARM_NEON_A32V7_NATIVE)
#elif defined(SIMDE_ARM_NEON_A32V7_NATIVE)
return
simde_vaddq_s32
(
r
,
return
simde_vaddq_s32
(
r
,
...
@@ -136,7 +136,7 @@ simde_vdotq_s32(simde_int32x4_t r, simde_int8x16_t a, simde_int8x16_t b) {
...
@@ -136,7 +136,7 @@ simde_vdotq_s32(simde_int32x4_t r, simde_int8x16_t a, simde_int8x16_t b) {
SIMDE_FUNCTION_ATTRIBUTES
SIMDE_FUNCTION_ATTRIBUTES
simde_uint32x4_t
simde_uint32x4_t
simde_vdotq_u32
(
simde_uint32x4_t
r
,
simde_uint8x16_t
a
,
simde_uint8x16_t
b
)
{
simde_vdotq_u32
(
simde_uint32x4_t
r
,
simde_uint8x16_t
a
,
simde_uint8x16_t
b
)
{
#if defined(SIMDE_ARM_NEON_A32V8_NATIVE) && defined(
__ARM_FEATURE
_DOTPROD)
#if defined(SIMDE_ARM_NEON_A32V8_NATIVE) && defined(
SIMDE_ARCH_ARM
_DOTPROD)
return
vdotq_u32
(
r
,
a
,
b
);
return
vdotq_u32
(
r
,
a
,
b
);
#elif defined(SIMDE_ARM_NEON_A32V7_NATIVE)
#elif defined(SIMDE_ARM_NEON_A32V7_NATIVE)
return
simde_vaddq_u32
(
r
,
return
simde_vaddq_u32
(
r
,
...
@@ -194,7 +194,7 @@ simde_vbfdot_f32(simde_float32x2_t r, simde_bfloat16x4_t a, simde_bfloat16x4_t b
...
@@ -194,7 +194,7 @@ simde_vbfdot_f32(simde_float32x2_t r, simde_bfloat16x4_t a, simde_bfloat16x4_t b
SIMDE_FUNCTION_ATTRIBUTES
SIMDE_FUNCTION_ATTRIBUTES
simde_float32x4_t
simde_float32x4_t
simde_vbfdotq_f32
(
simde_float32x4_t
r
,
simde_bfloat16x8_t
a
,
simde_bfloat16x8_t
b
)
{
simde_vbfdotq_f32
(
simde_float32x4_t
r
,
simde_bfloat16x8_t
a
,
simde_bfloat16x8_t
b
)
{
#if defined(SIMDE_ARM_NEON_A32V8_NATIVE) && defined(
__ARM_FEATURE
_DOTPROD) && \
#if defined(SIMDE_ARM_NEON_A32V8_NATIVE) && defined(
SIMDE_ARCH_ARM
_DOTPROD) && \
defined(SIMDE_ARM_NEON_BF16)
defined(SIMDE_ARM_NEON_BF16)
return
vbfdotq_f32
(
r
,
a
,
b
);
return
vbfdotq_f32
(
r
,
a
,
b
);
#else
#else
...
...
arm/neon/dot_lane.h
View file @
b5835922
...
@@ -45,7 +45,7 @@ simde_int32x2_t
...
@@ -45,7 +45,7 @@ simde_int32x2_t
simde_vdot_lane_s32
(
simde_int32x2_t
r
,
simde_int8x8_t
a
,
simde_int8x8_t
b
,
const
int
lane
)
simde_vdot_lane_s32
(
simde_int32x2_t
r
,
simde_int8x8_t
a
,
simde_int8x8_t
b
,
const
int
lane
)
SIMDE_REQUIRE_CONSTANT_RANGE
(
lane
,
0
,
1
)
{
SIMDE_REQUIRE_CONSTANT_RANGE
(
lane
,
0
,
1
)
{
simde_int32x2_t
result
;
simde_int32x2_t
result
;
#if defined(SIMDE_ARM_NEON_A64V8_NATIVE) && defined(
__ARM_FEATURE
_DOTPROD)
#if defined(SIMDE_ARM_NEON_A64V8_NATIVE) && defined(
SIMDE_ARCH_ARM
_DOTPROD)
SIMDE_CONSTIFY_2_
(
vdot_lane_s32
,
result
,
(
HEDLEY_UNREACHABLE
(),
result
),
lane
,
r
,
a
,
b
);
SIMDE_CONSTIFY_2_
(
vdot_lane_s32
,
result
,
(
HEDLEY_UNREACHABLE
(),
result
),
lane
,
r
,
a
,
b
);
#elif defined(SIMDE_ARM_NEON_A32V7_NATIVE)
#elif defined(SIMDE_ARM_NEON_A32V7_NATIVE)
simde_int32x2_t
simde_int32x2_t
...
@@ -96,7 +96,7 @@ simde_uint32x2_t
...
@@ -96,7 +96,7 @@ simde_uint32x2_t
simde_vdot_lane_u32
(
simde_uint32x2_t
r
,
simde_uint8x8_t
a
,
simde_uint8x8_t
b
,
const
int
lane
)
simde_vdot_lane_u32
(
simde_uint32x2_t
r
,
simde_uint8x8_t
a
,
simde_uint8x8_t
b
,
const
int
lane
)
SIMDE_REQUIRE_CONSTANT_RANGE
(
lane
,
0
,
1
)
{
SIMDE_REQUIRE_CONSTANT_RANGE
(
lane
,
0
,
1
)
{
simde_uint32x2_t
result
;
simde_uint32x2_t
result
;
#if defined(SIMDE_ARM_NEON_A64V8_NATIVE) && defined(
__ARM_FEATURE
_DOTPROD)
#if defined(SIMDE_ARM_NEON_A64V8_NATIVE) && defined(
SIMDE_ARCH_ARM
_DOTPROD)
SIMDE_CONSTIFY_2_
(
vdot_lane_u32
,
result
,
(
HEDLEY_UNREACHABLE
(),
result
),
lane
,
r
,
a
,
b
);
SIMDE_CONSTIFY_2_
(
vdot_lane_u32
,
result
,
(
HEDLEY_UNREACHABLE
(),
result
),
lane
,
r
,
a
,
b
);
#elif defined(SIMDE_ARM_NEON_A32V7_NATIVE)
#elif defined(SIMDE_ARM_NEON_A32V7_NATIVE)
simde_uint32x2_t
simde_uint32x2_t
...
@@ -147,7 +147,7 @@ simde_int32x2_t
...
@@ -147,7 +147,7 @@ simde_int32x2_t
simde_vdot_laneq_s32
(
simde_int32x2_t
r
,
simde_int8x8_t
a
,
simde_int8x16_t
b
,
const
int
lane
)
simde_vdot_laneq_s32
(
simde_int32x2_t
r
,
simde_int8x8_t
a
,
simde_int8x16_t
b
,
const
int
lane
)
SIMDE_REQUIRE_CONSTANT_RANGE
(
lane
,
0
,
3
)
{
SIMDE_REQUIRE_CONSTANT_RANGE
(
lane
,
0
,
3
)
{
simde_int32x2_t
result
;
simde_int32x2_t
result
;
#if defined(SIMDE_ARM_NEON_A64V8_NATIVE) && defined(
__ARM_FEATURE
_DOTPROD)
#if defined(SIMDE_ARM_NEON_A64V8_NATIVE) && defined(
SIMDE_ARCH_ARM
_DOTPROD)
SIMDE_CONSTIFY_4_
(
vdot_laneq_s32
,
result
,
(
HEDLEY_UNREACHABLE
(),
result
),
lane
,
r
,
a
,
b
);
SIMDE_CONSTIFY_4_
(
vdot_laneq_s32
,
result
,
(
HEDLEY_UNREACHABLE
(),
result
),
lane
,
r
,
a
,
b
);
#elif defined(SIMDE_ARM_NEON_A32V7_NATIVE)
#elif defined(SIMDE_ARM_NEON_A32V7_NATIVE)
simde_int32x2_t
b_lane
;
simde_int32x2_t
b_lane
;
...
@@ -196,7 +196,7 @@ simde_uint32x2_t
...
@@ -196,7 +196,7 @@ simde_uint32x2_t
simde_vdot_laneq_u32
(
simde_uint32x2_t
r
,
simde_uint8x8_t
a
,
simde_uint8x16_t
b
,
const
int
lane
)
simde_vdot_laneq_u32
(
simde_uint32x2_t
r
,
simde_uint8x8_t
a
,
simde_uint8x16_t
b
,
const
int
lane
)
SIMDE_REQUIRE_CONSTANT_RANGE
(
lane
,
0
,
3
)
{
SIMDE_REQUIRE_CONSTANT_RANGE
(
lane
,
0
,
3
)
{
simde_uint32x2_t
result
;
simde_uint32x2_t
result
;
#if defined(SIMDE_ARM_NEON_A64V8_NATIVE) && defined(
__ARM_FEATURE
_DOTPROD)
#if defined(SIMDE_ARM_NEON_A64V8_NATIVE) && defined(
SIMDE_ARCH_ARM
_DOTPROD)
SIMDE_CONSTIFY_4_
(
vdot_laneq_u32
,
result
,
(
HEDLEY_UNREACHABLE
(),
result
),
lane
,
r
,
a
,
b
);
SIMDE_CONSTIFY_4_
(
vdot_laneq_u32
,
result
,
(
HEDLEY_UNREACHABLE
(),
result
),
lane
,
r
,
a
,
b
);
#elif defined(SIMDE_ARM_NEON_A32V7_NATIVE)
#elif defined(SIMDE_ARM_NEON_A32V7_NATIVE)
simde_uint32x2_t
b_lane
;
simde_uint32x2_t
b_lane
;
...
@@ -244,7 +244,7 @@ simde_uint32x4_t
...
@@ -244,7 +244,7 @@ simde_uint32x4_t
simde_vdotq_laneq_u32
(
simde_uint32x4_t
r
,
simde_uint8x16_t
a
,
simde_uint8x16_t
b
,
const
int
lane
)
simde_vdotq_laneq_u32
(
simde_uint32x4_t
r
,
simde_uint8x16_t
a
,
simde_uint8x16_t
b
,
const
int
lane
)
SIMDE_REQUIRE_CONSTANT_RANGE
(
lane
,
0
,
3
)
{
SIMDE_REQUIRE_CONSTANT_RANGE
(
lane
,
0
,
3
)
{
simde_uint32x4_t
result
;
simde_uint32x4_t
result
;
#if defined(SIMDE_ARM_NEON_A64V8_NATIVE) && defined(
__ARM_FEATURE
_DOTPROD)
#if defined(SIMDE_ARM_NEON_A64V8_NATIVE) && defined(
SIMDE_ARCH_ARM
_DOTPROD)
SIMDE_CONSTIFY_4_
(
vdotq_laneq_u32
,
result
,
(
HEDLEY_UNREACHABLE
(),
result
),
lane
,
r
,
a
,
b
);
SIMDE_CONSTIFY_4_
(
vdotq_laneq_u32
,
result
,
(
HEDLEY_UNREACHABLE
(),
result
),
lane
,
r
,
a
,
b
);
#elif defined(SIMDE_ARM_NEON_A32V7_NATIVE)
#elif defined(SIMDE_ARM_NEON_A32V7_NATIVE)
simde_uint32x4_t
simde_uint32x4_t
...
@@ -306,7 +306,7 @@ simde_int32x4_t
...
@@ -306,7 +306,7 @@ simde_int32x4_t
simde_vdotq_laneq_s32
(
simde_int32x4_t
r
,
simde_int8x16_t
a
,
simde_int8x16_t
b
,
const
int
lane
)
simde_vdotq_laneq_s32
(
simde_int32x4_t
r
,
simde_int8x16_t
a
,
simde_int8x16_t
b
,
const
int
lane
)
SIMDE_REQUIRE_CONSTANT_RANGE
(
lane
,
0
,
3
)
{
SIMDE_REQUIRE_CONSTANT_RANGE
(
lane
,
0
,
3
)
{
simde_int32x4_t
result
;
simde_int32x4_t
result
;
#if defined(SIMDE_ARM_NEON_A64V8_NATIVE) && defined(
__ARM_FEATURE
_DOTPROD)
#if defined(SIMDE_ARM_NEON_A64V8_NATIVE) && defined(
SIMDE_ARCH_ARM
_DOTPROD)
SIMDE_CONSTIFY_4_
(
vdotq_laneq_s32
,
result
,
(
HEDLEY_UNREACHABLE
(),
result
),
lane
,
r
,
a
,
b
);
SIMDE_CONSTIFY_4_
(
vdotq_laneq_s32
,
result
,
(
HEDLEY_UNREACHABLE
(),
result
),
lane
,
r
,
a
,
b
);
#elif defined(SIMDE_ARM_NEON_A32V7_NATIVE)
#elif defined(SIMDE_ARM_NEON_A32V7_NATIVE)
simde_int32x4_t
simde_int32x4_t
...
@@ -368,7 +368,7 @@ simde_uint32x4_t
...
@@ -368,7 +368,7 @@ simde_uint32x4_t
simde_vdotq_lane_u32
(
simde_uint32x4_t
r
,
simde_uint8x16_t
a
,
simde_uint8x8_t
b
,
const
int
lane
)
simde_vdotq_lane_u32
(
simde_uint32x4_t
r
,
simde_uint8x16_t
a
,
simde_uint8x8_t
b
,
const
int
lane
)
SIMDE_REQUIRE_CONSTANT_RANGE
(
lane
,
0
,
1
)
{
SIMDE_REQUIRE_CONSTANT_RANGE
(
lane
,
0
,
1
)
{
simde_uint32x4_t
result
;
simde_uint32x4_t
result
;
#if defined(SIMDE_ARM_NEON_A64V8_NATIVE) && defined(
__ARM_FEATURE
_DOTPROD)
#if defined(SIMDE_ARM_NEON_A64V8_NATIVE) && defined(
SIMDE_ARCH_ARM
_DOTPROD)
SIMDE_CONSTIFY_2_
(
vdotq_lane_u32
,
result
,
(
HEDLEY_UNREACHABLE
(),
result
),
lane
,
r
,
a
,
b
);
SIMDE_CONSTIFY_2_
(
vdotq_lane_u32
,
result
,
(
HEDLEY_UNREACHABLE
(),
result
),
lane
,
r
,
a
,
b
);
#elif defined(SIMDE_ARM_NEON_A32V7_NATIVE)
#elif defined(SIMDE_ARM_NEON_A32V7_NATIVE)
simde_uint32x2_t
simde_uint32x2_t
...
@@ -429,7 +429,7 @@ simde_int32x4_t
...
@@ -429,7 +429,7 @@ simde_int32x4_t
simde_vdotq_lane_s32
(
simde_int32x4_t
r
,
simde_int8x16_t
a
,
simde_int8x8_t
b
,
const
int
lane
)
simde_vdotq_lane_s32
(
simde_int32x4_t
r
,
simde_int8x16_t
a
,
simde_int8x8_t
b
,
const
int
lane
)
SIMDE_REQUIRE_CONSTANT_RANGE
(
lane
,
0
,
1
)
{
SIMDE_REQUIRE_CONSTANT_RANGE
(
lane
,
0
,
1
)
{
simde_int32x4_t
result
;
simde_int32x4_t
result
;
#if defined(SIMDE_ARM_NEON_A64V8_NATIVE) && defined(
__ARM_FEATURE
_DOTPROD)
#if defined(SIMDE_ARM_NEON_A64V8_NATIVE) && defined(
SIMDE_ARCH_ARM
_DOTPROD)
SIMDE_CONSTIFY_2_
(
vdotq_lane_s32
,
result
,
(
HEDLEY_UNREACHABLE
(),
result
),
lane
,
r
,
a
,
b
);
SIMDE_CONSTIFY_2_
(
vdotq_lane_s32
,
result
,
(
HEDLEY_UNREACHABLE
(),
result
),
lane
,
r
,
a
,
b
);
#elif defined(SIMDE_ARM_NEON_A32V7_NATIVE)
#elif defined(SIMDE_ARM_NEON_A32V7_NATIVE)
simde_int32x2_t
simde_int32x2_t
...
@@ -490,7 +490,7 @@ simde_float32x2_t
...
@@ -490,7 +490,7 @@ simde_float32x2_t
simde_vbfdot_lane_f32
(
simde_float32x2_t
r
,
simde_bfloat16x4_t
a
,
simde_bfloat16x4_t
b
,
const
int
lane
)
simde_vbfdot_lane_f32
(
simde_float32x2_t
r
,
simde_bfloat16x4_t
a
,
simde_bfloat16x4_t
b
,
const
int
lane
)
SIMDE_REQUIRE_CONSTANT_RANGE
(
lane
,
0
,
1
)
{
SIMDE_REQUIRE_CONSTANT_RANGE
(
lane
,
0
,
1
)
{
simde_float32x2_t
result
;
simde_float32x2_t
result
;
#if defined(SIMDE_ARM_NEON_A32V8_NATIVE) && defined(
__ARM_FEATURE
_DOTPROD) && \
#if defined(SIMDE_ARM_NEON_A32V8_NATIVE) && defined(
SIMDE_ARCH_ARM
_DOTPROD) && \
defined(SIMDE_ARM_NEON_BF16)
defined(SIMDE_ARM_NEON_BF16)
SIMDE_CONSTIFY_2_
(
vbfdot_lane_f32
,
result
,
(
HEDLEY_UNREACHABLE
(),
result
),
lane
,
r
,
a
,
b
);
SIMDE_CONSTIFY_2_
(
vbfdot_lane_f32
,
result
,
(
HEDLEY_UNREACHABLE
(),
result
),
lane
,
r
,
a
,
b
);
#else
#else
...
@@ -522,7 +522,7 @@ simde_float32x4_t
...
@@ -522,7 +522,7 @@ simde_float32x4_t
simde_vbfdotq_lane_f32
(
simde_float32x4_t
r
,
simde_bfloat16x8_t
a
,
simde_bfloat16x4_t
b
,
const
int
lane
)
simde_vbfdotq_lane_f32
(
simde_float32x4_t
r
,
simde_bfloat16x8_t
a
,
simde_bfloat16x4_t
b
,
const
int
lane
)
SIMDE_REQUIRE_CONSTANT_RANGE
(
lane
,
0
,
1
)
{
SIMDE_REQUIRE_CONSTANT_RANGE
(
lane
,
0
,
1
)
{
simde_float32x4_t
result
;
simde_float32x4_t
result
;
#if defined(SIMDE_ARM_NEON_A32V8_NATIVE) && defined(
__ARM_FEATURE
_DOTPROD) && \
#if defined(SIMDE_ARM_NEON_A32V8_NATIVE) && defined(
SIMDE_ARCH_ARM
_DOTPROD) && \
defined(SIMDE_ARM_NEON_BF16)
defined(SIMDE_ARM_NEON_BF16)
SIMDE_CONSTIFY_2_
(
vbfdotq_lane_f32
,
result
,
(
HEDLEY_UNREACHABLE
(),
result
),
lane
,
r
,
a
,
b
);
SIMDE_CONSTIFY_2_
(
vbfdotq_lane_f32
,
result
,
(
HEDLEY_UNREACHABLE
(),
result
),
lane
,
r
,
a
,
b
);
#else
#else
...
@@ -553,7 +553,7 @@ simde_float32x2_t
...
@@ -553,7 +553,7 @@ simde_float32x2_t
simde_vbfdot_laneq_f32
(
simde_float32x2_t
r
,
simde_bfloat16x4_t
a
,
simde_bfloat16x8_t
b
,
const
int
lane
)
simde_vbfdot_laneq_f32
(
simde_float32x2_t
r
,
simde_bfloat16x4_t
a
,
simde_bfloat16x8_t
b
,
const
int
lane
)
SIMDE_REQUIRE_CONSTANT_RANGE
(
lane
,
0
,
3
)
{
SIMDE_REQUIRE_CONSTANT_RANGE
(
lane
,
0
,
3
)
{
simde_float32x2_t
result
;
simde_float32x2_t
result
;
#if defined(SIMDE_ARM_NEON_A32V8_NATIVE) && defined(
__ARM_FEATURE
_DOTPROD) && \
#if defined(SIMDE_ARM_NEON_A32V8_NATIVE) && defined(
SIMDE_ARCH_ARM
_DOTPROD) && \
defined(SIMDE_ARM_NEON_BF16)
defined(SIMDE_ARM_NEON_BF16)
SIMDE_CONSTIFY_4_
(
vbfdot_laneq_f32
,
result
,
(
HEDLEY_UNREACHABLE
(),
result
),
lane
,
r
,
a
,
b
);
SIMDE_CONSTIFY_4_
(
vbfdot_laneq_f32
,
result
,
(
HEDLEY_UNREACHABLE
(),
result
),
lane
,
r
,
a
,
b
);
#else
#else
...
@@ -584,7 +584,7 @@ simde_float32x4_t
...
@@ -584,7 +584,7 @@ simde_float32x4_t
simde_vbfdotq_laneq_f32
(
simde_float32x4_t
r
,
simde_bfloat16x8_t
a
,
simde_bfloat16x8_t
b
,
const
int
lane
)
simde_vbfdotq_laneq_f32
(
simde_float32x4_t
r
,
simde_bfloat16x8_t
a
,
simde_bfloat16x8_t
b
,
const
int
lane
)
SIMDE_REQUIRE_CONSTANT_RANGE
(
lane
,
0
,
3
)
{
SIMDE_REQUIRE_CONSTANT_RANGE
(
lane
,
0
,
3
)
{
simde_float32x4_t
result
;
simde_float32x4_t
result
;
#if defined(SIMDE_ARM_NEON_A32V8_NATIVE) && defined(
__ARM_FEATURE
_DOTPROD) && \
#if defined(SIMDE_ARM_NEON_A32V8_NATIVE) && defined(
SIMDE_ARCH_ARM
_DOTPROD) && \
defined(SIMDE_ARM_NEON_BF16)
defined(SIMDE_ARM_NEON_BF16)
SIMDE_CONSTIFY_4_
(
vbfdotq_laneq_f32
,
result
,
(
HEDLEY_UNREACHABLE
(),
result
),
lane
,
r
,
a
,
b
);
SIMDE_CONSTIFY_4_
(
vbfdotq_laneq_f32
,
result
,
(
HEDLEY_UNREACHABLE
(),
result
),
lane
,
r
,
a
,
b
);
#else
#else
...
...
arm/neon/eor.h
View file @
b5835922
...
@@ -551,7 +551,7 @@ simde_veorq_u64(simde_uint64x2_t a, simde_uint64x2_t b) {
...
@@ -551,7 +551,7 @@ simde_veorq_u64(simde_uint64x2_t a, simde_uint64x2_t b) {
SIMDE_FUNCTION_ATTRIBUTES
SIMDE_FUNCTION_ATTRIBUTES
simde_int8x16_t
simde_int8x16_t
simde_veor3q_s8
(
simde_int8x16_t
a
,
simde_int8x16_t
b
,
simde_int8x16_t
c
)
{
simde_veor3q_s8
(
simde_int8x16_t
a
,
simde_int8x16_t
b
,
simde_int8x16_t
c
)
{
#if defined(SIMDE_ARM_NEON_A64V8_NATIVE) && defined(
__ARM_FEATURE
_SHA3)
#if defined(SIMDE_ARM_NEON_A64V8_NATIVE) && defined(
SIMDE_ARCH_ARM
_SHA3)
return
veor3q_s8
(
a
,
b
,
c
);
return
veor3q_s8
(
a
,
b
,
c
);
#else
#else
simde_int8x16_private
simde_int8x16_private
...
@@ -576,7 +576,7 @@ simde_veor3q_s8(simde_int8x16_t a, simde_int8x16_t b, simde_int8x16_t c) {
...
@@ -576,7 +576,7 @@ simde_veor3q_s8(simde_int8x16_t a, simde_int8x16_t b, simde_int8x16_t c) {
SIMDE_FUNCTION_ATTRIBUTES
SIMDE_FUNCTION_ATTRIBUTES
simde_int16x8_t
simde_int16x8_t
simde_veor3q_s16
(
simde_int16x8_t
a
,
simde_int16x8_t
b
,
simde_int16x8_t
c
)
{
simde_veor3q_s16
(
simde_int16x8_t
a
,
simde_int16x8_t
b
,
simde_int16x8_t
c
)
{
#if defined(SIMDE_ARM_NEON_A64V8_NATIVE) && defined(
__ARM_FEATURE
_SHA3)
#if defined(SIMDE_ARM_NEON_A64V8_NATIVE) && defined(
SIMDE_ARCH_ARM
_SHA3)
return
veor3q_s16
(
a
,
b
,
c
);
return
veor3q_s16
(
a
,
b
,
c
);
#else
#else
simde_int16x8_private
simde_int16x8_private
...
@@ -601,7 +601,7 @@ simde_veor3q_s16(simde_int16x8_t a, simde_int16x8_t b, simde_int16x8_t c) {
...
@@ -601,7 +601,7 @@ simde_veor3q_s16(simde_int16x8_t a, simde_int16x8_t b, simde_int16x8_t c) {
SIMDE_FUNCTION_ATTRIBUTES
SIMDE_FUNCTION_ATTRIBUTES
simde_int32x4_t
simde_int32x4_t
simde_veor3q_s32
(
simde_int32x4_t
a
,
simde_int32x4_t
b
,
simde_int32x4_t
c
)
{
simde_veor3q_s32
(
simde_int32x4_t
a
,
simde_int32x4_t
b
,
simde_int32x4_t
c
)
{
#if defined(SIMDE_ARM_NEON_A64V8_NATIVE) && defined(
__ARM_FEATURE
_SHA3)
#if defined(SIMDE_ARM_NEON_A64V8_NATIVE) && defined(
SIMDE_ARCH_ARM
_SHA3)
return
veor3q_s32
(
a
,
b
,
c
);
return
veor3q_s32
(
a
,
b
,
c
);
#else
#else
simde_int32x4_private
simde_int32x4_private
...
@@ -626,7 +626,7 @@ simde_veor3q_s32(simde_int32x4_t a, simde_int32x4_t b, simde_int32x4_t c) {
...
@@ -626,7 +626,7 @@ simde_veor3q_s32(simde_int32x4_t a, simde_int32x4_t b, simde_int32x4_t c) {
SIMDE_FUNCTION_ATTRIBUTES
SIMDE_FUNCTION_ATTRIBUTES
simde_int64x2_t
simde_int64x2_t
simde_veor3q_s64
(
simde_int64x2_t
a
,
simde_int64x2_t
b
,
simde_int64x2_t
c
)
{
simde_veor3q_s64
(
simde_int64x2_t
a
,
simde_int64x2_t
b
,
simde_int64x2_t
c
)
{
#if defined(SIMDE_ARM_NEON_A64V8_NATIVE) && defined(
__ARM_FEATURE
_SHA3)
#if defined(SIMDE_ARM_NEON_A64V8_NATIVE) && defined(
SIMDE_ARCH_ARM
_SHA3)
return
veor3q_s64
(
a
,
b
,
c
);
return
veor3q_s64
(
a
,
b
,
c
);
#else
#else
simde_int64x2_private
simde_int64x2_private
...
@@ -651,7 +651,7 @@ simde_veor3q_s64(simde_int64x2_t a, simde_int64x2_t b, simde_int64x2_t c) {
...
@@ -651,7 +651,7 @@ simde_veor3q_s64(simde_int64x2_t a, simde_int64x2_t b, simde_int64x2_t c) {
SIMDE_FUNCTION_ATTRIBUTES
SIMDE_FUNCTION_ATTRIBUTES
simde_uint8x16_t
simde_uint8x16_t
simde_veor3q_u8
(
simde_uint8x16_t
a
,
simde_uint8x16_t
b
,
simde_uint8x16_t
c
)
{
simde_veor3q_u8
(
simde_uint8x16_t
a
,
simde_uint8x16_t
b
,
simde_uint8x16_t
c
)
{
#if defined(SIMDE_ARM_NEON_A64V8_NATIVE) && defined(
__ARM_FEATURE
_SHA3)
#if defined(SIMDE_ARM_NEON_A64V8_NATIVE) && defined(
SIMDE_ARCH_ARM
_SHA3)
return
veor3q_u8
(
a
,
b
,
c
);
return
veor3q_u8
(
a
,
b
,
c
);
#else
#else
simde_uint8x16_private
simde_uint8x16_private
...
@@ -676,7 +676,7 @@ simde_veor3q_u8(simde_uint8x16_t a, simde_uint8x16_t b, simde_uint8x16_t c) {
...
@@ -676,7 +676,7 @@ simde_veor3q_u8(simde_uint8x16_t a, simde_uint8x16_t b, simde_uint8x16_t c) {
SIMDE_FUNCTION_ATTRIBUTES
SIMDE_FUNCTION_ATTRIBUTES
simde_uint16x8_t
simde_uint16x8_t
simde_veor3q_u16
(
simde_uint16x8_t
a
,
simde_uint16x8_t
b
,
simde_uint16x8_t
c
)
{
simde_veor3q_u16
(
simde_uint16x8_t
a
,
simde_uint16x8_t
b
,
simde_uint16x8_t
c
)
{
#if defined(SIMDE_ARM_NEON_A64V8_NATIVE) && defined(
__ARM_FEATURE
_SHA3)
#if defined(SIMDE_ARM_NEON_A64V8_NATIVE) && defined(
SIMDE_ARCH_ARM
_SHA3)
return
veor3q_u16
(
a
,
b
,
c
);
return
veor3q_u16
(
a
,
b
,
c
);
#else
#else
simde_uint16x8_private
simde_uint16x8_private
...
@@ -701,7 +701,7 @@ simde_veor3q_u16(simde_uint16x8_t a, simde_uint16x8_t b, simde_uint16x8_t c) {
...
@@ -701,7 +701,7 @@ simde_veor3q_u16(simde_uint16x8_t a, simde_uint16x8_t b, simde_uint16x8_t c) {
SIMDE_FUNCTION_ATTRIBUTES
SIMDE_FUNCTION_ATTRIBUTES
simde_uint32x4_t
simde_uint32x4_t
simde_veor3q_u32
(
simde_uint32x4_t
a
,
simde_uint32x4_t
b
,
simde_uint32x4_t
c
)
{
simde_veor3q_u32
(
simde_uint32x4_t
a
,
simde_uint32x4_t
b
,
simde_uint32x4_t
c
)
{
#if defined(SIMDE_ARM_NEON_A64V8_NATIVE) && defined(
__ARM_FEATURE
_SHA3)
#if defined(SIMDE_ARM_NEON_A64V8_NATIVE) && defined(
SIMDE_ARCH_ARM
_SHA3)
return
veor3q_u32
(
a
,
b
,
c
);
return
veor3q_u32
(
a
,
b
,
c
);
#else
#else
simde_uint32x4_private
simde_uint32x4_private
...
@@ -726,7 +726,7 @@ simde_veor3q_u32(simde_uint32x4_t a, simde_uint32x4_t b, simde_uint32x4_t c) {
...
@@ -726,7 +726,7 @@ simde_veor3q_u32(simde_uint32x4_t a, simde_uint32x4_t b, simde_uint32x4_t c) {
SIMDE_FUNCTION_ATTRIBUTES
SIMDE_FUNCTION_ATTRIBUTES
simde_uint64x2_t
simde_uint64x2_t
simde_veor3q_u64
(
simde_uint64x2_t
a
,
simde_uint64x2_t
b
,
simde_uint64x2_t
c
)
{
simde_veor3q_u64
(
simde_uint64x2_t
a
,
simde_uint64x2_t
b
,
simde_uint64x2_t
c
)
{
#if defined(SIMDE_ARM_NEON_A64V8_NATIVE) && defined(
__ARM_FEATURE
_SHA3)
#if defined(SIMDE_ARM_NEON_A64V8_NATIVE) && defined(
SIMDE_ARCH_ARM
_SHA3)
return
veor3q_u64
(
a
,
b
,
c
);
return
veor3q_u64
(
a
,
b
,
c
);
#else
#else
simde_uint64x2_private
simde_uint64x2_private
...
...
arm/neon/fmlal.h
View file @
b5835922
...
@@ -37,7 +37,7 @@ SIMDE_FUNCTION_ATTRIBUTES
...
@@ -37,7 +37,7 @@ SIMDE_FUNCTION_ATTRIBUTES
simde_float32x2_t
simde_float32x2_t
simde_vfmlal_low_f16
(
simde_float32x2_t
r
,
simde_float16x4_t
a
,
simde_float16x4_t
b
)
{
simde_vfmlal_low_f16
(
simde_float32x2_t
r
,
simde_float16x4_t
a
,
simde_float16x4_t
b
)
{
#if defined(SIMDE_ARM_NEON_A32V8_NATIVE) && defined(SIMDE_ARM_NEON_FP16) && \
#if defined(SIMDE_ARM_NEON_A32V8_NATIVE) && defined(SIMDE_ARM_NEON_FP16) && \
defined(
__ARM_FEATURE
_FP16_FML)
defined(
SIMDE_ARCH_ARM
_FP16_FML)
return
vfmlal_low_f16
(
r
,
a
,
b
);
return
vfmlal_low_f16
(
r
,
a
,
b
);
#else
#else
simde_float32x2_private
simde_float32x2_private
...
@@ -64,7 +64,7 @@ SIMDE_FUNCTION_ATTRIBUTES
...
@@ -64,7 +64,7 @@ SIMDE_FUNCTION_ATTRIBUTES
simde_float32x4_t
simde_float32x4_t
simde_vfmlalq_low_f16
(
simde_float32x4_t
r
,
simde_float16x8_t
a
,
simde_float16x8_t
b
)
{
simde_vfmlalq_low_f16
(
simde_float32x4_t
r
,
simde_float16x8_t
a
,
simde_float16x8_t
b
)
{
#if defined(SIMDE_ARM_NEON_A32V8_NATIVE) && defined(SIMDE_ARM_NEON_FP16) && \
#if defined(SIMDE_ARM_NEON_A32V8_NATIVE) && defined(SIMDE_ARM_NEON_FP16) && \
defined(
__ARM_FEATURE
_FP16_FML)
defined(
SIMDE_ARCH_ARM
_FP16_FML)
return
vfmlalq_low_f16
(
r
,
a
,
b
);
return
vfmlalq_low_f16
(
r
,
a
,
b
);
#else
#else
simde_float32x4_private
simde_float32x4_private
...
@@ -91,7 +91,7 @@ SIMDE_FUNCTION_ATTRIBUTES
...
@@ -91,7 +91,7 @@ SIMDE_FUNCTION_ATTRIBUTES
simde_float32x2_t
simde_float32x2_t
simde_vfmlal_high_f16
(
simde_float32x2_t
r
,
simde_float16x4_t
a
,
simde_float16x4_t
b
)
{
simde_vfmlal_high_f16
(
simde_float32x2_t
r
,
simde_float16x4_t
a
,
simde_float16x4_t
b
)
{
#if defined(SIMDE_ARM_NEON_A32V8_NATIVE) && defined(SIMDE_ARM_NEON_FP16) && \
#if defined(SIMDE_ARM_NEON_A32V8_NATIVE) && defined(SIMDE_ARM_NEON_FP16) && \
defined(
__ARM_FEATURE
_FP16_FML)
defined(
SIMDE_ARCH_ARM
_FP16_FML)
return
vfmlal_high_f16
(
r
,
a
,
b
);
return
vfmlal_high_f16
(
r
,
a
,
b
);
#else
#else
simde_float32x2_private
simde_float32x2_private
...
@@ -119,7 +119,7 @@ SIMDE_FUNCTION_ATTRIBUTES
...
@@ -119,7 +119,7 @@ SIMDE_FUNCTION_ATTRIBUTES
simde_float32x4_t
simde_float32x4_t
simde_vfmlalq_high_f16
(
simde_float32x4_t
r
,
simde_float16x8_t
a
,
simde_float16x8_t
b
)
{
simde_vfmlalq_high_f16
(
simde_float32x4_t
r
,
simde_float16x8_t
a
,
simde_float16x8_t
b
)
{
#if defined(SIMDE_ARM_NEON_A32V8_NATIVE) && defined(SIMDE_ARM_NEON_FP16) && \
#if defined(SIMDE_ARM_NEON_A32V8_NATIVE) && defined(SIMDE_ARM_NEON_FP16) && \
defined(
__ARM_FEATURE
_FP16_FML)
defined(
SIMDE_ARCH_ARM
_FP16_FML)
return
vfmlalq_high_f16
(
r
,
a
,
b
);
return
vfmlalq_high_f16
(
r
,
a
,
b
);
#else
#else
simde_float32x4_private
simde_float32x4_private
...
@@ -162,7 +162,7 @@ simde_vfmlal_lane_low_f16(simde_float32x2_t r, simde_float16x4_t a, simde_float1
...
@@ -162,7 +162,7 @@ simde_vfmlal_lane_low_f16(simde_float32x2_t r, simde_float16x4_t a, simde_float1
return
simde_float32x2_from_private
(
ret_
);
return
simde_float32x2_from_private
(
ret_
);
}
}
#if defined(SIMDE_ARM_NEON_A32V8_NATIVE) && defined(SIMDE_ARM_NEON_FP16) && \
#if defined(SIMDE_ARM_NEON_A32V8_NATIVE) && defined(SIMDE_ARM_NEON_FP16) && \
defined(
__ARM_FEATURE
_FP16_FML)
defined(
SIMDE_ARCH_ARM
_FP16_FML)
#define simde_vfmlal_lane_low_f16(r, a, b, lane) vfmlal_lane_low_f16((r), (a), (b), (lane));
#define simde_vfmlal_lane_low_f16(r, a, b, lane) vfmlal_lane_low_f16((r), (a), (b), (lane));
#endif
#endif
#if defined(SIMDE_ARM_NEON_A32V8_ENABLE_NATIVE_ALIASES)
#if defined(SIMDE_ARM_NEON_A32V8_ENABLE_NATIVE_ALIASES)
...
@@ -190,7 +190,7 @@ simde_vfmlal_laneq_low_f16(simde_float32x2_t r, simde_float16x4_t a, simde_float
...
@@ -190,7 +190,7 @@ simde_vfmlal_laneq_low_f16(simde_float32x2_t r, simde_float16x4_t a, simde_float
return
simde_float32x2_from_private
(
ret_
);
return
simde_float32x2_from_private
(
ret_
);
}
}
#if defined(SIMDE_ARM_NEON_A32V8_NATIVE) && defined(SIMDE_ARM_NEON_FP16) && \
#if defined(SIMDE_ARM_NEON_A32V8_NATIVE) && defined(SIMDE_ARM_NEON_FP16) && \
defined(
__ARM_FEATURE
_FP16_FML)
defined(
SIMDE_ARCH_ARM
_FP16_FML)
#define simde_vfmlal_laneq_low_f16(r, a, b, lane) vfmlal_laneq_low_f16((r), (a), (b), (lane));
#define simde_vfmlal_laneq_low_f16(r, a, b, lane) vfmlal_laneq_low_f16((r), (a), (b), (lane));
#endif
#endif
#if defined(SIMDE_ARM_NEON_A32V8_ENABLE_NATIVE_ALIASES)
#if defined(SIMDE_ARM_NEON_A32V8_ENABLE_NATIVE_ALIASES)
...
@@ -218,7 +218,7 @@ simde_vfmlalq_lane_low_f16(simde_float32x4_t r, simde_float16x8_t a, simde_float
...
@@ -218,7 +218,7 @@ simde_vfmlalq_lane_low_f16(simde_float32x4_t r, simde_float16x8_t a, simde_float
return
simde_float32x4_from_private
(
ret_
);
return
simde_float32x4_from_private
(
ret_
);
}
}
#if defined(SIMDE_ARM_NEON_A32V8_NATIVE) && defined(SIMDE_ARM_NEON_FP16) && \
#if defined(SIMDE_ARM_NEON_A32V8_NATIVE) && defined(SIMDE_ARM_NEON_FP16) && \
defined(
__ARM_FEATURE
_FP16_FML)
defined(
SIMDE_ARCH_ARM
_FP16_FML)
#define simde_vfmlalq_lane_low_f16(r, a, b, lane) vfmlalq_lane_low_f16((r), (a), (b), (lane));
#define simde_vfmlalq_lane_low_f16(r, a, b, lane) vfmlalq_lane_low_f16((r), (a), (b), (lane));
#endif
#endif
#if defined(SIMDE_ARM_NEON_A32V8_ENABLE_NATIVE_ALIASES)
#if defined(SIMDE_ARM_NEON_A32V8_ENABLE_NATIVE_ALIASES)
...
@@ -245,7 +245,7 @@ simde_vfmlalq_laneq_low_f16(simde_float32x4_t r, simde_float16x8_t a, simde_floa
...
@@ -245,7 +245,7 @@ simde_vfmlalq_laneq_low_f16(simde_float32x4_t r, simde_float16x8_t a, simde_floa
return
simde_float32x4_from_private
(
ret_
);
return
simde_float32x4_from_private
(
ret_
);
}
}
#if defined(SIMDE_ARM_NEON_A32V8_NATIVE) && defined(SIMDE_ARM_NEON_FP16) && \
#if defined(SIMDE_ARM_NEON_A32V8_NATIVE) && defined(SIMDE_ARM_NEON_FP16) && \
defined(
__ARM_FEATURE
_FP16_FML)
defined(
SIMDE_ARCH_ARM
_FP16_FML)
#define simde_vfmlalq_laneq_low_f16(r, a, b, lane) vfmlalq_laneq_low_f16((r), (a), (b), (lane));
#define simde_vfmlalq_laneq_low_f16(r, a, b, lane) vfmlalq_laneq_low_f16((r), (a), (b), (lane));
#endif
#endif
#if defined(SIMDE_ARM_NEON_A32V8_ENABLE_NATIVE_ALIASES)
#if defined(SIMDE_ARM_NEON_A32V8_ENABLE_NATIVE_ALIASES)
...
@@ -273,7 +273,7 @@ simde_vfmlal_lane_high_f16(simde_float32x2_t r, simde_float16x4_t a, simde_float
...
@@ -273,7 +273,7 @@ simde_vfmlal_lane_high_f16(simde_float32x2_t r, simde_float16x4_t a, simde_float
return
simde_float32x2_from_private
(
ret_
);
return
simde_float32x2_from_private
(
ret_
);
}
}
#if defined(SIMDE_ARM_NEON_A32V8_NATIVE) && defined(SIMDE_ARM_NEON_FP16) && \
#if defined(SIMDE_ARM_NEON_A32V8_NATIVE) && defined(SIMDE_ARM_NEON_FP16) && \
defined(
__ARM_FEATURE
_FP16_FML)
defined(
SIMDE_ARCH_ARM
_FP16_FML)
#define simde_vfmlal_lane_high_f16(r, a, b, lane) vfmlal_lane_high_f16((r), (a), (b), (lane));
#define simde_vfmlal_lane_high_f16(r, a, b, lane) vfmlal_lane_high_f16((r), (a), (b), (lane));
#endif
#endif
#if defined(SIMDE_ARM_NEON_A32V8_ENABLE_NATIVE_ALIASES)
#if defined(SIMDE_ARM_NEON_A32V8_ENABLE_NATIVE_ALIASES)
...
@@ -302,7 +302,7 @@ simde_vfmlal_laneq_high_f16(simde_float32x2_t r, simde_float16x4_t a, simde_floa
...
@@ -302,7 +302,7 @@ simde_vfmlal_laneq_high_f16(simde_float32x2_t r, simde_float16x4_t a, simde_floa
return
simde_float32x2_from_private
(
ret_
);
return
simde_float32x2_from_private
(
ret_
);
}
}
#if defined(SIMDE_ARM_NEON_A32V8_NATIVE) && defined(SIMDE_ARM_NEON_FP16) && \
#if defined(SIMDE_ARM_NEON_A32V8_NATIVE) && defined(SIMDE_ARM_NEON_FP16) && \
defined(
__ARM_FEATURE
_FP16_FML)
defined(
SIMDE_ARCH_ARM
_FP16_FML)
#define simde_vfmlal_laneq_high_f16(r, a, b, lane) vfmlal_laneq_high_f16((r), (a), (b), (lane));
#define simde_vfmlal_laneq_high_f16(r, a, b, lane) vfmlal_laneq_high_f16((r), (a), (b), (lane));
#endif
#endif
#if defined(SIMDE_ARM_NEON_A32V8_ENABLE_NATIVE_ALIASES)
#if defined(SIMDE_ARM_NEON_A32V8_ENABLE_NATIVE_ALIASES)
...
@@ -331,7 +331,7 @@ simde_vfmlalq_lane_high_f16(simde_float32x4_t r, simde_float16x8_t a, simde_floa
...
@@ -331,7 +331,7 @@ simde_vfmlalq_lane_high_f16(simde_float32x4_t r, simde_float16x8_t a, simde_floa
return
simde_float32x4_from_private
(
ret_
);
return
simde_float32x4_from_private
(
ret_
);
}
}
#if defined(SIMDE_ARM_NEON_A32V8_NATIVE) && defined(SIMDE_ARM_NEON_FP16) && \
#if defined(SIMDE_ARM_NEON_A32V8_NATIVE) && defined(SIMDE_ARM_NEON_FP16) && \
defined(
__ARM_FEATURE
_FP16_FML)
defined(
SIMDE_ARCH_ARM
_FP16_FML)
#define simde_vfmlalq_lane_high_f16(r, a, b, lane) vfmlalq_lane_high_f16((r), (a), (b), (lane));
#define simde_vfmlalq_lane_high_f16(r, a, b, lane) vfmlalq_lane_high_f16((r), (a), (b), (lane));
#endif
#endif
#if defined(SIMDE_ARM_NEON_A32V8_ENABLE_NATIVE_ALIASES)
#if defined(SIMDE_ARM_NEON_A32V8_ENABLE_NATIVE_ALIASES)
...
@@ -359,7 +359,7 @@ simde_vfmlalq_laneq_high_f16(simde_float32x4_t r, simde_float16x8_t a, simde_flo
...
@@ -359,7 +359,7 @@ simde_vfmlalq_laneq_high_f16(simde_float32x4_t r, simde_float16x8_t a, simde_flo
return
simde_float32x4_from_private
(
ret_
);
return
simde_float32x4_from_private
(
ret_
);
}
}
#if defined(SIMDE_ARM_NEON_A32V8_NATIVE) && defined(SIMDE_ARM_NEON_FP16) && \
#if defined(SIMDE_ARM_NEON_A32V8_NATIVE) && defined(SIMDE_ARM_NEON_FP16) && \
defined(
__ARM_FEATURE
_FP16_FML)
defined(
SIMDE_ARCH_ARM
_FP16_FML)
#define simde_vfmlalq_laneq_high_f16(r, a, b, lane) vfmlalq_laneq_high_f16((r), (a), (b), (lane));
#define simde_vfmlalq_laneq_high_f16(r, a, b, lane) vfmlalq_laneq_high_f16((r), (a), (b), (lane));
#endif
#endif
#if defined(SIMDE_ARM_NEON_A32V8_ENABLE_NATIVE_ALIASES)
#if defined(SIMDE_ARM_NEON_A32V8_ENABLE_NATIVE_ALIASES)
...
...
arm/neon/fmlsl.h
View file @
b5835922
...
@@ -37,7 +37,7 @@ SIMDE_FUNCTION_ATTRIBUTES
...
@@ -37,7 +37,7 @@ SIMDE_FUNCTION_ATTRIBUTES
simde_float32x2_t
simde_float32x2_t
simde_vfmlsl_low_f16
(
simde_float32x2_t
r
,
simde_float16x4_t
a
,
simde_float16x4_t
b
)
{
simde_vfmlsl_low_f16
(
simde_float32x2_t
r
,
simde_float16x4_t
a
,
simde_float16x4_t
b
)
{
#if defined(SIMDE_ARM_NEON_A32V8_NATIVE) && defined(SIMDE_ARM_NEON_FP16) && \
#if defined(SIMDE_ARM_NEON_A32V8_NATIVE) && defined(SIMDE_ARM_NEON_FP16) && \
defined(
__ARM_FEATURE
_FP16_FML)
defined(
SIMDE_ARCH_ARM
_FP16_FML)
return
vfmlsl_low_f16
(
r
,
a
,
b
);
return
vfmlsl_low_f16
(
r
,
a
,
b
);
#else
#else
simde_float32x2_private
simde_float32x2_private
...
@@ -64,7 +64,7 @@ SIMDE_FUNCTION_ATTRIBUTES
...
@@ -64,7 +64,7 @@ SIMDE_FUNCTION_ATTRIBUTES
simde_float32x4_t
simde_float32x4_t
simde_vfmlslq_low_f16
(
simde_float32x4_t
r
,
simde_float16x8_t
a
,
simde_float16x8_t
b
)
{
simde_vfmlslq_low_f16
(
simde_float32x4_t
r
,
simde_float16x8_t
a
,
simde_float16x8_t
b
)
{
#if defined(SIMDE_ARM_NEON_A32V8_NATIVE) && defined(SIMDE_ARM_NEON_FP16) && \
#if defined(SIMDE_ARM_NEON_A32V8_NATIVE) && defined(SIMDE_ARM_NEON_FP16) && \
defined(
__ARM_FEATURE
_FP16_FML)
defined(
SIMDE_ARCH_ARM
_FP16_FML)
return
vfmlslq_low_f16
(
r
,
a
,
b
);
return
vfmlslq_low_f16
(
r
,
a
,
b
);
#else
#else
simde_float32x4_private
simde_float32x4_private
...
@@ -91,7 +91,7 @@ SIMDE_FUNCTION_ATTRIBUTES
...
@@ -91,7 +91,7 @@ SIMDE_FUNCTION_ATTRIBUTES
simde_float32x2_t
simde_float32x2_t
simde_vfmlsl_high_f16
(
simde_float32x2_t
r
,
simde_float16x4_t
a
,
simde_float16x4_t
b
)
{
simde_vfmlsl_high_f16
(
simde_float32x2_t
r
,
simde_float16x4_t
a
,
simde_float16x4_t
b
)
{
#if defined(SIMDE_ARM_NEON_A32V8_NATIVE) && defined(SIMDE_ARM_NEON_FP16) && \
#if defined(SIMDE_ARM_NEON_A32V8_NATIVE) && defined(SIMDE_ARM_NEON_FP16) && \
defined(
__ARM_FEATURE
_FP16_FML)
defined(
SIMDE_ARCH_ARM
_FP16_FML)
return
vfmlsl_high_f16
(
r
,
a
,
b
);
return
vfmlsl_high_f16
(
r
,
a
,
b
);
#else
#else
simde_float32x2_private
simde_float32x2_private
...
@@ -119,7 +119,7 @@ SIMDE_FUNCTION_ATTRIBUTES
...
@@ -119,7 +119,7 @@ SIMDE_FUNCTION_ATTRIBUTES
simde_float32x4_t
simde_float32x4_t
simde_vfmlslq_high_f16
(
simde_float32x4_t
r
,
simde_float16x8_t
a
,
simde_float16x8_t
b
)
{
simde_vfmlslq_high_f16
(
simde_float32x4_t
r
,
simde_float16x8_t
a
,
simde_float16x8_t
b
)
{
#if defined(SIMDE_ARM_NEON_A32V8_NATIVE) && defined(SIMDE_ARM_NEON_FP16) && \
#if defined(SIMDE_ARM_NEON_A32V8_NATIVE) && defined(SIMDE_ARM_NEON_FP16) && \
defined(
__ARM_FEATURE
_FP16_FML)
defined(
SIMDE_ARCH_ARM
_FP16_FML)
return
vfmlslq_high_f16
(
r
,
a
,
b
);
return
vfmlslq_high_f16
(
r
,
a
,
b
);
#else
#else
simde_float32x4_private
simde_float32x4_private
...
@@ -162,7 +162,7 @@ simde_vfmlsl_lane_low_f16(simde_float32x2_t r, simde_float16x4_t a, simde_float1
...
@@ -162,7 +162,7 @@ simde_vfmlsl_lane_low_f16(simde_float32x2_t r, simde_float16x4_t a, simde_float1
return
simde_float32x2_from_private
(
ret_
);
return
simde_float32x2_from_private
(
ret_
);
}
}
#if defined(SIMDE_ARM_NEON_A32V8_NATIVE) && defined(SIMDE_ARM_NEON_FP16) && \
#if defined(SIMDE_ARM_NEON_A32V8_NATIVE) && defined(SIMDE_ARM_NEON_FP16) && \
defined(
__ARM_FEATURE
_FP16_FML)
defined(
SIMDE_ARCH_ARM
_FP16_FML)
#define simde_vfmlsl_lane_low_f16(r, a, b, lane) vfmlsl_lane_low_f16((r), (a), (b), (lane));
#define simde_vfmlsl_lane_low_f16(r, a, b, lane) vfmlsl_lane_low_f16((r), (a), (b), (lane));
#endif
#endif
#if defined(SIMDE_ARM_NEON_A32V8_ENABLE_NATIVE_ALIASES)
#if defined(SIMDE_ARM_NEON_A32V8_ENABLE_NATIVE_ALIASES)
...
@@ -190,7 +190,7 @@ simde_vfmlsl_laneq_low_f16(simde_float32x2_t r, simde_float16x4_t a, simde_float
...
@@ -190,7 +190,7 @@ simde_vfmlsl_laneq_low_f16(simde_float32x2_t r, simde_float16x4_t a, simde_float
return
simde_float32x2_from_private
(
ret_
);
return
simde_float32x2_from_private
(
ret_
);
}
}
#if defined(SIMDE_ARM_NEON_A32V8_NATIVE) && defined(SIMDE_ARM_NEON_FP16) && \
#if defined(SIMDE_ARM_NEON_A32V8_NATIVE) && defined(SIMDE_ARM_NEON_FP16) && \
defined(
__ARM_FEATURE
_FP16_FML)
defined(
SIMDE_ARCH_ARM
_FP16_FML)
#define simde_vfmlsl_laneq_low_f16(r, a, b, lane) vfmlsl_laneq_low_f16((r), (a), (b), (lane));
#define simde_vfmlsl_laneq_low_f16(r, a, b, lane) vfmlsl_laneq_low_f16((r), (a), (b), (lane));
#endif
#endif
#if defined(SIMDE_ARM_NEON_A32V8_ENABLE_NATIVE_ALIASES)
#if defined(SIMDE_ARM_NEON_A32V8_ENABLE_NATIVE_ALIASES)
...
@@ -218,7 +218,7 @@ simde_vfmlslq_lane_low_f16(simde_float32x4_t r, simde_float16x8_t a, simde_float
...
@@ -218,7 +218,7 @@ simde_vfmlslq_lane_low_f16(simde_float32x4_t r, simde_float16x8_t a, simde_float
return
simde_float32x4_from_private
(
ret_
);
return
simde_float32x4_from_private
(
ret_
);
}
}
#if defined(SIMDE_ARM_NEON_A32V8_NATIVE) && defined(SIMDE_ARM_NEON_FP16) && \
#if defined(SIMDE_ARM_NEON_A32V8_NATIVE) && defined(SIMDE_ARM_NEON_FP16) && \
defined(
__ARM_FEATURE
_FP16_FML)
defined(
SIMDE_ARCH_ARM
_FP16_FML)
#define simde_vfmlslq_lane_low_f16(r, a, b, lane) vfmlslq_lane_low_f16((r), (a), (b), (lane));
#define simde_vfmlslq_lane_low_f16(r, a, b, lane) vfmlslq_lane_low_f16((r), (a), (b), (lane));
#endif
#endif
#if defined(SIMDE_ARM_NEON_A32V8_ENABLE_NATIVE_ALIASES)
#if defined(SIMDE_ARM_NEON_A32V8_ENABLE_NATIVE_ALIASES)
...
@@ -245,7 +245,7 @@ simde_vfmlslq_laneq_low_f16(simde_float32x4_t r, simde_float16x8_t a, simde_floa
...
@@ -245,7 +245,7 @@ simde_vfmlslq_laneq_low_f16(simde_float32x4_t r, simde_float16x8_t a, simde_floa
return
simde_float32x4_from_private
(
ret_
);
return
simde_float32x4_from_private
(
ret_
);
}
}
#if defined(SIMDE_ARM_NEON_A32V8_NATIVE) && defined(SIMDE_ARM_NEON_FP16) && \
#if defined(SIMDE_ARM_NEON_A32V8_NATIVE) && defined(SIMDE_ARM_NEON_FP16) && \
defined(
__ARM_FEATURE
_FP16_FML)
defined(
SIMDE_ARCH_ARM
_FP16_FML)
#define simde_vfmlslq_laneq_low_f16(r, a, b, lane) vfmlslq_laneq_low_f16((r), (a), (b), (lane));
#define simde_vfmlslq_laneq_low_f16(r, a, b, lane) vfmlslq_laneq_low_f16((r), (a), (b), (lane));
#endif
#endif
#if defined(SIMDE_ARM_NEON_A32V8_ENABLE_NATIVE_ALIASES)
#if defined(SIMDE_ARM_NEON_A32V8_ENABLE_NATIVE_ALIASES)
...
@@ -273,7 +273,7 @@ simde_vfmlsl_lane_high_f16(simde_float32x2_t r, simde_float16x4_t a, simde_float
...
@@ -273,7 +273,7 @@ simde_vfmlsl_lane_high_f16(simde_float32x2_t r, simde_float16x4_t a, simde_float
return
simde_float32x2_from_private
(
ret_
);
return
simde_float32x2_from_private
(
ret_
);
}
}
#if defined(SIMDE_ARM_NEON_A32V8_NATIVE) && defined(SIMDE_ARM_NEON_FP16) && \
#if defined(SIMDE_ARM_NEON_A32V8_NATIVE) && defined(SIMDE_ARM_NEON_FP16) && \
defined(
__ARM_FEATURE
_FP16_FML)
defined(
SIMDE_ARCH_ARM
_FP16_FML)
#define simde_vfmlsl_lane_high_f16(r, a, b, lane) vfmlsl_lane_high_f16((r), (a), (b), (lane));
#define simde_vfmlsl_lane_high_f16(r, a, b, lane) vfmlsl_lane_high_f16((r), (a), (b), (lane));
#endif
#endif
#if defined(SIMDE_ARM_NEON_A32V8_ENABLE_NATIVE_ALIASES)
#if defined(SIMDE_ARM_NEON_A32V8_ENABLE_NATIVE_ALIASES)
...
@@ -302,7 +302,7 @@ simde_vfmlsl_laneq_high_f16(simde_float32x2_t r, simde_float16x4_t a, simde_floa
...
@@ -302,7 +302,7 @@ simde_vfmlsl_laneq_high_f16(simde_float32x2_t r, simde_float16x4_t a, simde_floa
return
simde_float32x2_from_private
(
ret_
);
return
simde_float32x2_from_private
(
ret_
);
}
}
#if defined(SIMDE_ARM_NEON_A32V8_NATIVE) && defined(SIMDE_ARM_NEON_FP16) && \
#if defined(SIMDE_ARM_NEON_A32V8_NATIVE) && defined(SIMDE_ARM_NEON_FP16) && \
defined(
__ARM_FEATURE
_FP16_FML)
defined(
SIMDE_ARCH_ARM
_FP16_FML)
#define simde_vfmlsl_laneq_high_f16(r, a, b, lane) vfmlsl_laneq_high_f16((r), (a), (b), (lane));
#define simde_vfmlsl_laneq_high_f16(r, a, b, lane) vfmlsl_laneq_high_f16((r), (a), (b), (lane));
#endif
#endif
#if defined(SIMDE_ARM_NEON_A32V8_ENABLE_NATIVE_ALIASES)
#if defined(SIMDE_ARM_NEON_A32V8_ENABLE_NATIVE_ALIASES)
...
@@ -331,7 +331,7 @@ simde_vfmlslq_lane_high_f16(simde_float32x4_t r, simde_float16x8_t a, simde_floa
...
@@ -331,7 +331,7 @@ simde_vfmlslq_lane_high_f16(simde_float32x4_t r, simde_float16x8_t a, simde_floa
return
simde_float32x4_from_private
(
ret_
);
return
simde_float32x4_from_private
(
ret_
);
}
}
#if defined(SIMDE_ARM_NEON_A32V8_NATIVE) && defined(SIMDE_ARM_NEON_FP16) && \
#if defined(SIMDE_ARM_NEON_A32V8_NATIVE) && defined(SIMDE_ARM_NEON_FP16) && \
defined(
__ARM_FEATURE
_FP16_FML)
defined(
SIMDE_ARCH_ARM
_FP16_FML)
#define simde_vfmlslq_lane_high_f16(r, a, b, lane) vfmlslq_lane_high_f16((r), (a), (b), (lane));
#define simde_vfmlslq_lane_high_f16(r, a, b, lane) vfmlslq_lane_high_f16((r), (a), (b), (lane));
#endif
#endif
#if defined(SIMDE_ARM_NEON_A32V8_ENABLE_NATIVE_ALIASES)
#if defined(SIMDE_ARM_NEON_A32V8_ENABLE_NATIVE_ALIASES)
...
@@ -359,7 +359,7 @@ simde_vfmlslq_laneq_high_f16(simde_float32x4_t r, simde_float16x8_t a, simde_flo
...
@@ -359,7 +359,7 @@ simde_vfmlslq_laneq_high_f16(simde_float32x4_t r, simde_float16x8_t a, simde_flo
return
simde_float32x4_from_private
(
ret_
);
return
simde_float32x4_from_private
(
ret_
);
}
}
#if defined(SIMDE_ARM_NEON_A32V8_NATIVE) && defined(SIMDE_ARM_NEON_FP16) && \
#if defined(SIMDE_ARM_NEON_A32V8_NATIVE) && defined(SIMDE_ARM_NEON_FP16) && \
defined(
__ARM_FEATURE
_FP16_FML)
defined(
SIMDE_ARCH_ARM
_FP16_FML)
#define simde_vfmlslq_laneq_high_f16(r, a, b, lane) vfmlslq_laneq_high_f16((r), (a), (b), (lane));
#define simde_vfmlslq_laneq_high_f16(r, a, b, lane) vfmlslq_laneq_high_f16((r), (a), (b), (lane));
#endif
#endif
#if defined(SIMDE_ARM_NEON_A32V8_ENABLE_NATIVE_ALIASES)
#if defined(SIMDE_ARM_NEON_A32V8_ENABLE_NATIVE_ALIASES)
...
...
arm/neon/mmlaq.h
View file @
b5835922
...
@@ -39,7 +39,7 @@ SIMDE_FUNCTION_ATTRIBUTES
...
@@ -39,7 +39,7 @@ SIMDE_FUNCTION_ATTRIBUTES
simde_int32x4_t
simde_int32x4_t
simde_vmmlaq_s32
(
simde_int32x4_t
r
,
simde_int8x16_t
a
,
simde_int8x16_t
b
)
{
simde_vmmlaq_s32
(
simde_int32x4_t
r
,
simde_int8x16_t
a
,
simde_int8x16_t
b
)
{
// I8MM is optional feature. src: https://patchwork.ffmpeg.org/project/ffmpeg/patch/20230530123043.52940-2-martin@martin.st/
// I8MM is optional feature. src: https://patchwork.ffmpeg.org/project/ffmpeg/patch/20230530123043.52940-2-martin@martin.st/
#if defined(SIMDE_ARM_NEON_A32V8_NATIVE) && defined(
__ARM_FEATURE
_MATMUL_INT8)
#if defined(SIMDE_ARM_NEON_A32V8_NATIVE) && defined(
SIMDE_ARCH_ARM
_MATMUL_INT8)
return
vmmlaq_s32
(
r
,
a
,
b
);
return
vmmlaq_s32
(
r
,
a
,
b
);
#else
#else
simde_int8x16_private
simde_int8x16_private
...
@@ -66,7 +66,7 @@ simde_vmmlaq_s32(simde_int32x4_t r, simde_int8x16_t a, simde_int8x16_t b) {
...
@@ -66,7 +66,7 @@ simde_vmmlaq_s32(simde_int32x4_t r, simde_int8x16_t a, simde_int8x16_t b) {
SIMDE_FUNCTION_ATTRIBUTES
SIMDE_FUNCTION_ATTRIBUTES
simde_uint32x4_t
simde_uint32x4_t
simde_vmmlaq_u32
(
simde_uint32x4_t
r
,
simde_uint8x16_t
a
,
simde_uint8x16_t
b
)
{
simde_vmmlaq_u32
(
simde_uint32x4_t
r
,
simde_uint8x16_t
a
,
simde_uint8x16_t
b
)
{
#if defined(SIMDE_ARM_NEON_A32V8_NATIVE) && defined(
__ARM_FEATURE
_MATMUL_INT8)
#if defined(SIMDE_ARM_NEON_A32V8_NATIVE) && defined(
SIMDE_ARCH_ARM
_MATMUL_INT8)
return
vmmlaq_u32
(
r
,
a
,
b
);
return
vmmlaq_u32
(
r
,
a
,
b
);
#else
#else
simde_uint8x16_private
simde_uint8x16_private
...
@@ -93,7 +93,7 @@ simde_vmmlaq_u32(simde_uint32x4_t r, simde_uint8x16_t a, simde_uint8x16_t b) {
...
@@ -93,7 +93,7 @@ simde_vmmlaq_u32(simde_uint32x4_t r, simde_uint8x16_t a, simde_uint8x16_t b) {
SIMDE_FUNCTION_ATTRIBUTES
SIMDE_FUNCTION_ATTRIBUTES
simde_int32x4_t
simde_int32x4_t
simde_vusmmlaq_s32
(
simde_int32x4_t
r
,
simde_uint8x16_t
a
,
simde_int8x16_t
b
)
{
simde_vusmmlaq_s32
(
simde_int32x4_t
r
,
simde_uint8x16_t
a
,
simde_int8x16_t
b
)
{
#if defined(SIMDE_ARM_NEON_A32V8_NATIVE) && defined(
__ARM_FEATURE
_MATMUL_INT8)
#if defined(SIMDE_ARM_NEON_A32V8_NATIVE) && defined(
SIMDE_ARCH_ARM
_MATMUL_INT8)
return
vusmmlaq_s32
(
r
,
a
,
b
);
return
vusmmlaq_s32
(
r
,
a
,
b
);
#else
#else
simde_uint8x16_private
simde_uint8x16_private
...
@@ -121,7 +121,7 @@ simde_vusmmlaq_s32(simde_int32x4_t r, simde_uint8x16_t a, simde_int8x16_t b) {
...
@@ -121,7 +121,7 @@ simde_vusmmlaq_s32(simde_int32x4_t r, simde_uint8x16_t a, simde_int8x16_t b) {
SIMDE_FUNCTION_ATTRIBUTES
SIMDE_FUNCTION_ATTRIBUTES
simde_float32x4_t
simde_float32x4_t
simde_vbfmmlaq_f32
(
simde_float32x4_t
r
,
simde_bfloat16x8_t
a
,
simde_bfloat16x8_t
b
)
{
simde_vbfmmlaq_f32
(
simde_float32x4_t
r
,
simde_bfloat16x8_t
a
,
simde_bfloat16x8_t
b
)
{
#if defined(SIMDE_ARM_NEON_A32V8_NATIVE) && defined(
__ARM_FEATURE
_MATMUL_INT8) && \
#if defined(SIMDE_ARM_NEON_A32V8_NATIVE) && defined(
SIMDE_ARCH_ARM
_MATMUL_INT8) && \
defined(SIMDE_ARM_NEON_BF16)
defined(SIMDE_ARM_NEON_BF16)
return
vbfmmlaq_f32
(
r
,
a
,
b
);
return
vbfmmlaq_f32
(
r
,
a
,
b
);
#else
#else
...
...
arm/neon/rax.h
View file @
b5835922
...
@@ -36,7 +36,7 @@ SIMDE_BEGIN_DECLS_
...
@@ -36,7 +36,7 @@ SIMDE_BEGIN_DECLS_
SIMDE_FUNCTION_ATTRIBUTES
SIMDE_FUNCTION_ATTRIBUTES
simde_uint64x2_t
simde_uint64x2_t
simde_vrax1q_u64
(
simde_uint64x2_t
a
,
simde_uint64x2_t
b
)
{
simde_vrax1q_u64
(
simde_uint64x2_t
a
,
simde_uint64x2_t
b
)
{
#if defined(SIMDE_ARM_NEON_A64V8_NATIVE) && defined(
__ARM_FEATURE
_SHA3)
#if defined(SIMDE_ARM_NEON_A64V8_NATIVE) && defined(
SIMDE_ARCH_ARM
_SHA3)
return
vrax1q_u64
(
a
,
b
);
return
vrax1q_u64
(
a
,
b
);
#else
#else
simde_uint64x2_private
simde_uint64x2_private
...
...
arm/neon/rnd32x.h
View file @
b5835922
...
@@ -37,7 +37,7 @@ SIMDE_BEGIN_DECLS_
...
@@ -37,7 +37,7 @@ SIMDE_BEGIN_DECLS_
SIMDE_FUNCTION_ATTRIBUTES
SIMDE_FUNCTION_ATTRIBUTES
simde_float32x2_t
simde_float32x2_t
simde_vrnd32x_f32
(
simde_float32x2_t
a
)
{
simde_vrnd32x_f32
(
simde_float32x2_t
a
)
{
#if defined(SIMDE_ARM_NEON_A64V8_NATIVE) && defined(
__ARM_FEATURE
_FRINT)
#if defined(SIMDE_ARM_NEON_A64V8_NATIVE) && defined(
SIMDE_ARCH_ARM
_FRINT)
return
vrnd32x_f32
(
a
);
return
vrnd32x_f32
(
a
);
#else
#else
simde_float32x2_private
simde_float32x2_private
...
@@ -67,7 +67,7 @@ simde_vrnd32x_f32(simde_float32x2_t a) {
...
@@ -67,7 +67,7 @@ simde_vrnd32x_f32(simde_float32x2_t a) {
SIMDE_FUNCTION_ATTRIBUTES
SIMDE_FUNCTION_ATTRIBUTES
simde_float64x1_t
simde_float64x1_t
simde_vrnd32x_f64
(
simde_float64x1_t
a
)
{
simde_vrnd32x_f64
(
simde_float64x1_t
a
)
{
#if defined(SIMDE_ARM_NEON_A64V8_NATIVE) && defined(
__ARM_FEATURE
_FRINT) && (!defined(__clang__) || SIMDE_DETECT_CLANG_VERSION_CHECK(18, 0, 0))
#if defined(SIMDE_ARM_NEON_A64V8_NATIVE) && defined(
SIMDE_ARCH_ARM
_FRINT) && (!defined(__clang__) || SIMDE_DETECT_CLANG_VERSION_CHECK(18, 0, 0))
return
vrnd32x_f64
(
a
);
return
vrnd32x_f64
(
a
);
#else
#else
simde_float64x1_private
simde_float64x1_private
...
@@ -97,7 +97,7 @@ simde_vrnd32x_f64(simde_float64x1_t a) {
...
@@ -97,7 +97,7 @@ simde_vrnd32x_f64(simde_float64x1_t a) {
SIMDE_FUNCTION_ATTRIBUTES
SIMDE_FUNCTION_ATTRIBUTES
simde_float32x4_t
simde_float32x4_t
simde_vrnd32xq_f32
(
simde_float32x4_t
a
)
{
simde_vrnd32xq_f32
(
simde_float32x4_t
a
)
{
#if defined(SIMDE_ARM_NEON_A64V8_NATIVE) && defined(
__ARM_FEATURE
_FRINT)
#if defined(SIMDE_ARM_NEON_A64V8_NATIVE) && defined(
SIMDE_ARCH_ARM
_FRINT)
return
vrnd32xq_f32
(
a
);
return
vrnd32xq_f32
(
a
);
#else
#else
simde_float32x4_private
simde_float32x4_private
...
@@ -127,7 +127,7 @@ simde_vrnd32xq_f32(simde_float32x4_t a) {
...
@@ -127,7 +127,7 @@ simde_vrnd32xq_f32(simde_float32x4_t a) {
SIMDE_FUNCTION_ATTRIBUTES
SIMDE_FUNCTION_ATTRIBUTES
simde_float64x2_t
simde_float64x2_t
simde_vrnd32xq_f64
(
simde_float64x2_t
a
)
{
simde_vrnd32xq_f64
(
simde_float64x2_t
a
)
{
#if defined(SIMDE_ARM_NEON_A64V8_NATIVE) && defined(
__ARM_FEATURE
_FRINT) && (!defined(__clang__) || SIMDE_DETECT_CLANG_VERSION_CHECK(18, 0, 0))
#if defined(SIMDE_ARM_NEON_A64V8_NATIVE) && defined(
SIMDE_ARCH_ARM
_FRINT) && (!defined(__clang__) || SIMDE_DETECT_CLANG_VERSION_CHECK(18, 0, 0))
return
vrnd32xq_f64
(
a
);
return
vrnd32xq_f64
(
a
);
#else
#else
simde_float64x2_private
simde_float64x2_private
...
...
arm/neon/rnd32z.h
View file @
b5835922
...
@@ -37,7 +37,7 @@ SIMDE_BEGIN_DECLS_
...
@@ -37,7 +37,7 @@ SIMDE_BEGIN_DECLS_
SIMDE_FUNCTION_ATTRIBUTES
SIMDE_FUNCTION_ATTRIBUTES
simde_float32x2_t
simde_float32x2_t
simde_vrnd32z_f32
(
simde_float32x2_t
a
)
{
simde_vrnd32z_f32
(
simde_float32x2_t
a
)
{
#if defined(SIMDE_ARM_NEON_A64V8_NATIVE) && defined(
__ARM_FEATURE
_FRINT)
#if defined(SIMDE_ARM_NEON_A64V8_NATIVE) && defined(
SIMDE_ARCH_ARM
_FRINT)
return
vrnd32z_f32
(
a
);
return
vrnd32z_f32
(
a
);
#else
#else
simde_float32x2_private
simde_float32x2_private
...
@@ -67,7 +67,7 @@ simde_vrnd32z_f32(simde_float32x2_t a) {
...
@@ -67,7 +67,7 @@ simde_vrnd32z_f32(simde_float32x2_t a) {
SIMDE_FUNCTION_ATTRIBUTES
SIMDE_FUNCTION_ATTRIBUTES
simde_float64x1_t
simde_float64x1_t
simde_vrnd32z_f64
(
simde_float64x1_t
a
)
{
simde_vrnd32z_f64
(
simde_float64x1_t
a
)
{
#if defined(SIMDE_ARM_NEON_A64V8_NATIVE) && defined(
__ARM_FEATURE
_FRINT) && (!defined(__clang__) || SIMDE_DETECT_CLANG_VERSION_CHECK(18, 0, 0))
#if defined(SIMDE_ARM_NEON_A64V8_NATIVE) && defined(
SIMDE_ARCH_ARM
_FRINT) && (!defined(__clang__) || SIMDE_DETECT_CLANG_VERSION_CHECK(18, 0, 0))
return
vrnd32z_f64
(
a
);
return
vrnd32z_f64
(
a
);
#else
#else
simde_float64x1_private
simde_float64x1_private
...
@@ -97,7 +97,7 @@ simde_vrnd32z_f64(simde_float64x1_t a) {
...
@@ -97,7 +97,7 @@ simde_vrnd32z_f64(simde_float64x1_t a) {
SIMDE_FUNCTION_ATTRIBUTES
SIMDE_FUNCTION_ATTRIBUTES
simde_float32x4_t
simde_float32x4_t
simde_vrnd32zq_f32
(
simde_float32x4_t
a
)
{
simde_vrnd32zq_f32
(
simde_float32x4_t
a
)
{
#if defined(SIMDE_ARM_NEON_A64V8_NATIVE) && defined(
__ARM_FEATURE
_FRINT)
#if defined(SIMDE_ARM_NEON_A64V8_NATIVE) && defined(
SIMDE_ARCH_ARM
_FRINT)
return
vrnd32zq_f32
(
a
);
return
vrnd32zq_f32
(
a
);
#else
#else
simde_float32x4_private
simde_float32x4_private
...
@@ -127,7 +127,7 @@ simde_vrnd32zq_f32(simde_float32x4_t a) {
...
@@ -127,7 +127,7 @@ simde_vrnd32zq_f32(simde_float32x4_t a) {
SIMDE_FUNCTION_ATTRIBUTES
SIMDE_FUNCTION_ATTRIBUTES
simde_float64x2_t
simde_float64x2_t
simde_vrnd32zq_f64
(
simde_float64x2_t
a
)
{
simde_vrnd32zq_f64
(
simde_float64x2_t
a
)
{
#if defined(SIMDE_ARM_NEON_A64V8_NATIVE) && defined(
__ARM_FEATURE
_FRINT) && (!defined(__clang__) || SIMDE_DETECT_CLANG_VERSION_CHECK(18, 0, 0))
#if defined(SIMDE_ARM_NEON_A64V8_NATIVE) && defined(
SIMDE_ARCH_ARM
_FRINT) && (!defined(__clang__) || SIMDE_DETECT_CLANG_VERSION_CHECK(18, 0, 0))
return
vrnd32zq_f64
(
a
);
return
vrnd32zq_f64
(
a
);
#else
#else
simde_float64x2_private
simde_float64x2_private
...
...
arm/neon/rnd64x.h
View file @
b5835922
...
@@ -37,7 +37,7 @@ SIMDE_BEGIN_DECLS_
...
@@ -37,7 +37,7 @@ SIMDE_BEGIN_DECLS_
SIMDE_FUNCTION_ATTRIBUTES
SIMDE_FUNCTION_ATTRIBUTES
simde_float32x2_t
simde_float32x2_t
simde_vrnd64x_f32
(
simde_float32x2_t
a
)
{
simde_vrnd64x_f32
(
simde_float32x2_t
a
)
{
#if defined(SIMDE_ARM_NEON_A64V8_NATIVE) && defined(
__ARM_FEATURE
_FRINT)
#if defined(SIMDE_ARM_NEON_A64V8_NATIVE) && defined(
SIMDE_ARCH_ARM
_FRINT)
return
vrnd64x_f32
(
a
);
return
vrnd64x_f32
(
a
);
#else
#else
simde_float32x2_private
simde_float32x2_private
...
@@ -67,7 +67,7 @@ simde_vrnd64x_f32(simde_float32x2_t a) {
...
@@ -67,7 +67,7 @@ simde_vrnd64x_f32(simde_float32x2_t a) {
SIMDE_FUNCTION_ATTRIBUTES
SIMDE_FUNCTION_ATTRIBUTES
simde_float64x1_t
simde_float64x1_t
simde_vrnd64x_f64
(
simde_float64x1_t
a
)
{
simde_vrnd64x_f64
(
simde_float64x1_t
a
)
{
#if defined(SIMDE_ARM_NEON_A64V8_NATIVE) && defined(
__ARM_FEATURE
_FRINT) && (!defined(__clang__) || SIMDE_DETECT_CLANG_VERSION_CHECK(18, 0, 0))
#if defined(SIMDE_ARM_NEON_A64V8_NATIVE) && defined(
SIMDE_ARCH_ARM
_FRINT) && (!defined(__clang__) || SIMDE_DETECT_CLANG_VERSION_CHECK(18, 0, 0))
return
vrnd64x_f64
(
a
);
return
vrnd64x_f64
(
a
);
#else
#else
simde_float64x1_private
simde_float64x1_private
...
@@ -97,7 +97,7 @@ simde_vrnd64x_f64(simde_float64x1_t a) {
...
@@ -97,7 +97,7 @@ simde_vrnd64x_f64(simde_float64x1_t a) {
SIMDE_FUNCTION_ATTRIBUTES
SIMDE_FUNCTION_ATTRIBUTES
simde_float32x4_t
simde_float32x4_t
simde_vrnd64xq_f32
(
simde_float32x4_t
a
)
{
simde_vrnd64xq_f32
(
simde_float32x4_t
a
)
{
#if defined(SIMDE_ARM_NEON_A64V8_NATIVE) && defined(
__ARM_FEATURE
_FRINT)
#if defined(SIMDE_ARM_NEON_A64V8_NATIVE) && defined(
SIMDE_ARCH_ARM
_FRINT)
return
vrnd64xq_f32
(
a
);
return
vrnd64xq_f32
(
a
);
#else
#else
simde_float32x4_private
simde_float32x4_private
...
@@ -127,7 +127,7 @@ simde_vrnd64xq_f32(simde_float32x4_t a) {
...
@@ -127,7 +127,7 @@ simde_vrnd64xq_f32(simde_float32x4_t a) {
SIMDE_FUNCTION_ATTRIBUTES
SIMDE_FUNCTION_ATTRIBUTES
simde_float64x2_t
simde_float64x2_t
simde_vrnd64xq_f64
(
simde_float64x2_t
a
)
{
simde_vrnd64xq_f64
(
simde_float64x2_t
a
)
{
#if defined(SIMDE_ARM_NEON_A64V8_NATIVE) && defined(
__ARM_FEATURE
_FRINT) && (!defined(__clang__) || SIMDE_DETECT_CLANG_VERSION_CHECK(18, 0, 0))
#if defined(SIMDE_ARM_NEON_A64V8_NATIVE) && defined(
SIMDE_ARCH_ARM
_FRINT) && (!defined(__clang__) || SIMDE_DETECT_CLANG_VERSION_CHECK(18, 0, 0))
return
vrnd64xq_f64
(
a
);
return
vrnd64xq_f64
(
a
);
#else
#else
simde_float64x2_private
simde_float64x2_private
...
...
arm/neon/rnd64z.h
View file @
b5835922
...
@@ -37,7 +37,7 @@ SIMDE_BEGIN_DECLS_
...
@@ -37,7 +37,7 @@ SIMDE_BEGIN_DECLS_
SIMDE_FUNCTION_ATTRIBUTES
SIMDE_FUNCTION_ATTRIBUTES
simde_float32x2_t
simde_float32x2_t
simde_vrnd64z_f32
(
simde_float32x2_t
a
)
{
simde_vrnd64z_f32
(
simde_float32x2_t
a
)
{
#if defined(SIMDE_ARM_NEON_A64V8_NATIVE) && defined(
__ARM_FEATURE
_FRINT)
#if defined(SIMDE_ARM_NEON_A64V8_NATIVE) && defined(
SIMDE_ARCH_ARM
_FRINT)
return
vrnd64z_f32
(
a
);
return
vrnd64z_f32
(
a
);
#else
#else
simde_float32x2_private
simde_float32x2_private
...
@@ -67,7 +67,7 @@ simde_vrnd64z_f32(simde_float32x2_t a) {
...
@@ -67,7 +67,7 @@ simde_vrnd64z_f32(simde_float32x2_t a) {
SIMDE_FUNCTION_ATTRIBUTES
SIMDE_FUNCTION_ATTRIBUTES
simde_float64x1_t
simde_float64x1_t
simde_vrnd64z_f64
(
simde_float64x1_t
a
)
{
simde_vrnd64z_f64
(
simde_float64x1_t
a
)
{
#if defined(SIMDE_ARM_NEON_A64V8_NATIVE) && defined(
__ARM_FEATURE
_FRINT) && (!defined(__clang__) || SIMDE_DETECT_CLANG_VERSION_CHECK(18, 0, 0))
#if defined(SIMDE_ARM_NEON_A64V8_NATIVE) && defined(
SIMDE_ARCH_ARM
_FRINT) && (!defined(__clang__) || SIMDE_DETECT_CLANG_VERSION_CHECK(18, 0, 0))
return
vrnd64z_f64
(
a
);
return
vrnd64z_f64
(
a
);
#else
#else
simde_float64x1_private
simde_float64x1_private
...
@@ -97,7 +97,7 @@ simde_vrnd64z_f64(simde_float64x1_t a) {
...
@@ -97,7 +97,7 @@ simde_vrnd64z_f64(simde_float64x1_t a) {
SIMDE_FUNCTION_ATTRIBUTES
SIMDE_FUNCTION_ATTRIBUTES
simde_float32x4_t
simde_float32x4_t
simde_vrnd64zq_f32
(
simde_float32x4_t
a
)
{
simde_vrnd64zq_f32
(
simde_float32x4_t
a
)
{
#if defined(SIMDE_ARM_NEON_A64V8_NATIVE) && defined(
__ARM_FEATURE
_FRINT)
#if defined(SIMDE_ARM_NEON_A64V8_NATIVE) && defined(
SIMDE_ARCH_ARM
_FRINT)
return
vrnd64zq_f32
(
a
);
return
vrnd64zq_f32
(
a
);
#else
#else
simde_float32x4_private
simde_float32x4_private
...
@@ -127,7 +127,7 @@ simde_vrnd64zq_f32(simde_float32x4_t a) {
...
@@ -127,7 +127,7 @@ simde_vrnd64zq_f32(simde_float32x4_t a) {
SIMDE_FUNCTION_ATTRIBUTES
SIMDE_FUNCTION_ATTRIBUTES
simde_float64x2_t
simde_float64x2_t
simde_vrnd64zq_f64
(
simde_float64x2_t
a
)
{
simde_vrnd64zq_f64
(
simde_float64x2_t
a
)
{
#if defined(SIMDE_ARM_NEON_A64V8_NATIVE) && defined(
__ARM_FEATURE
_FRINT) && (!defined(__clang__) || SIMDE_DETECT_CLANG_VERSION_CHECK(18, 0, 0))
#if defined(SIMDE_ARM_NEON_A64V8_NATIVE) && defined(
SIMDE_ARCH_ARM
_FRINT) && (!defined(__clang__) || SIMDE_DETECT_CLANG_VERSION_CHECK(18, 0, 0))
return
vrnd64zq_f64
(
a
);
return
vrnd64zq_f64
(
a
);
#else
#else
simde_float64x2_private
simde_float64x2_private
...
...
arm/neon/sha1.h
View file @
b5835922
...
@@ -38,7 +38,7 @@ SIMDE_BEGIN_DECLS_
...
@@ -38,7 +38,7 @@ SIMDE_BEGIN_DECLS_
SIMDE_FUNCTION_ATTRIBUTES
SIMDE_FUNCTION_ATTRIBUTES
uint32_t
uint32_t
simde_vsha1h_u32
(
uint32_t
a
)
{
simde_vsha1h_u32
(
uint32_t
a
)
{
#if defined(SIMDE_ARM_NEON_A32V8_NATIVE) && defined(
__ARM_FEATURE
_SHA2)
#if defined(SIMDE_ARM_NEON_A32V8_NATIVE) && defined(
SIMDE_ARCH_ARM
_SHA2)
return
vsha1h_u32
(
a
);
return
vsha1h_u32
(
a
);
#else
#else
return
ROL
(
a
,
32
,
30
);
return
ROL
(
a
,
32
,
30
);
...
@@ -52,7 +52,7 @@ simde_vsha1h_u32(uint32_t a) {
...
@@ -52,7 +52,7 @@ simde_vsha1h_u32(uint32_t a) {
SIMDE_FUNCTION_ATTRIBUTES
SIMDE_FUNCTION_ATTRIBUTES
simde_uint32x4_t
simde_uint32x4_t
simde_vsha1cq_u32
(
simde_uint32x4_t
hash_abcd
,
uint32_t
hash_e
,
simde_uint32x4_t
wk
)
{
simde_vsha1cq_u32
(
simde_uint32x4_t
hash_abcd
,
uint32_t
hash_e
,
simde_uint32x4_t
wk
)
{
#if defined(SIMDE_ARM_NEON_A32V8_NATIVE) && defined(
__ARM_FEATURE
_SHA2)
#if defined(SIMDE_ARM_NEON_A32V8_NATIVE) && defined(
SIMDE_ARCH_ARM
_SHA2)
return
vsha1cq_u32
(
hash_abcd
,
hash_e
,
wk
);
return
vsha1cq_u32
(
hash_abcd
,
hash_e
,
wk
);
#else
#else
simde_uint32x4_private
simde_uint32x4_private
...
@@ -82,7 +82,7 @@ simde_vsha1cq_u32(simde_uint32x4_t hash_abcd, uint32_t hash_e, simde_uint32x4_t
...
@@ -82,7 +82,7 @@ simde_vsha1cq_u32(simde_uint32x4_t hash_abcd, uint32_t hash_e, simde_uint32x4_t
SIMDE_FUNCTION_ATTRIBUTES
SIMDE_FUNCTION_ATTRIBUTES
simde_uint32x4_t
simde_uint32x4_t
simde_vsha1mq_u32
(
simde_uint32x4_t
hash_abcd
,
uint32_t
hash_e
,
simde_uint32x4_t
wk
)
{
simde_vsha1mq_u32
(
simde_uint32x4_t
hash_abcd
,
uint32_t
hash_e
,
simde_uint32x4_t
wk
)
{
#if defined(SIMDE_ARM_NEON_A32V8_NATIVE) && defined(
__ARM_FEATURE
_SHA2)
#if defined(SIMDE_ARM_NEON_A32V8_NATIVE) && defined(
SIMDE_ARCH_ARM
_SHA2)
return
vsha1mq_u32
(
hash_abcd
,
hash_e
,
wk
);
return
vsha1mq_u32
(
hash_abcd
,
hash_e
,
wk
);
#else
#else
simde_uint32x4_private
simde_uint32x4_private
...
@@ -112,7 +112,7 @@ simde_vsha1mq_u32(simde_uint32x4_t hash_abcd, uint32_t hash_e, simde_uint32x4_t
...
@@ -112,7 +112,7 @@ simde_vsha1mq_u32(simde_uint32x4_t hash_abcd, uint32_t hash_e, simde_uint32x4_t
SIMDE_FUNCTION_ATTRIBUTES
SIMDE_FUNCTION_ATTRIBUTES
simde_uint32x4_t
simde_uint32x4_t
simde_vsha1pq_u32
(
simde_uint32x4_t
hash_abcd
,
uint32_t
hash_e
,
simde_uint32x4_t
wk
)
{
simde_vsha1pq_u32
(
simde_uint32x4_t
hash_abcd
,
uint32_t
hash_e
,
simde_uint32x4_t
wk
)
{
#if defined(SIMDE_ARM_NEON_A32V8_NATIVE) && defined(
__ARM_FEATURE
_SHA2)
#if defined(SIMDE_ARM_NEON_A32V8_NATIVE) && defined(
SIMDE_ARCH_ARM
_SHA2)
return
vsha1pq_u32
(
hash_abcd
,
hash_e
,
wk
);
return
vsha1pq_u32
(
hash_abcd
,
hash_e
,
wk
);
#else
#else
simde_uint32x4_private
simde_uint32x4_private
...
@@ -142,7 +142,7 @@ simde_vsha1pq_u32(simde_uint32x4_t hash_abcd, uint32_t hash_e, simde_uint32x4_t
...
@@ -142,7 +142,7 @@ simde_vsha1pq_u32(simde_uint32x4_t hash_abcd, uint32_t hash_e, simde_uint32x4_t
SIMDE_FUNCTION_ATTRIBUTES
SIMDE_FUNCTION_ATTRIBUTES
simde_uint32x4_t
simde_uint32x4_t
simde_vsha1su0q_u32
(
simde_uint32x4_t
w0_3
,
simde_uint32x4_t
w4_7
,
simde_uint32x4_t
w8_11
)
{
simde_vsha1su0q_u32
(
simde_uint32x4_t
w0_3
,
simde_uint32x4_t
w4_7
,
simde_uint32x4_t
w8_11
)
{
#if defined(SIMDE_ARM_NEON_A32V8_NATIVE) && defined(
__ARM_FEATURE
_SHA2)
#if defined(SIMDE_ARM_NEON_A32V8_NATIVE) && defined(
SIMDE_ARCH_ARM
_SHA2)
return
vsha1su0q_u32
(
w0_3
,
w4_7
,
w8_11
);
return
vsha1su0q_u32
(
w0_3
,
w4_7
,
w8_11
);
#else
#else
simde_uint32x4_private
simde_uint32x4_private
...
@@ -169,7 +169,7 @@ simde_vsha1su0q_u32(simde_uint32x4_t w0_3, simde_uint32x4_t w4_7, simde_uint32x4
...
@@ -169,7 +169,7 @@ simde_vsha1su0q_u32(simde_uint32x4_t w0_3, simde_uint32x4_t w4_7, simde_uint32x4
SIMDE_FUNCTION_ATTRIBUTES
SIMDE_FUNCTION_ATTRIBUTES
simde_uint32x4_t
simde_uint32x4_t
simde_vsha1su1q_u32
(
simde_uint32x4_t
tw0_3
,
simde_uint32x4_t
tw12_15
)
{
simde_vsha1su1q_u32
(
simde_uint32x4_t
tw0_3
,
simde_uint32x4_t
tw12_15
)
{
#if defined(SIMDE_ARM_NEON_A32V8_NATIVE) && defined(
__ARM_FEATURE
_SHA2)
#if defined(SIMDE_ARM_NEON_A32V8_NATIVE) && defined(
SIMDE_ARCH_ARM
_SHA2)
return
vsha1su1q_u32
(
tw0_3
,
tw12_15
);
return
vsha1su1q_u32
(
tw0_3
,
tw12_15
);
#else
#else
simde_uint32x4_private
simde_uint32x4_private
...
...
arm/neon/sha256.h
View file @
b5835922
...
@@ -84,7 +84,7 @@ x_simde_sha256hash(simde_uint32x4_t x, simde_uint32x4_t y, simde_uint32x4_t w, i
...
@@ -84,7 +84,7 @@ x_simde_sha256hash(simde_uint32x4_t x, simde_uint32x4_t y, simde_uint32x4_t w, i
SIMDE_FUNCTION_ATTRIBUTES
SIMDE_FUNCTION_ATTRIBUTES
simde_uint32x4_t
simde_uint32x4_t
simde_vsha256hq_u32
(
simde_uint32x4_t
hash_efgh
,
simde_uint32x4_t
hash_abcd
,
simde_uint32x4_t
wk
)
{
simde_vsha256hq_u32
(
simde_uint32x4_t
hash_efgh
,
simde_uint32x4_t
hash_abcd
,
simde_uint32x4_t
wk
)
{
#if defined(SIMDE_ARM_NEON_A32V8_NATIVE) && defined(
__ARM_FEATURE
_SHA2)
#if defined(SIMDE_ARM_NEON_A32V8_NATIVE) && defined(
SIMDE_ARCH_ARM
_SHA2)
return
vsha256hq_u32
(
hash_efgh
,
hash_abcd
,
wk
);
return
vsha256hq_u32
(
hash_efgh
,
hash_abcd
,
wk
);
#else
#else
return
x_simde_sha256hash
(
hash_efgh
,
hash_abcd
,
wk
,
1
);
return
x_simde_sha256hash
(
hash_efgh
,
hash_abcd
,
wk
,
1
);
...
@@ -98,7 +98,7 @@ simde_vsha256hq_u32(simde_uint32x4_t hash_efgh, simde_uint32x4_t hash_abcd, simd
...
@@ -98,7 +98,7 @@ simde_vsha256hq_u32(simde_uint32x4_t hash_efgh, simde_uint32x4_t hash_abcd, simd
SIMDE_FUNCTION_ATTRIBUTES
SIMDE_FUNCTION_ATTRIBUTES
simde_uint32x4_t
simde_uint32x4_t
simde_vsha256h2q_u32
(
simde_uint32x4_t
hash_efgh
,
simde_uint32x4_t
hash_abcd
,
simde_uint32x4_t
wk
)
{
simde_vsha256h2q_u32
(
simde_uint32x4_t
hash_efgh
,
simde_uint32x4_t
hash_abcd
,
simde_uint32x4_t
wk
)
{
#if defined(SIMDE_ARM_NEON_A32V8_NATIVE) && defined(
__ARM_FEATURE
_SHA2)
#if defined(SIMDE_ARM_NEON_A32V8_NATIVE) && defined(
SIMDE_ARCH_ARM
_SHA2)
return
vsha256h2q_u32
(
hash_efgh
,
hash_abcd
,
wk
);
return
vsha256h2q_u32
(
hash_efgh
,
hash_abcd
,
wk
);
#else
#else
return
x_simde_sha256hash
(
hash_abcd
,
hash_efgh
,
wk
,
0
);
return
x_simde_sha256hash
(
hash_abcd
,
hash_efgh
,
wk
,
0
);
...
@@ -112,7 +112,7 @@ simde_vsha256h2q_u32(simde_uint32x4_t hash_efgh, simde_uint32x4_t hash_abcd, sim
...
@@ -112,7 +112,7 @@ simde_vsha256h2q_u32(simde_uint32x4_t hash_efgh, simde_uint32x4_t hash_abcd, sim
SIMDE_FUNCTION_ATTRIBUTES
SIMDE_FUNCTION_ATTRIBUTES
simde_uint32x4_t
simde_uint32x4_t
simde_vsha256su0q_u32
(
simde_uint32x4_t
w0_3
,
simde_uint32x4_t
w4_7
)
{
simde_vsha256su0q_u32
(
simde_uint32x4_t
w0_3
,
simde_uint32x4_t
w4_7
)
{
#if defined(SIMDE_ARM_NEON_A32V8_NATIVE) && defined(
__ARM_FEATURE
_SHA2)
#if defined(SIMDE_ARM_NEON_A32V8_NATIVE) && defined(
SIMDE_ARCH_ARM
_SHA2)
return
vsha256su0q_u32
(
w0_3
,
w4_7
);
return
vsha256su0q_u32
(
w0_3
,
w4_7
);
#else
#else
simde_uint32x4_private
simde_uint32x4_private
...
@@ -142,7 +142,7 @@ simde_vsha256su0q_u32(simde_uint32x4_t w0_3, simde_uint32x4_t w4_7) {
...
@@ -142,7 +142,7 @@ simde_vsha256su0q_u32(simde_uint32x4_t w0_3, simde_uint32x4_t w4_7) {
SIMDE_FUNCTION_ATTRIBUTES
SIMDE_FUNCTION_ATTRIBUTES
simde_uint32x4_t
simde_uint32x4_t
simde_vsha256su1q_u32
(
simde_uint32x4_t
tw0_3
,
simde_uint32x4_t
w8_11
,
simde_uint32x4_t
w12_15
)
{
simde_vsha256su1q_u32
(
simde_uint32x4_t
tw0_3
,
simde_uint32x4_t
w8_11
,
simde_uint32x4_t
w12_15
)
{
#if defined(SIMDE_ARM_NEON_A32V8_NATIVE) && defined(
__ARM_FEATURE
_SHA2)
#if defined(SIMDE_ARM_NEON_A32V8_NATIVE) && defined(
SIMDE_ARCH_ARM
_SHA2)
return
vsha256su1q_u32
(
tw0_3
,
w8_11
,
w12_15
);
return
vsha256su1q_u32
(
tw0_3
,
w8_11
,
w12_15
);
#else
#else
simde_uint32x4_private
simde_uint32x4_private
...
...
arm/neon/sha512.h
View file @
b5835922
...
@@ -41,7 +41,7 @@ SIMDE_BEGIN_DECLS_
...
@@ -41,7 +41,7 @@ SIMDE_BEGIN_DECLS_
SIMDE_FUNCTION_ATTRIBUTES
SIMDE_FUNCTION_ATTRIBUTES
simde_uint64x2_t
simde_uint64x2_t
simde_vsha512hq_u64
(
simde_uint64x2_t
w
,
simde_uint64x2_t
x
,
simde_uint64x2_t
y
)
{
simde_vsha512hq_u64
(
simde_uint64x2_t
w
,
simde_uint64x2_t
x
,
simde_uint64x2_t
y
)
{
#if defined(SIMDE_ARM_NEON_A64V8_NATIVE) && defined(
__ARM_FEATURE
_SHA512)
#if defined(SIMDE_ARM_NEON_A64V8_NATIVE) && defined(
SIMDE_ARCH_ARM
_SHA512)
return
vsha512hq_u64
(
w
,
x
,
y
);
return
vsha512hq_u64
(
w
,
x
,
y
);
#else
#else
simde_uint64x2_private
simde_uint64x2_private
...
@@ -70,7 +70,7 @@ simde_vsha512hq_u64(simde_uint64x2_t w, simde_uint64x2_t x, simde_uint64x2_t y)
...
@@ -70,7 +70,7 @@ simde_vsha512hq_u64(simde_uint64x2_t w, simde_uint64x2_t x, simde_uint64x2_t y)
SIMDE_FUNCTION_ATTRIBUTES
SIMDE_FUNCTION_ATTRIBUTES
simde_uint64x2_t
simde_uint64x2_t
simde_vsha512h2q_u64
(
simde_uint64x2_t
w
,
simde_uint64x2_t
x
,
simde_uint64x2_t
y
)
{
simde_vsha512h2q_u64
(
simde_uint64x2_t
w
,
simde_uint64x2_t
x
,
simde_uint64x2_t
y
)
{
#if defined(SIMDE_ARM_NEON_A64V8_NATIVE) && defined(
__ARM_FEATURE
_SHA512)
#if defined(SIMDE_ARM_NEON_A64V8_NATIVE) && defined(
SIMDE_ARCH_ARM
_SHA512)
return
vsha512h2q_u64
(
w
,
x
,
y
);
return
vsha512h2q_u64
(
w
,
x
,
y
);
#else
#else
simde_uint64x2_private
simde_uint64x2_private
...
@@ -96,7 +96,7 @@ simde_vsha512h2q_u64(simde_uint64x2_t w, simde_uint64x2_t x, simde_uint64x2_t y)
...
@@ -96,7 +96,7 @@ simde_vsha512h2q_u64(simde_uint64x2_t w, simde_uint64x2_t x, simde_uint64x2_t y)
SIMDE_FUNCTION_ATTRIBUTES
SIMDE_FUNCTION_ATTRIBUTES
simde_uint64x2_t
simde_uint64x2_t
simde_vsha512su0q_u64
(
simde_uint64x2_t
w
,
simde_uint64x2_t
x
)
{
simde_vsha512su0q_u64
(
simde_uint64x2_t
w
,
simde_uint64x2_t
x
)
{
#if defined(SIMDE_ARM_NEON_A64V8_NATIVE) && defined(
__ARM_FEATURE
_SHA512)
#if defined(SIMDE_ARM_NEON_A64V8_NATIVE) && defined(
SIMDE_ARCH_ARM
_SHA512)
return
vsha512su0q_u64
(
w
,
x
);
return
vsha512su0q_u64
(
w
,
x
);
#else
#else
simde_uint64x2_private
simde_uint64x2_private
...
@@ -120,7 +120,7 @@ simde_vsha512su0q_u64(simde_uint64x2_t w, simde_uint64x2_t x) {
...
@@ -120,7 +120,7 @@ simde_vsha512su0q_u64(simde_uint64x2_t w, simde_uint64x2_t x) {
SIMDE_FUNCTION_ATTRIBUTES
SIMDE_FUNCTION_ATTRIBUTES
simde_uint64x2_t
simde_uint64x2_t
simde_vsha512su1q_u64
(
simde_uint64x2_t
w
,
simde_uint64x2_t
x
,
simde_uint64x2_t
y
)
{
simde_vsha512su1q_u64
(
simde_uint64x2_t
w
,
simde_uint64x2_t
x
,
simde_uint64x2_t
y
)
{
#if defined(SIMDE_ARM_NEON_A64V8_NATIVE) && defined(
__ARM_FEATURE
_SHA512)
#if defined(SIMDE_ARM_NEON_A64V8_NATIVE) && defined(
SIMDE_ARCH_ARM
_SHA512)
return
vsha512su1q_u64
(
w
,
x
,
y
);
return
vsha512su1q_u64
(
w
,
x
,
y
);
#else
#else
simde_uint64x2_private
simde_uint64x2_private
...
...
arm/neon/sm3.h
View file @
b5835922
...
@@ -41,7 +41,7 @@ SIMDE_BEGIN_DECLS_
...
@@ -41,7 +41,7 @@ SIMDE_BEGIN_DECLS_
SIMDE_FUNCTION_ATTRIBUTES
SIMDE_FUNCTION_ATTRIBUTES
simde_uint32x4_t
simde_uint32x4_t
simde_vsm3ss1q_u32
(
simde_uint32x4_t
n
,
simde_uint32x4_t
m
,
simde_uint32x4_t
a
)
{
simde_vsm3ss1q_u32
(
simde_uint32x4_t
n
,
simde_uint32x4_t
m
,
simde_uint32x4_t
a
)
{
#if defined(SIMDE_ARM_NEON_A64V8_NATIVE) && defined(
__ARM_FEATURE
_SM3)
#if defined(SIMDE_ARM_NEON_A64V8_NATIVE) && defined(
SIMDE_ARCH_ARM
_SM3)
return
vsm3ss1q_u32
(
n
,
m
,
a
);
return
vsm3ss1q_u32
(
n
,
m
,
a
);
#else
#else
simde_uint32x4_private
simde_uint32x4_private
...
@@ -83,7 +83,7 @@ simde_vsm3tt1aq_u32(simde_uint32x4_t a, simde_uint32x4_t b, simde_uint32x4_t c,
...
@@ -83,7 +83,7 @@ simde_vsm3tt1aq_u32(simde_uint32x4_t a, simde_uint32x4_t b, simde_uint32x4_t c,
r_
.
values
[
3
]
=
TT1
;
r_
.
values
[
3
]
=
TT1
;
return
simde_uint32x4_from_private
(
r_
);
return
simde_uint32x4_from_private
(
r_
);
}
}
#if defined(SIMDE_ARM_NEON_A64V8_NATIVE) && defined(
__ARM_FEATURE
_SM3)
#if defined(SIMDE_ARM_NEON_A64V8_NATIVE) && defined(
SIMDE_ARCH_ARM
_SM3)
#define simde_vsm3tt1aq_u32(a, b, c, imm2) vsm3tt1aq_u32((a), (b), (c), (imm2));
#define simde_vsm3tt1aq_u32(a, b, c, imm2) vsm3tt1aq_u32((a), (b), (c), (imm2));
#endif
#endif
#if defined(SIMDE_ARM_NEON_A64V8_ENABLE_NATIVE_ALIASES)
#if defined(SIMDE_ARM_NEON_A64V8_ENABLE_NATIVE_ALIASES)
...
@@ -113,7 +113,7 @@ simde_vsm3tt1bq_u32(simde_uint32x4_t a, simde_uint32x4_t b, simde_uint32x4_t c,
...
@@ -113,7 +113,7 @@ simde_vsm3tt1bq_u32(simde_uint32x4_t a, simde_uint32x4_t b, simde_uint32x4_t c,
r_
.
values
[
3
]
=
TT1
;
r_
.
values
[
3
]
=
TT1
;
return
simde_uint32x4_from_private
(
r_
);
return
simde_uint32x4_from_private
(
r_
);
}
}
#if defined(SIMDE_ARM_NEON_A64V8_NATIVE) && defined(
__ARM_FEATURE
_SM3)
#if defined(SIMDE_ARM_NEON_A64V8_NATIVE) && defined(
SIMDE_ARCH_ARM
_SM3)
#define simde_vsm3tt1bq_u32(a, b, c, imm2) vsm3tt1bq_u32((a), (b), (c), (imm2));
#define simde_vsm3tt1bq_u32(a, b, c, imm2) vsm3tt1bq_u32((a), (b), (c), (imm2));
#endif
#endif
#if defined(SIMDE_ARM_NEON_A64V8_ENABLE_NATIVE_ALIASES)
#if defined(SIMDE_ARM_NEON_A64V8_ENABLE_NATIVE_ALIASES)
...
@@ -142,7 +142,7 @@ simde_vsm3tt2aq_u32(simde_uint32x4_t a, simde_uint32x4_t b, simde_uint32x4_t c,
...
@@ -142,7 +142,7 @@ simde_vsm3tt2aq_u32(simde_uint32x4_t a, simde_uint32x4_t b, simde_uint32x4_t c,
r_
.
values
[
3
]
=
TT2
^
ROL32
(
TT2
,
9
)
^
ROL32
(
TT2
,
17
);
r_
.
values
[
3
]
=
TT2
^
ROL32
(
TT2
,
9
)
^
ROL32
(
TT2
,
17
);
return
simde_uint32x4_from_private
(
r_
);
return
simde_uint32x4_from_private
(
r_
);
}
}
#if defined(SIMDE_ARM_NEON_A64V8_NATIVE) && defined(
__ARM_FEATURE
_SM3)
#if defined(SIMDE_ARM_NEON_A64V8_NATIVE) && defined(
SIMDE_ARCH_ARM
_SM3)
#define simde_vsm3tt2aq_u32(a, b, c, imm2) vsm3tt2aq_u32((a), (b), (c), (imm2));
#define simde_vsm3tt2aq_u32(a, b, c, imm2) vsm3tt2aq_u32((a), (b), (c), (imm2));
#endif
#endif
#if defined(SIMDE_ARM_NEON_A64V8_ENABLE_NATIVE_ALIASES)
#if defined(SIMDE_ARM_NEON_A64V8_ENABLE_NATIVE_ALIASES)
...
@@ -171,7 +171,7 @@ simde_vsm3tt2bq_u32(simde_uint32x4_t a, simde_uint32x4_t b, simde_uint32x4_t c,
...
@@ -171,7 +171,7 @@ simde_vsm3tt2bq_u32(simde_uint32x4_t a, simde_uint32x4_t b, simde_uint32x4_t c,
r_
.
values
[
3
]
=
TT2
^
ROL32
(
TT2
,
9
)
^
ROL32
(
TT2
,
17
);
r_
.
values
[
3
]
=
TT2
^
ROL32
(
TT2
,
9
)
^
ROL32
(
TT2
,
17
);
return
simde_uint32x4_from_private
(
r_
);
return
simde_uint32x4_from_private
(
r_
);
}
}
#if defined(SIMDE_ARM_NEON_A64V8_NATIVE) && defined(
__ARM_FEATURE
_SM3)
#if defined(SIMDE_ARM_NEON_A64V8_NATIVE) && defined(
SIMDE_ARCH_ARM
_SM3)
#define simde_vsm3tt2bq_u32(a, b, c, imm2) vsm3tt2bq_u32((a), (b), (c), (imm2));
#define simde_vsm3tt2bq_u32(a, b, c, imm2) vsm3tt2bq_u32((a), (b), (c), (imm2));
#endif
#endif
#if defined(SIMDE_ARM_NEON_A64V8_ENABLE_NATIVE_ALIASES)
#if defined(SIMDE_ARM_NEON_A64V8_ENABLE_NATIVE_ALIASES)
...
@@ -182,7 +182,7 @@ simde_vsm3tt2bq_u32(simde_uint32x4_t a, simde_uint32x4_t b, simde_uint32x4_t c,
...
@@ -182,7 +182,7 @@ simde_vsm3tt2bq_u32(simde_uint32x4_t a, simde_uint32x4_t b, simde_uint32x4_t c,
SIMDE_FUNCTION_ATTRIBUTES
SIMDE_FUNCTION_ATTRIBUTES
simde_uint32x4_t
simde_uint32x4_t
simde_vsm3partw1q_u32
(
simde_uint32x4_t
a
,
simde_uint32x4_t
b
,
simde_uint32x4_t
c
)
{
simde_vsm3partw1q_u32
(
simde_uint32x4_t
a
,
simde_uint32x4_t
b
,
simde_uint32x4_t
c
)
{
#if defined(SIMDE_ARM_NEON_A64V8_NATIVE) && defined(
__ARM_FEATURE
_SM3)
#if defined(SIMDE_ARM_NEON_A64V8_NATIVE) && defined(
SIMDE_ARCH_ARM
_SM3)
return
vsm3partw1q_u32
(
a
,
b
,
c
);
return
vsm3partw1q_u32
(
a
,
b
,
c
);
#else
#else
simde_uint32x4_private
simde_uint32x4_private
...
@@ -210,7 +210,7 @@ simde_vsm3partw1q_u32(simde_uint32x4_t a, simde_uint32x4_t b, simde_uint32x4_t c
...
@@ -210,7 +210,7 @@ simde_vsm3partw1q_u32(simde_uint32x4_t a, simde_uint32x4_t b, simde_uint32x4_t c
SIMDE_FUNCTION_ATTRIBUTES
SIMDE_FUNCTION_ATTRIBUTES
simde_uint32x4_t
simde_uint32x4_t
simde_vsm3partw2q_u32
(
simde_uint32x4_t
a
,
simde_uint32x4_t
b
,
simde_uint32x4_t
c
)
{
simde_vsm3partw2q_u32
(
simde_uint32x4_t
a
,
simde_uint32x4_t
b
,
simde_uint32x4_t
c
)
{
#if defined(SIMDE_ARM_NEON_A64V8_NATIVE) && defined(
__ARM_FEATURE
_SM3)
#if defined(SIMDE_ARM_NEON_A64V8_NATIVE) && defined(
SIMDE_ARCH_ARM
_SM3)
return
vsm3partw2q_u32
(
a
,
b
,
c
);
return
vsm3partw2q_u32
(
a
,
b
,
c
);
#else
#else
simde_uint32x4_private
simde_uint32x4_private
...
...
arm/neon/sm4.h
View file @
b5835922
...
@@ -73,7 +73,7 @@ static void simde_u32_from_u8x4(uint8_t* src, uint32_t* dst) {
...
@@ -73,7 +73,7 @@ static void simde_u32_from_u8x4(uint8_t* src, uint32_t* dst) {
SIMDE_FUNCTION_ATTRIBUTES
SIMDE_FUNCTION_ATTRIBUTES
simde_uint32x4_t
simde_uint32x4_t
simde_vsm4eq_u32
(
simde_uint32x4_t
a
,
simde_uint32x4_t
b
)
{
simde_vsm4eq_u32
(
simde_uint32x4_t
a
,
simde_uint32x4_t
b
)
{
#if defined(SIMDE_ARM_NEON_A64V8_NATIVE) && defined(
__ARM_FEATURE
_SM4)
#if defined(SIMDE_ARM_NEON_A64V8_NATIVE) && defined(
SIMDE_ARCH_ARM
_SM4)
return
vsm4eq_u32
(
a
,
b
);
return
vsm4eq_u32
(
a
,
b
);
#else
#else
simde_uint32x4_private
simde_uint32x4_private
...
@@ -110,7 +110,7 @@ simde_vsm4eq_u32(simde_uint32x4_t a, simde_uint32x4_t b) {
...
@@ -110,7 +110,7 @@ simde_vsm4eq_u32(simde_uint32x4_t a, simde_uint32x4_t b) {
SIMDE_FUNCTION_ATTRIBUTES
SIMDE_FUNCTION_ATTRIBUTES
simde_uint32x4_t
simde_uint32x4_t
simde_vsm4ekeyq_u32
(
simde_uint32x4_t
a
,
simde_uint32x4_t
b
)
{
simde_vsm4ekeyq_u32
(
simde_uint32x4_t
a
,
simde_uint32x4_t
b
)
{
#if defined(SIMDE_ARM_NEON_A64V8_NATIVE) && defined(
__ARM_FEATURE
_SM4)
#if defined(SIMDE_ARM_NEON_A64V8_NATIVE) && defined(
SIMDE_ARCH_ARM
_SM4)
return
vsm4ekeyq_u32
(
a
,
b
);
return
vsm4ekeyq_u32
(
a
,
b
);
#else
#else
simde_uint32x4_private
simde_uint32x4_private
...
...
arm/neon/sudot_lane.h
View file @
b5835922
...
@@ -57,7 +57,7 @@ simde_vsudot_lane_s32(simde_int32x2_t r, simde_int8x8_t a, simde_uint8x8_t b, co
...
@@ -57,7 +57,7 @@ simde_vsudot_lane_s32(simde_int32x2_t r, simde_int8x8_t a, simde_uint8x8_t b, co
return
result
;
return
result
;
}
}
#if defined(SIMDE_ARM_NEON_A32V8_NATIVE) && defined(
__ARM_FEATURE
_MATMUL_INT8)
#if defined(SIMDE_ARM_NEON_A32V8_NATIVE) && defined(
SIMDE_ARCH_ARM
_MATMUL_INT8)
#define simde_vsudot_lane_s32(r, a, b, lane) vsudot_lane_s32((r), (a), (b), (lane))
#define simde_vsudot_lane_s32(r, a, b, lane) vsudot_lane_s32((r), (a), (b), (lane))
#endif
#endif
#if defined(SIMDE_ARM_NEON_A32V8_ENABLE_NATIVE_ALIASES)
#if defined(SIMDE_ARM_NEON_A32V8_ENABLE_NATIVE_ALIASES)
...
@@ -89,7 +89,7 @@ simde_vsudot_laneq_s32(simde_int32x2_t r, simde_int8x8_t a, simde_uint8x16_t b,
...
@@ -89,7 +89,7 @@ simde_vsudot_laneq_s32(simde_int32x2_t r, simde_int8x8_t a, simde_uint8x16_t b,
return
result
;
return
result
;
}
}
#if defined(SIMDE_ARM_NEON_A64V8_NATIVE) && defined(
__ARM_FEATURE
_MATMUL_INT8)
#if defined(SIMDE_ARM_NEON_A64V8_NATIVE) && defined(
SIMDE_ARCH_ARM
_MATMUL_INT8)
#define simde_vsudot_laneq_s32(r, a, b, lane) vsudot_laneq_s32((r), (a), (b), (lane))
#define simde_vsudot_laneq_s32(r, a, b, lane) vsudot_laneq_s32((r), (a), (b), (lane))
#endif
#endif
#if defined(SIMDE_ARM_NEON_A64V8_ENABLE_NATIVE_ALIASES)
#if defined(SIMDE_ARM_NEON_A64V8_ENABLE_NATIVE_ALIASES)
...
@@ -120,7 +120,7 @@ simde_vsudotq_laneq_s32(simde_int32x4_t r, simde_int8x16_t a, simde_uint8x16_t b
...
@@ -120,7 +120,7 @@ simde_vsudotq_laneq_s32(simde_int32x4_t r, simde_int8x16_t a, simde_uint8x16_t b
result
=
simde_int32x4_from_private
(
r_
);
result
=
simde_int32x4_from_private
(
r_
);
return
result
;
return
result
;
}
}
#if defined(SIMDE_ARM_NEON_A64V8_NATIVE) && defined(
__ARM_FEATURE
_MATMUL_INT8)
#if defined(SIMDE_ARM_NEON_A64V8_NATIVE) && defined(
SIMDE_ARCH_ARM
_MATMUL_INT8)
#define simde_vsudotq_laneq_s32(r, a, b, lane) vsudotq_laneq_s32((r), (a), (b), (lane))
#define simde_vsudotq_laneq_s32(r, a, b, lane) vsudotq_laneq_s32((r), (a), (b), (lane))
#endif
#endif
#if defined(SIMDE_ARM_NEON_A64V8_ENABLE_NATIVE_ALIASES)
#if defined(SIMDE_ARM_NEON_A64V8_ENABLE_NATIVE_ALIASES)
...
@@ -151,7 +151,7 @@ simde_vsudotq_lane_s32(simde_int32x4_t r, simde_int8x16_t a, simde_uint8x8_t b,
...
@@ -151,7 +151,7 @@ simde_vsudotq_lane_s32(simde_int32x4_t r, simde_int8x16_t a, simde_uint8x8_t b,
result
=
simde_int32x4_from_private
(
r_
);
result
=
simde_int32x4_from_private
(
r_
);
return
result
;
return
result
;
}
}
#if defined(SIMDE_ARM_NEON_A32V8_NATIVE) && defined(
__ARM_FEATURE
_MATMUL_INT8)
#if defined(SIMDE_ARM_NEON_A32V8_NATIVE) && defined(
SIMDE_ARCH_ARM
_MATMUL_INT8)
#define simde_vsudotq_lane_s32(r, a, b, lane) vsudotq_lane_s32((r), (a), (b), (lane))
#define simde_vsudotq_lane_s32(r, a, b, lane) vsudotq_lane_s32((r), (a), (b), (lane))
#endif
#endif
#if defined(SIMDE_ARM_NEON_A32V8_ENABLE_NATIVE_ALIASES)
#if defined(SIMDE_ARM_NEON_A32V8_ENABLE_NATIVE_ALIASES)
...
...
arm/neon/usdot.h
View file @
b5835922
...
@@ -38,7 +38,7 @@ SIMDE_BEGIN_DECLS_
...
@@ -38,7 +38,7 @@ SIMDE_BEGIN_DECLS_
SIMDE_FUNCTION_ATTRIBUTES
SIMDE_FUNCTION_ATTRIBUTES
simde_int32x2_t
simde_int32x2_t
simde_vusdot_s32
(
simde_int32x2_t
r
,
simde_uint8x8_t
a
,
simde_int8x8_t
b
)
{
simde_vusdot_s32
(
simde_int32x2_t
r
,
simde_uint8x8_t
a
,
simde_int8x8_t
b
)
{
#if defined(SIMDE_ARM_NEON_A32V8_NATIVE) && defined(
__ARM_FEATURE
_MATMUL_INT8)
#if defined(SIMDE_ARM_NEON_A32V8_NATIVE) && defined(
SIMDE_ARCH_ARM
_MATMUL_INT8)
return
vusdot_s32
(
r
,
a
,
b
);
return
vusdot_s32
(
r
,
a
,
b
);
#else
#else
simde_int32x2_private
r_
;
simde_int32x2_private
r_
;
...
@@ -64,7 +64,7 @@ simde_vusdot_s32(simde_int32x2_t r, simde_uint8x8_t a, simde_int8x8_t b) {
...
@@ -64,7 +64,7 @@ simde_vusdot_s32(simde_int32x2_t r, simde_uint8x8_t a, simde_int8x8_t b) {
SIMDE_FUNCTION_ATTRIBUTES
SIMDE_FUNCTION_ATTRIBUTES
simde_int32x4_t
simde_int32x4_t
simde_vusdotq_s32
(
simde_int32x4_t
r
,
simde_uint8x16_t
a
,
simde_int8x16_t
b
)
{
simde_vusdotq_s32
(
simde_int32x4_t
r
,
simde_uint8x16_t
a
,
simde_int8x16_t
b
)
{
#if defined(SIMDE_ARM_NEON_A32V8_NATIVE) && defined(
__ARM_FEATURE
_MATMUL_INT8)
#if defined(SIMDE_ARM_NEON_A32V8_NATIVE) && defined(
SIMDE_ARCH_ARM
_MATMUL_INT8)
return
vusdotq_s32
(
r
,
a
,
b
);
return
vusdotq_s32
(
r
,
a
,
b
);
#else
#else
simde_int32x4_private
r_
;
simde_int32x4_private
r_
;
...
...
arm/neon/xar.h
View file @
b5835922
...
@@ -49,10 +49,10 @@ simde_vxarq_u64(simde_uint64x2_t a, simde_uint64x2_t b, const int d)
...
@@ -49,10 +49,10 @@ simde_vxarq_u64(simde_uint64x2_t a, simde_uint64x2_t b, const int d)
return
simde_uint64x2_from_private
(
r_
);
return
simde_uint64x2_from_private
(
r_
);
}
}
#if defined(SIMDE_ARM_NEON_A64V8_NATIVE) && defined(
__ARM_FEATURE
_SHA3)
#if defined(SIMDE_ARM_NEON_A64V8_NATIVE) && defined(
SIMDE_ARCH_ARM
_SHA3)
#define simde_vxarq_u64(a, b, d) vxarq_u64((a), (b), (d))
#define simde_vxarq_u64(a, b, d) vxarq_u64((a), (b), (d))
#endif
#endif
#if defined(SIMDE_ARM_NEON_A64V8_ENABLE_NATIVE_ALIASES) || (defined(SIMDE_ENABLE_NATIVE_ALIASES) && !defined(
__ARM_FEATURE
_SHA3))
#if defined(SIMDE_ARM_NEON_A64V8_ENABLE_NATIVE_ALIASES) || (defined(SIMDE_ENABLE_NATIVE_ALIASES) && !defined(
SIMDE_ARCH_ARM
_SHA3))
#undef vxarq_u64
#undef vxarq_u64
#define vxarq_u64(a, b, d) simde_vxarq_u64((a), (b), (d))
#define vxarq_u64(a, b, d) simde_vxarq_u64((a), (b), (d))
#endif
#endif
...
...
simde-arch.h
View file @
b5835922
...
@@ -121,16 +121,49 @@
...
@@ -121,16 +121,49 @@
# define SIMDE_ARCH_ARM_NEON SIMDE_ARCH_ARM
# define SIMDE_ARCH_ARM_NEON SIMDE_ARCH_ARM
# endif
# endif
#endif
#endif
#if defined(__ARM_FEATURE_SVE)
#if defined(__ARM_FEATURE_AES) && __ARM_FEATURE_AES
# define SIMDE_ARCH_ARM_SVE
# define SIMDE_ARCH_ARM_AES
#endif
#if defined(__ARM_FEATURE_COMPLEX) && __ARM_FEATURE_COMPLEX
# define SIMDE_ARCH_ARM_COMPLEX
#endif
#if defined(__ARM_FEATURE_CRYPTO) && __ARM_FEATURE_CRYPTO
# define SIMDE_ARCH_ARM_CRYPTO
#endif
#if defined(__ARM_FEATURE_DOTPROD) && __ARM_FEATURE_DOTPROD
# define SIMDE_ARCH_ARM_DOTPROD
#endif
#endif
#if defined(__ARM_FEATURE_FMA) && __ARM_FEATURE_FMA
#if defined(__ARM_FEATURE_FMA) && __ARM_FEATURE_FMA
# define SIMDE_ARCH_ARM_FMA
# define SIMDE_ARCH_ARM_FMA
#endif
#endif
#if defined(__ARM_FEATURE_CRYPTO)
#if defined(__ARM_FEATURE_FP16_FML) && __ARM_FEATURE_FP16_FML
# define SIMDE_ARCH_ARM_CRYPTO
# define SIMDE_ARCH_ARM_FP16_FML
#endif
#if defined(__ARM_FEATURE_FRINT) && __ARM_FEATURE_FRINT
# define SIMDE_ARCH_ARM_FRINT
#endif
#if defined(__ARM_FEATURE_MATMUL_INT8) && __ARM_FEATURE_MATMUL_INT8
# define SIMDE_ARCH_ARM_MATMUL_INT8
#endif
#if defined(__ARM_FEATURE_SHA2) && __ARM_FEATURE_SHA2
# define SIMDE_ARCH_ARM_SHA2
#endif
#if defined(__ARM_FEATURE_SHA3) && __ARM_FEATURE_SHA3
# define SIMDE_ARCH_ARM_SHA3
#endif
#if defined(__ARM_FEATURE_SHA512) && __ARM_FEATURE_SHA512
# define SIMDE_ARCH_ARM_SHA512
#endif
#if defined(__ARM_FEATURE_SM3) && __ARM_FEATURE_SM3
# define SIMDE_ARCH_ARM_SM3
#endif
#if defined(__ARM_FEATURE_SM4) && __ARM_FEATURE_SM4
# define SIMDE_ARCH_ARM_SM4
#endif
#if defined(__ARM_FEATURE_SVE) && __ARM_FEATURE_SVE
# define SIMDE_ARCH_ARM_SVE
#endif
#endif
#if defined(__ARM_FEATURE_QRDMX)
#if defined(__ARM_FEATURE_QRDMX)
&& __ARM_FEATURE_QRDMX
# define SIMDE_ARCH_ARM_QRDMX
# define SIMDE_ARCH_ARM_QRDMX
#endif
#endif
...
...
x86/clmul.h
View file @
b5835922
...
@@ -199,7 +199,7 @@ simde_mm_clmulepi64_si128 (simde__m128i a, simde__m128i b, const int imm8)
...
@@ -199,7 +199,7 @@ simde_mm_clmulepi64_si128 (simde__m128i a, simde__m128i b, const int imm8)
#else
#else
#define simde_mm_clmulepi64_si128(a, b, imm8) _mm_clmulepi64_si128(a, b, imm8)
#define simde_mm_clmulepi64_si128(a, b, imm8) _mm_clmulepi64_si128(a, b, imm8)
#endif
#endif
#elif defined(SIMDE_ARM_NEON_A64V8_NATIVE) && defined(
__ARM_FEATURE
_AES) && !defined(__clang__)
#elif defined(SIMDE_ARM_NEON_A64V8_NATIVE) && defined(
SIMDE_ARCH_ARM
_AES) && !defined(__clang__)
#define simde_mm_clmulepi64_si128(a, b, imm8) \
#define simde_mm_clmulepi64_si128(a, b, imm8) \
simde__m128i_from_neon_u64( \
simde__m128i_from_neon_u64( \
vreinterpretq_u64_p128( \
vreinterpretq_u64_p128( \
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment