(root)/
gcc-13.2.0/
gcc/
testsuite/
g++.target/
i386/
pr101180.C
// PR c++/101180
// { dg-do compile { target c++11 } }

#pragma GCC target "avx"
template <typename> struct A {};
#pragma GCC push_options
#pragma GCC target "avx,avx2,bmi,bmi2,fma,f16c"
template <typename T> using B = A<T>;
template <typename> struct C;
template <> struct C<float> {
  __attribute__((always_inline)) float operator()(long) { return .0f; }
};
long d;
template <typename T> void e(B<T>) {
  T{C<T>()(d)};
}
template <typename T, typename FromT> void f(T d, FromT) {
  e(d);
}
int g;
void h() {
  A<float> i;
  f(i, g);
}
#pragma GCC pop_options