]> git.ipfire.org Git - thirdparty/gcc.git/blob - gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/qdmlslbt_s16.c
[AArch64] Add support for the SVE2 ACLE
[thirdparty/gcc.git] / gcc / testsuite / gcc.target / aarch64 / sve2 / acle / asm / qdmlslbt_s16.c
1 /* { dg-final { check-function-bodies "**" "" "-DCHECK_ASM" } } */
2
3 #include "test_sve_acle.h"
4
5 /*
6 ** qdmlslbt_s16_tied1:
7 ** sqdmlslbt z0\.h, z4\.b, z5\.b
8 ** ret
9 */
10 TEST_DUAL_Z (qdmlslbt_s16_tied1, svint16_t, svint8_t,
11 z0 = svqdmlslbt_s16 (z0, z4, z5),
12 z0 = svqdmlslbt (z0, z4, z5))
13
14 /*
15 ** qdmlslbt_s16_tied2:
16 ** mov (z[0-9]+)\.d, z0\.d
17 ** movprfx z0, z4
18 ** sqdmlslbt z0\.h, \1\.b, z1\.b
19 ** ret
20 */
21 TEST_DUAL_Z_REV (qdmlslbt_s16_tied2, svint16_t, svint8_t,
22 z0_res = svqdmlslbt_s16 (z4, z0, z1),
23 z0_res = svqdmlslbt (z4, z0, z1))
24
25 /*
26 ** qdmlslbt_s16_tied3:
27 ** mov (z[0-9]+)\.d, z0\.d
28 ** movprfx z0, z4
29 ** sqdmlslbt z0\.h, z1\.b, \1\.b
30 ** ret
31 */
32 TEST_DUAL_Z_REV (qdmlslbt_s16_tied3, svint16_t, svint8_t,
33 z0_res = svqdmlslbt_s16 (z4, z1, z0),
34 z0_res = svqdmlslbt (z4, z1, z0))
35
36 /*
37 ** qdmlslbt_s16_untied:
38 ** movprfx z0, z1
39 ** sqdmlslbt z0\.h, z4\.b, z5\.b
40 ** ret
41 */
42 TEST_DUAL_Z (qdmlslbt_s16_untied, svint16_t, svint8_t,
43 z0 = svqdmlslbt_s16 (z1, z4, z5),
44 z0 = svqdmlslbt (z1, z4, z5))
45
46 /*
47 ** qdmlslbt_w0_s16_tied1:
48 ** mov (z[0-9]+\.b), w0
49 ** sqdmlslbt z0\.h, z4\.b, \1
50 ** ret
51 */
52 TEST_DUAL_ZX (qdmlslbt_w0_s16_tied1, svint16_t, svint8_t, int8_t,
53 z0 = svqdmlslbt_n_s16 (z0, z4, x0),
54 z0 = svqdmlslbt (z0, z4, x0))
55
56 /*
57 ** qdmlslbt_w0_s16_untied:
58 ** mov (z[0-9]+\.b), w0
59 ** movprfx z0, z1
60 ** sqdmlslbt z0\.h, z4\.b, \1
61 ** ret
62 */
63 TEST_DUAL_ZX (qdmlslbt_w0_s16_untied, svint16_t, svint8_t, int8_t,
64 z0 = svqdmlslbt_n_s16 (z1, z4, x0),
65 z0 = svqdmlslbt (z1, z4, x0))
66
67 /*
68 ** qdmlslbt_11_s16_tied1:
69 ** mov (z[0-9]+\.b), #11
70 ** sqdmlslbt z0\.h, z4\.b, \1
71 ** ret
72 */
73 TEST_DUAL_Z (qdmlslbt_11_s16_tied1, svint16_t, svint8_t,
74 z0 = svqdmlslbt_n_s16 (z0, z4, 11),
75 z0 = svqdmlslbt (z0, z4, 11))
76
77 /*
78 ** qdmlslbt_11_s16_untied:
79 ** mov (z[0-9]+\.b), #11
80 ** movprfx z0, z1
81 ** sqdmlslbt z0\.h, z4\.b, \1
82 ** ret
83 */
84 TEST_DUAL_Z (qdmlslbt_11_s16_untied, svint16_t, svint8_t,
85 z0 = svqdmlslbt_n_s16 (z1, z4, 11),
86 z0 = svqdmlslbt (z1, z4, 11))