Skip to content

Commit 5b3ec02

Browse files
author
Simon Hosie
committed
Add includes for RVV quad support.
1 parent 6d791c4 commit 5b3ec02

File tree

4 files changed

+75
-1
lines changed

4 files changed

+75
-1
lines changed

src/quad-tester/qiutsimd.c

+23
Original file line numberDiff line numberDiff line change
@@ -232,6 +232,29 @@
232232
#define VARGQUAD Sleef_quadx2
233233
#endif
234234

235+
#ifdef ENABLE_RVVM1
236+
#include "qrenamervvm1.h"
237+
#if !defined(USE_INLINE_HEADER)
238+
#define CONFIG 1
239+
#define ENABLE_RVV_DP
240+
#include "helperrvv.h"
241+
#define VARGQUAD Sleef_rvvm1quad
242+
#endif
243+
#define SIZEOF_VARGQUAD (__riscv_vsetvlmax_e64m1()*8)
244+
#endif
245+
246+
#ifdef ENABLE_RVVM2
247+
#include "qrenamervvm2.h"
248+
#if !defined(USE_INLINE_HEADER)
249+
#define CONFIG 1
250+
#define ENABLE_RVV_DP
251+
#include "helperrvv.h"
252+
#define VARGQUAD Sleef_rvvm2quad
253+
#endif
254+
#define SIZEOF_VARGQUAD (__riscv_vsetvlmax_e64m2()*8)
255+
#endif
256+
257+
235258
#ifndef VARGQUAD
236259
#define VARGQUAD vargquad
237260
#endif

src/quad-tester/tester2simdqp.c

+17-1
Original file line numberDiff line numberDiff line change
@@ -122,6 +122,22 @@
122122
#define VARGQUAD Sleef_quadx2
123123
#endif
124124

125+
#ifdef ENABLE_RVVM1
126+
#define CONFIG 1
127+
#define ENABLE_RVV_DP
128+
#include "helperrvv.h"
129+
#include "qrenamervvm1.h"
130+
#define VARGQUAD Sleef_rvvm1quad
131+
#endif
132+
133+
#ifdef ENABLE_RVVM2
134+
#define CONFIG 1
135+
#define ENABLE_RVV_DP
136+
#include "helperrvv.h"
137+
#include "qrenamervvm2.h"
138+
#define VARGQUAD Sleef_rvvm2quad
139+
#endif
140+
125141
//
126142

127143
#define DENORMAL_DBL_MIN (4.9406564584124654418e-324)
@@ -217,7 +233,7 @@ int main(int argc,char **argv)
217233
mpfr_t frw, frx, fry, frz;
218234
mpfr_inits(frw, frx, fry, frz, NULL);
219235

220-
#ifndef ENABLE_SVE
236+
#if !(defined ENABLE_SVE || defined ENABLE_RVVM1 || defined ENABLE_RVVM2)
221237
memset(&a0, 0, sizeof(a0));
222238
memset(&a1, 0, sizeof(a1));
223239
memset(&a2, 0, sizeof(a2));

src/quad/sleefquad_header.h.org.in

+14
Original file line numberDiff line numberDiff line change
@@ -106,6 +106,20 @@ typedef struct {
106106

107107
#endif // #if !defined(Sleef_quadx2_DEFINED)
108108

109+
#if !defined(Sleef_rvvm1quad_DEFINED)
110+
#if defined(__riscv) && defined(__riscv_v)
111+
#define Sleef_rvvm1quadDEFINED
112+
typedef vuint64m1x2_t Sleef_rvvm1quad;
113+
#endif
114+
#endif
115+
116+
#if !defined(Sleef_rvvm2quad_DEFINED)
117+
#if defined(__riscv) && defined(__riscv_v)
118+
#define Sleef_rvvm2quadDEFINED
119+
typedef vuint64m2x2_t Sleef_rvvm2quad;
120+
#endif
121+
#endif
122+
109123
#if !defined(Sleef_quadx4_DEFINED)
110124
#if defined(__AVX__)
111125
#define Sleef_quadx4_DEFINED

src/quad/sleefsimdqp.c

+21
Original file line numberDiff line numberDiff line change
@@ -145,6 +145,27 @@ typedef vquad Sleef_quadx2;
145145
typedef vquad Sleef_quadx2;
146146
#endif
147147

148+
// RISC-V
149+
#ifdef ENABLE_RVVM1
150+
#define CONFIG 1
151+
#define ENABLE_RVV_DP
152+
#include "helperrvv.h"
153+
#ifdef DORENAME
154+
#include "qrenamervvm1.h"
155+
#endif
156+
typedef vquad Sleef_rvvm1quad;
157+
#endif
158+
159+
#ifdef ENABLE_RVVM2
160+
#define CONFIG 1
161+
#define ENABLE_RVV_DP
162+
#include "helperrvv.h"
163+
#ifdef DORENAME
164+
#include "qrenamervvm2.h"
165+
#endif
166+
typedef vquad Sleef_rvvm2quad;
167+
#endif
168+
148169
#include "dd.h"
149170
#include "commonfuncs.h"
150171

0 commit comments

Comments
 (0)