Hi Edwin

> I believe the only problematic failures are the 5 vls calling convention 
> ones where only 24 ld\\s+a[0-1],\\s*[0-9]+\\(sp\\) are found.

Does this "only 24" comes from calling-convention-1.c? 

> This is what I'm getting locally (first instance of wrong match):
> v32qi_RET1_ARG8:
> .LFB109:

V32qi will pass the args by reference instead of GPR(s), thus It is expected. I 
think we need to diff the asm code before and after the patch for the whole 
test-file.
The RE "ld\\s+a[0-1],\\s*[0-9]+\\(sp\\)" would like to check vls mode values 
are returned by a[0-1].

Pan

-----Original Message-----
From: Edwin Lu <e...@rivosinc.com> 
Sent: Saturday, February 3, 2024 8:29 AM
To: Li, Pan2 <pan2...@intel.com>; juzhe.zh...@rivai.ai; gcc-patches 
<gcc-patches@gcc.gnu.org>
Cc: Robin Dapp <rdapp....@gmail.com>; kito.cheng <kito.ch...@gmail.com>; 
jeffreyalaw <jeffreya...@gmail.com>; palmer <pal...@rivosinc.com>; vineetg 
<vine...@rivosinc.com>; Patrick O'Neill <patr...@rivosinc.com>
Subject: Re: [COMMITTED V3 1/4] RISC-V: Add non-vector types to dfa pipelines

On 2/1/2024 8:28 PM, Li, Pan2 wrote:
> Hi Edwin,
> 
> Just rerun the newlib and there is no ICE but still 160 dump failures as 
> below.
> 
> Pan
> 

Hi Pan,

Thanks for confirming! Having dump failures is expected. There are 
around 7 more unique failures than I expected 
(https://github.com/patrick-rivos/gcc-postcommit-ci/issues/473 <-- 
postcommit found 46 while I expected 39 
https://inbox.sourceware.org/gcc-patches/12d205cd-3177-48ea-a54e-c2052fdde...@gmail.com/
 
https://github.com/ewlu/gcc-precommit-ci/issues/1178#issuecomment-1889782987) 


I included the 7 failed tests below and what was found instead.

I believe the only problematic failures are the 5 vls calling convention 
ones where only 24 ld\\s+a[0-1],\\s*[0-9]+\\(sp\\) are found.

FAIL: gcc.target/riscv/rvv/autovec/vls/calling-convention-1.c -O3 
-ftree-vectorize --param riscv-autovec-preference=scalable 
scan-assembler-times ld\\s+a[0-1],\\s*[0-9]+\\(sp\\) 35
FAIL: gcc.target/riscv/rvv/autovec/vls/calling-convention-2.c -O3 
-ftree-vectorize --param riscv-autovec-preference=scalable 
scan-assembler-times ld\\s+a[0-1],\\s*[0-9]+\\(sp\\) 33
FAIL: gcc.target/riscv/rvv/autovec/vls/calling-convention-3.c -O3 
-ftree-vectorize --param riscv-autovec-preference=scalable 
scan-assembler-times ld\\s+a[0-1],\\s*[0-9]+\\(sp\\) 31
FAIL: gcc.target/riscv/rvv/autovec/vls/calling-convention-4.c -O3 
-ftree-vectorize --param riscv-autovec-preference=scalable 
scan-assembler-times ld\\s+a[0-1],\\s*[0-9]+\\(sp\\) 29
FAIL: gcc.target/riscv/rvv/autovec/vls/calling-convention-7.c -O3 
-ftree-vectorize --param riscv-autovec-preference=scalable 
scan-assembler-times ld\\s+a[0-1],\\s*[0-9]+\\(sp\\) 29

This is what I'm getting locally (first instance of wrong match):
v32qi_RET1_ARG8:
.LFB109:
         .cfi_startproc
         li      t1,32
         vsetvli zero,t1,e8,mf8,ta,ma
         vle8.v  v1,0(a1)
         vle8.v  v4,0(a2)
         vle8.v  v3,0(a3)
         vle8.v  v2,0(a4)
         vadd.vv v1,v1,v4
         vadd.vv v1,v1,v3
         vle8.v  v3,0(a5)
         ld      a5,0(sp)  <-- used a5 instead of a1
         vadd.vv v1,v1,v2
         vle8.v  v2,0(a6)
         vadd.vv v1,v1,v3
         vle8.v  v3,0(a7)
         vadd.vv v1,v1,v2
         vle8.v  v2,0(a5)
         vadd.vv v1,v1,v3
         vadd.vv v1,v1,v2
         vse8.v  v1,0(a0)
         ret
         .cfi_endproc

If I understand correctly, this is wrong since we aren't returning 
anything (nothing gets stored in a[0-1])?

Edwin

Reply via email to