| 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 { |
| 81 | export 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 { |
| 89 | define #...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 | #} |