etternagame/etterna
extern/fftw-3.3.8/CMakeLists.txt
:157
unset (HAVE_AVX CACHE)
unset (HAVE_AVX CACHE)
check_c_compiler_flag (${FLAG} HAVE_AVX)
file(APPEND ${TARGET_CONF_TEMP}
"#define L1_DATA_SIZE\t32768\n"
"#define L1_DATA_LINESIZE\t64\n"
"#define L2_SIZE\t262144\n"
"#define L2_LINESIZE\t64\n"
"#define DTB_DEFAULT_ENTRIES\t64\n"
"#define DTB_SIZE\t4096\n"
"#define HAVE_CMOV\n"
"#define HAVE_MMX\n"
"#define HAVE_SSE\n"
"#define HAVE_SSE2\n"
"#define HAVE_SSE3\n"
"#define HAVE_SSSE3\n"
"#define HAVE_SSE4_1\n"
"#define HAVE_SSE4_2\n"
"#define HAVE_AVX\n"
"#define SLOCAL_BUFFER_SIZE\t24576\n"
"#define DLOCAL_BUFFER_SIZE\t16384\n"
"#define CLOCAL_BUFFER_SIZE\t32768\n"
"#define ZLOCAL_BUFFER_SIZE\t24576\n")
file(APPEND ${TARGET_CONF_TEMP}
"#define L1_DATA_SIZE\t32768\n"
"#define L1_DATA_LINESIZE\t64\n"
"#define L2_SIZE\t262144\n"
"#define L2_LINESIZE\t64\n"
"#define DTB_DEFAULT_ENTRIES\t64\n"
"#define DTB_SIZE\t4096\n"
"#define HAVE_CMOV\n"
"#define HAVE_MMX\n"
"#define HAVE_SSE\n"
"#define HAVE_SSE2\n"
"#define HAVE_SSE3\n"
"#define HAVE_SSSE3\n"
"#define HAVE_SSE4_1\n"
"#define HAVE_SSE4_2\n"
"#define HAVE_AVX\n"
"#define HAVE_AVX2\n"
"#define HAVE_FMA3\n"
"#define SLOCAL_BUFFER_SIZE\t20480\n"
"#define DLOCAL_BUFFER_SIZE\t32768\n"
"#define CLOCAL_BUFFER_SIZE\t16384\n"
"#define ZLOCAL_BUFFER_SIZE\t12288\n")
file(APPEND ${TARGET_CONF_TEMP}
"#define L1_DATA_SIZE\t32768\n"
"#define L1_DATA_LINESIZE\t64\n"
"#define L2_SIZE\t262144\n"
"#define L2_LINESIZE\t64\n"
"#define DTB_DEFAULT_ENTRIES\t64\n"
"#define DTB_SIZE\t4096\n"
"#define HAVE_CMOV\n"
"#define HAVE_MMX\n"
"#define HAVE_SSE\n"
"#define HAVE_SSE2\n"
"#define HAVE_SSE3\n"
"#define HAVE_SSSE3\n"
"#define HAVE_SSE4_1\n"
"#define HAVE_SSE4_2\n"
"#define HAVE_AVX\n"
"#define HAVE_AVX2\n"
"#define HAVE_FMA3\n"
"#define HAVE_AVX512VL\n"
"#define SLOCAL_BUFFER_SIZE\t28672\n"
"#define DLOCAL_BUFFER_SIZE\t12288\n"
"#define CLOCAL_BUFFER_SIZE\t12288\n"
"#define ZLOCAL_BUFFER_SIZE\t8192\n")
file(APPEND ${TARGET_CONF_TEMP}
"#define L1_DATA_SIZE\t32768\n"
"#define L1_DATA_LINESIZE\t64\n"
"#define L2_SIZE\t262144\n"
"#define L2_LINESIZE\t64\n"
"#define DTB_DEFAULT_ENTRIES\t64\n"
"#define DTB_SIZE\t4096\n"
"#define HAVE_CMOV\n"
"#define HAVE_MMX\n"
"#define HAVE_SSE\n"
"#define HAVE_SSE2\n"
"#define HAVE_SSE3\n"
"#define HAVE_SSSE3\n"
"#define HAVE_SSE4_1\n"
"#define HAVE_SSE4_2\n"
"#define HAVE_AVX\n"
"#define HAVE_AVX2\n"
"#define HAVE_FMA3\n"
"#define HAVE_AVX512VL\n"
"#define HAVE_AVX512BF16\n"
"#define SLOCAL_BUFFER_SIZE\t20480\n"
"#define DLOCAL_BUFFER_SIZE\t12288\n"
"#define CLOCAL_BUFFER_SIZE\t12288\n"
"#define ZLOCAL_BUFFER_SIZE\t8192\n")
file(APPEND ${TARGET_CONF_TEMP}
"#define L1_DATA_SIZE\t32768\n"
"#define L1_DATA_LINESIZE\t64\n"
"#define L2_SIZE\t262144\n"
"#define L2_LINESIZE\t64\n"
"#define DTB_DEFAULT_ENTRIES\t64\n"
"#define DTB_SIZE\t4096\n"
"#define HAVE_CMOV\n"
"#define HAVE_MMX\n"
"#define HAVE_SSE\n"
"#define HAVE_SSE2\n"
"#define HAVE_SSE3\n"
"#define HAVE_SSSE3\n"
"#define HAVE_SSE4_1\n"
"#define HAVE_SSE4_2\n"
"#define HAVE_AVX\n"
"#define HAVE_AVX2\n"
"#define HAVE_FMA3\n"
"#define HAVE_AVX512VL\n"
"#define HAVE_AVX512BF16\n"
"#define SLOCAL_BUFFER_SIZE\t20480\n"
"#define DLOCAL_BUFFER_SIZE\t12288\n"
"#define CLOCAL_BUFFER_SIZE\t12288\n"
"#define ZLOCAL_BUFFER_SIZE\t8192\n")
file(APPEND ${TARGET_CONF_TEMP}
"#define L1_DATA_SIZE\t49152\n"
"#define L1_DATA_LINESIZE\t64\n"
"#define L2_SIZE\t1024000\n"
"#define L2_LINESIZE\t64\n"
"#define DTB_DEFAULT_ENTRIES\t32\n"
"#define DTB_SIZE\t4096\n"
"#define HAVE_MMX\n"
"#define HAVE_SSE\n"
"#define HAVE_SSE2\n"
"#define HAVE_SSE3\n"
"#define HAVE_SSE4A\n"
"#define HAVE_AVX\n"
"#define HAVE_MISALIGNSSE\n"
"#define HAVE_128BITFPU\n"
"#define HAVE_FASTMOVU\n"
"#define SLOCAL_BUFFER_SIZE\t5376\n"
"#define DLOCAL_BUFFER_SIZE\t5376\n"
"#define CLOCAL_BUFFER_SIZE\t14336\n"
"#define ZLOCAL_BUFFER_SIZE\t14336\n")
file(APPEND ${TARGET_CONF_TEMP}
"#define L1_DATA_SIZE\t16384\n"
"#define L1_DATA_LINESIZE\t64\n"
"#define L2_SIZE\t2097152\n"
"#define L2_LINESIZE\t64\n"
"#define DTB_DEFAULT_ENTRIES\t64\n"
"#define DTB_SIZE\t4096\n"
"#define HAVE_MMX\n"
"#define HAVE_SSE\n"
"#define HAVE_SSE2\n"
"#define HAVE_SSE3\n"
"#define HAVE_SSE4_1\n"
"#define HAVE_SSE4_2\n"
"#define HAVE_SSE4A\n"
"#define HAVE_AVX\n"
"#define HAVE_MISALIGNSSE\n"
"#define HAVE_128BITFPU\n"
"#define HAVE_FASTMOVU\n"
"#define HAVE_CFLUSH\n"
"#define HAVE_FMA3\n"
"#define SLOCAL_BUFFER_SIZE\t6144\n"
"#define DLOCAL_BUFFER_SIZE\t5376\n"
"#define CLOCAL_BUFFER_SIZE\t10752\n"
"#define ZLOCAL_BUFFER_SIZE\t10752\n")
file(APPEND ${TARGET_CONF_TEMP}
"#define L1_DATA_SIZE\t16384\n"
"#define L1_DATA_LINESIZE\t64\n"
"#define L2_SIZE\t2097152\n"
"#define L2_LINESIZE\t64\n"
"#define DTB_DEFAULT_ENTRIES\t64\n"
"#define DTB_SIZE\t4096\n"
"#define HAVE_MMX\n"
"#define HAVE_SSE\n"
"#define HAVE_SSE2\n"
"#define HAVE_SSE3\n"
"#define HAVE_SSE4_1\n"
"#define HAVE_SSE4_2\n"
"#define HAVE_SSE4A\n"
"#define HAVE_AVX\n"
"#define HAVE_MISALIGNSSE\n"
"#define HAVE_128BITFPU\n"
"#define HAVE_FASTMOVU\n"
"#define HAVE_CFLUSH\n"
"#define HAVE_FMA3\n"
"#define SLOCAL_BUFFER_SIZE\t6144\n"
"#define DLOCAL_BUFFER_SIZE\t5120\n"
"#define CLOCAL_BUFFER_SIZE\t10240\n"
"#define ZLOCAL_BUFFER_SIZE\t10240\n")
file(APPEND ${TARGET_CONF_TEMP}
"#define L1_DATA_SIZE\t16384\n"
"#define L1_DATA_LINESIZE\t64\n"
"#define L2_SIZE\t2097152\n"
"#define L2_LINESIZE\t64\n"
"#define DTB_DEFAULT_ENTRIES\t64\n"
"#define DTB_SIZE\t4096\n"
"#define HAVE_MMX\n"
"#define HAVE_SSE\n"
"#define HAVE_SSE2\n"
"#define HAVE_SSE3\n"
"#define HAVE_SSE4_1\n"
"#define HAVE_SSE4_2\n"
"#define HAVE_SSE4A\n"
"#define HAVE_AVX\n"
"#define HAVE_MISALIGNSSE\n"
"#define HAVE_128BITFPU\n"
"#define HAVE_FASTMOVU\n"
"#define HAVE_CFLUSH\n"
"#define HAVE_FMA3\n"
"#define SLOCAL_BUFFER_SIZE\t6144\n"
"#define DLOCAL_BUFFER_SIZE\t5120\n"
"#define CLOCAL_BUFFER_SIZE\t10240\n"
"#define ZLOCAL_BUFFER_SIZE\t10240\n")
file(APPEND ${TARGET_CONF_TEMP}
"#define L1_DATA_SIZE\t32768\n"
"#define L1_DATA_LINESIZE\t64\n"
"#define L2_SIZE\t524288\n"
"#define L2_LINESIZE\t64\n"
"#define DTB_DEFAULT_ENTRIES\t64\n"
"#define DTB_SIZE\t4096\n"
"#define HAVE_MMX\n"
"#define HAVE_SSE\n"
"#define HAVE_SSE2\n"
"#define HAVE_SSE3\n"
"#define HAVE_SSE4_1\n"
"#define HAVE_SSE4_2\n"
"#define HAVE_SSE4A\n"
"#define HAVE_MISALIGNSSE\n"
"#define HAVE_128BITFPU\n"
"#define HAVE_FASTMOVU\n"
"#define HAVE_CFLUSH\n"
"#define HAVE_AVX\n"
"#define HAVE_AVX2\n"
"#define HAVE_FMA3\n"
"#define SLOCAL_BUFFER_SIZE\t20480\n"
"#define DLOCAL_BUFFER_SIZE\t32768\n"
"#define CLOCAL_BUFFER_SIZE\t16384\n"
"#define ZLOCAL_BUFFER_SIZE\t12288\n")
unset (HAVE_AVX)
add_definitions("-DHAVE_AVX")
check_cxx_compiler_flag("-mavx" HAVE_AVX)
add_definitions("-DHAVE_AVX")
endif(HAVE_AVX)
message(STATUS "HAVE_AVX: ${HAVE_AVX}")
endif(HAVE_AVX)
endif(HAVE_AVX)
endif(HAVE_AVX)
check_c_source_runs("
#include <immintrin.h>
int main()
{
__m256 a, b, c;
const float src[8] = { 1.0f, 2.0f, 3.0f, 4.0f, 5.0f, 6.0f, 7.0f, 8.0f };
float dst[8];
a = _mm256_loadu_ps( src );
b = _mm256_loadu_ps( src );
c = _mm256_add_ps( a, b );
_mm256_storeu_ps( dst, c );
int i = 0;
for( i = 0; i < 8; i++ ){
if( ( src[i] + src[i] ) != dst[i] ){
return -1;
}
}
return 0;
}"
HAVE_AVX)
mark_as_advanced(HAVE_SSE, HAVE_AVX, HAVE_AVX2, HAVE_FMA, HAVE_AVX512)
CHECK_INCLUDE_FILE("immintrin.h" HAVE_AVX)
file(APPEND ${TARGET_CONF_TEMP}
"#define L1_DATA_SIZE\t32768\n"
"#define L1_DATA_LINESIZE\t64\n"
"#define L2_SIZE\t262144\n"
"#define L2_LINESIZE\t64\n"
"#define DTB_DEFAULT_ENTRIES\t64\n"
"#define DTB_SIZE\t4096\n"
"#define HAVE_CMOV\n"
"#define HAVE_MMX\n"
"#define HAVE_SSE\n"
"#define HAVE_SSE2\n"
"#define HAVE_SSE3\n"
"#define HAVE_SSSE3\n"
"#define HAVE_SSE4_1\n"
"#define HAVE_SSE4_2\n"
"#define HAVE_AVX\n"
"#define SLOCAL_BUFFER_SIZE\t24576\n"
"#define DLOCAL_BUFFER_SIZE\t16384\n"
"#define CLOCAL_BUFFER_SIZE\t32768\n"
"#define ZLOCAL_BUFFER_SIZE\t24576\n")
file(APPEND ${TARGET_CONF_TEMP}
"#define L1_DATA_SIZE\t32768\n"
"#define L1_DATA_LINESIZE\t64\n"
"#define L2_SIZE\t262144\n"
"#define L2_LINESIZE\t64\n"
"#define DTB_DEFAULT_ENTRIES\t64\n"
"#define DTB_SIZE\t4096\n"
"#define HAVE_CMOV\n"
"#define HAVE_MMX\n"
"#define HAVE_SSE\n"
"#define HAVE_SSE2\n"
"#define HAVE_SSE3\n"
"#define HAVE_SSSE3\n"
"#define HAVE_SSE4_1\n"
"#define HAVE_SSE4_2\n"
"#define HAVE_AVX\n"
"#define HAVE_AVX2\n"
"#define HAVE_FMA3\n"
"#define SLOCAL_BUFFER_SIZE\t20480\n"
"#define DLOCAL_BUFFER_SIZE\t32768\n"
"#define CLOCAL_BUFFER_SIZE\t16384\n"
"#define ZLOCAL_BUFFER_SIZE\t12288\n")
file(APPEND ${TARGET_CONF_TEMP}
"#define L1_DATA_SIZE\t32768\n"
"#define L1_DATA_LINESIZE\t64\n"
"#define L2_SIZE\t262144\n"
"#define L2_LINESIZE\t64\n"
"#define DTB_DEFAULT_ENTRIES\t64\n"
"#define DTB_SIZE\t4096\n"
"#define HAVE_CMOV\n"
"#define HAVE_MMX\n"
"#define HAVE_SSE\n"
"#define HAVE_SSE2\n"
"#define HAVE_SSE3\n"
"#define HAVE_SSSE3\n"
"#define HAVE_SSE4_1\n"
"#define HAVE_SSE4_2\n"
"#define HAVE_AVX\n"
"#define HAVE_AVX2\n"
"#define HAVE_FMA3\n"
"#define HAVE_AVX512VL\n"
"#define SLOCAL_BUFFER_SIZE\t28672\n"
"#define DLOCAL_BUFFER_SIZE\t12288\n"
"#define CLOCAL_BUFFER_SIZE\t12288\n"
"#define ZLOCAL_BUFFER_SIZE\t8192\n")
file(APPEND ${TARGET_CONF_TEMP}
"#define L1_DATA_SIZE\t32768\n"
"#define L1_DATA_LINESIZE\t64\n"
"#define L2_SIZE\t262144\n"
"#define L2_LINESIZE\t64\n"
"#define DTB_DEFAULT_ENTRIES\t64\n"
"#define DTB_SIZE\t4096\n"
"#define HAVE_CMOV\n"
"#define HAVE_MMX\n"
"#define HAVE_SSE\n"
"#define HAVE_SSE2\n"
"#define HAVE_SSE3\n"
"#define HAVE_SSSE3\n"
"#define HAVE_SSE4_1\n"
"#define HAVE_SSE4_2\n"
"#define HAVE_AVX\n"
"#define HAVE_AVX2\n"
"#define HAVE_FMA3\n"
"#define HAVE_AVX512VL\n"
"#define HAVE_AVX512BF16\n"
"#define SLOCAL_BUFFER_SIZE\t20480\n"
"#define DLOCAL_BUFFER_SIZE\t12288\n"
"#define CLOCAL_BUFFER_SIZE\t12288\n"
"#define ZLOCAL_BUFFER_SIZE\t8192\n")
file(APPEND ${TARGET_CONF_TEMP}
"#define L1_DATA_SIZE\t32768\n"
"#define L1_DATA_LINESIZE\t64\n"
"#define L2_SIZE\t262144\n"
"#define L2_LINESIZE\t64\n"
"#define DTB_DEFAULT_ENTRIES\t64\n"
"#define DTB_SIZE\t4096\n"
"#define HAVE_CMOV\n"
"#define HAVE_MMX\n"
"#define HAVE_SSE\n"
"#define HAVE_SSE2\n"
"#define HAVE_SSE3\n"
"#define HAVE_SSSE3\n"
"#define HAVE_SSE4_1\n"
"#define HAVE_SSE4_2\n"
"#define HAVE_AVX\n"
"#define HAVE_AVX2\n"
"#define HAVE_FMA3\n"
"#define HAVE_AVX512VL\n"
"#define HAVE_AVX512BF16\n"
"#define SLOCAL_BUFFER_SIZE\t20480\n"
"#define DLOCAL_BUFFER_SIZE\t12288\n"
"#define CLOCAL_BUFFER_SIZE\t12288\n"
"#define ZLOCAL_BUFFER_SIZE\t8192\n")
file(APPEND ${TARGET_CONF_TEMP}
"#define L1_DATA_SIZE\t49152\n"
"#define L1_DATA_LINESIZE\t64\n"
"#define L2_SIZE\t1024000\n"
"#define L2_LINESIZE\t64\n"
"#define DTB_DEFAULT_ENTRIES\t32\n"
"#define DTB_SIZE\t4096\n"
"#define HAVE_MMX\n"
"#define HAVE_SSE\n"
"#define HAVE_SSE2\n"
"#define HAVE_SSE3\n"
"#define HAVE_SSE4A\n"
"#define HAVE_AVX\n"
"#define HAVE_MISALIGNSSE\n"
"#define HAVE_128BITFPU\n"
"#define HAVE_FASTMOVU\n"
"#define SLOCAL_BUFFER_SIZE\t5376\n"
"#define DLOCAL_BUFFER_SIZE\t5376\n"
"#define CLOCAL_BUFFER_SIZE\t14336\n"
"#define ZLOCAL_BUFFER_SIZE\t14336\n")
file(APPEND ${TARGET_CONF_TEMP}
"#define L1_DATA_SIZE\t16384\n"
"#define L1_DATA_LINESIZE\t64\n"
"#define L2_SIZE\t2097152\n"
"#define L2_LINESIZE\t64\n"
"#define DTB_DEFAULT_ENTRIES\t64\n"
"#define DTB_SIZE\t4096\n"
"#define HAVE_MMX\n"
"#define HAVE_SSE\n"
"#define HAVE_SSE2\n"
"#define HAVE_SSE3\n"
"#define HAVE_SSE4_1\n"
"#define HAVE_SSE4_2\n"
"#define HAVE_SSE4A\n"
"#define HAVE_AVX\n"
"#define HAVE_MISALIGNSSE\n"
"#define HAVE_128BITFPU\n"
"#define HAVE_FASTMOVU\n"
"#define HAVE_CFLUSH\n"
"#define HAVE_FMA3\n"
"#define SLOCAL_BUFFER_SIZE\t6144\n"
"#define DLOCAL_BUFFER_SIZE\t5376\n"
"#define CLOCAL_BUFFER_SIZE\t10752\n"
"#define ZLOCAL_BUFFER_SIZE\t10752\n")
file(APPEND ${TARGET_CONF_TEMP}
"#define L1_DATA_SIZE\t16384\n"
"#define L1_DATA_LINESIZE\t64\n"
"#define L2_SIZE\t2097152\n"
"#define L2_LINESIZE\t64\n"
"#define DTB_DEFAULT_ENTRIES\t64\n"
"#define DTB_SIZE\t4096\n"
"#define HAVE_MMX\n"
"#define HAVE_SSE\n"
"#define HAVE_SSE2\n"
"#define HAVE_SSE3\n"
"#define HAVE_SSE4_1\n"
"#define HAVE_SSE4_2\n"
"#define HAVE_SSE4A\n"
"#define HAVE_AVX\n"
"#define HAVE_MISALIGNSSE\n"
"#define HAVE_128BITFPU\n"
"#define HAVE_FASTMOVU\n"
"#define HAVE_CFLUSH\n"
"#define HAVE_FMA3\n"
"#define SLOCAL_BUFFER_SIZE\t6144\n"
"#define DLOCAL_BUFFER_SIZE\t5120\n"
"#define CLOCAL_BUFFER_SIZE\t10240\n"
"#define ZLOCAL_BUFFER_SIZE\t10240\n")
file(APPEND ${TARGET_CONF_TEMP}
"#define L1_DATA_SIZE\t16384\n"
"#define L1_DATA_LINESIZE\t64\n"
"#define L2_SIZE\t2097152\n"
"#define L2_LINESIZE\t64\n"
"#define DTB_DEFAULT_ENTRIES\t64\n"
"#define DTB_SIZE\t4096\n"
"#define HAVE_MMX\n"
"#define HAVE_SSE\n"
"#define HAVE_SSE2\n"
"#define HAVE_SSE3\n"
"#define HAVE_SSE4_1\n"
"#define HAVE_SSE4_2\n"
"#define HAVE_SSE4A\n"
"#define HAVE_AVX\n"
"#define HAVE_MISALIGNSSE\n"
"#define HAVE_128BITFPU\n"
"#define HAVE_FASTMOVU\n"
"#define HAVE_CFLUSH\n"
"#define HAVE_FMA3\n"
"#define SLOCAL_BUFFER_SIZE\t6144\n"
"#define DLOCAL_BUFFER_SIZE\t5120\n"
"#define CLOCAL_BUFFER_SIZE\t10240\n"
"#define ZLOCAL_BUFFER_SIZE\t10240\n")
file(APPEND ${TARGET_CONF_TEMP}
"#define L1_DATA_SIZE\t32768\n"
"#define L1_DATA_LINESIZE\t64\n"
"#define L2_SIZE\t524288\n"
"#define L2_LINESIZE\t64\n"
"#define DTB_DEFAULT_ENTRIES\t64\n"
"#define DTB_SIZE\t4096\n"
"#define HAVE_MMX\n"
"#define HAVE_SSE\n"
"#define HAVE_SSE2\n"
"#define HAVE_SSE3\n"
"#define HAVE_SSE4_1\n"
"#define HAVE_SSE4_2\n"
"#define HAVE_SSE4A\n"
"#define HAVE_MISALIGNSSE\n"
"#define HAVE_128BITFPU\n"
"#define HAVE_FASTMOVU\n"
"#define HAVE_CFLUSH\n"
"#define HAVE_AVX\n"
"#define HAVE_AVX2\n"
"#define HAVE_FMA3\n"
"#define SLOCAL_BUFFER_SIZE\t20480\n"
"#define DLOCAL_BUFFER_SIZE\t32768\n"
"#define CLOCAL_BUFFER_SIZE\t16384\n"
"#define ZLOCAL_BUFFER_SIZE\t12288\n")
unset (HAVE_AVX)