-
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 '!(checkUnusedValues && def->IsUnusedValue()) && "operands should never be marked as unused values"' during 'Lowering nodeinfo' #91273
Labels
arch-x86
area-CodeGen-coreclr
CLR JIT compiler in src/coreclr/src/jit and related components such as SuperPMI
os-windows
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.X86;
using System.Numerics;
public class TestClass
{
public struct S1
{
public struct S1_D1_F2
{
public struct S1_D2_F1
{
public bool bool_2;
}
public struct S1_D2_F2
{
}
}
}
public struct S2
{
public struct S2_D1_F1
{
}
}
public struct S3
{
public struct S3_D1_F1
{
public struct S3_D2_F2
{
public long long_8;
public Vector128<byte> v128_byte_9;
}
}
}
public struct S4
{
}
public struct S5
{
}
static bool s_bool_16 = true;
static double s_double_20 = 59.03260869565217;
static int s_int_22 = 0;
static uint s_uint_28 = 5;
static Vector128<short> s_v128_short_42 = Vector128.CreateScalar((short)59);
static Vector128<ushort> s_v128_ushort_43 = Vector128.Create((ushort)5, 1, 2, 2, 5, 59, 32766, 5);
static Vector128<long> s_v128_long_46 = Vector128.Create(2147483647, 5);
static Vector128<float> s_v128_float_48 = Vector128.Create(0f);
static Vector256<byte> s_v256_byte_50 = Vector256.CreateScalar((byte)59);
static Vector256<ushort> s_v256_ushort_53 = Vector256.Create((ushort)0, 59, 0, 2, 59, 5, 59, 1, 1, 1, 1, 0, 59, 59, 32767, 5);
static Vector256<long> s_v256_long_56 = Vector256.Create(-2, 0, -2, 5);
static Vector256<ulong> s_v256_ulong_57 = Vector256.CreateScalar((ulong)5);
static Vector2 s_v2_60 = new Vector2(5.0172415f);
static S1.S1_D1_F2.S1_D2_F1 s_s1_s1_d1_f2_s1_d2_f1_63 = new S1.S1_D1_F2.S1_D2_F1();
static S1.S1_D1_F2 s_s1_s1_d1_f2_65 = new S1.S1_D1_F2();
static S3.S3_D1_F1.S3_D2_F2 s_s3_s3_d1_f1_s3_d2_f2_69 = new S3.S3_D1_F1.S3_D2_F2();
static S4 s_s4_72 = new S4();
double double_78 = -1.9722222222222223;
short short_79 = 59;
int int_80 = -2;
Vector128<short> v128_short_100 = Vector128.Create(5, -2, 5, 0, 0, 59, 5, -2);
Vector128<ushort> v128_ushort_101 = Vector128.Create((ushort)32767);
Vector128<long> v128_long_104 = Vector128<long>.Zero;
Vector128<float> v128_float_106 = Vector128.Create(0f);
Vector256<byte> v256_byte_108 = Vector256.CreateScalar((byte)59);
Vector256<ushort> v256_ushort_111 = Vector256.CreateScalar((ushort)59);
Vector256<long> v256_long_114 = Vector256<long>.Zero;
Vector2 v2_118 = new Vector2(2.1474836E+09f, 5.0930233f);
S1.S1_D1_F2.S1_D2_F1 s1_s1_d1_f2_s1_d2_f1_121 = new S1.S1_D1_F2.S1_D2_F1();
S1.S1_D1_F2.S1_D2_F2 s1_s1_d1_f2_s1_d2_f2_122 = new S1.S1_D1_F2.S1_D2_F2();
S3.S3_D1_F1.S3_D2_F2 s3_s3_d1_f1_s3_d2_f2_127 = new S3.S3_D1_F1.S3_D2_F2();
static int s_loopInvariant = 5;
[MethodImpl(MethodImplOptions.NoInlining)]
public short LeafMethod5()
{
unchecked
{
return 15>>4;
}
}
[MethodImpl(MethodImplOptions.NoInlining)]
public int LeafMethod6()
{
unchecked
{
return int_80 %= 15|4;
}
}
public uint LeafMethod12()
{
unchecked
{
return 15&4| (s_uint_28 = s_uint_28 & s_uint_28);
}
}
public S3.S3_D1_F1.S3_D2_F2 Method2(out S1.S1_D1_F2 p_s1_s1_d1_f2_168, S4 p_s4_169, S1.S1_D1_F2.S1_D2_F2 p_s1_s1_d1_f2_s1_d2_f2_170, S1.S1_D1_F2 p_s1_s1_d1_f2_171)
{
unchecked
{
short short_177 = 0;
int int_178 = 2147483646;
long long_179 = 0;
uint uint_184 = 2;
S1.S1_D1_F2.S1_D2_F1 s1_s1_d1_f2_s1_d2_f1_186 = new S1.S1_D1_F2.S1_D2_F1();
S3.S3_D1_F1.S3_D2_F2 s3_s3_d1_f1_s3_d2_f2_194 = new S3.S3_D1_F1.S3_D2_F2();
if (s_s1_s1_d1_f2_s1_d2_f1_63.bool_2 = (LeafMethod12() | ((15|4)))== ((15&4)))
{
switch (Vector256.Dot(((s_v256_long_56 & ((s_v256_long_56 *= s_v256_long_56)))), ((((v256_long_114 + v256_long_114)) * ((s_v256_long_56 = v256_long_114))))))
{
case 0:
{
if (((((15|4)) < short_79)))
{
if (((s1_s1_d1_f2_s1_d2_f1_121.bool_2 = ((s_bool_16 = Vector128.LessThanAll(Vector128<byte>.Zero, s_s3_s3_d1_f1_s3_d2_f2_69.v128_byte_9))))))
{
s_v2_60 = ((((((s_v2_60 *= ((v2_118 += s_v2_60)))) * ((((15-4)) * ((v2_118 *= s_v2_60)))))) * Vector2.Add(((s_v2_60 + Vector2.Zero)), ((v2_118 += v2_118)))));
;
}
else
{
}
}
else
{
if (s_s1_s1_d1_f2_s1_d2_f1_63.bool_2)
{
s1_s1_d1_f2_s1_d2_f1_186.bool_2 = Vector128.GreaterThanOrEqualAny(((s_v128_float_48 = ((((v128_float_106 | v128_float_106)) * ((s_v128_float_48 | s_v128_float_48)))))), ((((v128_float_106 & ((v128_float_106 -= s_v128_float_48)))) + ((((s_v128_float_48 += v128_float_106)) & v128_float_106)))));
}
else
{
s_v256_ulong_57 -= ((((((s_v256_ulong_57 -= ((s_v256_ulong_57 ^ s_v256_ulong_57)))) - Vector256.AsUInt64(s_v256_long_56))) | s_v256_ulong_57));
}
}
int __loopvar12 = s_loopInvariant - 3, __loopSecondaryVar12_0 = s_loopInvariant;
for (;; __loopSecondaryVar12_0 += 2)
{
if (__loopvar12 == s_loopInvariant)
break;
if (((((s3_s3_d1_f1_s3_d2_f2_127.long_8 &= ((15%4)))) >= ((15*4)))))
{
if (((((((int_80 % (((LeafMethod6()) | 33)))) | ((s_int_22 += ((s_int_22 /= ((15|4)))))))) >= ((((((int_80 ^ int_80)) ^ ((int_178 = int_178)))) % (((s_int_22) | 55)))))))
{
s1_s1_d1_f2_s1_d2_f1_121.bool_2 = Vector128.LessThanOrEqualAny(((((((v128_ushort_101 & Vector128<ushort>.Zero)) & s_v128_ushort_43)) * ((s_v128_ushort_43 *= ((s_v128_ushort_43 = v128_ushort_101)))))), Sse41.Max(((s_v128_ushort_43 | s_v128_ushort_43)), v128_ushort_101));
Vector256.Shuffle(((v256_byte_108 & ((((v256_byte_108 | s_v256_byte_50)) ^ ((s_v256_byte_50 *= s_v256_byte_50)))))), ((((s_v256_byte_50 *= ((v256_byte_108 | v256_byte_108)))) + s_v256_byte_50)));
}
else
{
}
switch (((((long_179 << ((int_80 ^= ((s_int_22 << s_int_22)))))) ^ long_179)))
{
case -2:
{
long_179 &= ((Vector256.GetElement(((v256_long_114 & s_v256_long_56)), LeafMethod6() & 0) - ((((((s_int_22 >> int_80)) / (((((s_int_22 /= ((15|4))))) | 15)))) / (((((s_int_22 = s_int_22))) | 35))))));
double_78 -= ((s_double_20 *= ((((15/4)) + ((double_78 + ((15%4))))))));
break;
}
case 59:
{
Vector128.GreaterThanOrEqual(((v128_long_104 += Sse2.ShiftLeftLogical(s_v128_long_46, v128_long_104))), Vector128<long>.AllBitsSet);
break;
}
default:
{
s_int_22 %= (((int_80) | 51));
break;
}
}
}
else
{
int __loopvar9 = s_loopInvariant - 3, __loopSecondaryVar9_0 = 15+4;
while ((((Vector256.ToScalar(((s_v256_byte_50 | s_v256_byte_50))) <= ((((int_80 << ((int_178 * s_int_22)))) / (((s_int_22) | 15))))))))
{
if (__loopvar9 >= s_loopInvariant)
break;
s_v128_short_42 *= ((((Vector128.Create(short_79) * ((((v128_short_100 = s_v128_short_42)) ^ ((s_v128_short_42 = v128_short_100)))))) ^ ((v128_short_100 = ((Vector128<short>.Zero * ((15*4))))))));
s_bool_16 = Vector256.LessThanOrEqualAny(((v256_ushort_111 * ((((v256_ushort_111 | s_v256_ushort_53)) + ((v256_ushort_111 *= v256_ushort_111)))))), ((((((s_v256_ushort_53 | s_v256_ushort_53)) | v256_ushort_111)) + ((((s_v256_ushort_53 *= s_v256_ushort_53)) * ((15-4)))))));
}
}
}
break;
}
default:
{
break;
}
}
}
else
{
}
return s_s3_s3_d1_f1_s3_d2_f2_69;
}
}
public void Method0()
{
unchecked
{
S1.S1_D1_F2 s1_s1_d1_f2_235 = new S1.S1_D1_F2();
s_s3_s3_d1_f1_s3_d2_f2_69 = Method2(out s1_s1_d1_f2_235, s_s4_72, s1_s1_d1_f2_s1_d2_f2_122, s_s1_s1_d1_f2_65);
return;
}
}
public static void Main(string[] args)
{
new TestClass().Method0();
}
}
/*
Environment:
Assert failure(PID 27260 [0x00006a7c], Thread: 22996 [0x59d4]): Assertion failed '!(checkUnusedValues && def->IsUnusedValue()) && "operands should never be marked as unused values"' in 'TestClass:Method2(byref,TestClass+S4,TestClass+S1+S1_D1_F2+S1_D2_F2,TestClass+S1+S1_D1_F2):TestClass+S3+S3_D1_F1+S3_D2_F2:this' during 'Lowering nodeinfo' (IL size 1477; hash 0xd495b587; FullOpts)
File: D:\git\runtime\src\coreclr\jit\lir.cpp Line: 1634
Image: D:\git\runtime\artifacts\tests\coreclr\windows.x86.checked\tests\Core_Root\CoreRun.exe
*/
<table>
<tr>
<th align="left">Author:</th>
<td>kunalspathak</td>
</tr>
<tr>
<th align="left">Assignees:</th>
<td>-</td>
</tr>
<tr>
<th align="left">Labels:</th>
<td>
`arch-x86`, `os-windows`, `area-CodeGen-coreclr`
</td>
</tr>
<tr>
<th align="left">Milestone:</th>
<td>-</td>
</tr>
</table>
</details> |
Sign up for free
to subscribe to this conversation on GitHub.
Already have an account?
Sign in.
Labels
arch-x86
area-CodeGen-coreclr
CLR JIT compiler in src/coreclr/src/jit and related components such as SuperPMI
os-windows
The text was updated successfully, but these errors were encountered: