rust icon indicating copy to clipboard operation
rust copied to clipboard

Return values larger than 2 registers using a return area pointer

Open bjorn3 opened this issue 1 year ago • 31 comments

LLVM and Cranelift disagree about how to return values that don't fit in the registers designated for return values. LLVM will force the entire return value to be passed by return area pointer, while Cranelift will look at each IR level return value independently and decide to pass it in a register or not, which would result in the return value being passed partially in registers and partially through a return area pointer.

While Cranelift may need to be fixed as the LLVM behavior is generally more correct with respect to the surface language, forcing this behavior in rustc itself makes it easier for other backends to conform to the Rust ABI and for the C ABI rustc already handles this behavior anyway.

In addition LLVM's decision to pass the return value in registers or using a return area pointer depends on how exactly the return type is lowered to an LLVM IR type. For example Option<u128> can be lowered as { i128, i128 } in which case the x86_64 backend would use a return area pointer, or it could be passed as { i32, i128 } in which case the x86_64 backend would pass it in registers by taking advantage of an LLVM ABI extension that allows using 3 registers for the x86_64 sysv call conv rather than the officially specified 2 registers.

This adjustment is only necessary for the Rust ABI as for other ABI's the calling convention implementations in rustc_target already ensure any return value which doesn't fit in the available amount of return registers is passed in the right way for the current target.

Helps with https://github.com/rust-lang/rustc_codegen_cranelift/issues/1525 cc https://github.com/bytecodealliance/wasmtime/issues/9250

bjorn3 avatar Oct 03 '24 17:10 bjorn3

r? @jieyouxu

rustbot has assigned @jieyouxu. They will have a look at your PR within the next two weeks and either review your PR or reassign to another reviewer.

Use r? to explicitly pick a reviewer

rustbot avatar Oct 03 '24 17:10 rustbot

I have no clue about this... r? compiler

jieyouxu avatar Oct 03 '24 17:10 jieyouxu

The job x86_64-gnu-llvm-18 failed! Check out the build log: (web) (plain)

Click to see the possible cause of the failure (guessed by this bot)
------
 > importing cache manifest from ghcr.io/rust-lang/rust-ci-cache:20950f2ccee3dff53a038adf5c1cf05231c0b30772617126a5f6478a66316a29cba9aead69f7bb0004886d32c1f8e6287542cf6d25130711c82d16a66201d4fe:
------
##[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-18]
---
sccache: Starting the server...
##[group]Configure the build
configure: processing command line
configure: 
configure: build.configure-args := ['--build=x86_64-unknown-linux-gnu', '--llvm-root=/usr/lib/llvm-18', '--enable-llvm-link-shared', '--set', 'rust.randomize-layout=true', '--set', 'rust.thin-lto-import-instr-limit=10', '--set', 'change-id=99999999', '--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', '--enable-new-symbol-mangling']
configure: target.x86_64-unknown-linux-gnu.llvm-config := /usr/lib/llvm-18/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/i128-x86-align.rs stdout ----

error: verification with 'FileCheck' failed
status: exit status: 1
command: "/usr/lib/llvm-18/bin/FileCheck" "--input-file" "/checkout/obj/build/x86_64-unknown-linux-gnu/test/codegen/i128-x86-align/i128-x86-align.ll" "/checkout/tests/codegen/i128-x86-align.rs" "--check-prefix=CHECK" "--check-prefix" "NONMSVC" "--allow-unused-prefixes" "--dump-input-context" "100"
--- stderr -------------------------------
/checkout/tests/codegen/i128-x86-align.rs:26:17: error: CHECK-NEXT: expected string not found in input
/checkout/tests/codegen/i128-x86-align.rs:26:17: error: CHECK-NEXT: expected string not found in input
 // CHECK-NEXT: [[IV1:%.*]] = insertvalue { i32, i128 } poison, i32 [[A]], 0
                ^
/checkout/obj/build/x86_64-unknown-linux-gnu/test/codegen/i128-x86-align/i128-x86-align.ll:13:34: note: scanning from here
 %2 = load i128, ptr %1, align 16, !noundef !3
                                 ^
/checkout/obj/build/x86_64-unknown-linux-gnu/test/codegen/i128-x86-align/i128-x86-align.ll:13:34: note: with "A" equal to "%0"
 %2 = load i128, ptr %1, align 16, !noundef !3
                                 ^
/checkout/obj/build/x86_64-unknown-linux-gnu/test/codegen/i128-x86-align/i128-x86-align.ll:15:13: note: possible intended match here
 %3 = getelementptr inbounds i8, ptr %_0, i64 16
/checkout/tests/codegen/i128-x86-align.rs:68:18: error: CHECK-LABEL: expected string not found in input
/checkout/tests/codegen/i128-x86-align.rs:68:18: error: CHECK-LABEL: expected string not found in input
 // CHECK-LABEL: define { i128, i128 } @transmute(i32 noundef %x.0, i128 noundef %x.1)
                 ^
/checkout/obj/build/x86_64-unknown-linux-gnu/test/codegen/i128-x86-align/i128-x86-align.ll:43:28: note: scanning from here
define void @load_volatile(ptr dead_on_unwind noalias nocapture noundef writable sret([32 x i8]) align 16 dereferenceable(32) %_0, ptr noalias noundef readonly align 16 dereferenceable(32) %x) unnamed_addr #0 {
                           ^
/checkout/obj/build/x86_64-unknown-linux-gnu/test/codegen/i128-x86-align/i128-x86-align.ll:51:95: note: possible intended match here
define void @transmute(ptr dead_on_unwind noalias nocapture noundef writable sret([32 x i8]) align 16 dereferenceable(32) %_0, i32 noundef %x.0, i128 noundef %x.1) unnamed_addr #0 {

Input file: /checkout/obj/build/x86_64-unknown-linux-gnu/test/codegen/i128-x86-align/i128-x86-align.ll
Check file: /checkout/tests/codegen/i128-x86-align.rs


-dump-input=help explains the following input dump.
Input was:
<<<<<<
<<<<<<
            1: ; ModuleID = 'i128_x86_align.c99a19dc19580418-cgu.0' 
            2: source_filename = "i128_x86_align.c99a19dc19580418-cgu.0" 
            3: target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-i128:128-f80:128-n8:16:32:64-S128" 
            4: target triple = "x86_64-unknown-linux-gnu" 
            5:  
            6: %ScalarPair = type { i32, [3 x i32], i128 } 
            7:  
            8: ; Function Attrs: nonlazybind uwtable 
            9: define void @load(ptr dead_on_unwind noalias nocapture noundef writable sret([32 x i8]) align 16 dereferenceable(32) %_0, ptr noalias noundef readonly align 16 dereferenceable(32) %x) unnamed_addr #0 { 
           10: start: 
           11:  %0 = load i32, ptr %x, align 16, !noundef !3 
           12:  %1 = getelementptr inbounds i8, ptr %x, i64 16 
           13:  %2 = load i128, ptr %1, align 16, !noundef !3 
next:26'0                                       X~~~~~~~~~~~~~ error: no match found
next:26'1                                                      with "A" equal to "%0"
           14:  store i32 %0, ptr %_0, align 16 
next:26'0      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
           15:  %3 = getelementptr inbounds i8, ptr %_0, i64 16 
next:26'0      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
next:26'2                  ?                                     possible intended match
           16:  store i128 %2, ptr %3, align 16 
next:26'0      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
           17:  ret void 
next:26'0      ~~~~~~~~~~
           18: } 
next:26'0      ~~
next:26'0      ~
next:26'0      ~
           20: ; Function Attrs: nonlazybind uwtable 
next:26'0      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
           21: define void @store(ptr noalias noundef align 16 dereferenceable(32) %x) unnamed_addr #0 { 
next:26'0      ~~~~~~~~~~~~~~~~~~~
           22: start: 
           23:  store i32 1, ptr %x, align 16 
           24:  %0 = getelementptr inbounds i8, ptr %x, i64 16 
           25:  store i128 2, ptr %0, align 16 
           26:  ret void 
           27: } 
           28:  
           29: ; Function Attrs: nonlazybind uwtable 
           30: define void @alloca() unnamed_addr #0 { 
           31: start: 
           32:  %x = alloca [32 x i8], align 16 
           33:  call void @llvm.lifetime.start.p0(i64 32, ptr %x) 
           34:  store i32 1, ptr %x, align 16 
           35:  %0 = getelementptr inbounds i8, ptr %x, i64 16 
           36:  store i128 2, ptr %0, align 16 
           37:  call void @store(ptr noalias noundef align 16 dereferenceable(32) %x) 
           38:  call void @llvm.lifetime.end.p0(i64 32, ptr %x) 
           39:  ret void 
           40: } 
           41:  
           42: ; Function Attrs: nonlazybind uwtable 
           43: define void @load_volatile(ptr dead_on_unwind noalias nocapture noundef writable sret([32 x i8]) align 16 dereferenceable(32) %_0, ptr noalias noundef readonly align 16 dereferenceable(32) %x) unnamed_addr #0 { 
label:68'0                                X~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ error: no match found
label:68'0     ~~~~~~~
label:68'0     ~~~~~~~
           45:  %0 = load volatile %ScalarPair, ptr %x, align 16 
label:68'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
           46:  store %ScalarPair %0, ptr %_0, align 16 
label:68'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
           47:  ret void 
label:68'0     ~~~~~~~~~~
           48: } 
label:68'0     ~~
label:68'0     ~
label:68'0     ~
           50: ; Function Attrs: nonlazybind uwtable 
label:68'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
           51: define void @transmute(ptr dead_on_unwind noalias nocapture noundef writable sret([32 x i8]) align 16 dereferenceable(32) %_0, i32 noundef %x.0, i128 noundef %x.1) unnamed_addr #0 { 
