diff --git a/c_check b/c_check index 178e755fb..e8f90e18a 100755 --- a/c_check +++ b/c_check @@ -162,7 +162,7 @@ fi exit 1 } -have_msa=0 +no_msa=0 if [ "$architecture" = "mips" ] || [ "$architecture" = "mips64" ]; then tmpd="$(mktemp -d)" tmpf="$tmpd/a.c" @@ -172,11 +172,10 @@ if [ "$architecture" = "mips" ] || [ "$architecture" = "mips64" ]; then printf "void main(void){ __asm__ volatile(%s); }\n" "$code" >> "$tmpf" args="$msa_flags -o $tmpf.o $tmpf" - have_msa=1 { $compiler_name $flags $args >/dev/null 2>&1 } || { - have_msa=0 + no_msa=1 } rm -rf "$tmpd" @@ -390,10 +389,7 @@ done printf "CROSS_SUFFIX=%s\n" "$cross_suffix" [ "$cross" -ne 0 ] && printf "CROSS=1\n" printf "CEXTRALIB=%s %s %s\n" "$linker_L" "$linker_l" "$linker_a" - [ "$have_msa" -eq 1 ] && { - printf "HAVE_MSA=1\n" - printf "MSA_FLAGS=%s\n" "$msa_flags" - } + [ "$no_msa" -eq 1 ] && printf "NO_MSA=1\n" [ "$no_sve" -eq 1 ] && printf "NO_SVE=1\n" [ "$no_rv64gv" -eq 1 ] && printf "NO_RV64GV=1\n" [ "$no_avx512" -eq 1 ] && printf "NO_AVX512=1\n" @@ -412,7 +408,7 @@ compiler=`echo "$compiler" | tr '[[:lower:]]' '[[:upper:]]' ` [ "$binformat" = "bin32" ] && printf "#define __32BIT__\t1\n" [ "$binformat" = "bin64" ] && printf "#define __64BIT__\t1\n" [ -n "$need_fu" ] && printf "#define FUNDERSCORE\t%s\n" "$need_fu" - [ "$have_msa" -eq 1 ] && printf "#define HAVE_MSA\t1\n" + [ "$no_msa" -eq 1 ] && printf "#define NO_MSA\t1\n" [ "$c11_atomics" -eq 1 ] && printf "#define HAVE_C11\t1\n" } >> "$config" diff --git a/cpuid_mips.c b/cpuid_mips.c index d787e7120..77567a2e5 100644 --- a/cpuid_mips.c +++ b/cpuid_mips.c @@ -165,7 +165,9 @@ void get_cpuconfig(void){ }else{ printf("#define UNKNOWN\n"); } - if (!get_feature("msa")) printf("#define NO_MSA\n"); +#ifndef NO_MSA + if (get_feature("msa")) printf("#define HAVE_MSA\n"); +#endif } void get_libname(void){ diff --git a/getarch.c b/getarch.c index f26ca6325..937a8db68 100644 --- a/getarch.c +++ b/getarch.c @@ -969,7 +969,7 @@ USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. #define ARCHCONFIG "-DLOONGSON3R4 " \ "-DL1_DATA_SIZE=65536 -DL1_DATA_LINESIZE=32 " \ "-DL2_SIZE=512488 -DL2_LINESIZE=32 " \ - "-DDTB_DEFAULT_ENTRIES=64 -DDTB_SIZE=4096 -DL2_ASSOCIATIVE=4 " + "-DDTB_DEFAULT_ENTRIES=64 -DDTB_SIZE=4096 -DL2_ASSOCIATIVE=4 -DHAVE_MSA" #define LIBNAME "loongson3r4" #define CORENAME "LOONGSON3R4" #else @@ -983,7 +983,7 @@ USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. #define ARCHCONFIG "-DLOONGSON3R5 " \ "-DL1_DATA_SIZE=65536 -DL1_DATA_LINESIZE=64 " \ "-DL2_SIZE=1048576 -DL2_LINESIZE=64 " \ - "-DDTB_DEFAULT_ENTRIES=64 -DDTB_SIZE=4096 -DL2_ASSOCIATIVE=16 " + "-DDTB_DEFAULT_ENTRIES=64 -DDTB_SIZE=4096 -DL2_ASSOCIATIVE=16 -DHAVE_MSA" #define LIBNAME "loongson3r5" #define CORENAME "LOONGSON3R5" #else @@ -997,7 +997,7 @@ USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. #define ARCHCONFIG "-DLOONGSON2K1000 " \ "-DL1_DATA_SIZE=65536 -DL1_DATA_LINESIZE=64 " \ "-DL2_SIZE=262144 -DL2_LINESIZE=64 " \ - "-DDTB_DEFAULT_ENTRIES=64 -DDTB_SIZE=4096 -DL2_ASSOCIATIVE=16 " + "-DDTB_DEFAULT_ENTRIES=64 -DDTB_SIZE=4096 -DL2_ASSOCIATIVE=16 -DHAVE_MSA" #define LIBNAME "loongson2k1000" #define CORENAME "LOONGSON2K1000" #else @@ -1011,7 +1011,7 @@ USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. #define ARCHCONFIG "-DLOONGSONGENERIC " \ "-DL1_DATA_SIZE=65536 -DL1_DATA_LINESIZE=64 " \ "-DL2_SIZE=262144 -DL2_LINESIZE=64 " \ - "-DDTB_DEFAULT_ENTRIES=64 -DDTB_SIZE=4096 -DL2_ASSOCIATIVE=16 " + "-DDTB_DEFAULT_ENTRIES=64 -DDTB_SIZE=4096 -DL2_ASSOCIATIVE=16 -DHAVE_MSA" #define LIBNAME "loongsongeneric" #define CORENAME "LOONGSONGENERIC" #else @@ -1025,7 +1025,7 @@ USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. #define ARCHCONFIG "-DI6400 " \ "-DL1_DATA_SIZE=65536 -DL1_DATA_LINESIZE=32 " \ "-DL2_SIZE=1048576 -DL2_LINESIZE=32 " \ - "-DDTB_DEFAULT_ENTRIES=64 -DDTB_SIZE=4096 -DL2_ASSOCIATIVE=8 " + "-DDTB_DEFAULT_ENTRIES=64 -DDTB_SIZE=4096 -DL2_ASSOCIATIVE=8 -DHAVE_MSA " #define LIBNAME "i6400" #define CORENAME "I6400" #else @@ -1053,7 +1053,7 @@ USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. #define ARCHCONFIG "-DP5600 " \ "-DL1_DATA_SIZE=65536 -DL1_DATA_LINESIZE=32 " \ "-DL2_SIZE=1048576 -DL2_LINESIZE=32 " \ - "-DDTB_DEFAULT_ENTRIES=64 -DDTB_SIZE=4096 -DL2_ASSOCIATIVE=8 -DNO_MSA" + "-DDTB_DEFAULT_ENTRIES=64 -DDTB_SIZE=4096 -DL2_ASSOCIATIVE=8" #define LIBNAME "p5600" #define CORENAME "P5600" #else @@ -1067,7 +1067,7 @@ USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. #define ARCHCONFIG "-DMIPS1004K " \ "-DL1_DATA_SIZE=32768 -DL1_DATA_LINESIZE=32 " \ "-DL2_SIZE=262144 -DL2_LINESIZE=32 " \ - "-DDTB_DEFAULT_ENTRIES=64 -DDTB_SIZE=4096 -DL2_ASSOCIATIVE=8 -DNO_MSA" + "-DDTB_DEFAULT_ENTRIES=64 -DDTB_SIZE=4096 -DL2_ASSOCIATIVE=8" #define LIBNAME "mips1004K" #define CORENAME "MIPS1004K" #else @@ -1081,7 +1081,7 @@ USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. #define ARCHCONFIG "-DMIPS24K " \ "-DL1_DATA_SIZE=32768 -DL1_DATA_LINESIZE=32 " \ "-DL2_SIZE=32768 -DL2_LINESIZE=32 " \ - "-DDTB_DEFAULT_ENTRIES=64 -DDTB_SIZE=4096 -DL2_ASSOCIATIVE=8 -DNO_MSA" + "-DDTB_DEFAULT_ENTRIES=64 -DDTB_SIZE=4096 -DL2_ASSOCIATIVE=8" #define LIBNAME "mips24K" #define CORENAME "MIPS24K" #else @@ -1095,7 +1095,7 @@ USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. #define ARCHCONFIG "-DI6500 " \ "-DL1_DATA_SIZE=65536 -DL1_DATA_LINESIZE=32 " \ "-DL2_SIZE=1048576 -DL2_LINESIZE=32 " \ - "-DDTB_DEFAULT_ENTRIES=64 -DDTB_SIZE=4096 -DL2_ASSOCIATIVE=8 " + "-DDTB_DEFAULT_ENTRIES=64 -DDTB_SIZE=4096 -DL2_ASSOCIATIVE=8 -DHAVE_MSA" #define LIBNAME "i6500" #define CORENAME "I6500" #else diff --git a/param.h b/param.h index 19cbe75a5..f1f5cbdad 100644 --- a/param.h +++ b/param.h @@ -2955,7 +2955,7 @@ USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. #define GEMM_DEFAULT_OFFSET_B 0 #define GEMM_DEFAULT_ALIGN (BLASLONG) 0x03fffUL -#if defined(HAVE_MSA) && !defined(NO_MSA) +#if defined(HAVE_MSA) #define SGEMM_DEFAULT_UNROLL_M 8 #define SGEMM_DEFAULT_UNROLL_N 8