Skip to content

Rollup of 20 pull requests#158798

Closed
JonathanBrouwer wants to merge 48 commits into
rust-lang:mainfrom
JonathanBrouwer:rollup-DS89hW9
Closed

Rollup of 20 pull requests#158798
JonathanBrouwer wants to merge 48 commits into
rust-lang:mainfrom
JonathanBrouwer:rollup-DS89hW9

Conversation

@JonathanBrouwer

Copy link
Copy Markdown
Contributor

Successful merges:

r? @ghost

Create a similar rollup

RalfJung and others added 30 commits May 3, 2026 10:05
The compiler is removing the `x86-softfloat` [1], thus temporarily add
a patch.

As usual, the patch will eventually make it to the Linux kernel so that
both sides are good.

Cc: Ralf Jung <post@ralfj.de>
Cc: Alice Ryhl <aliceryhl@google.com>
Link: rust-lang#157151 [1]
Signed-off-by: Miguel Ojeda <ojeda@kernel.org>
The auto-trait branch of the orphan check inspected the unexpanded self
type, so an impl whose self type was a free (lazy) type alias was
rejected even when the alias resolved to an otherwise valid nominal
type, e.g. `unsafe impl Sync for Alias {}` with `type Alias = Local;`.

Expand free alias types before classifying the self type, mirroring the
locality check above. Expansion still reveals genuinely problematic self
types (trait objects, opaque types, type parameters), so those keep
being rejected.
…s a standalone command

- error if RUSTC isn't set, which means it'll fall back to the
  user-installed default (wrong)
- be more specific in `--bless` suggestions that they should use `x test
  tidy`, not tidy directly.
for non-interactive cases, such as CI, this makes it easier to tell what
went wrong without having to interactively debug the problem.
Before this commit, `BlameConstraint` is a bit hard to understand at
first, because of its `ObligationCause` field. In practice,
`BlameConstraint` is just a slimmed down version of an
`OutlivesConstraint` from `Vec<OutlivesConstraint>`.

The artificial `ObligationCause` is only needed in one place. Rather
than having that exception polute the lower level analysis, bubble it up
as much as we can. That way, it becomes clearer what `BlameConstraint`
actually is.

For reference, `ObligationCause` was introdued by 93ab12e, but the
codebase looked quite different back then.
Porting the notes from the stable branch.
…back

Co-authored-by: Vin <betadelphini.py@gmail.com>
All call sites use a static `DropKind` value, and we already have a
dedicated named method for lints. Switch to only use dedicated methods for
consistency.
This enforces the invariant that `size_hint` should always return `(lower_bound(), upper_bound())`.
Leaving the trait in a better state than it previously was.

Co-Authored-By: Clar Fon <15850505+clarfonthey@users.noreply.github.com>
and just always show diffs by default.
not sure why you'd want to hide them.
…-Simulacrum

Add release notes for 1.96.1

Porting the notes from the stable branch.
…=Mark-Simulacrum

Implement `IntoIterator` for `[&[mut]] Box<[T; N], A>`

Revival of rust-lang#124108
Tweaks to MIR building scope API

Some simplifications that come from staring too long at that code
@rust-bors rust-bors Bot added the rollup A PR which is a rollup label Jul 5, 2026
@rustbot rustbot added A-CI Area: Our Github Actions CI A-LLVM Area: Code generation parts specific to LLVM. Both correctness bugs and optimization-related issues. A-testsuite Area: The testsuite used to check the correctness of rustc A-tidy Area: The tidy tool S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. T-bootstrap Relevant to the bootstrap subteam: Rust's build system (x.py and src/bootstrap) T-compiler Relevant to the compiler team, which will review and decide on the PR/issue. T-infra Relevant to the infrastructure team, which will review and decide on the PR/issue. T-libs Relevant to the library team, which will review and decide on the PR/issue. T-release Relevant to the release subteam, which will review and decide on the PR/issue. T-rustdoc Relevant to the rustdoc team, which will review and decide on the PR/issue. T-rustdoc-frontend Relevant to the rustdoc-frontend team, which will review and decide on the web UI/UX output. labels Jul 5, 2026
@JonathanBrouwer

