Files
kissfft/test/test_simd.c
2025-09-01 18:07:43 +08:00

40 lines
864 B
C

#include <kiss_fftnd.h>
static void test1(void)
{
int is_inverse = 1;
int n[2] = {256,256};
size_t nbytes = sizeof(kiss_fft_cpx)*n[0]*n[1];
#if defined(HAVE_LSX) || defined(HAVE_LASX)
kiss_fft_cpx * inbuf = NULL;
kiss_fft_cpx * outbuf = NULL;
if (posix_memalign((void**)&inbuf, 16, nbytes) ||
posix_memalign((void**)&outbuf, 16, nbytes))
return;
#else
kiss_fft_cpx * inbuf = _mm_malloc(nbytes,16);
kiss_fft_cpx * outbuf = _mm_malloc(nbytes,16);
#endif
memset(inbuf,0,nbytes);
memset(outbuf,0,nbytes);
kiss_fftnd_cfg cfg = kiss_fftnd_alloc(n,2,is_inverse,0,0);
kiss_fftnd(cfg,inbuf,outbuf);
kiss_fft_free(cfg);
#if defined(HAVE_LSX) || defined(HAVE_LASX)
free(inbuf);
free(outbuf);
#else
_mm_free(inbuf);
_mm_free(outbuf);
#endif
}
int main(void)
{
test1();
return 0;
}