PR96463: Optimise svld1rq from vectors for little endian AArch64 targets.
[official-gcc.git] / gcc / testsuite / gcc.target / aarch64 / sve / acle / general / pr96463-1.c
blobb68f43cc3ba41205aef52dc2beb51740a422cfa7
1 /* { dg-do compile } */
2 /* { dg-options "-O3" } */
4 #include "arm_neon.h"
5 #include "arm_sve.h"
7 #define TEST(ret_type, param_type, suffix) \
8 ret_type test_##suffix(param_type x) \
9 { \
10 return svld1rq_##suffix (svptrue_b8 (), &x[0]); \
13 TEST(svint8_t, int8x16_t, s8)
14 TEST(svint16_t, int16x8_t, s16)
15 TEST(svint32_t, int32x4_t, s32)
16 TEST(svint64_t, int64x2_t, s64)
18 TEST(svuint8_t, uint8x16_t, u8)
19 TEST(svuint16_t, uint16x8_t, u16)
20 TEST(svuint32_t, uint32x4_t, u32)
21 TEST(svuint64_t, uint64x2_t, u64)
23 TEST(svfloat16_t, float16x8_t, f16)
24 TEST(svfloat32_t, float32x4_t, f32)
25 TEST(svfloat64_t, float64x2_t, f64)
27 TEST(svbfloat16_t, bfloat16x8_t, bf16)
29 /* { dg-final { scan-assembler-times {\tdup\tz[0-9]+\.q, z[0-9]+\.q\[0\]} 12 { target aarch64_little_endian } } } */