Auto merge of #89541 - workingjubilee:abbrev-shufvec-t, r=Mark-Simulacrum

Cleanup src/test/ui/{simd,simd-intrinsic}

Initial motivation was to simplify a huge macro expansion using a tuple, since we can just use an array in `#[repr(simd)]` now for the same result. But also, several tests were going unnoticed during development of SIMD intrinsics because people kept looking in the wrong directory, and many are basically run-pass vs. build-fail versions of the same tests, so let's keep them close together and simplify their names, so they're easier to sift through.
This commit is contained in:
bors 2021-10-10 22:25:49 +00:00
commit 3bf55753c6
58 changed files with 205 additions and 358 deletions

View File

@ -1,92 +0,0 @@
// build-fail
// Test that the simd_bitmask intrinsic produces ok-ish error
// messages when misused.
#![feature(repr_simd, platform_intrinsics)]
#![allow(non_camel_case_types)]
#[repr(simd)]
#[derive(Copy, Clone)]
pub struct u32x2(pub u32, pub u32);
#[repr(simd)]
#[derive(Copy, Clone)]
pub struct u32x4(pub u32, pub u32, pub u32, pub u32);
#[repr(simd)]
#[derive(Copy, Clone)]
struct u8x8(
pub u8, pub u8, pub u8, pub u8, pub u8, pub u8, pub u8, pub u8,
);
#[repr(simd)]
#[derive(Copy, Clone)]
struct u8x16(
pub u8, pub u8, pub u8, pub u8, pub u8, pub u8, pub u8, pub u8,
pub u8, pub u8, pub u8, pub u8, pub u8, pub u8, pub u8, pub u8,
);
#[repr(simd)]
#[derive(Copy, Clone)]
struct u8x32(
pub u8, pub u8, pub u8, pub u8, pub u8, pub u8, pub u8, pub u8,
pub u8, pub u8, pub u8, pub u8, pub u8, pub u8, pub u8, pub u8,
pub u8, pub u8, pub u8, pub u8, pub u8, pub u8, pub u8, pub u8,
pub u8, pub u8, pub u8, pub u8, pub u8, pub u8, pub u8, pub u8,
);
#[repr(simd)]
#[derive(Copy, Clone)]
struct u8x64(
pub u8, pub u8, pub u8, pub u8, pub u8, pub u8, pub u8, pub u8,
pub u8, pub u8, pub u8, pub u8, pub u8, pub u8, pub u8, pub u8,
pub u8, pub u8, pub u8, pub u8, pub u8, pub u8, pub u8, pub u8,
pub u8, pub u8, pub u8, pub u8, pub u8, pub u8, pub u8, pub u8,
pub u8, pub u8, pub u8, pub u8, pub u8, pub u8, pub u8, pub u8,
pub u8, pub u8, pub u8, pub u8, pub u8, pub u8, pub u8, pub u8,
pub u8, pub u8, pub u8, pub u8, pub u8, pub u8, pub u8, pub u8,
pub u8, pub u8, pub u8, pub u8, pub u8, pub u8, pub u8, pub u8,
);
extern "platform-intrinsic" {
fn simd_bitmask<T, U>(x: T) -> U;
}
fn main() {
let m2 = u32x2(0, 0);
let m4 = u32x4(0, 0, 0, 0);
let m8 = u8x8(0, 0, 0, 0, 0, 0, 0, 0);
let m16 = u8x16(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0);
let m32 = u8x32(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0);
let m64 = u8x64(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0);
unsafe {
let _: u8 = simd_bitmask(m2);
let _: u8 = simd_bitmask(m4);
let _: u8 = simd_bitmask(m8);
let _: u16 = simd_bitmask(m16);
let _: u32 = simd_bitmask(m32);
let _: u64 = simd_bitmask(m64);
let _: u16 = simd_bitmask(m2);
//~^ ERROR bitmask `u16`, expected `u8`
let _: u16 = simd_bitmask(m8);
//~^ ERROR bitmask `u16`, expected `u8`
let _: u32 = simd_bitmask(m16);
//~^ ERROR bitmask `u32`, expected `u16`
let _: u64 = simd_bitmask(m32);
//~^ ERROR bitmask `u64`, expected `u32`
let _: u128 = simd_bitmask(m64);
//~^ ERROR bitmask `u128`, expected `u64`
}
}

View File

@ -1,5 +1,5 @@
error: unconstrained generic constant
--> $DIR/simd-array-trait.rs:23:23
--> $DIR/array-trait.rs:23:23
|
LL | pub struct T<S: Simd>([S::Lane; S::SIZE]);
| ^^^^^^^^^^^^^^^^^^

View File

