[NFC][analyzer][docs] Crosslink MallocChecker's ownership attributes (#121939)
[llvm-project.git] / llvm / test / tools / UpdateTestChecks / update_test_checks / Inputs / stable_ir_values5.ll
blob4d503e36350fe2abb278bf5c9a5d0bed352530fb
1 ; NOTE: Assertions have been autogenerated by utils/update_test_checks.py UTC_ARGS: --version 3
2 ; RUN: opt < %s -S | FileCheck %s
4 ; Test a very long run of similar (but different) instructions in which the optimal
5 ; diff is sensitive to how names are mapped. This is already slightly reduced
6 ; from the original, but attempting to reduce it further ended up hiding another
7 ; bug.
9 %structA = type { <3 x i32> }
10 %structC = type { [50 x i32] }
12 define dso_local void @main.resume.0(i64 %0, %structA %arg01, [23 x i32] %arg12, [30 x i32] %arg23) {
13 ; CHECK-LABEL: define dso_local void @main.resume.0(
14 ; CHECK-SAME: i64 [[TMP0:%.*]], { [[STRUCTA:%.*]], [23 x i32], [30 x i32] } [[TMP1:%.*]]) {
15 ; CHECK-NEXT:  entryresume.0:
16 ; CHECK-NEXT:    [[FOO:%.*]] = call ptr @getter(i32 108)
17 ; CHECK-NEXT:    [[TMP3:%.*]] = extractvalue { [[STRUCTA]], [23 x i32], [30 x i32] } [[TMP1]], 2
18 ; CHECK-NEXT:    [[DOTFCA_0_EXTRACT:%.*]] = extractvalue [30 x i32] [[TMP3]], 0
19 ; CHECK-NEXT:    [[DOTFCA_1_EXTRACT:%.*]] = extractvalue [30 x i32] [[TMP3]], 1
20 ; CHECK-NEXT:    [[DOTFCA_2_EXTRACT:%.*]] = extractvalue [30 x i32] [[TMP3]], 2
21 ; CHECK-NEXT:    [[DOTFCA_3_EXTRACT:%.*]] = extractvalue [30 x i32] [[TMP3]], 3
22 ; CHECK-NEXT:    [[DOTFCA_4_EXTRACT:%.*]] = extractvalue [30 x i32] [[TMP3]], 4
23 ; CHECK-NEXT:    [[DOTFCA_5_EXTRACT:%.*]] = extractvalue [30 x i32] [[TMP3]], 5
24 ; CHECK-NEXT:    [[DOTFCA_6_EXTRACT:%.*]] = extractvalue [30 x i32] [[TMP3]], 6
25 ; CHECK-NEXT:    [[DOTFCA_7_EXTRACT:%.*]] = extractvalue [30 x i32] [[TMP3]], 7
26 ; CHECK-NEXT:    [[DOTFCA_8_EXTRACT:%.*]] = extractvalue [30 x i32] [[TMP3]], 8
27 ; CHECK-NEXT:    [[DOTFCA_9_EXTRACT:%.*]] = extractvalue [30 x i32] [[TMP3]], 9
28 ; CHECK-NEXT:    [[DOTFCA_10_EXTRACT:%.*]] = extractvalue [30 x i32] [[TMP3]], 10
29 ; CHECK-NEXT:    [[DOTFCA_11_EXTRACT:%.*]] = extractvalue [30 x i32] [[TMP3]], 11
30 ; CHECK-NEXT:    [[DOTFCA_12_EXTRACT:%.*]] = extractvalue [30 x i32] [[TMP3]], 12
31 ; CHECK-NEXT:    [[DOTFCA_13_EXTRACT:%.*]] = extractvalue [30 x i32] [[TMP3]], 13
32 ; CHECK-NEXT:    [[DOTFCA_14_EXTRACT:%.*]] = extractvalue [30 x i32] [[TMP3]], 14
33 ; CHECK-NEXT:    [[DOTFCA_15_EXTRACT:%.*]] = extractvalue [30 x i32] [[TMP3]], 15
34 ; CHECK-NEXT:    [[DOTFCA_16_EXTRACT:%.*]] = extractvalue [30 x i32] [[TMP3]], 16
35 ; CHECK-NEXT:    [[DOTFCA_17_EXTRACT:%.*]] = extractvalue [30 x i32] [[TMP3]], 17
36 ; CHECK-NEXT:    [[DOTFCA_18_EXTRACT:%.*]] = extractvalue [30 x i32] [[TMP3]], 18
37 ; CHECK-NEXT:    [[DOTFCA_19_EXTRACT:%.*]] = extractvalue [30 x i32] [[TMP3]], 19
38 ; CHECK-NEXT:    [[DOTFCA_20_EXTRACT:%.*]] = extractvalue [30 x i32] [[TMP3]], 20
39 ; CHECK-NEXT:    [[DOTFCA_21_EXTRACT:%.*]] = extractvalue [30 x i32] [[TMP3]], 21
40 ; CHECK-NEXT:    [[DOTFCA_22_EXTRACT:%.*]] = extractvalue [30 x i32] [[TMP3]], 22
41 ; CHECK-NEXT:    [[DOTFCA_23_EXTRACT:%.*]] = extractvalue [30 x i32] [[TMP3]], 23
42 ; CHECK-NEXT:    [[DOTFCA_24_EXTRACT:%.*]] = extractvalue [30 x i32] [[TMP3]], 24
43 ; CHECK-NEXT:    [[DOTFCA_25_EXTRACT:%.*]] = extractvalue [30 x i32] [[TMP3]], 25
44 ; CHECK-NEXT:    [[DOTFCA_26_EXTRACT:%.*]] = extractvalue [30 x i32] [[TMP3]], 26
45 ; CHECK-NEXT:    [[DOTFCA_27_EXTRACT:%.*]] = extractvalue [30 x i32] [[TMP3]], 27
46 ; CHECK-NEXT:    [[TMP23:%.*]] = extractvalue [30 x i32] [[TMP3]], 28
47 ; CHECK-NEXT:    [[DOTFCA_29_EXTRACT:%.*]] = extractvalue [30 x i32] [[TMP3]], 29
48 ; CHECK-NEXT:    [[TMP4:%.*]] = freeze [[STRUCTC:%.*]] poison
49 ; CHECK-NEXT:    [[DOTFCA_0_0_EXTRACT:%.*]] = extractvalue [[STRUCTC]] [[TMP4]], 0, 0
50 ; CHECK-NEXT:    [[DOTFCA_0_1_EXTRACT:%.*]] = extractvalue [[STRUCTC]] [[TMP4]], 0, 1
51 ; CHECK-NEXT:    [[DOTFCA_0_2_EXTRACT:%.*]] = extractvalue [[STRUCTC]] [[TMP4]], 0, 2
52 ; CHECK-NEXT:    [[DOTFCA_0_3_EXTRACT:%.*]] = extractvalue [[STRUCTC]] [[TMP4]], 0, 3
53 ; CHECK-NEXT:    [[DOTFCA_0_4_EXTRACT:%.*]] = extractvalue [[STRUCTC]] [[TMP4]], 0, 4
54 ; CHECK-NEXT:    [[DOTFCA_0_5_EXTRACT:%.*]] = extractvalue [[STRUCTC]] [[TMP4]], 0, 5
55 ; CHECK-NEXT:    [[DOTFCA_0_6_EXTRACT:%.*]] = extractvalue [[STRUCTC]] [[TMP4]], 0, 6
56 ; CHECK-NEXT:    [[DOTFCA_0_7_EXTRACT:%.*]] = extractvalue [[STRUCTC]] [[TMP4]], 0, 7
57 ; CHECK-NEXT:    [[DOTFCA_0_8_EXTRACT:%.*]] = extractvalue [[STRUCTC]] [[TMP4]], 0, 8
58 ; CHECK-NEXT:    [[DOTFCA_0_9_EXTRACT:%.*]] = extractvalue [[STRUCTC]] [[TMP4]], 0, 9
59 ; CHECK-NEXT:    [[DOTFCA_0_10_EXTRACT:%.*]] = extractvalue [[STRUCTC]] [[TMP4]], 0, 10
60 ; CHECK-NEXT:    [[DOTFCA_0_11_EXTRACT:%.*]] = extractvalue [[STRUCTC]] [[TMP4]], 0, 11
61 ; CHECK-NEXT:    [[DOTFCA_0_12_EXTRACT:%.*]] = extractvalue [[STRUCTC]] [[TMP4]], 0, 12
62 ; CHECK-NEXT:    [[DOTFCA_0_13_EXTRACT:%.*]] = extractvalue [[STRUCTC]] [[TMP4]], 0, 13
63 ; CHECK-NEXT:    [[DOTFCA_0_14_EXTRACT:%.*]] = extractvalue [[STRUCTC]] [[TMP4]], 0, 14
64 ; CHECK-NEXT:    [[DOTFCA_0_15_EXTRACT:%.*]] = extractvalue [[STRUCTC]] [[TMP4]], 0, 15
65 ; CHECK-NEXT:    [[DOTFCA_0_16_EXTRACT:%.*]] = extractvalue [[STRUCTC]] [[TMP4]], 0, 16
66 ; CHECK-NEXT:    [[DOTFCA_0_17_EXTRACT:%.*]] = extractvalue [[STRUCTC]] [[TMP4]], 0, 17
67 ; CHECK-NEXT:    [[DOTFCA_0_18_EXTRACT:%.*]] = extractvalue [[STRUCTC]] [[TMP4]], 0, 18
68 ; CHECK-NEXT:    [[DOTFCA_0_19_EXTRACT:%.*]] = extractvalue [[STRUCTC]] [[TMP4]], 0, 19
69 ; CHECK-NEXT:    [[DOTFCA_0_20_EXTRACT:%.*]] = extractvalue [[STRUCTC]] [[TMP4]], 0, 20
70 ; CHECK-NEXT:    [[DOTFCA_0_21_EXTRACT:%.*]] = extractvalue [[STRUCTC]] [[TMP4]], 0, 21
71 ; CHECK-NEXT:    [[DOTFCA_0_22_EXTRACT:%.*]] = extractvalue [[STRUCTC]] [[TMP4]], 0, 22
72 ; CHECK-NEXT:    [[DOTFCA_0_23_EXTRACT:%.*]] = extractvalue [[STRUCTC]] [[TMP4]], 0, 23
73 ; CHECK-NEXT:    [[DOTFCA_0_24_EXTRACT:%.*]] = extractvalue [[STRUCTC]] [[TMP4]], 0, 24
74 ; CHECK-NEXT:    [[DOTFCA_0_25_EXTRACT:%.*]] = extractvalue [[STRUCTC]] [[TMP4]], 0, 25
75 ; CHECK-NEXT:    [[DOTFCA_0_26_EXTRACT:%.*]] = extractvalue [[STRUCTC]] [[TMP4]], 0, 26
76 ; CHECK-NEXT:    [[DOTFCA_0_27_EXTRACT:%.*]] = extractvalue [[STRUCTC]] [[TMP4]], 0, 27
77 ; CHECK-NEXT:    [[DOTFCA_0_28_EXTRACT:%.*]] = extractvalue [[STRUCTC]] [[TMP4]], 0, 28
78 ; CHECK-NEXT:    [[DOTFCA_0_29_EXTRACT:%.*]] = extractvalue [[STRUCTC]] [[TMP4]], 0, 29
79 ; CHECK-NEXT:    [[DOTFCA_0_30_EXTRACT:%.*]] = extractvalue [[STRUCTC]] [[TMP4]], 0, 30
80 ; CHECK-NEXT:    [[DOTFCA_0_31_EXTRACT:%.*]] = extractvalue [[STRUCTC]] [[TMP4]], 0, 31
81 ; CHECK-NEXT:    [[DOTFCA_0_32_EXTRACT:%.*]] = extractvalue [[STRUCTC]] [[TMP4]], 0, 32
82 ; CHECK-NEXT:    [[DOTFCA_0_33_EXTRACT:%.*]] = extractvalue [[STRUCTC]] [[TMP4]], 0, 33
83 ; CHECK-NEXT:    [[DOTFCA_0_34_EXTRACT:%.*]] = extractvalue [[STRUCTC]] [[TMP4]], 0, 34
84 ; CHECK-NEXT:    [[DOTFCA_0_35_EXTRACT:%.*]] = extractvalue [[STRUCTC]] [[TMP4]], 0, 35
85 ; CHECK-NEXT:    [[DOTFCA_0_36_EXTRACT:%.*]] = extractvalue [[STRUCTC]] [[TMP4]], 0, 36
86 ; CHECK-NEXT:    [[DOTFCA_0_37_EXTRACT:%.*]] = extractvalue [[STRUCTC]] [[TMP4]], 0, 37
87 ; CHECK-NEXT:    [[DOTFCA_0_38_EXTRACT:%.*]] = extractvalue [[STRUCTC]] [[TMP4]], 0, 38
88 ; CHECK-NEXT:    [[DOTFCA_0_39_EXTRACT:%.*]] = extractvalue [[STRUCTC]] [[TMP4]], 0, 39
89 ; CHECK-NEXT:    [[DOTFCA_0_40_EXTRACT:%.*]] = extractvalue [[STRUCTC]] [[TMP4]], 0, 40
90 ; CHECK-NEXT:    [[DOTFCA_0_41_EXTRACT:%.*]] = extractvalue [[STRUCTC]] [[TMP4]], 0, 41
91 ; CHECK-NEXT:    [[DOTFCA_0_42_EXTRACT:%.*]] = extractvalue [[STRUCTC]] [[TMP4]], 0, 42
92 ; CHECK-NEXT:    [[DOTFCA_0_43_EXTRACT:%.*]] = extractvalue [[STRUCTC]] [[TMP4]], 0, 43
93 ; CHECK-NEXT:    [[DOTFCA_0_44_EXTRACT:%.*]] = extractvalue [[STRUCTC]] [[TMP4]], 0, 44
94 ; CHECK-NEXT:    [[DOTFCA_0_45_EXTRACT:%.*]] = extractvalue [[STRUCTC]] [[TMP4]], 0, 45
95 ; CHECK-NEXT:    [[DOTFCA_0_46_EXTRACT:%.*]] = extractvalue [[STRUCTC]] [[TMP4]], 0, 46
96 ; CHECK-NEXT:    [[DOTFCA_0_47_EXTRACT:%.*]] = extractvalue [[STRUCTC]] [[TMP4]], 0, 47
97 ; CHECK-NEXT:    [[DOTFCA_0_48_EXTRACT:%.*]] = extractvalue [[STRUCTC]] [[TMP4]], 0, 48
98 ; CHECK-NEXT:    [[DOTFCA_0_49_EXTRACT:%.*]] = extractvalue [[STRUCTC]] [[TMP4]], 0, 49
99 ; CHECK-NEXT:    [[TMP2:%.*]] = inttoptr i32 [[DOTFCA_0_EXTRACT]] to ptr
100 ; CHECK-NEXT:    [[TMP5:%.*]] = load i32, ptr [[TMP2]], align 4
101 ; CHECK-NEXT:    [[TMP27:%.*]] = getelementptr inbounds i32, ptr [[TMP2]], i32 1
102 ; CHECK-NEXT:    [[TMP7:%.*]] = load i32, ptr [[TMP27]], align 4
103 ; CHECK-NEXT:    [[TMP29:%.*]] = getelementptr inbounds i32, ptr [[TMP2]], i32 2
104 ; CHECK-NEXT:    [[TMP9:%.*]] = load i32, ptr [[TMP29]], align 4
105 ; CHECK-NEXT:    [[TMP31:%.*]] = getelementptr inbounds i32, ptr [[TMP2]], i32 3
106 ; CHECK-NEXT:    [[TMP11:%.*]] = load i32, ptr [[TMP31]], align 4
107 ; CHECK-NEXT:    [[TMP33:%.*]] = getelementptr inbounds i32, ptr [[TMP2]], i32 4
108 ; CHECK-NEXT:    [[TMP13:%.*]] = load i32, ptr [[TMP33]], align 4
109 ; CHECK-NEXT:    [[TMP35:%.*]] = getelementptr inbounds i32, ptr [[TMP2]], i32 5
110 ; CHECK-NEXT:    [[TMP15:%.*]] = load i32, ptr [[TMP35]], align 4
111 ; CHECK-NEXT:    [[TMP37:%.*]] = getelementptr inbounds i32, ptr [[TMP2]], i32 6
112 ; CHECK-NEXT:    [[TMP17:%.*]] = load i32, ptr [[TMP37]], align 4
113 ; CHECK-NEXT:    [[TMP39:%.*]] = getelementptr inbounds i32, ptr [[TMP2]], i32 7
114 ; CHECK-NEXT:    [[TMP19:%.*]] = load i32, ptr [[TMP39]], align 4
115 ; CHECK-NEXT:    [[TMP41:%.*]] = getelementptr inbounds i32, ptr [[TMP2]], i32 8
116 ; CHECK-NEXT:    [[TMP21:%.*]] = load i32, ptr [[TMP41]], align 4
117 ; CHECK-NEXT:    [[TMP43:%.*]] = getelementptr inbounds i32, ptr [[TMP2]], i32 9
118 ; CHECK-NEXT:    [[TMP24:%.*]] = load i32, ptr [[TMP43]], align 4
119 ; CHECK-NEXT:    [[TMP45:%.*]] = getelementptr inbounds i32, ptr [[TMP2]], i32 10
120 ; CHECK-NEXT:    [[TMP25:%.*]] = load i32, ptr [[TMP45]], align 4
121 ; CHECK-NEXT:    [[TMP47:%.*]] = getelementptr inbounds i32, ptr [[TMP2]], i32 11
122 ; CHECK-NEXT:    [[TMP28:%.*]] = load i32, ptr [[TMP47]], align 4
123 ; CHECK-NEXT:    [[TMP49:%.*]] = getelementptr inbounds i32, ptr [[TMP2]], i32 12
124 ; CHECK-NEXT:    [[TMP30:%.*]] = load i32, ptr [[TMP49]], align 4
125 ; CHECK-NEXT:    [[TMP51:%.*]] = getelementptr inbounds i32, ptr [[TMP2]], i32 13
126 ; CHECK-NEXT:    [[TMP32:%.*]] = load i32, ptr [[TMP51]], align 4
127 ; CHECK-NEXT:    [[TMP53:%.*]] = getelementptr inbounds i32, ptr [[TMP2]], i32 14
128 ; CHECK-NEXT:    [[TMP34:%.*]] = load i32, ptr [[TMP53]], align 4
129 ; CHECK-NEXT:    [[TMP55:%.*]] = getelementptr inbounds i32, ptr [[TMP2]], i32 15
130 ; CHECK-NEXT:    [[TMP36:%.*]] = load i32, ptr [[TMP55]], align 4
131 ; CHECK-NEXT:    [[TMP57:%.*]] = getelementptr inbounds i32, ptr [[TMP2]], i32 16
132 ; CHECK-NEXT:    [[TMP38:%.*]] = load i32, ptr [[TMP57]], align 4
133 ; CHECK-NEXT:    [[TMP59:%.*]] = getelementptr inbounds i32, ptr [[TMP2]], i32 17
134 ; CHECK-NEXT:    [[TMP40:%.*]] = load i32, ptr [[TMP59]], align 4
135 ; CHECK-NEXT:    [[TMP61:%.*]] = getelementptr inbounds i32, ptr [[TMP2]], i32 18
136 ; CHECK-NEXT:    [[TMP42:%.*]] = load i32, ptr [[TMP61]], align 4
137 ; CHECK-NEXT:    [[TMP63:%.*]] = getelementptr inbounds i32, ptr [[TMP2]], i32 19
138 ; CHECK-NEXT:    [[TMP44:%.*]] = load i32, ptr [[TMP63]], align 4
139 ; CHECK-NEXT:    [[TMP65:%.*]] = getelementptr inbounds i32, ptr [[TMP2]], i32 20
140 ; CHECK-NEXT:    [[TMP46:%.*]] = load i32, ptr [[TMP65]], align 4
141 ; CHECK-NEXT:    [[TMP67:%.*]] = getelementptr inbounds i32, ptr [[TMP2]], i32 21
142 ; CHECK-NEXT:    [[TMP48:%.*]] = load i32, ptr [[TMP67]], align 4
143 ; CHECK-NEXT:    [[TMP69:%.*]] = getelementptr inbounds i32, ptr [[TMP2]], i32 22
144 ; CHECK-NEXT:    [[TMP50:%.*]] = load i32, ptr [[TMP69]], align 4
145 ; CHECK-NEXT:    [[TMP71:%.*]] = getelementptr inbounds i32, ptr [[TMP2]], i32 23
146 ; CHECK-NEXT:    [[TMP52:%.*]] = load i32, ptr [[TMP71]], align 4
147 ; CHECK-NEXT:    [[TMP73:%.*]] = getelementptr inbounds i32, ptr [[TMP2]], i32 24
148 ; CHECK-NEXT:    [[TMP54:%.*]] = load i32, ptr [[TMP73]], align 4
149 ; CHECK-NEXT:    [[TMP75:%.*]] = getelementptr inbounds i32, ptr [[TMP2]], i32 25
150 ; CHECK-NEXT:    [[TMP56:%.*]] = load i32, ptr [[TMP75]], align 4
151 ; CHECK-NEXT:    [[TMP77:%.*]] = getelementptr inbounds i32, ptr [[TMP2]], i32 26
152 ; CHECK-NEXT:    [[TMP62:%.*]] = load i32, ptr [[TMP77]], align 4
153 ; CHECK-NEXT:    [[TMP60:%.*]] = inttoptr i32 [[DOTFCA_0_EXTRACT]] to ptr
154 ; CHECK-NEXT:    [[TMP58:%.*]] = extractvalue { [[STRUCTA]], [23 x i32], [30 x i32] } [[TMP1]], 0
155 ; CHECK-NEXT:    [[DOTFCA_0_EXTRACT57:%.*]] = extractvalue [[STRUCTA]] [[TMP58]], 0
156 ; CHECK-NEXT:    ret void
158 entryresume.0:
159   %1 = call ptr @getter(i32 108)
160   %2 = insertvalue { %structA, [23 x i32], [30 x i32] } poison, %structA %arg01, 0
161   %3 = insertvalue { %structA, [23 x i32], [30 x i32] } %2, [23 x i32] %arg12, 1
162   %4 = insertvalue { %structA, [23 x i32], [30 x i32] } %3, [30 x i32] %arg23, 2
163   %5 = extractvalue { %structA, [23 x i32], [30 x i32] } %4, 2
164   %.fca.0.extract = extractvalue [30 x i32] %5, 0
165   %.fca.1.extract = extractvalue [30 x i32] %5, 1
166   %.fca.2.extract = extractvalue [30 x i32] %5, 2
167   %.fca.3.extract = extractvalue [30 x i32] %5, 3
168   %.fca.4.extract = extractvalue [30 x i32] %5, 4
169   %.fca.5.extract = extractvalue [30 x i32] %5, 5
170   %.fca.6.extract = extractvalue [30 x i32] %5, 6
171   %.fca.7.extract = extractvalue [30 x i32] %5, 7
172   %.fca.8.extract = extractvalue [30 x i32] %5, 8
173   %.fca.9.extract = extractvalue [30 x i32] %5, 9
174   %.fca.10.extract = extractvalue [30 x i32] %5, 10
175   %.fca.11.extract = extractvalue [30 x i32] %5, 11
176   %.fca.12.extract = extractvalue [30 x i32] %5, 12
177   %.fca.13.extract = extractvalue [30 x i32] %5, 13
178   %.fca.14.extract = extractvalue [30 x i32] %5, 14
179   %.fca.15.extract = extractvalue [30 x i32] %5, 15
180   %.fca.16.extract = extractvalue [30 x i32] %5, 16
181   %.fca.17.extract = extractvalue [30 x i32] %5, 17
182   %.fca.18.extract = extractvalue [30 x i32] %5, 18
183   %.fca.19.extract = extractvalue [30 x i32] %5, 19
184   %.fca.20.extract = extractvalue [30 x i32] %5, 20
185   %.fca.21.extract = extractvalue [30 x i32] %5, 21
186   %.fca.22.extract = extractvalue [30 x i32] %5, 22
187   %.fca.23.extract = extractvalue [30 x i32] %5, 23
188   %.fca.24.extract = extractvalue [30 x i32] %5, 24
189   %.fca.25.extract = extractvalue [30 x i32] %5, 25
190   %.fca.26.extract = extractvalue [30 x i32] %5, 26
191   %.fca.27.extract = extractvalue [30 x i32] %5, 27
192   %.fca.28.extract = extractvalue [30 x i32] %5, 28
193   %.fca.29.extract = extractvalue [30 x i32] %5, 29
194   %6 = freeze %structC poison
195   %.fca.0.0.extract = extractvalue %structC %6, 0, 0
196   %.fca.0.1.extract = extractvalue %structC %6, 0, 1
197   %.fca.0.2.extract = extractvalue %structC %6, 0, 2
198   %.fca.0.3.extract = extractvalue %structC %6, 0, 3
199   %.fca.0.4.extract = extractvalue %structC %6, 0, 4
200   %.fca.0.5.extract = extractvalue %structC %6, 0, 5
201   %.fca.0.6.extract = extractvalue %structC %6, 0, 6
202   %.fca.0.7.extract = extractvalue %structC %6, 0, 7
203   %.fca.0.8.extract = extractvalue %structC %6, 0, 8
204   %.fca.0.9.extract = extractvalue %structC %6, 0, 9
205   %.fca.0.10.extract = extractvalue %structC %6, 0, 10
206   %.fca.0.11.extract = extractvalue %structC %6, 0, 11
207   %.fca.0.12.extract = extractvalue %structC %6, 0, 12
208   %.fca.0.13.extract = extractvalue %structC %6, 0, 13
209   %.fca.0.14.extract = extractvalue %structC %6, 0, 14
210   %.fca.0.15.extract = extractvalue %structC %6, 0, 15
211   %.fca.0.16.extract = extractvalue %structC %6, 0, 16
212   %.fca.0.17.extract = extractvalue %structC %6, 0, 17
213   %.fca.0.18.extract = extractvalue %structC %6, 0, 18
214   %.fca.0.19.extract = extractvalue %structC %6, 0, 19
215   %.fca.0.20.extract = extractvalue %structC %6, 0, 20
216   %.fca.0.21.extract = extractvalue %structC %6, 0, 21
217   %.fca.0.22.extract = extractvalue %structC %6, 0, 22
218   %.fca.0.23.extract = extractvalue %structC %6, 0, 23
219   %.fca.0.24.extract = extractvalue %structC %6, 0, 24
220   %.fca.0.25.extract = extractvalue %structC %6, 0, 25
221   %.fca.0.26.extract = extractvalue %structC %6, 0, 26
222   %.fca.0.27.extract = extractvalue %structC %6, 0, 27
223   %.fca.0.28.extract = extractvalue %structC %6, 0, 28
224   %.fca.0.29.extract = extractvalue %structC %6, 0, 29
225   %.fca.0.30.extract = extractvalue %structC %6, 0, 30
226   %.fca.0.31.extract = extractvalue %structC %6, 0, 31
227   %.fca.0.32.extract = extractvalue %structC %6, 0, 32
228   %.fca.0.33.extract = extractvalue %structC %6, 0, 33
229   %.fca.0.34.extract = extractvalue %structC %6, 0, 34
230   %.fca.0.35.extract = extractvalue %structC %6, 0, 35
231   %.fca.0.36.extract = extractvalue %structC %6, 0, 36
232   %.fca.0.37.extract = extractvalue %structC %6, 0, 37
233   %.fca.0.38.extract = extractvalue %structC %6, 0, 38
234   %.fca.0.39.extract = extractvalue %structC %6, 0, 39
235   %.fca.0.40.extract = extractvalue %structC %6, 0, 40
236   %.fca.0.41.extract = extractvalue %structC %6, 0, 41
237   %.fca.0.42.extract = extractvalue %structC %6, 0, 42
238   %.fca.0.43.extract = extractvalue %structC %6, 0, 43
239   %.fca.0.44.extract = extractvalue %structC %6, 0, 44
240   %.fca.0.45.extract = extractvalue %structC %6, 0, 45
241   %.fca.0.46.extract = extractvalue %structC %6, 0, 46
242   %.fca.0.47.extract = extractvalue %structC %6, 0, 47
243   %.fca.0.48.extract = extractvalue %structC %6, 0, 48
244   %.fca.0.49.extract = extractvalue %structC %6, 0, 49
245   %7 = inttoptr i32 %.fca.0.extract to ptr
246   %8 = load i32, ptr %7, align 4
247   %9 = getelementptr inbounds i32, ptr %7, i32 1
248   %10 = load i32, ptr %9, align 4
249   %11 = getelementptr inbounds i32, ptr %7, i32 2
250   %12 = load i32, ptr %11, align 4
251   %13 = getelementptr inbounds i32, ptr %7, i32 3
252   %14 = load i32, ptr %13, align 4
253   %15 = getelementptr inbounds i32, ptr %7, i32 4
254   %16 = load i32, ptr %15, align 4
255   %17 = getelementptr inbounds i32, ptr %7, i32 5
256   %18 = load i32, ptr %17, align 4
257   %19 = getelementptr inbounds i32, ptr %7, i32 6
258   %20 = load i32, ptr %19, align 4
259   %21 = getelementptr inbounds i32, ptr %7, i32 7
260   %22 = load i32, ptr %21, align 4
261   %23 = getelementptr inbounds i32, ptr %7, i32 8
262   %24 = load i32, ptr %23, align 4
263   %25 = getelementptr inbounds i32, ptr %7, i32 9
264   %26 = load i32, ptr %25, align 4
265   %27 = getelementptr inbounds i32, ptr %7, i32 10
266   %28 = load i32, ptr %27, align 4
267   %29 = getelementptr inbounds i32, ptr %7, i32 11
268   %30 = load i32, ptr %29, align 4
269   %31 = getelementptr inbounds i32, ptr %7, i32 12
270   %32 = load i32, ptr %31, align 4
271   %33 = getelementptr inbounds i32, ptr %7, i32 13
272   %34 = load i32, ptr %33, align 4
273   %35 = getelementptr inbounds i32, ptr %7, i32 14
274   %36 = load i32, ptr %35, align 4
275   %37 = getelementptr inbounds i32, ptr %7, i32 15
276   %38 = load i32, ptr %37, align 4
277   %39 = getelementptr inbounds i32, ptr %7, i32 16
278   %40 = load i32, ptr %39, align 4
279   %41 = getelementptr inbounds i32, ptr %7, i32 17
280   %42 = load i32, ptr %41, align 4
281   %43 = getelementptr inbounds i32, ptr %7, i32 18
282   %44 = load i32, ptr %43, align 4
283   %45 = getelementptr inbounds i32, ptr %7, i32 19
284   %46 = load i32, ptr %45, align 4
285   %47 = getelementptr inbounds i32, ptr %7, i32 20
286   %48 = load i32, ptr %47, align 4
287   %49 = getelementptr inbounds i32, ptr %7, i32 21
288   %50 = load i32, ptr %49, align 4
289   %51 = getelementptr inbounds i32, ptr %7, i32 22
290   %52 = load i32, ptr %51, align 4
291   %53 = getelementptr inbounds i32, ptr %7, i32 23
292   %54 = load i32, ptr %53, align 4
293   %55 = getelementptr inbounds i32, ptr %7, i32 24
294   %56 = load i32, ptr %55, align 4
295   %57 = getelementptr inbounds i32, ptr %7, i32 25
296   %58 = load i32, ptr %57, align 4
297   %59 = getelementptr inbounds i32, ptr %7, i32 26
298   %60 = load i32, ptr %59, align 4
299   %61 = inttoptr i32 %.fca.0.extract to ptr
300   %62 = extractvalue { %structA, [23 x i32], [30 x i32] } %4, 0
301   %.fca.0.extract57 = extractvalue %structA %62, 0
302   ret void
305 declare ptr @getter(i32)