summaryrefslogtreecommitdiffstats
path: root/tests/ui/simd/type-len.rs
diff options
context:
space:
mode:
Diffstat (limited to 'tests/ui/simd/type-len.rs')
-rw-r--r--tests/ui/simd/type-len.rs39
1 files changed, 39 insertions, 0 deletions
diff --git a/tests/ui/simd/type-len.rs b/tests/ui/simd/type-len.rs
new file mode 100644
index 000000000..d82c70b8d
--- /dev/null
+++ b/tests/ui/simd/type-len.rs
@@ -0,0 +1,39 @@
+#![feature(repr_simd)]
+#![allow(non_camel_case_types)]
+
+
+#[repr(simd)]
+struct empty; //~ ERROR SIMD vector cannot be empty
+
+#[repr(simd)]
+struct empty2([f32; 0]); //~ ERROR SIMD vector cannot be empty
+
+#[repr(simd)]
+struct pow2([f32; 7]);
+
+#[repr(simd)]
+struct i64f64(i64, f64); //~ ERROR SIMD vector should be homogeneous
+
+struct Foo;
+
+#[repr(simd)]
+struct FooV(Foo, Foo); //~ ERROR SIMD vector element type should be a primitive scalar (integer/float/pointer) type
+
+#[repr(simd)]
+struct FooV2([Foo; 2]); //~ ERROR SIMD vector element type should be a primitive scalar (integer/float/pointer) type
+
+#[repr(simd)]
+struct TooBig([f32; 65536]); //~ ERROR SIMD vector cannot have more than 32768 elements
+
+#[repr(simd)]
+struct JustRight([u128; 32768]);
+
+#[repr(simd)]
+struct RGBA {
+ r: f32,
+ g: f32,
+ b: f32,
+ a: f32
+}
+
+fn main() {}