]> git.ipfire.org Git - thirdparty/gcc.git/blob - gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/tbx_u32.c
[AArch64] Add support for the SVE2 ACLE
[thirdparty/gcc.git] / gcc / testsuite / gcc.target / aarch64 / sve2 / acle / asm / tbx_u32.c
1 /* { dg-final { check-function-bodies "**" "" "-DCHECK_ASM" } } */
2
3 #include "test_sve_acle.h"
4
5 /*
6 ** tbx_u32_tied1:
7 ** tbx z0\.s, z1\.s, z4\.s
8 ** ret
9 */
10 TEST_DUAL_Z (tbx_u32_tied1, svuint32_t, svuint32_t,
11 z0 = svtbx_u32 (z0, z1, z4),
12 z0 = svtbx (z0, z1, z4))
13
14 /* Bad RA choice: no preferred output sequence. */
15 TEST_DUAL_Z (tbx_u32_tied2, svuint32_t, svuint32_t,
16 z0 = svtbx_u32 (z1, z0, z4),
17 z0 = svtbx (z1, z0, z4))
18
19 /* Bad RA choice: no preferred output sequence. */
20 TEST_DUAL_Z_REV (tbx_u32_tied3, svuint32_t, svuint32_t,
21 z0_res = svtbx_u32 (z4, z5, z0),
22 z0_res = svtbx (z4, z5, z0))
23
24 /*
25 ** tbx_u32_untied:
26 ** (
27 ** mov z0\.d, z1\.d
28 ** tbx z0\.s, z2\.s, z4\.s
29 ** |
30 ** tbx z1\.s, z2\.s, z4\.s
31 ** mov z0\.d, z1\.d
32 ** )
33 ** ret
34 */
35 TEST_DUAL_Z (tbx_u32_untied, svuint32_t, svuint32_t,
36 z0 = svtbx_u32 (z1, z2, z4),
37 z0 = svtbx (z1, z2, z4))