Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Fix incorrect fusion of div and rem #7567

Merged
merged 1 commit into from
Aug 18, 2023

Commits on Aug 17, 2023

  1. Fix incorrect fusion of div and rem

    The JIT would generate code that calculated the remainder incorrectly
    for the following example:
    
        bug(Bin) ->
            N = byte_size(Bin),
            {N rem 128, N div 128}.
    
    Essentially, the JIT would rewrite the code like this:
    
        bug(Bin) ->
            N = byte_size(Bin),
            Q = N bsr 7,
            {Q band 16#7f, Q}.
    
    That is, the remainder would be calculated as `(N div 128) rem 128`.
    
    Fixes erlang#7566
    bjorng committed Aug 17, 2023
    Configuration menu
    Copy the full SHA
    478cefa View commit details
    Browse the repository at this point in the history