/* { dg-do compile } */ /* { dg-options "-Ofast -march=loongarch64 -mabi=lp64d -mrecip -mfrecipe -fdump-rtl-loop2_invariant " } */ /* { dg-final { scan-rtl-dump "Decided to move dependent invariant" "loop2_invariant" } } */ void nislfv_rain_plm (int im, int km, float dzl[im][km], float rql[im][km], float dt) { int i, k; float con1, decfl; float dz[km], qn[km], wi[km + 1]; for (i = 0; i < im; i++) { for (k = 0; k < km; k++) { dz[k] = dzl[i][k]; } con1 = 0.05; for (k = km - 1; k >= 0; k--) { decfl = (wi[k + 1] - wi[k]) * dt / dz[k]; if (decfl > con1) { wi[k] = wi[k + 1] - con1 * dz[k] / dt; } } for (k = 0; k < km; k++) { rql[i][k] = qn[k]; } } }