Start using pattern types in libcore by oli-obk · Pull Request #136006 · rust-lang/rust (original) (raw)

#19 exporting to docker image format
#19 sending tarball 20.4s done
#19 DONE 26.5s
##[endgroup]
Setting extra environment values for docker:  --env ENABLE_GCC_CODEGEN=1 --env GCC_EXEC_PREFIX=/usr/lib/gcc/
[CI_JOB_NAME=x86_64-gnu-llvm-19]
[CI_JOB_NAME=x86_64-gnu-llvm-19]
debug: `DISABLE_CI_RUSTC_IF_INCOMPATIBLE` configured.
---
sccache: Listening on address 127.0.0.1:4226
##[group]Configure the build
configure: processing command line
configure: 
configure: build.configure-args := ['--build=x86_64-unknown-linux-gnu', '--llvm-root=/usr/lib/llvm-19', '--enable-llvm-link-shared', '--set', 'rust.randomize-layout=true', '--set', 'rust.thin-lto-import-instr-limit=10', '--set', 'build.print-step-timings', '--enable-verbose-tests', '--set', 'build.metrics', '--enable-verbose-configure', '--enable-sccache', '--disable-manage-submodules', '--enable-locked-deps', '--enable-cargo-native-static', '--set', 'rust.codegen-units-std=1', '--set', 'dist.compression-profile=balanced', '--dist-compression-formats=xz', '--set', 'rust.lld=false', '--disable-dist-src', '--release-channel=nightly', '--enable-debug-assertions', '--enable-overflow-checks', '--enable-llvm-assertions', '--set', 'rust.verify-llvm-ir', '--set', 'rust.codegen-backends=llvm,cranelift,gcc', '--set', 'llvm.static-libstdcpp', '--set', 'gcc.download-ci-gcc=true', '--enable-new-symbol-mangling']
configure: build.build          := x86_64-unknown-linux-gnu
configure: target.x86_64-unknown-linux-gnu.llvm-config := /usr/lib/llvm-19/bin/llvm-config
configure: llvm.link-shared     := True
configure: rust.randomize-layout := True
configure: rust.thin-lto-import-instr-limit := 10
---
failures:

---- [codegen] tests/codegen/function-arguments.rs stdout ----

error: verification with 'FileCheck' failed
status: exit status: 1
command: "/usr/lib/llvm-19/bin/FileCheck" "--input-file" "/checkout/obj/build/x86_64-unknown-linux-gnu/test/codegen/function-arguments/function-arguments.ll" "/checkout/tests/codegen/function-arguments.rs" "--check-prefix=CHECK" "--allow-unused-prefixes" "--dump-input-context" "100"
stdout: none
--- stderr -------------------------------
/checkout/tests/codegen/function-arguments.rs:180:11: error: CHECK: expected string not found in input
// CHECK: noundef nonnull align 4 ptr @_box(ptr noalias noundef nonnull align 4 %x)
          ^
/checkout/obj/build/x86_64-unknown-linux-gnu/test/codegen/function-arguments/function-arguments.ll:436:56: note: scanning from here
define void @raw_option_nonnull_struct(ptr noundef %_1) unnamed_addr #1 {
                                                       ^
/checkout/obj/build/x86_64-unknown-linux-gnu/test/codegen/function-arguments/function-arguments.ll:515:29: note: possible intended match here
define void @trait_borrow(ptr noundef nonnull align 1 %_1.0, ptr noalias noundef readonly align 8 dereferenceable(32) %_1.1) unnamed_addr #1 {
                            ^

Input file: /checkout/obj/build/x86_64-unknown-linux-gnu/test/codegen/function-arguments/function-arguments.ll
Check file: /checkout/tests/codegen/function-arguments.rs

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

