Skip to content

Conversation

@clubby789
Copy link
Contributor

@rustbot rustbot added A-LLVM Area: Code generation parts specific to LLVM. Both correctness bugs and optimization-related issues. S-waiting-on-author Status: This is awaiting some action (such as code changes or more information) from the author. T-compiler Relevant to the compiler team, which will review and decide on the PR/issue. labels Jan 8, 2026
@clubby789
Copy link
Contributor Author

@bors try @rust-timer queue

@rust-timer

This comment has been minimized.

@rust-bors

This comment has been minimized.

rust-bors bot added a commit that referenced this pull request Jan 8, 2026
codegen: Use branch weights instead of `llvm.expect`
@rustbot rustbot added the S-waiting-on-perf Status: Waiting on a perf run to be completed. label Jan 8, 2026
@rust-bors
Copy link
Contributor

rust-bors bot commented Jan 8, 2026

☀️ Try build successful (CI)
Build commit: 9d53256 (9d53256869c9b7a6d2ec84c502880e95c8cb4be3, parent: 32fe406b5e71afbb0d8b95280e50e67d1549224c)

@rust-timer

This comment has been minimized.

@rust-timer
Copy link
Collaborator

Finished benchmarking commit (9d53256): comparison URL.

Overall result: ✅ improvements - no action needed

Benchmarking this pull request means it may be perf-sensitive – we'll automatically label it not fit for rolling up. You can override this, but we strongly advise not to, due to possible changes in compiler perf.

@bors rollup=never
@rustbot label: -S-waiting-on-perf -perf-regression

Instruction count

Our most reliable metric. Used to determine the overall result above. However, even this metric can be noisy.

mean range count
Regressions ❌
(primary)
- - 0
Regressions ❌
(secondary)
- - 0
Improvements ✅
(primary)
- - 0
Improvements ✅
(secondary)
-0.5% [-0.5%, -0.5%] 1
All ❌✅ (primary) - - 0

Max RSS (memory usage)

Results (primary 2.6%, secondary 2.0%)

A less reliable metric. May be of interest, but not used to determine the overall result above.

mean range count
Regressions ❌
(primary)
2.6% [2.3%, 2.9%] 2
Regressions ❌
(secondary)
2.0% [2.0%, 2.0%] 1
Improvements ✅
(primary)
- - 0
Improvements ✅
(secondary)
- - 0
All ❌✅ (primary) 2.6% [2.3%, 2.9%] 2

Cycles

Results (secondary 0.8%)

A less reliable metric. May be of interest, but not used to determine the overall result above.

mean range count
Regressions ❌
(primary)
- - 0
Regressions ❌
(secondary)
2.8% [2.1%, 3.5%] 2
Improvements ✅
(primary)
- - 0
Improvements ✅
(secondary)
-3.1% [-3.1%, -3.1%] 1
All ❌✅ (primary) - - 0

Binary size

This benchmark run did not return any relevant results for this metric.

Bootstrap: 474.424s -> 475.196s (0.16%)
Artifact size: 390.80 MiB -> 390.85 MiB (0.01%)

@rustbot rustbot removed the S-waiting-on-perf Status: Waiting on a perf run to be completed. label Jan 8, 2026
@clubby789
Copy link
Contributor Author

cc @saethlin

@saethlin
Copy link
Member

saethlin commented Jan 9, 2026

Neat. I think that demonstrates that there is no perf argument against this, but I would hope that this could clean up the SwitchInt lowering. Do you think it can?

@clubby789
Copy link
Contributor Author

I think not necessarily alone, but I tried a bit of a refactoring of logic which should make the code a little clearer (hopefully!)

@bors try @rust-timer queue

@rust-timer

This comment has been minimized.

rust-bors bot added a commit that referenced this pull request Jan 9, 2026
codegen: Use branch weights instead of `llvm.expect`
@rust-bors

This comment has been minimized.

@rustbot rustbot added the S-waiting-on-perf Status: Waiting on a perf run to be completed. label Jan 9, 2026
@rust-log-analyzer

This comment has been minimized.

@rust-bors
Copy link
Contributor

rust-bors bot commented Jan 9, 2026

☀️ Try build successful (CI)
Build commit: 30c1a3d (30c1a3def0e38ce17ad1ebf33a5602ff5a4fdf66, parent: 85d0cdfe3489ff1a4b86daeddba6fcf82b47bd65)

@rust-timer

This comment has been minimized.

@rust-timer
Copy link
Collaborator

Finished benchmarking commit (30c1a3d): comparison URL.

Overall result: ❌✅ regressions and improvements - please read the text below

Benchmarking this pull request means it may be perf-sensitive – we'll automatically label it not fit for rolling up. You can override this, but we strongly advise not to, due to possible changes in compiler perf.

Next Steps: If you can justify the regressions found in this try perf run, please do so in sufficient writing along with @rustbot label: +perf-regression-triaged. If not, please fix the regressions and do another perf run. If its results are neutral or positive, the label will be automatically removed.

@bors rollup=never
@rustbot label: -S-waiting-on-perf +perf-regression

Instruction count

Our most reliable metric. Used to determine the overall result above. However, even this metric can be noisy.

mean range count
Regressions ❌
(primary)
0.7% [0.1%, 9.1%] 142
Regressions ❌
(secondary)
0.6% [0.0%, 5.8%] 117
Improvements ✅
(primary)
-3.1% [-9.1%, -0.3%] 37
Improvements ✅
(secondary)
-1.2% [-6.4%, -0.1%] 53
All ❌✅ (primary) -0.1% [-9.1%, 9.1%] 179

Max RSS (memory usage)

Results (primary -1.6%, secondary -3.4%)

A less reliable metric. May be of interest, but not used to determine the overall result above.

mean range count
Regressions ❌
(primary)
1.0% [1.0%, 1.0%] 1
Regressions ❌
(secondary)
1.8% [0.9%, 2.7%] 2
Improvements ✅
(primary)
-2.5% [-3.0%, -2.1%] 3
Improvements ✅
(secondary)
-4.9% [-6.1%, -3.7%] 7
All ❌✅ (primary) -1.6% [-3.0%, 1.0%] 4

Cycles

Results (primary -2.4%, secondary -2.2%)

A less reliable metric. May be of interest, but not used to determine the overall result above.

mean range count
Regressions ❌
(primary)
4.9% [2.7%, 10.3%] 4
Regressions ❌
(secondary)
2.9% [1.3%, 5.6%] 7
Improvements ✅
(primary)
-3.9% [-6.5%, -2.0%] 20
Improvements ✅
(secondary)
-5.2% [-10.9%, -2.5%] 12
All ❌✅ (primary) -2.4% [-6.5%, 10.3%] 24

Binary size

Results (primary 1.2%, secondary 2.9%)

A less reliable metric. May be of interest, but not used to determine the overall result above.

mean range count
Regressions ❌
(primary)
1.2% [0.1%, 6.5%] 52
Regressions ❌
(secondary)
3.2% [0.0%, 6.7%] 98
Improvements ✅
(primary)
-0.8% [-0.8%, -0.8%] 1
Improvements ✅
(secondary)
-0.3% [-0.8%, -0.0%] 7
All ❌✅ (primary) 1.2% [-0.8%, 6.5%] 53

Bootstrap: 473.885s -> 472.245s (-0.35%)
Artifact size: 390.84 MiB -> 395.47 MiB (1.18%)

@rustbot rustbot added perf-regression Performance regression. and removed S-waiting-on-perf Status: Waiting on a perf run to be completed. labels Jan 9, 2026
@clubby789
Copy link
Contributor Author

There's some logic I didn't port, will see how that affects it

@clubby789
Copy link
Contributor Author

@bors try @rust-timer queue

@rust-timer

This comment has been minimized.

@rust-bors

This comment has been minimized.

rust-bors bot added a commit that referenced this pull request Jan 9, 2026
codegen: Use branch weights instead of `llvm.expect`
@rustbot rustbot added the S-waiting-on-perf Status: Waiting on a perf run to be completed. label Jan 9, 2026
@rust-log-analyzer

This comment has been minimized.

@rust-log-analyzer

This comment has been minimized.

@rust-bors
Copy link
Contributor

rust-bors bot commented Jan 9, 2026

💔 Test for 82e7b04 failed: CI. Failed jobs:

@clubby789
Copy link
Contributor Author

@bors try @rust-timer queue

@rust-timer

This comment has been minimized.

@rust-bors

This comment has been minimized.

rust-bors bot added a commit that referenced this pull request Jan 9, 2026
codegen: Use branch weights instead of `llvm.expect`
@rust-log-analyzer
Copy link
Collaborator

The job aarch64-gnu-llvm-20-1 failed! Check out the build log: (web) (plain enhanced) (plain)

Click to see the possible cause of the failure (guessed by this bot)

---- [codegen] tests/codegen-llvm/checked_math.rs stdout ----
------FileCheck stdout------------------------------

------FileCheck stderr------------------------------
/checkout/tests/codegen-llvm/checked_math.rs:96:12: error: CHECK: expected string not found in input
 // CHECK: [[NONE_BB]]:
           ^
/checkout/obj/build/aarch64-unknown-linux-gnu/test/codegen-llvm/checked_math/checked_math.ll:82:15: note: scanning from here
 ret i32 %_4.0
              ^
/checkout/obj/build/aarch64-unknown-linux-gnu/test/codegen-llvm/checked_math/checked_math.ll:82:15: note: with "NONE_BB" equal to "bb1"
 ret i32 %_4.0
              ^
/checkout/obj/build/aarch64-unknown-linux-gnu/test/codegen-llvm/checked_math/checked_math.ll:85:7: note: possible intended match here
; core::option::unwrap_failed
      ^

Input file: /checkout/obj/build/aarch64-unknown-linux-gnu/test/codegen-llvm/checked_math/checked_math.ll
Check file: /checkout/tests/codegen-llvm/checked_math.rs

-dump-input=help explains the following input dump.

Input was:
<<<<<<
            1: ; ModuleID = 'checked_math.6fc8e87442f72df1-cgu.0' 
            2: source_filename = "checked_math.6fc8e87442f72df1-cgu.0" 
            3: target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i8:8:32-i16:16:32-i64:64-i128:128-n32:64-S128-Fn32" 
            4: target triple = "aarch64-unknown-linux-gnu" 
            5:  
            6: @alloc_7235cb5824a36c3c4972de4f88b80ff0 = private unnamed_addr constant [45 x i8] c"/checkout/tests/codegen-llvm/checked_math.rs\00", align 1 
            7: @alloc_b1f21b9e28ef491d8a39f6fe0be40554 = private unnamed_addr constant <{ ptr, [16 x i8] }> <{ ptr @alloc_7235cb5824a36c3c4972de4f88b80ff0, [16 x i8] c",\00\00\00\00\00\00\00b\00\00\00\16\00\00\00" }>, align 8 
            8:  
            9: ; Function Attrs: mustprogress nofree norecurse nosync nounwind willreturn memory(none) uwtable 
           10: define { i16, i16 } @checked_sub_unsigned(i16 noundef %a, i16 noundef %b) unnamed_addr #0 { 
           11: start: 
           12:  %_3 = icmp uge i16 %a, %b 
           13:  %_4 = sub nuw i16 %a, %b 
           14:  %_0.sroa.3.0 = select i1 %_3, i16 %_4, i16 undef 
           15:  %_0.sroa.0.0 = zext i1 %_3 to i16 
           16:  %0 = insertvalue { i16, i16 } poison, i16 %_0.sroa.0.0, 0 
           17:  %1 = insertvalue { i16, i16 } %0, i16 %_0.sroa.3.0, 1 
           18:  ret { i16, i16 } %1 
           19: } 
           20:  
           21: ; Function Attrs: mustprogress nofree norecurse nosync nounwind willreturn memory(none) uwtable 
           22: define { i32, i32 } @checked_shl_unsigned(i32 noundef %a, i32 noundef %b) unnamed_addr #0 { 
           23: start: 
           24:  %_3 = icmp ult i32 %b, 32 
           25:  %_4 = shl i32 %a, %b 
           26:  %_0.sroa.3.0 = select i1 %_3, i32 %_4, i32 undef 
           27:  %_0.sroa.0.0 = zext i1 %_3 to i32 
           28:  %0 = insertvalue { i32, i32 } poison, i32 %_0.sroa.0.0, 0 
           29:  %1 = insertvalue { i32, i32 } %0, i32 %_0.sroa.3.0, 1 
           30:  ret { i32, i32 } %1 
           31: } 
           32:  
           33: ; Function Attrs: mustprogress nofree norecurse nosync nounwind willreturn memory(none) uwtable 
           34: define { i32, i32 } @checked_shr_unsigned(i32 noundef %a, i32 noundef %b) unnamed_addr #0 { 
           35: start: 
           36:  %_3 = icmp ult i32 %b, 32 
           37:  %_4 = lshr i32 %a, %b 
           38:  %_0.sroa.3.0 = select i1 %_3, i32 %_4, i32 undef 
           39:  %_0.sroa.0.0 = zext i1 %_3 to i32 
           40:  %0 = insertvalue { i32, i32 } poison, i32 %_0.sroa.0.0, 0 
           41:  %1 = insertvalue { i32, i32 } %0, i32 %_0.sroa.3.0, 1 
           42:  ret { i32, i32 } %1 
           43: } 
           44:  
           45: ; Function Attrs: mustprogress nofree norecurse nosync nounwind willreturn memory(none) uwtable 
           46: define { i32, i32 } @checked_shl_signed(i32 noundef %a, i32 noundef %b) unnamed_addr #0 { 
           47: start: 
           48:  %_3 = icmp ult i32 %b, 32 
           49:  %_4 = shl i32 %a, %b 
           50:  %_0.sroa.3.0 = select i1 %_3, i32 %_4, i32 undef 
           51:  %_0.sroa.0.0 = zext i1 %_3 to i32 
           52:  %0 = insertvalue { i32, i32 } poison, i32 %_0.sroa.0.0, 0 
           53:  %1 = insertvalue { i32, i32 } %0, i32 %_0.sroa.3.0, 1 
           54:  ret { i32, i32 } %1 
           55: } 
           56:  
           57: ; Function Attrs: mustprogress nofree norecurse nosync nounwind willreturn memory(none) uwtable 
           58: define { i32, i32 } @checked_shr_signed(i32 noundef %a, i32 noundef %b) unnamed_addr #0 { 
           59: start: 
           60:  %_3 = icmp ult i32 %b, 32 
           61:  %_4 = ashr i32 %a, %b 
           62:  %_0.sroa.3.0 = select i1 %_3, i32 %_4, i32 undef 
           63:  %_0.sroa.0.0 = zext i1 %_3 to i32 
           64:  %0 = insertvalue { i32, i32 } poison, i32 %_0.sroa.0.0, 0 
           65:  %1 = insertvalue { i32, i32 } %0, i32 %_0.sroa.3.0, 1 
           66:  ret { i32, i32 } %1 
           67: } 
           68:  
           69: ; Function Attrs: uwtable 
           70: define noundef range(i32 1, 0) i32 @checked_add_one_unwrap_unsigned(i32 noundef %x) unnamed_addr #1 { 
           71: start: 
           72:  %_4.1 = icmp eq i32 %x, -1 
           73:  br i1 %_4.1, label %bb1, label %bb3, !prof !2 
           74:  
           75: bb1: ; preds = %start 
           76: ; call core::option::unwrap_failed 
           77:  tail call void @_RNvNtCsgkBKveWeex5_4core6option13unwrap_failed(ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_b1f21b9e28ef491d8a39f6fe0be40554) #3 
           78:  unreachable 
           79:  
           80: bb3: ; preds = %start 
           81:  %_4.0 = add nuw i32 %x, 1 
           82:  ret i32 %_4.0 
check:96'0                   X error: no match found
check:96'1                     with "NONE_BB" equal to "bb1"
           83: } 
check:96'0     ~~
           84:  
check:96'0     ~
           85: ; core::option::unwrap_failed 
check:96'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
check:96'2           ?                        possible intended match
           86: ; Function Attrs: cold noinline noreturn uwtable 
check:96'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
           87: declare void @_RNvNtCsgkBKveWeex5_4core6option13unwrap_failed(ptr noalias noundef readonly align 8 dereferenceable(24)) unnamed_addr #2 
check:96'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
           88:  
check:96'0     ~
           89: attributes #0 = { mustprogress nofree norecurse nosync nounwind willreturn memory(none) uwtable "frame-pointer"="non-leaf" "probe-stack"="inline-asm" "target-cpu"="generic" "target-features"="+v8a,+outline-atomics" } 
check:96'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
           90: attributes #1 = { uwtable "frame-pointer"="non-leaf" "probe-stack"="inline-asm" "target-cpu"="generic" "target-features"="+v8a,+outline-atomics" } 
check:96'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
           91: attributes #2 = { cold noinline noreturn uwtable "frame-pointer"="non-leaf" "probe-stack"="inline-asm" "target-cpu"="generic" "target-features"="+v8a,+outline-atomics" } 
check:96'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
           92: attributes #3 = { noinline noreturn } 
check:96'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
           93:  
check:96'0     ~
           94: !llvm.module.flags = !{!0} 
check:96'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~
           95: !llvm.ident = !{!1} 
check:96'0     ~~~~~~~~~~~~~~~~~~~~
           96:  
check:96'0     ~
           97: !0 = !{i32 8, !"PIC Level", i32 2} 
check:96'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
           98: !1 = !{!"rustc version 1.94.0-nightly (f73e8a94b 2026-01-09)"} 
check:96'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
           99: !2 = !{!"branch_weights", i32 1, i32 2000} 
