Fix IFN_MASK_STORE handling of IFN_GOMP_SIMD_LANE
authorRichard Sandiford <richard.sandiford@arm.com>
Mon, 7 Jan 2019 18:53:44 +0000 (18:53 +0000)
committerRichard Sandiford <rsandifo@gcc.gnu.org>
Mon, 7 Jan 2019 18:53:44 +0000 (18:53 +0000)
commitcc770199ded4655756eb98399f6d26f5a0c55f29
tree090efe1f6a373e86577ea4af3e3a903729327a64
parent08c35030c7ece1f7034d9bf7b6d3e94138ad3c68
Fix IFN_MASK_STORE handling of IFN_GOMP_SIMD_LANE

The IFN_GOMP_SIMD_LANE handling in vectorizable_store tries to use MEM_REF
offsets to maintain pointer disambiguation info.  This patch makes sure
that we don't try to do the same optimisation for IFN_MASK_STOREs, which
have no similar offset argument.

The patch fixes libgomp.c-c++-common/pr66199-*.c for SVE.  Previously
we had an ncopies==2 store and stored both halves to the same address.

2019-01-07  Richard Sandiford  <richard.sandiford@arm.com>

gcc/
* tree-vect-stmts.c (vectorizable_store): Don't use the dataref_offset
optimization for masked stores.

From-SVN: r267654
gcc/ChangeLog
gcc/tree-vect-stmts.c