Copy link
Copy Markdown
Contributor Author

@bors r+ rollup=never p=5

@rust-bors

rust-bors Bot commented Jul 5, 2026

Copy link
Copy Markdown
Contributor

📌 Commit 136d18f has been approved by JonathanBrouwer

It is now in the queue for this repository.

@rust-bors rust-bors Bot added S-waiting-on-bors Status: Waiting on bors to run and complete tests. Bors will change the label on completion. and removed S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. labels Jul 5, 2026
@rust-bors

This comment has been minimized.

rust-bors Bot pushed a commit that referenced this pull request Jul 5, 2026
…uwer

Rollup of 20 pull requests

Successful merges:

 - #158692 (Add release notes for 1.96.1)
 - #134021 (Implement `IntoIterator` for `[&[mut]] Box<[T; N], A>`)
 - #155932 (MIR Call terminator: evaluate destination place before arguments)
 - #155989 (Update `transmute_copy` to ub_checks and `?Sized`)
 - #156777 (Add -Zautodiff_post_passes flag to limit which llvm passes to run after enzyme to make autodiff tests more robust)
 - #157151 (JSON target specs: remove 'x86-softfloat' compatibility alias)
 - #157835 (expand free alias types in the auto-trait orphan check)
 - #157857 (Stabilize `#[my_macro] mod foo;` (part of `proc_macro_hygiene`))
 - #158377 (add `-Zforce-intrinsic-fallback` flag)
 - #158434 (delegation: refactor AST -> HIR lowering)
 - #158552 (make some tidy errors around python easier to understand)
 - #158624 (borrowck: Introduce BlameConstraint::to_obligation_cause_from_path())
 - #158704 (Optimize `ArrayChunks::try_rfold` with `DoubleEndedIterator::next_chunk_back`)
 - #158711 (library: Comment on libtest's dicey internal soundness)
 - #158751 (rustdoc: Fix crash when trying to inline foreign item which cannot have attributes)
 - #158539 (Move `SizeHint` and `IoHandle` to `core::io`)
 - #158659 (refactor the normalization in `coerce_shared_info`)
 - #158689 (resolver: don't use `Finalize` when resolving visibilities during AST expansion)
 - #158698 (Update TypeVisitable implementation)
 - #158706 (Tweaks to MIR building scope API)
@rust-log-analyzer

Copy link
Copy Markdown
Collaborator

The job dist-i586-gnu-i586-i686-musl 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/force-intrinsic-fallback.rs#FALLBACK stdout ----
------FileCheck stdout------------------------------

------FileCheck stderr------------------------------
/checkout/tests/codegen-llvm/force-intrinsic-fallback.rs:20:15: error: FALLBACK: expected string not found in input
 // FALLBACK: call noundef float @{{.*}}minimumf32
              ^
/checkout/obj/build/x86_64-unknown-linux-gnu/test/codegen-llvm/force-intrinsic-fallback.FALLBACK/force-intrinsic-fallback.ll:159:28: note: scanning from here
define i32 @call_minimumf32(float noundef %x, float noundef %y) unnamed_addr #2 {
                           ^
/checkout/obj/build/x86_64-unknown-linux-gnu/test/codegen-llvm/force-intrinsic-fallback.FALLBACK/force-intrinsic-fallback.ll:163:3: note: possible intended match here
; call core::intrinsics::minimumf32
  ^

Input file: /checkout/obj/build/x86_64-unknown-linux-gnu/test/codegen-llvm/force-intrinsic-fallback.FALLBACK/force-intrinsic-fallback.ll
Check file: /checkout/tests/codegen-llvm/force-intrinsic-fallback.rs

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

