forwprop: simplify_vector_constructor follow-up fix [PR95713]
authorJakub Jelinek <jakub@redhat.com>
Thu, 18 Jun 2020 10:08:06 +0000 (12:08 +0200)
committerJakub Jelinek <jakub@redhat.com>
Thu, 18 Jun 2020 10:12:43 +0000 (12:12 +0200)
commit9a875db43cd4210843c480c8df26a1d6624d057d
treed65bc1452fa2804adeb33052525ab377885579dc
parent5553433d7b38379f8dac17502f55fff1c9cf3827
forwprop: simplify_vector_constructor follow-up fix [PR95713]

As the following testcase shows, the exception for the aarch64
vec_pack_trunc_di is not sufficient on x86, the halfvectype
"vectors" have SImode but the x86 vec_pack_trunc_si meant for
the bool bitmasks combines 2x SImode into DImode, while in the
testcase the halfvectype is 1x SImode "vector" with SImode and
result is 2x HImode "vector" with SImode.

Richard Sandiford's reply:
FWIW, since the aarch64 case was only found by inspection and might
not be useful, personally I'd prefer to drop that case after all.

2020-06-18  Jakub Jelinek  <jakub@redhat.com>

PR target/95713
* tree-ssa-forwprop.c (simplify_vector_constructor): Don't allow
scalar mode halfvectype other than vector boolean for
VEC_PACK_TRUNC_EXPR.

* gcc.dg/pr95713.c: New test.
gcc/testsuite/gcc.dg/pr95713.c [new file with mode: 0644]
gcc/tree-ssa-forwprop.c