| /* { dg-do compile } */ |
| /* { dg-options "-O3 -ftree-vectorize -fno-vect-cost-model" } */ |
| float arr_f[100][100]; |
| float |
| f9 (void) |
| { |
| |
| int i; |
| float sum = 0; |
| for (i = 0; i < 100; i++) |
| sum += arr_f[i][0] * arr_f[0][i]; |
| return sum; |
| |
| } |
| |
| |
| int arr[100][100]; |
| int |
| f10 (void) |
| { |
| |
| int i; |
| int sum = 0; |
| for (i = 0; i < 100; i++) |
| sum += arr[i][0] * arr[0][i]; |
| return sum; |
| |
| } |
| |
| double arr_d[100][100]; |
| double |
| f11 (void) |
| { |
| int i; |
| double sum = 0; |
| for (i = 0; i < 100; i++) |
| sum += arr_d[i][0] * arr_d[0][i]; |
| return sum; |
| } |
| |
| char arr_c[100]; |
| char |
| f12 (void) |
| { |
| int i; |
| char sum = 0; |
| for (i = 0; i < 100; i++) |
| sum += arr_c[i] * arr_c[i]; |
| return sum; |
| } |
| |
| /* Fails for fixed-length SVE because we lack a vec_init pattern. |
| A later patch fixes this in generic code. */ |
| /* { dg-final { scan-assembler-not "sp" { xfail { aarch64_sve && { ! vect_variable_length } } } } } */ |