Input was:
<<<<<<
            .
            .
            .
           59:  br i1 %_4, label %bb3, label %bb4 
           60:  
           61: bb1: ; preds = %start 
           62:  store float %x, ptr %_0, align 4 
           63:  br label %bb15 
           64:  
           65: bb4: ; preds = %bb2 
           66:  %_5 = fcmp oeq float %x, %y 
           67:  br i1 %_5, label %bb5, label %bb12 
           68:  
           69: bb3: ; preds = %bb2 
           70:  store float %y, ptr %_0, align 4 
           71:  br label %bb14 
           72:  
           73: bb12: ; preds = %bb4 
           74:  %0 = fadd float %x, %y 
           75:  store float %0, ptr %_0, align 4 
           76:  br label %bb13 
           77:  
           78: bb5: ; preds = %bb4 
           79:  %_8 = bitcast float %x to i32 
           80:  %_7 = and i32 %_8, -2147483648 
           81:  %1 = icmp eq i32 %_7, 0 
           82:  br i1 %1, label %bb9, label %bb6 
           83:  
           84: bb13: ; preds = %bb11, %bb12 
           85:  br label %bb14 
           86:  
           87: bb9: ; preds = %bb5 
           88:  br label %bb10 
           89:  
           90: bb6: ; preds = %bb5 
           91:  %_11 = bitcast float %y to i32 
           92:  %_10 = and i32 %_11, -2147483648 
           93:  %_9 = icmp ne i32 %_10, 0 
           94:  %_6 = xor i1 %_9, true 
           95:  br i1 %_6, label %bb7, label %bb8 
           96:  
           97: bb10: ; preds = %bb8, %bb9 
           98:  store float %y, ptr %_0, align 4 
           99:  br label %bb11 
          100:  
          101: bb8: ; preds = %bb6 
          102:  br label %bb10 
          103:  
          104: bb7: ; preds = %bb6 
          105:  store float %x, ptr %_0, align 4 
          106:  br label %bb11 
          107:  
          108: bb11: ; preds = %bb7, %bb10 
          109:  br label %bb13 
          110:  
          111: bb14: ; preds = %bb3, %bb13 
          112:  br label %bb15 
          113:  
          114: bb15: ; preds = %bb1, %bb14 
          115:  %2 = load i32, ptr %_0, align 4 
          116:  ret i32 %2 
          117: } 
          118:  
          119: ; <u32 as core::intrinsics::fallback::DisjointBitOr>::disjoint_bitor 
          120: ; Function Attrs: inlinehint uwtable 
          121: define internal noundef i32 @_RNvXsd_NtNtCsabvo9uahmPy_4core10intrinsics8fallbackmNtB5_13DisjointBitOr14disjoint_bitor(i32 noundef %self, i32 noundef %other) unnamed_addr #1 { 
          122: start: 
          123:  %_4 = and i32 %self, %other 
          124:  %_3 = icmp eq i32 %_4, 0 
          125:  call void @llvm.assume(i1 %_3) 
          126:  %_0 = or i32 %self, %other 
          127:  ret i32 %_0 
          128: } 
          129:  
          130: ; <u32 as core::intrinsics::fallback::FunnelShift>::unchecked_funnel_shl 
          131: ; Function Attrs: inlinehint uwtable 
          132: define internal noundef i32 @_RNvXsp_NtNtCsabvo9uahmPy_4core10intrinsics8fallbackmNtB5_11FunnelShift20unchecked_funnel_shl(i32 noundef %self, i32 noundef %rhs, i32 noundef %shift) unnamed_addr #1 { 
          133: start: 
          134:  %_0 = alloca [4 x i8], align 4 
          135:  %_4 = icmp ult i32 %shift, 32 
          136:  call void @llvm.assume(i1 %_4) 
          137:  %0 = icmp eq i32 %shift, 0 
          138:  br i1 %0, label %bb1, label %bb2 
          139:  
          140: bb1: ; preds = %start 
          141:  store i32 %self, ptr %_0, align 4 
          142:  br label %bb4 
          143:  
          144: bb2: ; preds = %start 
          145:  %_5 = shl i32 %self, %shift 
          146:  %_7 = sub i32 32, %shift 
          147:  %_6 = lshr i32 %rhs, %_7 
          148: ; call core::intrinsics::disjoint_bitor::<u32> 
          149:  %1 = call noundef i32 @_RINvNtCsabvo9uahmPy_4core10intrinsics14disjoint_bitormECsixyy7Ww9L6I_24force_intrinsic_fallback(i32 noundef %_5, i32 noundef %_6, ptr noalias nofree noundef readonly align 4 captures(address, read_provenance) dereferenceable(16) @alloc_67df731ed7e09ed88fea7833be2bee2a) #8 
          150:  store i32 %1, ptr %_0, align 4 
          151:  br label %bb4 
          152:  
          153: bb4: ; preds = %bb2, %bb1 
          154:  %2 = load i32, ptr %_0, align 4, !noundef !3 
          155:  ret i32 %2 
          156: } 
          157:  
          158: ; Function Attrs: uwtable 
          159: define i32 @call_minimumf32(float noundef %x, float noundef %y) unnamed_addr #2 { 
check:20'0                                X~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ error: no match found
          160: start: 
check:20'0     ~~~~~~~
          161:  %0 = alloca [4 x i8], align 4 
check:20'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
          162:  %_0 = alloca [4 x i8], align 4 
check:20'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
          163: ; call core::intrinsics::minimumf32 
check:20'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
check:20'1       ?                                  possible intended match
          164:  %1 = call i32 @_RNvNtCsabvo9uahmPy_4core10intrinsics10minimumf32(float noundef %x, float noundef %y) #8 
check:20'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
          165:  call void @llvm.lifetime.start.p0(ptr %0) 
check:20'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
          166:  store i32 %1, ptr %0, align 4 
check:20'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
          167:  call void @llvm.memcpy.p0.p0.i32(ptr align 4 %_0, ptr align 4 %0, i32 4, i1 false) 
check:20'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
          168:  call void @llvm.lifetime.end.p0(ptr %0) 
check:20'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
          169:  %2 = load i32, ptr %_0, align 4 
check:20'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
          170:  ret i32 %2 
check:20'0     ~~~~~~~~~~~~
          171: } 
check:20'0     ~~
          172:  
check:20'0     ~
          173: ; Function Attrs: uwtable 
check:20'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~
          174: define noundef i32 @call_funnel_shl(i32 noundef %a, i32 noundef %b, i32 noundef %shift) unnamed_addr #2 { 
