Skip to content

JIT: Bad codegen on arm64 with comparison involving division #109337

@jakobbotsch

Description

@jakobbotsch
// Generated by Fuzzlyn v2.4 on 2024-10-27 15:43:53
// Run on Arm64 MacOS
// Seed: 2607482317235207083-vectort,vector64,vector128,armadvsimd,armadvsimdarm64,armaes,armarmbase,armarmbasearm64,armcrc32,armcrc32arm64,armdp,armrdm,armrdmarm64,armsha1,armsha256
// Reduced from 220.5 KiB to 0.4 KiB in 00:00:39
// Debug: Prints 1 line(s)
// Release: Prints 0 line(s)
using System;
using System.Numerics;
using System.Runtime.Intrinsics;
using System.Runtime.Intrinsics.Arm;

public class Program
{
    public static void Main()
    {
        var vr1 = Vector128.CreateScalar(2395292015U);
        if (((long)(18446744073709551614UL / (AdvSimd.Extract(vr1, 1) | 1)) < 0))
        {
            System.Console.WriteLine(0);
        }
    }
}
// Generated by Fuzzlyn v2.4 on 2024-10-27 16:58:11
// Run on X86 Windows
// Seed: 13886187988830061152-vectort,vector128,vector256,x86aes,x86avx,x86avx2,x86avx512bw,x86avx512bwvl,x86avx512cd,x86avx512cdvl,x86avx512dq,x86avx512dqvl,x86avx512f,x86avx512fvl,x86bmi1,x86bmi2,x86fma,x86lzcnt,x86pclmulqdq,x86popcnt,x86sse,x86sse2,x86sse3,x86sse41,x86sse42,x86ssse3,x86x86base
// Reduced from 241.5 KiB to 0.6 KiB in 00:05:21
// Debug: Prints 0 line(s)
// Release: Prints 1 line(s)
using System;
using System.Numerics;
using System.Runtime.Intrinsics;
using System.Runtime.Intrinsics.X86;

public struct S0
{
    public ushort F2;
}

public class Program
{
    public static void Main()
    {
        var vr4 = new S0();
        var vr5 = M8(vr4);
    }

    public static float M8(S0 argThis)
    {
        Vector256<ushort> var1 = default(Vector256<ushort>);
        if ((long)(17731708739983220386UL / (ushort)(argThis.F2 | 1)) >= 0)
        {
            System.Console.WriteLine(var1);
        }

        return 0;
    }
}

I couldn't find an existing issue -- feel free to mark this as a dup if you've already opened one @amanasifkhalid.

cc @dotnet/jit-contrib

Metadata

Metadata

Labels

area-CodeGen-coreclrCLR JIT compiler in src/coreclr/src/jit and related components such as SuperPMIblocking-clean-ci-optionalBlocking optional rolling runsin-prThere is an active PR which will close this issue when it is merged

Type

No type

Projects

No projects

Milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions