Fix RISCV C910V build (and related CI job hanging) on develop branchtags/v0.3.24
| @@ -1,4 +1,4 @@ | |||||
| ifeq ($(CORE), C910V) | ifeq ($(CORE), C910V) | ||||
| CCOMMON_OPT += -march=rv64imafdcv0p7_zfh_xtheadc -mabi=lp64d -mtune=c920 | |||||
| CCOMMON_OPT += -march=rv64imafdcv0p7_zfh_xtheadc -mabi=lp64d -mtune=c920 -O1 | |||||
| FCOMMON_OPT += -march=rv64imafdcv0p7_zfh_xtheadc -mabi=lp64d -mtune=c920 -static | FCOMMON_OPT += -march=rv64imafdcv0p7_zfh_xtheadc -mabi=lp64d -mtune=c920 -static | ||||
| endif | endif | ||||
| @@ -155,6 +155,7 @@ int CNAME(BLASLONG n, FLOAT *x, BLASLONG inc_x, FLOAT *y, BLASLONG inc_y, FLOAT | |||||
| } | } | ||||
| }else{ | }else{ | ||||
| gvl = VSETVL(n); | gvl = VSETVL(n); | ||||
| if (inc_x == 0 && inc_y == 0) gvl = VSETVL(1); | |||||
| BLASLONG stride_x = inc_x * sizeof(FLOAT); | BLASLONG stride_x = inc_x * sizeof(FLOAT); | ||||
| BLASLONG stride_y = inc_y * sizeof(FLOAT); | BLASLONG stride_y = inc_y * sizeof(FLOAT); | ||||
| BLASLONG inc_xv = inc_x * gvl; | BLASLONG inc_xv = inc_x * gvl; | ||||
| @@ -136,6 +136,7 @@ int CNAME(BLASLONG n, BLASLONG dummy0, BLASLONG dummy1, FLOAT dummy3, FLOAT *x, | |||||
| } | } | ||||
| }else{ | }else{ | ||||
| gvl = VSETVL(n); | gvl = VSETVL(n); | ||||
| if (inc_x == 0 && inc_y == 0) gvl = VSETVL(1); | |||||
| stride_x = inc_x * sizeof(FLOAT); | stride_x = inc_x * sizeof(FLOAT); | ||||
| stride_y = inc_y * sizeof(FLOAT); | stride_y = inc_y * sizeof(FLOAT); | ||||
| if(gvl <= n/2){ | if(gvl <= n/2){ | ||||
| @@ -112,6 +112,7 @@ int CNAME(BLASLONG n, FLOAT *x, BLASLONG inc_x, FLOAT *y, BLASLONG inc_y, FLOAT | |||||
| } | } | ||||
| }else{ | }else{ | ||||
| if (inc_x == 0 && inc_y == 0) gvl = VSETVL(1); | |||||
| for(i=0,j=0; i < n/gvl; i++){ | for(i=0,j=0; i < n/gvl; i++){ | ||||
| vx0 = VLSEV_FLOAT(&x[ix], stride_x, gvl); | vx0 = VLSEV_FLOAT(&x[ix], stride_x, gvl); | ||||
| vx1 = VLSEV_FLOAT(&x[ix+1], stride_x, gvl); | vx1 = VLSEV_FLOAT(&x[ix+1], stride_x, gvl); | ||||
| @@ -81,6 +81,7 @@ int CNAME(BLASLONG n, BLASLONG dummy0, BLASLONG dummy1, FLOAT dummy3, FLOAT dumm | |||||
| } | } | ||||
| }else{ | }else{ | ||||
| gvl = VSETVL(n); | gvl = VSETVL(n); | ||||
| if (inc_x == 0 && inc_y == 0) gvl = VSETVL(1); | |||||
| stride_x = inc_x * 2 * sizeof(FLOAT); | stride_x = inc_x * 2 * sizeof(FLOAT); | ||||
| stride_y = inc_y * 2 * sizeof(FLOAT); | stride_y = inc_y * 2 * sizeof(FLOAT); | ||||
| BLASLONG inc_xv = inc_x * gvl * 2; | BLASLONG inc_xv = inc_x * gvl * 2; | ||||