diff --git a/gcc/testsuite/g++.target/i386/pr93828.C b/gcc/testsuite/g++.target/i386/pr93828.C new file mode 100644 index 00000000000..e0c19751599 --- /dev/null +++ b/gcc/testsuite/g++.target/i386/pr93828.C @@ -0,0 +1,17 @@ +// { dg-do run } +// { dg-require-effective-target c++11 } +// { dg-options "-O2 -march=k8" } + +using float2[[gnu::vector_size (8)]] = float; +using int2[[gnu::vector_size (8)]] = int; +float2 y = { 2, 2 }; + +int +main () +{ + const auto k = y == float2 { 2, 2 }; + if (k[1] == 0) + __builtin_abort (); + const auto a = k & int2 { 2, 2 }; + return a[0] - 2; +}