| /* PR tree-optimization/60823 */ |
| /* { dg-do compile } */ |
| /* { dg-options "-O2 -fopenmp-simd" } */ |
| |
| #pragma omp declare simd simdlen(4) notinbranch |
| int |
| foo (const double c1, const double c2) |
| { |
| double z1 = c1, z2 = c2; |
| int res = 100, i; |
| |
| for (i = 0; i < 100; i++) |
| { |
| res = (z1 * z1 + z2 * z2 > 4.0) ? (i < res ? i : res) : res; |
| z1 = c1 + z1 * z1 - z2 * z2; |
| z2 = c2 + 2.0 * z1 * z2; |
| } |
| return res; |
| } |
| /* { dg-warning "GCC does not currently support mixed size types for 'simd' functions" "" { target aarch64*-*-* } .-13 } */ |