Viewing file: avx512vp2intersect-2intersectvl-1b.c (1.2 KB) -rw-r--r-- Select action/file-type: (+) | (+) | (+) | Code (+) | Session (+) | (+) | SDB (+) | (+) | (+) | (+) | (+) | (+) |
/* { dg-do run } */ /* { dg-options "-O2 -mavx512vp2intersect -mavx512vl" } */ /* { dg-require-effective-target avx512vp2intersect } */
#define AVX512VP2INTERSECT #include <x86intrin.h> #include "avx512f-helper.h"
void TEST (void) { __m256i a1 = _mm256_set_epi64x (1, 2, 3, 4); __m256i b1 = _mm256_set_epi64x (2, 11, 4, 33); __m256i a2 = _mm256_set_epi32 (1, 2, 3, 4, 5, 6, 7, 8); __m256i b2 = _mm256_set_epi32 (2, 11, 4, 33, 6, 55, 8, 77); __m128i a3 = _mm_set_epi64x (13, 22); __m128i b3 = _mm_set_epi64x (22, 1434); __m128i a4 = _mm_set_epi32 (1, 2, 3, 4); __m128i b4 = _mm_set_epi32 (2, 11, 4, 33); __mmask8 m0, m1, m2, m3, m4, m5, m6, m7; m0 = m1 = m2 = m3 = m4 = m5 = m6 = m7 = 0;
_mm_2intersect_epi64 (a3, b3, &m0, &m1); /* m0 = ******01, m1 = ******10. */ if (m0 != 0x1 || m1 != 0x2) abort();
_mm_2intersect_epi32 (a4, b4, &m2, &m3); /* m2 = ****0101, m3 = ****1010. */ if (m2 != 0x5 || m3 != 0xa) abort();
_mm256_2intersect_epi64 (a1, b1, &m4, &m5); /* m4 = ****0101, m5 = ****1010. */ if (m4 != 0x5 || m5 != 0xa) abort();
_mm256_2intersect_epi32 (a2, b2, &m6, &m7); /* m0 = 01010101, m1 = 10101010. */ if (m6 != 0x55 || m7 != 0xaa) abort(); }
|