blob: 597ddcdc22bd70d265acbe5b0516059b118a10eb [file] [log] [blame]
#!/bin/bash
# Copyright (c) 2021 Loongson Technology Corporation Limited
# Contributed by Xiwei Gu <guxiwei-hf@loongson.cn>
# Contributed by Lu Wang <wanglu@loongson.cn>
#
#***************************************************************************************
# This script is used in build/arch.mk for loongarch to detect the simd instructions:
# lsx, lasx (maybe more in the future).
#
# --usage:
# ./loongarch-simd-check.sh $(CC) lsx
# or ./loongarch-simd-check.sh $(CC) lasx
#
# date: 11/23/2021 Created
#***************************************************************************************
TMPC=$(mktemp tmp.XXXXXX.c)
TMPO=$(mktemp tmp.XXXXXX.o)
if [ $2 == "lsx" ]
then
echo "void main(void){ __asm__ volatile(\"vadd.b \$vr0, \$vr1, \$vr1\"); }" > $TMPC
$1 -mlsx $TMPC -o $TMPO &> /dev/null
if test -s $TMPO
then
echo "Yes"
fi
elif [ $2 == "lasx" ]
then
echo "void main(void){ __asm__ volatile(\"xvadd.b \$xr0, \$xr1, \$xr1\"); }" > $TMPC
$1 -mlasx $TMPC -o $TMPO &> /dev/null
if test -s $TMPO
then
echo "Yes"
fi
fi
rm -f $TMPC $TMPO