Revert " [LoongArch][ISel] Check the number of sign bits in `PatGprGpr_32` (#107432)"
[llvm-project.git] / llvm / test / CodeGen / PowerPC / const-nonsplat-array-init.ll
blob18a61d071cca6c085f72357040a7edf53b4dd459
1 ; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py
2 ; RUN: llc -verify-machineinstrs -mcpu=pwr8 \
3 ; RUN:   -mtriple=powerpc64-unknown-aix < %s | FileCheck %s --check-prefix=P8-BE
4 ; RUN: llc -verify-machineinstrs -mcpu=pwr9 \
5 ; RUN:   -mtriple=powerpc64-unknown-aix < %s | FileCheck %s --check-prefix=P9-BE
6 ; RUN: llc -verify-machineinstrs -mcpu=pwr10 \
7 ; RUN:   -mtriple=powerpc64-unknown-aix < %s | FileCheck %s --check-prefix=P10-BE
8 ; RUN: llc -verify-machineinstrs -mcpu=pwr8 \
9 ; RUN:   -mtriple=powerpc64le-unknown-unknown < %s | FileCheck %s --check-prefix=P8-LE
10 ; RUN: llc -verify-machineinstrs -mcpu=pwr9 \
11 ; RUN:   -mtriple=powerpc64le-unknown-unknown < %s | FileCheck %s --check-prefix=P9-LE
12 ; RUN: llc -verify-machineinstrs -mcpu=pwr10 \
13 ; RUN:   -mtriple=powerpc64le-unknown-unknown < %s | FileCheck %s --check-prefix=P10-LE
15 define dso_local void @foo1_int_be_reuse4B(ptr nocapture noundef writeonly %a) local_unnamed_addr {
16 ; P8-BE-LABEL: foo1_int_be_reuse4B:
17 ; P8-BE:       # %bb.0: # %entry
18 ; P8-BE-NEXT:    ld 4, L..C0(2) # %const.0
19 ; P8-BE-NEXT:    lxvw4x 0, 0, 4
20 ; P8-BE-NEXT:    lis 4, 1029
21 ; P8-BE-NEXT:    ori 4, 4, 1543
22 ; P8-BE-NEXT:    stw 4, 16(3)
23 ; P8-BE-NEXT:    li 4, 2057
24 ; P8-BE-NEXT:    stxvw4x 0, 0, 3
25 ; P8-BE-NEXT:    sth 4, 20(3)
26 ; P8-BE-NEXT:    blr
28 ; P9-BE-LABEL: foo1_int_be_reuse4B:
29 ; P9-BE:       # %bb.0: # %entry
30 ; P9-BE-NEXT:    ld 4, L..C0(2) # %const.0
31 ; P9-BE-NEXT:    lxv 0, 0(4)
32 ; P9-BE-NEXT:    lis 4, 1029
33 ; P9-BE-NEXT:    ori 4, 4, 1543
34 ; P9-BE-NEXT:    stw 4, 16(3)
35 ; P9-BE-NEXT:    li 4, 2057
36 ; P9-BE-NEXT:    stxv 0, 0(3)
37 ; P9-BE-NEXT:    sth 4, 20(3)
38 ; P9-BE-NEXT:    blr
40 ; P10-BE-LABEL: foo1_int_be_reuse4B:
41 ; P10-BE:       # %bb.0: # %entry
42 ; P10-BE-NEXT:    ld 4, L..C0(2) # %const.0
43 ; P10-BE-NEXT:    lxv 0, 0(4)
44 ; P10-BE-NEXT:    pli 4, 67438087
45 ; P10-BE-NEXT:    stw 4, 16(3)
46 ; P10-BE-NEXT:    li 4, 2057
47 ; P10-BE-NEXT:    sth 4, 20(3)
48 ; P10-BE-NEXT:    stxv 0, 0(3)
49 ; P10-BE-NEXT:    blr
51 ; P8-LE-LABEL: foo1_int_be_reuse4B:
52 ; P8-LE:       # %bb.0: # %entry
53 ; P8-LE-NEXT:    addis 4, 2, .LCPI0_0@toc@ha
54 ; P8-LE-NEXT:    addi 4, 4, .LCPI0_0@toc@l
55 ; P8-LE-NEXT:    lxvd2x 0, 0, 4
56 ; P8-LE-NEXT:    lis 4, 1798
57 ; P8-LE-NEXT:    ori 4, 4, 1284
58 ; P8-LE-NEXT:    stxvd2x 0, 0, 3
59 ; P8-LE-NEXT:    stw 4, 16(3)
60 ; P8-LE-NEXT:    li 4, 2312
61 ; P8-LE-NEXT:    sth 4, 20(3)
62 ; P8-LE-NEXT:    blr
64 ; P9-LE-LABEL: foo1_int_be_reuse4B:
65 ; P9-LE:       # %bb.0: # %entry
66 ; P9-LE-NEXT:    addis 4, 2, .LCPI0_0@toc@ha
67 ; P9-LE-NEXT:    addi 4, 4, .LCPI0_0@toc@l
68 ; P9-LE-NEXT:    lxv 0, 0(4)
69 ; P9-LE-NEXT:    lis 4, 1798
70 ; P9-LE-NEXT:    ori 4, 4, 1284
71 ; P9-LE-NEXT:    stw 4, 16(3)
72 ; P9-LE-NEXT:    li 4, 2312
73 ; P9-LE-NEXT:    stxv 0, 0(3)
74 ; P9-LE-NEXT:    sth 4, 20(3)
75 ; P9-LE-NEXT:    blr
77 ; P10-LE-LABEL: foo1_int_be_reuse4B:
78 ; P10-LE:       # %bb.0: # %entry
79 ; P10-LE-NEXT:    plxv 0, .LCPI0_0@PCREL(0), 1
80 ; P10-LE-NEXT:    pli 4, 117835012
81 ; P10-LE-NEXT:    stw 4, 16(3)
82 ; P10-LE-NEXT:    li 4, 2312
83 ; P10-LE-NEXT:    sth 4, 20(3)
84 ; P10-LE-NEXT:    stxv 0, 0(3)
85 ; P10-LE-NEXT:    blr
86 entry:
87   store <16 x i8> <i8 0, i8 1, i8 2, i8 3, i8 4, i8 5, i8 6, i8 7, i8 8, i8 9, i8 10, i8 11, i8 12, i8 13, i8 14, i8 15>, ptr %a, align 1
88   %arrayidx16 = getelementptr inbounds i8, ptr %a, i64 16
89   store i8 4, ptr %arrayidx16, align 1
90   %arrayidx17 = getelementptr inbounds i8, ptr %a, i64 17
91   store i8 5, ptr %arrayidx17, align 1
92   %arrayidx18 = getelementptr inbounds i8, ptr %a, i64 18
93   store i8 6, ptr %arrayidx18, align 1
94   %arrayidx19 = getelementptr inbounds i8, ptr %a, i64 19
95   store i8 7, ptr %arrayidx19, align 1
96   %arrayidx20 = getelementptr inbounds i8, ptr %a, i64 20
97   store i8 8, ptr %arrayidx20, align 1
98   %arrayidx21 = getelementptr inbounds i8, ptr %a, i64 21
99   store i8 9, ptr %arrayidx21, align 1
100   ret void
103 define dso_local void @foo2_int_le_reuse4B(ptr nocapture noundef writeonly %a) local_unnamed_addr {
104 ; P8-BE-LABEL: foo2_int_le_reuse4B:
105 ; P8-BE:       # %bb.0: # %entry
106 ; P8-BE-NEXT:    ld 4, L..C1(2) # %const.0
107 ; P8-BE-NEXT:    lxvw4x 0, 0, 4
108 ; P8-BE-NEXT:    lis 4, 2057
109 ; P8-BE-NEXT:    ori 4, 4, 2571
110 ; P8-BE-NEXT:    stw 4, 16(3)
111 ; P8-BE-NEXT:    li 4, 3085
112 ; P8-BE-NEXT:    stxvw4x 0, 0, 3
113 ; P8-BE-NEXT:    sth 4, 20(3)
114 ; P8-BE-NEXT:    blr
116 ; P9-BE-LABEL: foo2_int_le_reuse4B:
117 ; P9-BE:       # %bb.0: # %entry
118 ; P9-BE-NEXT:    ld 4, L..C1(2) # %const.0
119 ; P9-BE-NEXT:    lxv 0, 0(4)
120 ; P9-BE-NEXT:    lis 4, 2057
121 ; P9-BE-NEXT:    ori 4, 4, 2571
122 ; P9-BE-NEXT:    stw 4, 16(3)
123 ; P9-BE-NEXT:    li 4, 3085
124 ; P9-BE-NEXT:    stxv 0, 0(3)
125 ; P9-BE-NEXT:    sth 4, 20(3)
126 ; P9-BE-NEXT:    blr
128 ; P10-BE-LABEL: foo2_int_le_reuse4B:
129 ; P10-BE:       # %bb.0: # %entry
130 ; P10-BE-NEXT:    ld 4, L..C1(2) # %const.0
131 ; P10-BE-NEXT:    lxv 0, 0(4)
132 ; P10-BE-NEXT:    pli 4, 134810123
133 ; P10-BE-NEXT:    stw 4, 16(3)
134 ; P10-BE-NEXT:    li 4, 3085
135 ; P10-BE-NEXT:    sth 4, 20(3)
136 ; P10-BE-NEXT:    stxv 0, 0(3)
137 ; P10-BE-NEXT:    blr
139 ; P8-LE-LABEL: foo2_int_le_reuse4B:
140 ; P8-LE:       # %bb.0: # %entry
141 ; P8-LE-NEXT:    addis 4, 2, .LCPI1_0@toc@ha
142 ; P8-LE-NEXT:    addi 4, 4, .LCPI1_0@toc@l
143 ; P8-LE-NEXT:    lxvd2x 0, 0, 4
144 ; P8-LE-NEXT:    lis 4, 2826
145 ; P8-LE-NEXT:    ori 4, 4, 2312
146 ; P8-LE-NEXT:    stxvd2x 0, 0, 3
147 ; P8-LE-NEXT:    stw 4, 16(3)
148 ; P8-LE-NEXT:    li 4, 3340
149 ; P8-LE-NEXT:    sth 4, 20(3)
150 ; P8-LE-NEXT:    blr
152 ; P9-LE-LABEL: foo2_int_le_reuse4B:
153 ; P9-LE:       # %bb.0: # %entry
154 ; P9-LE-NEXT:    addis 4, 2, .LCPI1_0@toc@ha
155 ; P9-LE-NEXT:    addi 4, 4, .LCPI1_0@toc@l
156 ; P9-LE-NEXT:    lxv 0, 0(4)
157 ; P9-LE-NEXT:    lis 4, 2826
158 ; P9-LE-NEXT:    ori 4, 4, 2312
159 ; P9-LE-NEXT:    stw 4, 16(3)
160 ; P9-LE-NEXT:    li 4, 3340
161 ; P9-LE-NEXT:    stxv 0, 0(3)
162 ; P9-LE-NEXT:    sth 4, 20(3)
163 ; P9-LE-NEXT:    blr
165 ; P10-LE-LABEL: foo2_int_le_reuse4B:
166 ; P10-LE:       # %bb.0: # %entry
167 ; P10-LE-NEXT:    plxv 0, .LCPI1_0@PCREL(0), 1
168 ; P10-LE-NEXT:    pli 4, 185207048
169 ; P10-LE-NEXT:    stw 4, 16(3)
170 ; P10-LE-NEXT:    li 4, 3340
171 ; P10-LE-NEXT:    sth 4, 20(3)
172 ; P10-LE-NEXT:    stxv 0, 0(3)
173 ; P10-LE-NEXT:    blr
174 entry:
175   store <16 x i8> <i8 0, i8 1, i8 2, i8 3, i8 4, i8 5, i8 6, i8 7, i8 8, i8 9, i8 10, i8 11, i8 12, i8 13, i8 14, i8 15>, ptr %a, align 1
176   %arrayidx16 = getelementptr inbounds i8, ptr %a, i64 16
177   store i8 8, ptr %arrayidx16, align 1
178   %arrayidx17 = getelementptr inbounds i8, ptr %a, i64 17
179   store i8 9, ptr %arrayidx17, align 1
180   %arrayidx18 = getelementptr inbounds i8, ptr %a, i64 18
181   store i8 10, ptr %arrayidx18, align 1
182   %arrayidx19 = getelementptr inbounds i8, ptr %a, i64 19
183   store i8 11, ptr %arrayidx19, align 1
184   %arrayidx20 = getelementptr inbounds i8, ptr %a, i64 20
185   store i8 12, ptr %arrayidx20, align 1
186   %arrayidx21 = getelementptr inbounds i8, ptr %a, i64 21
187   store i8 13, ptr %arrayidx21, align 1
188   ret void
191 define dso_local void @foo3_int_be_reuse4B(ptr nocapture noundef writeonly %a) local_unnamed_addr {
192 ; P8-BE-LABEL: foo3_int_be_reuse4B:
193 ; P8-BE:       # %bb.0: # %entry
194 ; P8-BE-NEXT:    ld 4, L..C2(2) # %const.0
195 ; P8-BE-NEXT:    lxvw4x 0, 0, 4
196 ; P8-BE-NEXT:    lis 4, 1029
197 ; P8-BE-NEXT:    ori 4, 4, 1543
198 ; P8-BE-NEXT:    stw 4, 16(3)
199 ; P8-BE-NEXT:    li 4, 2057
200 ; P8-BE-NEXT:    stxvw4x 0, 0, 3
201 ; P8-BE-NEXT:    sth 4, 20(3)
202 ; P8-BE-NEXT:    blr
204 ; P9-BE-LABEL: foo3_int_be_reuse4B:
205 ; P9-BE:       # %bb.0: # %entry
206 ; P9-BE-NEXT:    ld 4, L..C2(2) # %const.0
207 ; P9-BE-NEXT:    lxv 0, 0(4)
208 ; P9-BE-NEXT:    lis 4, 1029
209 ; P9-BE-NEXT:    ori 4, 4, 1543
210 ; P9-BE-NEXT:    stw 4, 16(3)
211 ; P9-BE-NEXT:    li 4, 2057
212 ; P9-BE-NEXT:    stxv 0, 0(3)
213 ; P9-BE-NEXT:    sth 4, 20(3)
214 ; P9-BE-NEXT:    blr
216 ; P10-BE-LABEL: foo3_int_be_reuse4B:
217 ; P10-BE:       # %bb.0: # %entry
218 ; P10-BE-NEXT:    ld 4, L..C2(2) # %const.0
219 ; P10-BE-NEXT:    lxv 0, 0(4)
220 ; P10-BE-NEXT:    pli 4, 67438087
221 ; P10-BE-NEXT:    stw 4, 16(3)
222 ; P10-BE-NEXT:    li 4, 2057
223 ; P10-BE-NEXT:    sth 4, 20(3)
224 ; P10-BE-NEXT:    stxv 0, 0(3)
225 ; P10-BE-NEXT:    blr
227 ; P8-LE-LABEL: foo3_int_be_reuse4B:
228 ; P8-LE:       # %bb.0: # %entry
229 ; P8-LE-NEXT:    addis 4, 2, .LCPI2_0@toc@ha
230 ; P8-LE-NEXT:    addi 4, 4, .LCPI2_0@toc@l
231 ; P8-LE-NEXT:    lxvd2x 0, 0, 4
232 ; P8-LE-NEXT:    lis 4, 1543
233 ; P8-LE-NEXT:    ori 4, 4, 1029
234 ; P8-LE-NEXT:    stxvd2x 0, 0, 3
235 ; P8-LE-NEXT:    stw 4, 16(3)
236 ; P8-LE-NEXT:    li 4, 2057
237 ; P8-LE-NEXT:    sth 4, 20(3)
238 ; P8-LE-NEXT:    blr
240 ; P9-LE-LABEL: foo3_int_be_reuse4B:
241 ; P9-LE:       # %bb.0: # %entry
242 ; P9-LE-NEXT:    addis 4, 2, .LCPI2_0@toc@ha
243 ; P9-LE-NEXT:    addi 4, 4, .LCPI2_0@toc@l
244 ; P9-LE-NEXT:    lxv 0, 0(4)
245 ; P9-LE-NEXT:    lis 4, 1543
246 ; P9-LE-NEXT:    ori 4, 4, 1029
247 ; P9-LE-NEXT:    stw 4, 16(3)
248 ; P9-LE-NEXT:    li 4, 2057
249 ; P9-LE-NEXT:    stxv 0, 0(3)
250 ; P9-LE-NEXT:    sth 4, 20(3)
251 ; P9-LE-NEXT:    blr
253 ; P10-LE-LABEL: foo3_int_be_reuse4B:
254 ; P10-LE:       # %bb.0: # %entry
255 ; P10-LE-NEXT:    plxv 0, .LCPI2_0@PCREL(0), 1
256 ; P10-LE-NEXT:    pli 4, 101123077
257 ; P10-LE-NEXT:    stw 4, 16(3)
258 ; P10-LE-NEXT:    li 4, 2057
259 ; P10-LE-NEXT:    sth 4, 20(3)
260 ; P10-LE-NEXT:    stxv 0, 0(3)
261 ; P10-LE-NEXT:    blr
262 entry:
263   store <8 x i16> <i16 1, i16 515, i16 1029, i16 1543, i16 2057, i16 2571, i16 3085, i16 3599>, ptr %a, align 2
264   %arrayidx8 = getelementptr inbounds i16, ptr %a, i64 8
265   store i16 1029, ptr %arrayidx8, align 2
266   %arrayidx9 = getelementptr inbounds i16, ptr %a, i64 9
267   store i16 1543, ptr %arrayidx9, align 2
268   %arrayidx10 = getelementptr inbounds i16, ptr %a, i64 10
269   store i16 2057, ptr %arrayidx10, align 2
270   ret void
273 define dso_local void @foo4_int_le_reuse4B(ptr nocapture noundef writeonly %a) local_unnamed_addr {
274 ; P8-BE-LABEL: foo4_int_le_reuse4B:
275 ; P8-BE:       # %bb.0: # %entry
276 ; P8-BE-NEXT:    ld 4, L..C3(2) # %const.0
277 ; P8-BE-NEXT:    lxvw4x 0, 0, 4
278 ; P8-BE-NEXT:    lis 4, 2057
279 ; P8-BE-NEXT:    ori 4, 4, 2571
280 ; P8-BE-NEXT:    stw 4, 16(3)
281 ; P8-BE-NEXT:    li 4, 3085
282 ; P8-BE-NEXT:    stxvw4x 0, 0, 3
283 ; P8-BE-NEXT:    sth 4, 20(3)
284 ; P8-BE-NEXT:    blr
286 ; P9-BE-LABEL: foo4_int_le_reuse4B:
287 ; P9-BE:       # %bb.0: # %entry
288 ; P9-BE-NEXT:    ld 4, L..C3(2) # %const.0
289 ; P9-BE-NEXT:    lxv 0, 0(4)
290 ; P9-BE-NEXT:    lis 4, 2057
291 ; P9-BE-NEXT:    ori 4, 4, 2571
292 ; P9-BE-NEXT:    stw 4, 16(3)
293 ; P9-BE-NEXT:    li 4, 3085
294 ; P9-BE-NEXT:    stxv 0, 0(3)
295 ; P9-BE-NEXT:    sth 4, 20(3)
296 ; P9-BE-NEXT:    blr
298 ; P10-BE-LABEL: foo4_int_le_reuse4B:
299 ; P10-BE:       # %bb.0: # %entry
300 ; P10-BE-NEXT:    ld 4, L..C3(2) # %const.0
301 ; P10-BE-NEXT:    lxv 0, 0(4)
302 ; P10-BE-NEXT:    pli 4, 134810123
303 ; P10-BE-NEXT:    stw 4, 16(3)
304 ; P10-BE-NEXT:    li 4, 3085
305 ; P10-BE-NEXT:    sth 4, 20(3)
306 ; P10-BE-NEXT:    stxv 0, 0(3)
307 ; P10-BE-NEXT:    blr
309 ; P8-LE-LABEL: foo4_int_le_reuse4B:
310 ; P8-LE:       # %bb.0: # %entry
311 ; P8-LE-NEXT:    addis 4, 2, .LCPI3_0@toc@ha
312 ; P8-LE-NEXT:    addi 4, 4, .LCPI3_0@toc@l
313 ; P8-LE-NEXT:    lxvd2x 0, 0, 4
314 ; P8-LE-NEXT:    lis 4, 2571
315 ; P8-LE-NEXT:    ori 4, 4, 2057
316 ; P8-LE-NEXT:    stxvd2x 0, 0, 3
317 ; P8-LE-NEXT:    stw 4, 16(3)
318 ; P8-LE-NEXT:    li 4, 3085
319 ; P8-LE-NEXT:    sth 4, 20(3)
320 ; P8-LE-NEXT:    blr
322 ; P9-LE-LABEL: foo4_int_le_reuse4B:
323 ; P9-LE:       # %bb.0: # %entry
324 ; P9-LE-NEXT:    addis 4, 2, .LCPI3_0@toc@ha
325 ; P9-LE-NEXT:    addi 4, 4, .LCPI3_0@toc@l
326 ; P9-LE-NEXT:    lxv 0, 0(4)
327 ; P9-LE-NEXT:    lis 4, 2571
328 ; P9-LE-NEXT:    ori 4, 4, 2057
329 ; P9-LE-NEXT:    stw 4, 16(3)
330 ; P9-LE-NEXT:    li 4, 3085
331 ; P9-LE-NEXT:    stxv 0, 0(3)
332 ; P9-LE-NEXT:    sth 4, 20(3)
333 ; P9-LE-NEXT:    blr
335 ; P10-LE-LABEL: foo4_int_le_reuse4B:
336 ; P10-LE:       # %bb.0: # %entry
337 ; P10-LE-NEXT:    plxv 0, .LCPI3_0@PCREL(0), 1
338 ; P10-LE-NEXT:    pli 4, 168495113
339 ; P10-LE-NEXT:    stw 4, 16(3)
340 ; P10-LE-NEXT:    li 4, 3085
341 ; P10-LE-NEXT:    sth 4, 20(3)
342 ; P10-LE-NEXT:    stxv 0, 0(3)
343 ; P10-LE-NEXT:    blr
344 entry:
345   store <8 x i16> <i16 1, i16 515, i16 1029, i16 1543, i16 2057, i16 2571, i16 3085, i16 3599>, ptr %a, align 2
346   %arrayidx8 = getelementptr inbounds i16, ptr %a, i64 8
347   store i16 2057, ptr %arrayidx8, align 2
348   %arrayidx9 = getelementptr inbounds i16, ptr %a, i64 9
349   store i16 2571, ptr %arrayidx9, align 2
350   %arrayidx10 = getelementptr inbounds i16, ptr %a, i64 10
351   store i16 3085, ptr %arrayidx10, align 2
352   ret void
355 define dso_local void @foo5_int_be_reuse4B(ptr nocapture noundef writeonly %a) local_unnamed_addr {
356 ; P8-BE-LABEL: foo5_int_be_reuse4B:
357 ; P8-BE:       # %bb.0: # %entry
358 ; P8-BE-NEXT:    ld 4, L..C4(2) # %const.0
359 ; P8-BE-NEXT:    lxvw4x 0, 0, 4
360 ; P8-BE-NEXT:    lis 4, 1029
361 ; P8-BE-NEXT:    ori 4, 4, 1543
362 ; P8-BE-NEXT:    stw 4, 16(3)
363 ; P8-BE-NEXT:    stxvw4x 0, 0, 3
364 ; P8-BE-NEXT:    blr
366 ; P9-BE-LABEL: foo5_int_be_reuse4B:
367 ; P9-BE:       # %bb.0: # %entry
368 ; P9-BE-NEXT:    ld 4, L..C4(2) # %const.0
369 ; P9-BE-NEXT:    lxv 0, 0(4)
370 ; P9-BE-NEXT:    lis 4, 1029
371 ; P9-BE-NEXT:    ori 4, 4, 1543
372 ; P9-BE-NEXT:    stw 4, 16(3)
373 ; P9-BE-NEXT:    stxv 0, 0(3)
374 ; P9-BE-NEXT:    blr
376 ; P10-BE-LABEL: foo5_int_be_reuse4B:
377 ; P10-BE:       # %bb.0: # %entry
378 ; P10-BE-NEXT:    ld 4, L..C4(2) # %const.0
379 ; P10-BE-NEXT:    lxv 0, 0(4)
380 ; P10-BE-NEXT:    pli 4, 67438087
381 ; P10-BE-NEXT:    stw 4, 16(3)
382 ; P10-BE-NEXT:    stxv 0, 0(3)
383 ; P10-BE-NEXT:    blr
385 ; P8-LE-LABEL: foo5_int_be_reuse4B:
386 ; P8-LE:       # %bb.0: # %entry
387 ; P8-LE-NEXT:    addis 4, 2, .LCPI4_0@toc@ha
388 ; P8-LE-NEXT:    addi 4, 4, .LCPI4_0@toc@l
389 ; P8-LE-NEXT:    lxvd2x 0, 0, 4
390 ; P8-LE-NEXT:    lis 4, 1029
391 ; P8-LE-NEXT:    ori 4, 4, 1543
392 ; P8-LE-NEXT:    stxvd2x 0, 0, 3
393 ; P8-LE-NEXT:    stw 4, 16(3)
394 ; P8-LE-NEXT:    blr
396 ; P9-LE-LABEL: foo5_int_be_reuse4B:
397 ; P9-LE:       # %bb.0: # %entry
398 ; P9-LE-NEXT:    addis 4, 2, .LCPI4_0@toc@ha
399 ; P9-LE-NEXT:    addi 4, 4, .LCPI4_0@toc@l
400 ; P9-LE-NEXT:    lxv 0, 0(4)
401 ; P9-LE-NEXT:    lis 4, 1029
402 ; P9-LE-NEXT:    ori 4, 4, 1543
403 ; P9-LE-NEXT:    stw 4, 16(3)
404 ; P9-LE-NEXT:    stxv 0, 0(3)
405 ; P9-LE-NEXT:    blr
407 ; P10-LE-LABEL: foo5_int_be_reuse4B:
408 ; P10-LE:       # %bb.0: # %entry
409 ; P10-LE-NEXT:    plxv 0, .LCPI4_0@PCREL(0), 1
410 ; P10-LE-NEXT:    pli 4, 67438087
411 ; P10-LE-NEXT:    stw 4, 16(3)
412 ; P10-LE-NEXT:    stxv 0, 0(3)
413 ; P10-LE-NEXT:    blr
414 entry:
415   store <4 x i32> <i32 66051, i32 67438087, i32 134810123, i32 202182159>, ptr %a, align 4
416   %arrayidx4 = getelementptr inbounds i32, ptr %a, i64 4
417   store i32 67438087, ptr %arrayidx4, align 4
418   ret void
421 define dso_local void @foo6_int_le_reuse4B(ptr nocapture noundef writeonly %a) local_unnamed_addr {
422 ; P8-BE-LABEL: foo6_int_le_reuse4B:
423 ; P8-BE:       # %bb.0: # %entry
424 ; P8-BE-NEXT:    ld 4, L..C5(2) # %const.0
425 ; P8-BE-NEXT:    lxvw4x 0, 0, 4
426 ; P8-BE-NEXT:    lis 4, 2057
427 ; P8-BE-NEXT:    ori 4, 4, 2571
428 ; P8-BE-NEXT:    stw 4, 16(3)
429 ; P8-BE-NEXT:    stxvw4x 0, 0, 3
430 ; P8-BE-NEXT:    blr
432 ; P9-BE-LABEL: foo6_int_le_reuse4B:
433 ; P9-BE:       # %bb.0: # %entry
434 ; P9-BE-NEXT:    ld 4, L..C5(2) # %const.0
435 ; P9-BE-NEXT:    lxv 0, 0(4)
436 ; P9-BE-NEXT:    lis 4, 2057
437 ; P9-BE-NEXT:    ori 4, 4, 2571
438 ; P9-BE-NEXT:    stw 4, 16(3)
439 ; P9-BE-NEXT:    stxv 0, 0(3)
440 ; P9-BE-NEXT:    blr
442 ; P10-BE-LABEL: foo6_int_le_reuse4B:
443 ; P10-BE:       # %bb.0: # %entry
444 ; P10-BE-NEXT:    ld 4, L..C5(2) # %const.0
445 ; P10-BE-NEXT:    lxv 0, 0(4)
446 ; P10-BE-NEXT:    pli 4, 134810123
447 ; P10-BE-NEXT:    stw 4, 16(3)
448 ; P10-BE-NEXT:    stxv 0, 0(3)
449 ; P10-BE-NEXT:    blr
451 ; P8-LE-LABEL: foo6_int_le_reuse4B:
452 ; P8-LE:       # %bb.0: # %entry
453 ; P8-LE-NEXT:    addis 4, 2, .LCPI5_0@toc@ha
454 ; P8-LE-NEXT:    addi 4, 4, .LCPI5_0@toc@l
455 ; P8-LE-NEXT:    lxvd2x 0, 0, 4
456 ; P8-LE-NEXT:    lis 4, 2057
457 ; P8-LE-NEXT:    ori 4, 4, 2571
458 ; P8-LE-NEXT:    stxvd2x 0, 0, 3
459 ; P8-LE-NEXT:    stw 4, 16(3)
460 ; P8-LE-NEXT:    blr
462 ; P9-LE-LABEL: foo6_int_le_reuse4B:
463 ; P9-LE:       # %bb.0: # %entry
464 ; P9-LE-NEXT:    addis 4, 2, .LCPI5_0@toc@ha
465 ; P9-LE-NEXT:    addi 4, 4, .LCPI5_0@toc@l
466 ; P9-LE-NEXT:    lxv 0, 0(4)
467 ; P9-LE-NEXT:    lis 4, 2057
468 ; P9-LE-NEXT:    ori 4, 4, 2571
469 ; P9-LE-NEXT:    stw 4, 16(3)
470 ; P9-LE-NEXT:    stxv 0, 0(3)
471 ; P9-LE-NEXT:    blr
473 ; P10-LE-LABEL: foo6_int_le_reuse4B:
474 ; P10-LE:       # %bb.0: # %entry
475 ; P10-LE-NEXT:    plxv 0, .LCPI5_0@PCREL(0), 1
476 ; P10-LE-NEXT:    pli 4, 134810123
477 ; P10-LE-NEXT:    stw 4, 16(3)
478 ; P10-LE-NEXT:    stxv 0, 0(3)
479 ; P10-LE-NEXT:    blr
480 entry:
481   store <4 x i32> <i32 66051, i32 67438087, i32 134810123, i32 202182159>, ptr %a, align 4
482   %arrayidx4 = getelementptr inbounds i32, ptr %a, i64 4
483   store i32 134810123, ptr %arrayidx4, align 4
484   ret void
487 define dso_local void @foo7_int_be_reuse8B(ptr nocapture noundef writeonly %a) local_unnamed_addr {
488 ; P8-BE-LABEL: foo7_int_be_reuse8B:
489 ; P8-BE:       # %bb.0: # %entry
490 ; P8-BE-NEXT:    ld 4, L..C6(2) # %const.0
491 ; P8-BE-NEXT:    lxvw4x 0, 0, 4
492 ; P8-BE-NEXT:    lis 4, 1
493 ; P8-BE-NEXT:    ori 4, 4, 515
494 ; P8-BE-NEXT:    rldic 4, 4, 32, 15
495 ; P8-BE-NEXT:    stxvw4x 0, 0, 3
496 ; P8-BE-NEXT:    oris 4, 4, 1029
497 ; P8-BE-NEXT:    ori 4, 4, 1543
498 ; P8-BE-NEXT:    std 4, 16(3)
499 ; P8-BE-NEXT:    blr
501 ; P9-BE-LABEL: foo7_int_be_reuse8B:
502 ; P9-BE:       # %bb.0: # %entry
503 ; P9-BE-NEXT:    ld 4, L..C6(2) # %const.0
504 ; P9-BE-NEXT:    lxv 0, 0(4)
505 ; P9-BE-NEXT:    lis 4, 1
506 ; P9-BE-NEXT:    ori 4, 4, 515
507 ; P9-BE-NEXT:    rldic 4, 4, 32, 15
508 ; P9-BE-NEXT:    stxv 0, 0(3)
509 ; P9-BE-NEXT:    oris 4, 4, 1029
510 ; P9-BE-NEXT:    ori 4, 4, 1543
511 ; P9-BE-NEXT:    std 4, 16(3)
512 ; P9-BE-NEXT:    blr
514 ; P10-BE-LABEL: foo7_int_be_reuse8B:
515 ; P10-BE:       # %bb.0: # %entry
516 ; P10-BE-NEXT:    ld 4, L..C6(2) # %const.0
517 ; P10-BE-NEXT:    pli 5, 67438087
518 ; P10-BE-NEXT:    lxv 0, 0(4)
519 ; P10-BE-NEXT:    pli 4, 66051
520 ; P10-BE-NEXT:    rldimi 5, 4, 32, 0
521 ; P10-BE-NEXT:    std 5, 16(3)
522 ; P10-BE-NEXT:    stxv 0, 0(3)
523 ; P10-BE-NEXT:    blr
525 ; P8-LE-LABEL: foo7_int_be_reuse8B:
526 ; P8-LE:       # %bb.0: # %entry
527 ; P8-LE-NEXT:    addis 4, 2, .LCPI6_0@toc@ha
528 ; P8-LE-NEXT:    addi 4, 4, .LCPI6_0@toc@l
529 ; P8-LE-NEXT:    lxvd2x 0, 0, 4
530 ; P8-LE-NEXT:    lis 4, 449
531 ; P8-LE-NEXT:    ori 4, 4, 33089
532 ; P8-LE-NEXT:    rldic 4, 4, 34, 5
533 ; P8-LE-NEXT:    stxvd2x 0, 0, 3
534 ; P8-LE-NEXT:    oris 4, 4, 770
535 ; P8-LE-NEXT:    ori 4, 4, 256
536 ; P8-LE-NEXT:    std 4, 16(3)
537 ; P8-LE-NEXT:    blr
539 ; P9-LE-LABEL: foo7_int_be_reuse8B:
540 ; P9-LE:       # %bb.0: # %entry
541 ; P9-LE-NEXT:    addis 4, 2, .LCPI6_0@toc@ha
542 ; P9-LE-NEXT:    addi 4, 4, .LCPI6_0@toc@l
543 ; P9-LE-NEXT:    lxv 0, 0(4)
544 ; P9-LE-NEXT:    lis 4, 449
545 ; P9-LE-NEXT:    ori 4, 4, 33089
546 ; P9-LE-NEXT:    rldic 4, 4, 34, 5
547 ; P9-LE-NEXT:    stxv 0, 0(3)
548 ; P9-LE-NEXT:    oris 4, 4, 770
549 ; P9-LE-NEXT:    ori 4, 4, 256
550 ; P9-LE-NEXT:    std 4, 16(3)
551 ; P9-LE-NEXT:    blr
553 ; P10-LE-LABEL: foo7_int_be_reuse8B:
554 ; P10-LE:       # %bb.0: # %entry
555 ; P10-LE-NEXT:    plxv 0, .LCPI6_0@PCREL(0), 1
556 ; P10-LE-NEXT:    pli 4, 117835012
557 ; P10-LE-NEXT:    pli 5, 50462976
558 ; P10-LE-NEXT:    rldimi 5, 4, 32, 0
559 ; P10-LE-NEXT:    std 5, 16(3)
560 ; P10-LE-NEXT:    stxv 0, 0(3)
561 ; P10-LE-NEXT:    blr
562 entry:
563   store <16 x i8> <i8 0, i8 1, i8 2, i8 3, i8 4, i8 5, i8 6, i8 7, i8 8, i8 9, i8 10, i8 11, i8 12, i8 13, i8 14, i8 15>, ptr %a, align 1
564   %arrayidx16 = getelementptr inbounds i8, ptr %a, i64 16
565   store i8 0, ptr %arrayidx16, align 1
566   %arrayidx17 = getelementptr inbounds i8, ptr %a, i64 17
567   store i8 1, ptr %arrayidx17, align 1
568   %arrayidx18 = getelementptr inbounds i8, ptr %a, i64 18
569   store i8 2, ptr %arrayidx18, align 1
570   %arrayidx19 = getelementptr inbounds i8, ptr %a, i64 19
571   store i8 3, ptr %arrayidx19, align 1
572   %arrayidx20 = getelementptr inbounds i8, ptr %a, i64 20
573   store i8 4, ptr %arrayidx20, align 1
574   %arrayidx21 = getelementptr inbounds i8, ptr %a, i64 21
575   store i8 5, ptr %arrayidx21, align 1
576   %arrayidx22 = getelementptr inbounds i8, ptr %a, i64 22
577   store i8 6, ptr %arrayidx22, align 1
578   %arrayidx23 = getelementptr inbounds i8, ptr %a, i64 23
579   store i8 7, ptr %arrayidx23, align 1
580   ret void
583 define dso_local void @foo8_int_le_reuse8B(ptr nocapture noundef writeonly %a) local_unnamed_addr {
584 ; P8-BE-LABEL: foo8_int_le_reuse8B:
585 ; P8-BE:       # %bb.0: # %entry
586 ; P8-BE-NEXT:    ld 4, L..C7(2) # %const.0
587 ; P8-BE-NEXT:    lxvw4x 0, 0, 4
588 ; P8-BE-NEXT:    lis 4, 2057
589 ; P8-BE-NEXT:    ori 4, 4, 2571
590 ; P8-BE-NEXT:    rldic 4, 4, 32, 4
591 ; P8-BE-NEXT:    stxvw4x 0, 0, 3
592 ; P8-BE-NEXT:    oris 4, 4, 3085
593 ; P8-BE-NEXT:    ori 4, 4, 3599
594 ; P8-BE-NEXT:    std 4, 16(3)
595 ; P8-BE-NEXT:    blr
597 ; P9-BE-LABEL: foo8_int_le_reuse8B:
598 ; P9-BE:       # %bb.0: # %entry
599 ; P9-BE-NEXT:    ld 4, L..C7(2) # %const.0
600 ; P9-BE-NEXT:    lxv 0, 0(4)
601 ; P9-BE-NEXT:    lis 4, 2057
602 ; P9-BE-NEXT:    ori 4, 4, 2571
603 ; P9-BE-NEXT:    rldic 4, 4, 32, 4
604 ; P9-BE-NEXT:    stxv 0, 0(3)
605 ; P9-BE-NEXT:    oris 4, 4, 3085
606 ; P9-BE-NEXT:    ori 4, 4, 3599
607 ; P9-BE-NEXT:    std 4, 16(3)
608 ; P9-BE-NEXT:    blr
610 ; P10-BE-LABEL: foo8_int_le_reuse8B:
611 ; P10-BE:       # %bb.0: # %entry
612 ; P10-BE-NEXT:    ld 4, L..C7(2) # %const.0
613 ; P10-BE-NEXT:    pli 5, 202182159
614 ; P10-BE-NEXT:    lxv 0, 0(4)
615 ; P10-BE-NEXT:    pli 4, 134810123
616 ; P10-BE-NEXT:    rldimi 5, 4, 32, 0
617 ; P10-BE-NEXT:    std 5, 16(3)
618 ; P10-BE-NEXT:    stxv 0, 0(3)
619 ; P10-BE-NEXT:    blr
621 ; P8-LE-LABEL: foo8_int_le_reuse8B:
622 ; P8-LE:       # %bb.0: # %entry
623 ; P8-LE-NEXT:    addis 4, 2, .LCPI7_0@toc@ha
624 ; P8-LE-NEXT:    addi 4, 4, .LCPI7_0@toc@l
625 ; P8-LE-NEXT:    lxvd2x 0, 0, 4
626 ; P8-LE-NEXT:    lis 4, 963
627 ; P8-LE-NEXT:    ori 4, 4, 33603
628 ; P8-LE-NEXT:    rldic 4, 4, 34, 4
629 ; P8-LE-NEXT:    stxvd2x 0, 0, 3
630 ; P8-LE-NEXT:    oris 4, 4, 2826
631 ; P8-LE-NEXT:    ori 4, 4, 2312
632 ; P8-LE-NEXT:    std 4, 16(3)
633 ; P8-LE-NEXT:    blr
635 ; P9-LE-LABEL: foo8_int_le_reuse8B:
636 ; P9-LE:       # %bb.0: # %entry
637 ; P9-LE-NEXT:    addis 4, 2, .LCPI7_0@toc@ha
638 ; P9-LE-NEXT:    addi 4, 4, .LCPI7_0@toc@l
639 ; P9-LE-NEXT:    lxv 0, 0(4)
640 ; P9-LE-NEXT:    lis 4, 963
641 ; P9-LE-NEXT:    ori 4, 4, 33603
642 ; P9-LE-NEXT:    rldic 4, 4, 34, 4
643 ; P9-LE-NEXT:    stxv 0, 0(3)
644 ; P9-LE-NEXT:    oris 4, 4, 2826
645 ; P9-LE-NEXT:    ori 4, 4, 2312
646 ; P9-LE-NEXT:    std 4, 16(3)
647 ; P9-LE-NEXT:    blr
649 ; P10-LE-LABEL: foo8_int_le_reuse8B:
650 ; P10-LE:       # %bb.0: # %entry
651 ; P10-LE-NEXT:    plxv 0, .LCPI7_0@PCREL(0), 1
652 ; P10-LE-NEXT:    pli 4, 252579084
653 ; P10-LE-NEXT:    pli 5, 185207048
654 ; P10-LE-NEXT:    rldimi 5, 4, 32, 0
655 ; P10-LE-NEXT:    std 5, 16(3)
656 ; P10-LE-NEXT:    stxv 0, 0(3)
657 ; P10-LE-NEXT:    blr
658 entry:
659   store <16 x i8> <i8 0, i8 1, i8 2, i8 3, i8 4, i8 5, i8 6, i8 7, i8 8, i8 9, i8 10, i8 11, i8 12, i8 13, i8 14, i8 15>, ptr %a, align 1
660   %arrayidx16 = getelementptr inbounds i8, ptr %a, i64 16
661   store i8 8, ptr %arrayidx16, align 1
662   %arrayidx17 = getelementptr inbounds i8, ptr %a, i64 17
663   store i8 9, ptr %arrayidx17, align 1
664   %arrayidx18 = getelementptr inbounds i8, ptr %a, i64 18
665   store i8 10, ptr %arrayidx18, align 1
666   %arrayidx19 = getelementptr inbounds i8, ptr %a, i64 19
667   store i8 11, ptr %arrayidx19, align 1
668   %arrayidx20 = getelementptr inbounds i8, ptr %a, i64 20
669   store i8 12, ptr %arrayidx20, align 1
670   %arrayidx21 = getelementptr inbounds i8, ptr %a, i64 21
671   store i8 13, ptr %arrayidx21, align 1
672   %arrayidx22 = getelementptr inbounds i8, ptr %a, i64 22
673   store i8 14, ptr %arrayidx22, align 1
674   %arrayidx23 = getelementptr inbounds i8, ptr %a, i64 23
675   store i8 15, ptr %arrayidx23, align 1
676   ret void
679 define dso_local void @foo9_int_be_reuse8B(ptr nocapture noundef writeonly %a) local_unnamed_addr {
680 ; P8-BE-LABEL: foo9_int_be_reuse8B:
681 ; P8-BE:       # %bb.0: # %entry
682 ; P8-BE-NEXT:    ld 4, L..C8(2) # %const.0
683 ; P8-BE-NEXT:    lxvw4x 0, 0, 4
684 ; P8-BE-NEXT:    lis 4, 1
685 ; P8-BE-NEXT:    ori 4, 4, 515
686 ; P8-BE-NEXT:    rldic 4, 4, 32, 15
687 ; P8-BE-NEXT:    stxvw4x 0, 0, 3
688 ; P8-BE-NEXT:    oris 4, 4, 1029
689 ; P8-BE-NEXT:    ori 4, 4, 1543
690 ; P8-BE-NEXT:    std 4, 16(3)
691 ; P8-BE-NEXT:    blr
693 ; P9-BE-LABEL: foo9_int_be_reuse8B:
694 ; P9-BE:       # %bb.0: # %entry
695 ; P9-BE-NEXT:    ld 4, L..C8(2) # %const.0
696 ; P9-BE-NEXT:    lxv 0, 0(4)
697 ; P9-BE-NEXT:    lis 4, 1
698 ; P9-BE-NEXT:    ori 4, 4, 515
699 ; P9-BE-NEXT:    rldic 4, 4, 32, 15
700 ; P9-BE-NEXT:    stxv 0, 0(3)
701 ; P9-BE-NEXT:    oris 4, 4, 1029
702 ; P9-BE-NEXT:    ori 4, 4, 1543
703 ; P9-BE-NEXT:    std 4, 16(3)
704 ; P9-BE-NEXT:    blr
706 ; P10-BE-LABEL: foo9_int_be_reuse8B:
707 ; P10-BE:       # %bb.0: # %entry
708 ; P10-BE-NEXT:    ld 4, L..C8(2) # %const.0
709 ; P10-BE-NEXT:    pli 5, 67438087
710 ; P10-BE-NEXT:    lxv 0, 0(4)
711 ; P10-BE-NEXT:    pli 4, 66051
712 ; P10-BE-NEXT:    rldimi 5, 4, 32, 0
713 ; P10-BE-NEXT:    std 5, 16(3)
714 ; P10-BE-NEXT:    stxv 0, 0(3)
715 ; P10-BE-NEXT:    blr
717 ; P8-LE-LABEL: foo9_int_be_reuse8B:
718 ; P8-LE:       # %bb.0: # %entry
719 ; P8-LE-NEXT:    addis 4, 2, .LCPI8_0@toc@ha
720 ; P8-LE-NEXT:    addi 4, 4, .LCPI8_0@toc@l
721 ; P8-LE-NEXT:    lxvd2x 0, 0, 4
722 ; P8-LE-NEXT:    lis 4, 1543
723 ; P8-LE-NEXT:    ori 4, 4, 1029
724 ; P8-LE-NEXT:    rldic 4, 4, 32, 5
725 ; P8-LE-NEXT:    stxvd2x 0, 0, 3
726 ; P8-LE-NEXT:    oris 4, 4, 515
727 ; P8-LE-NEXT:    ori 4, 4, 1
728 ; P8-LE-NEXT:    std 4, 16(3)
729 ; P8-LE-NEXT:    blr
731 ; P9-LE-LABEL: foo9_int_be_reuse8B:
732 ; P9-LE:       # %bb.0: # %entry
733 ; P9-LE-NEXT:    addis 4, 2, .LCPI8_0@toc@ha
734 ; P9-LE-NEXT:    addi 4, 4, .LCPI8_0@toc@l
735 ; P9-LE-NEXT:    lxv 0, 0(4)
736 ; P9-LE-NEXT:    lis 4, 1543
737 ; P9-LE-NEXT:    ori 4, 4, 1029
738 ; P9-LE-NEXT:    rldic 4, 4, 32, 5
739 ; P9-LE-NEXT:    stxv 0, 0(3)
740 ; P9-LE-NEXT:    oris 4, 4, 515
741 ; P9-LE-NEXT:    ori 4, 4, 1
742 ; P9-LE-NEXT:    std 4, 16(3)
743 ; P9-LE-NEXT:    blr
745 ; P10-LE-LABEL: foo9_int_be_reuse8B:
746 ; P10-LE:       # %bb.0: # %entry
747 ; P10-LE-NEXT:    plxv 0, .LCPI8_0@PCREL(0), 1
748 ; P10-LE-NEXT:    pli 4, 101123077
749 ; P10-LE-NEXT:    pli 5, 33751041
750 ; P10-LE-NEXT:    rldimi 5, 4, 32, 0
751 ; P10-LE-NEXT:    std 5, 16(3)
752 ; P10-LE-NEXT:    stxv 0, 0(3)
753 ; P10-LE-NEXT:    blr
754 entry:
755   store <8 x i16> <i16 1, i16 515, i16 1029, i16 1543, i16 2057, i16 2571, i16 3085, i16 3599>, ptr %a, align 2
756   %arrayidx8 = getelementptr inbounds i16, ptr %a, i64 8
757   store i16 1, ptr %arrayidx8, align 2
758   %arrayidx9 = getelementptr inbounds i16, ptr %a, i64 9
759   store i16 515, ptr %arrayidx9, align 2
760   %arrayidx10 = getelementptr inbounds i16, ptr %a, i64 10
761   store i16 1029, ptr %arrayidx10, align 2
762   %arrayidx11 = getelementptr inbounds i16, ptr %a, i64 11
763   store i16 1543, ptr %arrayidx11, align 2
764   ret void
767 define dso_local void @foo10_int_le_reuse8B(ptr nocapture noundef writeonly %a) local_unnamed_addr {
768 ; P8-BE-LABEL: foo10_int_le_reuse8B:
769 ; P8-BE:       # %bb.0: # %entry
770 ; P8-BE-NEXT:    ld 4, L..C9(2) # %const.0
771 ; P8-BE-NEXT:    lxvw4x 0, 0, 4
772 ; P8-BE-NEXT:    lis 4, 2057
773 ; P8-BE-NEXT:    ori 4, 4, 2571
774 ; P8-BE-NEXT:    rldic 4, 4, 32, 4
775 ; P8-BE-NEXT:    stxvw4x 0, 0, 3
776 ; P8-BE-NEXT:    oris 4, 4, 3085
777 ; P8-BE-NEXT:    ori 4, 4, 3599
778 ; P8-BE-NEXT:    std 4, 16(3)
779 ; P8-BE-NEXT:    blr
781 ; P9-BE-LABEL: foo10_int_le_reuse8B:
782 ; P9-BE:       # %bb.0: # %entry
783 ; P9-BE-NEXT:    ld 4, L..C9(2) # %const.0
784 ; P9-BE-NEXT:    lxv 0, 0(4)
785 ; P9-BE-NEXT:    lis 4, 2057
786 ; P9-BE-NEXT:    ori 4, 4, 2571
787 ; P9-BE-NEXT:    rldic 4, 4, 32, 4
788 ; P9-BE-NEXT:    stxv 0, 0(3)
789 ; P9-BE-NEXT:    oris 4, 4, 3085
790 ; P9-BE-NEXT:    ori 4, 4, 3599
791 ; P9-BE-NEXT:    std 4, 16(3)
792 ; P9-BE-NEXT:    blr
794 ; P10-BE-LABEL: foo10_int_le_reuse8B:
795 ; P10-BE:       # %bb.0: # %entry
796 ; P10-BE-NEXT:    ld 4, L..C9(2) # %const.0
797 ; P10-BE-NEXT:    pli 5, 202182159
798 ; P10-BE-NEXT:    lxv 0, 0(4)
799 ; P10-BE-NEXT:    pli 4, 134810123
800 ; P10-BE-NEXT:    rldimi 5, 4, 32, 0
801 ; P10-BE-NEXT:    std 5, 16(3)
802 ; P10-BE-NEXT:    stxv 0, 0(3)
803 ; P10-BE-NEXT:    blr
805 ; P8-LE-LABEL: foo10_int_le_reuse8B:
806 ; P8-LE:       # %bb.0: # %entry
807 ; P8-LE-NEXT:    addis 4, 2, .LCPI9_0@toc@ha
808 ; P8-LE-NEXT:    addi 4, 4, .LCPI9_0@toc@l
809 ; P8-LE-NEXT:    lxvd2x 0, 0, 4
810 ; P8-LE-NEXT:    lis 4, 3599
811 ; P8-LE-NEXT:    ori 4, 4, 3085
812 ; P8-LE-NEXT:    rldic 4, 4, 32, 4
813 ; P8-LE-NEXT:    stxvd2x 0, 0, 3
814 ; P8-LE-NEXT:    oris 4, 4, 2571
815 ; P8-LE-NEXT:    ori 4, 4, 2057
816 ; P8-LE-NEXT:    std 4, 16(3)
817 ; P8-LE-NEXT:    blr
819 ; P9-LE-LABEL: foo10_int_le_reuse8B:
820 ; P9-LE:       # %bb.0: # %entry
821 ; P9-LE-NEXT:    addis 4, 2, .LCPI9_0@toc@ha
822 ; P9-LE-NEXT:    addi 4, 4, .LCPI9_0@toc@l
823 ; P9-LE-NEXT:    lxv 0, 0(4)
824 ; P9-LE-NEXT:    lis 4, 3599
825 ; P9-LE-NEXT:    ori 4, 4, 3085
826 ; P9-LE-NEXT:    rldic 4, 4, 32, 4
827 ; P9-LE-NEXT:    stxv 0, 0(3)
828 ; P9-LE-NEXT:    oris 4, 4, 2571
829 ; P9-LE-NEXT:    ori 4, 4, 2057
830 ; P9-LE-NEXT:    std 4, 16(3)
831 ; P9-LE-NEXT:    blr
833 ; P10-LE-LABEL: foo10_int_le_reuse8B:
834 ; P10-LE:       # %bb.0: # %entry
835 ; P10-LE-NEXT:    plxv 0, .LCPI9_0@PCREL(0), 1
836 ; P10-LE-NEXT:    pli 4, 235867149
837 ; P10-LE-NEXT:    pli 5, 168495113
838 ; P10-LE-NEXT:    rldimi 5, 4, 32, 0
839 ; P10-LE-NEXT:    std 5, 16(3)
840 ; P10-LE-NEXT:    stxv 0, 0(3)
841 ; P10-LE-NEXT:    blr
842 entry:
843   store <8 x i16> <i16 1, i16 515, i16 1029, i16 1543, i16 2057, i16 2571, i16 3085, i16 3599>, ptr %a, align 2
844   %arrayidx8 = getelementptr inbounds i16, ptr %a, i64 8
845   store i16 2057, ptr %arrayidx8, align 2
846   %arrayidx9 = getelementptr inbounds i16, ptr %a, i64 9
847   store i16 2571, ptr %arrayidx9, align 2
848   %arrayidx10 = getelementptr inbounds i16, ptr %a, i64 10
849   store i16 3085, ptr %arrayidx10, align 2
850   %arrayidx11 = getelementptr inbounds i16, ptr %a, i64 11
851   store i16 3599, ptr %arrayidx11, align 2
852   ret void
855 define dso_local void @foo11_int_be_reuse8B(ptr nocapture noundef writeonly %a) local_unnamed_addr {
856 ; P8-BE-LABEL: foo11_int_be_reuse8B:
857 ; P8-BE:       # %bb.0: # %entry
858 ; P8-BE-NEXT:    ld 4, L..C10(2) # %const.0
859 ; P8-BE-NEXT:    lxvw4x 0, 0, 4
860 ; P8-BE-NEXT:    lis 4, 1
861 ; P8-BE-NEXT:    ori 4, 4, 515
862 ; P8-BE-NEXT:    rldic 4, 4, 32, 15
863 ; P8-BE-NEXT:    stxvw4x 0, 0, 3
864 ; P8-BE-NEXT:    oris 4, 4, 1029
865 ; P8-BE-NEXT:    ori 4, 4, 1543
866 ; P8-BE-NEXT:    std 4, 16(3)
867 ; P8-BE-NEXT:    blr
869 ; P9-BE-LABEL: foo11_int_be_reuse8B:
870 ; P9-BE:       # %bb.0: # %entry
871 ; P9-BE-NEXT:    ld 4, L..C10(2) # %const.0
872 ; P9-BE-NEXT:    lxv 0, 0(4)
873 ; P9-BE-NEXT:    lis 4, 1
874 ; P9-BE-NEXT:    ori 4, 4, 515
875 ; P9-BE-NEXT:    rldic 4, 4, 32, 15
876 ; P9-BE-NEXT:    stxv 0, 0(3)
877 ; P9-BE-NEXT:    oris 4, 4, 1029
878 ; P9-BE-NEXT:    ori 4, 4, 1543
879 ; P9-BE-NEXT:    std 4, 16(3)
880 ; P9-BE-NEXT:    blr
882 ; P10-BE-LABEL: foo11_int_be_reuse8B:
883 ; P10-BE:       # %bb.0: # %entry
884 ; P10-BE-NEXT:    ld 4, L..C10(2) # %const.0
885 ; P10-BE-NEXT:    pli 5, 67438087
886 ; P10-BE-NEXT:    lxv 0, 0(4)
887 ; P10-BE-NEXT:    pli 4, 66051
888 ; P10-BE-NEXT:    rldimi 5, 4, 32, 0
889 ; P10-BE-NEXT:    std 5, 16(3)
890 ; P10-BE-NEXT:    stxv 0, 0(3)
891 ; P10-BE-NEXT:    blr
893 ; P8-LE-LABEL: foo11_int_be_reuse8B:
894 ; P8-LE:       # %bb.0: # %entry
895 ; P8-LE-NEXT:    addis 4, 2, .LCPI10_0@toc@ha
896 ; P8-LE-NEXT:    addi 4, 4, .LCPI10_0@toc@l
897 ; P8-LE-NEXT:    lxvd2x 0, 0, 4
898 ; P8-LE-NEXT:    lis 4, 1029
899 ; P8-LE-NEXT:    ori 4, 4, 1543
900 ; P8-LE-NEXT:    rldic 4, 4, 32, 5
901 ; P8-LE-NEXT:    stxvd2x 0, 0, 3
902 ; P8-LE-NEXT:    oris 4, 4, 1
903 ; P8-LE-NEXT:    ori 4, 4, 515
904 ; P8-LE-NEXT:    std 4, 16(3)
905 ; P8-LE-NEXT:    blr
907 ; P9-LE-LABEL: foo11_int_be_reuse8B:
908 ; P9-LE:       # %bb.0: # %entry
909 ; P9-LE-NEXT:    addis 4, 2, .LCPI10_0@toc@ha
910 ; P9-LE-NEXT:    addi 4, 4, .LCPI10_0@toc@l
911 ; P9-LE-NEXT:    lxv 0, 0(4)
912 ; P9-LE-NEXT:    lis 4, 1029
913 ; P9-LE-NEXT:    ori 4, 4, 1543
914 ; P9-LE-NEXT:    rldic 4, 4, 32, 5
915 ; P9-LE-NEXT:    stxv 0, 0(3)
916 ; P9-LE-NEXT:    oris 4, 4, 1
917 ; P9-LE-NEXT:    ori 4, 4, 515
918 ; P9-LE-NEXT:    std 4, 16(3)
919 ; P9-LE-NEXT:    blr
921 ; P10-LE-LABEL: foo11_int_be_reuse8B:
922 ; P10-LE:       # %bb.0: # %entry
923 ; P10-LE-NEXT:    plxv 0, .LCPI10_0@PCREL(0), 1
924 ; P10-LE-NEXT:    pli 4, 67438087
925 ; P10-LE-NEXT:    pli 5, 66051
926 ; P10-LE-NEXT:    rldimi 5, 4, 32, 0
927 ; P10-LE-NEXT:    std 5, 16(3)
928 ; P10-LE-NEXT:    stxv 0, 0(3)
929 ; P10-LE-NEXT:    blr
930 entry:
931   store <4 x i32> <i32 66051, i32 67438087, i32 134810123, i32 202182159>, ptr %a, align 4
932   %arrayidx4 = getelementptr inbounds i32, ptr %a, i64 4
933   store i32 66051, ptr %arrayidx4, align 4
934   %arrayidx5 = getelementptr inbounds i32, ptr %a, i64 5
935   store i32 67438087, ptr %arrayidx5, align 4
936   ret void
939 define dso_local void @foo12_int_le_reuse8B(ptr nocapture noundef writeonly %a) local_unnamed_addr {
940 ; P8-BE-LABEL: foo12_int_le_reuse8B:
941 ; P8-BE:       # %bb.0: # %entry
942 ; P8-BE-NEXT:    ld 4, L..C11(2) # %const.0
943 ; P8-BE-NEXT:    lxvw4x 0, 0, 4
944 ; P8-BE-NEXT:    lis 4, 2057
945 ; P8-BE-NEXT:    ori 4, 4, 2571
946 ; P8-BE-NEXT:    rldic 4, 4, 32, 4
947 ; P8-BE-NEXT:    stxvw4x 0, 0, 3
948 ; P8-BE-NEXT:    oris 4, 4, 3085
949 ; P8-BE-NEXT:    ori 4, 4, 3599
950 ; P8-BE-NEXT:    std 4, 16(3)
951 ; P8-BE-NEXT:    blr
953 ; P9-BE-LABEL: foo12_int_le_reuse8B:
954 ; P9-BE:       # %bb.0: # %entry
955 ; P9-BE-NEXT:    ld 4, L..C11(2) # %const.0
956 ; P9-BE-NEXT:    lxv 0, 0(4)
957 ; P9-BE-NEXT:    lis 4, 2057
958 ; P9-BE-NEXT:    ori 4, 4, 2571
959 ; P9-BE-NEXT:    rldic 4, 4, 32, 4
960 ; P9-BE-NEXT:    stxv 0, 0(3)
961 ; P9-BE-NEXT:    oris 4, 4, 3085
962 ; P9-BE-NEXT:    ori 4, 4, 3599
963 ; P9-BE-NEXT:    std 4, 16(3)
964 ; P9-BE-NEXT:    blr
966 ; P10-BE-LABEL: foo12_int_le_reuse8B:
967 ; P10-BE:       # %bb.0: # %entry
968 ; P10-BE-NEXT:    ld 4, L..C11(2) # %const.0
969 ; P10-BE-NEXT:    pli 5, 202182159
970 ; P10-BE-NEXT:    lxv 0, 0(4)
971 ; P10-BE-NEXT:    pli 4, 134810123
972 ; P10-BE-NEXT:    rldimi 5, 4, 32, 0
973 ; P10-BE-NEXT:    std 5, 16(3)
974 ; P10-BE-NEXT:    stxv 0, 0(3)
975 ; P10-BE-NEXT:    blr
977 ; P8-LE-LABEL: foo12_int_le_reuse8B:
978 ; P8-LE:       # %bb.0: # %entry
979 ; P8-LE-NEXT:    addis 4, 2, .LCPI11_0@toc@ha
980 ; P8-LE-NEXT:    addi 4, 4, .LCPI11_0@toc@l
981 ; P8-LE-NEXT:    lxvd2x 0, 0, 4
982 ; P8-LE-NEXT:    lis 4, 3085
983 ; P8-LE-NEXT:    ori 4, 4, 3599
984 ; P8-LE-NEXT:    rldic 4, 4, 32, 4
985 ; P8-LE-NEXT:    stxvd2x 0, 0, 3
986 ; P8-LE-NEXT:    oris 4, 4, 2057
987 ; P8-LE-NEXT:    ori 4, 4, 2571
988 ; P8-LE-NEXT:    std 4, 16(3)
989 ; P8-LE-NEXT:    blr
991 ; P9-LE-LABEL: foo12_int_le_reuse8B:
992 ; P9-LE:       # %bb.0: # %entry
993 ; P9-LE-NEXT:    addis 4, 2, .LCPI11_0@toc@ha
994 ; P9-LE-NEXT:    addi 4, 4, .LCPI11_0@toc@l
995 ; P9-LE-NEXT:    lxv 0, 0(4)
996 ; P9-LE-NEXT:    lis 4, 3085
997 ; P9-LE-NEXT:    ori 4, 4, 3599
998 ; P9-LE-NEXT:    rldic 4, 4, 32, 4
999 ; P9-LE-NEXT:    stxv 0, 0(3)
1000 ; P9-LE-NEXT:    oris 4, 4, 2057
1001 ; P9-LE-NEXT:    ori 4, 4, 2571
1002 ; P9-LE-NEXT:    std 4, 16(3)
1003 ; P9-LE-NEXT:    blr
1005 ; P10-LE-LABEL: foo12_int_le_reuse8B:
1006 ; P10-LE:       # %bb.0: # %entry
1007 ; P10-LE-NEXT:    plxv 0, .LCPI11_0@PCREL(0), 1
1008 ; P10-LE-NEXT:    pli 4, 202182159
1009 ; P10-LE-NEXT:    pli 5, 134810123
1010 ; P10-LE-NEXT:    rldimi 5, 4, 32, 0
1011 ; P10-LE-NEXT:    std 5, 16(3)
1012 ; P10-LE-NEXT:    stxv 0, 0(3)
1013 ; P10-LE-NEXT:    blr
1014 entry:
1015   store <4 x i32> <i32 66051, i32 67438087, i32 134810123, i32 202182159>, ptr %a, align 4
1016   %arrayidx4 = getelementptr inbounds i32, ptr %a, i64 4
1017   store i32 134810123, ptr %arrayidx4, align 4
1018   %arrayidx5 = getelementptr inbounds i32, ptr %a, i64 5
1019   store i32 202182159, ptr %arrayidx5, align 4
1020   ret void
1023 define dso_local void @foo13_int_be_reuse8B(ptr nocapture noundef writeonly %a) local_unnamed_addr {
1024 ; P8-BE-LABEL: foo13_int_be_reuse8B:
1025 ; P8-BE:       # %bb.0: # %entry
1026 ; P8-BE-NEXT:    ld 4, L..C12(2) # %const.0
1027 ; P8-BE-NEXT:    lxvd2x 0, 0, 4
1028 ; P8-BE-NEXT:    lis 4, 1
1029 ; P8-BE-NEXT:    ori 4, 4, 515
1030 ; P8-BE-NEXT:    rldic 4, 4, 32, 15
1031 ; P8-BE-NEXT:    stxvd2x 0, 0, 3
1032 ; P8-BE-NEXT:    oris 4, 4, 1029
1033 ; P8-BE-NEXT:    ori 4, 4, 1543
1034 ; P8-BE-NEXT:    std 4, 16(3)
1035 ; P8-BE-NEXT:    blr
1037 ; P9-BE-LABEL: foo13_int_be_reuse8B:
1038 ; P9-BE:       # %bb.0: # %entry
1039 ; P9-BE-NEXT:    ld 4, L..C12(2) # %const.0
1040 ; P9-BE-NEXT:    lxv 0, 0(4)
1041 ; P9-BE-NEXT:    lis 4, 1
1042 ; P9-BE-NEXT:    ori 4, 4, 515
1043 ; P9-BE-NEXT:    rldic 4, 4, 32, 15
1044 ; P9-BE-NEXT:    stxv 0, 0(3)
1045 ; P9-BE-NEXT:    oris 4, 4, 1029
1046 ; P9-BE-NEXT:    ori 4, 4, 1543
1047 ; P9-BE-NEXT:    std 4, 16(3)
1048 ; P9-BE-NEXT:    blr
1050 ; P10-BE-LABEL: foo13_int_be_reuse8B:
1051 ; P10-BE:       # %bb.0: # %entry
1052 ; P10-BE-NEXT:    ld 4, L..C12(2) # %const.0
1053 ; P10-BE-NEXT:    pli 5, 67438087
1054 ; P10-BE-NEXT:    lxv 0, 0(4)
1055 ; P10-BE-NEXT:    pli 4, 66051
1056 ; P10-BE-NEXT:    rldimi 5, 4, 32, 0
1057 ; P10-BE-NEXT:    std 5, 16(3)
1058 ; P10-BE-NEXT:    stxv 0, 0(3)
1059 ; P10-BE-NEXT:    blr
1061 ; P8-LE-LABEL: foo13_int_be_reuse8B:
1062 ; P8-LE:       # %bb.0: # %entry
1063 ; P8-LE-NEXT:    addis 4, 2, .LCPI12_0@toc@ha
1064 ; P8-LE-NEXT:    addi 4, 4, .LCPI12_0@toc@l
1065 ; P8-LE-NEXT:    lxvd2x 0, 0, 4
1066 ; P8-LE-NEXT:    lis 4, 1
1067 ; P8-LE-NEXT:    ori 4, 4, 515
1068 ; P8-LE-NEXT:    rldic 4, 4, 32, 15
1069 ; P8-LE-NEXT:    stxvd2x 0, 0, 3
1070 ; P8-LE-NEXT:    oris 4, 4, 1029
1071 ; P8-LE-NEXT:    ori 4, 4, 1543
1072 ; P8-LE-NEXT:    std 4, 16(3)
1073 ; P8-LE-NEXT:    blr
1075 ; P9-LE-LABEL: foo13_int_be_reuse8B:
1076 ; P9-LE:       # %bb.0: # %entry
1077 ; P9-LE-NEXT:    addis 4, 2, .LCPI12_0@toc@ha
1078 ; P9-LE-NEXT:    addi 4, 4, .LCPI12_0@toc@l
1079 ; P9-LE-NEXT:    lxv 0, 0(4)
1080 ; P9-LE-NEXT:    lis 4, 1
1081 ; P9-LE-NEXT:    ori 4, 4, 515
1082 ; P9-LE-NEXT:    rldic 4, 4, 32, 15
1083 ; P9-LE-NEXT:    stxv 0, 0(3)
1084 ; P9-LE-NEXT:    oris 4, 4, 1029
1085 ; P9-LE-NEXT:    ori 4, 4, 1543
1086 ; P9-LE-NEXT:    std 4, 16(3)
1087 ; P9-LE-NEXT:    blr
1089 ; P10-LE-LABEL: foo13_int_be_reuse8B:
1090 ; P10-LE:       # %bb.0: # %entry
1091 ; P10-LE-NEXT:    plxv 0, .LCPI12_0@PCREL(0), 1
1092 ; P10-LE-NEXT:    pli 4, 66051
1093 ; P10-LE-NEXT:    pli 5, 67438087
1094 ; P10-LE-NEXT:    rldimi 5, 4, 32, 0
1095 ; P10-LE-NEXT:    std 5, 16(3)
1096 ; P10-LE-NEXT:    stxv 0, 0(3)
1097 ; P10-LE-NEXT:    blr
1098 entry:
1099   store <2 x i64> <i64 283686952306183, i64 579005069656919567>, ptr %a, align 8
1100   %arrayidx2 = getelementptr inbounds i64, ptr %a, i64 2
1101   store i64 283686952306183, ptr %arrayidx2, align 8
1102   ret void
1105 define dso_local void @foo14_int_le_reuse8B(ptr nocapture noundef writeonly %a) local_unnamed_addr {
1106 ; P8-BE-LABEL: foo14_int_le_reuse8B:
1107 ; P8-BE:       # %bb.0: # %entry
1108 ; P8-BE-NEXT:    ld 4, L..C13(2) # %const.0
1109 ; P8-BE-NEXT:    lxvd2x 0, 0, 4
1110 ; P8-BE-NEXT:    lis 4, 2057
1111 ; P8-BE-NEXT:    ori 4, 4, 2571
1112 ; P8-BE-NEXT:    rldic 4, 4, 32, 4
1113 ; P8-BE-NEXT:    stxvd2x 0, 0, 3
1114 ; P8-BE-NEXT:    oris 4, 4, 3085
1115 ; P8-BE-NEXT:    ori 4, 4, 3599
1116 ; P8-BE-NEXT:    std 4, 16(3)
1117 ; P8-BE-NEXT:    blr
1119 ; P9-BE-LABEL: foo14_int_le_reuse8B:
1120 ; P9-BE:       # %bb.0: # %entry
1121 ; P9-BE-NEXT:    ld 4, L..C13(2) # %const.0
1122 ; P9-BE-NEXT:    lxv 0, 0(4)
1123 ; P9-BE-NEXT:    lis 4, 2057
1124 ; P9-BE-NEXT:    ori 4, 4, 2571
1125 ; P9-BE-NEXT:    rldic 4, 4, 32, 4
1126 ; P9-BE-NEXT:    stxv 0, 0(3)
1127 ; P9-BE-NEXT:    oris 4, 4, 3085
1128 ; P9-BE-NEXT:    ori 4, 4, 3599
1129 ; P9-BE-NEXT:    std 4, 16(3)
1130 ; P9-BE-NEXT:    blr
1132 ; P10-BE-LABEL: foo14_int_le_reuse8B:
1133 ; P10-BE:       # %bb.0: # %entry
1134 ; P10-BE-NEXT:    ld 4, L..C13(2) # %const.0
1135 ; P10-BE-NEXT:    pli 5, 202182159
1136 ; P10-BE-NEXT:    lxv 0, 0(4)
1137 ; P10-BE-NEXT:    pli 4, 134810123
1138 ; P10-BE-NEXT:    rldimi 5, 4, 32, 0
1139 ; P10-BE-NEXT:    std 5, 16(3)
1140 ; P10-BE-NEXT:    stxv 0, 0(3)
1141 ; P10-BE-NEXT:    blr
1143 ; P8-LE-LABEL: foo14_int_le_reuse8B:
1144 ; P8-LE:       # %bb.0: # %entry
1145 ; P8-LE-NEXT:    addis 4, 2, .LCPI13_0@toc@ha
1146 ; P8-LE-NEXT:    addi 4, 4, .LCPI13_0@toc@l
1147 ; P8-LE-NEXT:    lxvd2x 0, 0, 4
1148 ; P8-LE-NEXT:    lis 4, 2057
1149 ; P8-LE-NEXT:    ori 4, 4, 2571
1150 ; P8-LE-NEXT:    rldic 4, 4, 32, 4
1151 ; P8-LE-NEXT:    stxvd2x 0, 0, 3
1152 ; P8-LE-NEXT:    oris 4, 4, 3085
1153 ; P8-LE-NEXT:    ori 4, 4, 3599
1154 ; P8-LE-NEXT:    std 4, 16(3)
1155 ; P8-LE-NEXT:    blr
1157 ; P9-LE-LABEL: foo14_int_le_reuse8B:
1158 ; P9-LE:       # %bb.0: # %entry
1159 ; P9-LE-NEXT:    addis 4, 2, .LCPI13_0@toc@ha
1160 ; P9-LE-NEXT:    addi 4, 4, .LCPI13_0@toc@l
1161 ; P9-LE-NEXT:    lxv 0, 0(4)
1162 ; P9-LE-NEXT:    lis 4, 2057
1163 ; P9-LE-NEXT:    ori 4, 4, 2571
1164 ; P9-LE-NEXT:    rldic 4, 4, 32, 4
1165 ; P9-LE-NEXT:    stxv 0, 0(3)
1166 ; P9-LE-NEXT:    oris 4, 4, 3085
1167 ; P9-LE-NEXT:    ori 4, 4, 3599
1168 ; P9-LE-NEXT:    std 4, 16(3)
1169 ; P9-LE-NEXT:    blr
1171 ; P10-LE-LABEL: foo14_int_le_reuse8B:
1172 ; P10-LE:       # %bb.0: # %entry
1173 ; P10-LE-NEXT:    plxv 0, .LCPI13_0@PCREL(0), 1
1174 ; P10-LE-NEXT:    pli 4, 134810123
1175 ; P10-LE-NEXT:    pli 5, 202182159
1176 ; P10-LE-NEXT:    rldimi 5, 4, 32, 0
1177 ; P10-LE-NEXT:    std 5, 16(3)
1178 ; P10-LE-NEXT:    stxv 0, 0(3)
1179 ; P10-LE-NEXT:    blr
1180 entry:
1181   store <2 x i64> <i64 283686952306183, i64 579005069656919567>, ptr %a, align 8
1182   %arrayidx2 = getelementptr inbounds i64, ptr %a, i64 2
1183   store i64 579005069656919567, ptr %arrayidx2, align 8
1184   ret void
1187 define dso_local void @foo15_int_noreuse4B(ptr nocapture noundef writeonly %a) local_unnamed_addr {
1188 ; P8-BE-LABEL: foo15_int_noreuse4B:
1189 ; P8-BE:       # %bb.0: # %entry
1190 ; P8-BE-NEXT:    ld 4, L..C14(2) # %const.0
1191 ; P8-BE-NEXT:    lxvw4x 0, 0, 4
1192 ; P8-BE-NEXT:    lis 4, 1029
1193 ; P8-BE-NEXT:    ori 4, 4, 1544
1194 ; P8-BE-NEXT:    stw 4, 16(3)
1195 ; P8-BE-NEXT:    stxvw4x 0, 0, 3
1196 ; P8-BE-NEXT:    blr
1198 ; P9-BE-LABEL: foo15_int_noreuse4B:
1199 ; P9-BE:       # %bb.0: # %entry
1200 ; P9-BE-NEXT:    ld 4, L..C14(2) # %const.0
1201 ; P9-BE-NEXT:    lxv 0, 0(4)
1202 ; P9-BE-NEXT:    lis 4, 1029
1203 ; P9-BE-NEXT:    ori 4, 4, 1544
1204 ; P9-BE-NEXT:    stw 4, 16(3)
1205 ; P9-BE-NEXT:    stxv 0, 0(3)
1206 ; P9-BE-NEXT:    blr
1208 ; P10-BE-LABEL: foo15_int_noreuse4B:
1209 ; P10-BE:       # %bb.0: # %entry
1210 ; P10-BE-NEXT:    ld 4, L..C14(2) # %const.0
1211 ; P10-BE-NEXT:    lxv 0, 0(4)
1212 ; P10-BE-NEXT:    pli 4, 67438088
1213 ; P10-BE-NEXT:    stw 4, 16(3)
1214 ; P10-BE-NEXT:    stxv 0, 0(3)
1215 ; P10-BE-NEXT:    blr
1217 ; P8-LE-LABEL: foo15_int_noreuse4B:
1218 ; P8-LE:       # %bb.0: # %entry
1219 ; P8-LE-NEXT:    addis 4, 2, .LCPI14_0@toc@ha
1220 ; P8-LE-NEXT:    addi 4, 4, .LCPI14_0@toc@l
1221 ; P8-LE-NEXT:    lxvd2x 0, 0, 4
1222 ; P8-LE-NEXT:    lis 4, 1029
1223 ; P8-LE-NEXT:    ori 4, 4, 1544
1224 ; P8-LE-NEXT:    stxvd2x 0, 0, 3
1225 ; P8-LE-NEXT:    stw 4, 16(3)
1226 ; P8-LE-NEXT:    blr
1228 ; P9-LE-LABEL: foo15_int_noreuse4B:
1229 ; P9-LE:       # %bb.0: # %entry
1230 ; P9-LE-NEXT:    addis 4, 2, .LCPI14_0@toc@ha
1231 ; P9-LE-NEXT:    addi 4, 4, .LCPI14_0@toc@l
1232 ; P9-LE-NEXT:    lxv 0, 0(4)
1233 ; P9-LE-NEXT:    lis 4, 1029
1234 ; P9-LE-NEXT:    ori 4, 4, 1544
1235 ; P9-LE-NEXT:    stw 4, 16(3)
1236 ; P9-LE-NEXT:    stxv 0, 0(3)
1237 ; P9-LE-NEXT:    blr
1239 ; P10-LE-LABEL: foo15_int_noreuse4B:
1240 ; P10-LE:       # %bb.0: # %entry
1241 ; P10-LE-NEXT:    plxv 0, .LCPI14_0@PCREL(0), 1
1242 ; P10-LE-NEXT:    pli 4, 67438088
1243 ; P10-LE-NEXT:    stw 4, 16(3)
1244 ; P10-LE-NEXT:    stxv 0, 0(3)
1245 ; P10-LE-NEXT:    blr
1246 entry:
1247   store <4 x i32> <i32 66051, i32 67438087, i32 134810123, i32 202182159>, ptr %a, align 4
1248   %arrayidx4 = getelementptr inbounds i32, ptr %a, i64 4
1249   store i32 67438088, ptr %arrayidx4, align 4
1250   ret void
1253 define dso_local void @foo16_int_noreuse8B(ptr nocapture noundef writeonly %a) local_unnamed_addr {
1254 ; P8-BE-LABEL: foo16_int_noreuse8B:
1255 ; P8-BE:       # %bb.0: # %entry
1256 ; P8-BE-NEXT:    ld 4, L..C15(2) # %const.0
1257 ; P8-BE-NEXT:    lxvw4x 0, 0, 4
1258 ; P8-BE-NEXT:    lis 4, 1
1259 ; P8-BE-NEXT:    ori 4, 4, 515
1260 ; P8-BE-NEXT:    rldic 4, 4, 32, 15
1261 ; P8-BE-NEXT:    stxvw4x 0, 0, 3
1262 ; P8-BE-NEXT:    oris 4, 4, 1029
1263 ; P8-BE-NEXT:    ori 4, 4, 1544
1264 ; P8-BE-NEXT:    std 4, 16(3)
1265 ; P8-BE-NEXT:    blr
1267 ; P9-BE-LABEL: foo16_int_noreuse8B:
1268 ; P9-BE:       # %bb.0: # %entry
1269 ; P9-BE-NEXT:    ld 4, L..C15(2) # %const.0
1270 ; P9-BE-NEXT:    lxv 0, 0(4)
1271 ; P9-BE-NEXT:    lis 4, 1
1272 ; P9-BE-NEXT:    ori 4, 4, 515
1273 ; P9-BE-NEXT:    rldic 4, 4, 32, 15
1274 ; P9-BE-NEXT:    stxv 0, 0(3)
1275 ; P9-BE-NEXT:    oris 4, 4, 1029
1276 ; P9-BE-NEXT:    ori 4, 4, 1544
1277 ; P9-BE-NEXT:    std 4, 16(3)
1278 ; P9-BE-NEXT:    blr
1280 ; P10-BE-LABEL: foo16_int_noreuse8B:
1281 ; P10-BE:       # %bb.0: # %entry
1282 ; P10-BE-NEXT:    ld 4, L..C15(2) # %const.0
1283 ; P10-BE-NEXT:    pli 5, 67438088
1284 ; P10-BE-NEXT:    lxv 0, 0(4)
1285 ; P10-BE-NEXT:    pli 4, 66051
1286 ; P10-BE-NEXT:    rldimi 5, 4, 32, 0
1287 ; P10-BE-NEXT:    std 5, 16(3)
1288 ; P10-BE-NEXT:    stxv 0, 0(3)
1289 ; P10-BE-NEXT:    blr
1291 ; P8-LE-LABEL: foo16_int_noreuse8B:
1292 ; P8-LE:       # %bb.0: # %entry
1293 ; P8-LE-NEXT:    addis 4, 2, .LCPI15_0@toc@ha
1294 ; P8-LE-NEXT:    addi 4, 4, .LCPI15_0@toc@l
1295 ; P8-LE-NEXT:    lxvd2x 0, 0, 4
1296 ; P8-LE-NEXT:    lis 4, 128
1297 ; P8-LE-NEXT:    ori 4, 4, 41153
1298 ; P8-LE-NEXT:    rldic 4, 4, 35, 5
1299 ; P8-LE-NEXT:    stxvd2x 0, 0, 3
1300 ; P8-LE-NEXT:    oris 4, 4, 1
1301 ; P8-LE-NEXT:    ori 4, 4, 515
1302 ; P8-LE-NEXT:    std 4, 16(3)
1303 ; P8-LE-NEXT:    blr
1305 ; P9-LE-LABEL: foo16_int_noreuse8B:
1306 ; P9-LE:       # %bb.0: # %entry
1307 ; P9-LE-NEXT:    addis 4, 2, .LCPI15_0@toc@ha
1308 ; P9-LE-NEXT:    addi 4, 4, .LCPI15_0@toc@l
1309 ; P9-LE-NEXT:    lxv 0, 0(4)
1310 ; P9-LE-NEXT:    lis 4, 128
1311 ; P9-LE-NEXT:    ori 4, 4, 41153
1312 ; P9-LE-NEXT:    rldic 4, 4, 35, 5
1313 ; P9-LE-NEXT:    stxv 0, 0(3)
1314 ; P9-LE-NEXT:    oris 4, 4, 1
1315 ; P9-LE-NEXT:    ori 4, 4, 515
1316 ; P9-LE-NEXT:    std 4, 16(3)
1317 ; P9-LE-NEXT:    blr
1319 ; P10-LE-LABEL: foo16_int_noreuse8B:
1320 ; P10-LE:       # %bb.0: # %entry
1321 ; P10-LE-NEXT:    plxv 0, .LCPI15_0@PCREL(0), 1
1322 ; P10-LE-NEXT:    pli 4, 67438088
1323 ; P10-LE-NEXT:    pli 5, 66051
1324 ; P10-LE-NEXT:    rldimi 5, 4, 32, 0
1325 ; P10-LE-NEXT:    std 5, 16(3)
1326 ; P10-LE-NEXT:    stxv 0, 0(3)
1327 ; P10-LE-NEXT:    blr
1328 entry:
1329   store <4 x i32> <i32 66051, i32 67438087, i32 134810123, i32 202182159>, ptr %a, align 4
1330   %arrayidx4 = getelementptr inbounds i32, ptr %a, i64 4
1331   store i32 66051, ptr %arrayidx4, align 4
1332   %arrayidx5 = getelementptr inbounds i32, ptr %a, i64 5
1333   store i32 67438088, ptr %arrayidx5, align 4
1334   ret void
1337 define dso_local void @foo17_fp_be_reuse4B(ptr nocapture noundef writeonly %a) local_unnamed_addr {
1338 ; P8-BE-LABEL: foo17_fp_be_reuse4B:
1339 ; P8-BE:       # %bb.0: # %entry
1340 ; P8-BE-NEXT:    ld 4, L..C16(2) # %const.0
1341 ; P8-BE-NEXT:    lxvw4x 0, 0, 4
1342 ; P8-BE-NEXT:    lis 4, 16673
1343 ; P8-BE-NEXT:    ori 4, 4, 39322
1344 ; P8-BE-NEXT:    stw 4, 16(3)
1345 ; P8-BE-NEXT:    stxvw4x 0, 0, 3
1346 ; P8-BE-NEXT:    blr
1348 ; P9-BE-LABEL: foo17_fp_be_reuse4B:
1349 ; P9-BE:       # %bb.0: # %entry
1350 ; P9-BE-NEXT:    ld 4, L..C16(2) # %const.0
1351 ; P9-BE-NEXT:    lxv 0, 0(4)
1352 ; P9-BE-NEXT:    lis 4, 16673
1353 ; P9-BE-NEXT:    ori 4, 4, 39322
1354 ; P9-BE-NEXT:    stw 4, 16(3)
1355 ; P9-BE-NEXT:    stxv 0, 0(3)
1356 ; P9-BE-NEXT:    blr
1358 ; P10-BE-LABEL: foo17_fp_be_reuse4B:
1359 ; P10-BE:       # %bb.0: # %entry
1360 ; P10-BE-NEXT:    ld 4, L..C16(2) # %const.0
1361 ; P10-BE-NEXT:    lxv 0, 0(4)
1362 ; P10-BE-NEXT:    pli 4, 1092721050
1363 ; P10-BE-NEXT:    stw 4, 16(3)
1364 ; P10-BE-NEXT:    stxv 0, 0(3)
1365 ; P10-BE-NEXT:    blr
1367 ; P8-LE-LABEL: foo17_fp_be_reuse4B:
1368 ; P8-LE:       # %bb.0: # %entry
1369 ; P8-LE-NEXT:    addis 4, 2, .LCPI16_0@toc@ha
1370 ; P8-LE-NEXT:    addi 4, 4, .LCPI16_0@toc@l
1371 ; P8-LE-NEXT:    lxvd2x 0, 0, 4
1372 ; P8-LE-NEXT:    lis 4, 16673
1373 ; P8-LE-NEXT:    ori 4, 4, 39322
1374 ; P8-LE-NEXT:    stxvd2x 0, 0, 3
1375 ; P8-LE-NEXT:    stw 4, 16(3)
1376 ; P8-LE-NEXT:    blr
1378 ; P9-LE-LABEL: foo17_fp_be_reuse4B:
1379 ; P9-LE:       # %bb.0: # %entry
1380 ; P9-LE-NEXT:    addis 4, 2, .LCPI16_0@toc@ha
1381 ; P9-LE-NEXT:    addi 4, 4, .LCPI16_0@toc@l
1382 ; P9-LE-NEXT:    lxv 0, 0(4)
1383 ; P9-LE-NEXT:    lis 4, 16673
1384 ; P9-LE-NEXT:    ori 4, 4, 39322
1385 ; P9-LE-NEXT:    stw 4, 16(3)
1386 ; P9-LE-NEXT:    stxv 0, 0(3)
1387 ; P9-LE-NEXT:    blr
1389 ; P10-LE-LABEL: foo17_fp_be_reuse4B:
1390 ; P10-LE:       # %bb.0: # %entry
1391 ; P10-LE-NEXT:    plxv 0, .LCPI16_0@PCREL(0), 1
1392 ; P10-LE-NEXT:    pli 4, 1092721050
1393 ; P10-LE-NEXT:    stw 4, 16(3)
1394 ; P10-LE-NEXT:    stxv 0, 0(3)
1395 ; P10-LE-NEXT:    blr
1396 entry:
1397   store <4 x float> <float 1.000000e+00, float 0x4024333340000000, float 0x3FF3333340000000, float 0x3FF4CCCCC0000000>, ptr %a, align 4
1398   %arrayidx4 = getelementptr inbounds float, ptr %a, i64 4
1399   store float 0x4024333340000000, ptr %arrayidx4, align 4
1400   ret void
1403 define dso_local void @foo18_fp_le_reuse4B(ptr nocapture noundef writeonly %a) local_unnamed_addr {
1404 ; P8-BE-LABEL: foo18_fp_le_reuse4B:
1405 ; P8-BE:       # %bb.0: # %entry
1406 ; P8-BE-NEXT:    ld 4, L..C17(2) # %const.0
1407 ; P8-BE-NEXT:    lxvw4x 0, 0, 4
1408 ; P8-BE-NEXT:    lis 4, 16675
1409 ; P8-BE-NEXT:    ori 4, 4, 13107
1410 ; P8-BE-NEXT:    stw 4, 16(3)
1411 ; P8-BE-NEXT:    stxvw4x 0, 0, 3
1412 ; P8-BE-NEXT:    blr
1414 ; P9-BE-LABEL: foo18_fp_le_reuse4B:
1415 ; P9-BE:       # %bb.0: # %entry
1416 ; P9-BE-NEXT:    ld 4, L..C17(2) # %const.0
1417 ; P9-BE-NEXT:    lxv 0, 0(4)
1418 ; P9-BE-NEXT:    lis 4, 16675
1419 ; P9-BE-NEXT:    ori 4, 4, 13107
1420 ; P9-BE-NEXT:    stw 4, 16(3)
1421 ; P9-BE-NEXT:    stxv 0, 0(3)
1422 ; P9-BE-NEXT:    blr
1424 ; P10-BE-LABEL: foo18_fp_le_reuse4B:
1425 ; P10-BE:       # %bb.0: # %entry
1426 ; P10-BE-NEXT:    ld 4, L..C17(2) # %const.0
1427 ; P10-BE-NEXT:    lxv 0, 0(4)
1428 ; P10-BE-NEXT:    pli 4, 1092825907
1429 ; P10-BE-NEXT:    stw 4, 16(3)
1430 ; P10-BE-NEXT:    stxv 0, 0(3)
1431 ; P10-BE-NEXT:    blr
1433 ; P8-LE-LABEL: foo18_fp_le_reuse4B:
1434 ; P8-LE:       # %bb.0: # %entry
1435 ; P8-LE-NEXT:    addis 4, 2, .LCPI17_0@toc@ha
1436 ; P8-LE-NEXT:    addi 4, 4, .LCPI17_0@toc@l
1437 ; P8-LE-NEXT:    lxvd2x 0, 0, 4
1438 ; P8-LE-NEXT:    lis 4, 16675
1439 ; P8-LE-NEXT:    ori 4, 4, 13107
1440 ; P8-LE-NEXT:    stxvd2x 0, 0, 3
1441 ; P8-LE-NEXT:    stw 4, 16(3)
1442 ; P8-LE-NEXT:    blr
1444 ; P9-LE-LABEL: foo18_fp_le_reuse4B:
1445 ; P9-LE:       # %bb.0: # %entry
1446 ; P9-LE-NEXT:    addis 4, 2, .LCPI17_0@toc@ha
1447 ; P9-LE-NEXT:    addi 4, 4, .LCPI17_0@toc@l
1448 ; P9-LE-NEXT:    lxv 0, 0(4)
1449 ; P9-LE-NEXT:    lis 4, 16675
1450 ; P9-LE-NEXT:    ori 4, 4, 13107
1451 ; P9-LE-NEXT:    stw 4, 16(3)
1452 ; P9-LE-NEXT:    stxv 0, 0(3)
1453 ; P9-LE-NEXT:    blr
1455 ; P10-LE-LABEL: foo18_fp_le_reuse4B:
1456 ; P10-LE:       # %bb.0: # %entry
1457 ; P10-LE-NEXT:    plxv 0, .LCPI17_0@PCREL(0), 1
1458 ; P10-LE-NEXT:    pli 4, 1092825907
1459 ; P10-LE-NEXT:    stw 4, 16(3)
1460 ; P10-LE-NEXT:    stxv 0, 0(3)
1461 ; P10-LE-NEXT:    blr
1462 entry:
1463   store <4 x float> <float 1.000000e+00, float 0x3FF19999A0000000, float 0x4024666660000000, float 0x3FF4CCCCC0000000>, ptr %a, align 4
1464   %arrayidx4 = getelementptr inbounds float, ptr %a, i64 4
1465   store float 0x4024666660000000, ptr %arrayidx4, align 4
1466   ret void
1469 define dso_local void @foo19_fp_be_reuse8B(ptr nocapture noundef writeonly %a) local_unnamed_addr {
1470 ; P8-BE-LABEL: foo19_fp_be_reuse8B:
1471 ; P8-BE:       # %bb.0: # %entry
1472 ; P8-BE-NEXT:    ld 4, L..C18(2) # %const.0
1473 ; P8-BE-NEXT:    lxvd2x 0, 0, 4
1474 ; P8-BE-NEXT:    li 4, 4105
1475 ; P8-BE-NEXT:    rldic 4, 4, 50, 1
1476 ; P8-BE-NEXT:    std 4, 16(3)
1477 ; P8-BE-NEXT:    stxvd2x 0, 0, 3
1478 ; P8-BE-NEXT:    blr
1480 ; P9-BE-LABEL: foo19_fp_be_reuse8B:
1481 ; P9-BE:       # %bb.0: # %entry
1482 ; P9-BE-NEXT:    ld 4, L..C18(2) # %const.0
1483 ; P9-BE-NEXT:    lxv 0, 0(4)
1484 ; P9-BE-NEXT:    li 4, 4105
1485 ; P9-BE-NEXT:    rldic 4, 4, 50, 1
1486 ; P9-BE-NEXT:    std 4, 16(3)
1487 ; P9-BE-NEXT:    stxv 0, 0(3)
1488 ; P9-BE-NEXT:    blr
1490 ; P10-BE-LABEL: foo19_fp_be_reuse8B:
1491 ; P10-BE:       # %bb.0: # %entry
1492 ; P10-BE-NEXT:    ld 4, L..C18(2) # %const.0
1493 ; P10-BE-NEXT:    lxv 0, 0(4)
1494 ; P10-BE-NEXT:    li 4, 4105
1495 ; P10-BE-NEXT:    rldic 4, 4, 50, 1
1496 ; P10-BE-NEXT:    std 4, 16(3)
1497 ; P10-BE-NEXT:    stxv 0, 0(3)
1498 ; P10-BE-NEXT:    blr
1500 ; P8-LE-LABEL: foo19_fp_be_reuse8B:
1501 ; P8-LE:       # %bb.0: # %entry
1502 ; P8-LE-NEXT:    addis 4, 2, .LCPI18_0@toc@ha
1503 ; P8-LE-NEXT:    addi 4, 4, .LCPI18_0@toc@l
1504 ; P8-LE-NEXT:    lxvd2x 0, 0, 4
1505 ; P8-LE-NEXT:    li 4, 4105
1506 ; P8-LE-NEXT:    rldic 4, 4, 50, 1
1507 ; P8-LE-NEXT:    stxvd2x 0, 0, 3
1508 ; P8-LE-NEXT:    std 4, 16(3)
1509 ; P8-LE-NEXT:    blr
1511 ; P9-LE-LABEL: foo19_fp_be_reuse8B:
1512 ; P9-LE:       # %bb.0: # %entry
1513 ; P9-LE-NEXT:    addis 4, 2, .LCPI18_0@toc@ha
1514 ; P9-LE-NEXT:    addi 4, 4, .LCPI18_0@toc@l
1515 ; P9-LE-NEXT:    lxv 0, 0(4)
1516 ; P9-LE-NEXT:    li 4, 4105
1517 ; P9-LE-NEXT:    rldic 4, 4, 50, 1
1518 ; P9-LE-NEXT:    std 4, 16(3)
1519 ; P9-LE-NEXT:    stxv 0, 0(3)
1520 ; P9-LE-NEXT:    blr
1522 ; P10-LE-LABEL: foo19_fp_be_reuse8B:
1523 ; P10-LE:       # %bb.0: # %entry
1524 ; P10-LE-NEXT:    plxv 0, .LCPI18_0@PCREL(0), 1
1525 ; P10-LE-NEXT:    li 4, 4105
1526 ; P10-LE-NEXT:    rldic 4, 4, 50, 1
1527 ; P10-LE-NEXT:    std 4, 16(3)
1528 ; P10-LE-NEXT:    stxv 0, 0(3)
1529 ; P10-LE-NEXT:    blr
1530 entry:
1531   store <2 x double> <double 1.000000e+01, double 1.100000e+00>, ptr %a, align 8
1532   %arrayidx2 = getelementptr inbounds double, ptr %a, i64 2
1533   store double 1.000000e+01, ptr %arrayidx2, align 8
1534   ret void
1537 define dso_local void @foo20_fp_le_reuse8B(ptr nocapture noundef writeonly %a) local_unnamed_addr {
1538 ; P8-BE-LABEL: foo20_fp_le_reuse8B:
1539 ; P8-BE:       # %bb.0: # %entry
1540 ; P8-BE-NEXT:    ld 4, L..C19(2) # %const.0
1541 ; P8-BE-NEXT:    lxvd2x 0, 0, 4
1542 ; P8-BE-NEXT:    lis 4, 16420
1543 ; P8-BE-NEXT:    ori 4, 4, 13107
1544 ; P8-BE-NEXT:    rldimi 4, 4, 32, 0
1545 ; P8-BE-NEXT:    stxvd2x 0, 0, 3
1546 ; P8-BE-NEXT:    rlwimi 4, 4, 16, 0, 15
1547 ; P8-BE-NEXT:    std 4, 16(3)
1548 ; P8-BE-NEXT:    blr
1550 ; P9-BE-LABEL: foo20_fp_le_reuse8B:
1551 ; P9-BE:       # %bb.0: # %entry
1552 ; P9-BE-NEXT:    ld 4, L..C19(2) # %const.0
1553 ; P9-BE-NEXT:    lxv 0, 0(4)
1554 ; P9-BE-NEXT:    lis 4, 16420
1555 ; P9-BE-NEXT:    ori 4, 4, 13107
1556 ; P9-BE-NEXT:    rldimi 4, 4, 32, 0
1557 ; P9-BE-NEXT:    stxv 0, 0(3)
1558 ; P9-BE-NEXT:    rlwimi 4, 4, 16, 0, 15
1559 ; P9-BE-NEXT:    std 4, 16(3)
1560 ; P9-BE-NEXT:    blr
1562 ; P10-BE-LABEL: foo20_fp_le_reuse8B:
1563 ; P10-BE:       # %bb.0: # %entry
1564 ; P10-BE-NEXT:    ld 4, L..C19(2) # %const.0
1565 ; P10-BE-NEXT:    pli 5, 858993459
1566 ; P10-BE-NEXT:    lxv 0, 0(4)
1567 ; P10-BE-NEXT:    pli 4, 1076114227
1568 ; P10-BE-NEXT:    rldimi 5, 4, 32, 0
1569 ; P10-BE-NEXT:    std 5, 16(3)
1570 ; P10-BE-NEXT:    stxv 0, 0(3)
1571 ; P10-BE-NEXT:    blr
1573 ; P8-LE-LABEL: foo20_fp_le_reuse8B:
1574 ; P8-LE:       # %bb.0: # %entry
1575 ; P8-LE-NEXT:    addis 4, 2, .LCPI19_0@toc@ha
1576 ; P8-LE-NEXT:    addi 4, 4, .LCPI19_0@toc@l
1577 ; P8-LE-NEXT:    lxvd2x 0, 0, 4
1578 ; P8-LE-NEXT:    lis 4, 16420
1579 ; P8-LE-NEXT:    ori 4, 4, 13107
1580 ; P8-LE-NEXT:    rldimi 4, 4, 32, 0
1581 ; P8-LE-NEXT:    stxvd2x 0, 0, 3
1582 ; P8-LE-NEXT:    rlwimi 4, 4, 16, 0, 15
1583 ; P8-LE-NEXT:    std 4, 16(3)
1584 ; P8-LE-NEXT:    blr
1586 ; P9-LE-LABEL: foo20_fp_le_reuse8B:
1587 ; P9-LE:       # %bb.0: # %entry
1588 ; P9-LE-NEXT:    addis 4, 2, .LCPI19_0@toc@ha
1589 ; P9-LE-NEXT:    addi 4, 4, .LCPI19_0@toc@l
1590 ; P9-LE-NEXT:    lxv 0, 0(4)
1591 ; P9-LE-NEXT:    lis 4, 16420
1592 ; P9-LE-NEXT:    ori 4, 4, 13107
1593 ; P9-LE-NEXT:    rldimi 4, 4, 32, 0
1594 ; P9-LE-NEXT:    stxv 0, 0(3)
1595 ; P9-LE-NEXT:    rlwimi 4, 4, 16, 0, 15
1596 ; P9-LE-NEXT:    std 4, 16(3)
1597 ; P9-LE-NEXT:    blr
1599 ; P10-LE-LABEL: foo20_fp_le_reuse8B:
1600 ; P10-LE:       # %bb.0: # %entry
1601 ; P10-LE-NEXT:    plxv 0, .LCPI19_0@PCREL(0), 1
1602 ; P10-LE-NEXT:    pli 4, 1076114227
1603 ; P10-LE-NEXT:    pli 5, 858993459
1604 ; P10-LE-NEXT:    rldimi 5, 4, 32, 0
1605 ; P10-LE-NEXT:    std 5, 16(3)
1606 ; P10-LE-NEXT:    stxv 0, 0(3)
1607 ; P10-LE-NEXT:    blr
1608 entry:
1609   store <2 x double> <double 1.000000e+00, double 1.010000e+01>, ptr %a, align 8
1610   %arrayidx2 = getelementptr inbounds double, ptr %a, i64 2
1611   store double 1.010000e+01, ptr %arrayidx2, align 8
1612   ret void
1615 define dso_local void @foo21_fp_noreuse4B(ptr nocapture noundef writeonly %a) local_unnamed_addr #0 {
1616 ; P8-BE-LABEL: foo21_fp_noreuse4B:
1617 ; P8-BE:       # %bb.0: # %entry
1618 ; P8-BE-NEXT:    ld 4, L..C20(2) # %const.0
1619 ; P8-BE-NEXT:    lxvw4x 0, 0, 4
1620 ; P8-BE-NEXT:    lis 4, 16268
1621 ; P8-BE-NEXT:    ori 4, 4, 52430
1622 ; P8-BE-NEXT:    stw 4, 16(3)
1623 ; P8-BE-NEXT:    stxvw4x 0, 0, 3
1624 ; P8-BE-NEXT:    blr
1626 ; P9-BE-LABEL: foo21_fp_noreuse4B:
1627 ; P9-BE:       # %bb.0: # %entry
1628 ; P9-BE-NEXT:    ld 4, L..C20(2) # %const.0
1629 ; P9-BE-NEXT:    lxv 0, 0(4)
1630 ; P9-BE-NEXT:    lis 4, 16268
1631 ; P9-BE-NEXT:    ori 4, 4, 52430
1632 ; P9-BE-NEXT:    stw 4, 16(3)
1633 ; P9-BE-NEXT:    stxv 0, 0(3)
1634 ; P9-BE-NEXT:    blr
1636 ; P10-BE-LABEL: foo21_fp_noreuse4B:
1637 ; P10-BE:       # %bb.0: # %entry
1638 ; P10-BE-NEXT:    ld 4, L..C20(2) # %const.0
1639 ; P10-BE-NEXT:    lxv 0, 0(4)
1640 ; P10-BE-NEXT:    pli 4, 1066192078
1641 ; P10-BE-NEXT:    stw 4, 16(3)
1642 ; P10-BE-NEXT:    stxv 0, 0(3)
1643 ; P10-BE-NEXT:    blr
1645 ; P8-LE-LABEL: foo21_fp_noreuse4B:
1646 ; P8-LE:       # %bb.0: # %entry
1647 ; P8-LE-NEXT:    addis 4, 2, .LCPI20_0@toc@ha
1648 ; P8-LE-NEXT:    addi 4, 4, .LCPI20_0@toc@l
1649 ; P8-LE-NEXT:    lxvd2x 0, 0, 4
1650 ; P8-LE-NEXT:    lis 4, 16268
1651 ; P8-LE-NEXT:    ori 4, 4, 52430
1652 ; P8-LE-NEXT:    stxvd2x 0, 0, 3
1653 ; P8-LE-NEXT:    stw 4, 16(3)
1654 ; P8-LE-NEXT:    blr
1656 ; P9-LE-LABEL: foo21_fp_noreuse4B:
1657 ; P9-LE:       # %bb.0: # %entry
1658 ; P9-LE-NEXT:    addis 4, 2, .LCPI20_0@toc@ha
1659 ; P9-LE-NEXT:    addi 4, 4, .LCPI20_0@toc@l
1660 ; P9-LE-NEXT:    lxv 0, 0(4)
1661 ; P9-LE-NEXT:    lis 4, 16268
1662 ; P9-LE-NEXT:    ori 4, 4, 52430
1663 ; P9-LE-NEXT:    stw 4, 16(3)
1664 ; P9-LE-NEXT:    stxv 0, 0(3)
1665 ; P9-LE-NEXT:    blr
1667 ; P10-LE-LABEL: foo21_fp_noreuse4B:
1668 ; P10-LE:       # %bb.0: # %entry
1669 ; P10-LE-NEXT:    plxv 0, .LCPI20_0@PCREL(0), 1
1670 ; P10-LE-NEXT:    pli 4, 1066192078
1671 ; P10-LE-NEXT:    stw 4, 16(3)
1672 ; P10-LE-NEXT:    stxv 0, 0(3)
1673 ; P10-LE-NEXT:    blr
1674 entry:
1675   store <4 x float> <float 1.000000e+00, float 0x3FF19999A0000000, float 0x3FF3333340000000, float 0x3FF4CCCCC0000000>, ptr %a, align 4
1676   %arrayidx4 = getelementptr inbounds float, ptr %a, i64 4
1677   store float 0x3FF19999C0000000, ptr %arrayidx4, align 4
1678   ret void
1681 define dso_local void @foo22_fp_noreuse8B(ptr nocapture noundef writeonly %a) local_unnamed_addr {
1682 ; P8-BE-LABEL: foo22_fp_noreuse8B:
1683 ; P8-BE:       # %bb.0: # %entry
1684 ; P8-BE-NEXT:    ld 4, L..C21(2) # %const.0
1685 ; P8-BE-NEXT:    lxvd2x 0, 0, 4
1686 ; P8-BE-NEXT:    li 4, 21503
1687 ; P8-BE-NEXT:    rotldi 4, 4, 52
1688 ; P8-BE-NEXT:    std 4, 16(3)
1689 ; P8-BE-NEXT:    stxvd2x 0, 0, 3
1690 ; P8-BE-NEXT:    blr
1692 ; P9-BE-LABEL: foo22_fp_noreuse8B:
1693 ; P9-BE:       # %bb.0: # %entry
1694 ; P9-BE-NEXT:    ld 4, L..C21(2) # %const.0
1695 ; P9-BE-NEXT:    lxv 0, 0(4)
1696 ; P9-BE-NEXT:    li 4, 21503
1697 ; P9-BE-NEXT:    rotldi 4, 4, 52
1698 ; P9-BE-NEXT:    std 4, 16(3)
1699 ; P9-BE-NEXT:    stxv 0, 0(3)
1700 ; P9-BE-NEXT:    blr
1702 ; P10-BE-LABEL: foo22_fp_noreuse8B:
1703 ; P10-BE:       # %bb.0: # %entry
1704 ; P10-BE-NEXT:    ld 4, L..C21(2) # %const.0
1705 ; P10-BE-NEXT:    lxv 0, 0(4)
1706 ; P10-BE-NEXT:    li 4, 21503
1707 ; P10-BE-NEXT:    rotldi 4, 4, 52
1708 ; P10-BE-NEXT:    std 4, 16(3)
1709 ; P10-BE-NEXT:    stxv 0, 0(3)
1710 ; P10-BE-NEXT:    blr
1712 ; P8-LE-LABEL: foo22_fp_noreuse8B:
1713 ; P8-LE:       # %bb.0: # %entry
1714 ; P8-LE-NEXT:    addis 4, 2, .LCPI21_0@toc@ha
1715 ; P8-LE-NEXT:    addi 4, 4, .LCPI21_0@toc@l
1716 ; P8-LE-NEXT:    lxvd2x 0, 0, 4
1717 ; P8-LE-NEXT:    li 4, 21503
1718 ; P8-LE-NEXT:    rotldi 4, 4, 52
1719 ; P8-LE-NEXT:    stxvd2x 0, 0, 3
1720 ; P8-LE-NEXT:    std 4, 16(3)
1721 ; P8-LE-NEXT:    blr
1723 ; P9-LE-LABEL: foo22_fp_noreuse8B:
1724 ; P9-LE:       # %bb.0: # %entry
1725 ; P9-LE-NEXT:    addis 4, 2, .LCPI21_0@toc@ha
1726 ; P9-LE-NEXT:    addi 4, 4, .LCPI21_0@toc@l
1727 ; P9-LE-NEXT:    lxv 0, 0(4)
1728 ; P9-LE-NEXT:    li 4, 21503
1729 ; P9-LE-NEXT:    rotldi 4, 4, 52
1730 ; P9-LE-NEXT:    std 4, 16(3)
1731 ; P9-LE-NEXT:    stxv 0, 0(3)
1732 ; P9-LE-NEXT:    blr
1734 ; P10-LE-LABEL: foo22_fp_noreuse8B:
1735 ; P10-LE:       # %bb.0: # %entry
1736 ; P10-LE-NEXT:    plxv 0, .LCPI21_0@PCREL(0), 1
1737 ; P10-LE-NEXT:    li 4, 21503
1738 ; P10-LE-NEXT:    rotldi 4, 4, 52
1739 ; P10-LE-NEXT:    std 4, 16(3)
1740 ; P10-LE-NEXT:    stxv 0, 0(3)
1741 ; P10-LE-NEXT:    blr
1742 entry:
1743   store <2 x double> <double 1.000000e+00, double 1.100000e+00>, ptr %a, align 8
1744   %arrayidx2 = getelementptr inbounds double, ptr %a, i64 2
1745   store double 0x3FF0000000000005, ptr %arrayidx2, align 8
1746   ret void