> Am 24.10.2022 um 18:51 schrieb Andrew Stubbs <a...@codesourcery.com>:
> 
> I've committed this to the OG12 branch to remove some test failures. We 
> probably ought to have something on mainline also, but a proper fix would be 
> better.
> 
> Without this. the libgomp.oacc-c-c++-common/private-variables.c testcase 
> fails to compile due to an ICE.  The OpenACC worker broadcasting code is 
> creating SLP optimizable loads and stores in amdgcn address-space-4. 
> Previously this was "ok" as SLP didn't work with less that 64-lane vectors, 
> but the newly implemented smaller vectors are working as intended and 
> optimizing this.
> 
> Unfortunately the vectorizer is losing the address-space data from the 
> intermediate types, and it all falls apart during expand when it tries the 
> convert a 32-bit address into a 64-bit address and that's not something that 
> works. At first sight it looks like we could possibly make that work with 
> POINTERS_EXTEND_UNSIGNED, but that only changes the error message. 
> Fundamentally we need to make sure that various instances of "vectype" have 
> the correct address space, but my attempts to do so showed that that's a 
> larger task than I have time for right now.

Istr there were issues like this in the past that I fixed, so any testcase that 
exposes this with just a gcn cc1 would be nice to have.

Richard 

> 
> This patch simply prevents the vectorizer working in the case where it would 
> break. This should not be a regression because this code didn't vectorize at 
> all, previously.
> 
> Andrew
> <221024-workarround-vec-addrspace-bug.patch>

Reply via email to