[ARM] MVE big endian bitcasts
[llvm-complete.git] / test / CodeGen / AArch64 / GlobalISel / select-concat-vectors.mir
blob425b44e0cceefffe214920bd9e987d6d6368e4d9
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:       2
7 legalized:       true
8 regBankSelected: true
9 registers:
10   - { id: 0, class: fpr }
11   - { id: 1, class: fpr }
12   - { id: 2, class: fpr }
13 frameInfo:
14   maxCallFrameSize: 0
15 body:             |
16   bb.0:
17     ; CHECK-LABEL: name: legal_v4s32_v2s32
18     ; CHECK: [[COPY:%[0-9]+]]:fpr64 = COPY $d0
19     ; CHECK: [[COPY1:%[0-9]+]]:fpr64 = COPY $d1
20     ; CHECK: [[DEF:%[0-9]+]]:fpr128 = IMPLICIT_DEF
21     ; CHECK: [[INSERT_SUBREG:%[0-9]+]]:fpr128 = INSERT_SUBREG [[DEF]], [[COPY]], %subreg.dsub
22     ; CHECK: [[DEF1:%[0-9]+]]:fpr128 = IMPLICIT_DEF
23     ; CHECK: [[INSERT_SUBREG1:%[0-9]+]]:fpr128 = INSERT_SUBREG [[DEF1]], [[COPY1]], %subreg.dsub
24     ; CHECK: [[INSvi64lane:%[0-9]+]]:fpr128 = INSvi64lane [[INSERT_SUBREG]], 1, [[INSERT_SUBREG1]], 0
25     ; CHECK: $q0 = COPY [[INSvi64lane]]
26     ; CHECK: RET_ReallyLR
27     %0:fpr(<2 x s32>) = COPY $d0
28     %1:fpr(<2 x s32>) = COPY $d1
29     %2:fpr(<4 x s32>) = G_CONCAT_VECTORS %0(<2 x s32>), %1(<2 x s32>)
30     $q0 = COPY %2(<4 x s32>)
31     RET_ReallyLR
33 ...
34 ---
35 name:            legal_v8s16_v4s16
36 alignment:       2
37 legalized:       true
38 regBankSelected: true
39 registers:
40   - { id: 0, class: fpr }
41   - { id: 1, class: fpr }
42   - { id: 2, class: fpr }
43 frameInfo:
44   maxCallFrameSize: 0
45 body:             |
46   bb.0:
47     ; CHECK-LABEL: name: legal_v8s16_v4s16
48     ; CHECK: [[COPY:%[0-9]+]]:fpr64 = COPY $d0
49     ; CHECK: [[COPY1:%[0-9]+]]:fpr64 = COPY $d1
50     ; CHECK: [[DEF:%[0-9]+]]:fpr128 = IMPLICIT_DEF
51     ; CHECK: [[INSERT_SUBREG:%[0-9]+]]:fpr128 = INSERT_SUBREG [[DEF]], [[COPY]], %subreg.dsub
52     ; CHECK: [[DEF1:%[0-9]+]]:fpr128 = IMPLICIT_DEF
53     ; CHECK: [[INSERT_SUBREG1:%[0-9]+]]:fpr128 = INSERT_SUBREG [[DEF1]], [[COPY1]], %subreg.dsub
54     ; CHECK: [[INSvi64lane:%[0-9]+]]:fpr128 = INSvi64lane [[INSERT_SUBREG]], 1, [[INSERT_SUBREG1]], 0
55     ; CHECK: $q0 = COPY [[INSvi64lane]]
56     ; CHECK: RET_ReallyLR
57     %0:fpr(<4 x s16>) = COPY $d0
58     %1:fpr(<4 x s16>) = COPY $d1
59     %2:fpr(<8 x s16>) = G_CONCAT_VECTORS %0(<4 x s16>), %1(<4 x s16>)
60     $q0 = COPY %2(<8 x s16>)
61     RET_ReallyLR
63 ...