PR tree-optimization/97546 Bail out of find_bswap_or_nop on non-INTEGER_CST sizes
authorKyrylo Tkachov <kyrylo.tkachov@arm.com>
Mon, 26 Oct 2020 11:42:18 +0000 (11:42 +0000)
committerKyrylo Tkachov <kyrylo.tkachov@arm.com>
Mon, 26 Oct 2020 11:43:26 +0000 (11:43 +0000)
commit7f0ce82a4c033b78ec5131a27bac87271bb95185
treecb08161766a3e26845b4b373e02107b49d60df99
parent605c2a393d3a2db86454a70fd7c9467db434060c
PR tree-optimization/97546 Bail out of find_bswap_or_nop on non-INTEGER_CST sizes

This patch fixes the ICE in the PR by bailing out of find_bswap_or_nop
on poly_int sizes.
I don't think it intends to handle them and from my reading of the code
it's the most appropriate place to reject them
here rather than in the callers.

Bootstrapped and tested on aarch64-none-linux-gnu.

gcc/
PR tree-optimization/97546
* gimple-ssa-store-merging.c (find_bswap_or_nop): Return NULL if
type is not INTEGER_CST.

gcc/testsuite/
PR tree-optimization/97546
* gcc.target/aarch64/sve/acle/general/pr97546.c: New test.
gcc/gimple-ssa-store-merging.c
gcc/testsuite/gcc.target/aarch64/sve/acle/general/pr97546.c [new file with mode: 0644]