https://gcc.gnu.org/bugzilla/show_bug.cgi?id=113583
Li Pan <pan2.li at intel dot com> changed:
What |Removed |Added
----------------------------------------------------------------------------
CC| |pan2.li at intel dot com
--- Comment #20 from Li Pan <pan2.li at intel dot com> ---
Add a macro expanded version of example that cannot vectorized with option
"riscv64-unknown-elf-gcc -Ofast -ffast-math -march=rv64gcv -c -S test.c -o -".
1 │ #define SX 100
2 │ #define SY 100
3 │ #define SZ 130
4 │ #define NN 20
5 │ #define OMEGA 0.123
6 │ #define LAMBDA (1.0 / (0.5 + 3.0 / (16.0 * (1.0 / OMEGA - 0.5))))
7 │ #define CST1 (1.0 / 3.0)
8 │ #define FEQS (CST1 * (1.0 + 4.5 * 1.0 * 1.0))
9 │
10 │ void
11 │ foo (double *src, double *dst)
12 │ {
13 │ double avg_diff;
14 │
15 │ for (unsigned i = 0; i < SX * SY * SZ * NN; i += NN)
16 │ {
17 │ avg_diff = 0.5 * (src[i + 1] + src[i + 2]) - FEQS;
18 │
19 │ dst[i] = src[i] - OMEGA * (src[i] - CST1 * 1.0);
20 │ dst[i + 1] = src[i + 1] - OMEGA * avg_diff - LAMBDA * (0.1 -
0.2);
21 │ }
22 │ }