256 lines · plain
1# NOTE: Assertions have been autogenerated by utils/update_mir_test_checks.py2# RUN: llc -mtriple=amdgcn-mesa-mesa3d -mcpu=fiji -O0 -run-pass=legalizer %s -o - | FileCheck %s3 4---5name: concat_vectors_v2s32_v2s326 7body: |8 bb.0:9 liveins: $vgpr0_vgpr1, $vgpr2_vgpr310 ; CHECK-LABEL: name: concat_vectors_v2s32_v2s3211 ; CHECK: liveins: $vgpr0_vgpr1, $vgpr2_vgpr312 ; CHECK-NEXT: {{ $}}13 ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(<2 x s32>) = COPY $vgpr0_vgpr114 ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(<2 x s32>) = COPY $vgpr2_vgpr315 ; CHECK-NEXT: [[CONCAT_VECTORS:%[0-9]+]]:_(<4 x s32>) = G_CONCAT_VECTORS [[COPY]](<2 x s32>), [[COPY1]](<2 x s32>)16 ; CHECK-NEXT: $vgpr0_vgpr1_vgpr2_vgpr3 = COPY [[CONCAT_VECTORS]](<4 x s32>)17 %0:_(<2 x s32>) = COPY $vgpr0_vgpr118 %1:_(<2 x s32>) = COPY $vgpr2_vgpr319 %2:_(<4 x s32>) = G_CONCAT_VECTORS %0, %120 $vgpr0_vgpr1_vgpr2_vgpr3 = COPY %221...22 23---24name: concat_vectors_v2s16_v2s1625 26body: |27 bb.0:28 liveins: $vgpr0, $vgpr129 ; CHECK-LABEL: name: concat_vectors_v2s16_v2s1630 ; CHECK: liveins: $vgpr0, $vgpr131 ; CHECK-NEXT: {{ $}}32 ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(<2 x s16>) = COPY $vgpr033 ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(<2 x s16>) = COPY $vgpr134 ; CHECK-NEXT: [[CONCAT_VECTORS:%[0-9]+]]:_(<4 x s16>) = G_CONCAT_VECTORS [[COPY]](<2 x s16>), [[COPY1]](<2 x s16>)35 ; CHECK-NEXT: $vgpr0_vgpr1 = COPY [[CONCAT_VECTORS]](<4 x s16>)36 %0:_(<2 x s16>) = COPY $vgpr037 %1:_(<2 x s16>) = COPY $vgpr138 %2:_(<4 x s16>) = G_CONCAT_VECTORS %0, %139 $vgpr0_vgpr1 = COPY %240...41 42---43name: concat_vectors_v2s16_v2s16_v2s16_v2s1644 45body: |46 bb.0:47 liveins: $vgpr0, $vgpr1, $vgpr2, $vgpr348 ; CHECK-LABEL: name: concat_vectors_v2s16_v2s16_v2s16_v2s1649 ; CHECK: liveins: $vgpr0, $vgpr1, $vgpr2, $vgpr350 ; CHECK-NEXT: {{ $}}51 ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(<2 x s16>) = COPY $vgpr052 ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(<2 x s16>) = COPY $vgpr153 ; CHECK-NEXT: [[COPY2:%[0-9]+]]:_(<2 x s16>) = COPY $vgpr254 ; CHECK-NEXT: [[COPY3:%[0-9]+]]:_(<2 x s16>) = COPY $vgpr355 ; CHECK-NEXT: [[CONCAT_VECTORS:%[0-9]+]]:_(<8 x s16>) = G_CONCAT_VECTORS [[COPY]](<2 x s16>), [[COPY1]](<2 x s16>), [[COPY2]](<2 x s16>), [[COPY3]](<2 x s16>)56 ; CHECK-NEXT: $vgpr0_vgpr1_vgpr2_vgpr3 = COPY [[CONCAT_VECTORS]](<8 x s16>)57 %0:_(<2 x s16>) = COPY $vgpr058 %1:_(<2 x s16>) = COPY $vgpr159 %2:_(<2 x s16>) = COPY $vgpr260 %3:_(<2 x s16>) = COPY $vgpr361 %4:_(<8 x s16>) = G_CONCAT_VECTORS %0, %1, %2, %362 $vgpr0_vgpr1_vgpr2_vgpr3 = COPY %463...64 65---66name: concat_vectors_v4s16_v4s1667 68body: |69 bb.0:70 liveins: $vgpr0_vgpr1, $vgpr2_vgpr371 ; CHECK-LABEL: name: concat_vectors_v4s16_v4s1672 ; CHECK: liveins: $vgpr0_vgpr1, $vgpr2_vgpr373 ; CHECK-NEXT: {{ $}}74 ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(<4 x s16>) = COPY $vgpr0_vgpr175 ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(<4 x s16>) = COPY $vgpr2_vgpr376 ; CHECK-NEXT: [[CONCAT_VECTORS:%[0-9]+]]:_(<8 x s16>) = G_CONCAT_VECTORS [[COPY]](<4 x s16>), [[COPY1]](<4 x s16>)77 ; CHECK-NEXT: $vgpr0_vgpr1_vgpr2_vgpr3 = COPY [[CONCAT_VECTORS]](<8 x s16>)78 %0:_(<4 x s16>) = COPY $vgpr0_vgpr179 %1:_(<4 x s16>) = COPY $vgpr2_vgpr380 %2:_(<8 x s16>) = G_CONCAT_VECTORS %0, %181 $vgpr0_vgpr1_vgpr2_vgpr3 = COPY %282...83 84---85name: concat_vectors_v4s32_v4s3286 87body: |88 bb.0:89 liveins: $vgpr0_vgpr1_vgpr2_vgpr3, $vgpr4_vgpr5_vgpr6_vgpr790 ; CHECK-LABEL: name: concat_vectors_v4s32_v4s3291 ; CHECK: liveins: $vgpr0_vgpr1_vgpr2_vgpr3, $vgpr4_vgpr5_vgpr6_vgpr792 ; CHECK-NEXT: {{ $}}93 ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(<4 x s32>) = COPY $vgpr0_vgpr1_vgpr2_vgpr394 ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(<4 x s32>) = COPY $vgpr4_vgpr5_vgpr6_vgpr795 ; CHECK-NEXT: [[CONCAT_VECTORS:%[0-9]+]]:_(<8 x s32>) = G_CONCAT_VECTORS [[COPY]](<4 x s32>), [[COPY1]](<4 x s32>)96 ; CHECK-NEXT: $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7 = COPY [[CONCAT_VECTORS]](<8 x s32>)97 %0:_(<4 x s32>) = COPY $vgpr0_vgpr1_vgpr2_vgpr3,98 %1:_(<4 x s32>) = COPY $vgpr4_vgpr5_vgpr6_vgpr799 %2:_(<8 x s32>) = G_CONCAT_VECTORS %0, %1100 $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7 = COPY %2101...102 103---104name: concat_vectors_v2s32_v2s32_v2s32_v2s32105 106body: |107 bb.0:108 liveins: $vgpr0_vgpr1, $vgpr2_vgpr3, $vgpr4_vgpr5, $vgpr6_vgpr7109 ; CHECK-LABEL: name: concat_vectors_v2s32_v2s32_v2s32_v2s32110 ; CHECK: liveins: $vgpr0_vgpr1, $vgpr2_vgpr3, $vgpr4_vgpr5, $vgpr6_vgpr7111 ; CHECK-NEXT: {{ $}}112 ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(<2 x s32>) = COPY $vgpr0_vgpr1113 ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(<2 x s32>) = COPY $vgpr2_vgpr3114 ; CHECK-NEXT: [[COPY2:%[0-9]+]]:_(<2 x s32>) = COPY $vgpr4_vgpr5115 ; CHECK-NEXT: [[COPY3:%[0-9]+]]:_(<2 x s32>) = COPY $vgpr6_vgpr7116 ; CHECK-NEXT: [[CONCAT_VECTORS:%[0-9]+]]:_(<8 x s32>) = G_CONCAT_VECTORS [[COPY]](<2 x s32>), [[COPY1]](<2 x s32>), [[COPY2]](<2 x s32>), [[COPY3]](<2 x s32>)117 ; CHECK-NEXT: $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7 = COPY [[CONCAT_VECTORS]](<8 x s32>)118 %0:_(<2 x s32>) = COPY $vgpr0_vgpr1119 %1:_(<2 x s32>) = COPY $vgpr2_vgpr3120 %2:_(<2 x s32>) = COPY $vgpr4_vgpr5121 %3:_(<2 x s32>) = COPY $vgpr6_vgpr7122 123 %4:_(<8 x s32>) = G_CONCAT_VECTORS %0, %1, %2, %3124 $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7 = COPY %4125...126---127name: concat_vectors_v2s64_v2s64128 129body: |130 bb.0:131 liveins: $vgpr0_vgpr1_vgpr2_vgpr3, $vgpr4_vgpr5_vgpr6_vgpr7132 ; CHECK-LABEL: name: concat_vectors_v2s64_v2s64133 ; CHECK: liveins: $vgpr0_vgpr1_vgpr2_vgpr3, $vgpr4_vgpr5_vgpr6_vgpr7134 ; CHECK-NEXT: {{ $}}135 ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(<2 x s64>) = COPY $vgpr0_vgpr1_vgpr2_vgpr3136 ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(<2 x s64>) = COPY $vgpr4_vgpr5_vgpr6_vgpr7137 ; CHECK-NEXT: [[CONCAT_VECTORS:%[0-9]+]]:_(<4 x s64>) = G_CONCAT_VECTORS [[COPY]](<2 x s64>), [[COPY1]](<2 x s64>)138 ; CHECK-NEXT: $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7 = COPY [[CONCAT_VECTORS]](<4 x s64>)139 %0:_(<2 x s64>) = COPY $vgpr0_vgpr1_vgpr2_vgpr3140 %1:_(<2 x s64>) = COPY $vgpr4_vgpr5_vgpr6_vgpr7141 %2:_(<4 x s64>) = G_CONCAT_VECTORS %0, %1142 $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7 = COPY %2143...144 145---146name: concat_vectors_v2p1_v2p1147 148body: |149 bb.0:150 liveins: $vgpr0_vgpr1_vgpr2_vgpr3, $vgpr4_vgpr5_vgpr6_vgpr7151 ; CHECK-LABEL: name: concat_vectors_v2p1_v2p1152 ; CHECK: liveins: $vgpr0_vgpr1_vgpr2_vgpr3, $vgpr4_vgpr5_vgpr6_vgpr7153 ; CHECK-NEXT: {{ $}}154 ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(<2 x p1>) = COPY $vgpr0_vgpr1_vgpr2_vgpr3155 ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(<2 x p1>) = COPY $vgpr4_vgpr5_vgpr6_vgpr7156 ; CHECK-NEXT: [[CONCAT_VECTORS:%[0-9]+]]:_(<4 x p1>) = G_CONCAT_VECTORS [[COPY]](<2 x p1>), [[COPY1]](<2 x p1>)157 ; CHECK-NEXT: $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7 = COPY [[CONCAT_VECTORS]](<4 x p1>)158 %0:_(<2 x p1>) = COPY $vgpr0_vgpr1_vgpr2_vgpr3159 %1:_(<2 x p1>) = COPY $vgpr4_vgpr5_vgpr6_vgpr7160 %2:_(<4 x p1>) = G_CONCAT_VECTORS %0, %1161 $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7 = COPY %2162...163 164---165name: concat_vectors_v2p0_v2p0166 167body: |168 bb.0:169 liveins: $vgpr0_vgpr1_vgpr2_vgpr3, $vgpr4_vgpr5_vgpr6_vgpr7170 ; CHECK-LABEL: name: concat_vectors_v2p0_v2p0171 ; CHECK: liveins: $vgpr0_vgpr1_vgpr2_vgpr3, $vgpr4_vgpr5_vgpr6_vgpr7172 ; CHECK-NEXT: {{ $}}173 ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(<2 x p0>) = COPY $vgpr0_vgpr1_vgpr2_vgpr3174 ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(<2 x p0>) = COPY $vgpr4_vgpr5_vgpr6_vgpr7175 ; CHECK-NEXT: [[CONCAT_VECTORS:%[0-9]+]]:_(<4 x p0>) = G_CONCAT_VECTORS [[COPY]](<2 x p0>), [[COPY1]](<2 x p0>)176 ; CHECK-NEXT: $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7 = COPY [[CONCAT_VECTORS]](<4 x p0>)177 %0:_(<2 x p0>) = COPY $vgpr0_vgpr1_vgpr2_vgpr3178 %1:_(<2 x p0>) = COPY $vgpr4_vgpr5_vgpr6_vgpr7179 %2:_(<4 x p0>) = G_CONCAT_VECTORS %0, %1180 $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7 = COPY %2181...182 183---184name: concat_vectors_v2p3_v2p3185 186body: |187 bb.0:188 liveins: $vgpr0_vgpr1, $vgpr2_vgpr3189 ; CHECK-LABEL: name: concat_vectors_v2p3_v2p3190 ; CHECK: liveins: $vgpr0_vgpr1, $vgpr2_vgpr3191 ; CHECK-NEXT: {{ $}}192 ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(<2 x p3>) = COPY $vgpr0_vgpr1193 ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(<2 x p3>) = COPY $vgpr2_vgpr3194 ; CHECK-NEXT: [[CONCAT_VECTORS:%[0-9]+]]:_(<4 x p3>) = G_CONCAT_VECTORS [[COPY]](<2 x p3>), [[COPY1]](<2 x p3>)195 ; CHECK-NEXT: $vgpr0_vgpr1_vgpr2_vgpr3 = COPY [[CONCAT_VECTORS]](<4 x p3>)196 %0:_(<2 x p3>) = COPY $vgpr0_vgpr1197 %1:_(<2 x p3>) = COPY $vgpr2_vgpr3198 %2:_(<4 x p3>) = G_CONCAT_VECTORS %0, %1199 $vgpr0_vgpr1_vgpr2_vgpr3 = COPY %2200...201 202---203name: concat_vectors_v2p5_v2p5204 205body: |206 bb.0:207 liveins: $vgpr0_vgpr1, $vgpr2_vgpr3208 ; CHECK-LABEL: name: concat_vectors_v2p5_v2p5209 ; CHECK: liveins: $vgpr0_vgpr1, $vgpr2_vgpr3210 ; CHECK-NEXT: {{ $}}211 ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(<2 x p5>) = COPY $vgpr0_vgpr1212 ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(<2 x p5>) = COPY $vgpr2_vgpr3213 ; CHECK-NEXT: [[CONCAT_VECTORS:%[0-9]+]]:_(<4 x p5>) = G_CONCAT_VECTORS [[COPY]](<2 x p5>), [[COPY1]](<2 x p5>)214 ; CHECK-NEXT: $vgpr0_vgpr1_vgpr2_vgpr3 = COPY [[CONCAT_VECTORS]](<4 x p5>)215 %0:_(<2 x p5>) = COPY $vgpr0_vgpr1216 %1:_(<2 x p5>) = COPY $vgpr2_vgpr3217 %2:_(<4 x p5>) = G_CONCAT_VECTORS %0, %1218 $vgpr0_vgpr1_vgpr2_vgpr3 = COPY %2219...220 221---222name: concat_vectors_v2p999_v2p999223 224body: |225 bb.0:226 liveins: $vgpr0_vgpr1_vgpr2_vgpr3, $vgpr4_vgpr5_vgpr6_vgpr7227 ; CHECK-LABEL: name: concat_vectors_v2p999_v2p999228 ; CHECK: liveins: $vgpr0_vgpr1_vgpr2_vgpr3, $vgpr4_vgpr5_vgpr6_vgpr7229 ; CHECK-NEXT: {{ $}}230 ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(<2 x p999>) = COPY $vgpr0_vgpr1_vgpr2_vgpr3231 ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(<2 x p999>) = COPY $vgpr4_vgpr5_vgpr6_vgpr7232 ; CHECK-NEXT: [[CONCAT_VECTORS:%[0-9]+]]:_(<4 x p999>) = G_CONCAT_VECTORS [[COPY]](<2 x p999>), [[COPY1]](<2 x p999>)233 ; CHECK-NEXT: $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7 = COPY [[CONCAT_VECTORS]](<4 x p999>)234 %0:_(<2 x p999>) = COPY $vgpr0_vgpr1_vgpr2_vgpr3235 %1:_(<2 x p999>) = COPY $vgpr4_vgpr5_vgpr6_vgpr7236 %2:_(<4 x p999>) = G_CONCAT_VECTORS %0, %1237 $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7 = COPY %2238...239 240---241name: concat_vectors_v6s16_v3s16242 243body: |244 bb.0:245 liveins: $vgpr0_vgpr1_vgpr2246 ; CHECK-LABEL: name: concat_vectors_v6s16_v3s16247 ; CHECK: liveins: $vgpr0_vgpr1_vgpr2248 ; CHECK-NEXT: {{ $}}249 ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(<6 x s16>) = COPY $vgpr0_vgpr1_vgpr2250 ; CHECK-NEXT: $vgpr0_vgpr1_vgpr2 = COPY [[COPY]](<6 x s16>)251 %0:_(<6 x s16>) = COPY $vgpr0_vgpr1_vgpr2252 %1:_(<3 x s16>), %2:_(<3 x s16>) = G_UNMERGE_VALUES %0253 %3:_(<6 x s16>) = G_CONCAT_VECTORS %1, %2254 $vgpr0_vgpr1_vgpr2 = COPY %3255...256