label:68'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
label:68'1                                                                                                   ?                                                                                        possible intended match
label:68'0     ~~~~~~~
label:68'0     ~~~~~~~
           53:  store i32 %x.0, ptr %_0, align 16 
label:68'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
           54:  %0 = getelementptr inbounds i8, ptr %_0, i64 16 
label:68'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
           55:  store i128 %x.1, ptr %0, align 16 
label:68'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
           56:  ret void 
label:68'0     ~~~~~~~~~~
           57: } 
label:68'0     ~~
label:68'0     ~
label:68'0     ~
           59: ; Function Attrs: nonlazybind uwtable 
label:68'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
           60: define void @store_struct(ptr noalias noundef align 16 dereferenceable(32) %x) unnamed_addr #0 { 
label:68'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
label:68'0     ~~~~~~~
           62:  %_2 = alloca [32 x i8], align 16 
label:68'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
label:68'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
           63:  call void @llvm.lifetime.start.p0(i64 32, ptr %_2) 
label:68'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
           64:  store i32 1, ptr %_2, align 16 
label:68'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
           65:  %0 = getelementptr inbounds i8, ptr %_2, i64 4 
label:68'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
           66:  store i32 2, ptr %0, align 4 
label:68'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
           67:  %1 = getelementptr inbounds i8, ptr %_2, i64 16 
label:68'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
           68:  store i128 3, ptr %1, align 16 
label:68'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
           69:  call void @llvm.memcpy.p0.p0.i64(ptr align 16 %x, ptr align 16 %_2, i64 32, i1 false) 
label:68'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
           70:  call void @llvm.lifetime.end.p0(i64 32, ptr %_2) 
label:68'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
           71:  ret void 
label:68'0     ~~~~~~~~~~
           72: } 
label:68'0     ~~
label:68'0     ~
label:68'0     ~
           74: ; Function Attrs: nocallback nofree nounwind willreturn memory(argmem: readwrite) 
label:68'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
           75: declare void @llvm.memcpy.p0.p0.i64(ptr noalias nocapture writeonly, ptr noalias nocapture readonly, i64, i1 immarg) #1 
label:68'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
label:68'0     ~
label:68'0     ~
           77: ; Function Attrs: nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) 
label:68'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
           78: declare void @llvm.lifetime.start.p0(i64 immarg, ptr nocapture) #2 
label:68'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
label:68'0     ~
label:68'0     ~
           80: ; Function Attrs: nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) 
label:68'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
           81: declare void @llvm.lifetime.end.p0(i64 immarg, ptr nocapture) #2 
label:68'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
label:68'0     ~
label:68'0     ~
           83: attributes #0 = { nonlazybind uwtable "probe-stack"="inline-asm" "target-cpu"="x86-64" } 
label:68'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
           84: attributes #1 = { nocallback nofree nounwind willreturn memory(argmem: readwrite) } 
label:68'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
           85: attributes #2 = { nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) } 
label:68'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
label:68'0     ~
label:68'0     ~
           87: !llvm.module.flags = !{!0, !1} 
label:68'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
           88: !llvm.ident = !{!2} 
label:68'0     ~~~~~~~~~~~~~~~~~~~~
label:68'0     ~
label:68'0     ~
           90: !0 = !{i32 8, !"PIC Level", i32 2} 
label:68'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
           91: !1 = !{i32 2, !"RtLibUseGOT", i32 1} 
label:68'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
           92: !2 = !{!"rustc version 1.83.0-nightly (4c6421a22 2024-10-03)"} 
label:68'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
           93: !3 = !{} 
label:68'0     ~~~~~~~~~
------------------------------------------



rust-log-analyzer avatar Oct 03 '24 17:10 rust-log-analyzer

A perf run can't hurt.

@bors try @rust-timer queue

bjorn3 avatar Oct 03 '24 18:10 bjorn3

Awaiting bors try build completion.

@rustbot label: +S-waiting-on-perf

rust-timer avatar Oct 03 '24 18:10 rust-timer

:hourglass: Trying commit 34210ca25b1235049e4b6e740882942b84cdadfc with merge 3fb9bf9f57bf3271f7203a8baf759edd81c1a8c8...

bors avatar Oct 03 '24 18:10 bors

fwiw LLVM often looks at an i128, sees that the intermediate computation will not exceed 64 bits for $REASONS, and then folds it into a 64-bit computation, in an actual optimized code section. this has been true since a long time ago. not that we shouldn't check the perf, obviously.

workingjubilee avatar Oct 03 '24 18:10 workingjubilee

:sunny: Try build successful - checks-actions Build commit: 3fb9bf9f57bf3271f7203a8baf759edd81c1a8c8 (3fb9bf9f57bf3271f7203a8baf759edd81c1a8c8)

bors avatar Oct 03 '24 20:10 bors

Queued 3fb9bf9f57bf3271f7203a8baf759edd81c1a8c8 with parent 1e5719bdc40bb553089ce83525f07dfe0b2e71e9, future comparison URL. There are currently 2 preceding artifacts in the queue. It will probably take at least ~2.6 hours until the benchmark run finishes.

rust-timer avatar Oct 03 '24 20:10 rust-timer

Finished benchmarking commit (3fb9bf9f57bf3271f7203a8baf759edd81c1a8c8): comparison URL.

Overall result: no relevant changes - no action needed

Benchmarking this pull request likely means that it is perf-sensitive, so we're automatically marking it as not fit for rolling up. While you can manually mark this PR as fit for rollup, we strongly recommend not doing so since this PR may lead to changes in compiler perf.

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

Instruction count

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

Max RSS (memory usage)

Results (primary 3.3%, secondary 1.9%)

This is a less reliable metric that may be of interest but was not used to determine the overall result at the top of this comment.

mean range count
Regressions ❌
(primary)
3.3% [3.3%, 3.3%] 1
Regressions ❌
(secondary)
2.9% [2.1%, 4.6%] 4
Improvements ✅
(primary)
- - 0
Improvements ✅
(secondary)
-2.0% [-2.0%, -2.0%] 1
All ❌✅ (primary) 3.3% [3.3%, 3.3%] 1

Cycles

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

Binary size

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

Bootstrap: 773.547s -> 773.604s (0.01%) Artifact size: 342.00 MiB -> 341.98 MiB (-0.00%)

rust-timer avatar Oct 03 '24 23:10 rust-timer

r? compiler cc @nikic maybe

petrochenkov avatar Oct 04 '24 20:10 petrochenkov

My only question here is whether it would make sense to try and preserve the behavior you mention where we pass the result in up to three registers rather than two? Or does Cranelift not support that variant?

LLVM only supports this on some architectures afaik and conditionally doing this depending on the architecture is harder than never doing it at all. In any case Cranelift only supports it on x86_64. Also due to the interaction of PassMode::Pair with padding, it depends on the exact way rust types are lowered to llvm types if some types would be considered 3 or 4 registers big. The LLVM and Cranelift backends currently disagree about this for some types including the aformentioned Option<u128>. The LLVM backend lowers it as { i32, i128 } without padding which fits in 3 registers, while the Cranelift backend takes the total type size including padding (32 bytes) which requires 4 registers.

bjorn3 avatar Oct 10 '24 12:10 bjorn3

The job mingw-check-tidy failed! Check out the build log: (web) (plain)

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

COPY host-x86_64/mingw-check/validate-toolstate.sh /scripts/
COPY host-x86_64/mingw-check/validate-error-codes.sh /scripts/

# NOTE: intentionally uses python2 for x.py so we can test it still works.
# validate-toolstate only runs in our CI, so it's ok for it to only support python3.
ENV SCRIPT TIDY_PRINT_DIFF=1 python2.7 ../x.py test \
           --stage 0 src/tools/tidy tidyselftest --extra-checks=py:lint,cpp:fmt
# This file is autogenerated by pip-compile with Python 3.10
# by the following command:
#
#    pip-compile --allow-unsafe --generate-hashes reuse-requirements.in
---
#13 2.996 Building wheels for collected packages: reuse
#13 2.997   Building wheel for reuse (pyproject.toml): started
#13 3.302   Building wheel for reuse (pyproject.toml): finished with status 'done'
#13 3.303   Created wheel for reuse: filename=reuse-4.0.3-cp310-cp310-manylinux_2_35_x86_64.whl size=132715 sha256=dfa09868353292d98f811d3efdb0d54d07389e808efc71d68e3b93c514bf8bec
#13 3.303   Stored in directory: /tmp/pip-ephem-wheel-cache-9s0hnzqe/wheels/3d/8d/0a/e0fc6aba4494b28a967ab5eaf951c121d9c677958714e34532
#13 3.307 Installing collected packages: boolean-py, binaryornot, tomlkit, reuse, python-debian, markupsafe, license-expression, jinja2, chardet, attrs
#13 3.748 Successfully installed attrs-23.2.0 binaryornot-0.4.4 boolean-py-4.0 chardet-5.2.0 jinja2-3.1.4 license-expression-30.3.0 markupsafe-2.1.5 python-debian-0.1.49 reuse-4.0.3 tomlkit-0.13.0
#13 3.748 WARNING: Running pip as the 'root' user can result in broken permissions and conflicting behaviour with the system package manager. It is recommended to use a virtual environment instead: https://pip.pypa.io/warnings/venv
#13 4.330 Collecting virtualenv
#13 4.330 Collecting virtualenv
#13 4.376   Downloading virtualenv-20.26.6-py3-none-any.whl (6.0 MB)
#13 4.464      ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 6.0/6.0 MB 71.5 MB/s eta 0:00:00
#13 4.507 Collecting distlib<1,>=0.3.7
#13 4.512   Downloading distlib-0.3.9-py2.py3-none-any.whl (468 kB)
#13 4.520      ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 469.0/469.0 KB 81.3 MB/s eta 0:00:00
#13 4.557 Collecting filelock<4,>=3.12.2
#13 4.562   Downloading filelock-3.16.1-py3-none-any.whl (16 kB)
#13 4.595 Collecting platformdirs<5,>=3.9.1
#13 4.599   Downloading platformdirs-4.3.6-py3-none-any.whl (18 kB)
#13 4.683 Installing collected packages: distlib, platformdirs, filelock, virtualenv
#13 4.877 Successfully installed distlib-0.3.9 filelock-3.16.1 platformdirs-4.3.6 virtualenv-20.26.6
#13 DONE 5.0s

