Skip to content

Commit 3f33ab6

Browse files
author
Thorsten Schütt
committed
more vector tests
1 parent f8cff5e commit 3f33ab6

File tree

1 file changed

+117
-0
lines changed

1 file changed

+117
-0
lines changed

llvm/test/CodeGen/AArch64/GlobalISel/combine-with-flags.mir

Lines changed: 117 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -154,3 +154,120 @@ body: |
154154
%3:_(s64) = G_SEXT %2
155155
$x1 = COPY %3
156156
...
157+
---
158+
name: sext_trunc_nsw_nuw_vector
159+
body: |
160+
bb.0:
161+
liveins: $w0, $w1
162+
; CHECK-LABEL: name: sext_trunc_nsw_nuw_vector
163+
; CHECK: liveins: $w0, $w1
164+
; CHECK-NEXT: {{ $}}
165+
; CHECK-NEXT: [[COPY:%[0-9]+]]:_(s32) = COPY $w0
166+
; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(s32) = COPY $w1
167+
; CHECK-NEXT: [[COPY2:%[0-9]+]]:_(s32) = COPY $w2
168+
; CHECK-NEXT: [[COPY3:%[0-9]+]]:_(s32) = COPY $w3
169+
; CHECK-NEXT: %bv0:_(<4 x s32>) = G_BUILD_VECTOR [[COPY]](s32), [[COPY1]](s32), [[COPY2]](s32), [[COPY3]](s32)
170+
; CHECK-NEXT: $q0 = COPY %bv0(<4 x s32>)
171+
%0:_(s32) = COPY $w0
172+
%1:_(s32) = COPY $w1
173+
%2:_(s32) = COPY $w2
174+
%3:_(s32) = COPY $w3
175+
%bv0:_(<4 x s32>) = G_BUILD_VECTOR %0:_(s32), %1:_(s32), %2:_(s32), %3:_(s32)
176+
%t:_(<4 x s16>) = nsw nuw G_TRUNC %bv0
177+
%s:_(<4 x s32>) = G_SEXT %t
178+
$q0 = COPY %s
179+
...
180+
---
181+
name: zext_trunc_vector
182+
body: |
183+
bb.0:
184+
liveins: $w0, $w1
185+
; CHECK-LABEL: name: zext_trunc_vector
186+
; CHECK: liveins: $w0, $w1
187+
; CHECK-NEXT: {{ $}}
188+
; CHECK-NEXT: [[COPY:%[0-9]+]]:_(s32) = COPY $w0
189+
; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(s32) = COPY $w1
190+
; CHECK-NEXT: [[COPY2:%[0-9]+]]:_(s32) = COPY $w2
191+
; CHECK-NEXT: [[COPY3:%[0-9]+]]:_(s32) = COPY $w3
192+
; CHECK-NEXT: %bv0:_(<4 x s32>) = G_BUILD_VECTOR [[COPY]](s32), [[COPY1]](s32), [[COPY2]](s32), [[COPY3]](s32)
193+
; CHECK-NEXT: %t:_(<4 x s16>) = G_TRUNC %bv0(<4 x s32>)
194+
; CHECK-NEXT: %z:_(<4 x s32>) = G_ZEXT %t(<4 x s16>)
195+
; CHECK-NEXT: $q0 = COPY %z(<4 x s32>)
196+
%0:_(s32) = COPY $w0
197+
%1:_(s32) = COPY $w1
198+
%2:_(s32) = COPY $w2
199+
%3:_(s32) = COPY $w3
200+
%bv0:_(<4 x s32>) = G_BUILD_VECTOR %0:_(s32), %1:_(s32), %2:_(s32), %3:_(s32)
201+
%t:_(<4 x s16>) = G_TRUNC %bv0
202+
%z:_(<4 x s32>) = G_ZEXT %t
203+
$q0 = COPY %z
204+
...
205+
---
206+
name: zext_trunc_nsw_vector
207+
body: |
208+
bb.0:
209+
liveins: $w0, $w1
210+
; CHECK-LABEL: name: zext_trunc_nsw_vector
211+
; CHECK: liveins: $w0, $w1
212+
; CHECK-NEXT: {{ $}}
213+
; CHECK-NEXT: [[COPY:%[0-9]+]]:_(s32) = COPY $w0
214+
; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(s32) = COPY $w1
215+
; CHECK-NEXT: [[COPY2:%[0-9]+]]:_(s32) = COPY $w2
216+
; CHECK-NEXT: [[COPY3:%[0-9]+]]:_(s32) = COPY $w3
217+
; CHECK-NEXT: %bv0:_(<4 x s32>) = G_BUILD_VECTOR [[COPY]](s32), [[COPY1]](s32), [[COPY2]](s32), [[COPY3]](s32)
218+
; CHECK-NEXT: %t:_(<4 x s16>) = nsw G_TRUNC %bv0(<4 x s32>)
219+
; CHECK-NEXT: %z:_(<4 x s32>) = G_ZEXT %t(<4 x s16>)
220+
; CHECK-NEXT: $q0 = COPY %z(<4 x s32>)
221+
%0:_(s32) = COPY $w0
222+
%1:_(s32) = COPY $w1
223+
%2:_(s32) = COPY $w2
224+
%3:_(s32) = COPY $w3
225+
%bv0:_(<4 x s32>) = G_BUILD_VECTOR %0:_(s32), %1:_(s32), %2:_(s32), %3:_(s32)
226+
%t:_(<4 x s16>) = nsw G_TRUNC %bv0
227+
%z:_(<4 x s32>) = G_ZEXT %t
228+
$q0 = COPY %z
229+
...
230+
---
231+
name: zext_trunc_nuw_vector2
232+
body: |
233+
bb.0:
234+
liveins: $w0, $w1
235+
; CHECK-LABEL: name: zext_trunc_nuw_vector2
236+
; CHECK: liveins: $w0, $w1
237+
; CHECK-NEXT: {{ $}}
238+
; CHECK-NEXT: [[COPY:%[0-9]+]]:_(s32) = COPY $w0
239+
; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(s32) = COPY $w1
240+
; CHECK-NEXT: [[COPY2:%[0-9]+]]:_(s32) = COPY $w2
241+
; CHECK-NEXT: [[COPY3:%[0-9]+]]:_(s32) = COPY $w3
242+
; CHECK-NEXT: %bv0:_(<4 x s32>) = G_BUILD_VECTOR [[COPY]](s32), [[COPY1]](s32), [[COPY2]](s32), [[COPY3]](s32)
243+
; CHECK-NEXT: $q0 = COPY %bv0(<4 x s32>)
244+
%0:_(s32) = COPY $w0
245+
%1:_(s32) = COPY $w1
246+
%2:_(s32) = COPY $w2
247+
%3:_(s32) = COPY $w3
248+
%bv0:_(<4 x s32>) = G_BUILD_VECTOR %0:_(s32), %1:_(s32), %2:_(s32), %3:_(s32)
249+
%t:_(<4 x s16>) = nuw G_TRUNC %bv0
250+
%z:_(<4 x s32>) = G_ZEXT %t
251+
$q0 = COPY %z
252+
...
253+
---
254+
name: zext_trunc_nuw_vector_wrong_type
255+
body: |
256+
bb.0:
257+
liveins: $w0, $w1
258+
; CHECK-LABEL: name: zext_trunc_nuw_vector_wrong_type
259+
; CHECK: liveins: $w0, $w1
260+
; CHECK-NEXT: {{ $}}
261+
; CHECK-NEXT: [[COPY:%[0-9]+]]:_(s64) = COPY $x0
262+
; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(s64) = COPY $x1
263+
; CHECK-NEXT: %bv0:_(<2 x s64>) = G_BUILD_VECTOR [[COPY]](s64), [[COPY1]](s64)
264+
; CHECK-NEXT: %t:_(<2 x s16>) = nuw G_TRUNC %bv0(<2 x s64>)
265+
; CHECK-NEXT: %z:_(<2 x s32>) = G_ZEXT %t(<2 x s16>)
266+
; CHECK-NEXT: $d0 = COPY %z(<2 x s32>)
267+
%0:_(s64) = COPY $x0
268+
%1:_(s64) = COPY $x1
269+
%bv0:_(<2 x s64>) = G_BUILD_VECTOR %0:_(s64), %1:_(s64)
270+
%t:_(<2 x s16>) = nuw G_TRUNC %bv0
271+
%z:_(<2 x s32>) = G_ZEXT %t
272+
$d0 = COPY %z
273+
...

0 commit comments

Comments
 (0)