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
- Repository
- rL LLVM
Event Timeline
Comment Actions
Was this broken by r365723? Should this use stripPointerCastsSameRepresentation instead?
lib/Transforms/Vectorize/LoadStoreVectorizer.cpp | ||
---|---|---|
347–349 ↗ | (On Diff #212455) | 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 | ||
---|---|---|
347–349 ↗ | (On Diff #212455) | The also need to be the same as original pointer address space before the strip. |