diff options
author | Jakub Jelinek <jakub@redhat.com> | 2024-11-19 10:25:04 +0100 |
---|---|---|
committer | Jakub Jelinek <jakub@gcc.gnu.org> | 2024-11-19 10:25:04 +0100 |
commit | 758d2b3d3e28c831c79f5c18727d149c81896434 (patch) | |
tree | 9801cbde12e24207552adcdd020725d0a6bac1b7 /gcc/fwprop.cc | |
parent | c5b33fab3e932afd5eaf253bc0f1e547ca2a058f (diff) | |
download | gcc-758d2b3d3e28c831c79f5c18727d149c81896434.zip gcc-758d2b3d3e28c831c79f5c18727d149c81896434.tar.gz gcc-758d2b3d3e28c831c79f5c18727d149c81896434.tar.bz2 |
bitintlower: Handle EXACT_DIV_EXPR like TRUNC_DIV_EXPR in bitint lowering [PR117571]
r15-4601 added match.pd simplification of some TRUNC_DIV_EXPR expressions
into EXACT_DIV_EXPR, so bitintlower can now encounter even those.
From bitint lowering POV the fact that the division will be exact
doesn't matter, we still need to call at runtime the __divmodbitint4
API and it wouldn't simplify there anything to know it is exact if
we duplicated that, so the following patch lowers EXACT_DIV_EXPR exactly
as TRUNC_DIV_EXPR.
I think we don't need to backport this unless something introduces
EXACT_DIV_EXPR on BITINT_TYPEd expressions on the 14 branch as well.
2024-11-19 Jakub Jelinek <jakub@redhat.com>
PR middle-end/117571
* gimple-lower-bitint.cc (bitint_large_huge::lower_muldiv_stmt,
bitint_large_huge::lower_stmt, stmt_needs_operand_addr,
build_bitint_stmt_ssa_conflicts, gimple_lower_bitint): Handle
EXACT_DIV_EXPR like TRUNC_DIV_EXPR.
* gcc.dg/bitint-114.c: New test.
Diffstat (limited to 'gcc/fwprop.cc')
0 files changed, 0 insertions, 0 deletions