https://gcc.gnu.org/bugzilla/show_bug.cgi?id=112941
--- Comment #10 from GCC Commits <cvs-commit at gcc dot gnu.org> --- The master branch has been updated by Jakub Jelinek <ja...@gcc.gnu.org>: https://gcc.gnu.org/g:3d1bdbf64c2ed5be70fbff687b2927e328297b81 commit r14-6777-g3d1bdbf64c2ed5be70fbff687b2927e328297b81 Author: Jakub Jelinek <ja...@redhat.com> Date: Thu Dec 21 11:13:42 2023 +0100 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 <ja...@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.