[Alignment][NFC] migrate DataLayout internal struct to llvm::Align
[llvm-core.git] / test / CodeGen / AArch64 / GlobalISel / select-vector-shift.mir
blob95da841e71d236f005437371ca4daa65468c510f
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 name:            shl_v2i32
5 alignment:       4
6 legalized:       true
7 regBankSelected: true
8 tracksRegLiveness: true
9 registers:
10   - { id: 0, class: fpr }
11   - { id: 1, class: fpr }
12   - { id: 2, class: fpr }
13 machineFunctionInfo: {}
14 body:             |
15   bb.1:
16     liveins: $d0, $d1
18     ; CHECK-LABEL: name: shl_v2i32
19     ; CHECK: liveins: $d0, $d1
20     ; CHECK: [[COPY:%[0-9]+]]:fpr64 = COPY $d0
21     ; CHECK: [[COPY1:%[0-9]+]]:fpr64 = COPY $d1
22     ; CHECK: [[USHLv2i32_:%[0-9]+]]:fpr64 = USHLv2i32 [[COPY]], [[COPY1]]
23     ; CHECK: $d0 = COPY [[USHLv2i32_]]
24     ; CHECK: RET_ReallyLR implicit $d0
25     %0:fpr(<2 x s32>) = COPY $d0
26     %1:fpr(<2 x s32>) = COPY $d1
27     %2:fpr(<2 x s32>) = G_SHL %0, %1(<2 x s32>)
28     $d0 = COPY %2(<2 x s32>)
29     RET_ReallyLR implicit $d0
31 ...
32 ---
33 name:            shl_v4i32
34 alignment:       4
35 legalized:       true
36 regBankSelected: true
37 tracksRegLiveness: true
38 registers:
39   - { id: 0, class: fpr }
40   - { id: 1, class: fpr }
41   - { id: 2, class: fpr }
42 machineFunctionInfo: {}
43 body:             |
44   bb.1:
45     liveins: $q0, $q1
47     ; CHECK-LABEL: name: shl_v4i32
48     ; CHECK: liveins: $q0, $q1
49     ; CHECK: [[COPY:%[0-9]+]]:fpr128 = COPY $q0
50     ; CHECK: [[COPY1:%[0-9]+]]:fpr128 = COPY $q1
51     ; CHECK: [[USHLv4i32_:%[0-9]+]]:fpr128 = USHLv4i32 [[COPY]], [[COPY1]]
52     ; CHECK: $q0 = COPY [[USHLv4i32_]]
53     ; CHECK: RET_ReallyLR implicit $q0
54     %0:fpr(<4 x s32>) = COPY $q0
55     %1:fpr(<4 x s32>) = COPY $q1
56     %2:fpr(<4 x s32>) = G_SHL %0, %1(<4 x s32>)
57     $q0 = COPY %2(<4 x s32>)
58     RET_ReallyLR implicit $q0
60 ...
61 ---
62 name:            ashr_v2i32
63 alignment:       4
64 legalized:       true
65 regBankSelected: true
66 tracksRegLiveness: true
67 registers:
68   - { id: 0, class: fpr }
69   - { id: 1, class: fpr }
70   - { id: 2, class: fpr }
71 machineFunctionInfo: {}
72 body:             |
73   bb.1:
74     liveins: $d0, $d1
76     ; CHECK-LABEL: name: ashr_v2i32
77     ; CHECK: liveins: $d0, $d1
78     ; CHECK: [[COPY:%[0-9]+]]:fpr64 = COPY $d0
79     ; CHECK: [[COPY1:%[0-9]+]]:fpr64 = COPY $d1
80     ; CHECK: [[NEGv2i32_:%[0-9]+]]:fpr64 = NEGv2i32 [[COPY1]]
81     ; CHECK: [[SSHLv2i32_:%[0-9]+]]:fpr64 = SSHLv2i32 [[COPY]], [[NEGv2i32_]]
82     ; CHECK: $d0 = COPY [[SSHLv2i32_]]
83     ; CHECK: RET_ReallyLR implicit $d0
84     %0:fpr(<2 x s32>) = COPY $d0
85     %1:fpr(<2 x s32>) = COPY $d1
86     %2:fpr(<2 x s32>) = G_ASHR %0, %1(<2 x s32>)
87     $d0 = COPY %2(<2 x s32>)
88     RET_ReallyLR implicit $d0
90 ...
91 ---
92 name:            ashr_v4i32
93 alignment:       4
94 legalized:       true
95 regBankSelected: true
96 tracksRegLiveness: true
97 registers:
98   - { id: 0, class: fpr }
99   - { id: 1, class: fpr }
100   - { id: 2, class: fpr }
101 machineFunctionInfo: {}
102 body:             |
103   bb.1:
104     liveins: $q0, $q1
106     ; CHECK-LABEL: name: ashr_v4i32
107     ; CHECK: liveins: $q0, $q1
108     ; CHECK: [[COPY:%[0-9]+]]:fpr128 = COPY $q0
109     ; CHECK: [[COPY1:%[0-9]+]]:fpr128 = COPY $q1
110     ; CHECK: [[NEGv4i32_:%[0-9]+]]:fpr128 = NEGv4i32 [[COPY1]]
111     ; CHECK: [[SSHLv4i32_:%[0-9]+]]:fpr128 = SSHLv4i32 [[COPY]], [[NEGv4i32_]]
112     ; CHECK: $q0 = COPY [[SSHLv4i32_]]
113     ; CHECK: RET_ReallyLR implicit $q0
114     %0:fpr(<4 x s32>) = COPY $q0
115     %1:fpr(<4 x s32>) = COPY $q1
116     %2:fpr(<4 x s32>) = G_ASHR %0, %1(<4 x s32>)
117     $q0 = COPY %2(<4 x s32>)
118     RET_ReallyLR implicit $q0