@@ -298,165 +298,3 @@ body: |
298298 RET_ReallyLR
299299
300300 ...
301- ---
302- name : shuffle_v4i32_v1i32
303- alignment : 4
304- tracksRegLiveness : true
305- body : |
306- bb.1:
307- liveins: $w0, $w1, $w2
308-
309- ; CHECK-LABEL: name: shuffle_v4i32_v1i32
310- ; CHECK: liveins: $w0, $w1, $w2
311- ; CHECK-NEXT: {{ $}}
312- ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(s32) = COPY $w0
313- ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(s32) = COPY $w1
314- ; CHECK-NEXT: [[COPY2:%[0-9]+]]:_(s32) = COPY $w2
315- ; CHECK-NEXT: [[DEF:%[0-9]+]]:_(s32) = G_IMPLICIT_DEF
316- ; CHECK-NEXT: [[BUILD_VECTOR:%[0-9]+]]:_(<4 x s32>) = G_BUILD_VECTOR [[COPY]](s32), [[COPY1]](s32), [[COPY2]](s32), [[DEF]](s32)
317- ; CHECK-NEXT: [[BUILD_VECTOR1:%[0-9]+]]:_(<4 x s32>) = G_BUILD_VECTOR [[COPY]](s32), [[COPY1]](s32), [[COPY2]](s32), [[DEF]](s32)
318- ; CHECK-NEXT: [[SHUF:%[0-9]+]]:_(<4 x s32>) = G_SHUFFLE_VECTOR [[BUILD_VECTOR]](<4 x s32>), [[BUILD_VECTOR1]], shufflemask(0, 1, 5, 6)
319- %0:_(s32) = COPY $w0
320- %1:_(s32) = COPY $w1
321- %2:_(s32) = COPY $w2
322- %3:_(<3 x s32>) = G_BUILD_VECTOR %0(s32), %1(s32), %2(s32)
323- %4:_(<4 x s32>) = G_SHUFFLE_VECTOR %3(<3 x s32>), %3, shufflemask(0, 1, 4, 5)
324- $q0 = COPY %4(<4 x s32>)
325- RET_ReallyLR implicit $q0
326-
327- ...
328- ---
329- name : shuffle_v4i32_v2i32
330- alignment : 4
331- tracksRegLiveness : true
332- body : |
333- bb.1:
334- liveins: $q0, $d1
335-
336- ; CHECK-LABEL: name: shuffle_v4i32_v2i32
337- ; CHECK: liveins: $q0, $d1
338- ; CHECK-NEXT: {{ $}}
339- ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(<2 x s32>) = COPY $d0
340- ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(<2 x s32>) = COPY $d1
341- ; CHECK-NEXT: [[DEF:%[0-9]+]]:_(<2 x s32>) = G_IMPLICIT_DEF
342- ; CHECK-NEXT: [[CONCAT_VECTORS:%[0-9]+]]:_(<4 x s32>) = G_CONCAT_VECTORS [[COPY]](<2 x s32>), [[DEF]](<2 x s32>)
343- ; CHECK-NEXT: [[CONCAT_VECTORS1:%[0-9]+]]:_(<4 x s32>) = G_CONCAT_VECTORS [[COPY1]](<2 x s32>), [[DEF]](<2 x s32>)
344- ; CHECK-NEXT: [[SHUF:%[0-9]+]]:_(<4 x s32>) = G_SHUFFLE_VECTOR [[CONCAT_VECTORS]](<4 x s32>), [[CONCAT_VECTORS1]], shufflemask(0, 1, 4, 5)
345- ; CHECK-NEXT: $q0 = COPY [[SHUF]](<4 x s32>)
346- ; CHECK-NEXT: RET_ReallyLR implicit $q0
347- %0:_(<2 x s32>) = COPY $d0
348- %1:_(<2 x s32>) = COPY $d1
349- %2:_(<4 x s32>) = G_SHUFFLE_VECTOR %0(<2 x s32>), %1, shufflemask(0, 1, 2, 3)
350- $q0 = COPY %2(<4 x s32>)
351- RET_ReallyLR implicit $q0
352-
353- ...
354- ---
355- name : shuffle_v8i16_v4i16
356- alignment : 4
357- tracksRegLiveness : true
358- body : |
359- bb.1:
360- liveins: $d0, $d1
361-
362- ; CHECK-LABEL: name: shuffle_v8i16_v4i16
363- ; CHECK: liveins: $d0, $d1
364- ; CHECK-NEXT: {{ $}}
365- ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(<4 x s16>) = COPY $d0
366- ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(<4 x s16>) = COPY $d1
367- ; CHECK-NEXT: [[DEF:%[0-9]+]]:_(<4 x s16>) = G_IMPLICIT_DEF
368- ; CHECK-NEXT: [[CONCAT_VECTORS:%[0-9]+]]:_(<8 x s16>) = G_CONCAT_VECTORS [[COPY]](<4 x s16>), [[DEF]](<4 x s16>)
369- ; CHECK-NEXT: [[CONCAT_VECTORS1:%[0-9]+]]:_(<8 x s16>) = G_CONCAT_VECTORS [[COPY1]](<4 x s16>), [[DEF]](<4 x s16>)
370- ; CHECK-NEXT: [[SHUF:%[0-9]+]]:_(<8 x s16>) = G_SHUFFLE_VECTOR [[CONCAT_VECTORS]](<8 x s16>), [[CONCAT_VECTORS1]], shufflemask(11, 10, 9, 8, 3, 2, 1, 0)
371- ; CHECK-NEXT: $q0 = COPY [[SHUF]](<8 x s16>)
372- ; CHECK-NEXT: RET_ReallyLR implicit $q0
373- %0:_(<4 x s16>) = COPY $d0
374- %1:_(<4 x s16>) = COPY $d1
375- %2:_(<8 x s16>) = G_SHUFFLE_VECTOR %0(<4 x s16>), %1, shufflemask(7, 6, 5, 4, 3, 2, 1, 0)
376- $q0 = COPY %2(<8 x s16>)
377- RET_ReallyLR implicit $q0
378-
379- ...
380- ---
381- name : shuffle_v16i8_v8i8
382- alignment : 4
383- tracksRegLiveness : true
384- body : |
385- bb.1:
386- liveins: $d0, $d1
387-
388- ; CHECK-LABEL: name: shuffle_v16i8_v8i8
389- ; CHECK: liveins: $d0, $d1
390- ; CHECK-NEXT: {{ $}}
391- ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(<8 x s8>) = COPY $d0
392- ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(<8 x s8>) = COPY $d1
393- ; CHECK-NEXT: [[DEF:%[0-9]+]]:_(<8 x s8>) = G_IMPLICIT_DEF
394- ; CHECK-NEXT: [[CONCAT_VECTORS:%[0-9]+]]:_(<16 x s8>) = G_CONCAT_VECTORS [[COPY]](<8 x s8>), [[DEF]](<8 x s8>)
395- ; CHECK-NEXT: [[CONCAT_VECTORS1:%[0-9]+]]:_(<16 x s8>) = G_CONCAT_VECTORS [[COPY1]](<8 x s8>), [[DEF]](<8 x s8>)
396- ; CHECK-NEXT: [[SHUF:%[0-9]+]]:_(<16 x s8>) = G_SHUFFLE_VECTOR [[CONCAT_VECTORS]](<16 x s8>), [[CONCAT_VECTORS1]], shufflemask(7, 21, 6, 4, 5, 3, 0, 0, 0, 0, 0, 0, 0, 0, 23, 0)
397- ; CHECK-NEXT: $q0 = COPY [[SHUF]](<16 x s8>)
398- ; CHECK-NEXT: RET_ReallyLR implicit $q0
399- %0:_(<8 x s8>) = COPY $d0
400- %1:_(<8 x s8>) = COPY $d1
401- %2:_(<16 x s8>) = G_SHUFFLE_VECTOR %0(<8 x s8>), %1, shufflemask(7, 13, 6, 4, 5, 3, 0, 0, 0, 0, 0, 0, 0, 0, 15, 0)
402- $q0 = COPY %2(<16 x s8>)
403- RET_ReallyLR implicit $q0
404-
405- ...
406- ---
407- name : size_shuffle_v6i32_v4i32
408- alignment : 4
409- tracksRegLiveness : true
410- body : |
411- bb.1:
412- liveins: $s0, $s1, $s2, $s3, $s4, $s5, $s6, $s7, $x0
413-
414- ; CHECK-LABEL: name: size_shuffle_v6i32_v4i32
415- ; CHECK: liveins: $s0, $s1, $s2, $s3, $s4, $s5, $s6, $s7, $x0
416- ; CHECK-NEXT: {{ $}}
417- ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(s32) = COPY $s0
418- ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(s32) = COPY $s1
419- ; CHECK-NEXT: [[COPY2:%[0-9]+]]:_(s32) = COPY $s2
420- ; CHECK-NEXT: [[COPY3:%[0-9]+]]:_(s32) = COPY $s3
421- ; CHECK-NEXT: [[BUILD_VECTOR:%[0-9]+]]:_(<4 x s32>) = G_BUILD_VECTOR [[COPY]](s32), [[COPY1]](s32), [[COPY2]](s32), [[COPY3]](s32)
422- ; CHECK-NEXT: [[COPY4:%[0-9]+]]:_(s32) = COPY $s4
423- ; CHECK-NEXT: [[COPY5:%[0-9]+]]:_(s32) = COPY $s5
424- ; CHECK-NEXT: [[COPY6:%[0-9]+]]:_(s32) = COPY $s6
425- ; CHECK-NEXT: [[COPY7:%[0-9]+]]:_(s32) = COPY $s7
426- ; CHECK-NEXT: [[BUILD_VECTOR1:%[0-9]+]]:_(<4 x s32>) = G_BUILD_VECTOR [[COPY4]](s32), [[COPY5]](s32), [[COPY6]](s32), [[COPY7]](s32)
427- ; CHECK-NEXT: [[COPY8:%[0-9]+]]:_(p0) = COPY $x0
428- ; CHECK-NEXT: [[SHUF:%[0-9]+]]:_(<4 x s32>) = G_SHUFFLE_VECTOR [[BUILD_VECTOR]](<4 x s32>), [[BUILD_VECTOR1]], shufflemask(3, 4, 7, 0)
429- ; CHECK-NEXT: [[SHUF1:%[0-9]+]]:_(<4 x s32>) = G_SHUFFLE_VECTOR [[BUILD_VECTOR]](<4 x s32>), [[BUILD_VECTOR1]], shufflemask(1, 5, undef, undef)
430- ; CHECK-NEXT: [[C:%[0-9]+]]:_(s64) = G_CONSTANT i64 0
431- ; CHECK-NEXT: [[EVEC:%[0-9]+]]:_(s32) = G_EXTRACT_VECTOR_ELT [[SHUF]](<4 x s32>), [[C]](s64)
432- ; CHECK-NEXT: [[C1:%[0-9]+]]:_(s64) = G_CONSTANT i64 1
433- ; CHECK-NEXT: [[EVEC1:%[0-9]+]]:_(s32) = G_EXTRACT_VECTOR_ELT [[SHUF]](<4 x s32>), [[C1]](s64)
434- ; CHECK-NEXT: [[C2:%[0-9]+]]:_(s64) = G_CONSTANT i64 2
435- ; CHECK-NEXT: [[EVEC2:%[0-9]+]]:_(s32) = G_EXTRACT_VECTOR_ELT [[SHUF]](<4 x s32>), [[C2]](s64)
436- ; CHECK-NEXT: [[C3:%[0-9]+]]:_(s64) = G_CONSTANT i64 3
437- ; CHECK-NEXT: [[EVEC3:%[0-9]+]]:_(s32) = G_EXTRACT_VECTOR_ELT [[SHUF]](<4 x s32>), [[C3]](s64)
438- ; CHECK-NEXT: [[EVEC4:%[0-9]+]]:_(s32) = G_EXTRACT_VECTOR_ELT [[SHUF1]](<4 x s32>), [[C]](s64)
439- ; CHECK-NEXT: [[EVEC5:%[0-9]+]]:_(s32) = G_EXTRACT_VECTOR_ELT [[SHUF1]](<4 x s32>), [[C1]](s64)
440- ; CHECK-NEXT: [[BUILD_VECTOR2:%[0-9]+]]:_(<4 x s32>) = G_BUILD_VECTOR [[EVEC]](s32), [[EVEC1]](s32), [[EVEC2]](s32), [[EVEC3]](s32)
441- ; CHECK-NEXT: [[BUILD_VECTOR3:%[0-9]+]]:_(<2 x s32>) = G_BUILD_VECTOR [[EVEC4]](s32), [[EVEC5]](s32)
442- ; CHECK-NEXT: G_STORE [[BUILD_VECTOR2]](<4 x s32>), [[COPY8]](p0) :: (store (<4 x s32>), align 32)
443- ; CHECK-NEXT: [[C4:%[0-9]+]]:_(s64) = G_CONSTANT i64 16
444- ; CHECK-NEXT: [[PTR_ADD:%[0-9]+]]:_(p0) = G_PTR_ADD [[COPY8]], [[C4]](s64)
445- ; CHECK-NEXT: G_STORE [[BUILD_VECTOR3]](<2 x s32>), [[PTR_ADD]](p0) :: (store (<2 x s32>) into unknown-address + 16, align 16)
446- ; CHECK-NEXT: RET_ReallyLR
447- %3:_(s32) = COPY $s0
448- %4:_(s32) = COPY $s1
449- %5:_(s32) = COPY $s2
450- %6:_(s32) = COPY $s3
451- %0:_(<4 x s32>) = G_BUILD_VECTOR %3(s32), %4(s32), %5(s32), %6(s32)
452- %7:_(s32) = COPY $s4
453- %8:_(s32) = COPY $s5
454- %9:_(s32) = COPY $s6
455- %10:_(s32) = COPY $s7
456- %1:_(<4 x s32>) = G_BUILD_VECTOR %7(s32), %8(s32), %9(s32), %10(s32)
457- %2:_(p0) = COPY $x0
458- %19:_(<6 x s32>) = G_SHUFFLE_VECTOR %0(<4 x s32>), %1, shufflemask(3, 4, 7, 0, 1, 5)
459- G_STORE %19(<6 x s32>), %2(p0) :: (store (<6 x s32>), align 32)
460- RET_ReallyLR
461-
462- ...
0 commit comments