Coverage Report

Created: 2025-06-22 06:45

/src/fftw3/rdft/conf.c
Line
Count
Source
1
/*
2
 * Copyright (c) 2003, 2007-14 Matteo Frigo
3
 * Copyright (c) 2003, 2007-14 Massachusetts Institute of Technology
4
 *
5
 * This program is free software; you can redistribute it and/or modify
6
 * it under the terms of the GNU General Public License as published by
7
 * the Free Software Foundation; either version 2 of the License, or
8
 * (at your option) any later version.
9
 *
10
 * This program is distributed in the hope that it will be useful,
11
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
12
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
13
 * GNU General Public License for more details.
14
 *
15
 * You should have received a copy of the GNU General Public License
16
 * along with this program; if not, write to the Free Software
17
 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
18
 *
19
 */
20
21
22
#include "rdft/rdft.h"
23
24
static const solvtab s =
25
{
26
     SOLVTAB(X(rdft_indirect_register)),
27
     SOLVTAB(X(rdft_rank0_register)),
28
     SOLVTAB(X(rdft_vrank3_transpose_register)),
29
     SOLVTAB(X(rdft_vrank_geq1_register)),
30
31
     SOLVTAB(X(rdft_nop_register)),
32
     SOLVTAB(X(rdft_buffered_register)),
33
     SOLVTAB(X(rdft_generic_register)),
34
     SOLVTAB(X(rdft_rank_geq2_register)),
35
36
     SOLVTAB(X(dft_r2hc_register)),
37
38
     SOLVTAB(X(rdft_dht_register)),
39
     SOLVTAB(X(dht_r2hc_register)),
40
     SOLVTAB(X(dht_rader_register)),
41
42
     SOLVTAB(X(rdft2_vrank_geq1_register)),
43
     SOLVTAB(X(rdft2_nop_register)),
44
     SOLVTAB(X(rdft2_rank0_register)),
45
     SOLVTAB(X(rdft2_buffered_register)),
46
     SOLVTAB(X(rdft2_rank_geq2_register)),
47
     SOLVTAB(X(rdft2_rdft_register)),
48
49
     SOLVTAB(X(hc2hc_generic_register)),
50
51
     SOLVTAB_END
52
};
53
54
void X(rdft_conf_standard)(planner *p)
55
1
{
56
1
     X(solvtab_exec)(s, p);
57
1
     X(solvtab_exec)(X(solvtab_rdft_r2cf), p);
58
1
     X(solvtab_exec)(X(solvtab_rdft_r2cb), p);
59
1
     X(solvtab_exec)(X(solvtab_rdft_r2r), p);
60
61
#if HAVE_SSE2
62
     if (X(have_simd_sse2)())
63
    X(solvtab_exec)(X(solvtab_rdft_sse2), p);
64
#endif
65
#if HAVE_AVX
66
     if (X(have_simd_avx)())
67
    X(solvtab_exec)(X(solvtab_rdft_avx), p);
68
#endif
69
#if HAVE_AVX_128_FMA
70
     if (X(have_simd_avx_128_fma)())
71
          X(solvtab_exec)(X(solvtab_rdft_avx_128_fma), p);
72
#endif
73
#if HAVE_AVX2
74
     if (X(have_simd_avx2)())
75
         X(solvtab_exec)(X(solvtab_rdft_avx2), p);
76
     if (X(have_simd_avx2_128)())
77
         X(solvtab_exec)(X(solvtab_rdft_avx2_128), p);
78
#endif
79
#if HAVE_AVX512
80
     if (X(have_simd_avx512)())
81
    X(solvtab_exec)(X(solvtab_rdft_avx512), p);
82
#endif
83
#if HAVE_KCVI
84
     if (X(have_simd_kcvi)())
85
    X(solvtab_exec)(X(solvtab_rdft_kcvi), p);
86
#endif
87
#if HAVE_ALTIVEC
88
     if (X(have_simd_altivec)())
89
    X(solvtab_exec)(X(solvtab_rdft_altivec), p);
90
#endif
91
#if HAVE_VSX
92
     if (X(have_simd_vsx)())
93
       X(solvtab_exec)(X(solvtab_rdft_vsx), p);
94
#endif
95
#if HAVE_NEON
96
     if (X(have_simd_neon)())
97
    X(solvtab_exec)(X(solvtab_rdft_neon), p);
98
#endif
99
#if HAVE_SVE
100
     if (X(have_simd_sve)(128))
101
          X(solvtab_exec)(X(solvtab_rdft_sve128), p);
102
     if (X(have_simd_sve)(256))
103
          X(solvtab_exec)(X(solvtab_rdft_sve256), p);
104
     if (X(have_simd_sve)(512))
105
          X(solvtab_exec)(X(solvtab_rdft_sve512), p);
106
     if (X(have_simd_sve)(1024))
107
          X(solvtab_exec)(X(solvtab_rdft_sve1024), p);
108
     if (X(have_simd_sve)(2048))
109
          X(solvtab_exec)(X(solvtab_rdft_sve2048), p);
110
#endif
111
#if HAVE_LSX
112
     if (X(have_simd_lsx)())
113
     X(solvtab_exec)(X(solvtab_rdft_lsx), p);
114
#endif
115
#if HAVE_LASX
116
     if (X(have_simd_lasx)())
117
     X(solvtab_exec)(X(solvtab_rdft_lasx), p);
118
#endif
119
#if HAVE_GENERIC_SIMD128
120
     X(solvtab_exec)(X(solvtab_rdft_generic_simd128), p);
121
#endif
122
#if HAVE_GENERIC_SIMD256
123
     X(solvtab_exec)(X(solvtab_rdft_generic_simd256), p);
124
#endif
125
1
}