• Pierre Langlois's avatar
    [arm64] Generate TBNZ for 32-bit '(x & (1 << N)) == (1 << N)' · 77021584
    Pierre Langlois authored
    Add support for matching '(x & mask) == mask' when mask has a single bit set,
    and translate this into a tbnz instruction. This patch only does this for 32-bit
    operations, we can port it to 64-bit operations as a follow-up if we find
    matches.
    
    This transformation mostly touches the snapshot where we get ~120 hits. This pattern can
    also show up in JavaScript when introduced by the EffectControlLinearizer pass.
    
    Bug: 
    Change-Id: Ib37c6e0bd3831b7c17709357b00ca53735621605
    Reviewed-on: https://chromium-review.googlesource.com/803272Reviewed-by: 's avatarBenedikt Meurer <bmeurer@chromium.org>
    Commit-Queue: Pierre Langlois <pierre.langlois@arm.com>
    Cr-Commit-Position: refs/heads/master@{#49822}
    77021584
instruction-selector-arm64-unittest.cc 164 KB