aboutsummaryrefslogtreecommitdiff
path: root/libjava/java/lang/String.java
diff options
context:
space:
mode:
authorAlexandre Oliva <oliva@adacore.com>2025-04-21 22:48:55 -0300
committerAlexandre Oliva <oliva@gnu.org>2025-04-21 22:48:55 -0300
commit14fa625bcb91028cb97f3575d2e394401bbb4a3a (patch)
treee13b770fe66241d9ce5a3ebf561ee2f1f1268f0e /libjava/java/lang/String.java
parent5c430061648071408996c44f7094f7af7aae0868 (diff)
downloadgcc-14fa625bcb91028cb97f3575d2e394401bbb4a3a.zip
gcc-14fa625bcb91028cb97f3575d2e394401bbb4a3a.tar.gz
gcc-14fa625bcb91028cb97f3575d2e394401bbb4a3a.tar.bz2
[riscv] vec_dup immediate constants in pred_broadcast expand [PR118182]
pr118182-2.c fails on gcc-14 because it lacks the late_combine passes, particularly the one that runs after register allocation. Even in the trunk, the predicate broadcast for the add reduction is expanded and register-allocated as _zvfh, taking up an unneeded scalar register to hold the constant to be vec_duplicated. It is the late combine pass after register allocation that substitutes this unneeded scalar register into the vec_duplicate, resolving to the _zero or _imm insns. It's easy enough and more efficient to expand pred_broadcast to the insns that take the already-duplicated vector constant, when the operands satisfy the predicates of the _zero or _imm insns. for gcc/ChangeLog PR target/118182 * config/riscv/vector.md (@pred_broadcast<mode>): Expand to _zero and _imm variants without vec_duplicate.
Diffstat (limited to 'libjava/java/lang/String.java')
0 files changed, 0 insertions, 0 deletions