https://gcc.gnu.org/bugzilla/show_bug.cgi?id=114506
Bug ID: 114506 Summary: RISC-V: expect M8 but M4 generated with dynamic LMUL Product: gcc Version: unknown Status: UNCONFIRMED Severity: normal Priority: P3 Component: target Assignee: unassigned at gcc dot gnu.org Reporter: deminhan at gcc dot gnu.org Target Milestone: --- we expect M8 when using following code and options, but M4 generated. -march=rv64gcv_zba_zbb_zvl256b -mabi=lp64d -mrvv-max-lmul=dynamic -O3 float a[32000],b[32000],c[32000],d[32000]; float aa[256][256],bb[256][256],cc[256][256]; void s2275() { for (int i = 0; i < 256; i++) { for (int j = 0; j < 256; j++) { aa[j][i] = aa[j][i] + bb[j][i] * cc[j][i]; } a[i] = b[i] + c[i] * d[i]; } } generated asm: .L2: vsetvli a4,s0,e32,m4,ta,ma slli t4,a4,2 li a5,0 .L3: add a3,a7,a5 add a1,a0,a5 add a2,a6,a5 vle32.v v4,0(a3) vle32.v v8,0(a1) vle32.v v12,0(a2) add a3,t1,a5 addi a5,a5,1024 vfmadd.vv v4,v12,v8 vse32.v v4,0(a3) bne a5,t3,.L3 vle32.v v8,0(t6) vle32.v v4,0(t0) vle32.v v12,0(t2) sub s0,s0,a4 add a0,a0,t4 add a6,a6,t4 add a7,a7,t4 add t1,t1,t4 vfmadd.vv v4,v12,v8 add t6,t6,t4 add t0,t0,t4 add t2,t2,t4 vse32.v v4,0(t5) add t5,t5,t4 bne s0,zero,.L2