[Bug target/123910] ICE: in extract_insn, at recog.cc:2888: unrecognizable insn: if_then_else:RVVMF2QI... UNSPEC_VUNDEF with -mcpu=xt-c920 -mrvv-vector-bits=zvl

2026-02-16 Thread law at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=123910

Jeffrey A. Law  changed:

   What|Removed |Added

 Resolution|--- |FIXED
 Status|UNCONFIRMED |RESOLVED

--- Comment #4 from Jeffrey A. Law  ---
I went ahead and cherry-picked this back to gcc-15.

[Bug target/123910] ICE: in extract_insn, at recog.cc:2888: unrecognizable insn: if_then_else:RVVMF2QI... UNSPEC_VUNDEF with -mcpu=xt-c920 -mrvv-vector-bits=zvl

2026-02-16 Thread cvs-commit at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=123910

--- Comment #3 from GCC Commits  ---
The releases/gcc-15 branch has been updated by Jeff Law :

https://gcc.gnu.org/g:a74a8b385f986b6c4d46324a401888bcc263d498

commit r15-10831-ga74a8b385f986b6c4d46324a401888bcc263d498
Author: Robin Dapp 
Date:   Mon Feb 2 10:28:08 2026 +0100

RISC-V: Disable small memsets for xtheadvector [PR123910].

This patch disables memsets with size less than a vector for
xtheadvector.  As xtheadvector does not support fractional
LMUL we need to ensure to not emit those vectors that might
use it.

PR target/123910

gcc/ChangeLog:

* config/riscv/riscv-string.cc (riscv_expand_block_move):
Remove !xtheadvector guard.
(use_vector_stringop_p): Guard small LMULs.
(check_vectorise_memory_operation): Ditto.

gcc/testsuite/ChangeLog:

* gcc.target/riscv/rvv/autovec/pr123910.c: New test.
* gcc.target/riscv/rvv/xtheadvector/pr114194-rv32.c: xfail.

Signed-off-by: Robin Dapp 
(cherry picked from commit c3e3456007a46f5eb790817631a656a963326ddf)

[Bug target/123910] ICE: in extract_insn, at recog.cc:2888: unrecognizable insn: if_then_else:RVVMF2QI... UNSPEC_VUNDEF with -mcpu=xt-c920 -mrvv-vector-bits=zvl

2026-02-05 Thread cvs-commit at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=123910

--- Comment #2 from GCC Commits  ---
The master branch has been updated by Robin Dapp :

https://gcc.gnu.org/g:c3e3456007a46f5eb790817631a656a963326ddf

commit r16-7310-gc3e3456007a46f5eb790817631a656a963326ddf
Author: Robin Dapp 
Date:   Mon Feb 2 10:28:08 2026 +0100

RISC-V: Disable small memsets for xtheadvector [PR123910].

This patch disables memsets with size less than a vector for
xtheadvector.  As xtheadvector does not support fractional
LMUL we need to ensure to not emit those vectors that might
use it.

PR target/123910

gcc/ChangeLog:

* config/riscv/riscv-string.cc (riscv_expand_block_move):
Remove !xtheadvector guard.
(use_vector_stringop_p): Guard small LMULs.
(check_vectorise_memory_operation): Ditto.

gcc/testsuite/ChangeLog:

* gcc.target/riscv/rvv/autovec/pr123910.c: New test.
* gcc.target/riscv/rvv/xtheadvector/pr114194-rv32.c: xfail.

Signed-off-by: Robin Dapp 

[Bug target/123910] ICE: in extract_insn, at recog.cc:2888: unrecognizable insn: if_then_else:RVVMF2QI... UNSPEC_VUNDEF with -mcpu=xt-c920 -mrvv-vector-bits=zvl

2026-02-01 Thread rdapp at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=123910

Robin Dapp  changed:

   What|Removed |Added

 CC||rdapp at gcc dot gnu.org

--- Comment #1 from Robin Dapp  ---
We don't disable theadvector for all paths in riscv-string.cc.  This is an easy
fix even though it would be better to allow vectorization and disable
fractional LMUL.  A memmove size of 16 works, 8 doesn't.

Right now it's a bit inconsistent, we disable "block move" with XTHEADVECTOR
but not memmove.