File tree 1 file changed +32
-0
lines changed
library/core/src/intrinsics
1 file changed +32
-0
lines changed Original file line number Diff line number Diff line change @@ -483,4 +483,36 @@ extern "platform-intrinsic" {
483
483
///
484
484
/// `T` must be a vector of integers.
485
485
pub fn simd_cttz < T > ( x : T ) -> T ;
486
+
487
+ /// Round up each element to the next highest integer.
488
+ ///
489
+ /// `T` must be a vector of floats.
490
+ pub fn simd_ceil < T > ( x : T ) -> T ;
491
+
492
+ /// Round down each element to the next lowest integer.
493
+ ///
494
+ /// `T` must be a vector of floats.
495
+ pub fn simd_floor < T > ( x : T ) -> T ;
496
+
497
+ /// Round each element to the closest integer.
498
+ /// Ties are resolving by rounding away from 0.
499
+ ///
500
+ /// `T` must be a vector of floats.
501
+ pub fn simd_round < T > ( x : T ) -> T ;
502
+
503
+ /// Return the integer part of each element.
504
+ /// This means that non-integer numbers are always truncated towards zero.
505
+ ///
506
+ /// `T` must be a vector of floats.
507
+ pub fn simd_trunc < T > ( x : T ) -> T ;
508
+
509
+ /// Takes the square root of each element.
510
+ ///
511
+ /// `T` must be a vector of floats.
512
+ pub fn simd_fsqrt < T > ( x : T ) -> T ;
513
+
514
+ /// Computes `(x*y) + y` for each element, but without any intermediate rounding.
515
+ ///
516
+ /// `T` must be a vector of floats.
517
+ pub fn simd_fma < T > ( x : T , y : T , z : T ) -> T ;
486
518
}
You can’t perform that action at this time.
0 commit comments