simplifyDivRem attempts to walk a VectorType elementwise. Ensure that it
only does so for FixedVectorType
Details
Diff Detail
- Repository
- rG LLVM Github Monorepo
Event Timeline
This codepath is tested for scalable vectors by LLVM.Transforms/InstCombine::udiv-pow2-vscale.ll
I'm confused - if the test is already there, but it doesn't change with this patch, then what does the failure/bug look like?
I'm confused - if the test is already there, but it doesn't change with this patch, then what does the failure/bug look like?
The issue that this patch is solving is that this code calls getNumElements through a base VectorType pointer, which is going to be removed soon. getAggregateElement() will only return a value for a scalable vector constant if it is zeroinitializer or undef. Both of these cases are handled before the lines changed by this patch. The test I listed above hits this code path. What currently happens is getAggregateElement returns nullptr for each of 0 .. VTy->getElementCount().Min, and then the block exits. Essentially, this is NFC.