/* 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); | |
} |