Skip to content

Commit e0251be

Browse files
committed
Add test
1 parent 14d41bb commit e0251be

File tree

2 files changed

+237
-0
lines changed

2 files changed

+237
-0
lines changed

llvm/test/tools/sycl-post-link/assert-property-with-split.ll

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,8 +13,10 @@ target triple = "spir64-unknown-linux-sycldevice"
1313
@_ZL10assert_fmt = internal addrspace(2) constant [85 x i8] c"%s:%d: %s: global id: [%lu,%lu,%lu], local id: [%lu,%lu,%lu] Assertion `%s` failed.\0A\00", align 1
1414

1515
; CHECK: [SYCL/assert used]
16+
; CHECK-NOT: _ZTSZ4mainE11TU0_kernel1
1617
; CHECK-DAG: _ZTSZ4mainE11TU0_kernel0
1718
; CHECK-DAG: _ZTSZ4mainE10TU1_kernel
19+
; CHECK-NOT: _ZTSZ4mainE11TU0_kernel1
1820

1921
define dso_local spir_kernel void @_ZTSZ4mainE11TU0_kernel0() #0 {
2022
entry:
Lines changed: 235 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,235 @@
1+
2+
; RUN: sycl-post-link -split=auto -symbols -S %s -o %t.table
3+
; RUN: FileCheck %s -input-file=%t_0.prop
4+
5+
; SYCL source:
6+
; void foo() {
7+
; assert(0);
8+
; }
9+
; void bar() {
10+
; assert(1);
11+
; }
12+
; void baz() {
13+
; foo();
14+
; }
15+
;
16+
; int main() {
17+
; queue Q;
18+
; Q.submit([&] (handler& CGH) {
19+
; CGH.parallel_for<class TheKernel>(range<2>{2, 10}, [=](item<2> It) {
20+
; foo();
21+
; });
22+
; CGH.parallel_for<class TheKernel2>(range<2>{2, 10}, [=](item<2> It) {
23+
; bar();
24+
; });
25+
; CGH.parallel_for<class TheKernel3>(range<2>{2, 10}, [=](item<2> It) {
26+
; bar();
27+
; baz();
28+
; });
29+
; });
30+
; Q.wait();
31+
; return 0;
32+
; }
33+
34+
target datalayout = "e-i64:64-v16:16-v24:32-v32:32-v48:64-v96:128-v192:256-v256:256-v512:512-v1024:1024-n8:16:32:64"
35+
target triple = "spir64_x86_64-unknown-unknown-sycldevice"
36+
37+
%"class._ZTSN2cl4sycl5rangeILi2EEE.cl::sycl::range" = type { %"class._ZTSN2cl4sycl6detail5arrayILi2EEE.cl::sycl::detail::array" }
38+
%"class._ZTSN2cl4sycl6detail5arrayILi2EEE.cl::sycl::detail::array" = type { [2 x i64] }
39+
%"class._ZTSZZ4mainENK3$_0clERN2cl4sycl7handlerEEUlNS1_4itemILi2ELb1EEEE_.anon" = type { i8 }
40+
41+
@.str = private unnamed_addr addrspace(1) constant [2 x i8] c"0\00", align 1
42+
@.str.1 = private unnamed_addr addrspace(1) constant [11 x i8] c"assert.cpp\00", align 1
43+
@__PRETTY_FUNCTION__._Z3foov = private unnamed_addr addrspace(1) constant [11 x i8] c"void foo()\00", align 1
44+
@__spirv_BuiltInGlobalInvocationId = external dso_local addrspace(1) constant <3 x i64>, align 32
45+
@__spirv_BuiltInLocalInvocationId = external dso_local addrspace(1) constant <3 x i64>, align 32
46+
@_ZL10assert_fmt = internal addrspace(2) constant [85 x i8] c"%s:%d: %s: global id: [%lu,%lu,%lu], local id: [%lu,%lu,%lu] Assertion `%s` failed.\0A\00", align 1
47+
48+
; CHECK: [SYCL/assert used]
49+
; CHECK-DAG: _ZTSN2cl4sycl6detail19__pf_kernel_wrapperIZZ4mainENK3$_0clERNS0_7handlerEE9TeKernelEE
50+
; CHECK-DAG: _ZTSZZ4mainENK3$_0clERN2cl4sycl7handlerEE9TheKernel
51+
; CHECK-DAG: _ZTSN2cl4sycl6detail19__pf_kernel_wrapperIZZ4mainENK3$_0clERNS0_7handlerEE10TheKernel3EE
52+
; CHECK-DAG: _ZTSZZ4mainENK3$_0clERN2cl4sycl7handlerEE10TheKernel3
53+
; CHECK-NOT: _ZTSN2cl4sycl6detail19__pf_kernel_wrapperIZZ4mainENK3$_0clERNS0_7handlerEE10TheKernel2EE
54+
; CHECK-NOT: _ZTSZZ4mainENK3$_0clERN2cl4sycl7handlerEE10TheKernel2
55+
56+
; Function Attrs: convergent norecurse
57+
define weak_odr dso_local spir_kernel void @"_ZTSN2cl4sycl6detail19__pf_kernel_wrapperIZZ4mainENK3$_0clERNS0_7handlerEE9TeKernelEE"(%"class._ZTSN2cl4sycl5rangeILi2EEE.cl::sycl::range"* byval(%"class._ZTSN2cl4sycl5rangeILi2EEE.cl::sycl::range") align 8 %_arg_, %"class._ZTSZZ4mainENK3$_0clERN2cl4sycl7handlerEEUlNS1_4itemILi2ELb1EEEE_.anon"* byval(%"class._ZTSZZ4mainENK3$_0clERN2cl4sycl7handlerEEUlNS1_4itemILi2ELb1EEEE_.anon") align 1 %_arg_1) #0 {
58+
entry:
59+
%0 = getelementptr inbounds %"class._ZTSN2cl4sycl5rangeILi2EEE.cl::sycl::range", %"class._ZTSN2cl4sycl5rangeILi2EEE.cl::sycl::range"* %_arg_, i64 0, i32 0, i32 0, i64 0
60+
%.sroa.0.0..sroa_cast9 = addrspacecast i64* %0 to i64 addrspace(4)*
61+
%.sroa.0.0.copyload10 = load i64, i64 addrspace(4)* %.sroa.0.0..sroa_cast9, align 8
62+
%1 = load <3 x i64>, <3 x i64> addrspace(4)* addrspacecast (<3 x i64> addrspace(1)* @__spirv_BuiltInGlobalInvocationId to <3 x i64> addrspace(4)*), align 32
63+
%2 = extractelement <3 x i64> %1, i64 1
64+
%cmp.i.i = icmp ult i64 %2, 2147483648
65+
tail call void @llvm.assume(i1 %cmp.i.i)
66+
%cmp.not.i = icmp ult i64 %2, %.sroa.0.0.copyload10
67+
br i1 %cmp.not.i, label %if.end.i, label %"_ZZN2cl4sycl7handler27getRangeRoundedKernelLambdaINS0_4itemILi2ELb1EEELi2EZZ4mainENK3$_0clERS1_EUlS4_E_LPv0EEEDaT1_NS0_5rangeIXT0_EEEENKUlS4_E_clES4_.exit"
68+
69+
if.end.i: ; preds = %entry
70+
tail call spir_func void @__assert_fail(i8 addrspace(4)* getelementptr inbounds ([2 x i8], [2 x i8] addrspace(4)* addrspacecast ([2 x i8] addrspace(1)* @.str to [2 x i8] addrspace(4)*), i64 0, i64 0), i8 addrspace(4)* getelementptr inbounds ([11 x i8], [11 x i8] addrspace(4)* addrspacecast ([11 x i8] addrspace(1)* @.str.1 to [11 x i8] addrspace(4)*), i64 0, i64 0), i32 8, i8 addrspace(4)* getelementptr inbounds ([11 x i8], [11 x i8] addrspace(4)* addrspacecast ([11 x i8] addrspace(1)* @__PRETTY_FUNCTION__._Z3foov to [11 x i8] addrspace(4)*), i64 0, i64 0))
71+
br label %"_ZZN2cl4sycl7handler27getRangeRoundedKernelLambdaINS0_4itemILi2ELb1EEELi2EZZ4mainENK3$_0clERS1_EUlS4_E_LPv0EEEDaT1_NS0_5rangeIXT0_EEEENKUlS4_E_clES4_.exit"
72+
73+
"_ZZN2cl4sycl7handler27getRangeRoundedKernelLambdaINS0_4itemILi2ELb1EEELi2EZZ4mainENK3$_0clERS1_EUlS4_E_LPv0EEEDaT1_NS0_5rangeIXT0_EEEENKUlS4_E_clES4_.exit": ; preds = %entry, %if.end.i
74+
ret void
75+
}
76+
77+
; Function Attrs: inaccessiblememonly nofree nosync nounwind willreturn
78+
declare void @llvm.assume(i1 noundef) #1
79+
80+
; Function Attrs: convergent norecurse nounwind mustprogress
81+
define dso_local spir_func void @_Z3foov() {
82+
entry:
83+
tail call spir_func void @__assert_fail(i8 addrspace(4)* getelementptr inbounds ([2 x i8], [2 x i8] addrspace(4)* addrspacecast ([2 x i8] addrspace(1)* @.str to [2 x i8] addrspace(4)*), i64 0, i64 0), i8 addrspace(4)* getelementptr inbounds ([11 x i8], [11 x i8] addrspace(4)* addrspacecast ([11 x i8] addrspace(1)* @.str.1 to [11 x i8] addrspace(4)*), i64 0, i64 0), i32 8, i8 addrspace(4)* getelementptr inbounds ([11 x i8], [11 x i8] addrspace(4)* addrspacecast ([11 x i8] addrspace(1)* @__PRETTY_FUNCTION__._Z3foov to [11 x i8] addrspace(4)*), i64 0, i64 0))
84+
ret void
85+
}
86+
87+
; Function Attrs: convergent norecurse
88+
define weak_odr dso_local spir_kernel void @"_ZTSZZ4mainENK3$_0clERN2cl4sycl7handlerEE9TheKernel"() #0 {
89+
entry:
90+
tail call spir_func void @__assert_fail(i8 addrspace(4)* getelementptr inbounds ([2 x i8], [2 x i8] addrspace(4)* addrspacecast ([2 x i8] addrspace(1)* @.str to [2 x i8] addrspace(4)*), i64 0, i64 0), i8 addrspace(4)* getelementptr inbounds ([11 x i8], [11 x i8] addrspace(4)* addrspacecast ([11 x i8] addrspace(1)* @.str.1 to [11 x i8] addrspace(4)*), i64 0, i64 0), i32 8, i8 addrspace(4)* getelementptr inbounds ([11 x i8], [11 x i8] addrspace(4)* addrspacecast ([11 x i8] addrspace(1)* @__PRETTY_FUNCTION__._Z3foov to [11 x i8] addrspace(4)*), i64 0, i64 0))
91+
ret void
92+
}
93+
94+
; Function Attrs: norecurse
95+
define weak_odr dso_local spir_kernel void @"_ZTSN2cl4sycl6detail19__pf_kernel_wrapperIZZ4mainENK3$_0clERNS0_7handlerEE10TheKernel2EE"(%"class._ZTSN2cl4sycl5rangeILi2EEE.cl::sycl::range"* byval(%"class._ZTSN2cl4sycl5rangeILi2EEE.cl::sycl::range") align 8 %_arg_, %"class._ZTSZZ4mainENK3$_0clERN2cl4sycl7handlerEEUlNS1_4itemILi2ELb1EEEE_.anon"* byval(%"class._ZTSZZ4mainENK3$_0clERN2cl4sycl7handlerEEUlNS1_4itemILi2ELb1EEEE_.anon") align 1 %_arg_1) #1 {
96+
entry:
97+
%0 = load <3 x i64>, <3 x i64> addrspace(4)* addrspacecast (<3 x i64> addrspace(1)* @__spirv_BuiltInGlobalInvocationId to <3 x i64> addrspace(4)*), align 32
98+
%1 = extractelement <3 x i64> %0, i64 1
99+
%cmp.i.i = icmp ult i64 %1, 2147483648
100+
tail call void @llvm.assume(i1 %cmp.i.i)
101+
ret void
102+
}
103+
104+
; Function Attrs: nofree norecurse nosync nounwind readnone willreturn mustprogress
105+
define dso_local spir_func void @_Z3barv() {
106+
entry:
107+
ret void
108+
}
109+
110+
; Function Attrs: norecurse
111+
define weak_odr dso_local spir_kernel void @"_ZTSZZ4mainENK3$_0clERN2cl4sycl7handlerEE10TheKernel2"() #1 {
112+
entry:
113+
ret void
114+
}
115+
116+
; Function Attrs: convergent norecurse
117+
define weak_odr dso_local spir_kernel void @"_ZTSN2cl4sycl6detail19__pf_kernel_wrapperIZZ4mainENK3$_0clERNS0_7handlerEE10TheKernel3EE"(%"class._ZTSN2cl4sycl5rangeILi2EEE.cl::sycl::range"* byval(%"class._ZTSN2cl4sycl5rangeILi2EEE.cl::sycl::range") align 8 %_arg_, %"class._ZTSZZ4mainENK3$_0clERN2cl4sycl7handlerEEUlNS1_4itemILi2ELb1EEEE_.anon"* byval(%"class._ZTSZZ4mainENK3$_0clERN2cl4sycl7handlerEEUlNS1_4itemILi2ELb1EEEE_.anon") align 1 %_arg_1) #0 {
118+
entry:
119+
%0 = getelementptr inbounds %"class._ZTSN2cl4sycl5rangeILi2EEE.cl::sycl::range", %"class._ZTSN2cl4sycl5rangeILi2EEE.cl::sycl::range"* %_arg_, i64 0, i32 0, i32 0, i64 0
120+
%.sroa.0.0..sroa_cast9 = addrspacecast i64* %0 to i64 addrspace(4)*
121+
%.sroa.0.0.copyload10 = load i64, i64 addrspace(4)* %.sroa.0.0..sroa_cast9, align 8
122+
%1 = load <3 x i64>, <3 x i64> addrspace(4)* addrspacecast (<3 x i64> addrspace(1)* @__spirv_BuiltInGlobalInvocationId to <3 x i64> addrspace(4)*), align 32
123+
%2 = extractelement <3 x i64> %1, i64 1
124+
%cmp.i.i = icmp ult i64 %2, 2147483648
125+
tail call void @llvm.assume(i1 %cmp.i.i)
126+
%cmp.not.i = icmp ult i64 %2, %.sroa.0.0.copyload10
127+
br i1 %cmp.not.i, label %if.end.i, label %"_ZZN2cl4sycl7handler27getRangeRoundedKernelLambdaINS0_4itemILi2ELb1EEELi2EZZ4mainENK3$_0clERS1_EUlS4_E1_LPv0EEEDaT1_NS0_5rangeIXT0_EEEENKUlS4_E_clES4_.exit"
128+
129+
if.end.i: ; preds = %entry
130+
tail call spir_func void @__assert_fail(i8 addrspace(4)* getelementptr inbounds ([2 x i8], [2 x i8] addrspace(4)* addrspacecast ([2 x i8] addrspace(1)* @.str to [2 x i8] addrspace(4)*), i64 0, i64 0), i8 addrspace(4)* getelementptr inbounds ([11 x i8], [11 x i8] addrspace(4)* addrspacecast ([11 x i8] addrspace(1)* @.str.1 to [11 x i8] addrspace(4)*), i64 0, i64 0), i32 8, i8 addrspace(4)* getelementptr inbounds ([11 x i8], [11 x i8] addrspace(4)* addrspacecast ([11 x i8] addrspace(1)* @__PRETTY_FUNCTION__._Z3foov to [11 x i8] addrspace(4)*), i64 0, i64 0))
131+
br label %"_ZZN2cl4sycl7handler27getRangeRoundedKernelLambdaINS0_4itemILi2ELb1EEELi2EZZ4mainENK3$_0clERS1_EUlS4_E1_LPv0EEEDaT1_NS0_5rangeIXT0_EEEENKUlS4_E_clES4_.exit"
132+
133+
"_ZZN2cl4sycl7handler27getRangeRoundedKernelLambdaINS0_4itemILi2ELb1EEELi2EZZ4mainENK3$_0clERS1_EUlS4_E1_LPv0EEEDaT1_NS0_5rangeIXT0_EEEENKUlS4_E_clES4_.exit": ; preds = %entry, %if.end.i
134+
ret void
135+
}
136+
137+
; Function Attrs: convergent norecurse nounwind mustprogress
138+
define dso_local spir_func void @_Z3bazv() {
139+
entry:
140+
tail call spir_func void @__assert_fail(i8 addrspace(4)* getelementptr inbounds ([2 x i8], [2 x i8] addrspace(4)* addrspacecast ([2 x i8] addrspace(1)* @.str to [2 x i8] addrspace(4)*), i64 0, i64 0), i8 addrspace(4)* getelementptr inbounds ([11 x i8], [11 x i8] addrspace(4)* addrspacecast ([11 x i8] addrspace(1)* @.str.1 to [11 x i8] addrspace(4)*), i64 0, i64 0), i32 8, i8 addrspace(4)* getelementptr inbounds ([11 x i8], [11 x i8] addrspace(4)* addrspacecast ([11 x i8] addrspace(1)* @__PRETTY_FUNCTION__._Z3foov to [11 x i8] addrspace(4)*), i64 0, i64 0))
141+
ret void
142+
}
143+
144+
; Function Attrs: convergent norecurse
145+
define weak_odr dso_local spir_kernel void @"_ZTSZZ4mainENK3$_0clERN2cl4sycl7handlerEE10TheKernel3"() #0 {
146+
entry:
147+
tail call spir_func void @__assert_fail(i8 addrspace(4)* getelementptr inbounds ([2 x i8], [2 x i8] addrspace(4)* addrspacecast ([2 x i8] addrspace(1)* @.str to [2 x i8] addrspace(4)*), i64 0, i64 0), i8 addrspace(4)* getelementptr inbounds ([11 x i8], [11 x i8] addrspace(4)* addrspacecast ([11 x i8] addrspace(1)* @.str.1 to [11 x i8] addrspace(4)*), i64 0, i64 0), i32 8, i8 addrspace(4)* getelementptr inbounds ([11 x i8], [11 x i8] addrspace(4)* addrspacecast ([11 x i8] addrspace(1)* @__PRETTY_FUNCTION__._Z3foov to [11 x i8] addrspace(4)*), i64 0, i64 0))
148+
ret void
149+
}
150+
151+
; Function Attrs: convergent norecurse mustprogress
152+
define weak dso_local spir_func void @__assert_fail(i8 addrspace(4)* %expr, i8 addrspace(4)* %file, i32 %line, i8 addrspace(4)* %func) {
153+
entry:
154+
%call = tail call spir_func i64 @_Z28__spirv_GlobalInvocationId_xv()
155+
%call1 = tail call spir_func i64 @_Z28__spirv_GlobalInvocationId_yv()
156+
%call2 = tail call spir_func i64 @_Z28__spirv_GlobalInvocationId_zv()
157+
%call3 = tail call spir_func i64 @_Z27__spirv_LocalInvocationId_xv()
158+
%call4 = tail call spir_func i64 @_Z27__spirv_LocalInvocationId_yv()
159+
%call5 = tail call spir_func i64 @_Z27__spirv_LocalInvocationId_zv()
160+
tail call spir_func void @__devicelib_assert_fail(i8 addrspace(4)* %expr, i8 addrspace(4)* %file, i32 %line, i8 addrspace(4)* %func, i64 %call, i64 %call1, i64 %call2, i64 %call3, i64 %call4, i64 %call5)
161+
ret void
162+
}
163+
164+
; Function Attrs: inlinehint norecurse mustprogress
165+
define weak dso_local spir_func i64 @_Z28__spirv_GlobalInvocationId_xv() {
166+
entry:
167+
%0 = load <3 x i64>, <3 x i64> addrspace(4)* addrspacecast (<3 x i64> addrspace(1)* @__spirv_BuiltInGlobalInvocationId to <3 x i64> addrspace(4)*), align 32
168+
%1 = extractelement <3 x i64> %0, i64 0
169+
ret i64 %1
170+
}
171+
172+
; Function Attrs: inlinehint norecurse mustprogress
173+
define weak dso_local spir_func i64 @_Z28__spirv_GlobalInvocationId_yv() {
174+
entry:
175+
%0 = load <3 x i64>, <3 x i64> addrspace(4)* addrspacecast (<3 x i64> addrspace(1)* @__spirv_BuiltInGlobalInvocationId to <3 x i64> addrspace(4)*), align 32
176+
%1 = extractelement <3 x i64> %0, i64 1
177+
ret i64 %1
178+
}
179+
180+
; Function Attrs: inlinehint norecurse mustprogress
181+
define weak dso_local spir_func i64 @_Z28__spirv_GlobalInvocationId_zv() {
182+
entry:
183+
%0 = load <3 x i64>, <3 x i64> addrspace(4)* addrspacecast (<3 x i64> addrspace(1)* @__spirv_BuiltInGlobalInvocationId to <3 x i64> addrspace(4)*), align 32
184+
%1 = extractelement <3 x i64> %0, i64 2
185+
ret i64 %1
186+
}
187+
188+
; Function Attrs: inlinehint norecurse mustprogress
189+
define weak dso_local spir_func i64 @_Z27__spirv_LocalInvocationId_xv() {
190+
entry:
191+
%0 = load <3 x i64>, <3 x i64> addrspace(4)* addrspacecast (<3 x i64> addrspace(1)* @__spirv_BuiltInLocalInvocationId to <3 x i64> addrspace(4)*), align 32
192+
%1 = extractelement <3 x i64> %0, i64 0
193+
ret i64 %1
194+
}
195+
196+
; Function Attrs: inlinehint norecurse mustprogress
197+
define weak dso_local spir_func i64 @_Z27__spirv_LocalInvocationId_yv() {
198+
entry:
199+
%0 = load <3 x i64>, <3 x i64> addrspace(4)* addrspacecast (<3 x i64> addrspace(1)* @__spirv_BuiltInLocalInvocationId to <3 x i64> addrspace(4)*), align 32
200+
%1 = extractelement <3 x i64> %0, i64 1
201+
ret i64 %1
202+
}
203+
204+
; Function Attrs: inlinehint norecurse mustprogress
205+
define weak dso_local spir_func i64 @_Z27__spirv_LocalInvocationId_zv() {
206+
entry:
207+
%0 = load <3 x i64>, <3 x i64> addrspace(4)* addrspacecast (<3 x i64> addrspace(1)* @__spirv_BuiltInLocalInvocationId to <3 x i64> addrspace(4)*), align 32
208+
%1 = extractelement <3 x i64> %0, i64 2
209+
ret i64 %1
210+
}
211+
212+
; Function Attrs: convergent norecurse mustprogress
213+
define weak dso_local spir_func void @__devicelib_assert_fail(i8 addrspace(4)* %expr, i8 addrspace(4)* %file, i32 %line, i8 addrspace(4)* %func, i64 %gid0, i64 %gid1, i64 %gid2, i64 %lid0, i64 %lid1, i64 %lid2) {
214+
entry:
215+
%call = tail call spir_func i32 (i8 addrspace(2)*, ...) @_Z18__spirv_ocl_printfPU3AS2Kcz(i8 addrspace(2)* getelementptr inbounds ([85 x i8], [85 x i8] addrspace(2)* @_ZL10assert_fmt, i64 0, i64 0), i8 addrspace(4)* %file, i32 %line, i8 addrspace(4)* %func, i64 %gid0, i64 %gid1, i64 %gid2, i64 %lid0, i64 %lid1, i64 %lid2, i8 addrspace(4)* %expr)
216+
ret void
217+
}
218+
219+
; Function Attrs: convergent
220+
declare dso_local spir_func i32 @_Z18__spirv_ocl_printfPU3AS2Kcz(i8 addrspace(2)*, ...)
221+
222+
attributes #0 = { convergent norecurse "frame-pointer"="all" "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "sycl-module-id"="assert.cpp" "uniform-work-group-size"="true" }
223+
attributes #1 = { norecurse "frame-pointer"="all" "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "sycl-module-id"="assert.cpp" "uniform-work-group-size"="true" }
224+
225+
!opencl.spir.version = !{!0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0}
226+
!spirv.Source = !{!1, !1, !1, !1, !1, !1, !1, !1, !1, !1, !1}
227+
!llvm.ident = !{!2, !2, !2, !2, !2, !2, !2, !2, !2, !2, !2}
228+
!llvm.module.flags = !{!3, !4}
229+
230+
!0 = !{i32 1, i32 2}
231+
!1 = !{i32 4, i32 100000}
232+
!2 = !{!"clang version 13.0.0 (https://github.com/intel/llvm)"}
233+
!3 = !{i32 1, !"wchar_size", i32 4}
234+
!4 = !{i32 7, !"frame-pointer", i32 2}
235+
!5 = !{i32 -1, i32 -1}

0 commit comments

Comments
 (0)