check:96'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
>>>>>>

------------------------------------------

error: verification with 'FileCheck' failed
status: exit status: 1
command: "/usr/lib/llvm-20/bin/FileCheck" "--input-file" "/checkout/obj/build/aarch64-unknown-linux-gnu/test/codegen-llvm/checked_math/checked_math.ll" "/checkout/tests/codegen-llvm/checked_math.rs" "--check-prefix=CHECK" "--allow-unused-prefixes" "--dump-input-context" "100"
stdout: none
--- stderr -------------------------------
/checkout/tests/codegen-llvm/checked_math.rs:96:12: error: CHECK: expected string not found in input
 // CHECK: [[NONE_BB]]:
           ^
/checkout/obj/build/aarch64-unknown-linux-gnu/test/codegen-llvm/checked_math/checked_math.ll:82:15: note: scanning from here
 ret i32 %_4.0
              ^
/checkout/obj/build/aarch64-unknown-linux-gnu/test/codegen-llvm/checked_math/checked_math.ll:82:15: note: with "NONE_BB" equal to "bb1"
 ret i32 %_4.0
              ^
/checkout/obj/build/aarch64-unknown-linux-gnu/test/codegen-llvm/checked_math/checked_math.ll:85:7: note: possible intended match here
; core::option::unwrap_failed
      ^

Input file: /checkout/obj/build/aarch64-unknown-linux-gnu/test/codegen-llvm/checked_math/checked_math.ll
Check file: /checkout/tests/codegen-llvm/checked_math.rs

-dump-input=help explains the following input dump.

Input was:
<<<<<<
            1: ; ModuleID = 'checked_math.6fc8e87442f72df1-cgu.0' 
            2: source_filename = "checked_math.6fc8e87442f72df1-cgu.0" 
            3: target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i8:8:32-i16:16:32-i64:64-i128:128-n32:64-S128-Fn32" 
            4: target triple = "aarch64-unknown-linux-gnu" 
            5:  
            6: @alloc_7235cb5824a36c3c4972de4f88b80ff0 = private unnamed_addr constant [45 x i8] c"/checkout/tests/codegen-llvm/checked_math.rs\00", align 1 
            7: @alloc_b1f21b9e28ef491d8a39f6fe0be40554 = private unnamed_addr constant <{ ptr, [16 x i8] }> <{ ptr @alloc_7235cb5824a36c3c4972de4f88b80ff0, [16 x i8] c",\00\00\00\00\00\00\00b\00\00\00\16\00\00\00" }>, align 8 
            8:  
            9: ; Function Attrs: mustprogress nofree norecurse nosync nounwind willreturn memory(none) uwtable 
           10: define { i16, i16 } @checked_sub_unsigned(i16 noundef %a, i16 noundef %b) unnamed_addr #0 { 
           11: start: 
           12:  %_3 = icmp uge i16 %a, %b 
           13:  %_4 = sub nuw i16 %a, %b 
           14:  %_0.sroa.3.0 = select i1 %_3, i16 %_4, i16 undef 
           15:  %_0.sroa.0.0 = zext i1 %_3 to i16 
           16:  %0 = insertvalue { i16, i16 } poison, i16 %_0.sroa.0.0, 0 
           17:  %1 = insertvalue { i16, i16 } %0, i16 %_0.sroa.3.0, 1 
           18:  ret { i16, i16 } %1 
           19: } 
           20:  
           21: ; Function Attrs: mustprogress nofree norecurse nosync nounwind willreturn memory(none) uwtable 
           22: define { i32, i32 } @checked_shl_unsigned(i32 noundef %a, i32 noundef %b) unnamed_addr #0 { 
           23: start: 
           24:  %_3 = icmp ult i32 %b, 32 
           25:  %_4 = shl i32 %a, %b 
           26:  %_0.sroa.3.0 = select i1 %_3, i32 %_4, i32 undef 
           27:  %_0.sroa.0.0 = zext i1 %_3 to i32 
           28:  %0 = insertvalue { i32, i32 } poison, i32 %_0.sroa.0.0, 0 
           29:  %1 = insertvalue { i32, i32 } %0, i32 %_0.sroa.3.0, 1 
           30:  ret { i32, i32 } %1 
           31: } 
           32:  
           33: ; Function Attrs: mustprogress nofree norecurse nosync nounwind willreturn memory(none) uwtable 
           34: define { i32, i32 } @checked_shr_unsigned(i32 noundef %a, i32 noundef %b) unnamed_addr #0 { 
           35: start: 
           36:  %_3 = icmp ult i32 %b, 32 
           37:  %_4 = lshr i32 %a, %b 
           38:  %_0.sroa.3.0 = select i1 %_3, i32 %_4, i32 undef 
           39:  %_0.sroa.0.0 = zext i1 %_3 to i32 
           40:  %0 = insertvalue { i32, i32 } poison, i32 %_0.sroa.0.0, 0 
           41:  %1 = insertvalue { i32, i32 } %0, i32 %_0.sroa.3.0, 1 
           42:  ret { i32, i32 } %1 
           43: } 
           44:  
           45: ; Function Attrs: mustprogress nofree norecurse nosync nounwind willreturn memory(none) uwtable 
           46: define { i32, i32 } @checked_shl_signed(i32 noundef %a, i32 noundef %b) unnamed_addr #0 { 
           47: start: 
           48:  %_3 = icmp ult i32 %b, 32 
           49:  %_4 = shl i32 %a, %b 
           50:  %_0.sroa.3.0 = select i1 %_3, i32 %_4, i32 undef 
           51:  %_0.sroa.0.0 = zext i1 %_3 to i32 
           52:  %0 = insertvalue { i32, i32 } poison, i32 %_0.sroa.0.0, 0 
           53:  %1 = insertvalue { i32, i32 } %0, i32 %_0.sroa.3.0, 1 
           54:  ret { i32, i32 } %1 
           55: } 
           56:  
           57: ; Function Attrs: mustprogress nofree norecurse nosync nounwind willreturn memory(none) uwtable 
           58: define { i32, i32 } @checked_shr_signed(i32 noundef %a, i32 noundef %b) unnamed_addr #0 { 
           59: start: 
           60:  %_3 = icmp ult i32 %b, 32 
           61:  %_4 = ashr i32 %a, %b 
           62:  %_0.sroa.3.0 = select i1 %_3, i32 %_4, i32 undef 
           63:  %_0.sroa.0.0 = zext i1 %_3 to i32 
           64:  %0 = insertvalue { i32, i32 } poison, i32 %_0.sroa.0.0, 0 
           65:  %1 = insertvalue { i32, i32 } %0, i32 %_0.sroa.3.0, 1 
           66:  ret { i32, i32 } %1 
           67: } 
           68:  
           69: ; Function Attrs: uwtable 
           70: define noundef range(i32 1, 0) i32 @checked_add_one_unwrap_unsigned(i32 noundef %x) unnamed_addr #1 { 
           71: start: 
           72:  %_4.1 = icmp eq i32 %x, -1 
           73:  br i1 %_4.1, label %bb1, label %bb3, !prof !2 
           74:  
           75: bb1: ; preds = %start 
           76: ; call core::option::unwrap_failed 
           77:  tail call void @_RNvNtCsgkBKveWeex5_4core6option13unwrap_failed(ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_b1f21b9e28ef491d8a39f6fe0be40554) #3 
           78:  unreachable 
           79:  
           80: bb3: ; preds = %start 
           81:  %_4.0 = add nuw i32 %x, 1 
           82:  ret i32 %_4.0 
check:96'0                   X error: no match found
check:96'1                     with "NONE_BB" equal to "bb1"
           83: } 
check:96'0     ~~
           84:  
check:96'0     ~
           85: ; core::option::unwrap_failed 
check:96'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
check:96'2           ?                        possible intended match
           86: ; Function Attrs: cold noinline noreturn uwtable 
check:96'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
           87: declare void @_RNvNtCsgkBKveWeex5_4core6option13unwrap_failed(ptr noalias noundef readonly align 8 dereferenceable(24)) unnamed_addr #2 
check:96'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
           88:  
check:96'0     ~
           89: attributes #0 = { mustprogress nofree norecurse nosync nounwind willreturn memory(none) uwtable "frame-pointer"="non-leaf" "probe-stack"="inline-asm" "target-cpu"="generic" "target-features"="+v8a,+outline-atomics" } 
check:96'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
           90: attributes #1 = { uwtable "frame-pointer"="non-leaf" "probe-stack"="inline-asm" "target-cpu"="generic" "target-features"="+v8a,+outline-atomics" } 
check:96'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
           91: attributes #2 = { cold noinline noreturn uwtable "frame-pointer"="non-leaf" "probe-stack"="inline-asm" "target-cpu"="generic" "target-features"="+v8a,+outline-atomics" } 
check:96'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
           92: attributes #3 = { noinline noreturn } 
check:96'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
           93:  
check:96'0     ~
           94: !llvm.module.flags = !{!0} 
