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