1// PR tree-optimization/60023 2// { dg-do compile } 3// { dg-additional-options "-O3 -std=c++11 -fnon-call-exceptions" } 4// { dg-additional-options "-mavx2" { target { i?86-*-* x86_64-*-* } } } 5 6struct A { A (); ~A (); }; 7 8void 9f1 (int *p, int *q, int *r) noexcept (true) 10{ 11 int i; 12 for (i = 0; i < 1024; i++) 13 if (r[i]) 14 p[i] = q[i] + 1; 15} 16 17void 18f2 (int *p, int *q, int *r) 19{ 20 int i; 21 for (i = 0; i < 1024; i++) 22 if (r[i]) 23 p[i] = q[i] + 1; 24} 25 26void 27f3 (int *p, int *q) noexcept (true) 28{ 29 int i; 30 for (i = 0; i < 1024; i++) 31 p[i] = q[i] + 1; 32} 33 34void 35f4 (int *p, int *q) 36{ 37 int i; 38 for (i = 0; i < 1024; i++) 39 p[i] = q[i] + 1; 40} 41 42void 43f5 (int *p, int *q, int *r) noexcept (true) 44{ 45 int i; 46 A a; 47 for (i = 0; i < 1024; i++) 48 if (r[i]) 49 p[i] = q[i] + 1; 50} 51 52void 53f6 (int *p, int *q, int *r) 54{ 55 int i; 56 A a; 57 for (i = 0; i < 1024; i++) 58 if (r[i]) 59 p[i] = q[i] + 1; 60} 61 62void 63f7 (int *p, int *q) noexcept (true) 64{ 65 int i; 66 A a; 67 for (i = 0; i < 1024; i++) 68 p[i] = q[i] + 1; 69} 70 71void 72f8 (int *p, int *q) 73{ 74 int i; 75 A a; 76 for (i = 0; i < 1024; i++) 77 p[i] = q[i] + 1; 78} 79 80// { dg-final { cleanup-tree-dump "vect" } } 81