intro_intrinsics

Date:

03-30-2018

NAME

intro_intrinsics - Introduction to Cray C/C++ compiler support for Intel intrinsic functions

IMPLEMENTATION

Cray Linux Environment (CLE)

DESCRIPTION

The Cray C/C++ compiler supports Intel and GNU Streaming SIMD Extentions - SSE, SSE2, SSE3, SSSE3, SSE4A, SSE41, SSE42, FMA, AMX, and AVX2 - defined by the <x86intrin.h>, <xmmintrin.h>, <pmmintrin.h>, <smmintrin.h>, and <immintrin.h> header files.

Refer to the latest Intel C/C++ compiler guide for details.

CCE uses the header files associated with GCC 8.1.0.

EXAMPLE

The following examples illustrate that CCE recognizes both the GNU and Intel instrinsic function name for _mm_mul_ps.

Example 1: Intel

#include <xmmintrin.h>

__m128 myfunction( __m128 __A,  __m128 __B)
{

    return    _mm_mul_ps( __A, __B);
}

Example 2: GNU

#include <x86intrin.h>    /* SSE */

__v4sf myfunction( __v4sf arg0, __v4sf arg1)
{

    return __builtin_ia32_mulps(arg0,arg1);
}