[SVE] Add new isKnownXX comparison functions to TypeSize
This patch introduces four new comparison functions: isKnownLT, isKnownLE, isKnownGT, isKnownGE that return true if we know at compile time that a particular condition is met, i.e. that one size is definitely greater than another. The existing operators <,>,<=,>= remain in the code for now, but over time we would like to remove them and change the code to use the isKnownXY routines instead. These functions do not assert like the existing operators because the caller is expected to properly deal with cases where we return false by analysing the scalable properties. I've made more of an effort to deal with cases where there are mixed comparisons, i.e. between fixed width and scalable types. I've also added some knownBitsXY routines to the EVT and MVT classes that call the equivalent TypeSize::isKnownXY routines. I've changed the existing bitsXY functions to call their knownBitsXY equivalents and added asserts that the scalable properties match. Again, over time we expect to migrate callers to use knownBitsXY and make the code more aware of the scalable nature of the sizes. Differential revision: https://reviews.llvm.org/D88098
Loading
Please sign in to comment