@@ -2463,6 +2463,7 @@ pub unsafe fn vhsubq_s32(a: int32x4_t, b: int32x4_t) -> int32x4_t {
24632463}
24642464
24652465#[ cfg( test) ]
2466+ #[ allow( overflowing_literals) ]
24662467mod test {
24672468 use super :: * ;
24682469 use crate :: core_arch:: simd:: * ;
@@ -3071,14 +3072,14 @@ mod test {
30713072
30723073 #[ simd_test( enable = "neon" ) ]
30733074 unsafe fn test_vceq_u8 ( ) {
3074- let a: u8x8 = u8x8:: new ( 0x00 , 0x01 , 0x02 , 0x03 , 0x04 , 0x05 , 0x06 , 0x07 ) ;
3075- let b: u8x8 = u8x8:: new ( 0x00 , 0x01 , 0x02 , 0x03 , 0x04 , 0x05 , 0x06 , 0x07 ) ;
3075+ let a: u8x8 = u8x8:: new ( 0xFF , 0x01 , 0x02 , 0x03 , 0x04 , 0x05 , 0x06 , 0x07 ) ;
3076+ let b: u8x8 = u8x8:: new ( 0xFF , 0x01 , 0x02 , 0x03 , 0x04 , 0x05 , 0x06 , 0x07 ) ;
30763077 let e: u8x8 = u8x8:: new ( 0xFF , 0xFF , 0xFF , 0xFF , 0xFF , 0xFF , 0xFF , 0xFF ) ;
30773078 let r: u8x8 = transmute ( vceq_u8 ( transmute ( a) , transmute ( b) ) ) ;
30783079 assert_eq ! ( r, e) ;
30793080
3080- let a: u8x8 = u8x8:: new ( 0x00 , 0x01 , 0x02 , 0x03 , 0x04 , 0x05 , 0x06 , 0x07 ) ;
3081- let b: u8x8 = u8x8:: new ( 0x00 , 0x00 , 0x02 , 0x04 , 0x04 , 0x00 , 0x06 , 0x08 ) ;
3081+ let a: u8x8 = u8x8:: new ( 0xFF , 0xFF , 0x02 , 0x03 , 0x04 , 0x05 , 0x06 , 0x07 ) ;
3082+ let b: u8x8 = u8x8:: new ( 0xFF , 0 , 0x02 , 0x04 , 0x04 , 0x00 , 0x06 , 0x08 ) ;
30823083 let e: u8x8 = u8x8:: new ( 0xFF , 0 , 0xFF , 0 , 0xFF , 0 , 0xFF , 0 ) ;
30833084 let r: u8x8 = transmute ( vceq_u8 ( transmute ( a) , transmute ( b) ) ) ;
30843085 assert_eq ! ( r, e) ;
@@ -3087,12 +3088,12 @@ mod test {
30873088 #[ simd_test( enable = "neon" ) ]
30883089 unsafe fn test_vceqq_u8 ( ) {
30893090 let a: u8x16 = u8x16:: new (
3090- 0x00 , 0x01 , 0x02 , 0x03 , 0x04 , 0x05 , 0x06 , 0x07 , 0x08 , 0x09 , 0x0A , 0x0B , 0x0C , 0x0D ,
3091- 0x0E , 0x0F ,
3091+ 0xFF , 0x01 , 0x02 , 0x03 , 0x04 , 0x05 , 0x06 , 0x07 , 0x08 , 0x09 , 0x0A , 0x0B , 0x0C , 0x0D ,
3092+ 0x0E , 0 ,
30923093 ) ;
30933094 let b: u8x16 = u8x16:: new (
3094- 0x00 , 0x01 , 0x02 , 0x03 , 0x04 , 0x05 , 0x06 , 0x07 , 0x08 , 0x09 , 0x0A , 0x0B , 0x0C , 0x0D ,
3095- 0x0E , 0x0F ,
3095+ 0xFF , 0x01 , 0x02 , 0x03 , 0x04 , 0x05 , 0x06 , 0x07 , 0x08 , 0x09 , 0x0A , 0x0B , 0x0C , 0x0D ,
3096+ 0x0E , 0 ,
30963097 ) ;
30973098 let e: u8x16 = u8x16:: new (
30983099 0xFF , 0xFF , 0xFF , 0xFF , 0xFF , 0xFF , 0xFF , 0xFF , 0xFF , 0xFF , 0xFF , 0xFF , 0xFF , 0xFF ,
@@ -3102,12 +3103,12 @@ mod test {
31023103 assert_eq ! ( r, e) ;
31033104
31043105 let a: u8x16 = u8x16:: new (
3105- 0x00 , 0x01 , 0x02 , 0x03 , 0x04 , 0x05 , 0x06 , 0x07 , 0x08 , 0x09 , 0x0A , 0x0B , 0x0C , 0x0D ,
3106- 0x0E , 0x0F ,
3106+ 0xFF , 0xFF , 0x02 , 0x03 , 0x04 , 0x05 , 0x06 , 0x07 , 0x08 , 0x09 , 0x0A , 0x0B , 0xCC , 0x0D ,
3107+ 0xEE , 0 ,
31073108 ) ;
31083109 let b: u8x16 = u8x16:: new (
3109- 0x00 , 0x00 , 0x02 , 0x04 , 0x04 , 0x00 , 0x06 , 0x08 , 0x08 , 0x00 , 0x0A , 0x0A , 0x0C , 0x10 ,
3110- 0x0E , 0x1F ,
3110+ 0xFF , 0 , 0x02 , 0x04 , 0x04 , 0x00 , 0x06 , 0x08 , 0x08 , 0x00 , 0x0A , 0x0A , 0xCC , 0xD0 , 0xEE ,
3111+ 0xFF ,
31113112 ) ;
31123113 let e: u8x16 = u8x16:: new (
31133114 0xFF , 0 , 0xFF , 0 , 0xFF , 0 , 0xFF , 0 , 0xFF , 0 , 0xFF , 0 , 0xFF , 0 , 0xFF , 0 ,
@@ -3118,76 +3119,76 @@ mod test {
31183119
31193120 #[ simd_test( enable = "neon" ) ]
31203121 unsafe fn test_vceq_u16 ( ) {
3121- let a: u16x4 = u16x4:: new ( 0x00 , 0x01 , 0x02 , 0x03 ) ;
3122- let b: u16x4 = u16x4:: new ( 0x00 , 0x01 , 0x02 , 0x03 ) ;
3122+ let a: u16x4 = u16x4:: new ( 0xFF_FF , 0x01 , 0x02 , 0x03 ) ;
3123+ let b: u16x4 = u16x4:: new ( 0xFF_FF , 0x01 , 0x02 , 0x03 ) ;
31233124 let e: u16x4 = u16x4:: new ( 0xFF_FF , 0xFF_FF , 0xFF_FF , 0xFF_FF ) ;
31243125 let r: u16x4 = transmute ( vceq_u16 ( transmute ( a) , transmute ( b) ) ) ;
31253126 assert_eq ! ( r, e) ;
31263127
3127- let a: u16x4 = u16x4:: new ( 0x00 , 0x01 , 0x02 , 0x03 ) ;
3128- let b: u16x4 = u16x4:: new ( 0x00 , 0x00 , 0x02 , 0x04 ) ;
3128+ let a: u16x4 = u16x4:: new ( 0xFF_FF , 0xFF_FF , 0x02 , 0x03 ) ;
3129+ let b: u16x4 = u16x4:: new ( 0xFF_FF , 0 , 0x02 , 0x04 ) ;
31293130 let e: u16x4 = u16x4:: new ( 0xFF_FF , 0 , 0xFF_FF , 0 ) ;
31303131 let r: u16x4 = transmute ( vceq_u16 ( transmute ( a) , transmute ( b) ) ) ;
31313132 assert_eq ! ( r, e) ;
31323133 }
31333134
31343135 #[ simd_test( enable = "neon" ) ]
31353136 unsafe fn test_vceqq_u16 ( ) {
3136- let a: u16x8 = u16x8:: new ( 0x00 , 0x01 , 0x02 , 0x03 , 0x04 , 0x05 , 0x06 , 0x07 ) ;
3137- let b: u16x8 = u16x8:: new ( 0x00 , 0x01 , 0x02 , 0x03 , 0x04 , 0x05 , 0x06 , 0x07 ) ;
3137+ let a: u16x8 = u16x8:: new ( 0xFF_FF , 0x01 , 0x02 , 0x03 , 0x04 , 0x05 , 0x06 , 0x07 ) ;
3138+ let b: u16x8 = u16x8:: new ( 0xFF_FF , 0x01 , 0x02 , 0x03 , 0x04 , 0x05 , 0x06 , 0x07 ) ;
31383139 let e: u16x8 = u16x8:: new (
31393140 0xFF_FF , 0xFF_FF , 0xFF_FF , 0xFF_FF , 0xFF_FF , 0xFF_FF , 0xFF_FF , 0xFF_FF ,
31403141 ) ;
31413142 let r: u16x8 = transmute ( vceqq_u16 ( transmute ( a) , transmute ( b) ) ) ;
31423143 assert_eq ! ( r, e) ;
31433144
3144- let a: u16x8 = u16x8:: new ( 0x00 , 0x01 , 0x02 , 0x03 , 0x04 , 0x05 , 0x06 , 0x07 ) ;
3145- let b: u16x8 = u16x8:: new ( 0x00 , 0x00 , 0x02 , 0x04 , 0x04 , 0x00 , 0x06 , 0x08 ) ;
3145+ let a: u16x8 = u16x8:: new ( 0xFF_FF , 0xFF_FF , 0x02 , 0x03 , 0x04 , 0x05 , 0x06 , 0x07 ) ;
3146+ let b: u16x8 = u16x8:: new ( 0xFF_FF , 0 , 0x02 , 0x04 , 0x04 , 0x00 , 0x06 , 0x08 ) ;
31463147 let e: u16x8 = u16x8:: new ( 0xFF_FF , 0 , 0xFF_FF , 0 , 0xFF_FF , 0 , 0xFF_FF , 0 ) ;
31473148 let r: u16x8 = transmute ( vceqq_u16 ( transmute ( a) , transmute ( b) ) ) ;
31483149 assert_eq ! ( r, e) ;
31493150 }
31503151
31513152 #[ simd_test( enable = "neon" ) ]
31523153 unsafe fn test_vceq_u32 ( ) {
3153- let a: u32x2 = u32x2:: new ( 0x00 , 0x01 ) ;
3154- let b: u32x2 = u32x2:: new ( 0x00 , 0x01 ) ;
3154+ let a: u32x2 = u32x2:: new ( 0xFF_FF_FF_FF , 0x01 ) ;
3155+ let b: u32x2 = u32x2:: new ( 0xFF_FF_FF_FF , 0x01 ) ;
31553156 let e: u32x2 = u32x2:: new ( 0xFF_FF_FF_FF , 0xFF_FF_FF_FF ) ;
31563157 let r: u32x2 = transmute ( vceq_u32 ( transmute ( a) , transmute ( b) ) ) ;
31573158 assert_eq ! ( r, e) ;
31583159
3159- let a: u32x2 = u32x2:: new ( 0x00 , 0x01 ) ;
3160- let b: u32x2 = u32x2:: new ( 0x00 , 0x00 ) ;
3160+ let a: u32x2 = u32x2:: new ( 0xFF_FF_FF_FF , 0xFF_FF_FF_FF ) ;
3161+ let b: u32x2 = u32x2:: new ( 0xFF_FF_FF_FF , 0 ) ;
31613162 let e: u32x2 = u32x2:: new ( 0xFF_FF_FF_FF , 0 ) ;
31623163 let r: u32x2 = transmute ( vceq_u32 ( transmute ( a) , transmute ( b) ) ) ;
31633164 assert_eq ! ( r, e) ;
31643165 }
31653166
31663167 #[ simd_test( enable = "neon" ) ]
31673168 unsafe fn test_vceqq_u32 ( ) {
3168- let a: u32x4 = u32x4:: new ( 0x00 , 0x01 , 0x02 , 0x03 ) ;
3169- let b: u32x4 = u32x4:: new ( 0x00 , 0x01 , 0x02 , 0x03 ) ;
3169+ let a: u32x4 = u32x4:: new ( 0xFF_FF_FF_FF , 0x01 , 0x02 , 0x03 ) ;
3170+ let b: u32x4 = u32x4:: new ( 0xFF_FF_FF_FF , 0x01 , 0x02 , 0x03 ) ;
31703171 let e: u32x4 = u32x4:: new ( 0xFF_FF_FF_FF , 0xFF_FF_FF_FF , 0xFF_FF_FF_FF , 0xFF_FF_FF_FF ) ;
31713172 let r: u32x4 = transmute ( vceqq_u32 ( transmute ( a) , transmute ( b) ) ) ;
31723173 assert_eq ! ( r, e) ;
31733174
3174- let a: u32x4 = u32x4:: new ( 0x00 , 0x01 , 0x02 , 0x03 ) ;
3175- let b: u32x4 = u32x4:: new ( 0x00 , 0x00 , 0x02 , 0x04 ) ;
3175+ let a: u32x4 = u32x4:: new ( 0xFF_FF_FF_FF , 0xFF_FF_FF_FF , 0x02 , 0x03 ) ;
3176+ let b: u32x4 = u32x4:: new ( 0xFF_FF_FF_FF , 0 , 0x02 , 0x04 ) ;
31763177 let e: u32x4 = u32x4:: new ( 0xFF_FF_FF_FF , 0 , 0xFF_FF_FF_FF , 0 ) ;
31773178 let r: u32x4 = transmute ( vceqq_u32 ( transmute ( a) , transmute ( b) ) ) ;
31783179 assert_eq ! ( r, e) ;
31793180 }
31803181
31813182 #[ simd_test( enable = "neon" ) ]
31823183 unsafe fn test_vceq_s8 ( ) {
3183- let a: i8x8 = i8x8:: new ( 0x00 , 0x01 , 0x02 , 0x03 , 0x04 , 0x05 , 0x06 , 0x07 ) ;
3184- let b: i8x8 = i8x8:: new ( 0x00 , 0x01 , 0x02 , 0x03 , 0x04 , 0x05 , 0x06 , 0x07 ) ;
3184+ let a: i8x8 = i8x8:: new ( 0x7F , 0x01 , 0x02 , 0x03 , 0x04 , 0x05 , 0x06 , 0x07 ) ;
3185+ let b: i8x8 = i8x8:: new ( 0x7F , 0x01 , 0x02 , 0x03 , 0x04 , 0x05 , 0x06 , 0x07 ) ;
31853186 let e: u8x8 = u8x8:: new ( 0xFF , 0xFF , 0xFF , 0xFF , 0xFF , 0xFF , 0xFF , 0xFF ) ;
31863187 let r: u8x8 = transmute ( vceq_s8 ( transmute ( a) , transmute ( b) ) ) ;
31873188 assert_eq ! ( r, e) ;
31883189
3189- let a: i8x8 = i8x8:: new ( 0x00 , 0x01 , 0x02 , 0x03 , 0x04 , 0x05 , 0x06 , 0x07 ) ;
3190- let b: i8x8 = i8x8:: new ( 0x00 , 0x00 , 0x02 , 0x04 , 0x04 , 0x00 , 0x06 , 0x08 ) ;
3190+ let a: i8x8 = i8x8:: new ( 0x7F , 0x7F , 0x02 , 0x03 , 0x04 , 0x05 , 0x06 , 0x07 ) ;
3191+ let b: i8x8 = i8x8:: new ( 0x7F , - 128i8 , 0x02 , 0x04 , 0x04 , 0x00 , 0x06 , 0x08 ) ;
31913192 let e: u8x8 = u8x8:: new ( 0xFF , 0 , 0xFF , 0 , 0xFF , 0 , 0xFF , 0 ) ;
31923193 let r: u8x8 = transmute ( vceq_s8 ( transmute ( a) , transmute ( b) ) ) ;
31933194 assert_eq ! ( r, e) ;
@@ -3196,12 +3197,12 @@ mod test {
31963197 #[ simd_test( enable = "neon" ) ]
31973198 unsafe fn test_vceqq_s8 ( ) {
31983199 let a: i8x16 = i8x16:: new (
3199- 0x00 , 0x01 , 0x02 , 0x03 , 0x04 , 0x05 , 0x06 , 0x07 , 0x08 , 0x09 , 0x0A , 0x0B , 0x0C , 0x0D ,
3200- 0x0E , 0x0F ,
3200+ 0x7F , 0x01 , 0x02 , 0x03 , 0x04 , 0x05 , 0x06 , 0x07 , 0x08 , 0x09 , 0x0A , 0x0B , 0x0C , 0x0D ,
3201+ 0x0E , - 128i8 ,
32013202 ) ;
32023203 let b: i8x16 = i8x16:: new (
3203- 0x00 , 0x01 , 0x02 , 0x03 , 0x04 , 0x05 , 0x06 , 0x07 , 0x08 , 0x09 , 0x0A , 0x0B , 0x0C , 0x0D ,
3204- 0x0E , 0x0F ,
3204+ 0x7F , 0x01 , 0x02 , 0x03 , 0x04 , 0x05 , 0x06 , 0x07 , 0x08 , 0x09 , 0x0A , 0x0B , 0x0C , 0x0D ,
3205+ 0x0E , - 128i8 ,
32053206 ) ;
32063207 let e: u8x16 = u8x16:: new (
32073208 0xFF , 0xFF , 0xFF , 0xFF , 0xFF , 0xFF , 0xFF , 0xFF , 0xFF , 0xFF , 0xFF , 0xFF , 0xFF , 0xFF ,
@@ -3211,12 +3212,12 @@ mod test {
32113212 assert_eq ! ( r, e) ;
32123213
32133214 let a: i8x16 = i8x16:: new (
3214- 0x00 , 0x01 , 0x02 , 0x03 , 0x04 , 0x05 , 0x06 , 0x07 , 0x08 , 0x09 , 0x0A , 0x0B , 0x0C , 0x0D ,
3215- 0x0E , 0x0F ,
3215+ 0x7F , 0x7F , 0x02 , 0x03 , 0x04 , 0x05 , 0x06 , 0x07 , 0x08 , 0x09 , 0x0A , 0x0B , 0xCC , 0x0D ,
3216+ 0xEE , - 128i8 ,
32163217 ) ;
32173218 let b: i8x16 = i8x16:: new (
3218- 0x00 , 0x00 , 0x02 , 0x04 , 0x04 , 0x00 , 0x06 , 0x08 , 0x08 , 0x00 , 0x0A , 0x0A , 0x0C , 0x10 ,
3219- 0x0E , 0x1F ,
3219+ 0x7F , - 128i8 , 0x02 , 0x04 , 0x04 , 0x00 , 0x06 , 0x08 , 0x08 , 0x00 , 0x0A , 0x0A , 0xCC , 0xD0 ,
3220+ 0xEE , 0x7F ,
32203221 ) ;
32213222 let e: u8x16 = u8x16:: new (
32223223 0xFF , 0 , 0xFF , 0 , 0xFF , 0 , 0xFF , 0 , 0xFF , 0 , 0xFF , 0 , 0xFF , 0 , 0xFF , 0 ,
@@ -3227,61 +3228,61 @@ mod test {
32273228
32283229 #[ simd_test( enable = "neon" ) ]
32293230 unsafe fn test_vceq_s16 ( ) {
3230- let a: i16x4 = i16x4:: new ( 0x00 , 0x01 , 0x02 , 0x03 ) ;
3231- let b: i16x4 = i16x4:: new ( 0x00 , 0x01 , 0x02 , 0x03 ) ;
3231+ let a: i16x4 = i16x4:: new ( 0x7F_FF , 0x01 , 0x02 , 0x03 ) ;
3232+ let b: i16x4 = i16x4:: new ( 0x7F_FF , 0x01 , 0x02 , 0x03 ) ;
32323233 let e: u16x4 = u16x4:: new ( 0xFF_FF , 0xFF_FF , 0xFF_FF , 0xFF_FF ) ;
32333234 let r: u16x4 = transmute ( vceq_s16 ( transmute ( a) , transmute ( b) ) ) ;
32343235 assert_eq ! ( r, e) ;
32353236
3236- let a: i16x4 = i16x4:: new ( 0x00 , 0x01 , 0x02 , 0x03 ) ;
3237- let b: i16x4 = i16x4:: new ( 0x00 , 0x00 , 0x02 , 0x04 ) ;
3237+ let a: i16x4 = i16x4:: new ( 0x7F_FF , 0x7F_FF , 0x02 , 0x03 ) ;
3238+ let b: i16x4 = i16x4:: new ( 0x7F_FF , - 32768i16 , 0x02 , 0x04 ) ;
32383239 let e: u16x4 = u16x4:: new ( 0xFF_FF , 0 , 0xFF_FF , 0 ) ;
32393240 let r: u16x4 = transmute ( vceq_s16 ( transmute ( a) , transmute ( b) ) ) ;
32403241 assert_eq ! ( r, e) ;
32413242 }
32423243
32433244 #[ simd_test( enable = "neon" ) ]
32443245 unsafe fn test_vceqq_s16 ( ) {
3245- let a: i16x8 = i16x8:: new ( 0x00 , 0x01 , 0x02 , 0x03 , 0x04 , 0x05 , 0x06 , 0x07 ) ;
3246- let b: i16x8 = i16x8:: new ( 0x00 , 0x01 , 0x02 , 0x03 , 0x04 , 0x05 , 0x06 , 0x07 ) ;
3246+ let a: i16x8 = i16x8:: new ( 0x7F_FF , 0x01 , 0x02 , 0x03 , 0x04 , 0x05 , 0x06 , 0x07 ) ;
3247+ let b: i16x8 = i16x8:: new ( 0x7F_FF , 0x01 , 0x02 , 0x03 , 0x04 , 0x05 , 0x06 , 0x07 ) ;
32473248 let e: u16x8 = u16x8:: new (
32483249 0xFF_FF , 0xFF_FF , 0xFF_FF , 0xFF_FF , 0xFF_FF , 0xFF_FF , 0xFF_FF , 0xFF_FF ,
32493250 ) ;
32503251 let r: u16x8 = transmute ( vceqq_s16 ( transmute ( a) , transmute ( b) ) ) ;
32513252 assert_eq ! ( r, e) ;
32523253
3253- let a: i16x8 = i16x8:: new ( 0x00 , 0x01 , 0x02 , 0x03 , 0x04 , 0x05 , 0x06 , 0x07 ) ;
3254- let b: i16x8 = i16x8:: new ( 0x00 , 0x00 , 0x02 , 0x04 , 0x04 , 0x00 , 0x06 , 0x08 ) ;
3254+ let a: i16x8 = i16x8:: new ( 0x7F_FF , 0x7F_FF , 0x02 , 0x03 , 0x04 , 0x05 , 0x06 , 0x07 ) ;
3255+ let b: i16x8 = i16x8:: new ( 0x7F_FF , - 32768i16 , 0x02 , 0x04 , 0x04 , 0x00 , 0x06 , 0x08 ) ;
32553256 let e: u16x8 = u16x8:: new ( 0xFF_FF , 0 , 0xFF_FF , 0 , 0xFF_FF , 0 , 0xFF_FF , 0 ) ;
32563257 let r: u16x8 = transmute ( vceqq_s16 ( transmute ( a) , transmute ( b) ) ) ;
32573258 assert_eq ! ( r, e) ;
32583259 }
32593260
32603261 #[ simd_test( enable = "neon" ) ]
32613262 unsafe fn test_vceq_s32 ( ) {
3262- let a: i32x2 = i32x2:: new ( 0x00 , 0x01 ) ;
3263- let b: i32x2 = i32x2:: new ( 0x00 , 0x01 ) ;
3263+ let a: i32x2 = i32x2:: new ( 0x7F_FF_FF_FF , 0x01 ) ;
3264+ let b: i32x2 = i32x2:: new ( 0x7F_FF_FF_FF , 0x01 ) ;
32643265 let e: u32x2 = u32x2:: new ( 0xFF_FF_FF_FF , 0xFF_FF_FF_FF ) ;
32653266 let r: u32x2 = transmute ( vceq_s32 ( transmute ( a) , transmute ( b) ) ) ;
32663267 assert_eq ! ( r, e) ;
32673268
3268- let a: i32x2 = i32x2:: new ( 0x00 , 0x01 ) ;
3269- let b: i32x2 = i32x2:: new ( 0x00 , 0x00 ) ;
3269+ let a: i32x2 = i32x2:: new ( 0x7F_FF_FF_FF , 0x7F_FF_FF_FF ) ;
3270+ let b: i32x2 = i32x2:: new ( 0x7F_FF_FF_FF , - 2147483648i32 ) ;
32703271 let e: u32x2 = u32x2:: new ( 0xFF_FF_FF_FF , 0 ) ;
32713272 let r: u32x2 = transmute ( vceq_s32 ( transmute ( a) , transmute ( b) ) ) ;
32723273 assert_eq ! ( r, e) ;
32733274 }
32743275
32753276 #[ simd_test( enable = "neon" ) ]
32763277 unsafe fn test_vceqq_s32 ( ) {
3277- let a: i32x4 = i32x4:: new ( 0x00 , 0x01 , 0x02 , 0x03 ) ;
3278- let b: i32x4 = i32x4:: new ( 0x00 , 0x01 , 0x02 , 0x03 ) ;
3278+ let a: i32x4 = i32x4:: new ( 0x7F_FF_FF_FF , 0x01 , 0x02 , 0x03 ) ;
3279+ let b: i32x4 = i32x4:: new ( 0x7F_FF_FF_FF , 0x01 , 0x02 , 0x03 ) ;
32793280 let e: u32x4 = u32x4:: new ( 0xFF_FF_FF_FF , 0xFF_FF_FF_FF , 0xFF_FF_FF_FF , 0xFF_FF_FF_FF ) ;
32803281 let r: u32x4 = transmute ( vceqq_s32 ( transmute ( a) , transmute ( b) ) ) ;
32813282 assert_eq ! ( r, e) ;
32823283
3283- let a: i32x4 = i32x4:: new ( 0x00 , 0x01 , 0x02 , 0x03 ) ;
3284- let b: i32x4 = i32x4:: new ( 0x00 , 0x00 , 0x02 , 0x04 ) ;
3284+ let a: i32x4 = i32x4:: new ( 0x7F_FF_FF_FF , 0x7F_FF_FF_FF , 0x02 , 0x03 ) ;
3285+ let b: i32x4 = i32x4:: new ( 0x7F_FF_FF_FF , - 2147483648i32 , 0x02 , 0x04 ) ;
32853286 let e: u32x4 = u32x4:: new ( 0xFF_FF_FF_FF , 0 , 0xFF_FF_FF_FF , 0 ) ;
32863287 let r: u32x4 = transmute ( vceqq_s32 ( transmute ( a) , transmute ( b) ) ) ;
32873288 assert_eq ! ( r, e) ;
0 commit comments