summaryrefslogtreecommitdiffstats
path: root/src/test/assembly/asm
diff options
context:
space:
mode:
Diffstat (limited to 'src/test/assembly/asm')
-rw-r--r--src/test/assembly/asm/aarch64-el2vmsa.rs37
-rw-r--r--src/test/assembly/asm/aarch64-modifiers.rs145
-rw-r--r--src/test/assembly/asm/aarch64-outline-atomics.rs16
-rw-r--r--src/test/assembly/asm/aarch64-types.rs565
-rw-r--r--src/test/assembly/asm/arm-modifiers.rs144
-rw-r--r--src/test/assembly/asm/arm-types.rs530
-rw-r--r--src/test/assembly/asm/avr-modifiers.rs59
-rw-r--r--src/test/assembly/asm/avr-types.rs221
-rw-r--r--src/test/assembly/asm/bpf-types.rs153
-rw-r--r--src/test/assembly/asm/global_asm.rs33
-rw-r--r--src/test/assembly/asm/hexagon-types.rs181
-rw-r--r--src/test/assembly/asm/mips-types.rs237
-rw-r--r--src/test/assembly/asm/msp430-types.rs157
-rw-r--r--src/test/assembly/asm/nvptx-types.rs133
-rw-r--r--src/test/assembly/asm/powerpc-types.rs207
-rw-r--r--src/test/assembly/asm/riscv-types.rs210
-rw-r--r--src/test/assembly/asm/s390x-types.rs167
-rw-r--r--src/test/assembly/asm/wasm-types.rs149
-rw-r--r--src/test/assembly/asm/x86-modifiers.rs205
-rw-r--r--src/test/assembly/asm/x86-types.rs1093
20 files changed, 0 insertions, 4642 deletions
diff --git a/src/test/assembly/asm/aarch64-el2vmsa.rs b/src/test/assembly/asm/aarch64-el2vmsa.rs
deleted file mode 100644
index 1908ffb8f..000000000
--- a/src/test/assembly/asm/aarch64-el2vmsa.rs
+++ /dev/null
@@ -1,37 +0,0 @@
-// assembly-output: emit-asm
-// compile-flags: --target aarch64-unknown-linux-gnu
-// needs-llvm-components: aarch64
-
-#![feature(no_core, lang_items, rustc_attrs)]
-#![crate_type = "rlib"]
-#![no_core]
-
-#[rustc_builtin_macro]
-macro_rules! asm {
- () => {};
-}
-
-#[lang = "sized"]
-trait Sized {}
-
-// CHECK-LABEL: ttbr0_el2:
-#[no_mangle]
-pub fn ttbr0_el2() {
- // CHECK: //APP
- // CHECK-NEXT: msr TTBR0_EL2, x0
- // CHECK-NEXT: //NO_APP
- unsafe {
- asm!("msr ttbr0_el2, x0");
- }
-}
-
-// CHECK-LABEL: vttbr_el2:
-#[no_mangle]
-pub fn vttbr_el2() {
- // CHECK: //APP
- // CHECK-NEXT: msr VTTBR_EL2, x0
- // CHECK-NEXT: //NO_APP
- unsafe {
- asm!("msr vttbr_el2, x0");
- }
-}
diff --git a/src/test/assembly/asm/aarch64-modifiers.rs b/src/test/assembly/asm/aarch64-modifiers.rs
deleted file mode 100644
index 5196aa9fa..000000000
--- a/src/test/assembly/asm/aarch64-modifiers.rs
+++ /dev/null
@@ -1,145 +0,0 @@
-// assembly-output: emit-asm
-// compile-flags: -O
-// compile-flags: --target aarch64-unknown-linux-gnu
-// needs-llvm-components: aarch64
-
-#![feature(no_core, lang_items, rustc_attrs)]
-#![crate_type = "rlib"]
-#![no_core]
-#![allow(asm_sub_register)]
-
-#[rustc_builtin_macro]
-macro_rules! asm {
- () => {};
-}
-#[rustc_builtin_macro]
-macro_rules! stringify {
- () => {};
-}
-
-#[lang = "sized"]
-trait Sized {}
-#[lang = "copy"]
-trait Copy {}
-
-impl Copy for i32 {}
-
-macro_rules! check {
- ($func:ident $reg:ident $code:literal) => {
- // -O and extern "C" guarantee that the selected register is always r0/s0/d0/q0
- #[no_mangle]
- pub unsafe extern "C" fn $func() -> i32 {
- // Hack to avoid function merging
- extern "Rust" {
- fn dont_merge(s: &str);
- }
- dont_merge(stringify!($func));
-
- let y;
- asm!($code, out($reg) y);
- y
- }
- };
-}
-
-// CHECK-LABEL: reg:
-// CHECK: //APP
-// CHECK: mov x0, x0
-// CHECK: //NO_APP
-check!(reg reg "mov {0}, {0}");
-
-// CHECK-LABEL: reg_w:
-// CHECK: //APP
-// CHECK: mov w0, w0
-// CHECK: //NO_APP
-check!(reg_w reg "mov {0:w}, {0:w}");
-
-// CHECK-LABEL: reg_x:
-// CHECK: //APP
-// CHECK: mov x0, x0
-// CHECK: //NO_APP
-check!(reg_x reg "mov {0:x}, {0:x}");
-
-// CHECK-LABEL: vreg:
-// CHECK: //APP
-// CHECK: add v0.4s, v0.4s, v0.4s
-// CHECK: //NO_APP
-check!(vreg vreg "add {0}.4s, {0}.4s, {0}.4s");
-
-// CHECK-LABEL: vreg_b:
-// CHECK: //APP
-// CHECK: ldr b0, [x0]
-// CHECK: //NO_APP
-check!(vreg_b vreg "ldr {:b}, [x0]");
-
-// CHECK-LABEL: vreg_h:
-// CHECK: //APP
-// CHECK: ldr h0, [x0]
-// CHECK: //NO_APP
-check!(vreg_h vreg "ldr {:h}, [x0]");
-
-// CHECK-LABEL: vreg_s:
-// CHECK: //APP
-// CHECK: ldr s0, [x0]
-// CHECK: //NO_APP
-check!(vreg_s vreg "ldr {:s}, [x0]");
-
-// CHECK-LABEL: vreg_d:
-// CHECK: //APP
-// CHECK: ldr d0, [x0]
-// CHECK: //NO_APP
-check!(vreg_d vreg "ldr {:d}, [x0]");
-
-// CHECK-LABEL: vreg_q:
-// CHECK: //APP
-// CHECK: ldr q0, [x0]
-// CHECK: //NO_APP
-check!(vreg_q vreg "ldr {:q}, [x0]");
-
-// CHECK-LABEL: vreg_v:
-// CHECK: //APP
-// CHECK: add v0.4s, v0.4s, v0.4s
-// CHECK: //NO_APP
-check!(vreg_v vreg "add {0:v}.4s, {0:v}.4s, {0:v}.4s");
-
-// CHECK-LABEL: vreg_low16:
-// CHECK: //APP
-// CHECK: add v0.4s, v0.4s, v0.4s
-// CHECK: //NO_APP
-check!(vreg_low16 vreg_low16 "add {0}.4s, {0}.4s, {0}.4s");
-
-// CHECK-LABEL: vreg_low16_b:
-// CHECK: //APP
-// CHECK: ldr b0, [x0]
-// CHECK: //NO_APP
-check!(vreg_low16_b vreg_low16 "ldr {:b}, [x0]");
-
-// CHECK-LABEL: vreg_low16_h:
-// CHECK: //APP
-// CHECK: ldr h0, [x0]
-// CHECK: //NO_APP
-check!(vreg_low16_h vreg_low16 "ldr {:h}, [x0]");
-
-// CHECK-LABEL: vreg_low16_s:
-// CHECK: //APP
-// CHECK: ldr s0, [x0]
-// CHECK: //NO_APP
-check!(vreg_low16_s vreg_low16 "ldr {:s}, [x0]");
-
-// CHECK-LABEL: vreg_low16_d:
-// CHECK: //APP
-// CHECK: ldr d0, [x0]
-// CHECK: //NO_APP
-check!(vreg_low16_d vreg_low16 "ldr {:d}, [x0]");
-
-// CHECK-LABEL: vreg_low16_q:
-// CHECK: //APP
-// CHECK: ldr q0, [x0]
-// CHECK: //NO_APP
-check!(vreg_low16_q vreg_low16 "ldr {:q}, [x0]");
-
-// CHECK-LABEL: vreg_low16_v:
-// CHECK: //APP
-// CHECK: add v0.4s, v0.4s, v0.4s
-// CHECK: //NO_APP
-check!(vreg_low16_v vreg_low16 "add {0:v}.4s, {0:v}.4s, {0:v}.4s");
diff --git a/src/test/assembly/asm/aarch64-outline-atomics.rs b/src/test/assembly/asm/aarch64-outline-atomics.rs
deleted file mode 100644
index c2ec4e911..000000000
--- a/src/test/assembly/asm/aarch64-outline-atomics.rs
+++ /dev/null
@@ -1,16 +0,0 @@
-// assembly-output: emit-asm
-// compile-flags: -O
-// compile-flags: --target aarch64-unknown-linux-gnu
-// needs-llvm-components: aarch64
-// only-aarch64
-// only-linux
-
-#![crate_type = "rlib"]
-
-use std::sync::atomic::{AtomicI32, Ordering::*};
-
-pub fn compare_exchange(a: &AtomicI32) {
- // On AArch64 LLVM should outline atomic operations.
- // CHECK: __aarch64_cas4_relax
- let _ = a.compare_exchange(0, 10, Relaxed, Relaxed);
-}
diff --git a/src/test/assembly/asm/aarch64-types.rs b/src/test/assembly/asm/aarch64-types.rs
deleted file mode 100644
index 66c39a48c..000000000
--- a/src/test/assembly/asm/aarch64-types.rs
+++ /dev/null
@@ -1,565 +0,0 @@
-// assembly-output: emit-asm
-// compile-flags: --target aarch64-unknown-linux-gnu
-// needs-llvm-components: aarch64
-
-#![feature(no_core, lang_items, rustc_attrs, repr_simd)]
-#![crate_type = "rlib"]
-#![no_core]
-#![allow(asm_sub_register, non_camel_case_types)]
-
-#[rustc_builtin_macro]
-macro_rules! asm {
- () => {};
-}
-#[rustc_builtin_macro]
-macro_rules! concat {
- () => {};
-}
-#[rustc_builtin_macro]
-macro_rules! stringify {
- () => {};
-}
-
-#[lang = "sized"]
-trait Sized {}
-#[lang = "copy"]
-trait Copy {}
-
-type ptr = *mut u8;
-
-#[repr(simd)]
-pub struct i8x8(i8, i8, i8, i8, i8, i8, i8, i8);
-#[repr(simd)]
-pub struct i16x4(i16, i16, i16, i16);
-#[repr(simd)]
-pub struct i32x2(i32, i32);
-#[repr(simd)]
-pub struct i64x1(i64);
-#[repr(simd)]
-pub struct f32x2(f32, f32);
-#[repr(simd)]
-pub struct f64x1(f64);
-#[repr(simd)]
-pub struct i8x16(i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8);
-#[repr(simd)]
-pub struct i16x8(i16, i16, i16, i16, i16, i16, i16, i16);
-#[repr(simd)]
-pub struct i32x4(i32, i32, i32, i32);
-#[repr(simd)]
-pub struct i64x2(i64, i64);
-#[repr(simd)]
-pub struct f32x4(f32, f32, f32, f32);
-#[repr(simd)]
-pub struct f64x2(f64, f64);
-
-impl Copy for i8 {}
-impl Copy for i16 {}
-impl Copy for i32 {}
-impl Copy for f32 {}
-impl Copy for i64 {}
-impl Copy for f64 {}
-impl Copy for ptr {}
-impl Copy for i8x8 {}
-impl Copy for i16x4 {}
-impl Copy for i32x2 {}
-impl Copy for i64x1 {}
-impl Copy for f32x2 {}
-impl Copy for f64x1 {}
-impl Copy for i8x16 {}
-impl Copy for i16x8 {}
-impl Copy for i32x4 {}
-impl Copy for i64x2 {}
-impl Copy for f32x4 {}
-impl Copy for f64x2 {}
-
-extern "C" {
- fn extern_func();
- static extern_static: u8;
-}
-
-// CHECK-LABEL: sym_fn:
-// CHECK: //APP
-// CHECK: bl extern_func
-// CHECK: //NO_APP
-#[no_mangle]
-pub unsafe fn sym_fn() {
- asm!("bl {}", sym extern_func);
-}
-
-// CHECK-LABEL: sym_static:
-// CHECK: //APP
-// CHECK: adr x0, extern_static
-// CHECK: //NO_APP
-#[no_mangle]
-pub unsafe fn sym_static() {
- asm!("adr x0, {}", sym extern_static);
-}
-
-// Regression test for #75761
-// CHECK-LABEL: issue_75761:
-// CHECK: str {{.*}}x30
-// CHECK: //APP
-// CHECK: //NO_APP
-// CHECK: ldr {{.*}}x30
-#[no_mangle]
-pub unsafe fn issue_75761() {
- asm!("", out("v0") _, out("x30") _);
-}
-
-macro_rules! check {
- ($func:ident $ty:ident $class:ident $mov:literal $modifier:literal) => {
- #[no_mangle]
- pub unsafe fn $func(x: $ty) -> $ty {
- // Hack to avoid function merging
- extern "Rust" {
- fn dont_merge(s: &str);
- }
- dont_merge(stringify!($func));
-
- let y;
- asm!(
- concat!($mov, " {:", $modifier, "}, {:", $modifier, "}"),
- out($class) y,
- in($class) x
- );
- y
- }
- };
-}
-
-macro_rules! check_reg {
- ($func:ident $ty:ident $reg:tt $mov:literal) => {
- #[no_mangle]
- pub unsafe fn $func(x: $ty) -> $ty {
- // Hack to avoid function merging
- extern "Rust" {
- fn dont_merge(s: &str);
- }
- dont_merge(stringify!($func));
-
- let y;
- asm!(concat!($mov, " ", $reg, ", ", $reg), lateout($reg) y, in($reg) x);
- y
- }
- };
-}
-
-// CHECK-LABEL: reg_i8:
-// CHECK: //APP
-// CHECK: mov x{{[0-9]+}}, x{{[0-9]+}}
-// CHECK: //NO_APP
-check!(reg_i8 i8 reg "mov" "");
-
-// CHECK-LABEL: reg_i16:
-// CHECK: //APP
-// CHECK: mov x{{[0-9]+}}, x{{[0-9]+}}
-// CHECK: //NO_APP
-check!(reg_i16 i16 reg "mov" "");
-
-// CHECK-LABEL: reg_i32:
-// CHECK: //APP
-// CHECK: mov x{{[0-9]+}}, x{{[0-9]+}}
-// CHECK: //NO_APP
-check!(reg_i32 i32 reg "mov" "");
-
-// CHECK-LABEL: reg_f32:
-// CHECK: //APP
-// CHECK: mov x{{[0-9]+}}, x{{[0-9]+}}
-// CHECK: //NO_APP
-check!(reg_f32 f32 reg "mov" "");
-
-// CHECK-LABEL: reg_i64:
-// CHECK: //APP
-// CHECK: mov x{{[0-9]+}}, x{{[0-9]+}}
-// CHECK: //NO_APP
-check!(reg_i64 i64 reg "mov" "");
-
-// CHECK-LABEL: reg_f64:
-// CHECK: //APP
-// CHECK: mov x{{[0-9]+}}, x{{[0-9]+}}
-// CHECK: //NO_APP
-check!(reg_f64 f64 reg "mov" "");
-
-// CHECK-LABEL: reg_ptr:
-// CHECK: //APP
-// CHECK: mov x{{[0-9]+}}, x{{[0-9]+}}
-// CHECK: //NO_APP
-check!(reg_ptr ptr reg "mov" "");
-
-// CHECK-LABEL: vreg_i8:
-// CHECK: //APP
-// CHECK: fmov s{{[0-9]+}}, s{{[0-9]+}}
-// CHECK: //NO_APP
-check!(vreg_i8 i8 vreg "fmov" "s");
-
-// CHECK-LABEL: vreg_i16:
-// CHECK: //APP
-// CHECK: fmov s{{[0-9]+}}, s{{[0-9]+}}
-// CHECK: //NO_APP
-check!(vreg_i16 i16 vreg "fmov" "s");
-
-// CHECK-LABEL: vreg_i32:
-// CHECK: //APP
-// CHECK: fmov s{{[0-9]+}}, s{{[0-9]+}}
-// CHECK: //NO_APP
-check!(vreg_i32 i32 vreg "fmov" "s");
-
-// CHECK-LABEL: vreg_f32:
-// CHECK: //APP
-// CHECK: fmov s{{[0-9]+}}, s{{[0-9]+}}
-// CHECK: //NO_APP
-check!(vreg_f32 f32 vreg "fmov" "s");
-
-// CHECK-LABEL: vreg_i64:
-// CHECK: //APP
-// CHECK: fmov s{{[0-9]+}}, s{{[0-9]+}}
-// CHECK: //NO_APP
-check!(vreg_i64 i64 vreg "fmov" "s");
-
-// CHECK-LABEL: vreg_f64:
-// CHECK: //APP
-// CHECK: fmov s{{[0-9]+}}, s{{[0-9]+}}
-// CHECK: //NO_APP
-check!(vreg_f64 f64 vreg "fmov" "s");
-
-// CHECK-LABEL: vreg_ptr:
-// CHECK: //APP
-// CHECK: fmov s{{[0-9]+}}, s{{[0-9]+}}
-// CHECK: //NO_APP
-check!(vreg_ptr ptr vreg "fmov" "s");
-
-// CHECK-LABEL: vreg_i8x8:
-// CHECK: //APP
-// CHECK: fmov s{{[0-9]+}}, s{{[0-9]+}}
-// CHECK: //NO_APP
-check!(vreg_i8x8 i8x8 vreg "fmov" "s");
-
-// CHECK-LABEL: vreg_i16x4:
-// CHECK: //APP
-// CHECK: fmov s{{[0-9]+}}, s{{[0-9]+}}
-// CHECK: //NO_APP
-check!(vreg_i16x4 i16x4 vreg "fmov" "s");
-
-// CHECK-LABEL: vreg_i32x2:
-// CHECK: //APP
-// CHECK: fmov s{{[0-9]+}}, s{{[0-9]+}}
-// CHECK: //NO_APP
-check!(vreg_i32x2 i32x2 vreg "fmov" "s");
-
-// CHECK-LABEL: vreg_i64x1:
-// CHECK: //APP
-// CHECK: fmov s{{[0-9]+}}, s{{[0-9]+}}
-// CHECK: //NO_APP
-check!(vreg_i64x1 i64x1 vreg "fmov" "s");
-
-// CHECK-LABEL: vreg_f32x2:
-// CHECK: //APP
-// CHECK: fmov s{{[0-9]+}}, s{{[0-9]+}}
-// CHECK: //NO_APP
-check!(vreg_f32x2 f32x2 vreg "fmov" "s");
-
-// CHECK-LABEL: vreg_f64x1:
-// CHECK: //APP
-// CHECK: fmov s{{[0-9]+}}, s{{[0-9]+}}
-// CHECK: //NO_APP
-check!(vreg_f64x1 f64x1 vreg "fmov" "s");
-
-// CHECK-LABEL: vreg_i8x16:
-// CHECK: //APP
-// CHECK: fmov s{{[0-9]+}}, s{{[0-9]+}}
-// CHECK: //NO_APP
-check!(vreg_i8x16 i8x16 vreg "fmov" "s");
-
-// CHECK-LABEL: vreg_i16x8:
-// CHECK: //APP
-// CHECK: fmov s{{[0-9]+}}, s{{[0-9]+}}
-// CHECK: //NO_APP
-check!(vreg_i16x8 i16x8 vreg "fmov" "s");
-
-// CHECK-LABEL: vreg_i32x4:
-// CHECK: //APP
-// CHECK: fmov s{{[0-9]+}}, s{{[0-9]+}}
-// CHECK: //NO_APP
-check!(vreg_i32x4 i32x4 vreg "fmov" "s");
-
-// CHECK-LABEL: vreg_i64x2:
-// CHECK: //APP
-// CHECK: fmov s{{[0-9]+}}, s{{[0-9]+}}
-// CHECK: //NO_APP
-check!(vreg_i64x2 i64x2 vreg "fmov" "s");
-
-// CHECK-LABEL: vreg_f32x4:
-// CHECK: //APP
-// CHECK: fmov s{{[0-9]+}}, s{{[0-9]+}}
-// CHECK: //NO_APP
-check!(vreg_f32x4 f32x4 vreg "fmov" "s");
-
-// CHECK-LABEL: vreg_f64x2:
-// CHECK: //APP
-// CHECK: fmov s{{[0-9]+}}, s{{[0-9]+}}
-// CHECK: //NO_APP
-check!(vreg_f64x2 f64x2 vreg "fmov" "s");
-
-// CHECK-LABEL: vreg_low16_i8:
-// CHECK: //APP
-// CHECK: fmov s{{[0-9]+}}, s{{[0-9]+}}
-// CHECK: //NO_APP
-check!(vreg_low16_i8 i8 vreg_low16 "fmov" "s");
-
-// CHECK-LABEL: vreg_low16_i16:
-// CHECK: //APP
-// CHECK: fmov s{{[0-9]+}}, s{{[0-9]+}}
-// CHECK: //NO_APP
-check!(vreg_low16_i16 i16 vreg_low16 "fmov" "s");
-
-// CHECK-LABEL: vreg_low16_f32:
-// CHECK: //APP
-// CHECK: fmov s{{[0-9]+}}, s{{[0-9]+}}
-// CHECK: //NO_APP
-check!(vreg_low16_f32 f32 vreg_low16 "fmov" "s");
-
-// CHECK-LABEL: vreg_low16_i64:
-// CHECK: //APP
-// CHECK: fmov s{{[0-9]+}}, s{{[0-9]+}}
-// CHECK: //NO_APP
-check!(vreg_low16_i64 i64 vreg_low16 "fmov" "s");
-
-// CHECK-LABEL: vreg_low16_f64:
-// CHECK: //APP
-// CHECK: fmov s{{[0-9]+}}, s{{[0-9]+}}
-// CHECK: //NO_APP
-check!(vreg_low16_f64 f64 vreg_low16 "fmov" "s");
-
-// CHECK-LABEL: vreg_low16_ptr:
-// CHECK: //APP
-// CHECK: fmov s{{[0-9]+}}, s{{[0-9]+}}
-// CHECK: //NO_APP
-check!(vreg_low16_ptr ptr vreg_low16 "fmov" "s");
-
-// CHECK-LABEL: vreg_low16_i8x8:
-// CHECK: //APP
-// CHECK: fmov s{{[0-9]+}}, s{{[0-9]+}}
-// CHECK: //NO_APP
-check!(vreg_low16_i8x8 i8x8 vreg_low16 "fmov" "s");
-
-// CHECK-LABEL: vreg_low16_i16x4:
-// CHECK: //APP
-// CHECK: fmov s{{[0-9]+}}, s{{[0-9]+}}
-// CHECK: //NO_APP
-check!(vreg_low16_i16x4 i16x4 vreg_low16 "fmov" "s");
-
-// CHECK-LABEL: vreg_low16_i32x2:
-// CHECK: //APP
-// CHECK: fmov s{{[0-9]+}}, s{{[0-9]+}}
-// CHECK: //NO_APP
-check!(vreg_low16_i32x2 i32x2 vreg_low16 "fmov" "s");
-
-// CHECK-LABEL: vreg_low16_i64x1:
-// CHECK: //APP
-// CHECK: fmov s{{[0-9]+}}, s{{[0-9]+}}
-// CHECK: //NO_APP
-check!(vreg_low16_i64x1 i64x1 vreg_low16 "fmov" "s");
-
-// CHECK-LABEL: vreg_low16_f32x2:
-// CHECK: //APP
-// CHECK: fmov s{{[0-9]+}}, s{{[0-9]+}}
-// CHECK: //NO_APP
-check!(vreg_low16_f32x2 f32x2 vreg_low16 "fmov" "s");
-
-// CHECK-LABEL: vreg_low16_f64x1:
-// CHECK: //APP
-// CHECK: fmov s{{[0-9]+}}, s{{[0-9]+}}
-// CHECK: //NO_APP
-check!(vreg_low16_f64x1 f64x1 vreg_low16 "fmov" "s");
-
-// CHECK-LABEL: vreg_low16_i8x16:
-// CHECK: //APP
-// CHECK: fmov s{{[0-9]+}}, s{{[0-9]+}}
-// CHECK: //NO_APP
-check!(vreg_low16_i8x16 i8x16 vreg_low16 "fmov" "s");
-
-// CHECK-LABEL: vreg_low16_i16x8:
-// CHECK: //APP
-// CHECK: fmov s{{[0-9]+}}, s{{[0-9]+}}
-// CHECK: //NO_APP
-check!(vreg_low16_i16x8 i16x8 vreg_low16 "fmov" "s");
-
-// CHECK-LABEL: vreg_low16_i32x4:
-// CHECK: //APP
-// CHECK: fmov s{{[0-9]+}}, s{{[0-9]+}}
-// CHECK: //NO_APP
-check!(vreg_low16_i32x4 i32x4 vreg_low16 "fmov" "s");
-
-// CHECK-LABEL: vreg_low16_i64x2:
-// CHECK: //APP
-// CHECK: fmov s{{[0-9]+}}, s{{[0-9]+}}
-// CHECK: //NO_APP
-check!(vreg_low16_i64x2 i64x2 vreg_low16 "fmov" "s");
-
-// CHECK-LABEL: vreg_low16_f32x4:
-// CHECK: //APP
-// CHECK: fmov s{{[0-9]+}}, s{{[0-9]+}}
-// CHECK: //NO_APP
-check!(vreg_low16_f32x4 f32x4 vreg_low16 "fmov" "s");
-
-// CHECK-LABEL: vreg_low16_f64x2:
-// CHECK: //APP
-// CHECK: fmov s{{[0-9]+}}, s{{[0-9]+}}
-// CHECK: //NO_APP
-check!(vreg_low16_f64x2 f64x2 vreg_low16 "fmov" "s");
-
-// CHECK-LABEL: x0_i8:
-// CHECK: //APP
-// CHECK: mov x{{[0-9]+}}, x{{[0-9]+}}
-// CHECK: //NO_APP
-check_reg!(x0_i8 i8 "x0" "mov");
-
-// CHECK-LABEL: x0_i16:
-// CHECK: //APP
-// CHECK: mov x{{[0-9]+}}, x{{[0-9]+}}
-// CHECK: //NO_APP
-check_reg!(x0_i16 i16 "x0" "mov");
-
-// CHECK-LABEL: x0_i32:
-// CHECK: //APP
-// CHECK: mov x{{[0-9]+}}, x{{[0-9]+}}
-// CHECK: //NO_APP
-check_reg!(x0_i32 i32 "x0" "mov");
-
-// CHECK-LABEL: x0_f32:
-// CHECK: //APP
-// CHECK: mov x{{[0-9]+}}, x{{[0-9]+}}
-// CHECK: //NO_APP
-check_reg!(x0_f32 f32 "x0" "mov");
-
-// CHECK-LABEL: x0_i64:
-// CHECK: //APP
-// CHECK: mov x{{[0-9]+}}, x{{[0-9]+}}
-// CHECK: //NO_APP
-check_reg!(x0_i64 i64 "x0" "mov");
-
-// CHECK-LABEL: x0_f64:
-// CHECK: //APP
-// CHECK: mov x{{[0-9]+}}, x{{[0-9]+}}
-// CHECK: //NO_APP
-check_reg!(x0_f64 f64 "x0" "mov");
-
-// CHECK-LABEL: x0_ptr:
-// CHECK: //APP
-// CHECK: mov x{{[0-9]+}}, x{{[0-9]+}}
-// CHECK: //NO_APP
-check_reg!(x0_ptr ptr "x0" "mov");
-
-// CHECK-LABEL: v0_i8:
-// CHECK: //APP
-// CHECK: fmov s0, s0
-// CHECK: //NO_APP
-check_reg!(v0_i8 i8 "s0" "fmov");
-
-// CHECK-LABEL: v0_i16:
-// CHECK: //APP
-// CHECK: fmov s0, s0
-// CHECK: //NO_APP
-check_reg!(v0_i16 i16 "s0" "fmov");
-
-// CHECK-LABEL: v0_i32:
-// CHECK: //APP
-// CHECK: fmov s0, s0
-// CHECK: //NO_APP
-check_reg!(v0_i32 i32 "s0" "fmov");
-
-// CHECK-LABEL: v0_f32:
-// CHECK: //APP
-// CHECK: fmov s0, s0
-// CHECK: //NO_APP
-check_reg!(v0_f32 f32 "s0" "fmov");
-
-// CHECK-LABEL: v0_i64:
-// CHECK: //APP
-// CHECK: fmov s0, s0
-// CHECK: //NO_APP
-check_reg!(v0_i64 i64 "s0" "fmov");
-
-// CHECK-LABEL: v0_f64:
-// CHECK: //APP
-// CHECK: fmov s0, s0
-// CHECK: //NO_APP
-check_reg!(v0_f64 f64 "s0" "fmov");
-
-// CHECK-LABEL: v0_ptr:
-// CHECK: //APP
-// CHECK: fmov s0, s0
-// CHECK: //NO_APP
-check_reg!(v0_ptr ptr "s0" "fmov");
-
-// CHECK-LABEL: v0_i8x8:
-// CHECK: //APP
-// CHECK: fmov s0, s0
-// CHECK: //NO_APP
-check_reg!(v0_i8x8 i8x8 "s0" "fmov");
-
-// CHECK-LABEL: v0_i16x4:
-// CHECK: //APP
-// CHECK: fmov s0, s0
-// CHECK: //NO_APP
-check_reg!(v0_i16x4 i16x4 "s0" "fmov");
-
-// CHECK-LABEL: v0_i32x2:
-// CHECK: //APP
-// CHECK: fmov s0, s0
-// CHECK: //NO_APP
-check_reg!(v0_i32x2 i32x2 "s0" "fmov");
-
-// CHECK-LABEL: v0_i64x1:
-// CHECK: //APP
-// CHECK: fmov s0, s0
-// CHECK: //NO_APP
-check_reg!(v0_i64x1 i64x1 "s0" "fmov");
-
-// CHECK-LABEL: v0_f32x2:
-// CHECK: //APP
-// CHECK: fmov s0, s0
-// CHECK: //NO_APP
-check_reg!(v0_f32x2 f32x2 "s0" "fmov");
-
-// CHECK-LABEL: v0_f64x1:
-// CHECK: //APP
-// CHECK: fmov s0, s0
-// CHECK: //NO_APP
-check_reg!(v0_f64x1 f64x1 "s0" "fmov");
-
-// CHECK-LABEL: v0_i8x16:
-// CHECK: //APP
-// CHECK: fmov s0, s0
-// CHECK: //NO_APP
-check_reg!(v0_i8x16 i8x16 "s0" "fmov");
-
-// CHECK-LABEL: v0_i16x8:
-// CHECK: //APP
-// CHECK: fmov s0, s0
-// CHECK: //NO_APP
-check_reg!(v0_i16x8 i16x8 "s0" "fmov");
-
-// CHECK-LABEL: v0_i32x4:
-// CHECK: //APP
-// CHECK: fmov s0, s0
-// CHECK: //NO_APP
-check_reg!(v0_i32x4 i32x4 "s0" "fmov");
-
-// CHECK-LABEL: v0_i64x2:
-// CHECK: //APP
-// CHECK: fmov s0, s0
-// CHECK: //NO_APP
-check_reg!(v0_i64x2 i64x2 "s0" "fmov");
-
-// CHECK-LABEL: v0_f32x4:
-// CHECK: //APP
-// CHECK: fmov s0, s0
-// CHECK: //NO_APP
-check_reg!(v0_f32x4 f32x4 "s0" "fmov");
-
-// CHECK-LABEL: v0_f64x2:
-// CHECK: //APP
-// CHECK: fmov s0, s0
-// CHECK: //NO_APP
-check_reg!(v0_f64x2 f64x2 "s0" "fmov");
diff --git a/src/test/assembly/asm/arm-modifiers.rs b/src/test/assembly/asm/arm-modifiers.rs
deleted file mode 100644
index 88ffeaecf..000000000
--- a/src/test/assembly/asm/arm-modifiers.rs
+++ /dev/null
@@ -1,144 +0,0 @@
-// assembly-output: emit-asm
-// compile-flags: -O
-// compile-flags: --target armv7-unknown-linux-gnueabihf
-// compile-flags: -C target-feature=+neon
-// needs-llvm-components: arm
-
-#![feature(no_core, lang_items, rustc_attrs, repr_simd)]
-#![crate_type = "rlib"]
-#![no_core]
-#![allow(asm_sub_register, non_camel_case_types)]
-
-#[rustc_builtin_macro]
-macro_rules! asm {
- () => {};
-}
-#[rustc_builtin_macro]
-macro_rules! concat {
- () => {};
-}
-#[rustc_builtin_macro]
-macro_rules! stringify {
- () => {};
-}
-
-#[lang = "sized"]
-trait Sized {}
-#[lang = "copy"]
-trait Copy {}
-
-#[repr(simd)]
-pub struct f32x4(f32, f32, f32, f32);
-
-impl Copy for i32 {}
-impl Copy for f32 {}
-impl Copy for f64 {}
-impl Copy for f32x4 {}
-
-macro_rules! check {
- ($func:ident $modifier:literal $reg:ident $ty:ident $mov:literal) => {
- // -O and extern "C" guarantee that the selected register is always r0/s0/d0/q0
- #[no_mangle]
- pub unsafe extern "C" fn $func() -> $ty {
- // Hack to avoid function merging
- extern "Rust" {
- fn dont_merge(s: &str);
- }
- dont_merge(stringify!($func));
-
- let y;
- asm!(concat!($mov, " {0:", $modifier, "}, {0:", $modifier, "}"), out($reg) y);
- y
- }
- };
-}
-
-// CHECK-LABEL: reg:
-// CHECK: @APP
-// CHECK: mov r0, r0
-// CHECK: @NO_APP
-check!(reg "" reg i32 "mov");
-
-// CHECK-LABEL: sreg:
-// CHECK: @APP
-// CHECK: vmov.f32 s0, s0
-// CHECK: @NO_APP
-check!(sreg "" sreg f32 "vmov.f32");
-
-// CHECK-LABEL: sreg_low16:
-// CHECK: @APP
-// CHECK: vmov.f32 s0, s0
-// CHECK: @NO_APP
-check!(sreg_low16 "" sreg_low16 f32 "vmov.f32");
-
-// CHECK-LABEL: dreg:
-// CHECK: @APP
-// CHECK: vmov.f64 d0, d0
-// CHECK: @NO_APP
-check!(dreg "" dreg f64 "vmov.f64");
-
-// CHECK-LABEL: dreg_low16:
-// CHECK: @APP
-// CHECK: vmov.f64 d0, d0
-// CHECK: @NO_APP
-check!(dreg_low16 "" dreg_low16 f64 "vmov.f64");
-
-// CHECK-LABEL: dreg_low8:
-// CHECK: @APP
-// CHECK: vmov.f64 d0, d0
-// CHECK: @NO_APP
-check!(dreg_low8 "" dreg_low8 f64 "vmov.f64");
-
-// CHECK-LABEL: qreg:
-// CHECK: @APP
-// CHECK: vorr q0, q0, q0
-// CHECK: @NO_APP
-check!(qreg "" qreg f32x4 "vmov");
-
-// CHECK-LABEL: qreg_e:
-// CHECK: @APP
-// CHECK: vmov.f64 d0, d0
-// CHECK: @NO_APP
-check!(qreg_e "e" qreg f32x4 "vmov.f64");
-
-// CHECK-LABEL: qreg_f:
-// CHECK: @APP
-// CHECK: vmov.f64 d1, d1
-// CHECK: @NO_APP
-check!(qreg_f "f" qreg f32x4 "vmov.f64");
-
-// CHECK-LABEL: qreg_low8:
-// CHECK: @APP
-// CHECK: vorr q0, q0, q0
-// CHECK: @NO_APP
-check!(qreg_low8 "" qreg_low8 f32x4 "vmov");
-
-// CHECK-LABEL: qreg_low8_e:
-// CHECK: @APP
-// CHECK: vmov.f64 d0, d0
-// CHECK: @NO_APP
-check!(qreg_low8_e "e" qreg_low8 f32x4 "vmov.f64");
-
-// CHECK-LABEL: qreg_low8_f:
-// CHECK: @APP
-// CHECK: vmov.f64 d1, d1
-// CHECK: @NO_APP
-check!(qreg_low8_f "f" qreg_low8 f32x4 "vmov.f64");
-
-// CHECK-LABEL: qreg_low4:
-// CHECK: @APP
-// CHECK: vorr q0, q0, q0
-// CHECK: @NO_APP
-check!(qreg_low4 "" qreg_low4 f32x4 "vmov");
-
-// CHECK-LABEL: qreg_low4_e:
-// CHECK: @APP
-// CHECK: vmov.f64 d0, d0
-// CHECK: @NO_APP
-check!(qreg_low4_e "e" qreg_low4 f32x4 "vmov.f64");
-
-// CHECK-LABEL: qreg_low4_f:
-// CHECK: @APP
-// CHECK: vmov.f64 d1, d1
-// CHECK: @NO_APP
-check!(qreg_low4_f "f" qreg_low4 f32x4 "vmov.f64");
diff --git a/src/test/assembly/asm/arm-types.rs b/src/test/assembly/asm/arm-types.rs
deleted file mode 100644
index b22a26ce3..000000000
--- a/src/test/assembly/asm/arm-types.rs
+++ /dev/null
@@ -1,530 +0,0 @@
-// assembly-output: emit-asm
-// compile-flags: --target armv7-unknown-linux-gnueabihf
-// compile-flags: -C target-feature=+neon
-// needs-llvm-components: arm
-
-#![feature(no_core, lang_items, rustc_attrs, repr_simd)]
-#![crate_type = "rlib"]
-#![no_core]
-#![allow(asm_sub_register, non_camel_case_types)]
-
-#[rustc_builtin_macro]
-macro_rules! asm {
- () => {};
-}
-#[rustc_builtin_macro]
-macro_rules! concat {
- () => {};
-}
-#[rustc_builtin_macro]
-macro_rules! stringify {
- () => {};
-}
-
-#[lang = "sized"]
-trait Sized {}
-#[lang = "copy"]
-trait Copy {}
-
-type ptr = *mut u8;
-
-#[repr(simd)]
-pub struct i8x8(i8, i8, i8, i8, i8, i8, i8, i8);
-#[repr(simd)]
-pub struct i16x4(i16, i16, i16, i16);
-#[repr(simd)]
-pub struct i32x2(i32, i32);
-#[repr(simd)]
-pub struct i64x1(i64);
-#[repr(simd)]
-pub struct f32x2(f32, f32);
-#[repr(simd)]
-pub struct i8x16(i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8);
-#[repr(simd)]
-pub struct i16x8(i16, i16, i16, i16, i16, i16, i16, i16);
-#[repr(simd)]
-pub struct i32x4(i32, i32, i32, i32);
-#[repr(simd)]
-pub struct i64x2(i64, i64);
-#[repr(simd)]
-pub struct f32x4(f32, f32, f32, f32);
-
-impl Copy for i8 {}
-impl Copy for i16 {}
-impl Copy for i32 {}
-impl Copy for f32 {}
-impl Copy for i64 {}
-impl Copy for f64 {}
-impl Copy for ptr {}
-impl Copy for i8x8 {}
-impl Copy for i16x4 {}
-impl Copy for i32x2 {}
-impl Copy for i64x1 {}
-impl Copy for f32x2 {}
-impl Copy for i8x16 {}
-impl Copy for i16x8 {}
-impl Copy for i32x4 {}
-impl Copy for i64x2 {}
-impl Copy for f32x4 {}
-
-extern "C" {
- fn extern_func();
- static extern_static: u8;
-}
-
-// CHECK-LABEL: sym_fn:
-// CHECK: @APP
-// CHECK: bl extern_func
-// CHECK: @NO_APP
-#[no_mangle]
-pub unsafe fn sym_fn() {
- asm!("bl {}", sym extern_func);
-}
-
-// CHECK-LABEL: sym_static:
-// CHECK: @APP
-// CHECK: adr r0, extern_static
-// CHECK: @NO_APP
-#[no_mangle]
-pub unsafe fn sym_static() {
- asm!("adr r0, {}", sym extern_static);
-}
-
-// Regression test for #82052.
-// CHECK-LABEL: issue_82052
-// CHECK: push {{.*}}lr
-// CHECK: @APP
-// CHECK: @NO_APP
-pub unsafe fn issue_82052() {
- asm!("", out("r14") _);
-}
-
-macro_rules! check {
- ($func:ident $ty:ident $class:ident $mov:literal) => {
- #[no_mangle]
- pub unsafe fn $func(x: $ty) -> $ty {
- // Hack to avoid function merging
- extern "Rust" {
- fn dont_merge(s: &str);
- }
- dont_merge(stringify!($func));
-
- let y;
- asm!(concat!($mov, " {}, {}"), out($class) y, in($class) x);
- y
- }
- };
-}
-
-macro_rules! check_reg {
- ($func:ident $ty:ident $reg:tt $mov:literal) => {
- #[no_mangle]
- pub unsafe fn $func(x: $ty) -> $ty {
- // Hack to avoid function merging
- extern "Rust" {
- fn dont_merge(s: &str);
- }
- dont_merge(stringify!($func));
-
- let y;
- asm!(concat!($mov, " ", $reg, ", ", $reg), lateout($reg) y, in($reg) x);
- y
- }
- };
-}
-
-// CHECK-LABEL: reg_i8:
-// CHECK: @APP
-// CHECK: mov {{[a-z0-9]+}}, {{[a-z0-9]+}}
-// CHECK: @NO_APP
-check!(reg_i8 i8 reg "mov");
-
-// CHECK-LABEL: reg_i16:
-// CHECK: @APP
-// CHECK: mov {{[a-z0-9]+}}, {{[a-z0-9]+}}
-// CHECK: @NO_APP
-check!(reg_i16 i16 reg "mov");
-
-// CHECK-LABEL: reg_i32:
-// CHECK: @APP
-// CHECK: mov {{[a-z0-9]+}}, {{[a-z0-9]+}}
-// CHECK: @NO_APP
-check!(reg_i32 i32 reg "mov");
-
-// CHECK-LABEL: reg_f32:
-// CHECK: @APP
-// CHECK: mov {{[a-z0-9]+}}, {{[a-z0-9]+}}
-// CHECK: @NO_APP
-check!(reg_f32 f32 reg "mov");
-
-// CHECK-LABEL: reg_ptr:
-// CHECK: @APP
-// CHECK: mov {{[a-z0-9]+}}, {{[a-z0-9]+}}
-// CHECK: @NO_APP
-check!(reg_ptr ptr reg "mov");
-
-// CHECK-LABEL: sreg_i32:
-// CHECK: @APP
-// CHECK: vmov.f32 s{{[0-9]+}}, s{{[0-9]+}}
-// CHECK: @NO_APP
-check!(sreg_i32 i32 sreg "vmov.f32");
-
-// CHECK-LABEL: sreg_f32:
-// CHECK: @APP
-// CHECK: vmov.f32 s{{[0-9]+}}, s{{[0-9]+}}
-// CHECK: @NO_APP
-check!(sreg_f32 f32 sreg "vmov.f32");
-
-// CHECK-LABEL: sreg_ptr:
-// CHECK: @APP
-// CHECK: vmov.f32 s{{[0-9]+}}, s{{[0-9]+}}
-// CHECK: @NO_APP
-check!(sreg_ptr ptr sreg "vmov.f32");
-
-// CHECK-LABEL: sreg_low16_i32:
-// CHECK: @APP
-// CHECK: vmov.f32 s{{[0-9]+}}, s{{[0-9]+}}
-// CHECK: @NO_APP
-check!(sreg_low16_i32 i32 sreg_low16 "vmov.f32");
-
-// CHECK-LABEL: sreg_low16_f32:
-// CHECK: @APP
-// CHECK: vmov.f32 s{{[0-9]+}}, s{{[0-9]+}}
-// CHECK: @NO_APP
-check!(sreg_low16_f32 f32 sreg_low16 "vmov.f32");
-
-// CHECK-LABEL: dreg_i64:
-// CHECK: @APP
-// CHECK: vmov.f64 d{{[0-9]+}}, d{{[0-9]+}}
-// CHECK: @NO_APP
-check!(dreg_i64 i64 dreg "vmov.f64");
-
-// CHECK-LABEL: dreg_f64:
-// CHECK: @APP
-// CHECK: vmov.f64 d{{[0-9]+}}, d{{[0-9]+}}
-// CHECK: @NO_APP
-check!(dreg_f64 f64 dreg "vmov.f64");
-
-// CHECK-LABEL: dreg_i8x8:
-// CHECK: @APP
-// CHECK: vmov.f64 d{{[0-9]+}}, d{{[0-9]+}}
-// CHECK: @NO_APP
-check!(dreg_i8x8 i8x8 dreg "vmov.f64");
-
-// CHECK-LABEL: dreg_i16x4:
-// CHECK: @APP
-// CHECK: vmov.f64 d{{[0-9]+}}, d{{[0-9]+}}
-// CHECK: @NO_APP
-check!(dreg_i16x4 i16x4 dreg "vmov.f64");
-
-// CHECK-LABEL: dreg_i32x2:
-// CHECK: @APP
-// CHECK: vmov.f64 d{{[0-9]+}}, d{{[0-9]+}}
-// CHECK: @NO_APP
-check!(dreg_i32x2 i32x2 dreg "vmov.f64");
-
-// CHECK-LABEL: dreg_i64x1:
-// CHECK: @APP
-// CHECK: vmov.f64 d{{[0-9]+}}, d{{[0-9]+}}
-// CHECK: @NO_APP
-check!(dreg_i64x1 i64x1 dreg "vmov.f64");
-
-// CHECK-LABEL: dreg_f32x2:
-// CHECK: @APP
-// CHECK: vmov.f64 d{{[0-9]+}}, d{{[0-9]+}}
-// CHECK: @NO_APP
-check!(dreg_f32x2 f32x2 dreg "vmov.f64");
-
-// CHECK-LABEL: dreg_low16_i64:
-// CHECK: @APP
-// CHECK: vmov.f64 d{{[0-9]+}}, d{{[0-9]+}}
-// CHECK: @NO_APP
-check!(dreg_low16_i64 i64 dreg_low16 "vmov.f64");
-
-// CHECK-LABEL: dreg_low16_f64:
-// CHECK: @APP
-// CHECK: vmov.f64 d{{[0-9]+}}, d{{[0-9]+}}
-// CHECK: @NO_APP
-check!(dreg_low16_f64 f64 dreg_low16 "vmov.f64");
-
-// CHECK-LABEL: dreg_low16_i8x8:
-// CHECK: @APP
-// CHECK: vmov.f64 d{{[0-9]+}}, d{{[0-9]+}}
-// CHECK: @NO_APP
-check!(dreg_low16_i8x8 i8x8 dreg_low16 "vmov.f64");
-
-// CHECK-LABEL: dreg_low16_i16x4:
-// CHECK: @APP
-// CHECK: vmov.f64 d{{[0-9]+}}, d{{[0-9]+}}
-// CHECK: @NO_APP
-check!(dreg_low16_i16x4 i16x4 dreg_low16 "vmov.f64");
-
-// CHECK-LABEL: dreg_low16_i32x2:
-// CHECK: @APP
-// CHECK: vmov.f64 d{{[0-9]+}}, d{{[0-9]+}}
-// CHECK: @NO_APP
-check!(dreg_low16_i32x2 i32x2 dreg_low16 "vmov.f64");
-
-// CHECK-LABEL: dreg_low16_i64x1:
-// CHECK: @APP
-// CHECK: vmov.f64 d{{[0-9]+}}, d{{[0-9]+}}
-// CHECK: @NO_APP
-check!(dreg_low16_i64x1 i64x1 dreg_low16 "vmov.f64");
-
-// CHECK-LABEL: dreg_low16_f32x2:
-// CHECK: @APP
-// CHECK: vmov.f64 d{{[0-9]+}}, d{{[0-9]+}}
-// CHECK: @NO_APP
-check!(dreg_low16_f32x2 f32x2 dreg_low16 "vmov.f64");
-
-// CHECK-LABEL: dreg_low8_i64:
-// CHECK: @APP
-// CHECK: vmov.f64 d{{[0-9]+}}, d{{[0-9]+}}
-// CHECK: @NO_APP
-check!(dreg_low8_i64 i64 dreg_low8 "vmov.f64");
-
-// CHECK-LABEL: dreg_low8_f64:
-// CHECK: @APP
-// CHECK: vmov.f64 d{{[0-9]+}}, d{{[0-9]+}}
-// CHECK: @NO_APP
-check!(dreg_low8_f64 f64 dreg_low8 "vmov.f64");
-
-// CHECK-LABEL: dreg_low8_i8x8:
-// CHECK: @APP
-// CHECK: vmov.f64 d{{[0-9]+}}, d{{[0-9]+}}
-// CHECK: @NO_APP
-check!(dreg_low8_i8x8 i8x8 dreg_low8 "vmov.f64");
-
-// CHECK-LABEL: dreg_low8_i16x4:
-// CHECK: @APP
-// CHECK: vmov.f64 d{{[0-9]+}}, d{{[0-9]+}}
-// CHECK: @NO_APP
-check!(dreg_low8_i16x4 i16x4 dreg_low8 "vmov.f64");
-
-// CHECK-LABEL: dreg_low8_i32x2:
-// CHECK: @APP
-// CHECK: vmov.f64 d{{[0-9]+}}, d{{[0-9]+}}
-// CHECK: @NO_APP
-check!(dreg_low8_i32x2 i32x2 dreg_low8 "vmov.f64");
-
-// CHECK-LABEL: dreg_low8_i64x1:
-// CHECK: @APP
-// CHECK: vmov.f64 d{{[0-9]+}}, d{{[0-9]+}}
-// CHECK: @NO_APP
-check!(dreg_low8_i64x1 i64x1 dreg_low8 "vmov.f64");
-
-// CHECK-LABEL: dreg_low8_f32x2:
-// CHECK: @APP
-// CHECK: vmov.f64 d{{[0-9]+}}, d{{[0-9]+}}
-// CHECK: @NO_APP
-check!(dreg_low8_f32x2 f32x2 dreg_low8 "vmov.f64");
-
-// CHECK-LABEL: qreg_i8x16:
-// CHECK: @APP
-// CHECK: vorr q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
-// CHECK: @NO_APP
-check!(qreg_i8x16 i8x16 qreg "vmov");
-
-// CHECK-LABEL: qreg_i16x8:
-// CHECK: @APP
-// CHECK: vorr q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
-// CHECK: @NO_APP
-check!(qreg_i16x8 i16x8 qreg "vmov");
-
-// CHECK-LABEL: qreg_i32x4:
-// CHECK: @APP
-// CHECK: vorr q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
-// CHECK: @NO_APP
-check!(qreg_i32x4 i32x4 qreg "vmov");
-
-// CHECK-LABEL: qreg_i64x2:
-// CHECK: @APP
-// CHECK: vorr q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
-// CHECK: @NO_APP
-check!(qreg_i64x2 i64x2 qreg "vmov");
-
-// CHECK-LABEL: qreg_f32x4:
-// CHECK: @APP
-// CHECK: vorr q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
-// CHECK: @NO_APP
-check!(qreg_f32x4 f32x4 qreg "vmov");
-
-// CHECK-LABEL: qreg_low8_i8x16:
-// CHECK: @APP
-// CHECK: vorr q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
-// CHECK: @NO_APP
-check!(qreg_low8_i8x16 i8x16 qreg_low8 "vmov");
-
-// CHECK-LABEL: qreg_low8_i16x8:
-// CHECK: @APP
-// CHECK: vorr q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
-// CHECK: @NO_APP
-check!(qreg_low8_i16x8 i16x8 qreg_low8 "vmov");
-
-// CHECK-LABEL: qreg_low8_i32x4:
-// CHECK: @APP
-// CHECK: vorr q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
-// CHECK: @NO_APP
-check!(qreg_low8_i32x4 i32x4 qreg_low8 "vmov");
-
-// CHECK-LABEL: qreg_low8_i64x2:
-// CHECK: @APP
-// CHECK: vorr q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
-// CHECK: @NO_APP
-check!(qreg_low8_i64x2 i64x2 qreg_low8 "vmov");
-
-// CHECK-LABEL: qreg_low8_f32x4:
-// CHECK: @APP
-// CHECK: vorr q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
-// CHECK: @NO_APP
-check!(qreg_low8_f32x4 f32x4 qreg_low8 "vmov");
-
-// CHECK-LABEL: qreg_low4_i8x16:
-// CHECK: @APP
-// CHECK: vorr q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
-// CHECK: @NO_APP
-check!(qreg_low4_i8x16 i8x16 qreg_low4 "vmov");
-
-// CHECK-LABEL: qreg_low4_i16x8:
-// CHECK: @APP
-// CHECK: vorr q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
-// CHECK: @NO_APP
-check!(qreg_low4_i16x8 i16x8 qreg_low4 "vmov");
-
-// CHECK-LABEL: qreg_low4_i32x4:
-// CHECK: @APP
-// CHECK: vorr q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
-// CHECK: @NO_APP
-check!(qreg_low4_i32x4 i32x4 qreg_low4 "vmov");
-
-// CHECK-LABEL: qreg_low4_i64x2:
-// CHECK: @APP
-// CHECK: vorr q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
-// CHECK: @NO_APP
-check!(qreg_low4_i64x2 i64x2 qreg_low4 "vmov");
-
-// CHECK-LABEL: qreg_low4_f32x4:
-// CHECK: @APP
-// CHECK: vorr q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
-// CHECK: @NO_APP
-check!(qreg_low4_f32x4 f32x4 qreg_low4 "vmov");
-
-// CHECK-LABEL: r0_i8:
-// CHECK: @APP
-// CHECK: mov r0, r0
-// CHECK: @NO_APP
-check_reg!(r0_i8 i8 "r0" "mov");
-
-// CHECK-LABEL: r0_i16:
-// CHECK: @APP
-// CHECK: mov r0, r0
-// CHECK: @NO_APP
-check_reg!(r0_i16 i16 "r0" "mov");
-
-// CHECK-LABEL: r0_i32:
-// CHECK: @APP
-// CHECK: mov r0, r0
-// CHECK: @NO_APP
-check_reg!(r0_i32 i32 "r0" "mov");
-
-// CHECK-LABEL: r0_f32:
-// CHECK: @APP
-// CHECK: mov r0, r0
-// CHECK: @NO_APP
-check_reg!(r0_f32 f32 "r0" "mov");
-
-// CHECK-LABEL: r0_ptr:
-// CHECK: @APP
-// CHECK: mov r0, r0
-// CHECK: @NO_APP
-check_reg!(r0_ptr ptr "r0" "mov");
-
-// CHECK-LABEL: s0_i32:
-// CHECK: @APP
-// CHECK: vmov.f32 s0, s0
-// CHECK: @NO_APP
-check_reg!(s0_i32 i32 "s0" "vmov.f32");
-
-// CHECK-LABEL: s0_f32:
-// CHECK: @APP
-// CHECK: vmov.f32 s0, s0
-// CHECK: @NO_APP
-check_reg!(s0_f32 f32 "s0" "vmov.f32");
-
-// CHECK-LABEL: s0_ptr:
-// CHECK: @APP
-// CHECK: vmov.f32 s0, s0
-// CHECK: @NO_APP
-check_reg!(s0_ptr ptr "s0" "vmov.f32");
-
-// CHECK-LABEL: d0_i64:
-// CHECK: @APP
-// CHECK: vmov.f64 d0, d0
-// CHECK: @NO_APP
-check_reg!(d0_i64 i64 "d0" "vmov.f64");
-
-// CHECK-LABEL: d0_f64:
-// CHECK: @APP
-// CHECK: vmov.f64 d0, d0
-// CHECK: @NO_APP
-check_reg!(d0_f64 f64 "d0" "vmov.f64");
-
-// CHECK-LABEL: d0_i8x8:
-// CHECK: @APP
-// CHECK: vmov.f64 d0, d0
-// CHECK: @NO_APP
-check_reg!(d0_i8x8 i8x8 "d0" "vmov.f64");
-
-// CHECK-LABEL: d0_i16x4:
-// CHECK: @APP
-// CHECK: vmov.f64 d0, d0
-// CHECK: @NO_APP
-check_reg!(d0_i16x4 i16x4 "d0" "vmov.f64");
-
-// CHECK-LABEL: d0_i32x2:
-// CHECK: @APP
-// CHECK: vmov.f64 d0, d0
-// CHECK: @NO_APP
-check_reg!(d0_i32x2 i32x2 "d0" "vmov.f64");
-
-// CHECK-LABEL: d0_i64x1:
-// CHECK: @APP
-// CHECK: vmov.f64 d0, d0
-// CHECK: @NO_APP
-check_reg!(d0_i64x1 i64x1 "d0" "vmov.f64");
-
-// CHECK-LABEL: d0_f32x2:
-// CHECK: @APP
-// CHECK: vmov.f64 d0, d0
-// CHECK: @NO_APP
-check_reg!(d0_f32x2 f32x2 "d0" "vmov.f64");
-
-// CHECK-LABEL: q0_i8x16:
-// CHECK: @APP
-// CHECK: vorr q0, q0, q0
-// CHECK: @NO_APP
-check_reg!(q0_i8x16 i8x16 "q0" "vmov");
-
-// CHECK-LABEL: q0_i16x8:
-// CHECK: @APP
-// CHECK: vorr q0, q0, q0
-// CHECK: @NO_APP
-check_reg!(q0_i16x8 i16x8 "q0" "vmov");
-
-// CHECK-LABEL: q0_i32x4:
-// CHECK: @APP
-// CHECK: vorr q0, q0, q0
-// CHECK: @NO_APP
-check_reg!(q0_i32x4 i32x4 "q0" "vmov");
-
-// CHECK-LABEL: q0_i64x2:
-// CHECK: @APP
-// CHECK: vorr q0, q0, q0
-// CHECK: @NO_APP
-check_reg!(q0_i64x2 i64x2 "q0" "vmov");
-
-// CHECK-LABEL: q0_f32x4:
-// CHECK: @APP
-// CHECK: vorr q0, q0, q0
-// CHECK: @NO_APP
-check_reg!(q0_f32x4 f32x4 "q0" "vmov");
diff --git a/src/test/assembly/asm/avr-modifiers.rs b/src/test/assembly/asm/avr-modifiers.rs
deleted file mode 100644
index ffdc8f2e3..000000000
--- a/src/test/assembly/asm/avr-modifiers.rs
+++ /dev/null
@@ -1,59 +0,0 @@
-// assembly-output: emit-asm
-// compile-flags: --target avr-unknown-gnu-atmega328
-// needs-llvm-components: avr
-
-#![feature(no_core, lang_items, rustc_attrs, asm_experimental_arch)]
-#![crate_type = "rlib"]
-#![no_core]
-#![allow(non_camel_case_types)]
-
-#[rustc_builtin_macro]
-macro_rules! asm {
- () => {};
-}
-#[rustc_builtin_macro]
-macro_rules! concat {
- () => {};
-}
-
-#[lang = "sized"]
-trait Sized {}
-#[lang = "copy"]
-trait Copy {}
-
-type ptr = *const u64;
-
-impl Copy for i8 {}
-impl Copy for i16 {}
-impl Copy for i32 {}
-impl Copy for i64 {}
-impl Copy for ptr {}
-
-macro_rules! check {
- ($func:ident $hi:literal $lo:literal $reg:tt) => {
- #[no_mangle]
- unsafe fn $func() -> i16 {
- let y;
- asm!(concat!("mov {0:", $hi, "}, {0:", $lo, "}"), out($reg) y);
- y
- }
- };
-}
-
-// CHECK-LABEL: reg_pair_modifiers:
-// CHECK: ;APP
-// CHECK: mov r{{[1-9]?[13579]}}, r{{[1-9]?[24680]}}
-// CHECK: ;NO_APP
-check!(reg_pair_modifiers "h" "l" reg_pair);
-
-// CHECK-LABEL: reg_iw_modifiers:
-// CHECK: ;APP
-// CHECK: mov r{{[1-9]?[13579]}}, r{{[1-9]?[24680]}}
-// CHECK: ;NO_APP
-check!(reg_iw_modifiers "h" "l" reg_iw);
-
-// CHECK-LABEL: reg_ptr_modifiers:
-// CHECK: ;APP
-// CHECK: mov r{{[1-9]?[13579]}}, r{{[1-9]?[24680]}}
-// CHECK: ;NO_APP
-check!(reg_ptr_modifiers "h" "l" reg_ptr);
diff --git a/src/test/assembly/asm/avr-types.rs b/src/test/assembly/asm/avr-types.rs
deleted file mode 100644
index b2d11a882..000000000
--- a/src/test/assembly/asm/avr-types.rs
+++ /dev/null
@@ -1,221 +0,0 @@
-// assembly-output: emit-asm
-// compile-flags: --target avr-unknown-gnu-atmega328
-// needs-llvm-components: avr
-
-#![feature(no_core, lang_items, rustc_attrs, asm_experimental_arch)]
-#![crate_type = "rlib"]
-#![no_core]
-#![allow(non_camel_case_types)]
-
-#[rustc_builtin_macro]
-macro_rules! asm {
- () => {};
-}
-#[rustc_builtin_macro]
-macro_rules! concat {
- () => {};
-}
-
-#[lang = "sized"]
-trait Sized {}
-#[lang = "copy"]
-trait Copy {}
-
-type ptr = *const u64;
-
-impl Copy for i8 {}
-impl Copy for i16 {}
-impl Copy for i32 {}
-impl Copy for i64 {}
-impl Copy for ptr {}
-
-macro_rules! check {
- ($func:ident $ty:ident $class:ident) => {
- #[no_mangle]
- pub unsafe fn $func(x: $ty) -> $ty {
- let y;
- asm!("mov {}, {}", lateout($class) y, in($class) x);
- y
- }
- };
-}
-
-macro_rules! checkw {
- ($func:ident $ty:ident $class:ident) => {
- #[no_mangle]
- pub unsafe fn $func(x: $ty) -> $ty {
- let y;
- asm!("movw {}, {}", lateout($class) y, in($class) x);
- y
- }
- };
-}
-
-macro_rules! check_reg {
- ($func:ident $ty:ident $reg:tt) => {
- #[no_mangle]
- pub unsafe fn $func(x: $ty) -> $ty {
- let y;
- asm!(concat!("mov ", $reg, ", ", $reg), lateout($reg) y, in($reg) x);
- y
- }
- };
-}
-
-macro_rules! check_regw {
- ($func:ident $ty:ident $reg:tt $reg_lit:tt) => {
- #[no_mangle]
- pub unsafe fn $func(x: $ty) -> $ty {
- let y;
- asm!(concat!("movw ", $reg_lit, ", ", $reg_lit), lateout($reg) y, in($reg) x);
- y
- }
- };
-}
-
-extern "C" {
- fn extern_func();
- static extern_static: i8;
-}
-
-// CHECK-LABEL: sym_fn
-// CHECK: ;APP
-// CHECK: call extern_func
-// CHECK: ;NO_APP
-#[no_mangle]
-pub unsafe fn sym_fn() {
- asm!("call {}", sym extern_func);
-}
-
-// CHECK-LABEL: sym_static
-// CHECK: ;APP
-// CHECK: lds r{{[0-9]+}}, extern_static
-// CHECK: ;NO_APP
-#[no_mangle]
-pub unsafe fn sym_static() -> i8 {
- let y;
- asm!("lds {}, {}", lateout(reg) y, sym extern_static);
- y
-}
-
-// CHECK-LABEL: ld_z:
-// CHECK: ;APP
-// CHECK: ld r{{[0-9]+}}, Z
-// CHECK: ;NO_APP
-#[no_mangle]
-pub unsafe fn ld_z(x: i16) -> i8 {
- let y;
- asm!("ld {}, Z", out(reg) y, in("Z") x);
- y
-}
-
-// CHECK-LABEL: ldd_z:
-// CHECK: ;APP
-// CHECK: ldd r{{[0-9]+}}, Z+4
-// CHECK: ;NO_APP
-#[no_mangle]
-pub unsafe fn ldd_z(x: i16) -> i8 {
- let y;
- asm!("ldd {}, Z+4", out(reg) y, in("Z") x);
- y
-}
-
-// CHECK-LABEL: ld_predecrement:
-// CHECK: ;APP
-// CHECK: ld r{{[0-9]+}}, -Z
-// CHECK: ;NO_APP
-#[no_mangle]
-pub unsafe fn ld_predecrement(x: i16) -> i8 {
- let y;
- asm!("ld {}, -Z", out(reg) y, in("Z") x);
- y
-}
-
-// CHECK-LABEL: ld_postincrement:
-// CHECK: ;APP
-// CHECK: ld r{{[0-9]+}}, Z+
-// CHECK: ;NO_APP
-#[no_mangle]
-pub unsafe fn ld_postincrement(x: i16) -> i8 {
- let y;
- asm!("ld {}, Z+", out(reg) y, in("Z") x);
- y
-}
-
-// CHECK-LABEL: muls_clobber:
-// CHECK: ;APP
-// CHECK: muls r{{[0-9]+}}, r{{[0-9]+}}
-// CHECK: movw r{{[0-9]+}}, r0
-// CHECK: ;NO_APP
-#[no_mangle]
-pub unsafe fn muls_clobber(x: i8, y: i8) -> i16 {
- let z;
- asm!(
- "muls {}, {}",
- "movw {}, r1:r0",
- out(reg_iw) z,
- in(reg) x,
- in(reg) y,
- );
- z
-}
-
-// CHECK-LABEL: reg_i8:
-// CHECK: ;APP
-// CHECK: mov r{{[0-9]+}}, r{{[0-9]+}}
-// CHECK: ;NO_APP
-check!(reg_i8 i8 reg);
-
-// CHECK-LABEL: reg_upper_i8:
-// CHECK: ;APP
-// CHECK: mov r{{[1-3][0-9]}}, r{{[1-3][0-9]}}
-// CHECK: ;NO_APP
-check!(reg_upper_i8 i8 reg_upper);
-
-// CHECK-LABEL: reg_pair_i16:
-// CHECK: ;APP
-// CHECK: movw r{{[0-9]+}}, r{{[0-9]+}}
-// CHECK: ;NO_APP
-checkw!(reg_pair_i16 i16 reg_pair);
-
-// CHECK-LABEL: reg_iw_i16:
-// CHECK: ;APP
-// CHECK: movw r{{[0-9]+}}, r{{[0-9]+}}
-// CHECK: ;NO_APP
-checkw!(reg_iw_i16 i16 reg_iw);
-
-// CHECK-LABEL: reg_ptr_i16:
-// CHECK: ;APP
-// CHECK: movw r{{[0-9]+}}, r{{[0-9]+}}
-// CHECK: ;NO_APP
-checkw!(reg_ptr_i16 i16 reg_ptr);
-
-// CHECK-LABEL: r2_i8:
-// CHECK: ;APP
-// CHECK: mov r2, r2
-// CHECK: ;NO_APP
-check_reg!(r2_i8 i8 "r2");
-
-// CHECK-LABEL: xl_i8:
-// CHECK: ;APP
-// CHECK: mov r26, r26
-// CHECK: ;NO_APP
-check_reg!(xl_i8 i8 "XL");
-
-// CHECK-LABEL: xh_i8:
-// CHECK: ;APP
-// CHECK: mov r27, r27
-// CHECK: ;NO_APP
-check_reg!(xh_i8 i8 "XH");
-
-// CHECK-LABEL: x_i16:
-// CHECK: ;APP
-// CHECK: movw r26, r26
-// CHECK: ;NO_APP
-check_regw!(x_i16 i16 "X" "X");
-
-// CHECK-LABEL: r25r24_i16:
-// CHECK: ;APP
-// CHECK: movw r24, r24
-// CHECK: ;NO_APP
-check_regw!(r25r24_i16 i16 "r25r24" "r24");
diff --git a/src/test/assembly/asm/bpf-types.rs b/src/test/assembly/asm/bpf-types.rs
deleted file mode 100644
index e177b8d0d..000000000
--- a/src/test/assembly/asm/bpf-types.rs
+++ /dev/null
@@ -1,153 +0,0 @@
-// assembly-output: emit-asm
-// compile-flags: --target bpfel-unknown-none -C target_feature=+alu32
-// needs-llvm-components: bpf
-
-#![feature(no_core, lang_items, rustc_attrs, repr_simd, asm_experimental_arch)]
-#![crate_type = "rlib"]
-#![no_core]
-#![allow(asm_sub_register, non_camel_case_types)]
-
-#[rustc_builtin_macro]
-macro_rules! asm {
- () => {};
-}
-#[rustc_builtin_macro]
-macro_rules! concat {
- () => {};
-}
-#[rustc_builtin_macro]
-macro_rules! stringify {
- () => {};
-}
-
-#[lang = "sized"]
-trait Sized {}
-#[lang = "copy"]
-trait Copy {}
-
-type ptr = *const u64;
-
-impl Copy for i8 {}
-impl Copy for i16 {}
-impl Copy for i32 {}
-impl Copy for i64 {}
-impl Copy for ptr {}
-
-macro_rules! check {
- ($func:ident $ty:ident $class:ident) => {
- #[no_mangle]
- pub unsafe fn $func(x: $ty) -> $ty {
- let y;
- asm!("{} = {}", out($class) y, in($class) x);
- y
- }
- };
-}
-
-macro_rules! check_reg {
- ($func:ident $ty:ident $reg:tt) => {
- #[no_mangle]
- pub unsafe fn $func(x: $ty) -> $ty {
- let y;
- asm!(concat!($reg, " = ", $reg), lateout($reg) y, in($reg) x);
- y
- }
- };
-}
-
-extern "C" {
- fn extern_func();
-}
-
-// CHECK-LABEL: sym_fn
-// CHECK: #APP
-// CHECK: call extern_func
-// CHECK: #NO_APP
-#[no_mangle]
-pub unsafe fn sym_fn() {
- asm!("call {}", sym extern_func);
-}
-
-// CHECK-LABEL: reg_i8:
-// CHECK: #APP
-// CHECK: r{{[0-9]+}} = r{{[0-9]+}}
-// CHECK: #NO_APP
-check!(reg_i8 i8 reg);
-
-// CHECK-LABEL: reg_i16:
-// CHECK: #APP
-// CHECK: r{{[0-9]+}} = r{{[0-9]+}}
-// CHECK: #NO_APP
-check!(reg_i16 i16 reg);
-
-// CHECK-LABEL: reg_i32:
-// CHECK: #APP
-// CHECK: r{{[0-9]+}} = r{{[0-9]+}}
-// CHECK: #NO_APP
-check!(reg_i32 i32 reg);
-
-// CHECK-LABEL: reg_i64:
-// CHECK: #APP
-// CHECK: r{{[0-9]+}} = r{{[0-9]+}}
-// CHECK: #NO_APP
-check!(reg_i64 i64 reg);
-
-// CHECK-LABEL: wreg_i8:
-// CHECK: #APP
-// CHECK: w{{[0-9]+}} = w{{[0-9]+}}
-// CHECK: #NO_APP
-check!(wreg_i8 i8 wreg);
-
-// CHECK-LABEL: wreg_i16:
-// CHECK: #APP
-// CHECK: w{{[0-9]+}} = w{{[0-9]+}}
-// CHECK: #NO_APP
-check!(wreg_i16 i16 wreg);
-
-// CHECK-LABEL: wreg_i32:
-// CHECK: #APP
-// CHECK: w{{[0-9]+}} = w{{[0-9]+}}
-// CHECK: #NO_APP
-check!(wreg_i32 i32 wreg);
-
-// CHECK-LABEL: r0_i8:
-// CHECK: #APP
-// CHECK: r0 = r0
-// CHECK: #NO_APP
-check_reg!(r0_i8 i8 "r0");
-
-// CHECK-LABEL: r0_i16:
-// CHECK: #APP
-// CHECK: r0 = r0
-// CHECK: #NO_APP
-check_reg!(r0_i16 i16 "r0");
-
-// CHECK-LABEL: r0_i32:
-// CHECK: #APP
-// CHECK: r0 = r0
-// CHECK: #NO_APP
-check_reg!(r0_i32 i32 "r0");
-
-// CHECK-LABEL: r0_i64:
-// CHECK: #APP
-// CHECK: r0 = r0
-// CHECK: #NO_APP
-check_reg!(r0_i64 i64 "r0");
-
-// CHECK-LABEL: w0_i8:
-// CHECK: #APP
-// CHECK: w0 = w0
-// CHECK: #NO_APP
-check_reg!(w0_i8 i8 "w0");
-
-// CHECK-LABEL: w0_i16:
-// CHECK: #APP
-// CHECK: w0 = w0
-// CHECK: #NO_APP
-check_reg!(w0_i16 i16 "w0");
-
-// CHECK-LABEL: w0_i32:
-// CHECK: #APP
-// CHECK: w0 = w0
-// CHECK: #NO_APP
-check_reg!(w0_i32 i32 "w0");
diff --git a/src/test/assembly/asm/global_asm.rs b/src/test/assembly/asm/global_asm.rs
deleted file mode 100644
index 0b361a7ed..000000000
--- a/src/test/assembly/asm/global_asm.rs
+++ /dev/null
@@ -1,33 +0,0 @@
-// only-x86_64
-// only-linux
-// assembly-output: emit-asm
-// compile-flags: -C llvm-args=--x86-asm-syntax=intel
-// compile-flags: -C symbol-mangling-version=v0
-
-#![feature(asm_const)]
-#![crate_type = "rlib"]
-
-use std::arch::global_asm;
-
-#[no_mangle]
-fn my_func() {}
-
-#[no_mangle]
-static MY_STATIC: i32 = 0;
-
-// CHECK: mov eax, eax
-global_asm!("mov eax, eax");
-// CHECK: mov ebx, 5
-global_asm!("mov ebx, {}", const 5);
-// CHECK: mov ecx, 5
-global_asm!("movl ${}, %ecx", const 5, options(att_syntax));
-// CHECK: call my_func
-global_asm!("call {}", sym my_func);
-// CHECK: lea rax, [rip + MY_STATIC]
-global_asm!("lea rax, [rip + {}]", sym MY_STATIC);
-// CHECK: call _RNvCsiubXh4Yz005_10global_asm6foobar
-global_asm!("call {}", sym foobar);
-// CHECK: _RNvCsiubXh4Yz005_10global_asm6foobar:
-fn foobar() {
- loop {}
-}
diff --git a/src/test/assembly/asm/hexagon-types.rs b/src/test/assembly/asm/hexagon-types.rs
deleted file mode 100644
index af16faedb..000000000
--- a/src/test/assembly/asm/hexagon-types.rs
+++ /dev/null
@@ -1,181 +0,0 @@
-// assembly-output: emit-asm
-// compile-flags: --target hexagon-unknown-linux-musl
-// needs-llvm-components: hexagon
-
-#![feature(no_core, lang_items, rustc_attrs, repr_simd, asm_experimental_arch)]
-#![crate_type = "rlib"]
-#![no_core]
-#![allow(asm_sub_register, non_camel_case_types)]
-
-#[rustc_builtin_macro]
-macro_rules! asm {
- () => {};
-}
-#[rustc_builtin_macro]
-macro_rules! concat {
- () => {};
-}
-#[rustc_builtin_macro]
-macro_rules! stringify {
- () => {};
-}
-
-#[lang = "sized"]
-trait Sized {}
-#[lang = "copy"]
-trait Copy {}
-
-type ptr = *const i32;
-
-impl Copy for i8 {}
-impl Copy for i16 {}
-impl Copy for i32 {}
-impl Copy for f32 {}
-impl Copy for ptr {}
-extern "C" {
- fn extern_func();
- static extern_static: u8;
-}
-
-macro_rules! check {
- ($func:ident $ty:ident $class:ident) => {
- #[no_mangle]
- pub unsafe fn $func(x: $ty) -> $ty {
- // Hack to avoid function merging
- extern "Rust" {
- fn dont_merge(s: &str);
- }
- dont_merge(stringify!($func));
-
- let y;
- asm!("{} = {}", out($class) y, in($class) x);
- y
- }
- };
-}
-
-macro_rules! check_reg {
- ($func:ident $ty:ident $reg:tt) => {
- #[no_mangle]
- pub unsafe fn $func(x: $ty) -> $ty {
- // Hack to avoid function merging
- extern "Rust" {
- fn dont_merge(s: &str);
- }
- dont_merge(stringify!($func));
-
- let y;
- asm!(concat!($reg, " = ", $reg), lateout($reg) y, in($reg) x);
- y
- }
- };
-}
-
-// CHECK-LABEL: sym_static:
-// CHECK: InlineAsm Start
-// CHECK: r0 = {{#+}}extern_static
-// CHECK: InlineAsm End
-#[no_mangle]
-pub unsafe fn sym_static() {
- // Hack to avoid function merging
- extern "Rust" {
- fn dont_merge(s: &str);
- }
- dont_merge(stringify!($func));
-
- asm!("r0 = #{}", sym extern_static);
-}
-
-// CHECK-LABEL: sym_fn:
-// CHECK: InlineAsm Start
-// CHECK: r0 = {{#+}}extern_func
-// CHECK: InlineAsm End
-#[no_mangle]
-pub unsafe fn sym_fn() {
- // Hack to avoid function merging
- extern "Rust" {
- fn dont_merge(s: &str);
- }
- dont_merge(stringify!($func));
-
- asm!("r0 = #{}", sym extern_func);
-}
-
-// This is a test for multi-instruction packets,
-// which require the escaped braces.
-//
-// CHECK-LABEL: packet:
-// CHECK: InlineAsm Start
-// CHECK: {
-// CHECK: r{{[0-9]+}} = r0
-// CHECK: memw(r1{{(\+#0)?}}) = r{{[0-9]+}}
-// CHECK: }
-// CHECK: InlineAsm End
-#[no_mangle]
-pub unsafe fn packet() {
- let val = 1024;
- asm!("{{
- {} = r0
- memw(r1) = {}
- }}", out(reg) _, in(reg) &val);
-}
-
-// CHECK-LABEL: reg_ptr:
-// CHECK: InlineAsm Start
-// CHECK: r{{[0-9]+}} = r{{[0-9]+}}
-// CHECK: InlineAsm End
-check!(reg_ptr ptr reg);
-
-// CHECK-LABEL: reg_f32:
-// CHECK: InlineAsm Start
-// CHECK: r{{[0-9]+}} = r{{[0-9]+}}
-// CHECK: InlineAsm End
-check!(reg_f32 f32 reg);
-
-// CHECK-LABEL: reg_i32:
-// CHECK: InlineAsm Start
-// CHECK: r{{[0-9]+}} = r{{[0-9]+}}
-// CHECK: InlineAsm End
-check!(reg_i32 i32 reg);
-
-// CHECK-LABEL: reg_i8:
-// CHECK: InlineAsm Start
-// CHECK: r{{[0-9]+}} = r{{[0-9]+}}
-// CHECK: InlineAsm End
-check!(reg_i8 i8 reg);
-
-// CHECK-LABEL: reg_i16:
-// CHECK: InlineAsm Start
-// CHECK: r{{[0-9]+}} = r{{[0-9]+}}
-// CHECK: InlineAsm End
-check!(reg_i16 i16 reg);
-
-// CHECK-LABEL: r0_ptr:
-// CHECK: InlineAsm Start
-// CHECK: r0 = r0
-// CHECK: InlineAsm End
-check_reg!(r0_ptr ptr "r0");
-
-// CHECK-LABEL: r0_f32:
-// CHECK: InlineAsm Start
-// CHECK: r0 = r0
-// CHECK: InlineAsm End
-check_reg!(r0_f32 f32 "r0");
-
-// CHECK-LABEL: r0_i32:
-// CHECK: InlineAsm Start
-// CHECK: r0 = r0
-// CHECK: InlineAsm End
-check_reg!(r0_i32 i32 "r0");
-
-// CHECK-LABEL: r0_i8:
-// CHECK: InlineAsm Start
-// CHECK: r0 = r0
-// CHECK: InlineAsm End
-check_reg!(r0_i8 i8 "r0");
-
-// CHECK-LABEL: r0_i16:
-// CHECK: InlineAsm Start
-// CHECK: r0 = r0
-// CHECK: InlineAsm End
-check_reg!(r0_i16 i16 "r0");
diff --git a/src/test/assembly/asm/mips-types.rs b/src/test/assembly/asm/mips-types.rs
deleted file mode 100644
index 6aa28b062..000000000
--- a/src/test/assembly/asm/mips-types.rs
+++ /dev/null
@@ -1,237 +0,0 @@
-// revisions: mips32 mips64
-// assembly-output: emit-asm
-//[mips32] compile-flags: --target mips-unknown-linux-gnu
-//[mips32] needs-llvm-components: mips
-//[mips64] compile-flags: --target mips64-unknown-linux-gnuabi64
-//[mips64] needs-llvm-components: mips
-
-#![feature(no_core, lang_items, rustc_attrs, repr_simd, asm_experimental_arch)]
-#![crate_type = "rlib"]
-#![no_core]
-#![allow(asm_sub_register, non_camel_case_types)]
-
-#[rustc_builtin_macro]
-macro_rules! asm {
- () => {};
-}
-#[rustc_builtin_macro]
-macro_rules! concat {
- () => {};
-}
-#[rustc_builtin_macro]
-macro_rules! stringify {
- () => {};
-}
-
-#[lang = "sized"]
-trait Sized {}
-#[lang = "copy"]
-trait Copy {}
-
-type ptr = *const i32;
-
-impl Copy for i8 {}
-impl Copy for u8 {}
-impl Copy for i16 {}
-impl Copy for i32 {}
-impl Copy for i64 {}
-impl Copy for f32 {}
-impl Copy for f64 {}
-impl Copy for ptr {}
-extern "C" {
- fn extern_func();
- static extern_static: u8;
-}
-
-// Hack to avoid function merging
-extern "Rust" {
- fn dont_merge(s: &str);
-}
-
-macro_rules! check { ($func:ident, $ty:ty, $class:ident, $mov:literal) => {
- #[no_mangle]
- pub unsafe fn $func(x: $ty) -> $ty {
- dont_merge(stringify!($func));
-
- let y;
- asm!(concat!($mov," {}, {}"), out($class) y, in($class) x);
- y
- }
-};}
-
-macro_rules! check_reg { ($func:ident, $ty:ty, $reg:tt, $mov:literal) => {
- #[no_mangle]
- pub unsafe fn $func(x: $ty) -> $ty {
- dont_merge(stringify!($func));
-
- let y;
- asm!(concat!($mov, " ", $reg, ", ", $reg), lateout($reg) y, in($reg) x);
- y
- }
-};}
-
-// mips32-LABEL: sym_static_32:
-// mips32: #APP
-// mips32: lw $3, %got(extern_static)
-// mips32: #NO_APP
-#[cfg(mips32)]
-#[no_mangle]
-pub unsafe fn sym_static_32() {
- asm!("lw $v1, {}", sym extern_static);
-}
-
-// mips32-LABEL: sym_fn_32:
-// mips32: #APP
-// mips32: lw $3, %got(extern_func)
-// mips32: #NO_APP
-#[cfg(mips32)]
-#[no_mangle]
-pub unsafe fn sym_fn_32() {
- asm!("lw $v1, {}", sym extern_func);
-}
-
-// mips64-LABEL: sym_static_64:
-// mips64: #APP
-// mips64: ld $3, %got_disp(extern_static)
-// mips64: #NO_APP
-#[cfg(mips64)]
-#[no_mangle]
-pub unsafe fn sym_static_64() {
- asm!("ld $v1, {}", sym extern_static);
-}
-
-// mips64-LABEL: sym_fn_64:
-// mips64: #APP
-// mips64: ld $3, %got_disp(extern_func)
-// mips64: #NO_APP
-#[cfg(mips64)]
-#[no_mangle]
-pub unsafe fn sym_fn_64() {
- asm!("ld $v1, {}", sym extern_func);
-}
-
-// CHECK-LABEL: reg_f32:
-// CHECK: #APP
-// CHECK: mov.s $f{{[0-9]+}}, $f{{[0-9]+}}
-// CHECK: #NO_APP
-check!(reg_f32, f32, freg, "mov.s");
-
-// CHECK-LABEL: f0_f32:
-// CHECK: #APP
-// CHECK: mov.s $f0, $f0
-// CHECK: #NO_APP
-#[no_mangle]
-check_reg!(f0_f32, f32, "$f0", "mov.s");
-
-// CHECK-LABEL: reg_f32_64:
-// CHECK: #APP
-// CHECK: mov.d $f{{[0-9]+}}, $f{{[0-9]+}}
-// CHECK: #NO_APP
-check!(reg_f32_64, f32, freg, "mov.d");
-
-// CHECK-LABEL: f0_f32_64:
-// CHECK: #APP
-// CHECK: mov.d $f0, $f0
-// CHECK: #NO_APP
-#[no_mangle]
-check_reg!(f0_f32_64, f32, "$f0", "mov.d");
-
-// CHECK-LABEL: reg_f64:
-// CHECK: #APP
-// CHECK: mov.d $f{{[0-9]+}}, $f{{[0-9]+}}
-// CHECK: #NO_APP
-#[no_mangle]
-check!(reg_f64, f64, freg, "mov.d");
-
-// CHECK-LABEL: f0_f64:
-// CHECK: #APP
-// CHECK: mov.d $f0, $f0
-// CHECK: #NO_APP
-#[no_mangle]
-check_reg!(f0_f64, f64, "$f0", "mov.d");
-
-// CHECK-LABEL: reg_ptr:
-// CHECK: #APP
-// CHECK: move ${{[0-9]+}}, ${{[0-9]+}}
-// CHECK: #NO_APP
-check!(reg_ptr, ptr, reg, "move");
-
-// CHECK-LABEL: reg_i32:
-// CHECK: #APP
-// CHECK: move ${{[0-9]+}}, ${{[0-9]+}}
-// CHECK: #NO_APP
-check!(reg_i32, i32, reg, "move");
-
-// CHECK-LABEL: reg_f32_soft:
-// CHECK: #APP
-// CHECK: move ${{[0-9]+}}, ${{[0-9]+}}
-// CHECK: #NO_APP
-check!(reg_f32_soft, f32, reg, "move");
-
-// mips64-LABEL: reg_f64_soft:
-// mips64: #APP
-// mips64: move ${{[0-9]+}}, ${{[0-9]+}}
-// mips64: #NO_APP
-#[cfg(mips64)]
-check!(reg_f64_soft, f64, reg, "move");
-
-// CHECK-LABEL: reg_i8:
-// CHECK: #APP
-// CHECK: move ${{[0-9]+}}, ${{[0-9]+}}
-// CHECK: #NO_APP
-check!(reg_i8, i8, reg, "move");
-
-// CHECK-LABEL: reg_u8:
-// CHECK: #APP
-// CHECK: move ${{[0-9]+}}, ${{[0-9]+}}
-// CHECK: #NO_APP
-check!(reg_u8, u8, reg, "move");
-
-// CHECK-LABEL: reg_i16:
-// CHECK: #APP
-// CHECK: move ${{[0-9]+}}, ${{[0-9]+}}
-// CHECK: #NO_APP
-check!(reg_i16, i16, reg, "move");
-
-// mips64-LABEL: reg_i64:
-// mips64: #APP
-// mips64: move ${{[0-9]+}}, ${{[0-9]+}}
-// mips64: #NO_APP
-#[cfg(mips64)]
-check!(reg_i64, i64, reg, "move");
-
-// CHECK-LABEL: r8_ptr:
-// CHECK: #APP
-// CHECK: move $8, $8
-// CHECK: #NO_APP
-check_reg!(r8_ptr, ptr, "$8", "move");
-
-// CHECK-LABEL: r8_i32:
-// CHECK: #APP
-// CHECK: move $8, $8
-// CHECK: #NO_APP
-check_reg!(r8_i32, i32, "$8", "move");
-
-// CHECK-LABEL: r8_f32:
-// CHECK: #APP
-// CHECK: move $8, $8
-// CHECK: #NO_APP
-check_reg!(r8_f32, f32, "$8", "move");
-
-// CHECK-LABEL: r8_i8:
-// CHECK: #APP
-// CHECK: move $8, $8
-// CHECK: #NO_APP
-check_reg!(r8_i8, i8, "$8", "move");
-
-// CHECK-LABEL: r8_u8:
-// CHECK: #APP
-// CHECK: move $8, $8
-// CHECK: #NO_APP
-check_reg!(r8_u8, u8, "$8", "move");
-
-// CHECK-LABEL: r8_i16:
-// CHECK: #APP
-// CHECK: move $8, $8
-// CHECK: #NO_APP
-check_reg!(r8_i16, i16, "$8", "move");
diff --git a/src/test/assembly/asm/msp430-types.rs b/src/test/assembly/asm/msp430-types.rs
deleted file mode 100644
index 2c73b3b09..000000000
--- a/src/test/assembly/asm/msp430-types.rs
+++ /dev/null
@@ -1,157 +0,0 @@
-// assembly-output: emit-asm
-// compile-flags: --target msp430-none-elf
-// needs-llvm-components: msp430
-
-#![feature(no_core, lang_items, rustc_attrs, asm_experimental_arch, asm_const)]
-#![crate_type = "rlib"]
-#![no_core]
-#![allow(non_camel_case_types)]
-
-#[rustc_builtin_macro]
-macro_rules! asm {
- () => {};
-}
-#[rustc_builtin_macro]
-macro_rules! concat {
- () => {};
-}
-
-#[lang = "sized"]
-trait Sized {}
-#[lang = "copy"]
-trait Copy {}
-
-type ptr = *const i16;
-
-impl Copy for i8 {}
-impl Copy for i16 {}
-impl Copy for i32 {}
-impl Copy for i64 {}
-impl Copy for ptr {}
-
-macro_rules! check {
- ($func:ident $ty:ident $class:ident) => {
- #[no_mangle]
- pub unsafe fn $func(x: $ty) -> $ty {
- let y;
- asm!("mov {}, {}", lateout($class) y, in($class) x);
- y
- }
- };
-}
-
-macro_rules! checkb {
- ($func:ident $ty:ident $class:ident) => {
- #[no_mangle]
- pub unsafe fn $func(x: $ty) -> $ty {
- let y;
- asm!("mov.b {}, {}", lateout($class) y, in($class) x);
- y
- }
- };
-}
-
-macro_rules! check_reg {
- ($func:ident $ty:ident $reg:tt) => {
- #[no_mangle]
- pub unsafe fn $func(x: $ty) -> $ty {
- let y;
- asm!(concat!("mov ", $reg, ", ", $reg), lateout($reg) y, in($reg) x);
- y
- }
- };
-}
-
-macro_rules! check_regb {
- ($func:ident $ty:ident $reg:tt) => {
- #[no_mangle]
- pub unsafe fn $func(x: $ty) -> $ty {
- let y;
- asm!(concat!("mov.b ", $reg, ", ", $reg), lateout($reg) y, in($reg) x);
- y
- }
- };
-}
-
-extern "C" {
- fn extern_func();
- static extern_static: i8;
-}
-
-// CHECK-LABEL: sym_fn
-// CHECK: ;APP
-// CHECK: call extern_func
-// CHECK: ;NO_APP
-#[no_mangle]
-pub unsafe fn sym_fn() {
- asm!("call {}", sym extern_func);
-}
-
-// CHECK-LABEL: sym_static
-// CHECK: ;APP
-// CHECK: mov.b extern_static, r{{[0-9]+}}
-// CHECK: ;NO_APP
-#[no_mangle]
-pub unsafe fn sym_static() -> i8 {
- let y;
- asm!("mov.b {1}, {0}", lateout(reg) y, sym extern_static);
- y
-}
-
-// CHECK-LABEL: add_const:
-// CHECK: ;APP
-// CHECK: add.b #5, r{{[0-9]+}}
-// CHECK: ;NO_APP
-#[no_mangle]
-pub unsafe fn add_const() -> i8 {
- let y;
- asm!("add.b #{number}, {}", out(reg) y, number = const 5);
- y
-}
-
-// CHECK-LABEL: mov_postincrement:
-// CHECK: ;APP
-// CHECK: mov @r5+, r{{[0-9]+}}
-// CHECK: ;NO_APP
-#[no_mangle]
-pub unsafe fn mov_postincrement(mut x: *const i16) -> (i16, *const i16) {
- let y;
- asm!("mov @r5+, {0}", out(reg) y, inlateout("r5") x);
- (y, x)
-}
-
-// CHECK-LABEL: reg_i8:
-// CHECK: ;APP
-// CHECK: mov r{{[0-9]+}}, r{{[0-9]+}}
-// CHECK: ;NO_APP
-check!(reg_i8 i8 reg);
-
-// CHECK-LABEL: reg_i16:
-// CHECK: ;APP
-// CHECK: mov r{{[0-9]+}}, r{{[0-9]+}}
-// CHECK: ;NO_APP
-check!(reg_i16 i16 reg);
-
-// CHECK-LABEL: reg_i8b:
-// CHECK: ;APP
-// CHECK: mov.b r{{[0-9]+}}, r{{[0-9]+}}
-// CHECK: ;NO_APP
-checkb!(reg_i8b i8 reg);
-
-// CHECK-LABEL: r5_i8:
-// CHECK: ;APP
-// CHECK: mov r5, r5
-// CHECK: ;NO_APP
-check_reg!(r5_i8 i8 "r5");
-
-// CHECK-LABEL: r5_i16:
-// CHECK: ;APP
-// CHECK: mov r5, r5
-// CHECK: ;NO_APP
-check_reg!(r5_i16 i16 "r5");
-
-// CHECK-LABEL: r5_i8b:
-// CHECK: ;APP
-// CHECK: mov.b r5, r5
-// CHECK: ;NO_APP
-check_regb!(r5_i8b i8 "r5");
diff --git a/src/test/assembly/asm/nvptx-types.rs b/src/test/assembly/asm/nvptx-types.rs
deleted file mode 100644
index c319946b5..000000000
--- a/src/test/assembly/asm/nvptx-types.rs
+++ /dev/null
@@ -1,133 +0,0 @@
-// assembly-output: emit-asm
-// compile-flags: --target nvptx64-nvidia-cuda
-// compile-flags: --crate-type cdylib
-// needs-llvm-components: nvptx
-
-#![feature(no_core, lang_items, rustc_attrs, asm_experimental_arch)]
-#![no_core]
-
-#[rustc_builtin_macro]
-macro_rules! asm {
- () => {};
-}
-#[rustc_builtin_macro]
-macro_rules! concat {
- () => {};
-}
-
-#[lang = "sized"]
-trait Sized {}
-#[lang = "copy"]
-trait Copy {}
-
-type ptr = *mut u8;
-
-impl Copy for i8 {}
-impl Copy for i16 {}
-impl Copy for i32 {}
-impl Copy for f32 {}
-impl Copy for i64 {}
-impl Copy for f64 {}
-impl Copy for ptr {}
-
-// NVPTX does not support static variables
-#[no_mangle]
-fn extern_func() {}
-
-// CHECK-LABEL: .visible .func sym_fn()
-// CHECK: // begin inline asm
-// CHECK: call extern_func;
-// CHECK: // end inline asm
-#[no_mangle]
-pub unsafe fn sym_fn() {
- asm!("call {};", sym extern_func);
-}
-
-macro_rules! check {
- ($func:ident $ty:ident $class:ident $mov:literal) => {
- #[no_mangle]
- pub unsafe fn $func(x: $ty) -> $ty {
- let y;
- asm!(concat!($mov, " {}, {};"), out($class) y, in($class) x);
- y
- }
- };
-}
-
-// CHECK-LABEL: .visible .func (.param .b32 func_retval0) reg16_i8
-// CHECK: // begin inline asm
-// CHECK: mov.i16 %{{[a-z0-9]+}}, %{{[a-z0-9]+}};
-// CHECK: // end inline asm
-check!(reg16_i8 i8 reg16 "mov.i16");
-
-// CHECK-LABEL: .visible .func (.param .b32 func_retval0) reg16_i16
-// CHECK: // begin inline asm
-// CHECK: mov.i16 %{{[a-z0-9]+}}, %{{[a-z0-9]+}};
-// CHECK: // end inline asm
-check!(reg16_i16 i16 reg16 "mov.i16");
-
-// CHECK-LABEL: .visible .func (.param .b32 func_retval0) reg32_i8
-// CHECK: // begin inline asm
-// CHECK: mov.i32 %{{[a-z0-9]+}}, %{{[a-z0-9]+}};
-// CHECK: // end inline asm
-check!(reg32_i8 i8 reg32 "mov.i32");
-
-// CHECK-LABEL: .visible .func (.param .b32 func_retval0) reg32_i16
-// CHECK: // begin inline asm
-// CHECK: mov.i32 %{{[a-z0-9]+}}, %{{[a-z0-9]+}};
-// CHECK: // end inline asm
-check!(reg32_i16 i16 reg32 "mov.i32");
-
-// CHECK-LABEL: .visible .func (.param .b32 func_retval0) reg32_i32
-// CHECK: // begin inline asm
-// CHECK: mov.i32 %{{[a-z0-9]+}}, %{{[a-z0-9]+}};
-// CHECK: // end inline asm
-check!(reg32_i32 i32 reg32 "mov.i32");
-
-// CHECK-LABEL: .visible .func (.param .b32 func_retval0) reg32_f32
-// CHECK: // begin inline asm
-// CHECK: mov.i32 %{{[a-z0-9]+}}, %{{[a-z0-9]+}};
-// CHECK: // end inline asm
-check!(reg32_f32 f32 reg32 "mov.i32");
-
-// CHECK-LABEL: .visible .func (.param .b32 func_retval0) reg64_i8
-// CHECK: // begin inline asm
-// CHECK: mov.i64 %{{[a-z0-9]+}}, %{{[a-z0-9]+}};
-// CHECK: // end inline asm
-check!(reg64_i8 i8 reg64 "mov.i64");
-
-// CHECK-LABEL: .visible .func (.param .b32 func_retval0) reg64_i16
-// CHECK: // begin inline asm
-// CHECK: mov.i64 %{{[a-z0-9]+}}, %{{[a-z0-9]+}};
-// CHECK: // end inline asm
-check!(reg64_i16 i16 reg64 "mov.i64");
-
-// CHECK-LABEL: .visible .func (.param .b32 func_retval0) reg64_i32
-// CHECK: // begin inline asm
-// CHECK: mov.i64 %{{[a-z0-9]+}}, %{{[a-z0-9]+}};
-// CHECK: // end inline asm
-check!(reg64_i32 i32 reg64 "mov.i64");
-
-// CHECK-LABEL: .visible .func (.param .b32 func_retval0) reg64_f32
-// CHECK: // begin inline asm
-// CHECK: mov.i64 %{{[a-z0-9]+}}, %{{[a-z0-9]+}};
-// CHECK: // end inline asm
-check!(reg64_f32 f32 reg64 "mov.i64");
-
-// CHECK-LABEL: .visible .func (.param .b64 func_retval0) reg64_i64
-// CHECK: // begin inline asm
-// CHECK: mov.i64 %{{[a-z0-9]+}}, %{{[a-z0-9]+}};
-// CHECK: // end inline asm
-check!(reg64_i64 i64 reg64 "mov.i64");
-
-// CHECK-LABEL: .visible .func (.param .b64 func_retval0) reg64_f64
-// CHECK: // begin inline asm
-// CHECK: mov.i64 %{{[a-z0-9]+}}, %{{[a-z0-9]+}};
-// CHECK: // end inline asm
-check!(reg64_f64 f64 reg64 "mov.i64");
-
-// CHECK-LABEL: .visible .func (.param .b64 func_retval0) reg64_ptr
-// CHECK: // begin inline asm
-// CHECK: mov.i64 %{{[a-z0-9]+}}, %{{[a-z0-9]+}};
-// CHECK: // end inline asm
-check!(reg64_ptr ptr reg64 "mov.i64");
diff --git a/src/test/assembly/asm/powerpc-types.rs b/src/test/assembly/asm/powerpc-types.rs
deleted file mode 100644
index e27b00520..000000000
--- a/src/test/assembly/asm/powerpc-types.rs
+++ /dev/null
@@ -1,207 +0,0 @@
-// revisions: powerpc powerpc64
-// assembly-output: emit-asm
-//[powerpc] compile-flags: --target powerpc-unknown-linux-gnu
-//[powerpc] needs-llvm-components: powerpc
-//[powerpc64] compile-flags: --target powerpc64-unknown-linux-gnu
-//[powerpc64] needs-llvm-components: powerpc
-
-#![feature(no_core, lang_items, rustc_attrs, repr_simd, asm_experimental_arch)]
-#![crate_type = "rlib"]
-#![no_core]
-#![allow(asm_sub_register, non_camel_case_types)]
-
-#[rustc_builtin_macro]
-macro_rules! asm {
- () => {};
-}
-#[rustc_builtin_macro]
-macro_rules! concat {
- () => {};
-}
-#[rustc_builtin_macro]
-macro_rules! stringify {
- () => {};
-}
-
-#[lang = "sized"]
-trait Sized {}
-#[lang = "copy"]
-trait Copy {}
-
-type ptr = *const i32;
-
-impl Copy for i8 {}
-impl Copy for u8 {}
-impl Copy for i16 {}
-impl Copy for i32 {}
-impl Copy for i64 {}
-impl Copy for f32 {}
-impl Copy for f64 {}
-impl Copy for ptr {}
-extern "C" {
- fn extern_func();
- static extern_static: u8;
-}
-
-// Hack to avoid function merging
-extern "Rust" {
- fn dont_merge(s: &str);
-}
-
-macro_rules! check { ($func:ident, $ty:ty, $class:ident, $mov:literal) => {
- #[no_mangle]
- pub unsafe fn $func(x: $ty) -> $ty {
- dont_merge(stringify!($func));
-
- let y;
- asm!(concat!($mov," {}, {}"), out($class) y, in($class) x);
- y
- }
-};}
-
-macro_rules! check_reg { ($func:ident, $ty:ty, $rego:tt, $regc:tt, $mov:literal) => {
- #[no_mangle]
- pub unsafe fn $func(x: $ty) -> $ty {
- dont_merge(stringify!($func));
-
- let y;
- asm!(concat!($mov, " ", $rego, ", ", $rego), lateout($regc) y, in($regc) x);
- y
- }
-};}
-
-// CHECK-LABEL: reg_i8:
-// CHECK: #APP
-// CHECK: mr {{[0-9]+}}, {{[0-9]+}}
-// CHECK: #NO_APP
-check!(reg_i8, i8, reg, "mr");
-
-// CHECK-LABEL: reg_i16:
-// CHECK: #APP
-// CHECK: mr {{[0-9]+}}, {{[0-9]+}}
-// CHECK: #NO_APP
-check!(reg_i16, i16, reg, "mr");
-
-// CHECK-LABEL: reg_i32:
-// CHECK: #APP
-// CHECK: mr {{[0-9]+}}, {{[0-9]+}}
-// CHECK: #NO_APP
-check!(reg_i32, i32, reg, "mr");
-
-// powerpc64-LABEL: reg_i64:
-// powerpc64: #APP
-// powerpc64: mr {{[0-9]+}}, {{[0-9]+}}
-// powerpc64: #NO_APP
-#[cfg(powerpc64)]
-check!(reg_i64, i64, reg, "mr");
-
-// CHECK-LABEL: reg_i8_nz:
-// CHECK: #APP
-// CHECK: mr {{[0-9]+}}, {{[0-9]+}}
-// CHECK: #NO_APP
-check!(reg_i8_nz, i8, reg_nonzero, "mr");
-
-// CHECK-LABEL: reg_i16_nz:
-// CHECK: #APP
-// CHECK: mr {{[0-9]+}}, {{[0-9]+}}
-// CHECK: #NO_APP
-check!(reg_i16_nz, i16, reg_nonzero, "mr");
-
-// CHECK-LABEL: reg_i32_nz:
-// CHECK: #APP
-// CHECK: mr {{[0-9]+}}, {{[0-9]+}}
-// CHECK: #NO_APP
-check!(reg_i32_nz, i32, reg_nonzero, "mr");
-
-// powerpc64-LABEL: reg_i64_nz:
-// powerpc64: #APP
-// powerpc64: mr {{[0-9]+}}, {{[0-9]+}}
-// powerpc64: #NO_APP
-#[cfg(powerpc64)]
-check!(reg_i64_nz, i64, reg_nonzero, "mr");
-
-// CHECK-LABEL: reg_f32:
-// CHECK: #APP
-// CHECK: fmr {{[0-9]+}}, {{[0-9]+}}
-// CHECK: #NO_APP
-check!(reg_f32, f32, freg, "fmr");
-
-// CHECK-LABEL: reg_f64:
-// CHECK: #APP
-// CHECK: fmr {{[0-9]+}}, {{[0-9]+}}
-// CHECK: #NO_APP
-check!(reg_f64, f64, freg, "fmr");
-
-// CHECK-LABEL: reg_i8_r0:
-// CHECK: #APP
-// CHECK: mr 0, 0
-// CHECK: #NO_APP
-check_reg!(reg_i8_r0, i8, "0", "0", "mr");
-
-// CHECK-LABEL: reg_i16_r0:
-// CHECK: #APP
-// CHECK: mr 0, 0
-// CHECK: #NO_APP
-check_reg!(reg_i16_r0, i16, "0", "0", "mr");
-
-// CHECK-LABEL: reg_i32_r0:
-// CHECK: #APP
-// CHECK: mr 0, 0
-// CHECK: #NO_APP
-check_reg!(reg_i32_r0, i32, "0", "0", "mr");
-
-// powerpc64-LABEL: reg_i64_r0:
-// powerpc64: #APP
-// powerpc64: mr 0, 0
-// powerpc64: #NO_APP
-#[cfg(powerpc64)]
-check_reg!(reg_i64_r0, i64, "0", "0", "mr");
-
-// CHECK-LABEL: reg_i8_r18:
-// CHECK: #APP
-// CHECK: mr 18, 18
-// CHECK: #NO_APP
-check_reg!(reg_i8_r18, i8, "18", "18", "mr");
-
-// CHECK-LABEL: reg_i16_r18:
-// CHECK: #APP
-// CHECK: mr 18, 18
-// CHECK: #NO_APP
-check_reg!(reg_i16_r18, i16, "18", "18", "mr");
-
-// CHECK-LABEL: reg_i32_r18:
-// CHECK: #APP
-// CHECK: mr 18, 18
-// CHECK: #NO_APP
-check_reg!(reg_i32_r18, i32, "18", "18", "mr");
-
-// powerpc64-LABEL: reg_i64_r18:
-// powerpc64: #APP
-// powerpc64: mr 18, 18
-// powerpc64: #NO_APP
-#[cfg(powerpc64)]
-check_reg!(reg_i64_r18, i64, "18", "18", "mr");
-
-// CHECK-LABEL: reg_f32_f0:
-// CHECK: #APP
-// CHECK: fmr 0, 0
-// CHECK: #NO_APP
-check_reg!(reg_f32_f0, f32, "0", "f0", "fmr");
-
-// CHECK-LABEL: reg_f64_f0:
-// CHECK: #APP
-// CHECK: fmr 0, 0
-// CHECK: #NO_APP
-check_reg!(reg_f64_f0, f64, "0", "f0", "fmr");
-
-// CHECK-LABEL: reg_f32_f18:
-// CHECK: #APP
-// CHECK: fmr 18, 18
-// CHECK: #NO_APP
-check_reg!(reg_f32_f18, f32, "18", "f18", "fmr");
-
-// CHECK-LABEL: reg_f64_f18:
-// CHECK: #APP
-// CHECK: fmr 18, 18
-// CHECK: #NO_APP
-check_reg!(reg_f64_f18, f64, "18", "f18", "fmr");
diff --git a/src/test/assembly/asm/riscv-types.rs b/src/test/assembly/asm/riscv-types.rs
deleted file mode 100644
index f18ba294d..000000000
--- a/src/test/assembly/asm/riscv-types.rs
+++ /dev/null
@@ -1,210 +0,0 @@
-// revisions: riscv64 riscv32
-// assembly-output: emit-asm
-//[riscv64] compile-flags: --target riscv64imac-unknown-none-elf
-//[riscv64] needs-llvm-components: riscv
-//[riscv32] compile-flags: --target riscv32imac-unknown-none-elf
-//[riscv32] needs-llvm-components: riscv
-// compile-flags: -C target-feature=+d
-
-#![feature(no_core, lang_items, rustc_attrs)]
-#![crate_type = "rlib"]
-#![no_core]
-#![allow(asm_sub_register)]
-
-#[rustc_builtin_macro]
-macro_rules! asm {
- () => {};
-}
-#[rustc_builtin_macro]
-macro_rules! concat {
- () => {};
-}
-#[rustc_builtin_macro]
-macro_rules! stringify {
- () => {};
-}
-
-#[lang = "sized"]
-trait Sized {}
-#[lang = "copy"]
-trait Copy {}
-
-type ptr = *mut u8;
-
-impl Copy for i8 {}
-impl Copy for i16 {}
-impl Copy for i32 {}
-impl Copy for f32 {}
-impl Copy for i64 {}
-impl Copy for f64 {}
-impl Copy for ptr {}
-
-extern "C" {
- fn extern_func();
- static extern_static: u8;
-}
-
-// CHECK-LABEL: sym_fn:
-// CHECK: #APP
-// CHECK: call extern_func
-// CHECK: #NO_APP
-#[no_mangle]
-pub unsafe fn sym_fn() {
- asm!("call {}", sym extern_func);
-}
-
-// CHECK-LABEL: sym_static:
-// CHECK: #APP
-// CHECK: auipc t0, %pcrel_hi(extern_static)
-// CHECK: lb t0, %pcrel_lo(.Lpcrel_hi{{[0-9]+}})(t0)
-// CHECK: #NO_APP
-#[no_mangle]
-pub unsafe fn sym_static() {
- asm!("lb t0, {}", sym extern_static);
-}
-
-macro_rules! check {
- ($func:ident $ty:ident $class:ident $mov:literal) => {
- #[no_mangle]
- pub unsafe fn $func(x: $ty) -> $ty {
- // Hack to avoid function merging
- extern "Rust" {
- fn dont_merge(s: &str);
- }
- dont_merge(stringify!($func));
-
- let y;
- asm!(concat!($mov, " {}, {}"), out($class) y, in($class) x);
- y
- }
- };
-}
-
-macro_rules! check_reg {
- ($func:ident $ty:ident $reg:tt $mov:literal) => {
- #[no_mangle]
- pub unsafe fn $func(x: $ty) -> $ty {
- // Hack to avoid function merging
- extern "Rust" {
- fn dont_merge(s: &str);
- }
- dont_merge(stringify!($func));
-
- let y;
- asm!(concat!($mov, " ", $reg, ", ", $reg), lateout($reg) y, in($reg) x);
- y
- }
- };
-}
-
-// CHECK-LABEL: reg_i8:
-// CHECK: #APP
-// CHECK: mv {{[a-z0-9]+}}, {{[a-z0-9]+}}
-// CHECK: #NO_APP
-check!(reg_i8 i8 reg "mv");
-
-// CHECK-LABEL: reg_i16:
-// CHECK: #APP
-// CHECK: mv {{[a-z0-9]+}}, {{[a-z0-9]+}}
-// CHECK: #NO_APP
-check!(reg_i16 i16 reg "mv");
-
-// CHECK-LABEL: reg_i32:
-// CHECK: #APP
-// CHECK: mv {{[a-z0-9]+}}, {{[a-z0-9]+}}
-// CHECK: #NO_APP
-check!(reg_i32 i32 reg "mv");
-
-// CHECK-LABEL: reg_f32:
-// CHECK: #APP
-// CHECK: mv {{[a-z0-9]+}}, {{[a-z0-9]+}}
-// CHECK: #NO_APP
-check!(reg_f32 f32 reg "mv");
-
-// riscv64-LABEL: reg_i64:
-// riscv64: #APP
-// riscv64: mv {{[a-z0-9]+}}, {{[a-z0-9]+}}
-// riscv64: #NO_APP
-#[cfg(riscv64)]
-check!(reg_i64 i64 reg "mv");
-
-// riscv64-LABEL: reg_f64:
-// riscv64: #APP
-// riscv64: mv {{[a-z0-9]+}}, {{[a-z0-9]+}}
-// riscv64: #NO_APP
-#[cfg(riscv64)]
-check!(reg_f64 f64 reg "mv");
-
-// CHECK-LABEL: reg_ptr:
-// CHECK: #APP
-// CHECK: mv {{[a-z0-9]+}}, {{[a-z0-9]+}}
-// CHECK: #NO_APP
-check!(reg_ptr ptr reg "mv");
-
-// CHECK-LABEL: freg_f32:
-// CHECK: #APP
-// CHECK: fmv.s f{{[a-z0-9]+}}, f{{[a-z0-9]+}}
-// CHECK: #NO_APP
-check!(freg_f32 f32 freg "fmv.s");
-
-// CHECK-LABEL: freg_f64:
-// CHECK: #APP
-// CHECK: fmv.d f{{[a-z0-9]+}}, f{{[a-z0-9]+}}
-// CHECK: #NO_APP
-check!(freg_f64 f64 freg "fmv.d");
-
-// CHECK-LABEL: a0_i8:
-// CHECK: #APP
-// CHECK: mv a0, a0
-// CHECK: #NO_APP
-check_reg!(a0_i8 i8 "a0" "mv");
-
-// CHECK-LABEL: a0_i16:
-// CHECK: #APP
-// CHECK: mv a0, a0
-// CHECK: #NO_APP
-check_reg!(a0_i16 i16 "a0" "mv");
-
-// CHECK-LABEL: a0_i32:
-// CHECK: #APP
-// CHECK: mv a0, a0
-// CHECK: #NO_APP
-check_reg!(a0_i32 i32 "a0" "mv");
-
-// CHECK-LABEL: a0_f32:
-// CHECK: #APP
-// CHECK: mv a0, a0
-// CHECK: #NO_APP
-check_reg!(a0_f32 f32 "a0" "mv");
-
-// riscv64-LABEL: a0_i64:
-// riscv64: #APP
-// riscv64: mv a0, a0
-// riscv64: #NO_APP
-#[cfg(riscv64)]
-check_reg!(a0_i64 i64 "a0" "mv");
-
-// riscv64-LABEL: a0_f64:
-// riscv64: #APP
-// riscv64: mv a0, a0
-// riscv64: #NO_APP
-#[cfg(riscv64)]
-check_reg!(a0_f64 f64 "a0" "mv");
-
-// CHECK-LABEL: a0_ptr:
-// CHECK: #APP
-// CHECK: mv a0, a0
-// CHECK: #NO_APP
-check_reg!(a0_ptr ptr "a0" "mv");
-
-// CHECK-LABEL: fa0_f32:
-// CHECK: #APP
-// CHECK: fmv.s fa0, fa0
-// CHECK: #NO_APP
-check_reg!(fa0_f32 f32 "fa0" "fmv.s");
-
-// CHECK-LABEL: fa0_f64:
-// CHECK: #APP
-// CHECK: fmv.d fa0, fa0
-// CHECK: #NO_APP
-check_reg!(fa0_f64 f64 "fa0" "fmv.d");
diff --git a/src/test/assembly/asm/s390x-types.rs b/src/test/assembly/asm/s390x-types.rs
deleted file mode 100644
index 2fb404dd9..000000000
--- a/src/test/assembly/asm/s390x-types.rs
+++ /dev/null
@@ -1,167 +0,0 @@
-// revisions: s390x
-// assembly-output: emit-asm
-//[s390x] compile-flags: --target s390x-unknown-linux-gnu
-//[s390x] needs-llvm-components: systemz
-
-#![feature(no_core, lang_items, rustc_attrs, repr_simd, asm_experimental_arch)]
-#![crate_type = "rlib"]
-#![no_core]
-#![allow(asm_sub_register, non_camel_case_types)]
-
-#[rustc_builtin_macro]
-macro_rules! asm {
- () => {};
-}
-#[rustc_builtin_macro]
-macro_rules! concat {
- () => {};
-}
-#[rustc_builtin_macro]
-macro_rules! stringify {
- () => {};
-}
-
-#[lang = "sized"]
-trait Sized {}
-#[lang = "copy"]
-trait Copy {}
-
-type ptr = *const i32;
-
-impl Copy for i8 {}
-impl Copy for u8 {}
-impl Copy for i16 {}
-impl Copy for i32 {}
-impl Copy for i64 {}
-impl Copy for f32 {}
-impl Copy for f64 {}
-impl Copy for ptr {}
-
-extern "C" {
- fn extern_func();
- static extern_static: u8;
-}
-
-// Hack to avoid function merging
-extern "Rust" {
- fn dont_merge(s: &str);
-}
-
-macro_rules! check { ($func:ident, $ty:ty, $class:ident, $mov:literal) => {
- #[no_mangle]
- pub unsafe fn $func(x: $ty) -> $ty {
- dont_merge(stringify!($func));
-
- let y;
- asm!(concat!($mov," {}, {}"), out($class) y, in($class) x);
- y
- }
-};}
-
-macro_rules! check_reg { ($func:ident, $ty:ty, $reg:tt, $mov:literal) => {
- #[no_mangle]
- pub unsafe fn $func(x: $ty) -> $ty {
- dont_merge(stringify!($func));
-
- let y;
- asm!(concat!($mov, " %", $reg, ", %", $reg), lateout($reg) y, in($reg) x);
- y
- }
-};}
-
-// CHECK-LABEL: sym_fn_32:
-// CHECK: #APP
-// CHECK: brasl %r14, extern_func
-// CHECK: #NO_APP
-#[cfg(s390x)]
-#[no_mangle]
-pub unsafe fn sym_fn_32() {
- asm!("brasl %r14, {}", sym extern_func);
-}
-
-// CHECK-LABEL: sym_static:
-// CHECK: #APP
-// CHECK: brasl %r14, extern_static
-// CHECK: #NO_APP
-#[no_mangle]
-pub unsafe fn sym_static() {
- asm!("brasl %r14, {}", sym extern_static);
-}
-
-// CHECK-LABEL: reg_i8:
-// CHECK: #APP
-// CHECK: lgr %r{{[0-9]+}}, %r{{[0-9]+}}
-// CHECK: #NO_APP
-check!(reg_i8, i8, reg, "lgr");
-
-// CHECK-LABEL: reg_i16:
-// CHECK: #APP
-// CHECK: lgr %r{{[0-9]+}}, %r{{[0-9]+}}
-// CHECK: #NO_APP
-check!(reg_i16, i16, reg, "lgr");
-
-// CHECK-LABEL: reg_i32:
-// CHECK: #APP
-// CHECK: lgr %r{{[0-9]+}}, %r{{[0-9]+}}
-// CHECK: #NO_APP
-check!(reg_i32, i32, reg, "lgr");
-
-// CHECK-LABEL: reg_i64:
-// CHECK: #APP
-// CHECK: lgr %r{{[0-9]+}}, %r{{[0-9]+}}
-// CHECK: #NO_APP
-check!(reg_i64, i64, reg, "lgr");
-
-// CHECK-LABEL: reg_f32:
-// CHECK: #APP
-// CHECK: ler %f{{[0-9]+}}, %f{{[0-9]+}}
-// CHECK: #NO_APP
-check!(reg_f32, f32, freg, "ler");
-
-// CHECK-LABEL: reg_f64:
-// CHECK: #APP
-// CHECK: ldr %f{{[0-9]+}}, %f{{[0-9]+}}
-// CHECK: #NO_APP
-check!(reg_f64, f64, freg, "ldr");
-
-// CHECK-LABEL: reg_ptr:
-// CHECK: #APP
-// CHECK: lgr %r{{[0-9]+}}, %r{{[0-9]+}}
-// CHECK: #NO_APP
-check!(reg_ptr, ptr, reg, "lgr");
-
-// CHECK-LABEL: r0_i8:
-// CHECK: #APP
-// CHECK: lr %r0, %r0
-// CHECK: #NO_APP
-check_reg!(r0_i8, i8, "r0", "lr");
-
-// CHECK-LABEL: r0_i16:
-// CHECK: #APP
-// CHECK: lr %r0, %r0
-// CHECK: #NO_APP
-check_reg!(r0_i16, i16, "r0", "lr");
-
-// CHECK-LABEL: r0_i32:
-// CHECK: #APP
-// CHECK: lr %r0, %r0
-// CHECK: #NO_APP
-check_reg!(r0_i32, i32, "r0", "lr");
-
-// CHECK-LABEL: r0_i64:
-// CHECK: #APP
-// CHECK: lr %r0, %r0
-// CHECK: #NO_APP
-check_reg!(r0_i64, i64, "r0", "lr");
-
-// CHECK-LABEL: f0_f32:
-// CHECK: #APP
-// CHECK: ler %f0, %f0
-// CHECK: #NO_APP
-check_reg!(f0_f32, f32, "f0", "ler");
-
-// CHECK-LABEL: f0_f64:
-// CHECK: #APP
-// CHECK: ldr %f0, %f0
-// CHECK: #NO_APP
-check_reg!(f0_f64, f64, "f0", "ldr");
diff --git a/src/test/assembly/asm/wasm-types.rs b/src/test/assembly/asm/wasm-types.rs
deleted file mode 100644
index 3b1ac1b45..000000000
--- a/src/test/assembly/asm/wasm-types.rs
+++ /dev/null
@@ -1,149 +0,0 @@
-// assembly-output: emit-asm
-// compile-flags: --target wasm32-unknown-unknown
-// compile-flags: --crate-type cdylib
-// needs-llvm-components: webassembly
-
-#![feature(no_core, lang_items, rustc_attrs, asm_experimental_arch)]
-#![no_core]
-
-#[rustc_builtin_macro]
-macro_rules! asm {
- () => {};
-}
-#[rustc_builtin_macro]
-macro_rules! concat {
- () => {};
-}
-
-#[lang = "sized"]
-trait Sized {}
-#[lang = "copy"]
-trait Copy {}
-
-type ptr = *mut u8;
-
-impl Copy for i8 {}
-impl Copy for i16 {}
-impl Copy for i32 {}
-impl Copy for f32 {}
-impl Copy for i64 {}
-impl Copy for f64 {}
-impl Copy for ptr {}
-
-extern "C" {
- fn extern_func();
- static extern_static: u8;
-}
-
-// CHECK-LABEL: sym_fn:
-// CHECK: #APP
-// CHECK: call extern_func
-// CHECK: #NO_APP
-#[no_mangle]
-pub unsafe fn sym_fn() {
- asm!("call {}", sym extern_func);
-}
-
-// CHECK-LABEL: sym_static
-// CHECK: #APP
-// CHECK: i32.const 42
-// CHECK: i32.store extern_static
-// CHECK: #NO_APP
-#[no_mangle]
-pub unsafe fn sym_static() {
- asm!("
- i32.const 42
- i32.store {}
- ", sym extern_static);
-}
-
-macro_rules! check {
- ($func:ident $ty:ident $instr:literal) => {
- #[no_mangle]
- pub unsafe fn $func(x: $ty) -> $ty {
- let y;
- asm!(concat!("local.get {}\n", $instr, "\nlocal.set {}"), in(local) x, out(local) y);
- y
- }
- };
-}
-
-// CHECK-LABEL: i8_i32:
-// CHECK: #APP
-// CHECK: local.get {{[0-9]}}
-// CHECK: i32.clz
-// CHECK: local.set {{[0-9]}}
-// CHECK: #NO_APP
-check!(i8_i32 i8 "i32.clz");
-
-// CHECK-LABEL: i16_i32:
-// CHECK: #APP
-// CHECK: local.get {{[0-9]}}
-// CHECK: i32.clz
-// CHECK: local.set {{[0-9]}}
-// CHECK: #NO_APP
-check!(i16_i32 i16 "i32.clz");
-
-// CHECK-LABEL: i32_i32:
-// CHECK: #APP
-// CHECK: local.get {{[0-9]}}
-// CHECK: i32.clz
-// CHECK: local.set {{[0-9]}}
-// CHECK: #NO_APP
-check!(i32_i32 i32 "i32.clz");
-
-// CHECK-LABEL: i8_i64
-// CHECK: #APP
-// CHECK: local.get {{[0-9]}}
-// CHECK: i64.clz
-// CHECK: local.set {{[0-9]}}
-// CHECK: #NO_APP
-check!(i8_i64 i8 "i64.clz");
-
-// CHECK-LABEL: i16_i64
-// CHECK: #APP
-// CHECK: local.get {{[0-9]}}
-// CHECK: i64.clz
-// CHECK: local.set {{[0-9]}}
-// CHECK: #NO_APP
-check!(i16_i64 i16 "i64.clz");
-
-// CHECK-LABEL: i32_i64
-// CHECK: #APP
-// CHECK: local.get {{[0-9]}}
-// CHECK: i64.clz
-// CHECK: local.set {{[0-9]}}
-// CHECK: #NO_APP
-check!(i32_i64 i32 "i64.clz");
-
-// CHECK-LABEL: i64_i64
-// CHECK: #APP
-// CHECK: local.get {{[0-9]}}
-// CHECK: i64.clz
-// CHECK: local.set {{[0-9]}}
-// CHECK: #NO_APP
-check!(i64_i64 i64 "i64.clz");
-
-// CHECK-LABEL: f32_f32
-// CHECK: #APP
-// CHECK: local.get {{[0-9]}}
-// CHECK: f32.abs
-// CHECK: local.set {{[0-9]}}
-// CHECK: #NO_APP
-check!(f32_f32 f32 "f32.abs");
-
-// CHECK-LABEL: f64_f64
-// CHECK: #APP
-// CHECK: local.get {{[0-9]}}
-// CHECK: f64.abs
-// CHECK: local.set {{[0-9]}}
-// CHECK: #NO_APP
-check!(f64_f64 f64 "f64.abs");
-
-// CHECK-LABEL: i32_ptr
-// CHECK: #APP
-// CHECK: local.get {{[0-9]}}
-// CHECK: i32.eqz
-// CHECK: local.set {{[0-9]}}
-// CHECK: #NO_APP
-check!(i32_ptr ptr "i32.eqz");
diff --git a/src/test/assembly/asm/x86-modifiers.rs b/src/test/assembly/asm/x86-modifiers.rs
deleted file mode 100644
index 574fdf12c..000000000
--- a/src/test/assembly/asm/x86-modifiers.rs
+++ /dev/null
@@ -1,205 +0,0 @@
-// revisions: x86_64 i686
-// assembly-output: emit-asm
-// compile-flags: -O
-//[x86_64] compile-flags: --target x86_64-unknown-linux-gnu
-//[x86_64] needs-llvm-components: x86
-//[i686] compile-flags: --target i686-unknown-linux-gnu
-//[i686] needs-llvm-components: x86
-// compile-flags: -C llvm-args=--x86-asm-syntax=intel
-// compile-flags: -C target-feature=+avx512bw
-
-#![feature(no_core, lang_items, rustc_attrs)]
-#![crate_type = "rlib"]
-#![no_core]
-#![allow(asm_sub_register)]
-
-#[rustc_builtin_macro]
-macro_rules! asm {
- () => {};
-}
-#[rustc_builtin_macro]
-macro_rules! concat {
- () => {};
-}
-#[rustc_builtin_macro]
-macro_rules! stringify {
- () => {};
-}
-
-#[lang = "sized"]
-trait Sized {}
-#[lang = "copy"]
-trait Copy {}
-
-impl Copy for i32 {}
-
-macro_rules! check {
- ($func:ident $modifier:literal $reg:ident $mov:literal) => {
- // -O and extern "C" guarantee that the selected register is always ax/xmm0
- #[no_mangle]
- pub unsafe extern "C" fn $func() -> i32 {
- // Hack to avoid function merging
- extern "Rust" {
- fn dont_merge(s: &str);
- }
- dont_merge(stringify!($func));
-
- let y;
- asm!(concat!($mov, " {0:", $modifier, "}, {0:", $modifier, "}"), out($reg) y);
- y
- }
- };
-}
-
-// CHECK-LABEL: reg:
-// CHECK: #APP
-// x86_64: mov rax, rax
-// i686: mov eax, eax
-// CHECK: #NO_APP
-check!(reg "" reg "mov");
-
-// x86_64-LABEL: reg_l:
-// x86_64: #APP
-// x86_64: mov al, al
-// x86_64: #NO_APP
-#[cfg(x86_64)]
-check!(reg_l "l" reg "mov");
-
-// CHECK-LABEL: reg_x:
-// CHECK: #APP
-// CHECK: mov ax, ax
-// CHECK: #NO_APP
-check!(reg_x "x" reg "mov");
-
-// CHECK-LABEL: reg_e:
-// CHECK: #APP
-// CHECK: mov eax, eax
-// CHECK: #NO_APP
-check!(reg_e "e" reg "mov");
-
-// x86_64-LABEL: reg_r:
-// x86_64: #APP
-// x86_64: mov rax, rax
-// x86_64: #NO_APP
-#[cfg(x86_64)]
-check!(reg_r "r" reg "mov");
-
-// CHECK-LABEL: reg_abcd:
-// CHECK: #APP
-// x86_64: mov rax, rax
-// i686: mov eax, eax
-// CHECK: #NO_APP
-check!(reg_abcd "" reg_abcd "mov");
-
-// CHECK-LABEL: reg_abcd_l:
-// CHECK: #APP
-// CHECK: mov al, al
-// CHECK: #NO_APP
-check!(reg_abcd_l "l" reg_abcd "mov");
-
-// CHECK-LABEL: reg_abcd_h:
-// CHECK: #APP
-// CHECK: mov ah, ah
-// CHECK: #NO_APP
-check!(reg_abcd_h "h" reg_abcd "mov");
-
-// CHECK-LABEL: reg_abcd_x:
-// CHECK: #APP
-// CHECK: mov ax, ax
-// CHECK: #NO_APP
-check!(reg_abcd_x "x" reg_abcd "mov");
-
-// CHECK-LABEL: reg_abcd_e:
-// CHECK: #APP
-// CHECK: mov eax, eax
-// CHECK: #NO_APP
-check!(reg_abcd_e "e" reg_abcd "mov");
-
-// x86_64-LABEL: reg_abcd_r:
-// x86_64: #APP
-// x86_64: mov rax, rax
-// x86_64: #NO_APP
-#[cfg(x86_64)]
-check!(reg_abcd_r "r" reg_abcd "mov");
-
-// CHECK-LABEL: xmm_reg
-// CHECK: #APP
-// CHECK: movaps xmm0, xmm0
-// CHECK: #NO_APP
-check!(xmm_reg "" xmm_reg "movaps");
-
-// CHECK-LABEL: xmm_reg_x
-// CHECK: #APP
-// CHECK: movaps xmm0, xmm0
-// CHECK: #NO_APP
-check!(xmm_reg_x "x" xmm_reg "movaps");
-
-// CHECK-LABEL: xmm_reg_y
-// CHECK: #APP
-// CHECK: vmovaps ymm0, ymm0
-// CHECK: #NO_APP
-check!(xmm_reg_y "y" xmm_reg "vmovaps");
-
-// CHECK-LABEL: xmm_reg_z
-// CHECK: #APP
-// CHECK: vmovaps zmm0, zmm0
-// CHECK: #NO_APP
-check!(xmm_reg_z "z" xmm_reg "vmovaps");
-
-// CHECK-LABEL: ymm_reg
-// CHECK: #APP
-// CHECK: movaps ymm0, ymm0
-// CHECK: #NO_APP
-check!(ymm_reg "" ymm_reg "vmovaps");
-
-// CHECK-LABEL: ymm_reg_x
-// CHECK: #APP
-// CHECK: movaps xmm0, xmm0
-// CHECK: #NO_APP
-check!(ymm_reg_x "x" ymm_reg "movaps");
-
-// CHECK-LABEL: ymm_reg_y
-// CHECK: #APP
-// CHECK: vmovaps ymm0, ymm0
-// CHECK: #NO_APP
-check!(ymm_reg_y "y" ymm_reg "vmovaps");
-
-// CHECK-LABEL: ymm_reg_z
-// CHECK: #APP
-// CHECK: vmovaps zmm0, zmm0
-// CHECK: #NO_APP
-check!(ymm_reg_z "z" ymm_reg "vmovaps");
-
-// CHECK-LABEL: zmm_reg
-// CHECK: #APP
-// CHECK: movaps zmm0, zmm0
-// CHECK: #NO_APP
-check!(zmm_reg "" zmm_reg "vmovaps");
-
-// CHECK-LABEL: zmm_reg_x
-// CHECK: #APP
-// CHECK: movaps xmm0, xmm0
-// CHECK: #NO_APP
-check!(zmm_reg_x "x" zmm_reg "movaps");
-
-// CHECK-LABEL: zmm_reg_y
-// CHECK: #APP
-// CHECK: vmovaps ymm0, ymm0
-// CHECK: #NO_APP
-check!(zmm_reg_y "y" zmm_reg "vmovaps");
-
-// CHECK-LABEL: zmm_reg_z
-// CHECK: #APP
-// CHECK: vmovaps zmm0, zmm0
-// CHECK: #NO_APP
-check!(zmm_reg_z "z" zmm_reg "vmovaps");
-
-// Note: we don't have any way of ensuring that k1 is actually the register
-// chosen by the register allocator, so this check may fail if a different
-// register is chosen.
-
-// CHECK-LABEL: kreg:
-// CHECK: #APP
-// CHECK: kmovb k1, k1
-// CHECK: #NO_APP
-check!(kreg "" kreg "kmovb");
diff --git a/src/test/assembly/asm/x86-types.rs b/src/test/assembly/asm/x86-types.rs
deleted file mode 100644
index 81be79cba..000000000
--- a/src/test/assembly/asm/x86-types.rs
+++ /dev/null
@@ -1,1093 +0,0 @@
-// revisions: x86_64 i686
-// assembly-output: emit-asm
-//[x86_64] compile-flags: --target x86_64-unknown-linux-gnu
-//[x86_64] needs-llvm-components: x86
-//[i686] compile-flags: --target i686-unknown-linux-gnu
-//[i686] needs-llvm-components: x86
-// compile-flags: -C llvm-args=--x86-asm-syntax=intel
-// compile-flags: -C target-feature=+avx512bw
-
-#![feature(no_core, lang_items, rustc_attrs, repr_simd)]
-#![crate_type = "rlib"]
-#![no_core]
-#![allow(asm_sub_register, non_camel_case_types)]
-
-#[rustc_builtin_macro]
-macro_rules! asm {
- () => {};
-}
-#[rustc_builtin_macro]
-macro_rules! concat {
- () => {};
-}
-#[rustc_builtin_macro]
-macro_rules! stringify {
- () => {};
-}
-
-#[lang = "sized"]
-trait Sized {}
-#[lang = "copy"]
-trait Copy {}
-
-type ptr = *mut u8;
-
-#[repr(simd)]
-pub struct i8x16(i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8);
-#[repr(simd)]
-pub struct i16x8(i16, i16, i16, i16, i16, i16, i16, i16);
-#[repr(simd)]
-pub struct i32x4(i32, i32, i32, i32);
-#[repr(simd)]
-pub struct i64x2(i64, i64);
-#[repr(simd)]
-pub struct f32x4(f32, f32, f32, f32);
-#[repr(simd)]
-pub struct f64x2(f64, f64);
-
-#[repr(simd)]
-pub struct i8x32(
- i8,
- i8,
- i8,
- i8,
- i8,
- i8,
- i8,
- i8,
- i8,
- i8,
- i8,
- i8,
- i8,
- i8,
- i8,
- i8,
- i8,
- i8,
- i8,
- i8,
- i8,
- i8,
- i8,
- i8,
- i8,
- i8,
- i8,
- i8,
- i8,
- i8,
- i8,
- i8,
-);
-#[repr(simd)]
-pub struct i16x16(i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16);
-#[repr(simd)]
-pub struct i32x8(i32, i32, i32, i32, i32, i32, i32, i32);
-#[repr(simd)]
-pub struct i64x4(i64, i64, i64, i64);
-#[repr(simd)]
-pub struct f32x8(f32, f32, f32, f32, f32, f32, f32, f32);
-#[repr(simd)]
-pub struct f64x4(f64, f64, f64, f64);
-
-#[repr(simd)]
-pub struct i8x64(
- i8,
- i8,
- i8,
- i8,
- i8,
- i8,
- i8,
- i8,
- i8,
- i8,
- i8,
- i8,
- i8,
- i8,
- i8,
- i8,
- i8,
- i8,
- i8,
- i8,
- i8,
- i8,
- i8,
- i8,
- i8,
- i8,
- i8,
- i8,
- i8,
- i8,
- i8,
- i8,
- i8,
- i8,
- i8,
- i8,
- i8,
- i8,
- i8,
- i8,
- i8,
- i8,
- i8,
- i8,
- i8,
- i8,
- i8,
- i8,
- i8,
- i8,
- i8,
- i8,
- i8,
- i8,
- i8,
- i8,
- i8,
- i8,
- i8,
- i8,
- i8,
- i8,
- i8,
- i8,
-);
-#[repr(simd)]
-pub struct i16x32(
- i16,
- i16,
- i16,
- i16,
- i16,
- i16,
- i16,
- i16,
- i16,
- i16,
- i16,
- i16,
- i16,
- i16,
- i16,
- i16,
- i16,
- i16,
- i16,
- i16,
- i16,
- i16,
- i16,
- i16,
- i16,
- i16,
- i16,
- i16,
- i16,
- i16,
- i16,
- i16,
-);
-#[repr(simd)]
-pub struct i32x16(i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32);
-#[repr(simd)]
-pub struct i64x8(i64, i64, i64, i64, i64, i64, i64, i64);
-#[repr(simd)]
-pub struct f32x16(f32, f32, f32, f32, f32, f32, f32, f32, f32, f32, f32, f32, f32, f32, f32, f32);
-#[repr(simd)]
-pub struct f64x8(f64, f64, f64, f64, f64, f64, f64, f64);
-
-impl Copy for i8 {}
-impl Copy for i16 {}
-impl Copy for i32 {}
-impl Copy for f32 {}
-impl Copy for i64 {}
-impl Copy for f64 {}
-impl Copy for ptr {}
-impl Copy for i8x16 {}
-impl Copy for i16x8 {}
-impl Copy for i32x4 {}
-impl Copy for i64x2 {}
-impl Copy for f32x4 {}
-impl Copy for f64x2 {}
-impl Copy for i8x32 {}
-impl Copy for i16x16 {}
-impl Copy for i32x8 {}
-impl Copy for i64x4 {}
-impl Copy for f32x8 {}
-impl Copy for f64x4 {}
-impl Copy for i8x64 {}
-impl Copy for i16x32 {}
-impl Copy for i32x16 {}
-impl Copy for i64x8 {}
-impl Copy for f32x16 {}
-impl Copy for f64x8 {}
-
-extern "C" {
- fn extern_func();
- static extern_static: u8;
-}
-
-// CHECK-LABEL: sym_fn:
-// CHECK: #APP
-// CHECK: call extern_func
-// CHECK: #NO_APP
-#[no_mangle]
-pub unsafe fn sym_fn() {
- asm!("call {}", sym extern_func);
-}
-
-// CHECK-LABEL: sym_static:
-// CHECK: #APP
-// CHECK: mov al, byte ptr [extern_static]
-// CHECK: #NO_APP
-#[no_mangle]
-pub unsafe fn sym_static() {
- asm!("mov al, byte ptr [{}]", sym extern_static);
-}
-
-macro_rules! check {
- ($func:ident $ty:ident $class:ident $mov:literal) => {
- #[no_mangle]
- pub unsafe fn $func(x: $ty) -> $ty {
- // Hack to avoid function merging
- extern "Rust" {
- fn dont_merge(s: &str);
- }
- dont_merge(stringify!($func));
-
- let y;
- asm!(concat!($mov, " {}, {}"), lateout($class) y, in($class) x);
- y
- }
- };
-}
-
-macro_rules! check_reg {
- ($func:ident $ty:ident $reg:tt $mov:literal) => {
- #[no_mangle]
- pub unsafe fn $func(x: $ty) -> $ty {
- // Hack to avoid function merging
- extern "Rust" {
- fn dont_merge(s: &str);
- }
- dont_merge(stringify!($func));
-
- let y;
- asm!(concat!($mov, " ", $reg, ", ", $reg), lateout($reg) y, in($reg) x);
- y
- }
- };
-}
-
-// CHECK-LABEL: reg_i16:
-// CHECK: #APP
-// x86_64: mov r{{[a-z0-9]+}}, r{{[a-z0-9]+}}
-// i686: mov e{{[a-z0-9]+}}, e{{[a-z0-9]+}}
-// CHECK: #NO_APP
-check!(reg_i16 i16 reg "mov");
-
-// CHECK-LABEL: reg_i32:
-// CHECK: #APP
-// x86_64: mov r{{[a-z0-9]+}}, r{{[a-z0-9]+}}
-// i686: mov e{{[a-z0-9]+}}, e{{[a-z0-9]+}}
-// CHECK: #NO_APP
-check!(reg_i32 i32 reg "mov");
-
-// CHECK-LABEL: reg_f32:
-// CHECK: #APP
-// x86_64: mov r{{[a-z0-9]+}}, r{{[a-z0-9]+}}
-// i686: mov e{{[a-z0-9]+}}, e{{[a-z0-9]+}}
-// CHECK: #NO_APP
-check!(reg_f32 f32 reg "mov");
-
-// x86_64-LABEL: reg_i64:
-// x86_64: #APP
-// x86_64: mov r{{[a-z0-9]+}}, r{{[a-z0-9]+}}
-// x86_64: #NO_APP
-#[cfg(x86_64)]
-check!(reg_i64 i64 reg "mov");
-
-// x86_64-LABEL: reg_f64:
-// x86_64: #APP
-// x86_64: mov r{{[a-z0-9]+}}, r{{[a-z0-9]+}}
-// x86_64: #NO_APP
-#[cfg(x86_64)]
-check!(reg_f64 f64 reg "mov");
-
-// CHECK-LABEL: reg_ptr:
-// CHECK: #APP
-// x86_64: mov r{{[a-z0-9]+}}, r{{[a-z0-9]+}}
-// i686: mov e{{[a-z0-9]+}}, e{{[a-z0-9]+}}
-// CHECK: #NO_APP
-check!(reg_ptr ptr reg "mov");
-
-// CHECK-LABEL: reg_abcd_i16:
-// CHECK: #APP
-// x86_64: mov r{{[a-z0-9]+}}, r{{[a-z0-9]+}}
-// i686: mov e{{[a-z0-9]+}}, e{{[a-z0-9]+}}
-// CHECK: #NO_APP
-check!(reg_abcd_i16 i16 reg_abcd "mov");
-
-// CHECK-LABEL: reg_abcd_i32:
-// CHECK: #APP
-// x86_64: mov r{{[a-z0-9]+}}, r{{[a-z0-9]+}}
-// i686: mov e{{[a-z0-9]+}}, e{{[a-z0-9]+}}
-// CHECK: #NO_APP
-check!(reg_abcd_i32 i32 reg_abcd "mov");
-
-// CHECK-LABEL: reg_abcd_f32:
-// CHECK: #APP
-// x86_64: mov r{{[a-z0-9]+}}, r{{[a-z0-9]+}}
-// i686: mov e{{[a-z0-9]+}}, e{{[a-z0-9]+}}
-// CHECK: #NO_APP
-check!(reg_abcd_f32 f32 reg_abcd "mov");
-
-// x86_64-LABEL: reg_abcd_i64:
-// x86_64: #APP
-// x86_64: mov r{{[a-z0-9]+}}, r{{[a-z0-9]+}}
-// x86_64: #NO_APP
-#[cfg(x86_64)]
-check!(reg_abcd_i64 i64 reg_abcd "mov");
-
-// x86_64-LABEL: reg_abcd_f64:
-// x86_64: #APP
-// x86_64: mov r{{[a-z0-9]+}}, r{{[a-z0-9]+}}
-// x86_64: #NO_APP
-#[cfg(x86_64)]
-check!(reg_abcd_f64 f64 reg_abcd "mov");
-
-// CHECK-LABEL: reg_abcd_ptr:
-// CHECK: #APP
-// x86_64: mov r{{[a-z0-9]+}}, r{{[a-z0-9]+}}
-// i686: mov e{{[a-z0-9]+}}, e{{[a-z0-9]+}}
-// CHECK: #NO_APP
-check!(reg_abcd_ptr ptr reg_abcd "mov");
-
-// CHECK-LABEL: reg_byte:
-// CHECK: #APP
-// CHECK: mov {{[a-z0-9]+}}, {{[a-z0-9]+}}
-// CHECK: #NO_APP
-check!(reg_byte i8 reg_byte "mov");
-
-// CHECK-LABEL: xmm_reg_i32:
-// CHECK: #APP
-// CHECK: movaps xmm{{[0-9]+}}, xmm{{[0-9]+}}
-// CHECK: #NO_APP
-check!(xmm_reg_i32 i32 xmm_reg "movaps");
-
-// CHECK-LABEL: xmm_reg_f32:
-// CHECK: #APP
-// CHECK: movaps xmm{{[0-9]+}}, xmm{{[0-9]+}}
-// CHECK: #NO_APP
-check!(xmm_reg_f32 f32 xmm_reg "movaps");
-
-// CHECK-LABEL: xmm_reg_i64:
-// CHECK: #APP
-// CHECK: movaps xmm{{[0-9]+}}, xmm{{[0-9]+}}
-// CHECK: #NO_APP
-check!(xmm_reg_i64 i64 xmm_reg "movaps");
-
-// CHECK-LABEL: xmm_reg_f64:
-// CHECK: #APP
-// CHECK: movaps xmm{{[0-9]+}}, xmm{{[0-9]+}}
-// CHECK: #NO_APP
-check!(xmm_reg_f64 f64 xmm_reg "movaps");
-
-// CHECK-LABEL: xmm_reg_ptr:
-// CHECK: #APP
-// CHECK: movaps xmm{{[0-9]+}}, xmm{{[0-9]+}}
-// CHECK: #NO_APP
-check!(xmm_reg_ptr ptr xmm_reg "movaps");
-
-// CHECK-LABEL: xmm_reg_i8x16:
-// CHECK: #APP
-// CHECK: movaps xmm{{[0-9]+}}, xmm{{[0-9]+}}
-// CHECK: #NO_APP
-check!(xmm_reg_i8x16 i8x16 xmm_reg "movaps");
-
-// CHECK-LABEL: xmm_reg_i16x8:
-// CHECK: #APP
-// CHECK: movaps xmm{{[0-9]+}}, xmm{{[0-9]+}}
-// CHECK: #NO_APP
-check!(xmm_reg_i16x8 i16x8 xmm_reg "movaps");
-
-// CHECK-LABEL: xmm_reg_i32x4:
-// CHECK: #APP
-// CHECK: movaps xmm{{[0-9]+}}, xmm{{[0-9]+}}
-// CHECK: #NO_APP
-check!(xmm_reg_i32x4 i32x4 xmm_reg "movaps");
-
-// CHECK-LABEL: xmm_reg_i64x2:
-// CHECK: #APP
-// CHECK: movaps xmm{{[0-9]+}}, xmm{{[0-9]+}}
-// CHECK: #NO_APP
-check!(xmm_reg_i64x2 i64x2 xmm_reg "movaps");
-
-// CHECK-LABEL: xmm_reg_f32x4:
-// CHECK: #APP
-// CHECK: movaps xmm{{[0-9]+}}, xmm{{[0-9]+}}
-// CHECK: #NO_APP
-check!(xmm_reg_f32x4 f32x4 xmm_reg "movaps");
-
-// CHECK-LABEL: xmm_reg_f64x2:
-// CHECK: #APP
-// CHECK: movaps xmm{{[0-9]+}}, xmm{{[0-9]+}}
-// CHECK: #NO_APP
-check!(xmm_reg_f64x2 f64x2 xmm_reg "movaps");
-
-// CHECK-LABEL: ymm_reg_i32:
-// CHECK: #APP
-// CHECK: vmovaps ymm{{[0-9]+}}, ymm{{[0-9]+}}
-// CHECK: #NO_APP
-check!(ymm_reg_i32 i32 ymm_reg "vmovaps");
-
-// CHECK-LABEL: ymm_reg_f32:
-// CHECK: #APP
-// CHECK: vmovaps ymm{{[0-9]+}}, ymm{{[0-9]+}}
-// CHECK: #NO_APP
-check!(ymm_reg_f32 f32 ymm_reg "vmovaps");
-
-// CHECK-LABEL: ymm_reg_i64:
-// CHECK: #APP
-// CHECK: vmovaps ymm{{[0-9]+}}, ymm{{[0-9]+}}
-// CHECK: #NO_APP
-check!(ymm_reg_i64 i64 ymm_reg "vmovaps");
-
-// CHECK-LABEL: ymm_reg_f64:
-// CHECK: #APP
-// CHECK: vmovaps ymm{{[0-9]+}}, ymm{{[0-9]+}}
-// CHECK: #NO_APP
-check!(ymm_reg_f64 f64 ymm_reg "vmovaps");
-
-// CHECK-LABEL: ymm_reg_ptr:
-// CHECK: #APP
-// CHECK: vmovaps ymm{{[0-9]+}}, ymm{{[0-9]+}}
-// CHECK: #NO_APP
-check!(ymm_reg_ptr ptr ymm_reg "vmovaps");
-
-// CHECK-LABEL: ymm_reg_i8x16:
-// CHECK: #APP
-// CHECK: vmovaps ymm{{[0-9]+}}, ymm{{[0-9]+}}
-// CHECK: #NO_APP
-check!(ymm_reg_i8x16 i8x16 ymm_reg "vmovaps");
-
-// CHECK-LABEL: ymm_reg_i16x8:
-// CHECK: #APP
-// CHECK: vmovaps ymm{{[0-9]+}}, ymm{{[0-9]+}}
-// CHECK: #NO_APP
-check!(ymm_reg_i16x8 i16x8 ymm_reg "vmovaps");
-
-// CHECK-LABEL: ymm_reg_i32x4:
-// CHECK: #APP
-// CHECK: vmovaps ymm{{[0-9]+}}, ymm{{[0-9]+}}
-// CHECK: #NO_APP
-check!(ymm_reg_i32x4 i32x4 ymm_reg "vmovaps");
-
-// CHECK-LABEL: ymm_reg_i64x2:
-// CHECK: #APP
-// CHECK: vmovaps ymm{{[0-9]+}}, ymm{{[0-9]+}}
-// CHECK: #NO_APP
-check!(ymm_reg_i64x2 i64x2 ymm_reg "vmovaps");
-
-// CHECK-LABEL: ymm_reg_f32x4:
-// CHECK: #APP
-// CHECK: vmovaps ymm{{[0-9]+}}, ymm{{[0-9]+}}
-// CHECK: #NO_APP
-check!(ymm_reg_f32x4 f32x4 ymm_reg "vmovaps");
-
-// CHECK-LABEL: ymm_reg_f64x2:
-// CHECK: #APP
-// CHECK: vmovaps ymm{{[0-9]+}}, ymm{{[0-9]+}}
-// CHECK: #NO_APP
-check!(ymm_reg_f64x2 f64x2 ymm_reg "vmovaps");
-
-// CHECK-LABEL: ymm_reg_i8x32:
-// CHECK: #APP
-// CHECK: vmovaps ymm{{[0-9]+}}, ymm{{[0-9]+}}
-// CHECK: #NO_APP
-check!(ymm_reg_i8x32 i8x32 ymm_reg "vmovaps");
-
-// CHECK-LABEL: ymm_reg_i16x16:
-// CHECK: #APP
-// CHECK: vmovaps ymm{{[0-9]+}}, ymm{{[0-9]+}}
-// CHECK: #NO_APP
-check!(ymm_reg_i16x16 i16x16 ymm_reg "vmovaps");
-
-// CHECK-LABEL: ymm_reg_i32x8:
-// CHECK: #APP
-// CHECK: vmovaps ymm{{[0-9]+}}, ymm{{[0-9]+}}
-// CHECK: #NO_APP
-check!(ymm_reg_i32x8 i32x8 ymm_reg "vmovaps");
-
-// CHECK-LABEL: ymm_reg_i64x4:
-// CHECK: #APP
-// CHECK: vmovaps ymm{{[0-9]+}}, ymm{{[0-9]+}}
-// CHECK: #NO_APP
-check!(ymm_reg_i64x4 i64x4 ymm_reg "vmovaps");
-
-// CHECK-LABEL: ymm_reg_f32x8:
-// CHECK: #APP
-// CHECK: vmovaps ymm{{[0-9]+}}, ymm{{[0-9]+}}
-// CHECK: #NO_APP
-check!(ymm_reg_f32x8 f32x8 ymm_reg "vmovaps");
-
-// CHECK-LABEL: ymm_reg_f64x4:
-// CHECK: #APP
-// CHECK: vmovaps ymm{{[0-9]+}}, ymm{{[0-9]+}}
-// CHECK: #NO_APP
-check!(ymm_reg_f64x4 f64x4 ymm_reg "vmovaps");
-
-// CHECK-LABEL: zmm_reg_i32:
-// CHECK: #APP
-// CHECK: vmovaps zmm{{[0-9]+}}, zmm{{[0-9]+}}
-// CHECK: #NO_APP
-check!(zmm_reg_i32 i32 zmm_reg "vmovaps");
-
-// CHECK-LABEL: zmm_reg_f32:
-// CHECK: #APP
-// CHECK: vmovaps zmm{{[0-9]+}}, zmm{{[0-9]+}}
-// CHECK: #NO_APP
-check!(zmm_reg_f32 f32 zmm_reg "vmovaps");
-
-// CHECK-LABEL: zmm_reg_i64:
-// CHECK: #APP
-// CHECK: vmovaps zmm{{[0-9]+}}, zmm{{[0-9]+}}
-// CHECK: #NO_APP
-check!(zmm_reg_i64 i64 zmm_reg "vmovaps");
-
-// CHECK-LABEL: zmm_reg_f64:
-// CHECK: #APP
-// CHECK: vmovaps zmm{{[0-9]+}}, zmm{{[0-9]+}}
-// CHECK: #NO_APP
-check!(zmm_reg_f64 f64 zmm_reg "vmovaps");
-
-// CHECK-LABEL: zmm_reg_ptr:
-// CHECK: #APP
-// CHECK: vmovaps zmm{{[0-9]+}}, zmm{{[0-9]+}}
-// CHECK: #NO_APP
-check!(zmm_reg_ptr ptr zmm_reg "vmovaps");
-
-// CHECK-LABEL: zmm_reg_i8x16:
-// CHECK: #APP
-// CHECK: vmovaps zmm{{[0-9]+}}, zmm{{[0-9]+}}
-// CHECK: #NO_APP
-check!(zmm_reg_i8x16 i8x16 zmm_reg "vmovaps");
-
-// CHECK-LABEL: zmm_reg_i16x8:
-// CHECK: #APP
-// CHECK: vmovaps zmm{{[0-9]+}}, zmm{{[0-9]+}}
-// CHECK: #NO_APP
-check!(zmm_reg_i16x8 i16x8 zmm_reg "vmovaps");
-
-// CHECK-LABEL: zmm_reg_i32x4:
-// CHECK: #APP
-// CHECK: vmovaps zmm{{[0-9]+}}, zmm{{[0-9]+}}
-// CHECK: #NO_APP
-check!(zmm_reg_i32x4 i32x4 zmm_reg "vmovaps");
-
-// CHECK-LABEL: zmm_reg_i64x2:
-// CHECK: #APP
-// CHECK: vmovaps zmm{{[0-9]+}}, zmm{{[0-9]+}}
-// CHECK: #NO_APP
-check!(zmm_reg_i64x2 i64x2 zmm_reg "vmovaps");
-
-// CHECK-LABEL: zmm_reg_f32x4:
-// CHECK: #APP
-// CHECK: vmovaps zmm{{[0-9]+}}, zmm{{[0-9]+}}
-// CHECK: #NO_APP
-check!(zmm_reg_f32x4 f32x4 zmm_reg "vmovaps");
-
-// CHECK-LABEL: zmm_reg_f64x2:
-// CHECK: #APP
-// CHECK: vmovaps zmm{{[0-9]+}}, zmm{{[0-9]+}}
-// CHECK: #NO_APP
-check!(zmm_reg_f64x2 f64x2 zmm_reg "vmovaps");
-
-// CHECK-LABEL: zmm_reg_i8x32:
-// CHECK: #APP
-// CHECK: vmovaps zmm{{[0-9]+}}, zmm{{[0-9]+}}
-// CHECK: #NO_APP
-check!(zmm_reg_i8x32 i8x32 zmm_reg "vmovaps");
-
-// CHECK-LABEL: zmm_reg_i16x16:
-// CHECK: #APP
-// CHECK: vmovaps zmm{{[0-9]+}}, zmm{{[0-9]+}}
-// CHECK: #NO_APP
-check!(zmm_reg_i16x16 i16x16 zmm_reg "vmovaps");
-
-// CHECK-LABEL: zmm_reg_i32x8:
-// CHECK: #APP
-// CHECK: vmovaps zmm{{[0-9]+}}, zmm{{[0-9]+}}
-// CHECK: #NO_APP
-check!(zmm_reg_i32x8 i32x8 zmm_reg "vmovaps");
-
-// CHECK-LABEL: zmm_reg_i64x4:
-// CHECK: #APP
-// CHECK: vmovaps zmm{{[0-9]+}}, zmm{{[0-9]+}}
-// CHECK: #NO_APP
-check!(zmm_reg_i64x4 i64x4 zmm_reg "vmovaps");
-
-// CHECK-LABEL: zmm_reg_f32x8:
-// CHECK: #APP
-// CHECK: vmovaps zmm{{[0-9]+}}, zmm{{[0-9]+}}
-// CHECK: #NO_APP
-check!(zmm_reg_f32x8 f32x8 zmm_reg "vmovaps");
-
-// CHECK-LABEL: zmm_reg_f64x4:
-// CHECK: #APP
-// CHECK: vmovaps zmm{{[0-9]+}}, zmm{{[0-9]+}}
-// CHECK: #NO_APP
-check!(zmm_reg_f64x4 f64x4 zmm_reg "vmovaps");
-
-// CHECK-LABEL: zmm_reg_i8x64:
-// CHECK: #APP
-// CHECK: vmovaps zmm{{[0-9]+}}, zmm{{[0-9]+}}
-// CHECK: #NO_APP
-check!(zmm_reg_i8x64 i8x64 zmm_reg "vmovaps");
-
-// CHECK-LABEL: zmm_reg_i16x32:
-// CHECK: #APP
-// CHECK: vmovaps zmm{{[0-9]+}}, zmm{{[0-9]+}}
-// CHECK: #NO_APP
-check!(zmm_reg_i16x32 i16x32 zmm_reg "vmovaps");
-
-// CHECK-LABEL: zmm_reg_i32x16:
-// CHECK: #APP
-// CHECK: vmovaps zmm{{[0-9]+}}, zmm{{[0-9]+}}
-// CHECK: #NO_APP
-check!(zmm_reg_i32x16 i32x16 zmm_reg "vmovaps");
-
-// CHECK-LABEL: zmm_reg_i64x8:
-// CHECK: #APP
-// CHECK: vmovaps zmm{{[0-9]+}}, zmm{{[0-9]+}}
-// CHECK: #NO_APP
-check!(zmm_reg_i64x8 i64x8 zmm_reg "vmovaps");
-
-// CHECK-LABEL: zmm_reg_f32x16:
-// CHECK: #APP
-// CHECK: vmovaps zmm{{[0-9]+}}, zmm{{[0-9]+}}
-// CHECK: #NO_APP
-check!(zmm_reg_f32x16 f32x16 zmm_reg "vmovaps");
-
-// CHECK-LABEL: zmm_reg_f64x8:
-// CHECK: #APP
-// CHECK: vmovaps zmm{{[0-9]+}}, zmm{{[0-9]+}}
-// CHECK: #NO_APP
-check!(zmm_reg_f64x8 f64x8 zmm_reg "vmovaps");
-
-// CHECK-LABEL: kreg_i8:
-// CHECK: #APP
-// CHECK: kmovb k{{[0-9]+}}, k{{[0-9]+}}
-// CHECK: #NO_APP
-check!(kreg_i8 i8 kreg "kmovb");
-
-// CHECK-LABEL: kreg_i16:
-// CHECK: #APP
-// CHECK: kmovw k{{[0-9]+}}, k{{[0-9]+}}
-// CHECK: #NO_APP
-check!(kreg_i16 i16 kreg "kmovw");
-
-// CHECK-LABEL: kreg_i32:
-// CHECK: #APP
-// CHECK: kmovd k{{[0-9]+}}, k{{[0-9]+}}
-// CHECK: #NO_APP
-check!(kreg_i32 i32 kreg "kmovd");
-
-// CHECK-LABEL: kreg_i64:
-// CHECK: #APP
-// CHECK: kmovq k{{[0-9]+}}, k{{[0-9]+}}
-// CHECK: #NO_APP
-check!(kreg_i64 i64 kreg "kmovq");
-
-// CHECK-LABEL: kreg_ptr:
-// CHECK: #APP
-// CHECK: kmovq k{{[0-9]+}}, k{{[0-9]+}}
-// CHECK: #NO_APP
-check!(kreg_ptr ptr kreg "kmovq");
-
-// CHECK-LABEL: eax_i16:
-// CHECK: #APP
-// CHECK: mov eax, eax
-// CHECK: #NO_APP
-check_reg!(eax_i16 i16 "eax" "mov");
-
-// CHECK-LABEL: eax_i32:
-// CHECK: #APP
-// CHECK: mov eax, eax
-// CHECK: #NO_APP
-check_reg!(eax_i32 i32 "eax" "mov");
-
-// CHECK-LABEL: eax_f32:
-// CHECK: #APP
-// CHECK: mov eax, eax
-// CHECK: #NO_APP
-check_reg!(eax_f32 f32 "eax" "mov");
-
-// x86_64-LABEL: eax_i64:
-// x86_64: #APP
-// x86_64: mov eax, eax
-// x86_64: #NO_APP
-#[cfg(x86_64)]
-check_reg!(eax_i64 i64 "eax" "mov");
-
-// x86_64-LABEL: eax_f64:
-// x86_64: #APP
-// x86_64: mov eax, eax
-// x86_64: #NO_APP
-#[cfg(x86_64)]
-check_reg!(eax_f64 f64 "eax" "mov");
-
-// CHECK-LABEL: eax_ptr:
-// CHECK: #APP
-// CHECK: mov eax, eax
-// CHECK: #NO_APP
-check_reg!(eax_ptr ptr "eax" "mov");
-
-// i686-LABEL: ah_byte:
-// i686: #APP
-// i686: mov ah, ah
-// i686: #NO_APP
-#[cfg(i686)]
-check_reg!(ah_byte i8 "ah" "mov");
-
-// CHECK-LABEL: xmm0_i32:
-// CHECK: #APP
-// CHECK: movaps xmm0, xmm0
-// CHECK: #NO_APP
-check_reg!(xmm0_i32 i32 "xmm0" "movaps");
-
-// CHECK-LABEL: xmm0_f32:
-// CHECK: #APP
-// CHECK: movaps xmm0, xmm0
-// CHECK: #NO_APP
-check_reg!(xmm0_f32 f32 "xmm0" "movaps");
-
-// CHECK-LABEL: xmm0_i64:
-// CHECK: #APP
-// CHECK: movaps xmm0, xmm0
-// CHECK: #NO_APP
-check_reg!(xmm0_i64 i64 "xmm0" "movaps");
-
-// CHECK-LABEL: xmm0_f64:
-// CHECK: #APP
-// CHECK: movaps xmm0, xmm0
-// CHECK: #NO_APP
-check_reg!(xmm0_f64 f64 "xmm0" "movaps");
-
-// CHECK-LABEL: xmm0_ptr:
-// CHECK: #APP
-// CHECK: movaps xmm0, xmm0
-// CHECK: #NO_APP
-check_reg!(xmm0_ptr ptr "xmm0" "movaps");
-
-// CHECK-LABEL: xmm0_i8x16:
-// CHECK: #APP
-// CHECK: movaps xmm0, xmm0
-// CHECK: #NO_APP
-check_reg!(xmm0_i8x16 i8x16 "xmm0" "movaps");
-
-// CHECK-LABEL: xmm0_i16x8:
-// CHECK: #APP
-// CHECK: movaps xmm0, xmm0
-// CHECK: #NO_APP
-check_reg!(xmm0_i16x8 i16x8 "xmm0" "movaps");
-
-// CHECK-LABEL: xmm0_i32x4:
-// CHECK: #APP
-// CHECK: movaps xmm0, xmm0
-// CHECK: #NO_APP
-check_reg!(xmm0_i32x4 i32x4 "xmm0" "movaps");
-
-// CHECK-LABEL: xmm0_i64x2:
-// CHECK: #APP
-// CHECK: movaps xmm0, xmm0
-// CHECK: #NO_APP
-check_reg!(xmm0_i64x2 i64x2 "xmm0" "movaps");
-
-// CHECK-LABEL: xmm0_f32x4:
-// CHECK: #APP
-// CHECK: movaps xmm0, xmm0
-// CHECK: #NO_APP
-check_reg!(xmm0_f32x4 f32x4 "xmm0" "movaps");
-
-// CHECK-LABEL: xmm0_f64x2:
-// CHECK: #APP
-// CHECK: movaps xmm0, xmm0
-// CHECK: #NO_APP
-check_reg!(xmm0_f64x2 f64x2 "xmm0" "movaps");
-
-// CHECK-LABEL: ymm0_i32:
-// CHECK: #APP
-// CHECK: vmovaps ymm0, ymm0
-// CHECK: #NO_APP
-check_reg!(ymm0_i32 i32 "ymm0" "vmovaps");
-
-// CHECK-LABEL: ymm0_f32:
-// CHECK: #APP
-// CHECK: vmovaps ymm0, ymm0
-// CHECK: #NO_APP
-check_reg!(ymm0_f32 f32 "ymm0" "vmovaps");
-
-// CHECK-LABEL: ymm0_i64:
-// CHECK: #APP
-// CHECK: vmovaps ymm0, ymm0
-// CHECK: #NO_APP
-check_reg!(ymm0_i64 i64 "ymm0" "vmovaps");
-
-// CHECK-LABEL: ymm0_f64:
-// CHECK: #APP
-// CHECK: vmovaps ymm0, ymm0
-// CHECK: #NO_APP
-check_reg!(ymm0_f64 f64 "ymm0" "vmovaps");
-
-// CHECK-LABEL: ymm0_ptr:
-// CHECK: #APP
-// CHECK: vmovaps ymm0, ymm0
-// CHECK: #NO_APP
-check_reg!(ymm0_ptr ptr "ymm0" "vmovaps");
-
-// CHECK-LABEL: ymm0_i8x16:
-// CHECK: #APP
-// CHECK: vmovaps ymm0, ymm0
-// CHECK: #NO_APP
-check_reg!(ymm0_i8x16 i8x16 "ymm0" "vmovaps");
-
-// CHECK-LABEL: ymm0_i16x8:
-// CHECK: #APP
-// CHECK: vmovaps ymm0, ymm0
-// CHECK: #NO_APP
-check_reg!(ymm0_i16x8 i16x8 "ymm0" "vmovaps");
-
-// CHECK-LABEL: ymm0_i32x4:
-// CHECK: #APP
-// CHECK: vmovaps ymm0, ymm0
-// CHECK: #NO_APP
-check_reg!(ymm0_i32x4 i32x4 "ymm0" "vmovaps");
-
-// CHECK-LABEL: ymm0_i64x2:
-// CHECK: #APP
-// CHECK: vmovaps ymm0, ymm0
-// CHECK: #NO_APP
-check_reg!(ymm0_i64x2 i64x2 "ymm0" "vmovaps");
-
-// CHECK-LABEL: ymm0_f32x4:
-// CHECK: #APP
-// CHECK: vmovaps ymm0, ymm0
-// CHECK: #NO_APP
-check_reg!(ymm0_f32x4 f32x4 "ymm0" "vmovaps");
-
-// CHECK-LABEL: ymm0_f64x2:
-// CHECK: #APP
-// CHECK: vmovaps ymm0, ymm0
-// CHECK: #NO_APP
-check_reg!(ymm0_f64x2 f64x2 "ymm0" "vmovaps");
-
-// CHECK-LABEL: ymm0_i8x32:
-// CHECK: #APP
-// CHECK: vmovaps ymm0, ymm0
-// CHECK: #NO_APP
-check_reg!(ymm0_i8x32 i8x32 "ymm0" "vmovaps");
-
-// CHECK-LABEL: ymm0_i16x16:
-// CHECK: #APP
-// CHECK: vmovaps ymm0, ymm0
-// CHECK: #NO_APP
-check_reg!(ymm0_i16x16 i16x16 "ymm0" "vmovaps");
-
-// CHECK-LABEL: ymm0_i32x8:
-// CHECK: #APP
-// CHECK: vmovaps ymm0, ymm0
-// CHECK: #NO_APP
-check_reg!(ymm0_i32x8 i32x8 "ymm0" "vmovaps");
-
-// CHECK-LABEL: ymm0_i64x4:
-// CHECK: #APP
-// CHECK: vmovaps ymm0, ymm0
-// CHECK: #NO_APP
-check_reg!(ymm0_i64x4 i64x4 "ymm0" "vmovaps");
-
-// CHECK-LABEL: ymm0_f32x8:
-// CHECK: #APP
-// CHECK: vmovaps ymm0, ymm0
-// CHECK: #NO_APP
-check_reg!(ymm0_f32x8 f32x8 "ymm0" "vmovaps");
-
-// CHECK-LABEL: ymm0_f64x4:
-// CHECK: #APP
-// CHECK: vmovaps ymm0, ymm0
-// CHECK: #NO_APP
-check_reg!(ymm0_f64x4 f64x4 "ymm0" "vmovaps");
-
-// CHECK-LABEL: zmm0_i32:
-// CHECK: #APP
-// CHECK: vmovaps zmm0, zmm0
-// CHECK: #NO_APP
-check_reg!(zmm0_i32 i32 "zmm0" "vmovaps");
-
-// CHECK-LABEL: zmm0_f32:
-// CHECK: #APP
-// CHECK: vmovaps zmm0, zmm0
-// CHECK: #NO_APP
-check_reg!(zmm0_f32 f32 "zmm0" "vmovaps");
-
-// CHECK-LABEL: zmm0_i64:
-// CHECK: #APP
-// CHECK: vmovaps zmm0, zmm0
-// CHECK: #NO_APP
-check_reg!(zmm0_i64 i64 "zmm0" "vmovaps");
-
-// CHECK-LABEL: zmm0_f64:
-// CHECK: #APP
-// CHECK: vmovaps zmm0, zmm0
-// CHECK: #NO_APP
-check_reg!(zmm0_f64 f64 "zmm0" "vmovaps");
-
-// CHECK-LABEL: zmm0_ptr:
-// CHECK: #APP
-// CHECK: vmovaps zmm0, zmm0
-// CHECK: #NO_APP
-check_reg!(zmm0_ptr ptr "zmm0" "vmovaps");
-
-// CHECK-LABEL: zmm0_i8x16:
-// CHECK: #APP
-// CHECK: vmovaps zmm0, zmm0
-// CHECK: #NO_APP
-check_reg!(zmm0_i8x16 i8x16 "zmm0" "vmovaps");
-
-// CHECK-LABEL: zmm0_i16x8:
-// CHECK: #APP
-// CHECK: vmovaps zmm0, zmm0
-// CHECK: #NO_APP
-check_reg!(zmm0_i16x8 i16x8 "zmm0" "vmovaps");
-
-// CHECK-LABEL: zmm0_i32x4:
-// CHECK: #APP
-// CHECK: vmovaps zmm0, zmm0
-// CHECK: #NO_APP
-check_reg!(zmm0_i32x4 i32x4 "zmm0" "vmovaps");
-
-// CHECK-LABEL: zmm0_i64x2:
-// CHECK: #APP
-// CHECK: vmovaps zmm0, zmm0
-// CHECK: #NO_APP
-check_reg!(zmm0_i64x2 i64x2 "zmm0" "vmovaps");
-
-// CHECK-LABEL: zmm0_f32x4:
-// CHECK: #APP
-// CHECK: vmovaps zmm0, zmm0
-// CHECK: #NO_APP
-check_reg!(zmm0_f32x4 f32x4 "zmm0" "vmovaps");
-
-// CHECK-LABEL: zmm0_f64x2:
-// CHECK: #APP
-// CHECK: vmovaps zmm0, zmm0
-// CHECK: #NO_APP
-check_reg!(zmm0_f64x2 f64x2 "zmm0" "vmovaps");
-
-// CHECK-LABEL: zmm0_i8x32:
-// CHECK: #APP
-// CHECK: vmovaps zmm0, zmm0
-// CHECK: #NO_APP
-check_reg!(zmm0_i8x32 i8x32 "zmm0" "vmovaps");
-
-// CHECK-LABEL: zmm0_i16x16:
-// CHECK: #APP
-// CHECK: vmovaps zmm0, zmm0
-// CHECK: #NO_APP
-check_reg!(zmm0_i16x16 i16x16 "zmm0" "vmovaps");
-
-// CHECK-LABEL: zmm0_i32x8:
-// CHECK: #APP
-// CHECK: vmovaps zmm0, zmm0
-// CHECK: #NO_APP
-check_reg!(zmm0_i32x8 i32x8 "zmm0" "vmovaps");
-
-// CHECK-LABEL: zmm0_i64x4:
-// CHECK: #APP
-// CHECK: vmovaps zmm0, zmm0
-// CHECK: #NO_APP
-check_reg!(zmm0_i64x4 i64x4 "zmm0" "vmovaps");
-
-// CHECK-LABEL: zmm0_f32x8:
-// CHECK: #APP
-// CHECK: vmovaps zmm0, zmm0
-// CHECK: #NO_APP
-check_reg!(zmm0_f32x8 f32x8 "zmm0" "vmovaps");
-
-// CHECK-LABEL: zmm0_f64x4:
-// CHECK: #APP
-// CHECK: vmovaps zmm0, zmm0
-// CHECK: #NO_APP
-check_reg!(zmm0_f64x4 f64x4 "zmm0" "vmovaps");
-
-// CHECK-LABEL: zmm0_i8x64:
-// CHECK: #APP
-// CHECK: vmovaps zmm0, zmm0
-// CHECK: #NO_APP
-check_reg!(zmm0_i8x64 i8x64 "zmm0" "vmovaps");
-
-// CHECK-LABEL: zmm0_i16x32:
-// CHECK: #APP
-// CHECK: vmovaps zmm0, zmm0
-// CHECK: #NO_APP
-check_reg!(zmm0_i16x32 i16x32 "zmm0" "vmovaps");
-
-// CHECK-LABEL: zmm0_i32x16:
-// CHECK: #APP
-// CHECK: vmovaps zmm0, zmm0
-// CHECK: #NO_APP
-check_reg!(zmm0_i32x16 i32x16 "zmm0" "vmovaps");
-
-// CHECK-LABEL: zmm0_i64x8:
-// CHECK: #APP
-// CHECK: vmovaps zmm0, zmm0
-// CHECK: #NO_APP
-check_reg!(zmm0_i64x8 i64x8 "zmm0" "vmovaps");
-
-// CHECK-LABEL: zmm0_f32x16:
-// CHECK: #APP
-// CHECK: vmovaps zmm0, zmm0
-// CHECK: #NO_APP
-check_reg!(zmm0_f32x16 f32x16 "zmm0" "vmovaps");
-
-// CHECK-LABEL: zmm0_f64x8:
-// CHECK: #APP
-// CHECK: vmovaps zmm0, zmm0
-// CHECK: #NO_APP
-check_reg!(zmm0_f64x8 f64x8 "zmm0" "vmovaps");
-
-// CHECK-LABEL: k1_i8:
-// CHECK: #APP
-// CHECK: kmovb k1, k1
-// CHECK: #NO_APP
-check_reg!(k1_i8 i8 "k1" "kmovb");
-
-// CHECK-LABEL: k1_i16:
-// CHECK: #APP
-// CHECK: kmovw k1, k1
-// CHECK: #NO_APP
-check_reg!(k1_i16 i16 "k1" "kmovw");
-
-// CHECK-LABEL: k1_i32:
-// CHECK: #APP
-// CHECK: kmovd k1, k1
-// CHECK: #NO_APP
-check_reg!(k1_i32 i32 "k1" "kmovd");
-
-// CHECK-LABEL: k1_i64:
-// CHECK: #APP
-// CHECK: kmovq k1, k1
-// CHECK: #NO_APP
-check_reg!(k1_i64 i64 "k1" "kmovq");
-
-// CHECK-LABEL: k1_ptr:
-// CHECK: #APP
-// CHECK: kmovq k1, k1
-// CHECK: #NO_APP
-check_reg!(k1_ptr ptr "k1" "kmovq");