Skip to content

Commit 9acfa69

Browse files
Update test for all Intel CPUs.
1 parent 7828b8e commit 9acfa69

File tree

4 files changed

+126
-26
lines changed

4 files changed

+126
-26
lines changed

clang/lib/Driver/Driver.cpp

Lines changed: 8 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -1022,7 +1022,7 @@ void Driver::CreateOffloadingDeviceToolChains(Compilation &C,
10221022

10231023
for (const auto &TripleAndArchs : DerivedArchs)
10241024
OpenMPTriples.insert(TripleAndArchs.first());
1025-
} // end of offload-arch
1025+
}
10261026

10271027
for (StringRef Val : OpenMPTriples) {
10281028
llvm::Triple TT(ToolChain::getOpenMPTriple(Val));
@@ -1337,47 +1337,40 @@ void Driver::CreateOffloadingDeviceToolChains(Compilation &C,
13371337
} else if (IsIntelGPUOffloadArch(StringToOffloadArchIntel(Arch))) {
13381338
DerivedArchs["spir64_gen"].insert(Arch);
13391339
} else {
1340-
Diag(clang::diag::err_drv_failed_to_deduce_target_from_arch) << Arch;
1340+
Diag(clang::diag::err_drv_invalid_sycl_target) << Arch;
13411341
return;
13421342
}
13431343
}
13441344
// If the set is empty then we failed to find a native architecture.
13451345
if (Archs.empty()) {
1346-
Diag(clang::diag::err_drv_failed_to_deduce_target_from_arch) << "native";
1346+
Diag(clang::diag::err_drv_invalid_sycl_target) << "native";
13471347
return;
13481348
}
13491349

13501350
for (const auto &TripleAndArchs : DerivedArchs)
13511351
SYCLTriples.insert(TripleAndArchs.first());
13521352

13531353
for (const auto &Val : SYCLTriples) {
1354-
llvm::Triple TT(MakeSYCLDeviceTriple(Val.getKey()));
1355-
std::string NormalizedName = TT.normalize();
1354+
llvm::Triple SYCLTargetTriple(MakeSYCLDeviceTriple(Val.getKey()));
1355+
std::string NormalizedName = SYCLTargetTriple.normalize();
13561356

13571357
// Make sure we don't have a duplicate triple.
13581358
auto Duplicate = FoundNormalizedTriples.find(NormalizedName);
13591359
if (Duplicate != FoundNormalizedTriples.end()) {
1360-
Diag(clang::diag::warn_drv_omp_offload_target_duplicate)
1360+
Diag(clang::diag::warn_drv_sycl_offload_target_duplicate)
13611361
<< Val.getKey() << Duplicate->second;
13621362
continue;
13631363
}
13641364

13651365
// Store the current triple so that we can check for duplicates in the
13661366
// following iterations.
13671367
FoundNormalizedTriples[NormalizedName] = Val.getKey();
1368-
}
1369-
1370-
if (!SYCLTriples.empty()) {
1371-
for (const auto &SYCLTriple : SYCLTriples) {
1372-
llvm::Triple Triple(MakeSYCLDeviceTriple(SYCLTriple.getKey()));
1373-
UniqueSYCLTriplesVec.push_back(Triple);
1374-
}
1368+
UniqueSYCLTriplesVec.push_back(SYCLTargetTriple);
13751369
}
13761370

13771371
addSYCLDefaultTriple(C, UniqueSYCLTriplesVec);
13781372

