AArch64: Implement vstrq_p128 intrinsic
This patch implements the missing vstrq_p128 intrinsic. It just performs a store of the poly128_t argument to a memory location. Bootstrapped and tested on aarch64-none-linux-gnu. gcc/ PR target/71233 * config/aarch64/arm_neon.h (vstrq_p128): Define. gcc/testsuite/ PR target/71233 * gcc.target/aarch64/simd/vstrq_p128_1.c: New test.
This commit is contained in:
parent
5253b3e6de
commit
d23ea1e865
@ -30167,6 +30167,13 @@ vst4q_p64 (poly64_t * __a, poly64x2x4_t __val)
|
||||
__builtin_aarch64_st4v2di ((__builtin_aarch64_simd_di *) __a, __o);
|
||||
}
|
||||
|
||||
__extension__ extern __inline void
|
||||
__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
|
||||
vstrq_p128 (poly128_t * __ptr, poly128_t __val)
|
||||
{
|
||||
*__ptr = __val;
|
||||
}
|
||||
|
||||
/* vsub */
|
||||
|
||||
__extension__ extern __inline int64_t
|
||||
|
12
gcc/testsuite/gcc.target/aarch64/simd/vstrq_p128_1.c
Normal file
12
gcc/testsuite/gcc.target/aarch64/simd/vstrq_p128_1.c
Normal file
@ -0,0 +1,12 @@
|
||||
/* { dg-do compile } */
|
||||
/* { dg-options "-O" } */
|
||||
|
||||
#include <arm_neon.h>
|
||||
|
||||
void
|
||||
test (poly128_t *ptr, poly128_t a)
|
||||
{
|
||||
vstrq_p128 (ptr, a);
|
||||
}
|
||||
|
||||
/* { dg-final { scan-assembler-times {stp.*x2,.*x3,.*[x0]} 1 } } */
|
Loading…
Reference in New Issue
Block a user