blob: 4cb6ef37821702ac1429723d1841bde53df9e02e [file] [log] [blame]
/* { dg-do compile } */
/* { dg-options "-mavx512bw -mavx512dq -O2" } */
#include<immintrin.h>
void
fooq (__m512i a, __m512i b, void* p)
{
__mmask8 m1 = _mm512_cmpeq_epi64_mask (a, b);
m1 >>= 4;
_mm512_mask_storeu_epi64 (p, m1, a);
}
/* { dg-final { scan-assembler-times {(?n)kshiftrb} "1" } } */
void
food (__m512i a, __m512i b, void* p)
{
__mmask16 m1 = _mm512_cmpeq_epi32_mask (a, b);
m1 >>= 8;
_mm512_mask_storeu_epi32 (p, m1, a);
}
/* { dg-final { scan-assembler-times {(?n)kshiftrw} "1" } } */
void
foow (__m512i a, __m512i b, void* p)
{
__mmask32 m1 = _mm512_cmpeq_epi16_mask (a, b);
m1 >>= 16;
_mm512_mask_storeu_epi16 (p, m1, a);
}
/* { dg-final { scan-assembler-times {(?n)kshiftrd} "1" } } */
void
foob (__m512i a, __m512i b, void* p)
{
__mmask64 m1 = _mm512_cmpeq_epi8_mask (a, b);
m1 >>= 32;
_mm512_mask_storeu_epi8 (p, m1, a);
}
/* { dg-final { scan-assembler-times {(?n)kshiftrq} "1" { target { ! ia32 } } } } */
void
fooq1 (__m512i a, __m512i b, void* p)
{
__mmask8 m1 = _mm512_cmpeq_epi64_mask (a, b);
m1 <<= 4;
_mm512_mask_storeu_epi64 (p, m1, a);
}
/* { dg-final { scan-assembler-times {(?n)kshiftlb} "1" } } */
void
food1 (__m512i a, __m512i b, void* p)
{
__mmask16 m1 = _mm512_cmpeq_epi32_mask (a, b);
m1 <<= 8;
_mm512_mask_storeu_epi32 (p, m1, a);
}
/* { dg-final { scan-assembler-times {(?n)kshiftlw} "1" } } */
void
foow1 (__m512i a, __m512i b, void* p)
{
__mmask32 m1 = _mm512_cmpeq_epi16_mask (a, b);
m1 <<= 16;
_mm512_mask_storeu_epi16 (p, m1, a);
}
/* { dg-final { scan-assembler-times {(?n)kshiftld} "1" } } */
void
foob1 (__m512i a, __m512i b, void* p)
{
__mmask64 m1 = _mm512_cmpeq_epi8_mask (a, b);
m1 <<= 32;
_mm512_mask_storeu_epi8 (p, m1, a);
}
/* { dg-final { scan-assembler-times {(?n)kshiftlq} "1" { target { ! ia32 } } } } */