public inbox for gcc-bugs@sourceware.org
help / color / mirror / Atom feed
* [Bug target/112853] New: RISC-V: RVV: SPEC2017 525.x264 regression
@ 2023-12-05 0:12 vineetg at gcc dot gnu.org
2023-12-05 0:14 ` [Bug target/112853] " vineetg at gcc dot gnu.org
` (9 more replies)
0 siblings, 10 replies; 11+ messages in thread
From: vineetg at gcc dot gnu.org @ 2023-12-05 0:12 UTC (permalink / raw)
To: gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=112853
Bug ID: 112853
Summary: RISC-V: RVV: SPEC2017 525.x264 regression
Product: gcc
Version: 14.0
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component: target
Assignee: unassigned at gcc dot gnu.org
Reporter: vineetg at gcc dot gnu.org
CC: juzhe.zhong at rivai dot ai, patrick at rivosinc dot com,
rdapp at gcc dot gnu.org
Target Milestone: ---
As of commit 3d104d93a701 ("ARC: Consistent use of whitespace in assembler
templates.") x264 build for RVV is segfaulting.
```
QEMU_CPU=rv64,vlen=256,zba=true,zbb=true,zbs=true,zicond=true,vext_spec=v1.0,Zve32f=true,Zve64f=true
qemu-riscv64 ./ldecod_r_base.rivos_rv64-m64 -i BuckBunny.264 -o BuckBunny.yuv
Setting Default Parameters...
Parsing Configfile decoder.cfg
----------------------------- JM 17.1 (FRExt) -----------------------------
--------------------------------------------------------------------------
Input H.264 bitstream : BuckBunny.264
Output decoded YUV : BuckBunny.yuv
Input reference file : test_rec.yuv
--------------------------------------------------------------------------
POC must = frame# or field# for SNRs to be correct
--------------------------------------------------------------------------
Frame POC Pic# QP SnrY SnrU SnrV Y:U:V Time(ms)
--------------------------------------------------------------------------
Input reference file : test_rec.yuv does not exist
SNR values are not available
Segmentation fault (core dumped)
```
It was fine at my prev checkpoint:
2023-11-22 6f59f959e751 hppa: Define MAX_FIXED_MODE_SIZE
Built with following flags
-Ofast -fno-lto -static -march=rv64gcv_zba_zbb_zbc_zbs_zicond -ftree-vectorize
--param=riscv-autovec-preference=scalable
^ permalink raw reply [flat|nested] 11+ messages in thread
* [Bug target/112853] RISC-V: RVV: SPEC2017 525.x264 regression
2023-12-05 0:12 [Bug target/112853] New: RISC-V: RVV: SPEC2017 525.x264 regression vineetg at gcc dot gnu.org
@ 2023-12-05 0:14 ` vineetg at gcc dot gnu.org
2023-12-05 1:12 ` vineetg at gcc dot gnu.org
` (8 subsequent siblings)
9 siblings, 0 replies; 11+ messages in thread
From: vineetg at gcc dot gnu.org @ 2023-12-05 0:14 UTC (permalink / raw)
To: gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=112853
--- Comment #1 from Vineet Gupta <vineetg at gcc dot gnu.org> ---
Currently bisecting.
The issue happens at an indexed load insn:
=> 0x6f656 <intrapred_16x16_normal+668>: vluxei64.v v2,(a3),v2
The src reg v2 is different in good vs. failing case
bad case
----------
info reg v2
b = {0xc0, 0xcf, 0xb6, 0x0, 0x0, 0x0, 0x0, 0x0, 0x40, 0xc5, 0xb6, 0x0
<repeats 21 times>}}
good case
---------
b = {0xc0, 0xcf, 0xb6, 0x0, 0x0, 0x0, 0x0, 0x0, 0x40, 0xc5, 0xb6, 0x0,
0x0, 0x0, 0x0, 0x0, 0xc0, 0xcf, 0xb6, 0x0, 0x0, 0x0, 0x0, 0x0, 0x40, 0xb0,
0xb6, 0x0, 0x0, 0x0, 0x0, 0x0}}
^ permalink raw reply [flat|nested] 11+ messages in thread
* [Bug target/112853] RISC-V: RVV: SPEC2017 525.x264 regression
2023-12-05 0:12 [Bug target/112853] New: RISC-V: RVV: SPEC2017 525.x264 regression vineetg at gcc dot gnu.org
2023-12-05 0:14 ` [Bug target/112853] " vineetg at gcc dot gnu.org
@ 2023-12-05 1:12 ` vineetg at gcc dot gnu.org
2023-12-05 6:51 ` juzhe.zhong at rivai dot ai
` (7 subsequent siblings)
9 siblings, 0 replies; 11+ messages in thread
From: vineetg at gcc dot gnu.org @ 2023-12-05 1:12 UTC (permalink / raw)
To: gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=112853
--- Comment #2 from Vineet Gupta <vineetg at gcc dot gnu.org> ---
Bisected to
commit 97ddebb6b4f6b132b0a8072b26d030077b418963
Author: Juzhe-Zhong <juzhe.zhong@rivai.ai>
Date: Thu Nov 23 18:55:03 2023 +0800
RISC-V: Refine some codes of riscv-v.cc[NFC]
This patch is NFC patch to refine unreasonable codes I notice.
Tested on zvl128b/zvl256b/zvl512b/zvl1024b no regression.
Committed.
gcc/ChangeLog:
* config/riscv/riscv-v.cc (emit_vlmax_gather_insn): Refine codes.
(emit_vlmax_masked_gather_mu_insn): Ditto.
(modulo_sel_indices): Ditto.
(expand_vec_perm): Ditto.
(shuffle_generic_patterns): Ditto.
^ permalink raw reply [flat|nested] 11+ messages in thread
* [Bug target/112853] RISC-V: RVV: SPEC2017 525.x264 regression
2023-12-05 0:12 [Bug target/112853] New: RISC-V: RVV: SPEC2017 525.x264 regression vineetg at gcc dot gnu.org
2023-12-05 0:14 ` [Bug target/112853] " vineetg at gcc dot gnu.org
2023-12-05 1:12 ` vineetg at gcc dot gnu.org
@ 2023-12-05 6:51 ` juzhe.zhong at rivai dot ai
2023-12-05 7:43 ` juzhe.zhong at rivai dot ai
` (6 subsequent siblings)
9 siblings, 0 replies; 11+ messages in thread
From: juzhe.zhong at rivai dot ai @ 2023-12-05 6:51 UTC (permalink / raw)
To: gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=112853
--- Comment #3 from JuzheZhong <juzhe.zhong at rivai dot ai> ---
Confirm. I will have a look at it.
^ permalink raw reply [flat|nested] 11+ messages in thread
* [Bug target/112853] RISC-V: RVV: SPEC2017 525.x264 regression
2023-12-05 0:12 [Bug target/112853] New: RISC-V: RVV: SPEC2017 525.x264 regression vineetg at gcc dot gnu.org
` (2 preceding siblings ...)
2023-12-05 6:51 ` juzhe.zhong at rivai dot ai
@ 2023-12-05 7:43 ` juzhe.zhong at rivai dot ai
2023-12-05 8:30 ` rdapp at gcc dot gnu.org
` (5 subsequent siblings)
9 siblings, 0 replies; 11+ messages in thread
From: juzhe.zhong at rivai dot ai @ 2023-12-05 7:43 UTC (permalink / raw)
To: gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=112853
--- Comment #4 from JuzheZhong <juzhe.zhong at rivai dot ai> ---
Could you give me a test ?
^ permalink raw reply [flat|nested] 11+ messages in thread
* [Bug target/112853] RISC-V: RVV: SPEC2017 525.x264 regression
2023-12-05 0:12 [Bug target/112853] New: RISC-V: RVV: SPEC2017 525.x264 regression vineetg at gcc dot gnu.org
` (3 preceding siblings ...)
2023-12-05 7:43 ` juzhe.zhong at rivai dot ai
@ 2023-12-05 8:30 ` rdapp at gcc dot gnu.org
2023-12-05 14:39 ` rdapp at gcc dot gnu.org
` (4 subsequent siblings)
9 siblings, 0 replies; 11+ messages in thread
From: rdapp at gcc dot gnu.org @ 2023-12-05 8:30 UTC (permalink / raw)
To: gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=112853
--- Comment #5 from Robin Dapp <rdapp at gcc dot gnu.org> ---
Can confirm. The scalable build works with qemu vlen=128 but fails with
vlen=256. That's a good data point as I'm not sure we're already covering this
with the current runs?
I'm going to start a testsuite run with -march=rv64gcv_zvl128b and qemu
vlen=256 to look for fallout. Maybe this will already give us a clue before
extracting an x264 test case.
^ permalink raw reply [flat|nested] 11+ messages in thread
* [Bug target/112853] RISC-V: RVV: SPEC2017 525.x264 regression
2023-12-05 0:12 [Bug target/112853] New: RISC-V: RVV: SPEC2017 525.x264 regression vineetg at gcc dot gnu.org
` (4 preceding siblings ...)
2023-12-05 8:30 ` rdapp at gcc dot gnu.org
@ 2023-12-05 14:39 ` rdapp at gcc dot gnu.org
2023-12-05 14:42 ` rdapp at gcc dot gnu.org
` (3 subsequent siblings)
9 siblings, 0 replies; 11+ messages in thread
From: rdapp at gcc dot gnu.org @ 2023-12-05 14:39 UTC (permalink / raw)
To: gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=112853
--- Comment #6 from Robin Dapp <rdapp at gcc dot gnu.org> ---
I indeed see more failures with _zvl128b, vlen=256 (than with _zvl128b,
vlen=128):
FAIL: gcc.dg/vect/pr66251.c -flto -ffat-lto-objects execution test
FAIL: gcc.dg/vect/pr66251.c execution test
FAIL: gcc.dg/vect/pr66253.c -flto -ffat-lto-objects execution test
FAIL: gcc.dg/vect/pr66253.c execution test
FAIL: gcc.dg/vect/slp-46.c -flto -ffat-lto-objects execution test
FAIL: gcc.dg/vect/slp-46.c execution test
FAIL: gcc.dg/vect/vect-alias-check-10.c -flto -ffat-lto-objects execution test
FAIL: gcc.dg/vect/vect-alias-check-10.c execution test
FAIL: gcc.dg/vect/vect-alias-check-11.c -flto -ffat-lto-objects execution test
FAIL: gcc.dg/vect/vect-alias-check-11.c execution test
FAIL: gcc.dg/vect/vect-alias-check-12.c -flto -ffat-lto-objects execution test
FAIL: gcc.dg/vect/vect-alias-check-12.c execution test
FAIL: gcc.dg/vect/vect-alias-check-18.c -flto -ffat-lto-objects execution test
FAIL: gcc.dg/vect/vect-alias-check-18.c execution test
FAIL: gfortran.dg/array_constructor_4.f90 -O1 execution test
FAIL: gfortran.dg/associate_18.f08 -O1 execution test
FAIL: gfortran.dg/vector_subscript_8.f90 -O1 execution test
FAIL: gfortran.dg/vector_subscript_8.f90 -O2 execution test
FAIL: gfortran.dg/vector_subscript_8.f90 -O3 -fomit-frame-pointer
-funroll-loops -fpeel-loops -ftracer -finline-functions execution test
FAIL: gfortran.dg/vector_subscript_8.f90 -O3 -g execution test
FAIL: gfortran.fortran-torture/execute/in-pack.f90 execution, -O1
FAIL: gfortran.fortran-torture/execute/in-pack.f90 execution, -O2
FAIL: gfortran.fortran-torture/execute/in-pack.f90 execution, -O2
-fbounds-check
FAIL: gfortran.fortran-torture/execute/in-pack.f90 execution, -O2
-fomit-frame-pointer -finline-functions
FAIL: gfortran.fortran-torture/execute/in-pack.f90 execution, -O2
-fomit-frame-pointer -finline-functions -funroll-loops
FAIL: gfortran.fortran-torture/execute/in-pack.f90 execution, -O3 -g
Maybe those can give a hint.
^ permalink raw reply [flat|nested] 11+ messages in thread
* [Bug target/112853] RISC-V: RVV: SPEC2017 525.x264 regression
2023-12-05 0:12 [Bug target/112853] New: RISC-V: RVV: SPEC2017 525.x264 regression vineetg at gcc dot gnu.org
` (5 preceding siblings ...)
2023-12-05 14:39 ` rdapp at gcc dot gnu.org
@ 2023-12-05 14:42 ` rdapp at gcc dot gnu.org
2023-12-06 10:19 ` rdapp at gcc dot gnu.org
` (2 subsequent siblings)
9 siblings, 0 replies; 11+ messages in thread
From: rdapp at gcc dot gnu.org @ 2023-12-05 14:42 UTC (permalink / raw)
To: gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=112853
--- Comment #7 from Robin Dapp <rdapp at gcc dot gnu.org> ---
Ah, forgot three tests:
FAIL: gcc.dg/vect/bb-slp-cond-1.c execution test
FAIL: gcc.dg/vect/bb-slp-pr101668.c -flto -ffat-lto-objects execution test
FAIL: gcc.dg/vect/bb-slp-pr101668.c execution test
On vlen=512
gfortran.dg/array_constructor_4.f90
gfortran.dg/vector_subscript_8.f90
gfortran.fortran-torture/execute/in-pack.f90
are gone again, the rest is similar. Are those the unstable ones?
^ permalink raw reply [flat|nested] 11+ messages in thread
* [Bug target/112853] RISC-V: RVV: SPEC2017 525.x264 regression
2023-12-05 0:12 [Bug target/112853] New: RISC-V: RVV: SPEC2017 525.x264 regression vineetg at gcc dot gnu.org
` (6 preceding siblings ...)
2023-12-05 14:42 ` rdapp at gcc dot gnu.org
@ 2023-12-06 10:19 ` rdapp at gcc dot gnu.org
2023-12-11 9:47 ` cvs-commit at gcc dot gnu.org
2023-12-11 9:48 ` rdapp at gcc dot gnu.org
9 siblings, 0 replies; 11+ messages in thread
From: rdapp at gcc dot gnu.org @ 2023-12-06 10:19 UTC (permalink / raw)
To: gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=112853
--- Comment #8 from Robin Dapp <rdapp at gcc dot gnu.org> ---
With Juzhe's latest fix that disables VLS modes >= 128 bit for zvl128b x264
runs without issues here and some of the additional execution failures are
gone.
Will post the current comparison later.
^ permalink raw reply [flat|nested] 11+ messages in thread
* [Bug target/112853] RISC-V: RVV: SPEC2017 525.x264 regression
2023-12-05 0:12 [Bug target/112853] New: RISC-V: RVV: SPEC2017 525.x264 regression vineetg at gcc dot gnu.org
` (7 preceding siblings ...)
2023-12-06 10:19 ` rdapp at gcc dot gnu.org
@ 2023-12-11 9:47 ` cvs-commit at gcc dot gnu.org
2023-12-11 9:48 ` rdapp at gcc dot gnu.org
9 siblings, 0 replies; 11+ messages in thread
From: cvs-commit at gcc dot gnu.org @ 2023-12-11 9:47 UTC (permalink / raw)
To: gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=112853
--- Comment #9 from GCC Commits <cvs-commit at gcc dot gnu.org> ---
The master branch has been updated by Robin Dapp <rdapp@gcc.gnu.org>:
https://gcc.gnu.org/g:d9dd06ad51b7479f09acb88adf404664a1e18b2a
commit r14-6404-gd9dd06ad51b7479f09acb88adf404664a1e18b2a
Author: Robin Dapp <rdapp@ventanamicro.com>
Date: Fri Dec 8 12:50:01 2023 +0100
RISC-V: Recognize stepped series in expand_vec_perm_const.
We currently try to recognize various forms of stepped (const_vector)
sequence variants in expand_const_vector. Because of complications with
canonicalization and encoding it is easier to identify such patterns
in expand_vec_perm_const_1 already where perm.series_p () is available.
This patch introduces shuffle_series as new permutation pattern and
tries to recognize series like [base0 base1 base1 + step ...]. If such
a series is found the series is expanded by expand_vec_series and a
gather is emitted.
On top the patch fixes the step recognition in expand_const_vector
for stepped series where such a series would end up before.
This fixes several execution failures when running code compiled for a
scalable vector size of 128 on a target with vlen = 256 or higher.
The problem was only noticed there because the encoding for a reversed
[2 2]-element vector ("3 2 1 0") is { [1 2], [0 2], [1 4] }.
Some testcases that failed were:
vect-alias-check-18.c
vect-alias-check-1.F90
pr64365.c
On a 128-bit target, only the first two elements are used. The
third element causing the complications only comes into effect at
vlen = 256.
With this patch the testsuite results are similar with vlen = 128,
vlen = 256 as well as vlen = 512 (apart from the fixed-vlmax tests of
course).
gcc/ChangeLog:
PR target/112853
* config/riscv/riscv-v.cc (expand_const_vector): Fix step
calculation.
(modulo_sel_indices): Also perform modulo for variable-length
constants.
(shuffle_series): Recognize series permutations.
(expand_vec_perm_const_1): Add shuffle_series.
^ permalink raw reply [flat|nested] 11+ messages in thread
* [Bug target/112853] RISC-V: RVV: SPEC2017 525.x264 regression
2023-12-05 0:12 [Bug target/112853] New: RISC-V: RVV: SPEC2017 525.x264 regression vineetg at gcc dot gnu.org
` (8 preceding siblings ...)
2023-12-11 9:47 ` cvs-commit at gcc dot gnu.org
@ 2023-12-11 9:48 ` rdapp at gcc dot gnu.org
9 siblings, 0 replies; 11+ messages in thread
From: rdapp at gcc dot gnu.org @ 2023-12-11 9:48 UTC (permalink / raw)
To: gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=112853
--- Comment #10 from Robin Dapp <rdapp at gcc dot gnu.org> ---
I just realized that I forgot to post the comparison recently. With the patch
now upstream I don't see any differences for zvl128b and different vlens
anymore. What I haven't fully tested yet is zvl256b or higher with various
vlens.
^ permalink raw reply [flat|nested] 11+ messages in thread
end of thread, other threads:[~2023-12-11 9:48 UTC | newest]
Thread overview: 11+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2023-12-05 0:12 [Bug target/112853] New: RISC-V: RVV: SPEC2017 525.x264 regression vineetg at gcc dot gnu.org
2023-12-05 0:14 ` [Bug target/112853] " vineetg at gcc dot gnu.org
2023-12-05 1:12 ` vineetg at gcc dot gnu.org
2023-12-05 6:51 ` juzhe.zhong at rivai dot ai
2023-12-05 7:43 ` juzhe.zhong at rivai dot ai
2023-12-05 8:30 ` rdapp at gcc dot gnu.org
2023-12-05 14:39 ` rdapp at gcc dot gnu.org
2023-12-05 14:42 ` rdapp at gcc dot gnu.org
2023-12-06 10:19 ` rdapp at gcc dot gnu.org
2023-12-11 9:47 ` cvs-commit at gcc dot gnu.org
2023-12-11 9:48 ` rdapp at gcc dot gnu.org
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).