Input was:
<<<<<<
             .
             .
             .
           336:  ret void 
           337: } 
           338:  
           339: ; Function Attrs: nonlazybind uwtable 
           340: define noundef align 4 dereferenceable(4) ptr @readonly_borrow_ret() unnamed_addr #1 { 
           341: start: 
           342:  br label %bb1 
           343:  
           344: bb1: ; preds = %bb1, %start 
           345:  br label %bb1 
           346: } 
           347:  
           348: ; Function Attrs: nonlazybind uwtable 
           349: define void @static_borrow(ptr noalias noundef readonly align 4 dereferenceable(4) %_1) unnamed_addr #1 { 
           350: start: 
           351:  ret void 
           352: } 
           353:  
           354: ; Function Attrs: nonlazybind uwtable 
           355: define void @named_borrow(ptr noalias noundef readonly align 4 dereferenceable(4) %_1) unnamed_addr #1 { 
           356: start: 
           357:  ret void 
           358: } 
           359:  
           360: ; Function Attrs: nonlazybind uwtable 
           361: define void @unsafe_borrow(ptr noundef nonnull align 2 %_1) unnamed_addr #1 { 
           362: start: 
           363:  ret void 
           364: } 
           365:  
           366: ; Function Attrs: nonlazybind uwtable 
           367: define void @mutable_unsafe_borrow(ptr noalias noundef align 2 dereferenceable(2) %_1) unnamed_addr #1 { 
           368: start: 
           369:  ret void 
           370: } 
           371:  
           372: ; Function Attrs: nonlazybind uwtable 
           373: define void @mutable_borrow(ptr noalias noundef align 4 dereferenceable(4) %_1) unnamed_addr #1 { 
           374: start: 
           375:  ret void 
           376: } 
           377:  
           378: ; Function Attrs: nonlazybind uwtable 
           379: define noundef align 4 dereferenceable(4) ptr @mutable_borrow_ret() unnamed_addr #1 { 
           380: start: 
           381:  br label %bb1 
           382:  
           383: bb1: ; preds = %bb1, %start 
           384:  br label %bb1 
           385: } 
           386:  
           387: ; Function Attrs: nonlazybind uwtable 
           388: define void @mutable_notunpin_borrow(ptr noundef nonnull align 4 %_1) unnamed_addr #1 { 
           389: start: 
           390:  ret void 
           391: } 
           392:  
           393: ; Function Attrs: nonlazybind uwtable 
           394: define void @notunpin_borrow(ptr noalias noundef readonly align 4 dereferenceable(4) %_1) unnamed_addr #1 { 
           395: start: 
           396:  ret void 
           397: } 
           398:  
           399: ; Function Attrs: nonlazybind uwtable 
           400: define void @indirect_struct(ptr noalias nocapture noundef readonly align 4 dereferenceable(32) %_1) unnamed_addr #1 { 
           401: start: 
           402:  ret void 
           403: } 
           404:  
           405: ; Function Attrs: nonlazybind uwtable 
           406: define void @borrowed_struct(ptr noalias noundef readonly align 4 dereferenceable(32) %_1) unnamed_addr #1 { 
           407: start: 
           408:  ret void 
           409: } 
           410:  
           411: ; Function Attrs: nonlazybind uwtable 
           412: define void @option_borrow(ptr noalias noundef readonly align 4 dereferenceable_or_null(4) %_x) unnamed_addr #1 { 
           413: start: 
           414:  ret void 
           415: } 
           416:  
           417: ; Function Attrs: nonlazybind uwtable 
           418: define void @option_borrow_mut(ptr noalias noundef align 4 dereferenceable_or_null(4) %_x) unnamed_addr #1 { 
           419: start: 
           420:  ret void 
           421: } 
           422:  
           423: ; Function Attrs: nonlazybind uwtable 
           424: define void @nonnull_and_nondereferenceable(ptr noundef nonnull %_x) unnamed_addr #1 { 
           425: start: 
           426:  ret void 
           427: } 
           428:  
           429: ; Function Attrs: nonlazybind uwtable 
           430: define void @raw_struct(ptr noundef %_1) unnamed_addr #1 { 
           431: start: 
           432:  ret void 
           433: } 
           434:  
           435: ; Function Attrs: nonlazybind uwtable 
           436: define void @raw_option_nonnull_struct(ptr noundef %_1) unnamed_addr #1 { 
check:180'0                                                            X~~~~~~~~~~~~~~~~~~ error: no match found
           437: start: 
check:180'0     ~~~~~~~
           438:  ret void 
check:180'0     ~~~~~~~~~~
           439: } 
check:180'0     ~~
           440:  
check:180'0     ~
           441: ; Function Attrs: nonlazybind uwtable 
check:180'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
           442: define noundef nonnull ptr @_box(ptr noundef nonnull %x) unnamed_addr #1 { 
check:180'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
           443: start: 
check:180'0     ~~~~~~~
           444:  ret ptr %x 
check:180'0     ~~~~~~~~~~~~
           445: } 
check:180'0     ~~
           446:  
check:180'0     ~
           447: ; Function Attrs: nonlazybind uwtable 
check:180'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
           448: define void @_box_custom(ptr noundef nonnull %x.0, ptr noalias noundef nonnull readonly align 1 %x.1) unnamed_addr #1 { 
check:180'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
           449: start: 
check:180'0     ~~~~~~~
           450:  %_2 = alloca [16 x i8], align 8 
check:180'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
           451:  call void @llvm.lifetime.start.p0(i64 16, ptr %_2) 
check:180'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
           452:  store ptr %x.0, ptr %_2, align 8 
check:180'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
           453:  %0 = getelementptr inbounds i8, ptr %_2, i64 8 
check:180'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
           454:  store ptr %x.1, ptr %0, align 8 
check:180'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
           455: ; call core::ptr::drop_in_place<alloc::boxed::Box<i32,&alloc::alloc::Global>> 
check:180'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
           456:  call void @"_ZN4core3ptr76drop_in_place$LT$alloc..boxed..Box$LT$i32$C$$RF$alloc..alloc..Global$GT$$GT$17heef6c608758d2697E"(ptr noalias noundef align 8 dereferenceable(16) %_2) 
check:180'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
           457:  call void @llvm.lifetime.end.p0(i64 16, ptr %_2) 
check:180'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
           458:  ret void 
check:180'0     ~~~~~~~~~~
           459: } 
check:180'0     ~~
           460:  
check:180'0     ~
           461: ; Function Attrs: nonlazybind uwtable 
check:180'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
           462: define noundef nonnull ptr @notunpin_box(ptr noundef nonnull %x) unnamed_addr #1 { 
check:180'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
           463: start: 
check:180'0     ~~~~~~~
           464:  ret ptr %x 
check:180'0     ~~~~~~~~~~~~
           465: } 
check:180'0     ~~
           466:  
check:180'0     ~
           467: ; Function Attrs: nonlazybind uwtable 
check:180'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
           468: define void @struct_return(ptr dead_on_unwind noalias nocapture noundef writable sret([32 x i8]) align 4 dereferenceable(32) %_0) unnamed_addr #1 { 
check:180'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
           469: start: 
check:180'0     ~~~~~~~
           470:  %_1 = alloca [32 x i8], align 4 
check:180'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
           471:  call void @llvm.lifetime.start.p0(i64 32, ptr %_1) 
check:180'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
           472:  call void @llvm.memset.p0.i64(ptr align 4 %_1, i8 0, i64 32, i1 false) 
check:180'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
           473:  call void @llvm.memcpy.p0.p0.i64(ptr align 4 %_0, ptr align 4 %_1, i64 32, i1 false) 
check:180'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
           474:  call void @llvm.lifetime.end.p0(i64 32, ptr %_1) 
check:180'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
           475:  ret void 
check:180'0     ~~~~~~~~~~
           476: } 
check:180'0     ~~
           477:  
check:180'0     ~
           478: ; Function Attrs: nonlazybind uwtable 
