]>
Commit | Line | Data |
---|---|---|
cdc7bbd5 XL |
1 | // compile-flags: -O --crate-type=rlib |
2 | #![feature(platform_intrinsics, repr_simd)] | |
3 | ||
4 | extern "platform-intrinsic" { | |
5 | fn simd_fabs<T>(x: T) -> T; | |
6 | fn simd_eq<T, U>(x: T, y: T) -> U; | |
7 | } | |
8 | ||
9 | #[repr(simd)] | |
10 | pub struct V([f32; 4]); | |
11 | ||
12 | #[repr(simd)] | |
13 | pub struct M([i32; 4]); | |
14 | ||
15 | #[no_mangle] | |
16 | // CHECK-LABEL: @is_infinite | |
17 | pub fn is_infinite(v: V) -> M { | |
18 | // CHECK: fabs | |
19 | // CHECK: cmp oeq | |
20 | unsafe { | |
21 | simd_eq(simd_fabs(v), V([f32::INFINITY; 4])) | |
22 | } | |
23 | } |