llvm-project
2e7194f7 - [SandboxVec][LoadStoreVec] Support constant vectors of mixed types (#224890)

Commit
3 days ago
[SandboxVec][LoadStoreVec] Support constant vectors of mixed types (#224890) `createConstantVector()` previously packed the constant store operands as-is, which only worked when every store had the same element type. This patch adds support for mixed type constant vectorization via the following changes: - `VecUtils::getCombinedVectorTypeFor()`: Compute the GCD of the bitwidths of the chain elements. Return the type `<N x iM>` where M is the GCD. This guarantees that all chain elements will be splittable into equi-sized slices. - Introduce `Constant *LoadStoreVec::getEquivalentConstantWithType` to emit a chain of casts. - Reinterpret each constant's bits as the combined vector type. Bail out when a constant cannot be reinterpreted, such as a non-integral pointer or a relocatable address that needs splitting. Assisted by Cursor.
Author
Parents
Loading