]> git.ipfire.org Git - thirdparty/gcc.git/blob - gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/qshrnt_s64.c
[AArch64] Add support for the SVE2 ACLE
[thirdparty/gcc.git] / gcc / testsuite / gcc.target / aarch64 / sve2 / acle / asm / qshrnt_s64.c
1 /* { dg-final { check-function-bodies "**" "" "-DCHECK_ASM" } } */
2
3 #include "test_sve_acle.h"
4
5 /*
6 ** qshrnt_1_s64:
7 ** sqshrnt z0\.s, z4\.d, #1
8 ** ret
9 */
10 TEST_DUAL_Z (qshrnt_1_s64, svint32_t, svint64_t,
11 z0 = svqshrnt_n_s64 (z0, z4, 1),
12 z0 = svqshrnt (z0, z4, 1))
13
14 /*
15 ** qshrnt_2_s64:
16 ** sqshrnt z0\.s, z4\.d, #2
17 ** ret
18 */
19 TEST_DUAL_Z (qshrnt_2_s64, svint32_t, svint64_t,
20 z0 = svqshrnt_n_s64 (z0, z4, 2),
21 z0 = svqshrnt (z0, z4, 2))
22
23 /*
24 ** qshrnt_32_s64_tied1:
25 ** sqshrnt z0\.s, z4\.d, #32
26 ** ret
27 */
28 TEST_DUAL_Z (qshrnt_32_s64_tied1, svint32_t, svint64_t,
29 z0 = svqshrnt_n_s64 (z0, z4, 32),
30 z0 = svqshrnt (z0, z4, 32))
31
32 /*
33 ** qshrnt_32_s64_untied:
34 ** (
35 ** mov z0\.d, z1\.d
36 ** sqshrnt z0\.s, z4\.d, #32
37 ** |
38 ** sqshrnt z1\.s, z4\.d, #32
39 ** mov z0\.d, z1\.d
40 ** )
41 ** ret
42 */
43 TEST_DUAL_Z (qshrnt_32_s64_untied, svint32_t, svint64_t,
44 z0 = svqshrnt_n_s64 (z1, z4, 32),
45 z0 = svqshrnt (z1, z4, 32))