| /* PR target/98537 */ | |
| /* { dg-do compile } */ | |
| /* { dg-options "-O2 -march=x86-64 -std=c++11" } */ | |
| #ifndef TYPEV | |
| #define TYPEV int | |
| #endif | |
| #ifndef TYPEW | |
| #define TYPEW long long | |
| #endif | |
| #ifndef T_ARR | |
| #define T_ARR \ | |
| __attribute__ ((target ("avx512vl"))) | |
| #endif | |
| typedef TYPEV V __attribute__((__vector_size__(32))); | |
| typedef TYPEW W __attribute__((__vector_size__(32))); | |
| W c, d; | |
| struct B {}; | |
| B e; | |
| struct C { W i; }; | |
| void foo (C); | |
| C | |
| operator== (B, B) | |
| { | |
| W r = (V)c == (V)d; | |
| return {r}; | |
| } | |
| void | |
| T_ARR | |
| bar () | |
| { | |
| B a; | |
| foo (a == e); | |
| } |