check:180'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
           479: define void @helper(i64 noundef %_1) unnamed_addr #1 { 
check:180'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
           480: start: 
check:180'0     ~~~~~~~
           481:  ret void 
check:180'0     ~~~~~~~~~~
           482: } 
check:180'0     ~~
           483:  
check:180'0     ~
           484: ; Function Attrs: nonlazybind uwtable 
check:180'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
           485: define void @slice(ptr noalias noundef nonnull readonly align 1 %_1.0, i64 noundef %_1.1) unnamed_addr #1 { 
check:180'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
           486: start: 
check:180'0     ~~~~~~~
           487:  ret void 
check:180'0     ~~~~~~~~~~
           488: } 
check:180'0     ~~
           489:  
check:180'0     ~
           490: ; Function Attrs: nonlazybind uwtable 
check:180'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
           491: define void @mutable_slice(ptr noalias noundef nonnull align 1 %_1.0, i64 noundef %_1.1) unnamed_addr #1 { 
check:180'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
           492: start: 
check:180'0     ~~~~~~~
           493:  ret void 
check:180'0     ~~~~~~~~~~
           494: } 
check:180'0     ~~
           495:  
check:180'0     ~
           496: ; Function Attrs: nonlazybind uwtable 
check:180'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
           497: define void @unsafe_slice(ptr noundef nonnull align 2 %_1.0, i64 noundef %_1.1) unnamed_addr #1 { 
check:180'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
           498: start: 
check:180'0     ~~~~~~~
           499:  ret void 
check:180'0     ~~~~~~~~~~
           500: } 
check:180'0     ~~
           501:  
check:180'0     ~
           502: ; Function Attrs: nonlazybind uwtable 
check:180'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
           503: define void @raw_slice(ptr noundef %_1.0, i64 noundef %_1.1) unnamed_addr #1 { 
check:180'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
           504: start: 
check:180'0     ~~~~~~~
           505:  ret void 
check:180'0     ~~~~~~~~~~
           506: } 
check:180'0     ~~
           507:  
check:180'0     ~
           508: ; Function Attrs: nonlazybind uwtable 
check:180'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
           509: define void @str(ptr noalias noundef nonnull readonly align 1 %_1.0, i64 noundef %_1.1) unnamed_addr #1 { 
check:180'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
           510: start: 
check:180'0     ~~~~~~~
           511:  ret void 
check:180'0     ~~~~~~~~~~
           512: } 
check:180'0     ~~
           513:  
check:180'0     ~
           514: ; Function Attrs: nonlazybind uwtable 
check:180'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
           515: define void @trait_borrow(ptr noundef nonnull align 1 %_1.0, ptr noalias noundef readonly align 8 dereferenceable(32) %_1.1) unnamed_addr #1 { 
check:180'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
check:180'1                                 ?                                                                                                                   possible intended match
           516: start: 
check:180'0     ~~~~~~~
           517:  ret void 
check:180'0     ~~~~~~~~~~
           518: } 
check:180'0     ~~
           519:  
check:180'0     ~
           520: ; Function Attrs: nonlazybind uwtable 
check:180'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
           521: define void @option_trait_borrow(ptr noundef align 1 %x.0, ptr %x.1) unnamed_addr #1 { 
check:180'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
           522: start: 
check:180'0     ~~~~~~~
           523:  ret void 
check:180'0     ~~~~~~~~~~
           524: } 
check:180'0     ~~
           525:  
check:180'0     ~
           526: ; Function Attrs: nonlazybind uwtable 
check:180'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
           527: define void @option_trait_borrow_mut(ptr noundef align 1 %x.0, ptr %x.1) unnamed_addr #1 { 
check:180'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
           528: start: 
check:180'0     ~~~~~~~
           529:  ret void 
check:180'0     ~~~~~~~~~~
           530: } 
check:180'0     ~~
           531:  
check:180'0     ~
           532: ; Function Attrs: nonlazybind uwtable 
