|
|
|
|
@@ -6616,7 +6616,7 @@ pub unsafe fn vld1_p64_x2(a: *const p64) -> poly64x1x2_t {
|
|
|
|
|
#[inline]
|
|
|
|
|
#[target_feature(enable = "neon,aes")]
|
|
|
|
|
#[cfg_attr(target_arch = "arm", target_feature(enable = "aes,v8"))]
|
|
|
|
|
#[cfg_attr(all(test, target_arch = "arm"), assert_instr(ldr))]
|
|
|
|
|
#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
|
|
|
|
|
#[cfg_attr(all(test, target_arch = "aarch64"), assert_instr(ld1))]
|
|
|
|
|
pub unsafe fn vld1_p64_x3(a: *const p64) -> poly64x1x3_t {
|
|
|
|
|
transmute(vld1_s64_x3(transmute(a)))
|
|
|
|
|
@@ -6626,7 +6626,7 @@ pub unsafe fn vld1_p64_x3(a: *const p64) -> poly64x1x3_t {
|
|
|
|
|
#[inline]
|
|
|
|
|
#[target_feature(enable = "neon,aes")]
|
|
|
|
|
#[cfg_attr(target_arch = "arm", target_feature(enable = "aes,v8"))]
|
|
|
|
|
#[cfg_attr(all(test, target_arch = "arm"), assert_instr(ldr))]
|
|
|
|
|
#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
|
|
|
|
|
#[cfg_attr(all(test, target_arch = "aarch64"), assert_instr(ld1))]
|
|
|
|
|
pub unsafe fn vld1_p64_x4(a: *const p64) -> poly64x1x4_t {
|
|
|
|
|
transmute(vld1_s64_x4(transmute(a)))
|
|
|
|
|
@@ -6636,7 +6636,7 @@ pub unsafe fn vld1_p64_x4(a: *const p64) -> poly64x1x4_t {
|
|
|
|
|
#[inline]
|
|
|
|
|
#[target_feature(enable = "neon,aes")]
|
|
|
|
|
#[cfg_attr(target_arch = "arm", target_feature(enable = "aes,v8"))]
|
|
|
|
|
#[cfg_attr(all(test, target_arch = "arm"), assert_instr(ldr))]
|
|
|
|
|
#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
|
|
|
|
|
#[cfg_attr(all(test, target_arch = "aarch64"), assert_instr(ld1))]
|
|
|
|
|
pub unsafe fn vld1q_p64_x2(a: *const p64) -> poly64x2x2_t {
|
|
|
|
|
transmute(vld1q_s64_x2(transmute(a)))
|
|
|
|
|
@@ -6646,7 +6646,7 @@ pub unsafe fn vld1q_p64_x2(a: *const p64) -> poly64x2x2_t {
|
|
|
|
|
#[inline]
|
|
|
|
|
#[target_feature(enable = "neon,aes")]
|
|
|
|
|
#[cfg_attr(target_arch = "arm", target_feature(enable = "aes,v8"))]
|
|
|
|
|
#[cfg_attr(all(test, target_arch = "arm"), assert_instr(ldr))]
|
|
|
|
|
#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
|
|
|
|
|
#[cfg_attr(all(test, target_arch = "aarch64"), assert_instr(ld1))]
|
|
|
|
|
pub unsafe fn vld1q_p64_x3(a: *const p64) -> poly64x2x3_t {
|
|
|
|
|
transmute(vld1q_s64_x3(transmute(a)))
|
|
|
|
|
@@ -6656,7 +6656,7 @@ pub unsafe fn vld1q_p64_x3(a: *const p64) -> poly64x2x3_t {
|
|
|
|
|
#[inline]
|
|
|
|
|
#[target_feature(enable = "neon,aes")]
|
|
|
|
|
#[cfg_attr(target_arch = "arm", target_feature(enable = "aes,v8"))]
|
|
|
|
|
#[cfg_attr(all(test, target_arch = "arm"), assert_instr(ldr))]
|
|
|
|
|
#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
|
|
|
|
|
#[cfg_attr(all(test, target_arch = "aarch64"), assert_instr(ld1))]
|
|
|
|
|
pub unsafe fn vld1q_p64_x4(a: *const p64) -> poly64x2x4_t {
|
|
|
|
|
transmute(vld1q_s64_x4(transmute(a)))
|
|
|
|
|
@@ -7790,6 +7790,66 @@ pub unsafe fn vst1q_p16_x4(a: *mut p16, b: poly16x8x4_t) {
|
|
|
|
|
vst1q_s16_x4(transmute(a), transmute(b))
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/// Store multiple single-element structures to one, two, three, or four registers
|
|
|
|
|
#[inline]
|
|
|
|
|
#[target_feature(enable = "neon,aes")]
|
|
|
|
|
#[cfg_attr(target_arch = "arm", target_feature(enable = "aes,v8"))]
|
|
|
|
|
#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vst1))]
|
|
|
|
|
#[cfg_attr(all(test, target_arch = "aarch64"), assert_instr(st1))]
|
|
|
|
|
pub unsafe fn vst1_p64_x2(a: *mut p64, b: poly64x1x2_t) {
|
|
|
|
|
vst1_s64_x2(transmute(a), transmute(b))
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/// Store multiple single-element structures to one, two, three, or four registers
|
|
|
|
|
#[inline]
|
|
|
|
|
#[target_feature(enable = "neon,aes")]
|
|
|
|
|
#[cfg_attr(target_arch = "arm", target_feature(enable = "aes,v8"))]
|
|
|
|
|
#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
|
|
|
|
|
#[cfg_attr(all(test, target_arch = "aarch64"), assert_instr(st1))]
|
|
|
|
|
pub unsafe fn vst1_p64_x3(a: *mut p64, b: poly64x1x3_t) {
|
|
|
|
|
vst1_s64_x3(transmute(a), transmute(b))
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/// Store multiple single-element structures to one, two, three, or four registers
|
|
|
|
|
#[inline]
|
|
|
|
|
#[target_feature(enable = "neon,aes")]
|
|
|
|
|
#[cfg_attr(target_arch = "arm", target_feature(enable = "aes,v8"))]
|
|
|
|
|
#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
|
|
|
|
|
#[cfg_attr(all(test, target_arch = "aarch64"), assert_instr(st1))]
|
|
|
|
|
pub unsafe fn vst1_p64_x4(a: *mut p64, b: poly64x1x4_t) {
|
|
|
|
|
vst1_s64_x4(transmute(a), transmute(b))
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/// Store multiple single-element structures to one, two, three, or four registers
|
|
|
|
|
#[inline]
|
|
|
|
|
#[target_feature(enable = "neon,aes")]
|
|
|
|
|
#[cfg_attr(target_arch = "arm", target_feature(enable = "aes,v8"))]
|
|
|
|
|
#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
|
|
|
|
|
#[cfg_attr(all(test, target_arch = "aarch64"), assert_instr(st1))]
|
|
|
|
|
pub unsafe fn vst1q_p64_x2(a: *mut p64, b: poly64x2x2_t) {
|
|
|
|
|
vst1q_s64_x2(transmute(a), transmute(b))
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/// Store multiple single-element structures to one, two, three, or four registers
|
|
|
|
|
#[inline]
|
|
|
|
|
#[target_feature(enable = "neon,aes")]
|
|
|
|
|
#[cfg_attr(target_arch = "arm", target_feature(enable = "aes,v8"))]
|
|
|
|
|
#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
|
|
|
|
|
#[cfg_attr(all(test, target_arch = "aarch64"), assert_instr(st1))]
|
|
|
|
|
pub unsafe fn vst1q_p64_x3(a: *mut p64, b: poly64x2x3_t) {
|
|
|
|
|
vst1q_s64_x3(transmute(a), transmute(b))
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/// Store multiple single-element structures to one, two, three, or four registers
|
|
|
|
|
#[inline]
|
|
|
|
|
#[target_feature(enable = "neon,aes")]
|
|
|
|
|
#[cfg_attr(target_arch = "arm", target_feature(enable = "aes,v8"))]
|
|
|
|
|
#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
|
|
|
|
|
#[cfg_attr(all(test, target_arch = "aarch64"), assert_instr(st1))]
|
|
|
|
|
pub unsafe fn vst1q_p64_x4(a: *mut p64, b: poly64x2x4_t) {
|
|
|
|
|
vst1q_s64_x4(transmute(a), transmute(b))
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/// Store multiple single-element structures to one, two, three, or four registers
|
|
|
|
|
#[inline]
|
|
|
|
|
#[cfg(target_arch = "arm")]
|
|
|
|
|
@@ -21642,7 +21702,7 @@ mod test {
|
|
|
|
|
let a: [i8; 17] = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16];
|
|
|
|
|
let e: [i8; 16] = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16];
|
|
|
|
|
let mut r: [i8; 16] = [0i8; 16];
|
|
|
|
|
vst1_s8_x2(r.as_mut_ptr(), vld1_s8_x2(a[1..].as_ptr()));
|
|
|
|
|
vst1_s8_x2(r.as_mut_ptr(), core::ptr::read_unaligned(a[1..].as_ptr().cast()));
|
|
|
|
|
assert_eq!(r, e);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@@ -21651,7 +21711,7 @@ mod test {
|
|
|
|
|
let a: [i16; 9] = [0, 1, 2, 3, 4, 5, 6, 7, 8];
|
|
|
|
|
let e: [i16; 8] = [1, 2, 3, 4, 5, 6, 7, 8];
|
|
|
|
|
let mut r: [i16; 8] = [0i16; 8];
|
|
|
|
|
vst1_s16_x2(r.as_mut_ptr(), vld1_s16_x2(a[1..].as_ptr()));
|
|
|
|
|
vst1_s16_x2(r.as_mut_ptr(), core::ptr::read_unaligned(a[1..].as_ptr().cast()));
|
|
|
|
|
assert_eq!(r, e);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@@ -21660,7 +21720,7 @@ mod test {
|
|
|
|
|
let a: [i32; 5] = [0, 1, 2, 3, 4];
|
|
|
|
|
let e: [i32; 4] = [1, 2, 3, 4];
|
|
|
|
|
let mut r: [i32; 4] = [0i32; 4];
|
|
|
|
|
vst1_s32_x2(r.as_mut_ptr(), vld1_s32_x2(a[1..].as_ptr()));
|
|
|
|
|
vst1_s32_x2(r.as_mut_ptr(), core::ptr::read_unaligned(a[1..].as_ptr().cast()));
|
|
|
|
|
assert_eq!(r, e);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@@ -21669,7 +21729,7 @@ mod test {
|
|
|
|
|
let a: [i64; 3] = [0, 1, 2];
|
|
|
|
|
let e: [i64; 2] = [1, 2];
|
|
|
|
|
let mut r: [i64; 2] = [0i64; 2];
|
|
|
|
|
vst1_s64_x2(r.as_mut_ptr(), vld1_s64_x2(a[1..].as_ptr()));
|
|
|
|
|
vst1_s64_x2(r.as_mut_ptr(), core::ptr::read_unaligned(a[1..].as_ptr().cast()));
|
|
|
|
|
assert_eq!(r, e);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@@ -21678,7 +21738,7 @@ mod test {
|
|
|
|
|
let a: [i8; 33] = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32];
|
|
|
|
|
let e: [i8; 32] = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32];
|
|
|
|
|
let mut r: [i8; 32] = [0i8; 32];
|
|
|
|
|
vst1q_s8_x2(r.as_mut_ptr(), vld1q_s8_x2(a[1..].as_ptr()));
|
|
|
|
|
vst1q_s8_x2(r.as_mut_ptr(), core::ptr::read_unaligned(a[1..].as_ptr().cast()));
|
|
|
|
|
assert_eq!(r, e);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@@ -21687,7 +21747,7 @@ mod test {
|
|
|
|
|
let a: [i16; 17] = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16];
|
|
|
|
|
let e: [i16; 16] = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16];
|
|
|
|
|
let mut r: [i16; 16] = [0i16; 16];
|
|
|
|
|
vst1q_s16_x2(r.as_mut_ptr(), vld1q_s16_x2(a[1..].as_ptr()));
|
|
|
|
|
vst1q_s16_x2(r.as_mut_ptr(), core::ptr::read_unaligned(a[1..].as_ptr().cast()));
|
|
|
|
|
assert_eq!(r, e);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@@ -21696,7 +21756,7 @@ mod test {
|
|
|
|
|
let a: [i32; 9] = [0, 1, 2, 3, 4, 5, 6, 7, 8];
|
|
|
|
|
let e: [i32; 8] = [1, 2, 3, 4, 5, 6, 7, 8];
|
|
|
|
|
let mut r: [i32; 8] = [0i32; 8];
|
|
|
|
|
vst1q_s32_x2(r.as_mut_ptr(), vld1q_s32_x2(a[1..].as_ptr()));
|
|
|
|
|
vst1q_s32_x2(r.as_mut_ptr(), core::ptr::read_unaligned(a[1..].as_ptr().cast()));
|
|
|
|
|
assert_eq!(r, e);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@@ -21705,7 +21765,7 @@ mod test {
|
|
|
|
|
let a: [i64; 5] = [0, 1, 2, 3, 4];
|
|
|
|
|
let e: [i64; 4] = [1, 2, 3, 4];
|
|
|
|
|
let mut r: [i64; 4] = [0i64; 4];
|
|
|
|
|
vst1q_s64_x2(r.as_mut_ptr(), vld1q_s64_x2(a[1..].as_ptr()));
|
|
|
|
|
vst1q_s64_x2(r.as_mut_ptr(), core::ptr::read_unaligned(a[1..].as_ptr().cast()));
|
|
|
|
|
assert_eq!(r, e);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@@ -21714,7 +21774,7 @@ mod test {
|
|
|
|
|
let a: [i8; 25] = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24];
|
|
|
|
|
let e: [i8; 24] = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24];
|
|
|
|
|
let mut r: [i8; 24] = [0i8; 24];
|
|
|
|
|
vst1_s8_x3(r.as_mut_ptr(), vld1_s8_x3(a[1..].as_ptr()));
|
|
|
|
|
vst1_s8_x3(r.as_mut_ptr(), core::ptr::read_unaligned(a[1..].as_ptr().cast()));
|
|
|
|
|
assert_eq!(r, e);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@@ -21723,7 +21783,7 @@ mod test {
|
|
|
|
|
let a: [i16; 13] = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12];
|
|
|
|
|
let e: [i16; 12] = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12];
|
|
|
|
|
let mut r: [i16; 12] = [0i16; 12];
|
|
|
|
|
vst1_s16_x3(r.as_mut_ptr(), vld1_s16_x3(a[1..].as_ptr()));
|
|
|
|
|
vst1_s16_x3(r.as_mut_ptr(), core::ptr::read_unaligned(a[1..].as_ptr().cast()));
|
|
|
|
|
assert_eq!(r, e);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@@ -21732,7 +21792,7 @@ mod test {
|
|
|
|
|
let a: [i32; 7] = [0, 1, 2, 3, 4, 5, 6];
|
|
|
|
|
let e: [i32; 6] = [1, 2, 3, 4, 5, 6];
|
|
|
|
|
let mut r: [i32; 6] = [0i32; 6];
|
|
|
|
|
vst1_s32_x3(r.as_mut_ptr(), vld1_s32_x3(a[1..].as_ptr()));
|
|
|
|
|
vst1_s32_x3(r.as_mut_ptr(), core::ptr::read_unaligned(a[1..].as_ptr().cast()));
|
|
|
|
|
assert_eq!(r, e);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@@ -21741,7 +21801,7 @@ mod test {
|
|
|
|
|
let a: [i64; 4] = [0, 1, 2, 3];
|
|
|
|
|
let e: [i64; 3] = [1, 2, 3];
|
|
|
|
|
let mut r: [i64; 3] = [0i64; 3];
|
|
|
|
|
vst1_s64_x3(r.as_mut_ptr(), vld1_s64_x3(a[1..].as_ptr()));
|
|
|
|
|
vst1_s64_x3(r.as_mut_ptr(), core::ptr::read_unaligned(a[1..].as_ptr().cast()));
|
|
|
|
|
assert_eq!(r, e);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@@ -21750,7 +21810,7 @@ mod test {
|
|
|
|
|
let a: [i8; 49] = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16];
|
|
|
|
|
let e: [i8; 48] = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16];
|
|
|
|
|
let mut r: [i8; 48] = [0i8; 48];
|
|
|
|
|
vst1q_s8_x3(r.as_mut_ptr(), vld1q_s8_x3(a[1..].as_ptr()));
|
|
|
|
|
vst1q_s8_x3(r.as_mut_ptr(), core::ptr::read_unaligned(a[1..].as_ptr().cast()));
|
|
|
|
|
assert_eq!(r, e);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@@ -21759,7 +21819,7 @@ mod test {
|
|
|
|
|
let a: [i16; 25] = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24];
|
|
|
|
|
let e: [i16; 24] = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24];
|
|
|
|
|
let mut r: [i16; 24] = [0i16; 24];
|
|
|
|
|
vst1q_s16_x3(r.as_mut_ptr(), vld1q_s16_x3(a[1..].as_ptr()));
|
|
|
|
|
vst1q_s16_x3(r.as_mut_ptr(), core::ptr::read_unaligned(a[1..].as_ptr().cast()));
|
|
|
|
|
assert_eq!(r, e);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@@ -21768,7 +21828,7 @@ mod test {
|
|
|
|
|
let a: [i32; 13] = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12];
|
|
|
|
|
let e: [i32; 12] = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12];
|
|
|
|
|
let mut r: [i32; 12] = [0i32; 12];
|
|
|
|
|
vst1q_s32_x3(r.as_mut_ptr(), vld1q_s32_x3(a[1..].as_ptr()));
|
|
|
|
|
vst1q_s32_x3(r.as_mut_ptr(), core::ptr::read_unaligned(a[1..].as_ptr().cast()));
|
|
|
|
|
assert_eq!(r, e);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@@ -21777,7 +21837,7 @@ mod test {
|
|
|
|
|
let a: [i64; 7] = [0, 1, 2, 3, 4, 5, 6];
|
|
|
|
|
let e: [i64; 6] = [1, 2, 3, 4, 5, 6];
|
|
|
|
|
let mut r: [i64; 6] = [0i64; 6];
|
|
|
|
|
vst1q_s64_x3(r.as_mut_ptr(), vld1q_s64_x3(a[1..].as_ptr()));
|
|
|
|
|
vst1q_s64_x3(r.as_mut_ptr(), core::ptr::read_unaligned(a[1..].as_ptr().cast()));
|
|
|
|
|
assert_eq!(r, e);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@@ -21786,7 +21846,7 @@ mod test {
|
|
|
|
|
let a: [i8; 33] = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32];
|
|
|
|
|
let e: [i8; 32] = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32];
|
|
|
|
|
let mut r: [i8; 32] = [0i8; 32];
|
|
|
|
|
vst1_s8_x4(r.as_mut_ptr(), vld1_s8_x4(a[1..].as_ptr()));
|
|
|
|
|
vst1_s8_x4(r.as_mut_ptr(), core::ptr::read_unaligned(a[1..].as_ptr().cast()));
|
|
|
|
|
assert_eq!(r, e);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@@ -21795,7 +21855,7 @@ mod test {
|
|
|
|
|
let a: [i16; 17] = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16];
|
|
|
|
|
let e: [i16; 16] = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16];
|
|
|
|
|
let mut r: [i16; 16] = [0i16; 16];
|
|
|
|
|
vst1_s16_x4(r.as_mut_ptr(), vld1_s16_x4(a[1..].as_ptr()));
|
|
|
|
|
vst1_s16_x4(r.as_mut_ptr(), core::ptr::read_unaligned(a[1..].as_ptr().cast()));
|
|
|
|
|
assert_eq!(r, e);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@@ -21804,7 +21864,7 @@ mod test {
|
|
|
|
|
let a: [i32; 9] = [0, 1, 2, 3, 4, 5, 6, 7, 8];
|
|
|
|
|
let e: [i32; 8] = [1, 2, 3, 4, 5, 6, 7, 8];
|
|
|
|
|
let mut r: [i32; 8] = [0i32; 8];
|
|
|
|
|
vst1_s32_x4(r.as_mut_ptr(), vld1_s32_x4(a[1..].as_ptr()));
|
|
|
|
|
vst1_s32_x4(r.as_mut_ptr(), core::ptr::read_unaligned(a[1..].as_ptr().cast()));
|
|
|
|
|
assert_eq!(r, e);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@@ -21813,7 +21873,7 @@ mod test {
|
|
|
|
|
let a: [i64; 5] = [0, 1, 2, 3, 4];
|
|
|
|
|
let e: [i64; 4] = [1, 2, 3, 4];
|
|
|
|
|
let mut r: [i64; 4] = [0i64; 4];
|
|
|
|
|
vst1_s64_x4(r.as_mut_ptr(), vld1_s64_x4(a[1..].as_ptr()));
|
|
|
|
|
vst1_s64_x4(r.as_mut_ptr(), core::ptr::read_unaligned(a[1..].as_ptr().cast()));
|
|
|
|
|
assert_eq!(r, e);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@@ -21822,7 +21882,7 @@ mod test {
|
|
|
|
|
let a: [i8; 65] = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32];
|
|
|
|
|
let e: [i8; 64] = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32];
|
|
|
|
|
let mut r: [i8; 64] = [0i8; 64];
|
|
|
|
|
vst1q_s8_x4(r.as_mut_ptr(), vld1q_s8_x4(a[1..].as_ptr()));
|
|
|
|
|
vst1q_s8_x4(r.as_mut_ptr(), core::ptr::read_unaligned(a[1..].as_ptr().cast()));
|
|
|
|
|
assert_eq!(r, e);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@@ -21831,7 +21891,7 @@ mod test {
|
|
|
|
|
let a: [i16; 33] = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32];
|
|
|
|
|
let e: [i16; 32] = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32];
|
|
|
|
|
let mut r: [i16; 32] = [0i16; 32];
|
|
|
|
|
vst1q_s16_x4(r.as_mut_ptr(), vld1q_s16_x4(a[1..].as_ptr()));
|
|
|
|
|
vst1q_s16_x4(r.as_mut_ptr(), core::ptr::read_unaligned(a[1..].as_ptr().cast()));
|
|
|
|
|
assert_eq!(r, e);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@@ -21840,7 +21900,7 @@ mod test {
|
|
|
|
|
let a: [i32; 17] = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16];
|
|
|
|
|
let e: [i32; 16] = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16];
|
|
|
|
|
let mut r: [i32; 16] = [0i32; 16];
|
|
|
|
|
vst1q_s32_x4(r.as_mut_ptr(), vld1q_s32_x4(a[1..].as_ptr()));
|
|
|
|
|
vst1q_s32_x4(r.as_mut_ptr(), core::ptr::read_unaligned(a[1..].as_ptr().cast()));
|
|
|
|
|
assert_eq!(r, e);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@@ -21849,7 +21909,7 @@ mod test {
|
|
|
|
|
let a: [i64; 9] = [0, 1, 2, 3, 4, 5, 6, 7, 8];
|
|
|
|
|
let e: [i64; 8] = [1, 2, 3, 4, 5, 6, 7, 8];
|
|
|
|
|
let mut r: [i64; 8] = [0i64; 8];
|
|
|
|
|
vst1q_s64_x4(r.as_mut_ptr(), vld1q_s64_x4(a[1..].as_ptr()));
|
|
|
|
|
vst1q_s64_x4(r.as_mut_ptr(), core::ptr::read_unaligned(a[1..].as_ptr().cast()));
|
|
|
|
|
assert_eq!(r, e);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@@ -21858,7 +21918,7 @@ mod test {
|
|
|
|
|
let a: [u8; 17] = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16];
|
|
|
|
|
let e: [u8; 16] = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16];
|
|
|
|
|
let mut r: [u8; 16] = [0u8; 16];
|
|
|
|
|
vst1_u8_x2(r.as_mut_ptr(), vld1_u8_x2(a[1..].as_ptr()));
|
|
|
|
|
vst1_u8_x2(r.as_mut_ptr(), core::ptr::read_unaligned(a[1..].as_ptr().cast()));
|
|
|
|
|
assert_eq!(r, e);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@@ -21867,7 +21927,7 @@ mod test {
|
|
|
|
|
let a: [u16; 9] = [0, 1, 2, 3, 4, 5, 6, 7, 8];
|
|
|
|
|
let e: [u16; 8] = [1, 2, 3, 4, 5, 6, 7, 8];
|
|
|
|
|
let mut r: [u16; 8] = [0u16; 8];
|
|
|
|
|
vst1_u16_x2(r.as_mut_ptr(), vld1_u16_x2(a[1..].as_ptr()));
|
|
|
|
|
vst1_u16_x2(r.as_mut_ptr(), core::ptr::read_unaligned(a[1..].as_ptr().cast()));
|
|
|
|
|
assert_eq!(r, e);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@@ -21876,7 +21936,7 @@ mod test {
|
|
|
|
|
let a: [u32; 5] = [0, 1, 2, 3, 4];
|
|
|
|
|
let e: [u32; 4] = [1, 2, 3, 4];
|
|
|
|
|
let mut r: [u32; 4] = [0u32; 4];
|
|
|
|
|
vst1_u32_x2(r.as_mut_ptr(), vld1_u32_x2(a[1..].as_ptr()));
|
|
|
|
|
vst1_u32_x2(r.as_mut_ptr(), core::ptr::read_unaligned(a[1..].as_ptr().cast()));
|
|
|
|
|
assert_eq!(r, e);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@@ -21885,7 +21945,7 @@ mod test {
|
|
|
|
|
let a: [u64; 3] = [0, 1, 2];
|
|
|
|
|
let e: [u64; 2] = [1, 2];
|
|
|
|
|
let mut r: [u64; 2] = [0u64; 2];
|
|
|
|
|
vst1_u64_x2(r.as_mut_ptr(), vld1_u64_x2(a[1..].as_ptr()));
|
|
|
|
|
vst1_u64_x2(r.as_mut_ptr(), core::ptr::read_unaligned(a[1..].as_ptr().cast()));
|
|
|
|
|
assert_eq!(r, e);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@@ -21894,7 +21954,7 @@ mod test {
|
|
|
|
|
let a: [u8; 33] = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32];
|
|
|
|
|
let e: [u8; 32] = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32];
|
|
|
|
|
let mut r: [u8; 32] = [0u8; 32];
|
|
|
|
|
vst1q_u8_x2(r.as_mut_ptr(), vld1q_u8_x2(a[1..].as_ptr()));
|
|
|
|
|
vst1q_u8_x2(r.as_mut_ptr(), core::ptr::read_unaligned(a[1..].as_ptr().cast()));
|
|
|
|
|
assert_eq!(r, e);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@@ -21903,7 +21963,7 @@ mod test {
|
|
|
|
|
let a: [u16; 17] = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16];
|
|
|
|
|
let e: [u16; 16] = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16];
|
|
|
|
|
let mut r: [u16; 16] = [0u16; 16];
|
|
|
|
|
vst1q_u16_x2(r.as_mut_ptr(), vld1q_u16_x2(a[1..].as_ptr()));
|
|
|
|
|
vst1q_u16_x2(r.as_mut_ptr(), core::ptr::read_unaligned(a[1..].as_ptr().cast()));
|
|
|
|
|
assert_eq!(r, e);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@@ -21912,7 +21972,7 @@ mod test {
|
|
|
|
|
let a: [u32; 9] = [0, 1, 2, 3, 4, 5, 6, 7, 8];
|
|
|
|
|
let e: [u32; 8] = [1, 2, 3, 4, 5, 6, 7, 8];
|
|
|
|
|
let mut r: [u32; 8] = [0u32; 8];
|
|
|
|
|
vst1q_u32_x2(r.as_mut_ptr(), vld1q_u32_x2(a[1..].as_ptr()));
|
|
|
|
|
vst1q_u32_x2(r.as_mut_ptr(), core::ptr::read_unaligned(a[1..].as_ptr().cast()));
|
|
|
|
|
assert_eq!(r, e);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@@ -21921,7 +21981,7 @@ mod test {
|
|
|
|
|
let a: [u64; 5] = [0, 1, 2, 3, 4];
|
|
|
|
|
let e: [u64; 4] = [1, 2, 3, 4];
|
|
|
|
|
let mut r: [u64; 4] = [0u64; 4];
|
|
|
|
|
vst1q_u64_x2(r.as_mut_ptr(), vld1q_u64_x2(a[1..].as_ptr()));
|
|
|
|
|
vst1q_u64_x2(r.as_mut_ptr(), core::ptr::read_unaligned(a[1..].as_ptr().cast()));
|
|
|
|
|
assert_eq!(r, e);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@@ -21930,7 +21990,7 @@ mod test {
|
|
|
|
|
let a: [u8; 25] = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24];
|
|
|
|
|
let e: [u8; 24] = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24];
|
|
|
|
|
let mut r: [u8; 24] = [0u8; 24];
|
|
|
|
|
vst1_u8_x3(r.as_mut_ptr(), vld1_u8_x3(a[1..].as_ptr()));
|
|
|
|
|
vst1_u8_x3(r.as_mut_ptr(), core::ptr::read_unaligned(a[1..].as_ptr().cast()));
|
|
|
|
|
assert_eq!(r, e);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@@ -21939,7 +21999,7 @@ mod test {
|
|
|
|
|
let a: [u16; 13] = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12];
|
|
|
|
|
let e: [u16; 12] = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12];
|
|
|
|
|
let mut r: [u16; 12] = [0u16; 12];
|
|
|
|
|
vst1_u16_x3(r.as_mut_ptr(), vld1_u16_x3(a[1..].as_ptr()));
|
|
|
|
|
vst1_u16_x3(r.as_mut_ptr(), core::ptr::read_unaligned(a[1..].as_ptr().cast()));
|
|
|
|
|
assert_eq!(r, e);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@@ -21948,7 +22008,7 @@ mod test {
|
|
|
|
|
let a: [u32; 7] = [0, 1, 2, 3, 4, 5, 6];
|
|
|
|
|
let e: [u32; 6] = [1, 2, 3, 4, 5, 6];
|
|
|
|
|
let mut r: [u32; 6] = [0u32; 6];
|
|
|
|
|
vst1_u32_x3(r.as_mut_ptr(), vld1_u32_x3(a[1..].as_ptr()));
|
|
|
|
|
vst1_u32_x3(r.as_mut_ptr(), core::ptr::read_unaligned(a[1..].as_ptr().cast()));
|
|
|
|
|
assert_eq!(r, e);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@@ -21957,7 +22017,7 @@ mod test {
|
|
|
|
|
let a: [u64; 4] = [0, 1, 2, 3];
|
|
|
|
|
let e: [u64; 3] = [1, 2, 3];
|
|
|
|
|
let mut r: [u64; 3] = [0u64; 3];
|
|
|
|
|
vst1_u64_x3(r.as_mut_ptr(), vld1_u64_x3(a[1..].as_ptr()));
|
|
|
|
|
vst1_u64_x3(r.as_mut_ptr(), core::ptr::read_unaligned(a[1..].as_ptr().cast()));
|
|
|
|
|
assert_eq!(r, e);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@@ -21966,7 +22026,7 @@ mod test {
|
|
|
|
|
let a: [u8; 49] = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16];
|
|
|
|
|
let e: [u8; 48] = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16];
|
|
|
|
|
let mut r: [u8; 48] = [0u8; 48];
|
|
|
|
|
vst1q_u8_x3(r.as_mut_ptr(), vld1q_u8_x3(a[1..].as_ptr()));
|
|
|
|
|
vst1q_u8_x3(r.as_mut_ptr(), core::ptr::read_unaligned(a[1..].as_ptr().cast()));
|
|
|
|
|
assert_eq!(r, e);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@@ -21975,7 +22035,7 @@ mod test {
|
|
|
|
|
let a: [u16; 25] = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24];
|
|
|
|
|
let e: [u16; 24] = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24];
|
|
|
|
|
let mut r: [u16; 24] = [0u16; 24];
|
|
|
|
|
vst1q_u16_x3(r.as_mut_ptr(), vld1q_u16_x3(a[1..].as_ptr()));
|
|
|
|
|
vst1q_u16_x3(r.as_mut_ptr(), core::ptr::read_unaligned(a[1..].as_ptr().cast()));
|
|
|
|
|
assert_eq!(r, e);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@@ -21984,7 +22044,7 @@ mod test {
|
|
|
|
|
let a: [u32; 13] = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12];
|
|
|
|
|
let e: [u32; 12] = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12];
|
|
|
|
|
let mut r: [u32; 12] = [0u32; 12];
|
|
|
|
|
vst1q_u32_x3(r.as_mut_ptr(), vld1q_u32_x3(a[1..].as_ptr()));
|
|
|
|
|
vst1q_u32_x3(r.as_mut_ptr(), core::ptr::read_unaligned(a[1..].as_ptr().cast()));
|
|
|
|
|
assert_eq!(r, e);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@@ -21993,7 +22053,7 @@ mod test {
|
|
|
|
|
let a: [u64; 7] = [0, 1, 2, 3, 4, 5, 6];
|
|
|
|
|
let e: [u64; 6] = [1, 2, 3, 4, 5, 6];
|
|
|
|
|
let mut r: [u64; 6] = [0u64; 6];
|
|
|
|
|
vst1q_u64_x3(r.as_mut_ptr(), vld1q_u64_x3(a[1..].as_ptr()));
|
|
|
|
|
vst1q_u64_x3(r.as_mut_ptr(), core::ptr::read_unaligned(a[1..].as_ptr().cast()));
|
|
|
|
|
assert_eq!(r, e);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@@ -22002,7 +22062,7 @@ mod test {
|
|
|
|
|
let a: [u8; 33] = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32];
|
|
|
|
|
let e: [u8; 32] = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32];
|
|
|
|
|
let mut r: [u8; 32] = [0u8; 32];
|
|
|
|
|
vst1_u8_x4(r.as_mut_ptr(), vld1_u8_x4(a[1..].as_ptr()));
|
|
|
|
|
vst1_u8_x4(r.as_mut_ptr(), core::ptr::read_unaligned(a[1..].as_ptr().cast()));
|
|
|
|
|
assert_eq!(r, e);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@@ -22011,7 +22071,7 @@ mod test {
|
|
|
|
|
let a: [u16; 17] = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16];
|
|
|
|
|
let e: [u16; 16] = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16];
|
|
|
|
|
let mut r: [u16; 16] = [0u16; 16];
|
|
|
|
|
vst1_u16_x4(r.as_mut_ptr(), vld1_u16_x4(a[1..].as_ptr()));
|
|
|
|
|
vst1_u16_x4(r.as_mut_ptr(), core::ptr::read_unaligned(a[1..].as_ptr().cast()));
|
|
|
|
|
assert_eq!(r, e);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@@ -22020,7 +22080,7 @@ mod test {
|
|
|
|
|
let a: [u32; 9] = [0, 1, 2, 3, 4, 5, 6, 7, 8];
|
|
|
|
|
let e: [u32; 8] = [1, 2, 3, 4, 5, 6, 7, 8];
|
|
|
|
|
let mut r: [u32; 8] = [0u32; 8];
|
|
|
|
|
vst1_u32_x4(r.as_mut_ptr(), vld1_u32_x4(a[1..].as_ptr()));
|
|
|
|
|
vst1_u32_x4(r.as_mut_ptr(), core::ptr::read_unaligned(a[1..].as_ptr().cast()));
|
|
|
|
|
assert_eq!(r, e);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@@ -22029,7 +22089,7 @@ mod test {
|
|
|
|
|
let a: [u64; 5] = [0, 1, 2, 3, 4];
|
|
|
|
|
let e: [u64; 4] = [1, 2, 3, 4];
|
|
|
|
|
let mut r: [u64; 4] = [0u64; 4];
|
|
|
|
|
vst1_u64_x4(r.as_mut_ptr(), vld1_u64_x4(a[1..].as_ptr()));
|
|
|
|
|
vst1_u64_x4(r.as_mut_ptr(), core::ptr::read_unaligned(a[1..].as_ptr().cast()));
|
|
|
|
|
assert_eq!(r, e);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@@ -22038,7 +22098,7 @@ mod test {
|
|
|
|
|
let a: [u8; 65] = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32];
|
|
|
|
|
let e: [u8; 64] = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32];
|
|
|
|
|
let mut r: [u8; 64] = [0u8; 64];
|
|
|
|
|
vst1q_u8_x4(r.as_mut_ptr(), vld1q_u8_x4(a[1..].as_ptr()));
|
|
|
|
|
vst1q_u8_x4(r.as_mut_ptr(), core::ptr::read_unaligned(a[1..].as_ptr().cast()));
|
|
|
|
|
assert_eq!(r, e);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@@ -22047,7 +22107,7 @@ mod test {
|
|
|
|
|
let a: [u16; 33] = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32];
|
|
|
|
|
let e: [u16; 32] = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32];
|
|
|
|
|
let mut r: [u16; 32] = [0u16; 32];
|
|
|
|
|
vst1q_u16_x4(r.as_mut_ptr(), vld1q_u16_x4(a[1..].as_ptr()));
|
|
|
|
|
vst1q_u16_x4(r.as_mut_ptr(), core::ptr::read_unaligned(a[1..].as_ptr().cast()));
|
|
|
|
|
assert_eq!(r, e);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@@ -22056,7 +22116,7 @@ mod test {
|
|
|
|
|
let a: [u32; 17] = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16];
|
|
|
|
|
let e: [u32; 16] = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16];
|
|
|
|
|
let mut r: [u32; 16] = [0u32; 16];
|
|
|
|
|
vst1q_u32_x4(r.as_mut_ptr(), vld1q_u32_x4(a[1..].as_ptr()));
|
|
|
|
|
vst1q_u32_x4(r.as_mut_ptr(), core::ptr::read_unaligned(a[1..].as_ptr().cast()));
|
|
|
|
|
assert_eq!(r, e);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@@ -22065,7 +22125,7 @@ mod test {
|
|
|
|
|
let a: [u64; 9] = [0, 1, 2, 3, 4, 5, 6, 7, 8];
|
|
|
|
|
let e: [u64; 8] = [1, 2, 3, 4, 5, 6, 7, 8];
|
|
|
|
|
let mut r: [u64; 8] = [0u64; 8];
|
|
|
|
|
vst1q_u64_x4(r.as_mut_ptr(), vld1q_u64_x4(a[1..].as_ptr()));
|
|
|
|
|
vst1q_u64_x4(r.as_mut_ptr(), core::ptr::read_unaligned(a[1..].as_ptr().cast()));
|
|
|
|
|
assert_eq!(r, e);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@@ -22074,7 +22134,7 @@ mod test {
|
|
|
|
|
let a: [u8; 17] = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16];
|
|
|
|
|
let e: [u8; 16] = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16];
|
|
|
|
|
let mut r: [u8; 16] = [0u8; 16];
|
|
|
|
|
vst1_p8_x2(r.as_mut_ptr(), vld1_p8_x2(a[1..].as_ptr()));
|
|
|
|
|
vst1_p8_x2(r.as_mut_ptr(), core::ptr::read_unaligned(a[1..].as_ptr().cast()));
|
|
|
|
|
assert_eq!(r, e);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@@ -22083,7 +22143,7 @@ mod test {
|
|
|
|
|
let a: [u8; 25] = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24];
|
|
|
|
|
let e: [u8; 24] = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24];
|
|
|
|
|
let mut r: [u8; 24] = [0u8; 24];
|
|
|
|
|
vst1_p8_x3(r.as_mut_ptr(), vld1_p8_x3(a[1..].as_ptr()));
|
|
|
|
|
vst1_p8_x3(r.as_mut_ptr(), core::ptr::read_unaligned(a[1..].as_ptr().cast()));
|
|
|
|
|
assert_eq!(r, e);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@@ -22092,7 +22152,7 @@ mod test {
|
|
|
|
|
let a: [u8; 33] = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32];
|
|
|
|
|
let e: [u8; 32] = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32];
|
|
|
|
|
let mut r: [u8; 32] = [0u8; 32];
|
|
|
|
|
vst1_p8_x4(r.as_mut_ptr(), vld1_p8_x4(a[1..].as_ptr()));
|
|
|
|
|
vst1_p8_x4(r.as_mut_ptr(), core::ptr::read_unaligned(a[1..].as_ptr().cast()));
|
|
|
|
|
assert_eq!(r, e);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@@ -22101,7 +22161,7 @@ mod test {
|
|
|
|
|
let a: [u8; 33] = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32];
|
|
|
|
|
let e: [u8; 32] = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32];
|
|
|
|
|
let mut r: [u8; 32] = [0u8; 32];
|
|
|
|
|
vst1q_p8_x2(r.as_mut_ptr(), vld1q_p8_x2(a[1..].as_ptr()));
|
|
|
|
|
vst1q_p8_x2(r.as_mut_ptr(), core::ptr::read_unaligned(a[1..].as_ptr().cast()));
|
|
|
|
|
assert_eq!(r, e);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@@ -22110,7 +22170,7 @@ mod test {
|
|
|
|
|
let a: [u8; 49] = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16];
|
|
|
|
|
let e: [u8; 48] = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16];
|
|
|
|
|
let mut r: [u8; 48] = [0u8; 48];
|
|
|
|
|
vst1q_p8_x3(r.as_mut_ptr(), vld1q_p8_x3(a[1..].as_ptr()));
|
|
|
|
|
vst1q_p8_x3(r.as_mut_ptr(), core::ptr::read_unaligned(a[1..].as_ptr().cast()));
|
|
|
|
|
assert_eq!(r, e);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@@ -22119,7 +22179,7 @@ mod test {
|
|
|
|
|
let a: [u8; 65] = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32];
|
|
|
|
|
let e: [u8; 64] = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32];
|
|
|
|
|
let mut r: [u8; 64] = [0u8; 64];
|
|
|
|
|
vst1q_p8_x4(r.as_mut_ptr(), vld1q_p8_x4(a[1..].as_ptr()));
|
|
|
|
|
vst1q_p8_x4(r.as_mut_ptr(), core::ptr::read_unaligned(a[1..].as_ptr().cast()));
|
|
|
|
|
assert_eq!(r, e);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@@ -22128,7 +22188,7 @@ mod test {
|
|
|
|
|
let a: [u16; 9] = [0, 1, 2, 3, 4, 5, 6, 7, 8];
|
|
|
|
|
let e: [u16; 8] = [1, 2, 3, 4, 5, 6, 7, 8];
|
|
|
|
|
let mut r: [u16; 8] = [0u16; 8];
|
|
|
|
|
vst1_p16_x2(r.as_mut_ptr(), vld1_p16_x2(a[1..].as_ptr()));
|
|
|
|
|
vst1_p16_x2(r.as_mut_ptr(), core::ptr::read_unaligned(a[1..].as_ptr().cast()));
|
|
|
|
|
assert_eq!(r, e);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@@ -22137,7 +22197,7 @@ mod test {
|
|
|
|
|
let a: [u16; 13] = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12];
|
|
|
|
|
let e: [u16; 12] = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12];
|
|
|
|
|
let mut r: [u16; 12] = [0u16; 12];
|
|
|
|
|
vst1_p16_x3(r.as_mut_ptr(), vld1_p16_x3(a[1..].as_ptr()));
|
|
|
|
|
vst1_p16_x3(r.as_mut_ptr(), core::ptr::read_unaligned(a[1..].as_ptr().cast()));
|
|
|
|
|
assert_eq!(r, e);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@@ -22146,7 +22206,7 @@ mod test {
|
|
|
|
|
let a: [u16; 17] = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16];
|
|
|
|
|
let e: [u16; 16] = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16];
|
|
|
|
|
let mut r: [u16; 16] = [0u16; 16];
|
|
|
|
|
vst1_p16_x4(r.as_mut_ptr(), vld1_p16_x4(a[1..].as_ptr()));
|
|
|
|
|
vst1_p16_x4(r.as_mut_ptr(), core::ptr::read_unaligned(a[1..].as_ptr().cast()));
|
|
|
|
|
assert_eq!(r, e);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@@ -22155,7 +22215,7 @@ mod test {
|
|
|
|
|
let a: [u16; 17] = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16];
|
|
|
|
|
let e: [u16; 16] = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16];
|
|
|
|
|
let mut r: [u16; 16] = [0u16; 16];
|
|
|
|
|
vst1q_p16_x2(r.as_mut_ptr(), vld1q_p16_x2(a[1..].as_ptr()));
|
|
|
|
|
vst1q_p16_x2(r.as_mut_ptr(), core::ptr::read_unaligned(a[1..].as_ptr().cast()));
|
|
|
|
|
assert_eq!(r, e);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@@ -22164,7 +22224,7 @@ mod test {
|
|
|
|
|
let a: [u16; 25] = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24];
|
|
|
|
|
let e: [u16; 24] = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24];
|
|
|
|
|
let mut r: [u16; 24] = [0u16; 24];
|
|
|
|
|
vst1q_p16_x3(r.as_mut_ptr(), vld1q_p16_x3(a[1..].as_ptr()));
|
|
|
|
|
vst1q_p16_x3(r.as_mut_ptr(), core::ptr::read_unaligned(a[1..].as_ptr().cast()));
|
|
|
|
|
assert_eq!(r, e);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@@ -22173,7 +22233,61 @@ mod test {
|
|
|
|
|
let a: [u16; 33] = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32];
|
|
|
|
|
let e: [u16; 32] = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32];
|
|
|
|
|
let mut r: [u16; 32] = [0u16; 32];
|
|
|
|
|
vst1q_p16_x4(r.as_mut_ptr(), vld1q_p16_x4(a[1..].as_ptr()));
|
|
|
|
|
vst1q_p16_x4(r.as_mut_ptr(), core::ptr::read_unaligned(a[1..].as_ptr().cast()));
|
|
|
|
|
assert_eq!(r, e);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
#[simd_test(enable = "neon")]
|
|
|
|
|
unsafe fn test_vst1_p64_x2() {
|
|
|
|
|
let a: [u64; 3] = [0, 1, 2];
|
|
|
|
|
let e: [u64; 2] = [1, 2];
|
|
|
|
|
let mut r: [u64; 2] = [0u64; 2];
|
|
|
|
|
vst1_p64_x2(r.as_mut_ptr(), core::ptr::read_unaligned(a[1..].as_ptr().cast()));
|
|
|
|
|
assert_eq!(r, e);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
#[simd_test(enable = "neon")]
|
|
|
|
|
unsafe fn test_vst1_p64_x3() {
|
|
|
|
|
let a: [u64; 4] = [0, 1, 2, 3];
|
|
|
|
|
let e: [u64; 3] = [1, 2, 3];
|
|
|
|
|
let mut r: [u64; 3] = [0u64; 3];
|
|
|
|
|
vst1_p64_x3(r.as_mut_ptr(), core::ptr::read_unaligned(a[1..].as_ptr().cast()));
|
|
|
|
|
assert_eq!(r, e);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
#[simd_test(enable = "neon")]
|
|
|
|
|
unsafe fn test_vst1_p64_x4() {
|
|
|
|
|
let a: [u64; 5] = [0, 1, 2, 3, 4];
|
|
|
|
|
let e: [u64; 4] = [1, 2, 3, 4];
|
|
|
|
|
let mut r: [u64; 4] = [0u64; 4];
|
|
|
|
|
vst1_p64_x4(r.as_mut_ptr(), core::ptr::read_unaligned(a[1..].as_ptr().cast()));
|
|
|
|
|
assert_eq!(r, e);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
#[simd_test(enable = "neon")]
|
|
|
|
|
unsafe fn test_vst1q_p64_x2() {
|
|
|
|
|
let a: [u64; 5] = [0, 1, 2, 3, 4];
|
|
|
|
|
let e: [u64; 4] = [1, 2, 3, 4];
|
|
|
|
|
let mut r: [u64; 4] = [0u64; 4];
|
|
|
|
|
vst1q_p64_x2(r.as_mut_ptr(), core::ptr::read_unaligned(a[1..].as_ptr().cast()));
|
|
|
|
|
assert_eq!(r, e);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
#[simd_test(enable = "neon")]
|
|
|
|
|
unsafe fn test_vst1q_p64_x3() {
|
|
|
|
|
let a: [u64; 7] = [0, 1, 2, 3, 4, 5, 6];
|
|
|
|
|
let e: [u64; 6] = [1, 2, 3, 4, 5, 6];
|
|
|
|
|
let mut r: [u64; 6] = [0u64; 6];
|
|
|
|
|
vst1q_p64_x3(r.as_mut_ptr(), core::ptr::read_unaligned(a[1..].as_ptr().cast()));
|
|
|
|
|
assert_eq!(r, e);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
#[simd_test(enable = "neon")]
|
|
|
|
|
unsafe fn test_vst1q_p64_x4() {
|
|
|
|
|
let a: [u64; 9] = [0, 1, 2, 3, 4, 5, 6, 7, 8];
|
|
|
|
|
let e: [u64; 8] = [1, 2, 3, 4, 5, 6, 7, 8];
|
|
|
|
|
let mut r: [u64; 8] = [0u64; 8];
|
|
|
|
|
vst1q_p64_x4(r.as_mut_ptr(), core::ptr::read_unaligned(a[1..].as_ptr().cast()));
|
|
|
|
|
assert_eq!(r, e);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@@ -22182,7 +22296,7 @@ mod test {
|
|
|
|
|
let a: [f32; 5] = [0., 1., 2., 3., 4.];
|
|
|
|
|
let e: [f32; 4] = [1., 2., 3., 4.];
|
|
|
|
|
let mut r: [f32; 4] = [0f32; 4];
|
|
|
|
|
vst1_f32_x2(r.as_mut_ptr(), vld1_f32_x2(a[1..].as_ptr()));
|
|
|
|
|
vst1_f32_x2(r.as_mut_ptr(), core::ptr::read_unaligned(a[1..].as_ptr().cast()));
|
|
|
|
|
assert_eq!(r, e);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@@ -22191,7 +22305,7 @@ mod test {
|
|
|
|
|
let a: [f32; 9] = [0., 1., 2., 3., 4., 5., 6., 7., 8.];
|
|
|
|
|
let e: [f32; 8] = [1., 2., 3., 4., 5., 6., 7., 8.];
|
|
|
|
|
let mut r: [f32; 8] = [0f32; 8];
|
|
|
|
|
vst1q_f32_x2(r.as_mut_ptr(), vld1q_f32_x2(a[1..].as_ptr()));
|
|
|
|
|
vst1q_f32_x2(r.as_mut_ptr(), core::ptr::read_unaligned(a[1..].as_ptr().cast()));
|
|
|
|
|
assert_eq!(r, e);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@@ -22200,7 +22314,7 @@ mod test {
|
|
|
|
|
let a: [f32; 7] = [0., 1., 2., 3., 4., 5., 6.];
|
|
|
|
|
let e: [f32; 6] = [1., 2., 3., 4., 5., 6.];
|
|
|
|
|
let mut r: [f32; 6] = [0f32; 6];
|
|
|
|
|
vst1_f32_x3(r.as_mut_ptr(), vld1_f32_x3(a[1..].as_ptr()));
|
|
|
|
|
vst1_f32_x3(r.as_mut_ptr(), core::ptr::read_unaligned(a[1..].as_ptr().cast()));
|
|
|
|
|
assert_eq!(r, e);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@@ -22209,7 +22323,7 @@ mod test {
|
|
|
|
|
let a: [f32; 13] = [0., 1., 2., 3., 4., 5., 6., 7., 8., 9., 10., 11., 12.];
|
|
|
|
|
let e: [f32; 12] = [1., 2., 3., 4., 5., 6., 7., 8., 9., 10., 11., 12.];
|
|
|
|
|
let mut r: [f32; 12] = [0f32; 12];
|
|
|
|
|
vst1q_f32_x3(r.as_mut_ptr(), vld1q_f32_x3(a[1..].as_ptr()));
|
|
|
|
|
vst1q_f32_x3(r.as_mut_ptr(), core::ptr::read_unaligned(a[1..].as_ptr().cast()));
|
|
|
|
|
assert_eq!(r, e);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@@ -22218,7 +22332,7 @@ mod test {
|
|
|
|
|
let a: [f32; 9] = [0., 1., 2., 3., 4., 5., 6., 7., 8.];
|
|
|
|
|
let e: [f32; 8] = [1., 2., 3., 4., 5., 6., 7., 8.];
|
|
|
|
|
let mut r: [f32; 8] = [0f32; 8];
|
|
|
|
|
vst1_f32_x4(r.as_mut_ptr(), vld1_f32_x4(a[1..].as_ptr()));
|
|
|
|
|
vst1_f32_x4(r.as_mut_ptr(), core::ptr::read_unaligned(a[1..].as_ptr().cast()));
|
|
|
|
|
assert_eq!(r, e);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@@ -22227,7 +22341,7 @@ mod test {
|
|
|
|
|
let a: [f32; 17] = [0., 1., 2., 3., 4., 5., 6., 7., 8., 9., 10., 11., 12., 13., 14., 15., 16.];
|
|
|
|
|
let e: [f32; 16] = [1., 2., 3., 4., 5., 6., 7., 8., 9., 10., 11., 12., 13., 14., 15., 16.];
|
|
|
|
|
let mut r: [f32; 16] = [0f32; 16];
|
|
|
|
|
vst1q_f32_x4(r.as_mut_ptr(), vld1q_f32_x4(a[1..].as_ptr()));
|
|
|
|
|
vst1q_f32_x4(r.as_mut_ptr(), core::ptr::read_unaligned(a[1..].as_ptr().cast()));
|
|
|
|
|
assert_eq!(r, e);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|