| // Need a fix for LLDB first... |
| //@ ignore-lldb |
| |
| // FIXME: LLVM generates invalid debug info for variables requiring |
| // dynamic stack realignment, which is the case on s390x for vector |
| // types with non-vector ABI. |
| //@ ignore-s390x |
| |
| //@ compile-flags:-g |
| // gdb-command:run |
| |
| // gdb-command:print vi8x16 |
| // gdb-check:$1 = simd::i8x16 ([0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15]) |
| // gdb-command:print vi16x8 |
| // gdb-check:$2 = simd::i16x8 ([16, 17, 18, 19, 20, 21, 22, 23]) |
| // gdb-command:print vi32x4 |
| // gdb-check:$3 = simd::i32x4 ([24, 25, 26, 27]) |
| // gdb-command:print vi64x2 |
| // gdb-check:$4 = simd::i64x2 ([28, 29]) |
| |
| // gdb-command:print vu8x16 |
| // gdb-check:$5 = simd::u8x16 ([30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45]) |
| // gdb-command:print vu16x8 |
| // gdb-check:$6 = simd::u16x8 ([46, 47, 48, 49, 50, 51, 52, 53]) |
| // gdb-command:print vu32x4 |
| // gdb-check:$7 = simd::u32x4 ([54, 55, 56, 57]) |
| // gdb-command:print vu64x2 |
| // gdb-check:$8 = simd::u64x2 ([58, 59]) |
| |
| // gdb-command:print vf32x4 |
| // gdb-check:$9 = simd::f32x4 ([60.5, 61.5, 62.5, 63.5]) |
| // gdb-command:print vf64x2 |
| // gdb-check:$10 = simd::f64x2 ([64.5, 65.5]) |
| |
| // gdb-command:continue |
| |
| #![allow(unused_variables)] |
| #![feature(omit_gdb_pretty_printer_section)] |
| #![omit_gdb_pretty_printer_section] |
| #![feature(repr_simd)] |
| |
| #[repr(simd)] |
| struct i8x16([i8; 16]); |
| #[repr(simd)] |
| struct i16x8([i16; 8]); |
| #[repr(simd)] |
| struct i32x4([i32; 4]); |
| #[repr(simd)] |
| struct i64x2([i64; 2]); |
| #[repr(simd)] |
| struct u8x16([u8; 16]); |
| #[repr(simd)] |
| struct u16x8([u16; 8]); |
| #[repr(simd)] |
| struct u32x4([u32; 4]); |
| #[repr(simd)] |
| struct u64x2([u64; 2]); |
| #[repr(simd)] |
| struct f32x4([f32; 4]); |
| #[repr(simd)] |
| struct f64x2([f64; 2]); |
| |
| fn main() { |
| |
| let vi8x16 = i8x16([0, 1, 2, 3, 4, 5, 6, 7, |
| 8, 9, 10, 11, 12, 13, 14, 15]); |
| |
| let vi16x8 = i16x8([16, 17, 18, 19, 20, 21, 22, 23]); |
| let vi32x4 = i32x4([24, 25, 26, 27]); |
| let vi64x2 = i64x2([28, 29]); |
| |
| let vu8x16 = u8x16([30, 31, 32, 33, 34, 35, 36, 37, |
| 38, 39, 40, 41, 42, 43, 44, 45]); |
| let vu16x8 = u16x8([46, 47, 48, 49, 50, 51, 52, 53]); |
| let vu32x4 = u32x4([54, 55, 56, 57]); |
| let vu64x2 = u64x2([58, 59]); |
| |
| let vf32x4 = f32x4([60.5f32, 61.5f32, 62.5f32, 63.5f32]); |
| let vf64x2 = f64x2([64.5f64, 65.5f64]); |
| |
| zzz(); // #break |
| } |
| |
| #[inline(never)] |
| fn zzz() { () } |