clang API Documentation

Defines | Typedefs | Functions
avxintrin.h File Reference

Go to the source code of this file.

Defines

#define _mm256_round_pd(V, M)
#define _mm256_round_ps(V, M)
#define _mm256_ceil_pd(V)   _mm256_round_pd((V), _MM_FROUND_CEIL)
#define _mm256_floor_pd(V)   _mm256_round_pd((V), _MM_FROUND_FLOOR)
#define _mm256_ceil_ps(V)   _mm256_round_ps((V), _MM_FROUND_CEIL)
#define _mm256_floor_ps(V)   _mm256_round_ps((V), _MM_FROUND_FLOOR)
#define _mm_permute_pd(A, C)
#define _mm256_permute_pd(A, C)
#define _mm_permute_ps(A, C)
#define _mm256_permute_ps(A, C)
#define _mm256_permute2f128_pd(V1, V2, M)
#define _mm256_permute2f128_ps(V1, V2, M)
#define _mm256_permute2f128_si256(V1, V2, M)
#define _mm256_blend_pd(V1, V2, M)
#define _mm256_blend_ps(V1, V2, M)
#define _mm256_dp_ps(V1, V2, M)
#define _mm256_shuffle_ps(a, b, mask)
#define _mm256_shuffle_pd(a, b, mask)
#define _CMP_EQ_OQ   0x00 /* Equal (ordered, non-signaling) */
#define _CMP_LT_OS   0x01 /* Less-than (ordered, signaling) */
#define _CMP_LE_OS   0x02 /* Less-than-or-equal (ordered, signaling) */
#define _CMP_UNORD_Q   0x03 /* Unordered (non-signaling) */
#define _CMP_NEQ_UQ   0x04 /* Not-equal (unordered, non-signaling) */
#define _CMP_NLT_US   0x05 /* Not-less-than (unordered, signaling) */
#define _CMP_NLE_US   0x06 /* Not-less-than-or-equal (unordered, signaling) */
#define _CMP_ORD_Q   0x07 /* Ordered (nonsignaling) */
#define _CMP_EQ_UQ   0x08 /* Equal (unordered, non-signaling) */
#define _CMP_NGE_US   0x09 /* Not-greater-than-or-equal (unord, signaling) */
#define _CMP_NGT_US   0x0a /* Not-greater-than (unordered, signaling) */
#define _CMP_FALSE_OQ   0x0b /* False (ordered, non-signaling) */
#define _CMP_NEQ_OQ   0x0c /* Not-equal (ordered, non-signaling) */
#define _CMP_GE_OS   0x0d /* Greater-than-or-equal (ordered, signaling) */
#define _CMP_GT_OS   0x0e /* Greater-than (ordered, signaling) */
#define _CMP_TRUE_UQ   0x0f /* True (unordered, non-signaling) */
#define _CMP_EQ_OS   0x10 /* Equal (ordered, signaling) */
#define _CMP_LT_OQ   0x11 /* Less-than (ordered, non-signaling) */
#define _CMP_LE_OQ   0x12 /* Less-than-or-equal (ordered, non-signaling) */
#define _CMP_UNORD_S   0x13 /* Unordered (signaling) */
#define _CMP_NEQ_US   0x14 /* Not-equal (unordered, signaling) */
#define _CMP_NLT_UQ   0x15 /* Not-less-than (unordered, non-signaling) */
#define _CMP_NLE_UQ   0x16 /* Not-less-than-or-equal (unord, non-signaling) */
#define _CMP_ORD_S   0x17 /* Ordered (signaling) */
#define _CMP_EQ_US   0x18 /* Equal (unordered, signaling) */
#define _CMP_NGE_UQ   0x19 /* Not-greater-than-or-equal (unord, non-sign) */
#define _CMP_NGT_UQ   0x1a /* Not-greater-than (unordered, non-signaling) */
#define _CMP_FALSE_OS   0x1b /* False (ordered, signaling) */
#define _CMP_NEQ_OS   0x1c /* Not-equal (ordered, signaling) */
#define _CMP_GE_OQ   0x1d /* Greater-than-or-equal (ordered, non-signaling) */
#define _CMP_GT_OQ   0x1e /* Greater-than (ordered, non-signaling) */
#define _CMP_TRUE_US   0x1f /* True (unordered, signaling) */
#define _mm_cmp_pd(a, b, c)
#define _mm_cmp_ps(a, b, c)
#define _mm256_cmp_pd(a, b, c)
#define _mm256_cmp_ps(a, b, c)
#define _mm_cmp_sd(a, b, c)
#define _mm_cmp_ss(a, b, c)
#define _mm256_extractf128_pd(A, O)
#define _mm256_extractf128_ps(A, O)
#define _mm256_extractf128_si256(A, O)
#define _mm256_insertf128_pd(V1, V2, O)
#define _mm256_insertf128_ps(V1, V2, O)
#define _mm256_insertf128_si256(V1, V2, O)

