diff options
author | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-17 12:19:13 +0000 |
---|---|---|
committer | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-17 12:19:13 +0000 |
commit | 218caa410aa38c29984be31a5229b9fa717560ee (patch) | |
tree | c54bd55eeb6e4c508940a30e94c0032fbd45d677 /src/test/ui/asm/x86_64/type-check-3.rs | |
parent | Releasing progress-linux version 1.67.1+dfsg1-1~progress7.99u1. (diff) | |
download | rustc-218caa410aa38c29984be31a5229b9fa717560ee.tar.xz rustc-218caa410aa38c29984be31a5229b9fa717560ee.zip |
Merging upstream version 1.68.2+dfsg1.
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'src/test/ui/asm/x86_64/type-check-3.rs')
-rw-r--r-- | src/test/ui/asm/x86_64/type-check-3.rs | 73 |
1 files changed, 0 insertions, 73 deletions
diff --git a/src/test/ui/asm/x86_64/type-check-3.rs b/src/test/ui/asm/x86_64/type-check-3.rs deleted file mode 100644 index 89c849c75..000000000 --- a/src/test/ui/asm/x86_64/type-check-3.rs +++ /dev/null @@ -1,73 +0,0 @@ -// only-x86_64 -// compile-flags: -C target-feature=+avx512f - -#![feature(asm_const)] - -use std::arch::{asm, global_asm}; - -use std::arch::x86_64::{_mm256_setzero_ps, _mm_setzero_ps}; - -fn main() { - unsafe { - // Types must be listed in the register class. - - asm!("{}", in(reg) 0i128); - //~^ ERROR type `i128` cannot be used with this register class - asm!("{}", in(reg) _mm_setzero_ps()); - //~^ ERROR type `__m128` cannot be used with this register class - asm!("{}", in(reg) _mm256_setzero_ps()); - //~^ ERROR type `__m256` cannot be used with this register class - asm!("{}", in(xmm_reg) 0u8); - //~^ ERROR type `u8` cannot be used with this register class - asm!("{:e}", in(reg) 0i32); - asm!("{}", in(xmm_reg) 0i32); - asm!("{:e}", in(reg) 0f32); - asm!("{}", in(xmm_reg) 0f32); - asm!("{}", in(xmm_reg) _mm_setzero_ps()); - asm!("{:x}", in(ymm_reg) _mm_setzero_ps()); - asm!("{}", in(kreg) 0u16); - asm!("{}", in(kreg) 0u64); - //~^ ERROR `avx512bw` target feature is not enabled - - // Template modifier suggestions for sub-registers - - asm!("{0} {0}", in(reg) 0i16); - //~^ WARN formatting may not be suitable for sub-register argument - asm!("{0} {0:x}", in(reg) 0i16); - //~^ WARN formatting may not be suitable for sub-register argument - asm!("{}", in(reg) 0i32); - //~^ WARN formatting may not be suitable for sub-register argument - asm!("{}", in(reg) 0i64); - asm!("{}", in(ymm_reg) 0i64); - //~^ WARN formatting may not be suitable for sub-register argument - asm!("{}", in(ymm_reg) _mm256_setzero_ps()); - asm!("{:l}", in(reg) 0i16); - asm!("{:l}", in(reg) 0i32); - asm!("{:l}", in(reg) 0i64); - asm!("{:x}", in(ymm_reg) 0i64); - asm!("{:x}", in(ymm_reg) _mm256_setzero_ps()); - - // Suggest different register class for type - - asm!("{}", in(reg) 0i8); - //~^ ERROR type `i8` cannot be used with this register class - asm!("{}", in(reg_byte) 0i8); - - // Split inout operands must have compatible types - - let mut val_i16: i16; - let mut val_f32: f32; - let mut val_u32: u32; - let mut val_u64: u64; - let mut val_ptr: *mut u8; - asm!("{:r}", inout(reg) 0u16 => val_i16); - asm!("{:r}", inout(reg) 0u32 => val_f32); - //~^ ERROR incompatible types for asm inout argument - asm!("{:r}", inout(reg) 0u32 => val_ptr); - //~^ ERROR incompatible types for asm inout argument - asm!("{:r}", inout(reg) main => val_u32); - //~^ ERROR incompatible types for asm inout argument - asm!("{:r}", inout(reg) 0u64 => val_ptr); - asm!("{:r}", inout(reg) main => val_u64); - } -} |