//@ add-minicore
//@ compile-flags: -Copt-level=3 --target x86_64-unknown-linux-gnu
//@ needs-llvm-components: x86

#![crate_type = "rlib"]
#![feature(no_core)]
#![no_core]

// Test that when an inline assembly block specifies `readonly` but not `pure`, a detailed
// `MemoryEffects` is provided to LLVM: this assembly block is not allowed to perform writes,
// but it may have side-effects.

extern crate minicore;
use minicore::*;

pub static mut VAR: i32 = 0;

// CHECK-LABEL: @no_options
// CHECK: call i32 asm
#[no_mangle]
pub unsafe fn no_options() -> i32 {
    VAR = 1;
    let _ignored: i32;
    asm!("mov {0}, 1", out(reg) _ignored);
    VAR
}

// CHECK-LABEL: @readonly_pure
// CHECK-NOT: call i32 asm
#[no_mangle]
pub unsafe fn readonly_pure() -> i32 {
    VAR = 1;
    let _ignored: i32;
    asm!("mov {0}, 1", out(reg) _ignored, options(pure, readonly));
    VAR
}

// CHECK-LABEL: @readonly_not_pure
// CHECK: call i32 asm {{.*}} #[[ATTR:[0-9]+]]
#[no_mangle]
pub unsafe fn readonly_not_pure() -> i32 {
    VAR = 1;
    let _ignored: i32;
    asm!("mov {0}, 1", out(reg) _ignored, options(readonly));
    VAR
}

// CHECK: attributes #[[ATTR]] = { nounwind memory(read, inaccessiblemem: readwrite) }
