| /* { dg-do compile } */ |
| /* { dg-options "-O2 -mavx" } */ |
| |
| typedef long long __m256i __attribute__ ((__vector_size__ (32))); |
| |
| int foo (__m256i x, __m256i y) |
| { |
| __m256i a = x & ~y; |
| return __builtin_ia32_ptestz256 (a, a); |
| } |
| |
| int bar (__m256i x, __m256i y) |
| { |
| __m256i a = ~x & y; |
| return __builtin_ia32_ptestz256 (a, a); |
| } |
| |
| /* { dg-final { scan-assembler-times "vptest\[ \\t\]+%" 2 } } */ |
| /* { dg-final { scan-assembler-times "setc" 2 } } */ |
| /* { dg-final { scan-assembler-not "vpandn" } } */ |
| /* { dg-final { scan-assembler-not "sete" } } */ |