1 /* { dg-do compile } */ 2 /* { dg-options "-O2 -mavx512fp16 -mavx512vl" } */ 3 /* { dg-final { scan-assembler-times "vpternlog" 5 } } */ 4 /* { dg-final { scan-assembler-not "vpxor" } } */ 5 /* { dg-final { scan-assembler-not "vpor" } } */ 6 /* { dg-final { scan-assembler-not "vpand" } } */ 7 8 #include<immintrin.h> 9 10 extern __m256i src1, src2, src3; 11 12 __m256i foo(void)13foo (void) 14 { 15 return (src2 & ~src1) | (src3 & src1); 16 } 17 18 __m256i foo1(void)19foo1 (void) 20 { 21 return (src2 & src1) | (src3 & ~src1); 22 } 23 24 __m256i foo2(void)25foo2 (void) 26 { 27 return (src2 & src1) | (~src3 & src1); 28 } 29 30 __m256i foo3(void)31foo3 (void) 32 { 33 return (~src2 & src1) | (src3 & src1); 34 } 35 36 __m256i foo4(void)37foo4 (void) 38 { 39 return src3 & src2 ^ src1; 40 } 41