#14 [7/8] COPY host-x86_64/mingw-check/validate-toolstate.sh /scripts/
#14 DONE 0.0s
---
DirectMap4k:      229312 kB
DirectMap2M:     9207808 kB
DirectMap1G:     9437184 kB
##[endgroup]
Executing TIDY_PRINT_DIFF=1 python2.7 ../x.py test            --stage 0 src/tools/tidy tidyselftest --extra-checks=py:lint,cpp:fmt
+ TIDY_PRINT_DIFF=1 python2.7 ../x.py test --stage 0 src/tools/tidy tidyselftest --extra-checks=py:lint,cpp:fmt
    Finished `dev` profile [unoptimized] target(s) in 0.06s
##[endgroup]
downloading https://static.rust-lang.org/dist/2024-09-22/rustfmt-nightly-x86_64-unknown-linux-gnu.tar.xz
extracting /checkout/obj/build/cache/2024-09-22/rustfmt-nightly-x86_64-unknown-linux-gnu.tar.xz to /checkout/obj/build/x86_64-unknown-linux-gnu/rustfmt
---
fmt check
fmt: checked 5593 files
tidy check
tidy: Skipping binary file check, read-only filesystem
##[error]tidy error: /checkout/tests/codegen/i128-x86-align.rs:21: line longer than 100 chars
removing old virtual environment
creating virtual environment at '/checkout/obj/build/venv' using 'python3.10'
Requirement already satisfied: pip in ./build/venv/lib/python3.10/site-packages (24.2)
All checks passed!
checking C++ file formatting
some tidy checks failed
some tidy checks failed
Command has failed. Rerun with -v to see more details.
  local time: Thu Oct 10 14:10:36 UTC 2024
  network time: Thu, 10 Oct 2024 14:10:37 GMT
##[error]Process completed with exit code 1.
Post job cleanup.

rust-log-analyzer avatar Oct 10 '24 14:10 rust-log-analyzer

@rustbot ready

bjorn3 avatar Oct 10 '24 15:10 bjorn3

@bors r+

nikic avatar Oct 10 '24 19:10 nikic

:pushpin: Commit ccd1bc2ad1be8516f16d80b8cb6dffd79f5c6c85 has been approved by nikic

It is now in the queue for this repository.

bors avatar Oct 10 '24 19:10 bors

:hourglass: Testing commit ccd1bc2ad1be8516f16d80b8cb6dffd79f5c6c85 with merge 7fc6cad8a0a4b47baf413161f667d6b9edf87095...

bors avatar Oct 10 '24 22:10 bors

The job test-various failed! Check out the build log: (web) (plain)

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

---- [codegen] tests/codegen/float/f128.rs#other stdout ----

error in revision `other`: verification with 'FileCheck' failed
status: exit status: 1
command: "/checkout/obj/build/x86_64-unknown-linux-gnu/ci-llvm/bin/FileCheck" "--input-file" "/checkout/obj/build/x86_64-unknown-linux-gnu/test/codegen/float/f128.other/f128.ll" "/checkout/tests/codegen/float/f128.rs" "--check-prefix=CHECK" "--check-prefix" "other" "--check-prefix" "NONMSVC" "--allow-unused-prefixes" "--dump-input-context" "100"
--- stderr -------------------------------
/checkout/tests/codegen/float/f128.rs:55:17: error: CHECK-LABEL: expected string not found in input
/checkout/tests/codegen/float/f128.rs:55:17: error: CHECK-LABEL: expected string not found in input
// CHECK-LABEL: fp128 @f128_neg(
                ^
/checkout/obj/build/x86_64-unknown-linux-gnu/test/codegen/float/f128.other/f128.ll:42:46: note: scanning from here
define dso_local noundef zeroext i1 @f128_le(fp128 noundef %a, fp128 noundef %b) unnamed_addr #0 {
                                             ^
/checkout/obj/build/x86_64-unknown-linux-gnu/test/codegen/float/f128.other/f128.ll:49:18: note: possible intended match here
define dso_local void @f128_neg(ptr dead_on_unwind noalias nocapture noundef writable writeonly sret([16 x i8]) align 16 dereferenceable(16) %_0, fp128 noundef %a) unnamed_addr #1 {


Input file: /checkout/obj/build/x86_64-unknown-linux-gnu/test/codegen/float/f128.other/f128.ll


-dump-input=help explains the following input dump.
Input was:
<<<<<<
<<<<<<
            1: ; ModuleID = 'f128.486e1c7a7d34452b-cgu.0' 
            2: source_filename = "f128.486e1c7a7d34452b-cgu.0" 
            3: target datalayout = "e-m:e-p:32:32-p10:8:8-p20:8:8-i64:64-n32:64-S128-ni:1:10:20" 
            4: target triple = "wasm32-unknown-wasi" 
            5:  
            6: ; Function Attrs: mustprogress nofree norecurse nosync nounwind willreturn memory(none) 
            7: define dso_local noundef zeroext i1 @f128_eq(fp128 noundef %a, fp128 noundef %b) unnamed_addr #0 { 
            8: start: 
            9:  %_0 = fcmp oeq fp128 %a, %b 
           10:  ret i1 %_0 
           11: } 
           12:  
           13: ; Function Attrs: mustprogress nofree norecurse nosync nounwind willreturn memory(none) 
           14: define dso_local noundef zeroext i1 @f128_ne(fp128 noundef %a, fp128 noundef %b) unnamed_addr #0 { 
           15: start: 
           16:  %_0 = fcmp une fp128 %a, %b 
           17:  ret i1 %_0 
           18: } 
           19:  
           20: ; Function Attrs: mustprogress nofree norecurse nosync nounwind willreturn memory(none) 
           21: define dso_local noundef zeroext i1 @f128_gt(fp128 noundef %a, fp128 noundef %b) unnamed_addr #0 { 
           22: start: 
           23:  %_0 = fcmp ogt fp128 %a, %b 
           24:  ret i1 %_0 
           25: } 
           26:  
           27: ; Function Attrs: mustprogress nofree norecurse nosync nounwind willreturn memory(none) 
           28: define dso_local noundef zeroext i1 @f128_ge(fp128 noundef %a, fp128 noundef %b) unnamed_addr #0 { 
           29: start: 
           30:  %_0 = fcmp oge fp128 %a, %b 
           31:  ret i1 %_0 
           32: } 
           33:  
           34: ; Function Attrs: mustprogress nofree norecurse nosync nounwind willreturn memory(none) 
           35: define dso_local noundef zeroext i1 @f128_lt(fp128 noundef %a, fp128 noundef %b) unnamed_addr #0 { 
           36: start: 
           37:  %_0 = fcmp olt fp128 %a, %b 
           38:  ret i1 %_0 
           39: } 
           40:  
           41: ; Function Attrs: mustprogress nofree norecurse nosync nounwind willreturn memory(none) 
           42: define dso_local noundef zeroext i1 @f128_le(fp128 noundef %a, fp128 noundef %b) unnamed_addr #0 { 
label:55'0                                                  X~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ error: no match found
label:55'0     ~~~~~~~
label:55'0     ~~~~~~~
           44:  %_0 = fcmp ole fp128 %a, %b 
label:55'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
           45:  ret i1 %_0 
label:55'0     ~~~~~~~~~~~~
           46: } 
label:55'0     ~~
label:55'0     ~
label:55'0     ~
           48: ; Function Attrs: mustprogress nofree norecurse nosync nounwind willreturn memory(argmem: write) 
label:55'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
           49: define dso_local void @f128_neg(ptr dead_on_unwind noalias nocapture noundef writable writeonly sret([16 x i8]) align 16 dereferenceable(16) %_0, fp128 noundef %a) unnamed_addr #1 { 
label:55'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
label:55'1                      ?                                                                                                                                                                     possible intended match
label:55'0     ~~~~~~~
label:55'0     ~~~~~~~
           51:  %0 = fneg fp128 %a 
label:55'0     ~~~~~~~~~~~~~~~~~~~~
           52:  store fp128 %0, ptr %_0, align 16 
label:55'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
           53:  ret void 
label:55'0     ~~~~~~~~~~
           54: } 
label:55'0     ~~
label:55'0     ~
label:55'0     ~
           56: ; Function Attrs: mustprogress nofree norecurse nosync nounwind willreturn memory(argmem: write) 
label:55'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
           57: define dso_local void @f128_add(ptr dead_on_unwind noalias nocapture noundef writable writeonly sret([16 x i8]) align 16 dereferenceable(16) %_0, fp128 noundef %a, fp128 noundef %b) unnamed_addr #1 { 
label:55'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
label:55'0     ~~~~~~~
label:55'0     ~~~~~~~
           59:  %0 = fadd fp128 %a, %b 
label:55'0     ~~~~~~~~~~~~~~~~~~~~~~~~
           60:  store fp128 %0, ptr %_0, align 16 
label:55'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
           61:  ret void 
label:55'0     ~~~~~~~~~~
           62: } 
label:55'0     ~~
label:55'0     ~
label:55'0     ~
           64: ; Function Attrs: mustprogress nofree norecurse nosync nounwind willreturn memory(argmem: write) 
label:55'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
           65: define dso_local void @f128_sub(ptr dead_on_unwind noalias nocapture noundef writable writeonly sret([16 x i8]) align 16 dereferenceable(16) %_0, fp128 noundef %a, fp128 noundef %b) unnamed_addr #1 { 