@ -1,89 +1,89 @@
error[E0511]: invalid monomorphization of `simd_add` intrinsic: expected SIMD input type, found non-SIMD `i32`
--> $DIR/simd-intrinsic-generic-arithmetic.rs:69:9
--> $DIR/generic-arithmetic-2.rs:69:9
|
LL | simd_add(0, 0);
| ^^^^^^^^^^^^^^
error[E0511]: invalid monomorphization of `simd_sub` intrinsic: expected SIMD input type, found non-SIMD `i32`
--> $DIR/simd-intrinsic-generic-arithmetic.rs:71:9
--> $DIR/generic-arithmetic-2.rs:71:9
|
LL | simd_sub(0, 0);
| ^^^^^^^^^^^^^^
error[E0511]: invalid monomorphization of `simd_mul` intrinsic: expected SIMD input type, found non-SIMD `i32`
--> $DIR/simd-intrinsic-generic-arithmetic.rs:73:9
--> $DIR/generic-arithmetic-2.rs:73:9
|
LL | simd_mul(0, 0);
| ^^^^^^^^^^^^^^
error[E0511]: invalid monomorphization of `simd_div` intrinsic: expected SIMD input type, found non-SIMD `i32`
--> $DIR/simd-intrinsic-generic-arithmetic.rs:75:9
--> $DIR/generic-arithmetic-2.rs:75:9
|
LL | simd_div(0, 0);
| ^^^^^^^^^^^^^^
error[E0511]: invalid monomorphization of `simd_shl` intrinsic: expected SIMD input type, found non-SIMD `i32`
--> $DIR/simd-intrinsic-generic-arithmetic.rs:77:9
--> $DIR/generic-arithmetic-2.rs:77:9
|
LL | simd_shl(0, 0);
| ^^^^^^^^^^^^^^
error[E0511]: invalid monomorphization of `simd_shr` intrinsic: expected SIMD input type, found non-SIMD `i32`
--> $DIR/simd-intrinsic-generic-arithmetic.rs:79:9
--> $DIR/generic-arithmetic-2.rs:79:9
|
LL | simd_shr(0, 0);
| ^^^^^^^^^^^^^^
error[E0511]: invalid monomorphization of `simd_and` intrinsic: expected SIMD input type, found non-SIMD `i32`
--> $DIR/simd-intrinsic-generic-arithmetic.rs:81:9
--> $DIR/generic-arithmetic-2.rs:81:9
|
LL | simd_and(0, 0);
| ^^^^^^^^^^^^^^
error[E0511]: invalid monomorphization of `simd_or` intrinsic: expected SIMD input type, found non-SIMD `i32`
--> $DIR/simd-intrinsic-generic-arithmetic.rs:83:9
--> $DIR/generic-arithmetic-2.rs:83:9
|
LL | simd_or(0, 0);
| ^^^^^^^^^^^^^
error[E0511]: invalid monomorphization of `simd_xor` intrinsic: expected SIMD input type, found non-SIMD `i32`
--> $DIR/simd-intrinsic-generic-arithmetic.rs:85:9
--> $DIR/generic-arithmetic-2.rs:85:9
|
LL | simd_xor(0, 0);
| ^^^^^^^^^^^^^^
error[E0511]: invalid monomorphization of `simd_neg` intrinsic: expected SIMD input type, found non-SIMD `i32`
--> $DIR/simd-intrinsic-generic-arithmetic.rs:88:9
--> $DIR/generic-arithmetic-2.rs:88:9
|
LL | simd_neg(0);
| ^^^^^^^^^^^
error[E0511]: invalid monomorphization of `simd_shl` intrinsic: unsupported operation on `f32x4` with element `f32`
--> $DIR/simd-intrinsic-generic-arithmetic.rs:92:9
--> $DIR/generic-arithmetic-2.rs:92:9
|
LL | simd_shl(z, z);
| ^^^^^^^^^^^^^^
error[E0511]: invalid monomorphization of `simd_shr` intrinsic: unsupported operation on `f32x4` with element `f32`
--> $DIR/simd-intrinsic-generic-arithmetic.rs:94:9
--> $DIR/generic-arithmetic-2.rs:94:9
|
LL | simd_shr(z, z);
| ^^^^^^^^^^^^^^
error[E0511]: invalid monomorphization of `simd_and` intrinsic: unsupported operation on `f32x4` with element `f32`
--> $DIR/simd-intrinsic-generic-arithmetic.rs:96:9
--> $DIR/generic-arithmetic-2.rs:96:9
|
LL | simd_and(z, z);
| ^^^^^^^^^^^^^^
error[E0511]: invalid monomorphization of `simd_or` intrinsic: unsupported operation on `f32x4` with element `f32`
--> $DIR/simd-intrinsic-generic-arithmetic.rs:98:9
--> $DIR/generic-arithmetic-2.rs:98:9
|
LL | simd_or(z, z);
| ^^^^^^^^^^^^^
error[E0511]: invalid monomorphization of `simd_xor` intrinsic: unsupported operation on `f32x4` with element `f32`
--> $DIR/simd-intrinsic-generic-arithmetic.rs:100:9
--> $DIR/generic-arithmetic-2.rs:100:9
|
LL | simd_xor(z, z);
| ^^^^^^^^^^^^^^

View File

@ -1,11 +1,11 @@
error[E0511]: invalid monomorphization of `simd_saturating_add` intrinsic: expected element type `f32` of vector type `f32x4` to be a signed or unsigned integer type
--> $DIR/simd-intrinsic-generic-arithmetic-saturating.rs:33:9
--> $DIR/generic-arithmetic-saturating-2.rs:33:9
|
LL | simd_saturating_add(z, z);
| ^^^^^^^^^^^^^^^^^^^^^^^^^
error[E0511]: invalid monomorphization of `simd_saturating_sub` intrinsic: expected element type `f32` of vector type `f32x4` to be a signed or unsigned integer type
--> $DIR/simd-intrinsic-generic-arithmetic-saturating.rs:35:9
--> $DIR/generic-arithmetic-saturating-2.rs:35:9
|
LL | simd_saturating_sub(z, z);
| ^^^^^^^^^^^^^^^^^^^^^^^^^

View File

@ -0,0 +1,69 @@
// build-fail
// Test that the simd_bitmask intrinsic produces ok-ish error
// messages when misused.
#![feature(repr_simd, platform_intrinsics)]
#![allow(non_camel_case_types)]
#[repr(simd)]
#[derive(Copy, Clone)]
pub struct u32x2([u32; 2]);
#[repr(simd)]
#[derive(Copy, Clone)]
pub struct u32x4([u32; 4]);
#[repr(simd)]
#[derive(Copy, Clone)]
struct u8x8([u8; 8]);
#[repr(simd)]
#[derive(Copy, Clone)]
struct u8x16([u8; 16]);
#[repr(simd)]
#[derive(Copy, Clone)]
struct u8x32([u8; 32]);
#[repr(simd)]
#[derive(Copy, Clone)]
struct u8x64([u8; 64]);
extern "platform-intrinsic" {
fn simd_bitmask<T, U>(x: T) -> U;
}
fn main() {
let m2 = u32x2([0; 2]);
let m4 = u32x4([0; 4]);
let m8 = u8x8([0; 8]);
let m16 = u8x16([0; 16]);
let m32 = u8x32([0; 32]);
let m64 = u8x64([0; 64]);
unsafe {
let _: u8 = simd_bitmask(m2);
let _: u8 = simd_bitmask(m4);
let _: u8 = simd_bitmask(m8);
let _: u16 = simd_bitmask(m16);
let _: u32 = simd_bitmask(m32);
let _: u64 = simd_bitmask(m64);
let _: u16 = simd_bitmask(m2);
//~^ ERROR bitmask `u16`, expected `u8`
let _: u16 = simd_bitmask(m8);
//~^ ERROR bitmask `u16`, expected `u8`
let _: u32 = simd_bitmask(m16);
//~^ ERROR bitmask `u32`, expected `u16`
let _: u64 = simd_bitmask(m32);
//~^ ERROR bitmask `u64`, expected `u32`
let _: u128 = simd_bitmask(m64);
//~^ ERROR bitmask `u128`, expected `u64`
}
}