check:96'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~
           95: !llvm.ident = !{!1} 
check:96'0     ~~~~~~~~~~~~~~~~~~~~
           96:  
check:96'0     ~
           97: !0 = !{i32 8, !"PIC Level", i32 2} 
check:96'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
           98: !1 = !{!"rustc version 1.94.0-nightly (f73e8a94b 2026-01-09)"} 
check:96'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
           99: !2 = !{!"branch_weights", i32 1, i32 2000} 
check:96'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
>>>>>>
------------------------------------------

---- [codegen] tests/codegen-llvm/checked_math.rs stdout end ----
---- [codegen] tests/codegen-llvm/enum/enum-two-variants-match.rs stdout ----
------FileCheck stdout------------------------------

------FileCheck stderr------------------------------
/checkout/tests/codegen-llvm/enum/enum-two-variants-match.rs:18:12: error: CHECK: expected string not found in input
 // CHECK: %[[COND:.+]] = trunc nuw i64 %[[DISCR]] to i1
           ^
/checkout/obj/build/aarch64-unknown-linux-gnu/test/codegen-llvm/enum/enum-two-variants-match/enum-two-variants-match.ll:10:28: note: scanning from here
 %_2 = zext i32 %x.0 to i64
                           ^
/checkout/obj/build/aarch64-unknown-linux-gnu/test/codegen-llvm/enum/enum-two-variants-match/enum-two-variants-match.ll:10:28: note: with "DISCR" equal to "_2"
 %_2 = zext i32 %x.0 to i64
                           ^
/checkout/obj/build/aarch64-unknown-linux-gnu/test/codegen-llvm/enum/enum-two-variants-match/enum-two-variants-match.ll:16:1: note: possible intended match here
bb1: ; preds = %start
^
/checkout/tests/codegen-llvm/enum/enum-two-variants-match.rs:42:12: error: CHECK: expected string not found in input
 // CHECK: %[[COND:.+]] = trunc nuw i64 %x.0 to i1
           ^
/checkout/obj/build/aarch64-unknown-linux-gnu/test/codegen-llvm/enum/enum-two-variants-match/enum-two-variants-match.ll:35:23: note: scanning from here
 %_0 = alloca [2 x i8], align 2
                      ^
/checkout/obj/build/aarch64-unknown-linux-gnu/test/codegen-llvm/enum/enum-two-variants-match/enum-two-variants-match.ll:41:1: note: possible intended match here
bb1: ; preds = %start
^
/checkout/tests/codegen-llvm/enum/enum-two-variants-match.rs:65:12: error: CHECK: expected string not found in input
 // CHECK: %[[OPT_DISCR_T:.+]] = trunc nuw i64 %[[OPT_DISCR]] to i1
           ^
/checkout/obj/build/aarch64-unknown-linux-gnu/test/codegen-llvm/enum/enum-two-variants-match/enum-two-variants-match.ll:65:34: note: scanning from here
 %_2 = select i1 %2, i64 0, i64 1
                                 ^
/checkout/obj/build/aarch64-unknown-linux-gnu/test/codegen-llvm/enum/enum-two-variants-match/enum-two-variants-match.ll:65:34: note: with "OPT_DISCR" equal to "_2"
 %_2 = select i1 %2, i64 0, i64 1
                                 ^
/checkout/obj/build/aarch64-unknown-linux-gnu/test/codegen-llvm/enum/enum-two-variants-match/enum-two-variants-match.ll:80:2: note: possible intended match here
 %4 = trunc nuw i8 %3 to i1
 ^
/checkout/tests/codegen-llvm/enum/enum-two-variants-match.rs:86:12: error: CHECK: expected string not found in input
 // CHECK: %[[OPT_DISCR_T:.+]] = trunc nuw i64 %[[OPT_DISCR]] to i1
           ^
/checkout/obj/build/aarch64-unknown-linux-gnu/test/codegen-llvm/enum/enum-two-variants-match/enum-two-variants-match.ll:104:34: note: scanning from here
 %_3 = select i1 %2, i64 0, i64 1
                                 ^
/checkout/obj/build/aarch64-unknown-linux-gnu/test/codegen-llvm/enum/enum-two-variants-match/enum-two-variants-match.ll:104:34: note: with "OPT_DISCR" equal to "_3"
 %_3 = select i1 %2, i64 0, i64 1
                                 ^
/checkout/obj/build/aarch64-unknown-linux-gnu/test/codegen-llvm/enum/enum-two-variants-match/enum-two-variants-match.ll:110:1: note: possible intended match here
bb1: ; preds = %bb2, %start
^
/checkout/tests/codegen-llvm/enum/enum-two-variants-match.rs:114:12: error: CHECK: expected string not found in input
 // CHECK: %[[OPT_DISCR_T:.+]] = trunc nuw i64 %[[OPT_DISCR]] to i1
           ^
/checkout/obj/build/aarch64-unknown-linux-gnu/test/codegen-llvm/enum/enum-two-variants-match/enum-two-variants-match.ll:147:34: note: scanning from here
 %_2 = select i1 %0, i64 0, i64 1
                                 ^
/checkout/obj/build/aarch64-unknown-linux-gnu/test/codegen-llvm/enum/enum-two-variants-match/enum-two-variants-match.ll:147:34: note: with "OPT_DISCR" equal to "_2"
 %_2 = select i1 %0, i64 0, i64 1
                                 ^
/checkout/obj/build/aarch64-unknown-linux-gnu/test/codegen-llvm/enum/enum-two-variants-match/enum-two-variants-match.ll:153:1: note: possible intended match here
bb1: ; preds = %start
^

Input file: /checkout/obj/build/aarch64-unknown-linux-gnu/test/codegen-llvm/enum/enum-two-variants-match/enum-two-variants-match.ll
Check file: /checkout/tests/codegen-llvm/enum/enum-two-variants-match.rs

-dump-input=help explains the following input dump.

Input was:
<<<<<<
             1: ; ModuleID = 'enum_two_variants_match.70e12e756512362d-cgu.0' 
             2: source_filename = "enum_two_variants_match.70e12e756512362d-cgu.0" 
             3: target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i8:8:32-i16:16:32-i64:64-i128:128-n32:64-S128-Fn32" 
             4: target triple = "aarch64-unknown-linux-gnu" 
             5:  
             6: ; Function Attrs: uwtable 
             7: define noundef i16 @option_match(i32 noundef range(i32 0, 2) %x.0, i32 %x.1) unnamed_addr #0 { 
             8: start: 
             9:  %_0 = alloca [2 x i8], align 2 
            10:  %_2 = zext i32 %x.0 to i64 
check:18'0                                 X error: no match found
check:18'1                                   with "DISCR" equal to "_2"
            11:  switch i64 %_2, label %bb1 [ 
check:18'0      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
            12:  i64 0, label %bb2 
check:18'0      ~~~~~~~~~~~~~~~~~~~
            13:  i64 1, label %bb3 
check:18'0      ~~~~~~~~~~~~~~~~~~~
            14:  ], !prof !2 
check:18'0      ~~~~~~~~~~~~~
            15:  
check:18'0      ~
            16: bb1: ; preds = %start 
check:18'0      ~~~~~~~~~~~~~~~~~~~~~~
check:18'2      ?                      possible intended match
            17:  unreachable 
check:18'0      ~~~~~~~~~~~~~
            18:  
check:18'0      ~
            19: bb2: ; preds = %start 
check:18'0      ~~~~~~~~~~~~~~~~~~~~~~
            20:  store i16 42, ptr %_0, align 2 
check:18'0      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
            21:  br label %bb4 
check:18'0      ~~~~~~~~~~~~~~~
            22:  
check:18'0      ~
            23: bb3: ; preds = %start 
check:18'0      ~~~~~~~~~~~~~~~~~~~~~~
            24:  store i16 13, ptr %_0, align 2 
check:18'0      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
            25:  br label %bb4 
check:18'0      ~~~~~~~~~~~~~~~
            26:  
check:18'0      ~
            27: bb4: ; preds = %bb3, %bb2 
check:18'0      ~~~~~~~~~~~~~~~~~~~~~~~~~~
            28:  %0 = load i16, ptr %_0, align 2, !noundef !3 
check:18'0      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
            29:  ret i16 %0 
check:18'0      ~~~~~~~~~~~~
            30: } 
check:18'0      ~~
            31:  
check:18'0      ~
            32: ; Function Attrs: uwtable 
check:18'0      ~~~~~~~~~~~~~~~~~~~~~~~~~~
            33: define noundef i16 @result_match(i64 noundef range(i64 0, 2) %x.0, i64 noundef %x.1) unnamed_addr #0 { 
check:18'0      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
            34: start: 
            35:  %_0 = alloca [2 x i8], align 2 
