diff options
author | Jakub Jelinek <jakub@redhat.com> | 2025-04-09 22:00:35 +0200 |
---|---|---|
committer | Jakub Jelinek <jakub@gcc.gnu.org> | 2025-04-09 22:09:15 +0200 |
commit | 4203060a73e65e4fa3e091b060a973c3296b84e9 (patch) | |
tree | 17bdfe9be5234b0f281c8c768781293da45b8d30 /gcc/fortran/openmp.cc | |
parent | 101ac9e5acbd9ff7216565492988be7b4f02587d (diff) | |
download | gcc-4203060a73e65e4fa3e091b060a973c3296b84e9.zip gcc-4203060a73e65e4fa3e091b060a973c3296b84e9.tar.gz gcc-4203060a73e65e4fa3e091b060a973c3296b84e9.tar.bz2 |
h8300: Fix up bit test and jump splitter [PR119664]
r12-2601 has added this define_insn_and_split and corresponding
(define_insn ""
[(set (reg:CCZ CC_REG)
(eq (zero_extract:HSI (match_operand:HSI 0 "register_operand" "r")
(const_int 1)
(match_operand 1 "const_int_operand" "n"))
(const_int 0)))]
"INTVAL (operands[1]) < 16"
"btst %Z1,%Y0"
[(set_attr "length" "2")])
pattern into which the define_insn_and_split wants to splut in addition
to a conditional jump.
But as can be seen, the btst define_insn uses HSI mode iterator while
define_insn_and_split QHSI, so for QImode it splits into something that
can't be recognized.
This was probably latent since r12-2601 and on the attached testcase
is reproduceable starting with r15-1945 - a late combiner change.
2025-04-09 Jakub Jelinek <jakub@redhat.com>
PR target/119664
* config/h8300/jumpcall.md (bit test and jump define_insn_and_split):
Use HSI iterator rather than QHSI.
* gcc.dg/pr119664.c: New test.
Diffstat (limited to 'gcc/fortran/openmp.cc')
0 files changed, 0 insertions, 0 deletions