[ARM] Split large truncating MVE stores
[llvm-complete.git] / test / CodeGen / MIR / AArch64 / parse-shufflemask.mir
blobc529d63d6b548ae67ae21d78a375ef63b610f67b
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
4 # CHECK-LABEL: name: test_shuffle_1_0
5 # CHECK: G_SHUFFLE_VECTOR %0(<2 x s32>), %1, shufflemask(1, 0)
6 ---
7 name: test_shuffle_1_0
8 tracksRegLiveness: true
9 body:             |
10   bb.0:
11     liveins: $d0
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
19 ...
21 # CHECK-LABEL: name: test_shuffle_nospace
22 # CHECK: G_SHUFFLE_VECTOR %0(<2 x s32>), %1, shufflemask(1, 0)
23 ---
24 name: test_shuffle_nospace
25 tracksRegLiveness: true
26 body:             |
27   bb.0:
28     liveins: $d0
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
36 ...
38 # CHECK-LABEL: name: test_shuffle_0_0
39 # CHECK: G_SHUFFLE_VECTOR %0(<2 x s32>), %1, shufflemask(0, 0)
40 ---
41 name: test_shuffle_0_0
42 tracksRegLiveness: true
43 body:             |
44   bb.0:
45     liveins: $d0
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
53 ...
55 # CHECK-LABEL: name: test_shuffle_1_1
56 # CHECK: G_SHUFFLE_VECTOR %0(<2 x s32>), %1, shufflemask(1, 1)
57 ---
58 name: test_shuffle_1_1
59 tracksRegLiveness: true
60 body:             |
61   bb.0:
62     liveins: $d0
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
70 ...
72 # CHECK-LABEL: name: test_shuffle_undef_undef
73 # CHECK: G_SHUFFLE_VECTOR %0(<2 x s32>), %1, shufflemask(undef, undef)
75 ---
76 name:            test_shuffle_undef_undef
77 tracksRegLiveness: true
78 body:             |
79   bb.0:
80     liveins: $d0
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
88 ...
90 # CHECK-LABEL: name: test_shuffle_undef_0
91 # CHECK: G_SHUFFLE_VECTOR %0(<2 x s32>), %1, shufflemask(undef, 0)
93 ---
94 name:            test_shuffle_undef_0
95 tracksRegLiveness: true
96 body:             |
97   bb.0:
98     liveins: $d0
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
108 # CHECK-LABEL: name: test_shuffle_0_undef
109 # CHECK: G_SHUFFLE_VECTOR %0(<2 x s32>), %1, shufflemask(0, undef)
112 name:            test_shuffle_0_undef
113 tracksRegLiveness: true
114 body:             |
115   bb.0:
116     liveins: $d0
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
126 # CHECK-LABEL: name: test_shuffle_0
127 # CHECK: G_SHUFFLE_VECTOR %0(<2 x s32>), %1, shufflemask(0)
129 name: test_shuffle_0
130 tracksRegLiveness: true
131 body:             |
132   bb.0:
133     liveins: $d0
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
143 # CHECK-LABEL: name: test_shuffle_1
144 # CHECK: G_SHUFFLE_VECTOR %0(<2 x s32>), %1, shufflemask(1)
146 name: test_shuffle_1
147 tracksRegLiveness: true
148 body:             |
149   bb.0:
150     liveins: $d0
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
160 # CHECK-LABEL: name: test_shuffle_undef
161 # CHECK: G_SHUFFLE_VECTOR %0(<2 x s32>), %1, shufflemask(undef)
163 name: test_shuffle_undef
164 tracksRegLiveness: true
165 body:             |
166   bb.0:
167     liveins: $d0
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