aboutsummaryrefslogtreecommitdiff
path: root/gcc/fortran/options.cc
diff options
context:
space:
mode:
authorXi Ruoyao <xry111@xry111.site>2023-12-19 04:48:03 +0800
committerXi Ruoyao <xry111@xry111.site>2023-12-20 20:01:51 +0800
commitc7eefea622e70bd63b0e00e896f67cf9ee9916bc (patch)
tree2207814c0a1fae7d11880ba9cc2a4f51f889d145 /gcc/fortran/options.cc
parentc5651e9bc057f08bad3297cc2fe3eafffa31c95e (diff)
downloadgcc-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