xref: /llvm-project/llvm/test/CodeGen/MIR/AArch64/parse-shufflemask.mir (revision 0a04a062500e2c6d5b92b59c545db3f45e9daffe)
1# RUN: llc -mtriple=aarch64-none-linux-gnu -run-pass none -o - %s | FileCheck %s
2# This test ensures that the MIR parser parses shufflemask correctly
3
4# CHECK-LABEL: name: test_shuffle_1_0
5# CHECK: G_SHUFFLE_VECTOR %0(<2 x s32>), %1, shufflemask(1, 0)
6---
7name: test_shuffle_1_0
8tracksRegLiveness: true
9body:             |
10  bb.0:
11    liveins: $d0
12
13    %0:_(<2 x s32>) = COPY $d0
14    %2:_(<2 x s32>) = G_IMPLICIT_DEF
15    %1:_(<2 x s32>) = G_SHUFFLE_VECTOR %0(<2 x s32>), %2, shufflemask(1, 0)
16    $d0 = COPY %1(<2 x s32>)
17    RET_ReallyLR implicit $d0
18
19...
20
21# CHECK-LABEL: name: test_shuffle_nospace
22# CHECK: G_SHUFFLE_VECTOR %0(<2 x s32>), %1, shufflemask(1, 0)
23---
24name: test_shuffle_nospace
25tracksRegLiveness: true
26body:             |
27  bb.0:
28    liveins: $d0
29
30    %0:_(<2 x s32>) = COPY $d0
31    %2:_(<2 x s32>) = G_IMPLICIT_DEF
32    %1:_(<2 x s32>) = G_SHUFFLE_VECTOR %0(<2 x s32>), %2, shufflemask(1,0)
33    $d0 = COPY %1(<2 x s32>)
34    RET_ReallyLR implicit $d0
35
36...
37
38# CHECK-LABEL: name: test_shuffle_0_0
39# CHECK: G_SHUFFLE_VECTOR %0(<2 x s32>), %1, shufflemask(0, 0)
40---
41name: test_shuffle_0_0
42tracksRegLiveness: true
43body:             |
44  bb.0:
45    liveins: $d0
46
47    %0:_(<2 x s32>) = COPY $d0
48    %2:_(<2 x s32>) = G_IMPLICIT_DEF
49    %1:_(<2 x s32>) = G_SHUFFLE_VECTOR %0(<2 x s32>), %2, shufflemask(0, 0)
50    $d0 = COPY %1(<2 x s32>)
51    RET_ReallyLR implicit $d0
52
53...
54
55# CHECK-LABEL: name: test_shuffle_1_1
56# CHECK: G_SHUFFLE_VECTOR %0(<2 x s32>), %1, shufflemask(1, 1)
57---
58name: test_shuffle_1_1
59tracksRegLiveness: true
60body:             |
61  bb.0:
62    liveins: $d0
63
64    %0:_(<2 x s32>) = COPY $d0
65    %2:_(<2 x s32>) = G_IMPLICIT_DEF
66    %1:_(<2 x s32>) = G_SHUFFLE_VECTOR %0(<2 x s32>), %2, shufflemask(1, 1)
67    $d0 = COPY %1(<2 x s32>)
68    RET_ReallyLR implicit $d0
69
70...
71
72# CHECK-LABEL: name: test_shuffle_undef_undef
73# CHECK: G_SHUFFLE_VECTOR %0(<2 x s32>), %1, shufflemask(undef, undef)
74
75---
76name:            test_shuffle_undef_undef
77tracksRegLiveness: true
78body:             |
79  bb.0:
80    liveins: $d0
81
82    %0:_(<2 x s32>) = COPY $d0
83    %2:_(<2 x s32>) = G_IMPLICIT_DEF
84    %1:_(<2 x s32>) = G_SHUFFLE_VECTOR %0(<2 x s32>), %2, shufflemask(undef, undef)
85    $d0 = COPY %1(<2 x s32>)
86    RET_ReallyLR implicit $d0
87
88...
89
90# CHECK-LABEL: name: test_shuffle_undef_0
91# CHECK: G_SHUFFLE_VECTOR %0(<2 x s32>), %1, shufflemask(undef, 0)
92
93---
94name:            test_shuffle_undef_0
95tracksRegLiveness: true
96body:             |
97  bb.0:
98    liveins: $d0
99
100    %0:_(<2 x s32>) = COPY $d0
101    %2:_(<2 x s32>) = G_IMPLICIT_DEF
102    %1:_(<2 x s32>) = G_SHUFFLE_VECTOR %0(<2 x s32>), %2, shufflemask(undef, 0)
103    $d0 = COPY %1(<2 x s32>)
104    RET_ReallyLR implicit $d0
105
106...
107
108# CHECK-LABEL: name: test_shuffle_0_undef
109# CHECK: G_SHUFFLE_VECTOR %0(<2 x s32>), %1, shufflemask(0, undef)
110
111---
112name:            test_shuffle_0_undef
113tracksRegLiveness: true
114body:             |
115  bb.0:
116    liveins: $d0
117
118    %0:_(<2 x s32>) = COPY $d0
119    %2:_(<2 x s32>) = G_IMPLICIT_DEF
120    %1:_(<2 x s32>) = G_SHUFFLE_VECTOR %0(<2 x s32>), %2, shufflemask(0, undef)
121    $d0 = COPY %1(<2 x s32>)
122    RET_ReallyLR implicit $d0
123
124...
125
126# CHECK-LABEL: name: test_shuffle_0
127# CHECK: G_SHUFFLE_VECTOR %0(<2 x s32>), %1, shufflemask(0)
128---
129name: test_shuffle_0
130tracksRegLiveness: true
131body:             |
132  bb.0:
133    liveins: $d0
134
135    %0:_(<2 x s32>) = COPY $d0
136    %2:_(<2 x s32>) = G_IMPLICIT_DEF
137    %1:_(s32) = G_SHUFFLE_VECTOR %0(<2 x s32>), %2, shufflemask(0)
138    $w0 = COPY %1
139    RET_ReallyLR implicit $w0
140
141...
142
143# CHECK-LABEL: name: test_shuffle_1
144# CHECK: G_SHUFFLE_VECTOR %0(<2 x s32>), %1, shufflemask(1)
145---
146name: test_shuffle_1
147tracksRegLiveness: true
148body:             |
149  bb.0:
150    liveins: $d0
151
152    %0:_(<2 x s32>) = COPY $d0
153    %2:_(<2 x s32>) = G_IMPLICIT_DEF
154    %1:_(s32) = G_SHUFFLE_VECTOR %0(<2 x s32>), %2, shufflemask(1)
155    $w0 = COPY %1
156    RET_ReallyLR implicit $w0
157
158...
159
160# CHECK-LABEL: name: test_shuffle_undef
161# CHECK: G_SHUFFLE_VECTOR %0(<2 x s32>), %1, shufflemask(undef)
162---
163name: test_shuffle_undef
164tracksRegLiveness: true
165body:             |
166  bb.0:
167    liveins: $d0
168
169    %0:_(<2 x s32>) = COPY $d0
170    %2:_(<2 x s32>) = G_IMPLICIT_DEF
171    %1:_(s32) = G_SHUFFLE_VECTOR %0(<2 x s32>), %2, shufflemask(undef)
172    $w0 = COPY %1
173    RET_ReallyLR implicit $w0
174
175...
176