diff --git a/c_check b/c_check index 405963ae6..1826955b2 100644 --- a/c_check +++ b/c_check @@ -229,6 +229,16 @@ $architecture = zarch if ($data =~ /ARCH_ZARCH/); $binformat = bin32; $binformat = bin64 if ($data =~ /BINARY_64/); + +if ($compiler eq "GCC" &&( ($architecture eq "x86") || ($architecture eq "x86_64"))) { +$no_avx2 = 0; +$no_fma = 0; +$data = `$compiler_name -dumpversion`; +if ($data <= 4.6) { +$no_avx2 = 1; +$no_fma = 1; +} +} $no_avx512= 0; if (($architecture eq "x86") || ($architecture eq "x86_64")) { eval "use File::Temp qw(tempfile)"; @@ -368,6 +378,8 @@ print MAKEFILE "CEXTRALIB=$linker_L $linker_l $linker_a\n"; print MAKEFILE "HAVE_MSA=1\n" if $have_msa eq 1; print MAKEFILE "MSA_FLAGS=$msa_flags\n" if $have_msa eq 1; print MAKEFILE "NO_AVX512=1\n" if $no_avx512 eq 1; +print MAKEFILE "NO_AVX2=1\n" if $no_avx2 eq 1; +print MAKEFILE "NO_FMA=1\n" if $no_fma eq 1; $os =~ tr/[a-z]/[A-Z]/; $architecture =~ tr/[a-z]/[A-Z]/;