| #!/bin/bash |
| #********************************************************************************** |
| # This script is using in build/arch.mk for mips to detect the simd instructions: |
| # mmi, msa (maybe more in the future). |
| # |
| # --usage: |
| # ./mips-simd-check.sh $(CC) mmi |
| # or ./mips-simd-check.sh $(CC) msa |
| # |
| # date: 10/17/2019 Created |
| #********************************************************************************** |
| |
| TMPC=$(mktemp tmp.XXXXXX.c) |
| TMPO=$(mktemp tmp.XXXXXX.o) |
| if [ $2 == "mmi" ] |
| then |
| echo "void main(void){ __asm__ volatile(\"punpcklhw \$f0, \$f0, \$f0\"); }" > $TMPC |
| $1 -march=loongson3a $TMPC -o $TMPO &> /dev/null |
| if test -s $TMPO |
| then |
| echo "Yes" |
| fi |
| elif [ $2 == "msa" ] |
| then |
| echo "void main(void){ __asm__ volatile(\"addvi.b \$w0, \$w1, 1\"); }" > $TMPC |
| $1 -mmsa $TMPC -o $TMPO &> /dev/null |
| if test -s $TMPO |
| then |
| echo "Yes" |
| fi |
| fi |
| rm -f $TMPC $TMPO |