diff --git a/src/coreclr/jit/gentree.cpp b/src/coreclr/jit/gentree.cpp index af9cea738e7682..17ca0e3a46b1da 100644 --- a/src/coreclr/jit/gentree.cpp +++ b/src/coreclr/jit/gentree.cpp @@ -19978,12 +19978,17 @@ bool GenTree::SupportsSettingZeroFlag() } #endif #elif defined(TARGET_ARM64) - if (OperIs(GT_AND, GT_AND_NOT, GT_NEG)) + if (OperIs(GT_AND, GT_AND_NOT)) { return true; } // We do not support setting zero flag for madd/msub. + if (OperIs(GT_NEG) && (!gtGetOp1()->OperIs(GT_MUL) || !gtGetOp1()->isContained())) + { + return true; + } + if (OperIs(GT_ADD, GT_SUB) && (!gtGetOp2()->OperIs(GT_MUL) || !gtGetOp2()->isContained())) { return true; diff --git a/src/tests/JIT/Regression/JitBlue/Runtime_113320/Runtime_113320.cs b/src/tests/JIT/Regression/JitBlue/Runtime_113320/Runtime_113320.cs new file mode 100644 index 00000000000000..3fe568b9c0d060 --- /dev/null +++ b/src/tests/JIT/Regression/JitBlue/Runtime_113320/Runtime_113320.cs @@ -0,0 +1,36 @@ +// 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 2025-03-09 16:30:39 +// Run on Arm64 Linux +// Seed: 8543882715922286200-vectort,vector64,vector128,armadvsimd,armadvsimdarm64,armaes,armarmbase,armarmbasearm64,armcrc32,armcrc32arm64,armdp,armrdm,armrdmarm64,armsha1,armsha256,armsve +// Reduced from 59.2 KiB to 0.4 KiB in 00:00:34 +// Debug: Outputs 0 +// Release: Outputs 1 +using System; +using System.Numerics; +using System.Runtime.Intrinsics; +using System.Runtime.Intrinsics.Arm; +using Xunit; + +public class Runtime_113320 +{ + public static ushort s_12; + public static uint[, ] s_13 = new uint[, ] + { + { + 1 + } + }; + + [Fact] + public static int Problem() + { + if (((0 % s_13[0, 0]) > 0)) + { + s_12 = 1; + } + + return s_12 + 100; + } +} \ No newline at end of file diff --git a/src/tests/JIT/Regression/JitBlue/Runtime_113320/Runtime_113320.csproj b/src/tests/JIT/Regression/JitBlue/Runtime_113320/Runtime_113320.csproj new file mode 100644 index 00000000000000..de6d5e08882e86 --- /dev/null +++ b/src/tests/JIT/Regression/JitBlue/Runtime_113320/Runtime_113320.csproj @@ -0,0 +1,8 @@ + + + True + + + + +