diff --git a/src/coreclr/jit/lowerarmarch.cpp b/src/coreclr/jit/lowerarmarch.cpp index 019e1115f9bb13..47fbb10db498cb 100644 --- a/src/coreclr/jit/lowerarmarch.cpp +++ b/src/coreclr/jit/lowerarmarch.cpp @@ -4158,14 +4158,7 @@ GenTree* Lowering::LowerHWIntrinsicCndSel(GenTreeHWIntrinsic* cndSelNode) // CndSel(mask, embedded(trueValOp2), op3) // cndSelNode->Op(2) = nestedCndSel->Op(2); - if (nestedOp3->IsMaskZero()) - { - BlockRange().Remove(nestedOp3); - } - else - { - nestedOp3->SetUnusedValue(); - } + nestedOp3->SetUnusedValue(); BlockRange().Remove(nestedOp1); BlockRange().Remove(nestedCndSel); @@ -4202,14 +4195,7 @@ GenTree* Lowering::LowerHWIntrinsicCndSel(GenTreeHWIntrinsic* cndSelNode) op2->SetUnusedValue(); } - if (op3->IsMaskZero()) - { - BlockRange().Remove(op3); - } - else - { - op3->SetUnusedValue(); - } + op3->SetUnusedValue(); op1->SetUnusedValue(); GenTree* next = cndSelNode->gtNext; diff --git a/src/tests/JIT/Regression/JitBlue/Runtime_113338/Runtime_113338.cs b/src/tests/JIT/Regression/JitBlue/Runtime_113338/Runtime_113338.cs new file mode 100644 index 00000000000000..2fd72b1e4c9ed6 --- /dev/null +++ b/src/tests/JIT/Regression/JitBlue/Runtime_113338/Runtime_113338.cs @@ -0,0 +1,35 @@ +// 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.5 on 2025-03-30 17:25:31 +// Run on Arm64 Windows +// Seed: 6164687101299398040-vectort,vector64,vector128,armadvsimd,armadvsimdarm64,armaes,armarmbase,armarmbasearm64,armcrc32,armcrc32arm64,armdp,armrdm,armrdmarm64,armsha1,armsha256,armsve +// Reduced from 35.7 KiB to 0.7 KiB in 00:00:46 +// Hits JIT assert in Release: +// Assertion failed 'node->IsUnusedValue() && "found an unmarked unused value"' in 'Program:Main(Fuzzlyn.ExecutionServer.IRuntime)' during 'Lowering nodeinfo' (IL size 95; hash 0xade6b36b; FullOpts) +// +// File: D:\a\_work\1\s\src\coreclr\jit\lir.cpp Line: 1706 +// +using System; +using System.Numerics; +using System.Runtime.Intrinsics; +using System.Runtime.Intrinsics.Arm; + +public class Program +{ + public static uint s_1; + public static void Main() + { + var vr7 = Sve.CreateTrueMaskInt32(); + var vr8 = Vector.Create(0); + var vr9 = Sve.CreateFalseMaskInt32(); + var vr10 = Sve.ConditionalSelect(vr7, vr8, vr9); + var vr11 = Vector128.CreateScalar(12616752854119074364UL).AsVector(); + var vr12 = (int)Sve.SaturatingIncrementByActiveElementCount(0, vr11); + var vr13 = Vector128.CreateScalar(vr12).AsVector(); + if (Sve.TestLastTrue(vr10, vr13)) + { + System.Console.WriteLine(s_1); + } + } +} diff --git a/src/tests/JIT/Regression/JitBlue/Runtime_113338/Runtime_113338.csproj b/src/tests/JIT/Regression/JitBlue/Runtime_113338/Runtime_113338.csproj new file mode 100644 index 00000000000000..4dd44717ecaee7 --- /dev/null +++ b/src/tests/JIT/Regression/JitBlue/Runtime_113338/Runtime_113338.csproj @@ -0,0 +1,10 @@ + + + True + + $(NoWarn);SYSLIB5003 + + + + + \ No newline at end of file