Skip to content

Commit d87de5e

Browse files
committed
update_test_checks: pre-commit a new test
This test illustrates a surprising failure to keep IR value names stable. Change-Id: I242fba6668971177919dfe4092e6bd16e0d83c13
1 parent 616d1d2 commit d87de5e

File tree

3 files changed

+615
-0
lines changed

3 files changed

+615
-0
lines changed
Lines changed: 305 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,305 @@
1+
; NOTE: Assertions have been autogenerated by utils/update_test_checks.py UTC_ARGS: --version 3
2+
; RUN: opt < %s -S | FileCheck %s
3+
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.
8+
9+
%structA = type { <3 x i32> }
10+
%structC = type { [50 x i32] }
11+
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
157+
;
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
303+
}
304+
305+
declare ptr @getter(i32)

0 commit comments

Comments
 (0)