Viewing file: avx512bw-pr103750-2.c (4.37 KB) -rw-r--r-- Select action/file-type: (+) | (+) | (+) | Code (+) | Session (+) | (+) | SDB (+) | (+) | (+) | (+) | (+) | (+) |
/* PR target/103750 */ /* { dg-do compile } */ /* { dg-options "-O2 -mavx512dq -mavx512bw -mavx512vl" } */ /* { dg-final { scan-assembler-not "kmov" { xfail ia32 } } } */ /* xfail need to be fixed. */
#include <immintrin.h> extern __m128i* pi128; extern __m256i* pi256; extern __m512i* pi512;
extern char a, b; void foo () { __mmask16 mask1 = _mm_cmpeq_epu8_mask (pi128[0], pi128[1]); __mmask16 mask2 = _mm_cmpeq_epu8_mask (pi128[2], pi128[3]); a = _kortestz_mask32_u8 (mask1, mask2); b = _kortestz_mask16_u8 (mask1, mask2); }
void foo1 () { __mmask16 mask1 = _mm_cmpeq_epu8_mask (pi128[0], pi128[1]); __mmask16 mask2 = _mm_cmpeq_epu8_mask (pi128[2], pi128[3]); a = _kortestz_mask64_u8 (mask1, mask2); b = _kortestz_mask16_u8 (mask1, mask2); }
void foo2 () { __mmask32 mask1 = _mm256_cmpeq_epu8_mask (pi256[0], pi256[1]); __mmask32 mask2 = _mm256_cmpeq_epu8_mask (pi256[2], pi256[3]); a = _kortestz_mask64_u8 (mask1, mask2); b = _kortestz_mask32_u8 (mask1, mask2); }
void foo3 () { __mmask8 mask1 = _mm_cmpeq_epu16_mask (pi128[0], pi128[1]); __mmask8 mask2 = _mm_cmpeq_epu16_mask (pi128[1], pi128[2]); a = _kortestz_mask16_u8 (mask1, mask2); b = _kortestz_mask8_u8 (mask1, mask2); }
void foo4 () { __mmask8 mask1 = _mm_cmpeq_epu16_mask (pi128[0], pi128[1]); __mmask8 mask2 = _mm_cmpeq_epu16_mask (pi128[1], pi128[2]); a = _kortestz_mask32_u8 (mask1, mask2); b = _kortestz_mask8_u8 (mask1, mask2); }
void foo5 () { __mmask8 mask1 = _mm_cmpeq_epu16_mask (pi128[0], pi128[1]); __mmask8 mask2 = _mm_cmpeq_epu16_mask (pi128[1], pi128[2]); a = _kortestz_mask64_u8 (mask1, mask2); b = _kortestz_mask8_u8 (mask1, mask2); }
void foo6 () { __mmask16 mask1 = _mm256_cmpeq_epu16_mask (pi256[0], pi256[1]); __mmask16 mask2 = _mm256_cmpeq_epu16_mask (pi256[2], pi256[3]); a = _kortestz_mask32_u8 (mask1, mask2); b = _kortestz_mask16_u8 (mask1, mask2); }
void foo7 () { __mmask16 mask1 = _mm256_cmpeq_epu16_mask (pi256[0], pi256[1]); __mmask16 mask2 = _mm256_cmpeq_epu16_mask (pi256[2], pi256[3]); a = _kortestz_mask64_u8 (mask1, mask2); b = _kortestz_mask16_u8 (mask1, mask2); }
void foo8 () { __mmask32 mask1 = _mm512_cmpeq_epu16_mask (pi512[0], pi512[1]); __mmask32 mask2 = _mm512_cmpeq_epu16_mask (pi512[2], pi512[3]); a = _kortestz_mask64_u8 (mask1, mask2); b = _kortestz_mask32_u8 (mask1, mask2); }
void sign_foo () { __mmask16 mask1 = _mm_cmpeq_epi8_mask (pi128[0], pi128[1]); __mmask16 mask2 = _mm_cmpeq_epi8_mask (pi128[2], pi128[3]); a = _kortestz_mask32_u8 (mask1, mask2); b = _kortestz_mask16_u8 (mask1, mask2); }
void sign_foo1 () { __mmask16 mask1 = _mm_cmpeq_epi8_mask (pi128[0], pi128[1]); __mmask16 mask2 = _mm_cmpeq_epi8_mask (pi128[2], pi128[3]); a = _kortestz_mask64_u8 (mask1, mask2); b = _kortestz_mask16_u8 (mask1, mask2); }
void sign_foo2 () { __mmask32 mask1 = _mm256_cmpeq_epi8_mask (pi256[0], pi256[1]); __mmask32 mask2 = _mm256_cmpeq_epi8_mask (pi256[2], pi256[3]); a = _kortestz_mask64_u8 (mask1, mask2); b = _kortestz_mask32_u8 (mask1, mask2); }
void sign_foo3 () { __mmask8 mask1 = _mm_cmpeq_epi16_mask (pi128[0], pi128[1]); __mmask8 mask2 = _mm_cmpeq_epi16_mask (pi128[1], pi128[2]); a = _kortestz_mask16_u8 (mask1, mask2); b = _kortestz_mask8_u8 (mask1, mask2); }
void sign_foo4 () { __mmask8 mask1 = _mm_cmpeq_epi16_mask (pi128[0], pi128[1]); __mmask8 mask2 = _mm_cmpeq_epi16_mask (pi128[1], pi128[2]); a = _kortestz_mask32_u8 (mask1, mask2); b = _kortestz_mask8_u8 (mask1, mask2); }
void sign_foo5 () { __mmask8 mask1 = _mm_cmpeq_epi16_mask (pi128[0], pi128[1]); __mmask8 mask2 = _mm_cmpeq_epi16_mask (pi128[1], pi128[2]); a = _kortestz_mask64_u8 (mask1, mask2); b = _kortestz_mask8_u8 (mask1, mask2); }
void sign_foo6 () { __mmask16 mask1 = _mm256_cmpeq_epi16_mask (pi256[0], pi256[1]); __mmask16 mask2 = _mm256_cmpeq_epi16_mask (pi256[2], pi256[3]); a = _kortestz_mask32_u8 (mask1, mask2); b = _kortestz_mask16_u8 (mask1, mask2); }
void sign_foo7 () { __mmask16 mask1 = _mm256_cmpeq_epi16_mask (pi256[0], pi256[1]); __mmask16 mask2 = _mm256_cmpeq_epi16_mask (pi256[2], pi256[3]); a = _kortestz_mask64_u8 (mask1, mask2); b = _kortestz_mask16_u8 (mask1, mask2); }
void sign_foo8 () { __mmask32 mask1 = _mm512_cmpeq_epi16_mask (pi512[0], pi512[1]); __mmask32 mask2 = _mm512_cmpeq_epi16_mask (pi512[2], pi512[3]); a = _kortestz_mask64_u8 (mask1, mask2); b = _kortestz_mask32_u8 (mask1, mask2); }
|