check:180'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
           533: define void @trait_raw(ptr noundef %_1.0, ptr noalias noundef readonly align 8 dereferenceable(32) %_1.1) unnamed_addr #1 { 
check:180'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
           534: start: 
check:180'0     ~~~~~~~
           535:  ret void 
check:180'0     ~~~~~~~~~~
           536: } 
check:180'0     ~~
           537:  
check:180'0     ~
           538: ; Function Attrs: nonlazybind uwtable 
check:180'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
           539: define void @trait_box(ptr noalias noundef nonnull align 1 %0, ptr noalias noundef readonly align 8 dereferenceable(32) %1) unnamed_addr #1 { 
check:180'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
           540: start: 
check:180'0     ~~~~~~~
           541:  %_1 = alloca [16 x i8], align 8 
check:180'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
           542:  store ptr %0, ptr %_1, align 8 
check:180'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
           543:  %2 = getelementptr inbounds i8, ptr %_1, i64 8 
check:180'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
           544:  store ptr %1, ptr %2, align 8 
check:180'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
           545: ; call core::ptr::drop_in_place<alloc::boxed::Box<dyn core::ops::drop::Drop+core:📑:Unpin>> 
check:180'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
           546:  call void @"_ZN4core3ptr99drop_in_place$LT$alloc..boxed..Box$LT$dyn$u20$core..ops..drop..Drop$u2b$core..marker..Unpin$GT$$GT$17h9fff04a3a52d0db9E"(ptr noalias noundef align 8 dereferenceable(16) %_1) 
check:180'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
           547:  ret void 
check:180'0     ~~~~~~~~~~
           548: } 
check:180'0     ~~
           549:  
check:180'0     ~
           550: ; Function Attrs: nonlazybind uwtable 
check:180'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
           551: define { ptr, ptr } @trait_option(ptr noalias noundef align 1 %x.0, ptr %x.1) unnamed_addr #1 { 
check:180'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
           552: start: 
check:180'0     ~~~~~~~
           553:  %0 = insertvalue { ptr, ptr } poison, ptr %x.0, 0 
check:180'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
           554:  %1 = insertvalue { ptr, ptr } %0, ptr %x.1, 1 
check:180'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
           555:  ret { ptr, ptr } %1 
check:180'0     ~~~~~~~~~~~~~~~~~~~~~
           556: } 
check:180'0     ~~
           557:  
check:180'0     ~
           558: ; Function Attrs: nonlazybind uwtable 
check:180'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
           559: define { ptr, i64 } @return_slice(ptr noalias noundef nonnull readonly align 2 %x.0, i64 noundef %x.1) unnamed_addr #1 { 
check:180'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
           560: start: 
check:180'0     ~~~~~~~
           561:  %0 = insertvalue { ptr, i64 } poison, ptr %x.0, 0 
check:180'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
           562:  %1 = insertvalue { ptr, i64 } %0, i64 %x.1, 1 
check:180'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
           563:  ret { ptr, i64 } %1 
check:180'0     ~~~~~~~~~~~~~~~~~~~~~
           564: } 
check:180'0     ~~
           565:  
check:180'0     ~
           566: ; Function Attrs: nonlazybind uwtable 
check:180'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
           567: define { i16, i16 } @enum_id_1(i16 noundef range(i16 0, 3) %x.0, i16 %x.1) unnamed_addr #1 { 
check:180'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
           568: start: 
check:180'0     ~~~~~~~
           569:  %0 = insertvalue { i16, i16 } poison, i16 %x.0, 0 
check:180'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
           570:  %1 = insertvalue { i16, i16 } %0, i16 %x.1, 1 
check:180'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
           571:  ret { i16, i16 } %1 
check:180'0     ~~~~~~~~~~~~~~~~~~~~~
           572: } 
check:180'0     ~~
           573:  
check:180'0     ~
           574: ; Function Attrs: nonlazybind uwtable 
