4
4
5
5
int foo ();
6
6
7
- // CHECK-LABEL: define {{.*}} spir_func void @_Z3barv(
8
- // CHECK-SAME: ) #[[ATTR0 :[0-9]+]] {
7
+ // CHECK-LABEL: define linkonce_odr spir_func void @_Z3barv(
8
+ // CHECK-SAME: ) #[[ATTR2 :[0-9]+]] !srcloc !5 {
9
9
// CHECK-NEXT: entry:
10
10
// CHECK-NEXT: [[A:%.*]] = alloca i32, align 4
11
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]+]]
12
+ // CHECK-NEXT: [[CALL:%.*]] = call spir_func noundef i32 @_Z3foov() #[[ATTR3 :[0-9]+]]
13
13
// CHECK-NEXT: store i32 [[CALL]], ptr addrspace(4) [[A_ASCAST]], align 4
14
14
// CHECK-NEXT: ret void
15
15
//
16
16
void bar () {
17
17
int a = foo ();
18
18
}
19
19
20
- // CHECK-LABEL: define {{.*}} spir_func noundef i32 @_Z3foov(
21
- // CHECK-SAME: ) #[[ATTR0]] {
20
+ // CHECK-LABEL: define linkonce_odr spir_func noundef i32 @_Z3foov(
21
+ // CHECK-SAME: ) #[[ATTR2]] !srcloc !6 {
22
22
// CHECK-NEXT: entry:
23
23
// CHECK-NEXT: [[RETVAL:%.*]] = alloca i32, align 4
24
24
// CHECK-NEXT: [[RETVAL_ASCAST:%.*]] = addrspacecast ptr [[RETVAL]] to ptr addrspace(4)
@@ -33,24 +33,21 @@ __attribute__((sycl_kernel)) void kernel_single_task(const Func &kernelFunc) {
33
33
kernelFunc ();
34
34
}
35
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
- //
47
36
int main () {
48
37
kernel_single_task<class fake_kernel >([] { bar (); });
49
38
return 0 ;
50
39
}
51
40
// .
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 }
41
+ // CHECK: attributes #0 = { convergent mustprogress noinline norecurse nounwind optnone "no-trapping-math"="true" "stack-protector-buffer-size"="8" "sycl-module-id"="{{.*}}clang/test/CodeGenSYCL/function-attrs.cpp" "uniform-work-group-size"="true" }
42
+ // CHECK: attributes #1 = { alwaysinline convergent mustprogress norecurse nounwind "no-trapping-math"="true" "stack-protector-buffer-size"="8" }
43
+ // CHECK: attributes #2 = { convergent mustprogress noinline norecurse nounwind optnone "no-trapping-math"="true" "stack-protector-buffer-size"="8" }
44
+ // CHECK: attributes #3 = { convergent nounwind }
54
45
// .
55
46
// CHECK: !0 = !{i32 1, !"wchar_size", i32 4}
47
+ // CHECK: !1 = !{i32 1, i32 2}
48
+ // CHECK: !2 = !{i32 4, i32 100000}
49
+ // CHECK: !3 = !{i32 {{.*}}}
50
+ // CHECK: !4 = !{}
51
+ // CHECK: !5 = !{i32 {{.*}}}
52
+ // CHECK: !6 = !{i32 {{.*}}}
56
53
// .
0 commit comments