label:55'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
label:55'0     ~~~~~~~
label:55'0     ~~~~~~~
           67:  %0 = fsub fp128 %a, %b 
label:55'0     ~~~~~~~~~~~~~~~~~~~~~~~~
           68:  store fp128 %0, ptr %_0, align 16 
label:55'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
           69:  ret void 
label:55'0     ~~~~~~~~~~
           70: } 
label:55'0     ~~
label:55'0     ~
label:55'0     ~
           72: ; Function Attrs: mustprogress nofree norecurse nosync nounwind willreturn memory(argmem: write) 
label:55'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
           73: define dso_local void @f128_mul(ptr dead_on_unwind noalias nocapture noundef writable writeonly sret([16 x i8]) align 16 dereferenceable(16) %_0, fp128 noundef %a, fp128 noundef %b) unnamed_addr #1 { 
label:55'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
label:55'0     ~~~~~~~
label:55'0     ~~~~~~~
           75:  %0 = fmul fp128 %a, %b 
label:55'0     ~~~~~~~~~~~~~~~~~~~~~~~~
           76:  store fp128 %0, ptr %_0, align 16 
label:55'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
           77:  ret void 
label:55'0     ~~~~~~~~~~
           78: } 
label:55'0     ~~
label:55'0     ~
label:55'0     ~
           80: ; Function Attrs: mustprogress nofree norecurse nosync nounwind willreturn memory(argmem: write) 
label:55'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
           81: define dso_local void @f128_div(ptr dead_on_unwind noalias nocapture noundef writable writeonly sret([16 x i8]) align 16 dereferenceable(16) %_0, fp128 noundef %a, fp128 noundef %b) unnamed_addr #1 { 
label:55'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
label:55'0     ~~~~~~~
label:55'0     ~~~~~~~
           83:  %0 = fdiv fp128 %a, %b 
label:55'0     ~~~~~~~~~~~~~~~~~~~~~~~~
           84:  store fp128 %0, ptr %_0, align 16 
label:55'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
           85:  ret void 
label:55'0     ~~~~~~~~~~
           86: } 
label:55'0     ~~
label:55'0     ~
label:55'0     ~
           88: ; Function Attrs: mustprogress nofree norecurse nosync nounwind willreturn memory(argmem: write) 
label:55'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
           89: define dso_local void @f128_rem(ptr dead_on_unwind noalias nocapture noundef writable writeonly sret([16 x i8]) align 16 dereferenceable(16) %_0, fp128 noundef %a, fp128 noundef %b) unnamed_addr #1 { 
label:55'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
label:55'0     ~~~~~~~
label:55'0     ~~~~~~~
           91:  %0 = frem fp128 %a, %b 
label:55'0     ~~~~~~~~~~~~~~~~~~~~~~~~
           92:  store fp128 %0, ptr %_0, align 16 
label:55'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
           93:  ret void 
label:55'0     ~~~~~~~~~~
           94: } 
label:55'0     ~~
label:55'0     ~
label:55'0     ~
           96: ; Function Attrs: mustprogress nofree norecurse nosync nounwind willreturn memory(argmem: readwrite) 
label:55'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
           97: define dso_local void @f128_add_assign(ptr noalias nocapture noundef align 16 dereferenceable(16) %a, fp128 noundef %b) unnamed_addr #2 { 
label:55'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
label:55'0     ~~~~~~~
label:55'0     ~~~~~~~
           99:  %0 = load fp128, ptr %a, align 16, !noundef !1 
label:55'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
          100:  %1 = fadd fp128 %0, %b 
label:55'0     ~~~~~~~~~~~~~~~~~~~~~~~~
          101:  store fp128 %1, ptr %a, align 16 
label:55'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
          102:  ret void 
label:55'0     ~~~~~~~~~~
          103: } 
label:55'0     ~~
label:55'0     ~
label:55'0     ~
          105: ; Function Attrs: mustprogress nofree norecurse nosync nounwind willreturn memory(argmem: readwrite) 
label:55'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
          106: define dso_local void @f128_sub_assign(ptr noalias nocapture noundef align 16 dereferenceable(16) %a, fp128 noundef %b) unnamed_addr #2 { 
label:55'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
label:55'0     ~~~~~~~
label:55'0     ~~~~~~~
          108:  %0 = load fp128, ptr %a, align 16, !noundef !1 
label:55'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
          109:  %1 = fsub fp128 %0, %b 
label:55'0     ~~~~~~~~~~~~~~~~~~~~~~~~
          110:  store fp128 %1, ptr %a, align 16 
label:55'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
          111:  ret void 
label:55'0     ~~~~~~~~~~
          112: } 
label:55'0     ~~
label:55'0     ~
label:55'0     ~
          114: ; Function Attrs: mustprogress nofree norecurse nosync nounwind willreturn memory(argmem: readwrite) 
label:55'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
          115: define dso_local void @f128_mul_assign(ptr noalias nocapture noundef align 16 dereferenceable(16) %a, fp128 noundef %b) unnamed_addr #2 { 
label:55'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
label:55'0     ~~~~~~~
label:55'0     ~~~~~~~
          117:  %0 = load fp128, ptr %a, align 16, !noundef !1 
label:55'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
          118:  %1 = fmul fp128 %0, %b 
label:55'0     ~~~~~~~~~~~~~~~~~~~~~~~~
          119:  store fp128 %1, ptr %a, align 16 
label:55'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
          120:  ret void 
label:55'0     ~~~~~~~~~~
          121: } 
label:55'0     ~~
label:55'0     ~
label:55'0     ~
          123: ; Function Attrs: mustprogress nofree norecurse nosync nounwind willreturn memory(argmem: readwrite) 
label:55'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
          124: define dso_local void @f128_div_assign(ptr noalias nocapture noundef align 16 dereferenceable(16) %a, fp128 noundef %b) unnamed_addr #2 { 
label:55'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
label:55'0     ~~~~~~~
label:55'0     ~~~~~~~
          126:  %0 = load fp128, ptr %a, align 16, !noundef !1 
label:55'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
          127:  %1 = fdiv fp128 %0, %b 
label:55'0     ~~~~~~~~~~~~~~~~~~~~~~~~
          128:  store fp128 %1, ptr %a, align 16 
label:55'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
          129:  ret void 
label:55'0     ~~~~~~~~~~
          130: } 
label:55'0     ~~
label:55'0     ~
label:55'0     ~
          132: ; Function Attrs: mustprogress nofree norecurse nosync nounwind willreturn memory(argmem: readwrite) 
label:55'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
          133: define dso_local void @f128_rem_assign(ptr noalias nocapture noundef align 16 dereferenceable(16) %a, fp128 noundef %b) unnamed_addr #2 { 
label:55'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
label:55'0     ~~~~~~~
label:55'0     ~~~~~~~
          135:  %0 = load fp128, ptr %a, align 16, !noundef !1 
label:55'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
          136:  %1 = frem fp128 %0, %b 
label:55'0     ~~~~~~~~~~~~~~~~~~~~~~~~
          137:  store fp128 %1, ptr %a, align 16 
label:55'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
          138:  ret void 
label:55'0     ~~~~~~~~~~
          139: } 
label:55'0     ~~
label:55'0     ~
label:55'0     ~
          141: ; Function Attrs: mustprogress nofree norecurse nosync nounwind willreturn memory(none) 
label:55'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
          142: define dso_local noundef half @f128_as_f16(fp128 noundef %a) unnamed_addr #0 { 
label:55'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
label:55'0     ~~~~~~~
label:55'0     ~~~~~~~
          144:  %_0 = fptrunc fp128 %a to half 
label:55'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
          145:  ret half %_0 
label:55'0     ~~~~~~~~~~~~~~
          146: } 
label:55'0     ~~
label:55'0     ~
label:55'0     ~
          148: ; Function Attrs: mustprogress nofree norecurse nosync nounwind willreturn memory(none) 
label:55'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
          149: define dso_local noundef float @f128_as_f32(fp128 noundef %a) unnamed_addr #0 { 
label:55'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
            .
            .
>>>>>>
------------------------------------------
------------------------------------------


---- [codegen] tests/codegen/float/f16.rs#other stdout ----

error in revision `other`: verification with 'FileCheck' failed
status: exit status: 1
command: "/checkout/obj/build/x86_64-unknown-linux-gnu/ci-llvm/bin/FileCheck" "--input-file" "/checkout/obj/build/x86_64-unknown-linux-gnu/test/codegen/float/f16.other/f16.ll" "/checkout/tests/codegen/float/f16.rs" "--check-prefix=CHECK" "--check-prefix" "other" "--check-prefix" "NONMSVC" "--allow-unused-prefixes" "--dump-input-context" "100"
--- stderr -------------------------------
/checkout/tests/codegen/float/f16.rs:164:17: error: CHECK-LABEL: expected string not found in input
/checkout/tests/codegen/float/f16.rs:164:17: error: CHECK-LABEL: expected string not found in input
// CHECK-LABEL: fp128 @f16_as_f128(
                ^
/checkout/obj/build/x86_64-unknown-linux-gnu/test/codegen/float/f16.other/f16.ll:149:45: note: scanning from here
define dso_local noundef double @f16_as_f64(half noundef %a) unnamed_addr #0 {
                                            ^
/checkout/obj/build/x86_64-unknown-linux-gnu/test/codegen/float/f16.other/f16.ll:156:18: note: possible intended match here
define dso_local void @f16_as_f128(ptr dead_on_unwind noalias nocapture noundef writable writeonly sret([16 x i8]) align 16 dereferenceable(16) %_0, half noundef %a) unnamed_addr #2 {


Input file: /checkout/obj/build/x86_64-unknown-linux-gnu/test/codegen/float/f16.other/f16.ll


-dump-input=help explains the following input dump.
Input was:
<<<<<<
             .
             .
             .
             .
            49: define dso_local noundef half @f16_neg(half noundef %a) unnamed_addr #0 { 
            50: start: 
            51:  %_0 = fneg half %a 
            52:  ret half %_0 
            53: } 
            54:  
            55: ; Function Attrs: mustprogress nofree norecurse nosync nounwind willreturn memory(none) 
            56: define dso_local noundef half @f16_add(half noundef %a, half noundef %b) unnamed_addr #0 { 
            57: start: 
            58:  %_0 = fadd half %a, %b 
            59:  ret half %_0 
            60: } 
            61:  
            62: ; Function Attrs: mustprogress nofree norecurse nosync nounwind willreturn memory(none) 
            63: define dso_local noundef half @f16_sub(half noundef %a, half noundef %b) unnamed_addr #0 { 
            64: start: 
            65:  %_0 = fsub half %a, %b 
            66:  ret half %_0 
            67: } 
            68:  
            69: ; Function Attrs: mustprogress nofree norecurse nosync nounwind willreturn memory(none) 
            70: define dso_local noundef half @f16_mul(half noundef %a, half noundef %b) unnamed_addr #0 { 
            71: start: 
            72:  %_0 = fmul half %a, %b 
            73:  ret half %_0 
            74: } 
            75:  
            76: ; Function Attrs: mustprogress nofree norecurse nosync nounwind willreturn memory(none) 
            77: define dso_local noundef half @f16_div(half noundef %a, half noundef %b) unnamed_addr #0 { 
            78: start: 
            79:  %_0 = fdiv half %a, %b 
            80:  ret half %_0 
            81: } 
            82:  
            83: ; Function Attrs: mustprogress nofree norecurse nosync nounwind willreturn memory(none) 
            84: define dso_local noundef half @f16_rem(half noundef %a, half noundef %b) unnamed_addr #0 { 
            85: start: 
            86:  %_0 = frem half %a, %b 
            87:  ret half %_0 
            88: } 
            89:  
            90: ; Function Attrs: mustprogress nofree norecurse nosync nounwind willreturn memory(argmem: readwrite) 
            91: define dso_local void @f16_add_assign(ptr noalias nocapture noundef align 2 dereferenceable(2) %a, half noundef %b) unnamed_addr #1 { 
            92: start: 
            93:  %0 = load half, ptr %a, align 2, !noundef !1 
            94:  %1 = fadd half %0, %b 
            95:  store half %1, ptr %a, align 2 
            96:  ret void 
            97: } 
            98:  
            99: ; Function Attrs: mustprogress nofree norecurse nosync nounwind willreturn memory(argmem: readwrite) 
           100: define dso_local void @f16_sub_assign(ptr noalias nocapture noundef align 2 dereferenceable(2) %a, half noundef %b) unnamed_addr #1 { 
           101: start: 
           102:  %0 = load half, ptr %a, align 2, !noundef !1 
           103:  %1 = fsub half %0, %b 
           104:  store half %1, ptr %a, align 2 
           105:  ret void 
           106: } 
           107:  
           108: ; Function Attrs: mustprogress nofree norecurse nosync nounwind willreturn memory(argmem: readwrite) 
           109: define dso_local void @f16_mul_assign(ptr noalias nocapture noundef align 2 dereferenceable(2) %a, half noundef %b) unnamed_addr #1 { 
           110: start: 
           111:  %0 = load half, ptr %a, align 2, !noundef !1 
           112:  %1 = fmul half %0, %b 
           113:  store half %1, ptr %a, align 2 
           114:  ret void 
           115: } 
           116:  
           117: ; Function Attrs: mustprogress nofree norecurse nosync nounwind willreturn memory(argmem: readwrite) 
           118: define dso_local void @f16_div_assign(ptr noalias nocapture noundef align 2 dereferenceable(2) %a, half noundef %b) unnamed_addr #1 { 
           119: start: 
           120:  %0 = load half, ptr %a, align 2, !noundef !1 
           121:  %1 = fdiv half %0, %b 
           122:  store half %1, ptr %a, align 2 
           123:  ret void 
           124: } 
           125:  
           126: ; Function Attrs: mustprogress nofree norecurse nosync nounwind willreturn memory(argmem: readwrite) 
           127: define dso_local void @f16_rem_assign(ptr noalias nocapture noundef align 2 dereferenceable(2) %a, half noundef %b) unnamed_addr #1 { 
           128: start: 
           129:  %0 = load half, ptr %a, align 2, !noundef !1 
           130:  %1 = frem half %0, %b 
           131:  store half %1, ptr %a, align 2 
           132:  ret void 
           133: } 
           134:  
           135: ; Function Attrs: mustprogress nofree norecurse nosync nounwind willreturn memory(none) 
           136: define dso_local noundef half @f16_as_self(half noundef returned %a) unnamed_addr #0 { 
           137: start: 
           138:  ret half %a 
           139: } 
           140:  
           141: ; Function Attrs: mustprogress nofree norecurse nosync nounwind willreturn memory(none) 
           142: define dso_local noundef float @f16_as_f32(half noundef %a) unnamed_addr #0 { 
           143: start: 
           144:  %_0 = fpext half %a to float 
           145:  ret float %_0 
           146: } 
           147:  
           148: ; Function Attrs: mustprogress nofree norecurse nosync nounwind willreturn memory(none) 
           149: define dso_local noundef double @f16_as_f64(half noundef %a) unnamed_addr #0 { 
label:164'0                                                 X~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ error: no match found
label:164'0     ~~~~~~~
label:164'0     ~~~~~~~
           151:  %_0 = fpext half %a to double 
label:164'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
           152:  ret double %_0 
label:164'0     ~~~~~~~~~~~~~~~~
           153: } 
label:164'0     ~~
label:164'0     ~
label:164'0     ~
           155: ; Function Attrs: mustprogress nofree norecurse nosync nounwind willreturn memory(argmem: write) 
label:164'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
           156: define dso_local void @f16_as_f128(ptr dead_on_unwind noalias nocapture noundef writable writeonly sret([16 x i8]) align 16 dereferenceable(16) %_0, half noundef %a) unnamed_addr #2 { 
label:164'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
label:164'1                      ?                                                                                                                                                                       possible intended match
label:164'0     ~~~~~~~
label:164'0     ~~~~~~~
           158:  %0 = fpext half %a to fp128 
label:164'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
           159:  store fp128 %0, ptr %_0, align 16 
label:164'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
           160:  ret void 
label:164'0     ~~~~~~~~~~
           161: } 
label:164'0     ~~
label:164'0     ~
label:164'0     ~
           163: ; Function Attrs: mustprogress nofree norecurse nosync nounwind willreturn memory(none) 
label:164'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
           164: define dso_local noundef half @f32_as_f16(float noundef %a) unnamed_addr #0 { 
label:164'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
label:164'0     ~~~~~~~
label:164'0     ~~~~~~~
           166:  %_0 = fptrunc float %a to half 
label:164'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
           167:  ret half %_0 
label:164'0     ~~~~~~~~~~~~~~
           168: } 
label:164'0     ~~
label:164'0     ~
label:164'0     ~
           170: ; Function Attrs: mustprogress nofree norecurse nosync nounwind willreturn memory(none) 
label:164'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
           171: define dso_local noundef half @f64_as_f16(double noundef %a) unnamed_addr #0 { 
label:164'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
label:164'0     ~~~~~~~
label:164'0     ~~~~~~~
           173:  %_0 = fptrunc double %a to half 
label:164'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
           174:  ret half %_0 
label:164'0     ~~~~~~~~~~~~~~
           175: } 
label:164'0     ~~
label:164'0     ~
label:164'0     ~
           177: ; Function Attrs: mustprogress nofree norecurse nosync nounwind willreturn memory(none) 
label:164'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
           178: define dso_local noundef half @f128_as_f16(fp128 noundef %a) unnamed_addr #0 { 
label:164'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
label:164'0     ~~~~~~~
label:164'0     ~~~~~~~
           180:  %_0 = fptrunc fp128 %a to half 
label:164'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
           181:  ret half %_0 
label:164'0     ~~~~~~~~~~~~~~
           182: } 
label:164'0     ~~
label:164'0     ~
label:164'0     ~
           184: ; Function Attrs: mustprogress nofree norecurse nosync nounwind willreturn memory(none) 
label:164'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
           185: define dso_local noundef i8 @f16_as_u8(half noundef %a) unnamed_addr #0 { 
label:164'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
label:164'0     ~~~~~~~
label:164'0     ~~~~~~~
           187:  %_0 = tail call i8 @llvm.fptoui.sat.i8.f16(half %a) 
label:164'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
           188:  ret i8 %_0 
label:164'0     ~~~~~~~~~~~~
           189: } 

rust-log-analyzer avatar Oct 10 '24 23:10 rust-log-analyzer

:broken_heart: Test failed - checks-actions

bors avatar Oct 10 '24 23:10 bors

Fixed tests on 32bit targets.

bjorn3 avatar Oct 12 '24 16:10 bjorn3

@bors r+ rollup=iffy

nikic avatar Oct 13 '24 19:10 nikic

:pushpin: Commit 8ed77fd29e289a591df16390049a8e94f3c62b04 has been approved by nikic

It is now in the queue for this repository.

bors avatar Oct 13 '24 19:10 bors

:hourglass: Testing commit 8ed77fd29e289a591df16390049a8e94f3c62b04 with merge b8fe97a86ed7c418cc9c1225d8b93b15ab6452fc...

bors avatar Oct 14 '24 11:10 bors

The job i686-gnu failed! Check out the build log: (web) (plain)

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

---- [codegen] tests/codegen/mir-aggregate-no-alloca.rs#bit32 stdout ----

error in revision `bit32`: verification with 'FileCheck' failed
status: exit status: 1
command: "/checkout/obj/build/i686-unknown-linux-gnu/llvm/build/bin/FileCheck" "--input-file" "/checkout/obj/build/i686-unknown-linux-gnu/test/codegen/mir-aggregate-no-alloca.bit32/mir-aggregate-no-alloca.ll" "/checkout/tests/codegen/mir-aggregate-no-alloca.rs" "--check-prefix=CHECK" "--check-prefix" "bit32" "--check-prefix" "NONMSVC" "--allow-unused-prefixes" "--dump-input-context" "100"
--- stderr -------------------------------
--- stderr -------------------------------
/checkout/tests/codegen/mir-aggregate-no-alloca.rs:105:17: error: bit32-LABEL: expected string not found in input
// bit32-LABEL: void @make_struct_2_asc({{.*}} sret([16 x i8]) {{.*}} %s,
                ^
/checkout/obj/build/i686-unknown-linux-gnu/test/codegen/mir-aggregate-no-alloca.bit32/mir-aggregate-no-alloca.ll:65:50: note: scanning from here
define noundef i32 @make_struct_1(i32 noundef %a) unnamed_addr #0 {
                                                 ^
/checkout/obj/build/i686-unknown-linux-gnu/test/codegen/mir-aggregate-no-alloca.bit32/mir-aggregate-no-alloca.ll:71:8: note: possible intended match here
define void @make_struct_2_asc(ptr dead_on_unwind noalias nocapture noundef writable sret([12 x i8]) align 4 dereferenceable(12) %s, i16 noundef %a, i64 noundef %b) unnamed_addr #0 {


Input file: /checkout/obj/build/i686-unknown-linux-gnu/test/codegen/mir-aggregate-no-alloca.bit32/mir-aggregate-no-alloca.ll


-dump-input=help explains the following input dump.
Input was:
<<<<<<
<<<<<<
             1: ; ModuleID = 'mir_aggregate_no_alloca.a14a2a7ff05b7360-cgu.0' 
             2: source_filename = "mir_aggregate_no_alloca.a14a2a7ff05b7360-cgu.0" 
             3: target datalayout = "e-m:e-p:32:32-p270:32:32-p271:32:32-p272:64:64-i128:128-f64:32:64-f80:32-n8:16:32-S128" 
             4: target triple = "i686-unknown-linux-gnu" 
             6: ; Function Attrs: uwtable 
             6: ; Function Attrs: uwtable 
             7: define noundef i32 @make_transparent(i32 noundef %x) unnamed_addr #0 { 
             8: start: 
             9:  ret i32 %x 
            10: } 
            12: ; Function Attrs: uwtable 
            12: ; Function Attrs: uwtable 
            13: define noundef i32 @make_closure(i32 noundef %x) unnamed_addr #0 { 
            14: start: 
            15:  ret i32 %x 
            16: } 
            18: ; Function Attrs: uwtable 
            18: ; Function Attrs: uwtable 
            19: define { i16, i16 } @make_transparent_pair(i16 noundef %x.0, i16 noundef %x.1) unnamed_addr #0 { 
            20: start: 
            21:  %0 = insertvalue { i16, i16 } poison, i16 %x.0, 0 
            22:  %1 = insertvalue { i16, i16 } %0, i16 %x.1, 1 
            23:  ret { i16, i16 } %1 
            24: } 
            26: ; Function Attrs: uwtable 
            26: ; Function Attrs: uwtable 
            27: define { i32, i32 } @make_2_tuple(i32 noundef %x) unnamed_addr #0 { 
            28: start: 
            29:  %0 = insertvalue { i32, i32 } poison, i32 %x, 0 
            30:  %1 = insertvalue { i32, i32 } %0, i32 %x, 1 
            31:  ret { i32, i32 } %1 
            32: } 
            34: ; Function Attrs: uwtable 
            34: ; Function Attrs: uwtable 
            35: define noundef i8 @make_cell_of_bool(i1 noundef zeroext %b) unnamed_addr #0 { 
            36: start: 
            37:  %_2 = zext i1 %b to i8 
            38:  ret i8 %_2 
            39: } 
            41: ; Function Attrs: uwtable 
            41: ; Function Attrs: uwtable 
            42: define { i8, i16 } @make_cell_of_bool_and_short(i1 noundef zeroext %b, i16 noundef %s) unnamed_addr #0 { 
            43: start: 
            44:  %_4.0 = zext i1 %b to i8 
            45:  %0 = insertvalue { i8, i16 } poison, i8 %_4.0, 0 
            46:  %1 = insertvalue { i8, i16 } %0, i16 %s, 1 
            47:  ret { i8, i16 } %1 
            48: } 
            50: ; Function Attrs: uwtable 
            50: ; Function Attrs: uwtable 
            51: define { i1, i1 } @make_tuple_of_bools(i1 noundef zeroext %a, i1 noundef zeroext %b) unnamed_addr #0 { 
            52: start: 
            53:  %0 = insertvalue { i1, i1 } poison, i1 %a, 0 
            54:  %1 = insertvalue { i1, i1 } %0, i1 %b, 1 
            55:  ret { i1, i1 } %1 
            56: } 
            58: ; Function Attrs: uwtable 
            58: ; Function Attrs: uwtable 
            59: define void @make_struct_0() unnamed_addr #0 { 
            61:  ret void 
            62: } 
            63:  
            64: ; Function Attrs: uwtable 
            64: ; Function Attrs: uwtable 
            65: define noundef i32 @make_struct_1(i32 noundef %a) unnamed_addr #0 { 
label:105'0                                                      X~~~~~~~~~~~~~~~~~~ error: no match found
label:105'0     ~~~~~~~
label:105'0     ~~~~~~~
            67:  ret i32 %a 
label:105'0     ~~~~~~~~~~~~
            68: } 
label:105'0     ~~
label:105'0     ~
            70: ; Function Attrs: uwtable 
label:105'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~
label:105'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~
            71: define void @make_struct_2_asc(ptr dead_on_unwind noalias nocapture noundef writable sret([12 x i8]) align 4 dereferenceable(12) %s, i16 noundef %a, i64 noundef %b) unnamed_addr #0 { 
label:105'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
label:105'1            ?                                                                                                                                                                                possible intended match
label:105'0     ~~~~~~~
label:105'0     ~~~~~~~
            73:  %0 = getelementptr inbounds i8, ptr %s, i32 8 
label:105'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
            74:  store i16 %a, ptr %0, align 4 
label:105'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
            75:  store i64 %b, ptr %s, align 4 
label:105'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
            76:  ret void 
label:105'0     ~~~~~~~~~~
            77: } 
label:105'0     ~~
label:105'0     ~
            79: ; Function Attrs: uwtable 
label:105'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~
label:105'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~
            80: define void @make_struct_2_desc(ptr dead_on_unwind noalias nocapture noundef writable sret([12 x i8]) align 4 dereferenceable(12) %s, i64 noundef %a, i16 noundef %b) unnamed_addr #0 { 
label:105'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
label:105'0     ~~~~~~~
label:105'0     ~~~~~~~
            82:  store i64 %a, ptr %s, align 4 
label:105'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
            83:  %0 = getelementptr inbounds i8, ptr %s, i32 8 
label:105'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
            84:  store i16 %b, ptr %0, align 4 
label:105'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
            85:  ret void 
label:105'0     ~~~~~~~~~~
            86: } 
label:105'0     ~~
label:105'0     ~
label:105'0     ~
            88: attributes #0 = { uwtable "probe-stack"="inline-asm" "target-cpu"="pentium4" } 
label:105'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
label:105'0     ~
label:105'0     ~
            90: !llvm.module.flags = !{!0} 
label:105'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~
            91: !llvm.ident = !{!1} 
label:105'0     ~~~~~~~~~~~~~~~~~~~~
label:105'0     ~
label:105'0     ~
            93: !0 = !{i32 8, !"PIC Level", i32 2} 
label:105'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
            94: !1 = !{!"rustc version 1.84.0-nightly (b8fe97a86 2024-10-14)"} 
label:105'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
------------------------------------------


---- [codegen] tests/codegen/range-attribute.rs#bit32 stdout ----
---- [codegen] tests/codegen/range-attribute.rs#bit32 stdout ----

error in revision `bit32`: verification with 'FileCheck' failed
status: exit status: 1
command: "/checkout/obj/build/i686-unknown-linux-gnu/llvm/build/bin/FileCheck" "--input-file" "/checkout/obj/build/i686-unknown-linux-gnu/test/codegen/range-attribute.bit32/range-attribute.ll" "/checkout/tests/codegen/range-attribute.rs" "--check-prefix=CHECK" "--check-prefix" "bit32" "--check-prefix" "NONMSVC" "--allow-unused-prefixes" "--dump-input-context" "100"
--- stderr -------------------------------
/checkout/tests/codegen/range-attribute.rs:51:11: error: bit32: expected string not found in input
/checkout/tests/codegen/range-attribute.rs:51:11: error: bit32: expected string not found in input
// bit32: void @enum1_value({{.*}} sret([16 x i8]) {{[^,]*}}, [[ENUM1_TYP:i[0-9]+]]
          ^
/checkout/obj/build/i686-unknown-linux-gnu/test/codegen/range-attribute.bit32/range-attribute.ll:26:76: note: scanning from here
define noundef range(i8 0, 4) i8 @enum0_value(i8 noundef range(i8 0, 4) %x) unnamed_addr #0 {
                                                                           ^
/checkout/obj/build/i686-unknown-linux-gnu/test/codegen/range-attribute.bit32/range-attribute.ll:32:8: note: possible intended match here
define void @enum1_value(ptr dead_on_unwind noalias nocapture noundef writable sret([12 x i8]) align 4 dereferenceable(12) %_0, i32 noundef range(i32 0, 3) %x.0, i64 noundef %x.1) unnamed_addr #0 {


Input file: /checkout/obj/build/i686-unknown-linux-gnu/test/codegen/range-attribute.bit32/range-attribute.ll


