Commit Graph

256875 Commits

Author SHA1 Message Date
carbotaniuman
f83cdbd2e0 Fix ordering 2024-06-06 20:42:20 -05:00
Sunshine
5a23111b77 Follow ESLint instructions. 2024-06-07 09:36:43 +08:00
carbotaniuman
453093b791 Remove extraneous attribute 2024-06-06 20:36:23 -05:00
carbotaniuman
1cc4e8c733 Add unsafe to ffi_pure and ffi_const 2024-06-06 20:27:25 -05:00
carbotaniuman
15f8ffe371 Fix formatting 2024-06-06 20:27:25 -05:00
carbotaniuman
8aa2553b50 Change comment to FIXME 2024-06-06 20:27:25 -05:00
carbotaniuman
87be1bae73 Fix build 2024-06-06 20:27:25 -05:00
carbotaniuman
b82c524996 Add double unsafe test 2024-06-06 20:27:25 -05:00
carbotaniuman
68719e0bda Fix doc comment 2024-06-06 20:27:24 -05:00
carbotaniuman
230b58febf Error on unsafe on non-unsafe attribute 2024-06-06 20:26:28 -05:00
carbotaniuman
48851d9adb Add tests 2024-06-06 20:26:28 -05:00
carbotaniuman
6ec492fdde Reorder unsafe macro cases 2024-06-06 20:26:28 -05:00
carbotaniuman
c4de986afa Disallow unsafe in derive 2024-06-06 20:26:27 -05:00
carbotaniuman
67f5dd1ef1 Parse unsafe attributes 2024-06-06 20:26:27 -05:00
Veera
cddf291a25 Improve Docs for hir::Impl and hir::ImplItem 2024-06-06 21:00:16 -04:00
Sunshine
63411076c3 Other EcmaScript version bump 2024-06-07 08:44:52 +08:00
Slanterns
f275ca09dd
bless std_instead_of_core 2024-06-07 08:37:05 +08:00
Slanterns
c6f1934d34
fix doc comments about error_generic_member_access 2024-06-07 08:30:08 +08:00
Slanterns
76065f5b27
Stabilize error_in_core 2024-06-07 08:30:00 +08:00
Sunshine
d73d273482 Bump the EcmaScript version in the eslint configuration. 2024-06-07 07:51:29 +08:00
bors
76e7a0849c Auto merge of #126104 - workingjubilee:rollup-t1ac2ld, r=workingjubilee
Rollup of 12 pull requests

Successful merges:

 - #125220 (Repair several `riscv64gc-unknown-linux-gnu` codegen tests)
 - #126033 (CI: fix publishing of toolstate history)
 - #126034 (Clarify our tier 1 Windows Server support)
 - #126035 (Some minor query system cleanups)
 - #126051 (Clarify an `x fmt` error.)
 - #126059 (Raise `DEFAULT_MIN_STACK_SIZE` to at least 64KiB)
 - #126064 (Migrate `run-make/manual-crate-name` to `rmake.rs`)
 - #126072 (compiletest: Allow multiple `//@ run-flags:` headers)
 - #126073 (Port `tests/run-make-fulldeps/obtain-borrowck` to ui-fulldeps)
 - #126081 (Do not use relative paths to Rust source root in run-make tests)
 - #126086 (use windows compatible executable name for libcxx-version)
 - #126096 ([RFC-2011] Allow `core_intrinsics` when activated)

r? `@ghost`
`@rustbot` modify labels: rollup
2024-06-06 22:27:56 +00:00
schvv31n
2bdc53b153 fixed memory leaks in PathBuf::leak & OsString::leak tests 2024-06-06 23:18:01 +01:00
Sunshine
f9f51839e5 Tidying 2024-06-07 06:09:30 +08:00
Sunshine
dd5103bb68 Add test for PR #126057 2024-06-07 05:49:46 +08:00
Jubilee
efd8959ab1
Rollup merge of #126096 - c410-f3r:tests-tests-tests, r=jhpratt
[RFC-2011] Allow `core_intrinsics` when activated

Fix #120612
2024-06-06 14:46:25 -07:00
Jubilee
7e81738d5c
Rollup merge of #126086 - onur-ozkan:use-exe, r=petrochenkov
use windows compatible executable name for libcxx-version

Resolves #https://github.com/rust-lang/rust/pull/125411#discussion_r1629915724
2024-06-06 14:46:25 -07:00
Jubilee
af229f5e00
Rollup merge of #126081 - Kobzol:run-make-relative-paths, r=jieyouxu
Do not use relative paths to Rust source root in run-make tests

Pre-requisite for https://github.com/rust-lang/rust/issues/126080.

Fixes: https://github.com/rust-lang/rust/issues/126071

r? `@jieyouxu`
2024-06-06 14:46:24 -07:00
Jubilee
30bb51fd06
Rollup merge of #126073 - Zalathar:fulldeps-borrowck, r=jieyouxu
Port `tests/run-make-fulldeps/obtain-borrowck` to ui-fulldeps

Thanks to `{{sysroot-base}}` from #126008, this was also pretty straightforward to port over.
2024-06-06 14:46:24 -07:00
Jubilee
f4016e2bf5
Rollup merge of #126072 - Zalathar:run-flags, r=jieyouxu
compiletest: Allow multiple `//@ run-flags:` headers

While working on some tests, I was annoyed to find that multiple `// `@run-flags:`` headers do not combine with each other (as `//@ compile-flags:` headers do), and instead all but one are silently discarded.

This makes it impossible to split long flag lists into multiple lines.

Fortunately it's easy to just recycle the existing logic from the other command-line-flags headers.
2024-06-06 14:46:23 -07:00
Jubilee
2c1e71bac5
Rollup merge of #126064 - GuillaumeGomez:migrate-run-make-manual-crate-name, r=jieyouxu
Migrate `run-make/manual-crate-name` to `rmake.rs`

Part of https://github.com/rust-lang/rust/issues/121876.

r? ``@jieyouxu``
2024-06-06 14:46:23 -07:00
Jubilee
68c57de26e
Rollup merge of #126059 - workingjubilee:stack-nothing-higher, r=ChrisDenton
Raise `DEFAULT_MIN_STACK_SIZE` to at least 64KiB

Prevent copy-paste errors from producing new starved-for-resources threaded platforms by raising `DEFAULT_MIN_STACK_SIZE` from 4096 bytes to at least 64KiB.

Two platforms "affected" by this have no actual threads:
- UEFI
- "unsupported"

Platforms that this actually affects:
- wasm32-wasi with "atomics" enabled
- wasm32-wasi-p1-threads

Two exceptions:
- SGX: a "secure code execution" platform, stays at 4096B
- TEEOS: also a "secure code execution" platform, stays at 8192B

