When vectorizer strips pointers it can eventually end up with
pointers of two different sizes, then SCEV will crash.
Details
Details
Diff Detail
Diff Detail
Event Timeline
Comment Actions
Was this broken by r365723? Should this use stripPointerCastsSameRepresentation instead?
lib/Transforms/Vectorize/LoadStoreVectorizer.cpp | ||
---|---|---|
348–350 | Checking that PtrA and PtrB's address space are the same would be simpler | |
test/CodeGen/AMDGPU/vect-ptr-ptr-size-mismatch.ll | ||
1 ↗ | (On Diff #212455) | Test should just run opt and go in test/Transforms/LoadStoreVectorizer |
3 ↗ | (On Diff #212455) | Should be able to use a kernel argument instead of a global |
11–14 ↗ | (On Diff #212455) | Control flow should be unnecessary |
lib/Transforms/Vectorize/LoadStoreVectorizer.cpp | ||
---|---|---|
348–350 | The also need to be the same as original pointer address space before the strip. |
Checking that PtrA and PtrB's address space are the same would be simpler