Without this patch, in getAssignmentInfo the result of getTypeSizeInBits is cast to uint64_t, which a) is an operation that will eventually be unsupported by the API according to the comments, and b) causes an assertion failure if the type is a scalable vector. Don't cast the TypeSize to uint64_t and check isScalable before getting the fixed size.
This can result in incorrect variable locations, see llvm.org/PR62346 (but is better than crashing).
Is the use of "Scalar" here accurate? given it's only scalable vectors that are being rejected.
Only a suggestion but what about changing getAssignmentInfoImpl to take a TypeSize instead of an uint64_t and then reject scalable sizes within that? This way if/when scalable support is required the structure will already be in place.