-dump-input=help explains the following input dump.
Input was:
<<<<<<
<<<<<<
            1: ; ModuleID = 'range_attribute.31ae304c7dd8c3c5-cgu.0' 
            2: source_filename = "range_attribute.31ae304c7dd8c3c5-cgu.0" 
            3: target datalayout = "e-m:e-p:32:32-p270:32:32-p271:32:32-p272:64:64-i128:128-f64:32:64-f80:32-n8:16:32-S128" 
            4: target triple = "i686-unknown-linux-gnu" 
            6: ; Function Attrs: uwtable 
            6: ; Function Attrs: uwtable 
            7: define void @helper(i32 noundef %_1) unnamed_addr #0 { 
            9:  ret void 
           10: } 
           11:  
           12: ; Function Attrs: uwtable 
           12: ; Function Attrs: uwtable 
           13: define void @nonzero_int(ptr dead_on_unwind noalias nocapture noundef writable sret([16 x i8]) align 16 dereferenceable(16) %_0, i128 noundef range(i128 1, 0) %x) unnamed_addr #0 { 
           14: start: 
           15:  store i128 %x, ptr %_0, align 16 
           16:  ret void 
           17: } 
           19: ; Function Attrs: uwtable 
           19: ; Function Attrs: uwtable 
           20: define noundef range(i8 0, 3) i8 @optional_bool(i8 noundef range(i8 0, 3) %x) unnamed_addr #0 { 
           21: start: 
           22:  ret i8 %x 
           23: } 
           25: ; Function Attrs: uwtable 
           25: ; Function Attrs: uwtable 
           26: define noundef range(i8 0, 4) i8 @enum0_value(i8 noundef range(i8 0, 4) %x) unnamed_addr #0 { 
check:51'0                                                                                X~~~~~~~~~~~~~~~~~~ error: no match found
check:51'0     ~~~~~~~
check:51'0     ~~~~~~~
           28:  ret i8 %x 
check:51'0     ~~~~~~~~~~~
           29: } 
check:51'0     ~~
check:51'0     ~
           31: ; Function Attrs: uwtable 
check:51'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~
check:51'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~
           32: define void @enum1_value(ptr dead_on_unwind noalias nocapture noundef writable sret([12 x i8]) align 4 dereferenceable(12) %_0, i32 noundef range(i32 0, 3) %x.0, i64 noundef %x.1) unnamed_addr #0 { 
check:51'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
check:51'1            ?                                                                                                                                                                                               possible intended match
check:51'0     ~~~~~~~
check:51'0     ~~~~~~~
           34:  store i32 %x.0, ptr %_0, align 4 
check:51'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
           35:  %0 = getelementptr inbounds i8, ptr %_0, i32 4 
check:51'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
           36:  store i64 %x.1, ptr %0, align 4 
check:51'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
           37:  ret void 
check:51'0     ~~~~~~~~~~
           38: } 
check:51'0     ~~
check:51'0     ~
           40: ; Function Attrs: uwtable 
check:51'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~
check:51'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~
           41: define { i8, i8 } @enum2_value(i8 noundef range(i8 0, 3) %x.0, i8 noundef %x.1) unnamed_addr #0 { 
check:51'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
check:51'0     ~~~~~~~
check:51'0     ~~~~~~~
           43:  %0 = insertvalue { i8, i8 } poison, i8 %x.0, 0 
check:51'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
           44:  %1 = insertvalue { i8, i8 } %0, i8 %x.1, 1 
check:51'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
           45:  ret { i8, i8 } %1 
check:51'0     ~~~~~~~~~~~~~~~~~~~
           46: } 
check:51'0     ~~
check:51'0     ~
           48: ; Function Attrs: uwtable 
check:51'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~
check:51'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~
           49: define noundef i32 @takes_slice(ptr noalias noundef nonnull readonly align 4 %x.0, i32 noundef %x.1) unnamed_addr #0 { 
check:51'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
check:51'0     ~~~~~~~
check:51'0     ~~~~~~~
           51:  ret i32 %x.1 
check:51'0     ~~~~~~~~~~~~~~
           52: } 
check:51'0     ~~
check:51'0     ~
check:51'0     ~
           54: attributes #0 = { uwtable "probe-stack"="inline-asm" "target-cpu"="pentium4" } 
check:51'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
check:51'0     ~
check:51'0     ~
           56: !llvm.module.flags = !{!0} 
check:51'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~
           57: !llvm.ident = !{!1} 
check:51'0     ~~~~~~~~~~~~~~~~~~~~
check:51'0     ~
check:51'0     ~
           59: !0 = !{i32 8, !"PIC Level", i32 2} 
check:51'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
           60: !1 = !{!"rustc version 1.84.0-nightly (b8fe97a86 2024-10-14)"} 
check:51'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
------------------------------------------


---- [codegen] tests/codegen/tuple-layout-opt.rs#bit32 stdout ----
---- [codegen] tests/codegen/tuple-layout-opt.rs#bit32 stdout ----

error in revision `bit32`: verification with 'FileCheck' failed
status: exit status: 1
command: "/checkout/obj/build/i686-unknown-linux-gnu/llvm/build/bin/FileCheck" "--input-file" "/checkout/obj/build/i686-unknown-linux-gnu/test/codegen/tuple-layout-opt.bit32/tuple-layout-opt.ll" "/checkout/tests/codegen/tuple-layout-opt.rs" "--check-prefix=CHECK" "--check-prefix" "bit32" "--check-prefix" "NONMSVC" "--allow-unused-prefixes" "--dump-input-context" "100"
--- stderr -------------------------------
/checkout/tests/codegen/tuple-layout-opt.rs:28:11: error: bit32: expected string not found in input
/checkout/tests/codegen/tuple-layout-opt.rs:28:11: error: bit32: expected string not found in input
// bit32: define {{(dso_local )?}}void @test_ScalarPairZstLast(ptr sret([24 x i8]) align 8
          ^
/checkout/obj/build/i686-unknown-linux-gnu/test/codegen/tuple-layout-opt.bit32/tuple-layout-opt.ll:16:77: note: scanning from here
define void @test_ScalarZstFirst(ptr sret([16 x i8]) align 16 %_0, i128 %_1) unnamed_addr #0 {
                                                                            ^
/checkout/obj/build/i686-unknown-linux-gnu/test/codegen/tuple-layout-opt.bit32/tuple-layout-opt.ll:25:1: note: possible intended match here
define void @test_ScalarPairZstLast(ptr sret([32 x i8]) align 16 %_0, i128 %_1.0, i8 %_1.1) unnamed_addr #0 {


Input file: /checkout/obj/build/i686-unknown-linux-gnu/test/codegen/tuple-layout-opt.bit32/tuple-layout-opt.ll


-dump-input=help explains the following input dump.
Input was:
<<<<<<
<<<<<<
            1: ; ModuleID = 'tuple_layout_opt.c538b16a2de83a99-cgu.0' 
            2: source_filename = "tuple_layout_opt.c538b16a2de83a99-cgu.0" 
            3: target datalayout = "e-m:e-p:32:32-p270:32:32-p271:32:32-p272:64:64-i128:128-f64:32:64-f80:32-n8:16:32-S128" 
            4: target triple = "i686-unknown-linux-gnu" 
            6: ; Function Attrs: uwtable 
            6: ; Function Attrs: uwtable 
            7: define void @test_ScalarZstLast(ptr sret([16 x i8]) align 16 %_0, i128 %_1) unnamed_addr #0 { 
            8: start: 
            9:  br label %bb1 
           10:  
           11: bb1: ; preds = %bb1, %start 
           12:  br label %bb1 
           13: } 
           15: ; Function Attrs: uwtable 
           15: ; Function Attrs: uwtable 
           16: define void @test_ScalarZstFirst(ptr sret([16 x i8]) align 16 %_0, i128 %_1) unnamed_addr #0 { 
check:28'0                                                                                 X~~~~~~~~~~~~~~~~~~ error: no match found
check:28'0     ~~~~~~~
check:28'0     ~~~~~~~
           18:  br label %bb1 
check:28'0     ~~~~~~~~~~~~~~~
check:28'0     ~
check:28'0     ~
           20: bb1: ; preds = %bb1, %start 
check:28'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
           21:  br label %bb1 
check:28'0     ~~~~~~~~~~~~~~~
           22: } 
check:28'0     ~~
check:28'0     ~
           24: ; Function Attrs: uwtable 
check:28'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~
check:28'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~
           25: define void @test_ScalarPairZstLast(ptr sret([32 x i8]) align 16 %_0, i128 %_1.0, i8 %_1.1) unnamed_addr #0 { 
check:28'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
check:28'1     ?                                                                                                              possible intended match
check:28'0     ~~~~~~~
check:28'0     ~~~~~~~
           27:  br label %bb1 
check:28'0     ~~~~~~~~~~~~~~~
check:28'0     ~
check:28'0     ~
           29: bb1: ; preds = %bb1, %start 
check:28'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
           30:  br label %bb1 
check:28'0     ~~~~~~~~~~~~~~~
           31: } 
check:28'0     ~~
check:28'0     ~
           33: ; Function Attrs: uwtable 
check:28'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~
check:28'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~
           34: define void @test_ScalarPairZstFirst(ptr sret([32 x i8]) align 16 %_0, i8 %_1.0, i128 %_1.1) unnamed_addr #0 { 
check:28'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
check:28'0     ~~~~~~~
check:28'0     ~~~~~~~
           36:  br label %bb1 
check:28'0     ~~~~~~~~~~~~~~~
check:28'0     ~
check:28'0     ~
           38: bb1: ; preds = %bb1, %start 
check:28'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
           39:  br label %bb1 
check:28'0     ~~~~~~~~~~~~~~~
           40: } 
check:28'0     ~~
check:28'0     ~
           42: ; Function Attrs: uwtable 