View File

@ -1,29 +1,29 @@
error[E0511]: invalid monomorphization of `simd_bitmask` intrinsic: bitmask `u16`, expected `u8`
--> $DIR/simd-intrinsic-generic-bitmask.rs:76:22
--> $DIR/generic-bitmask.rs:53:22
|
LL | let _: u16 = simd_bitmask(m2);
| ^^^^^^^^^^^^^^^^
error[E0511]: invalid monomorphization of `simd_bitmask` intrinsic: bitmask `u16`, expected `u8`
--> $DIR/simd-intrinsic-generic-bitmask.rs:79:22
--> $DIR/generic-bitmask.rs:56:22
|
LL | let _: u16 = simd_bitmask(m8);
| ^^^^^^^^^^^^^^^^
error[E0511]: invalid monomorphization of `simd_bitmask` intrinsic: bitmask `u32`, expected `u16`
--> $DIR/simd-intrinsic-generic-bitmask.rs:82:22
--> $DIR/generic-bitmask.rs:59:22
|
LL | let _: u32 = simd_bitmask(m16);
| ^^^^^^^^^^^^^^^^^
error[E0511]: invalid monomorphization of `simd_bitmask` intrinsic: bitmask `u64`, expected `u32`
--> $DIR/simd-intrinsic-generic-bitmask.rs:85:22
--> $DIR/generic-bitmask.rs:62:22
|
LL | let _: u64 = simd_bitmask(m32);
| ^^^^^^^^^^^^^^^^^
error[E0511]: invalid monomorphization of `simd_bitmask` intrinsic: bitmask `u128`, expected `u64`
--> $DIR/simd-intrinsic-generic-bitmask.rs:88:23
--> $DIR/generic-bitmask.rs:65:23
|
LL | let _: u128 = simd_bitmask(m64);
| ^^^^^^^^^^^^^^^^^

View File

@ -1,23 +1,23 @@
error[E0511]: invalid monomorphization of `simd_cast` intrinsic: expected SIMD input type, found non-SIMD `i32`
--> $DIR/simd-intrinsic-generic-cast.rs:34:9
--> $DIR/generic-cast.rs:34:9
|
LL | simd_cast::<i32, i32>(0);
| ^^^^^^^^^^^^^^^^^^^^^^^^
error[E0511]: invalid monomorphization of `simd_cast` intrinsic: expected SIMD input type, found non-SIMD `i32`
--> $DIR/simd-intrinsic-generic-cast.rs:36:9
--> $DIR/generic-cast.rs:36:9
|
LL | simd_cast::<i32, i32x4>(0);
| ^^^^^^^^^^^^^^^^^^^^^^^^^^
error[E0511]: invalid monomorphization of `simd_cast` intrinsic: expected SIMD return type, found non-SIMD `i32`
--> $DIR/simd-intrinsic-generic-cast.rs:38:9
--> $DIR/generic-cast.rs:38:9
|
LL | simd_cast::<i32x4, i32>(x);
| ^^^^^^^^^^^^^^^^^^^^^^^^^^
error[E0511]: invalid monomorphization of `simd_cast` intrinsic: expected return type with length 4 (same as input type `i32x4`), found `i32x8` with length 8
--> $DIR/simd-intrinsic-generic-cast.rs:40:9
--> $DIR/generic-cast.rs:40:9
|
LL | simd_cast::<_, i32x8>(x);
| ^^^^^^^^^^^^^^^^^^^^^^^^

View File

