blob: dfd89918c171db5a67e2209f12204d5ea4e546e4 [file] [log] [blame]
/* { dg-do compile } */
/* { dg-options "-O2 -mavx512fp16 -mavx512vl" } */
/* { dg-final { scan-assembler-times "vpternlog" 5 } } */
/* { dg-final { scan-assembler-not "vpxor" } } */
/* { dg-final { scan-assembler-not "vpor" } } */
/* { dg-final { scan-assembler-not "vpand" } } */
#include<immintrin.h>
extern __m256i src1, src2, src3;
__m256i
foo (void)
{
return (src2 & ~src1) | (src3 & src1);
}
__m256i
foo1 (void)
{
return (src2 & src1) | (src3 & ~src1);
}
__m256i
foo2 (void)
{
return (src2 & src1) | (~src3 & src1);
}
__m256i
foo3 (void)
{
return (~src2 & src1) | (src3 & src1);
}
__m256i
foo4 (void)
{
return src3 & src2 ^ src1;
}