Add another FP recoding test case
[riscv-tests.git] / benchmarks / vec-fft / fft_const.h
1 // See LICENSE for license details.
2
3 #ifndef __FFT_CONST_H
4 #define __FFT_CONST_H
5
6 #ifndef FFT_SIZE
7 #define FFT_SIZE 1024
8 #endif /* FFT_SIZE */
9
10 #if 0
11 #define FFT_FIXED
12 #define DATA_IN_PERMUTED
13 #else
14 // #define DATA_IN_UNPERMUTED
15 #define FFT_FLOATING
16 #define FFT_FLOATING_PREC 64
17 #endif
18
19 #if defined(FFT_FIXED)
20 #define FIX_PT 20
21 #define DATA_WIDTH 32
22 #elif defined(FFT_FLOATING)
23 #if FFT_FLOATING_PREC == 16
24 #define FP_HALF
25 #elif FFT_FLOATING_PREC == 32
26 #define FP_SINGLE
27 #elif FFT_FLOATING_PREC == 64
28 #define FP_DOUBLE
29 #else
30 #error "Unsupported floating-point configuration"
31 #endif
32 #define DATA_WIDTH FFT_FLOATING_PREC
33 #else
34 #error "Define fixed or floating point in fft_const.h"
35 #endif
36
37 #if !defined(__ASSEMBLY__)
38
39 #include <stdint.h>
40 #include <inttypes.h>
41
42 #if defined(FFT_FIXED)
43 typedef int fftval_t;
44 typedef int fftbit_t;
45 #define FFT_PRI "%08x"
46 #elif defined(FFT_FLOATING)
47 #if defined(FP_HALF)
48 typedef uint16_t fftval_t;
49 typedef uint16_t fftbit_t;
50 #define FFT_PRI "%04" PRIx16
51 #elif defined(FP_SINGLE)
52 typedef float fftval_t;
53 typedef uint32_t fftbit_t;
54 #define FFT_PRI "%08" PRIx32
55 #elif defined(FP_DOUBLE)
56 typedef double fftval_t;
57 typedef uint64_t fftbit_t;
58 #define FFT_PRI "%016" PRIx64
59 #endif
60 #endif
61
62 extern fftval_t input_data_real[FFT_SIZE];
63 extern fftval_t input_data_imag[FFT_SIZE];
64 extern fftval_t output_data_real[FFT_SIZE];
65 extern fftval_t output_data_imag[FFT_SIZE];
66 extern fftval_t tf_real[FFT_SIZE];
67 extern fftval_t tf_imag[FFT_SIZE];
68
69 #endif /* __ASSEMBLY__ */
70
71 #endif /* __FFT_CONST_H */