check:20'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
          175: start: 
          176: ; call core::intrinsics::unchecked_funnel_shl::<u32> 
          177:  %_0 = call noundef i32 @_RINvNtCsabvo9uahmPy_4core10intrinsics20unchecked_funnel_shlmECsixyy7Ww9L6I_24force_intrinsic_fallback(i32 noundef %a, i32 noundef %b, i32 noundef %shift, ptr noalias nofree noundef readonly align 4 captures(address, read_provenance) dereferenceable(16) @alloc_012bc7b6dac85d5f885a1c87f4f0298c) #8 
          178:  ret i32 %_0 
          179: } 
          180:  
          181: ; Function Attrs: nounwind uwtable 
          182: declare noundef range(i32 0, 10) i32 @rust_eh_personality(i32 noundef, i32 noundef, i64 noundef, ptr noundef, ptr noundef) unnamed_addr #0 
          183:  
          184: ; core::panicking::panic_cannot_unwind 
          185: ; Function Attrs: cold minsize noinline noreturn nounwind optsize uwtable 
          186: declare void @_RNvNtCsabvo9uahmPy_4core9panicking19panic_cannot_unwind() unnamed_addr #3 
          187:  
          188: ; Function Attrs: nocallback nofree nosync nounwind willreturn memory(inaccessiblemem: write) 
          189: declare void @llvm.assume(i1 noundef) #4 
          190:  
          191: ; Function Attrs: nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) 
          192: declare void @llvm.lifetime.start.p0(ptr captures(none)) #5 
          193:  
          194: ; Function Attrs: nocallback nofree nounwind willreturn memory(argmem: readwrite) 
          195: declare void @llvm.memcpy.p0.p0.i32(ptr noalias writeonly captures(none), ptr noalias readonly captures(none), i32, i1 immarg) #6 
          196:  
          197: ; Function Attrs: nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) 
          198: declare void @llvm.lifetime.end.p0(ptr captures(none)) #5 
          199:  
          200: attributes #0 = { nounwind uwtable "probe-stack"="inline-asm" "target-cpu"="pentium" } 
          201: attributes #1 = { inlinehint uwtable "probe-stack"="inline-asm" "target-cpu"="pentium" } 
          202: attributes #2 = { uwtable "probe-stack"="inline-asm" "target-cpu"="pentium" } 
          203: attributes #3 = { cold minsize noinline noreturn nounwind optsize uwtable "probe-stack"="inline-asm" "target-cpu"="pentium" } 
          204: attributes #4 = { nocallback nofree nosync nounwind willreturn memory(inaccessiblemem: write) } 
          205: attributes #5 = { nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) } 
          206: attributes #6 = { nocallback nofree nounwind willreturn memory(argmem: readwrite) } 
          207: attributes #7 = { cold noreturn nounwind } 
          208: attributes #8 = { nounwind } 
          209:  
          210: !llvm.module.flags = !{!0, !1} 
          211: !llvm.ident = !{!2} 
          212:  
          213: !0 = !{i32 8, !"PIC Level", i32 2} 
          214: !1 = !{i32 7, !"uwtable", i32 2} 
          215: !2 = !{!"rustc version 1.98.0-nightly (b7c8670ac 2026-07-05)"} 
          216: !3 = !{} 
>>>>>>

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

error in revision `FALLBACK`: verification with 'FileCheck' failed
status: exit status: 1
command: "/checkout/obj/build/x86_64-unknown-linux-gnu/llvm/build/bin/FileCheck" "--input-file" "/checkout/obj/build/x86_64-unknown-linux-gnu/test/codegen-llvm/force-intrinsic-fallback.FALLBACK/force-intrinsic-fallback.ll" "/checkout/tests/codegen-llvm/force-intrinsic-fallback.rs" "--check-prefix=CHECK" "--check-prefix" "FALLBACK" "--allow-unused-prefixes" "--dump-input-context" "100"
stdout: none
--- stderr -------------------------------
/checkout/tests/codegen-llvm/force-intrinsic-fallback.rs:20:15: error: FALLBACK: expected string not found in input
 // FALLBACK: call noundef float @{{.*}}minimumf32
              ^
/checkout/obj/build/x86_64-unknown-linux-gnu/test/codegen-llvm/force-intrinsic-fallback.FALLBACK/force-intrinsic-fallback.ll:159:28: note: scanning from here
define i32 @call_minimumf32(float noundef %x, float noundef %y) unnamed_addr #2 {
                           ^
/checkout/obj/build/x86_64-unknown-linux-gnu/test/codegen-llvm/force-intrinsic-fallback.FALLBACK/force-intrinsic-fallback.ll:163:3: note: possible intended match here
; call core::intrinsics::minimumf32
  ^

Input file: /checkout/obj/build/x86_64-unknown-linux-gnu/test/codegen-llvm/force-intrinsic-fallback.FALLBACK/force-intrinsic-fallback.ll
Check file: /checkout/tests/codegen-llvm/force-intrinsic-fallback.rs

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

