@@ -90,10 +90,6 @@ unsafe extern "C" {
9090 fn llvm_narrow_i8x16_s ( a : simd:: i16x8 , b : simd:: i16x8 ) -> simd:: i8x16 ;
9191 #[ link_name = "llvm.wasm.narrow.unsigned.v16i8.v8i16" ]
9292 fn llvm_narrow_i8x16_u ( a : simd:: i16x8 , b : simd:: i16x8 ) -> simd:: i8x16 ;
93- #[ link_name = "llvm.ssub.sat.v16i8" ]
94- fn llvm_i8x16_sub_sat_s ( a : simd:: i8x16 , b : simd:: i8x16 ) -> simd:: i8x16 ;
95- #[ link_name = "llvm.usub.sat.v16i8" ]
96- fn llvm_i8x16_sub_sat_u ( a : simd:: i8x16 , b : simd:: i8x16 ) -> simd:: i8x16 ;
9793 #[ link_name = "llvm.wasm.avgr.unsigned.v16i8" ]
9894 fn llvm_avgr_u_i8x16 ( a : simd:: i8x16 , b : simd:: i8x16 ) -> simd:: i8x16 ;
9995
@@ -111,10 +107,6 @@ unsafe extern "C" {
111107 fn llvm_narrow_i16x8_s ( a : simd:: i32x4 , b : simd:: i32x4 ) -> simd:: i16x8 ;
112108 #[ link_name = "llvm.wasm.narrow.unsigned.v8i16.v4i32" ]
113109 fn llvm_narrow_i16x8_u ( a : simd:: i32x4 , b : simd:: i32x4 ) -> simd:: i16x8 ;
114- #[ link_name = "llvm.ssub.sat.v8i16" ]
115- fn llvm_i16x8_sub_sat_s ( a : simd:: i16x8 , b : simd:: i16x8 ) -> simd:: i16x8 ;
116- #[ link_name = "llvm.usub.sat.v8i16" ]
117- fn llvm_i16x8_sub_sat_u ( a : simd:: i16x8 , b : simd:: i16x8 ) -> simd:: i16x8 ;
118110 #[ link_name = "llvm.wasm.avgr.unsigned.v8i16" ]
119111 fn llvm_avgr_u_i16x8 ( a : simd:: i16x8 , b : simd:: i16x8 ) -> simd:: i16x8 ;
120112
@@ -2416,7 +2408,7 @@ pub use i8x16_sub as u8x16_sub;
24162408#[ doc( alias( "i8x16.sub_sat_s" ) ) ]
24172409#[ stable( feature = "wasm_simd" , since = "1.54.0" ) ]
24182410pub fn i8x16_sub_sat ( a : v128 , b : v128 ) -> v128 {
2419- unsafe { llvm_i8x16_sub_sat_s ( a. as_i8x16 ( ) , b. as_i8x16 ( ) ) . v128 ( ) }
2411+ unsafe { simd_saturating_sub ( a. as_i8x16 ( ) , b. as_i8x16 ( ) ) . v128 ( ) }
24202412}
24212413
24222414/// Subtracts two 128-bit vectors as if they were two packed sixteen 8-bit
@@ -2427,7 +2419,7 @@ pub fn i8x16_sub_sat(a: v128, b: v128) -> v128 {
24272419#[ doc( alias( "i8x16.sub_sat_u" ) ) ]
24282420#[ stable( feature = "wasm_simd" , since = "1.54.0" ) ]
24292421pub fn u8x16_sub_sat ( a : v128 , b : v128 ) -> v128 {
2430- unsafe { llvm_i8x16_sub_sat_u ( a. as_i8x16 ( ) , b. as_i8x16 ( ) ) . v128 ( ) }
2422+ unsafe { simd_saturating_sub ( a. as_u8x16 ( ) , b. as_u8x16 ( ) ) . v128 ( ) }
24312423}
24322424
24332425/// Compares lane-wise signed integers, and returns the minimum of
@@ -2784,7 +2776,7 @@ pub use i16x8_sub as u16x8_sub;
27842776#[ doc( alias( "i16x8.sub_sat_s" ) ) ]
27852777#[ stable( feature = "wasm_simd" , since = "1.54.0" ) ]
27862778pub fn i16x8_sub_sat ( a : v128 , b : v128 ) -> v128 {
2787- unsafe { llvm_i16x8_sub_sat_s ( a. as_i16x8 ( ) , b. as_i16x8 ( ) ) . v128 ( ) }
2779+ unsafe { simd_saturating_sub ( a. as_i16x8 ( ) , b. as_i16x8 ( ) ) . v128 ( ) }
27882780}
27892781
27902782/// Subtracts two 128-bit vectors as if they were two packed eight 16-bit
@@ -2795,7 +2787,7 @@ pub fn i16x8_sub_sat(a: v128, b: v128) -> v128 {
27952787#[ doc( alias( "i16x8.sub_sat_u" ) ) ]
27962788#[ stable( feature = "wasm_simd" , since = "1.54.0" ) ]
27972789pub fn u16x8_sub_sat ( a : v128 , b : v128 ) -> v128 {
2798- unsafe { llvm_i16x8_sub_sat_u ( a. as_i16x8 ( ) , b. as_i16x8 ( ) ) . v128 ( ) }
2790+ unsafe { simd_saturating_sub ( a. as_u16x8 ( ) , b. as_u16x8 ( ) ) . v128 ( ) }
27992791}
28002792
28012793/// Multiplies two 128-bit vectors as if they were two packed eight 16-bit
0 commit comments