Skip to content

LLVM 23 breaks tests/assembly-llvm/slice-is_ascii.rs #154141

Description

@durin42

It looks like llvm/llvm-project@21f439f broke this test by changing some loop optimizations:

/var/lib/buildkite-agent/builds/rust-llvm-integrate/llvm-project/rust-llvm-integrate-prototype/tests/assembly-llvm/slice-is_ascii.rs:18:16: error: CHECK-NOT: excluded string found in input
--
// CHECK-NOT: test
^
/var/lib/buildkite-agent/builds/rust-llvm-integrate/llvm-project/rust-llvm-integrate-prototype/build/x86_64-unknown-linux-gnu/test/assembly-llvm/slice-is_ascii.LIN/slice-is_ascii.s:9:2: note: found here
test rsi, rsi
^~~~
 
Input file: /var/lib/buildkite-agent/builds/rust-llvm-integrate/llvm-project/rust-llvm-integrate-prototype/build/x86_64-unknown-linux-gnu/test/assembly-llvm/slice-is_ascii.LIN/slice-is_ascii.s
Check file: /var/lib/buildkite-agent/builds/rust-llvm-integrate/llvm-project/rust-llvm-integrate-prototype/tests/assembly-llvm/slice-is_ascii.rs
 
-dump-input=help explains the following input dump.
 
Input was:
<<<<<<
        1:  .intel_syntax noprefix
        2:  .file "slice_is_ascii.bbb27c42060df02e-cgu.0"
        3:  .section .text.is_ascii_simple_demo,"ax",@progbits
        4:  .globl is_ascii_simple_demo
        5:  .prefalign 16
        6:  .type is_ascii_simple_demo,@function
        7: is_ascii_simple_demo:
        8:  .cfi_startproc
        9:  test rsi, rsi
not:18      !~~~           error: no match expected
       10:  je .LBB0_1
       11:  dec rsi
       12:  .p2align 4
       13: .LBB0_4:
       14:  mov rax, rsi
       15:  sub rsi, 1
       16:  setb cl
       17:  cmp byte ptr [rdi + rax], 0
       18:  setns al
       19:  js .LBB0_2
       20:  test cl, cl
       21:  je .LBB0_4
       22: .LBB0_2:
       23:  ret
       24: .LBB0_1:
       25:  mov al, 1
       26:  ret
       27: .Lfunc_end0:
       28:  .size is_ascii_simple_demo, .Lfunc_end0-is_ascii_simple_demo
       29:  .cfi_endproc
       30:
       31:  .ident "rustc version 1.96.0-dev"
       32:  .section ".note.GNU-stack","",@progbits
>>>>>>

Full failure visible on our buildkite.

It looks like we get some more branching than before the breaking change. Filing this so we can track it and disable the test in our CI until there's a fix.

Metadata

Metadata

Assignees

No one assigned

    Labels

    A-LLVMArea: Code generation parts specific to LLVM. Both correctness bugs and optimization-related issues.needs-triageThis issue may need triage. Remove it if it has been sufficiently triaged.

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions