| //@ assembly-output: emit-asm |
| //@ compile-flags: -Copt-level=3 |
| //@ compile-flags: --target x86_64-pc-windows-msvc |
| //@ needs-llvm-components: x86 |
| //@ add-core-stubs |
| |
| #![feature(f16, f128)] |
| #![feature(no_core)] |
| #![no_core] |
| #![crate_type = "lib"] |
| |
| extern crate minicore; |
| use minicore::*; |
| |
| // CHECK-LABEL: second_f16 |
| // CHECK: movaps %xmm1, %xmm0 |
| // CHECK-NEXT: retq |
| #[no_mangle] |
| pub extern "C" fn second_f16(_: f16, x: f16) -> f16 { |
| x |
| } |
| |
| // CHECK-LABEL: second_f32 |
| // CHECK: movaps %xmm1, %xmm0 |
| // CHECK-NEXT: retq |
| #[no_mangle] |
| pub extern "C" fn second_f32(_: f32, x: f32) -> f32 { |
| x |
| } |
| |
| // CHECK-LABEL: second_f64 |
| // CHECK: movaps %xmm1, %xmm0 |
| // CHECK-NEXT: retq |
| #[no_mangle] |
| pub extern "C" fn second_f64(_: f64, x: f64) -> f64 { |
| x |
| } |
| |
| // CHECK-LABEL: second_f128 |
| // FIXME(llvm21): this can be just %rdx instead of the regex once we don't test on LLVM 20 |
| // CHECK: movaps {{(%xmm1|\(%rdx\))}}, %xmm0 |
| // CHECK-NEXT: retq |
| #[no_mangle] |
| pub extern "C" fn second_f128(_: f128, x: f128) -> f128 { |
| x |
| } |