xref: /llvm-project/llvm/test/Bitcode/thinlto-function-summary-paramaccess.ll (revision fa4fbaefde8569ca64594fc3845340536ec8eb02)
1; REQUIRES: aarch64-registered-target
2
3; For convenience, to show what is being serialized.
4; RUN: opt -S -passes="print<stack-safety-local>" -disable-output < %s 2>&1 | FileCheck %s --check-prefixes=SSI
5
6; RUN: opt -module-summary %s -o %t.bc
7; RUN: llvm-bcanalyzer -dump %t.bc | FileCheck %s -check-prefixes=BC
8
9; RUN: opt -module-summary %p/Inputs/thinlto-function-summary-paramaccess.ll -o %t2.bc
10
11; RUN: llvm-lto -thinlto -o %t %t.bc %t2.bc
12
13; RUN: llvm-dis -o - %t.thinlto.bc | FileCheck %s --check-prefix=DCO
14; Round trip it through llvm-as
15; RUN: llvm-dis -o - %t.thinlto.bc | llvm-as -o - | llvm-dis -o - | FileCheck %s --check-prefix=DCO
16
17; RUN: llvm-bcanalyzer -dump %t.thinlto.bc | FileCheck %s --check-prefix=COMBINED
18
19; RUN: llvm-dis -o - %t.bc | FileCheck %s --check-prefix=DIS
20; Round trip it through llvm-as
21; RUN: llvm-dis -o - %t.bc | llvm-as -o - | llvm-dis -o - | FileCheck %s --check-prefix=DIS
22
23; RUN: opt -thinlto-bc %s -o %t.bc
24; RUN: llvm-bcanalyzer -dump %t.bc | FileCheck %s -check-prefixes=BC
25
26; RUN: llvm-dis -o - %t.bc | FileCheck %s --check-prefix=DIS
27; Round trip it through llvm-as
28; RUN: llvm-dis -o - %t.bc | llvm-as -o - | llvm-dis -o - | FileCheck %s --check-prefix=DIS
29
30; DIS: ^0 = module: (path: "{{.*}}", hash: ({{.*}}))
31; DCO: ^0 = module: (path: "{{.*}}", hash: ({{.*}}))
32; DCO: ^1 = module: (path: "{{.*}}", hash: ({{.*}}))
33
34; ModuleID = 'thinlto-function-summary-paramaccess.ll'
35target datalayout = "e-m:e-i8:8:32-i16:16:32-i64:64-i128:128-n32:64-S128"
36target triple = "aarch64-unknown-linux"
37
38attributes #0 = { noinline sanitize_memtag "target-features"="+mte,+neon" }
39
40; BC-LABEL: <GLOBALVAL_SUMMARY_BLOCK
41; BC-NEXT: <VERSION
42; BC-NEXT: <FLAGS
43
44; DIS-DAG: = gv: (name: "Callee") ; guid = 900789920918863816
45; DCO-DAG: = gv: (guid: 900789920918863816, summaries: (function: (module: ^1, flags: ({{[^()]+}}), insts: 1, funcFlags: ({{[^()]+}}), params: ((param: 0, offset: [0, -1]))))){{$}}
46 declare void @Callee(i8* %p)
47
48; DIS-DAG: = gv: (name: "Callee2") ; guid = 72710208629861106
49; DCO-DAG: = gv: (guid: 72710208629861106, summaries: (function: (module: ^1, flags: ({{[^()]+}}), insts: 1, funcFlags: ({{[^()]+}}), params: ((param: 1, offset: [0, -1]))))){{$}}
50 declare void @Callee2(i32 %x, i8* %p)
51
52; BC: <PERMODULE
53; DIS-DAG: = gv: (name: "NoParam", summaries: {{.*}} guid = 10287433468618421703
54; DCO-DAG: = gv: (guid: 10287433468618421703, summaries: (function: (module: ^0, flags: ({{[^()]+}}), insts: 1, funcFlags: ({{[^()]+}})))){{$}}
55define void @NoParam() #0 {
56entry:
57  ret void
58}
59
60; SSI-LABEL: function 'IntParam'
61; BC-NEXT: <PERMODULE
62; DIS-DAG: = gv: (name: "IntParam", summaries: {{.*}} guid = 13164714711077064397
63; DCO-DAG: = gv: (guid: 13164714711077064397, summaries: (function: (module: ^0, flags: ({{[^()]+}}), insts: 1, funcFlags: ({{[^()]+}})))){{$}}
64define void @IntParam(i32 %x) #0 {
65entry:
66  ret void
67}
68
69; SSI-LABEL: for function 'WriteNone'
70; SSI: p[]: empty-set
71; BC-NEXT: <PARAM_ACCESS op0=0 op1=0 op2=0 op3=0/>
72; BC-NEXT: <PERMODULE
73; DIS-DAG: = gv: (name: "WriteNone", summaries: {{.*}} params: ((param: 0, offset: [0, -1]))))) ; guid = 15261848357689602442
74; DCO-DAG: = gv: (guid: 15261848357689602442, summaries: (function: (module: ^0, flags: ({{[^()]+}}), insts: 1, funcFlags: ({{[^()]+}}), params: ((param: 0, offset: [0, -1]))))){{$}}
75define void @WriteNone(i8* %p) #0 {
76entry:
77  ret void
78}
79
80; SSI-LABEL: for function 'Write0'
81; SSI: p[]: [0,1)
82; BC-NEXT: <PARAM_ACCESS op0=0 op1=0 op2=2 op3=0/>
83; BC-NEXT: <PERMODULE
84; DIS-DAG: = gv: (name: "Write0", summaries: {{.*}} params: ((param: 0, offset: [0, 0]))))) ; guid = 5540766144860458461
85; DCO-DAG: = gv: (guid: 5540766144860458461, summaries: (function: (module: ^0, flags: ({{[^()]+}}), insts: 2, funcFlags: ({{[^()]+}}), params: ((param: 0, offset: [0, 0]))))){{$}}
86define void @Write0(i8* %p) #0 {
87entry:
88  store i8 0, i8* %p
89  ret void
90}
91
92; SSI-LABEL: for function 'WriteOffset'
93; SSI: p[]: [12,16)
94; BC-NEXT: <PARAM_ACCESS op0=0 op1=24 op2=32 op3=0/>
95; BC-NEXT: <PERMODULE
96; DIS-DAG: = gv: (name: "WriteOffset", summaries: {{.*}} params: ((param: 0, offset: [12, 15]))))) ; guid = 1417835201204712148
97; DCO-DAG: = gv: (guid: 1417835201204712148, summaries: (function: (module: ^0, flags: ({{[^()]+}}), insts: 4, funcFlags: ({{[^()]+}}), params: ((param: 0, offset: [12, 15]))))){{$}}
98define void @WriteOffset(i8* %p) #0 {
99entry:
100  %0 = bitcast i8* %p to i32*
101  %1 = getelementptr i32, i32* %0, i64 3
102  store i32 0, i32* %1
103  ret void
104}
105
106; SSI-LABEL: for function 'WriteNegOffset'
107; SSI: p[]: [-56,-48)
108; BC-NEXT: <PARAM_ACCESS op0=0 op1=113 op2=97 op3=0/>
109; BC-NEXT: <PERMODULE
110; DIS-DAG: = gv: (name: "WriteNegOffset", summaries: {{.*}} params: ((param: 0, offset: [-56, -49]))))) ; guid = 11847411556962310546
111; DCO-DAG: = gv: (guid: 11847411556962310546, summaries: (function: (module: ^0, flags: ({{[^()]+}}), insts: 4, funcFlags: ({{[^()]+}}), params: ((param: 0, offset: [-56, -49]))))){{$}}
112define void @WriteNegOffset(i8* %p) #0 {
113entry:
114  %0 = bitcast i8* %p to i64*
115  %1 = getelementptr i64, i64* %0, i64 -7
116  store i64 0, i64* %1
117  ret void
118}
119
120; SSI-LABEL: for function 'WriteAnyOffset'
121; SSI: p[]: [-9223372036854775808,9223372036854775807)
122; BC-NEXT:  <PARAM_ACCESS op0=0 op1=1 op2=-2 op3=0/>
123; BC-NEXT: <PERMODULE
124; DIS-DAG: = gv: (name: "WriteAnyOffset", summaries: {{.*}} params: ((param: 0, offset: [-9223372036854775808, 9223372036854775806]))))) ; guid = 16159595372881907190
125; DCO-DAG: = gv: (guid: 16159595372881907190, summaries: (function: (module: ^0, flags: ({{[^()]+}}), insts: 4, funcFlags: ({{[^()]+}}), params: ((param: 0, offset: [-9223372036854775808, 9223372036854775806]))))){{$}}
126define void @WriteAnyOffset(i8* %p, i64 %i) #0 {
127entry:
128  %0 = bitcast i8* %p to i24*
129  %1 = getelementptr i24, i24* %0, i64 %i
130  store i24 0, i24* %1
131  ret void
132}
133
134; SSI-LABEL: for function 'WritePQ'
135; SSI: p[]: [0,1)
136; SSI: q[]: [0,4)
137; BC-NEXT: <PARAM_ACCESS op0=0 op1=0 op2=2 op3=0 op4=1 op5=0 op6=8 op7=0/>
138; BC-NEXT: <PERMODULE
139; DIS-DAG: = gv: (name: "WritePQ", summaries: {{.*}} params: ((param: 0, offset: [0, 0]), (param: 1, offset: [0, 3]))))) ; guid = 6187077497926519485
140; DCO-DAG: = gv: (guid: 6187077497926519485, summaries: (function: (module: ^0, flags: ({{[^()]+}}), insts: 3, funcFlags: ({{[^()]+}}), params: ((param: 0, offset: [0, 0]), (param: 1, offset: [0, 3]))))){{$}}
141define void @WritePQ(i8* %p, i32* %q) #0 {
142entry:
143  store i8 5, i8* %p
144  store i32 6, i32* %q
145  ret void
146}
147
148; SSI-LABEL: for function 'WriteTwoPIQ'
149; SSI: p[]: [0,1)
150; SSI: q[]: [0,4)
151; BC-NEXT: <PARAM_ACCESS op0=0 op1=0 op2=2 op3=0 op4=2 op5=0 op6=8 op7=0/>
152; BC-NEXT: <PERMODULE
153; DIS-DAG: = gv: (name: "WriteTwoPIQ", summaries: {{.*}} params: ((param: 0, offset: [0, 0]), (param: 2, offset: [0, 3]))))) ; guid = 2949024673554120799
154; DCO-DAG: = gv: (guid: 2949024673554120799, summaries: (function: (module: ^0, flags: ({{[^()]+}}), insts: 3, funcFlags: ({{[^()]+}}), params: ((param: 0, offset: [0, 0]), (param: 2, offset: [0, 3]))))){{$}}
155define void @WriteTwoPIQ(i8* %p, i32 %i, i32* %q) #0 {
156entry:
157  store i8 7, i8* %p
158  store i32 %i, i32* %q
159  ret void
160}
161
162; SSI-LABEL: for function 'Call'
163; SSI: p[]: empty-set, @Callee(arg0, [0,1))
164; BC-NEXT: <PARAM_ACCESS op0=0 op1=0 op2=0 op3=1 op4=0 op5=[[CALLEE:-?[0-9]+]] op6=0 op7=2/>
165; BC-NEXT: <PERMODULE
166; DIS-DAG: = gv: (name: "Call", summaries: {{.*}} calls: ((callee: ^{{.*}})), params: ((param: 0, offset: [0, -1], calls: ((callee: ^{{.*}}, param: 0, offset: [0, 0]))))))) ; guid = 8411925997558855107
167; DCO-DAG: = gv: (guid: 8411925997558855107, summaries: (function: (module: ^0, flags: ({{[^()]+}}), insts: 2, funcFlags: ({{[^()]+}}), calls: ((callee: ^[[CALLEE:.]])), params: ((param: 0, offset: [0, -1], calls: ((callee: ^[[CALLEE]], param: 0, offset: [0, 0]))))))){{$}}
168define void @Call(i8* %p) #0 {
169entry:
170  call void @Callee(i8* %p)
171  ret void
172}
173
174; SSI-LABEL: for function 'CallOffset'
175; SSI: p[]: empty-set, @Callee(arg0, [2,3))
176; BC-NEXT: <PARAM_ACCESS op0=0 op1=0 op2=0 op3=1 op4=0 op5=[[CALLEE]] op6=4 op7=6/>
177; BC-NEXT: <PERMODULE
178; DIS-DAG: = gv: (name: "CallOffset", summaries: {{.*}} calls: ((callee: ^{{.*}})), params: ((param: 0, offset: [0, -1], calls: ((callee: ^{{.*}}, param: 0, offset: [2, 2]))))))) ; guid = 1075564720951610524
179; DCO-DAG: = gv: (guid: 1075564720951610524, summaries: (function: (module: ^0, flags: ({{[^()]+}}), insts: 3, funcFlags: ({{[^()]+}}), calls: ((callee: ^[[CALLEE:.]])), params: ((param: 0, offset: [0, -1], calls: ((callee: ^[[CALLEE]], param: 0, offset: [2, 2]))))))){{$}}
180define void @CallOffset(i8* %p) #0 {
181entry:
182  %p1 = getelementptr i8, i8* %p, i64 2
183  call void @Callee(i8* %p1)
184  ret void
185}
186
187; SSI-LABEL: for function 'CallNegOffset'
188; SSI: p[]: empty-set, @Callee(arg0, [-715,-714))
189; BC-NEXT: <PARAM_ACCESS op0=0 op1=0 op2=0 op3=1 op4=0 op5=[[CALLEE]] op6=1431 op7=1429/>
190; BC-NEXT: <PERMODULE
191; DIS-DAG: = gv: (name: "CallNegOffset", summaries: {{.*}} calls: ((callee: ^{{.*}})), params: ((param: 0, offset: [0, -1], calls: ((callee: ^{{.*}}, param: 0, offset: [-715, -715]))))))) ; guid = 16532891468562335146
192; DCO-DAG: = gv: (guid: 16532891468562335146, summaries: (function: (module: ^0, flags: ({{[^()]+}}), insts: 3, funcFlags: ({{[^()]+}}), calls: ((callee: ^[[CALLEE:.]])), params: ((param: 0, offset: [0, -1], calls: ((callee: ^[[CALLEE]], param: 0, offset: [-715, -715]))))))){{$}}
193define void @CallNegOffset(i8* %p) #0 {
194entry:
195  %p1 = getelementptr i8, i8* %p, i64 -715
196  call void @Callee(i8* %p1)
197  ret void
198}
199
200; BC-NEXT: <PERMODULE
201; SSI-LABEL: for function 'CallAnyOffset'
202; SSI: p[]: empty-set, @Callee(arg0, full-set)
203; DIS-DAG: = gv: (name: "CallAnyOffset", summaries: {{.*}} calls: ((callee: ^{{.*}}))))) ; guid = 4179978066780831873
204; DCO-DAG: = gv: (guid: 4179978066780831873, summaries: (function: (module: ^0, flags: ({{[^()]+}}), insts: 3, funcFlags: ({{[^()]+}}), calls: ((callee: ^[[CALLEE:.]]))))){{$}}
205define void @CallAnyOffset(i8* %p, i64 %i) #0 {
206entry:
207  %p1 = getelementptr i8, i8* %p, i64 %i
208  call void @Callee(i8* %p1)
209  ret void
210}
211
212; SSI-LABEL: for function 'CallMany'
213; SSI: p[]: empty-set, @Callee(arg0, [-715,125))
214; BC-NEXT: <PARAM_ACCESS op0=0 op1=0 op2=0 op3=1 op4=0 op5=[[CALLEE]] op6=1431 op7=250/>
215; BC-NEXT: <PERMODULE
216; DIS-DAG: = gv: (name: "CallMany", summaries: {{.*}} calls: ((callee: ^{{.*}})), params: ((param: 0, offset: [0, -1], calls: ((callee: ^{{.*}}, param: 0, offset: [-715, 124]))))))) ; guid = 17150418543861409076
217; DCO-DAG: = gv: (guid: 17150418543861409076, summaries: (function: (module: ^0, flags: ({{[^()]+}}), insts: 7, funcFlags: ({{[^()]+}}), calls: ((callee: ^[[CALLEE:.]])), params: ((param: 0, offset: [0, -1], calls: ((callee: ^[[CALLEE]], param: 0, offset: [-715, 124]))))))){{$}}
218define void @CallMany(i8* %p) #0 {
219entry:
220  %p0 = getelementptr i8, i8* %p, i64 -715
221  call void @Callee(i8* %p0)
222
223  %p1 = getelementptr i8, i8* %p, i64 -33
224  call void @Callee(i8* %p1)
225
226  %p2 = getelementptr i8, i8* %p, i64 124
227  call void @Callee(i8* %p2)
228
229  ret void
230}
231
232; SSI-LABEL: for function 'CallMany2'
233; SSI: p[]: empty-set, @Callee(arg0, [-715,125)), @Callee2(arg1, [-33,-32))
234; BC-NEXT: <PARAM_ACCESS op0=0 op1=0 op2=0 op3=2 op4=0 op5=[[CALLEE]] op6=1431 op7=250 op8=1 op9=[[CALLEE2:-?[0-9]+]] op10=67 op11=65/>
235; BC-NEXT: <PERMODULE
236; DIS-DAG: = gv: (name: "CallMany2", summaries: {{.*}} calls: ((callee: ^{{.*}}), (callee: ^{{.*}})), params: ((param: 0, offset: [0, -1], calls: ((callee: ^{{.*}}, param: 0, offset: [-715, 124]), (callee: ^{{.*}}, param: 1, offset: [-33, -33]))))))) ; guid = 16654048340802466690
237; DCO-DAG: = gv: (guid: 16654048340802466690, summaries: (function: (module: ^0, flags: ({{[^()]+}}), insts: 7, funcFlags: ({{[^()]+}}), calls: ((callee: ^{{[0-9]+}}), (callee: ^{{[0-9]+}})), params: ((param: 0, offset: [0, -1], calls: ((callee: ^{{[0-9]+}}, param: 0, offset: [-715, 124]), (callee: ^{{[0-9]+}}, param: 1, offset: [-33, -33]))))))){{$}}
238define void @CallMany2(i8* %p) #0 {
239entry:
240  %p0 = getelementptr i8, i8* %p, i64 -715
241  call void @Callee(i8* %p0)
242
243  %p1 = getelementptr i8, i8* %p, i64 -33
244  call void @Callee2(i32 6, i8* %p1)
245
246  %p2 = getelementptr i8, i8* %p, i64 124
247  call void @Callee(i8* %p2)
248
249  ret void
250}
251
252; SSI-LABEL: for function 'CallManyUnsafe'
253; SSI: p[]: full-set, @Callee(arg0, [-715,125))
254; BC-NEXT: <PERMODULE
255; DIS-DAG: = gv: (name: "CallManyUnsafe", summaries: {{.*}} calls: ((callee: ^{{.*}}))))) ; guid = 15696680128757863301
256; DCO-DAG: = gv: (guid: 15696680128757863301, summaries: (function: (module: ^0, flags: ({{[^()]+}}), insts: 9, funcFlags: ({{[^()]+}}), calls: ((callee: ^[[CALLEE:.]]))))){{$}}
257define void @CallManyUnsafe(i8* %p, i64 %i) #0 {
258entry:
259  %pi = getelementptr i8, i8* %p, i64 %i
260  store i8 5, i8* %pi
261
262  %p0 = getelementptr i8, i8* %p, i64 -715
263  call void @Callee(i8* %p0)
264
265  %p1 = getelementptr i8, i8* %p, i64 -33
266  call void @Callee(i8* %p1)
267
268  %p2 = getelementptr i8, i8* %p, i64 124
269  call void @Callee(i8* %p2)
270
271  ret void
272}
273
274; SSI-LABEL: for function 'Ret'
275; SSI: p[]: full-set
276; BC-NEXT: <PERMODULE
277; DIS-DAG: = gv: (name: "Ret", summaries: {{.*}} ; guid = 6707380319572075172
278; DCO-DAG: = gv: (guid: 6707380319572075172, summaries: (function: (module: ^0, flags: ({{[^()]+}}), insts: 1, funcFlags: ({{[^()]+}})))){{$}}
279define i8* @Ret(i8* %p) #0 {
280entry:
281  ret i8* %p
282}
283
284; BC-NOT: <PERMODULE
285; BC-NOT: <PARAM_ACCESS1
286
287
288; COMBINED: <FLAGS op0=0/>
289; COMBINED-NEXT: <VALUE_GUID {{.*}} op0=[[CALLEE1:1]] op1=16929164 op2=2901240562/>
290; COMBINED-NEXT: <VALUE_GUID {{.*}} op0=[[CALLEE2:2]] op1=209731497 op2=362741704/>
291; COMBINED-NEXT: <VALUE_GUID {{.*}} op0=3 op1=250424426 op2=1162038428/>
292; COMBINED-NEXT: <VALUE_GUID {{.*}} op0=4 op1=330115482 op2=2111435476/>
293; COMBINED-NEXT: <VALUE_GUID {{.*}} op0=5 op1=686623312 op2=3842916447/>
294; COMBINED-NEXT: <VALUE_GUID {{.*}} op0=6 op1=973226983 op2=3211083905/>
295; COMBINED-NEXT: <VALUE_GUID {{.*}} op0=7 op1=1290060147 op2=3622505949/>
296; COMBINED-NEXT: <VALUE_GUID {{.*}} op0=8 op1=1440541236 op2=767101629/>
297; COMBINED-NEXT: <VALUE_GUID {{.*}} op0=9 op1=1561683677 op2=160047780/>
298; COMBINED-NEXT: <VALUE_GUID {{.*}} op0=10 op1=1958554144 op2=1633580483/>
299; COMBINED-NEXT: <VALUE_GUID {{.*}} op0=11 op1=2395229756 op2=192361927/>
300; COMBINED-NEXT: <VALUE_GUID {{.*}} op0=12 op1=2758440458 op2=1889048978/>
301; COMBINED-NEXT: <VALUE_GUID {{.*}} op0=13 op1=3065148999 op2=3004927693/>
302; COMBINED-NEXT: <VALUE_GUID {{.*}} op0=14 op1=3553425976 op2=2012721546/>
303; COMBINED-NEXT: <VALUE_GUID {{.*}} op0=15 op1=3654668137 op2=2609615749/>
304; COMBINED-NEXT: <VALUE_GUID {{.*}} op0=16 op1=3762448991 op2=3668708854/>
305; COMBINED-NEXT: <VALUE_GUID {{.*}} op0=17 op1=3849363762 op2=364807594/>
306; COMBINED-NEXT: <VALUE_GUID {{.*}} op0=18 op1=3877572794 op2=2713121666/>
307; COMBINED-NEXT: <VALUE_GUID {{.*}} op0=19 op1=3993142988 op2=2149688628/>
308; COMBINED-NEXT: <PARAM_ACCESS op0=1 op1=0 op2=0 op3=0/>
309; COMBINED-NEXT: <COMBINED_PROFILE {{.*}} op0=1
310; COMBINED-NEXT: <PARAM_ACCESS op0=0 op1=0 op2=0 op3=0/>
311; COMBINED-NEXT: <COMBINED_PROFILE {{.*}} op0=2
312; COMBINED-NEXT: <PARAM_ACCESS op0=0 op1=0 op2=0 op3=1 op4=0 op5=[[CALLEE2]] op6=4 op7=6/>
313; COMBINED-NEXT: <COMBINED_PROFILE {{.*}} op0=3
314; COMBINED-NEXT: <PARAM_ACCESS op0=0 op1=24 op2=32 op3=0/>
315; COMBINED-NEXT: <COMBINED_PROFILE {{.*}} op0=4
316; COMBINED-NEXT: <PARAM_ACCESS op0=0 op1=0 op2=2 op3=0 op4=2 op5=0 op6=8 op7=0/>
317; COMBINED-NEXT: <COMBINED_PROFILE {{.*}} op0=5
318; COMBINED-NEXT: <COMBINED_PROFILE {{.*}} op0=6
319; COMBINED-NEXT: <PARAM_ACCESS op0=0 op1=0 op2=2 op3=0/>
320; COMBINED-NEXT: <COMBINED_PROFILE {{.*}} op0=7
321; COMBINED-NEXT: <PARAM_ACCESS op0=0 op1=0 op2=2 op3=0 op4=1 op5=0 op6=8 op7=0/>
322; COMBINED-NEXT: <COMBINED_PROFILE {{.*}} op0=8
323; COMBINED-NEXT: <COMBINED_PROFILE {{.*}} op0=9
324; COMBINED-NEXT: <PARAM_ACCESS op0=0 op1=0 op2=0 op3=1 op4=0 op5=[[CALLEE2]] op6=0 op7=2/>
325; COMBINED-NEXT: <COMBINED_PROFILE {{.*}} op0=10
326; COMBINED-NEXT: <COMBINED_PROFILE {{.*}} op0=11
327; COMBINED-NEXT: <PARAM_ACCESS op0=0 op1=113 op2=97 op3=0/>
328; COMBINED-NEXT: <COMBINED_PROFILE {{.*}} op0=12
329; COMBINED-NEXT: <COMBINED_PROFILE {{.*}} op0=13
330; COMBINED-NEXT: <PARAM_ACCESS op0=0 op1=0 op2=0 op3=0/>
331; COMBINED-NEXT: <COMBINED_PROFILE {{.*}} op0=14
332; COMBINED-NEXT: <COMBINED_PROFILE {{.*}} op0=15
333; COMBINED-NEXT: <PARAM_ACCESS op0=0 op1=1 op2=-2 op3=0/>
334; COMBINED-NEXT: <COMBINED_PROFILE {{.*}} op0=16
335; COMBINED-NEXT: <PARAM_ACCESS op0=0 op1=0 op2=0 op3=1 op4=0 op5=[[CALLEE2]] op6=1431 op7=1429/>
336; COMBINED-NEXT: <COMBINED_PROFILE {{.*}} op0=17
337; COMBINED-NEXT: <PARAM_ACCESS op0=0 op1=0 op2=0 op3=2 op4=0 op5=[[CALLEE2]] op6=1431 op7=250 op8=1 op9=[[CALLEE1]] op10=67 op11=65/>
338; COMBINED-NEXT: <COMBINED_PROFILE {{.*}} op0=18
339; COMBINED-NEXT: <PARAM_ACCESS op0=0 op1=0 op2=0 op3=1 op4=0 op5=[[CALLEE2]] op6=1431 op7=250/>
340; COMBINED-NEXT: <COMBINED_PROFILE {{.*}} op0=19
341