Run DCE after a LoopFlatten test to reduce spurious output [nfc]
[llvm-project.git] / llvm / test / CodeGen / Mips / indirect-jump-hazard / jumptables.ll
blob1ce46cfa07cf87fec8f5dc25a401b57e1da08ed7
1 ; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py
2 ; RUN: llc  < %s -mtriple=mips-mti-linux-gnu -relocation-model=static \
3 ; RUN:   -mips-tail-calls=1 -mcpu=mips32r2 -mattr=+use-indirect-jump-hazard \
4 ; RUN:   -verify-machineinstrs | FileCheck %s --check-prefix=MIPS32R2
5 ; RUN: llc  < %s -mtriple=mips-img-linux-gnu -relocation-model=static \
6 ; RUN:   -mips-tail-calls=1 -mcpu=mips32r6 -mattr=+use-indirect-jump-hazard \
7 ; RUN:   -verify-machineinstrs | FileCheck %s --check-prefix=MIPS32R6
8 ; RUN: llc  < %s -mtriple=mips64-mti-linux-gnu -relocation-model=static \
9 ; RUN:   -mips-tail-calls=1 -mcpu=mips64r2 -mattr=+use-indirect-jump-hazard \
10 ; RUN:   -verify-machineinstrs | FileCheck %s --check-prefix=MIPS64R2
11 ; RUN: llc  < %s -mtriple=mips64-img-linux-gnu -relocation-model=static \
12 ; RUN:   -mips-tail-calls=1 -mcpu=mips64r6 -mattr=+use-indirect-jump-hazard \
13 ; RUN:   -verify-machineinstrs | FileCheck %s --check-prefix=MIPS64R6
15 ; RUN: llc  < %s -mtriple=mips-mti-linux-gnu -relocation-model=pic \
16 ; RUN:   -mips-tail-calls=1 -mcpu=mips32r2 -mattr=+use-indirect-jump-hazard \
17 ; RUN:   -verify-machineinstrs | FileCheck %s --check-prefix=PIC-MIPS32R2
18 ; RUN: llc  < %s -mtriple=mips-img-linux-gnu -relocation-model=pic \
19 ; RUN:   -mips-tail-calls=1 -mcpu=mips32r6 -mattr=+use-indirect-jump-hazard \
20 ; RUN:   -verify-machineinstrs | FileCheck %s --check-prefix=PIC-MIPS32R6
21 ; RUN: llc  < %s -mtriple=mips64-mti-linux-gnu -relocation-model=pic \
22 ; RUN:   -mips-tail-calls=1 -mcpu=mips64r2 -mattr=+use-indirect-jump-hazard \
23 ; RUN:   -verify-machineinstrs | FileCheck %s --check-prefix=PIC-MIPS64R2
24 ; RUN: llc  < %s -mtriple=mips64-img-linux-gnu -relocation-model=pic \
25 ; RUN:   -mips-tail-calls=1 -mcpu=mips64r6 -mattr=+use-indirect-jump-hazard \
26 ; RUN:   -verify-machineinstrs | FileCheck %s --check-prefix=PIC-MIPS64R6
28 @.str = private unnamed_addr constant [2 x i8] c"A\00", align 1
29 @.str.1 = private unnamed_addr constant [2 x i8] c"B\00", align 1
30 @.str.2 = private unnamed_addr constant [2 x i8] c"C\00", align 1
31 @.str.3 = private unnamed_addr constant [2 x i8] c"D\00", align 1
32 @.str.4 = private unnamed_addr constant [2 x i8] c"E\00", align 1
33 @.str.5 = private unnamed_addr constant [2 x i8] c"F\00", align 1
34 @.str.6 = private unnamed_addr constant [2 x i8] c"G\00", align 1
35 @.str.7 = private unnamed_addr constant [1 x i8] zeroinitializer, align 1
37 define ptr @_Z3fooi(i32 signext %Letter) {
38 ; MIPS32R2-LABEL: _Z3fooi:
39 ; MIPS32R2:       # %bb.0: # %entry
40 ; MIPS32R2-NEXT:    addiu $sp, $sp, -16
41 ; MIPS32R2-NEXT:    .cfi_def_cfa_offset 16
42 ; MIPS32R2-NEXT:    sltiu $1, $4, 7
43 ; MIPS32R2-NEXT:    beqz $1, $BB0_6
44 ; MIPS32R2-NEXT:    sw $4, 4($sp)
45 ; MIPS32R2-NEXT:  $BB0_1: # %entry
46 ; MIPS32R2-NEXT:    sll $1, $4, 2
47 ; MIPS32R2-NEXT:    lui $2, %hi($JTI0_0)
48 ; MIPS32R2-NEXT:    addu $1, $1, $2
49 ; MIPS32R2-NEXT:    lw $1, %lo($JTI0_0)($1)
50 ; MIPS32R2-NEXT:    jr.hb $1
51 ; MIPS32R2-NEXT:    nop
52 ; MIPS32R2-NEXT:  $BB0_2: # %sw.bb
53 ; MIPS32R2-NEXT:    lui $1, %hi($.str)
54 ; MIPS32R2-NEXT:    addiu $1, $1, %lo($.str)
55 ; MIPS32R2-NEXT:    j $BB0_10
56 ; MIPS32R2-NEXT:    sw $1, 8($sp)
57 ; MIPS32R2-NEXT:  $BB0_3: # %sw.bb4
58 ; MIPS32R2-NEXT:    lui $1, %hi($.str.4)
59 ; MIPS32R2-NEXT:    addiu $1, $1, %lo($.str.4)
60 ; MIPS32R2-NEXT:    j $BB0_10
61 ; MIPS32R2-NEXT:    sw $1, 8($sp)
62 ; MIPS32R2-NEXT:  $BB0_4: # %sw.bb2
63 ; MIPS32R2-NEXT:    lui $1, %hi($.str.2)
64 ; MIPS32R2-NEXT:    addiu $1, $1, %lo($.str.2)
65 ; MIPS32R2-NEXT:    j $BB0_10
66 ; MIPS32R2-NEXT:    sw $1, 8($sp)
67 ; MIPS32R2-NEXT:  $BB0_5: # %sw.bb3
68 ; MIPS32R2-NEXT:    lui $1, %hi($.str.3)
69 ; MIPS32R2-NEXT:    addiu $1, $1, %lo($.str.3)
70 ; MIPS32R2-NEXT:    j $BB0_10
71 ; MIPS32R2-NEXT:    sw $1, 8($sp)
72 ; MIPS32R2-NEXT:  $BB0_6: # %sw.epilog
73 ; MIPS32R2-NEXT:    lui $1, %hi($.str.7)
74 ; MIPS32R2-NEXT:    addiu $1, $1, %lo($.str.7)
75 ; MIPS32R2-NEXT:    j $BB0_10
76 ; MIPS32R2-NEXT:    sw $1, 8($sp)
77 ; MIPS32R2-NEXT:  $BB0_7: # %sw.bb1
78 ; MIPS32R2-NEXT:    lui $1, %hi($.str.1)
79 ; MIPS32R2-NEXT:    addiu $1, $1, %lo($.str.1)
80 ; MIPS32R2-NEXT:    j $BB0_10
81 ; MIPS32R2-NEXT:    sw $1, 8($sp)
82 ; MIPS32R2-NEXT:  $BB0_8: # %sw.bb5
83 ; MIPS32R2-NEXT:    lui $1, %hi($.str.5)
84 ; MIPS32R2-NEXT:    addiu $1, $1, %lo($.str.5)
85 ; MIPS32R2-NEXT:    j $BB0_10
86 ; MIPS32R2-NEXT:    sw $1, 8($sp)
87 ; MIPS32R2-NEXT:  $BB0_9: # %sw.bb6
88 ; MIPS32R2-NEXT:    lui $1, %hi($.str.6)
89 ; MIPS32R2-NEXT:    addiu $1, $1, %lo($.str.6)
90 ; MIPS32R2-NEXT:    sw $1, 8($sp)
91 ; MIPS32R2-NEXT:  $BB0_10: # %return
92 ; MIPS32R2-NEXT:    lw $2, 8($sp)
93 ; MIPS32R2-NEXT:    jr $ra
94 ; MIPS32R2-NEXT:    addiu $sp, $sp, 16
96 ; MIPS32R6-LABEL: _Z3fooi:
97 ; MIPS32R6:       # %bb.0: # %entry
98 ; MIPS32R6-NEXT:    addiu $sp, $sp, -16
99 ; MIPS32R6-NEXT:    .cfi_def_cfa_offset 16
100 ; MIPS32R6-NEXT:    sltiu $1, $4, 7
101 ; MIPS32R6-NEXT:    beqz $1, $BB0_6
102 ; MIPS32R6-NEXT:    sw $4, 4($sp)
103 ; MIPS32R6-NEXT:  $BB0_1: # %entry
104 ; MIPS32R6-NEXT:    sll $1, $4, 2
105 ; MIPS32R6-NEXT:    lui $2, %hi($JTI0_0)
106 ; MIPS32R6-NEXT:    addu $1, $1, $2
107 ; MIPS32R6-NEXT:    lw $1, %lo($JTI0_0)($1)
108 ; MIPS32R6-NEXT:    jr.hb $1
109 ; MIPS32R6-NEXT:    nop
110 ; MIPS32R6-NEXT:  $BB0_2: # %sw.bb
111 ; MIPS32R6-NEXT:    lui $1, %hi($.str)
112 ; MIPS32R6-NEXT:    addiu $1, $1, %lo($.str)
113 ; MIPS32R6-NEXT:    j $BB0_10
114 ; MIPS32R6-NEXT:    sw $1, 8($sp)
115 ; MIPS32R6-NEXT:  $BB0_3: # %sw.bb4
116 ; MIPS32R6-NEXT:    lui $1, %hi($.str.4)
117 ; MIPS32R6-NEXT:    addiu $1, $1, %lo($.str.4)
118 ; MIPS32R6-NEXT:    j $BB0_10
119 ; MIPS32R6-NEXT:    sw $1, 8($sp)
120 ; MIPS32R6-NEXT:  $BB0_4: # %sw.bb2
121 ; MIPS32R6-NEXT:    lui $1, %hi($.str.2)
122 ; MIPS32R6-NEXT:    addiu $1, $1, %lo($.str.2)
123 ; MIPS32R6-NEXT:    j $BB0_10
124 ; MIPS32R6-NEXT:    sw $1, 8($sp)
125 ; MIPS32R6-NEXT:  $BB0_5: # %sw.bb3
126 ; MIPS32R6-NEXT:    lui $1, %hi($.str.3)
127 ; MIPS32R6-NEXT:    addiu $1, $1, %lo($.str.3)
128 ; MIPS32R6-NEXT:    j $BB0_10
129 ; MIPS32R6-NEXT:    sw $1, 8($sp)
130 ; MIPS32R6-NEXT:  $BB0_6: # %sw.epilog
131 ; MIPS32R6-NEXT:    lui $1, %hi($.str.7)
132 ; MIPS32R6-NEXT:    addiu $1, $1, %lo($.str.7)
133 ; MIPS32R6-NEXT:    j $BB0_10
134 ; MIPS32R6-NEXT:    sw $1, 8($sp)
135 ; MIPS32R6-NEXT:  $BB0_7: # %sw.bb1
136 ; MIPS32R6-NEXT:    lui $1, %hi($.str.1)
137 ; MIPS32R6-NEXT:    addiu $1, $1, %lo($.str.1)
138 ; MIPS32R6-NEXT:    j $BB0_10
139 ; MIPS32R6-NEXT:    sw $1, 8($sp)
140 ; MIPS32R6-NEXT:  $BB0_8: # %sw.bb5
141 ; MIPS32R6-NEXT:    lui $1, %hi($.str.5)
142 ; MIPS32R6-NEXT:    addiu $1, $1, %lo($.str.5)
143 ; MIPS32R6-NEXT:    j $BB0_10
144 ; MIPS32R6-NEXT:    sw $1, 8($sp)
145 ; MIPS32R6-NEXT:  $BB0_9: # %sw.bb6
146 ; MIPS32R6-NEXT:    lui $1, %hi($.str.6)
147 ; MIPS32R6-NEXT:    addiu $1, $1, %lo($.str.6)
148 ; MIPS32R6-NEXT:    sw $1, 8($sp)
149 ; MIPS32R6-NEXT:  $BB0_10: # %return
150 ; MIPS32R6-NEXT:    lw $2, 8($sp)
151 ; MIPS32R6-NEXT:    jr $ra
152 ; MIPS32R6-NEXT:    addiu $sp, $sp, 16
154 ; MIPS64R2-LABEL: _Z3fooi:
155 ; MIPS64R2:       # %bb.0: # %entry
156 ; MIPS64R2-NEXT:    daddiu $sp, $sp, -16
157 ; MIPS64R2-NEXT:    .cfi_def_cfa_offset 16
158 ; MIPS64R2-NEXT:    dext $2, $4, 0, 32
159 ; MIPS64R2-NEXT:    sltiu $1, $2, 7
160 ; MIPS64R2-NEXT:    beqz $1, .LBB0_6
161 ; MIPS64R2-NEXT:    sw $4, 4($sp)
162 ; MIPS64R2-NEXT:  .LBB0_1: # %entry
163 ; MIPS64R2-NEXT:    dsll $1, $2, 3
164 ; MIPS64R2-NEXT:    lui $2, %highest(.LJTI0_0)
165 ; MIPS64R2-NEXT:    daddiu $2, $2, %higher(.LJTI0_0)
166 ; MIPS64R2-NEXT:    dsll $2, $2, 16
167 ; MIPS64R2-NEXT:    daddiu $2, $2, %hi(.LJTI0_0)
168 ; MIPS64R2-NEXT:    dsll $2, $2, 16
169 ; MIPS64R2-NEXT:    daddu $1, $1, $2
170 ; MIPS64R2-NEXT:    ld $1, %lo(.LJTI0_0)($1)
171 ; MIPS64R2-NEXT:    jr.hb $1
172 ; MIPS64R2-NEXT:    nop
173 ; MIPS64R2-NEXT:  .LBB0_2: # %sw.bb
174 ; MIPS64R2-NEXT:    lui $1, %highest(.L.str)
175 ; MIPS64R2-NEXT:    daddiu $1, $1, %higher(.L.str)
176 ; MIPS64R2-NEXT:    dsll $1, $1, 16
177 ; MIPS64R2-NEXT:    daddiu $1, $1, %hi(.L.str)
178 ; MIPS64R2-NEXT:    dsll $1, $1, 16
179 ; MIPS64R2-NEXT:    daddiu $1, $1, %lo(.L.str)
180 ; MIPS64R2-NEXT:    j .LBB0_10
181 ; MIPS64R2-NEXT:    sd $1, 8($sp)
182 ; MIPS64R2-NEXT:  .LBB0_3: # %sw.bb4
183 ; MIPS64R2-NEXT:    lui $1, %highest(.L.str.4)
184 ; MIPS64R2-NEXT:    daddiu $1, $1, %higher(.L.str.4)
185 ; MIPS64R2-NEXT:    dsll $1, $1, 16
186 ; MIPS64R2-NEXT:    daddiu $1, $1, %hi(.L.str.4)
187 ; MIPS64R2-NEXT:    dsll $1, $1, 16
188 ; MIPS64R2-NEXT:    daddiu $1, $1, %lo(.L.str.4)
189 ; MIPS64R2-NEXT:    j .LBB0_10
190 ; MIPS64R2-NEXT:    sd $1, 8($sp)
191 ; MIPS64R2-NEXT:  .LBB0_4: # %sw.bb2
192 ; MIPS64R2-NEXT:    lui $1, %highest(.L.str.2)
193 ; MIPS64R2-NEXT:    daddiu $1, $1, %higher(.L.str.2)
194 ; MIPS64R2-NEXT:    dsll $1, $1, 16
195 ; MIPS64R2-NEXT:    daddiu $1, $1, %hi(.L.str.2)
196 ; MIPS64R2-NEXT:    dsll $1, $1, 16
197 ; MIPS64R2-NEXT:    daddiu $1, $1, %lo(.L.str.2)
198 ; MIPS64R2-NEXT:    j .LBB0_10
199 ; MIPS64R2-NEXT:    sd $1, 8($sp)
200 ; MIPS64R2-NEXT:  .LBB0_5: # %sw.bb3
201 ; MIPS64R2-NEXT:    lui $1, %highest(.L.str.3)
202 ; MIPS64R2-NEXT:    daddiu $1, $1, %higher(.L.str.3)
203 ; MIPS64R2-NEXT:    dsll $1, $1, 16
204 ; MIPS64R2-NEXT:    daddiu $1, $1, %hi(.L.str.3)
205 ; MIPS64R2-NEXT:    dsll $1, $1, 16
206 ; MIPS64R2-NEXT:    daddiu $1, $1, %lo(.L.str.3)
207 ; MIPS64R2-NEXT:    j .LBB0_10
208 ; MIPS64R2-NEXT:    sd $1, 8($sp)
209 ; MIPS64R2-NEXT:  .LBB0_6: # %sw.epilog
210 ; MIPS64R2-NEXT:    lui $1, %highest(.L.str.7)
211 ; MIPS64R2-NEXT:    daddiu $1, $1, %higher(.L.str.7)
212 ; MIPS64R2-NEXT:    dsll $1, $1, 16
213 ; MIPS64R2-NEXT:    daddiu $1, $1, %hi(.L.str.7)
214 ; MIPS64R2-NEXT:    dsll $1, $1, 16
215 ; MIPS64R2-NEXT:    daddiu $1, $1, %lo(.L.str.7)
216 ; MIPS64R2-NEXT:    j .LBB0_10
217 ; MIPS64R2-NEXT:    sd $1, 8($sp)
218 ; MIPS64R2-NEXT:  .LBB0_7: # %sw.bb1
219 ; MIPS64R2-NEXT:    lui $1, %highest(.L.str.1)
220 ; MIPS64R2-NEXT:    daddiu $1, $1, %higher(.L.str.1)
221 ; MIPS64R2-NEXT:    dsll $1, $1, 16
222 ; MIPS64R2-NEXT:    daddiu $1, $1, %hi(.L.str.1)
223 ; MIPS64R2-NEXT:    dsll $1, $1, 16
224 ; MIPS64R2-NEXT:    daddiu $1, $1, %lo(.L.str.1)
225 ; MIPS64R2-NEXT:    j .LBB0_10
226 ; MIPS64R2-NEXT:    sd $1, 8($sp)
227 ; MIPS64R2-NEXT:  .LBB0_8: # %sw.bb5
228 ; MIPS64R2-NEXT:    lui $1, %highest(.L.str.5)
229 ; MIPS64R2-NEXT:    daddiu $1, $1, %higher(.L.str.5)
230 ; MIPS64R2-NEXT:    dsll $1, $1, 16
231 ; MIPS64R2-NEXT:    daddiu $1, $1, %hi(.L.str.5)
232 ; MIPS64R2-NEXT:    dsll $1, $1, 16
233 ; MIPS64R2-NEXT:    daddiu $1, $1, %lo(.L.str.5)
234 ; MIPS64R2-NEXT:    j .LBB0_10
235 ; MIPS64R2-NEXT:    sd $1, 8($sp)
236 ; MIPS64R2-NEXT:  .LBB0_9: # %sw.bb6
237 ; MIPS64R2-NEXT:    lui $1, %highest(.L.str.6)
238 ; MIPS64R2-NEXT:    daddiu $1, $1, %higher(.L.str.6)
239 ; MIPS64R2-NEXT:    dsll $1, $1, 16
240 ; MIPS64R2-NEXT:    daddiu $1, $1, %hi(.L.str.6)
241 ; MIPS64R2-NEXT:    dsll $1, $1, 16
242 ; MIPS64R2-NEXT:    daddiu $1, $1, %lo(.L.str.6)
243 ; MIPS64R2-NEXT:    sd $1, 8($sp)
244 ; MIPS64R2-NEXT:  .LBB0_10: # %return
245 ; MIPS64R2-NEXT:    ld $2, 8($sp)
246 ; MIPS64R2-NEXT:    jr $ra
247 ; MIPS64R2-NEXT:    daddiu $sp, $sp, 16
249 ; MIPS64R6-LABEL: _Z3fooi:
250 ; MIPS64R6:       # %bb.0: # %entry
251 ; MIPS64R6-NEXT:    daddiu $sp, $sp, -16
252 ; MIPS64R6-NEXT:    .cfi_def_cfa_offset 16
253 ; MIPS64R6-NEXT:    dext $2, $4, 0, 32
254 ; MIPS64R6-NEXT:    sltiu $1, $2, 7
255 ; MIPS64R6-NEXT:    beqz $1, .LBB0_6
256 ; MIPS64R6-NEXT:    sw $4, 4($sp)
257 ; MIPS64R6-NEXT:  .LBB0_1: # %entry
258 ; MIPS64R6-NEXT:    dsll $1, $2, 3
259 ; MIPS64R6-NEXT:    lui $2, %highest(.LJTI0_0)
260 ; MIPS64R6-NEXT:    daddiu $2, $2, %higher(.LJTI0_0)
261 ; MIPS64R6-NEXT:    dsll $2, $2, 16
262 ; MIPS64R6-NEXT:    daddiu $2, $2, %hi(.LJTI0_0)
263 ; MIPS64R6-NEXT:    dsll $2, $2, 16
264 ; MIPS64R6-NEXT:    daddu $1, $1, $2
265 ; MIPS64R6-NEXT:    ld $1, %lo(.LJTI0_0)($1)
266 ; MIPS64R6-NEXT:    jr.hb $1
267 ; MIPS64R6-NEXT:    nop
268 ; MIPS64R6-NEXT:  .LBB0_2: # %sw.bb
269 ; MIPS64R6-NEXT:    lui $1, %highest(.L.str)
270 ; MIPS64R6-NEXT:    daddiu $1, $1, %higher(.L.str)
271 ; MIPS64R6-NEXT:    dsll $1, $1, 16
272 ; MIPS64R6-NEXT:    daddiu $1, $1, %hi(.L.str)
273 ; MIPS64R6-NEXT:    dsll $1, $1, 16
274 ; MIPS64R6-NEXT:    daddiu $1, $1, %lo(.L.str)
275 ; MIPS64R6-NEXT:    j .LBB0_10
276 ; MIPS64R6-NEXT:    sd $1, 8($sp)
277 ; MIPS64R6-NEXT:  .LBB0_3: # %sw.bb4
278 ; MIPS64R6-NEXT:    lui $1, %highest(.L.str.4)
279 ; MIPS64R6-NEXT:    daddiu $1, $1, %higher(.L.str.4)
280 ; MIPS64R6-NEXT:    dsll $1, $1, 16
281 ; MIPS64R6-NEXT:    daddiu $1, $1, %hi(.L.str.4)
282 ; MIPS64R6-NEXT:    dsll $1, $1, 16
283 ; MIPS64R6-NEXT:    daddiu $1, $1, %lo(.L.str.4)
284 ; MIPS64R6-NEXT:    j .LBB0_10
285 ; MIPS64R6-NEXT:    sd $1, 8($sp)
286 ; MIPS64R6-NEXT:  .LBB0_4: # %sw.bb2
287 ; MIPS64R6-NEXT:    lui $1, %highest(.L.str.2)
288 ; MIPS64R6-NEXT:    daddiu $1, $1, %higher(.L.str.2)
289 ; MIPS64R6-NEXT:    dsll $1, $1, 16
290 ; MIPS64R6-NEXT:    daddiu $1, $1, %hi(.L.str.2)
291 ; MIPS64R6-NEXT:    dsll $1, $1, 16
292 ; MIPS64R6-NEXT:    daddiu $1, $1, %lo(.L.str.2)
293 ; MIPS64R6-NEXT:    j .LBB0_10
294 ; MIPS64R6-NEXT:    sd $1, 8($sp)
295 ; MIPS64R6-NEXT:  .LBB0_5: # %sw.bb3
296 ; MIPS64R6-NEXT:    lui $1, %highest(.L.str.3)
297 ; MIPS64R6-NEXT:    daddiu $1, $1, %higher(.L.str.3)
298 ; MIPS64R6-NEXT:    dsll $1, $1, 16
299 ; MIPS64R6-NEXT:    daddiu $1, $1, %hi(.L.str.3)
300 ; MIPS64R6-NEXT:    dsll $1, $1, 16
301 ; MIPS64R6-NEXT:    daddiu $1, $1, %lo(.L.str.3)
302 ; MIPS64R6-NEXT:    j .LBB0_10
303 ; MIPS64R6-NEXT:    sd $1, 8($sp)
304 ; MIPS64R6-NEXT:  .LBB0_6: # %sw.epilog
305 ; MIPS64R6-NEXT:    lui $1, %highest(.L.str.7)
306 ; MIPS64R6-NEXT:    daddiu $1, $1, %higher(.L.str.7)
307 ; MIPS64R6-NEXT:    dsll $1, $1, 16
308 ; MIPS64R6-NEXT:    daddiu $1, $1, %hi(.L.str.7)
309 ; MIPS64R6-NEXT:    dsll $1, $1, 16
310 ; MIPS64R6-NEXT:    daddiu $1, $1, %lo(.L.str.7)
311 ; MIPS64R6-NEXT:    j .LBB0_10
312 ; MIPS64R6-NEXT:    sd $1, 8($sp)
313 ; MIPS64R6-NEXT:  .LBB0_7: # %sw.bb1
314 ; MIPS64R6-NEXT:    lui $1, %highest(.L.str.1)
315 ; MIPS64R6-NEXT:    daddiu $1, $1, %higher(.L.str.1)
316 ; MIPS64R6-NEXT:    dsll $1, $1, 16
317 ; MIPS64R6-NEXT:    daddiu $1, $1, %hi(.L.str.1)
318 ; MIPS64R6-NEXT:    dsll $1, $1, 16
319 ; MIPS64R6-NEXT:    daddiu $1, $1, %lo(.L.str.1)
320 ; MIPS64R6-NEXT:    j .LBB0_10
321 ; MIPS64R6-NEXT:    sd $1, 8($sp)
322 ; MIPS64R6-NEXT:  .LBB0_8: # %sw.bb5
323 ; MIPS64R6-NEXT:    lui $1, %highest(.L.str.5)
324 ; MIPS64R6-NEXT:    daddiu $1, $1, %higher(.L.str.5)
325 ; MIPS64R6-NEXT:    dsll $1, $1, 16
326 ; MIPS64R6-NEXT:    daddiu $1, $1, %hi(.L.str.5)
327 ; MIPS64R6-NEXT:    dsll $1, $1, 16
328 ; MIPS64R6-NEXT:    daddiu $1, $1, %lo(.L.str.5)
329 ; MIPS64R6-NEXT:    j .LBB0_10
330 ; MIPS64R6-NEXT:    sd $1, 8($sp)
331 ; MIPS64R6-NEXT:  .LBB0_9: # %sw.bb6
332 ; MIPS64R6-NEXT:    lui $1, %highest(.L.str.6)
333 ; MIPS64R6-NEXT:    daddiu $1, $1, %higher(.L.str.6)
334 ; MIPS64R6-NEXT:    dsll $1, $1, 16
335 ; MIPS64R6-NEXT:    daddiu $1, $1, %hi(.L.str.6)
336 ; MIPS64R6-NEXT:    dsll $1, $1, 16
337 ; MIPS64R6-NEXT:    daddiu $1, $1, %lo(.L.str.6)
338 ; MIPS64R6-NEXT:    sd $1, 8($sp)
339 ; MIPS64R6-NEXT:  .LBB0_10: # %return
340 ; MIPS64R6-NEXT:    ld $2, 8($sp)
341 ; MIPS64R6-NEXT:    jr $ra
342 ; MIPS64R6-NEXT:    daddiu $sp, $sp, 16
344 ; PIC-MIPS32R2-LABEL: _Z3fooi:
345 ; PIC-MIPS32R2:       # %bb.0: # %entry
346 ; PIC-MIPS32R2-NEXT:    lui $2, %hi(_gp_disp)
347 ; PIC-MIPS32R2-NEXT:    addiu $2, $2, %lo(_gp_disp)
348 ; PIC-MIPS32R2-NEXT:    addiu $sp, $sp, -16
349 ; PIC-MIPS32R2-NEXT:    .cfi_def_cfa_offset 16
350 ; PIC-MIPS32R2-NEXT:    addu $2, $2, $25
351 ; PIC-MIPS32R2-NEXT:    sltiu $1, $4, 7
352 ; PIC-MIPS32R2-NEXT:    beqz $1, $BB0_6
353 ; PIC-MIPS32R2-NEXT:    sw $4, 4($sp)
354 ; PIC-MIPS32R2-NEXT:  $BB0_1: # %entry
355 ; PIC-MIPS32R2-NEXT:    sll $1, $4, 2
356 ; PIC-MIPS32R2-NEXT:    lw $3, %got($JTI0_0)($2)
357 ; PIC-MIPS32R2-NEXT:    addu $1, $1, $3
358 ; PIC-MIPS32R2-NEXT:    lw $1, %lo($JTI0_0)($1)
359 ; PIC-MIPS32R2-NEXT:    addu $1, $1, $2
360 ; PIC-MIPS32R2-NEXT:    jr.hb $1
361 ; PIC-MIPS32R2-NEXT:    nop
362 ; PIC-MIPS32R2-NEXT:  $BB0_2: # %sw.bb
363 ; PIC-MIPS32R2-NEXT:    lw $1, %got($.str)($2)
364 ; PIC-MIPS32R2-NEXT:    addiu $1, $1, %lo($.str)
365 ; PIC-MIPS32R2-NEXT:    b $BB0_10
366 ; PIC-MIPS32R2-NEXT:    sw $1, 8($sp)
367 ; PIC-MIPS32R2-NEXT:  $BB0_3: # %sw.bb4
368 ; PIC-MIPS32R2-NEXT:    lw $1, %got($.str.4)($2)
369 ; PIC-MIPS32R2-NEXT:    addiu $1, $1, %lo($.str.4)
370 ; PIC-MIPS32R2-NEXT:    b $BB0_10
371 ; PIC-MIPS32R2-NEXT:    sw $1, 8($sp)
372 ; PIC-MIPS32R2-NEXT:  $BB0_4: # %sw.bb2
373 ; PIC-MIPS32R2-NEXT:    lw $1, %got($.str.2)($2)
374 ; PIC-MIPS32R2-NEXT:    addiu $1, $1, %lo($.str.2)
375 ; PIC-MIPS32R2-NEXT:    b $BB0_10
376 ; PIC-MIPS32R2-NEXT:    sw $1, 8($sp)
377 ; PIC-MIPS32R2-NEXT:  $BB0_5: # %sw.bb3
378 ; PIC-MIPS32R2-NEXT:    lw $1, %got($.str.3)($2)
379 ; PIC-MIPS32R2-NEXT:    addiu $1, $1, %lo($.str.3)
380 ; PIC-MIPS32R2-NEXT:    b $BB0_10
381 ; PIC-MIPS32R2-NEXT:    sw $1, 8($sp)
382 ; PIC-MIPS32R2-NEXT:  $BB0_6: # %sw.epilog
383 ; PIC-MIPS32R2-NEXT:    lw $1, %got($.str.7)($2)
384 ; PIC-MIPS32R2-NEXT:    addiu $1, $1, %lo($.str.7)
385 ; PIC-MIPS32R2-NEXT:    b $BB0_10
386 ; PIC-MIPS32R2-NEXT:    sw $1, 8($sp)
387 ; PIC-MIPS32R2-NEXT:  $BB0_7: # %sw.bb1
388 ; PIC-MIPS32R2-NEXT:    lw $1, %got($.str.1)($2)
389 ; PIC-MIPS32R2-NEXT:    addiu $1, $1, %lo($.str.1)
390 ; PIC-MIPS32R2-NEXT:    b $BB0_10
391 ; PIC-MIPS32R2-NEXT:    sw $1, 8($sp)
392 ; PIC-MIPS32R2-NEXT:  $BB0_8: # %sw.bb5
393 ; PIC-MIPS32R2-NEXT:    lw $1, %got($.str.5)($2)
394 ; PIC-MIPS32R2-NEXT:    addiu $1, $1, %lo($.str.5)
395 ; PIC-MIPS32R2-NEXT:    b $BB0_10
396 ; PIC-MIPS32R2-NEXT:    sw $1, 8($sp)
397 ; PIC-MIPS32R2-NEXT:  $BB0_9: # %sw.bb6
398 ; PIC-MIPS32R2-NEXT:    lw $1, %got($.str.6)($2)
399 ; PIC-MIPS32R2-NEXT:    addiu $1, $1, %lo($.str.6)
400 ; PIC-MIPS32R2-NEXT:    sw $1, 8($sp)
401 ; PIC-MIPS32R2-NEXT:  $BB0_10: # %return
402 ; PIC-MIPS32R2-NEXT:    lw $2, 8($sp)
403 ; PIC-MIPS32R2-NEXT:    jr $ra
404 ; PIC-MIPS32R2-NEXT:    addiu $sp, $sp, 16
406 ; PIC-MIPS32R6-LABEL: _Z3fooi:
407 ; PIC-MIPS32R6:       # %bb.0: # %entry
408 ; PIC-MIPS32R6-NEXT:    lui $2, %hi(_gp_disp)
409 ; PIC-MIPS32R6-NEXT:    addiu $2, $2, %lo(_gp_disp)
410 ; PIC-MIPS32R6-NEXT:    addiu $sp, $sp, -16
411 ; PIC-MIPS32R6-NEXT:    .cfi_def_cfa_offset 16
412 ; PIC-MIPS32R6-NEXT:    addu $2, $2, $25
413 ; PIC-MIPS32R6-NEXT:    sltiu $1, $4, 7
414 ; PIC-MIPS32R6-NEXT:    beqz $1, $BB0_6
415 ; PIC-MIPS32R6-NEXT:    sw $4, 4($sp)
416 ; PIC-MIPS32R6-NEXT:  $BB0_1: # %entry
417 ; PIC-MIPS32R6-NEXT:    sll $1, $4, 2
418 ; PIC-MIPS32R6-NEXT:    lw $3, %got($JTI0_0)($2)
419 ; PIC-MIPS32R6-NEXT:    addu $1, $1, $3
420 ; PIC-MIPS32R6-NEXT:    lw $1, %lo($JTI0_0)($1)
421 ; PIC-MIPS32R6-NEXT:    addu $1, $1, $2
422 ; PIC-MIPS32R6-NEXT:    jr.hb $1
423 ; PIC-MIPS32R6-NEXT:    nop
424 ; PIC-MIPS32R6-NEXT:  $BB0_2: # %sw.bb
425 ; PIC-MIPS32R6-NEXT:    lw $1, %got($.str)($2)
426 ; PIC-MIPS32R6-NEXT:    addiu $1, $1, %lo($.str)
427 ; PIC-MIPS32R6-NEXT:    b $BB0_10
428 ; PIC-MIPS32R6-NEXT:    sw $1, 8($sp)
429 ; PIC-MIPS32R6-NEXT:  $BB0_3: # %sw.bb4
430 ; PIC-MIPS32R6-NEXT:    lw $1, %got($.str.4)($2)
431 ; PIC-MIPS32R6-NEXT:    addiu $1, $1, %lo($.str.4)
432 ; PIC-MIPS32R6-NEXT:    b $BB0_10
433 ; PIC-MIPS32R6-NEXT:    sw $1, 8($sp)
434 ; PIC-MIPS32R6-NEXT:  $BB0_4: # %sw.bb2
435 ; PIC-MIPS32R6-NEXT:    lw $1, %got($.str.2)($2)
436 ; PIC-MIPS32R6-NEXT:    addiu $1, $1, %lo($.str.2)
437 ; PIC-MIPS32R6-NEXT:    b $BB0_10
438 ; PIC-MIPS32R6-NEXT:    sw $1, 8($sp)
439 ; PIC-MIPS32R6-NEXT:  $BB0_5: # %sw.bb3
440 ; PIC-MIPS32R6-NEXT:    lw $1, %got($.str.3)($2)
441 ; PIC-MIPS32R6-NEXT:    addiu $1, $1, %lo($.str.3)
442 ; PIC-MIPS32R6-NEXT:    b $BB0_10
443 ; PIC-MIPS32R6-NEXT:    sw $1, 8($sp)
444 ; PIC-MIPS32R6-NEXT:  $BB0_6: # %sw.epilog
445 ; PIC-MIPS32R6-NEXT:    lw $1, %got($.str.7)($2)
446 ; PIC-MIPS32R6-NEXT:    addiu $1, $1, %lo($.str.7)
447 ; PIC-MIPS32R6-NEXT:    b $BB0_10
448 ; PIC-MIPS32R6-NEXT:    sw $1, 8($sp)
449 ; PIC-MIPS32R6-NEXT:  $BB0_7: # %sw.bb1
450 ; PIC-MIPS32R6-NEXT:    lw $1, %got($.str.1)($2)
451 ; PIC-MIPS32R6-NEXT:    addiu $1, $1, %lo($.str.1)
452 ; PIC-MIPS32R6-NEXT:    b $BB0_10
453 ; PIC-MIPS32R6-NEXT:    sw $1, 8($sp)
454 ; PIC-MIPS32R6-NEXT:  $BB0_8: # %sw.bb5
455 ; PIC-MIPS32R6-NEXT:    lw $1, %got($.str.5)($2)
456 ; PIC-MIPS32R6-NEXT:    addiu $1, $1, %lo($.str.5)
457 ; PIC-MIPS32R6-NEXT:    b $BB0_10
458 ; PIC-MIPS32R6-NEXT:    sw $1, 8($sp)
459 ; PIC-MIPS32R6-NEXT:  $BB0_9: # %sw.bb6
460 ; PIC-MIPS32R6-NEXT:    lw $1, %got($.str.6)($2)
461 ; PIC-MIPS32R6-NEXT:    addiu $1, $1, %lo($.str.6)
462 ; PIC-MIPS32R6-NEXT:    sw $1, 8($sp)
463 ; PIC-MIPS32R6-NEXT:  $BB0_10: # %return
464 ; PIC-MIPS32R6-NEXT:    lw $2, 8($sp)
465 ; PIC-MIPS32R6-NEXT:    jr $ra
466 ; PIC-MIPS32R6-NEXT:    addiu $sp, $sp, 16
468 ; PIC-MIPS64R2-LABEL: _Z3fooi:
469 ; PIC-MIPS64R2:       # %bb.0: # %entry
470 ; PIC-MIPS64R2-NEXT:    daddiu $sp, $sp, -16
471 ; PIC-MIPS64R2-NEXT:    .cfi_def_cfa_offset 16
472 ; PIC-MIPS64R2-NEXT:    lui $1, %hi(%neg(%gp_rel(_Z3fooi)))
473 ; PIC-MIPS64R2-NEXT:    daddu $1, $1, $25
474 ; PIC-MIPS64R2-NEXT:    daddiu $2, $1, %lo(%neg(%gp_rel(_Z3fooi)))
475 ; PIC-MIPS64R2-NEXT:    dext $3, $4, 0, 32
476 ; PIC-MIPS64R2-NEXT:    sltiu $1, $3, 7
477 ; PIC-MIPS64R2-NEXT:    beqz $1, .LBB0_6
478 ; PIC-MIPS64R2-NEXT:    sw $4, 4($sp)
479 ; PIC-MIPS64R2-NEXT:  .LBB0_1: # %entry
480 ; PIC-MIPS64R2-NEXT:    dsll $1, $3, 3
481 ; PIC-MIPS64R2-NEXT:    ld $3, %got_page(.LJTI0_0)($2)
482 ; PIC-MIPS64R2-NEXT:    daddu $1, $1, $3
483 ; PIC-MIPS64R2-NEXT:    ld $1, %got_ofst(.LJTI0_0)($1)
484 ; PIC-MIPS64R2-NEXT:    daddu $1, $1, $2
485 ; PIC-MIPS64R2-NEXT:    jr.hb $1
486 ; PIC-MIPS64R2-NEXT:    nop
487 ; PIC-MIPS64R2-NEXT:  .LBB0_2: # %sw.bb
488 ; PIC-MIPS64R2-NEXT:    ld $1, %got_page(.L.str)($2)
489 ; PIC-MIPS64R2-NEXT:    daddiu $1, $1, %got_ofst(.L.str)
490 ; PIC-MIPS64R2-NEXT:    b .LBB0_10
491 ; PIC-MIPS64R2-NEXT:    sd $1, 8($sp)
492 ; PIC-MIPS64R2-NEXT:  .LBB0_3: # %sw.bb4
493 ; PIC-MIPS64R2-NEXT:    ld $1, %got_page(.L.str.4)($2)
494 ; PIC-MIPS64R2-NEXT:    daddiu $1, $1, %got_ofst(.L.str.4)
495 ; PIC-MIPS64R2-NEXT:    b .LBB0_10
496 ; PIC-MIPS64R2-NEXT:    sd $1, 8($sp)
497 ; PIC-MIPS64R2-NEXT:  .LBB0_4: # %sw.bb2
498 ; PIC-MIPS64R2-NEXT:    ld $1, %got_page(.L.str.2)($2)
499 ; PIC-MIPS64R2-NEXT:    daddiu $1, $1, %got_ofst(.L.str.2)
500 ; PIC-MIPS64R2-NEXT:    b .LBB0_10
501 ; PIC-MIPS64R2-NEXT:    sd $1, 8($sp)
502 ; PIC-MIPS64R2-NEXT:  .LBB0_5: # %sw.bb3
503 ; PIC-MIPS64R2-NEXT:    ld $1, %got_page(.L.str.3)($2)
504 ; PIC-MIPS64R2-NEXT:    daddiu $1, $1, %got_ofst(.L.str.3)
505 ; PIC-MIPS64R2-NEXT:    b .LBB0_10
506 ; PIC-MIPS64R2-NEXT:    sd $1, 8($sp)
507 ; PIC-MIPS64R2-NEXT:  .LBB0_6: # %sw.epilog
508 ; PIC-MIPS64R2-NEXT:    ld $1, %got_page(.L.str.7)($2)
509 ; PIC-MIPS64R2-NEXT:    daddiu $1, $1, %got_ofst(.L.str.7)
510 ; PIC-MIPS64R2-NEXT:    b .LBB0_10
511 ; PIC-MIPS64R2-NEXT:    sd $1, 8($sp)
512 ; PIC-MIPS64R2-NEXT:  .LBB0_7: # %sw.bb1
513 ; PIC-MIPS64R2-NEXT:    ld $1, %got_page(.L.str.1)($2)
514 ; PIC-MIPS64R2-NEXT:    daddiu $1, $1, %got_ofst(.L.str.1)
515 ; PIC-MIPS64R2-NEXT:    b .LBB0_10
516 ; PIC-MIPS64R2-NEXT:    sd $1, 8($sp)
517 ; PIC-MIPS64R2-NEXT:  .LBB0_8: # %sw.bb5
518 ; PIC-MIPS64R2-NEXT:    ld $1, %got_page(.L.str.5)($2)
519 ; PIC-MIPS64R2-NEXT:    daddiu $1, $1, %got_ofst(.L.str.5)
520 ; PIC-MIPS64R2-NEXT:    b .LBB0_10
521 ; PIC-MIPS64R2-NEXT:    sd $1, 8($sp)
522 ; PIC-MIPS64R2-NEXT:  .LBB0_9: # %sw.bb6
523 ; PIC-MIPS64R2-NEXT:    ld $1, %got_page(.L.str.6)($2)
524 ; PIC-MIPS64R2-NEXT:    daddiu $1, $1, %got_ofst(.L.str.6)
525 ; PIC-MIPS64R2-NEXT:    sd $1, 8($sp)
526 ; PIC-MIPS64R2-NEXT:  .LBB0_10: # %return
527 ; PIC-MIPS64R2-NEXT:    ld $2, 8($sp)
528 ; PIC-MIPS64R2-NEXT:    jr $ra
529 ; PIC-MIPS64R2-NEXT:    daddiu $sp, $sp, 16
531 ; PIC-MIPS64R6-LABEL: _Z3fooi:
532 ; PIC-MIPS64R6:       # %bb.0: # %entry
533 ; PIC-MIPS64R6-NEXT:    daddiu $sp, $sp, -16
534 ; PIC-MIPS64R6-NEXT:    .cfi_def_cfa_offset 16
535 ; PIC-MIPS64R6-NEXT:    lui $1, %hi(%neg(%gp_rel(_Z3fooi)))
536 ; PIC-MIPS64R6-NEXT:    daddu $1, $1, $25
537 ; PIC-MIPS64R6-NEXT:    daddiu $2, $1, %lo(%neg(%gp_rel(_Z3fooi)))
538 ; PIC-MIPS64R6-NEXT:    dext $3, $4, 0, 32
539 ; PIC-MIPS64R6-NEXT:    sltiu $1, $3, 7
540 ; PIC-MIPS64R6-NEXT:    beqz $1, .LBB0_6
541 ; PIC-MIPS64R6-NEXT:    sw $4, 4($sp)
542 ; PIC-MIPS64R6-NEXT:  .LBB0_1: # %entry
543 ; PIC-MIPS64R6-NEXT:    dsll $1, $3, 3
544 ; PIC-MIPS64R6-NEXT:    ld $3, %got_page(.LJTI0_0)($2)
545 ; PIC-MIPS64R6-NEXT:    daddu $1, $1, $3
546 ; PIC-MIPS64R6-NEXT:    ld $1, %got_ofst(.LJTI0_0)($1)
547 ; PIC-MIPS64R6-NEXT:    daddu $1, $1, $2
548 ; PIC-MIPS64R6-NEXT:    jr.hb $1
549 ; PIC-MIPS64R6-NEXT:    nop
550 ; PIC-MIPS64R6-NEXT:  .LBB0_2: # %sw.bb
551 ; PIC-MIPS64R6-NEXT:    ld $1, %got_page(.L.str)($2)
552 ; PIC-MIPS64R6-NEXT:    daddiu $1, $1, %got_ofst(.L.str)
553 ; PIC-MIPS64R6-NEXT:    b .LBB0_10
554 ; PIC-MIPS64R6-NEXT:    sd $1, 8($sp)
555 ; PIC-MIPS64R6-NEXT:  .LBB0_3: # %sw.bb4
556 ; PIC-MIPS64R6-NEXT:    ld $1, %got_page(.L.str.4)($2)
557 ; PIC-MIPS64R6-NEXT:    daddiu $1, $1, %got_ofst(.L.str.4)
558 ; PIC-MIPS64R6-NEXT:    b .LBB0_10
559 ; PIC-MIPS64R6-NEXT:    sd $1, 8($sp)
560 ; PIC-MIPS64R6-NEXT:  .LBB0_4: # %sw.bb2
561 ; PIC-MIPS64R6-NEXT:    ld $1, %got_page(.L.str.2)($2)
562 ; PIC-MIPS64R6-NEXT:    daddiu $1, $1, %got_ofst(.L.str.2)
563 ; PIC-MIPS64R6-NEXT:    b .LBB0_10
564 ; PIC-MIPS64R6-NEXT:    sd $1, 8($sp)
565 ; PIC-MIPS64R6-NEXT:  .LBB0_5: # %sw.bb3
566 ; PIC-MIPS64R6-NEXT:    ld $1, %got_page(.L.str.3)($2)
567 ; PIC-MIPS64R6-NEXT:    daddiu $1, $1, %got_ofst(.L.str.3)
568 ; PIC-MIPS64R6-NEXT:    b .LBB0_10
569 ; PIC-MIPS64R6-NEXT:    sd $1, 8($sp)
570 ; PIC-MIPS64R6-NEXT:  .LBB0_6: # %sw.epilog
571 ; PIC-MIPS64R6-NEXT:    ld $1, %got_page(.L.str.7)($2)
572 ; PIC-MIPS64R6-NEXT:    daddiu $1, $1, %got_ofst(.L.str.7)
573 ; PIC-MIPS64R6-NEXT:    b .LBB0_10
574 ; PIC-MIPS64R6-NEXT:    sd $1, 8($sp)
575 ; PIC-MIPS64R6-NEXT:  .LBB0_7: # %sw.bb1
576 ; PIC-MIPS64R6-NEXT:    ld $1, %got_page(.L.str.1)($2)
577 ; PIC-MIPS64R6-NEXT:    daddiu $1, $1, %got_ofst(.L.str.1)
578 ; PIC-MIPS64R6-NEXT:    b .LBB0_10
579 ; PIC-MIPS64R6-NEXT:    sd $1, 8($sp)
580 ; PIC-MIPS64R6-NEXT:  .LBB0_8: # %sw.bb5
581 ; PIC-MIPS64R6-NEXT:    ld $1, %got_page(.L.str.5)($2)
582 ; PIC-MIPS64R6-NEXT:    daddiu $1, $1, %got_ofst(.L.str.5)
583 ; PIC-MIPS64R6-NEXT:    b .LBB0_10
584 ; PIC-MIPS64R6-NEXT:    sd $1, 8($sp)
585 ; PIC-MIPS64R6-NEXT:  .LBB0_9: # %sw.bb6
586 ; PIC-MIPS64R6-NEXT:    ld $1, %got_page(.L.str.6)($2)
587 ; PIC-MIPS64R6-NEXT:    daddiu $1, $1, %got_ofst(.L.str.6)
588 ; PIC-MIPS64R6-NEXT:    sd $1, 8($sp)
589 ; PIC-MIPS64R6-NEXT:  .LBB0_10: # %return
590 ; PIC-MIPS64R6-NEXT:    ld $2, 8($sp)
591 ; PIC-MIPS64R6-NEXT:    jr $ra
592 ; PIC-MIPS64R6-NEXT:    daddiu $sp, $sp, 16
593 entry:
594   %retval = alloca ptr, align 8
595   %Letter.addr = alloca i32, align 4
596   store i32 %Letter, ptr %Letter.addr, align 4
597   %0 = load i32, ptr %Letter.addr, align 4
598   switch i32 %0, label %sw.epilog [
599     i32 0, label %sw.bb
600     i32 1, label %sw.bb1
601     i32 2, label %sw.bb2
602     i32 3, label %sw.bb3
603     i32 4, label %sw.bb4
604     i32 5, label %sw.bb5
605     i32 6, label %sw.bb6
606   ]
608 sw.bb:
609   store ptr @.str, ptr %retval, align 8
610   br label %return
612 sw.bb1:
613   store ptr @.str.1, ptr %retval, align 8
614   br label %return
616 sw.bb2:
617   store ptr @.str.2, ptr %retval, align 8
618   br label %return
620 sw.bb3:
621   store ptr @.str.3, ptr %retval, align 8
622   br label %return
624 sw.bb4:
625   store ptr @.str.4, ptr %retval, align 8
626   br label %return
628 sw.bb5:
629   store ptr @.str.5, ptr %retval, align 8
630   br label %return
632 sw.bb6:
633   store ptr @.str.6, ptr %retval, align 8
634   br label %return
636 sw.epilog:
637   store ptr @.str.7, ptr %retval, align 8
638   br label %return
640 return:
641   %1 = load ptr, ptr %retval, align 8
642   ret ptr %1