1379-
} // end of --offload-arch
1380-
else {
1373+
} else {
13811374
// If -fsycl is supplied without -fsycl-targets we will assume SPIR-V.
13821375
// For -fsycl-device-only, we also setup the implied triple as needed.
13831376
if (HasValidSYCLRuntime) {

clang/lib/Driver/ToolChains/SYCL.cpp

Lines changed: 52 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -33,12 +33,63 @@ struct StringToOffloadArchIntelMap {
3333
};
3434

3535
static const StringToOffloadArchIntelMap StringToArchNamesMap[] = {
36+
{"skylake-avx512", OffloadArchIntel::SKYLAKEAVX512},
37+
{"core-avx2", OffloadArchIntel::COREAVX2},
38+
{"corei7-avx", OffloadArchIntel::COREI7AVX},
39+
{"corei7", OffloadArchIntel::COREI7},
40+
{"westmere", OffloadArchIntel::WESTMERE},
41+
{"sandybridge", OffloadArchIntel::SANDYBRIDGE},
42+
{"ivybridge", OffloadArchIntel::IVYBRIDGE},
3643
{"broadwell", OffloadArchIntel::BROADWELL},
3744
{"coffeelake", OffloadArchIntel::COFFEELAKE},
45+
{"alderlake", OffloadArchIntel::ALDERLAKE},
46+
{"skylake", OffloadArchIntel::SKYLAKE},
47+
{"skx", OffloadArchIntel::SKX},
48+
{"cascadelake", OffloadArchIntel::CASCADELAKE},
3849
{"icelake-client", OffloadArchIntel::ICELAKECLIENT},
50+
{"icelake-server", OffloadArchIntel::ICELAKESERVER},
51+
{"sapphirerapids", OffloadArchIntel::SAPPHIRERAPIDS},
52+
{"graniterapids", OffloadArchIntel::GRANITERAPIDS},
53+
// Intel GPU mapping.
3954
{"bdw", OffloadArchIntel::BDW},
55+
{"skl", OffloadArchIntel::SKL},
56+
{"kbl", OffloadArchIntel::KBL},
4057
{"cfl", OffloadArchIntel::CFL},
41-
{"icl", OffloadArchIntel::ICL}};
58+
{"apl", OffloadArchIntel::APL},
59+
{"bxt", OffloadArchIntel::BXT},
60+
{"glk", OffloadArchIntel::GLK},
61+
{"whl", OffloadArchIntel::WHL},
62+
{"aml", OffloadArchIntel::AML},
63+
{"cml", OffloadArchIntel::CML},
64+
{"icllp", OffloadArchIntel::ICLLP},
65+
{"icl", OffloadArchIntel::ICL},
66+
{"ehl", OffloadArchIntel::EHL},
67+
{"jsl", OffloadArchIntel::JSL},
68+
{"tgllp", OffloadArchIntel::TGLLP},
69+
{"tgl", OffloadArchIntel::TGL},
70+
{"rkl", OffloadArchIntel::RKL},
71+
{"adl_s", OffloadArchIntel::ADL_S},
72+
{"rpl_s", OffloadArchIntel::RPL_S},
73+
{"adl_p", OffloadArchIntel::ADL_P},
74+
{"adl_n", OffloadArchIntel::ADL_N},
75+
{"dg1", OffloadArchIntel::DG1},
76+
{"acm_g10", OffloadArchIntel::ACM_G10},
77+
{"dg2_g10", OffloadArchIntel::DG2_G10},
78+
{"acm_g11", OffloadArchIntel::ACM_G11},
79+
{"dg2_g10", OffloadArchIntel::DG2_G10},
80+
{"dg2_g11", OffloadArchIntel::DG2_G11},
81+
{"acm_g12", OffloadArchIntel::ACM_G12},
82+
{"dg2_g12", OffloadArchIntel::DG2_G12},
83+
{"pvc", OffloadArchIntel::PVC},
84+
{"pvc_vg", OffloadArchIntel::PVC_VG},
85+
{"mtl_u", OffloadArchIntel::MTL_U},
86+
{"mtl_s", OffloadArchIntel::MTL_S},
87+
{"arl_u", OffloadArchIntel::ARL_U},
88+
{"arl_s", OffloadArchIntel::ARL_S},
89+
{"mtl_h", OffloadArchIntel::MTL_H},
90+
{"arl_h", OffloadArchIntel::ARL_H},
91+
{"bmg_g21", OffloadArchIntel::BMG_G21},
92+
{"lnl_m", OffloadArchIntel::LNL_M}};
4293

4394
OffloadArchIntel
4495
clang::driver::StringToOffloadArchIntel(llvm::StringRef ArchNameAsString) {

clang/lib/Driver/ToolChains/SYCL.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -64,7 +64,7 @@ enum class OffloadArchIntel {
6464
ACM_G10,
6565
DG2_G10,
6666
ACM_G11,
67-
DG2_GLL,
67+
DG2_G11,
6868
ACM_G12,
6969
DG2_G12,
7070
PVC,
Lines changed: 65 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,73 @@
11
/// Tests the behaviors of using -fsycl --offload-new-driver
2-
// --offload-arch=<intel-gpu-values>.
2+
// --offload-arch=<intel-gpu/cpu-values>.
33

4-
// RUN: %clangxx -### --offload-new-driver -fsycl --offload-arch=bdw %s 2>&1 | \
5-
// RUN: FileCheck %s --check-prefixes=TARGET-TRIPLE,CLANG-OFFLOAD-PACKAGER -DDEV_STR=bdw -DMAC_STR=BDW
4+
// SYCL AOT compilation to Intel CPUs using --offload-arch
65

7-
// RUN: %clangxx -### --offload-new-driver -fsycl --offload-arch=cfl %s 2>&1 | \
8-
// RUN: FileCheck %s --check-prefixes=TARGET-TRIPLE,CLANG-OFFLOAD-PACKAGER -DDEV_STR=cfl -DMAC_STR=CFL
6+
// RUN: %clangxx -### --offload-new-driver -fsycl --offload-arch=broadwell %s 2>&1 | \
7+
// RUN: FileCheck %s --check-prefixes=TARGET-TRIPLE-CPU,CLANG-OFFLOAD-PACKAGER-CPU -DDEV_STR=broadwell
8+
9+
// RUN: %clangxx -### --offload-new-driver -fsycl --offload-arch=coffeelake %s 2>&1 | \
10+
// RUN: FileCheck %s --check-prefixes=TARGET-TRIPLE-CPU,CLANG-OFFLOAD-PACKAGER-CPU -DDEV_STR=coffeelake
11+
12+
// RUN: %clangxx -### --offload-new-driver -fsycl --offload-arch=icelake-client %s 2>&1 | \
13+
// RUN: FileCheck %s --check-prefixes=TARGET-TRIPLE-CPU,CLANG-OFFLOAD-PACKAGER-CPU -DDEV_STR=icelake-client
14+
15+
// RUN: %clangxx -### --offload-new-driver -fsycl --offload-arch=skylake-avx512 %s 2>&1 | \
16+
// RUN: FileCheck %s --check-prefixes=TARGET-TRIPLE-CPU,CLANG-OFFLOAD-PACKAGER-CPU -DDEV_STR=skylake-avx512
17+
18+
// RUN: %clangxx -### --offload-new-driver -fsycl --offload-arch=core-avx2 %s 2>&1 | \
19+
// RUN: FileCheck %s --check-prefixes=TARGET-TRIPLE-CPU,CLANG-OFFLOAD-PACKAGER-CPU -DDEV_STR=core-avx2
20+
21+
// RUN: %clangxx -### --offload-new-driver -fsycl --offload-arch=corei7-avx %s 2>&1 | \
22+
// RUN: FileCheck %s --check-prefixes=TARGET-TRIPLE-CPU,CLANG-OFFLOAD-PACKAGER-CPU -DDEV_STR=corei7-avx
23+
24+
// RUN: %clangxx -### --offload-new-driver -fsycl --offload-arch=corei7 %s 2>&1 | \
25+
// RUN: FileCheck %s --check-prefixes=TARGET-TRIPLE-CPU,CLANG-OFFLOAD-PACKAGER-CPU -DDEV_STR=corei7
26+
27+
// RUN: %clangxx -### --offload-new-driver -fsycl --offload-arch=westmere %s 2>&1 | \
28+
// RUN: FileCheck %s --check-prefixes=TARGET-TRIPLE-CPU,CLANG-OFFLOAD-PACKAGER-CPU -DDEV_STR=westmere
29+
30+
// RUN: %clangxx -### --offload-new-driver -fsycl --offload-arch=sandybridge %s 2>&1 | \
31+
// RUN: FileCheck %s --check-prefixes=TARGET-TRIPLE-CPU,CLANG-OFFLOAD-PACKAGER-CPU -DDEV_STR=sandybridge
32+
33+
// RUN: %clangxx -### --offload-new-driver -fsycl --offload-arch=ivybridge %s 2>&1 | \
34+
// RUN: FileCheck %s --check-prefixes=TARGET-TRIPLE-CPU,CLANG-OFFLOAD-PACKAGER-CPU -DDEV_STR=ivybridge
935

36+
// RUN: %clangxx -### --offload-new-driver -fsycl --offload-arch=alderlake %s 2>&1 | \
37+
// RUN: FileCheck %s --check-prefixes=TARGET-TRIPLE-CPU,CLANG-OFFLOAD-PACKAGER-CPU -DDEV_STR=alderlake
1038

11-
///If Arch is icl, map it to icllp internally to create D__SYCL_TARGET_INTEL_GPU_
39+
// RUN: %clangxx -### --offload-new-driver -fsycl --offload-arch=skylake %s 2>&1 | \
40+
// RUN: FileCheck %s --check-prefixes=TARGET-TRIPLE-CPU,CLANG-OFFLOAD-PACKAGER-CPU -DDEV_STR=skylake
1241

13-
// TARGET-TRIPLE: clang{{.*}} "-triple" "spir64_gen-unknown-unknown"
14-
// TARGET-TRIPLE: "-D__SYCL_TARGET_INTEL_GPU_[[MAC_STR]]__"
15-
// CLANG-OFFLOAD-PACKAGER: clang-offload-packager{{.*}} "--image={{.*}}triple=spir64_gen-unknown-unknown,arch=[[DEV_STR]],kind=sycl"
42+
// RUN: %clangxx -### --offload-new-driver -fsycl --offload-arch=skx %s 2>&1 | \
43+
// RUN: FileCheck %s --check-prefixes=TARGET-TRIPLE-CPU,CLANG-OFFLOAD-PACKAGER-CPU -DDEV_STR=skx
44+
45+
// RUN: %clangxx -### --offload-new-driver -fsycl --offload-arch=cascadelake %s 2>&1 | \
46+
// RUN: FileCheck %s --check-prefixes=TARGET-TRIPLE-CPU,CLANG-OFFLOAD-PACKAGER-CPU -DDEV_STR=cascadelake
47+
48+
// RUN: %clangxx -### --offload-new-driver -fsycl --offload-arch=icelake-server %s 2>&1 | \
49+
// RUN: FileCheck %s --check-prefixes=TARGET-TRIPLE-CPU,CLANG-OFFLOAD-PACKAGER-CPU -DDEV_STR=icelake-server
50+
51+
// RUN: %clangxx -### --offload-new-driver -fsycl --offload-arch=sapphirerapids %s 2>&1 | \
52+
// RUN: FileCheck %s --check-prefixes=TARGET-TRIPLE-CPU,CLANG-OFFLOAD-PACKAGER-CPU -DDEV_STR=sapphirerapids
53+
54+
// RUN: %clangxx -### --offload-new-driver -fsycl --offload-arch=graniterapids %s 2>&1 | \
55+
// RUN: FileCheck %s --check-prefixes=TARGET-TRIPLE-CPU,CLANG-OFFLOAD-PACKAGER-CPU -DDEV_STR=graniterapids
56+
57+
// TARGET-TRIPLE-CPU: clang{{.*}} "-triple" "spir64_x86_64-unknown-unknown"
58+
// TARGET-TRIPLE-CPU: "-D__SYCL_TARGET_INTEL_X86_64__"
59+
// CLANG-OFFLOAD-PACKAGER-CPU: clang-offload-packager{{.*}} "--image={{.*}}triple=spir64_x86_64-unknown-unknown,arch=[[DEV_STR]],kind=sycl"
60+
61+
62+
// SYCL AOT compilation to Intel GPUs using --offload-arch
63+
64+
// RUN: %clangxx -### --offload-new-driver -fsycl --offload-arch=bdw %s 2>&1 | \
65+
// RUN: FileCheck %s --check-prefixes=TARGET-TRIPLE-GPU,CLANG-OFFLOAD-PACKAGER-GPU -DDEV_STR=bdw -DMAC_STR=BDW
66+
67+
// RUN: %clangxx -### --offload-new-driver -fsycl --offload-arch=cfl %s 2>&1 | \
68+
// RUN: FileCheck %s --check-prefixes=TARGET-TRIPLE-GPU,CLANG-OFFLOAD-PACKAGER-GPU -DDEV_STR=cfl -DMAC_STR=CFL
1669

70+
// TARGET-TRIPLE-GPU: clang{{.*}} "-triple" "spir64_gen-unknown-unknown"
71+
// TARGET-TRIPLE-GPU: "-D__SYCL_TARGET_INTEL_GPU_[[MAC_STR]]__"
72+
// CLANG-OFFLOAD-PACKAGER-GPU: clang-offload-packager{{.*}} "--image={{.*}}triple=spir64_gen-unknown-unknown,arch=[[DEV_STR]],kind=sycl"
1773

0 commit comments

Comments
 (0)