I believe either of these may have sufficiently "interesting" semantics around threads, or significant external library support. Either would mean making any choices here for them is suspect.

Fixes #126027 which is a bug report about `DEFAULT_MIN_STACK_SIZE` being too low on wasi.
2024-06-06 14:46:22 -07:00
Jubilee
f739fefc76
Rollup merge of #126051 - nnethercote:clarify-x-fmt-error, r=Nilstrieb
Clarify an `x fmt` error.

For anyone who was using paths with `x fmt` previously, make the error message a bit clearer.

r? ```@GuillaumeGomez```
2024-06-06 14:46:22 -07:00
Jubilee
a1baa7b04d
Rollup merge of #126035 - oli-obk:query_macro_errors, r=fmease
Some minor query system cleanups

* Improves diagnostics on conflicting query flags
* removes unnecessary impls
* `track_caller`

pulled out of https://github.com/rust-lang/rust/pull/115613
2024-06-06 14:46:21 -07:00
Jubilee
14d9a3e230
Rollup merge of #126034 - ChrisDenton:winsupport, r=ehuss
Clarify our tier 1 Windows Server support

I've been asked a number of times about our minimum Windows Server support so this PR updates the documentation to be more explicit.

Note that this doesn't change our support at all, it just clarifies it. Windows Server 2016 is the first "Windows 10" server OS (specifically it has the same [build number](https://en.wikipedia.org/wiki/Windows_Server_2016#Release_to_manufacturing) as Windows 10 1607).
2024-06-06 14:46:21 -07:00
Jubilee
835ceeae2a
Rollup merge of #126033 - Kobzol:fix-toolstate-history, r=ehuss
CI: fix publishing of toolstate history

Hopefully fixes the upload of toolstate history that I broke in https://github.com/rust-lang/rust/pull/125145. The problem is that the toolstate environment variables need to be available not just when updating `latest.json` through the Bash/Python script, but also in the main CI workflow, where `history` is updated in bootstrap (the toolstate logic is distributed in two places :/ ).

The only tricky thing is how to pass the token secret to the CI job, as I need to enable it only for privileged (`auto`/`try`) builds. I assume that the secret is filled only on `rust-lang-ci`, not on `rust-lang`, so I chose the easiest way of just configuring the environment variable globally. We'll see if that works on PR CI.

r? `@ehuss`
2024-06-06 14:46:20 -07:00
Jubilee
aa4cffc012
Rollup merge of #125220 - ferrocene:hoverbear/repair-riscv64-codegen-tests, r=erikdesjardins,workingjubilee
Repair several `riscv64gc-unknown-linux-gnu` codegen tests

