As a minor adjustment to the existing lowering of offset scatters, this extends any smaller-than-legal vectors into full vectors using a zext, so that the truncating scatters can be used. Due to the way MVE legalizes the vectors this should be cheap in most situations, and will prevent the vector from being scalarized.
Details
Details
Diff Detail
Diff Detail
Event Timeline
llvm/lib/Target/ARM/MVEGatherScatterLowering.cpp | ||
---|---|---|
641–642 | What happens here if InputTy is an integer (as I assume is allowed by isIntOrIntVectorTy())? |
llvm/lib/Target/ARM/MVEGatherScatterLowering.cpp | ||
---|---|---|
641–642 | We will already have ruled out scalar integer types, we know InputTy will be some sort of vector. So isIntOrIntVectorTy is really just saying "is it an integer vector type" |
Comment Actions
Looks good to me. It's up to you if you would like to add a comment as mentioned in my reply.
llvm/lib/Target/ARM/MVEGatherScatterLowering.cpp | ||
---|---|---|
641–642 | Cool. It might be worth adding this info as a brief comment. |
What happens here if InputTy is an integer (as I assume is allowed by isIntOrIntVectorTy())?