Fix integer overflow in vadd aarch64 test cases (#1016)

This commit is contained in:
Sparrow Li
2021-02-26 10:42:24 +08:00
committed by GitHub
parent 35eff866a4
commit 5728faf0f7
@@ -5189,7 +5189,16 @@ unsafe fn test_vaddw_s8() {
let y = i8::MAX;
let b = i8x8::new(y, y, y, y, y, y, y, y);
let y = y as i16;
let e = i16x8::new(x + y, 1 + y, 2 + y, 3 + y, 4 + y, 5 + y, 6 + y, 7 + y);
let e = i16x8::new(
x.wrapping_add(y),
1 + y,
2 + y,
3 + y,
4 + y,
5 + y,
6 + y,
7 + y,
);
let r: i16x8 = transmute(vaddw_s8(transmute(a), transmute(b)));
assert_eq!(r, e);
}
@@ -5201,7 +5210,7 @@ unsafe fn test_vaddw_s16() {
let y = i16::MAX;
let b = i16x4::new(y, y, y, y);
let y = y as i32;
let e = i32x4::new(x + y, 1 + y, 2 + y, 3 + y);
let e = i32x4::new(x.wrapping_add(y), 1 + y, 2 + y, 3 + y);
let r: i32x4 = transmute(vaddw_s16(transmute(a), transmute(b)));
assert_eq!(r, e);
}
@@ -5213,7 +5222,7 @@ unsafe fn test_vaddw_s32() {
let y = i32::MAX;
let b = i32x2::new(y, y);
let y = y as i64;
let e = i64x2::new(x + y, 1 + y);
let e = i64x2::new(x.wrapping_add(y), 1 + y);
let r: i64x2 = transmute(vaddw_s32(transmute(a), transmute(b)));
assert_eq!(r, e);
}
@@ -5225,7 +5234,16 @@ unsafe fn test_vaddw_u8() {
let y = u8::MAX;
let b = u8x8::new(y, y, y, y, y, y, y, y);
let y = y as u16;
let e = u16x8::new(x + y, 1 + y, 2 + y, 3 + y, 4 + y, 5 + y, 6 + y, 7 + y);
let e = u16x8::new(
x.wrapping_add(y),
1 + y,
2 + y,
3 + y,
4 + y,
5 + y,
6 + y,
7 + y,
);
let r: u16x8 = transmute(vaddw_u8(transmute(a), transmute(b)));
assert_eq!(r, e);
}
@@ -5237,7 +5255,7 @@ unsafe fn test_vaddw_u16() {
let y = u16::MAX;
let b = u16x4::new(y, y, y, y);
let y = y as u32;
let e = u32x4::new(x + y, 1 + y, 2 + y, 3 + y);
let e = u32x4::new(x.wrapping_add(y), 1 + y, 2 + y, 3 + y);
let r: u32x4 = transmute(vaddw_u16(transmute(a), transmute(b)));
assert_eq!(r, e);
}
@@ -5249,7 +5267,7 @@ unsafe fn test_vaddw_u32() {
let y = u32::MAX;
let b = u32x2::new(y, y);
let y = y as u64;
let e = u64x2::new(x + y, 1 + y);
let e = u64x2::new(x.wrapping_add(y), 1 + y);
let r: u64x2 = transmute(vaddw_u32(transmute(a), transmute(b)));
assert_eq!(r, e);
}
@@ -5261,7 +5279,16 @@ unsafe fn test_vaddw_high_s8() {
let y = i8::MAX;
let b = i8x16::new(0, 0, 0, 0, 0, 0, 0, 0, y, y, y, y, y, y, y, y);
let y = y as i16;
let e = i16x8::new(x + y, 1 + y, 2 + y, 3 + y, 4 + y, 5 + y, 6 + y, 7 + y);
let e = i16x8::new(
x.wrapping_add(y),
1 + y,
2 + y,
3 + y,
4 + y,
5 + y,
6 + y,
7 + y,
);
let r: i16x8 = transmute(vaddw_high_s8(transmute(a), transmute(b)));
assert_eq!(r, e);
}
@@ -5273,7 +5300,7 @@ unsafe fn test_vaddw_high_s16() {
let y = i16::MAX;
let b = i16x8::new(0, 0, 0, 0, y, y, y, y);
let y = y as i32;
let e = i32x4::new(x + y, 1 + y, 2 + y, 3 + y);
let e = i32x4::new(x.wrapping_add(y), 1 + y, 2 + y, 3 + y);
let r: i32x4 = transmute(vaddw_high_s16(transmute(a), transmute(b)));
assert_eq!(r, e);
}
@@ -5285,7 +5312,7 @@ unsafe fn test_vaddw_high_s32() {
let y = i32::MAX;
let b = i32x4::new(0, 0, y, y);
let y = y as i64;
let e = i64x2::new(x + y, 1 + y);
let e = i64x2::new(x.wrapping_add(y), 1 + y);
let r: i64x2 = transmute(vaddw_high_s32(transmute(a), transmute(b)));
assert_eq!(r, e);
}
@@ -5297,7 +5324,16 @@ unsafe fn test_vaddw_high_u8() {
let y = u8::MAX;
let b = u8x16::new(0, 0, 0, 0, 0, 0, 0, 0, y, y, y, y, y, y, y, y);
let y = y as u16;
let e = u16x8::new(x + y, 1 + y, 2 + y, 3 + y, 4 + y, 5 + y, 6 + y, 7 + y);
let e = u16x8::new(
x.wrapping_add(y),
1 + y,
2 + y,
3 + y,
4 + y,
5 + y,
6 + y,
7 + y,
);
let r: u16x8 = transmute(vaddw_high_u8(transmute(a), transmute(b)));
assert_eq!(r, e);
}
@@ -5309,7 +5345,7 @@ unsafe fn test_vaddw_high_u16() {
let y = u16::MAX;
let b = u16x8::new(0, 0, 0, 0, y, y, y, y);
let y = y as u32;
let e = u32x4::new(x + y, 1 + y, 2 + y, 3 + y);
let e = u32x4::new(x.wrapping_add(y), 1 + y, 2 + y, 3 + y);
let r: u32x4 = transmute(vaddw_high_u16(transmute(a), transmute(b)));
assert_eq!(r, e);
}
@@ -5321,7 +5357,7 @@ unsafe fn test_vaddw_high_u32() {
let y = u32::MAX;
let b = u32x4::new(0, 0, y, y);
let y = y as u64;
let e = u64x2::new(x + y, 1 + y);
let e = u64x2::new(x.wrapping_add(y), 1 + y);
let r: u64x2 = transmute(vaddw_high_u32(transmute(a), transmute(b)));
assert_eq!(r, e);
}