diff options
author | Jakub Jelinek <jakub@redhat.com> | 2023-12-21 11:13:42 +0100 |
---|---|---|
committer | Jakub Jelinek <jakub@redhat.com> | 2023-12-21 11:13:42 +0100 |
commit | 3d1bdbf64c2ed5be70fbff687b2927e328297b81 (patch) | |
tree | a660ce9c28d8a96637db18d4f38cbc899d50ec16 /gcc/tree-vect-patterns.cc | |
parent | 297ed1ac5233f1a44a2e3a004c28924a32b2e290 (diff) | |
download | gcc-3d1bdbf64c2ed5be70fbff687b2927e328297b81.zip gcc-3d1bdbf64c2ed5be70fbff687b2927e328297b81.tar.gz gcc-3d1bdbf64c2ed5be70fbff687b2927e328297b81.tar.bz2 |
lower-bitint: Avoid nested casts in muldiv/float operands [PR112941]
Multiplication/division/modulo/float operands are handled by libgcc calls
and so need to be passed as array of limbs with precision argument,
using handle_operand_addr. That code can't deal with more than one cast,
so the following patch avoids merging those cases.
.MUL_OVERFLOW calls use the same code, but we don't actually try to merge
the operands in that case already.
2023-12-21 Jakub Jelinek <jakub@redhat.com>
PR tree-optimization/112941
* gimple-lower-bitint.cc (gimple_lower_bitint): Disallow merging
a cast with multiplication, division or conversion to floating point
if rhs1 of the cast is result of another single use cast in the same
bb.
* gcc.dg/bitint-56.c: New test.
* gcc.dg/bitint-57.c: New test.
Diffstat (limited to 'gcc/tree-vect-patterns.cc')
0 files changed, 0 insertions, 0 deletions