Together with joshua.zivkovic@codethink.co.uk, we've been starting to explore improving the state of the `riscv64gc-unknown-linux-gnu` target. Additionally, I'm looking to add support for this platform in [Ferrocene](https://github.com/ferrocene/ferrocene) ([Related PR](https://github.com/ferrocene/ferrocene/pull/618)).

While running the test suite, we noted several tests were failing.

It appears that several of the riscv64gc-unknown-linux-gnu codegen tests have not been updated in some time and seem to have experienced a small amount of bitrot.

After speaking with `@workingjubilee` (as I have little expertise in LLVM codegen) I believe these changes to be correct.

### `tests/codegen/riscv-abi/call-llvm-intrinsics.rs`

I believe this change does not alter what the test is testing and is harmless.

### `tests/codegen/riscv-abi/riscv64-lp64d-abi.rs`

The changes largely mirrors those from loongarch64:

550d1b4fb6/tests/codegen/loongarch-abi/loongarch64-lp64d-abi.rs (L13-L15)

550d1b4fb6/tests/codegen/loongarch-abi/loongarch64-lp64d-abi.rs (L153-L155)

550d1b4fb6/tests/codegen/loongarch-abi/loongarch64-lp64d-abi.rs (L259-L261)

550d1b4fb6/tests/codegen/loongarch-abi/loongarch64-lp64d-abi.rs (L263-L267)

### `tests/codegen/riscv-abi/riscv64-lp64f-lp64d-abi.rs`

The changes largely mirror that from loongarch64 or llvm:

550d1b4fb6/tests/codegen/loongarch-abi/loongarch64-lp64d-abi.rs (L13-L26)

5399a24c66/clang/test/CodeGen/RISCV/riscv64-abi.c (L612-L617)

### `tests/ui/debuginfo/debuginfo-emit-llvm-ir-and-split-debuginfo.rs`

The test is ignored since `-Csplit-debuginfo=unpacked` is not supported on this platform. Context can be found in #120518.

## Reproducing the failures

Using a `config.toml` with the following:

```toml
# ...

target = [
   # ...
   "riscv64gc-unknown-linux-gnu",
]
```

> [!NOTE]
> You may need to install a RICV-V toolchain! We get ours from [here](https://www.embecosm.com/resources/tool-chain-downloads/#riscv-linux).
>
> If you are using an old (20.04) Ubuntu container the compiler in the repositories (`gcc-riscv64-linux-gnu`) won't work!

Run the following test suite:

```bash
./x.py test tests/codegen
```

<details>

<summary>Expected output</summary>

```
ana@Autonoma:~/git/rust-lang/rust$ ./x.py test tests/codegen
Building bootstrap
    Finished `dev` profile [unoptimized] target(s) in 0.03s
WARNING: The `change-id` is missing in the `config.toml`. This means that you will not be able to track the major changes made to the bootstrap configurations.
NOTE: to silence this warning, add `change-id = 124501` at the top of `config.toml`
Building stage0 library artifacts (x86_64-unknown-linux-gnu)
    Finished `release` profile [optimized] target(s) in 0.11s
Building compiler artifacts (stage0 -> stage1, x86_64-unknown-linux-gnu)
    Finished `release` profile [optimized] target(s) in 0.18s
Creating a sysroot for stage1 compiler (use `rustup toolchain link 'name' build/host/stage1`)
Building stage1 library artifacts (x86_64-unknown-linux-gnu)
    Finished `release` profile [optimized] target(s) in 0.11s
Building stage0 tool compiletest (x86_64-unknown-linux-gnu)
    Finished `release` profile [optimized] target(s) in 0.11s
Testing stage1 compiletest suite=codegen mode=codegen (x86_64-unknown-linux-gnu)

running 652 tests
iii......ii...iiiiiii...........ii..iii....i......i......i......iii...iiiii..i..i...i...  88/652
.............i............iii..iiii.....................i............................... 176/652
iiiiiii.............iiiiiiiii.iii....i.................i....................i...ii....i. 264/652
..i........i.........i..i........iii.........i............ii................ii..i....... 352/652
...............i...i....ii.i.....i......................ii.ii...iiiiiiiiiiiiiiiiiiiiiiii 440/652
iii....................iiiiiiiiiiiiiiii.........................iii.i..........i........ 528/652
...i...ii...........i...ii.i..i..........i..............................ii.....ii.i..ii. 616/652
.ii.................................

test result: ok. 498 passed; 0 failed; 154 ignored; 0 measured; 0 filtered out; finished in 4.76s

Building stage1 library artifacts (x86_64-unknown-linux-gnu -> riscv64gc-unknown-linux-gnu)
    Finished `release` profile [optimized] target(s) in 0.10s
Testing stage1 compiletest suite=codegen mode=codegen (x86_64-unknown-linux-gnu -> riscv64gc-unknown-linux-gnu)

running 652 tests
iii......ii..iiiiiii.....i..i..i.i...i........i..i.......i......iii...iiiii..i.i....i...  88/652
.............i............iii..iiii....................i...............................i 176/652
iiiiii..............iiiiiiiii.iii.....i................i..................i.....ii....i. 264/652
..i........i..........i.i........iii..........i...........ii................ii..i....... 352/652
...............i...i....ii.i.....i......................i.......iii.iiiiiiiiiiiiiiiiiiii 440/652
iiii...................iiiiiiiiiiiiiiii................
[codegen] tests/codegen/riscv-abi/call-llvm-intrinsics.rs ... F
.....
[codegen] tests/codegen/riscv-abi/riscv64-lp64f-lp64d-abi.rs ... F
..iii.i.
[codegen] tests/codegen/riscv-abi/riscv64-lp64d-abi.rs ... F
........i........ 528/652
...i...ii...........i...ii..i.i..........i..............................ii.....ii.i..ii. 616/652
.ii.................................

failures:

---- [codegen] tests/codegen/riscv-abi/call-llvm-intrinsics.rs stdout ----

error: verification with 'FileCheck' failed
status: exit status: 1
command: "/home/ana/git/rust-lang/rust/build/x86_64-unknown-linux-gnu/llvm/build/bin/FileCheck" "--input-file" "/home/ana/git/rust-lang/rust/build/x86_64-unknown-linux-gnu/test/codegen/riscv-abi/call-llvm-intrinsics/call-llvm-intrinsics.ll" "/home/ana/git/rust-lang/rust/tests/codegen/riscv-abi/call-llvm-intrinsics.rs" "--check-prefix=CHECK" "--check-prefix" "NONMSVC" "--allow-unused-prefixes" "--dump-input-context" "100"
stdout: none
--- stderr -------------------------------
/home/ana/git/rust-lang/rust/tests/codegen/riscv-abi/call-llvm-intrinsics.rs:26:12: error: CHECK: expected string not found in input
 // CHECK: store float 4.000000e+00, float* %{{.}}, align 4
           ^
/home/ana/git/rust-lang/rust/build/x86_64-unknown-linux-gnu/test/codegen/riscv-abi/call-llvm-intrinsics/call-llvm-intrinsics.ll:1:1: note: scanning from here
; ModuleID = 'call_llvm_intrinsics.b4a95fd5831b1bb7-cgu.0'
^
/home/ana/git/rust-lang/rust/build/x86_64-unknown-linux-gnu/test/codegen/riscv-abi/call-llvm-intrinsics/call-llvm-intrinsics.ll:53:2: note: possible intended match here
 store float 4.000000e+00, ptr %3, align 4
 ^

Input file: /home/ana/git/rust-lang/rust/build/x86_64-unknown-linux-gnu/test/codegen/riscv-abi/call-llvm-intrinsics/call-llvm-intrinsics.ll
Check file: /home/ana/git/rust-lang/rust/tests/codegen/riscv-abi/call-llvm-intrinsics.rs

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

Input was:
<<<<<<
            1: ; ModuleID = 'call_llvm_intrinsics.b4a95fd5831b1bb7-cgu.0'
check:26'0     X~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ error: no match found
            2: source_filename = "call_llvm_intrinsics.b4a95fd5831b1bb7-cgu.0"
check:26'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
            3: target datalayout = "e-m:e-p:64:64-i64:64-i128:128-n32:64-S128"
check:26'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
            4: target triple = "riscv64-unknown-linux-gnu"
check:26'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
            5:
check:26'0     ~
            6: `@alloc_cebd5a1664be1c73eee4a1aab7937c96` = private unnamed_addr constant <{ [2 x i8] }> <{ [2 x i8] c"A\0A" }>, align 1
check:26'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
            7: `@alloc_bddb4fe6d67b5a5a93d73a63d68b4b9e` = private unnamed_addr constant <{ ptr, [8 x i8] }> <{ ptr `@alloc_cebd5a1664be1c73eee4a1aab7937c96,` [8 x i8] c"\02\00\00\00\00\00\00\00" }>, align 8
check:26'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
            8: `@0` = private unnamed_addr constant <{ [8 x i8], [8 x i8] }> <{ [8 x i8] zeroinitializer, [8 x i8] undef }>, align 8
check:26'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
            9:
check:26'0     ~
           10: ; core::ptr::drop_in_place<call_llvm_intrinsics::A>
check:26'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
           11: ; Function Attrs: uwtable
check:26'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~
           12: define internal void `@"_ZN4core3ptr44drop_in_place$LT$call_llvm_intrinsics..A$GT$17hf11b50bd9b9c5359E"(ptr` noalias noundef nonnull align 1 %_1) unnamed_addr #0 {
check:26'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
           13: start:
check:26'0     ~~~~~~~
           14: ; call <call_llvm_intrinsics::A as core::ops::drop::Drop>::drop
check:26'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
           15:  call void `@"_ZN65_$LT$call_llvm_intrinsics..A$u20$as$u20$core..ops..drop..Drop$GT$4drop17hc84a7f61b5f719bdE"(ptr` noalias noundef nonnull align 1 %_1)
check:26'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
           16:  ret void
check:26'0     ~~~~~~~~~~
           17: }
check:26'0     ~~
           18:
check:26'0     ~
           19: ; <call_llvm_intrinsics::A as core::ops::drop::Drop>::drop
check:26'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
           20: ; Function Attrs: uwtable
check:26'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~
           21: define void `@"_ZN65_$LT$call_llvm_intrinsics..A$u20$as$u20$core..ops..drop..Drop$GT$4drop17hc84a7f61b5f719bdE"(ptr` noalias noundef nonnull align 1 %self) unnamed_addr #0 {
check:26'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
           22: start:
check:26'0     ~~~~~~~
           23:  %_3 = alloca [48 x i8], align 8
check:26'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
           24:  call void `@llvm.lifetime.start.p0(i64` 48, ptr %_3)
check:26'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
           25:  store ptr `@alloc_bddb4fe6d67b5a5a93d73a63d68b4b9e,` ptr %_3, align 8
check:26'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
           26:  %0 = getelementptr inbounds i8, ptr %_3, i64 8
check:26'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
           27:  store i64 1, ptr %0, align 8
check:26'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
           28:  %1 = load ptr, ptr `@0,` align 8, !align !4, !noundef !5
check:26'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
           29:  %2 = load i64, ptr getelementptr inbounds (i8, ptr `@0,` i64 8), align 8
check:26'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
           30:  %3 = getelementptr inbounds i8, ptr %_3, i64 32
check:26'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
           31:  store ptr %1, ptr %3, align 8
check:26'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
           32:  %4 = getelementptr inbounds i8, ptr %3, i64 8
check:26'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
           33:  store i64 %2, ptr %4, align 8
check:26'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
           34:  %5 = getelementptr inbounds i8, ptr %_3, i64 16
check:26'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
           35:  store ptr inttoptr (i64 8 to ptr), ptr %5, align 8
check:26'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
           36:  %6 = getelementptr inbounds i8, ptr %5, i64 8
check:26'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
           37:  store i64 0, ptr %6, align 8
check:26'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
           38: ; call std::io::stdio::_print
check:26'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
           39:  call void `@_ZN3std2io5stdio6_print17h38b16d890daf9d05E(ptr` noalias nocapture noundef align 8 dereferenceable(48) %_3)
check:26'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
           40:  call void `@llvm.lifetime.end.p0(i64` 48, ptr %_3)
check:26'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
           41:  ret void
check:26'0     ~~~~~~~~~~
           42: }
check:26'0     ~~
           43:
check:26'0     ~
           44: ; call_llvm_intrinsics::do_call
check:26'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
           45: ; Function Attrs: uwtable
check:26'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~
           46: define void `@_ZN20call_llvm_intrinsics7do_call17h1d78694c55381316E()` unnamed_addr #0 {
check:26'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
           47: start:
check:26'0     ~~~~~~~
           48:  %0 = alloca [4 x i8], align 4
check:26'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
           49:  %1 = alloca [4 x i8], align 4
check:26'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
           50:  %2 = alloca [4 x i8], align 4
check:26'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
           51:  %3 = alloca [4 x i8], align 4
check:26'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
           52:  %_1 = alloca [0 x i8], align 1
check:26'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
           53:  store float 4.000000e+00, ptr %3, align 4
check:26'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
check:26'1      ?                                          possible intended match
           54:  call void `@llvm.lifetime.start.p0(i64` 4, ptr %2)
check:26'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
           55:  call void `@llvm.memcpy.p0.p0.i64(ptr` align 4 %2, ptr align 4 %3, i64 4, i1 false)
check:26'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
           56:  %4 = load float, ptr %2, align 4
check:26'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
           57:  call void `@llvm.lifetime.end.p0(i64` 4, ptr %2)
check:26'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
           58:  %5 = call float `@llvm.sqrt.f32(float` %4) #4
check:26'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
           59:  call void `@llvm.lifetime.start.p0(i64` 4, ptr %1)
check:26'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
           60:  call void `@llvm.lifetime.start.p0(i64` 4, ptr %0)
check:26'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
           61:  store float %5, ptr %0, align 4
check:26'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
           62:  call void `@llvm.memcpy.p0.p0.i64(ptr` align 4 %1, ptr align 4 %0, i64 4, i1 false)
check:26'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
           63:  call void `@llvm.lifetime.end.p0(i64` 4, ptr %0)
check:26'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
           64:  %_2 = load float, ptr %1, align 4, !noundef !5
check:26'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
           65:  call void `@llvm.lifetime.end.p0(i64` 4, ptr %1)
check:26'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
           66: ; call core::ptr::drop_in_place<call_llvm_intrinsics::A>
check:26'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
           67:  call void `@"_ZN4core3ptr44drop_in_place$LT$call_llvm_intrinsics..A$GT$17hf11b50bd9b9c5359E"(ptr` noalias noundef nonnull align 1 %_1)
check:26'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
           68:  ret void
check:26'0     ~~~~~~~~~~
           69: }
check:26'0     ~~
           70:
check:26'0     ~
           71: ; std::io::stdio::_print
check:26'0     ~~~~~~~~~~~~~~~~~~~~~~~~~
           72: ; Function Attrs: uwtable
check:26'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~
           73: declare void `@_ZN3std2io5stdio6_print17h38b16d890daf9d05E(ptr` noalias nocapture noundef align 8 dereferenceable(48)) unnamed_addr #0
check:26'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
           74:
check:26'0     ~
           75: ; Function Attrs: nocallback nofree nounwind willreturn memory(argmem: readwrite)
check:26'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
           76: declare void `@llvm.memcpy.p0.p0.i64(ptr` noalias nocapture writeonly, ptr noalias nocapture readonly, i64, i1 immarg) #1
check:26'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
           77:
check:26'0     ~
           78: ; Function Attrs: nocallback nofree nosync nounwind speculatable willreturn memory(none)
check:26'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
           79: declare float `@llvm.sqrt.f32(float)` unnamed_addr #2
check:26'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
           80:
check:26'0     ~
           81: ; Function Attrs: nocallback nofree nosync nounwind willreturn memory(argmem: readwrite)
check:26'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
           82: declare void `@llvm.lifetime.start.p0(i64` immarg, ptr nocapture) #3
check:26'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
           83:
check:26'0     ~
           84: ; Function Attrs: nocallback nofree nosync nounwind willreturn memory(argmem: readwrite)
check:26'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
           85: declare void `@llvm.lifetime.end.p0(i64` immarg, ptr nocapture) #3
check:26'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
           86:
check:26'0     ~
           87: attributes #0 = { uwtable "target-cpu"="generic-rv64" "target-features"="+m,+a,+f,+d,+c" }
check:26'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
           88: attributes #1 = { nocallback nofree nounwind willreturn memory(argmem: readwrite) }
check:26'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
           89: attributes #2 = { nocallback nofree nosync nounwind speculatable willreturn memory(none) }
check:26'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
           90: attributes #3 = { nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) }
check:26'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
           91: attributes #4 = { nounwind }
check:26'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
           92:
check:26'0     ~
           93: !llvm.module.flags = !{!0, !1, !2}
check:26'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
           94: !llvm.ident = !{!3}
check:26'0     ~~~~~~~~~~~~~~~~~~~~
           95:
check:26'0     ~
           96: !0 = !{i32 8, !"PIC Level", i32 2}
check:26'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
           97: !1 = !{i32 1, !"Code Model", i32 3}
check:26'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
           98: !2 = !{i32 1, !"target-abi", !"lp64d"}
check:26'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
           99: !3 = !{!"rustc version 1.80.0-dev"}
check:26'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
          100: !4 = !{i64 8}
check:26'0     ~~~~~~~~~~~~~~
          101: !5 = !{}
check:26'0     ~~~~~~~~~
>>>>>>
------------------------------------------

---- [codegen] tests/codegen/riscv-abi/riscv64-lp64f-lp64d-abi.rs stdout ----

error: verification with 'FileCheck' failed
status: exit status: 1
command: "/home/ana/git/rust-lang/rust/build/x86_64-unknown-linux-gnu/llvm/build/bin/FileCheck" "--input-file" "/home/ana/git/rust-lang/rust/build/x86_64-unknown-linux-gnu/test/codegen/riscv-abi/riscv64-lp64f-lp64d-abi/riscv64-lp64f-lp64d-abi.ll" "/home/ana/git/rust-lang/rust/tests/codegen/riscv-abi/riscv64-lp64f-lp64d-abi.rs" "--check-prefix=CHECK" "--check-prefix" "NONMSVC" "--allow-unused-prefixes" "--dump-input-context" "100"
stdout: none
--- stderr -------------------------------
/home/ana/git/rust-lang/rust/tests/codegen/riscv-abi/riscv64-lp64f-lp64d-abi.rs:7:11: error: CHECK: expected string not found in input
// CHECK: define void `@f_fpr_tracking(float` %0, float %1, float %2, float %3, float %4, float %5, float %6, float %7, i8 zeroext %i)
          ^
/home/ana/git/rust-lang/rust/build/x86_64-unknown-linux-gnu/test/codegen/riscv-abi/riscv64-lp64f-lp64d-abi/riscv64-lp64f-lp64d-abi.ll:1:1: note: scanning from here
; ModuleID = 'riscv64_lp64f_lp64d_abi.ae8fa95bac1a0604-cgu.0'
^
/home/ana/git/rust-lang/rust/build/x86_64-unknown-linux-gnu/test/codegen/riscv-abi/riscv64-lp64f-lp64d-abi/riscv64-lp64f-lp64d-abi.ll:9:1: note: possible intended match here
define void `@f_fpr_tracking(float` %0, float %1, float %2, float %3, float %4, float %5, float %6, float %7, i8 noundef zeroext %i) unnamed_addr #0 {
^

Input file: /home/ana/git/rust-lang/rust/build/x86_64-unknown-linux-gnu/test/codegen/riscv-abi/riscv64-lp64f-lp64d-abi/riscv64-lp64f-lp64d-abi.ll
Check file: /home/ana/git/rust-lang/rust/tests/codegen/riscv-abi/riscv64-lp64f-lp64d-abi.rs

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

Input was:
<<<<<<
           1: ; ModuleID = 'riscv64_lp64f_lp64d_abi.ae8fa95bac1a0604-cgu.0'
check:7'0     X~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ error: no match found
           2: source_filename = "riscv64_lp64f_lp64d_abi.ae8fa95bac1a0604-cgu.0"
check:7'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
           3: target datalayout = "e-m:e-p:64:64-i64:64-i128:128-n32:64-S128"
check:7'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
           4: target triple = "riscv64-unknown-linux-gnu"
check:7'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
           5:
check:7'0     ~
           6: %Tricky1 = type { [1 x float] }
check:7'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
           7:
check:7'0     ~
           8: ; Function Attrs: uwtable
check:7'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~
           9: define void `@f_fpr_tracking(float` %0, float %1, float %2, float %3, float %4, float %5, float %6, float %7, i8 noundef zeroext %i) unnamed_addr #0 {
check:7'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
check:7'1     ?                                                                                                                                                     possible intended match
          10: start:
check:7'0     ~~~~~~~
          11:  %8 = alloca [4 x i8], align 4
check:7'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
          12:  %h = alloca [4 x i8], align 4
check:7'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
          13:  %9 = alloca [4 x i8], align 4
check:7'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
          14:  %g = alloca [4 x i8], align 4
check:7'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
          15:  %10 = alloca [4 x i8], align 4
check:7'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
          16:  %f = alloca [4 x i8], align 4
check:7'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
          17:  %11 = alloca [4 x i8], align 4
check:7'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
          18:  %e = alloca [4 x i8], align 4
check:7'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
          19:  %12 = alloca [4 x i8], align 4
check:7'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
          20:  %d = alloca [4 x i8], align 4
check:7'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
          21:  %13 = alloca [4 x i8], align 4
check:7'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
          22:  %c = alloca [4 x i8], align 4
check:7'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
          23:  %14 = alloca [4 x i8], align 4
check:7'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
          24:  %b = alloca [4 x i8], align 4
check:7'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
          25:  %15 = alloca [4 x i8], align 4
check:7'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
          26:  %a = alloca [4 x i8], align 4
check:7'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
          27:  call void `@llvm.lifetime.start.p0(i64` 4, ptr %15)
check:7'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
          28:  store float %0, ptr %15, align 4
check:7'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
          29:  call void `@llvm.memcpy.p0.p0.i64(ptr` align 4 %a, ptr align 4 %15, i64 4, i1 false)
check:7'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
          30:  call void `@llvm.lifetime.end.p0(i64` 4, ptr %15)
check:7'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
          31:  call void `@llvm.lifetime.start.p0(i64` 4, ptr %14)
check:7'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
          32:  store float %1, ptr %14, align 4
check:7'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
          33:  call void `@llvm.memcpy.p0.p0.i64(ptr` align 4 %b, ptr align 4 %14, i64 4, i1 false)
check:7'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
          34:  call void `@llvm.lifetime.end.p0(i64` 4, ptr %14)
check:7'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
          35:  call void `@llvm.lifetime.start.p0(i64` 4, ptr %13)
check:7'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
          36:  store float %2, ptr %13, align 4
check:7'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
          37:  call void `@llvm.memcpy.p0.p0.i64(ptr` align 4 %c, ptr align 4 %13, i64 4, i1 false)
check:7'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
          38:  call void `@llvm.lifetime.end.p0(i64` 4, ptr %13)
check:7'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
          39:  call void `@llvm.lifetime.start.p0(i64` 4, ptr %12)
check:7'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
          40:  store float %3, ptr %12, align 4
check:7'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
          41:  call void `@llvm.memcpy.p0.p0.i64(ptr` align 4 %d, ptr align 4 %12, i64 4, i1 false)
check:7'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
          42:  call void `@llvm.lifetime.end.p0(i64` 4, ptr %12)
check:7'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
          43:  call void `@llvm.lifetime.start.p0(i64` 4, ptr %11)
check:7'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
          44:  store float %4, ptr %11, align 4
check:7'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
          45:  call void `@llvm.memcpy.p0.p0.i64(ptr` align 4 %e, ptr align 4 %11, i64 4, i1 false)
check:7'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
          46:  call void `@llvm.lifetime.end.p0(i64` 4, ptr %11)
check:7'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
          47:  call void `@llvm.lifetime.start.p0(i64` 4, ptr %10)
check:7'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
          48:  store float %5, ptr %10, align 4
check:7'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
          49:  call void `@llvm.memcpy.p0.p0.i64(ptr` align 4 %f, ptr align 4 %10, i64 4, i1 false)
check:7'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
          50:  call void `@llvm.lifetime.end.p0(i64` 4, ptr %10)
check:7'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
          51:  call void `@llvm.lifetime.start.p0(i64` 4, ptr %9)
check:7'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
          52:  store float %6, ptr %9, align 4
check:7'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
          53:  call void `@llvm.memcpy.p0.p0.i64(ptr` align 4 %g, ptr align 4 %9, i64 4, i1 false)
check:7'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
          54:  call void `@llvm.lifetime.end.p0(i64` 4, ptr %9)
check:7'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
          55:  call void `@llvm.lifetime.start.p0(i64` 4, ptr %8)
check:7'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
          56:  store float %7, ptr %8, align 4
check:7'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
          57:  call void `@llvm.memcpy.p0.p0.i64(ptr` align 4 %h, ptr align 4 %8, i64 4, i1 false)
check:7'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
          58:  call void `@llvm.lifetime.end.p0(i64` 4, ptr %8)
check:7'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
          59:  ret void
check:7'0     ~~~~~~~~~~
          60: }
check:7'0     ~~
          61:
check:7'0     ~
          62: ; Function Attrs: uwtable
check:7'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~
          63: define void `@f_float_s_arg(float` %0) unnamed_addr #0 {
check:7'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
          64: start:
check:7'0     ~~~~~~~
          65:  %1 = alloca [4 x i8], align 4
check:7'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
          66:  %a = alloca [4 x i8], align 4
check:7'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
          67:  call void `@llvm.lifetime.start.p0(i64` 4, ptr %1)
check:7'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
          68:  store float %0, ptr %1, align 4
check:7'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
          69:  call void `@llvm.memcpy.p0.p0.i64(ptr` align 4 %a, ptr align 4 %1, i64 4, i1 false)
check:7'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
          70:  call void `@llvm.lifetime.end.p0(i64` 4, ptr %1)
check:7'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
          71:  ret void
check:7'0     ~~~~~~~~~~
          72: }
check:7'0     ~~
          73:
check:7'0     ~
          74: ; Function Attrs: uwtable
check:7'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~
          75: define float `@f_ret_float_s()` unnamed_addr #0 {
check:7'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
          76: start:
check:7'0     ~~~~~~~
          77:  %_0 = alloca [4 x i8], align 4
check:7'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
          78:  store float 1.000000e+00, ptr %_0, align 4
check:7'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
          79:  %0 = load float, ptr %_0, align 4
check:7'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
          80:  ret float %0
check:7'0     ~~~~~~~~~~~~~~
          81: }
check:7'0     ~~
          82:
check:7'0     ~
          83: ; Function Attrs: uwtable
check:7'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~
          84: define void `@f_float_float_s_arg({` float, float } %0) unnamed_addr #0 {
check:7'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
          85: start:
check:7'0     ~~~~~~~
          86:  %1 = alloca [8 x i8], align 4
check:7'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
          87:  %a = alloca [8 x i8], align 4
check:7'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
          88:  call void `@llvm.lifetime.start.p0(i64` 8, ptr %1)
check:7'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
          89:  store { float, float } %0, ptr %1, align 4
check:7'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
          90:  call void `@llvm.memcpy.p0.p0.i64(ptr` align 4 %a, ptr align 4 %1, i64 8, i1 false)
check:7'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
          91:  call void `@llvm.lifetime.end.p0(i64` 8, ptr %1)
check:7'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
          92:  ret void
check:7'0     ~~~~~~~~~~
          93: }
check:7'0     ~~
          94:
check:7'0     ~
          95: ; Function Attrs: uwtable
check:7'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~
          96: define { float, float } `@f_ret_float_float_s()` unnamed_addr #0 {
check:7'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
          97: start:
check:7'0     ~~~~~~~
          98:  %0 = alloca [8 x i8], align 4
check:7'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
          99:  store float 1.000000e+00, ptr %0, align 4
check:7'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
         100:  %1 = getelementptr inbounds i8, ptr %0, i64 4
check:7'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
         101:  store float 2.000000e+00, ptr %1, align 4
check:7'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
         102:  %2 = load { float, float }, ptr %0, align 4
check:7'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
         103:  ret { float, float } %2
check:7'0     ~~~~~~~~~~~~~~~~~~~~~~~~~
         104: }
check:7'0     ~~
         105:
check:7'0     ~
         106: ; Function Attrs: uwtable
check:7'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~
         107: define void `@f_float_float_s_arg_insufficient_fprs(float` %0, float %1, float %2, float %3, float %4, float %5, float %6, i64 %7) unnamed_addr #0 {
check:7'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
         108: start:
check:7'0     ~~~~~~~
         109:  %8 = alloca [8 x i8], align 8
check:7'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
           .
           .
           .
>>>>>>
------------------------------------------

---- [codegen] tests/codegen/riscv-abi/riscv64-lp64d-abi.rs stdout ----

error: verification with 'FileCheck' failed
status: exit status: 1
command: "/home/ana/git/rust-lang/rust/build/x86_64-unknown-linux-gnu/llvm/build/bin/FileCheck" "--input-file" "/home/ana/git/rust-lang/rust/build/x86_64-unknown-linux-gnu/test/codegen/riscv-abi/riscv64-lp64d-abi/riscv64-lp64d-abi.ll" "/home/ana/git/rust-lang/rust/tests/codegen/riscv-abi/riscv64-lp64d-abi.rs" "--check-prefix=CHECK" "--check-prefix" "NONMSVC" "--allow-unused-prefixes" "--dump-input-context" "100"
stdout: none
--- stderr -------------------------------
/home/ana/git/rust-lang/rust/tests/codegen/riscv-abi/riscv64-lp64d-abi.rs:7:11: error: CHECK: expected string not found in input
// CHECK: define void `@f_fpr_tracking(double` %0, double %1, double %2, double %3, double %4, double %5, double %6, double %7, i8 zeroext %i)
          ^
/home/ana/git/rust-lang/rust/build/x86_64-unknown-linux-gnu/test/codegen/riscv-abi/riscv64-lp64d-abi/riscv64-lp64d-abi.ll:1:1: note: scanning from here
; ModuleID = 'riscv64_lp64d_abi.bed282cd9c73cc17-cgu.0'
^
/home/ana/git/rust-lang/rust/build/x86_64-unknown-linux-gnu/test/codegen/riscv-abi/riscv64-lp64d-abi/riscv64-lp64d-abi.ll:9:1: note: possible intended match here
define void `@f_fpr_tracking(double` %0, double %1, double %2, double %3, double %4, double %5, double %6, double %7, i8 noundef zeroext %i) unnamed_addr #0 {
^

Input file: /home/ana/git/rust-lang/rust/build/x86_64-unknown-linux-gnu/test/codegen/riscv-abi/riscv64-lp64d-abi/riscv64-lp64d-abi.ll
Check file: /home/ana/git/rust-lang/rust/tests/codegen/riscv-abi/riscv64-lp64d-abi.rs

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

Input was:
<<<<<<
           1: ; ModuleID = 'riscv64_lp64d_abi.bed282cd9c73cc17-cgu.0'
check:7'0     X~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ error: no match found
           2: source_filename = "riscv64_lp64d_abi.bed282cd9c73cc17-cgu.0"
check:7'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
           3: target datalayout = "e-m:e-p:64:64-i64:64-i128:128-n32:64-S128"
check:7'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
           4: target triple = "riscv64-unknown-linux-gnu"
check:7'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
           5:
check:7'0     ~
           6: %Tricky1 = type { [1 x double] }
check:7'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
           7:
check:7'0     ~
           8: ; Function Attrs: uwtable
check:7'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~
           9: define void `@f_fpr_tracking(double` %0, double %1, double %2, double %3, double %4, double %5, double %6, double %7, i8 noundef zeroext %i) unnamed_addr #0 {
check:7'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
check:7'1     ?                                                                                                                                                             possible intended match
          10: start:
check:7'0     ~~~~~~~
          11:  %8 = alloca [8 x i8], align 8
check:7'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
          12:  %h = alloca [8 x i8], align 8
check:7'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
          13:  %9 = alloca [8 x i8], align 8
check:7'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
          14:  %g = alloca [8 x i8], align 8
check:7'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
          15:  %10 = alloca [8 x i8], align 8
check:7'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
          16:  %f = alloca [8 x i8], align 8
check:7'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
          17:  %11 = alloca [8 x i8], align 8
check:7'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
          18:  %e = alloca [8 x i8], align 8
check:7'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
          19:  %12 = alloca [8 x i8], align 8
check:7'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
          20:  %d = alloca [8 x i8], align 8
check:7'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
          21:  %13 = alloca [8 x i8], align 8
check:7'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
          22:  %c = alloca [8 x i8], align 8
check:7'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
          23:  %14 = alloca [8 x i8], align 8
check:7'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
          24:  %b = alloca [8 x i8], align 8
check:7'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
          25:  %15 = alloca [8 x i8], align 8
check:7'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
          26:  %a = alloca [8 x i8], align 8
check:7'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
          27:  call void `@llvm.lifetime.start.p0(i64` 8, ptr %15)
check:7'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
          28:  store double %0, ptr %15, align 8
check:7'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
          29:  call void `@llvm.memcpy.p0.p0.i64(ptr` align 8 %a, ptr align 8 %15, i64 8, i1 false)
check:7'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
          30:  call void `@llvm.lifetime.end.p0(i64` 8, ptr %15)
check:7'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
          31:  call void `@llvm.lifetime.start.p0(i64` 8, ptr %14)
check:7'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
          32:  store double %1, ptr %14, align 8
check:7'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
          33:  call void `@llvm.memcpy.p0.p0.i64(ptr` align 8 %b, ptr align 8 %14, i64 8, i1 false)
check:7'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
          34:  call void `@llvm.lifetime.end.p0(i64` 8, ptr %14)
check:7'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
          35:  call void `@llvm.lifetime.start.p0(i64` 8, ptr %13)
check:7'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
          36:  store double %2, ptr %13, align 8
check:7'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
          37:  call void `@llvm.memcpy.p0.p0.i64(ptr` align 8 %c, ptr align 8 %13, i64 8, i1 false)
check:7'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
          38:  call void `@llvm.lifetime.end.p0(i64` 8, ptr %13)
check:7'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
          39:  call void `@llvm.lifetime.start.p0(i64` 8, ptr %12)
check:7'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
          40:  store double %3, ptr %12, align 8
check:7'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
          41:  call void `@llvm.memcpy.p0.p0.i64(ptr` align 8 %d, ptr align 8 %12, i64 8, i1 false)
check:7'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
          42:  call void `@llvm.lifetime.end.p0(i64` 8, ptr %12)
check:7'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
          43:  call void `@llvm.lifetime.start.p0(i64` 8, ptr %11)
check:7'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
          44:  store double %4, ptr %11, align 8
check:7'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
          45:  call void `@llvm.memcpy.p0.p0.i64(ptr` align 8 %e, ptr align 8 %11, i64 8, i1 false)
check:7'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
          46:  call void `@llvm.lifetime.end.p0(i64` 8, ptr %11)
check:7'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
          47:  call void `@llvm.lifetime.start.p0(i64` 8, ptr %10)
check:7'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
          48:  store double %5, ptr %10, align 8
check:7'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
          49:  call void `@llvm.memcpy.p0.p0.i64(ptr` align 8 %f, ptr align 8 %10, i64 8, i1 false)
check:7'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
          50:  call void `@llvm.lifetime.end.p0(i64` 8, ptr %10)
check:7'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
          51:  call void `@llvm.lifetime.start.p0(i64` 8, ptr %9)
check:7'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
          52:  store double %6, ptr %9, align 8
check:7'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
          53:  call void `@llvm.memcpy.p0.p0.i64(ptr` align 8 %g, ptr align 8 %9, i64 8, i1 false)
check:7'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
          54:  call void `@llvm.lifetime.end.p0(i64` 8, ptr %9)
check:7'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
          55:  call void `@llvm.lifetime.start.p0(i64` 8, ptr %8)
check:7'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
          56:  store double %7, ptr %8, align 8
check:7'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
          57:  call void `@llvm.memcpy.p0.p0.i64(ptr` align 8 %h, ptr align 8 %8, i64 8, i1 false)
check:7'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
          58:  call void `@llvm.lifetime.end.p0(i64` 8, ptr %8)
check:7'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
          59:  ret void
check:7'0     ~~~~~~~~~~
          60: }
check:7'0     ~~
          61:
check:7'0     ~
          62: ; Function Attrs: uwtable
check:7'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~
          63: define void `@f_double_s_arg(double` %0) unnamed_addr #0 {
check:7'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
          64: start:
check:7'0     ~~~~~~~
          65:  %1 = alloca [8 x i8], align 8
check:7'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
          66:  %a = alloca [8 x i8], align 8
check:7'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
          67:  call void `@llvm.lifetime.start.p0(i64` 8, ptr %1)
check:7'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
          68:  store double %0, ptr %1, align 8
check:7'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
          69:  call void `@llvm.memcpy.p0.p0.i64(ptr` align 8 %a, ptr align 8 %1, i64 8, i1 false)
check:7'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
          70:  call void `@llvm.lifetime.end.p0(i64` 8, ptr %1)
check:7'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
          71:  ret void
check:7'0     ~~~~~~~~~~
          72: }
check:7'0     ~~
          73:
check:7'0     ~
          74: ; Function Attrs: uwtable
check:7'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~
          75: define double `@f_ret_double_s()` unnamed_addr #0 {
check:7'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
          76: start:
check:7'0     ~~~~~~~
          77:  %_0 = alloca [8 x i8], align 8
check:7'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
          78:  store double 1.000000e+00, ptr %_0, align 8
check:7'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
          79:  %0 = load double, ptr %_0, align 8
check:7'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
          80:  ret double %0
check:7'0     ~~~~~~~~~~~~~~~
          81: }
check:7'0     ~~
          82:
check:7'0     ~
          83: ; Function Attrs: uwtable
check:7'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~
          84: define void `@f_double_double_s_arg({` double, double } %0) unnamed_addr #0 {
check:7'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
          85: start:
check:7'0     ~~~~~~~
          86:  %1 = alloca [16 x i8], align 8
check:7'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
          87:  %a = alloca [16 x i8], align 8
check:7'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
          88:  call void `@llvm.lifetime.start.p0(i64` 16, ptr %1)
check:7'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
          89:  store { double, double } %0, ptr %1, align 8
check:7'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
          90:  call void `@llvm.memcpy.p0.p0.i64(ptr` align 8 %a, ptr align 8 %1, i64 16, i1 false)
check:7'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
          91:  call void `@llvm.lifetime.end.p0(i64` 16, ptr %1)
check:7'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
          92:  ret void
check:7'0     ~~~~~~~~~~
          93: }
check:7'0     ~~
          94:
check:7'0     ~
          95: ; Function Attrs: uwtable
check:7'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~
          96: define { double, double } `@f_ret_double_double_s()` unnamed_addr #0 {
check:7'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
          97: start:
check:7'0     ~~~~~~~
          98:  %0 = alloca [16 x i8], align 8
check:7'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
          99:  store double 1.000000e+00, ptr %0, align 8
check:7'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
         100:  %1 = getelementptr inbounds i8, ptr %0, i64 8
check:7'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
         101:  store double 2.000000e+00, ptr %1, align 8
check:7'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
         102:  %2 = load { double, double }, ptr %0, align 8
check:7'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
         103:  ret { double, double } %2
check:7'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~
         104: }
check:7'0     ~~
         105:
check:7'0     ~
         106: ; Function Attrs: uwtable
check:7'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~
         107: define void `@f_double_float_s_arg({` double, float } %0) unnamed_addr #0 {
check:7'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
         108: start:
check:7'0     ~~~~~~~
         109:  %1 = alloca [12 x i8], align 8
check:7'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
           .
           .
           .
>>>>>>
------------------------------------------

failures:
    [codegen] tests/codegen/riscv-abi/call-llvm-intrinsics.rs
    [codegen] tests/codegen/riscv-abi/riscv64-lp64f-lp64d-abi.rs
    [codegen] tests/codegen/riscv-abi/riscv64-lp64d-abi.rs

test result: FAILED. 498 passed; 3 failed; 151 ignored; 0 measured; 0 filtered out; finished in 4.70s

Some tests failed in compiletest suite=codegen mode=codegen host=x86_64-unknown-linux-gnu target=riscv64gc-unknown-linux-gnu
Build completed unsuccessfully in 0:00:15
```

</details>
2024-06-06 14:46:19 -07:00
Rémy Rakic
216424da32 Revert "Rollup merge of #124099 - voidc:disallow-ambiguous-expr-attrs, r=davidtwco"
This reverts commit 57dad1d75e, reversing
changes made to 36316df9fe.
2024-06-06 20:39:54 +00:00
bors
98489f2487 Auto merge of #126068 - lqd:revert-124976, r=petrochenkov
Revert "use `tcx.used_crates(())` more" before it reaches beta

There are more open issues caused by #124976 than will be fixed by #125493 alone. The beta cut is soon, so let's revert it and buy some time to analyze and fix these issues in our own time.

fixes https://github.com/rust-lang/rust/issues/125474
fixes https://github.com/rust-lang/rust/issues/125484
fixes https://github.com/rust-lang/rust/issues/125646
fixes https://github.com/rust-lang/rust/issues/125707
fixes #126066
fixes #125934
fixes https://github.com/rust-lang/rust/issues/126021

r? `@petrochenkov`
`@bors` p=1
2024-06-06 20:18:43 +00:00
Nilstrieb
b4c439c3de Improve naming and path operations in crate loader
Simplify the path operation with `join`, clarify some of the names.
2024-06-06 21:53:29 +02:00
Nilstrieb
4c2b21a2ef Simplify string operations in crate loader 2024-06-06 21:53:29 +02:00
Nilstrieb
3a02cdb54f Remove constant parameter from CrateLocator::new 2024-06-06 21:50:24 +02:00
Jakub Beránek
a5429d53af
Remove same-lib-two-locations-no-panic run-make test
This test doesn't really make any sense anymore, it became broken a long time ago.
2024-06-06 21:41:47 +02:00
Caio
a8084dcec1 [RFC-2011] Allow core_intrinsics when activated 2024-06-06 16:30:05 -03:00
Daniel Sedlak
26dc8bd5b0 Stabilize Option::take_if 2024-06-06 20:01:59 +02:00
Jakub Beránek
6e1121b492
Do not use relative paths to Rust source root in run-make tests 2024-06-06 19:16:53 +02:00
onur-ozkan
9c46479a6a use windows compatible executable name for libcxx-version
Signed-off-by: onur-ozkan <work@onurozkan.dev>
2024-06-06 20:13:39 +03:00
Urgau
89d86ae5bd Don't warn on fields in the unreachable_pub lint 2024-06-06 19:07:05 +02:00
onur-ozkan
c76e59e712 prefer compile::stream_cargo for building tools
Previously, we were running bare commands for `ToolBuild` step and
were unable to utilize some of the flags which  are already handled by
`compile::stream_cargo`.

This change makes `ToolBuild` to use `compile::stream_cargo`, allowing us
to benefit from the flags supported by the bootstrap cargo.

Signed-off-by: onur-ozkan <work@onurozkan.dev>
2024-06-06 20:06:20 +03:00
Zalathar
2692d44d83 compiletest: Allow multiple //@ run-flags: headers 2024-06-07 01:51:57 +10:00
Oli Scherer
72cbb8bd94 Revert "Use the HIR instead of mir_keys for determining whether something will have a MIR body."
This reverts commit e5cba17b84.
2024-06-06 15:31:00 +00:00