Input was:
<<<<<<
            .
            .
            .
           59:  br i1 %_4, label %bb3, label %bb4 
           60:  
           61: bb1: ; preds = %start 
           62:  store float %x, ptr %_0, align 4 
           63:  br label %bb15 
           64:  
           65: bb4: ; preds = %bb2 
           66:  %_5 = fcmp oeq float %x, %y 
           67:  br i1 %_5, label %bb5, label %bb12 
           68:  
           69: bb3: ; preds = %bb2 
           70:  store float %y, ptr %_0, align 4 
           71:  br label %bb14 
           72:  
           73: bb12: ; preds = %bb4 
           74:  %0 = fadd float %x, %y 
           75:  store float %0, ptr %_0, align 4 
           76:  br label %bb13 
           77:  
           78: bb5: ; preds = %bb4 
           79:  %_8 = bitcast float %x to i32 
           80:  %_7 = and i32 %_8, -2147483648 
           81:  %1 = icmp eq i32 %_7, 0 
           82:  br i1 %1, label %bb9, label %bb6 
           83:  
           84: bb13: ; preds = %bb11, %bb12 
           85:  br label %bb14 
           86:  
           87: bb9: ; preds = %bb5 
           88:  br label %bb10 
           89:  
           90: bb6: ; preds = %bb5 
           91:  %_11 = bitcast float %y to i32 
           92:  %_10 = and i32 %_11, -2147483648 
           93:  %_9 = icmp ne i32 %_10, 0 
           94:  %_6 = xor i1 %_9, true 
           95:  br i1 %_6, label %bb7, label %bb8 
           96:  
           97: bb10: ; preds = %bb8, %bb9 
           98:  store float %y, ptr %_0, align 4 
           99:  br label %bb11 
          100:  
          101: bb8: ; preds = %bb6 
          102:  br label %bb10 
          103:  
          104: bb7: ; preds = %bb6 
          105:  store float %x, ptr %_0, align 4 
          106:  br label %bb11 
          107:  
          108: bb11: ; preds = %bb7, %bb10 
          109:  br label %bb13 
          110:  
          111: bb14: ; preds = %bb3, %bb13 
          112:  br label %bb15 
          113:  
          114: bb15: ; preds = %bb1, %bb14 
          115:  %2 = load i32, ptr %_0, align 4 
          116:  ret i32 %2 
          117: } 
          118:  
          119: ; <u32 as core::intrinsics::fallback::DisjointBitOr>::disjoint_bitor 
          120: ; Function Attrs: inlinehint uwtable 
          121: define internal noundef i32 @_RNvXsd_NtNtCsabvo9uahmPy_4core10intrinsics8fallbackmNtB5_13DisjointBitOr14disjoint_bitor(i32 noundef %self, i32 noundef %other) unnamed_addr #1 { 
          122: start: 
          123:  %_4 = and i32 %self, %other 
          124:  %_3 = icmp eq i32 %_4, 0 
          125:  call void @llvm.assume(i1 %_3) 
          126:  %_0 = or i32 %self, %other 
          127:  ret i32 %_0 
          128: } 
          129:  
          130: ; <u32 as core::intrinsics::fallback::FunnelShift>::unchecked_funnel_shl 
          131: ; Function Attrs: inlinehint uwtable 
          132: define internal noundef i32 @_RNvXsp_NtNtCsabvo9uahmPy_4core10intrinsics8fallbackmNtB5_11FunnelShift20unchecked_funnel_shl(i32 noundef %self, i32 noundef %rhs, i32 noundef %shift) unnamed_addr #1 { 
          133: start: 
          134:  %_0 = alloca [4 x i8], align 4 
          135:  %_4 = icmp ult i32 %shift, 32 
          136:  call void @llvm.assume(i1 %_4) 
          137:  %0 = icmp eq i32 %shift, 0 
          138:  br i1 %0, label %bb1, label %bb2 
          139:  
          140: bb1: ; preds = %start 
          141:  store i32 %self, ptr %_0, align 4 
          142:  br label %bb4 
          143:  
          144: bb2: ; preds = %start 
          145:  %_5 = shl i32 %self, %shift 
          146:  %_7 = sub i32 32, %shift 
          147:  %_6 = lshr i32 %rhs, %_7 
          148: ; call core::intrinsics::disjoint_bitor::<u32> 
          149:  %1 = call noundef i32 @_RINvNtCsabvo9uahmPy_4core10intrinsics14disjoint_bitormECsixyy7Ww9L6I_24force_intrinsic_fallback(i32 noundef %_5, i32 noundef %_6, ptr noalias nofree noundef readonly align 4 captures(address, read_provenance) dereferenceable(16) @alloc_67df731ed7e09ed88fea7833be2bee2a) #8 
          150:  store i32 %1, ptr %_0, align 4 
          151:  br label %bb4 
          152:  
          153: bb4: ; preds = %bb2, %bb1 
          154:  %2 = load i32, ptr %_0, align 4, !noundef !3 
          155:  ret i32 %2 
          156: } 
          157:  
          158: ; Function Attrs: uwtable 
          159: define i32 @call_minimumf32(float noundef %x, float noundef %y) unnamed_addr #2 { 
