[Bug rtl-optimization/126426] riscv rvv: Incorrect result with -march=rva23u64 -O2 in libgav1
"law at gcc dot gnu.org via Gcc-bugs" <[email protected]> Tue, 04 Aug 2026 22:43:41 +0000
| Newsgroups | gmane.comp.gcc.bugs |
|---|---|
| Message-ID | <[email protected]/bugzilla/> |
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=126426 --- Comment #5 from Jeffrey A. Law <law at gcc dot gnu.org> --- So I think I know what's going on here. I don't think we're handling vector modes correctly in ext-dce. Consider something like (subreg:V2HI (reg:DI N)). What bits are live within N? Right now ext-dce reports 0xffff and that in turn enables removal of an extension. That seems horribly wrong. 0xfffffff seems much more correct ;-) I need to go back to the initial review discussion which pushed us towards using GET_MODE_INNER in various places. Conceptually for destinations, GET_MODE_INNER is likely conservatively correct. But for source operands, it seems quite wrong.