| // { dg-do compile } | |
| // { dg-require-effective-target c++11 } | |
| constexpr unsigned int capacity = 1000; | |
| struct vec | |
| { | |
| int values[capacity]; | |
| unsigned int _size = 0; | |
| unsigned int size() const noexcept { return _size; } | |
| void push(int x) | |
| { | |
| values[size()] = x; | |
| ++_size; | |
| } | |
| }; | |
| int main() | |
| { | |
| vec v; | |
| for(unsigned int i{0}; i != capacity; ++i) | |
| { | |
| v.push(i); | |
| } | |
| asm volatile("" : : "g"(&v) : "memory"); | |
| } | |
| // { dg-final { scan-tree-dump "vectorized 1 loops in function" "vect" { target vect_int } } } |