@ -1,107 +1,107 @@
error[E0511]: invalid monomorphization of `simd_eq` intrinsic: expected SIMD input type, found non-SIMD `i32`
--> $DIR/simd-intrinsic-generic-comparison.rs:28:9
--> $DIR/generic-comparison.rs:28:9
|
LL | simd_eq::<i32, i32>(0, 0);
| ^^^^^^^^^^^^^^^^^^^^^^^^^
error[E0511]: invalid monomorphization of `simd_ne` intrinsic: expected SIMD input type, found non-SIMD `i32`
--> $DIR/simd-intrinsic-generic-comparison.rs:30:9
--> $DIR/generic-comparison.rs:30:9
|
LL | simd_ne::<i32, i32>(0, 0);
| ^^^^^^^^^^^^^^^^^^^^^^^^^
error[E0511]: invalid monomorphization of `simd_lt` intrinsic: expected SIMD input type, found non-SIMD `i32`
--> $DIR/simd-intrinsic-generic-comparison.rs:32:9
--> $DIR/generic-comparison.rs:32:9
|
LL | simd_lt::<i32, i32>(0, 0);
| ^^^^^^^^^^^^^^^^^^^^^^^^^
error[E0511]: invalid monomorphization of `simd_le` intrinsic: expected SIMD input type, found non-SIMD `i32`
--> $DIR/simd-intrinsic-generic-comparison.rs:34:9
--> $DIR/generic-comparison.rs:34:9
|
LL | simd_le::<i32, i32>(0, 0);
| ^^^^^^^^^^^^^^^^^^^^^^^^^
error[E0511]: invalid monomorphization of `simd_gt` intrinsic: expected SIMD input type, found non-SIMD `i32`
--> $DIR/simd-intrinsic-generic-comparison.rs:36:9
--> $DIR/generic-comparison.rs:36:9
|
LL | simd_gt::<i32, i32>(0, 0);
| ^^^^^^^^^^^^^^^^^^^^^^^^^
error[E0511]: invalid monomorphization of `simd_ge` intrinsic: expected SIMD input type, found non-SIMD `i32`
--> $DIR/simd-intrinsic-generic-comparison.rs:38:9
--> $DIR/generic-comparison.rs:38:9
|
LL | simd_ge::<i32, i32>(0, 0);
| ^^^^^^^^^^^^^^^^^^^^^^^^^
error[E0511]: invalid monomorphization of `simd_eq` intrinsic: expected SIMD return type, found non-SIMD `i32`
--> $DIR/simd-intrinsic-generic-comparison.rs:41:9
--> $DIR/generic-comparison.rs:41:9
|
LL | simd_eq::<_, i32>(x, x);
| ^^^^^^^^^^^^^^^^^^^^^^^
error[E0511]: invalid monomorphization of `simd_ne` intrinsic: expected SIMD return type, found non-SIMD `i32`
--> $DIR/simd-intrinsic-generic-comparison.rs:43:9
--> $DIR/generic-comparison.rs:43:9
|
LL | simd_ne::<_, i32>(x, x);
| ^^^^^^^^^^^^^^^^^^^^^^^
error[E0511]: invalid monomorphization of `simd_lt` intrinsic: expected SIMD return type, found non-SIMD `i32`
--> $DIR/simd-intrinsic-generic-comparison.rs:45:9
--> $DIR/generic-comparison.rs:45:9
|
LL | simd_lt::<_, i32>(x, x);
| ^^^^^^^^^^^^^^^^^^^^^^^
error[E0511]: invalid monomorphization of `simd_le` intrinsic: expected SIMD return type, found non-SIMD `i32`
--> $DIR/simd-intrinsic-generic-comparison.rs:47:9
--> $DIR/generic-comparison.rs:47:9
|
LL | simd_le::<_, i32>(x, x);
| ^^^^^^^^^^^^^^^^^^^^^^^
error[E0511]: invalid monomorphization of `simd_gt` intrinsic: expected SIMD return type, found non-SIMD `i32`
--> $DIR/simd-intrinsic-generic-comparison.rs:49:9
--> $DIR/generic-comparison.rs:49:9
|
LL | simd_gt::<_, i32>(x, x);
| ^^^^^^^^^^^^^^^^^^^^^^^
error[E0511]: invalid monomorphization of `simd_ge` intrinsic: expected SIMD return type, found non-SIMD `i32`
--> $DIR/simd-intrinsic-generic-comparison.rs:51:9
--> $DIR/generic-comparison.rs:51:9
|
LL | simd_ge::<_, i32>(x, x);
| ^^^^^^^^^^^^^^^^^^^^^^^
error[E0511]: invalid monomorphization of `simd_eq` intrinsic: expected return type with length 4 (same as input type `i32x4`), found `i16x8` with length 8
--> $DIR/simd-intrinsic-generic-comparison.rs:54:9
--> $DIR/generic-comparison.rs:54:9
|
LL | simd_eq::<_, i16x8>(x, x);
| ^^^^^^^^^^^^^^^^^^^^^^^^^
error[E0511]: invalid monomorphization of `simd_ne` intrinsic: expected return type with length 4 (same as input type `i32x4`), found `i16x8` with length 8
--> $DIR/simd-intrinsic-generic-comparison.rs:56:9
--> $DIR/generic-comparison.rs:56:9
|
LL | simd_ne::<_, i16x8>(x, x);
| ^^^^^^^^^^^^^^^^^^^^^^^^^
error[E0511]: invalid monomorphization of `simd_lt` intrinsic: expected return type with length 4 (same as input type `i32x4`), found `i16x8` with length 8
--> $DIR/simd-intrinsic-generic-comparison.rs:58:9
--> $DIR/generic-comparison.rs:58:9
|
LL | simd_lt::<_, i16x8>(x, x);
| ^^^^^^^^^^^^^^^^^^^^^^^^^
error[E0511]: invalid monomorphization of `simd_le` intrinsic: expected return type with length 4 (same as input type `i32x4`), found `i16x8` with length 8
--> $DIR/simd-intrinsic-generic-comparison.rs:60:9
--> $DIR/generic-comparison.rs:60:9
|
LL | simd_le::<_, i16x8>(x, x);
| ^^^^^^^^^^^^^^^^^^^^^^^^^
error[E0511]: invalid monomorphization of `simd_gt` intrinsic: expected return type with length 4 (same as input type `i32x4`), found `i16x8` with length 8
--> $DIR/simd-intrinsic-generic-comparison.rs:62:9
--> $DIR/generic-comparison.rs:62:9
|
LL | simd_gt::<_, i16x8>(x, x);
| ^^^^^^^^^^^^^^^^^^^^^^^^^
error[E0511]: invalid monomorphization of `simd_ge` intrinsic: expected return type with length 4 (same as input type `i32x4`), found `i16x8` with length 8
--> $DIR/simd-intrinsic-generic-comparison.rs:64:9
--> $DIR/generic-comparison.rs:64:9
|
LL | simd_ge::<_, i16x8>(x, x);
| ^^^^^^^^^^^^^^^^^^^^^^^^^

View File