Typedefs

typedef double __v4df __attribute__ ((__vector_size__(32)))

Functions

static __inline __m256d __attribute__ ((__always_inline__, __nodebug__)) _mm256_add_pd(__m256d __a

Define Documentation

#define _CMP_EQ_OQ   0x00 /* Equal (ordered, non-signaling) */
#define _CMP_EQ_OS   0x10 /* Equal (ordered, signaling) */
#define _CMP_EQ_UQ   0x08 /* Equal (unordered, non-signaling) */
#define _CMP_EQ_US   0x18 /* Equal (unordered, signaling) */
#define _CMP_FALSE_OQ   0x0b /* False (ordered, non-signaling) */
#define _CMP_FALSE_OS   0x1b /* False (ordered, signaling) */
#define _CMP_GE_OQ   0x1d /* Greater-than-or-equal (ordered, non-signaling) */
#define _CMP_GE_OS   0x0d /* Greater-than-or-equal (ordered, signaling) */
#define _CMP_GT_OQ   0x1e /* Greater-than (ordered, non-signaling) */
#define _CMP_GT_OS   0x0e /* Greater-than (ordered, signaling) */
#define _CMP_LE_OQ   0x12 /* Less-than-or-equal (ordered, non-signaling) */
#define _CMP_LE_OS   0x02 /* Less-than-or-equal (ordered, signaling) */
#define _CMP_LT_OQ   0x11 /* Less-than (ordered, non-signaling) */
#define _CMP_LT_OS   0x01 /* Less-than (ordered, signaling) */
#define _CMP_NEQ_OQ   0x0c /* Not-equal (ordered, non-signaling) */
#define _CMP_NEQ_OS   0x1c /* Not-equal (ordered, signaling) */
#define _CMP_NEQ_UQ   0x04 /* Not-equal (unordered, non-signaling) */
#define _CMP_NEQ_US   0x14 /* Not-equal (unordered, signaling) */
#define _CMP_NGE_UQ   0x19 /* Not-greater-than-or-equal (unord, non-sign) */
#define _CMP_NGE_US   0x09 /* Not-greater-than-or-equal (unord, signaling) */
#define _CMP_NGT_UQ   0x1a /* Not-greater-than (unordered, non-signaling) */
#define _CMP_NGT_US   0x0a /* Not-greater-than (unordered, signaling) */
#define _CMP_NLE_UQ   0x16 /* Not-less-than-or-equal (unord, non-signaling) */
#define _CMP_NLE_US   0x06 /* Not-less-than-or-equal (unordered, signaling) */
#define _CMP_NLT_UQ   0x15 /* Not-less-than (unordered, non-signaling) */
#define _CMP_NLT_US   0x05 /* Not-less-than (unordered, signaling) */
#define _CMP_ORD_Q   0x07 /* Ordered (nonsignaling) */
#define _CMP_ORD_S   0x17 /* Ordered (signaling) */
#define _CMP_TRUE_UQ   0x0f /* True (unordered, non-signaling) */
#define _CMP_TRUE_US   0x1f /* True (unordered, signaling) */
#define _CMP_UNORD_Q   0x03 /* Unordered (non-signaling) */
#define _CMP_UNORD_S   0x13 /* Unordered (signaling) */
#define _mm256_blend_pd (   V1,
  V2,
 
)
Value:
__extension__ ({ \
  __m256d __V1 = (V1); \
  __m256d __V2 = (V2); \
  (__m256d)__builtin_shufflevector((__v4df)__V1, (__v4df)__V2, \
                                   (((M) & 0x01) ? 4 : 0), \
                                   (((M) & 0x02) ? 5 : 1), \
                                   (((M) & 0x04) ? 6 : 2), \
                                   (((M) & 0x08) ? 7 : 3)); })
