From 698f8c2f01ea549d77d7dc3338a12e04c11057b9 Mon Sep 17 00:00:00 2001 From: Daniel Baumann Date: Wed, 17 Apr 2024 14:02:58 +0200 Subject: Adding upstream version 1.64.0+dfsg1. Signed-off-by: Daniel Baumann --- src/test/ui/simd/size-align.rs | 53 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 53 insertions(+) create mode 100644 src/test/ui/simd/size-align.rs (limited to 'src/test/ui/simd/size-align.rs') diff --git a/src/test/ui/simd/size-align.rs b/src/test/ui/simd/size-align.rs new file mode 100644 index 000000000..0afa49472 --- /dev/null +++ b/src/test/ui/simd/size-align.rs @@ -0,0 +1,53 @@ +// run-pass +#![allow(deprecated)] + + +#![feature(repr_simd)] +#![allow(non_camel_case_types)] + +use std::mem; + +/// `T` should satisfy `size_of T (mod min_align_of T) === 0` to be stored at `Vec` properly +/// Please consult the issue #20460 +fn check() { + assert_eq!(mem::size_of::() % mem::min_align_of::(), 0); + assert_eq!(mem::size_of::() % mem::min_align_of::(), 0); + assert_eq!(mem::size_of::() % mem::min_align_of::(), 0); +} + +#[repr(simd)] +struct U8([u8; N]); + +#[repr(simd)] +struct I16([i16; N]); + +#[repr(simd)] +struct F32([f32; N]); + +#[repr(simd)] +struct Usize([usize; N]); + +#[repr(simd)] +struct Isize([isize; N]); + +fn main() { + check::>(); + check::>(); + check::>(); + + check::>(); + check::>(); + check::>(); + + check::>(); + check::>(); + check::>(); + + check::>(); + check::>(); + check::>(); + + check::>(); + check::>(); + check::>(); +} -- cgit v1.2.3