summaryrefslogtreecommitdiffstats
path: root/src/test/ui/asm/x86_64/type-check-3.rs
diff options
context:
space:
mode:
authorDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-17 12:19:13 +0000
committerDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-17 12:19:13 +0000
commit218caa410aa38c29984be31a5229b9fa717560ee (patch)
treec54bd55eeb6e4c508940a30e94c0032fbd45d677 /src/test/ui/asm/x86_64/type-check-3.rs
parentReleasing progress-linux version 1.67.1+dfsg1-1~progress7.99u1. (diff)
downloadrustc-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.rs73
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);
- }
-}