diff --git a/src/coreclr/src/jit/compiler.h b/src/coreclr/src/jit/compiler.h index 8f9b8e7535a89b..917dbbb9751a78 100644 --- a/src/coreclr/src/jit/compiler.h +++ b/src/coreclr/src/jit/compiler.h @@ -1738,6 +1738,10 @@ struct fgArgTabEntry #else unsigned int regSize = 1; #endif + + if (numRegs > MAX_ARG_REG_COUNT) + NO_WAY("Multireg argument exceeds the maximum length"); + for (unsigned int regIndex = 1; regIndex < numRegs; regIndex++) { argReg = (regNumber)(argReg + regSize); diff --git a/src/coreclr/src/tools/Common/Compiler/VectorFieldLayoutAlgorithm.cs b/src/coreclr/src/tools/Common/Compiler/VectorFieldLayoutAlgorithm.cs index 5d3697c81f12ee..4720ea427b7099 100644 --- a/src/coreclr/src/tools/Common/Compiler/VectorFieldLayoutAlgorithm.cs +++ b/src/coreclr/src/tools/Common/Compiler/VectorFieldLayoutAlgorithm.cs @@ -96,7 +96,6 @@ public override ValueTypeShapeCharacteristics ComputeValueTypeShapeCharacteristi { 8 => ValueTypeShapeCharacteristics.Vector64Aggregate, 16 => ValueTypeShapeCharacteristics.Vector128Aggregate, - 32 => ValueTypeShapeCharacteristics.Vector256Aggregate, _ => ValueTypeShapeCharacteristics.None }; } @@ -107,9 +106,7 @@ public static bool IsVectorType(DefType type) { return type.IsIntrinsic && type.Namespace == "System.Runtime.Intrinsics" && - (type.Name == "Vector64`1" || - type.Name == "Vector128`1" || - type.Name == "Vector256`1") && + ((type.Name == "Vector64`1") || (type.Name == "Vector128`1")) && type.Instantiation[0].IsPrimitive; } } diff --git a/src/coreclr/src/tools/Common/JitInterface/CorInfoImpl.cs b/src/coreclr/src/tools/Common/JitInterface/CorInfoImpl.cs index dd6e4c89aaa657..175becc964a34f 100644 --- a/src/coreclr/src/tools/Common/JitInterface/CorInfoImpl.cs +++ b/src/coreclr/src/tools/Common/JitInterface/CorInfoImpl.cs @@ -2206,7 +2206,7 @@ private CorInfoType getHFAType(CORINFO_CLASS_STRUCT_* hClass) var type = (DefType)HandleToObject(hClass); // For 8-byte vectors return CORINFO_TYPE_DOUBLE, which is mapped by JIT to SIMD8. - // Otherwise, return CORINFO_TYPE_VALUECLASS, which is mapped by JIT to SIMD16. + // For 16-byte vectors return CORINFO_TYPE_VALUECLASS, which is mapped by JIT to SIMD16. // See MethodTable::GetHFAType and Compiler::GetHfaType. return (type.ValueTypeShapeCharacteristics & ValueTypeShapeCharacteristics.AggregateMask) switch { @@ -2214,7 +2214,6 @@ private CorInfoType getHFAType(CORINFO_CLASS_STRUCT_* hClass) ValueTypeShapeCharacteristics.Float64Aggregate => CorInfoType.CORINFO_TYPE_DOUBLE, ValueTypeShapeCharacteristics.Vector64Aggregate => CorInfoType.CORINFO_TYPE_DOUBLE, ValueTypeShapeCharacteristics.Vector128Aggregate => CorInfoType.CORINFO_TYPE_VALUECLASS, - ValueTypeShapeCharacteristics.Vector256Aggregate => CorInfoType.CORINFO_TYPE_VALUECLASS, _ => CorInfoType.CORINFO_TYPE_UNDEF }; } diff --git a/src/coreclr/src/tools/Common/TypeSystem/Common/DefType.FieldLayout.cs b/src/coreclr/src/tools/Common/TypeSystem/Common/DefType.FieldLayout.cs index 22b03fb4d0abe9..cd7f45d7f4ce04 100644 --- a/src/coreclr/src/tools/Common/TypeSystem/Common/DefType.FieldLayout.cs +++ b/src/coreclr/src/tools/Common/TypeSystem/Common/DefType.FieldLayout.cs @@ -321,7 +321,6 @@ public int GetHomogeneousAggregateElementSize() ValueTypeShapeCharacteristics.Float64Aggregate => 8, ValueTypeShapeCharacteristics.Vector64Aggregate => 8, ValueTypeShapeCharacteristics.Vector128Aggregate => 16, - ValueTypeShapeCharacteristics.Vector256Aggregate => 16, _ => throw new InvalidOperationException() }; } diff --git a/src/coreclr/src/tools/Common/TypeSystem/Common/FieldLayoutAlgorithm.cs b/src/coreclr/src/tools/Common/TypeSystem/Common/FieldLayoutAlgorithm.cs index 7cda8ce7b648a1..d43eb0039099da 100644 --- a/src/coreclr/src/tools/Common/TypeSystem/Common/FieldLayoutAlgorithm.cs +++ b/src/coreclr/src/tools/Common/TypeSystem/Common/FieldLayoutAlgorithm.cs @@ -132,11 +132,6 @@ public enum ValueTypeShapeCharacteristics /// Vector128Aggregate = 0x08, - /// - /// The type is an aggregate of 256-bit short-vector values. - /// - Vector256Aggregate = 0x10, - /// /// The mask for homogeneous aggregates of floating-point values. /// @@ -145,7 +140,7 @@ public enum ValueTypeShapeCharacteristics /// /// The mask for homogeneous aggregates of short-vector values. /// - ShortVectorAggregateMask = Vector64Aggregate | Vector128Aggregate | Vector256Aggregate, + ShortVectorAggregateMask = Vector64Aggregate | Vector128Aggregate, /// /// The mask for homogeneous aggregates. diff --git a/src/coreclr/src/tools/Common/TypeSystem/Common/MetadataFieldLayoutAlgorithm.cs b/src/coreclr/src/tools/Common/TypeSystem/Common/MetadataFieldLayoutAlgorithm.cs index 729620e6f20130..4c7c5cfb6c599f 100644 --- a/src/coreclr/src/tools/Common/TypeSystem/Common/MetadataFieldLayoutAlgorithm.cs +++ b/src/coreclr/src/tools/Common/TypeSystem/Common/MetadataFieldLayoutAlgorithm.cs @@ -906,7 +906,6 @@ private ValueTypeShapeCharacteristics ComputeHomogeneousAggregateCharacteristic( ValueTypeShapeCharacteristics.Float64Aggregate => 8, ValueTypeShapeCharacteristics.Vector64Aggregate => 8, ValueTypeShapeCharacteristics.Vector128Aggregate => 16, - ValueTypeShapeCharacteristics.Vector256Aggregate => 32, _ => throw new ArgumentOutOfRangeException() }; diff --git a/src/coreclr/src/tools/crossgen2/ILCompiler.ReadyToRun/Compiler/DependencyAnalysis/ReadyToRun/TypeFixupSignature.cs b/src/coreclr/src/tools/crossgen2/ILCompiler.ReadyToRun/Compiler/DependencyAnalysis/ReadyToRun/TypeFixupSignature.cs index 5113b41158e4c1..9a9184e085d191 100644 --- a/src/coreclr/src/tools/crossgen2/ILCompiler.ReadyToRun/Compiler/DependencyAnalysis/ReadyToRun/TypeFixupSignature.cs +++ b/src/coreclr/src/tools/crossgen2/ILCompiler.ReadyToRun/Compiler/DependencyAnalysis/ReadyToRun/TypeFixupSignature.cs @@ -88,7 +88,6 @@ private static void EncodeTypeLayout(ObjectDataSignatureBuilder dataBuilder, Typ ValueTypeShapeCharacteristics.Vector64Aggregate => CorElementType.ELEMENT_TYPE_R8, // See MethodTable::GetHFAType ValueTypeShapeCharacteristics.Vector128Aggregate => CorElementType.ELEMENT_TYPE_VALUETYPE, - ValueTypeShapeCharacteristics.Vector256Aggregate => CorElementType.ELEMENT_TYPE_VALUETYPE, _ => CorElementType.Invalid }; dataBuilder.EmitUInt((uint)elementType); diff --git a/src/coreclr/src/vm/class.cpp b/src/coreclr/src/vm/class.cpp index b0976b4ef7b754..d9357e85b06a9c 100644 --- a/src/coreclr/src/vm/class.cpp +++ b/src/coreclr/src/vm/class.cpp @@ -1195,10 +1195,6 @@ int MethodTable::GetVectorSize() { vectorSize = 16; } - else if (strcmp(className, "Vector256`1") == 0) - { - vectorSize = 32; - } else if (strcmp(className, "Vector64`1") == 0) { vectorSize = 8;