check:42'0                            X~~~~~~~~~ error: no match found
            36:  switch i64 %x.0, label %bb1 [ 
check:42'0      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
            37:  i64 0, label %bb2 
check:42'0      ~~~~~~~~~~~~~~~~~~~
            38:  i64 1, label %bb3 
check:42'0      ~~~~~~~~~~~~~~~~~~~
            39:  ], !prof !2 
check:42'0      ~~~~~~~~~~~~~
            40:  
check:42'0      ~
            41: bb1: ; preds = %start 
check:42'0      ~~~~~~~~~~~~~~~~~~~~~~
check:42'1      ?                      possible intended match
            42:  unreachable 
check:42'0      ~~~~~~~~~~~~~
            43:  
check:42'0      ~
            44: bb2: ; preds = %start 
check:42'0      ~~~~~~~~~~~~~~~~~~~~~~
            45:  store i16 42, ptr %_0, align 2 
check:42'0      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
            46:  br label %bb4 
check:42'0      ~~~~~~~~~~~~~~~
            47:  
check:42'0      ~
            48: bb3: ; preds = %start 
check:42'0      ~~~~~~~~~~~~~~~~~~~~~~
            49:  store i16 13, ptr %_0, align 2 
check:42'0      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
            50:  br label %bb4 
check:42'0      ~~~~~~~~~~~~~~~
            51:  
check:42'0      ~
            52: bb4: ; preds = %bb3, %bb2 
check:42'0      ~~~~~~~~~~~~~~~~~~~~~~~~~~
            53:  %0 = load i16, ptr %_0, align 2, !noundef !3 
check:42'0      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
            54:  ret i16 %0 
check:42'0      ~~~~~~~~~~~~
            55: } 
check:42'0      ~~
            56:  
check:42'0      ~
            57: ; Function Attrs: uwtable 
check:42'0      ~~~~~~~~~~~~~~~~~~~~~~~~~~
            58: define noundef range(i32 0, 1114112) i32 @option_bool_match(i8 noundef range(i8 0, 3) %0) unnamed_addr #0 { 
check:42'0      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
            59: start: 
            60:  %_0 = alloca [4 x i8], align 4 
            61:  %x = alloca [1 x i8], align 1 
            62:  store i8 %0, ptr %x, align 1 
            63:  %1 = load i8, ptr %x, align 1, !range !4, !noundef !3 
            64:  %2 = icmp eq i8 %1, 2 
            65:  %_2 = select i1 %2, i64 0, i64 1 
check:65'0                                       X error: no match found
check:65'1                                         with "OPT_DISCR" equal to "_2"
            66:  switch i64 %_2, label %bb1 [ 
check:65'0      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
            67:  i64 0, label %bb5 
check:65'0      ~~~~~~~~~~~~~~~~~~~
            68:  i64 1, label %bb2 
check:65'0      ~~~~~~~~~~~~~~~~~~~
            69:  ], !prof !2 
check:65'0      ~~~~~~~~~~~~~
            70:  
check:65'0      ~
            71: bb1: ; preds = %start 
check:65'0      ~~~~~~~~~~~~~~~~~~~~~~
            72:  unreachable 
check:65'0      ~~~~~~~~~~~~~
            73:  
check:65'0      ~
            74: bb5: ; preds = %start 
---
          ^
/checkout/obj/build/aarch64-unknown-linux-gnu/test/codegen-llvm/intrinsics/likely_assert/likely_assert.ll:20:19: note: scanning from here
; call core::panicking::panic
                  ^
/checkout/obj/build/aarch64-unknown-linux-gnu/test/codegen-llvm/intrinsics/likely_assert/likely_assert.ll:21:120: note: possible intended match here
 tail call void @_RNvNtCsgkBKveWeex5_4core9panicking5panic(ptr noalias noundef nonnull readonly align 1 @alloc_5c70694eba2726522defba5df26f0363, i64 noundef 19, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_7f7ce073315d007118a097a7acde57ea) #2
                                                                                                                       ^
/checkout/tests/codegen-llvm/intrinsics/likely_assert.rs:28:11: error: CHECK: expected string not found in input
// CHECK: bb2:
          ^
/checkout/obj/build/aarch64-unknown-linux-gnu/test/codegen-llvm/intrinsics/likely_assert/likely_assert.ll:34:19: note: scanning from here
; call core::panicking::panic_fmt
                  ^
/checkout/obj/build/aarch64-unknown-linux-gnu/test/codegen-llvm/intrinsics/likely_assert/likely_assert.ll:55:48: note: possible intended match here
!1 = !{!"rustc version 1.94.0-nightly (f73e8a94b 2026-01-09)"}
                                               ^

Input file: /checkout/obj/build/aarch64-unknown-linux-gnu/test/codegen-llvm/intrinsics/likely_assert/likely_assert.ll
Check file: /checkout/tests/codegen-llvm/intrinsics/likely_assert.rs

-dump-input=help explains the following input dump.

Input was:
<<<<<<
            1: ; ModuleID = 'likely_assert.5b87c39a9b61c91d-cgu.0' 
            2: source_filename = "likely_assert.5b87c39a9b61c91d-cgu.0" 
            3: target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i8:8:32-i16:16:32-i64:64-i128:128-n32:64-S128-Fn32" 
            4: target triple = "aarch64-unknown-linux-gnu" 
            5:  
            6: @alloc_5c70694eba2726522defba5df26f0363 = private unnamed_addr constant [19 x i8] c"assertion failed: x", align 1 
            7: @alloc_dd7b0aae4a9848017b292d2e57dc5216 = private unnamed_addr constant [57 x i8] c"/checkout/tests/codegen-llvm/intrinsics/likely_assert.rs\00", align 1 
            8: @alloc_7f7ce073315d007118a097a7acde57ea = private unnamed_addr constant <{ ptr, [16 x i8] }> <{ ptr @alloc_dd7b0aae4a9848017b292d2e57dc5216, [16 x i8] c"8\00\00\00\00\00\00\00\09\00\00\00\05\00\00\00" }>, align 8 
            9: @alloc_50f1c8e1e97864144871ff8f370a3e57 = private unnamed_addr constant <{ ptr, [16 x i8] }> <{ ptr @alloc_dd7b0aae4a9848017b292d2e57dc5216, [16 x i8] c"8\00\00\00\00\00\00\00\15\00\00\00\05\00\00\00" }>, align 8 
           10:  
           11: ; Function Attrs: uwtable 
           12: define void @test_assert(i1 noundef zeroext %x) unnamed_addr #0 { 
           13: start: 
           14:  br i1 %x, label %bb2, label %bb1, !prof !2 
           15:  
           16: bb2: ; preds = %start 
           17:  ret void 
           18:  
           19: bb1: ; preds = %start 
           20: ; call core::panicking::panic 
check:16'0                       X~~~~~~~~~~~ error: no match found
           21:  tail call void @_RNvNtCsgkBKveWeex5_4core9panicking5panic(ptr noalias noundef nonnull readonly align 1 @alloc_5c70694eba2726522defba5df26f0363, i64 noundef 19, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_7f7ce073315d007118a097a7acde57ea) #2 
check:16'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
check:16'1                                                                                                                            ?                                                                                                                                                       possible intended match
           22:  unreachable 
check:16'0     ~~~~~~~~~~~~~
           23: } 
check:16'0     ~~
           24:  
check:16'0     ~
           25: ; Function Attrs: uwtable 
check:16'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~
           26: define void @test_const_assert(i1 noundef zeroext %x) unnamed_addr #0 { 
check:16'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
           27: start: 
           28:  br i1 %x, label %bb2, label %bb1, !prof !2 
           29:  
           30: bb2: ; preds = %start 
           31:  ret void 
           32:  
           33: bb1: ; preds = %start 
           34: ; call core::panicking::panic_fmt 
check:28'0                       X~~~~~~~~~~~~~~~ error: no match found
           35:  tail call void @_RNvNtCsgkBKveWeex5_4core9panicking9panic_fmt(ptr noundef nonnull inttoptr (i64 1 to ptr), ptr noundef nonnull inttoptr (i64 1 to ptr), ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_50f1c8e1e97864144871ff8f370a3e57) #2 
check:28'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
           36:  unreachable 
check:28'0     ~~~~~~~~~~~~~
           37: } 
check:28'0     ~~
           38:  
check:28'0     ~
           39: ; core::panicking::panic 
check:28'0     ~~~~~~~~~~~~~~~~~~~~~~~~~
           40: ; Function Attrs: cold noinline noreturn uwtable 
check:28'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
           41: declare void @_RNvNtCsgkBKveWeex5_4core9panicking5panic(ptr noalias noundef nonnull readonly align 1, i64 noundef, ptr noalias noundef readonly align 8 dereferenceable(24)) unnamed_addr #1 
check:28'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
           42:  
check:28'0     ~
           43: ; core::panicking::panic_fmt 
check:28'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
           44: ; Function Attrs: cold noinline noreturn uwtable 
