diff --git a/src/coreclr/jit/scev.cpp b/src/coreclr/jit/scev.cpp index 540d5bed9f0e7f..8ae11130be6816 100644 --- a/src/coreclr/jit/scev.cpp +++ b/src/coreclr/jit/scev.cpp @@ -515,6 +515,11 @@ Scev* ScalarEvolutionContext::CreateScevForConstant(GenTreeIntConCommon* tree) // Scev* ScalarEvolutionContext::AnalyzeNew(BasicBlock* block, GenTree* tree, int depth) { + if (!varTypeIsIntegralOrI(tree->TypeGet())) + { + return nullptr; + } + switch (tree->OperGet()) { case GT_CNS_INT: diff --git a/src/tests/JIT/Regression/JitBlue/Runtime_107543/Runtime_107543.cs b/src/tests/JIT/Regression/JitBlue/Runtime_107543/Runtime_107543.cs new file mode 100644 index 00000000000000..d8bd7a390730d2 --- /dev/null +++ b/src/tests/JIT/Regression/JitBlue/Runtime_107543/Runtime_107543.cs @@ -0,0 +1,31 @@ +// Licensed to the .NET Foundation under one or more agreements. +// The .NET Foundation licenses this file to you under the MIT license. + +// Generated by Fuzzlyn v2.4 on 2024-09-08 14:58:55 +// Run on X64 Windows +// Seed: 9273539092987075617-vectort,vector128,vector256,x86aes,x86avx,x86avx2,x86avx512bw,x86avx512bwvl,x86avx512cd,x86avx512cdvl,x86avx512dq,x86avx512dqvl,x86avx512f,x86avx512fvl,x86avx512fx64,x86bmi1,x86bmi1x64,x86bmi2,x86bmi2x64,x86fma,x86lzcnt,x86lzcntx64,x86pclmulqdq,x86popcnt,x86popcntx64,x86sse,x86ssex64,x86sse2,x86sse2x64,x86sse3,x86sse41,x86sse41x64,x86sse42,x86sse42x64,x86ssse3,x86x86base +// Reduced from 133.3 KiB to 1.6 KiB in 00:01:44 +// Hits JIT assert in Release: +// Assertion failed '(unop->Type == TYP_LONG) && (op1->Type == TYP_INT)' in 'Program:Main(Fuzzlyn.ExecutionServer.IRuntime)' during 'Optimize Induction Variables' (IL size 100; hash 0xade6b36b; FullOpts) +// +// File: D:\a\_work\1\s\src\coreclr\jit\scev.cpp Line: 1094 +// +// Further simplified by hand + +using System; +using Xunit; + +public class Runtime_107543 +{ + [Fact] + public static int Problem() + { + double d = 0; + long i = 0; + for (int v = 0; v < 100; v++) + { + i += (long)d++; + } + return (int)(i - 4850); + } +} diff --git a/src/tests/JIT/Regression/JitBlue/Runtime_107543/Runtime_107543.csproj b/src/tests/JIT/Regression/JitBlue/Runtime_107543/Runtime_107543.csproj new file mode 100644 index 00000000000000..de6d5e08882e86 --- /dev/null +++ b/src/tests/JIT/Regression/JitBlue/Runtime_107543/Runtime_107543.csproj @@ -0,0 +1,8 @@ + + + True + + + + +