Files
zig/test/llvm/array_to_vector
Alex Rønne Petersen 0d142b9e17 std.Target: remove amdpal and mesa3d OS tags
* mesa3d is for internal use in Mesa's shader compilation pipeline. This never
  really made sense to have in Zig.
* amdpal is for LLPC, part of AMDVLK, which AMD discontinued development of in
  favor of RADV in 2025.

Follow-up work: Removing the amdgcn_cs calling convention.
2026-10-26 11:02:43 +01:00

115 lines
4.4 KiB
Plaintext

#skip amdgcn-amdhsa-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 bpfeb-freestanding-none-baseline-whole-llvm-lld-pic
#skip bpfel-freestanding-none-baseline-whole-llvm-lld-pic
#skip loongarch32-freestanding-none-baseline-whole-llvm-lld-pic
#skip loongarch32-linux-gnu-baseline-whole-llvm-lld-pic
#skip loongarch32-linux-gnuf32-baseline-whole-llvm-lld-pic
#skip loongarch32-linux-gnusf-baseline-whole-llvm-lld-pic
#skip loongarch32-linux-musl-baseline-whole-llvm-lld-pic
#skip loongarch32-linux-muslf32-baseline-whole-llvm-lld-pic
#skip loongarch32-linux-muslsf-baseline-whole-llvm-lld-pic
#skip loongarch32-linux-none-baseline-whole-llvm-lld-pic
#skip loongarch32-uefi-none-baseline-whole-llvm-lld-pic
#skip loongarch64-freestanding-none-baseline-whole-llvm-lld-pic
#skip loongarch64-linux-gnu-baseline-whole-llvm-lld-pic
#skip loongarch64-linux-gnuf32-baseline-whole-llvm-lld-pic
#skip loongarch64-linux-gnusf-baseline-whole-llvm-lld-pic
#skip loongarch64-linux-musl-baseline-whole-llvm-lld-pic
#skip loongarch64-linux-muslf32-baseline-whole-llvm-lld-pic
#skip loongarch64-linux-muslsf-baseline-whole-llvm-lld-pic
#skip loongarch64-linux-none-baseline-whole-llvm-lld-pic
#skip loongarch64-uefi-none-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 riscv32-freestanding-none-baseline-whole-llvm-lld-pic
#skip riscv32-linux-gnu-baseline-whole-llvm-lld-pic
#skip riscv32-linux-musl-baseline-whole-llvm-lld-pic
#skip riscv32-linux-none-baseline-whole-llvm-lld-pic
#skip riscv32-netbsd-none-baseline-whole-llvm-lld-pic
#skip riscv32-rtems-none-baseline-whole-llvm-lld-pic
#skip riscv32-uefi-none-baseline-whole-llvm-lld-pic
#skip riscv32be-freestanding-none-baseline-whole-llvm-lld-pic
#skip riscv64-freebsd-none-baseline-whole-llvm-lld-pic
#skip riscv64-freestanding-none-baseline-whole-llvm-lld-pic
#skip riscv64-fuchsia-none-baseline-whole-llvm-lld-pic
#skip riscv64-haiku-none-baseline-whole-llvm-lld-pic
#skip riscv64-hurd-gnu-baseline-whole-llvm-lld-pic
#skip riscv64-linux-android-baseline-whole-llvm-lld-pic
#skip riscv64-linux-gnu-baseline-whole-llvm-lld-pic
#skip riscv64-linux-musl-baseline-whole-llvm-lld-pic
#skip riscv64-linux-none-baseline-whole-llvm-lld-pic
#skip riscv64-netbsd-none-baseline-whole-llvm-lld-pic
#skip riscv64-openbsd-none-baseline-whole-llvm-lld-pic
#skip riscv64-rtems-none-baseline-whole-llvm-lld-pic
#skip riscv64-serenity-none-baseline-whole-llvm-lld-pic
#skip riscv64-uefi-none-baseline-whole-llvm-lld-pic
#skip riscv64be-freestanding-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(arr: *const [16]u8) @Vector(16, u8) {
return arr.*;
}
#}
#update "one vector load"
#check llvm {
define #...<16 x i8> @test.entry(#...) #...{
#...
%1 = alloca [16 x i8], align 1#...
%3 = load <16 x i8>, ptr %1, align 1#...
ret <16 x i8> %3#...
#}
#write test.zig {
export fn entry(a: *@Vector(8, u8), b: *@Vector(8, u8), src: [*]const u8) void {
const q: @Vector(16, u8) = src[0..16].*;
a.* = @shuffle(u8, q, undefined, @Vector(8, i32){ 0, 1, 2, 3, 4, 5, 6, 7 });
b.* = @shuffle(u8, q, undefined, @Vector(8, i32){ 7, 8, 9, 10, 11, 12, 13, 14 });
}
#}
#update "feeding overlapping shuffles"
#check llvm {
define #...void @test.entry(ptr #...%0, ptr #...%1, #...) #...{
#...
%11 = load <16 x i8>, ptr %#...
%12 = shufflevector <16 x i8> %11, #...
store <8 x i8> %12, ptr %0, align 8#...
%13 = shufflevector <16 x i8> %11, #...
store <8 x i8> %13, ptr %1, align 8#...
ret void#...
}
#}