check:28'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
           45: declare void @_RNvNtCsgkBKveWeex5_4core9panicking9panic_fmt(ptr noundef nonnull, ptr noundef nonnull, ptr noalias noundef readonly align 8 dereferenceable(24)) unnamed_addr #1 
check:28'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
           46:  
check:28'0     ~
           47: attributes #0 = { uwtable "frame-pointer"="non-leaf" "probe-stack"="inline-asm" "target-cpu"="generic" "target-features"="+v8a,+outline-atomics" } 
check:28'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
           48: attributes #1 = { cold noinline noreturn uwtable "frame-pointer"="non-leaf" "probe-stack"="inline-asm" "target-cpu"="generic" "target-features"="+v8a,+outline-atomics" } 
check:28'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
           49: attributes #2 = { noinline noreturn } 
check:28'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
           50:  
check:28'0     ~
           51: !llvm.module.flags = !{!0} 
check:28'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~
           52: !llvm.ident = !{!1} 
check:28'0     ~~~~~~~~~~~~~~~~~~~~
           53:  
check:28'0     ~
           54: !0 = !{i32 8, !"PIC Level", i32 2} 
check:28'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
           55: !1 = !{!"rustc version 1.94.0-nightly (f73e8a94b 2026-01-09)"} 
check:28'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
check:28'1                                                    ?                possible intended match
           56: !2 = !{!"branch_weights", i32 2000, i32 1} 
check:28'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
>>>>>>

------------------------------------------

error: verification with 'FileCheck' failed
status: exit status: 1
command: "/usr/lib/llvm-20/bin/FileCheck" "--input-file" "/checkout/obj/build/aarch64-unknown-linux-gnu/test/codegen-llvm/intrinsics/likely_assert/likely_assert.ll" "/checkout/tests/codegen-llvm/intrinsics/likely_assert.rs" "--check-prefix=CHECK" "--allow-unused-prefixes" "--dump-input-context" "100"
stdout: none
--- stderr -------------------------------
/checkout/tests/codegen-llvm/intrinsics/likely_assert.rs:16:11: error: CHECK: expected string not found in input
// CHECK: bb2:
          ^
/checkout/obj/build/aarch64-unknown-linux-gnu/test/codegen-llvm/intrinsics/likely_assert/likely_assert.ll:20:19: note: scanning from here
; call core::panicking::panic
                  ^
/checkout/obj/build/aarch64-unknown-linux-gnu/test/codegen-llvm/intrinsics/likely_assert/likely_assert.ll:21:120: note: possible intended match here
 tail call void @_RNvNtCsgkBKveWeex5_4core9panicking5panic(ptr noalias noundef nonnull readonly align 1 @alloc_5c70694eba2726522defba5df26f0363, i64 noundef 19, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_7f7ce073315d007118a097a7acde57ea) #2
                                                                                                                       ^
/checkout/tests/codegen-llvm/intrinsics/likely_assert.rs:28:11: error: CHECK: expected string not found in input
// CHECK: bb2:
          ^
/checkout/obj/build/aarch64-unknown-linux-gnu/test/codegen-llvm/intrinsics/likely_assert/likely_assert.ll:34:19: note: scanning from here
; call core::panicking::panic_fmt
                  ^
/checkout/obj/build/aarch64-unknown-linux-gnu/test/codegen-llvm/intrinsics/likely_assert/likely_assert.ll:55:48: note: possible intended match here
!1 = !{!"rustc version 1.94.0-nightly (f73e8a94b 2026-01-09)"}
                                               ^

Input file: /checkout/obj/build/aarch64-unknown-linux-gnu/test/codegen-llvm/intrinsics/likely_assert/likely_assert.ll
Check file: /checkout/tests/codegen-llvm/intrinsics/likely_assert.rs

-dump-input=help explains the following input dump.

Input was:
<<<<<<
            1: ; ModuleID = 'likely_assert.5b87c39a9b61c91d-cgu.0' 
            2: source_filename = "likely_assert.5b87c39a9b61c91d-cgu.0" 
            3: target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i8:8:32-i16:16:32-i64:64-i128:128-n32:64-S128-Fn32" 
            4: target triple = "aarch64-unknown-linux-gnu" 
            5:  
            6: @alloc_5c70694eba2726522defba5df26f0363 = private unnamed_addr constant [19 x i8] c"assertion failed: x", align 1 
            7: @alloc_dd7b0aae4a9848017b292d2e57dc5216 = private unnamed_addr constant [57 x i8] c"/checkout/tests/codegen-llvm/intrinsics/likely_assert.rs\00", align 1 
            8: @alloc_7f7ce073315d007118a097a7acde57ea = private unnamed_addr constant <{ ptr, [16 x i8] }> <{ ptr @alloc_dd7b0aae4a9848017b292d2e57dc5216, [16 x i8] c"8\00\00\00\00\00\00\00\09\00\00\00\05\00\00\00" }>, align 8 
            9: @alloc_50f1c8e1e97864144871ff8f370a3e57 = private unnamed_addr constant <{ ptr, [16 x i8] }> <{ ptr @alloc_dd7b0aae4a9848017b292d2e57dc5216, [16 x i8] c"8\00\00\00\00\00\00\00\15\00\00\00\05\00\00\00" }>, align 8 
           10:  
           11: ; Function Attrs: uwtable 
           12: define void @test_assert(i1 noundef zeroext %x) unnamed_addr #0 { 
           13: start: 
           14:  br i1 %x, label %bb2, label %bb1, !prof !2 
           15:  
           16: bb2: ; preds = %start 
           17:  ret void 
           18:  
           19: bb1: ; preds = %start 
           20: ; call core::panicking::panic 
check:16'0                       X~~~~~~~~~~~ error: no match found
           21:  tail call void @_RNvNtCsgkBKveWeex5_4core9panicking5panic(ptr noalias noundef nonnull readonly align 1 @alloc_5c70694eba2726522defba5df26f0363, i64 noundef 19, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_7f7ce073315d007118a097a7acde57ea) #2 
check:16'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
check:16'1                                                                                                                            ?                                                                                                                                                       possible intended match
           22:  unreachable 
check:16'0     ~~~~~~~~~~~~~
           23: } 
check:16'0     ~~
           24:  
check:16'0     ~
           25: ; Function Attrs: uwtable 
check:16'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~
           26: define void @test_const_assert(i1 noundef zeroext %x) unnamed_addr #0 { 
check:16'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
           27: start: 
           28:  br i1 %x, label %bb2, label %bb1, !prof !2 
           29:  
           30: bb2: ; preds = %start 
           31:  ret void 
           32:  
           33: bb1: ; preds = %start 
           34: ; call core::panicking::panic_fmt 
check:28'0                       X~~~~~~~~~~~~~~~ error: no match found
           35:  tail call void @_RNvNtCsgkBKveWeex5_4core9panicking9panic_fmt(ptr noundef nonnull inttoptr (i64 1 to ptr), ptr noundef nonnull inttoptr (i64 1 to ptr), ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_50f1c8e1e97864144871ff8f370a3e57) #2 
check:28'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
           36:  unreachable 
check:28'0     ~~~~~~~~~~~~~
           37: } 
check:28'0     ~~
           38:  
check:28'0     ~
           39: ; core::panicking::panic 
check:28'0     ~~~~~~~~~~~~~~~~~~~~~~~~~
           40: ; Function Attrs: cold noinline noreturn uwtable 
check:28'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
           41: declare void @_RNvNtCsgkBKveWeex5_4core9panicking5panic(ptr noalias noundef nonnull readonly align 1, i64 noundef, ptr noalias noundef readonly align 8 dereferenceable(24)) unnamed_addr #1 
check:28'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
           42:  
check:28'0     ~
           43: ; core::panicking::panic_fmt 
check:28'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
           44: ; Function Attrs: cold noinline noreturn uwtable 
check:28'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
           45: declare void @_RNvNtCsgkBKveWeex5_4core9panicking9panic_fmt(ptr noundef nonnull, ptr noundef nonnull, ptr noalias noundef readonly align 8 dereferenceable(24)) unnamed_addr #1 
check:28'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
           46:  
check:28'0     ~
           47: attributes #0 = { uwtable "frame-pointer"="non-leaf" "probe-stack"="inline-asm" "target-cpu"="generic" "target-features"="+v8a,+outline-atomics" } 
check:28'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
           48: attributes #1 = { cold noinline noreturn uwtable "frame-pointer"="non-leaf" "probe-stack"="inline-asm" "target-cpu"="generic" "target-features"="+v8a,+outline-atomics" } 
check:28'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
           49: attributes #2 = { noinline noreturn } 
check:28'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
           50:  
check:28'0     ~
           51: !llvm.module.flags = !{!0} 
check:28'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~
           52: !llvm.ident = !{!1} 
check:28'0     ~~~~~~~~~~~~~~~~~~~~
           53:  
check:28'0     ~
           54: !0 = !{i32 8, !"PIC Level", i32 2} 
check:28'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
           55: !1 = !{!"rustc version 1.94.0-nightly (f73e8a94b 2026-01-09)"} 
