-
Notifications
You must be signed in to change notification settings - Fork 4.9k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Assertion failed 'm_store->TypeGet() == m_src->TypeGet()' during 'Stress gtSplitTree' #93876
Labels
area-CodeGen-coreclr
CLR JIT compiler in src/coreclr/src/jit and related components such as SuperPMI
Milestone
Comments
Tagging subscribers to this area: @JulieLeeMSFT, @jakobbotsch Issue Details// Found by Antigen
using System;
using System.Collections.Generic;
using System.Runtime.CompilerServices;
using System.Runtime.Intrinsics;
using System.Runtime.Intrinsics.Arm;
using System.Numerics;
public class TestClass
{
public struct S1
{
}
public struct S2
{
}
static float s_float_12 = 0f;
static S1 s_s1_40 = new S1();
static S2 s_s2_41 = new S2();
long long_49 = 0;
Vector4 v4_78 = new Vector4(5.090909f, -2.1474836E+09f, 5.148148f, 0.054054055f);
S1 s1_79 = new S1();
S2 s2_80 = new S2();
public S1 Method45(ref long p_long_1227, S1 p_s1_1228, out S2 p_s2_1229, ref S1 p_s1_1230, ref S2 p_s2_1231, S1 p_s1_1232, out Vector4 p_v4_1233, ref S2 p_s2_1234, ref S1 p_s1_1235)
{
unchecked
{
p_s2_1229 = s_s2_41;
p_v4_1233 = Vector4.Multiply(s_float_12, Vector4.One);
return p_s1_1235;
}
}
public void Method0()
{
unchecked
{
S1 s1_2605 = new S1();
S2 s2_2606 = new S2();
s1_2605 = Method45(ref long_49, s_s1_40, out s2_80, ref s1_79, ref s2_2606, s1_2605, out v4_78, ref s_s2_41, ref s_s1_40);
return;
}
}
public static void Main(string[] args)
{
new TestClass().Method0();
}
}
/*
Got output diff:
--------- Baseline ---------
Environment:
--------- Test ---------
Environment:
set DOTNET_TieredCompilation=0
set DOTNET_JitStress=1
set DOTNET_AltJitName=clrjit_universal_arm64_x64.dll
set DOTNET_AltJit=Method45
Assert failure(PID 42792 [0x0000a728], Thread: 1268 [0x04f4]): Assertion failed 'm_store->TypeGet() == m_src->TypeGet()' in 'TestClass:Method45(byref,TestClass+S1,byref,byref,byref,TestClass+S1,byref,byref,byref):TestClass+S1:this' during 'Stress gtSplitTree' (IL size 41; hash 0x5f755485; FullOpts)
File: E:\git\runtime2\src\coreclr\jit\morphblock.cpp Line: 671
Image: e:\git\runtime2\artifacts\tests\coreclr\windows.x64.Checked\tests\Core_Root\CoreRun.exe
*/
|
I will take a look. |
jakobbotsch
added a commit
to jakobbotsch/runtime
that referenced
this issue
Nov 6, 2023
MultiplyByScalar on ARM/ARM64 can have differently typed operands, so we cannot fold multiplications by one/zero without ensuring that we get the proper result type. Fix dotnet#93876
jakobbotsch
added a commit
that referenced
this issue
Nov 7, 2023
) MultiplyByScalar on ARM64 should not be handled by the same path as other multiplications since it has different behavior. Fix #93876
Sign up for free
to subscribe to this conversation on GitHub.
Already have an account?
Sign in.
Labels
area-CodeGen-coreclr
CLR JIT compiler in src/coreclr/src/jit and related components such as SuperPMI
The text was updated successfully, but these errors were encountered: