#!/bin/sh
#
# Copyright (c) 2013, Alexey Degtyarev <alexey@renatasystems.org>. 
# All rights reserved.
#
# Detect MMX capability in processor and compiler.
#
# $Id$

TMPFILE=`mktemp -t gost3411-autotest.XXXXXX` || exit 1
trap "rm -f ${TMPFILE} ${TMPFILE}.c 2>/dev/null" INT TERM EXIT

cat <<EOF > ${TMPFILE}.c
#include <mmintrin.h>

int main()
{
    __m64 mm0, mm1;
    unsigned int r0;
    mm0 = _mm_cvtsi32_si64(0x12345678);
    mm1 = _mm_cvtsi32_si64(0x87654321);
    mm0 = _mm_xor_si64(mm0, mm1);
    r0  = _mm_cvtsi64_si32(mm0);
    if (r0 == 0x95511559) return 0;
    return 1;
}
EOF

${CC} -mmmx -o ${TMPFILE} ${TMPFILE}.c 2>/dev/null

if [ ! -x ${TMPFILE} ]; then
    exit 0
fi

${TMPFILE} 2>/dev/null

if [ $? -eq 0 ]
then

    cat << EOF
#ifndef __GOST3411_HAS_MMX__
#define __GOST3411_HAS_MMX__
#endif
EOF

fi

exit 0
