1
+ // NOTE: Assertions have been autogenerated by utils/update_cc_test_checks.py UTC_ARGS: --check-globals --version 3
1
2
// RUN: %clang_cc1 -fsycl-is-device -emit-llvm -disable-llvm-passes \
2
- // RUN: -triple spir64 -fexceptions -emit-llvm %s -o - | FileCheck %s
3
+ // RUN: -triple spir64 -fexceptions -emit-llvm -fno-ident %s -o - | FileCheck %s
3
4
4
5
int foo ();
5
6
6
- // CHECK: define dso_local spir_func void @_Z3barv() [[BAR:#[0-9]+]]
7
- // CHECK: attributes [[BAR]] =
8
- // CHECK-SAME: convergent
9
- // CHECK-SAME: nounwind
7
+ // CHECK-LABEL: define dso_local spir_func void @_Z3barv(
8
+ // CHECK-SAME: ) #[[ATTR0:[0-9]+]] {
9
+ // CHECK-NEXT: entry:
10
+ // CHECK-NEXT: [[A:%.*]] = alloca i32, align 4
11
+ // CHECK-NEXT: [[A_ASCAST:%.*]] = addrspacecast ptr [[A]] to ptr addrspace(4)
12
+ // CHECK-NEXT: [[CALL:%.*]] = call spir_func noundef i32 @_Z3foov() #[[ATTR1:[0-9]+]]
13
+ // CHECK-NEXT: store i32 [[CALL]], ptr addrspace(4) [[A_ASCAST]], align 4
14
+ // CHECK-NEXT: ret void
15
+ //
10
16
void bar () {
11
17
int a = foo ();
12
18
}
13
19
20
+ // CHECK-LABEL: define dso_local spir_func noundef i32 @_Z3foov(
21
+ // CHECK-SAME: ) #[[ATTR0]] {
22
+ // CHECK-NEXT: entry:
23
+ // CHECK-NEXT: [[RETVAL:%.*]] = alloca i32, align 4
24
+ // CHECK-NEXT: [[RETVAL_ASCAST:%.*]] = addrspacecast ptr [[RETVAL]] to ptr addrspace(4)
25
+ // CHECK-NEXT: ret i32 1
26
+ //
14
27
int foo () {
15
28
return 1 ;
16
29
}
@@ -20,7 +33,24 @@ __attribute__((sycl_kernel)) void kernel_single_task(const Func &kernelFunc) {
20
33
kernelFunc ();
21
34
}
22
35
36
+ // CHECK-LABEL: define dso_local noundef i32 @main(
37
+ // CHECK-SAME: ) #[[ATTR0]] {
38
+ // CHECK-NEXT: entry:
39
+ // CHECK-NEXT: [[RETVAL:%.*]] = alloca i32, align 4
40
+ // CHECK-NEXT: [[REF_TMP:%.*]] = alloca [[CLASS_ANON:%.*]], align 1
41
+ // CHECK-NEXT: [[RETVAL_ASCAST:%.*]] = addrspacecast ptr [[RETVAL]] to ptr addrspace(4)
42
+ // CHECK-NEXT: [[REF_TMP_ASCAST:%.*]] = addrspacecast ptr [[REF_TMP]] to ptr addrspace(4)
43
+ // CHECK-NEXT: store i32 0, ptr addrspace(4) [[RETVAL_ASCAST]], align 4
44
+ // CHECK-NEXT: call spir_func void @_Z18kernel_single_taskIZ4mainE11fake_kernelZ4mainEUlvE_EvRKT0_(ptr addrspace(4) noundef align 1 dereferenceable(1) [[REF_TMP_ASCAST]]) #[[ATTR1]]
45
+ // CHECK-NEXT: ret i32 0
46
+ //
23
47
int main () {
24
48
kernel_single_task<class fake_kernel >([] { bar (); });
25
49
return 0 ;
26
50
}
51
+ // .
52
+ // CHECK: attributes #0 = { convergent mustprogress noinline norecurse nounwind optnone "no-trapping-math"="true" "stack-protector-buffer-size"="8" }
53
+ // CHECK: attributes #1 = { convergent nounwind }
54
+ // .
55
+ // CHECK: !0 = !{i32 1, !"wchar_size", i32 4}
56
+ // .
0 commit comments