check:20'0                                X~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ error: no match found
          160: start: 
check:20'0     ~~~~~~~
          161:  %0 = alloca [4 x i8], align 4 
check:20'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
          162:  %_0 = alloca [4 x i8], align 4 
check:20'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
          163: ; call core::intrinsics::minimumf32 
check:20'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
check:20'1       ?                                  possible intended match
          164:  %1 = call i32 @_RNvNtCsabvo9uahmPy_4core10intrinsics10minimumf32(float noundef %x, float noundef %y) #8 
check:20'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
          165:  call void @llvm.lifetime.start.p0(ptr %0) 
check:20'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
          166:  store i32 %1, ptr %0, align 4 
check:20'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
          167:  call void @llvm.memcpy.p0.p0.i32(ptr align 4 %_0, ptr align 4 %0, i32 4, i1 false) 
check:20'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
          168:  call void @llvm.lifetime.end.p0(ptr %0) 
check:20'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
          169:  %2 = load i32, ptr %_0, align 4 
check:20'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
          170:  ret i32 %2 
check:20'0     ~~~~~~~~~~~~
          171: } 
check:20'0     ~~
          172:  
check:20'0     ~
          173: ; Function Attrs: uwtable 
check:20'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~
          174: define noundef i32 @call_funnel_shl(i32 noundef %a, i32 noundef %b, i32 noundef %shift) unnamed_addr #2 { 
