3
3
//! TODO: should use `link_llvm_intrinsic` instead: issue #112
4
4
5
5
extern "platform-intrinsic" {
6
+ //pub fn simd_select_bitmask
6
7
pub fn simd_eq < T , U > ( x : T , y : T ) -> U ;
7
8
pub fn simd_ne < T , U > ( x : T , y : T ) -> U ;
8
9
pub fn simd_lt < T , U > ( x : T , y : T ) -> U ;
@@ -27,6 +28,8 @@ extern "platform-intrinsic" {
27
28
28
29
pub fn simd_insert < T , U > ( x : T , idx : u32 , val : U ) -> T ;
29
30
pub fn simd_extract < T , U > ( x : T , idx : u32 ) -> U ;
31
+ //pub fn simd_select
32
+ pub fn simd_bitmask < T , U > ( x : T ) -> U ;
30
33
31
34
pub fn simd_cast < T , U > ( x : T ) -> U ;
32
35
@@ -40,6 +43,12 @@ extern "platform-intrinsic" {
40
43
pub fn simd_or < T > ( x : T , y : T ) -> T ;
41
44
pub fn simd_xor < T > ( x : T , y : T ) -> T ;
42
45
46
+ pub fn simd_saturating_add < T > ( x : T , y : T ) -> T ;
47
+ pub fn simd_saturating_sub < T > ( x : T , y : T ) -> T ;
48
+
49
+ pub fn simd_gather < T , U , V > ( values : T , pointers : U , mask : V ) -> T ;
50
+ pub fn simd_scatter < T , U , V > ( values : T , pointers : U , mask : V ) ;
51
+
43
52
pub fn simd_reduce_add_unordered < T , U > ( x : T ) -> U ;
44
53
pub fn simd_reduce_mul_unordered < T , U > ( x : T ) -> U ;
45
54
pub fn simd_reduce_add_ordered < T , U > ( x : T , acc : U ) -> U ;
@@ -61,7 +70,17 @@ extern "platform-intrinsic" {
61
70
pub fn simd_fmax < T > ( a : T , b : T ) -> T ;
62
71
63
72
pub fn simd_fsqrt < T > ( a : T ) -> T ;
73
+ pub fn simd_fsin < T > ( a : T ) -> T ;
74
+ pub fn simd_fcos < T > ( a : T ) -> T ;
75
+ pub fn simd_fabs < T > ( a : T ) -> T ;
64
76
pub fn simd_floor < T > ( a : T ) -> T ;
65
77
pub fn simd_ceil < T > ( a : T ) -> T ;
78
+ pub fn simd_fexp < T > ( a : T ) -> T ;
79
+ pub fn simd_fexp2 < T > ( a : T ) -> T ;
80
+ pub fn simd_flog10 < T > ( a : T ) -> T ;
81
+ pub fn simd_flog2 < T > ( a : T ) -> T ;
82
+ pub fn simd_flog < T > ( a : T ) -> T ;
83
+ //pub fn simd_fpowi
84
+ //pub fn simd_fpow
66
85
pub fn simd_fma < T > ( a : T , b : T , c : T ) -> T ;
67
86
}
0 commit comments