When EarlyCSE tries to common vector masked loads/stores, it first checks that
they have same base operand and then assumes that this is enough for mask types
to be equal. This is true for typed pointers but false for opaque ones -
two loads of different vector sizes from same base pointer '%b' are the same,
ptr %b. (For typed pointers, %b was cast to vector pointer type so bases
were different).
Change assert to return from lambda isSubmask so this transformation properly
works with opaque pointers.
Details
Details
Diff Detail
Diff Detail
- Repository
- rG LLVM Github Monorepo