public inbox for gcc-bugs@sourceware.org help / color / mirror / Atom feed
* [Bug target/114202] New: [14] RISC-V rv64gcv: miscompile at -O3 @ 2024-03-02 2:10 patrick at rivosinc dot com 2024-03-02 2:13 ` [Bug target/114202] " patrick at rivosinc dot com ` (2 more replies) 0 siblings, 3 replies; 4+ messages in thread From: patrick at rivosinc dot com @ 2024-03-02 2:10 UTC (permalink / raw) To: gcc-bugs https://gcc.gnu.org/bugzilla/show_bug.cgi?id=114202 Bug ID: 114202 Summary: [14] RISC-V rv64gcv: miscompile at -O3 Product: gcc Version: 14.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: target Assignee: unassigned at gcc dot gnu.org Reporter: patrick at rivosinc dot com Target Milestone: --- Testcase: int printf(const char *, ...); signed char a, d; _Bool b; signed char c[324]; int e; int main() { c[63] = 50; for (int f = 0; f < 9; f++) { for (unsigned g = 0; g < 12; g++) for (char h = 0; h < 8; h++) e = a += c[g * 9]; b = e ? d : 0; } printf("%d\n", a); } Commands: > /scratch/tc-testing/tc-feb-20/build-rv64gcv/bin/riscv64-unknown-linux-gnu-gcc -march=rv64gcv -O3 -fwrapv red.c -o red.out > /scratch/tc-testing/tc-feb-20-llvm/build/bin/qemu-riscv64 red.out 32 > /scratch/tc-testing/tc-feb-20/build-rv64gcv/bin/riscv64-unknown-linux-gnu-gcc -march=rv64gcv -O2 -fwrapv red.c -o red.out > /scratch/tc-testing/tc-feb-20-llvm/build/bin/qemu-riscv64 red.out 16 With the overflows (-fwrapv) the expected value is 16. Tested/found using r14-9084-g61ab046a327 (not bisected) Found via fuzzer. ^ permalink raw reply [flat|nested] 4+ messages in thread
* [Bug target/114202] [14] RISC-V rv64gcv: miscompile at -O3 2024-03-02 2:10 [Bug target/114202] New: [14] RISC-V rv64gcv: miscompile at -O3 patrick at rivosinc dot com @ 2024-03-02 2:13 ` patrick at rivosinc dot com 2024-03-06 19:42 ` cvs-commit at gcc dot gnu.org 2024-03-06 19:43 ` rdapp at gcc dot gnu.org 2 siblings, 0 replies; 4+ messages in thread From: patrick at rivosinc dot com @ 2024-03-02 2:13 UTC (permalink / raw) To: gcc-bugs https://gcc.gnu.org/bugzilla/show_bug.cgi?id=114202 --- Comment #1 from Patrick O'Neill <patrick at rivosinc dot com> --- Looks similar to pr114200 so it might be related/duplicate. ^ permalink raw reply [flat|nested] 4+ messages in thread
* [Bug target/114202] [14] RISC-V rv64gcv: miscompile at -O3 2024-03-02 2:10 [Bug target/114202] New: [14] RISC-V rv64gcv: miscompile at -O3 patrick at rivosinc dot com 2024-03-02 2:13 ` [Bug target/114202] " patrick at rivosinc dot com @ 2024-03-06 19:42 ` cvs-commit at gcc dot gnu.org 2024-03-06 19:43 ` rdapp at gcc dot gnu.org 2 siblings, 0 replies; 4+ messages in thread From: cvs-commit at gcc dot gnu.org @ 2024-03-06 19:42 UTC (permalink / raw) To: gcc-bugs https://gcc.gnu.org/bugzilla/show_bug.cgi?id=114202 --- Comment #2 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:59554a50be8ebbd52e8a6348a92110af182e1874 commit r14-9345-g59554a50be8ebbd52e8a6348a92110af182e1874 Author: Robin Dapp <rdapp@ventanamicro.com> Date: Wed Mar 6 12:15:40 2024 +0100 RISC-V: Use vmv1r.v instead of vmv.v.v for fma output reloads [PR114200]. Three-operand instructions like vmacc are modeled with an implicit output reload when the output does not match one of the operands. For this we use vmv.v.v which is subject to length masking. In a situation where the current vl is less than the full vlenb and the fma's result value is used as input for a vector reduction (which is never length masked) we effectively only reduce vl elements. The masked-out elements are relevant for the reduction, though, leading to a wrong result. This patch replaces the vmv reloads by full-register reloads. gcc/ChangeLog: PR target/114200 PR target/114202 * config/riscv/vector.md: Use vmv[1248]r.v instead of vmv.v.v. gcc/testsuite/ChangeLog: * gcc.target/riscv/rvv/autovec/pr114200.c: New test. * gcc.target/riscv/rvv/autovec/pr114202.c: New test. ^ permalink raw reply [flat|nested] 4+ messages in thread
* [Bug target/114202] [14] RISC-V rv64gcv: miscompile at -O3 2024-03-02 2:10 [Bug target/114202] New: [14] RISC-V rv64gcv: miscompile at -O3 patrick at rivosinc dot com 2024-03-02 2:13 ` [Bug target/114202] " patrick at rivosinc dot com 2024-03-06 19:42 ` cvs-commit at gcc dot gnu.org @ 2024-03-06 19:43 ` rdapp at gcc dot gnu.org 2 siblings, 0 replies; 4+ messages in thread From: rdapp at gcc dot gnu.org @ 2024-03-06 19:43 UTC (permalink / raw) To: gcc-bugs https://gcc.gnu.org/bugzilla/show_bug.cgi?id=114202 Robin Dapp <rdapp at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- Status|UNCONFIRMED |RESOLVED Resolution|--- |DUPLICATE --- Comment #3 from Robin Dapp <rdapp at gcc dot gnu.org> --- Same as PR114200. *** This bug has been marked as a duplicate of bug 114200 *** ^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2024-03-06 19:43 UTC | newest] Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed) -- links below jump to the message on this page -- 2024-03-02 2:10 [Bug target/114202] New: [14] RISC-V rv64gcv: miscompile at -O3 patrick at rivosinc dot com 2024-03-02 2:13 ` [Bug target/114202] " patrick at rivosinc dot com 2024-03-06 19:42 ` cvs-commit at gcc dot gnu.org 2024-03-06 19:43 ` 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).