1 /* { dg-final { check-function-bodies "**" "" "-DCHECK_ASM" } } */
3 #include "test_sve_acle.h"
6 ** qrdmulh_lane_0_s16_tied1:
7 ** sqrdmulh z0\.h, z0\.h, z1\.h\[0\]
10 TEST_UNIFORM_Z (qrdmulh_lane_0_s16_tied1
, svint16_t
,
11 z0
= svqrdmulh_lane_s16 (z0
, z1
, 0),
12 z0
= svqrdmulh_lane (z0
, z1
, 0))
15 ** qrdmulh_lane_0_s16_tied2:
16 ** sqrdmulh z0\.h, z1\.h, z0\.h\[0\]
19 TEST_UNIFORM_Z (qrdmulh_lane_0_s16_tied2
, svint16_t
,
20 z0
= svqrdmulh_lane_s16 (z1
, z0
, 0),
21 z0
= svqrdmulh_lane (z1
, z0
, 0))
24 ** qrdmulh_lane_0_s16_untied:
25 ** sqrdmulh z0\.h, z1\.h, z2\.h\[0\]
28 TEST_UNIFORM_Z (qrdmulh_lane_0_s16_untied
, svint16_t
,
29 z0
= svqrdmulh_lane_s16 (z1
, z2
, 0),
30 z0
= svqrdmulh_lane (z1
, z2
, 0))
33 ** qrdmulh_lane_1_s16:
34 ** sqrdmulh z0\.h, z1\.h, z2\.h\[1\]
37 TEST_UNIFORM_Z (qrdmulh_lane_1_s16
, svint16_t
,
38 z0
= svqrdmulh_lane_s16 (z1
, z2
, 1),
39 z0
= svqrdmulh_lane (z1
, z2
, 1))
42 ** qrdmulh_lane_2_s16:
43 ** sqrdmulh z0\.h, z1\.h, z2\.h\[2\]
46 TEST_UNIFORM_Z (qrdmulh_lane_2_s16
, svint16_t
,
47 z0
= svqrdmulh_lane_s16 (z1
, z2
, 2),
48 z0
= svqrdmulh_lane (z1
, z2
, 2))
51 ** qrdmulh_lane_3_s16:
52 ** sqrdmulh z0\.h, z1\.h, z2\.h\[3\]
55 TEST_UNIFORM_Z (qrdmulh_lane_3_s16
, svint16_t
,
56 z0
= svqrdmulh_lane_s16 (z1
, z2
, 3),
57 z0
= svqrdmulh_lane (z1
, z2
, 3))
60 ** qrdmulh_lane_4_s16:
61 ** sqrdmulh z0\.h, z1\.h, z2\.h\[4\]
64 TEST_UNIFORM_Z (qrdmulh_lane_4_s16
, svint16_t
,
65 z0
= svqrdmulh_lane_s16 (z1
, z2
, 4),
66 z0
= svqrdmulh_lane (z1
, z2
, 4))
69 ** qrdmulh_lane_5_s16:
70 ** sqrdmulh z0\.h, z1\.h, z2\.h\[5\]
73 TEST_UNIFORM_Z (qrdmulh_lane_5_s16
, svint16_t
,
74 z0
= svqrdmulh_lane_s16 (z1
, z2
, 5),
75 z0
= svqrdmulh_lane (z1
, z2
, 5))
78 ** qrdmulh_lane_6_s16:
79 ** sqrdmulh z0\.h, z1\.h, z2\.h\[6\]
82 TEST_UNIFORM_Z (qrdmulh_lane_6_s16
, svint16_t
,
83 z0
= svqrdmulh_lane_s16 (z1
, z2
, 6),
84 z0
= svqrdmulh_lane (z1
, z2
, 6))
87 ** qrdmulh_lane_7_s16:
88 ** sqrdmulh z0\.h, z1\.h, z2\.h\[7\]
91 TEST_UNIFORM_Z (qrdmulh_lane_7_s16
, svint16_t
,
92 z0
= svqrdmulh_lane_s16 (z1
, z2
, 7),
93 z0
= svqrdmulh_lane (z1
, z2
, 7))
96 ** qrdmulh_lane_z8_s16:
97 ** str d8, \[sp, -16\]!
98 ** mov (z[0-7])\.d, z8\.d
99 ** sqrdmulh z0\.h, z1\.h, \1\.h\[1\]
100 ** ldr d8, \[sp\], 16
103 TEST_DUAL_LANE_REG (qrdmulh_lane_z8_s16
, svint16_t
, svint16_t
, z8
,
104 z0
= svqrdmulh_lane_s16 (z1
, z8
, 1),
105 z0
= svqrdmulh_lane (z1
, z8
, 1))
108 ** qrdmulh_lane_z16_s16:
109 ** mov (z[0-7])\.d, z16\.d
110 ** sqrdmulh z0\.h, z1\.h, \1\.h\[1\]
113 TEST_DUAL_LANE_REG (qrdmulh_lane_z16_s16
, svint16_t
, svint16_t
, z16
,
114 z0
= svqrdmulh_lane_s16 (z1
, z16
, 1),
115 z0
= svqrdmulh_lane (z1
, z16
, 1))