lower-bitint: Fix up VIEW_CONVERT_EXPR handling [PR113408]
commit2fb78d431ff3c05997ef31837d6eb319d84a4239
authorJakub Jelinek <jakub@redhat.com>
Wed, 17 Jan 2024 12:55:50 +0000 (17 13:55 +0100)
committerJakub Jelinek <jakub@redhat.com>
Wed, 17 Jan 2024 12:55:50 +0000 (17 13:55 +0100)
treeea3fa4e0f113e7c5dac39b1ee08fc75ad126f5fe
parent2c74d5c0a0f21ae1d0c195ca0d81a3d1032f27e3
lower-bitint: Fix up VIEW_CONVERT_EXPR handling [PR113408]

Unlike NOP_EXPR/CONVERT_EXPR which are GIMPLE_UNARY_RHS, VIEW_CONVERT_EXPR
is GIMPLE_SINGLE_RHS and so gimple_assign_rhs1 contains the operand wrapped
in VIEW_CONVERT_EXPR tree.

So, to handle it like other casts we need to look through it.

2024-01-17  Jakub Jelinek  <jakub@redhat.com>

PR tree-optimization/113408
* gimple-lower-bitint.cc (bitint_large_huge::handle_stmt): For
VIEW_CONVERT_EXPR, pass TREE_OPERAND (rhs1, 0) rather than rhs1
to handle_cast.

* gcc.dg/bitint-71.c: New test.
gcc/gimple-lower-bitint.cc
gcc/testsuite/gcc.dg/bitint-71.c [new file with mode: 0644]