PR tree-optimization/86415 - strlen() not folded for substrings within constant arrays
[official-gcc.git] / gcc / testsuite / g++.dg / pr71655.C
blob8ed33711c36501d668aaebed522fd602f4258c96
1 // PR tree-optimization/71655
2 // { dg-do compile }
3 // { dg-options "-O3 -std=c++11" }
4 // { dg-additional-options "-msse4" { target i?86-*-* x86_64-*-* } }
6 #include <functional>
7 #include <valarray>
8 extern int var_16, le_s5, le_s6, le_s9;
9 std::array<std::array<std::array<long, 8>, 4>, 24> v4;
10 extern std::array<std::array<int, 48>, 18> v15;
12 void fn1() {
13   for (int k0 = 0;;)
14     for (int i1 = 0;;)
15       for (int j1 = 0; j1 < le_s9; j1 = j1 + 1) {
16         std::valarray<std::valarray<short>> v15_;
17         for (; le_s5;) {
18           std::array<std::array<std::array<int, 3>, 48>, 18> v16;
19           for (int k2 = 0;; k2 = 1)
20             for (int l2 = 2; l2 < 6; l2 = l2 + 1)
21               for (int k3 = 0; le_s6;)
22                 for (int i4 = 0; i4 < le_s9; i4 = i4 + 1)
23                   *(i4 + (*v16.begin())[k3].begin()) =
24                     (v15[k2][l2] || var_16) >
25                     unsigned(i1 <= (*v4.begin()).at(k0).at(j1));
26         }
27       }