// 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, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8); #[repr(simd)] struct i16x8(i16, i16, i16, i16, i16, i16, i16, i16); #[repr(simd)] struct i32x4(i32, i32, i32, i32); #[repr(simd)] struct i64x2(i64, i64); #[repr(simd)] struct u8x16(u8, u8, u8, u8, u8, u8, u8, u8, u8, u8, u8, u8, u8, u8, u8, u8); #[repr(simd)] struct u16x8(u16, u16, u16, u16, u16, u16, u16, u16); #[repr(simd)] struct u32x4(u32, u32, u32, u32); #[repr(simd)] struct u64x2(u64, u64); #[repr(simd)] struct f32x4(f32, f32, f32, f32); #[repr(simd)] struct f64x2(f64, f64); 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() { () }