| //@ add-minicore | 
 | //@ revisions: aarch64 aarch64_fixed_x18 aarch64_no_x18 aarch64_reserve_x18 arm64ec | 
 | //@[aarch64] compile-flags: --target aarch64-unknown-linux-gnu | 
 | //@[aarch64] needs-llvm-components: aarch64 | 
 | //@[aarch64_fixed_x18] compile-flags: --target aarch64-unknown-linux-gnu -Zfixed-x18 | 
 | //@[aarch64_fixed_x18] needs-llvm-components: aarch64 | 
 | //@[aarch64_no_x18] compile-flags: --target aarch64-pc-windows-msvc | 
 | //@[aarch64_no_x18] needs-llvm-components: aarch64 | 
 | // aarch64-unknown-trusty uses aarch64-unknown-unknown-musl which doesn't | 
 | // reserve x18 by default as llvm_target, and pass +reserve-x18 in target-spec. | 
 | //@[aarch64_reserve_x18] compile-flags: --target aarch64-unknown-trusty | 
 | //@[aarch64_reserve_x18] needs-llvm-components: aarch64 | 
 | //@[arm64ec] compile-flags: --target arm64ec-pc-windows-msvc | 
 | //@[arm64ec] needs-llvm-components: aarch64 | 
 | // ignore-tidy-linelength | 
 |  | 
 | #![crate_type = "rlib"] | 
 | #![feature(no_core)] | 
 | #![no_core] | 
 |  | 
 | extern crate minicore; | 
 | use minicore::*; | 
 |  | 
 | // CHECK-LABEL: @cc_clobber | 
 | // CHECK: call void asm sideeffect "", "~{cc}"() | 
 | #[no_mangle] | 
 | pub unsafe fn cc_clobber() { | 
 |     asm!("", options(nostack, nomem)); | 
 | } | 
 |  | 
 | // CHECK-LABEL: @no_clobber | 
 | // CHECK: call void asm sideeffect "", ""() | 
 | #[no_mangle] | 
 | pub unsafe fn no_clobber() { | 
 |     asm!("", options(nostack, nomem, preserves_flags)); | 
 | } | 
 |  | 
 | // CHECK-LABEL: @clobber_abi | 
 | // aarch64: asm sideeffect "", "={w0},={w1},={w2},={w3},={w4},={w5},={w6},={w7},={w8},={w9},={w10},={w11},={w12},={w13},={w14},={w15},={w16},={w17},={w18},={w30},={q0},={q1},={q2},={q3},={q4},={q5},={q6},={q7},={q8},={q9},={q10},={q11},={q12},={q13},={q14},={q15},={q16},={q17},={q18},={q19},={q20},={q21},={q22},={q23},={q24},={q25},={q26},={q27},={q28},={q29},={q30},={q31},~{p0},~{p1},~{p2},~{p3},~{p4},~{p5},~{p6},~{p7},~{p8},~{p9},~{p10},~{p11},~{p12},~{p13},~{p14},~{p15},~{ffr}"() | 
 | // aarch64_fixed_x18: asm sideeffect "", "={w0},={w1},={w2},={w3},={w4},={w5},={w6},={w7},={w8},={w9},={w10},={w11},={w12},={w13},={w14},={w15},={w16},={w17},={w30},={q0},={q1},={q2},={q3},={q4},={q5},={q6},={q7},={q8},={q9},={q10},={q11},={q12},={q13},={q14},={q15},={q16},={q17},={q18},={q19},={q20},={q21},={q22},={q23},={q24},={q25},={q26},={q27},={q28},={q29},={q30},={q31},~{p0},~{p1},~{p2},~{p3},~{p4},~{p5},~{p6},~{p7},~{p8},~{p9},~{p10},~{p11},~{p12},~{p13},~{p14},~{p15},~{ffr}"() | 
 | // aarch64_no_x18: asm sideeffect "", "={w0},={w1},={w2},={w3},={w4},={w5},={w6},={w7},={w8},={w9},={w10},={w11},={w12},={w13},={w14},={w15},={w16},={w17},={w30},={q0},={q1},={q2},={q3},={q4},={q5},={q6},={q7},={q8},={q9},={q10},={q11},={q12},={q13},={q14},={q15},={q16},={q17},={q18},={q19},={q20},={q21},={q22},={q23},={q24},={q25},={q26},={q27},={q28},={q29},={q30},={q31},~{p0},~{p1},~{p2},~{p3},~{p4},~{p5},~{p6},~{p7},~{p8},~{p9},~{p10},~{p11},~{p12},~{p13},~{p14},~{p15},~{ffr}"() | 
 | // aarch64_reserve_x18: asm sideeffect "", "={w0},={w1},={w2},={w3},={w4},={w5},={w6},={w7},={w8},={w9},={w10},={w11},={w12},={w13},={w14},={w15},={w16},={w17},={w30},={q0},={q1},={q2},={q3},={q4},={q5},={q6},={q7},={q8},={q9},={q10},={q11},={q12},={q13},={q14},={q15},={q16},={q17},={q18},={q19},={q20},={q21},={q22},={q23},={q24},={q25},={q26},={q27},={q28},={q29},={q30},={q31},~{p0},~{p1},~{p2},~{p3},~{p4},~{p5},~{p6},~{p7},~{p8},~{p9},~{p10},~{p11},~{p12},~{p13},~{p14},~{p15},~{ffr}"() | 
 | // arm64ec: asm sideeffect "", "={w0},={w1},={w2},={w3},={w4},={w5},={w6},={w7},={w8},={w9},={w10},={w11},={w12},={w15},={w16},={w17},={w30},={q0},={q1},={q2},={q3},={q4},={q5},={q6},={q7},={q8},={q9},={q10},={q11},={q12},={q13},={q14},={q15}"() | 
 | #[no_mangle] | 
 | pub unsafe fn clobber_abi() { | 
 |     asm!("", clobber_abi("C"), options(nostack, nomem, preserves_flags)); | 
 | } |