@ -1,71 +1,71 @@
error[E0511]: invalid monomorphization of `simd_insert` intrinsic: expected SIMD input type, found non-SIMD `i32`
--> $DIR/simd-intrinsic-generic-elements.rs:46:9
--> $DIR/generic-elements.rs:46:9
|
LL | simd_insert(0, 0, 0);
| ^^^^^^^^^^^^^^^^^^^^
error[E0511]: invalid monomorphization of `simd_insert` intrinsic: expected inserted type `i32` (element of input `i32x4`), found `f64`
--> $DIR/simd-intrinsic-generic-elements.rs:48:9
--> $DIR/generic-elements.rs:48:9
|
LL | simd_insert(x, 0, 1.0);
| ^^^^^^^^^^^^^^^^^^^^^^
error[E0511]: invalid monomorphization of `simd_extract` intrinsic: expected return type `i32` (element of input `i32x4`), found `f32`
--> $DIR/simd-intrinsic-generic-elements.rs:50:9
--> $DIR/generic-elements.rs:50:9
|
LL | simd_extract::<_, f32>(x, 0);
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
error[E0511]: invalid monomorphization of `simd_shuffle2` intrinsic: expected SIMD input type, found non-SIMD `i32`
--> $DIR/simd-intrinsic-generic-elements.rs:54:9
--> $DIR/generic-elements.rs:54:9
|
LL | simd_shuffle2::<i32, i32>(0, 0, IDX2);
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
error[E0511]: invalid monomorphization of `simd_shuffle4` intrinsic: expected SIMD input type, found non-SIMD `i32`
--> $DIR/simd-intrinsic-generic-elements.rs:57:9
--> $DIR/generic-elements.rs:57:9
|
LL | simd_shuffle4::<i32, i32>(0, 0, IDX4);
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
error[E0511]: invalid monomorphization of `simd_shuffle8` intrinsic: expected SIMD input type, found non-SIMD `i32`
--> $DIR/simd-intrinsic-generic-elements.rs:60:9
--> $DIR/generic-elements.rs:60:9
|
LL | simd_shuffle8::<i32, i32>(0, 0, IDX8);
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
error[E0511]: invalid monomorphization of `simd_shuffle2` intrinsic: expected return element type `i32` (element of input `i32x4`), found `f32x2` with element type `f32`
--> $DIR/simd-intrinsic-generic-elements.rs:63:9
--> $DIR/generic-elements.rs:63:9
|
LL | simd_shuffle2::<_, f32x2>(x, x, IDX2);
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
error[E0511]: invalid monomorphization of `simd_shuffle4` intrinsic: expected return element type `i32` (element of input `i32x4`), found `f32x4` with element type `f32`
--> $DIR/simd-intrinsic-generic-elements.rs:65:9
--> $DIR/generic-elements.rs:65:9
|
LL | simd_shuffle4::<_, f32x4>(x, x, IDX4);
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
error[E0511]: invalid monomorphization of `simd_shuffle8` intrinsic: expected return element type `i32` (element of input `i32x4`), found `f32x8` with element type `f32`
--> $DIR/simd-intrinsic-generic-elements.rs:67:9
--> $DIR/generic-elements.rs:67:9
|
LL | simd_shuffle8::<_, f32x8>(x, x, IDX8);
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
error[E0511]: invalid monomorphization of `simd_shuffle2` intrinsic: expected return type of length 2, found `i32x8` with length 8
--> $DIR/simd-intrinsic-generic-elements.rs:70:9
--> $DIR/generic-elements.rs:70:9
|
LL | simd_shuffle2::<_, i32x8>(x, x, IDX2);
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
error[E0511]: invalid monomorphization of `simd_shuffle4` intrinsic: expected return type of length 4, found `i32x8` with length 8
--> $DIR/simd-intrinsic-generic-elements.rs:72:9
--> $DIR/generic-elements.rs:72:9
|
LL | simd_shuffle4::<_, i32x8>(x, x, IDX4);
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
error[E0511]: invalid monomorphization of `simd_shuffle8` intrinsic: expected return type of length 8, found `i32x2` with length 2
--> $DIR/simd-intrinsic-generic-elements.rs:74:9
--> $DIR/generic-elements.rs:74:9
|
LL | simd_shuffle8::<_, i32x2>(x, x, IDX8);
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

View File

