mirror of
https://github.com/RPCS3/llvm.git
synced 2024-12-13 23:18:58 +00:00
Document the fact that the verifier currently requires the
top bit of a ValueType to be zero. Enforce this by ensuring an assertion failure if someone tries to create a ValueType without this property. I chose this minimal approach rather than a more official integration of the notion of reserved bits into ValueType because I'm hoping that the verifier will be changed to no longer require this :) git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@43031 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
af47b11b95
commit
67c18d5034
@ -107,7 +107,9 @@ namespace MVT { // MVT = Machine Value Types
|
|||||||
///
|
///
|
||||||
/// 31--------------16-----------8-------------0
|
/// 31--------------16-----------8-------------0
|
||||||
/// | Vector length | Precision | Simple type |
|
/// | Vector length | Precision | Simple type |
|
||||||
/// | Vector element |
|
/// | | Vector element |
|
||||||
|
///
|
||||||
|
/// Note that the verifier currently requires the top bit to be zero.
|
||||||
|
|
||||||
typedef uint32_t ValueType;
|
typedef uint32_t ValueType;
|
||||||
|
|
||||||
@ -313,7 +315,8 @@ namespace MVT { // MVT = Machine Value Types
|
|||||||
if (NumElements == 2) return MVT::v2f64;
|
if (NumElements == 2) return MVT::v2f64;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
ValueType Result = VT | ((NumElements + 1) << (32 - VectorBits));
|
// Set the length with the top bit forced to zero (needed by the verifier).
|
||||||
|
ValueType Result = VT | (((NumElements + 1) << (33 - VectorBits)) >> 1);
|
||||||
assert(getVectorElementType(Result) == VT &&
|
assert(getVectorElementType(Result) == VT &&
|
||||||
"Bad vector element type!");
|
"Bad vector element type!");
|
||||||
assert(getVectorNumElements(Result) == NumElements &&
|
assert(getVectorNumElements(Result) == NumElements &&
|
||||||
|
Loading…
Reference in New Issue
Block a user