#skip amdgcn-amdhsa-none-baseline-whole-llvm-lld-pic
#skip amdgcn-amdpal-none-baseline-whole-llvm-lld-pic
#skip amdgcn-mesa3d-none-baseline-whole-llvm-lld-pic

#skip csky-freestanding-eabi-baseline-whole-llvm-lld-pic
#skip csky-freestanding-eabihf-baseline-whole-llvm-lld-pic
#skip csky-linux-eabi-baseline-whole-llvm-lld-pic
#skip csky-linux-eabihf-baseline-whole-llvm-lld-pic
#skip csky-linux-gnueabi-baseline-whole-llvm-lld-pic
#skip csky-linux-gnueabihf-baseline-whole-llvm-lld-pic

#skip nvptx-cuda-none-baseline-whole-llvm-lld-pic
#skip nvptx-nvcl-none-baseline-whole-llvm-lld-pic

#skip nvptx64-cuda-none-baseline-whole-llvm-lld-pic
#skip nvptx64-nvcl-none-baseline-whole-llvm-lld-pic

#skip spirv32-opencl-none-baseline-whole-llvm-lld-pic
#skip spirv32-opengl-none-baseline-whole-llvm-lld-pic
#skip spirv32-vulkan-none-baseline-whole-llvm-lld-pic

#skip spirv64-amdhsa-none-baseline-whole-llvm-lld-pic
#skip spirv64-opencl-none-baseline-whole-llvm-lld-pic
#skip spirv64-vulkan-none-baseline-whole-llvm-lld-pic

#skip x86_64-linux-gnux32-baseline-whole-llvm-new-pic
#skip x86_64-linux-muslx32-baseline-whole-llvm-new-pic
#skip x86_64-linux-x32-baseline-whole-llvm-new-pic

#obj {
--name test -fno-lld -fno-new-linker -ofmt=llvmir
-Mroot=test.zig
#}

#write test.zig {
export fn entry(ptr: *volatile i16) void {
    ptr.* = 123;
    ptr.* = 321;
}
#}
#update "volatile"
#check llvm {
define #...@test.entry(ptr #...%0) #...{
#...store volatile i16 123, ptr %0#...
#...store volatile i16 321, ptr %0#...
}

#}

#write test.zig {
export fn entry(ptr: *volatile i16) void {
    entry2(ptr[0..1]);
}
fn entry2(slice: []volatile i16) void {
    @setRuntimeSafety(false);
    slice[0] = 123;
    slice[0] = 321;
}
#}
#update "volatile slice"
#check llvm {
define #...@test.entry(#...) #...{
#...
}

#...
define #...@test.entry2(#...) #...{
#...store volatile i16 123, ptr %#...
#...store volatile i16 321, ptr %#...
}

#}
