diff options
author | Xi Ruoyao <xry111@xry111.site> | 2023-12-19 04:48:03 +0800 |
---|---|---|
committer | Xi Ruoyao <xry111@xry111.site> | 2023-12-20 20:01:51 +0800 |
commit | c7eefea622e70bd63b0e00e896f67cf9ee9916bc (patch) | |
tree | 2207814c0a1fae7d11880ba9cc2a4f51f889d145 /gcc/fortran/options.cc | |
parent | c5651e9bc057f08bad3297cc2fe3eafffa31c95e (diff) | |
download | gcc-c7eefea622e70bd63b0e00e896f67cf9ee9916bc.zip gcc-c7eefea622e70bd63b0e00e896f67cf9ee9916bc.tar.gz gcc-c7eefea622e70bd63b0e00e896f67cf9ee9916bc.tar.bz2 |
LoongArch: Use force_reg instead of gen_reg_rtx + emit_move_insn in vec_init expander [PR113033]
Jakub says:
Then that seems like a bug in the loongarch vec_init pattern(s).
Those really don't have a predicate in any of the backends on the
input operand, so they need to force_reg it if it is something it
can't handle. I've looked e.g. at i386 vec_init and that is exactly
what it does, see the various tests + force_reg calls in
ix86_expand_vector_init*.
So replace gen_reg_rtx + emit_move_insn with force_reg to fix PR 113033.
gcc/ChangeLog:
PR target/113033
* config/loongarch/loongarch.cc
(loongarch_expand_vector_init_same): Replace gen_reg_rtx +
emit_move_insn with force_reg.
(loongarch_expand_vector_init): Likewise.
gcc/testsuite/ChangeLog:
PR target/113033
* gcc.target/loongarch/pr113033.c: New test.
Diffstat (limited to 'gcc/fortran/options.cc')
0 files changed, 0 insertions, 0 deletions