]> git.ipfire.org Git - thirdparty/gcc.git/commit
bitint: Handle VCE from large/huge _BitInt SSA_NAME from load [PR114156]
authorJakub Jelinek <jakub@redhat.com>
Fri, 1 Mar 2024 10:04:51 +0000 (11:04 +0100)
committerJakub Jelinek <jakub@redhat.com>
Fri, 1 Mar 2024 10:04:51 +0000 (11:04 +0100)
commitd3d0fcb652748191714e4c0b2541e977a7fc7bd7
treec7b66ed76f7fc924ece16dea7daa70586bb3a3a3
parentc6d4fb0062c6059fe21968a9fe44c56814c88873
bitint: Handle VCE from large/huge _BitInt SSA_NAME from load [PR114156]

When adding checks in which case not to merge a VIEW_CONVERT_EXPR from
large/huge _BitInt to vector/complex etc., I missed the case of loads.
Those are handled differently later.
Anyway, I think the load case is something we can handle just fine,
so the following patch does that instead of preventing the merging
gimple_lower_bitint; we'd then copy from memory to memory and and do the
vce only on the second one, it is just better to vce the first one.

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

PR middle-end/114156
* gimple-lower-bitint.cc (bitint_large_huge::lower_stmt): Allow
rhs1 of a VCE to have no underlying variable if it is a load and
handle that case.

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