@ -24,15 +24,6 @@
#[derive(Copy, Clone)]
struct b8x4(pub i8, pub i8, pub i8, pub i8);
#[repr(simd)]
#[derive(Copy, Clone)]
struct b8x16(
pub i8, pub i8, pub i8, pub i8,
pub i8, pub i8, pub i8, pub i8,
pub i8, pub i8, pub i8, pub i8,
pub i8, pub i8, pub i8, pub i8
);
extern "platform-intrinsic" {
fn simd_reduce_add_unordered<T, U>(x: T) -> U;
fn simd_reduce_mul_unordered<T, U>(x: T) -> U;

View File

@ -1,59 +1,59 @@
error[E0511]: invalid monomorphization of `simd_reduce_add_ordered` intrinsic: expected return type `f32` (element of input `f32x4`), found `i32`
--> $DIR/simd-intrinsic-generic-reduction.rs:34:9
--> $DIR/generic-reduction.rs:34:9
|
LL | simd_reduce_add_ordered(z, 0);
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
error[E0511]: invalid monomorphization of `simd_reduce_mul_ordered` intrinsic: expected return type `f32` (element of input `f32x4`), found `i32`
--> $DIR/simd-intrinsic-generic-reduction.rs:36:9
--> $DIR/generic-reduction.rs:36:9
|
LL | simd_reduce_mul_ordered(z, 1);
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
error[E0511]: invalid monomorphization of `simd_reduce_and` intrinsic: expected return type `u32` (element of input `u32x4`), found `f32`
--> $DIR/simd-intrinsic-generic-reduction.rs:39:22
--> $DIR/generic-reduction.rs:39:22
|
LL | let _: f32 = simd_reduce_and(x);
| ^^^^^^^^^^^^^^^^^^
error[E0511]: invalid monomorphization of `simd_reduce_or` intrinsic: expected return type `u32` (element of input `u32x4`), found `f32`
--> $DIR/simd-intrinsic-generic-reduction.rs:41:22
--> $DIR/generic-reduction.rs:41:22
|
LL | let _: f32 = simd_reduce_or(x);
| ^^^^^^^^^^^^^^^^^
error[E0511]: invalid monomorphization of `simd_reduce_xor` intrinsic: expected return type `u32` (element of input `u32x4`), found `f32`
--> $DIR/simd-intrinsic-generic-reduction.rs:43:22
--> $DIR/generic-reduction.rs:43:22
|
LL | let _: f32 = simd_reduce_xor(x);
| ^^^^^^^^^^^^^^^^^^
error[E0511]: invalid monomorphization of `simd_reduce_and` intrinsic: unsupported simd_reduce_and from `f32x4` with element `f32` to `f32`
--> $DIR/simd-intrinsic-generic-reduction.rs:46:22
--> $DIR/generic-reduction.rs:46:22
|
LL | let _: f32 = simd_reduce_and(z);
| ^^^^^^^^^^^^^^^^^^
error[E0511]: invalid monomorphization of `simd_reduce_or` intrinsic: unsupported simd_reduce_or from `f32x4` with element `f32` to `f32`
--> $DIR/simd-intrinsic-generic-reduction.rs:48:22
--> $DIR/generic-reduction.rs:48:22
|
LL | let _: f32 = simd_reduce_or(z);
| ^^^^^^^^^^^^^^^^^
error[E0511]: invalid monomorphization of `simd_reduce_xor` intrinsic: unsupported simd_reduce_xor from `f32x4` with element `f32` to `f32`
--> $DIR/simd-intrinsic-generic-reduction.rs:50:22
--> $DIR/generic-reduction.rs:50:22
|
LL | let _: f32 = simd_reduce_xor(z);
| ^^^^^^^^^^^^^^^^^^
error[E0511]: invalid monomorphization of `simd_reduce_all` intrinsic: unsupported simd_reduce_all from `f32x4` with element `f32` to `bool`
--> $DIR/simd-intrinsic-generic-reduction.rs:53:23
--> $DIR/generic-reduction.rs:53:23
|
LL | let _: bool = simd_reduce_all(z);
| ^^^^^^^^^^^^^^^^^^
error[E0511]: invalid monomorphization of `simd_reduce_any` intrinsic: unsupported simd_reduce_any from `f32x4` with element `f32` to `bool`
--> $DIR/simd-intrinsic-generic-reduction.rs:55:23
--> $DIR/generic-reduction.rs:55:23
|
LL | let _: bool = simd_reduce_any(z);
| ^^^^^^^^^^^^^^^^^^

View File

@ -1,47 +1,47 @@
error[E0511]: invalid monomorphization of `simd_select` intrinsic: mismatched lengths: mask length `8` != other vector length `4`
--> $DIR/simd-intrinsic-generic-select.rs:40:9
--> $DIR/generic-select.rs:40:9
|
LL | simd_select(m8, x, x);
| ^^^^^^^^^^^^^^^^^^^^^
error[E0511]: invalid monomorphization of `simd_select` intrinsic: mask element type is `u32`, expected `i_`
--> $DIR/simd-intrinsic-generic-select.rs:43:9
--> $DIR/generic-select.rs:43:9
|
LL | simd_select(x, x, x);
| ^^^^^^^^^^^^^^^^^^^^
error[E0511]: invalid monomorphization of `simd_select` intrinsic: mask element type is `f32`, expected `i_`
--> $DIR/simd-intrinsic-generic-select.rs:46:9
--> $DIR/generic-select.rs:46:9
|
LL | simd_select(z, z, z);
| ^^^^^^^^^^^^^^^^^^^^
error[E0511]: invalid monomorphization of `simd_select` intrinsic: expected SIMD argument type, found non-SIMD `u32`
--> $DIR/simd-intrinsic-generic-select.rs:49:9
--> $DIR/generic-select.rs:49:9
|
LL | simd_select(m4, 0u32, 1u32);
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^
error[E0511]: invalid monomorphization of `simd_select_bitmask` intrinsic: mismatched lengths: mask length `16` != other vector length `4`
--> $DIR/simd-intrinsic-generic-select.rs:52:9
--> $DIR/generic-select.rs:52:9
|
LL | simd_select_bitmask(0u16, x, x);
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
error[E0511]: invalid monomorphization of `simd_select_bitmask` intrinsic: expected SIMD argument type, found non-SIMD `u32`
--> $DIR/simd-intrinsic-generic-select.rs:55:9
--> $DIR/generic-select.rs:55:9
|
LL | simd_select_bitmask(0u8, 1u32, 2u32);
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
error[E0511]: invalid monomorphization of `simd_select_bitmask` intrinsic: `f32` is not an integral type
--> $DIR/simd-intrinsic-generic-select.rs:58:9
--> $DIR/generic-select.rs:58:9
|
LL | simd_select_bitmask(0.0f32, x, x);
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
error[E0511]: invalid monomorphization of `simd_select_bitmask` intrinsic: `&str` is not an integral type
--> $DIR/simd-intrinsic-generic-select.rs:61:9
--> $DIR/generic-select.rs:61:9
|
LL | simd_select_bitmask("x", x, x);
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

View File

@ -1,17 +1,17 @@
error[E0511]: invalid monomorphization of `simd_shuffle` intrinsic: expected return type of length 2, found `Simd<u32, 4_usize>` with length 4
--> $DIR/simd-intrinsic-generic-shuffle.rs:24:31
--> $DIR/generic-shuffle.rs:24:31
|
LL | let _: Simd<u32, 4> = simd_shuffle(v, v, I);
| ^^^^^^^^^^^^^^^^^^^^^
error[E0511]: invalid monomorphization of `simd_shuffle` intrinsic: expected return element type `u32` (element of input `Simd<u32, 4_usize>`), found `Simd<f32, 2_usize>` with element type `f32`
--> $DIR/simd-intrinsic-generic-shuffle.rs:27:31
--> $DIR/generic-shuffle.rs:27:31
|
LL | let _: Simd<f32, 2> = simd_shuffle(v, v, I);
| ^^^^^^^^^^^^^^^^^^^^^
error[E0511]: invalid monomorphization of `simd_shuffle` intrinsic: simd_shuffle index must be an array of `u32`, got `[f32; 2]`
--> $DIR/simd-intrinsic-generic-shuffle.rs:30:31
--> $DIR/generic-shuffle.rs:30:31
|
LL | let _: Simd<u32, 2> = simd_shuffle(v, v, I2);
| ^^^^^^^^^^^^^^^^^^^^^^

View File

@ -6,148 +6,42 @@
#[repr(simd)]
#[derive(Copy, Clone)]
struct u8x2(u8, u8);
struct u8x2([u8; 2]);
#[repr(simd)]
#[derive(Copy, Clone)]
struct u8x4(u8, u8, u8, u8);
struct u8x4([u8; 4]);
#[repr(simd)]
#[derive(Copy, Clone)]
struct u8x8(u8, u8, u8, u8, u8, u8, u8, u8);
struct u8x8([u8; 8]);
#[repr(simd)]
#[derive(Copy, Clone)]
struct u8x16(
u8,
u8,
u8,
u8,
u8,
u8,
u8,
u8,
u8,
u8,
u8,
u8,
u8,
u8,
u8,
u8,
);
struct u8x16([u8; 16]);
#[repr(simd)]
#[derive(Copy, Clone)]
struct u8x32(
u8,
u8,
u8,
u8,
u8,
u8,
u8,
u8,
u8,
u8,
u8,
u8,
u8,
u8,
u8,
u8,
u8,
u8,
u8,
u8,
u8,
u8,
u8,
u8,
u8,
u8,
u8,
u8,
u8,
u8,
u8,
u8,
);
struct u8x32([u8; 32]);
#[repr(simd)]
#[derive(Copy, Clone)]
struct u8x64(
u8,
u8,
u8,
u8,
u8,
u8,
u8,
u8,
u8,
u8,
u8,
u8,
u8,
u8,
u8,
u8,
u8,
u8,
u8,
u8,
u8,
u8,
u8,
u8,
u8,
u8,
u8,
u8,
u8,
u8,
u8,
u8,
u8,
u8,
u8,
u8,
u8,
u8,
u8,
u8,
u8,
u8,
u8,
u8,
u8,
u8,
u8,
u8,
u8,
u8,
u8,
u8,
u8,
u8,
u8,
u8,
u8,
u8,
u8,
u8,
u8,
u8,
u8,
u8,
);
struct u8x64([u8; 64]);
extern "platform-intrinsic" {
pub fn simd_shuffle2<T, U>(x: T, y: T, idx: [u32; 2]) -> U;
pub fn simd_shuffle4<T, U>(x: T, y: T, idx: [u32; 4]) -> U;
pub fn simd_shuffle8<T, U>(x: T, y: T, idx: [u32; 8]) -> U;
pub fn simd_shuffle16<T, U>(x: T, y: T, idx: [u32; 16]) -> U;
pub fn simd_shuffle32<T, U>(x: T, y: T, idx: [u32; 32]) -> U;
pub fn simd_shuffle64<T, U>(x: T, y: T, idx: [u32; 64]) -> U;
}
// Test vectors by lane size. Since LLVM does not distinguish between a shuffle
// over two f32s and a shuffle over two u64s, or any other such combination,
// it is not necessary to test every possible vector, only lane counts.
macro_rules! test_shuffle_lanes {
($n:literal, $x:ident, $y:ident, $t:tt) => {
($n:literal, $x:ident, $y:ident) => {
unsafe {
let shuffle: $x = {
const ARR: [u32; $n] = {
@ -155,11 +49,10 @@ macro_rules! test_shuffle_lanes {
arr[0] = $n * 2;
arr
};
extern "platform-intrinsic" {
pub fn $y<T, U>(x: T, y: T, idx: [u32; $n]) -> U;
}
let vec1 = $x$t;
let vec2 = $x$t;
let mut n: u8 = $n;
let vals = [0; $n].map(|_| { n = n - 1; n });
let vec1 = $x(vals);
let vec2 = $x(vals);
$y(vec1, vec2, ARR)
};
}
@ -175,24 +68,17 @@ macro_rules! test_shuffle_lanes {
// And unfortunately, standard comments, as in the UI test harness, disappear in macros!
fn main() {
test_shuffle_lanes!(2, u8x2, simd_shuffle2, (2, 1));
test_shuffle_lanes!(4, u8x4, simd_shuffle4, (4, 3, 2, 1));
test_shuffle_lanes!(8, u8x8, simd_shuffle8, (8, 7, 6, 5, 4, 3, 2, 1));
test_shuffle_lanes!(16, u8x16, simd_shuffle16,
(16, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1));
test_shuffle_lanes!(32, u8x32, simd_shuffle32,
(32, 31, 30, 29, 28, 27, 26, 25, 24, 23, 22, 21, 20, 19, 18, 17, 16,
15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1));
test_shuffle_lanes!(64, u8x64, simd_shuffle64,
(64, 63, 62, 61, 60, 59, 58, 57, 56, 55, 54, 53, 52, 51, 50, 49,
48, 47, 46, 45, 44, 43, 42, 41, 40, 39, 38, 37, 36, 35, 34, 33,
32, 31, 30, 29, 28, 27, 26, 25, 24, 23, 22, 21, 20, 19, 18, 17,
16, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1));
test_shuffle_lanes!(2, u8x2, simd_shuffle2);
test_shuffle_lanes!(4, u8x4, simd_shuffle4);
test_shuffle_lanes!(8, u8x8, simd_shuffle8);
test_shuffle_lanes!(16, u8x16, simd_shuffle16);
test_shuffle_lanes!(32, u8x32, simd_shuffle32);
test_shuffle_lanes!(64, u8x64, simd_shuffle64);
extern "platform-intrinsic" {
fn simd_shuffle<T, I, U>(a: T, b: T, i: I) -> U;
}
let v = u8x2(0, 0);
let v = u8x2([0, 0]);
const I: [u32; 2] = [4, 4];
unsafe {
let _: u8x2 = simd_shuffle(v, v, I);

View File

@ -1,78 +1,71 @@
error[E0511]: invalid monomorphization of `simd_shuffle2` intrinsic: shuffle index #0 is out of bounds (limit 4)
--> $DIR/shuffle-not-out-of-bounds.rs:163:21
--> $DIR/shuffle-not-out-of-bounds.rs:56:21
|
LL | $y(vec1, vec2, ARR)
| ^^^^^^^^^^^^^^^^^^^
...
LL | test_shuffle_lanes!(2, u8x2, simd_shuffle2, (2, 1));
| ---------------------------------------------------- in this macro invocation
LL | test_shuffle_lanes!(2, u8x2, simd_shuffle2);
| -------------------------------------------- in this macro invocation
|
= note: this error originates in the macro `test_shuffle_lanes` (in Nightly builds, run with -Z macro-backtrace for more info)
error[E0511]: invalid monomorphization of `simd_shuffle4` intrinsic: shuffle index #0 is out of bounds (limit 8)
--> $DIR/shuffle-not-out-of-bounds.rs:163:21
--> $DIR/shuffle-not-out-of-bounds.rs:56:21
|
LL | $y(vec1, vec2, ARR)
| ^^^^^^^^^^^^^^^^^^^
...
LL | test_shuffle_lanes!(4, u8x4, simd_shuffle4, (4, 3, 2, 1));
| ---------------------------------------------------------- in this macro invocation
LL | test_shuffle_lanes!(4, u8x4, simd_shuffle4);
| -------------------------------------------- in this macro invocation
|
= note: this error originates in the macro `test_shuffle_lanes` (in Nightly builds, run with -Z macro-backtrace for more info)
error[E0511]: invalid monomorphization of `simd_shuffle8` intrinsic: shuffle index #0 is out of bounds (limit 16)
--> $DIR/shuffle-not-out-of-bounds.rs:163:21
--> $DIR/shuffle-not-out-of-bounds.rs:56:21
|
LL | $y(vec1, vec2, ARR)
| ^^^^^^^^^^^^^^^^^^^
...
LL | test_shuffle_lanes!(8, u8x8, simd_shuffle8, (8, 7, 6, 5, 4, 3, 2, 1));
| ---------------------------------------------------------------------- in this macro invocation
LL | test_shuffle_lanes!(8, u8x8, simd_shuffle8);
| -------------------------------------------- in this macro invocation
|
= note: this error originates in the macro `test_shuffle_lanes` (in Nightly builds, run with -Z macro-backtrace for more info)
error[E0511]: invalid monomorphization of `simd_shuffle16` intrinsic: shuffle index #0 is out of bounds (limit 32)
--> $DIR/shuffle-not-out-of-bounds.rs:163:21
--> $DIR/shuffle-not-out-of-bounds.rs:56:21
|
LL | $y(vec1, vec2, ARR)
| ^^^^^^^^^^^^^^^^^^^
LL | $y(vec1, vec2, ARR)
| ^^^^^^^^^^^^^^^^^^^
...
LL | / test_shuffle_lanes!(16, u8x16, simd_shuffle16,
LL | | (16, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1));
| |_________________________________________________________________- in this macro invocation
LL | test_shuffle_lanes!(16, u8x16, simd_shuffle16);
| ----------------------------------------------- in this macro invocation
|
= note: this error originates in the macro `test_shuffle_lanes` (in Nightly builds, run with -Z macro-backtrace for more info)
error[E0511]: invalid monomorphization of `simd_shuffle32` intrinsic: shuffle index #0 is out of bounds (limit 64)
--> $DIR/shuffle-not-out-of-bounds.rs:163:21
--> $DIR/shuffle-not-out-of-bounds.rs:56:21
|
LL | $y(vec1, vec2, ARR)
| ^^^^^^^^^^^^^^^^^^^
LL | $y(vec1, vec2, ARR)
| ^^^^^^^^^^^^^^^^^^^
...
LL | / test_shuffle_lanes!(32, u8x32, simd_shuffle32,
LL | | (32, 31, 30, 29, 28, 27, 26, 25, 24, 23, 22, 21, 20, 19, 18, 17, 16,
LL | | 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1));
| |_____________________________________________________________- in this macro invocation
LL | test_shuffle_lanes!(32, u8x32, simd_shuffle32);
| ----------------------------------------------- in this macro invocation
|
= note: this error originates in the macro `test_shuffle_lanes` (in Nightly builds, run with -Z macro-backtrace for more info)
error[E0511]: invalid monomorphization of `simd_shuffle64` intrinsic: shuffle index #0 is out of bounds (limit 128)
--> $DIR/shuffle-not-out-of-bounds.rs:163:21
--> $DIR/shuffle-not-out-of-bounds.rs:56:21
|
LL | $y(vec1, vec2, ARR)
| ^^^^^^^^^^^^^^^^^^^
LL | $y(vec1, vec2, ARR)
| ^^^^^^^^^^^^^^^^^^^
...
LL | / test_shuffle_lanes!(64, u8x64, simd_shuffle64,
LL | | (64, 63, 62, 61, 60, 59, 58, 57, 56, 55, 54, 53, 52, 51, 50, 49,
LL | | 48, 47, 46, 45, 44, 43, 42, 41, 40, 39, 38, 37, 36, 35, 34, 33,
LL | | 32, 31, 30, 29, 28, 27, 26, 25, 24, 23, 22, 21, 20, 19, 18, 17,
LL | | 16, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1));
| |_________________________________________________________________- in this macro invocation
LL | test_shuffle_lanes!(64, u8x64, simd_shuffle64);
| ----------------------------------------------- in this macro invocation
|
= note: this error originates in the macro `test_shuffle_lanes` (in Nightly builds, run with -Z macro-backtrace for more info)
error[E0511]: invalid monomorphization of `simd_shuffle` intrinsic: shuffle index #0 is out of bounds (limit 4)
--> $DIR/shuffle-not-out-of-bounds.rs:198:23
--> $DIR/shuffle-not-out-of-bounds.rs:84:23
|
LL | let _: u8x2 = simd_shuffle(v, v, I);
| ^^^^^^^^^^^^^^^^^^^^^

View File

@ -1,35 +1,35 @@
error[E0075]: SIMD vector cannot be empty
--> $DIR/simd-type.rs:6:1
--> $DIR/type-len.rs:6:1
|
LL | struct empty;
| ^^^^^^^^^^^^^
error[E0075]: SIMD vector cannot be empty
--> $DIR/simd-type.rs:9:1
--> $DIR/type-len.rs:9:1
|
LL | struct empty2([f32; 0]);
| ^^^^^^^^^^^^^^^^^^^^^^^^
error[E0076]: SIMD vector should be homogeneous
--> $DIR/simd-type.rs:15:1
--> $DIR/type-len.rs:15:1
|
LL | struct i64f64(i64, f64);
| ^^^^^^^^^^^^^^^^^^^^^^^^ SIMD elements must have the same type
error[E0077]: SIMD vector element type should be a primitive scalar (integer/float/pointer) type
--> $DIR/simd-type.rs:20:1
--> $DIR/type-len.rs:20:1
|
LL | struct FooV(Foo, Foo);
| ^^^^^^^^^^^^^^^^^^^^^^
error[E0077]: SIMD vector element type should be a primitive scalar (integer/float/pointer) type
--> $DIR/simd-type.rs:23:1
--> $DIR/type-len.rs:23:1
|
LL | struct FooV2([Foo; 2]);
| ^^^^^^^^^^^^^^^^^^^^^^^
error[E0075]: SIMD vector cannot have more than 32768 elements
--> $DIR/simd-type.rs:26:1
--> $DIR/type-len.rs:26:1
|
LL | struct TooBig([f32; 65536]);
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^