xref: /llvm-project/llvm/test/CodeGen/VE/Vector/vec_broadcast.ll (revision 44a679eaa40cf234c79c241012607ed5f7bada77)
1ffe6c97fSSimon Moll; RUN: llc < %s -mtriple=ve-unknown-unknown -mattr=+vpu | FileCheck %s
2ffe6c97fSSimon Moll
3ffe6c97fSSimon Moll; ISA-compatible vector broadcasts
4ffe6c97fSSimon Molldefine fastcc <256 x i64> @brd_v256i64(i64 %s) {
5ffe6c97fSSimon Moll; CHECK-LABEL: brd_v256i64:
6ffe6c97fSSimon Moll; CHECK:       # %bb.0:
7ffe6c97fSSimon Moll; CHECK-NEXT:    lea %s1, 256
8ffe6c97fSSimon Moll; CHECK-NEXT:    lvl %s1
9ffe6c97fSSimon Moll; CHECK-NEXT:    vbrd %v0, %s0
10ffe6c97fSSimon Moll; CHECK-NEXT:    b.l.t (, %s10)
11ffe6c97fSSimon Moll  %val = insertelement <256 x i64> undef, i64 %s, i32 0
12ffe6c97fSSimon Moll  %ret = shufflevector <256 x i64> %val, <256 x i64> undef, <256 x i32> zeroinitializer
13ffe6c97fSSimon Moll  ret <256 x i64> %ret
14ffe6c97fSSimon Moll}
15ffe6c97fSSimon Moll
16ffe6c97fSSimon Molldefine fastcc <256 x i64> @brdi_v256i64() {
17ffe6c97fSSimon Moll; CHECK-LABEL: brdi_v256i64:
18ffe6c97fSSimon Moll; CHECK:       # %bb.0:
19ffe6c97fSSimon Moll; CHECK-NEXT:    lea %s0, 256
20ffe6c97fSSimon Moll; CHECK-NEXT:    lvl %s0
21ffe6c97fSSimon Moll; CHECK-NEXT:    vbrd %v0, 1
22ffe6c97fSSimon Moll; CHECK-NEXT:    b.l.t (, %s10)
23ffe6c97fSSimon Moll  %val = insertelement <256 x i64> undef, i64 1, i32 0
24ffe6c97fSSimon Moll  %ret = shufflevector <256 x i64> %val, <256 x i64> undef, <256 x i32> zeroinitializer
25ffe6c97fSSimon Moll  ret <256 x i64> %ret
26ffe6c97fSSimon Moll}
27ffe6c97fSSimon Moll
28ffe6c97fSSimon Molldefine fastcc <256 x double> @brd_v256f64(double %s) {
29ffe6c97fSSimon Moll; CHECK-LABEL: brd_v256f64:
30ffe6c97fSSimon Moll; CHECK:       # %bb.0:
31ffe6c97fSSimon Moll; CHECK-NEXT:    lea %s1, 256
32ffe6c97fSSimon Moll; CHECK-NEXT:    lvl %s1
33ffe6c97fSSimon Moll; CHECK-NEXT:    vbrd %v0, %s0
34ffe6c97fSSimon Moll; CHECK-NEXT:    b.l.t (, %s10)
35ffe6c97fSSimon Moll  %val = insertelement <256 x double> undef, double %s, i32 0
36ffe6c97fSSimon Moll  %ret = shufflevector <256 x double> %val, <256 x double> undef, <256 x i32> zeroinitializer
37ffe6c97fSSimon Moll  ret <256 x double> %ret
38ffe6c97fSSimon Moll}
39ffe6c97fSSimon Moll
40ffe6c97fSSimon Molldefine fastcc <256 x double> @brdi_v256f64() {
41ffe6c97fSSimon Moll; CHECK-LABEL: brdi_v256f64:
42ffe6c97fSSimon Moll; CHECK:       # %bb.0:
43ffe6c97fSSimon Moll; CHECK-NEXT:    lea %s0, 256
44ffe6c97fSSimon Moll; CHECK-NEXT:    lvl %s0
45ffe6c97fSSimon Moll; CHECK-NEXT:    vbrd %v0, 0
46ffe6c97fSSimon Moll; CHECK-NEXT:    b.l.t (, %s10)
47ffe6c97fSSimon Moll  %val = insertelement <256 x double> undef, double 0.e+00, i32 0
48ffe6c97fSSimon Moll  %ret = shufflevector <256 x double> %val, <256 x double> undef, <256 x i32> zeroinitializer
49ffe6c97fSSimon Moll  ret <256 x double> %ret
50ffe6c97fSSimon Moll}
51ffe6c97fSSimon Moll
52ffe6c97fSSimon Molldefine fastcc <256 x i32> @brd_v256i32(i32 %s) {
53ffe6c97fSSimon Moll; CHECK-LABEL: brd_v256i32:
54ffe6c97fSSimon Moll; CHECK:       # %bb.0:
55*44a679eaSKazushi (Jam) Marukawa; CHECK-NEXT:    and %s0, %s0, (32)0
56ffe6c97fSSimon Moll; CHECK-NEXT:    lea %s1, 256
57ffe6c97fSSimon Moll; CHECK-NEXT:    lvl %s1
58ffe6c97fSSimon Moll; CHECK-NEXT:    vbrd %v0, %s0
59ffe6c97fSSimon Moll; CHECK-NEXT:    b.l.t (, %s10)
60ffe6c97fSSimon Moll  %val = insertelement <256 x i32> undef, i32 %s, i32 0
61ffe6c97fSSimon Moll  %ret = shufflevector <256 x i32> %val, <256 x i32> undef, <256 x i32> zeroinitializer
62ffe6c97fSSimon Moll  ret <256 x i32> %ret
63ffe6c97fSSimon Moll}
64ffe6c97fSSimon Moll
65ffe6c97fSSimon Molldefine fastcc <256 x i32> @brdi_v256i32(i32 %s) {
66ffe6c97fSSimon Moll; CHECK-LABEL: brdi_v256i32:
67ffe6c97fSSimon Moll; CHECK:       # %bb.0:
68ffe6c97fSSimon Moll; CHECK-NEXT:    lea %s0, 256
69ffe6c97fSSimon Moll; CHECK-NEXT:    lvl %s0
70ffe6c97fSSimon Moll; CHECK-NEXT:    vbrd %v0, 13
71ffe6c97fSSimon Moll; CHECK-NEXT:    b.l.t (, %s10)
72ffe6c97fSSimon Moll  %val = insertelement <256 x i32> undef, i32 13, i32 0
73ffe6c97fSSimon Moll  %ret = shufflevector <256 x i32> %val, <256 x i32> undef, <256 x i32> zeroinitializer
74ffe6c97fSSimon Moll  ret <256 x i32> %ret
75ffe6c97fSSimon Moll}
76ffe6c97fSSimon Moll
77ffe6c97fSSimon Molldefine fastcc <256 x float> @brd_v256f32(float %s) {
78ffe6c97fSSimon Moll; CHECK-LABEL: brd_v256f32:
79ffe6c97fSSimon Moll; CHECK:       # %bb.0:
80ffe6c97fSSimon Moll; CHECK-NEXT:    lea %s1, 256
81ffe6c97fSSimon Moll; CHECK-NEXT:    lvl %s1
82ffe6c97fSSimon Moll; CHECK-NEXT:    vbrd %v0, %s0
83ffe6c97fSSimon Moll; CHECK-NEXT:    b.l.t (, %s10)
84ffe6c97fSSimon Moll  %val = insertelement <256 x float> undef, float %s, i32 0
85ffe6c97fSSimon Moll  %ret = shufflevector <256 x float> %val, <256 x float> undef, <256 x i32> zeroinitializer
86ffe6c97fSSimon Moll  ret <256 x float> %ret
87ffe6c97fSSimon Moll}
88ffe6c97fSSimon Moll
89ffe6c97fSSimon Molldefine fastcc <256 x float> @brdi_v256f32(float %s) {
90ffe6c97fSSimon Moll; CHECK-LABEL: brdi_v256f32:
91ffe6c97fSSimon Moll; CHECK:       # %bb.0:
92ffe6c97fSSimon Moll; CHECK-NEXT:    lea %s0, 256
93ffe6c97fSSimon Moll; CHECK-NEXT:    lvl %s0
94ffe6c97fSSimon Moll; CHECK-NEXT:    vbrd %v0, 0
95ffe6c97fSSimon Moll; CHECK-NEXT:    b.l.t (, %s10)
96ffe6c97fSSimon Moll  %val = insertelement <256 x float> undef, float 0.e+00, i32 0
97ffe6c97fSSimon Moll  %ret = shufflevector <256 x float> %val, <256 x float> undef, <256 x i32> zeroinitializer
98ffe6c97fSSimon Moll  ret <256 x float> %ret
99ffe6c97fSSimon Moll}
100ffe6c97fSSimon Moll
101ffe6c97fSSimon Moll
102ffe6c97fSSimon Moll; Shorter vectors, we expect these to be widened (for now).
103ffe6c97fSSimon Molldefine fastcc <128 x i64> @brd_v128i64(i64 %s) {
104ffe6c97fSSimon Moll; CHECK-LABEL: brd_v128i64:
105ffe6c97fSSimon Moll; CHECK:       # %bb.0:
106ffe6c97fSSimon Moll; CHECK-NEXT:    lea %s1, 256
107ffe6c97fSSimon Moll; CHECK-NEXT:    lvl %s1
108ffe6c97fSSimon Moll; CHECK-NEXT:    vbrd %v0, %s0
109ffe6c97fSSimon Moll; CHECK-NEXT:    b.l.t (, %s10)
110ffe6c97fSSimon Moll  %val = insertelement <128 x i64> undef, i64 %s, i32 0
111ffe6c97fSSimon Moll  %ret = shufflevector <128 x i64> %val, <128 x i64> undef, <128 x i32> zeroinitializer
112ffe6c97fSSimon Moll  ret <128 x i64> %ret
113ffe6c97fSSimon Moll}
114ffe6c97fSSimon Moll
115ffe6c97fSSimon Molldefine fastcc <128 x double> @brd_v128f64(double %s) {
116ffe6c97fSSimon Moll; CHECK-LABEL: brd_v128f64:
117ffe6c97fSSimon Moll; CHECK:       # %bb.0:
118ffe6c97fSSimon Moll; CHECK-NEXT:    lea %s1, 256
119ffe6c97fSSimon Moll; CHECK-NEXT:    lvl %s1
120ffe6c97fSSimon Moll; CHECK-NEXT:    vbrd %v0, %s0
121ffe6c97fSSimon Moll; CHECK-NEXT:    b.l.t (, %s10)
122ffe6c97fSSimon Moll  %val = insertelement <128 x double> undef, double %s, i32 0
123ffe6c97fSSimon Moll  %ret = shufflevector <128 x double> %val, <128 x double> undef, <128 x i32> zeroinitializer
124ffe6c97fSSimon Moll  ret <128 x double> %ret
125ffe6c97fSSimon Moll}
126ffe6c97fSSimon Moll
127ffe6c97fSSimon Molldefine fastcc <128 x i32> @brd_v128i32(i32 %s) {
128ffe6c97fSSimon Moll; CHECK-LABEL: brd_v128i32:
129ffe6c97fSSimon Moll; CHECK:       # %bb.0:
130*44a679eaSKazushi (Jam) Marukawa; CHECK-NEXT:    and %s0, %s0, (32)0
131ffe6c97fSSimon Moll; CHECK-NEXT:    lea %s1, 256
132ffe6c97fSSimon Moll; CHECK-NEXT:    lvl %s1
133ffe6c97fSSimon Moll; CHECK-NEXT:    vbrd %v0, %s0
134ffe6c97fSSimon Moll; CHECK-NEXT:    b.l.t (, %s10)
135ffe6c97fSSimon Moll  %val = insertelement <128 x i32> undef, i32 %s, i32 0
136ffe6c97fSSimon Moll  %ret = shufflevector <128 x i32> %val, <128 x i32> undef, <128 x i32> zeroinitializer
137ffe6c97fSSimon Moll  ret <128 x i32> %ret
138ffe6c97fSSimon Moll}
139ffe6c97fSSimon Moll
140ffe6c97fSSimon Molldefine fastcc <128 x i32> @brdi_v128i32(i32 %s) {
141ffe6c97fSSimon Moll; CHECK-LABEL: brdi_v128i32:
142ffe6c97fSSimon Moll; CHECK:       # %bb.0:
143ffe6c97fSSimon Moll; CHECK-NEXT:    lea %s0, 256
144ffe6c97fSSimon Moll; CHECK-NEXT:    lvl %s0
145ffe6c97fSSimon Moll; CHECK-NEXT:    vbrd %v0, 13
146ffe6c97fSSimon Moll; CHECK-NEXT:    b.l.t (, %s10)
147ffe6c97fSSimon Moll  %val = insertelement <128 x i32> undef, i32 13, i32 0
148ffe6c97fSSimon Moll  %ret = shufflevector <128 x i32> %val, <128 x i32> undef, <128 x i32> zeroinitializer
149ffe6c97fSSimon Moll  ret <128 x i32> %ret
150ffe6c97fSSimon Moll}
151ffe6c97fSSimon Moll
152ffe6c97fSSimon Molldefine fastcc <128 x float> @brd_v128f32(float %s) {
153ffe6c97fSSimon Moll; CHECK-LABEL: brd_v128f32:
154ffe6c97fSSimon Moll; CHECK:       # %bb.0:
155ffe6c97fSSimon Moll; CHECK-NEXT:    lea %s1, 256
156ffe6c97fSSimon Moll; CHECK-NEXT:    lvl %s1
157ffe6c97fSSimon Moll; CHECK-NEXT:    vbrd %v0, %s0
158ffe6c97fSSimon Moll; CHECK-NEXT:    b.l.t (, %s10)
159ffe6c97fSSimon Moll  %val = insertelement <128 x float> undef, float %s, i32 0
160ffe6c97fSSimon Moll  %ret = shufflevector <128 x float> %val, <128 x float> undef, <128 x i32> zeroinitializer
161ffe6c97fSSimon Moll  ret <128 x float> %ret
162ffe6c97fSSimon Moll}
163ffe6c97fSSimon Moll
164ffe6c97fSSimon Molldefine fastcc <128 x float> @brdi_v128f32(float %s) {
165ffe6c97fSSimon Moll; CHECK-LABEL: brdi_v128f32:
166ffe6c97fSSimon Moll; CHECK:       # %bb.0:
167ffe6c97fSSimon Moll; CHECK-NEXT:    lea %s0, 256
168ffe6c97fSSimon Moll; CHECK-NEXT:    lvl %s0
169ffe6c97fSSimon Moll; CHECK-NEXT:    vbrd %v0, 0
170ffe6c97fSSimon Moll; CHECK-NEXT:    b.l.t (, %s10)
171ffe6c97fSSimon Moll  %val = insertelement <128 x float> undef, float 0.e+00, i32 0
172ffe6c97fSSimon Moll  %ret = shufflevector <128 x float> %val, <128 x float> undef, <128 x i32> zeroinitializer
173ffe6c97fSSimon Moll  ret <128 x float> %ret
174ffe6c97fSSimon Moll}
175ffe6c97fSSimon Moll
176ffe6c97fSSimon Moll; Vectors with small element types and valid element count, we expect those to be promoted.
177ffe6c97fSSimon Molldefine fastcc <256 x i16> @brd_v256i16(i16 %s) {
178ffe6c97fSSimon Moll; CHECK-LABEL: brd_v256i16:
179ffe6c97fSSimon Moll; CHECK:       # %bb.0:
180*44a679eaSKazushi (Jam) Marukawa; CHECK-NEXT:    and %s0, %s0, (32)0
181ffe6c97fSSimon Moll; CHECK-NEXT:    lea %s1, 256
182ffe6c97fSSimon Moll; CHECK-NEXT:    lvl %s1
183ffe6c97fSSimon Moll; CHECK-NEXT:    vbrd %v0, %s0
184ffe6c97fSSimon Moll; CHECK-NEXT:    b.l.t (, %s10)
185ffe6c97fSSimon Moll  %val = insertelement <256 x i16> undef, i16 %s, i32 0
186ffe6c97fSSimon Moll  %ret = shufflevector <256 x i16> %val, <256 x i16> undef, <256 x i32> zeroinitializer
187ffe6c97fSSimon Moll  ret <256 x i16> %ret
188ffe6c97fSSimon Moll}
189ffe6c97fSSimon Moll
190ffe6c97fSSimon Moll; Vectors with small element types and low element count, these are scalarized for now.
191ffe6c97fSSimon Moll; FIXME Promote + Widen
192ffe6c97fSSimon Molldefine fastcc <128 x i16> @brd_v128i16(i16 %s) {
193ffe6c97fSSimon Moll; CHECK-LABEL: brd_v128i16:
194ffe6c97fSSimon Moll; CHECK:       # %bb.0:
195*44a679eaSKazushi (Jam) Marukawa; CHECK-NEXT:    and %s1, %s1, (32)0
196ffe6c97fSSimon Moll; CHECK-NEXT:    st2b %s1, 254(, %s0)
197ffe6c97fSSimon Moll; CHECK-NEXT:    st2b %s1, 252(, %s0)
198ffe6c97fSSimon Moll; CHECK-NEXT:    st2b %s1, 250(, %s0)
199ffe6c97fSSimon Moll; CHECK-NEXT:    st2b %s1, 248(, %s0)
200ffe6c97fSSimon Moll; CHECK-NEXT:    st2b %s1, 246(, %s0)
201ffe6c97fSSimon Moll; CHECK-NEXT:    st2b %s1, 244(, %s0)
202ffe6c97fSSimon Moll; CHECK-NEXT:    st2b %s1, 242(, %s0)
203ffe6c97fSSimon Moll; CHECK-NEXT:    st2b %s1, 240(, %s0)
204ffe6c97fSSimon Moll; CHECK-NEXT:    st2b %s1, 238(, %s0)
205ffe6c97fSSimon Moll; CHECK-NEXT:    st2b %s1, 236(, %s0)
206ffe6c97fSSimon Moll; CHECK-NEXT:    st2b %s1, 234(, %s0)
207ffe6c97fSSimon Moll; CHECK-NEXT:    st2b %s1, 232(, %s0)
208ffe6c97fSSimon Moll; CHECK-NEXT:    st2b %s1, 230(, %s0)
209ffe6c97fSSimon Moll; CHECK-NEXT:    st2b %s1, 228(, %s0)
210ffe6c97fSSimon Moll; CHECK-NEXT:    st2b %s1, 226(, %s0)
211ffe6c97fSSimon Moll; CHECK-NEXT:    st2b %s1, 224(, %s0)
212ffe6c97fSSimon Moll; CHECK-NEXT:    st2b %s1, 222(, %s0)
213ffe6c97fSSimon Moll; CHECK-NEXT:    st2b %s1, 220(, %s0)
214ffe6c97fSSimon Moll; CHECK-NEXT:    st2b %s1, 218(, %s0)
215ffe6c97fSSimon Moll; CHECK-NEXT:    st2b %s1, 216(, %s0)
216ffe6c97fSSimon Moll; CHECK-NEXT:    st2b %s1, 214(, %s0)
217ffe6c97fSSimon Moll; CHECK-NEXT:    st2b %s1, 212(, %s0)
218ffe6c97fSSimon Moll; CHECK-NEXT:    st2b %s1, 210(, %s0)
219ffe6c97fSSimon Moll; CHECK-NEXT:    st2b %s1, 208(, %s0)
220ffe6c97fSSimon Moll; CHECK-NEXT:    st2b %s1, 206(, %s0)
221ffe6c97fSSimon Moll; CHECK-NEXT:    st2b %s1, 204(, %s0)
222ffe6c97fSSimon Moll; CHECK-NEXT:    st2b %s1, 202(, %s0)
223ffe6c97fSSimon Moll; CHECK-NEXT:    st2b %s1, 200(, %s0)
224ffe6c97fSSimon Moll; CHECK-NEXT:    st2b %s1, 198(, %s0)
225ffe6c97fSSimon Moll; CHECK-NEXT:    st2b %s1, 196(, %s0)
226ffe6c97fSSimon Moll; CHECK-NEXT:    st2b %s1, 194(, %s0)
227ffe6c97fSSimon Moll; CHECK-NEXT:    st2b %s1, 192(, %s0)
228ffe6c97fSSimon Moll; CHECK-NEXT:    st2b %s1, 190(, %s0)
229ffe6c97fSSimon Moll; CHECK-NEXT:    st2b %s1, 188(, %s0)
230ffe6c97fSSimon Moll; CHECK-NEXT:    st2b %s1, 186(, %s0)
231ffe6c97fSSimon Moll; CHECK-NEXT:    st2b %s1, 184(, %s0)
232ffe6c97fSSimon Moll; CHECK-NEXT:    st2b %s1, 182(, %s0)
233ffe6c97fSSimon Moll; CHECK-NEXT:    st2b %s1, 180(, %s0)
234ffe6c97fSSimon Moll; CHECK-NEXT:    st2b %s1, 178(, %s0)
235ffe6c97fSSimon Moll; CHECK-NEXT:    st2b %s1, 176(, %s0)
236ffe6c97fSSimon Moll; CHECK-NEXT:    st2b %s1, 174(, %s0)
237ffe6c97fSSimon Moll; CHECK-NEXT:    st2b %s1, 172(, %s0)
238ffe6c97fSSimon Moll; CHECK-NEXT:    st2b %s1, 170(, %s0)
239ffe6c97fSSimon Moll; CHECK-NEXT:    st2b %s1, 168(, %s0)
240ffe6c97fSSimon Moll; CHECK-NEXT:    st2b %s1, 166(, %s0)
241ffe6c97fSSimon Moll; CHECK-NEXT:    st2b %s1, 164(, %s0)
242ffe6c97fSSimon Moll; CHECK-NEXT:    st2b %s1, 162(, %s0)
243ffe6c97fSSimon Moll; CHECK-NEXT:    st2b %s1, 160(, %s0)
244ffe6c97fSSimon Moll; CHECK-NEXT:    st2b %s1, 158(, %s0)
245ffe6c97fSSimon Moll; CHECK-NEXT:    st2b %s1, 156(, %s0)
246ffe6c97fSSimon Moll; CHECK-NEXT:    st2b %s1, 154(, %s0)
247ffe6c97fSSimon Moll; CHECK-NEXT:    st2b %s1, 152(, %s0)
248ffe6c97fSSimon Moll; CHECK-NEXT:    st2b %s1, 150(, %s0)
249ffe6c97fSSimon Moll; CHECK-NEXT:    st2b %s1, 148(, %s0)
250ffe6c97fSSimon Moll; CHECK-NEXT:    st2b %s1, 146(, %s0)
251ffe6c97fSSimon Moll; CHECK-NEXT:    st2b %s1, 144(, %s0)
252ffe6c97fSSimon Moll; CHECK-NEXT:    st2b %s1, 142(, %s0)
253ffe6c97fSSimon Moll; CHECK-NEXT:    st2b %s1, 140(, %s0)
254ffe6c97fSSimon Moll; CHECK-NEXT:    st2b %s1, 138(, %s0)
255ffe6c97fSSimon Moll; CHECK-NEXT:    st2b %s1, 136(, %s0)
256ffe6c97fSSimon Moll; CHECK-NEXT:    st2b %s1, 134(, %s0)
257ffe6c97fSSimon Moll; CHECK-NEXT:    st2b %s1, 132(, %s0)
258ffe6c97fSSimon Moll; CHECK-NEXT:    st2b %s1, 130(, %s0)
259ffe6c97fSSimon Moll; CHECK-NEXT:    st2b %s1, 128(, %s0)
260ffe6c97fSSimon Moll; CHECK-NEXT:    st2b %s1, 126(, %s0)
261ffe6c97fSSimon Moll; CHECK-NEXT:    st2b %s1, 124(, %s0)
262ffe6c97fSSimon Moll; CHECK-NEXT:    st2b %s1, 122(, %s0)
263ffe6c97fSSimon Moll; CHECK-NEXT:    st2b %s1, 120(, %s0)
264ffe6c97fSSimon Moll; CHECK-NEXT:    st2b %s1, 118(, %s0)
265ffe6c97fSSimon Moll; CHECK-NEXT:    st2b %s1, 116(, %s0)
266ffe6c97fSSimon Moll; CHECK-NEXT:    st2b %s1, 114(, %s0)
267ffe6c97fSSimon Moll; CHECK-NEXT:    st2b %s1, 112(, %s0)
268ffe6c97fSSimon Moll; CHECK-NEXT:    st2b %s1, 110(, %s0)
269ffe6c97fSSimon Moll; CHECK-NEXT:    st2b %s1, 108(, %s0)
270ffe6c97fSSimon Moll; CHECK-NEXT:    st2b %s1, 106(, %s0)
271ffe6c97fSSimon Moll; CHECK-NEXT:    st2b %s1, 104(, %s0)
272ffe6c97fSSimon Moll; CHECK-NEXT:    st2b %s1, 102(, %s0)
273ffe6c97fSSimon Moll; CHECK-NEXT:    st2b %s1, 100(, %s0)
274ffe6c97fSSimon Moll; CHECK-NEXT:    st2b %s1, 98(, %s0)
275ffe6c97fSSimon Moll; CHECK-NEXT:    st2b %s1, 96(, %s0)
276ffe6c97fSSimon Moll; CHECK-NEXT:    st2b %s1, 94(, %s0)
277ffe6c97fSSimon Moll; CHECK-NEXT:    st2b %s1, 92(, %s0)
278ffe6c97fSSimon Moll; CHECK-NEXT:    st2b %s1, 90(, %s0)
279ffe6c97fSSimon Moll; CHECK-NEXT:    st2b %s1, 88(, %s0)
280ffe6c97fSSimon Moll; CHECK-NEXT:    st2b %s1, 86(, %s0)
281ffe6c97fSSimon Moll; CHECK-NEXT:    st2b %s1, 84(, %s0)
282ffe6c97fSSimon Moll; CHECK-NEXT:    st2b %s1, 82(, %s0)
283ffe6c97fSSimon Moll; CHECK-NEXT:    st2b %s1, 80(, %s0)
284ffe6c97fSSimon Moll; CHECK-NEXT:    st2b %s1, 78(, %s0)
285ffe6c97fSSimon Moll; CHECK-NEXT:    st2b %s1, 76(, %s0)
286ffe6c97fSSimon Moll; CHECK-NEXT:    st2b %s1, 74(, %s0)
287ffe6c97fSSimon Moll; CHECK-NEXT:    st2b %s1, 72(, %s0)
288ffe6c97fSSimon Moll; CHECK-NEXT:    st2b %s1, 70(, %s0)
289ffe6c97fSSimon Moll; CHECK-NEXT:    st2b %s1, 68(, %s0)
290ffe6c97fSSimon Moll; CHECK-NEXT:    st2b %s1, 66(, %s0)
291ffe6c97fSSimon Moll; CHECK-NEXT:    st2b %s1, 64(, %s0)
292ffe6c97fSSimon Moll; CHECK-NEXT:    st2b %s1, 62(, %s0)
293ffe6c97fSSimon Moll; CHECK-NEXT:    st2b %s1, 60(, %s0)
294ffe6c97fSSimon Moll; CHECK-NEXT:    st2b %s1, 58(, %s0)
295ffe6c97fSSimon Moll; CHECK-NEXT:    st2b %s1, 56(, %s0)
296ffe6c97fSSimon Moll; CHECK-NEXT:    st2b %s1, 54(, %s0)
297ffe6c97fSSimon Moll; CHECK-NEXT:    st2b %s1, 52(, %s0)
298ffe6c97fSSimon Moll; CHECK-NEXT:    st2b %s1, 50(, %s0)
299ffe6c97fSSimon Moll; CHECK-NEXT:    st2b %s1, 48(, %s0)
300ffe6c97fSSimon Moll; CHECK-NEXT:    st2b %s1, 46(, %s0)
301ffe6c97fSSimon Moll; CHECK-NEXT:    st2b %s1, 44(, %s0)
302ffe6c97fSSimon Moll; CHECK-NEXT:    st2b %s1, 42(, %s0)
303ffe6c97fSSimon Moll; CHECK-NEXT:    st2b %s1, 40(, %s0)
304ffe6c97fSSimon Moll; CHECK-NEXT:    st2b %s1, 38(, %s0)
305ffe6c97fSSimon Moll; CHECK-NEXT:    st2b %s1, 36(, %s0)
306ffe6c97fSSimon Moll; CHECK-NEXT:    st2b %s1, 34(, %s0)
307ffe6c97fSSimon Moll; CHECK-NEXT:    st2b %s1, 32(, %s0)
308ffe6c97fSSimon Moll; CHECK-NEXT:    st2b %s1, 30(, %s0)
309ffe6c97fSSimon Moll; CHECK-NEXT:    st2b %s1, 28(, %s0)
310ffe6c97fSSimon Moll; CHECK-NEXT:    st2b %s1, 26(, %s0)
311ffe6c97fSSimon Moll; CHECK-NEXT:    st2b %s1, 24(, %s0)
312ffe6c97fSSimon Moll; CHECK-NEXT:    st2b %s1, 22(, %s0)
313ffe6c97fSSimon Moll; CHECK-NEXT:    st2b %s1, 20(, %s0)
314ffe6c97fSSimon Moll; CHECK-NEXT:    st2b %s1, 18(, %s0)
315ffe6c97fSSimon Moll; CHECK-NEXT:    st2b %s1, 16(, %s0)
316ffe6c97fSSimon Moll; CHECK-NEXT:    st2b %s1, 14(, %s0)
317ffe6c97fSSimon Moll; CHECK-NEXT:    st2b %s1, 12(, %s0)
318ffe6c97fSSimon Moll; CHECK-NEXT:    st2b %s1, 10(, %s0)
319ffe6c97fSSimon Moll; CHECK-NEXT:    st2b %s1, 8(, %s0)
320ffe6c97fSSimon Moll; CHECK-NEXT:    st2b %s1, 6(, %s0)
321ffe6c97fSSimon Moll; CHECK-NEXT:    st2b %s1, 4(, %s0)
322ffe6c97fSSimon Moll; CHECK-NEXT:    st2b %s1, 2(, %s0)
323ffe6c97fSSimon Moll; CHECK-NEXT:    st2b %s1, (, %s0)
324ffe6c97fSSimon Moll; CHECK-NEXT:    b.l.t (, %s10)
325ffe6c97fSSimon Moll  %val = insertelement <128 x i16> undef, i16 %s, i32 0
326ffe6c97fSSimon Moll  %ret = shufflevector <128 x i16> %val, <128 x i16> undef, <128 x i32> zeroinitializer
327ffe6c97fSSimon Moll  ret <128 x i16> %ret
328ffe6c97fSSimon Moll}
329