1
1
// RUN: %clangxx -fsycl-device-only -fsycl-targets=native_cpu -Xclang -sycl-std=2020 -mllvm -sycl-opt -S -emit-llvm -o - %s | FileCheck %s
2
2
3
3
// Checks that the subhandler is correctly emitted in the module
4
- #include < CL /sycl.hpp>
4
+ #include < sycl /sycl.hpp>
5
5
6
6
#include < cstdlib>
7
7
#include < iostream>
@@ -33,28 +33,26 @@ void test() {
33
33
queue q;
34
34
gen_test<int >(q);
35
35
// CHECK: define weak void @_ZTS6init_aIiE_NativeCPUKernelsubhandler(ptr %0, ptr %1) #2 {
36
- // CHECK-NEXT:entry:
37
- // CHECK-NEXT: %2 = getelementptr %0, ptr %0, i64 0
38
- // CHECK-NEXT: %3 = load ptr, ptr %2, align 8
39
- // CHECK-NEXT: %4 = getelementptr %0, ptr %0, i64 3
40
- // CHECK-NEXT: %5 = load ptr, ptr %4, align 8
41
- // CHECK-NEXT: %6 = getelementptr %0, ptr %0, i64 4
42
- // CHECK-NEXT: %7 = load ptr, ptr %6, align 8
43
- // CHECK-NEXT: %8 = load i32, ptr %7, align 4
44
- // CHECK-NEXT: call void @_ZTS6init_aIiE_NativeCPUKernel_NativeCPUKernel(ptr %3, ptr %5, i32 %8, ptr %1)
36
+ // CHECK: %{{.*}} = getelementptr %0, ptr %0, i64 0
37
+ // CHECK-NEXT: %[[ARG1:.*]] = load ptr, ptr %2, align 8
38
+ // CHECK-NEXT: %{{.*}} = getelementptr %0, ptr %0, i64 3
39
+ // CHECK-NEXT: %[[ARG2:.*]] = load ptr, ptr %4, align 8
40
+ // CHECK-NEXT: %{{.*}} = getelementptr %0, ptr %0, i64 4
41
+ // CHECK-NEXT: %{{.*}} = load ptr, ptr %6, align 8
42
+ // CHECK-NEXT: %[[ARG3:.*]] = load i32, ptr %7, align 4
43
+ // CHECK-NEXT: call void @_ZTS6init_aIiE_NativeCPUKernel_NativeCPUKernel(ptr %[[ARG1]], ptr %[[ARG2]], i32 %[[ARG3]], ptr %1)
45
44
// CHECK-NEXT: ret void
46
45
// CHECK-NEXT:}
47
46
gen_test<float >(q);
48
47
// CHECK: define weak void @_ZTS6init_aIfE_NativeCPUKernelsubhandler(ptr %0, ptr %1) #2 {
49
- // CHECK-NEXT:entry:
50
- // CHECK-NEXT: %2 = getelementptr %0, ptr %0, i64 0
51
- // CHECK-NEXT: %3 = load ptr, ptr %2, align 8
52
- // CHECK-NEXT: %4 = getelementptr %0, ptr %0, i64 3
53
- // CHECK-NEXT: %5 = load ptr, ptr %4, align 8
54
- // CHECK-NEXT: %6 = getelementptr %0, ptr %0, i64 4
55
- // CHECK-NEXT: %7 = load ptr, ptr %6, align 8
56
- // CHECK-NEXT: %8 = load float, ptr %7, align 4
57
- // CHECK-NEXT: call void @_ZTS6init_aIfE_NativeCPUKernel_NativeCPUKernel(ptr %3, ptr %5, float %8, ptr %1)
48
+ // CHECK: %{{.*}} = getelementptr %0, ptr %0, i64 0
49
+ // CHECK-NEXT: %[[ARGF1:.*]] = load ptr, ptr %2, align 8
50
+ // CHECK-NEXT: %{{.*}} = getelementptr %0, ptr %0, i64 3
51
+ // CHECK-NEXT: %[[ARGF2:.*]] = load ptr, ptr %4, align 8
52
+ // CHECK-NEXT: %{{.*}} = getelementptr %0, ptr %0, i64 4
53
+ // CHECK-NEXT: %{{.*}} = load ptr, ptr %6, align 8
54
+ // CHECK-NEXT: %[[ARGF3:.*]] = load float, ptr %7, align 4
55
+ // CHECK-NEXT: call void @_ZTS6init_aIfE_NativeCPUKernel_NativeCPUKernel(ptr %[[ARGF1]], ptr %[[ARGF2]], float %[[ARGF3]], ptr %1)
58
56
// CHECK-NEXT: ret void
59
57
// CHECK-NEXT:}
60
58
@@ -67,15 +65,13 @@ void test() {
67
65
});
68
66
});
69
67
// CHECK:define weak void @_ZTS5Test1_NativeCPUKernelsubhandler(ptr %0, ptr %1) #2 {
70
- // CHECK-NEXT:entry:
71
- // CHECK-NEXT: call void @_ZTS5Test1_NativeCPUKernel_NativeCPUKernel(ptr %1)
68
+ // CHECK: call void @_ZTS5Test1_NativeCPUKernel_NativeCPUKernel(ptr %1)
72
69
// CHECK-NEXT: ret void
73
70
// CHECK-NEXT:}
74
71
75
72
launch<class TestKernel >([]() {});
76
73
// CHECK:define weak void @_ZTSZ4testvE10TestKernel_NativeCPUKernelsubhandler(ptr %0, ptr %1) #2 {
77
- // CHECK-NEXT:entry:
78
- // CHECK-NEXT: call void @_ZTSZ4testvE10TestKernel_NativeCPUKernel_NativeCPUKernel(ptr %1)
74
+ // CHECK: call void @_ZTSZ4testvE10TestKernel_NativeCPUKernel_NativeCPUKernel(ptr %1)
79
75
// CHECK-NEXT: ret void
80
76
// CHECK-NEXT:}
81
77
}
0 commit comments