1# NOTE: Assertions have been autogenerated by utils/update_mir_test_checks.py 2# RUN: llc -mtriple=amdgcn-amd-amdhsa -mcpu=fiji -run-pass=amdgpu-postlegalizer-combiner -verify-machineinstrs %s -o - | FileCheck %s 3 4--- 5name: cvt_f32_ubyte0_lshr_0 6tracksRegLiveness: true 7body: | 8 bb.0: 9 liveins: $vgpr0 10 11 ; CHECK-LABEL: name: cvt_f32_ubyte0_lshr_0 12 ; CHECK: liveins: $vgpr0 13 ; CHECK-NEXT: {{ $}} 14 ; CHECK-NEXT: %arg:_(s32) = COPY $vgpr0 15 ; CHECK-NEXT: %result:_(s32) = G_AMDGPU_CVT_F32_UBYTE0 %arg 16 ; CHECK-NEXT: $vgpr0 = COPY %result(s32) 17 %arg:_(s32) = COPY $vgpr0 18 %shiftamt:_(s32) = G_CONSTANT i32 0 19 %shift:_(s32) = G_LSHR %arg, %shiftamt 20 %result:_(s32) = G_AMDGPU_CVT_F32_UBYTE0 %shift 21 $vgpr0 = COPY %result 22... 23 24--- 25name: cvt_f32_ubyte0_lshr_8 26tracksRegLiveness: true 27body: | 28 bb.0: 29 liveins: $vgpr0 30 31 ; CHECK-LABEL: name: cvt_f32_ubyte0_lshr_8 32 ; CHECK: liveins: $vgpr0 33 ; CHECK-NEXT: {{ $}} 34 ; CHECK-NEXT: %arg:_(s32) = COPY $vgpr0 35 ; CHECK-NEXT: %result:_(s32) = G_AMDGPU_CVT_F32_UBYTE1 %arg 36 ; CHECK-NEXT: $vgpr0 = COPY %result(s32) 37 %arg:_(s32) = COPY $vgpr0 38 %shiftamt:_(s32) = G_CONSTANT i32 8 39 %shift:_(s32) = G_LSHR %arg, %shiftamt 40 %result:_(s32) = G_AMDGPU_CVT_F32_UBYTE0 %shift 41 $vgpr0 = COPY %result 42... 43 44--- 45name: cvt_f32_ubyte0_lshr_16 46tracksRegLiveness: true 47body: | 48 bb.0: 49 liveins: $vgpr0 50 51 ; CHECK-LABEL: name: cvt_f32_ubyte0_lshr_16 52 ; CHECK: liveins: $vgpr0 53 ; CHECK-NEXT: {{ $}} 54 ; CHECK-NEXT: %arg:_(s32) = COPY $vgpr0 55 ; CHECK-NEXT: %result:_(s32) = G_AMDGPU_CVT_F32_UBYTE2 %arg 56 ; CHECK-NEXT: $vgpr0 = COPY %result(s32) 57 %arg:_(s32) = COPY $vgpr0 58 %shiftamt:_(s32) = G_CONSTANT i32 16 59 %shift:_(s32) = G_LSHR %arg, %shiftamt 60 %result:_(s32) = G_AMDGPU_CVT_F32_UBYTE0 %shift 61 $vgpr0 = COPY %result 62... 63 64--- 65name: cvt_f32_ubyte0_lshr_24 66tracksRegLiveness: true 67body: | 68 bb.0: 69 liveins: $vgpr0 70 71 ; CHECK-LABEL: name: cvt_f32_ubyte0_lshr_24 72 ; CHECK: liveins: $vgpr0 73 ; CHECK-NEXT: {{ $}} 74 ; CHECK-NEXT: %arg:_(s32) = COPY $vgpr0 75 ; CHECK-NEXT: %result:_(s32) = G_AMDGPU_CVT_F32_UBYTE3 %arg 76 ; CHECK-NEXT: $vgpr0 = COPY %result(s32) 77 %arg:_(s32) = COPY $vgpr0 78 %shiftamt:_(s32) = G_CONSTANT i32 24 79 %shift:_(s32) = G_LSHR %arg, %shiftamt 80 %result:_(s32) = G_AMDGPU_CVT_F32_UBYTE0 %shift 81 $vgpr0 = COPY %result 82... 83 84--- 85name: cvt_f32_ubyte1_lshr_8 86tracksRegLiveness: true 87body: | 88 bb.0: 89 liveins: $vgpr0 90 91 ; CHECK-LABEL: name: cvt_f32_ubyte1_lshr_8 92 ; CHECK: liveins: $vgpr0 93 ; CHECK-NEXT: {{ $}} 94 ; CHECK-NEXT: %arg:_(s32) = COPY $vgpr0 95 ; CHECK-NEXT: %result:_(s32) = G_AMDGPU_CVT_F32_UBYTE2 %arg 96 ; CHECK-NEXT: $vgpr0 = COPY %result(s32) 97 %arg:_(s32) = COPY $vgpr0 98 %shiftamt:_(s32) = G_CONSTANT i32 8 99 %shift:_(s32) = G_LSHR %arg, %shiftamt 100 %result:_(s32) = G_AMDGPU_CVT_F32_UBYTE1 %shift 101 $vgpr0 = COPY %result 102... 103 104--- 105name: cvt_f32_ubyte1_lshr_16 106tracksRegLiveness: true 107body: | 108 bb.0: 109 liveins: $vgpr0 110 111 ; CHECK-LABEL: name: cvt_f32_ubyte1_lshr_16 112 ; CHECK: liveins: $vgpr0 113 ; CHECK-NEXT: {{ $}} 114 ; CHECK-NEXT: %arg:_(s32) = COPY $vgpr0 115 ; CHECK-NEXT: %result:_(s32) = G_AMDGPU_CVT_F32_UBYTE3 %arg 116 ; CHECK-NEXT: $vgpr0 = COPY %result(s32) 117 %arg:_(s32) = COPY $vgpr0 118 %shiftamt:_(s32) = G_CONSTANT i32 16 119 %shift:_(s32) = G_LSHR %arg, %shiftamt 120 %result:_(s32) = G_AMDGPU_CVT_F32_UBYTE1 %shift 121 $vgpr0 = COPY %result 122... 123 124--- 125name: cvt_f32_ubyte1_lshr_24 126tracksRegLiveness: true 127body: | 128 bb.0: 129 liveins: $vgpr0 130 131 ; CHECK-LABEL: name: cvt_f32_ubyte1_lshr_24 132 ; CHECK: liveins: $vgpr0 133 ; CHECK-NEXT: {{ $}} 134 ; CHECK-NEXT: %arg:_(s32) = COPY $vgpr0 135 ; CHECK-NEXT: %shiftamt:_(s32) = G_CONSTANT i32 24 136 ; CHECK-NEXT: %shift:_(s32) = G_LSHR %arg, %shiftamt(s32) 137 ; CHECK-NEXT: %result:_(s32) = G_AMDGPU_CVT_F32_UBYTE1 %shift 138 ; CHECK-NEXT: $vgpr0 = COPY %result(s32) 139 %arg:_(s32) = COPY $vgpr0 140 %shiftamt:_(s32) = G_CONSTANT i32 24 141 %shift:_(s32) = G_LSHR %arg, %shiftamt 142 %result:_(s32) = G_AMDGPU_CVT_F32_UBYTE1 %shift 143 $vgpr0 = COPY %result 144... 145 146--- 147name: cvt_f32_ubyte2_lshr_8 148tracksRegLiveness: true 149body: | 150 bb.0: 151 liveins: $vgpr0 152 153 ; CHECK-LABEL: name: cvt_f32_ubyte2_lshr_8 154 ; CHECK: liveins: $vgpr0 155 ; CHECK-NEXT: {{ $}} 156 ; CHECK-NEXT: %arg:_(s32) = COPY $vgpr0 157 ; CHECK-NEXT: %result:_(s32) = G_AMDGPU_CVT_F32_UBYTE3 %arg 158 ; CHECK-NEXT: $vgpr0 = COPY %result(s32) 159 %arg:_(s32) = COPY $vgpr0 160 %shiftamt:_(s32) = G_CONSTANT i32 8 161 %shift:_(s32) = G_LSHR %arg, %shiftamt 162 %result:_(s32) = G_AMDGPU_CVT_F32_UBYTE2 %shift 163 $vgpr0 = COPY %result 164... 165 166--- 167name: cvt_f32_ubyte2_lshr_16 168tracksRegLiveness: true 169body: | 170 bb.0: 171 liveins: $vgpr0 172 173 ; CHECK-LABEL: name: cvt_f32_ubyte2_lshr_16 174 ; CHECK: liveins: $vgpr0 175 ; CHECK-NEXT: {{ $}} 176 ; CHECK-NEXT: %arg:_(s32) = COPY $vgpr0 177 ; CHECK-NEXT: %shiftamt:_(s32) = G_CONSTANT i32 16 178 ; CHECK-NEXT: %shift:_(s32) = G_LSHR %arg, %shiftamt(s32) 179 ; CHECK-NEXT: %result:_(s32) = G_AMDGPU_CVT_F32_UBYTE2 %shift 180 ; CHECK-NEXT: $vgpr0 = COPY %result(s32) 181 %arg:_(s32) = COPY $vgpr0 182 %shiftamt:_(s32) = G_CONSTANT i32 16 183 %shift:_(s32) = G_LSHR %arg, %shiftamt 184 %result:_(s32) = G_AMDGPU_CVT_F32_UBYTE2 %shift 185 $vgpr0 = COPY %result 186... 187 188--- 189name: cvt_f32_ubyte2_lshr_24 190tracksRegLiveness: true 191body: | 192 bb.0: 193 liveins: $vgpr0 194 195 ; CHECK-LABEL: name: cvt_f32_ubyte2_lshr_24 196 ; CHECK: liveins: $vgpr0 197 ; CHECK-NEXT: {{ $}} 198 ; CHECK-NEXT: %arg:_(s32) = COPY $vgpr0 199 ; CHECK-NEXT: %shiftamt:_(s32) = G_CONSTANT i32 24 200 ; CHECK-NEXT: %shift:_(s32) = G_LSHR %arg, %shiftamt(s32) 201 ; CHECK-NEXT: %result:_(s32) = G_AMDGPU_CVT_F32_UBYTE2 %shift 202 ; CHECK-NEXT: $vgpr0 = COPY %result(s32) 203 %arg:_(s32) = COPY $vgpr0 204 %shiftamt:_(s32) = G_CONSTANT i32 24 205 %shift:_(s32) = G_LSHR %arg, %shiftamt 206 %result:_(s32) = G_AMDGPU_CVT_F32_UBYTE2 %shift 207 $vgpr0 = COPY %result 208... 209 210--- 211name: cvt_f32_ubyte3_lshr_8 212tracksRegLiveness: true 213body: | 214 bb.0: 215 liveins: $vgpr0 216 217 ; CHECK-LABEL: name: cvt_f32_ubyte3_lshr_8 218 ; CHECK: liveins: $vgpr0 219 ; CHECK-NEXT: {{ $}} 220 ; CHECK-NEXT: %arg:_(s32) = COPY $vgpr0 221 ; CHECK-NEXT: %shiftamt:_(s32) = G_CONSTANT i32 8 222 ; CHECK-NEXT: %shift:_(s32) = G_LSHR %arg, %shiftamt(s32) 223 ; CHECK-NEXT: %result:_(s32) = G_AMDGPU_CVT_F32_UBYTE3 %shift 224 ; CHECK-NEXT: $vgpr0 = COPY %result(s32) 225 %arg:_(s32) = COPY $vgpr0 226 %shiftamt:_(s32) = G_CONSTANT i32 8 227 %shift:_(s32) = G_LSHR %arg, %shiftamt 228 %result:_(s32) = G_AMDGPU_CVT_F32_UBYTE3 %shift 229 $vgpr0 = COPY %result 230... 231 232--- 233name: cvt_f32_ubyte0_zext_lshr_8 234tracksRegLiveness: true 235body: | 236 bb.0: 237 liveins: $vgpr0 238 239 ; CHECK-LABEL: name: cvt_f32_ubyte0_zext_lshr_8 240 ; CHECK: liveins: $vgpr0 241 ; CHECK-NEXT: {{ $}} 242 ; CHECK-NEXT: %arg:_(s32) = COPY $vgpr0 243 ; CHECK-NEXT: %result:_(s32) = G_AMDGPU_CVT_F32_UBYTE1 %arg 244 ; CHECK-NEXT: $vgpr0 = COPY %result(s32) 245 %arg:_(s32) = COPY $vgpr0 246 %trunc:_(s16) = G_TRUNC %arg 247 %shiftamt:_(s32) = G_CONSTANT i32 8 248 %shift:_(s16) = G_LSHR %trunc, %shiftamt 249 %zext:_(s32) = G_ZEXT %shift 250 %result:_(s32) = G_AMDGPU_CVT_F32_UBYTE0 %zext 251 $vgpr0 = COPY %result 252... 253 254--- 255name: cvt_f32_ubyte0_zext_lshr_16 256tracksRegLiveness: true 257body: | 258 bb.0: 259 liveins: $vgpr0 260 261 ; CHECK-LABEL: name: cvt_f32_ubyte0_zext_lshr_16 262 ; CHECK: liveins: $vgpr0 263 ; CHECK-NEXT: {{ $}} 264 ; CHECK-NEXT: %shift:_(s16) = G_IMPLICIT_DEF 265 ; CHECK-NEXT: %zext:_(s32) = G_ZEXT %shift(s16) 266 ; CHECK-NEXT: %result:_(s32) = G_AMDGPU_CVT_F32_UBYTE0 %zext 267 ; CHECK-NEXT: $vgpr0 = COPY %result(s32) 268 %arg:_(s32) = COPY $vgpr0 269 %trunc:_(s16) = G_TRUNC %arg 270 %shiftamt:_(s32) = G_CONSTANT i32 16 271 %shift:_(s16) = G_LSHR %trunc, %shiftamt 272 %zext:_(s32) = G_ZEXT %shift 273 %result:_(s32) = G_AMDGPU_CVT_F32_UBYTE0 %zext 274 $vgpr0 = COPY %result 275... 276 277--- 278name: cvt_f32_ubyte0_zext_lshr_24 279tracksRegLiveness: true 280body: | 281 bb.0: 282 liveins: $vgpr0 283 284 ; CHECK-LABEL: name: cvt_f32_ubyte0_zext_lshr_24 285 ; CHECK: liveins: $vgpr0 286 ; CHECK-NEXT: {{ $}} 287 ; CHECK-NEXT: %shift:_(s16) = G_IMPLICIT_DEF 288 ; CHECK-NEXT: %zext:_(s32) = G_ZEXT %shift(s16) 289 ; CHECK-NEXT: %result:_(s32) = G_AMDGPU_CVT_F32_UBYTE0 %zext 290 ; CHECK-NEXT: $vgpr0 = COPY %result(s32) 291 %arg:_(s32) = COPY $vgpr0 292 %trunc:_(s16) = G_TRUNC %arg 293 %shiftamt:_(s32) = G_CONSTANT i32 24 294 %shift:_(s16) = G_LSHR %trunc, %shiftamt 295 %zext:_(s32) = G_ZEXT %shift 296 %result:_(s32) = G_AMDGPU_CVT_F32_UBYTE0 %zext 297 $vgpr0 = COPY %result 298... 299 300--- 301name: cvt_f32_ubyte1_zext_lshr_8 302tracksRegLiveness: true 303body: | 304 bb.0: 305 liveins: $vgpr0 306 307 ; CHECK-LABEL: name: cvt_f32_ubyte1_zext_lshr_8 308 ; CHECK: liveins: $vgpr0 309 ; CHECK-NEXT: {{ $}} 310 ; CHECK-NEXT: %arg:_(s32) = COPY $vgpr0 311 ; CHECK-NEXT: %result:_(s32) = G_AMDGPU_CVT_F32_UBYTE2 %arg 312 ; CHECK-NEXT: $vgpr0 = COPY %result(s32) 313 %arg:_(s32) = COPY $vgpr0 314 %trunc:_(s16) = G_TRUNC %arg 315 %shiftamt:_(s32) = G_CONSTANT i32 8 316 %shift:_(s16) = G_LSHR %trunc, %shiftamt 317 %zext:_(s32) = G_ZEXT %shift 318 %result:_(s32) = G_AMDGPU_CVT_F32_UBYTE1 %zext 319 $vgpr0 = COPY %result 320... 321 322--- 323name: cvt_f32_ubyte0_shl_8 324tracksRegLiveness: true 325body: | 326 bb.0: 327 liveins: $vgpr0 328 329 ; CHECK-LABEL: name: cvt_f32_ubyte0_shl_8 330 ; CHECK: liveins: $vgpr0 331 ; CHECK-NEXT: {{ $}} 332 ; CHECK-NEXT: %arg:_(s32) = COPY $vgpr0 333 ; CHECK-NEXT: %shiftamt:_(s32) = G_CONSTANT i32 8 334 ; CHECK-NEXT: %shift:_(s32) = G_SHL %arg, %shiftamt(s32) 335 ; CHECK-NEXT: %result:_(s32) = G_AMDGPU_CVT_F32_UBYTE0 %shift 336 ; CHECK-NEXT: $vgpr0 = COPY %result(s32) 337 %arg:_(s32) = COPY $vgpr0 338 %shiftamt:_(s32) = G_CONSTANT i32 8 339 %shift:_(s32) = G_SHL %arg, %shiftamt 340 %result:_(s32) = G_AMDGPU_CVT_F32_UBYTE0 %shift 341 $vgpr0 = COPY %result 342... 343 344--- 345name: cvt_f32_ubyte1_shl_8 346tracksRegLiveness: true 347body: | 348 bb.0: 349 liveins: $vgpr0 350 351 ; CHECK-LABEL: name: cvt_f32_ubyte1_shl_8 352 ; CHECK: liveins: $vgpr0 353 ; CHECK-NEXT: {{ $}} 354 ; CHECK-NEXT: %arg:_(s32) = COPY $vgpr0 355 ; CHECK-NEXT: %shiftamt:_(s32) = G_CONSTANT i32 8 356 ; CHECK-NEXT: %shift:_(s32) = G_SHL %arg, %shiftamt(s32) 357 ; CHECK-NEXT: %result:_(s32) = G_AMDGPU_CVT_F32_UBYTE1 %shift 358 ; CHECK-NEXT: $vgpr0 = COPY %result(s32) 359 %arg:_(s32) = COPY $vgpr0 360 %shiftamt:_(s32) = G_CONSTANT i32 8 361 %shift:_(s32) = G_SHL %arg, %shiftamt 362 %result:_(s32) = G_AMDGPU_CVT_F32_UBYTE1 %shift 363 $vgpr0 = COPY %result 364... 365 366--- 367name: cvt_f32_ubyte2_shl_8 368tracksRegLiveness: true 369body: | 370 bb.0: 371 liveins: $vgpr0 372 373 ; CHECK-LABEL: name: cvt_f32_ubyte2_shl_8 374 ; CHECK: liveins: $vgpr0 375 ; CHECK-NEXT: {{ $}} 376 ; CHECK-NEXT: %arg:_(s32) = COPY $vgpr0 377 ; CHECK-NEXT: %result:_(s32) = G_AMDGPU_CVT_F32_UBYTE1 %arg 378 ; CHECK-NEXT: $vgpr0 = COPY %result(s32) 379 %arg:_(s32) = COPY $vgpr0 380 %shiftamt:_(s32) = G_CONSTANT i32 8 381 %shift:_(s32) = G_SHL %arg, %shiftamt 382 %result:_(s32) = G_AMDGPU_CVT_F32_UBYTE2 %shift 383 $vgpr0 = COPY %result 384... 385 386--- 387name: cvt_f32_ubyte3_shl_8 388tracksRegLiveness: true 389body: | 390 bb.0: 391 liveins: $vgpr0 392 393 ; CHECK-LABEL: name: cvt_f32_ubyte3_shl_8 394 ; CHECK: liveins: $vgpr0 395 ; CHECK-NEXT: {{ $}} 396 ; CHECK-NEXT: %arg:_(s32) = COPY $vgpr0 397 ; CHECK-NEXT: %result:_(s32) = G_AMDGPU_CVT_F32_UBYTE2 %arg 398 ; CHECK-NEXT: $vgpr0 = COPY %result(s32) 399 %arg:_(s32) = COPY $vgpr0 400 %shiftamt:_(s32) = G_CONSTANT i32 8 401 %shift:_(s32) = G_SHL %arg, %shiftamt 402 %result:_(s32) = G_AMDGPU_CVT_F32_UBYTE3 %shift 403 $vgpr0 = COPY %result 404... 405 406--- 407name: cvt_f32_ubyte0_shl_16 408tracksRegLiveness: true 409body: | 410 bb.0: 411 liveins: $vgpr0 412 413 ; CHECK-LABEL: name: cvt_f32_ubyte0_shl_16 414 ; CHECK: liveins: $vgpr0 415 ; CHECK-NEXT: {{ $}} 416 ; CHECK-NEXT: %arg:_(s32) = COPY $vgpr0 417 ; CHECK-NEXT: %shiftamt:_(s32) = G_CONSTANT i32 16 418 ; CHECK-NEXT: %shift:_(s32) = G_SHL %arg, %shiftamt(s32) 419 ; CHECK-NEXT: %result:_(s32) = G_AMDGPU_CVT_F32_UBYTE0 %shift 420 ; CHECK-NEXT: $vgpr0 = COPY %result(s32) 421 %arg:_(s32) = COPY $vgpr0 422 %shiftamt:_(s32) = G_CONSTANT i32 16 423 %shift:_(s32) = G_SHL %arg, %shiftamt 424 %result:_(s32) = G_AMDGPU_CVT_F32_UBYTE0 %shift 425 $vgpr0 = COPY %result 426... 427 428--- 429name: cvt_f32_ubyte1_shl_16 430tracksRegLiveness: true 431body: | 432 bb.0: 433 liveins: $vgpr0 434 435 ; CHECK-LABEL: name: cvt_f32_ubyte1_shl_16 436 ; CHECK: liveins: $vgpr0 437 ; CHECK-NEXT: {{ $}} 438 ; CHECK-NEXT: %arg:_(s32) = COPY $vgpr0 439 ; CHECK-NEXT: %shiftamt:_(s32) = G_CONSTANT i32 16 440 ; CHECK-NEXT: %shift:_(s32) = G_SHL %arg, %shiftamt(s32) 441 ; CHECK-NEXT: %result:_(s32) = G_AMDGPU_CVT_F32_UBYTE1 %shift 442 ; CHECK-NEXT: $vgpr0 = COPY %result(s32) 443 %arg:_(s32) = COPY $vgpr0 444 %shiftamt:_(s32) = G_CONSTANT i32 16 445 %shift:_(s32) = G_SHL %arg, %shiftamt 446 %result:_(s32) = G_AMDGPU_CVT_F32_UBYTE1 %shift 447 $vgpr0 = COPY %result 448... 449 450--- 451name: cvt_f32_ubyte2_shl_16 452tracksRegLiveness: true 453body: | 454 bb.0: 455 liveins: $vgpr0 456 457 ; CHECK-LABEL: name: cvt_f32_ubyte2_shl_16 458 ; CHECK: liveins: $vgpr0 459 ; CHECK-NEXT: {{ $}} 460 ; CHECK-NEXT: %arg:_(s32) = COPY $vgpr0 461 ; CHECK-NEXT: %shiftamt:_(s32) = G_CONSTANT i32 16 462 ; CHECK-NEXT: %shift:_(s32) = G_SHL %arg, %shiftamt(s32) 463 ; CHECK-NEXT: %result:_(s32) = G_AMDGPU_CVT_F32_UBYTE2 %shift 464 ; CHECK-NEXT: $vgpr0 = COPY %result(s32) 465 %arg:_(s32) = COPY $vgpr0 466 %shiftamt:_(s32) = G_CONSTANT i32 16 467 %shift:_(s32) = G_SHL %arg, %shiftamt 468 %result:_(s32) = G_AMDGPU_CVT_F32_UBYTE2 %shift 469 $vgpr0 = COPY %result 470... 471 472--- 473name: cvt_f32_ubyte3_shl_16 474tracksRegLiveness: true 475body: | 476 bb.0: 477 liveins: $vgpr0 478 479 ; CHECK-LABEL: name: cvt_f32_ubyte3_shl_16 480 ; CHECK: liveins: $vgpr0 481 ; CHECK-NEXT: {{ $}} 482 ; CHECK-NEXT: %arg:_(s32) = COPY $vgpr0 483 ; CHECK-NEXT: %result:_(s32) = G_AMDGPU_CVT_F32_UBYTE1 %arg 484 ; CHECK-NEXT: $vgpr0 = COPY %result(s32) 485 %arg:_(s32) = COPY $vgpr0 486 %shiftamt:_(s32) = G_CONSTANT i32 16 487 %shift:_(s32) = G_SHL %arg, %shiftamt 488 %result:_(s32) = G_AMDGPU_CVT_F32_UBYTE3 %shift 489 $vgpr0 = COPY %result 490... 491 492--- 493name: cvt_f32_ubyte0_shl_24 494tracksRegLiveness: true 495body: | 496 bb.0: 497 liveins: $vgpr0 498 499 ; CHECK-LABEL: name: cvt_f32_ubyte0_shl_24 500 ; CHECK: liveins: $vgpr0 501 ; CHECK-NEXT: {{ $}} 502 ; CHECK-NEXT: %arg:_(s32) = COPY $vgpr0 503 ; CHECK-NEXT: %shiftamt:_(s32) = G_CONSTANT i32 24 504 ; CHECK-NEXT: %shift:_(s32) = G_SHL %arg, %shiftamt(s32) 505 ; CHECK-NEXT: %result:_(s32) = G_AMDGPU_CVT_F32_UBYTE0 %shift 506 ; CHECK-NEXT: $vgpr0 = COPY %result(s32) 507 %arg:_(s32) = COPY $vgpr0 508 %shiftamt:_(s32) = G_CONSTANT i32 24 509 %shift:_(s32) = G_SHL %arg, %shiftamt 510 %result:_(s32) = G_AMDGPU_CVT_F32_UBYTE0 %shift 511 $vgpr0 = COPY %result 512... 513 514--- 515name: cvt_f32_ubyte1_shl_24 516tracksRegLiveness: true 517body: | 518 bb.0: 519 liveins: $vgpr0 520 521 ; CHECK-LABEL: name: cvt_f32_ubyte1_shl_24 522 ; CHECK: liveins: $vgpr0 523 ; CHECK-NEXT: {{ $}} 524 ; CHECK-NEXT: %arg:_(s32) = COPY $vgpr0 525 ; CHECK-NEXT: %shiftamt:_(s32) = G_CONSTANT i32 24 526 ; CHECK-NEXT: %shift:_(s32) = G_SHL %arg, %shiftamt(s32) 527 ; CHECK-NEXT: %result:_(s32) = G_AMDGPU_CVT_F32_UBYTE1 %shift 528 ; CHECK-NEXT: $vgpr0 = COPY %result(s32) 529 %arg:_(s32) = COPY $vgpr0 530 %shiftamt:_(s32) = G_CONSTANT i32 24 531 %shift:_(s32) = G_SHL %arg, %shiftamt 532 %result:_(s32) = G_AMDGPU_CVT_F32_UBYTE1 %shift 533 $vgpr0 = COPY %result 534... 535 536--- 537name: cvt_f32_ubyte2_shl_24 538tracksRegLiveness: true 539body: | 540 bb.0: 541 liveins: $vgpr0 542 543 ; CHECK-LABEL: name: cvt_f32_ubyte2_shl_24 544 ; CHECK: liveins: $vgpr0 545 ; CHECK-NEXT: {{ $}} 546 ; CHECK-NEXT: %arg:_(s32) = COPY $vgpr0 547 ; CHECK-NEXT: %shiftamt:_(s32) = G_CONSTANT i32 24 548 ; CHECK-NEXT: %shift:_(s32) = G_SHL %arg, %shiftamt(s32) 549 ; CHECK-NEXT: %result:_(s32) = G_AMDGPU_CVT_F32_UBYTE2 %shift 550 ; CHECK-NEXT: $vgpr0 = COPY %result(s32) 551 %arg:_(s32) = COPY $vgpr0 552 %shiftamt:_(s32) = G_CONSTANT i32 24 553 %shift:_(s32) = G_SHL %arg, %shiftamt 554 %result:_(s32) = G_AMDGPU_CVT_F32_UBYTE2 %shift 555 $vgpr0 = COPY %result 556... 557 558--- 559name: cvt_f32_ubyte3_shl_24 560tracksRegLiveness: true 561body: | 562 bb.0: 563 liveins: $vgpr0 564 565 ; CHECK-LABEL: name: cvt_f32_ubyte3_shl_24 566 ; CHECK: liveins: $vgpr0 567 ; CHECK-NEXT: {{ $}} 568 ; CHECK-NEXT: %arg:_(s32) = COPY $vgpr0 569 ; CHECK-NEXT: %shiftamt:_(s32) = G_CONSTANT i32 24 570 ; CHECK-NEXT: %shift:_(s32) = G_SHL %arg, %shiftamt(s32) 571 ; CHECK-NEXT: %result:_(s32) = G_AMDGPU_CVT_F32_UBYTE3 %shift 572 ; CHECK-NEXT: $vgpr0 = COPY %result(s32) 573 %arg:_(s32) = COPY $vgpr0 574 %shiftamt:_(s32) = G_CONSTANT i32 24 575 %shift:_(s32) = G_SHL %arg, %shiftamt 576 %result:_(s32) = G_AMDGPU_CVT_F32_UBYTE3 %shift 577 $vgpr0 = COPY %result 578... 579 580# Shift amount is wrong 581--- 582name: cvt_f32_ubyte1_shl_7 583tracksRegLiveness: true 584body: | 585 bb.0: 586 liveins: $vgpr0 587 588 ; CHECK-LABEL: name: cvt_f32_ubyte1_shl_7 589 ; CHECK: liveins: $vgpr0 590 ; CHECK-NEXT: {{ $}} 591 ; CHECK-NEXT: %arg:_(s32) = COPY $vgpr0 592 ; CHECK-NEXT: %shiftamt:_(s32) = G_CONSTANT i32 7 593 ; CHECK-NEXT: %shift:_(s32) = G_SHL %arg, %shiftamt(s32) 594 ; CHECK-NEXT: %result:_(s32) = G_AMDGPU_CVT_F32_UBYTE1 %shift 595 ; CHECK-NEXT: $vgpr0 = COPY %result(s32) 596 %arg:_(s32) = COPY $vgpr0 597 %shiftamt:_(s32) = G_CONSTANT i32 7 598 %shift:_(s32) = G_SHL %arg, %shiftamt 599 %result:_(s32) = G_AMDGPU_CVT_F32_UBYTE1 %shift 600 $vgpr0 = COPY %result 601... 602 603--- 604name: cvt_f32_ubyte3_shl_17 605tracksRegLiveness: true 606body: | 607 bb.0: 608 liveins: $vgpr0 609 610 ; CHECK-LABEL: name: cvt_f32_ubyte3_shl_17 611 ; CHECK: liveins: $vgpr0 612 ; CHECK-NEXT: {{ $}} 613 ; CHECK-NEXT: %arg:_(s32) = COPY $vgpr0 614 ; CHECK-NEXT: %shiftamt:_(s32) = G_CONSTANT i32 17 615 ; CHECK-NEXT: %shift:_(s32) = G_SHL %arg, %shiftamt(s32) 616 ; CHECK-NEXT: %result:_(s32) = G_AMDGPU_CVT_F32_UBYTE3 %shift 617 ; CHECK-NEXT: $vgpr0 = COPY %result(s32) 618 %arg:_(s32) = COPY $vgpr0 619 %shiftamt:_(s32) = G_CONSTANT i32 17 620 %shift:_(s32) = G_SHL %arg, %shiftamt 621 %result:_(s32) = G_AMDGPU_CVT_F32_UBYTE3 %shift 622 $vgpr0 = COPY %result 623... 624