@@ -1902,16 +1902,36 @@ mod tests {
1902
1902
1903
1903
#[ simd_test( enable = "neon" ) ]
1904
1904
unsafe fn test_vcvtq_s32_f32 ( ) {
1905
- let e = i32x4:: new ( -1 , 2 , 3 , 4 ) ;
1906
1905
let f = f32x4:: new ( -1. , 2. , 3. , 4. ) ;
1906
+ let e = i32x4:: new ( -1 , 2 , 3 , 4 ) ;
1907
1907
let r: i32x4 = transmute ( vcvtq_s32_f32 ( transmute ( f) ) ) ;
1908
1908
assert_eq ! ( r, e) ;
1909
+
1910
+ let f = f32x4:: new ( 10e37 , 2. , 3. , 4. ) ;
1911
+ let e = i32x4:: new ( 0x7fffffff , 2 , 3 , 4 ) ;
1912
+ let r: i32x4 = transmute ( vcvtq_u32_f32 ( transmute ( f) ) ) ;
1913
+ assert_eq ! ( r, e) ;
1914
+
1915
+ let f = f32x4:: new ( -10e37 , 2. , 3. , 4. ) ;
1916
+ let e = i32x4:: new ( -0x80000000 , 2 , 3 , 4 ) ;
1917
+ let r: i32x4 = transmute ( vcvtq_u32_f32 ( transmute ( f) ) ) ;
1918
+ assert_eq ! ( r, e) ;
1909
1919
}
1910
1920
1911
1921
#[ simd_test( enable = "neon" ) ]
1912
1922
unsafe fn test_vcvtq_u32_f32 ( ) {
1913
- let e = u32x4:: new ( 1 , 2 , 3 , 4 ) ;
1914
1923
let f = f32x4:: new ( 1. , 2. , 3. , 4. ) ;
1924
+ let e = u32x4:: new ( 1 , 2 , 3 , 4 ) ;
1925
+ let r: u32x4 = transmute ( vcvtq_u32_f32 ( transmute ( f) ) ) ;
1926
+ assert_eq ! ( r, e) ;
1927
+
1928
+ let f = f32x4:: new ( -1. , 2. , 3. , 4. ) ;
1929
+ let e = u32x4:: new ( 0 , 2 , 3 , 4 ) ;
1930
+ let r: u32x4 = transmute ( vcvtq_u32_f32 ( transmute ( f) ) ) ;
1931
+ assert_eq ! ( r, e) ;
1932
+
1933
+ let f = f32x4:: new ( 10e37 , 2. , 3. , 4. ) ;
1934
+ let e = u32x4:: new ( 0xffffffff , 2 , 3 , 4 ) ;
1915
1935
let r: u32x4 = transmute ( vcvtq_u32_f32 ( transmute ( f) ) ) ;
1916
1936
assert_eq ! ( r, e) ;
1917
1937
}
0 commit comments