MIPS: make HAVE_MSA reflect cpu capability and NO_MSA software/env
This commit is contained in:
parent
3f378cb6d3
commit
31fd13d048
12
c_check
12
c_check
|
@ -162,7 +162,7 @@ fi
|
||||||
exit 1
|
exit 1
|
||||||
}
|
}
|
||||||
|
|
||||||
have_msa=0
|
no_msa=0
|
||||||
if [ "$architecture" = "mips" ] || [ "$architecture" = "mips64" ]; then
|
if [ "$architecture" = "mips" ] || [ "$architecture" = "mips64" ]; then
|
||||||
tmpd="$(mktemp -d)"
|
tmpd="$(mktemp -d)"
|
||||||
tmpf="$tmpd/a.c"
|
tmpf="$tmpd/a.c"
|
||||||
|
@ -172,11 +172,10 @@ if [ "$architecture" = "mips" ] || [ "$architecture" = "mips64" ]; then
|
||||||
printf "void main(void){ __asm__ volatile(%s); }\n" "$code" >> "$tmpf"
|
printf "void main(void){ __asm__ volatile(%s); }\n" "$code" >> "$tmpf"
|
||||||
|
|
||||||
args="$msa_flags -o $tmpf.o $tmpf"
|
args="$msa_flags -o $tmpf.o $tmpf"
|
||||||
have_msa=1
|
|
||||||
{
|
{
|
||||||
$compiler_name $flags $args >/dev/null 2>&1
|
$compiler_name $flags $args >/dev/null 2>&1
|
||||||
} || {
|
} || {
|
||||||
have_msa=0
|
no_msa=1
|
||||||
}
|
}
|
||||||
|
|
||||||
rm -rf "$tmpd"
|
rm -rf "$tmpd"
|
||||||
|
@ -390,10 +389,7 @@ done
|
||||||
printf "CROSS_SUFFIX=%s\n" "$cross_suffix"
|
printf "CROSS_SUFFIX=%s\n" "$cross_suffix"
|
||||||
[ "$cross" -ne 0 ] && printf "CROSS=1\n"
|
[ "$cross" -ne 0 ] && printf "CROSS=1\n"
|
||||||
printf "CEXTRALIB=%s %s %s\n" "$linker_L" "$linker_l" "$linker_a"
|
printf "CEXTRALIB=%s %s %s\n" "$linker_L" "$linker_l" "$linker_a"
|
||||||
[ "$have_msa" -eq 1 ] && {
|
[ "$no_msa" -eq 1 ] && printf "NO_MSA=1\n"
|
||||||
printf "HAVE_MSA=1\n"
|
|
||||||
printf "MSA_FLAGS=%s\n" "$msa_flags"
|
|
||||||
}
|
|
||||||
[ "$no_sve" -eq 1 ] && printf "NO_SVE=1\n"
|
[ "$no_sve" -eq 1 ] && printf "NO_SVE=1\n"
|
||||||
[ "$no_rv64gv" -eq 1 ] && printf "NO_RV64GV=1\n"
|
[ "$no_rv64gv" -eq 1 ] && printf "NO_RV64GV=1\n"
|
||||||
[ "$no_avx512" -eq 1 ] && printf "NO_AVX512=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" = "bin32" ] && printf "#define __32BIT__\t1\n"
|
||||||
[ "$binformat" = "bin64" ] && printf "#define __64BIT__\t1\n"
|
[ "$binformat" = "bin64" ] && printf "#define __64BIT__\t1\n"
|
||||||
[ -n "$need_fu" ] && printf "#define FUNDERSCORE\t%s\n" "$need_fu"
|
[ -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"
|
[ "$c11_atomics" -eq 1 ] && printf "#define HAVE_C11\t1\n"
|
||||||
} >> "$config"
|
} >> "$config"
|
||||||
|
|
||||||
|
|
|
@ -165,7 +165,9 @@ void get_cpuconfig(void){
|
||||||
}else{
|
}else{
|
||||||
printf("#define UNKNOWN\n");
|
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){
|
void get_libname(void){
|
||||||
|
|
18
getarch.c
18
getarch.c
|
@ -969,7 +969,7 @@ USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||||
#define ARCHCONFIG "-DLOONGSON3R4 " \
|
#define ARCHCONFIG "-DLOONGSON3R4 " \
|
||||||
"-DL1_DATA_SIZE=65536 -DL1_DATA_LINESIZE=32 " \
|
"-DL1_DATA_SIZE=65536 -DL1_DATA_LINESIZE=32 " \
|
||||||
"-DL2_SIZE=512488 -DL2_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 LIBNAME "loongson3r4"
|
||||||
#define CORENAME "LOONGSON3R4"
|
#define CORENAME "LOONGSON3R4"
|
||||||
#else
|
#else
|
||||||
|
@ -983,7 +983,7 @@ USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||||
#define ARCHCONFIG "-DLOONGSON3R5 " \
|
#define ARCHCONFIG "-DLOONGSON3R5 " \
|
||||||
"-DL1_DATA_SIZE=65536 -DL1_DATA_LINESIZE=64 " \
|
"-DL1_DATA_SIZE=65536 -DL1_DATA_LINESIZE=64 " \
|
||||||
"-DL2_SIZE=1048576 -DL2_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 LIBNAME "loongson3r5"
|
||||||
#define CORENAME "LOONGSON3R5"
|
#define CORENAME "LOONGSON3R5"
|
||||||
#else
|
#else
|
||||||
|
@ -997,7 +997,7 @@ USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||||
#define ARCHCONFIG "-DLOONGSON2K1000 " \
|
#define ARCHCONFIG "-DLOONGSON2K1000 " \
|
||||||
"-DL1_DATA_SIZE=65536 -DL1_DATA_LINESIZE=64 " \
|
"-DL1_DATA_SIZE=65536 -DL1_DATA_LINESIZE=64 " \
|
||||||
"-DL2_SIZE=262144 -DL2_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 LIBNAME "loongson2k1000"
|
||||||
#define CORENAME "LOONGSON2K1000"
|
#define CORENAME "LOONGSON2K1000"
|
||||||
#else
|
#else
|
||||||
|
@ -1011,7 +1011,7 @@ USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||||
#define ARCHCONFIG "-DLOONGSONGENERIC " \
|
#define ARCHCONFIG "-DLOONGSONGENERIC " \
|
||||||
"-DL1_DATA_SIZE=65536 -DL1_DATA_LINESIZE=64 " \
|
"-DL1_DATA_SIZE=65536 -DL1_DATA_LINESIZE=64 " \
|
||||||
"-DL2_SIZE=262144 -DL2_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 LIBNAME "loongsongeneric"
|
||||||
#define CORENAME "LOONGSONGENERIC"
|
#define CORENAME "LOONGSONGENERIC"
|
||||||
#else
|
#else
|
||||||
|
@ -1025,7 +1025,7 @@ USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||||
#define ARCHCONFIG "-DI6400 " \
|
#define ARCHCONFIG "-DI6400 " \
|
||||||
"-DL1_DATA_SIZE=65536 -DL1_DATA_LINESIZE=32 " \
|
"-DL1_DATA_SIZE=65536 -DL1_DATA_LINESIZE=32 " \
|
||||||
"-DL2_SIZE=1048576 -DL2_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 LIBNAME "i6400"
|
||||||
#define CORENAME "I6400"
|
#define CORENAME "I6400"
|
||||||
#else
|
#else
|
||||||
|
@ -1053,7 +1053,7 @@ USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||||
#define ARCHCONFIG "-DP5600 " \
|
#define ARCHCONFIG "-DP5600 " \
|
||||||
"-DL1_DATA_SIZE=65536 -DL1_DATA_LINESIZE=32 " \
|
"-DL1_DATA_SIZE=65536 -DL1_DATA_LINESIZE=32 " \
|
||||||
"-DL2_SIZE=1048576 -DL2_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 LIBNAME "p5600"
|
||||||
#define CORENAME "P5600"
|
#define CORENAME "P5600"
|
||||||
#else
|
#else
|
||||||
|
@ -1067,7 +1067,7 @@ USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||||
#define ARCHCONFIG "-DMIPS1004K " \
|
#define ARCHCONFIG "-DMIPS1004K " \
|
||||||
"-DL1_DATA_SIZE=32768 -DL1_DATA_LINESIZE=32 " \
|
"-DL1_DATA_SIZE=32768 -DL1_DATA_LINESIZE=32 " \
|
||||||
"-DL2_SIZE=262144 -DL2_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 LIBNAME "mips1004K"
|
||||||
#define CORENAME "MIPS1004K"
|
#define CORENAME "MIPS1004K"
|
||||||
#else
|
#else
|
||||||
|
@ -1081,7 +1081,7 @@ USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||||
#define ARCHCONFIG "-DMIPS24K " \
|
#define ARCHCONFIG "-DMIPS24K " \
|
||||||
"-DL1_DATA_SIZE=32768 -DL1_DATA_LINESIZE=32 " \
|
"-DL1_DATA_SIZE=32768 -DL1_DATA_LINESIZE=32 " \
|
||||||
"-DL2_SIZE=32768 -DL2_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 LIBNAME "mips24K"
|
||||||
#define CORENAME "MIPS24K"
|
#define CORENAME "MIPS24K"
|
||||||
#else
|
#else
|
||||||
|
@ -1095,7 +1095,7 @@ USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||||
#define ARCHCONFIG "-DI6500 " \
|
#define ARCHCONFIG "-DI6500 " \
|
||||||
"-DL1_DATA_SIZE=65536 -DL1_DATA_LINESIZE=32 " \
|
"-DL1_DATA_SIZE=65536 -DL1_DATA_LINESIZE=32 " \
|
||||||
"-DL2_SIZE=1048576 -DL2_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 LIBNAME "i6500"
|
||||||
#define CORENAME "I6500"
|
#define CORENAME "I6500"
|
||||||
#else
|
#else
|
||||||
|
|
2
param.h
2
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_OFFSET_B 0
|
||||||
#define GEMM_DEFAULT_ALIGN (BLASLONG) 0x03fffUL
|
#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_M 8
|
||||||
#define SGEMM_DEFAULT_UNROLL_N 8
|
#define SGEMM_DEFAULT_UNROLL_N 8
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue