diff options
Diffstat (limited to 'tests/codegen/f128-wasm32-callconv.rs')
| -rw-r--r-- | tests/codegen/f128-wasm32-callconv.rs | 49 | 
1 files changed, 0 insertions, 49 deletions
diff --git a/tests/codegen/f128-wasm32-callconv.rs b/tests/codegen/f128-wasm32-callconv.rs deleted file mode 100644 index 7dccbda18f1..00000000000 --- a/tests/codegen/f128-wasm32-callconv.rs +++ /dev/null @@ -1,49 +0,0 @@ -//! Verify that Rust implements the expected calling convention for `f128` - -//@ add-core-stubs -//@ compile-flags: -Copt-level=3 --target wasm32-wasip1 -//@ needs-llvm-components: webassembly - -#![crate_type = "lib"] -#![no_std] -#![no_core] -#![feature(no_core, lang_items, f128)] - -extern crate minicore; - -extern "C" { - fn extern_call(arg0: f128); - fn extern_ret() -> f128; -} - -#[no_mangle] -pub extern "C" fn pass(_arg0: u32, arg1: f128) { - // CHECK-LABEL: @pass( - // an f128 is passed via registers - // CHECK-SAME: fp128 noundef %arg1 - // CHECK: call void @extern_call - unsafe { extern_call(arg1) }; -} - -// Check that we produce the correct return ABI -#[no_mangle] -pub extern "C" fn ret(_arg0: u32, arg1: f128) -> f128 { - // CHECK-LABEL: @ret( - // but an f128 is returned via the stack - // CHECK-SAME: sret - // CHECK: store fp128 %arg1 - // CHECK-NEXT: ret void - arg1 -} - -// Check that we consume the correct return ABI -#[no_mangle] -pub extern "C" fn forward(dst: *mut f128) { - // CHECK-LABEL: @forward - // CHECK-SAME: ptr{{.*}} %dst) - // without optimizatons, an intermediate alloca is used - // CHECK: call void @extern_ret - // CHECK: store fp128 - // CHECK: ret void - unsafe { *dst = extern_ret() }; -}  | 
