]> git.ipfire.org Git - thirdparty/gcc.git/blob - gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/ldnt1ub_gather_u32.c
[AArch64] Add support for the SVE2 ACLE
[thirdparty/gcc.git] / gcc / testsuite / gcc.target / aarch64 / sve2 / acle / asm / ldnt1ub_gather_u32.c
1 /* { dg-final { check-function-bodies "**" "" "-DCHECK_ASM" } } */
2
3 #include "test_sve_acle.h"
4
5 /*
6 ** ldnt1ub_gather_u32_tied1:
7 ** ldnt1b z0\.s, p0/z, \[z0\.s\]
8 ** ret
9 */
10 TEST_LOAD_GATHER_ZS (ldnt1ub_gather_u32_tied1, svuint32_t, svuint32_t,
11 z0_res = svldnt1ub_gather_u32base_u32 (p0, z0),
12 z0_res = svldnt1ub_gather_u32 (p0, z0))
13
14 /*
15 ** ldnt1ub_gather_u32_untied:
16 ** ldnt1b z0\.s, p0/z, \[z1\.s\]
17 ** ret
18 */
19 TEST_LOAD_GATHER_ZS (ldnt1ub_gather_u32_untied, svuint32_t, svuint32_t,
20 z0_res = svldnt1ub_gather_u32base_u32 (p0, z1),
21 z0_res = svldnt1ub_gather_u32 (p0, z1))
22
23 /*
24 ** ldnt1ub_gather_x0_u32_offset:
25 ** ldnt1b z0\.s, p0/z, \[z0\.s, x0\]
26 ** ret
27 */
28 TEST_LOAD_GATHER_ZS (ldnt1ub_gather_x0_u32_offset, svuint32_t, svuint32_t,
29 z0_res = svldnt1ub_gather_u32base_offset_u32 (p0, z0, x0),
30 z0_res = svldnt1ub_gather_offset_u32 (p0, z0, x0))
31
32 /*
33 ** ldnt1ub_gather_m1_u32_offset:
34 ** mov (x[0-9]+), #?-1
35 ** ldnt1b z0\.s, p0/z, \[z0\.s, \1\]
36 ** ret
37 */
38 TEST_LOAD_GATHER_ZS (ldnt1ub_gather_m1_u32_offset, svuint32_t, svuint32_t,
39 z0_res = svldnt1ub_gather_u32base_offset_u32 (p0, z0, -1),
40 z0_res = svldnt1ub_gather_offset_u32 (p0, z0, -1))
41
42 /*
43 ** ldnt1ub_gather_0_u32_offset:
44 ** ldnt1b z0\.s, p0/z, \[z0\.s\]
45 ** ret
46 */
47 TEST_LOAD_GATHER_ZS (ldnt1ub_gather_0_u32_offset, svuint32_t, svuint32_t,
48 z0_res = svldnt1ub_gather_u32base_offset_u32 (p0, z0, 0),
49 z0_res = svldnt1ub_gather_offset_u32 (p0, z0, 0))
50
51 /*
52 ** ldnt1ub_gather_5_u32_offset:
53 ** mov (x[0-9]+), #?5
54 ** ldnt1b z0\.s, p0/z, \[z0\.s, \1\]
55 ** ret
56 */
57 TEST_LOAD_GATHER_ZS (ldnt1ub_gather_5_u32_offset, svuint32_t, svuint32_t,
58 z0_res = svldnt1ub_gather_u32base_offset_u32 (p0, z0, 5),
59 z0_res = svldnt1ub_gather_offset_u32 (p0, z0, 5))
60
61 /*
62 ** ldnt1ub_gather_31_u32_offset:
63 ** mov (x[0-9]+), #?31
64 ** ldnt1b z0\.s, p0/z, \[z0\.s, \1\]
65 ** ret
66 */
67 TEST_LOAD_GATHER_ZS (ldnt1ub_gather_31_u32_offset, svuint32_t, svuint32_t,
68 z0_res = svldnt1ub_gather_u32base_offset_u32 (p0, z0, 31),
69 z0_res = svldnt1ub_gather_offset_u32 (p0, z0, 31))
70
71 /*
72 ** ldnt1ub_gather_32_u32_offset:
73 ** mov (x[0-9]+), #?32
74 ** ldnt1b z0\.s, p0/z, \[z0\.s, \1\]
75 ** ret
76 */
77 TEST_LOAD_GATHER_ZS (ldnt1ub_gather_32_u32_offset, svuint32_t, svuint32_t,
78 z0_res = svldnt1ub_gather_u32base_offset_u32 (p0, z0, 32),
79 z0_res = svldnt1ub_gather_offset_u32 (p0, z0, 32))
80
81 /*
82 ** ldnt1ub_gather_x0_u32_u32offset:
83 ** ldnt1b z0\.s, p0/z, \[z0\.s, x0\]
84 ** ret
85 */
86 TEST_LOAD_GATHER_SZ (ldnt1ub_gather_x0_u32_u32offset, svuint32_t, uint8_t, svuint32_t,
87 z0_res = svldnt1ub_gather_u32offset_u32 (p0, x0, z0),
88 z0_res = svldnt1ub_gather_offset_u32 (p0, x0, z0))
89
90 /*
91 ** ldnt1ub_gather_tied1_u32_u32offset:
92 ** ldnt1b z0\.s, p0/z, \[z0\.s, x0\]
93 ** ret
94 */
95 TEST_LOAD_GATHER_SZ (ldnt1ub_gather_tied1_u32_u32offset, svuint32_t, uint8_t, svuint32_t,
96 z0_res = svldnt1ub_gather_u32offset_u32 (p0, x0, z0),
97 z0_res = svldnt1ub_gather_offset_u32 (p0, x0, z0))
98
99 /*
100 ** ldnt1ub_gather_untied_u32_u32offset:
101 ** ldnt1b z0\.s, p0/z, \[z1\.s, x0\]
102 ** ret
103 */
104 TEST_LOAD_GATHER_SZ (ldnt1ub_gather_untied_u32_u32offset, svuint32_t, uint8_t, svuint32_t,
105 z0_res = svldnt1ub_gather_u32offset_u32 (p0, x0, z1),
106 z0_res = svldnt1ub_gather_offset_u32 (p0, x0, z1))