#define _mm256_blend_ps (   V1,
  V2,
 
)
Value:
__extension__ ({ \
  __m256 __V1 = (V1); \
  __m256 __V2 = (V2); \
  (__m256)__builtin_shufflevector((__v8sf)__V1, (__v8sf)__V2, \
                                  (((M) & 0x01) ?  8 : 0), \
                                  (((M) & 0x02) ?  9 : 1), \
                                  (((M) & 0x04) ? 10 : 2), \
                                  (((M) & 0x08) ? 11 : 3), \
                                  (((M) & 0x10) ? 12 : 4), \
                                  (((M) & 0x20) ? 13 : 5), \
                                  (((M) & 0x40) ? 14 : 6), \
                                  (((M) & 0x80) ? 15 : 7)); })
#define _mm256_ceil_pd (   V)    _mm256_round_pd((V), _MM_FROUND_CEIL)
#define _mm256_ceil_ps (   V)    _mm256_round_ps((V), _MM_FROUND_CEIL)
#define _mm256_cmp_pd (   a,
  b,
 
)
Value:
__extension__ ({ \
  __m256d __a = (a); \
  __m256d __b = (b); \
  (__m256d)__builtin_ia32_cmppd256((__v4df)__a, (__v4df)__b, (c)); })
#define _mm256_cmp_ps (   a,
  b,
 
)
Value:
__extension__ ({ \
  __m256 __a = (a); \
  __m256 __b = (b); \
  (__m256)__builtin_ia32_cmpps256((__v8sf)__a, (__v8sf)__b, (c)); })
#define _mm256_dp_ps (   V1,
  V2,
 
)
Value:
__extension__ ({ \
  __m256 __V1 = (V1); \
  __m256 __V2 = (V2); \
  (__m256)__builtin_ia32_dpps256((__v8sf)__V1, (__v8sf)__V2, (M)); })
#define _mm256_extractf128_pd (   A,
 
)
Value:
__extension__ ({ \
  __m256d __A = (A); \
  (__m128d)__builtin_ia32_vextractf128_pd256((__v4df)__A, (O)); })
#define _mm256_extractf128_ps (   A,
 
)
Value:
__extension__ ({ \
  __m256 __A = (A); \
  (__m128)__builtin_ia32_vextractf128_ps256((__v8sf)__A, (O)); })
#define _mm256_extractf128_si256 (   A,
 
)
Value:
__extension__ ({ \
  __m256i __A = (A); \
  (__m128i)__builtin_ia32_vextractf128_si256((__v8si)__A, (O)); })
#define _mm256_floor_pd (   V)    _mm256_round_pd((V), _MM_FROUND_FLOOR)
#define _mm256_floor_ps (   V)    _mm256_round_ps((V), _MM_FROUND_FLOOR)
#define _mm256_insertf128_pd (   V1,
  V2,
 
)
Value:
__extension__ ({ \
  __m256d __V1 = (V1); \
  __m128d __V2 = (V2); \
  (__m256d)__builtin_ia32_vinsertf128_pd256((__v4df)__V1, (__v2df)__V2, (O)); })
#define _mm256_insertf128_ps (   V1,
  V2,
 
)
Value:
__extension__ ({ \
  __m256 __V1 = (V1); \
  __m128 __V2 = (V2); \
  (__m256)__builtin_ia32_vinsertf128_ps256((__v8sf)__V1, (__v4sf)__V2, (O)); })
#define _mm256_insertf128_si256 (   V1,
  V2,
 
)
Value:
__extension__ ({ \
  __m256i __V1 = (V1); \
  __m128i __V2 = (V2); \
  (__m256i)__builtin_ia32_vinsertf128_si256((__v8si)__V1, (__v4si)__V2, (O)); })
#define _mm256_permute2f128_pd (   V1,
  V2,
 
)
Value:
__extension__ ({ \
  __m256d __V1 = (V1); \
  __m256d __V2 = (V2); \
  (__m256d)__builtin_ia32_vperm2f128_pd256((__v4df)__V1, (__v4df)__V2, (M)); })
#define _mm256_permute2f128_ps (   V1,
  V2,
 
)
Value:
__extension__ ({ \
  __m256 __V1 = (V1); \
  __m256 __V2 = (V2); \
  (__m256)__builtin_ia32_vperm2f128_ps256((__v8sf)__V1, (__v8sf)__V2, (M)); })
#define _mm256_permute2f128_si256 (   V1,
  V2,
 
)
Value:
__extension__ ({ \
  __m256i __V1 = (V1); \
  __m256i __V2 = (V2); \
  (__m256i)__builtin_ia32_vperm2f128_si256((__v8si)__V1, (__v8si)__V2, (M)); })
