On 03/07/18 13:21, Richard Biener wrote:
Ok, so if we vectorize the above with 64 element masked stores then indeed the RTL representation is _not_ safe. That is because while the uses in the masked stores should prevent things from going bad there is also TBAA to consider which means those uses might not actually _be_ uses (TBAA-wise) of the earlier stores. In the above case rtattr * doesn't alias int (or whatever types rta_type or rta_len have). That means to DSE the earlier stores are dead.
I managed to get it to generate maskstore without the unspec, and the code now runs correctly.
I don't follow your AA reasoning. You say the use stops it being bad, and then you say the stores are dead, which sounds bad, yet it's not deleting them now.
Confused. :-( Andrew