check:28'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
check:28'1                                                    ?                possible intended match
           56: !2 = !{!"branch_weights", i32 2000, i32 1} 
check:28'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
>>>>>>
------------------------------------------

---- [codegen] tests/codegen-llvm/intrinsics/likely_assert.rs stdout end ----
---- [codegen] tests/codegen-llvm/intrinsics/unlikely.rs stdout ----
------FileCheck stdout------------------------------

------FileCheck stderr------------------------------
/checkout/tests/codegen-llvm/intrinsics/unlikely.rs:32:11: error: CHECK: expected string not found in input
// CHECK: bb2:
          ^
/checkout/obj/build/aarch64-unknown-linux-gnu/test/codegen-llvm/intrinsics/unlikely/unlikely.ll:35:24: note: scanning from here
 tail call void @path_b() #2
                       ^
/checkout/obj/build/aarch64-unknown-linux-gnu/test/codegen-llvm/intrinsics/unlikely/unlikely.ll:38:1: note: possible intended match here
bb1: ; preds = %bb2, %bb4
^

Input file: /checkout/obj/build/aarch64-unknown-linux-gnu/test/codegen-llvm/intrinsics/unlikely/unlikely.ll
Check file: /checkout/tests/codegen-llvm/intrinsics/unlikely.rs

-dump-input=help explains the following input dump.

Input was:
<<<<<<
            1: ; ModuleID = 'unlikely.a931bc13484273ec-cgu.0' 
            2: source_filename = "unlikely.a931bc13484273ec-cgu.0" 
            3: target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i8:8:32-i16:16:32-i64:64-i128:128-n32:64-S128-Fn32" 
            4: target triple = "aarch64-unknown-linux-gnu" 
            5:  
            6: @alloc_9a6b3164498723817f82a587f1e4683c = private unnamed_addr constant [7 x i8] c"path a\0A", align 1 
            7: @alloc_e5259ec2649ced3f287f8fd7e7344232 = private unnamed_addr constant [7 x i8] c"path b\0A", align 1 
            8:  
            9: ; Function Attrs: noinline uwtable 
           10: define void @path_a() unnamed_addr #0 { 
           11: start: 
           12: ; call std::io::stdio::_print 
           13:  tail call void @_RNvNtNtCs997VyyDlygN_3std2io5stdio6__print(ptr noundef nonnull inttoptr (i64 15 to ptr), ptr noundef nonnull @alloc_9a6b3164498723817f82a587f1e4683c) 
           14:  ret void 
           15: } 
           16:  
           17: ; Function Attrs: noinline uwtable 
           18: define void @path_b() unnamed_addr #0 { 
           19: start: 
           20: ; call std::io::stdio::_print 
           21:  tail call void @_RNvNtNtCs997VyyDlygN_3std2io5stdio6__print(ptr noundef nonnull inttoptr (i64 15 to ptr), ptr noundef nonnull @alloc_e5259ec2649ced3f287f8fd7e7344232) 
           22:  ret void 
           23: } 
           24:  
           25: ; Function Attrs: uwtable 
           26: define void @test_unlikely(i1 noundef zeroext %x) unnamed_addr #1 { 
           27: start: 
           28:  br i1 %x, label %bb2, label %bb4, !prof !2 
           29:  
           30: bb2: ; preds = %start 
           31:  tail call void @path_a() #2 
           32:  br label %bb1 
           33:  
           34: bb4: ; preds = %start 
           35:  tail call void @path_b() #2 
check:32'0                            X~~~~~ error: no match found
           36:  br label %bb1 
check:32'0     ~~~~~~~~~~~~~~~
           37:  
check:32'0     ~
           38: bb1: ; preds = %bb2, %bb4 
check:32'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~
check:32'1     ?                          possible intended match
           39:  ret void 
check:32'0     ~~~~~~~~~~
           40: } 
check:32'0     ~~
           41:  
check:32'0     ~
           42: ; std::io::stdio::_print 
check:32'0     ~~~~~~~~~~~~~~~~~~~~~~~~~
           43: ; Function Attrs: uwtable 
check:32'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~
           44: declare void @_RNvNtNtCs997VyyDlygN_3std2io5stdio6__print(ptr noundef nonnull, ptr noundef nonnull) unnamed_addr #1 
check:32'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
           45:  
check:32'0     ~
           46: attributes #0 = { noinline uwtable "frame-pointer"="non-leaf" "probe-stack"="inline-asm" "target-cpu"="generic" "target-features"="+v8a,+outline-atomics" } 
check:32'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
           47: attributes #1 = { uwtable "frame-pointer"="non-leaf" "probe-stack"="inline-asm" "target-cpu"="generic" "target-features"="+v8a,+outline-atomics" } 
check:32'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
           48: attributes #2 = { noinline } 
check:32'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
           49:  
check:32'0     ~
           50: !llvm.module.flags = !{!0} 
check:32'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~
           51: !llvm.ident = !{!1} 
check:32'0     ~~~~~~~~~~~~~~~~~~~~
           52:  
check:32'0     ~
           53: !0 = !{i32 8, !"PIC Level", i32 2} 
check:32'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
           54: !1 = !{!"rustc version 1.94.0-nightly (f73e8a94b 2026-01-09)"} 
check:32'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
           55: !2 = !{!"branch_weights", i32 1, i32 2000} 
check:32'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
>>>>>>

------------------------------------------

error: verification with 'FileCheck' failed
status: exit status: 1
command: "/usr/lib/llvm-20/bin/FileCheck" "--input-file" "/checkout/obj/build/aarch64-unknown-linux-gnu/test/codegen-llvm/intrinsics/unlikely/unlikely.ll" "/checkout/tests/codegen-llvm/intrinsics/unlikely.rs" "--check-prefix=CHECK" "--allow-unused-prefixes" "--dump-input-context" "100"
stdout: none
--- stderr -------------------------------
/checkout/tests/codegen-llvm/intrinsics/unlikely.rs:32:11: error: CHECK: expected string not found in input
// CHECK: bb2:
          ^
/checkout/obj/build/aarch64-unknown-linux-gnu/test/codegen-llvm/intrinsics/unlikely/unlikely.ll:35:24: note: scanning from here
 tail call void @path_b() #2
                       ^
/checkout/obj/build/aarch64-unknown-linux-gnu/test/codegen-llvm/intrinsics/unlikely/unlikely.ll:38:1: note: possible intended match here
bb1: ; preds = %bb2, %bb4
^

Input file: /checkout/obj/build/aarch64-unknown-linux-gnu/test/codegen-llvm/intrinsics/unlikely/unlikely.ll
Check file: /checkout/tests/codegen-llvm/intrinsics/unlikely.rs

-dump-input=help explains the following input dump.

Input was:
<<<<<<
            1: ; ModuleID = 'unlikely.a931bc13484273ec-cgu.0' 
            2: source_filename = "unlikely.a931bc13484273ec-cgu.0" 
            3: target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i8:8:32-i16:16:32-i64:64-i128:128-n32:64-S128-Fn32" 
            4: target triple = "aarch64-unknown-linux-gnu" 
            5:  
            6: @alloc_9a6b3164498723817f82a587f1e4683c = private unnamed_addr constant [7 x i8] c"path a\0A", align 1 
            7: @alloc_e5259ec2649ced3f287f8fd7e7344232 = private unnamed_addr constant [7 x i8] c"path b\0A", align 1 
            8:  
            9: ; Function Attrs: noinline uwtable 
           10: define void @path_a() unnamed_addr #0 { 
           11: start: 
           12: ; call std::io::stdio::_print 
           13:  tail call void @_RNvNtNtCs997VyyDlygN_3std2io5stdio6__print(ptr noundef nonnull inttoptr (i64 15 to ptr), ptr noundef nonnull @alloc_9a6b3164498723817f82a587f1e4683c) 
           14:  ret void 
           15: } 
           16:  
           17: ; Function Attrs: noinline uwtable 
           18: define void @path_b() unnamed_addr #0 { 
           19: start: 
           20: ; call std::io::stdio::_print 
           21:  tail call void @_RNvNtNtCs997VyyDlygN_3std2io5stdio6__print(ptr noundef nonnull inttoptr (i64 15 to ptr), ptr noundef nonnull @alloc_e5259ec2649ced3f287f8fd7e7344232) 
           22:  ret void 
           23: } 
           24:  
           25: ; Function Attrs: uwtable 
           26: define void @test_unlikely(i1 noundef zeroext %x) unnamed_addr #1 { 
           27: start: 
           28:  br i1 %x, label %bb2, label %bb4, !prof !2 
           29:  
           30: bb2: ; preds = %start 
           31:  tail call void @path_a() #2 
           32:  br label %bb1 
           33:  
           34: bb4: ; preds = %start 
           35:  tail call void @path_b() #2 
check:32'0                            X~~~~~ error: no match found
           36:  br label %bb1 
