dotnet/runtime

Unnecessary sign-extension for some never-negative expressions

開放

#119,680 建立於 2025年9月13日

 (1 則留言) (1 個反應) (0 位負責人)C# (5,445 個分叉)batch import
area-CodeGen-coreclrhelp wanted

倉庫指標

星標
 (17,886 顆星)
PR 合併指標
 (PR 指標待抓取)

描述

nint M1(uint mask) {
    return BitOperations.TrailingZeroCount(mask) / sizeof(ushort);
}

nint M2(uint mask) {
    return (nint)(uint.TrailingZeroCount(mask) / sizeof(ushort));
}
C:M1(uint):nint:this (FullOpts):
       xor      eax, eax
       tzcnt    eax, esi
       shr      eax, 1
       cdqe     
       ret      

C:M2(uint):nint:this (FullOpts):
       xor      eax, eax
       tzcnt    eax, esi
       shr      eax, 1
       ret    

godbolt.org

貢獻者指南