1 // { dg-options "-march=armv8.2-a+sve" }
2 // { dg-do run { target aarch64_sve_hw } }
4 #include <arm_neon_sve_bridge.h>
6 extern void abort (void);
11 int64_t val1
= 987654321;
12 int64_t val2
= 123456789;
13 svint64_t sveInput
= svdupq_n_s64 (val1
, val2
);
14 int64x2_t neonReturn
= svget_neonq_s64 (sveInput
);
15 int64_t val1Return
= vgetq_lane_s64 (neonReturn
, 0);
16 int64_t val2Return
= vgetq_lane_s64 (neonReturn
, 1);
17 if (val1
== val1Return
&& val2
== val2Return
)
25 int64_t val1
= 987654321;
26 int64_t val2
= 123456789;
28 NeonInput
= vsetq_lane_s64 (val1
, NeonInput
, 0);
29 NeonInput
= vsetq_lane_s64 (val2
, NeonInput
, 1);
30 svint64_t sveReturn
= svset_neonq_s64 (sveReturn
, NeonInput
);
31 int64_t val1Return
= svlasta_s64 (svptrue_b64(), sveReturn
);
32 int64_t val2Return
= svlastb_s64 (svptrue_pat_b8(SV_VL16
), sveReturn
);
33 if (val1
== val1Return
&& val2
== val2Return
)
41 int64_t val1
= 987654321;
42 int64_t val2
= 123456789;
44 NeonInput
= vsetq_lane_s64 (val1
, NeonInput
, 0);
45 NeonInput
= vsetq_lane_s64 (val2
, NeonInput
, 1);
46 svint64_t sveReturn
= svdup_neonq_s64 (NeonInput
);
47 int64_t val1Return
= svlasta_s64 (svptrue_b64(), sveReturn
);
48 int64_t val2Return
= svlastb_s64 (svptrue_b64(), sveReturn
);
49 if (val1
== val1Return
&& val2
== val2Return
)
57 if (svget_neonq_test () == 1)
59 if (svset_neonq_test () == 1)
61 if (svdup_neonq_test () == 1)