From 566b2762532ea0b4dcd7f85fa9030e006bb66b52 Mon Sep 17 00:00:00 2001 From: "Plyakhin, Yury" Date: Wed, 8 Oct 2025 01:09:27 +0200 Subject: [PATCH 1/2] [NFC][SYCL][CLANG-LINKER-WRAPPER] Add tests for commands run for syclbin Verify commands that clang-linker-wrapper runs when syclbin is used --- clang/test/Driver/sycl-linker-wrapper-win.cpp | 9 +++++++++ clang/test/Driver/sycl-linker-wrapper.cpp | 9 +++++++++ 2 files changed, 18 insertions(+) diff --git a/clang/test/Driver/sycl-linker-wrapper-win.cpp b/clang/test/Driver/sycl-linker-wrapper-win.cpp index 1b312e090d371..5e56a66d925bc 100644 --- a/clang/test/Driver/sycl-linker-wrapper-win.cpp +++ b/clang/test/Driver/sycl-linker-wrapper-win.cpp @@ -142,3 +142,12 @@ // CHK-DEVLINK-CMDS-NEXT: "{{.*}}clang.exe"{{.*}} -c -o {{.*}} [[WRAPPEROUT]].bc // CHK-DEVLINK-CMDS-NEXT: "{{.*}}copy"{{.*}} {{.*}} a.exe // CHK-DEVLINK-CMDS-NOT: "{{.*}}ld" + +// Verify list of commands when syclbin is used +// RUN: clang-linker-wrapper -sycl-device-libraries=%t.devicelib.o -sycl-post-link-options="SYCL_POST_LINK_OPTIONS" --host-triple=x86_64-pc-windows-msvc --linker-path=/usr/bin/ld -o a.exe %t.o --dry-run -syclbin=executable 2>&1 | FileCheck --check-prefix CHK-SYCLBIN-CMDS %s +// CHK-SYCLBIN-CMDS: "{{.*}}spirv-to-ir-wrapper.exe" {{.*}} -o [[FIRSTLLVMLINKIN:.*]].bc --llvm-spirv-opts --spirv-preserve-auxdata --spirv-target-env=SPV-IR --spirv-builtin-format=global +// CHK-SYCLBIN-CMDS-NEXT: "{{.*}}llvm-link.exe" [[FIRSTLLVMLINKIN]].bc -o [[FIRSTLLVMLINKOUT:.*]].bc --suppress-warnings +// CHK-SYCLBIN-CMDS-NEXT: "{{.*}}llvm-link.exe" -only-needed [[FIRSTLLVMLINKOUT]].bc {{.*}}.bc -o [[SECONDLLVMLINKOUT:.*]].bc --suppress-warnings +// CHK-SYCLBIN-CMDS-NEXT: "{{.*}}sycl-post-link.exe" {{.*}} SYCL_POST_LINK_OPTIONS -o [[SYCLPOSTLINKOUT:.*]].table [[SECONDLLVMLINKOUT]].bc +// CHK-SYCLBIN-CMDS-NEXT: "{{.*}}llvm-spirv.exe" {{.*}} -o {{.*}} +// CHK-SYCLBIN-CMDS-NEXT: "{{.*}}copy" {{.*}}.syclbin a.exe diff --git a/clang/test/Driver/sycl-linker-wrapper.cpp b/clang/test/Driver/sycl-linker-wrapper.cpp index e1ca7e1103b59..efd47d528cca1 100644 --- a/clang/test/Driver/sycl-linker-wrapper.cpp +++ b/clang/test/Driver/sycl-linker-wrapper.cpp @@ -228,3 +228,12 @@ // CHK-DEVLINK-CMDS-NEXT: "{{.*}}clang"{{.*}} -c -o [[CLANGOUT:.*]] [[WRAPPEROUT]].bc // CHK-DEVLINK-CMDS-NEXT: "{{.*}}cp"{{.*}} [[CLANGOUT]] a.out // CHK-DEVLINK-CMDS-NOT: "{{.*}}/ld" + +// Verify list of commands when syclbin is used +// RUN: clang-linker-wrapper -sycl-device-libraries=%t.devicelib.o -sycl-post-link-options="SYCL_POST_LINK_OPTIONS" --host-triple=x86_64-unknown-linux-gnu --linker-path=/usr/bin/ld -o a.out %t.o --dry-run -syclbin=executable 2>&1 | FileCheck --check-prefix CHK-SYCLBIN-CMDS %s +// CHK-SYCLBIN-CMDS: "{{.*}}spirv-to-ir-wrapper" {{.*}} -o [[FIRSTLLVMLINKIN:.*]].bc --llvm-spirv-opts --spirv-preserve-auxdata --spirv-target-env=SPV-IR --spirv-builtin-format=global +// CHK-SYCLBIN-CMDS-NEXT: "{{.*}}llvm-link" [[FIRSTLLVMLINKIN]].bc -o [[FIRSTLLVMLINKOUT:.*]].bc --suppress-warnings +// CHK-SYCLBIN-CMDS-NEXT: "{{.*}}llvm-link" -only-needed [[FIRSTLLVMLINKOUT]].bc {{.*}}.bc -o [[SECONDLLVMLINKOUT:.*]].bc --suppress-warnings +// CHK-SYCLBIN-CMDS-NEXT: "{{.*}}sycl-post-link" {{.*}} SYCL_POST_LINK_OPTIONS -o [[SYCLPOSTLINKOUT:.*]].table [[SECONDLLVMLINKOUT]].bc +// CHK-SYCLBIN-CMDS-NEXT: "{{.*}}llvm-spirv" {{.*}} -o {{.*}} +// CHK-SYCLBIN-CMDS-NEXT: "{{.*}}cp" {{.*}}.syclbin a.out From 7e61fd37d4d455be5db9c40172dc369e20a069db Mon Sep 17 00:00:00 2001 From: "Plyakhin, Yury" Date: Wed, 8 Oct 2025 02:40:56 +0200 Subject: [PATCH 2/2] addressed feedback --- clang/test/Driver/sycl-linker-wrapper-win.cpp | 3 +++ clang/test/Driver/sycl-linker-wrapper.cpp | 3 +++ 2 files changed, 6 insertions(+) diff --git a/clang/test/Driver/sycl-linker-wrapper-win.cpp b/clang/test/Driver/sycl-linker-wrapper-win.cpp index 5e56a66d925bc..ea397152fa4d4 100644 --- a/clang/test/Driver/sycl-linker-wrapper-win.cpp +++ b/clang/test/Driver/sycl-linker-wrapper-win.cpp @@ -150,4 +150,7 @@ // CHK-SYCLBIN-CMDS-NEXT: "{{.*}}llvm-link.exe" -only-needed [[FIRSTLLVMLINKOUT]].bc {{.*}}.bc -o [[SECONDLLVMLINKOUT:.*]].bc --suppress-warnings // CHK-SYCLBIN-CMDS-NEXT: "{{.*}}sycl-post-link.exe" {{.*}} SYCL_POST_LINK_OPTIONS -o [[SYCLPOSTLINKOUT:.*]].table [[SECONDLLVMLINKOUT]].bc // CHK-SYCLBIN-CMDS-NEXT: "{{.*}}llvm-spirv.exe" {{.*}} -o {{.*}} +// CHK-SYCLBIN-CMDS-NOT: offload-wrapper: input +// CHK-SYCLBIN-CMDS-NOT: "{{.*}}clang" // CHK-SYCLBIN-CMDS-NEXT: "{{.*}}copy" {{.*}}.syclbin a.exe +// CHK-SYCLBIN-CMDS-NOT: "{{.*}}ld" diff --git a/clang/test/Driver/sycl-linker-wrapper.cpp b/clang/test/Driver/sycl-linker-wrapper.cpp index efd47d528cca1..466314cc885f6 100644 --- a/clang/test/Driver/sycl-linker-wrapper.cpp +++ b/clang/test/Driver/sycl-linker-wrapper.cpp @@ -236,4 +236,7 @@ // CHK-SYCLBIN-CMDS-NEXT: "{{.*}}llvm-link" -only-needed [[FIRSTLLVMLINKOUT]].bc {{.*}}.bc -o [[SECONDLLVMLINKOUT:.*]].bc --suppress-warnings // CHK-SYCLBIN-CMDS-NEXT: "{{.*}}sycl-post-link" {{.*}} SYCL_POST_LINK_OPTIONS -o [[SYCLPOSTLINKOUT:.*]].table [[SECONDLLVMLINKOUT]].bc // CHK-SYCLBIN-CMDS-NEXT: "{{.*}}llvm-spirv" {{.*}} -o {{.*}} +// CHK-SYCLBIN-CMDS-NOT: offload-wrapper: input +// CHK-SYCLBIN-CMDS-NOT: "{{.*}}clang" // CHK-SYCLBIN-CMDS-NEXT: "{{.*}}cp" {{.*}}.syclbin a.out +// CHK-SYCLBIN-CMDS-NOT: "{{.*}}ld"