@@ -1902,16 +1902,37 @@ 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 ( 10e50 , 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 ( -10e50 , 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) ;
1919
+
1909
1920
}
1910
1921
1911
1922
#[ simd_test( enable = "neon" ) ]
1912
1923
unsafe fn test_vcvtq_u32_f32 ( ) {
1913
- let e = u32x4:: new ( 1 , 2 , 3 , 4 ) ;
1914
1924
let f = f32x4:: new ( 1. , 2. , 3. , 4. ) ;
1925
+ let e = u32x4:: new ( 1 , 2 , 3 , 4 ) ;
1926
+ let r: u32x4 = transmute ( vcvtq_u32_f32 ( transmute ( f) ) ) ;
1927
+ assert_eq ! ( r, e) ;
1928
+
1929
+ let f = f32x4:: new ( -1. , 2. , 3. , 4. ) ;
1930
+ let e = u32x4:: new ( 0 , 2 , 3 , 4 ) ;
1931
+ let r: u32x4 = transmute ( vcvtq_u32_f32 ( transmute ( f) ) ) ;
1932
+ assert_eq ! ( r, e) ;
1933
+
1934
+ let f = f32x4:: new ( 10e50 , 2. , 3. , 4. ) ;
1935
+ let e = u32x4:: new ( 0xffffffff , 2 , 3 , 4 ) ;
1915
1936
let r: u32x4 = transmute ( vcvtq_u32_f32 ( transmute ( f) ) ) ;
1916
1937
assert_eq ! ( r, e) ;
1917
1938
}
0 commit comments