Skip to content

Commit da24b1c

Browse files
committed
RISC-V: Add intrinsics testcases for SiFive Xsfvqmaccqoq/dod extensions.
1 parent 99dcd82 commit da24b1c

File tree

9 files changed

+1706
-0
lines changed

9 files changed

+1706
-0
lines changed

gcc/testsuite/gcc.target/riscv/rvv/rvv.exp

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,8 @@ dg-init
3737
set CFLAGS "$DEFAULT_CFLAGS -O3"
3838
dg-runtest [lsort [glob -nocomplain $srcdir/$subdir/base/*.\[cS\]]] \
3939
"" $CFLAGS
40+
dg-runtest [lsort [glob -nocomplain $srcdir/$subdir/xsfvector/*.\[cS\]]] \
41+
"" $CFLAGS
4042
gcc-dg-runtest [lsort [glob -nocomplain $srcdir/$subdir/vsetvl/*.\[cS\]]] \
4143
"" $CFLAGS
4244
dg-runtest [lsort [glob -nocomplain $srcdir/$subdir/autovec/*.\[cS\]]] \
Lines changed: 213 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,213 @@
1+
/* { dg-do compile } */
2+
/* { dg-options "-march=rv64gcv_xsfvqmaccdod -mabi=lp64d -O3" } */
3+
/* { dg-final { check-function-bodies "**" "" } } */
4+
5+
#include "riscv_vector.h"
6+
7+
/*
8+
** test_sf_vqmacc_2x8x2_i32m1_vint32m1_t:
9+
** ...
10+
** sf\.vqmacc\.2x8x2\tv[0-9]+,v[0-9]+,v[0-9]+
11+
** ...
12+
*/
13+
vint32m1_t
14+
test_sf_vqmacc_2x8x2_i32m1_vint32m1_t (vint32m1_t vd, vint8m1_t vs1,
15+
vint8m1_t vs2, size_t vl)
16+
{
17+
return __riscv_sf_vqmacc_2x8x2_i32m1 (vd, vs1, vs2, vl);
18+
}
19+
20+
/*
21+
** test_sf_vqmacc_2x8x2_i32m2_vint32m2_t:
22+
** ...
23+
** sf\.vqmacc\.2x8x2\tv[0-9]+,v[0-9]+,v[0-9]+
24+
** ...
25+
*/
26+
vint32m2_t
27+
test_sf_vqmacc_2x8x2_i32m2_vint32m2_t (vint32m2_t vd, vint8m1_t vs1,
28+
vint8m2_t vs2, size_t vl)
29+
{
30+
return __riscv_sf_vqmacc_2x8x2_i32m2 (vd, vs1, vs2, vl);
31+
}
32+
33+
/*
34+
** test_sf_vqmacc_2x8x2_i32m4_vint32m4_t:
35+
** ...
36+
** sf\.vqmacc\.2x8x2\tv[0-9]+,v[0-9]+,v[0-9]+
37+
** ...
38+
*/
39+
vint32m4_t
40+
test_sf_vqmacc_2x8x2_i32m4_vint32m4_t (vint32m4_t vd, vint8m1_t vs1,
41+
vint8m4_t vs2, size_t vl)
42+
{
43+
return __riscv_sf_vqmacc_2x8x2_i32m4 (vd, vs1, vs2, vl);
44+
}
45+
46+
/*
47+
** test_sf_vqmacc_2x8x2_i32m8_vint32m8_t:
48+
** ...
49+
** sf\.vqmacc\.2x8x2\tv[0-9]+,v[0-9]+,v[0-9]+
50+
** ...
51+
*/
52+
vint32m8_t
53+
test_sf_vqmacc_2x8x2_i32m8_vint32m8_t (vint32m8_t vd, vint8m1_t vs1,
54+
vint8m8_t vs2, size_t vl)
55+
{
56+
return __riscv_sf_vqmacc_2x8x2_i32m8 (vd, vs1, vs2, vl);
57+
}
58+
59+
/*
60+
** test_sf_vqmacc_2x8x2_vint32m1_t:
61+
** ...
62+
** sf\.vqmacc\.2x8x2\tv[0-9]+,v[0-9]+,v[0-9]+
63+
** ...
64+
*/
65+
vint32m1_t
66+
test_sf_vqmacc_2x8x2_vint32m1_t (vint32m1_t vd, vint8m1_t vs1, vint8m1_t vs2,
67+
size_t vl)
68+
{
69+
return __riscv_sf_vqmacc_2x8x2 (vd, vs1, vs2, vl);
70+
}
71+
72+
/*
73+
** test_sf_vqmacc_2x8x2_vint32m2_t:
74+
** ...
75+
** sf\.vqmacc\.2x8x2\tv[0-9]+,v[0-9]+,v[0-9]+
76+
** ...
77+
*/
78+
vint32m2_t
79+
test_sf_vqmacc_2x8x2_vint32m2_t (vint32m2_t vd, vint8m1_t vs1, vint8m2_t vs2,
80+
size_t vl)
81+
{
82+
return __riscv_sf_vqmacc_2x8x2 (vd, vs1, vs2, vl);
83+
}
84+
85+
/*
86+
** test_sf_vqmacc_2x8x2_vint32m4_t:
87+
** ...
88+
** sf\.vqmacc\.2x8x2\tv[0-9]+,v[0-9]+,v[0-9]+
89+
** ...
90+
*/
91+
vint32m4_t
92+
test_sf_vqmacc_2x8x2_vint32m4_t (vint32m4_t vd, vint8m1_t vs1, vint8m4_t vs2,
93+
size_t vl)
94+
{
95+
return __riscv_sf_vqmacc_2x8x2 (vd, vs1, vs2, vl);
96+
}
97+
98+
/*
99+
** test_sf_vqmacc_2x8x2_vint32m8_t:
100+
** ...
101+
** sf\.vqmacc\.2x8x2\tv[0-9]+,v[0-9]+,v[0-9]+
102+
** ...
103+
*/
104+
vint32m8_t
105+
test_sf_vqmacc_2x8x2_vint32m8_t (vint32m8_t vd, vint8m1_t vs1, vint8m8_t vs2,
106+
size_t vl)
107+
{
108+
return __riscv_sf_vqmacc_2x8x2 (vd, vs1, vs2, vl);
109+
}
110+
111+
/*
112+
** test_sf_vqmacc_2x8x2_i32m1_tu_vint32m1_t:
113+
** ...
114+
** sf\.vqmacc\.2x8x2\tv[0-9]+,v[0-9]+,v[0-9]+
115+
** ...
116+
*/
117+
vint32m1_t
118+
test_sf_vqmacc_2x8x2_i32m1_tu_vint32m1_t (vint32m1_t vd, vint8m1_t vs1,
119+
vint8m1_t vs2, size_t vl)
120+
{
121+
return __riscv_sf_vqmacc_2x8x2_i32m1_tu (vd, vs1, vs2, vl);
122+
}
123+
124+
/*
125+
** test_sf_vqmacc_2x8x2_i32m2_tu_vint32m2_t:
126+
** ...
127+
** sf\.vqmacc\.2x8x2\tv[0-9]+,v[0-9]+,v[0-9]+
128+
** ...
129+
*/
130+
vint32m2_t
131+
test_sf_vqmacc_2x8x2_i32m2_tu_vint32m2_t (vint32m2_t vd, vint8m1_t vs1,
132+
vint8m2_t vs2, size_t vl)
133+
{
134+
return __riscv_sf_vqmacc_2x8x2_i32m2_tu (vd, vs1, vs2, vl);
135+
}
136+
137+
/*
138+
** test_sf_vqmacc_2x8x2_i32m4_tu_vint32m4_t:
139+
** ...
140+
** sf\.vqmacc\.2x8x2\tv[0-9]+,v[0-9]+,v[0-9]+
141+
** ...
142+
*/
143+
vint32m4_t
144+
test_sf_vqmacc_2x8x2_i32m4_tu_vint32m4_t (vint32m4_t vd, vint8m1_t vs1,
145+
vint8m4_t vs2, size_t vl)
146+
{
147+
return __riscv_sf_vqmacc_2x8x2_i32m4_tu (vd, vs1, vs2, vl);
148+
}
149+
150+
/*
151+
** test_sf_vqmacc_2x8x2_i32m8_tu_vint32m8_t:
152+
** ...
153+
** sf\.vqmacc\.2x8x2\tv[0-9]+,v[0-9]+,v[0-9]+
154+
** ...
155+
*/
156+
vint32m8_t
157+
test_sf_vqmacc_2x8x2_i32m8_tu_vint32m8_t (vint32m8_t vd, vint8m1_t vs1,
158+
vint8m8_t vs2, size_t vl)
159+
{
160+
return __riscv_sf_vqmacc_2x8x2_i32m8_tu (vd, vs1, vs2, vl);
161+
}
162+
163+
/*
164+
** test_sf_vqmacc_2x8x2_tu_vint32m1_t:
165+
** ...
166+
** sf\.vqmacc\.2x8x2\tv[0-9]+,v[0-9]+,v[0-9]+
167+
** ...
168+
*/
169+
vint32m1_t
170+
test_sf_vqmacc_2x8x2_tu_vint32m1_t (vint32m1_t vd, vint8m1_t vs1, vint8m1_t vs2,
171+
size_t vl)
172+
{
173+
return __riscv_sf_vqmacc_2x8x2_tu (vd, vs1, vs2, vl);
174+
}
175+
176+
/*
177+
** test_sf_vqmacc_2x8x2_tu_vint32m2_t:
178+
** ...
179+
** sf\.vqmacc\.2x8x2\tv[0-9]+,v[0-9]+,v[0-9]+
180+
** ...
181+
*/
182+
vint32m2_t
183+
test_sf_vqmacc_2x8x2_tu_vint32m2_t (vint32m2_t vd, vint8m1_t vs1, vint8m2_t vs2,
184+
size_t vl)
185+
{
186+
return __riscv_sf_vqmacc_2x8x2_tu (vd, vs1, vs2, vl);
187+
}
188+
189+
/*
190+
** test_sf_vqmacc_2x8x2_tu_vint32m4_t:
191+
** ...
192+
** sf\.vqmacc\.2x8x2\tv[0-9]+,v[0-9]+,v[0-9]+
193+
** ...
194+
*/
195+
vint32m4_t
196+
test_sf_vqmacc_2x8x2_tu_vint32m4_t (vint32m4_t vd, vint8m1_t vs1, vint8m4_t vs2,
197+
size_t vl)
198+
{
199+
return __riscv_sf_vqmacc_2x8x2_tu (vd, vs1, vs2, vl);
200+
}
201+
202+
/*
203+
** test_sf_vqmacc_2x8x2_tu_vint32m8_t:
204+
** ...
205+
** sf\.vqmacc\.2x8x2\tv[0-9]+,v[0-9]+,v[0-9]+
206+
** ...
207+
*/
208+
vint32m8_t
209+
test_sf_vqmacc_2x8x2_tu_vint32m8_t (vint32m8_t vd, vint8m1_t vs1, vint8m8_t vs2,
210+
size_t vl)
211+
{
212+
return __riscv_sf_vqmacc_2x8x2_tu (vd, vs1, vs2, vl);
213+
}

0 commit comments

Comments
 (0)