- Compile:
using System;
using System.Numerics;
using System.Reflection;
using System.Runtime.Intrinsics;
var mi = typeof(Vector128).GetMethod("AsVector128", new Type[] { typeof(Vector2) });
mi.Invoke(null, new object[] { new Vector2() });
- Run with VEX instruction encoding disabled:
set COMPlus_EnableAVX=0
set COMPlus_EnableSSE41=0
set COMPlus_ReadyToRun=0
corerun test.exe
Result:
Assert failure(PID 24192 [0x00005e80], Thread: 12184 [0x2f98]): Assertion failed '(genTypeSize(node->TypeGet()) == 16) || (genTypeSize(node->TypeGet()) == 32)' in 'System.Runtime.Intrinsics.Vector128:AsVector128(System.Numerics.Vector2):System.Runtime.Intrinsics.Vector128`1[Single]' during 'Lowering nodeinfo' (IL size 22)
File: C:\runtime\src\coreclr\jit\lowerxarch.cpp Line: 5539
Image: C:\runtime\artifacts\bin\coreclr\windows.x64.Checked\corerun.exe
Result: