]> git.ipfire.org Git - thirdparty/gcc.git/blob - gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/xar_s16.c
[AArch64] Add support for the SVE2 ACLE
[thirdparty/gcc.git] / gcc / testsuite / gcc.target / aarch64 / sve2 / acle / asm / xar_s16.c
1 /* { dg-final { check-function-bodies "**" "" "-DCHECK_ASM" } } */
2
3 #include "test_sve_acle.h"
4
5 /*
6 ** xar_1_s16_tied1:
7 ** xar z0\.h, z0\.h, z1\.h, #1
8 ** ret
9 */
10 TEST_UNIFORM_Z (xar_1_s16_tied1, svint16_t,
11 z0 = svxar_n_s16 (z0, z1, 1),
12 z0 = svxar (z0, z1, 1))
13
14 /*
15 ** xar_1_s16_tied2:
16 ** xar z0\.h, z0\.h, z1\.h, #1
17 ** ret
18 */
19 TEST_UNIFORM_Z (xar_1_s16_tied2, svint16_t,
20 z0 = svxar_n_s16 (z1, z0, 1),
21 z0 = svxar (z1, z0, 1))
22
23 /*
24 ** xar_1_s16_untied:
25 ** (
26 ** movprfx z0, z1
27 ** xar z0\.h, z0\.h, z2\.h, #1
28 ** |
29 ** movprfx z0, z2
30 ** xar z0\.h, z0\.h, z1\.h, #1
31 ** )
32 ** ret
33 */
34 TEST_UNIFORM_Z (xar_1_s16_untied, svint16_t,
35 z0 = svxar_n_s16 (z1, z2, 1),
36 z0 = svxar (z1, z2, 1))
37
38 /*
39 ** xar_2_s16_tied1:
40 ** xar z0\.h, z0\.h, z1\.h, #2
41 ** ret
42 */
43 TEST_UNIFORM_Z (xar_2_s16_tied1, svint16_t,
44 z0 = svxar_n_s16 (z0, z1, 2),
45 z0 = svxar (z0, z1, 2))
46
47 /*
48 ** xar_2_s16_tied2:
49 ** xar z0\.h, z0\.h, z1\.h, #2
50 ** ret
51 */
52 TEST_UNIFORM_Z (xar_2_s16_tied2, svint16_t,
53 z0 = svxar_n_s16 (z1, z0, 2),
54 z0 = svxar (z1, z0, 2))
55
56 /*
57 ** xar_2_s16_untied:
58 ** (
59 ** movprfx z0, z1
60 ** xar z0\.h, z0\.h, z2\.h, #2
61 ** |
62 ** movprfx z0, z2
63 ** xar z0\.h, z0\.h, z1\.h, #2
64 ** )
65 ** ret
66 */
67 TEST_UNIFORM_Z (xar_2_s16_untied, svint16_t,
68 z0 = svxar_n_s16 (z1, z2, 2),
69 z0 = svxar (z1, z2, 2))
70
71 /*
72 ** xar_16_s16_tied1:
73 ** xar z0\.h, z0\.h, z1\.h, #16
74 ** ret
75 */
76 TEST_UNIFORM_Z (xar_16_s16_tied1, svint16_t,
77 z0 = svxar_n_s16 (z0, z1, 16),
78 z0 = svxar (z0, z1, 16))
79
80 /*
81 ** xar_16_s16_tied2:
82 ** xar z0\.h, z0\.h, z1\.h, #16
83 ** ret
84 */
85 TEST_UNIFORM_Z (xar_16_s16_tied2, svint16_t,
86 z0 = svxar_n_s16 (z1, z0, 16),
87 z0 = svxar (z1, z0, 16))
88
89 /*
90 ** xar_16_s16_untied:
91 ** (
92 ** movprfx z0, z1
93 ** xar z0\.h, z0\.h, z2\.h, #16
94 ** |
95 ** movprfx z0, z2
96 ** xar z0\.h, z0\.h, z1\.h, #16
97 ** )
98 ** ret
99 */
100 TEST_UNIFORM_Z (xar_16_s16_untied, svint16_t,
101 z0 = svxar_n_s16 (z1, z2, 16),
102 z0 = svxar (z1, z2, 16))