[MIParser] Set RegClassOrRegBank during instruction parsing
[llvm-complete.git] / test / CodeGen / AArch64 / GlobalISel / select-concat-vectors.mir
blob2fdec4a62f657a7d5ffab1c78eed410e03c1dcd0
1 # NOTE: Assertions have been autogenerated by utils/update_mir_test_checks.py
2 # RUN: llc -mtriple=aarch64-- -run-pass=instruction-select -verify-machineinstrs %s -o - | FileCheck %s
3 ...
4 ---
5 name:            legal_v4s32_v2s32
6 alignment:       4
7 legalized:       true
8 regBankSelected: true
9 tracksRegLiveness: true
10 registers:
11   - { id: 0, class: fpr }
12   - { id: 1, class: fpr }
13   - { id: 2, class: fpr }
14 frameInfo:
15   maxCallFrameSize: 0
16 body:             |
17   bb.0:
18   liveins: $d0, $d1
19     ; CHECK-LABEL: name: legal_v4s32_v2s32
20     ; CHECK: liveins: $d0, $d1
21     ; CHECK: [[COPY:%[0-9]+]]:fpr64 = COPY $d0
22     ; CHECK: [[COPY1:%[0-9]+]]:fpr64 = COPY $d1
23     ; CHECK: [[DEF:%[0-9]+]]:fpr128 = IMPLICIT_DEF
24     ; CHECK: [[INSERT_SUBREG:%[0-9]+]]:fpr128 = INSERT_SUBREG [[DEF]], [[COPY1]], %subreg.dsub
25     ; CHECK: [[DEF1:%[0-9]+]]:fpr128 = IMPLICIT_DEF
26     ; CHECK: [[INSERT_SUBREG1:%[0-9]+]]:fpr128 = INSERT_SUBREG [[DEF1]], [[COPY]], %subreg.dsub
27     ; CHECK: [[INSvi64lane:%[0-9]+]]:fpr128 = INSvi64lane [[INSERT_SUBREG1]], 1, [[INSERT_SUBREG]], 0
28     ; CHECK: $q0 = COPY [[INSvi64lane]]
29     ; CHECK: RET_ReallyLR implicit $q0
30     %0:fpr(<2 x s32>) = COPY $d0
31     %1:fpr(<2 x s32>) = COPY $d1
32     %2:fpr(<4 x s32>) = G_CONCAT_VECTORS %0(<2 x s32>), %1(<2 x s32>)
33     $q0 = COPY %2(<4 x s32>)
34     RET_ReallyLR implicit $q0
36 ...
37 ---
38 name:            legal_v8s16_v4s16
39 alignment:       4
40 legalized:       true
41 regBankSelected: true
42 tracksRegLiveness: true
43 registers:
44   - { id: 0, class: fpr }
45   - { id: 1, class: fpr }
46   - { id: 2, class: fpr }
47 frameInfo:
48   maxCallFrameSize: 0
49 body:             |
50   bb.0:
51   liveins: $d0, $d1
52     ; CHECK-LABEL: name: legal_v8s16_v4s16
53     ; CHECK: liveins: $d0, $d1
54     ; CHECK: [[COPY:%[0-9]+]]:fpr64 = COPY $d0
55     ; CHECK: [[COPY1:%[0-9]+]]:fpr64 = COPY $d1
56     ; CHECK: [[DEF:%[0-9]+]]:fpr128 = IMPLICIT_DEF
57     ; CHECK: [[INSERT_SUBREG:%[0-9]+]]:fpr128 = INSERT_SUBREG [[DEF]], [[COPY1]], %subreg.dsub
58     ; CHECK: [[DEF1:%[0-9]+]]:fpr128 = IMPLICIT_DEF
59     ; CHECK: [[INSERT_SUBREG1:%[0-9]+]]:fpr128 = INSERT_SUBREG [[DEF1]], [[COPY]], %subreg.dsub
60     ; CHECK: [[INSvi64lane:%[0-9]+]]:fpr128 = INSvi64lane [[INSERT_SUBREG1]], 1, [[INSERT_SUBREG]], 0
61     ; CHECK: $q0 = COPY [[INSvi64lane]]
62     ; CHECK: RET_ReallyLR implicit $q0
63     %0:fpr(<4 x s16>) = COPY $d0
64     %1:fpr(<4 x s16>) = COPY $d1
65     %2:fpr(<8 x s16>) = G_CONCAT_VECTORS %0(<4 x s16>), %1(<4 x s16>)
66     $q0 = COPY %2(<8 x s16>)
67     RET_ReallyLR implicit $q0
69 ...