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 │ }