check:28'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~
check:28'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~
           43: define void @test_ScalarPairLotsOfZsts(ptr sret([32 x i8]) align 16 %_0, i128 %_1.0, i8 %_1.1) unnamed_addr #0 { 
check:28'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
check:28'0     ~~~~~~~
check:28'0     ~~~~~~~
           45:  br label %bb1 
check:28'0     ~~~~~~~~~~~~~~~
check:28'0     ~
check:28'0     ~
           47: bb1: ; preds = %bb1, %start 
check:28'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
           48:  br label %bb1 
check:28'0     ~~~~~~~~~~~~~~~
           49: } 
check:28'0     ~~
check:28'0     ~
           51: ; Function Attrs: uwtable 
check:28'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~
check:28'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~
           52: define void @test_ScalarPairLottaNesting(ptr sret([32 x i8]) align 16 %_0, i128 %_1.0, i8 %_1.1) unnamed_addr #0 { 
check:28'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
check:28'0     ~~~~~~~
check:28'0     ~~~~~~~
           54:  br label %bb1 
check:28'0     ~~~~~~~~~~~~~~~
check:28'0     ~
check:28'0     ~
           56: bb1: ; preds = %bb1, %start 
check:28'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
           57:  br label %bb1 
check:28'0     ~~~~~~~~~~~~~~~
           58: } 
check:28'0     ~~
check:28'0     ~
check:28'0     ~
           60: attributes #0 = { uwtable "probe-stack"="inline-asm" "target-cpu"="pentium4" } 
check:28'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
check:28'0     ~
check:28'0     ~
           62: !llvm.module.flags = !{!0} 
check:28'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~
           63: !llvm.ident = !{!1} 
check:28'0     ~~~~~~~~~~~~~~~~~~~~
check:28'0     ~
check:28'0     ~
           65: !0 = !{i32 8, !"PIC Level", i32 2} 
check:28'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
           66: !1 = !{!"rustc version 1.84.0-nightly (b8fe97a86 2024-10-14)"} 
check:28'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
------------------------------------------



rust-log-analyzer avatar Oct 14 '24 12:10 rust-log-analyzer

:broken_heart: Test failed - checks-actions

bors avatar Oct 14 '24 12:10 bors

I've now tested this on i686-unknown-linux-gnu, x86_64-unknown-linux-gnu and wasm32-wasip1.

bjorn3 avatar Oct 17 '24 09:10 bjorn3

@bors r=nikic,jieyouxu

bjorn3 avatar Oct 17 '24 10:10 bjorn3

:pushpin: Commit cab206cda2f7d5a823e839ca4a92d0d438e1edea has been approved by nikic,jieyouxu

It is now in the queue for this repository.

bors avatar Oct 17 '24 10:10 bors

:hourglass: Testing commit cab206cda2f7d5a823e839ca4a92d0d438e1edea with merge f075de02f8d4dc0c5d4035ffdaab89b9e11e8ba4...

bors avatar Oct 17 '24 18:10 bors

The job i686-gnu-nopt failed! Check out the build log: (web) (plain)

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

---- [assembly] tests/assembly/x86-return-float.rs#normal stdout ----

error in revision `normal`: verification with 'FileCheck' failed
status: exit status: 1
command: "/checkout/obj/build/i686-unknown-linux-gnu/llvm/build/bin/FileCheck" "--input-file" "/checkout/obj/build/i686-unknown-linux-gnu/test/assembly/x86-return-float.normal/x86-return-float.s" "/checkout/tests/assembly/x86-return-float.rs" "--check-prefix=CHECK" "--check-prefix" "normal" "--check-prefix" "NONMSVC" "--allow-unused-prefixes" "--dump-input-context" "100" "--implicit-check-not" "fld" "--implicit-check-not" "fst"
--- stderr -------------------------------
--- stderr -------------------------------
/checkout/tests/assembly/x86-return-float.rs:318:17: error: CHECK-NEXT: is not on the line after the previous match
 // CHECK-NEXT: movl [[#%d,OFFSET+16]](%ebp), %[[VAL4:.*]]
                ^
/checkout/obj/build/i686-unknown-linux-gnu/test/assembly/x86-return-float.normal/x86-return-float.s:655:2: note: 'next' match was here
 movl 24(%ebp), %edi
 ^
/checkout/obj/build/i686-unknown-linux-gnu/test/assembly/x86-return-float.normal/x86-return-float.s:651:20: note: previous match ended here
 movl 8(%ebp), %eax
                   ^
/checkout/obj/build/i686-unknown-linux-gnu/test/assembly/x86-return-float.normal/x86-return-float.s:652:1: note: non-matching line after previous match is here
 movl 12(%ebp), %ecx


Input file: /checkout/obj/build/i686-unknown-linux-gnu/test/assembly/x86-return-float.normal/x86-return-float.s


-dump-input=help explains the following input dump.
Input was:
<<<<<<
          .
          .
          .
          .
        555: .L18$pb: 
        556:  popl %ebx 
        557:  leal -16(%ebp), %eax 
        558: .Ltmp8: 
        559:  addl $_GLOBAL_OFFSET_TABLE_+(.Ltmp8-.L18$pb), %ebx 
        560:  movl %eax, (%esp) 
        561:  calll get_other_f32@PLT 
        562:  subl $4, %esp 
        563:  movl -16(%ebp), %eax 
        564:  movss -12(%ebp), %xmm0 
        565:  movl %eax, (%esi) 
        566:  movss %xmm0, 4(%esi) 
        567:  addl $16, %esp 
        568:  popl %esi 
        569:  popl %ebx 
        570:  popl %ebp 
        571:  .cfi_def_cfa %esp, 4 
        572:  retl 
        573: .Lfunc_end18: 
        574:  .size call_other_f32, .Lfunc_end18-call_other_f32 
        575:  .cfi_endproc 
        576:  
        577:  .section .text.call_other_f64,"ax",@progbits 
        578:  .globl call_other_f64 
        579:  .p2align 4, 0x90 
        580:  .type call_other_f64,@function 
        581: call_other_f64: 
        582:  .cfi_startproc 
        583:  pushl %ebp 
        584:  .cfi_def_cfa_offset 8 
        585:  .cfi_offset %ebp, -8 
        586:  movl %esp, %ebp 
        587:  .cfi_def_cfa_register %ebp 
        588:  pushl %ebx 
        589:  pushl %esi 
        590:  subl $16, %esp 
        591:  .cfi_offset %esi, -16 
        592:  .cfi_offset %ebx, -12 
        593:  movl 8(%ebp), %esi 
        594:  calll .L19$pb 
        595: .L19$pb: 
        596:  popl %ebx 
        597:  leal -20(%ebp), %eax 
        598: .Ltmp9: 
        599:  addl $_GLOBAL_OFFSET_TABLE_+(.Ltmp9-.L19$pb), %ebx 
        600:  movl %eax, (%esp) 
        601:  calll get_other_f64@PLT 
        602:  subl $4, %esp 
        603:  movl -20(%ebp), %eax 
        604:  movsd -16(%ebp), %xmm0 
        605:  movl %eax, (%esi) 
        606:  movsd %xmm0, 4(%esi) 
        607:  addl $16, %esp 
        608:  popl %esi 
        609:  popl %ebx 
        610:  popl %ebp 
        611:  .cfi_def_cfa %esp, 4 
        612:  retl 
        613: .Lfunc_end19: 
        614:  .size call_other_f64, .Lfunc_end19-call_other_f64 
        615:  .cfi_endproc 
        616:  
        617:  .section .text.return_f16,"ax",@progbits 
        618:  .globl return_f16 
        619:  .p2align 4, 0x90 
        620:  .type return_f16,@function 
        621: return_f16: 
        622:  .cfi_startproc 
        623:  pushl %ebp 
        624:  .cfi_def_cfa_offset 8 
        625:  .cfi_offset %ebp, -8 
        626:  movl %esp, %ebp 
        627:  .cfi_def_cfa_register %ebp 
        628:  pinsrw $0, 8(%ebp), %xmm0 
        629:  popl %ebp 
        630:  .cfi_def_cfa %esp, 4 
        631:  retl 
        632: .Lfunc_end20: 
        633:  .size return_f16, .Lfunc_end20-return_f16 
        634:  .cfi_endproc 
        635:  
        636:  .section .text.return_f128,"ax",@progbits 
        637:  .globl return_f128 
        638:  .p2align 4, 0x90 
        639:  .type return_f128,@function 
        640: return_f128: 
        641:  .cfi_startproc 
        642:  pushl %ebp 
        643:  .cfi_def_cfa_offset 8 
        644:  .cfi_offset %ebp, -8 
        645:  movl %esp, %ebp 
        646:  .cfi_def_cfa_register %ebp 
        647:  pushl %edi 
        648:  pushl %esi 
        649:  .cfi_offset %esi, -16 
        650:  .cfi_offset %edi, -12 
        651:  movl 8(%ebp), %eax 
        652:  movl 12(%ebp), %ecx 
        653:  movl 16(%ebp), %edx 
        654:  movl 20(%ebp), %esi 
        655:  movl 24(%ebp), %edi 
next:318      !~~~~~~~~~~~~~~~~~~  error: match on wrong line
        656:  movl %edi, 12(%eax) 
        657:  movl %esi, 8(%eax) 
        658:  movl %edx, 4(%eax) 
        659:  movl %ecx, (%eax) 
        660:  popl %esi 
        661:  popl %edi 
        662:  popl %ebp 
        663:  .cfi_def_cfa %esp, 4 
        664:  retl $4 
        665: .Lfunc_end21: 
        666:  .size return_f128, .Lfunc_end21-return_f128 
        667:  .cfi_endproc 
        668:  
        669:  .ident "rustc version 1.84.0-nightly (f075de02f 2024-10-17)" 
        670:  .section ".note.GNU-stack","",@progbits 
------------------------------------------



rust-log-analyzer avatar Oct 17 '24 19:10 rust-log-analyzer