1#skip amdgcn-amdhsa-none-baseline-whole-llvm-lld-pic
2#skip amdgcn-amdpal-none-baseline-whole-llvm-lld-pic
3#skip amdgcn-mesa3d-none-baseline-whole-llvm-lld-pic
4
5#skip csky-freestanding-eabi-baseline-whole-llvm-lld-pic
6#skip csky-freestanding-eabihf-baseline-whole-llvm-lld-pic
7#skip csky-linux-eabi-baseline-whole-llvm-lld-pic
8#skip csky-linux-eabihf-baseline-whole-llvm-lld-pic
9#skip csky-linux-gnueabi-baseline-whole-llvm-lld-pic
10#skip csky-linux-gnueabihf-baseline-whole-llvm-lld-pic
11
12#skip nvptx-cuda-none-baseline-whole-llvm-lld-pic
13#skip nvptx-nvcl-none-baseline-whole-llvm-lld-pic
14
15#skip nvptx64-cuda-none-baseline-whole-llvm-lld-pic
16#skip nvptx64-nvcl-none-baseline-whole-llvm-lld-pic
17
18#skip spirv32-opencl-none-baseline-whole-llvm-lld-pic
19#skip spirv32-opengl-none-baseline-whole-llvm-lld-pic
20#skip spirv32-vulkan-none-baseline-whole-llvm-lld-pic
21
22#skip spirv64-amdhsa-none-baseline-whole-llvm-lld-pic
23#skip spirv64-opencl-none-baseline-whole-llvm-lld-pic
24#skip spirv64-vulkan-none-baseline-whole-llvm-lld-pic
25
26#skip x86_64-linux-gnux32-baseline-whole-llvm-new-pic
27#skip x86_64-linux-muslx32-baseline-whole-llvm-new-pic
28#skip x86_64-linux-x32-baseline-whole-llvm-new-pic
29
30#obj {
31--name test -fno-lld -fno-new-linker -ofmt=llvmir
32-Mroot=test.zig
33#}
34
35#write test.zig {
36export fn entry(ptr: *volatile i16) void {
37 ptr.* = 123;
38 ptr.* = 321;
39}
40#}
41#update "volatile"
42#check llvm {
43define #...@test.entry(ptr #...%0) #...{
44#...store volatile i16 123, ptr %0#...
45#...store volatile i16 321, ptr %0#...
46}
47
48#}
49
50#write test.zig {
51export fn entry(ptr: *volatile i16) void {
52 entry2(ptr[0..1]);
53}
54fn entry2(slice: []volatile i16) void {
55 @setRuntimeSafety(false);
56 slice[0] = 123;
57 slice[0] = 321;
58}
59#}
60#update "volatile slice"
61#check llvm {
62define #...@test.entry(#...) #...{
63#...
64}
65
66#...
67define #...@test.entry2(#...) #...{
68#...store volatile i16 123, ptr %#...
69#...store volatile i16 321, ptr %#...
70}
71
72#}