about summary refs log tree commit diff
path: root/tests/assembly/sparc-struct-abi.rs
diff options
context:
space:
mode:
authorGuillaume Gomez <guillaume1.gomez@gmail.com>2025-07-21 14:22:51 +0200
committerGuillaume Gomez <guillaume1.gomez@gmail.com>2025-07-22 14:27:48 +0200
commited93c1783b404d728d4809973a0550eb33cd293f (patch)
tree2b62aab8b2482fcde1f9128ff53be8cd66bde847 /tests/assembly/sparc-struct-abi.rs
parentc0b282f0ccdab7523cdb8dfa41b23bed5573da76 (diff)
downloadrust-ed93c1783b404d728d4809973a0550eb33cd293f.tar.gz
rust-ed93c1783b404d728d4809973a0550eb33cd293f.zip
Rename `tests/assembly` into `tests/assembly-llvm`
Diffstat (limited to 'tests/assembly/sparc-struct-abi.rs')
-rw-r--r--tests/assembly/sparc-struct-abi.rs68
1 files changed, 0 insertions, 68 deletions
diff --git a/tests/assembly/sparc-struct-abi.rs b/tests/assembly/sparc-struct-abi.rs
deleted file mode 100644
index b1594428811..00000000000
--- a/tests/assembly/sparc-struct-abi.rs
+++ /dev/null
@@ -1,68 +0,0 @@
-// Test SPARC64 ABI
-// - float structure members are passes in floating point registers
-// (#86163)
-
-//@ add-core-stubs
-//@ assembly-output: emit-asm
-//@ needs-llvm-components: sparc
-//@ compile-flags: --target=sparcv9-sun-solaris -Copt-level=3
-#![crate_type = "lib"]
-#![feature(no_core, lang_items)]
-#![no_core]
-
-extern crate minicore;
-use minicore::*;
-
-#[repr(C)]
-pub struct Franta {
-    a: f32,
-    b: f32,
-    c: f32,
-    d: f32,
-}
-
-// NB: due to delay slots the `ld` following the call is actually executed before the call.
-#[no_mangle]
-pub unsafe extern "C" fn callee(arg: Franta) {
-    // CHECK-LABEL: callee:
-    // CHECK: st %f3, [[PLACE_D:.*]]
-    // CHECK: st %f2, [[PLACE_C:.*]]
-    // CHECK: st %f1, [[PLACE_B:.*]]
-    // CHECK: st %f0, [[PLACE_A:.*]]
-    // CHECK: call tst_use
-    // CHECK-NEXT: ld [[PLACE_A]], %f1
-    // CHECK: call tst_use
-    // CHECK-NEXT: ld [[PLACE_B]], %f1
-    // CHECK: call tst_use
-    // CHECK-NEXT: ld [[PLACE_C]], %f1
-    // CHECK: call tst_use
-    // CHECK-NEXT: ld [[PLACE_D]], %f1
-    clobber();
-    tst_use(arg.a);
-    tst_use(arg.b);
-    tst_use(arg.c);
-    tst_use(arg.d);
-    tail_call_avoidance_fn();
-}
-
-extern "C" {
-    fn opaque_callee(arg: Franta, intarg: i32);
-    fn tst_use(arg: f32);
-    fn clobber();
-    // This exists so that post-https://reviews.llvm.org/D138741 LLVM doesn't
-    // tail-call away some of our assertions.
-    fn tail_call_avoidance_fn();
-}
-
-#[no_mangle]
-pub unsafe extern "C" fn caller() {
-    // CHECK-LABEL: caller:
-    // CHECK: ld [{{.*}}], %f0
-    // CHECK: ld [{{.*}}], %f1
-    // CHECK: ld [{{.*}}], %f2
-    // CHECK: ld [{{.*}}], %f3
-    // CHECK: call opaque_callee
-    // CHECK: mov     3, %o2
-    opaque_callee(Franta { a: 1.0, b: 2.0, c: 3.0, d: 4.0 }, 3);
-    tail_call_avoidance_fn();
-}