LLVM 23 breaks tests/assembly-llvm/slice-is_ascii.rs
Nobody has claimed this yet.
- Dominant language
- Rust
- Stars
- 119k
- Forks
- 16.1k
- PR merge metrics
- PR metrics pending
Description
It looks like llvm/llvm-project@21f439f13250bd9b7c19c8dd838177a04bf091ef 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.
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start with tests/assembly-llvm/slice-is_ascii.rs and the linked LLVM change, then inspect the Buildkite failure and its CHECK-NOT expectations. Determine whether the test should be disabled while LLVM is broken; done means the LLVM integration CI no longer fails on this test, with the existing assembly behavior documented or tracked.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- rust
- Domain
- compilers, testing-qa
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Quiet
- Clarity
- Mostly clear
- Newbie friendliness
- 45/100