From 0a840f6b4f39885b318b731d2c361415871fc685 Mon Sep 17 00:00:00 2001 From: jinge90 Date: Fri, 14 Nov 2025 11:44:55 +0800 Subject: [PATCH 1/2] [SYCL][Driver] Link Native Bfloat16 device library for WCL AOT Signed-off-by: jinge90 --- clang/lib/Driver/ToolChains/SYCL.cpp | 5 ++- .../test/Driver/sycl-device-lib-bfloat16.cpp | 40 +++++++++++++++++++ 2 files changed, 43 insertions(+), 2 deletions(-) diff --git a/clang/lib/Driver/ToolChains/SYCL.cpp b/clang/lib/Driver/ToolChains/SYCL.cpp index c051255ab7f9c..a266e2037b4c1 100644 --- a/clang/lib/Driver/ToolChains/SYCL.cpp +++ b/clang/lib/Driver/ToolChains/SYCL.cpp @@ -252,7 +252,7 @@ static bool selectBfloatLibs(const llvm::Triple &Triple, const Compilation &C, "intel_gpu_pvc", "intel_gpu_acm_g10", "intel_gpu_acm_g11", "intel_gpu_acm_g12", "intel_gpu_dg2_g10", "intel_gpu_dg2_g11", "intel_dg2_g12", "intel_gpu_bmg_g21", "intel_gpu_lnl_m", - "intel_gpu_ptl_h", "intel_gpu_ptl_u"}; + "intel_gpu_ptl_h", "intel_gpu_ptl_u", "intel_gpu_wcl"}; const llvm::opt::ArgList &Args = C.getArgs(); bool NeedLibs = false; @@ -294,7 +294,8 @@ static bool selectBfloatLibs(const llvm::Triple &Triple, const Compilation &C, auto checkBF = [](StringRef Device) { return Device.starts_with("pvc") || Device.starts_with("ats") || Device.starts_with("dg2") || Device.starts_with("bmg") || - Device.starts_with("lnl") || Device.starts_with("ptl"); + Device.starts_with("lnl") || Device.starts_with("ptl") || + Device.starts_with("wcl"); }; auto checkSpirvJIT = [](StringRef Target) { diff --git a/clang/test/Driver/sycl-device-lib-bfloat16.cpp b/clang/test/Driver/sycl-device-lib-bfloat16.cpp index 0dda961123560..31ea3f9848ced 100644 --- a/clang/test/Driver/sycl-device-lib-bfloat16.cpp +++ b/clang/test/Driver/sycl-device-lib-bfloat16.cpp @@ -30,6 +30,17 @@ // RUN: "-device pvc" %s --sysroot=%S/Inputs/SYCL -### 2>&1 \ // RUN: | FileCheck %s -check-prefix=BFLOAT16-NATIVE +// Test that a wcl AOT compilation uses the native library. +// RUN: %clangxx -fsycl -fsycl-targets=spir64_gen -Xsycl-target-backend \ +// RUN: "-device wcl" %s --sysroot=%S/Inputs/SYCL -### 2>&1 \ +// RUN: | FileCheck %s -check-prefix=BFLOAT16-NATIVE +// RUN: %clangxx -fsycl -fsycl-targets=intel_gpu_wcl %s \ +// RUN: --sysroot=%S/Inputs/SYCL -### 2>&1 \ +// RUN: | FileCheck %s -check-prefix=BFLOAT16-NATIVE +// RUN: %clang_cl -fsycl -fsycl-targets=spir64_gen -Xsycl-target-backend \ +// RUN: "-device wcl" %s --sysroot=%S/Inputs/SYCL -### 2>&1 \ +// RUN: | FileCheck %s -check-prefix=BFLOAT16-NATIVE + // Test that unless all targets support bfloat16, AOT compilation uses the // fallback library. // RUN: %clangxx -fsycl -fsycl-targets=spir64_gen -Xsycl-target-backend \ @@ -147,6 +158,23 @@ // RUN: --sysroot=%S/Inputs/SYCL %s -### 2>&1 \ // RUN: | FileCheck %s -check-prefix=BFLOAT16-NATIVE-NONE +// Test AOT-wcl + JIT compilation uses native libs + no libs +// RUN: %clangxx -fsycl -fsycl-targets=intel_gpu_wcl,spir64 \ +// RUN: --sysroot=%S/Inputs/SYCL %s -### 2>&1 \ +// RUN: | FileCheck %s -check-prefix=BFLOAT16-NATIVE-NONE +// RUN: %clangxx -fsycl -fsycl-targets=intel_gpu_wcl,spirv64 \ +// RUN: --sysroot=%S/Inputs/SYCL %s -### 2>&1 \ +// RUN: | FileCheck %s -check-prefix=BFLOAT16-NATIVE-NONE +// RUN: %clangxx -fsycl -fsycl-targets=intel_gpu_wcl,spir64-unknown-unknown \ +// RUN: --sysroot=%S/Inputs/SYCL %s -### 2>&1 \ +// RUN: | FileCheck %s -check-prefix=BFLOAT16-NATIVE-NONE +// RUN: %clangxx -fsycl -fsycl-targets=intel_gpu_wcl,spirv64-unknown-unknown \ +// RUN: --sysroot=%S/Inputs/SYCL %s -### 2>&1 \ +// RUN: | FileCheck %s -check-prefix=BFLOAT16-NATIVE-NONE +// RUN: %clang_cl -fsycl -fsycl-targets=intel_gpu_wcl,spir64 \ +// RUN: --sysroot=%S/Inputs/SYCL %s -### 2>&1 \ +// RUN: | FileCheck %s -check-prefix=BFLOAT16-NATIVE-NONE + // Test AOT-DG1 + JIT compilation uses native libs + no libs // RUN: %clangxx -fsycl -fsycl-targets=intel_gpu_dg1,spir64 \ // RUN: --sysroot=%S/Inputs/SYCL %s -### 2>&1 \ @@ -291,6 +319,18 @@ // RUN: %clang_cl -fsycl -fsycl-targets=intel_gpu_ptl_h,spir64_gen \ // RUN: --sysroot=%S/Inputs/SYCL -Xsycl-target-backend=spir64_gen "-device dg1" \ // RUN: %s -### 2>&1 | FileCheck %s -check-prefix=BFLOAT16-FALLBACK-FALLBACK + +// Test AOT-wcl + AOT-DG1 specified via different options, uses fallback libs +// RUN: %clangxx -fsycl -fsycl-targets=intel_gpu_wcl,spir64_gen \ +// RUN: --sysroot=%S/Inputs/SYCL -Xsycl-target-backend=spir64_gen "-device dg1" \ +// RUN: %s -### 2>&1 | FileCheck %s -check-prefix=BFLOAT16-FALLBACK-FALLBACK +// RUN: %clangxx -fsycl -fsycl-targets=intel_gpu_dg1,spir64_gen \ +// RUN: --sysroot=%S/Inputs/SYCL -Xsycl-target-backend=spir64_gen "-device wcl" \ +// RUN: %s -### 2>&1 | FileCheck %s -check-prefix=BFLOAT16-FALLBACK-FALLBACK +// RUN: %clang_cl -fsycl -fsycl-targets=intel_gpu_wcl,spir64_gen \ +// RUN: --sysroot=%S/Inputs/SYCL -Xsycl-target-backend=spir64_gen "-device dg1" \ +// RUN: %s -### 2>&1 | FileCheck %s -check-prefix=BFLOAT16-FALLBACK-FALLBACK + // BFLOAT16-NOT: llvm-link{{.*}} "{{.*}}libsycl-{{fallback|native}}-bfloat16.bc" // BFLOAT16-NATIVE: llvm-link{{.*}} "{{.*}}libsycl-native-bfloat16.bc" From ee94ace90cd21a066750e5227750596ca83e5332 Mon Sep 17 00:00:00 2001 From: jinge90 Date: Mon, 17 Nov 2025 15:26:10 +0800 Subject: [PATCH 2/2] clean up clang_cl Signed-off-by: jinge90 --- .../test/Driver/sycl-device-lib-bfloat16.cpp | 146 +++++++++--------- 1 file changed, 73 insertions(+), 73 deletions(-) diff --git a/clang/test/Driver/sycl-device-lib-bfloat16.cpp b/clang/test/Driver/sycl-device-lib-bfloat16.cpp index 31ea3f9848ced..50b2ebf9b455a 100644 --- a/clang/test/Driver/sycl-device-lib-bfloat16.cpp +++ b/clang/test/Driver/sycl-device-lib-bfloat16.cpp @@ -6,17 +6,17 @@ /// ########################################################################### /// Test that no bfloat16 libraries are added in JIT mode. -// RUN: %clangxx -fsycl %s --sysroot=%S/Inputs/SYCL -### 2>&1 \ +// RUN: %clangxx -### -fsycl --sysroot=%S/Inputs/SYCL %s 2>&1 \ // RUN: | FileCheck %s -check-prefix=BFLOAT16 --dump-input=always -// RUN: %clang_cl -fsycl %s --sysroot=%S/Inputs/SYCL -### 2>&1 \ +// RUN: %clang_cl -### -fsycl /clang:--sysroot=%S/Inputs/SYCL -- %s 2>&1 \ // RUN: | FileCheck %s -check-prefix=BFLOAT16 --dump-input=always // Test that no bfloat16 libraries are added in JIT mode with generic target. -// RUN: %clangxx -fsycl -fsycl-targets=spir64 %s \ -// RUN: --sysroot=%S/Inputs/SYCL -### 2>&1 \ +// RUN: %clangxx -### -fsycl -fsycl-targets=spir64 \ +// RUN: --sysroot=%S/Inputs/SYCL %s 2>&1 \ // RUN: | FileCheck %s -check-prefix=BFLOAT16 -// RUN: %clang_cl -fsycl -fsycl-targets=spir64 %s \ -// RUN: --sysroot=%S/Inputs/SYCL -### 2>&1 \ +// RUN: %clang_cl -### -fsycl -fsycl-targets=spir64 \ +// RUN: /clang:--sysroot=%S/Inputs/SYCL -- %s 2>&1 \ // RUN: | FileCheck %s -check-prefix=BFLOAT16 // Test that a PVC AOT compilation uses the native library. @@ -26,8 +26,8 @@ // RUN: %clangxx -fsycl -fsycl-targets=intel_gpu_pvc %s \ // RUN: --sysroot=%S/Inputs/SYCL -### 2>&1 \ // RUN: | FileCheck %s -check-prefix=BFLOAT16-NATIVE -// RUN: %clang_cl -fsycl -fsycl-targets=spir64_gen -Xsycl-target-backend \ -// RUN: "-device pvc" %s --sysroot=%S/Inputs/SYCL -### 2>&1 \ +// RUN: %clang_cl -### -fsycl -fsycl-targets=spir64_gen -Xsycl-target-backend \ +// RUN: "-device pvc" /clang:--sysroot=%S/Inputs/SYCL -- %s 2>&1 \ // RUN: | FileCheck %s -check-prefix=BFLOAT16-NATIVE // Test that a wcl AOT compilation uses the native library. @@ -37,8 +37,8 @@ // RUN: %clangxx -fsycl -fsycl-targets=intel_gpu_wcl %s \ // RUN: --sysroot=%S/Inputs/SYCL -### 2>&1 \ // RUN: | FileCheck %s -check-prefix=BFLOAT16-NATIVE -// RUN: %clang_cl -fsycl -fsycl-targets=spir64_gen -Xsycl-target-backend \ -// RUN: "-device wcl" %s --sysroot=%S/Inputs/SYCL -### 2>&1 \ +// RUN: %clang_cl -### -fsycl -fsycl-targets=spir64_gen -Xsycl-target-backend \ +// RUN: "-device wcl" /clang:--sysroot=%S/Inputs/SYCL -- %s 2>&1 \ // RUN: | FileCheck %s -check-prefix=BFLOAT16-NATIVE // Test that unless all targets support bfloat16, AOT compilation uses the @@ -46,8 +46,8 @@ // RUN: %clangxx -fsycl -fsycl-targets=spir64_gen -Xsycl-target-backend \ // RUN: "-device pvc,gen9" %s --sysroot=%S/Inputs/SYCL -### 2>&1 \ // RUN: | FileCheck %s -check-prefix=BFLOAT16-FALLBACK -// RUN: %clang_cl -fsycl -fsycl-targets=spir64_gen -Xsycl-target-backend \ -// RUN: "-device pvc,gen9" %s --sysroot=%S/Inputs/SYCL -### 2>&1 \ +// RUN: %clang_cl -### -fsycl -fsycl-targets=spir64_gen -Xsycl-target-backend \ +// RUN: "-device pvc,gen9" /clang:--sysroot=%S/Inputs/SYCL -- %s 2>&1 \ // RUN: | FileCheck %s -check-prefix=BFLOAT16-FALLBACK // Test that when all targets support bfloat16, AOT compilation uses the @@ -55,24 +55,24 @@ // RUN: %clangxx -fsycl -fsycl-targets=spir64_gen -Xsycl-target-backend \ // RUN: "-device pvc-sdv,ats-m75" %s --sysroot=%S/Inputs/SYCL -### 2>&1 \ // RUN: | FileCheck %s -check-prefix=BFLOAT16-NATIVE -// RUN: %clang_cl -fsycl -fsycl-targets=spir64_gen -Xsycl-target-backend \ -// RUN: "-device pvc-sdv,ats-m75" %s --sysroot=%S/Inputs/SYCL -### 2>&1 \ +// RUN: %clang_cl -### -fsycl -fsycl-targets=spir64_gen -Xsycl-target-backend \ +// RUN: "-device pvc-sdv,ats-m75" /clang:--sysroot=%S/Inputs/SYCL -- %s 2>&1 \ // RUN: | FileCheck %s -check-prefix=BFLOAT16-NATIVE // Test that a gen9 AOT compilation uses the fallback library. // RUN: %clangxx -fsycl -fsycl-targets=spir64_gen -Xsycl-target-backend \ // RUN: "-device gen9" %s --sysroot=%S/Inputs/SYCL -### 2>&1 \ // RUN: | FileCheck %s -check-prefix=BFLOAT16-FALLBACK -// RUN: %clang_cl -fsycl -fsycl-targets=spir64_gen -Xsycl-target-backend \ -// RUN: "-device gen9" %s --sysroot=%S/Inputs/SYCL -### 2>&1 \ +// RUN: %clang_cl -### -fsycl -fsycl-targets=spir64_gen -Xsycl-target-backend \ +// RUN: "-device gen9" /clang:--sysroot=%S/Inputs/SYCL -- %s 2>&1 \ // RUN: | FileCheck %s -check-prefix=BFLOAT16-FALLBACK // Test that a generic AOT compilation uses the fallback library. // RUN: %clangxx -fsycl -fsycl-targets=spir64_gen -Xsycl-target-backend \ // RUN: "-device *" %s --sysroot=%S/Inputs/SYCL -### 2>&1 \ // RUN: | FileCheck %s -check-prefix=BFLOAT16-FALLBACK -// RUN: %clang_cl -fsycl -fsycl-targets=spir64_gen -Xsycl-target-backend \ -// RUN: "-device *" %s --sysroot=%S/Inputs/SYCL -### 2>&1 \ +// RUN: %clang_cl -### -fsycl -fsycl-targets=spir64_gen -Xsycl-target-backend \ +// RUN: "-device *" /clang:--sysroot=%S/Inputs/SYCL -- %s 2>&1 \ // RUN: | FileCheck %s -check-prefix=BFLOAT16-FALLBACK // Test that a mixed JIT + AOT-PVC compilation uses no libs + fallback libs. @@ -80,9 +80,9 @@ // RUN: -Xsycl-target-backend=spir64_gen "-device pvc" %s \ // RUN: --sysroot=%S/Inputs/SYCL -### 2>&1 \ // RUN: | FileCheck %s -check-prefix=BFLOAT16-NONE-NATIVE -// RUN: %clang_cl -fsycl -fsycl-targets=spir64,spir64_gen \ -// RUN: -Xsycl-target-backend=spir64_gen "-device pvc" %s \ -// RUN: --sysroot=%S/Inputs/SYCL -### 2>&1 \ +// RUN: %clang_cl -### -fsycl -fsycl-targets=spir64,spir64_gen \ +// RUN: -Xsycl-target-backend=spir64_gen "-device pvc" \ +// RUN: /clang:--sysroot=%S/Inputs/SYCL -- %s 2>&1 \ // RUN: | FileCheck %s -check-prefix=BFLOAT16-NONE-NATIVE // Test that a mixed JIT + AOT-Gen9 compilation uses no libs + native libs. @@ -90,9 +90,9 @@ // RUN: -Xsycl-target-backend=spir64_gen "-device gen9" %s \ // RUN: --sysroot=%S/Inputs/SYCL -### 2>&1 \ // RUN: | FileCheck %s -check-prefix=BFLOAT16-NONE-FALLBACK -// RUN: %clang_cl -fsycl -fsycl-targets=spir64,spir64_gen \ -// RUN: -Xsycl-target-backend=spir64_gen "-device gen9" %s \ -// RUN: --sysroot=%S/Inputs/SYCL -### 2>&1 \ +// RUN: %clang_cl -### -fsycl -fsycl-targets=spir64,spir64_gen \ +// RUN: -Xsycl-target-backend=spir64_gen "-device gen9" \ +// RUN: /clang:--sysroot=%S/Inputs/SYCL -- %s 2>&1 \ // RUN: | FileCheck %s -check-prefix=BFLOAT16-NONE-FALLBACK // Test that an AOT-CPU + AOT-PVC compilation fallback + fallback libs. @@ -100,9 +100,9 @@ // RUN: -Xsycl-target-backend=spir64_gen "-device pvc" %s \ // RUN: --sysroot=%S/Inputs/SYCL -### 2>&1 \ // RUN: | FileCheck %s -check-prefix=BFLOAT16-FALLBACK-NATIVE -// RUN: %clang_cl -fsycl -fsycl-targets=spir64_x86_64,spir64_gen \ -// RUN: -Xsycl-target-backend=spir64_gen "-device pvc" %s \ -// RUN: --sysroot=%S/Inputs/SYCL -### 2>&1 \ +// RUN: %clang_cl -### -fsycl -fsycl-targets=spir64_x86_64,spir64_gen \ +// RUN: -Xsycl-target-backend=spir64_gen "-device pvc" \ +// RUN: /clang:--sysroot=%S/Inputs/SYCL -- %s 2>&1 \ // RUN: | FileCheck %s -check-prefix=BFLOAT16-FALLBACK-NATIVE // Test that an AOT-CPU + AOT-Gen9 compilation uses fallback + native libs. @@ -110,9 +110,9 @@ // RUN: -Xsycl-target-backend=spir64_gen "-device gen9" %s \ // RUN: --sysroot=%S/Inputs/SYCL -### 2>&1 \ // RUN: | FileCheck %s -check-prefix=BFLOAT16-FALLBACK-FALLBACK -// RUN: %clang_cl -fsycl -fsycl-targets=spir64_x86_64,spir64_gen \ -// RUN: -Xsycl-target-backend=spir64_gen "-device gen9" %s \ -// RUN: --sysroot=%S/Inputs/SYCL -### 2>&1 \ +// RUN: %clang_cl -### -fsycl -fsycl-targets=spir64_x86_64,spir64_gen \ +// RUN: -Xsycl-target-backend=spir64_gen "-device gen9" \ +// RUN: /clang:--sysroot=%S/Inputs/SYCL -- %s 2>&1 \ // RUN: | FileCheck %s -check-prefix=BFLOAT16-FALLBACK-FALLBACK @@ -120,24 +120,24 @@ // RUN: %clangxx -fsycl -fsycl-targets=intel_gpu_acm_g10 \ // RUN: --sysroot=%S/Inputs/SYCL %s -### 2>&1 \ // RUN: | FileCheck %s -check-prefix=BFLOAT16-NATIVE -// RUN: %clang_cl -fsycl -fsycl-targets=intel_gpu_acm_g10 \ -// RUN: --sysroot=%S/Inputs/SYCL %s -### 2>&1 \ +// RUN: %clang_cl -### -fsycl -fsycl-targets=intel_gpu_acm_g10 \ +// RUN: /clang:--sysroot=%S/Inputs/SYCL -- %s 2>&1 \ // RUN: | FileCheck %s -check-prefix=BFLOAT16-NATIVE // Test AOT-PVC + AOT-DG2 compilation uses native libs + native libs. // RUN: %clangxx -fsycl -fsycl-targets=intel_gpu_pvc,intel_gpu_acm_g10 \ // RUN: --sysroot=%S/Inputs/SYCL %s -### 2>&1 \ // RUN: | FileCheck %s -check-prefix=BFLOAT16-NATIVE-NATIVE -// RUN: %clang_cl -fsycl -fsycl-targets=intel_gpu_pvc,intel_gpu_acm_g10 \ -// RUN: --sysroot=%S/Inputs/SYCL %s -### 2>&1 \ +// RUN: %clang_cl -### -fsycl -fsycl-targets=intel_gpu_pvc,intel_gpu_acm_g10 \ +// RUN: /clang:--sysroot=%S/Inputs/SYCL -- %s 2>&1 \ // RUN: | FileCheck %s -check-prefix=BFLOAT16-NATIVE-NATIVE // Test AOT-PVC + AOT-DG1 compilation uses native libs + native libs. // RUN: %clangxx -fsycl -fsycl-targets=intel_gpu_dg1,intel_gpu_acm_g10 \ // RUN: --sysroot=%S/Inputs/SYCL %s -### 2>&1 \ // RUN: | FileCheck %s -check-prefix=BFLOAT16-FALLBACK-FALLBACK -// RUN: %clang_cl -fsycl -fsycl-targets=intel_gpu_dg1,intel_gpu_acm_g10 \ -// RUN: --sysroot=%S/Inputs/SYCL %s -### 2>&1 \ +// RUN: %clang_cl -### -fsycl -fsycl-targets=intel_gpu_dg1,intel_gpu_acm_g10 \ +// RUN: /clang:--sysroot=%S/Inputs/SYCL -- %s 2>&1 \ // RUN: | FileCheck %s -check-prefix=BFLOAT16-FALLBACK-FALLBACK @@ -154,8 +154,8 @@ // RUN: %clangxx -fsycl -fsycl-targets=intel_gpu_pvc,spirv64-unknown-unknown \ // RUN: --sysroot=%S/Inputs/SYCL %s -### 2>&1 \ // RUN: | FileCheck %s -check-prefix=BFLOAT16-NATIVE-NONE -// RUN: %clang_cl -fsycl -fsycl-targets=intel_gpu_pvc,spir64 \ -// RUN: --sysroot=%S/Inputs/SYCL %s -### 2>&1 \ +// RUN: %clang_cl -### -fsycl -fsycl-targets=intel_gpu_pvc,spir64 \ +// RUN: /clang:--sysroot=%S/Inputs/SYCL -- %s 2>&1 \ // RUN: | FileCheck %s -check-prefix=BFLOAT16-NATIVE-NONE // Test AOT-wcl + JIT compilation uses native libs + no libs @@ -171,8 +171,8 @@ // RUN: %clangxx -fsycl -fsycl-targets=intel_gpu_wcl,spirv64-unknown-unknown \ // RUN: --sysroot=%S/Inputs/SYCL %s -### 2>&1 \ // RUN: | FileCheck %s -check-prefix=BFLOAT16-NATIVE-NONE -// RUN: %clang_cl -fsycl -fsycl-targets=intel_gpu_wcl,spir64 \ -// RUN: --sysroot=%S/Inputs/SYCL %s -### 2>&1 \ +// RUN: %clang_cl -### -fsycl -fsycl-targets=intel_gpu_wcl,spir64 \ +// RUN: /clang:--sysroot=%S/Inputs/SYCL -- %s 2>&1 \ // RUN: | FileCheck %s -check-prefix=BFLOAT16-NATIVE-NONE // Test AOT-DG1 + JIT compilation uses native libs + no libs @@ -188,8 +188,8 @@ // RUN: %clangxx -fsycl -fsycl-targets=intel_gpu_dg1,spirv64-unknown-unknown \ // RUN: --sysroot=%S/Inputs/SYCL %s -### 2>&1 \ // RUN: | FileCheck %s -check-prefix=BFLOAT16-FALLBACK-NONE -// RUN: %clang_cl -fsycl -fsycl-targets=intel_gpu_dg1,spir64 \ -// RUN: --sysroot=%S/Inputs/SYCL %s -### 2>&1 \ +// RUN: %clang_cl -### -fsycl -fsycl-targets=intel_gpu_dg1,spir64 \ +// RUN: /clang:--sysroot=%S/Inputs/SYCL -- %s 2>&1 \ // RUN: | FileCheck %s -check-prefix=BFLOAT16-FALLBACK-NONE // Test AOT-PVC + JIT compilation + AOT-DG2 uses native libs + no libs + native libs @@ -205,8 +205,8 @@ // RUN: %clangxx -fsycl -fsycl-targets=intel_gpu_pvc,spirv64-unknown-unknown,intel_gpu_acm_g10 \ // RUN: --sysroot=%S/Inputs/SYCL %s -### 2>&1 \ // RUN: | FileCheck %s -check-prefix=BFLOAT16-NATIVE-NONE-NATIVE -// RUN: %clang_cl -fsycl -fsycl-targets=intel_gpu_pvc,spir64,intel_gpu_acm_g10 \ -// RUN: --sysroot=%S/Inputs/SYCL %s -### 2>&1 \ +// RUN: %clang_cl -### -fsycl -fsycl-targets=intel_gpu_pvc,spir64,intel_gpu_acm_g10 \ +// RUN: /clang:--sysroot=%S/Inputs/SYCL -- %s 2>&1 \ // RUN: | FileCheck %s -check-prefix=BFLOAT16-NATIVE-NONE-NATIVE // Test AOT-PVC + JIT compilation + AOT-DG1 uses fallback libs + no libs + fallback libs @@ -222,8 +222,8 @@ // RUN: %clangxx -fsycl -fsycl-targets=intel_gpu_pvc,spirv64-unknown-unknown,intel_gpu_dg1 \ // RUN: --sysroot=%S/Inputs/SYCL %s -### 2>&1 \ // RUN: | FileCheck %s -check-prefix=BFLOAT16-FALLBACK-NONE-FALLBACK -// RUN: %clang_cl -fsycl -fsycl-targets=intel_gpu_pvc,spir64,intel_gpu_dg1 \ -// RUN: --sysroot=%S/Inputs/SYCL %s -### 2>&1 \ +// RUN: %clang_cl -### -fsycl -fsycl-targets=intel_gpu_pvc,spir64,intel_gpu_dg1 \ +// RUN: /clang:--sysroot=%S/Inputs/SYCL -- %s 2>&1 \ // RUN: | FileCheck %s -check-prefix=BFLOAT16-FALLBACK-NONE-FALLBACK // Test AOT-PVC + AOT-DG1 specified via different options, uses fallback libs @@ -233,9 +233,9 @@ // RUN: %clangxx -fsycl -fsycl-targets=intel_gpu_dg1,spir64_gen \ // RUN: --sysroot=%S/Inputs/SYCL -Xsycl-target-backend=spir64_gen "-device pvc" \ // RUN: %s -### 2>&1 | FileCheck %s -check-prefix=BFLOAT16-FALLBACK-FALLBACK -// RUN: %clang_cl -fsycl -fsycl-targets=intel_gpu_pvc,spir64_gen \ -// RUN: --sysroot=%S/Inputs/SYCL -Xsycl-target-backend=spir64_gen "-device dg1" \ -// RUN: %s -### 2>&1 | FileCheck %s -check-prefix=BFLOAT16-FALLBACK-FALLBACK +// RUN: %clang_cl -### -fsycl -fsycl-targets=intel_gpu_pvc,spir64_gen \ +// RUN: /clang:--sysroot=%S/Inputs/SYCL -Xsycl-target-backend=spir64_gen "-device dg1" \ +// RUN: -- %s 2>&1 | FileCheck %s -check-prefix=BFLOAT16-FALLBACK-FALLBACK // Test AOT-PVC + AOT-BMG specified via different options, uses native libs // RUN: %clangxx -fsycl -fsycl-targets=intel_gpu_bmg_g21,spir64_gen \ @@ -244,9 +244,9 @@ // RUN: %clangxx -fsycl -fsycl-targets=intel_gpu_pvc,spir64_gen \ // RUN: --sysroot=%S/Inputs/SYCL -Xsycl-target-backend=spir64_gen "-device bmg-g21-a0" \ // RUN: %s -### 2>&1 | FileCheck %s -check-prefix=BFLOAT16-NATIVE-NATIVE -// RUN: %clang_cl -fsycl -fsycl-targets=intel_gpu_bmg_g21,spir64_gen \ -// RUN: --sysroot=%S/Inputs/SYCL -Xsycl-target-backend=spir64_gen "-device pvc" \ -// RUN: %s -### 2>&1 | FileCheck %s -check-prefix=BFLOAT16-NATIVE-NATIVE +// RUN: %clang_cl -### -fsycl -fsycl-targets=intel_gpu_bmg_g21,spir64_gen \ +// RUN: /clang:--sysroot=%S/Inputs/SYCL -Xsycl-target-backend=spir64_gen "-device pvc" \ +// RUN: -- %s 2>&1 | FileCheck %s -check-prefix=BFLOAT16-NATIVE-NATIVE // Test AOT-DG2 + AOT-DG1 specified via different options, uses fallback libs // RUN: %clangxx -fsycl -fsycl-targets=intel_gpu_dg2_g10,spir64_gen \ @@ -255,9 +255,9 @@ // RUN: %clangxx -fsycl -fsycl-targets=intel_gpu_dg1,spir64_gen \ // RUN: --sysroot=%S/Inputs/SYCL -Xsycl-target-backend=spir64_gen "-device dg2_g12" \ // RUN: %s -### 2>&1 | FileCheck %s -check-prefix=BFLOAT16-FALLBACK-FALLBACK -// RUN: %clang_cl -fsycl -fsycl-targets=intel_gpu_dg2_g10,spir64_gen \ -// RUN: --sysroot=%S/Inputs/SYCL -Xsycl-target-backend=spir64_gen "-device dg1" \ -// RUN: %s -### 2>&1 | FileCheck %s -check-prefix=BFLOAT16-FALLBACK-FALLBACK +// RUN: %clang_cl -### -fsycl -fsycl-targets=intel_gpu_dg2_g10,spir64_gen \ +// RUN: /clang:--sysroot=%S/Inputs/SYCL -Xsycl-target-backend=spir64_gen "-device dg1" \ +// RUN: -- %s 2>&1 | FileCheck %s -check-prefix=BFLOAT16-FALLBACK-FALLBACK // Test AOT-PVC + AOT-DG2 specified via different options, uses native libs // RUN: %clangxx -fsycl -fsycl-targets=intel_gpu_dg2_g11,spir64_gen \ @@ -266,9 +266,9 @@ // RUN: %clangxx -fsycl -fsycl-targets=intel_gpu_pvc,spir64_gen \ // RUN: --sysroot=%S/Inputs/SYCL -Xsycl-target-backend=spir64_gen "-device dg2_g12" \ // RUN: %s -### 2>&1 | FileCheck %s -check-prefix=BFLOAT16-NATIVE-NATIVE -// RUN: %clang_cl -fsycl -fsycl-targets=intel_gpu_dg2_g11,spir64_gen \ -// RUN: --sysroot=%S/Inputs/SYCL -Xsycl-target-backend=spir64_gen "-device pvc" \ -// RUN: %s -### 2>&1 | FileCheck %s -check-prefix=BFLOAT16-NATIVE-NATIVE +// RUN: %clang_cl -### -fsycl -fsycl-targets=intel_gpu_dg2_g11,spir64_gen \ +// RUN: /clang:--sysroot=%S/Inputs/SYCL -Xsycl-target-backend=spir64_gen "-device pvc" \ +// RUN: -- %s 2>&1 | FileCheck %s -check-prefix=BFLOAT16-NATIVE-NATIVE // Test AOT-PVC + AOT-LNL specified via different options, uses native libs // RUN: %clangxx -fsycl -fsycl-targets=intel_gpu_lnl_m,spir64_gen \ @@ -277,9 +277,9 @@ // RUN: %clangxx -fsycl -fsycl-targets=intel_gpu_pvc,spir64_gen \ // RUN: --sysroot=%S/Inputs/SYCL -Xsycl-target-backend=spir64_gen "-device lnl_m" \ // RUN: %s -### 2>&1 | FileCheck %s -check-prefix=BFLOAT16-NATIVE-NATIVE -// RUN: %clang_cl -fsycl -fsycl-targets=intel_gpu_lnl_m,spir64_gen \ -// RUN: --sysroot=%S/Inputs/SYCL -Xsycl-target-backend=spir64_gen "-device pvc" \ -// RUN: %s -### 2>&1 | FileCheck %s -check-prefix=BFLOAT16-NATIVE-NATIVE +// RUN: %clang_cl -### -fsycl -fsycl-targets=intel_gpu_lnl_m,spir64_gen \ +// RUN: /clang:--sysroot=%S/Inputs/SYCL -Xsycl-target-backend=spir64_gen "-device pvc" \ +// RUN: -- %s 2>&1 | FileCheck %s -check-prefix=BFLOAT16-NATIVE-NATIVE // Test AOT-LNL + AOT-DG1 specified via different options, uses fallback libs // RUN: %clangxx -fsycl -fsycl-targets=intel_gpu_lnl_m,spir64_gen \ @@ -288,9 +288,9 @@ // RUN: %clangxx -fsycl -fsycl-targets=intel_gpu_dg1,spir64_gen \ // RUN: --sysroot=%S/Inputs/SYCL -Xsycl-target-backend=spir64_gen "-device lnl_m" \ // RUN: %s -### 2>&1 | FileCheck %s -check-prefix=BFLOAT16-FALLBACK-FALLBACK -// RUN: %clang_cl -fsycl -fsycl-targets=intel_gpu_lnl_m,spir64_gen \ -// RUN: --sysroot=%S/Inputs/SYCL -Xsycl-target-backend=spir64_gen "-device dg1" \ -// RUN: %s -### 2>&1 | FileCheck %s -check-prefix=BFLOAT16-FALLBACK-FALLBACK +// RUN: %clang_cl -### -fsycl -fsycl-targets=intel_gpu_lnl_m,spir64_gen \ +// RUN: /clang:--sysroot=%S/Inputs/SYCL -Xsycl-target-backend=spir64_gen "-device dg1" \ +// RUN: -- %s 2>&1 | FileCheck %s -check-prefix=BFLOAT16-FALLBACK-FALLBACK // Test AOT-PTL + AOT-LNL specified via different options, uses native libs // RUN: %clangxx -fsycl -fsycl-targets=intel_gpu_lnl_m,spir64_gen \ @@ -305,9 +305,9 @@ // RUN: %clangxx -fsycl -fsycl-targets=intel_gpu_ptl_u,spir64_gen \ // RUN: --sysroot=%S/Inputs/SYCL -Xsycl-target-backend=spir64_gen "-device lnl_m" \ // RUN: %s -### 2>&1 | FileCheck %s -check-prefix=BFLOAT16-NATIVE-NATIVE -// RUN: %clang_cl -fsycl -fsycl-targets=intel_gpu_lnl_m,spir64_gen \ -// RUN: --sysroot=%S/Inputs/SYCL -Xsycl-target-backend=spir64_gen "-device ptl_h" \ -// RUN: %s -### 2>&1 | FileCheck %s -check-prefix=BFLOAT16-NATIVE-NATIVE +// RUN: %clang_cl -### -fsycl -fsycl-targets=intel_gpu_lnl_m,spir64_gen \ +// RUN: /clang:--sysroot=%S/Inputs/SYCL -Xsycl-target-backend=spir64_gen "-device ptl_h" \ +// RUN: -- %s 2>&1 | FileCheck %s -check-prefix=BFLOAT16-NATIVE-NATIVE // Test AOT-PTL + AOT-DG1 specified via different options, uses fallback libs // RUN: %clangxx -fsycl -fsycl-targets=intel_gpu_ptl_h,spir64_gen \ @@ -316,9 +316,9 @@ // RUN: %clangxx -fsycl -fsycl-targets=intel_gpu_dg1,spir64_gen \ // RUN: --sysroot=%S/Inputs/SYCL -Xsycl-target-backend=spir64_gen "-device ptl_u" \ // RUN: %s -### 2>&1 | FileCheck %s -check-prefix=BFLOAT16-FALLBACK-FALLBACK -// RUN: %clang_cl -fsycl -fsycl-targets=intel_gpu_ptl_h,spir64_gen \ -// RUN: --sysroot=%S/Inputs/SYCL -Xsycl-target-backend=spir64_gen "-device dg1" \ -// RUN: %s -### 2>&1 | FileCheck %s -check-prefix=BFLOAT16-FALLBACK-FALLBACK +// RUN: %clang_cl -### -fsycl -fsycl-targets=intel_gpu_ptl_h,spir64_gen \ +// RUN: /clang:--sysroot=%S/Inputs/SYCL -Xsycl-target-backend=spir64_gen "-device dg1" \ +// RUN: -- %s 2>&1 | FileCheck %s -check-prefix=BFLOAT16-FALLBACK-FALLBACK // Test AOT-wcl + AOT-DG1 specified via different options, uses fallback libs // RUN: %clangxx -fsycl -fsycl-targets=intel_gpu_wcl,spir64_gen \ @@ -327,9 +327,9 @@ // RUN: %clangxx -fsycl -fsycl-targets=intel_gpu_dg1,spir64_gen \ // RUN: --sysroot=%S/Inputs/SYCL -Xsycl-target-backend=spir64_gen "-device wcl" \ // RUN: %s -### 2>&1 | FileCheck %s -check-prefix=BFLOAT16-FALLBACK-FALLBACK -// RUN: %clang_cl -fsycl -fsycl-targets=intel_gpu_wcl,spir64_gen \ -// RUN: --sysroot=%S/Inputs/SYCL -Xsycl-target-backend=spir64_gen "-device dg1" \ -// RUN: %s -### 2>&1 | FileCheck %s -check-prefix=BFLOAT16-FALLBACK-FALLBACK +// RUN: %clang_cl -### -fsycl -fsycl-targets=intel_gpu_wcl,spir64_gen \ +// RUN: /clang:--sysroot=%S/Inputs/SYCL -Xsycl-target-backend=spir64_gen "-device dg1" \ +// RUN: -- %s 2>&1 | FileCheck %s -check-prefix=BFLOAT16-FALLBACK-FALLBACK // BFLOAT16-NOT: llvm-link{{.*}} "{{.*}}libsycl-{{fallback|native}}-bfloat16.bc"