[RISCV][VLOPT] Remove dead passthru check in getOperandLog2EEW. NFC (#123911)
[llvm-project.git] / libc / AOR_v20.02 / math / test / rtest / intern.h
blob8b1cc4f3176cb4277fa886da6ba2da7949fd5989
1 /*
2 * intern.h
4 * Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
5 * See https://llvm.org/LICENSE.txt for license information.
6 * SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
7 */
9 #ifndef mathtest_intern_h
10 #define mathtest_intern_h
12 #include <mpfr.h>
13 #include <mpc.h>
15 #include "types.h"
16 #include "wrappers.h"
18 /* Generic function pointer. */
19 typedef void (*funcptr)(void);
21 /* Pointers to test function types. */
22 typedef int (*testfunc1)(mpfr_t, mpfr_t, mpfr_rnd_t);
23 typedef int (*testfunc2)(mpfr_t, mpfr_t, mpfr_t, mpfr_rnd_t);
24 typedef int (*testrred)(mpfr_t, mpfr_t, int *);
25 typedef char * (*testsemi1)(uint32 *, uint32 *);
26 typedef char * (*testsemi2)(uint32 *, uint32 *, uint32 *);
27 typedef char * (*testsemi2f)(uint32 *, uint32 *, uint32 *);
28 typedef char * (*testldexp)(uint32 *, uint32 *, uint32 *);
29 typedef char * (*testfrexp)(uint32 *, uint32 *, uint32 *);
30 typedef char * (*testmodf)(uint32 *, uint32 *, uint32 *);
31 typedef char * (*testclassify)(uint32 *, uint32 *);
32 typedef char * (*testclassifyf)(uint32 *, uint32 *);
34 typedef int (*testfunc1c)(mpc_t, mpc_t, mpc_rnd_t);
35 typedef int (*testfunc2c)(mpc_t, mpc_t, mpc_t, mpc_rnd_t);
37 typedef int (*testfunc1cr)(mpfr_t, mpc_t, mpfr_rnd_t);
39 /* Pointer to a function that generates random test cases. */
40 typedef void (*casegen)(uint32 *, uint32, uint32);
43 * List of testable functions, their types, and their testable range.
45 enum {
46 args1, /* afloat-based, one argument */
47 args1f, /* same as args1 but in single prec */
48 args2, /* afloat-based, two arguments */
49 args2f, /* same as args2 but in single prec */
50 rred, /* afloat-based, one arg, aux return */
51 rredf, /* same as rred but in single prec */
52 semi1, /* seminumerical, one argument */
53 semi1f, /* seminumerical, 1 arg, float */
54 semi2, /* seminumerical, two arguments */
55 semi2f, /* seminumerical, 2 args, floats */
56 t_ldexp, /* dbl * int -> dbl */
57 t_ldexpf, /* sgl * int -> sgl */
58 t_frexp, /* dbl -> dbl * int */
59 t_frexpf, /* sgl -> sgl * int */
60 t_modf, /* dbl -> dbl * dbl */
61 t_modff, /* sgl -> sgl * sgl */
62 classify, /* classify double: dbl -> int */
63 classifyf, /* classify float: flt -> int */
64 compare, /* compare doubles, returns int */
65 comparef, /* compare floats, returns int */
67 args1c, /* acomplex-base, one argument */
68 args2c,
69 args1fc,
70 args2fc,
71 args1cr, /* dbl-complex -> complex */
72 args1fcr /* sgl-complex -> complex */
75 typedef struct __testable Testable;
76 struct __testable {
77 char *name;
78 funcptr func;
79 int type;
80 wrapperfunc wrappers[MAXWRAPPERS];
81 casegen cases; /* complex functions use the same casegen for both real and complex args */
82 uint32 caseparam1, caseparam2;
85 extern Testable functions[];
86 extern const int nfunctions;
88 extern void init_pi(void);
90 int nargs_(Testable* f);
92 #endif