| Invalid monomorphization of an intrinsic function was used. | |
| Erroneous code example: | |
| ```compile_fail,E0511 | |
| #![feature(intrinsics)] | |
| #[rustc_intrinsic] | |
| unsafe fn simd_add<T>(a: T, b: T) -> T; | |
| fn main() { | |
| unsafe { simd_add(0, 1); } | |
| // error: invalid monomorphization of `simd_add` intrinsic | |
| } | |
| ``` | |
| The generic type has to be a SIMD type. Example: | |
| ``` | |
| #![feature(repr_simd)] | |
| #![feature(intrinsics)] | |
| #[repr(simd)] | |
| #[derive(Copy, Clone)] | |
| struct i32x2([i32; 2]); | |
| #[rustc_intrinsic] | |
| unsafe fn simd_add<T>(a: T, b: T) -> T; | |
| unsafe { simd_add(i32x2([0, 0]), i32x2([1, 2])); } // ok! | |
| ``` |