Skip to content
This repository was archived by the owner on Mar 28, 2023. It is now read-only.

Commit 44697ec

Browse files
Update SubGroup tests to account for optionality of double (#1241)
While optional kernel features are not fully implemented yet, let's fallback to per-kernel device code split to avoid problem with speculative compilation of all kernels regardless of some of them using optional functionality unsupported by some devices.
1 parent be4717c commit 44697ec

File tree

4 files changed

+26
-14
lines changed

4 files changed

+26
-14
lines changed

SYCL/SubGroup/barrier.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
// RUN: %clangxx -fsycl -fsycl-targets=%sycl_triple %s -o %t.out
1+
// RUN: %clangxx -fsycl -fsycl-targets=%sycl_triple -fsycl-device-code-split=per_kernel %s -o %t.out
22
// RUN: %CPU_RUN_PLACEHOLDER %t.out
33
// RUN: %GPU_RUN_PLACEHOLDER %t.out
44
// RUN: %ACC_RUN_PLACEHOLDER %t.out

SYCL/SubGroup/broadcast_fp64.cpp

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,12 @@
1515

1616
int main() {
1717
queue Queue;
18-
check<double>(Queue);
19-
std::cout << "Test passed." << std::endl;
18+
if (Queue.get_device().has(sycl::aspect::fp64)) {
19+
check<double>(Queue);
20+
std::cout << "Test passed." << std::endl;
21+
} else {
22+
std::cout << "Test skipped because device doesn't support aspect::fp64"
23+
<< std::endl;
24+
}
2025
return 0;
2126
}

SYCL/SubGroup/load_store.cpp

Lines changed: 11 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
// RUN: %clangxx -fsycl -fsycl-targets=%sycl_triple %s -o %t.out
1+
// RUN: %clangxx -fsycl -fsycl-targets=%sycl_triple -fsycl-device-code-split=per_kernel %s -o %t.out
22
// RUN: %CPU_RUN_PLACEHOLDER %t.out
33
// RUN: %GPU_RUN_PLACEHOLDER %t.out
44
// RUN: %ACC_RUN_PLACEHOLDER %t.out
@@ -262,14 +262,16 @@ int main() {
262262
check<aligned_ulong, 4>(Queue);
263263
check<aligned_ulong, 8>(Queue);
264264
check<aligned_ulong, 16>(Queue);
265-
typedef double aligned_double __attribute__((aligned(16)));
266-
check<aligned_double>(Queue);
267-
check<aligned_double, 1>(Queue);
268-
check<aligned_double, 2>(Queue);
269-
check<aligned_double, 3>(Queue);
270-
check<aligned_double, 4>(Queue);
271-
check<aligned_double, 8>(Queue);
272-
check<aligned_double, 16>(Queue);
265+
if (Queue.get_device().has(sycl::aspect::fp64)) {
266+
typedef double aligned_double __attribute__((aligned(16)));
267+
check<aligned_double>(Queue);
268+
check<aligned_double, 1>(Queue);
269+
check<aligned_double, 2>(Queue);
270+
check<aligned_double, 3>(Queue);
271+
check<aligned_double, 4>(Queue);
272+
check<aligned_double, 8>(Queue);
273+
check<aligned_double, 16>(Queue);
274+
}
273275
}
274276
std::cout << "Test passed." << std::endl;
275277
return 0;

SYCL/SubGroup/shuffle_fp64.cpp

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,12 @@
1616

1717
int main() {
1818
queue Queue;
19-
check<double>(Queue);
20-
std::cout << "Test passed." << std::endl;
19+
if (Queue.get_device().has(sycl::aspect::fp64)) {
20+
check<double>(Queue);
21+
std::cout << "Test passed." << std::endl;
22+
} else {
23+
std::cout << "Test skipped because device doesn't support aspect::fp64"
24+
<< std::endl;
25+
}
2126
return 0;
2227
}

0 commit comments

Comments
 (0)