#!/bin/sh
#
# Copyright (c) 2013, Alexey Degtyarev <alexey@renatasystems.org>. 
# All rights reserved.
#
# Detect SSE2 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 <emmintrin.h>

int main()
{
    __m128i xmm0, xmm1;
    unsigned int r0;
    xmm0 = _mm_cvtsi32_si128(0x12345678);
    xmm1 = _mm_cvtsi32_si128(0x87654321);
    xmm0 = _mm_xor_si128(xmm0, xmm1);
    r0   = _mm_cvtsi128_si32(xmm0);
    if (r0 == 0x95511559) return 0;
    return 1;
}
EOF

${CC} -msse2 -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_SSE2__
#define __GOST3411_HAS_SSE2__
#endif
EOF

fi

exit 0
