Re: [PATCH] riscv: Add autovectorization tests for binary integer
On 5/15/23 03:15, juzhe.zh...@rivai.ai wrote: I think it is the issue of include file. Kito may know the better the solution instead of changing stdint.h into stdint-gcc.h. I think that's the only solution right now. I'm not keen to open up the multilib can of worms. Consider a patch that changes stdint.h -> stdint-gcc.h in the RVV testsuite pre-approved. jeff
Re: Re: [PATCH] riscv: Add autovectorization tests for binary integer
I think it is the issue of include file. Kito may know the better the solution instead of changing stdint.h into stdint-gcc.h. Thanks. juzhe.zh...@rivai.ai From: Andreas Schwab Date: 2023-05-15 17:10 To: Robin Dapp via Gcc-patches CC: juzhe.zh...@rivai.ai; Kito Cheng; Michael Collison; palmer; jeffreyalaw; Robin Dapp Subject: Re: [PATCH] riscv: Add autovectorization tests for binary integer In file included from /usr/include/features.h:515, from /usr/include/bits/libc-header-start.h:33, from /usr/include/stdint.h:26, from /daten/riscv64/gcc/gcc-20230512/Build/gcc/include/stdint.h:9, from /daten/riscv64/gcc/gcc-20230512/gcc/testsuite/gcc.target/riscv/rvv/autovec/binop/shift-template.h:1, from /daten/riscv64/gcc/gcc-20230512/gcc/testsuite/gcc.target/riscv/rvv/autovec/binop/shift-rv32gcv.c:4: /usr/include/gnu/stubs.h:11:11: fatal error: gnu/stubs-ilp32d.h: No such file or directory compilation terminated. compiler exited with status 1 FAIL: gcc.target/riscv/rvv/autovec/binop/shift-rv32gcv.c (test for excess errors) Excess errors: /usr/include/gnu/stubs.h:11:11: fatal error: gnu/stubs-ilp32d.h: No such file or directory compilation terminated. -- Andreas Schwab, SUSE Labs, sch...@suse.de GPG Key fingerprint = 0196 BAD8 1CE9 1970 F4BE 1748 E4D4 88E3 0EEA B9D7 "And now for something completely different."
Re: [PATCH] riscv: Add autovectorization tests for binary integer
In file included from /usr/include/features.h:515, from /usr/include/bits/libc-header-start.h:33, from /usr/include/stdint.h:26, from /daten/riscv64/gcc/gcc-20230512/Build/gcc/include/stdint.h:9, from /daten/riscv64/gcc/gcc-20230512/gcc/testsuite/gcc.target/riscv/rvv/autovec/binop/shift-template.h:1, from /daten/riscv64/gcc/gcc-20230512/gcc/testsuite/gcc.target/riscv/rvv/autovec/binop/shift-rv32gcv.c:4: /usr/include/gnu/stubs.h:11:11: fatal error: gnu/stubs-ilp32d.h: No such file or directory compilation terminated. compiler exited with status 1 FAIL: gcc.target/riscv/rvv/autovec/binop/shift-rv32gcv.c (test for excess errors) Excess errors: /usr/include/gnu/stubs.h:11:11: fatal error: gnu/stubs-ilp32d.h: No such file or directory compilation terminated. -- Andreas Schwab, SUSE Labs, sch...@suse.de GPG Key fingerprint = 0196 BAD8 1CE9 1970 F4BE 1748 E4D4 88E3 0EEA B9D7 "And now for something completely different."
Re: [PATCH] riscv: Add autovectorization tests for binary integer
On 5/10/23 20:26, Kito Cheng wrote: Don't forgot to add Michael to co-author, you can added by following line: Co-authored-by: Michael Collison And GCC's changelog generating script will recognize that and generate the right thing for that :) Thanks for pointing that out. I was looking for something similar to --author, but didn't find anything (of course). I didn't realize it was actually handled by looking for tags in the commit message. Jeff
Re: [PATCH] riscv: Add autovectorization tests for binary integer
LGTM. The whole implementation is your own work, but tests are mostly base on Michael so add Michael as co-author in testcase patch and then commit. juzhe.zh...@rivai.ai From: Robin Dapp Date: 2023-05-10 23:24 To: gcc-patches; juzhe.zh...@rivai.ai; Kito Cheng; Michael Collison; palmer; jeffreyalaw CC: rdapp.gcc Subject: [PATCH] riscv: Add autovectorization tests for binary integer Hi, this patchs adds scan as well as execution tests for vectorized binary integer operations. It is based on Michael Collison's work and also includes scalar variants. The tests are not fully comprehensive as the vector type promotions (vec_unpack, extend etc.) are not implemented yet. Also, vmulh, vmulhu, and vmulhsu and others are still missing. Regards Robin -- gcc/testsuite/ChangeLog: * gcc.target/riscv/rvv/autovec/shift-rv32gcv.c: New test. * gcc.target/riscv/rvv/autovec/shift-rv64gcv.c: New test. * gcc.target/riscv/rvv/autovec/shift-scalar-rv32gcv.c: New test. * gcc.target/riscv/rvv/autovec/shift-scalar-rv64gcv.c: New test. * gcc.target/riscv/rvv/autovec/shift-scalar-template.h: New test. * gcc.target/riscv/rvv/autovec/shift-template.h: New test. * gcc.target/riscv/rvv/autovec/shift-run-template.h: New test. * gcc.target/riscv/rvv/autovec/vadd-run-template.h: New test. * gcc.target/riscv/rvv/autovec/vadd-rv32gcv.c: New test. * gcc.target/riscv/rvv/autovec/vadd-rv64gcv.c: New test. * gcc.target/riscv/rvv/autovec/vadd-template.h: New test. * gcc.target/riscv/rvv/autovec/vand-run-template.h: New test. * gcc.target/riscv/rvv/autovec/vand-rv32gcv.c: New test. * gcc.target/riscv/rvv/autovec/vand-rv64gcv.c: New test. * gcc.target/riscv/rvv/autovec/vand-template.h: New test. * gcc.target/riscv/rvv/autovec/vdiv-run-template.h: New test. * gcc.target/riscv/rvv/autovec/vdiv-rv32gcv.c: New test. * gcc.target/riscv/rvv/autovec/vdiv-rv64gcv.c: New test. * gcc.target/riscv/rvv/autovec/vdiv-template.h: New test. * gcc.target/riscv/rvv/autovec/vmax-run-template.h: New test. * gcc.target/riscv/rvv/autovec/vmax-rv32gcv.c: New test. * gcc.target/riscv/rvv/autovec/vmax-rv64gcv.c: New test. * gcc.target/riscv/rvv/autovec/vmax-template.h: New test. * gcc.target/riscv/rvv/autovec/vmin-run-template.h: New test. * gcc.target/riscv/rvv/autovec/vmin-rv32gcv.c: New test. * gcc.target/riscv/rvv/autovec/vmin-rv64gcv.c: New test. * gcc.target/riscv/rvv/autovec/vmin-template.h: New test. * gcc.target/riscv/rvv/autovec/vmul-run-template.h: New test. * gcc.target/riscv/rvv/autovec/vmul-rv32gcv.c: New test. * gcc.target/riscv/rvv/autovec/vmul-rv64gcv.c: New test. * gcc.target/riscv/rvv/autovec/vmul-template.h: New test. * gcc.target/riscv/rvv/autovec/vor-run-template.h: New test. * gcc.target/riscv/rvv/autovec/vor-rv32gcv.c: New test. * gcc.target/riscv/rvv/autovec/vor-rv64gcv.c: New test. * gcc.target/riscv/rvv/autovec/vor-template.h: New test. * gcc.target/riscv/rvv/autovec/vrem-run-template.h: New test. * gcc.target/riscv/rvv/autovec/vrem-rv32gcv.c: New test. * gcc.target/riscv/rvv/autovec/vrem-rv64gcv.c: New test. * gcc.target/riscv/rvv/autovec/vrem-template.h: New test. * gcc.target/riscv/rvv/autovec/vsub-run-template.h: New test. * gcc.target/riscv/rvv/autovec/vsub-rv32gcv.c: New test. * gcc.target/riscv/rvv/autovec/vsub-rv64gcv.c: New test. * gcc.target/riscv/rvv/autovec/vsub-template.h: New test. * gcc.target/riscv/rvv/autovec/vxor-run-template.h: New test. * gcc.target/riscv/rvv/autovec/vxor-rv32gcv.c: New test. * gcc.target/riscv/rvv/autovec/vxor-rv64gcv.c: New test. * gcc.target/riscv/rvv/autovec/vxor-template.h: New test. --- .../riscv/rvv/autovec/shift-run-template.h| 47 +++ .../riscv/rvv/autovec/shift-rv32gcv.c | 12 ++ .../riscv/rvv/autovec/shift-rv64gcv.c | 12 ++ .../riscv/rvv/autovec/shift-scalar-rv32gcv.c | 7 ++ .../riscv/rvv/autovec/shift-scalar-rv64gcv.c | 7 ++ .../riscv/rvv/autovec/shift-scalar-template.h | 119 ++ .../riscv/rvv/autovec/shift-template.h| 34 + .../riscv/rvv/autovec/vadd-run-template.h | 64 ++ .../riscv/rvv/autovec/vadd-rv32gcv.c | 8 ++ .../riscv/rvv/autovec/vadd-rv64gcv.c | 8 ++ .../riscv/rvv/autovec/vadd-template.h | 56 + .../riscv/rvv/autovec/vand-run-template.h | 64 ++ .../riscv/rvv/autovec/vand-rv32gcv.c | 8 ++ .../riscv/rvv/autovec/vand-rv64gcv.c | 8 ++ .../riscv/rvv/autovec/vand-template.h | 56 + .../riscv/rvv/autovec/vdiv-run-template.h | 42 +++ .../riscv/rvv/autovec/vdiv-rv32gcv.c | 10 ++ .../riscv/rvv/autovec/vdiv-rv64gcv.c | 10 ++ .../riscv/rvv/autovec/vdiv-template.h | 34 + .../riscv/rvv/autovec/vmax-run-template.h | 42 +++ .../riscv/rvv/autovec/vmax-rv32gcv.c | 8 ++ .../riscv/rvv/autovec/vmax-rv64gcv.c | 8 ++ .../riscv/rvv/autovec/vmax-template.h | 34 + .../riscv/rvv/autovec/vmin-run-template.h | 42 +++ .../riscv/rvv/autovec/vmin
Re: [PATCH] riscv: Add autovectorization tests for binary integer
Don't forgot to add Michael to co-author, you can added by following line: Co-authored-by: Michael Collison And GCC's changelog generating script will recognize that and generate the right thing for that :)
Re: [PATCH] riscv: Add autovectorization tests for binary integer
On Wed, 10 May 2023 08:24:57 PDT (-0700), rdapp@gmail.com wrote: > Hi, > > this patchs adds scan as well as execution tests for vectorized > binary integer operations. It is based on Michael Collison's work > and also includes scalar variants. The tests are not fully comprehensive > as the vector type promotions (vec_unpack, extend etc.) are not > implemented yet. Also, vmulh, vmulhu, and vmulhsu and others are > still missing. Ah, I guess there's the tests... ;) > > Regards > Robin > > -- > > gcc/testsuite/ChangeLog: > > * gcc.target/riscv/rvv/autovec/shift-rv32gcv.c: New test. > * gcc.target/riscv/rvv/autovec/shift-rv64gcv.c: New test. > * gcc.target/riscv/rvv/autovec/shift-scalar-rv32gcv.c: New test. > * gcc.target/riscv/rvv/autovec/shift-scalar-rv64gcv.c: New test. > * gcc.target/riscv/rvv/autovec/shift-scalar-template.h: New test. > * gcc.target/riscv/rvv/autovec/shift-template.h: New test. > * gcc.target/riscv/rvv/autovec/shift-run-template.h: New test. > * gcc.target/riscv/rvv/autovec/vadd-run-template.h: New test. > * gcc.target/riscv/rvv/autovec/vadd-rv32gcv.c: New test. > * gcc.target/riscv/rvv/autovec/vadd-rv64gcv.c: New test. > * gcc.target/riscv/rvv/autovec/vadd-template.h: New test. > * gcc.target/riscv/rvv/autovec/vand-run-template.h: New test. > * gcc.target/riscv/rvv/autovec/vand-rv32gcv.c: New test. > * gcc.target/riscv/rvv/autovec/vand-rv64gcv.c: New test. > * gcc.target/riscv/rvv/autovec/vand-template.h: New test. > * gcc.target/riscv/rvv/autovec/vdiv-run-template.h: New test. > * gcc.target/riscv/rvv/autovec/vdiv-rv32gcv.c: New test. > * gcc.target/riscv/rvv/autovec/vdiv-rv64gcv.c: New test. > * gcc.target/riscv/rvv/autovec/vdiv-template.h: New test. > * gcc.target/riscv/rvv/autovec/vmax-run-template.h: New test. > * gcc.target/riscv/rvv/autovec/vmax-rv32gcv.c: New test. > * gcc.target/riscv/rvv/autovec/vmax-rv64gcv.c: New test. > * gcc.target/riscv/rvv/autovec/vmax-template.h: New test. > * gcc.target/riscv/rvv/autovec/vmin-run-template.h: New test. > * gcc.target/riscv/rvv/autovec/vmin-rv32gcv.c: New test. > * gcc.target/riscv/rvv/autovec/vmin-rv64gcv.c: New test. > * gcc.target/riscv/rvv/autovec/vmin-template.h: New test. > * gcc.target/riscv/rvv/autovec/vmul-run-template.h: New test. > * gcc.target/riscv/rvv/autovec/vmul-rv32gcv.c: New test. > * gcc.target/riscv/rvv/autovec/vmul-rv64gcv.c: New test. > * gcc.target/riscv/rvv/autovec/vmul-template.h: New test. > * gcc.target/riscv/rvv/autovec/vor-run-template.h: New test. > * gcc.target/riscv/rvv/autovec/vor-rv32gcv.c: New test. > * gcc.target/riscv/rvv/autovec/vor-rv64gcv.c: New test. > * gcc.target/riscv/rvv/autovec/vor-template.h: New test. > * gcc.target/riscv/rvv/autovec/vrem-run-template.h: New test. > * gcc.target/riscv/rvv/autovec/vrem-rv32gcv.c: New test. > * gcc.target/riscv/rvv/autovec/vrem-rv64gcv.c: New test. > * gcc.target/riscv/rvv/autovec/vrem-template.h: New test. > * gcc.target/riscv/rvv/autovec/vsub-run-template.h: New test. > * gcc.target/riscv/rvv/autovec/vsub-rv32gcv.c: New test. > * gcc.target/riscv/rvv/autovec/vsub-rv64gcv.c: New test. > * gcc.target/riscv/rvv/autovec/vsub-template.h: New test. > * gcc.target/riscv/rvv/autovec/vxor-run-template.h: New test. > * gcc.target/riscv/rvv/autovec/vxor-rv32gcv.c: New test. > * gcc.target/riscv/rvv/autovec/vxor-rv64gcv.c: New test. > * gcc.target/riscv/rvv/autovec/vxor-template.h: New test. I just skimmed them, but nothing jumps out as a problem. IMO that's good enough to land them on trunk once the dependencies do. > --- > .../riscv/rvv/autovec/shift-run-template.h| 47 +++ > .../riscv/rvv/autovec/shift-rv32gcv.c | 12 ++ > .../riscv/rvv/autovec/shift-rv64gcv.c | 12 ++ > .../riscv/rvv/autovec/shift-scalar-rv32gcv.c | 7 ++ > .../riscv/rvv/autovec/shift-scalar-rv64gcv.c | 7 ++ > .../riscv/rvv/autovec/shift-scalar-template.h | 119 ++ > .../riscv/rvv/autovec/shift-template.h| 34 + > .../riscv/rvv/autovec/vadd-run-template.h | 64 ++ > .../riscv/rvv/autovec/vadd-rv32gcv.c | 8 ++ > .../riscv/rvv/autovec/vadd-rv64gcv.c | 8 ++ > .../riscv/rvv/autovec/vadd-template.h | 56 + > .../riscv/rvv/autovec/vand-run-template.h | 64 ++ > .../riscv/rvv/autovec/vand-rv32gcv.c | 8 ++ > .../riscv/rvv/autovec/vand-rv64gcv.c | 8 ++ > .../riscv/rvv/autovec/vand-template.h | 56 + > .../riscv/rvv/autovec/vdiv-run-template.h | 42 +++ > .../riscv/rvv/autovec/vdiv-rv32gcv.c | 10 ++ > .../riscv/rvv/autovec/vdiv-rv64gcv.c | 10 ++ > .../riscv/rvv/autovec/vdiv-template.h | 34 + >
[PATCH] riscv: Add autovectorization tests for binary integer
Hi, this patchs adds scan as well as execution tests for vectorized binary integer operations. It is based on Michael Collison's work and also includes scalar variants. The tests are not fully comprehensive as the vector type promotions (vec_unpack, extend etc.) are not implemented yet. Also, vmulh, vmulhu, and vmulhsu and others are still missing. Regards Robin -- gcc/testsuite/ChangeLog: * gcc.target/riscv/rvv/autovec/shift-rv32gcv.c: New test. * gcc.target/riscv/rvv/autovec/shift-rv64gcv.c: New test. * gcc.target/riscv/rvv/autovec/shift-scalar-rv32gcv.c: New test. * gcc.target/riscv/rvv/autovec/shift-scalar-rv64gcv.c: New test. * gcc.target/riscv/rvv/autovec/shift-scalar-template.h: New test. * gcc.target/riscv/rvv/autovec/shift-template.h: New test. * gcc.target/riscv/rvv/autovec/shift-run-template.h: New test. * gcc.target/riscv/rvv/autovec/vadd-run-template.h: New test. * gcc.target/riscv/rvv/autovec/vadd-rv32gcv.c: New test. * gcc.target/riscv/rvv/autovec/vadd-rv64gcv.c: New test. * gcc.target/riscv/rvv/autovec/vadd-template.h: New test. * gcc.target/riscv/rvv/autovec/vand-run-template.h: New test. * gcc.target/riscv/rvv/autovec/vand-rv32gcv.c: New test. * gcc.target/riscv/rvv/autovec/vand-rv64gcv.c: New test. * gcc.target/riscv/rvv/autovec/vand-template.h: New test. * gcc.target/riscv/rvv/autovec/vdiv-run-template.h: New test. * gcc.target/riscv/rvv/autovec/vdiv-rv32gcv.c: New test. * gcc.target/riscv/rvv/autovec/vdiv-rv64gcv.c: New test. * gcc.target/riscv/rvv/autovec/vdiv-template.h: New test. * gcc.target/riscv/rvv/autovec/vmax-run-template.h: New test. * gcc.target/riscv/rvv/autovec/vmax-rv32gcv.c: New test. * gcc.target/riscv/rvv/autovec/vmax-rv64gcv.c: New test. * gcc.target/riscv/rvv/autovec/vmax-template.h: New test. * gcc.target/riscv/rvv/autovec/vmin-run-template.h: New test. * gcc.target/riscv/rvv/autovec/vmin-rv32gcv.c: New test. * gcc.target/riscv/rvv/autovec/vmin-rv64gcv.c: New test. * gcc.target/riscv/rvv/autovec/vmin-template.h: New test. * gcc.target/riscv/rvv/autovec/vmul-run-template.h: New test. * gcc.target/riscv/rvv/autovec/vmul-rv32gcv.c: New test. * gcc.target/riscv/rvv/autovec/vmul-rv64gcv.c: New test. * gcc.target/riscv/rvv/autovec/vmul-template.h: New test. * gcc.target/riscv/rvv/autovec/vor-run-template.h: New test. * gcc.target/riscv/rvv/autovec/vor-rv32gcv.c: New test. * gcc.target/riscv/rvv/autovec/vor-rv64gcv.c: New test. * gcc.target/riscv/rvv/autovec/vor-template.h: New test. * gcc.target/riscv/rvv/autovec/vrem-run-template.h: New test. * gcc.target/riscv/rvv/autovec/vrem-rv32gcv.c: New test. * gcc.target/riscv/rvv/autovec/vrem-rv64gcv.c: New test. * gcc.target/riscv/rvv/autovec/vrem-template.h: New test. * gcc.target/riscv/rvv/autovec/vsub-run-template.h: New test. * gcc.target/riscv/rvv/autovec/vsub-rv32gcv.c: New test. * gcc.target/riscv/rvv/autovec/vsub-rv64gcv.c: New test. * gcc.target/riscv/rvv/autovec/vsub-template.h: New test. * gcc.target/riscv/rvv/autovec/vxor-run-template.h: New test. * gcc.target/riscv/rvv/autovec/vxor-rv32gcv.c: New test. * gcc.target/riscv/rvv/autovec/vxor-rv64gcv.c: New test. * gcc.target/riscv/rvv/autovec/vxor-template.h: New test. --- .../riscv/rvv/autovec/shift-run-template.h| 47 +++ .../riscv/rvv/autovec/shift-rv32gcv.c | 12 ++ .../riscv/rvv/autovec/shift-rv64gcv.c | 12 ++ .../riscv/rvv/autovec/shift-scalar-rv32gcv.c | 7 ++ .../riscv/rvv/autovec/shift-scalar-rv64gcv.c | 7 ++ .../riscv/rvv/autovec/shift-scalar-template.h | 119 ++ .../riscv/rvv/autovec/shift-template.h| 34 + .../riscv/rvv/autovec/vadd-run-template.h | 64 ++ .../riscv/rvv/autovec/vadd-rv32gcv.c | 8 ++ .../riscv/rvv/autovec/vadd-rv64gcv.c | 8 ++ .../riscv/rvv/autovec/vadd-template.h | 56 + .../riscv/rvv/autovec/vand-run-template.h | 64 ++ .../riscv/rvv/autovec/vand-rv32gcv.c | 8 ++ .../riscv/rvv/autovec/vand-rv64gcv.c | 8 ++ .../riscv/rvv/autovec/vand-template.h | 56 + .../riscv/rvv/autovec/vdiv-run-template.h | 42 +++ .../riscv/rvv/autovec/vdiv-rv32gcv.c | 10 ++ .../riscv/rvv/autovec/vdiv-rv64gcv.c | 10 ++ .../riscv/rvv/autovec/vdiv-template.h | 34 + .../riscv/rvv/autovec/vmax-run-template.h | 42 +++ .../riscv/rvv/autovec/vmax-rv32gcv.c | 8 ++ .../riscv/rvv/autovec/vmax-rv64gcv.c | 8 ++ .../riscv/rvv/autovec/vmax-template.h | 34 + .../riscv/rvv/autovec/vmin-run-template.h | 42 +++