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