check:20'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
          175: start: 
          176: ; call core::intrinsics::unchecked_funnel_shl::<u32> 
          177:  %_0 = call noundef i32 @_RINvNtCsabvo9uahmPy_4core10intrinsics20unchecked_funnel_shlmECsixyy7Ww9L6I_24force_intrinsic_fallback(i32 noundef %a, i32 noundef %b, i32 noundef %shift, ptr noalias nofree noundef readonly align 4 captures(address, read_provenance) dereferenceable(16) @alloc_012bc7b6dac85d5f885a1c87f4f0298c) #8 
          178:  ret i32 %_0 
          179: } 
          180:  
          181: ; Function Attrs: nounwind uwtable 
          182: declare noundef range(i32 0, 10) i32 @rust_eh_personality(i32 noundef, i32 noundef, i64 noundef, ptr noundef, ptr noundef) unnamed_addr #0 
          183:  
          184: ; core::panicking::panic_cannot_unwind 
          185: ; Function Attrs: cold minsize noinline noreturn nounwind optsize uwtable 
          186: declare void @_RNvNtCsabvo9uahmPy_4core9panicking19panic_cannot_unwind() unnamed_addr #3 
          187:  
          188: ; Function Attrs: nocallback nofree nosync nounwind willreturn memory(inaccessiblemem: write) 
          189: declare void @llvm.assume(i1 noundef) #4 
          190:  
          191: ; Function Attrs: nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) 
          192: declare void @llvm.lifetime.start.p0(ptr captures(none)) #5 
          193:  
          194: ; Function Attrs: nocallback nofree nounwind willreturn memory(argmem: readwrite) 
          195: declare void @llvm.memcpy.p0.p0.i32(ptr noalias writeonly captures(none), ptr noalias readonly captures(none), i32, i1 immarg) #6 
          196:  
          197: ; Function Attrs: nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) 
          198: declare void @llvm.lifetime.end.p0(ptr captures(none)) #5 
          199:  
          200: attributes #0 = { nounwind uwtable "probe-stack"="inline-asm" "target-cpu"="pentium" } 
          201: attributes #1 = { inlinehint uwtable "probe-stack"="inline-asm" "target-cpu"="pentium" } 
          202: attributes #2 = { uwtable "probe-stack"="inline-asm" "target-cpu"="pentium" } 
          203: attributes #3 = { cold minsize noinline noreturn nounwind optsize uwtable "probe-stack"="inline-asm" "target-cpu"="pentium" } 
          204: attributes #4 = { nocallback nofree nosync nounwind willreturn memory(inaccessiblemem: write) } 
          205: attributes #5 = { nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) } 
          206: attributes #6 = { nocallback nofree nounwind willreturn memory(argmem: readwrite) } 
          207: attributes #7 = { cold noreturn nounwind } 
          208: attributes #8 = { nounwind } 
          209:  
          210: !llvm.module.flags = !{!0, !1} 
          211: !llvm.ident = !{!2} 
          212:  
          213: !0 = !{i32 8, !"PIC Level", i32 2} 
          214: !1 = !{i32 7, !"uwtable", i32 2} 
          215: !2 = !{!"rustc version 1.98.0-nightly (b7c8670ac 2026-07-05)"} 
          216: !3 = !{} 
>>>>>>
------------------------------------------

---- [codegen] tests/codegen-llvm/force-intrinsic-fallback.rs#FALLBACK stdout end ----

@rust-bors rust-bors Bot added S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. and removed S-waiting-on-bors Status: Waiting on bors to run and complete tests. Bors will change the label on completion. labels Jul 5, 2026
@rust-bors

rust-bors Bot commented Jul 5, 2026

Copy link
Copy Markdown
Contributor

💔 Test for b7c8670 failed: CI. Failed job:

@rust-bors rust-bors Bot added the S-waiting-on-author Status: This is awaiting some action (such as code changes or more information) from the author. label Jul 5, 2026
@rust-bors

rust-bors Bot commented Jul 5, 2026

Copy link
Copy Markdown
Contributor

PR #158377, which is a member of this rollup, was unapproved.

@rust-bors rust-bors Bot removed the S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. label Jul 5, 2026
@rustbot rustbot removed the S-waiting-on-author Status: This is awaiting some action (such as code changes or more information) from the author. label Jul 5, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

A-CI Area: Our Github Actions CI A-LLVM Area: Code generation parts specific to LLVM. Both correctness bugs and optimization-related issues. A-testsuite Area: The testsuite used to check the correctness of rustc A-tidy Area: The tidy tool rollup A PR which is a rollup T-bootstrap Relevant to the bootstrap subteam: Rust's build system (x.py and src/bootstrap) T-compiler Relevant to the compiler team, which will review and decide on the PR/issue. T-infra Relevant to the infrastructure team, which will review and decide on the PR/issue. T-libs Relevant to the library team, which will review and decide on the PR/issue. T-release Relevant to the release subteam, which will review and decide on the PR/issue. T-rustdoc Relevant to the rustdoc team, which will review and decide on the PR/issue. T-rustdoc-frontend Relevant to the rustdoc-frontend team, which will review and decide on the web UI/UX output.

Projects

None yet

Development

Successfully merging this pull request may close these issues.