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