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 bpfeb-freestanding-none-baseline-whole-llvm-lld-pic
6
7#skip bpfel-freestanding-none-baseline-whole-llvm-lld-pic
8
9#skip csky-freestanding-eabi-baseline-whole-llvm-lld-pic
10#skip csky-freestanding-eabihf-baseline-whole-llvm-lld-pic
11#skip csky-linux-eabi-baseline-whole-llvm-lld-pic
12#skip csky-linux-eabihf-baseline-whole-llvm-lld-pic
13#skip csky-linux-gnueabi-baseline-whole-llvm-lld-pic
14#skip csky-linux-gnueabihf-baseline-whole-llvm-lld-pic
15
16#skip loongarch32-freestanding-none-baseline-whole-llvm-lld-pic
17#skip loongarch32-linux-gnu-baseline-whole-llvm-lld-pic
18#skip loongarch32-linux-gnuf32-baseline-whole-llvm-lld-pic
19#skip loongarch32-linux-gnusf-baseline-whole-llvm-lld-pic
20#skip loongarch32-linux-musl-baseline-whole-llvm-lld-pic
21#skip loongarch32-linux-muslf32-baseline-whole-llvm-lld-pic
22#skip loongarch32-linux-muslsf-baseline-whole-llvm-lld-pic
23#skip loongarch32-linux-none-baseline-whole-llvm-lld-pic
24#skip loongarch32-uefi-none-baseline-whole-llvm-lld-pic
25
26#skip loongarch64-freestanding-none-baseline-whole-llvm-lld-pic
27#skip loongarch64-linux-gnu-baseline-whole-llvm-lld-pic
28#skip loongarch64-linux-gnuf32-baseline-whole-llvm-lld-pic
29#skip loongarch64-linux-gnu-baseline-whole-llvm-lld-pic
30#skip loongarch64-linux-gnuf32-baseline-whole-llvm-lld-pic
31#skip loongarch64-linux-gnusf-baseline-whole-llvm-lld-pic
32#skip loongarch64-linux-musl-baseline-whole-llvm-lld-pic
33#skip loongarch64-linux-muslf32-baseline-whole-llvm-lld-pic
34#skip loongarch64-linux-muslsf-baseline-whole-llvm-lld-pic
35#skip loongarch64-linux-none-baseline-whole-llvm-lld-pic
36#skip loongarch64-uefi-none-baseline-whole-llvm-lld-pic
37
38#skip nvptx-cuda-none-baseline-whole-llvm-lld-pic
39#skip nvptx-nvcl-none-baseline-whole-llvm-lld-pic
40
41#skip nvptx64-cuda-none-baseline-whole-llvm-lld-pic
42#skip nvptx64-nvcl-none-baseline-whole-llvm-lld-pic
43
44#skip riscv32-freestanding-none-baseline-whole-llvm-lld-pic
45#skip riscv32-linux-gnu-baseline-whole-llvm-lld-pic
46#skip riscv32-linux-musl-baseline-whole-llvm-lld-pic
47#skip riscv32-linux-none-baseline-whole-llvm-lld-pic
48#skip riscv32-netbsd-none-baseline-whole-llvm-lld-pic
49#skip riscv32-rtems-none-baseline-whole-llvm-lld-pic
50#skip riscv32-uefi-none-baseline-whole-llvm-lld-pic
51
52#skip riscv32be-freestanding-none-baseline-whole-llvm-lld-pic
53
54#skip riscv64-freebsd-none-baseline-whole-llvm-lld-pic
55#skip riscv64-freestanding-none-baseline-whole-llvm-lld-pic
56#skip riscv64-fuchsia-none-baseline-whole-llvm-lld-pic
57#skip riscv64-haiku-none-baseline-whole-llvm-lld-pic
58#skip riscv64-hurd-gnu-baseline-whole-llvm-lld-pic
59#skip riscv64-linux-android-baseline-whole-llvm-lld-pic
60#skip riscv64-linux-gnu-baseline-whole-llvm-lld-pic
61#skip riscv64-linux-musl-baseline-whole-llvm-lld-pic
62#skip riscv64-linux-none-baseline-whole-llvm-lld-pic
63#skip riscv64-netbsd-none-baseline-whole-llvm-lld-pic
64#skip riscv64-openbsd-none-baseline-whole-llvm-lld-pic
65#skip riscv64-rtems-none-baseline-whole-llvm-lld-pic
66#skip riscv64-serenity-none-baseline-whole-llvm-lld-pic
67#skip riscv64-uefi-none-baseline-whole-llvm-lld-pic
68
69#skip riscv64be-freestanding-none-baseline-whole-llvm-lld-pic
70
71#skip x86_64-linux-gnux32-baseline-whole-llvm-new-pic
72#skip x86_64-linux-muslx32-baseline-whole-llvm-new-pic
73#skip x86_64-linux-x32-baseline-whole-llvm-new-pic
74
75#obj {
76--name test -fno-lld -fno-new-linker -ofmt=llvmir
77-Mroot=test.zig
78#}
79
80#write test.zig {
81export fn foo(a: *bool, b: *align(2) bool) void {
82 const tmp = a.*;
83 a.* = b.*;
84 b.* = tmp;
85}
86#}
87#update
88#check llvm {
89define #...void @test.foo(ptr #...%0, ptr #...%1) #...{
90#...
91 %5 = load i8, ptr %0, align 1#...
92 %6 = trunc nuw i8 %5 to i1#...
93 %8 = load i8, ptr %1, align 2#...
94 %9 = trunc nuw i8 %8 to i1#...
95 %10 = zext i1 %9 to i8#...
96 store i8 %10, ptr %0, align 1#...
97 %11 = zext i1 %6 to i8#...
98 store i8 %11, ptr %1, align 2#...
99 ret void#...
100}
101
102#}