check:180'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
           575: define { i1, i8 } @enum_id_2(i1 noundef zeroext %x.0, i8 %x.1) unnamed_addr #1 { 
check:180'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
           576: start: 
check:180'0     ~~~~~~~
           577:  %0 = insertvalue { i1, i8 } poison, i1 %x.0, 0 
check:180'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
           578:  %1 = insertvalue { i1, i8 } %0, i8 %x.1, 1 
check:180'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
           579:  ret { i1, i8 } %1 
check:180'0     ~~~~~~~~~~~~~~~~~~~
           580: } 
check:180'0     ~~
           581:  
check:180'0     ~
           582: ; Function Attrs: nonlazybind uwtable 
check:180'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
           583: define { ptr, ptr } @dyn_star(ptr noundef %x.0, ptr noalias noundef readonly align 8 dereferenceable(24) %x.1) unnamed_addr #1 { 
check:180'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
           584: start: 
check:180'0     ~~~~~~~
           585:  %0 = insertvalue { ptr, ptr } poison, ptr %x.0, 0 
check:180'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
           586:  %1 = insertvalue { ptr, ptr } %0, ptr %x.1, 1 
check:180'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
           587:  ret { ptr, ptr } %1 
check:180'0     ~~~~~~~~~~~~~~~~~~~~~
           588: } 
check:180'0     ~~
           589:  
check:180'0     ~
           590: ; Function Attrs: nocallback nofree nosync nounwind willreturn memory(inaccessiblemem: write) 
check:180'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
           591: declare void @llvm.assume(i1 noundef) #2 
check:180'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
           592:  
check:180'0     ~
           593: ; __rustc::__rust_dealloc 
check:180'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~
           594: ; Function Attrs: nounwind nonlazybind allockind("free") uwtable 
check:180'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
           595: declare void @_RNvCsldDVRVZq5EW_7___rustc14___rust_dealloc(ptr allocptr noundef, i64 noundef, i64 noundef) unnamed_addr #3 
check:180'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
           596:  
check:180'0     ~
           597: ; Function Attrs: nounwind nonlazybind uwtable 
check:180'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
           598: declare noundef range(i32 0, 10) i32 @rust_eh_personality(i32 noundef, i32 noundef, i64 noundef, ptr noundef, ptr noundef) unnamed_addr #4 
check:180'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
           599:  
check:180'0     ~
           600: ; core::panicking::panic_in_cleanup 
check:180'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
           601: ; Function Attrs: cold minsize noinline noreturn nounwind nonlazybind optsize uwtable 
check:180'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
           602: declare void @_RNvNtCs2M0AlXx5nMD_4core9panicking16panic_in_cleanup() unnamed_addr #5 
check:180'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
           603:  
check:180'0     ~
           604: ; Function Attrs: nocallback nofree nounwind willreturn memory(argmem: write) 
check:180'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
           605: declare void @llvm.memset.p0.i64(ptr nocapture writeonly, i8, i64, i1 immarg) #6 
check:180'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
           606:  
check:180'0     ~
           607: ; Function Attrs: nocallback nofree nounwind willreturn memory(argmem: readwrite) 
check:180'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
           608: declare void @llvm.memcpy.p0.p0.i64(ptr noalias nocapture writeonly, ptr noalias nocapture readonly, i64, i1 immarg) #7 
check:180'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
           609:  
check:180'0     ~
           610: ; Function Attrs: nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) 
check:180'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
           611: declare void @llvm.lifetime.start.p0(i64 immarg, ptr nocapture) #8 
check:180'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
           612:  
check:180'0     ~
           613: ; Function Attrs: nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) 
check:180'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
           614: declare void @llvm.lifetime.end.p0(i64 immarg, ptr nocapture) #8 
check:180'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
           615:  
check:180'0     ~
             .
             .
             .
>>>>>>
------------------------------------------


---- [codegen] tests/codegen/loads.rs stdout ----

error: verification with 'FileCheck' failed