check:32'0     ~~~~~~~~~~~~~~~
           37:  
check:32'0     ~
           38: bb1: ; preds = %bb2, %bb4 
check:32'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~
check:32'1     ?                          possible intended match
           39:  ret void 
check:32'0     ~~~~~~~~~~
           40: } 
check:32'0     ~~
           41:  
check:32'0     ~
           42: ; std::io::stdio::_print 
check:32'0     ~~~~~~~~~~~~~~~~~~~~~~~~~
           43: ; Function Attrs: uwtable 
check:32'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~
           44: declare void @_RNvNtNtCs997VyyDlygN_3std2io5stdio6__print(ptr noundef nonnull, ptr noundef nonnull) unnamed_addr #1 
check:32'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
           45:  
check:32'0     ~
           46: attributes #0 = { noinline uwtable "frame-pointer"="non-leaf" "probe-stack"="inline-asm" "target-cpu"="generic" "target-features"="+v8a,+outline-atomics" } 
check:32'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
           47: attributes #1 = { uwtable "frame-pointer"="non-leaf" "probe-stack"="inline-asm" "target-cpu"="generic" "target-features"="+v8a,+outline-atomics" } 
check:32'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
           48: attributes #2 = { noinline } 
check:32'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
           49:  
check:32'0     ~
           50: !llvm.module.flags = !{!0} 
check:32'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~
           51: !llvm.ident = !{!1} 
check:32'0     ~~~~~~~~~~~~~~~~~~~~
           52:  
check:32'0     ~
           53: !0 = !{i32 8, !"PIC Level", i32 2} 
check:32'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
           54: !1 = !{!"rustc version 1.94.0-nightly (f73e8a94b 2026-01-09)"} 
check:32'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
           55: !2 = !{!"branch_weights", i32 1, i32 2000} 
check:32'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
>>>>>>
------------------------------------------

---- [codegen] tests/codegen-llvm/intrinsics/unlikely.rs stdout end ----
---- [codegen] tests/codegen-llvm/issues/issue-108395-branchy-bool-match.rs stdout ----
------FileCheck stdout------------------------------

------FileCheck stderr------------------------------
/checkout/tests/codegen-llvm/issues/issue-108395-branchy-bool-match.rs:9:16: error: CHECK-NOT: excluded string found in input
 // CHECK-NOT: br {{.*}}
               ^
/checkout/obj/build/aarch64-unknown-linux-gnu/test/codegen-llvm/issues/issue-108395-branchy-bool-match/issue-108395-branchy-bool-match.ll:11:2: note: found here
 br i1 %_4, label %bb2, label %bb3
 ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Input file: /checkout/obj/build/aarch64-unknown-linux-gnu/test/codegen-llvm/issues/issue-108395-branchy-bool-match/issue-108395-branchy-bool-match.ll
Check file: /checkout/tests/codegen-llvm/issues/issue-108395-branchy-bool-match.rs

-dump-input=help explains the following input dump.

Input was:
<<<<<<
       1: ; ModuleID = 'issue_108395_branchy_bool_match.e5e1b380c3e63e44-cgu.0' 
       2: source_filename = "issue_108395_branchy_bool_match.e5e1b380c3e63e44-cgu.0" 
       3: target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i8:8:32-i16:16:32-i64:64-i128:128-n32:64-S128-Fn32" 
       4: target triple = "aarch64-unknown-linux-gnu" 
       5:  
       6: ; Function Attrs: mustprogress nofree norecurse nosync nounwind willreturn memory(none) uwtable 
       7: define noundef range(i16 -32768, 1) i16 @wildcard(i16 noundef %a, i16 noundef %b, i16 noundef %v) unnamed_addr #0 { 
       8: start: 
       9:  %_4 = icmp eq i16 %a, %v 
      10:  %_5 = icmp eq i16 %b, %v 
      11:  br i1 %_4, label %bb2, label %bb3 
not:9      !~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  error: no match expected
      12:  
      13: bb2: ; preds = %start 
      14:  br i1 %_5, label %bb1, label %bb6 
      15:  
      16: bb3: ; preds = %start 
      17:  br i1 %_5, label %bb6, label %bb1 
      18:  
      19: bb1: ; preds = %bb2, %bb3 
      20:  br label %bb6 
      21:  
      22: bb6: ; preds = %bb2, %bb3, %bb1 
      23:  %_0.sroa.0.0 = phi i16 [ -32768, %bb1 ], [ -1, %bb3 ], [ 0, %bb2 ] 
      24:  ret i16 %_0.sroa.0.0 
      25: } 
      26:  
      27: ; Function Attrs: mustprogress nofree norecurse nosync nounwind willreturn memory(none) uwtable 
      28: define noundef range(i16 -32768, 1) i16 @exhaustive(i16 noundef %a, i16 noundef %b, i16 noundef %v) unnamed_addr #0 { 
      29: start: 
      30:  %_4 = icmp eq i16 %a, %v 
      31:  %_5 = icmp eq i16 %b, %v 
      32:  %. = select i1 %_5, i16 -32768, i16 0 
      33:  %.1 = select i1 %_5, i16 -1, i16 -32768 
      34:  %_0.sroa.0.0 = select i1 %_4, i16 %., i16 %.1 
      35:  ret i16 %_0.sroa.0.0 
      36: } 
      37:  

@rust-bors
Copy link
Contributor

rust-bors bot commented Jan 10, 2026

☀️ Try build successful (CI)
Build commit: 76d7309 (76d730968dc6628aa893ddfdb6f886cf3ed7c3c1, parent: a3f2d5abe45a9acfaccbf09266b33e1fd7ab193e)

@rust-timer

This comment has been minimized.

@rust-timer
Copy link
Collaborator

Finished benchmarking commit (76d7309): comparison URL.

Overall result: ❌✅ regressions and improvements - please read the text below

Benchmarking this pull request means it may be perf-sensitive – we'll automatically label it not fit for rolling up. You can override this, but we strongly advise not to, due to possible changes in compiler perf.

Next Steps: If you can justify the regressions found in this try perf run, please do so in sufficient writing along with @rustbot label: +perf-regression-triaged. If not, please fix the regressions and do another perf run. If its results are neutral or positive, the label will be automatically removed.

@bors rollup=never
@rustbot label: -S-waiting-on-perf +perf-regression

Instruction count

Our most reliable metric. Used to determine the overall result above. However, even this metric can be noisy.

mean range count
Regressions ❌
(primary)
0.2% [0.1%, 0.3%] 20
Regressions ❌
(secondary)
0.5% [0.1%, 1.8%] 46
Improvements ✅
(primary)
-0.7% [-2.8%, -0.2%] 17
Improvements ✅
(secondary)
-0.2% [-0.4%, -0.1%] 24
All ❌✅ (primary) -0.2% [-2.8%, 0.3%] 37

Max RSS (memory usage)

Results (primary 2.1%, secondary 3.4%)

A less reliable metric. May be of interest, but not used to determine the overall result above.

mean range count
Regressions ❌
(primary)
2.1% [2.1%, 2.1%] 1
Regressions ❌
(secondary)
3.4% [3.4%, 3.4%] 1
Improvements ✅
(primary)
- - 0
Improvements ✅
(secondary)
- - 0
All ❌✅ (primary) 2.1% [2.1%, 2.1%] 1

Cycles

Results (primary -1.9%, secondary -1.0%)

A less reliable metric. May be of interest, but not used to determine the overall result above.

mean range count
Regressions ❌
(primary)
- - 0
Regressions ❌
(secondary)
3.0% [2.9%, 3.1%] 2
Improvements ✅
(primary)
-1.9% [-1.9%, -1.9%] 1
Improvements ✅
(secondary)
-3.7% [-4.7%, -2.5%] 3
All ❌✅ (primary) -1.9% [-1.9%, -1.9%] 1

Binary size

Results (primary 0.1%, secondary 0.5%)

A less reliable metric. May be of interest, but not used to determine the overall result above.

mean range count
Regressions ❌
(primary)
0.4% [0.2%, 0.5%] 5
Regressions ❌
(secondary)
0.5% [0.2%, 0.5%] 36
Improvements ✅
(primary)
-0.2% [-0.2%, -0.1%] 6
Improvements ✅
(secondary)
-0.1% [-0.1%, -0.0%] 4
All ❌✅ (primary) 0.1% [-0.2%, 0.5%] 11

Bootstrap: 473.694s -> 471.177s (-0.53%)
Artifact size: 391.30 MiB -> 391.34 MiB (0.01%)

@rustbot rustbot removed the S-waiting-on-perf Status: Waiting on a perf run to be completed. label Jan 10, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

A-LLVM Area: Code generation parts specific to LLVM. Both correctness bugs and optimization-related issues. perf-regression Performance regression. S-waiting-on-author Status: This is awaiting some action (such as code changes or more information) from the author. T-compiler Relevant to the compiler team, which will review and decide on the PR/issue.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

6 participants