Skip to content

Commit b94913b

Browse files
committed
[AArch64] Vector insert zero upper tests. NFC
1 parent a870a48 commit b94913b

File tree

1 file changed

+99
-0
lines changed

1 file changed

+99
-0
lines changed

llvm/test/CodeGen/AArch64/implicitly-set-zero-high-64-bits.ll

Lines changed: 99 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -134,5 +134,104 @@ entry:
134134
}
135135

136136

137+
define <16 x i8> @insertzero_v8i8(<8 x i8> %a) {
138+
; CHECK-LABEL: insertzero_v8i8:
139+
; CHECK: // %bb.0: // %entry
140+
; CHECK-NEXT: movi v1.2d, #0000000000000000
141+
; CHECK-NEXT: // kill: def $d0 killed $d0 def $q0
142+
; CHECK-NEXT: mov v0.d[1], v1.d[0]
143+
; CHECK-NEXT: ret
144+
entry:
145+
%shuffle.i = shufflevector <8 x i8> %a, <8 x i8> zeroinitializer, <16 x i32> <i32 0, i32 1, i32 2, i32 3, i32 4, i32 5, i32 6, i32 7, i32 8, i32 9, i32 10, i32 11, i32 12, i32 13, i32 14, i32 15>
146+
ret <16 x i8> %shuffle.i
147+
}
148+
149+
define <8 x i16> @insertzero_v4i16(<4 x i16> %a) {
150+
; CHECK-LABEL: insertzero_v4i16:
151+
; CHECK: // %bb.0: // %entry
152+
; CHECK-NEXT: movi v1.2d, #0000000000000000
153+
; CHECK-NEXT: // kill: def $d0 killed $d0 def $q0
154+
; CHECK-NEXT: mov v0.d[1], v1.d[0]
155+
; CHECK-NEXT: ret
156+
entry:
157+
%shuffle.i = shufflevector <4 x i16> %a, <4 x i16> zeroinitializer, <8 x i32> <i32 0, i32 1, i32 2, i32 3, i32 4, i32 5, i32 6, i32 7>
158+
ret <8 x i16> %shuffle.i
159+
}
160+
161+
define <4 x i32> @insertzero_v2i32(<2 x i32> %a) {
162+
; CHECK-LABEL: insertzero_v2i32:
163+
; CHECK: // %bb.0: // %entry
164+
; CHECK-NEXT: movi v1.2d, #0000000000000000
165+
; CHECK-NEXT: // kill: def $d0 killed $d0 def $q0
166+
; CHECK-NEXT: mov v0.d[1], v1.d[0]
167+
; CHECK-NEXT: ret
168+
entry:
169+
%shuffle.i = shufflevector <2 x i32> %a, <2 x i32> zeroinitializer, <4 x i32> <i32 0, i32 1, i32 2, i32 3>
170+
ret <4 x i32> %shuffle.i
171+
}
172+
173+
define <2 x i64> @insertzero_v1i64(<1 x i64> %a) {
174+
; CHECK-LABEL: insertzero_v1i64:
175+
; CHECK: // %bb.0: // %entry
176+
; CHECK-NEXT: movi v1.2d, #0000000000000000
177+
; CHECK-NEXT: // kill: def $d0 killed $d0 def $q0
178+
; CHECK-NEXT: mov v0.d[1], v1.d[0]
179+
; CHECK-NEXT: ret
180+
entry:
181+
%shuffle.i = shufflevector <1 x i64> %a, <1 x i64> zeroinitializer, <2 x i32> <i32 0, i32 1>
182+
ret <2 x i64> %shuffle.i
183+
}
184+
185+
define <8 x half> @insertzero_v4f16(<4 x half> %a) {
186+
; CHECK-LABEL: insertzero_v4f16:
187+
; CHECK: // %bb.0: // %entry
188+
; CHECK-NEXT: movi d1, #0000000000000000
189+
; CHECK-NEXT: // kill: def $d0 killed $d0 def $q0
190+
; CHECK-NEXT: mov v0.d[1], v1.d[0]
191+
; CHECK-NEXT: ret
192+
entry:
193+
%shuffle.i = shufflevector <4 x half> %a, <4 x half> zeroinitializer, <8 x i32> <i32 0, i32 1, i32 2, i32 3, i32 4, i32 5, i32 6, i32 7>
194+
ret <8 x half> %shuffle.i
195+
}
196+
197+
define <8 x bfloat> @insertzero_v4bf16(<4 x bfloat> %a) {
198+
; CHECK-LABEL: insertzero_v4bf16:
199+
; CHECK: // %bb.0: // %entry
200+
; CHECK-NEXT: movi d4, #0000000000000000
201+
; CHECK-NEXT: movi d5, #0000000000000000
202+
; CHECK-NEXT: movi d6, #0000000000000000
203+
; CHECK-NEXT: movi d7, #0000000000000000
204+
; CHECK-NEXT: ret
205+
entry:
206+
%shuffle.i = shufflevector <4 x bfloat> %a, <4 x bfloat> zeroinitializer, <8 x i32> <i32 0, i32 1, i32 2, i32 3, i32 4, i32 5, i32 6, i32 7>
207+
ret <8 x bfloat> %shuffle.i
208+
}
209+
210+
define <4 x float> @insertzero_v2f32(<2 x float> %a) {
211+
; CHECK-LABEL: insertzero_v2f32:
212+
; CHECK: // %bb.0: // %entry
213+
; CHECK-NEXT: movi d1, #0000000000000000
214+
; CHECK-NEXT: // kill: def $d0 killed $d0 def $q0
215+
; CHECK-NEXT: mov v0.d[1], v1.d[0]
216+
; CHECK-NEXT: ret
217+
entry:
218+
%shuffle.i = shufflevector <2 x float> %a, <2 x float> zeroinitializer, <4 x i32> <i32 0, i32 1, i32 2, i32 3>
219+
ret <4 x float> %shuffle.i
220+
}
221+
222+
define <2 x double> @insertzero_v1f64(<1 x double> %a) {
223+
; CHECK-LABEL: insertzero_v1f64:
224+
; CHECK: // %bb.0: // %entry
225+
; CHECK-NEXT: movi d1, #0000000000000000
226+
; CHECK-NEXT: // kill: def $d0 killed $d0 def $q0
227+
; CHECK-NEXT: mov v0.d[1], v1.d[0]
228+
; CHECK-NEXT: ret
229+
entry:
230+
%shuffle.i = shufflevector <1 x double> %a, <1 x double> zeroinitializer, <2 x i32> <i32 0, i32 1>
231+
ret <2 x double> %shuffle.i
232+
}
233+
234+
235+
137236
declare <8 x i8> @llvm.aarch64.neon.rshrn.v8i8(<8 x i16>, i32)
138237
declare <4 x i16> @llvm.aarch64.neon.addp.v4i16(<4 x i16>, <4 x i16>)

0 commit comments

Comments
 (0)