#define _mm256_permute_pd (   A,
 
)
Value:
__extension__ ({ \
  __m256d __A = (A); \
  (__m256d)__builtin_shufflevector((__v4df)__A, (__v4df) _mm256_setzero_pd(), \
                                   (C) & 0x1, ((C) & 0x2) >> 1, \
                                   2 + (((C) & 0x4) >> 2), \
                                   2 + (((C) & 0x8) >> 3)); })
#define _mm256_permute_ps (   A,
 
)
Value:
__extension__ ({ \
  __m256 __A = (A); \
  (__m256)__builtin_shufflevector((__v8sf)__A, (__v8sf) _mm256_setzero_ps(), \
                                  (C) & 0x3, ((C) & 0xc) >> 2, \
                                  ((C) & 0x30) >> 4, ((C) & 0xc0) >> 6, \
                                  4 + (((C) & 0x03) >> 0), \
                                  4 + (((C) & 0x0c) >> 2), \
                                  4 + (((C) & 0x30) >> 4), \
                                  4 + (((C) & 0xc0) >> 6)); })
#define _mm256_round_pd (   V,
 
)
Value:
__extension__ ({ \
    __m256d __V = (V); \
    (__m256d)__builtin_ia32_roundpd256((__v4df)__V, (M)); })
#define _mm256_round_ps (   V,
 
)
Value:
__extension__ ({ \
  __m256 __V = (V); \
  (__m256)__builtin_ia32_roundps256((__v8sf)__V, (M)); })
#define _mm256_shuffle_pd (   a,
  b,
  mask 
)
Value:
__extension__ ({ \
        __m256d __a = (a); \
        __m256d __b = (b); \
        (__m256d)__builtin_shufflevector((__v4df)__a, (__v4df)__b, \
        (mask) & 0x1, \
        (((mask) & 0x2) >> 1) + 4, \
        (((mask) & 0x4) >> 2) + 2, \
        (((mask) & 0x8) >> 3) + 6); })
#define _mm256_shuffle_ps (   a,
  b,
  mask 
)
Value:
__extension__ ({ \
        __m256 __a = (a); \
        __m256 __b = (b); \
        (__m256)__builtin_shufflevector((__v8sf)__a, (__v8sf)__b, \
        (mask) & 0x3,                ((mask) & 0xc) >> 2, \
        (((mask) & 0x30) >> 4) + 8,  (((mask) & 0xc0) >> 6) + 8, \
        ((mask) & 0x3) + 4,          (((mask) & 0xc) >> 2) + 4, \
        (((mask) & 0x30) >> 4) + 12, (((mask) & 0xc0) >> 6) + 12); })
#define _mm_cmp_pd (   a,
  b,
 
)
Value:
__extension__ ({ \
  __m128d __a = (a); \
  __m128d __b = (b); \
  (__m128d)__builtin_ia32_cmppd((__v2df)__a, (__v2df)__b, (c)); })
#define _mm_cmp_ps (   a,
  b,
 
)
Value:
__extension__ ({ \
  __m128 __a = (a); \
  __m128 __b = (b); \
  (__m128)__builtin_ia32_cmpps((__v4sf)__a, (__v4sf)__b, (c)); })
#define _mm_cmp_sd (   a,
  b,
 
)
Value:
__extension__ ({ \
  __m128d __a = (a); \
  __m128d __b = (b); \
  (__m128d)__builtin_ia32_cmpsd((__v2df)__a, (__v2df)__b, (c)); })
#define _mm_cmp_ss (   a,
  b,
 
)
Value:
__extension__ ({ \
  __m128 __a = (a); \
  __m128 __b = (b); \
  (__m128)__builtin_ia32_cmpss((__v4sf)__a, (__v4sf)__b, (c)); })
#define _mm_permute_pd (   A,
 
)
Value:
__extension__ ({ \
  __m128d __A = (A); \
  (__m128d)__builtin_shufflevector((__v2df)__A, (__v2df) _mm_setzero_pd(), \
                                   (C) & 0x1, ((C) & 0x2) >> 1); })
#define _mm_permute_ps (   A,
 
)
Value:
__extension__ ({ \
  __m128 __A = (A); \
  (__m128)__builtin_shufflevector((__v4sf)__A, (__v4sf) _mm_setzero_ps(), \
                                   (C) & 0x3, ((C) & 0xc) >> 2, \
                                   ((C) & 0x30) >> 4, ((C) & 0xc0) >> 6); })

Typedef Documentation

typedef long long __m256i __attribute__((__vector_size__(32)))

Definition at line 31 of file avxintrin.h.


Function Documentation

static __inline __m256d __attribute__ ( (__always_inline__, __nodebug__)  ) [static]