[MIParser] Set RegClassOrRegBank during instruction parsing
[llvm-complete.git] / test / CodeGen / AArch64 / GlobalISel / legalize-shuffle-vector.mir
blob7b4ae3d56ab0f410d0af13054cd6d385db4bc7cd
1 # NOTE: Assertions have been autogenerated by utils/update_mir_test_checks.py
2 # RUN: llc -mtriple=aarch64 -O0 -run-pass=legalizer -global-isel-abort=1 %s -o - | FileCheck %s
3 ---
4 name:            shuffle_v4i32
5 alignment:       4
6 tracksRegLiveness: true
7 body:             |
8   bb.1:
9     liveins: $q0, $q1
11     ; CHECK-LABEL: name: shuffle_v4i32
12     ; CHECK: liveins: $q0, $q1
13     ; CHECK: [[COPY:%[0-9]+]]:_(<4 x s32>) = COPY $q0
14     ; CHECK: [[COPY1:%[0-9]+]]:_(<4 x s32>) = COPY $q1
15     ; CHECK: [[SHUF:%[0-9]+]]:_(<4 x s32>) = G_SHUFFLE_VECTOR [[COPY]](<4 x s32>), [[COPY1]], shufflemask(0, 0, 0, 0)
16     ; CHECK: $q0 = COPY [[SHUF]](<4 x s32>)
17     ; CHECK: RET_ReallyLR implicit $q0
18     %0:_(<4 x s32>) = COPY $q0
19     %1:_(<4 x s32>) = COPY $q1
20     %2:_(<4 x s32>) = G_SHUFFLE_VECTOR %0(<4 x s32>), %1, shufflemask(0, 0, 0, 0)
21     $q0 = COPY %2(<4 x s32>)
22     RET_ReallyLR implicit $q0
24 ...
25 ---
26 name:            shuffle_v2i64
27 alignment:       4
28 tracksRegLiveness: true
29 body:             |
30   bb.1:
31     liveins: $q0, $q1
33     ; CHECK-LABEL: name: shuffle_v2i64
34     ; CHECK: liveins: $q0, $q1
35     ; CHECK: [[COPY:%[0-9]+]]:_(<2 x s64>) = COPY $q0
36     ; CHECK: [[COPY1:%[0-9]+]]:_(<2 x s64>) = COPY $q1
37     ; CHECK: [[SHUF:%[0-9]+]]:_(<2 x s64>) = G_SHUFFLE_VECTOR [[COPY]](<2 x s64>), [[COPY1]], shufflemask(0, 0)
38     ; CHECK: $q0 = COPY [[SHUF]](<2 x s64>)
39     ; CHECK: RET_ReallyLR implicit $q0
40     %0:_(<2 x s64>) = COPY $q0
41     %1:_(<2 x s64>) = COPY $q1
42     %2:_(<2 x s64>) = G_SHUFFLE_VECTOR %0(<2 x s64>), %1, shufflemask(0, 0)
43     $q0 = COPY %2(<2 x s64>)
44     RET_ReallyLR implicit $q0
46 ...
47 ---
48 name:            shuffle_1elt_mask
49 alignment:       4
50 tracksRegLiveness: true
51 body:             |
52   bb.1:
53     liveins: $d0, $d1
55     ; CHECK-LABEL: name: shuffle_1elt_mask
56     ; CHECK: liveins: $d0, $d1
57     ; CHECK: [[COPY:%[0-9]+]]:_(s64) = COPY $d0
58     ; CHECK: [[COPY1:%[0-9]+]]:_(s64) = COPY $d1
59     ; CHECK: [[COPY2:%[0-9]+]]:_(s64) = COPY [[COPY]](s64)
60     ; CHECK: [[COPY3:%[0-9]+]]:_(s64) = COPY [[COPY1]](s64)
61     ; CHECK: $d0 = COPY [[COPY2]](s64)
62     ; CHECK: $d1 = COPY [[COPY3]](s64)
63     ; CHECK: RET_ReallyLR implicit $d0, implicit $d1
64     %0:_(s64) = COPY $d0
65     %1:_(s64) = COPY $d1
66     %3:_(s64) = G_SHUFFLE_VECTOR %0:_(s64), %1:_, shufflemask(0)
67     %4:_(s64) = G_SHUFFLE_VECTOR %0:_(s64), %1:_, shufflemask(1)
68     $d0 = COPY %3(s64)
69     $d1 = COPY %4(s64)
70     RET_ReallyLR implicit $d0, implicit $d1
72 ...