This commit is contained in:
Jay D Dee
2023-09-21 12:34:06 -04:00
parent d6b5750362
commit be88afc349
113 changed files with 3349 additions and 2920 deletions

View File

@@ -43,6 +43,9 @@ typedef union
} __attribute__ ((aligned (16))) m128_ovly;
#define v128_64(i) _mm_set1_epi64x(i)
#define v128_32(i) _mm_set1_epi32(i)
// Deprecated. AVX512 adds EVEX encoding (3rd operand) and other improvements
// that make these functions either unnecessary or inefficient.
// In cases where an explicit move betweeen GP & SIMD registers is still

View File

@@ -33,6 +33,10 @@ typedef union
uint32_t u32[8];
} __attribute__ ((aligned (32))) m256_ovly;
#define v256_64(i) _mm256_set1_epi64x(i)
#define v256_32(i) _mm256_set1_epi32(i)
//
// Pointer casting

View File

@@ -97,6 +97,9 @@ typedef union
uint64_t u64[8];
} __attribute__ ((aligned (64))) m512_ovly;
#define v512_64(i) _mm512_set1_epi64(i)
#define v512_32(i) _mm512_set1_epi32(i)
// A simple 128 bit permute, using function instead of macro avoids
// problems if the v arg passed as an expression.
static inline __m512i mm512_perm_128( const __m512i v, const int c )