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;