1# NOTE: Assertions have been autogenerated by utils/update_mir_test_checks.py 2# RUN: llc -mtriple=amdgcn-amd-amdhsa -O0 -run-pass=legalizer %s -o - | FileCheck %s 3 4--- 5name: legal_v2s32 6body: | 7 bb.0: 8 liveins: $vgpr0, $vgpr1 9 ; CHECK-LABEL: name: legal_v2s32 10 ; CHECK: [[COPY:%[0-9]+]]:_(s32) = COPY $vgpr0 11 ; CHECK: [[COPY1:%[0-9]+]]:_(s32) = COPY $vgpr1 12 ; CHECK: [[BUILD_VECTOR:%[0-9]+]]:_(<2 x s32>) = G_BUILD_VECTOR [[COPY]](s32), [[COPY1]](s32) 13 ; CHECK: S_NOP 0, implicit [[BUILD_VECTOR]](<2 x s32>) 14 %0:_(s32) = COPY $vgpr0 15 %1:_(s32) = COPY $vgpr1 16 %2:_(<2 x s32>) = G_BUILD_VECTOR %0, %1 17 S_NOP 0, implicit %2 18... 19--- 20name: legal_v3s32 21body: | 22 bb.0: 23 liveins: $vgpr0, $vgpr1, $vgpr2 24 ; CHECK-LABEL: name: legal_v3s32 25 ; CHECK: [[COPY:%[0-9]+]]:_(s32) = COPY $vgpr0 26 ; CHECK: [[COPY1:%[0-9]+]]:_(s32) = COPY $vgpr1 27 ; CHECK: [[COPY2:%[0-9]+]]:_(s32) = COPY $vgpr2 28 ; CHECK: [[BUILD_VECTOR:%[0-9]+]]:_(<3 x s32>) = G_BUILD_VECTOR [[COPY]](s32), [[COPY1]](s32), [[COPY2]](s32) 29 ; CHECK: S_NOP 0, implicit [[BUILD_VECTOR]](<3 x s32>) 30 %0:_(s32) = COPY $vgpr0 31 %1:_(s32) = COPY $vgpr1 32 %2:_(s32) = COPY $vgpr2 33 %3:_(<3 x s32>) = G_BUILD_VECTOR %0, %1, %2 34 S_NOP 0, implicit %3 35... 36--- 37name: legal_v4s32 38body: | 39 bb.0: 40 liveins: $vgpr0, $vgpr1, $vgpr2, $vgpr3 41 ; CHECK-LABEL: name: legal_v4s32 42 ; CHECK: [[COPY:%[0-9]+]]:_(s32) = COPY $vgpr0 43 ; CHECK: [[COPY1:%[0-9]+]]:_(s32) = COPY $vgpr1 44 ; CHECK: [[COPY2:%[0-9]+]]:_(s32) = COPY $vgpr2 45 ; CHECK: [[COPY3:%[0-9]+]]:_(s32) = COPY $vgpr3 46 ; CHECK: [[BUILD_VECTOR:%[0-9]+]]:_(<4 x s32>) = G_BUILD_VECTOR [[COPY]](s32), [[COPY1]](s32), [[COPY2]](s32), [[COPY3]](s32) 47 ; CHECK: S_NOP 0, implicit [[BUILD_VECTOR]](<4 x s32>) 48 %0:_(s32) = COPY $vgpr0 49 %1:_(s32) = COPY $vgpr1 50 %2:_(s32) = COPY $vgpr2 51 %3:_(s32) = COPY $vgpr3 52 %4:_(<4 x s32>) = G_BUILD_VECTOR %0, %1, %2, %3 53 S_NOP 0, implicit %4 54... 55--- 56name: legal_v5s32 57body: | 58 bb.0: 59 liveins: $vgpr0, $vgpr1, $vgpr2, $vgpr3, $vgpr4 60 ; CHECK-LABEL: name: legal_v5s32 61 ; CHECK: [[COPY:%[0-9]+]]:_(s32) = COPY $vgpr0 62 ; CHECK: [[COPY1:%[0-9]+]]:_(s32) = COPY $vgpr1 63 ; CHECK: [[COPY2:%[0-9]+]]:_(s32) = COPY $vgpr2 64 ; CHECK: [[COPY3:%[0-9]+]]:_(s32) = COPY $vgpr3 65 ; CHECK: [[COPY4:%[0-9]+]]:_(s32) = COPY $vgpr4 66 ; CHECK: [[BUILD_VECTOR:%[0-9]+]]:_(<5 x s32>) = G_BUILD_VECTOR [[COPY]](s32), [[COPY1]](s32), [[COPY2]](s32), [[COPY3]](s32), [[COPY4]](s32) 67 ; CHECK: S_NOP 0, implicit [[BUILD_VECTOR]](<5 x s32>) 68 %0:_(s32) = COPY $vgpr0 69 %1:_(s32) = COPY $vgpr1 70 %2:_(s32) = COPY $vgpr2 71 %3:_(s32) = COPY $vgpr3 72 %4:_(s32) = COPY $vgpr4 73 %5:_(<5 x s32>) = G_BUILD_VECTOR %0, %1, %2, %3, %4 74 S_NOP 0, implicit %5 75... 76--- 77name: legal_v6s32 78body: | 79 bb.0: 80 liveins: $vgpr0, $vgpr1, $vgpr2, $vgpr3, $vgpr4, $vgpr5 81 ; CHECK-LABEL: name: legal_v6s32 82 ; CHECK: [[COPY:%[0-9]+]]:_(s32) = COPY $vgpr0 83 ; CHECK: [[COPY1:%[0-9]+]]:_(s32) = COPY $vgpr1 84 ; CHECK: [[COPY2:%[0-9]+]]:_(s32) = COPY $vgpr2 85 ; CHECK: [[COPY3:%[0-9]+]]:_(s32) = COPY $vgpr3 86 ; CHECK: [[COPY4:%[0-9]+]]:_(s32) = COPY $vgpr4 87 ; CHECK: [[COPY5:%[0-9]+]]:_(s32) = COPY $vgpr5 88 ; CHECK: [[BUILD_VECTOR:%[0-9]+]]:_(<6 x s32>) = G_BUILD_VECTOR [[COPY]](s32), [[COPY1]](s32), [[COPY2]](s32), [[COPY3]](s32), [[COPY4]](s32), [[COPY5]](s32) 89 ; CHECK: S_NOP 0, implicit [[BUILD_VECTOR]](<6 x s32>) 90 %0:_(s32) = COPY $vgpr0 91 %1:_(s32) = COPY $vgpr1 92 %2:_(s32) = COPY $vgpr2 93 %3:_(s32) = COPY $vgpr3 94 %4:_(s32) = COPY $vgpr4 95 %5:_(s32) = COPY $vgpr5 96 %6:_(<6 x s32>) = G_BUILD_VECTOR %0, %1, %2, %3, %4, %5 97 S_NOP 0, implicit %6 98... 99--- 100name: legal_v7s32 101body: | 102 bb.0: 103 liveins: $vgpr0, $vgpr1, $vgpr2, $vgpr3, $vgpr4, $vgpr5, $vgpr6 104 ; CHECK-LABEL: name: legal_v7s32 105 ; CHECK: [[COPY:%[0-9]+]]:_(s32) = COPY $vgpr0 106 ; CHECK: [[COPY1:%[0-9]+]]:_(s32) = COPY $vgpr1 107 ; CHECK: [[COPY2:%[0-9]+]]:_(s32) = COPY $vgpr2 108 ; CHECK: [[COPY3:%[0-9]+]]:_(s32) = COPY $vgpr3 109 ; CHECK: [[COPY4:%[0-9]+]]:_(s32) = COPY $vgpr4 110 ; CHECK: [[COPY5:%[0-9]+]]:_(s32) = COPY $vgpr5 111 ; CHECK: [[COPY6:%[0-9]+]]:_(s32) = COPY $vgpr6 112 ; CHECK: [[BUILD_VECTOR:%[0-9]+]]:_(<7 x s32>) = G_BUILD_VECTOR [[COPY]](s32), [[COPY1]](s32), [[COPY2]](s32), [[COPY3]](s32), [[COPY4]](s32), [[COPY5]](s32), [[COPY6]](s32) 113 ; CHECK: S_NOP 0, implicit [[BUILD_VECTOR]](<7 x s32>) 114 %0:_(s32) = COPY $vgpr0 115 %1:_(s32) = COPY $vgpr1 116 %2:_(s32) = COPY $vgpr2 117 %3:_(s32) = COPY $vgpr3 118 %4:_(s32) = COPY $vgpr4 119 %5:_(s32) = COPY $vgpr5 120 %6:_(s32) = COPY $vgpr6 121 %7:_(<7 x s32>) = G_BUILD_VECTOR %0, %1, %2, %3, %4, %5, %6 122 S_NOP 0, implicit %7 123... 124--- 125name: legal_v8s32 126body: | 127 bb.0: 128 liveins: $vgpr0, $vgpr1, $vgpr2, $vgpr3, $vgpr4, $vgpr5, $vgpr6, $vgpr7 129 ; CHECK-LABEL: name: legal_v8s32 130 ; CHECK: [[COPY:%[0-9]+]]:_(s32) = COPY $vgpr0 131 ; CHECK: [[COPY1:%[0-9]+]]:_(s32) = COPY $vgpr1 132 ; CHECK: [[COPY2:%[0-9]+]]:_(s32) = COPY $vgpr2 133 ; CHECK: [[COPY3:%[0-9]+]]:_(s32) = COPY $vgpr3 134 ; CHECK: [[COPY4:%[0-9]+]]:_(s32) = COPY $vgpr4 135 ; CHECK: [[COPY5:%[0-9]+]]:_(s32) = COPY $vgpr5 136 ; CHECK: [[COPY6:%[0-9]+]]:_(s32) = COPY $vgpr6 137 ; CHECK: [[COPY7:%[0-9]+]]:_(s32) = COPY $vgpr7 138 ; CHECK: [[BUILD_VECTOR:%[0-9]+]]:_(<8 x s32>) = G_BUILD_VECTOR [[COPY]](s32), [[COPY1]](s32), [[COPY2]](s32), [[COPY3]](s32), [[COPY4]](s32), [[COPY5]](s32), [[COPY6]](s32), [[COPY7]](s32) 139 ; CHECK: S_NOP 0, implicit [[BUILD_VECTOR]](<8 x s32>) 140 %0:_(s32) = COPY $vgpr0 141 %1:_(s32) = COPY $vgpr1 142 %2:_(s32) = COPY $vgpr2 143 %3:_(s32) = COPY $vgpr3 144 %4:_(s32) = COPY $vgpr4 145 %5:_(s32) = COPY $vgpr5 146 %6:_(s32) = COPY $vgpr6 147 %7:_(s32) = COPY $vgpr7 148 %8:_(<8 x s32>) = G_BUILD_VECTOR %0, %1, %2, %3, %4, %5, %6, %7 149 S_NOP 0, implicit %8 150... 151--- 152name: legal_v9s32 153body: | 154 bb.0: 155 liveins: $vgpr0, $vgpr1, $vgpr2, $vgpr3, $vgpr4, $vgpr5, $vgpr6, $vgpr7, $vgpr8 156 ; CHECK-LABEL: name: legal_v9s32 157 ; CHECK: [[COPY:%[0-9]+]]:_(s32) = COPY $vgpr0 158 ; CHECK: [[COPY1:%[0-9]+]]:_(s32) = COPY $vgpr1 159 ; CHECK: [[COPY2:%[0-9]+]]:_(s32) = COPY $vgpr2 160 ; CHECK: [[COPY3:%[0-9]+]]:_(s32) = COPY $vgpr3 161 ; CHECK: [[COPY4:%[0-9]+]]:_(s32) = COPY $vgpr4 162 ; CHECK: [[COPY5:%[0-9]+]]:_(s32) = COPY $vgpr5 163 ; CHECK: [[COPY6:%[0-9]+]]:_(s32) = COPY $vgpr6 164 ; CHECK: [[COPY7:%[0-9]+]]:_(s32) = COPY $vgpr7 165 ; CHECK: [[COPY8:%[0-9]+]]:_(s32) = COPY $vgpr8 166 ; CHECK: [[BUILD_VECTOR:%[0-9]+]]:_(<9 x s32>) = G_BUILD_VECTOR [[COPY]](s32), [[COPY1]](s32), [[COPY2]](s32), [[COPY3]](s32), [[COPY4]](s32), [[COPY5]](s32), [[COPY6]](s32), [[COPY7]](s32), [[COPY8]](s32) 167 ; CHECK: S_NOP 0, implicit [[BUILD_VECTOR]](<9 x s32>) 168 %0:_(s32) = COPY $vgpr0 169 %1:_(s32) = COPY $vgpr1 170 %2:_(s32) = COPY $vgpr2 171 %3:_(s32) = COPY $vgpr3 172 %4:_(s32) = COPY $vgpr4 173 %5:_(s32) = COPY $vgpr5 174 %6:_(s32) = COPY $vgpr6 175 %7:_(s32) = COPY $vgpr7 176 %8:_(s32) = COPY $vgpr8 177 %9:_(<9 x s32>) = G_BUILD_VECTOR %0, %1, %2, %3, %4, %5, %6, %7, %8 178 S_NOP 0, implicit %9 179... 180--- 181name: legal_v10s32 182body: | 183 bb.0: 184 liveins: $vgpr0, $vgpr1, $vgpr2, $vgpr3, $vgpr4, $vgpr5, $vgpr6, $vgpr7, $vgpr8, $vgpr9 185 ; CHECK-LABEL: name: legal_v10s32 186 ; CHECK: [[COPY:%[0-9]+]]:_(s32) = COPY $vgpr0 187 ; CHECK: [[COPY1:%[0-9]+]]:_(s32) = COPY $vgpr1 188 ; CHECK: [[COPY2:%[0-9]+]]:_(s32) = COPY $vgpr2 189 ; CHECK: [[COPY3:%[0-9]+]]:_(s32) = COPY $vgpr3 190 ; CHECK: [[COPY4:%[0-9]+]]:_(s32) = COPY $vgpr4 191 ; CHECK: [[COPY5:%[0-9]+]]:_(s32) = COPY $vgpr5 192 ; CHECK: [[COPY6:%[0-9]+]]:_(s32) = COPY $vgpr6 193 ; CHECK: [[COPY7:%[0-9]+]]:_(s32) = COPY $vgpr7 194 ; CHECK: [[COPY8:%[0-9]+]]:_(s32) = COPY $vgpr8 195 ; CHECK: [[COPY9:%[0-9]+]]:_(s32) = COPY $vgpr9 196 ; CHECK: [[BUILD_VECTOR:%[0-9]+]]:_(<10 x s32>) = G_BUILD_VECTOR [[COPY]](s32), [[COPY1]](s32), [[COPY2]](s32), [[COPY3]](s32), [[COPY4]](s32), [[COPY5]](s32), [[COPY6]](s32), [[COPY7]](s32), [[COPY8]](s32), [[COPY9]](s32) 197 ; CHECK: S_NOP 0, implicit [[BUILD_VECTOR]](<10 x s32>) 198 %0:_(s32) = COPY $vgpr0 199 %1:_(s32) = COPY $vgpr1 200 %2:_(s32) = COPY $vgpr2 201 %3:_(s32) = COPY $vgpr3 202 %4:_(s32) = COPY $vgpr4 203 %5:_(s32) = COPY $vgpr5 204 %6:_(s32) = COPY $vgpr6 205 %7:_(s32) = COPY $vgpr7 206 %8:_(s32) = COPY $vgpr8 207 %9:_(s32) = COPY $vgpr9 208 %10:_(<10 x s32>) = G_BUILD_VECTOR %0, %1, %2, %3, %4, %5, %6, %7, %8, %9 209 S_NOP 0, implicit %10 210... 211--- 212name: legal_v11s32 213body: | 214 bb.0: 215 liveins: $vgpr0, $vgpr1, $vgpr2, $vgpr3, $vgpr4, $vgpr5, $vgpr6, $vgpr7, $vgpr8, $vgpr9, $vgpr10 216 ; CHECK-LABEL: name: legal_v11s32 217 ; CHECK: [[COPY:%[0-9]+]]:_(s32) = COPY $vgpr0 218 ; CHECK: [[COPY1:%[0-9]+]]:_(s32) = COPY $vgpr1 219 ; CHECK: [[COPY2:%[0-9]+]]:_(s32) = COPY $vgpr2 220 ; CHECK: [[COPY3:%[0-9]+]]:_(s32) = COPY $vgpr3 221 ; CHECK: [[COPY4:%[0-9]+]]:_(s32) = COPY $vgpr4 222 ; CHECK: [[COPY5:%[0-9]+]]:_(s32) = COPY $vgpr5 223 ; CHECK: [[COPY6:%[0-9]+]]:_(s32) = COPY $vgpr6 224 ; CHECK: [[COPY7:%[0-9]+]]:_(s32) = COPY $vgpr7 225 ; CHECK: [[COPY8:%[0-9]+]]:_(s32) = COPY $vgpr8 226 ; CHECK: [[COPY9:%[0-9]+]]:_(s32) = COPY $vgpr9 227 ; CHECK: [[COPY10:%[0-9]+]]:_(s32) = COPY $vgpr10 228 ; CHECK: [[BUILD_VECTOR:%[0-9]+]]:_(<11 x s32>) = G_BUILD_VECTOR [[COPY]](s32), [[COPY1]](s32), [[COPY2]](s32), [[COPY3]](s32), [[COPY4]](s32), [[COPY5]](s32), [[COPY6]](s32), [[COPY7]](s32), [[COPY8]](s32), [[COPY9]](s32), [[COPY10]](s32) 229 ; CHECK: S_NOP 0, implicit [[BUILD_VECTOR]](<11 x s32>) 230 %0:_(s32) = COPY $vgpr0 231 %1:_(s32) = COPY $vgpr1 232 %2:_(s32) = COPY $vgpr2 233 %3:_(s32) = COPY $vgpr3 234 %4:_(s32) = COPY $vgpr4 235 %5:_(s32) = COPY $vgpr5 236 %6:_(s32) = COPY $vgpr6 237 %7:_(s32) = COPY $vgpr7 238 %8:_(s32) = COPY $vgpr8 239 %9:_(s32) = COPY $vgpr9 240 %10:_(s32) = COPY $vgpr10 241 %11:_(<11 x s32>) = G_BUILD_VECTOR %0, %1, %2, %3, %4, %5, %6, %7, %8, %9, %10 242 S_NOP 0, implicit %11 243... 244--- 245name: legal_v12s32 246body: | 247 bb.0: 248 liveins: $vgpr0, $vgpr1, $vgpr2, $vgpr3, $vgpr4, $vgpr5, $vgpr6, $vgpr7, $vgpr8, $vgpr9, $vgpr10, $vgpr11 249 ; CHECK-LABEL: name: legal_v12s32 250 ; CHECK: [[COPY:%[0-9]+]]:_(s32) = COPY $vgpr0 251 ; CHECK: [[COPY1:%[0-9]+]]:_(s32) = COPY $vgpr1 252 ; CHECK: [[COPY2:%[0-9]+]]:_(s32) = COPY $vgpr2 253 ; CHECK: [[COPY3:%[0-9]+]]:_(s32) = COPY $vgpr3 254 ; CHECK: [[COPY4:%[0-9]+]]:_(s32) = COPY $vgpr4 255 ; CHECK: [[COPY5:%[0-9]+]]:_(s32) = COPY $vgpr5 256 ; CHECK: [[COPY6:%[0-9]+]]:_(s32) = COPY $vgpr6 257 ; CHECK: [[COPY7:%[0-9]+]]:_(s32) = COPY $vgpr7 258 ; CHECK: [[COPY8:%[0-9]+]]:_(s32) = COPY $vgpr8 259 ; CHECK: [[COPY9:%[0-9]+]]:_(s32) = COPY $vgpr9 260 ; CHECK: [[COPY10:%[0-9]+]]:_(s32) = COPY $vgpr10 261 ; CHECK: [[COPY11:%[0-9]+]]:_(s32) = COPY $vgpr11 262 ; CHECK: [[BUILD_VECTOR:%[0-9]+]]:_(<12 x s32>) = G_BUILD_VECTOR [[COPY]](s32), [[COPY1]](s32), [[COPY2]](s32), [[COPY3]](s32), [[COPY4]](s32), [[COPY5]](s32), [[COPY6]](s32), [[COPY7]](s32), [[COPY8]](s32), [[COPY9]](s32), [[COPY10]](s32), [[COPY11]](s32) 263 ; CHECK: S_NOP 0, implicit [[BUILD_VECTOR]](<12 x s32>) 264 %0:_(s32) = COPY $vgpr0 265 %1:_(s32) = COPY $vgpr1 266 %2:_(s32) = COPY $vgpr2 267 %3:_(s32) = COPY $vgpr3 268 %4:_(s32) = COPY $vgpr4 269 %5:_(s32) = COPY $vgpr5 270 %6:_(s32) = COPY $vgpr6 271 %7:_(s32) = COPY $vgpr7 272 %8:_(s32) = COPY $vgpr8 273 %9:_(s32) = COPY $vgpr9 274 %10:_(s32) = COPY $vgpr10 275 %11:_(s32) = COPY $vgpr11 276 %12:_(<12 x s32>) = G_BUILD_VECTOR %0, %1, %2, %3, %4, %5, %6, %7, %8, %9, %10, %11 277 S_NOP 0, implicit %12 278... 279--- 280name: legal_v13s32 281body: | 282 bb.0: 283 liveins: $vgpr0, $vgpr1, $vgpr2, $vgpr3, $vgpr4, $vgpr5, $vgpr6, $vgpr7, $vgpr8, $vgpr9, $vgpr10, $vgpr11, $vgpr12 284 ; CHECK-LABEL: name: legal_v13s32 285 ; CHECK: [[COPY:%[0-9]+]]:_(s32) = COPY $vgpr0 286 ; CHECK: [[COPY1:%[0-9]+]]:_(s32) = COPY $vgpr1 287 ; CHECK: [[COPY2:%[0-9]+]]:_(s32) = COPY $vgpr2 288 ; CHECK: [[COPY3:%[0-9]+]]:_(s32) = COPY $vgpr3 289 ; CHECK: [[COPY4:%[0-9]+]]:_(s32) = COPY $vgpr4 290 ; CHECK: [[COPY5:%[0-9]+]]:_(s32) = COPY $vgpr5 291 ; CHECK: [[COPY6:%[0-9]+]]:_(s32) = COPY $vgpr6 292 ; CHECK: [[COPY7:%[0-9]+]]:_(s32) = COPY $vgpr7 293 ; CHECK: [[COPY8:%[0-9]+]]:_(s32) = COPY $vgpr8 294 ; CHECK: [[COPY9:%[0-9]+]]:_(s32) = COPY $vgpr9 295 ; CHECK: [[COPY10:%[0-9]+]]:_(s32) = COPY $vgpr10 296 ; CHECK: [[COPY11:%[0-9]+]]:_(s32) = COPY $vgpr11 297 ; CHECK: [[COPY12:%[0-9]+]]:_(s32) = COPY $vgpr12 298 ; CHECK: [[BUILD_VECTOR:%[0-9]+]]:_(<13 x s32>) = G_BUILD_VECTOR [[COPY]](s32), [[COPY1]](s32), [[COPY2]](s32), [[COPY3]](s32), [[COPY4]](s32), [[COPY5]](s32), [[COPY6]](s32), [[COPY7]](s32), [[COPY8]](s32), [[COPY9]](s32), [[COPY10]](s32), [[COPY11]](s32), [[COPY12]](s32) 299 ; CHECK: S_NOP 0, implicit [[BUILD_VECTOR]](<13 x s32>) 300 %0:_(s32) = COPY $vgpr0 301 %1:_(s32) = COPY $vgpr1 302 %2:_(s32) = COPY $vgpr2 303 %3:_(s32) = COPY $vgpr3 304 %4:_(s32) = COPY $vgpr4 305 %5:_(s32) = COPY $vgpr5 306 %6:_(s32) = COPY $vgpr6 307 %7:_(s32) = COPY $vgpr7 308 %8:_(s32) = COPY $vgpr8 309 %9:_(s32) = COPY $vgpr9 310 %10:_(s32) = COPY $vgpr10 311 %11:_(s32) = COPY $vgpr11 312 %12:_(s32) = COPY $vgpr12 313 %13:_(<13 x s32>) = G_BUILD_VECTOR %0, %1, %2, %3, %4, %5, %6, %7, %8, %9, %10, %11, %12 314 S_NOP 0, implicit %13 315... 316--- 317name: legal_v14s32 318body: | 319 bb.0: 320 liveins: $vgpr0, $vgpr1, $vgpr2, $vgpr3, $vgpr4, $vgpr5, $vgpr6, $vgpr7, $vgpr8, $vgpr9, $vgpr10, $vgpr11, $vgpr12, $vgpr13 321 ; CHECK-LABEL: name: legal_v14s32 322 ; CHECK: [[COPY:%[0-9]+]]:_(s32) = COPY $vgpr0 323 ; CHECK: [[COPY1:%[0-9]+]]:_(s32) = COPY $vgpr1 324 ; CHECK: [[COPY2:%[0-9]+]]:_(s32) = COPY $vgpr2 325 ; CHECK: [[COPY3:%[0-9]+]]:_(s32) = COPY $vgpr3 326 ; CHECK: [[COPY4:%[0-9]+]]:_(s32) = COPY $vgpr4 327 ; CHECK: [[COPY5:%[0-9]+]]:_(s32) = COPY $vgpr5 328 ; CHECK: [[COPY6:%[0-9]+]]:_(s32) = COPY $vgpr6 329 ; CHECK: [[COPY7:%[0-9]+]]:_(s32) = COPY $vgpr7 330 ; CHECK: [[COPY8:%[0-9]+]]:_(s32) = COPY $vgpr8 331 ; CHECK: [[COPY9:%[0-9]+]]:_(s32) = COPY $vgpr9 332 ; CHECK: [[COPY10:%[0-9]+]]:_(s32) = COPY $vgpr10 333 ; CHECK: [[COPY11:%[0-9]+]]:_(s32) = COPY $vgpr11 334 ; CHECK: [[COPY12:%[0-9]+]]:_(s32) = COPY $vgpr12 335 ; CHECK: [[COPY13:%[0-9]+]]:_(s32) = COPY $vgpr13 336 ; CHECK: [[BUILD_VECTOR:%[0-9]+]]:_(<14 x s32>) = G_BUILD_VECTOR [[COPY]](s32), [[COPY1]](s32), [[COPY2]](s32), [[COPY3]](s32), [[COPY4]](s32), [[COPY5]](s32), [[COPY6]](s32), [[COPY7]](s32), [[COPY8]](s32), [[COPY9]](s32), [[COPY10]](s32), [[COPY11]](s32), [[COPY12]](s32), [[COPY13]](s32) 337 ; CHECK: S_NOP 0, implicit [[BUILD_VECTOR]](<14 x s32>) 338 %0:_(s32) = COPY $vgpr0 339 %1:_(s32) = COPY $vgpr1 340 %2:_(s32) = COPY $vgpr2 341 %3:_(s32) = COPY $vgpr3 342 %4:_(s32) = COPY $vgpr4 343 %5:_(s32) = COPY $vgpr5 344 %6:_(s32) = COPY $vgpr6 345 %7:_(s32) = COPY $vgpr7 346 %8:_(s32) = COPY $vgpr8 347 %9:_(s32) = COPY $vgpr9 348 %10:_(s32) = COPY $vgpr10 349 %11:_(s32) = COPY $vgpr11 350 %12:_(s32) = COPY $vgpr12 351 %13:_(s32) = COPY $vgpr13 352 %14:_(<14 x s32>) = G_BUILD_VECTOR %0, %1, %2, %3, %4, %5, %6, %7, %8, %9, %10, %11, %12, %13 353 S_NOP 0, implicit %14 354... 355--- 356name: legal_v15s32 357body: | 358 bb.0: 359 liveins: $vgpr0, $vgpr1, $vgpr2, $vgpr3, $vgpr4, $vgpr5, $vgpr6, $vgpr7, $vgpr8, $vgpr9, $vgpr10, $vgpr11, $vgpr12, $vgpr13, $vgpr14 360 ; CHECK-LABEL: name: legal_v15s32 361 ; CHECK: [[COPY:%[0-9]+]]:_(s32) = COPY $vgpr0 362 ; CHECK: [[COPY1:%[0-9]+]]:_(s32) = COPY $vgpr1 363 ; CHECK: [[COPY2:%[0-9]+]]:_(s32) = COPY $vgpr2 364 ; CHECK: [[COPY3:%[0-9]+]]:_(s32) = COPY $vgpr3 365 ; CHECK: [[COPY4:%[0-9]+]]:_(s32) = COPY $vgpr4 366 ; CHECK: [[COPY5:%[0-9]+]]:_(s32) = COPY $vgpr5 367 ; CHECK: [[COPY6:%[0-9]+]]:_(s32) = COPY $vgpr6 368 ; CHECK: [[COPY7:%[0-9]+]]:_(s32) = COPY $vgpr7 369 ; CHECK: [[COPY8:%[0-9]+]]:_(s32) = COPY $vgpr8 370 ; CHECK: [[COPY9:%[0-9]+]]:_(s32) = COPY $vgpr9 371 ; CHECK: [[COPY10:%[0-9]+]]:_(s32) = COPY $vgpr10 372 ; CHECK: [[COPY11:%[0-9]+]]:_(s32) = COPY $vgpr11 373 ; CHECK: [[COPY12:%[0-9]+]]:_(s32) = COPY $vgpr12 374 ; CHECK: [[COPY13:%[0-9]+]]:_(s32) = COPY $vgpr13 375 ; CHECK: [[COPY14:%[0-9]+]]:_(s32) = COPY $vgpr14 376 ; CHECK: [[BUILD_VECTOR:%[0-9]+]]:_(<15 x s32>) = G_BUILD_VECTOR [[COPY]](s32), [[COPY1]](s32), [[COPY2]](s32), [[COPY3]](s32), [[COPY4]](s32), [[COPY5]](s32), [[COPY6]](s32), [[COPY7]](s32), [[COPY8]](s32), [[COPY9]](s32), [[COPY10]](s32), [[COPY11]](s32), [[COPY12]](s32), [[COPY13]](s32), [[COPY14]](s32) 377 ; CHECK: S_NOP 0, implicit [[BUILD_VECTOR]](<15 x s32>) 378 %0:_(s32) = COPY $vgpr0 379 %1:_(s32) = COPY $vgpr1 380 %2:_(s32) = COPY $vgpr2 381 %3:_(s32) = COPY $vgpr3 382 %4:_(s32) = COPY $vgpr4 383 %5:_(s32) = COPY $vgpr5 384 %6:_(s32) = COPY $vgpr6 385 %7:_(s32) = COPY $vgpr7 386 %8:_(s32) = COPY $vgpr8 387 %9:_(s32) = COPY $vgpr9 388 %10:_(s32) = COPY $vgpr10 389 %11:_(s32) = COPY $vgpr11 390 %12:_(s32) = COPY $vgpr12 391 %13:_(s32) = COPY $vgpr13 392 %14:_(s32) = COPY $vgpr14 393 %15:_(<15 x s32>) = G_BUILD_VECTOR %0, %1, %2, %3, %4, %5, %6, %7, %8, %9, %10, %11, %12, %13, %14 394 S_NOP 0, implicit %15 395... 396--- 397name: legal_v16s32 398body: | 399 bb.0: 400 liveins: $vgpr0, $vgpr1, $vgpr2, $vgpr3, $vgpr4, $vgpr5, $vgpr6, $vgpr7, $vgpr8, $vgpr9, $vgpr10, $vgpr11, $vgpr12, $vgpr13, $vgpr14, $vgpr15 401 ; CHECK-LABEL: name: legal_v16s32 402 ; CHECK: [[COPY:%[0-9]+]]:_(s32) = COPY $vgpr0 403 ; CHECK: [[COPY1:%[0-9]+]]:_(s32) = COPY $vgpr1 404 ; CHECK: [[COPY2:%[0-9]+]]:_(s32) = COPY $vgpr2 405 ; CHECK: [[COPY3:%[0-9]+]]:_(s32) = COPY $vgpr3 406 ; CHECK: [[COPY4:%[0-9]+]]:_(s32) = COPY $vgpr4 407 ; CHECK: [[COPY5:%[0-9]+]]:_(s32) = COPY $vgpr5 408 ; CHECK: [[COPY6:%[0-9]+]]:_(s32) = COPY $vgpr6 409 ; CHECK: [[COPY7:%[0-9]+]]:_(s32) = COPY $vgpr7 410 ; CHECK: [[COPY8:%[0-9]+]]:_(s32) = COPY $vgpr8 411 ; CHECK: [[COPY9:%[0-9]+]]:_(s32) = COPY $vgpr9 412 ; CHECK: [[COPY10:%[0-9]+]]:_(s32) = COPY $vgpr10 413 ; CHECK: [[COPY11:%[0-9]+]]:_(s32) = COPY $vgpr11 414 ; CHECK: [[COPY12:%[0-9]+]]:_(s32) = COPY $vgpr12 415 ; CHECK: [[COPY13:%[0-9]+]]:_(s32) = COPY $vgpr13 416 ; CHECK: [[COPY14:%[0-9]+]]:_(s32) = COPY $vgpr14 417 ; CHECK: [[COPY15:%[0-9]+]]:_(s32) = COPY $vgpr15 418 ; CHECK: [[BUILD_VECTOR:%[0-9]+]]:_(<16 x s32>) = G_BUILD_VECTOR [[COPY]](s32), [[COPY1]](s32), [[COPY2]](s32), [[COPY3]](s32), [[COPY4]](s32), [[COPY5]](s32), [[COPY6]](s32), [[COPY7]](s32), [[COPY8]](s32), [[COPY9]](s32), [[COPY10]](s32), [[COPY11]](s32), [[COPY12]](s32), [[COPY13]](s32), [[COPY14]](s32), [[COPY15]](s32) 419 ; CHECK: S_NOP 0, implicit [[BUILD_VECTOR]](<16 x s32>) 420 %0:_(s32) = COPY $vgpr0 421 %1:_(s32) = COPY $vgpr1 422 %2:_(s32) = COPY $vgpr2 423 %3:_(s32) = COPY $vgpr3 424 %4:_(s32) = COPY $vgpr4 425 %5:_(s32) = COPY $vgpr5 426 %6:_(s32) = COPY $vgpr6 427 %7:_(s32) = COPY $vgpr7 428 %8:_(s32) = COPY $vgpr8 429 %9:_(s32) = COPY $vgpr9 430 %10:_(s32) = COPY $vgpr10 431 %11:_(s32) = COPY $vgpr11 432 %12:_(s32) = COPY $vgpr12 433 %13:_(s32) = COPY $vgpr13 434 %14:_(s32) = COPY $vgpr14 435 %15:_(s32) = COPY $vgpr15 436 %16:_(<16 x s32>) = G_BUILD_VECTOR %0, %1, %2, %3, %4, %5, %6, %7, %8, %9, %10, %11, %12, %13, %14, %15 437 S_NOP 0, implicit %16 438... 439--- 440name: legal_v32s32 441body: | 442 bb.0: 443 liveins: $vgpr0, $vgpr1, $vgpr2, $vgpr3, $vgpr4, $vgpr5, $vgpr6, $vgpr7, $vgpr8, $vgpr9, $vgpr10, $vgpr11, $vgpr12, $vgpr13, $vgpr14, $vgpr15, $vgpr16, $vgpr17, $vgpr18, $vgpr19, $vgpr20, $vgpr21, $vgpr22, $vgpr23, $vgpr24, $vgpr25, $vgpr26, $vgpr27, $vgpr28, $vgpr29, $vgpr30, $vgpr31 444 ; CHECK-LABEL: name: legal_v32s32 445 ; CHECK: [[COPY:%[0-9]+]]:_(s32) = COPY $vgpr0 446 ; CHECK: [[COPY1:%[0-9]+]]:_(s32) = COPY $vgpr1 447 ; CHECK: [[COPY2:%[0-9]+]]:_(s32) = COPY $vgpr2 448 ; CHECK: [[COPY3:%[0-9]+]]:_(s32) = COPY $vgpr3 449 ; CHECK: [[COPY4:%[0-9]+]]:_(s32) = COPY $vgpr4 450 ; CHECK: [[COPY5:%[0-9]+]]:_(s32) = COPY $vgpr5 451 ; CHECK: [[COPY6:%[0-9]+]]:_(s32) = COPY $vgpr6 452 ; CHECK: [[COPY7:%[0-9]+]]:_(s32) = COPY $vgpr7 453 ; CHECK: [[COPY8:%[0-9]+]]:_(s32) = COPY $vgpr8 454 ; CHECK: [[COPY9:%[0-9]+]]:_(s32) = COPY $vgpr9 455 ; CHECK: [[COPY10:%[0-9]+]]:_(s32) = COPY $vgpr10 456 ; CHECK: [[COPY11:%[0-9]+]]:_(s32) = COPY $vgpr11 457 ; CHECK: [[COPY12:%[0-9]+]]:_(s32) = COPY $vgpr12 458 ; CHECK: [[COPY13:%[0-9]+]]:_(s32) = COPY $vgpr13 459 ; CHECK: [[COPY14:%[0-9]+]]:_(s32) = COPY $vgpr14 460 ; CHECK: [[COPY15:%[0-9]+]]:_(s32) = COPY $vgpr15 461 ; CHECK: [[COPY16:%[0-9]+]]:_(s32) = COPY $vgpr16 462 ; CHECK: [[COPY17:%[0-9]+]]:_(s32) = COPY $vgpr17 463 ; CHECK: [[COPY18:%[0-9]+]]:_(s32) = COPY $vgpr18 464 ; CHECK: [[COPY19:%[0-9]+]]:_(s32) = COPY $vgpr19 465 ; CHECK: [[COPY20:%[0-9]+]]:_(s32) = COPY $vgpr20 466 ; CHECK: [[COPY21:%[0-9]+]]:_(s32) = COPY $vgpr21 467 ; CHECK: [[COPY22:%[0-9]+]]:_(s32) = COPY $vgpr22 468 ; CHECK: [[COPY23:%[0-9]+]]:_(s32) = COPY $vgpr23 469 ; CHECK: [[COPY24:%[0-9]+]]:_(s32) = COPY $vgpr24 470 ; CHECK: [[COPY25:%[0-9]+]]:_(s32) = COPY $vgpr25 471 ; CHECK: [[COPY26:%[0-9]+]]:_(s32) = COPY $vgpr26 472 ; CHECK: [[COPY27:%[0-9]+]]:_(s32) = COPY $vgpr27 473 ; CHECK: [[COPY28:%[0-9]+]]:_(s32) = COPY $vgpr28 474 ; CHECK: [[COPY29:%[0-9]+]]:_(s32) = COPY $vgpr29 475 ; CHECK: [[COPY30:%[0-9]+]]:_(s32) = COPY $vgpr30 476 ; CHECK: [[COPY31:%[0-9]+]]:_(s32) = COPY $vgpr31 477 ; CHECK: [[BUILD_VECTOR:%[0-9]+]]:_(<32 x s32>) = G_BUILD_VECTOR [[COPY]](s32), [[COPY1]](s32), [[COPY2]](s32), [[COPY3]](s32), [[COPY4]](s32), [[COPY5]](s32), [[COPY6]](s32), [[COPY7]](s32), [[COPY8]](s32), [[COPY9]](s32), [[COPY10]](s32), [[COPY11]](s32), [[COPY12]](s32), [[COPY13]](s32), [[COPY14]](s32), [[COPY15]](s32), [[COPY16]](s32), [[COPY17]](s32), [[COPY18]](s32), [[COPY19]](s32), [[COPY20]](s32), [[COPY21]](s32), [[COPY22]](s32), [[COPY23]](s32), [[COPY24]](s32), [[COPY25]](s32), [[COPY26]](s32), [[COPY27]](s32), [[COPY28]](s32), [[COPY29]](s32), [[COPY30]](s32), [[COPY31]](s32) 478 ; CHECK: S_NOP 0, implicit [[BUILD_VECTOR]](<32 x s32>) 479 %0:_(s32) = COPY $vgpr0 480 %1:_(s32) = COPY $vgpr1 481 %2:_(s32) = COPY $vgpr2 482 %3:_(s32) = COPY $vgpr3 483 %4:_(s32) = COPY $vgpr4 484 %5:_(s32) = COPY $vgpr5 485 %6:_(s32) = COPY $vgpr6 486 %7:_(s32) = COPY $vgpr7 487 %8:_(s32) = COPY $vgpr8 488 %9:_(s32) = COPY $vgpr9 489 %10:_(s32) = COPY $vgpr10 490 %11:_(s32) = COPY $vgpr11 491 %12:_(s32) = COPY $vgpr12 492 %13:_(s32) = COPY $vgpr13 493 %14:_(s32) = COPY $vgpr14 494 %15:_(s32) = COPY $vgpr15 495 %16:_(s32) = COPY $vgpr16 496 %17:_(s32) = COPY $vgpr17 497 %18:_(s32) = COPY $vgpr18 498 %19:_(s32) = COPY $vgpr19 499 %20:_(s32) = COPY $vgpr20 500 %21:_(s32) = COPY $vgpr21 501 %22:_(s32) = COPY $vgpr22 502 %23:_(s32) = COPY $vgpr23 503 %24:_(s32) = COPY $vgpr24 504 %25:_(s32) = COPY $vgpr25 505 %26:_(s32) = COPY $vgpr26 506 %27:_(s32) = COPY $vgpr27 507 %28:_(s32) = COPY $vgpr28 508 %29:_(s32) = COPY $vgpr29 509 %30:_(s32) = COPY $vgpr30 510 %31:_(s32) = COPY $vgpr31 511 %32:_(<32 x s32>) = G_BUILD_VECTOR %0, %1, %2, %3, %4, %5, %6, %7, %8, %9, %10, %11, %12, %13, %14, %15, %16, %17, %18, %19, %20, %21, %22, %23, %24, %25, %26, %27, %28, %29, %30, %31 512 S_NOP 0, implicit %32 513... 514--- 515name: legal_v2s64 516body: | 517 bb.0: 518 liveins: $vgpr0_vgpr1, $vgpr2_vgpr3 519 ; CHECK-LABEL: name: legal_v2s64 520 ; CHECK: [[COPY:%[0-9]+]]:_(s64) = COPY $vgpr0_vgpr1 521 ; CHECK: [[COPY1:%[0-9]+]]:_(s64) = COPY $vgpr2_vgpr3 522 ; CHECK: [[BUILD_VECTOR:%[0-9]+]]:_(<2 x s64>) = G_BUILD_VECTOR [[COPY]](s64), [[COPY1]](s64) 523 ; CHECK: S_NOP 0, implicit [[BUILD_VECTOR]](<2 x s64>) 524 %0:_(s64) = COPY $vgpr0_vgpr1 525 %1:_(s64) = COPY $vgpr2_vgpr3 526 %2:_(<2 x s64>) = G_BUILD_VECTOR %0, %1 527 S_NOP 0, implicit %2 528... 529--- 530name: legal_v3s64 531body: | 532 bb.0: 533 liveins: $vgpr0_vgpr1, $vgpr2_vgpr3, $vgpr4_vgpr5 534 ; CHECK-LABEL: name: legal_v3s64 535 ; CHECK: [[COPY:%[0-9]+]]:_(s64) = COPY $vgpr0_vgpr1 536 ; CHECK: [[COPY1:%[0-9]+]]:_(s64) = COPY $vgpr2_vgpr3 537 ; CHECK: [[COPY2:%[0-9]+]]:_(s64) = COPY $vgpr4_vgpr5 538 ; CHECK: [[BUILD_VECTOR:%[0-9]+]]:_(<3 x s64>) = G_BUILD_VECTOR [[COPY]](s64), [[COPY1]](s64), [[COPY2]](s64) 539 ; CHECK: S_NOP 0, implicit [[BUILD_VECTOR]](<3 x s64>) 540 %0:_(s64) = COPY $vgpr0_vgpr1 541 %1:_(s64) = COPY $vgpr2_vgpr3 542 %2:_(s64) = COPY $vgpr4_vgpr5 543 %3:_(<3 x s64>) = G_BUILD_VECTOR %0, %1, %2 544 S_NOP 0, implicit %3 545... 546--- 547name: legal_v4s64 548body: | 549 bb.0: 550 liveins: $vgpr0_vgpr1, $vgpr2_vgpr3, $vgpr4_vgpr5, $vgpr6_vgpr7 551 ; CHECK-LABEL: name: legal_v4s64 552 ; CHECK: [[COPY:%[0-9]+]]:_(s64) = COPY $vgpr0_vgpr1 553 ; CHECK: [[COPY1:%[0-9]+]]:_(s64) = COPY $vgpr2_vgpr3 554 ; CHECK: [[COPY2:%[0-9]+]]:_(s64) = COPY $vgpr4_vgpr5 555 ; CHECK: [[COPY3:%[0-9]+]]:_(s64) = COPY $vgpr6_vgpr7 556 ; CHECK: [[BUILD_VECTOR:%[0-9]+]]:_(<4 x s64>) = G_BUILD_VECTOR [[COPY]](s64), [[COPY1]](s64), [[COPY2]](s64), [[COPY3]](s64) 557 ; CHECK: S_NOP 0, implicit [[BUILD_VECTOR]](<4 x s64>) 558 %0:_(s64) = COPY $vgpr0_vgpr1 559 %1:_(s64) = COPY $vgpr2_vgpr3 560 %2:_(s64) = COPY $vgpr4_vgpr5 561 %3:_(s64) = COPY $vgpr6_vgpr7 562 %4:_(<4 x s64>) = G_BUILD_VECTOR %0, %1, %2, %3 563 S_NOP 0, implicit %4 564... 565--- 566name: legal_v5s64 567body: | 568 bb.0: 569 liveins: $vgpr0_vgpr1, $vgpr2_vgpr3, $vgpr4_vgpr5, $vgpr6_vgpr7, $vgpr8_vgpr9 570 ; CHECK-LABEL: name: legal_v5s64 571 ; CHECK: [[COPY:%[0-9]+]]:_(s64) = COPY $vgpr0_vgpr1 572 ; CHECK: [[COPY1:%[0-9]+]]:_(s64) = COPY $vgpr2_vgpr3 573 ; CHECK: [[COPY2:%[0-9]+]]:_(s64) = COPY $vgpr4_vgpr5 574 ; CHECK: [[COPY3:%[0-9]+]]:_(s64) = COPY $vgpr6_vgpr7 575 ; CHECK: [[COPY4:%[0-9]+]]:_(s64) = COPY $vgpr8_vgpr9 576 ; CHECK: [[BUILD_VECTOR:%[0-9]+]]:_(<5 x s64>) = G_BUILD_VECTOR [[COPY]](s64), [[COPY1]](s64), [[COPY2]](s64), [[COPY3]](s64), [[COPY4]](s64) 577 ; CHECK: S_NOP 0, implicit [[BUILD_VECTOR]](<5 x s64>) 578 %0:_(s64) = COPY $vgpr0_vgpr1 579 %1:_(s64) = COPY $vgpr2_vgpr3 580 %2:_(s64) = COPY $vgpr4_vgpr5 581 %3:_(s64) = COPY $vgpr6_vgpr7 582 %4:_(s64) = COPY $vgpr8_vgpr9 583 %5:_(<5 x s64>) = G_BUILD_VECTOR %0, %1, %2, %3, %4 584 S_NOP 0, implicit %5 585... 586--- 587name: legal_v6s64 588body: | 589 bb.0: 590 liveins: $vgpr0_vgpr1, $vgpr2_vgpr3, $vgpr4_vgpr5, $vgpr6_vgpr7, $vgpr8_vgpr9, $vgpr10_vgpr11 591 ; CHECK-LABEL: name: legal_v6s64 592 ; CHECK: [[COPY:%[0-9]+]]:_(s64) = COPY $vgpr0_vgpr1 593 ; CHECK: [[COPY1:%[0-9]+]]:_(s64) = COPY $vgpr2_vgpr3 594 ; CHECK: [[COPY2:%[0-9]+]]:_(s64) = COPY $vgpr4_vgpr5 595 ; CHECK: [[COPY3:%[0-9]+]]:_(s64) = COPY $vgpr6_vgpr7 596 ; CHECK: [[COPY4:%[0-9]+]]:_(s64) = COPY $vgpr8_vgpr9 597 ; CHECK: [[COPY5:%[0-9]+]]:_(s64) = COPY $vgpr10_vgpr11 598 ; CHECK: [[BUILD_VECTOR:%[0-9]+]]:_(<6 x s64>) = G_BUILD_VECTOR [[COPY]](s64), [[COPY1]](s64), [[COPY2]](s64), [[COPY3]](s64), [[COPY4]](s64), [[COPY5]](s64) 599 ; CHECK: S_NOP 0, implicit [[BUILD_VECTOR]](<6 x s64>) 600 %0:_(s64) = COPY $vgpr0_vgpr1 601 %1:_(s64) = COPY $vgpr2_vgpr3 602 %2:_(s64) = COPY $vgpr4_vgpr5 603 %3:_(s64) = COPY $vgpr6_vgpr7 604 %4:_(s64) = COPY $vgpr8_vgpr9 605 %5:_(s64) = COPY $vgpr10_vgpr11 606 %6:_(<6 x s64>) = G_BUILD_VECTOR %0, %1, %2, %3, %4, %5 607 S_NOP 0, implicit %6 608... 609--- 610name: legal_v7s64 611body: | 612 bb.0: 613 liveins: $vgpr0_vgpr1, $vgpr2_vgpr3, $vgpr4_vgpr5, $vgpr6_vgpr7, $vgpr8_vgpr9, $vgpr10_vgpr11, $vgpr12_vgpr13 614 ; CHECK-LABEL: name: legal_v7s64 615 ; CHECK: [[COPY:%[0-9]+]]:_(s64) = COPY $vgpr0_vgpr1 616 ; CHECK: [[COPY1:%[0-9]+]]:_(s64) = COPY $vgpr2_vgpr3 617 ; CHECK: [[COPY2:%[0-9]+]]:_(s64) = COPY $vgpr4_vgpr5 618 ; CHECK: [[COPY3:%[0-9]+]]:_(s64) = COPY $vgpr6_vgpr7 619 ; CHECK: [[COPY4:%[0-9]+]]:_(s64) = COPY $vgpr8_vgpr9 620 ; CHECK: [[COPY5:%[0-9]+]]:_(s64) = COPY $vgpr10_vgpr11 621 ; CHECK: [[COPY6:%[0-9]+]]:_(s64) = COPY $vgpr12_vgpr13 622 ; CHECK: [[BUILD_VECTOR:%[0-9]+]]:_(<7 x s64>) = G_BUILD_VECTOR [[COPY]](s64), [[COPY1]](s64), [[COPY2]](s64), [[COPY3]](s64), [[COPY4]](s64), [[COPY5]](s64), [[COPY6]](s64) 623 ; CHECK: S_NOP 0, implicit [[BUILD_VECTOR]](<7 x s64>) 624 %0:_(s64) = COPY $vgpr0_vgpr1 625 %1:_(s64) = COPY $vgpr2_vgpr3 626 %2:_(s64) = COPY $vgpr4_vgpr5 627 %3:_(s64) = COPY $vgpr6_vgpr7 628 %4:_(s64) = COPY $vgpr8_vgpr9 629 %5:_(s64) = COPY $vgpr10_vgpr11 630 %6:_(s64) = COPY $vgpr12_vgpr13 631 %7:_(<7 x s64>) = G_BUILD_VECTOR %0, %1, %2, %3, %4, %5, %6 632 S_NOP 0, implicit %7 633... 634--- 635name: legal_v8s64 636body: | 637 bb.0: 638 liveins: $vgpr0_vgpr1, $vgpr2_vgpr3, $vgpr4_vgpr5, $vgpr6_vgpr7, $vgpr8_vgpr9, $vgpr10_vgpr11, $vgpr12_vgpr13, $vgpr14_vgpr15 639 ; CHECK-LABEL: name: legal_v8s64 640 ; CHECK: [[COPY:%[0-9]+]]:_(s64) = COPY $vgpr0_vgpr1 641 ; CHECK: [[COPY1:%[0-9]+]]:_(s64) = COPY $vgpr2_vgpr3 642 ; CHECK: [[COPY2:%[0-9]+]]:_(s64) = COPY $vgpr4_vgpr5 643 ; CHECK: [[COPY3:%[0-9]+]]:_(s64) = COPY $vgpr6_vgpr7 644 ; CHECK: [[COPY4:%[0-9]+]]:_(s64) = COPY $vgpr8_vgpr9 645 ; CHECK: [[COPY5:%[0-9]+]]:_(s64) = COPY $vgpr10_vgpr11 646 ; CHECK: [[COPY6:%[0-9]+]]:_(s64) = COPY $vgpr12_vgpr13 647 ; CHECK: [[COPY7:%[0-9]+]]:_(s64) = COPY $vgpr14_vgpr15 648 ; CHECK: [[BUILD_VECTOR:%[0-9]+]]:_(<8 x s64>) = G_BUILD_VECTOR [[COPY]](s64), [[COPY1]](s64), [[COPY2]](s64), [[COPY3]](s64), [[COPY4]](s64), [[COPY5]](s64), [[COPY6]](s64), [[COPY7]](s64) 649 ; CHECK: S_NOP 0, implicit [[BUILD_VECTOR]](<8 x s64>) 650 %0:_(s64) = COPY $vgpr0_vgpr1 651 %1:_(s64) = COPY $vgpr2_vgpr3 652 %2:_(s64) = COPY $vgpr4_vgpr5 653 %3:_(s64) = COPY $vgpr6_vgpr7 654 %4:_(s64) = COPY $vgpr8_vgpr9 655 %5:_(s64) = COPY $vgpr10_vgpr11 656 %6:_(s64) = COPY $vgpr12_vgpr13 657 %7:_(s64) = COPY $vgpr14_vgpr15 658 %8:_(<8 x s64>) = G_BUILD_VECTOR %0, %1, %2, %3, %4, %5, %6, %7 659 S_NOP 0, implicit %8 660... 661 662--- 663name: legal_v16s64 664body: | 665 bb.0: 666 liveins: $vgpr0_vgpr1, $vgpr2_vgpr3, $vgpr4_vgpr5, $vgpr6_vgpr7, $vgpr8_vgpr9, $vgpr10_vgpr11, $vgpr12_vgpr13, $vgpr14_vgpr15, $vgpr16_vgpr17, $vgpr18_vgpr19, $vgpr20_vgpr21, $vgpr22_vgpr23, $vgpr24_vgpr25, $vgpr26_vgpr27, $vgpr28_vgpr29, $vgpr30_vgpr31 667 ; CHECK-LABEL: name: legal_v16s64 668 ; CHECK: [[COPY:%[0-9]+]]:_(s64) = COPY $vgpr0_vgpr1 669 ; CHECK: [[COPY1:%[0-9]+]]:_(s64) = COPY $vgpr2_vgpr3 670 ; CHECK: [[COPY2:%[0-9]+]]:_(s64) = COPY $vgpr4_vgpr5 671 ; CHECK: [[COPY3:%[0-9]+]]:_(s64) = COPY $vgpr6_vgpr7 672 ; CHECK: [[COPY4:%[0-9]+]]:_(s64) = COPY $vgpr8_vgpr9 673 ; CHECK: [[COPY5:%[0-9]+]]:_(s64) = COPY $vgpr10_vgpr11 674 ; CHECK: [[COPY6:%[0-9]+]]:_(s64) = COPY $vgpr12_vgpr13 675 ; CHECK: [[COPY7:%[0-9]+]]:_(s64) = COPY $vgpr14_vgpr15 676 ; CHECK: [[COPY8:%[0-9]+]]:_(s64) = COPY $vgpr16_vgpr17 677 ; CHECK: [[COPY9:%[0-9]+]]:_(s64) = COPY $vgpr18_vgpr19 678 ; CHECK: [[COPY10:%[0-9]+]]:_(s64) = COPY $vgpr20_vgpr21 679 ; CHECK: [[COPY11:%[0-9]+]]:_(s64) = COPY $vgpr22_vgpr23 680 ; CHECK: [[COPY12:%[0-9]+]]:_(s64) = COPY $vgpr24_vgpr25 681 ; CHECK: [[COPY13:%[0-9]+]]:_(s64) = COPY $vgpr26_vgpr27 682 ; CHECK: [[COPY14:%[0-9]+]]:_(s64) = COPY $vgpr28_vgpr29 683 ; CHECK: [[COPY15:%[0-9]+]]:_(s64) = COPY $vgpr30_vgpr31 684 ; CHECK: [[BUILD_VECTOR:%[0-9]+]]:_(<16 x s64>) = G_BUILD_VECTOR [[COPY]](s64), [[COPY1]](s64), [[COPY2]](s64), [[COPY3]](s64), [[COPY4]](s64), [[COPY5]](s64), [[COPY6]](s64), [[COPY7]](s64), [[COPY8]](s64), [[COPY9]](s64), [[COPY10]](s64), [[COPY11]](s64), [[COPY12]](s64), [[COPY13]](s64), [[COPY14]](s64), [[COPY15]](s64) 685 ; CHECK: S_NOP 0, implicit [[BUILD_VECTOR]](<16 x s64>) 686 %0:_(s64) = COPY $vgpr0_vgpr1 687 %1:_(s64) = COPY $vgpr2_vgpr3 688 %2:_(s64) = COPY $vgpr4_vgpr5 689 %3:_(s64) = COPY $vgpr6_vgpr7 690 %4:_(s64) = COPY $vgpr8_vgpr9 691 %5:_(s64) = COPY $vgpr10_vgpr11 692 %6:_(s64) = COPY $vgpr12_vgpr13 693 %7:_(s64) = COPY $vgpr14_vgpr15 694 %8:_(s64) = COPY $vgpr16_vgpr17 695 %9:_(s64) = COPY $vgpr18_vgpr19 696 %10:_(s64) = COPY $vgpr20_vgpr21 697 %11:_(s64) = COPY $vgpr22_vgpr23 698 %12:_(s64) = COPY $vgpr24_vgpr25 699 %13:_(s64) = COPY $vgpr26_vgpr27 700 %14:_(s64) = COPY $vgpr28_vgpr29 701 %15:_(s64) = COPY $vgpr30_vgpr31 702 %16:_(<16 x s64>) = G_BUILD_VECTOR %0, %1, %2, %3, %4, %5, %6, %7, %8, %9, %10, %11, %12, %13, %14, %15 703 S_NOP 0, implicit %16 704... 705 706--- 707name: legal_v2s128 708body: | 709 bb.0: 710 liveins: $vgpr0_vgpr1_vgpr2_vgpr3, $vgpr4_vgpr5_vgpr6_vgpr7 711 712 ; CHECK-LABEL: name: legal_v2s128 713 ; CHECK: [[COPY:%[0-9]+]]:_(s128) = COPY $vgpr0_vgpr1_vgpr2_vgpr3 714 ; CHECK: [[COPY1:%[0-9]+]]:_(s128) = COPY $vgpr4_vgpr5_vgpr6_vgpr7 715 ; CHECK: [[BUILD_VECTOR:%[0-9]+]]:_(<2 x s128>) = G_BUILD_VECTOR [[COPY]](s128), [[COPY1]](s128) 716 ; CHECK: S_NOP 0, implicit [[BUILD_VECTOR]](<2 x s128>) 717 %0:_(s128) = COPY $vgpr0_vgpr1_vgpr2_vgpr3 718 %1:_(s128) = COPY $vgpr4_vgpr5_vgpr6_vgpr7 719 %2:_(<2 x s128>) = G_BUILD_VECTOR %0, %1 720 S_NOP 0, implicit %2 721... 722 723--- 724name: legal_v2p3 725body: | 726 bb.0: 727 liveins: $vgpr0, $vgpr1 728 ; CHECK-LABEL: name: legal_v2p3 729 ; CHECK: [[COPY:%[0-9]+]]:_(p3) = COPY $vgpr0 730 ; CHECK: [[COPY1:%[0-9]+]]:_(p3) = COPY $vgpr1 731 ; CHECK: [[BUILD_VECTOR:%[0-9]+]]:_(<2 x p3>) = G_BUILD_VECTOR [[COPY]](p3), [[COPY1]](p3) 732 ; CHECK: S_NOP 0, implicit [[BUILD_VECTOR]](<2 x p3>) 733 %0:_(p3) = COPY $vgpr0 734 %1:_(p3) = COPY $vgpr1 735 %2:_(<2 x p3>) = G_BUILD_VECTOR %0, %1 736 S_NOP 0, implicit %2 737... 738--- 739name: legal_v3p3 740body: | 741 bb.0: 742 liveins: $vgpr0, $vgpr1, $vgpr2 743 ; CHECK-LABEL: name: legal_v3p3 744 ; CHECK: [[COPY:%[0-9]+]]:_(p3) = COPY $vgpr0 745 ; CHECK: [[COPY1:%[0-9]+]]:_(p3) = COPY $vgpr1 746 ; CHECK: [[COPY2:%[0-9]+]]:_(p3) = COPY $vgpr2 747 ; CHECK: [[BUILD_VECTOR:%[0-9]+]]:_(<3 x p3>) = G_BUILD_VECTOR [[COPY]](p3), [[COPY1]](p3), [[COPY2]](p3) 748 ; CHECK: S_NOP 0, implicit [[BUILD_VECTOR]](<3 x p3>) 749 %0:_(p3) = COPY $vgpr0 750 %1:_(p3) = COPY $vgpr1 751 %2:_(p3) = COPY $vgpr2 752 %3:_(<3 x p3>) = G_BUILD_VECTOR %0, %1, %2 753 S_NOP 0, implicit %3 754... 755 756--- 757name: legal_v2p0 758body: | 759 bb.0: 760 liveins: $vgpr0_vgpr1, $vgpr2_vgpr3 761 ; CHECK-LABEL: name: legal_v2p0 762 ; CHECK: [[COPY:%[0-9]+]]:_(p0) = COPY $vgpr0_vgpr1 763 ; CHECK: [[COPY1:%[0-9]+]]:_(p0) = COPY $vgpr2_vgpr3 764 ; CHECK: [[BUILD_VECTOR:%[0-9]+]]:_(<2 x p0>) = G_BUILD_VECTOR [[COPY]](p0), [[COPY1]](p0) 765 ; CHECK: S_NOP 0, implicit [[BUILD_VECTOR]](<2 x p0>) 766 %0:_(p0) = COPY $vgpr0_vgpr1 767 %1:_(p0) = COPY $vgpr2_vgpr3 768 %2:_(<2 x p0>) = G_BUILD_VECTOR %0, %1 769 S_NOP 0, implicit %2 770... 771 772--- 773name: legal_v2p999 774body: | 775 bb.0: 776 liveins: $vgpr0_vgpr1, $vgpr2_vgpr3 777 ; CHECK-LABEL: name: legal_v2p999 778 ; CHECK: [[COPY:%[0-9]+]]:_(p999) = COPY $vgpr0_vgpr1 779 ; CHECK: [[COPY1:%[0-9]+]]:_(p999) = COPY $vgpr2_vgpr3 780 ; CHECK: [[BUILD_VECTOR:%[0-9]+]]:_(<2 x p999>) = G_BUILD_VECTOR [[COPY]](p999), [[COPY1]](p999) 781 ; CHECK: S_NOP 0, implicit [[BUILD_VECTOR]](<2 x p999>) 782 %0:_(p999) = COPY $vgpr0_vgpr1 783 %1:_(p999) = COPY $vgpr2_vgpr3 784 %2:_(<2 x p999>) = G_BUILD_VECTOR %0, %1 785 S_NOP 0, implicit %2 786... 787 788--- 789name: legal_v2s256 790body: | 791 bb.0: 792 liveins: $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7, $vgpr8_vgpr9_vgpr10_vgpr11_vgpr12_vgpr13_vgpr14_vgpr15 793 794 ; CHECK-LABEL: name: legal_v2s256 795 ; CHECK: [[COPY:%[0-9]+]]:_(s256) = COPY $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7 796 ; CHECK: [[COPY1:%[0-9]+]]:_(s256) = COPY $vgpr8_vgpr9_vgpr10_vgpr11_vgpr12_vgpr13_vgpr14_vgpr15 797 ; CHECK: [[BUILD_VECTOR:%[0-9]+]]:_(<2 x s256>) = G_BUILD_VECTOR [[COPY]](s256), [[COPY1]](s256) 798 ; CHECK: S_NOP 0, implicit [[BUILD_VECTOR]](<2 x s256>) 799 %0:_(s256) = COPY $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7 800 %1:_(s256) = COPY $vgpr8_vgpr9_vgpr10_vgpr11_vgpr12_vgpr13_vgpr14_vgpr15 801 %2:_(<2 x s256>) = G_BUILD_VECTOR %0, %1 802 S_NOP 0, implicit %2 803... 804 805--- 806name: legal_v4s128 807body: | 808 bb.0: 809 liveins: $vgpr0_vgpr1_vgpr2_vgpr3, $vgpr4_vgpr5_vgpr6_vgpr7, $vgpr8_vgpr9_vgpr10, $vgpr11_vgpr12_vgpr13_vgpr14_vgpr15 810 811 ; CHECK-LABEL: name: legal_v4s128 812 ; CHECK: [[COPY:%[0-9]+]]:_(s128) = COPY $vgpr0_vgpr1_vgpr2_vgpr3 813 ; CHECK: [[COPY1:%[0-9]+]]:_(s128) = COPY $vgpr4_vgpr5_vgpr6_vgpr7 814 ; CHECK: [[COPY2:%[0-9]+]]:_(s128) = COPY $vgpr8_vgpr9_vgpr10_vgpr11 815 ; CHECK: [[COPY3:%[0-9]+]]:_(s128) = COPY $vgpr12_vgpr13_vgpr14_vgpr15 816 ; CHECK: [[BUILD_VECTOR:%[0-9]+]]:_(<4 x s128>) = G_BUILD_VECTOR [[COPY]](s128), [[COPY1]](s128), [[COPY2]](s128), [[COPY3]](s128) 817 ; CHECK: S_NOP 0, implicit [[BUILD_VECTOR]](<4 x s128>) 818 %0:_(s128) = COPY $vgpr0_vgpr1_vgpr2_vgpr3 819 %1:_(s128) = COPY $vgpr4_vgpr5_vgpr6_vgpr7 820 %2:_(s128) = COPY $vgpr8_vgpr9_vgpr10_vgpr11 821 %3:_(s128)= COPY $vgpr12_vgpr13_vgpr14_vgpr15 822 %4:_(<4 x s128>) = G_BUILD_VECTOR %0, %1, %2, %3 823 S_NOP 0, implicit %4 824... 825