-
Notifications
You must be signed in to change notification settings - Fork 4.8k
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
JIT misses a zero extension in series of casts #55127
Labels
area-CodeGen-coreclr
CLR JIT compiler in src/coreclr/src/jit and related components such as SuperPMI
Milestone
Comments
dotnet-issue-labeler
bot
added
area-CodeGen-coreclr
CLR JIT compiler in src/coreclr/src/jit and related components such as SuperPMI
untriaged
New issue has not been triaged by the area owner
labels
Jul 3, 2021
Looks like runtime/src/coreclr/jit/emitxarch.cpp Lines 287 to 306 in 0605bb3
I'll work on a fix. |
jakobbotsch
removed
the
untriaged
New issue has not been triaged by the area owner
label
Jul 3, 2021
ghost
added
the
in-pr
There is an active PR which will close this issue when it is merged
label
Jul 3, 2021
Another variant: // Generated by Fuzzlyn v1.2 on 2021-07-04 17:28:16
// Seed: 1706872746311375714
// Reduced from 140.7 KiB to 1.7 KiB in 00:02:13
// Debug: Prints 1 line(s)
// Release: Prints 0 line(s)
struct S0
{
public long F5;
public S0(int f0, byte f1, ulong f2, byte f3, uint f4, long f5, int f6, int f7) : this()
{
}
}
class C0
{
public long F0;
}
class C1
{
public ulong F1;
}
public class Program
{
static int[] s_2 = new int[] { -1 };
static C0 s_4 = new C0();
static S0 s_5;
static C1[][] s_47 = new C1[][] { new C1[] { new C1() } };
public static void Main()
{
s_5.F5 = s_2[0];
C1 vr4 = s_47[0][0];
var vr6 = vr4.F1;
M6(vr6);
}
static void M6(ulong arg0)
{
arg0 >>= 0;
if (-1 < (uint)(0U | M7(ref s_4.F0, new S0[][,] { new S0[,] { { new S0(-10, 1, 0, 178, 1671790506U, -2L, 1, -2147483648) } }, new S0[,] { { new S0(1330389305, 255, 1297834355652867458UL, 0, 1777203966U, 4402572156859115751L, -1597826478, 1) } }, new S0[,] { { new S0(2147483646, 15, 18446744073709551614UL, 9, 1089668776U, 8629324174561266356L, 2124906017, -1883510008) } } }, 1, new sbyte[] { -37, -21, 0, 0, 0, 0 }, new S0[] { new S0(219671235, 22, 11763641210444381762UL, 0, 2568868236U, -7432636731544997849L, 1623417447, -479936755), new S0(-2147483647, 108, 0, 1, 4294967294U, 9223372036854775807L, 539462011, 1), new S0(1, 0, 15733997012901423027UL, 212, 4294967294U, 4663434921694141184L, -2147483647, 1196938120), new S0(1, 68, 0, 14, 653907833U, -6962955672558660864L, 1966270988, -378944819) })))
{
bool[] vr17 = new bool[] { true };
System.Console.WriteLine(vr17[0]);
}
}
static short M7(ref long arg0, S0[][,] arg1, ushort arg2, sbyte[] arg3, S0[] arg4)
{
long vr20 = s_5.F5;
return (short)vr20;
}
} |
jakobbotsch
added a commit
to jakobbotsch/runtime
that referenced
this issue
Jul 9, 2021
ghost
removed
the
in-pr
There is an active PR which will close this issue when it is merged
label
Jul 10, 2021
ghost
locked as resolved and limited conversation to collaborators
Aug 9, 2021
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
We end up not doing any zero extension:
It seems like things look ok all the way until code gen. We inline
M6
and end up with:The extra code after the return is necessary to make JIT introduce locals and assignments for the inlining. When emitting code, we end up not emitting the zero extension:
The text was updated successfully, but these errors were encountered: