brintos

brintos / llvm-project-archived public Read only

0
0
Text · 26.7 KiB · 65826d7 Raw
606 lines · plain
1# NOTE: Assertions have been autogenerated by utils/update_mir_test_checks.py2# RUN: llc -mtriple=amdgcn-mesa-mesa3d -mcpu=tahiti -run-pass=legalizer %s -o - | FileCheck -check-prefix=GFX6 %s3# RUN: llc -mtriple=amdgcn-mesa-mesa3d -mcpu=fiji -run-pass=legalizer %s -o - | FileCheck -check-prefix=GFX8 %s4 5---6name: test_uitofp_s32_to_s327body: |8  bb.0:9    liveins: $vgpr010 11    ; GFX6-LABEL: name: test_uitofp_s32_to_s3212    ; GFX6: liveins: $vgpr013    ; GFX6-NEXT: {{  $}}14    ; GFX6-NEXT: [[COPY:%[0-9]+]]:_(s32) = COPY $vgpr015    ; GFX6-NEXT: [[UITOFP:%[0-9]+]]:_(s32) = G_UITOFP [[COPY]](s32)16    ; GFX6-NEXT: $vgpr0 = COPY [[UITOFP]](s32)17    ; GFX8-LABEL: name: test_uitofp_s32_to_s3218    ; GFX8: liveins: $vgpr019    ; GFX8-NEXT: {{  $}}20    ; GFX8-NEXT: [[COPY:%[0-9]+]]:_(s32) = COPY $vgpr021    ; GFX8-NEXT: [[UITOFP:%[0-9]+]]:_(s32) = G_UITOFP [[COPY]](s32)22    ; GFX8-NEXT: $vgpr0 = COPY [[UITOFP]](s32)23    %0:_(s32) = COPY $vgpr024    %1:_(s32) = G_UITOFP %025    $vgpr0 = COPY %126...27 28---29name: test_uitofp_s32_to_s6430body: |31  bb.0:32    liveins: $vgpr033 34    ; GFX6-LABEL: name: test_uitofp_s32_to_s6435    ; GFX6: liveins: $vgpr036    ; GFX6-NEXT: {{  $}}37    ; GFX6-NEXT: [[COPY:%[0-9]+]]:_(s32) = COPY $vgpr038    ; GFX6-NEXT: [[UITOFP:%[0-9]+]]:_(s64) = G_UITOFP [[COPY]](s32)39    ; GFX6-NEXT: $vgpr0_vgpr1 = COPY [[UITOFP]](s64)40    ; GFX8-LABEL: name: test_uitofp_s32_to_s6441    ; GFX8: liveins: $vgpr042    ; GFX8-NEXT: {{  $}}43    ; GFX8-NEXT: [[COPY:%[0-9]+]]:_(s32) = COPY $vgpr044    ; GFX8-NEXT: [[UITOFP:%[0-9]+]]:_(s64) = G_UITOFP [[COPY]](s32)45    ; GFX8-NEXT: $vgpr0_vgpr1 = COPY [[UITOFP]](s64)46    %0:_(s32) = COPY $vgpr047    %1:_(s64) = G_UITOFP %048    $vgpr0_vgpr1 = COPY %149...50 51---52name: test_uitofp_v2s32_to_v2s3253body: |54  bb.0:55    liveins: $vgpr0_vgpr156 57    ; GFX6-LABEL: name: test_uitofp_v2s32_to_v2s3258    ; GFX6: liveins: $vgpr0_vgpr159    ; GFX6-NEXT: {{  $}}60    ; GFX6-NEXT: [[COPY:%[0-9]+]]:_(<2 x s32>) = COPY $vgpr0_vgpr161    ; GFX6-NEXT: [[UV:%[0-9]+]]:_(s32), [[UV1:%[0-9]+]]:_(s32) = G_UNMERGE_VALUES [[COPY]](<2 x s32>)62    ; GFX6-NEXT: [[UITOFP:%[0-9]+]]:_(s32) = G_UITOFP [[UV]](s32)63    ; GFX6-NEXT: [[UITOFP1:%[0-9]+]]:_(s32) = G_UITOFP [[UV1]](s32)64    ; GFX6-NEXT: [[BUILD_VECTOR:%[0-9]+]]:_(<2 x s32>) = G_BUILD_VECTOR [[UITOFP]](s32), [[UITOFP1]](s32)65    ; GFX6-NEXT: $vgpr0_vgpr1 = COPY [[BUILD_VECTOR]](<2 x s32>)66    ; GFX8-LABEL: name: test_uitofp_v2s32_to_v2s3267    ; GFX8: liveins: $vgpr0_vgpr168    ; GFX8-NEXT: {{  $}}69    ; GFX8-NEXT: [[COPY:%[0-9]+]]:_(<2 x s32>) = COPY $vgpr0_vgpr170    ; GFX8-NEXT: [[UV:%[0-9]+]]:_(s32), [[UV1:%[0-9]+]]:_(s32) = G_UNMERGE_VALUES [[COPY]](<2 x s32>)71    ; GFX8-NEXT: [[UITOFP:%[0-9]+]]:_(s32) = G_UITOFP [[UV]](s32)72    ; GFX8-NEXT: [[UITOFP1:%[0-9]+]]:_(s32) = G_UITOFP [[UV1]](s32)73    ; GFX8-NEXT: [[BUILD_VECTOR:%[0-9]+]]:_(<2 x s32>) = G_BUILD_VECTOR [[UITOFP]](s32), [[UITOFP1]](s32)74    ; GFX8-NEXT: $vgpr0_vgpr1 = COPY [[BUILD_VECTOR]](<2 x s32>)75    %0:_(<2 x s32>) = COPY $vgpr0_vgpr176    %1:_(<2 x s32>) = G_UITOFP %077    $vgpr0_vgpr1 = COPY %178...79 80---81name: test_uitofp_s64_to_s3282body: |83  bb.0:84    liveins: $vgpr0_vgpr185 86    ; GFX6-LABEL: name: test_uitofp_s64_to_s3287    ; GFX6: liveins: $vgpr0_vgpr188    ; GFX6-NEXT: {{  $}}89    ; GFX6-NEXT: [[COPY:%[0-9]+]]:_(s64) = COPY $vgpr0_vgpr190    ; GFX6-NEXT: [[UV:%[0-9]+]]:_(s32), [[UV1:%[0-9]+]]:_(s32) = G_UNMERGE_VALUES [[COPY]](s64)91    ; GFX6-NEXT: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 3292    ; GFX6-NEXT: [[C1:%[0-9]+]]:_(s32) = G_CONSTANT i32 193    ; GFX6-NEXT: [[AMDGPU_FFBH_U32_:%[0-9]+]]:_(s32) = G_AMDGPU_FFBH_U32 [[UV1]](s32)94    ; GFX6-NEXT: [[UMIN:%[0-9]+]]:_(s32) = G_UMIN [[AMDGPU_FFBH_U32_]], [[C]]95    ; GFX6-NEXT: [[SHL:%[0-9]+]]:_(s64) = G_SHL [[COPY]], [[UMIN]](s32)96    ; GFX6-NEXT: [[UV2:%[0-9]+]]:_(s32), [[UV3:%[0-9]+]]:_(s32) = G_UNMERGE_VALUES [[SHL]](s64)97    ; GFX6-NEXT: [[UMIN1:%[0-9]+]]:_(s32) = G_UMIN [[C1]], [[UV2]]98    ; GFX6-NEXT: [[OR:%[0-9]+]]:_(s32) = G_OR [[UV3]], [[UMIN1]]99    ; GFX6-NEXT: [[UITOFP:%[0-9]+]]:_(s32) = G_UITOFP [[OR]](s32)100    ; GFX6-NEXT: [[SUB:%[0-9]+]]:_(s32) = G_SUB [[C]], [[UMIN]]101    ; GFX6-NEXT: [[FLDEXP:%[0-9]+]]:_(s32) = G_FLDEXP [[UITOFP]], [[SUB]](s32)102    ; GFX6-NEXT: $vgpr0 = COPY [[FLDEXP]](s32)103    ; GFX8-LABEL: name: test_uitofp_s64_to_s32104    ; GFX8: liveins: $vgpr0_vgpr1105    ; GFX8-NEXT: {{  $}}106    ; GFX8-NEXT: [[COPY:%[0-9]+]]:_(s64) = COPY $vgpr0_vgpr1107    ; GFX8-NEXT: [[UV:%[0-9]+]]:_(s32), [[UV1:%[0-9]+]]:_(s32) = G_UNMERGE_VALUES [[COPY]](s64)108    ; GFX8-NEXT: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 32109    ; GFX8-NEXT: [[C1:%[0-9]+]]:_(s32) = G_CONSTANT i32 1110    ; GFX8-NEXT: [[AMDGPU_FFBH_U32_:%[0-9]+]]:_(s32) = G_AMDGPU_FFBH_U32 [[UV1]](s32)111    ; GFX8-NEXT: [[UMIN:%[0-9]+]]:_(s32) = G_UMIN [[AMDGPU_FFBH_U32_]], [[C]]112    ; GFX8-NEXT: [[SHL:%[0-9]+]]:_(s64) = G_SHL [[COPY]], [[UMIN]](s32)113    ; GFX8-NEXT: [[UV2:%[0-9]+]]:_(s32), [[UV3:%[0-9]+]]:_(s32) = G_UNMERGE_VALUES [[SHL]](s64)114    ; GFX8-NEXT: [[UMIN1:%[0-9]+]]:_(s32) = G_UMIN [[C1]], [[UV2]]115    ; GFX8-NEXT: [[OR:%[0-9]+]]:_(s32) = G_OR [[UV3]], [[UMIN1]]116    ; GFX8-NEXT: [[UITOFP:%[0-9]+]]:_(s32) = G_UITOFP [[OR]](s32)117    ; GFX8-NEXT: [[SUB:%[0-9]+]]:_(s32) = G_SUB [[C]], [[UMIN]]118    ; GFX8-NEXT: [[FLDEXP:%[0-9]+]]:_(s32) = G_FLDEXP [[UITOFP]], [[SUB]](s32)119    ; GFX8-NEXT: $vgpr0 = COPY [[FLDEXP]](s32)120    %0:_(s64) = COPY $vgpr0_vgpr1121    %1:_(s32) = G_UITOFP %0122    $vgpr0 = COPY %1123...124 125---126name: test_uitofp_s64_to_s64127body: |128  bb.0:129    liveins: $vgpr0_vgpr1130 131    ; GFX6-LABEL: name: test_uitofp_s64_to_s64132    ; GFX6: liveins: $vgpr0_vgpr1133    ; GFX6-NEXT: {{  $}}134    ; GFX6-NEXT: [[COPY:%[0-9]+]]:_(s64) = COPY $vgpr0_vgpr1135    ; GFX6-NEXT: [[UV:%[0-9]+]]:_(s32), [[UV1:%[0-9]+]]:_(s32) = G_UNMERGE_VALUES [[COPY]](s64)136    ; GFX6-NEXT: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 32137    ; GFX6-NEXT: [[UITOFP:%[0-9]+]]:_(s64) = G_UITOFP [[UV1]](s32)138    ; GFX6-NEXT: [[UITOFP1:%[0-9]+]]:_(s64) = G_UITOFP [[UV]](s32)139    ; GFX6-NEXT: [[FLDEXP:%[0-9]+]]:_(s64) = G_FLDEXP [[UITOFP]], [[C]](s32)140    ; GFX6-NEXT: [[FADD:%[0-9]+]]:_(s64) = G_FADD [[FLDEXP]], [[UITOFP1]]141    ; GFX6-NEXT: $vgpr0_vgpr1 = COPY [[FADD]](s64)142    ; GFX8-LABEL: name: test_uitofp_s64_to_s64143    ; GFX8: liveins: $vgpr0_vgpr1144    ; GFX8-NEXT: {{  $}}145    ; GFX8-NEXT: [[COPY:%[0-9]+]]:_(s64) = COPY $vgpr0_vgpr1146    ; GFX8-NEXT: [[UV:%[0-9]+]]:_(s32), [[UV1:%[0-9]+]]:_(s32) = G_UNMERGE_VALUES [[COPY]](s64)147    ; GFX8-NEXT: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 32148    ; GFX8-NEXT: [[UITOFP:%[0-9]+]]:_(s64) = G_UITOFP [[UV1]](s32)149    ; GFX8-NEXT: [[UITOFP1:%[0-9]+]]:_(s64) = G_UITOFP [[UV]](s32)150    ; GFX8-NEXT: [[FLDEXP:%[0-9]+]]:_(s64) = G_FLDEXP [[UITOFP]], [[C]](s32)151    ; GFX8-NEXT: [[FADD:%[0-9]+]]:_(s64) = G_FADD [[FLDEXP]], [[UITOFP1]]152    ; GFX8-NEXT: $vgpr0_vgpr1 = COPY [[FADD]](s64)153    %0:_(s64) = COPY $vgpr0_vgpr1154    %1:_(s64) = G_UITOFP %0155    $vgpr0_vgpr1 = COPY %1156...157 158---159name: test_uitofp_s16_to_s16160body: |161  bb.0:162    liveins: $vgpr0163 164    ; GFX6-LABEL: name: test_uitofp_s16_to_s16165    ; GFX6: liveins: $vgpr0166    ; GFX6-NEXT: {{  $}}167    ; GFX6-NEXT: [[COPY:%[0-9]+]]:_(s32) = COPY $vgpr0168    ; GFX6-NEXT: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 65535169    ; GFX6-NEXT: [[AND:%[0-9]+]]:_(s32) = G_AND [[COPY]], [[C]]170    ; GFX6-NEXT: [[UITOFP:%[0-9]+]]:_(s16) = G_UITOFP [[AND]](s32)171    ; GFX6-NEXT: [[ANYEXT:%[0-9]+]]:_(s32) = G_ANYEXT [[UITOFP]](s16)172    ; GFX6-NEXT: $vgpr0 = COPY [[ANYEXT]](s32)173    ; GFX8-LABEL: name: test_uitofp_s16_to_s16174    ; GFX8: liveins: $vgpr0175    ; GFX8-NEXT: {{  $}}176    ; GFX8-NEXT: [[COPY:%[0-9]+]]:_(s32) = COPY $vgpr0177    ; GFX8-NEXT: [[TRUNC:%[0-9]+]]:_(s16) = G_TRUNC [[COPY]](s32)178    ; GFX8-NEXT: [[UITOFP:%[0-9]+]]:_(s16) = G_UITOFP [[TRUNC]](s16)179    ; GFX8-NEXT: [[ANYEXT:%[0-9]+]]:_(s32) = G_ANYEXT [[UITOFP]](s16)180    ; GFX8-NEXT: $vgpr0 = COPY [[ANYEXT]](s32)181    %0:_(s32) = COPY $vgpr0182    %1:_(s16) = G_TRUNC %0183    %2:_(s16) = G_UITOFP %1184    %3:_(s32) = G_ANYEXT %2185    $vgpr0 = COPY %3186...187 188---189name: test_uitofp_s16_to_s32190body: |191  bb.0:192    liveins: $vgpr0193 194    ; GFX6-LABEL: name: test_uitofp_s16_to_s32195    ; GFX6: liveins: $vgpr0196    ; GFX6-NEXT: {{  $}}197    ; GFX6-NEXT: [[COPY:%[0-9]+]]:_(s32) = COPY $vgpr0198    ; GFX6-NEXT: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 65535199    ; GFX6-NEXT: [[AND:%[0-9]+]]:_(s32) = G_AND [[COPY]], [[C]]200    ; GFX6-NEXT: [[UITOFP:%[0-9]+]]:_(s32) = G_UITOFP [[AND]](s32)201    ; GFX6-NEXT: $vgpr0 = COPY [[UITOFP]](s32)202    ; GFX8-LABEL: name: test_uitofp_s16_to_s32203    ; GFX8: liveins: $vgpr0204    ; GFX8-NEXT: {{  $}}205    ; GFX8-NEXT: [[COPY:%[0-9]+]]:_(s32) = COPY $vgpr0206    ; GFX8-NEXT: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 65535207    ; GFX8-NEXT: [[AND:%[0-9]+]]:_(s32) = G_AND [[COPY]], [[C]]208    ; GFX8-NEXT: [[UITOFP:%[0-9]+]]:_(s32) = G_UITOFP [[AND]](s32)209    ; GFX8-NEXT: $vgpr0 = COPY [[UITOFP]](s32)210    %0:_(s32) = COPY $vgpr0211    %1:_(s16) = G_TRUNC %0212    %2:_(s32) = G_UITOFP %1213    $vgpr0 = COPY %2214...215 216---217name: test_uitofp_s16_to_s64218body: |219  bb.0:220    liveins: $vgpr0221 222    ; GFX6-LABEL: name: test_uitofp_s16_to_s64223    ; GFX6: liveins: $vgpr0224    ; GFX6-NEXT: {{  $}}225    ; GFX6-NEXT: [[COPY:%[0-9]+]]:_(s32) = COPY $vgpr0226    ; GFX6-NEXT: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 65535227    ; GFX6-NEXT: [[AND:%[0-9]+]]:_(s32) = G_AND [[COPY]], [[C]]228    ; GFX6-NEXT: [[UITOFP:%[0-9]+]]:_(s64) = G_UITOFP [[AND]](s32)229    ; GFX6-NEXT: $vgpr0_vgpr1 = COPY [[UITOFP]](s64)230    ; GFX8-LABEL: name: test_uitofp_s16_to_s64231    ; GFX8: liveins: $vgpr0232    ; GFX8-NEXT: {{  $}}233    ; GFX8-NEXT: [[COPY:%[0-9]+]]:_(s32) = COPY $vgpr0234    ; GFX8-NEXT: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 65535235    ; GFX8-NEXT: [[AND:%[0-9]+]]:_(s32) = G_AND [[COPY]], [[C]]236    ; GFX8-NEXT: [[UITOFP:%[0-9]+]]:_(s64) = G_UITOFP [[AND]](s32)237    ; GFX8-NEXT: $vgpr0_vgpr1 = COPY [[UITOFP]](s64)238    %0:_(s32) = COPY $vgpr0239    %1:_(s16) = G_TRUNC %0240    %2:_(s64) = G_UITOFP %1241    $vgpr0_vgpr1 = COPY %2242...243 244---245name: test_uitofp_s8_to_s16246body: |247  bb.0:248    liveins: $vgpr0249 250    ; GFX6-LABEL: name: test_uitofp_s8_to_s16251    ; GFX6: liveins: $vgpr0252    ; GFX6-NEXT: {{  $}}253    ; GFX6-NEXT: [[COPY:%[0-9]+]]:_(s32) = COPY $vgpr0254    ; GFX6-NEXT: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 255255    ; GFX6-NEXT: [[AND:%[0-9]+]]:_(s32) = G_AND [[COPY]], [[C]]256    ; GFX6-NEXT: [[UITOFP:%[0-9]+]]:_(s16) = G_UITOFP [[AND]](s32)257    ; GFX6-NEXT: [[ANYEXT:%[0-9]+]]:_(s32) = G_ANYEXT [[UITOFP]](s16)258    ; GFX6-NEXT: $vgpr0 = COPY [[ANYEXT]](s32)259    ; GFX8-LABEL: name: test_uitofp_s8_to_s16260    ; GFX8: liveins: $vgpr0261    ; GFX8-NEXT: {{  $}}262    ; GFX8-NEXT: [[COPY:%[0-9]+]]:_(s32) = COPY $vgpr0263    ; GFX8-NEXT: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 255264    ; GFX8-NEXT: [[AND:%[0-9]+]]:_(s32) = G_AND [[COPY]], [[C]]265    ; GFX8-NEXT: [[UITOFP:%[0-9]+]]:_(s16) = G_UITOFP [[AND]](s32)266    ; GFX8-NEXT: [[ANYEXT:%[0-9]+]]:_(s32) = G_ANYEXT [[UITOFP]](s16)267    ; GFX8-NEXT: $vgpr0 = COPY [[ANYEXT]](s32)268    %0:_(s32) = COPY $vgpr0269    %1:_(s8) = G_TRUNC %0270    %2:_(s16) = G_UITOFP %1271    %3:_(s32) = G_ANYEXT %2272    $vgpr0 = COPY %3273...274 275---276name: test_uitofp_s8_to_s32277body: |278  bb.0:279    liveins: $vgpr0280 281    ; GFX6-LABEL: name: test_uitofp_s8_to_s32282    ; GFX6: liveins: $vgpr0283    ; GFX6-NEXT: {{  $}}284    ; GFX6-NEXT: [[COPY:%[0-9]+]]:_(s32) = COPY $vgpr0285    ; GFX6-NEXT: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 255286    ; GFX6-NEXT: [[AND:%[0-9]+]]:_(s32) = G_AND [[COPY]], [[C]]287    ; GFX6-NEXT: [[UITOFP:%[0-9]+]]:_(s32) = G_UITOFP [[AND]](s32)288    ; GFX6-NEXT: $vgpr0 = COPY [[UITOFP]](s32)289    ; GFX8-LABEL: name: test_uitofp_s8_to_s32290    ; GFX8: liveins: $vgpr0291    ; GFX8-NEXT: {{  $}}292    ; GFX8-NEXT: [[COPY:%[0-9]+]]:_(s32) = COPY $vgpr0293    ; GFX8-NEXT: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 255294    ; GFX8-NEXT: [[AND:%[0-9]+]]:_(s32) = G_AND [[COPY]], [[C]]295    ; GFX8-NEXT: [[UITOFP:%[0-9]+]]:_(s32) = G_UITOFP [[AND]](s32)296    ; GFX8-NEXT: $vgpr0 = COPY [[UITOFP]](s32)297    %0:_(s32) = COPY $vgpr0298    %1:_(s8) = G_TRUNC %0299    %2:_(s32) = G_UITOFP %1300    $vgpr0 = COPY %2301...302 303---304name: test_uitofp_s8_to_s64305body: |306  bb.0:307    liveins: $vgpr0308 309    ; GFX6-LABEL: name: test_uitofp_s8_to_s64310    ; GFX6: liveins: $vgpr0311    ; GFX6-NEXT: {{  $}}312    ; GFX6-NEXT: [[COPY:%[0-9]+]]:_(s32) = COPY $vgpr0313    ; GFX6-NEXT: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 255314    ; GFX6-NEXT: [[AND:%[0-9]+]]:_(s32) = G_AND [[COPY]], [[C]]315    ; GFX6-NEXT: [[UITOFP:%[0-9]+]]:_(s64) = G_UITOFP [[AND]](s32)316    ; GFX6-NEXT: $vgpr0_vgpr1 = COPY [[UITOFP]](s64)317    ; GFX8-LABEL: name: test_uitofp_s8_to_s64318    ; GFX8: liveins: $vgpr0319    ; GFX8-NEXT: {{  $}}320    ; GFX8-NEXT: [[COPY:%[0-9]+]]:_(s32) = COPY $vgpr0321    ; GFX8-NEXT: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 255322    ; GFX8-NEXT: [[AND:%[0-9]+]]:_(s32) = G_AND [[COPY]], [[C]]323    ; GFX8-NEXT: [[UITOFP:%[0-9]+]]:_(s64) = G_UITOFP [[AND]](s32)324    ; GFX8-NEXT: $vgpr0_vgpr1 = COPY [[UITOFP]](s64)325    %0:_(s32) = COPY $vgpr0326    %1:_(s8) = G_TRUNC %0327    %2:_(s64) = G_UITOFP %1328    $vgpr0_vgpr1 = COPY %2329...330 331---332name: test_uitofp_s1_to_s16333body: |334  bb.0:335    liveins: $vgpr0336 337    ; GFX6-LABEL: name: test_uitofp_s1_to_s16338    ; GFX6: liveins: $vgpr0339    ; GFX6-NEXT: {{  $}}340    ; GFX6-NEXT: [[COPY:%[0-9]+]]:_(s32) = COPY $vgpr0341    ; GFX6-NEXT: [[TRUNC:%[0-9]+]]:_(s1) = G_TRUNC [[COPY]](s32)342    ; GFX6-NEXT: [[C:%[0-9]+]]:_(s16) = G_FCONSTANT half 0xH3C00343    ; GFX6-NEXT: [[C1:%[0-9]+]]:_(s16) = G_FCONSTANT half 0xH0000344    ; GFX6-NEXT: [[SELECT:%[0-9]+]]:_(s16) = G_SELECT [[TRUNC]](s1), [[C]], [[C1]]345    ; GFX6-NEXT: [[ANYEXT:%[0-9]+]]:_(s32) = G_ANYEXT [[SELECT]](s16)346    ; GFX6-NEXT: $vgpr0 = COPY [[ANYEXT]](s32)347    ; GFX8-LABEL: name: test_uitofp_s1_to_s16348    ; GFX8: liveins: $vgpr0349    ; GFX8-NEXT: {{  $}}350    ; GFX8-NEXT: [[COPY:%[0-9]+]]:_(s32) = COPY $vgpr0351    ; GFX8-NEXT: [[TRUNC:%[0-9]+]]:_(s1) = G_TRUNC [[COPY]](s32)352    ; GFX8-NEXT: [[C:%[0-9]+]]:_(s16) = G_FCONSTANT half 0xH3C00353    ; GFX8-NEXT: [[C1:%[0-9]+]]:_(s16) = G_FCONSTANT half 0xH0000354    ; GFX8-NEXT: [[SELECT:%[0-9]+]]:_(s16) = G_SELECT [[TRUNC]](s1), [[C]], [[C1]]355    ; GFX8-NEXT: [[ANYEXT:%[0-9]+]]:_(s32) = G_ANYEXT [[SELECT]](s16)356    ; GFX8-NEXT: $vgpr0 = COPY [[ANYEXT]](s32)357    %0:_(s32) = COPY $vgpr0358    %1:_(s1) = G_TRUNC %0359    %2:_(s16) = G_UITOFP %1360    %3:_(s32) = G_ANYEXT %2361    $vgpr0 = COPY %3362...363 364---365name: test_uitofp_s1_to_s32366body: |367  bb.0:368    liveins: $vgpr0369 370    ; GFX6-LABEL: name: test_uitofp_s1_to_s32371    ; GFX6: liveins: $vgpr0372    ; GFX6-NEXT: {{  $}}373    ; GFX6-NEXT: [[COPY:%[0-9]+]]:_(s32) = COPY $vgpr0374    ; GFX6-NEXT: [[TRUNC:%[0-9]+]]:_(s1) = G_TRUNC [[COPY]](s32)375    ; GFX6-NEXT: [[C:%[0-9]+]]:_(s32) = G_FCONSTANT float 1.000000e+00376    ; GFX6-NEXT: [[C1:%[0-9]+]]:_(s32) = G_FCONSTANT float 0.000000e+00377    ; GFX6-NEXT: [[SELECT:%[0-9]+]]:_(s32) = G_SELECT [[TRUNC]](s1), [[C]], [[C1]]378    ; GFX6-NEXT: $vgpr0 = COPY [[SELECT]](s32)379    ; GFX8-LABEL: name: test_uitofp_s1_to_s32380    ; GFX8: liveins: $vgpr0381    ; GFX8-NEXT: {{  $}}382    ; GFX8-NEXT: [[COPY:%[0-9]+]]:_(s32) = COPY $vgpr0383    ; GFX8-NEXT: [[TRUNC:%[0-9]+]]:_(s1) = G_TRUNC [[COPY]](s32)384    ; GFX8-NEXT: [[C:%[0-9]+]]:_(s32) = G_FCONSTANT float 1.000000e+00385    ; GFX8-NEXT: [[C1:%[0-9]+]]:_(s32) = G_FCONSTANT float 0.000000e+00386    ; GFX8-NEXT: [[SELECT:%[0-9]+]]:_(s32) = G_SELECT [[TRUNC]](s1), [[C]], [[C1]]387    ; GFX8-NEXT: $vgpr0 = COPY [[SELECT]](s32)388    %0:_(s32) = COPY $vgpr0389    %1:_(s1) = G_TRUNC %0390    %2:_(s32) = G_UITOFP %1391    $vgpr0 = COPY %2392...393 394---395name: test_uitofp_s1_to_s64396body: |397  bb.0:398    liveins: $vgpr0399 400    ; GFX6-LABEL: name: test_uitofp_s1_to_s64401    ; GFX6: liveins: $vgpr0402    ; GFX6-NEXT: {{  $}}403    ; GFX6-NEXT: [[COPY:%[0-9]+]]:_(s32) = COPY $vgpr0404    ; GFX6-NEXT: [[TRUNC:%[0-9]+]]:_(s1) = G_TRUNC [[COPY]](s32)405    ; GFX6-NEXT: [[C:%[0-9]+]]:_(s64) = G_FCONSTANT double 1.000000e+00406    ; GFX6-NEXT: [[C1:%[0-9]+]]:_(s64) = G_FCONSTANT double 0.000000e+00407    ; GFX6-NEXT: [[SELECT:%[0-9]+]]:_(s64) = G_SELECT [[TRUNC]](s1), [[C]], [[C1]]408    ; GFX6-NEXT: $vgpr0_vgpr1 = COPY [[SELECT]](s64)409    ; GFX8-LABEL: name: test_uitofp_s1_to_s64410    ; GFX8: liveins: $vgpr0411    ; GFX8-NEXT: {{  $}}412    ; GFX8-NEXT: [[COPY:%[0-9]+]]:_(s32) = COPY $vgpr0413    ; GFX8-NEXT: [[TRUNC:%[0-9]+]]:_(s1) = G_TRUNC [[COPY]](s32)414    ; GFX8-NEXT: [[C:%[0-9]+]]:_(s64) = G_FCONSTANT double 1.000000e+00415    ; GFX8-NEXT: [[C1:%[0-9]+]]:_(s64) = G_FCONSTANT double 0.000000e+00416    ; GFX8-NEXT: [[SELECT:%[0-9]+]]:_(s64) = G_SELECT [[TRUNC]](s1), [[C]], [[C1]]417    ; GFX8-NEXT: $vgpr0_vgpr1 = COPY [[SELECT]](s64)418    %0:_(s32) = COPY $vgpr0419    %1:_(s1) = G_TRUNC %0420    %2:_(s64) = G_UITOFP %1421    $vgpr0_vgpr1 = COPY %2422...423 424---425name: test_uitofp_s33_to_s32426body: |427  bb.0:428    liveins: $vgpr0_vgpr1429 430    ; GFX6-LABEL: name: test_uitofp_s33_to_s32431    ; GFX6: liveins: $vgpr0_vgpr1432    ; GFX6-NEXT: {{  $}}433    ; GFX6-NEXT: [[COPY:%[0-9]+]]:_(s64) = COPY $vgpr0_vgpr1434    ; GFX6-NEXT: [[C:%[0-9]+]]:_(s64) = G_CONSTANT i64 8589934591435    ; GFX6-NEXT: [[AND:%[0-9]+]]:_(s64) = G_AND [[COPY]], [[C]]436    ; GFX6-NEXT: [[UV:%[0-9]+]]:_(s32), [[UV1:%[0-9]+]]:_(s32) = G_UNMERGE_VALUES [[AND]](s64)437    ; GFX6-NEXT: [[C1:%[0-9]+]]:_(s32) = G_CONSTANT i32 32438    ; GFX6-NEXT: [[C2:%[0-9]+]]:_(s32) = G_CONSTANT i32 1439    ; GFX6-NEXT: [[AMDGPU_FFBH_U32_:%[0-9]+]]:_(s32) = G_AMDGPU_FFBH_U32 [[UV1]](s32)440    ; GFX6-NEXT: [[UMIN:%[0-9]+]]:_(s32) = G_UMIN [[AMDGPU_FFBH_U32_]], [[C1]]441    ; GFX6-NEXT: [[SHL:%[0-9]+]]:_(s64) = G_SHL [[AND]], [[UMIN]](s32)442    ; GFX6-NEXT: [[UV2:%[0-9]+]]:_(s32), [[UV3:%[0-9]+]]:_(s32) = G_UNMERGE_VALUES [[SHL]](s64)443    ; GFX6-NEXT: [[UMIN1:%[0-9]+]]:_(s32) = G_UMIN [[C2]], [[UV2]]444    ; GFX6-NEXT: [[OR:%[0-9]+]]:_(s32) = G_OR [[UV3]], [[UMIN1]]445    ; GFX6-NEXT: [[UITOFP:%[0-9]+]]:_(s32) = G_UITOFP [[OR]](s32)446    ; GFX6-NEXT: [[SUB:%[0-9]+]]:_(s32) = G_SUB [[C1]], [[UMIN]]447    ; GFX6-NEXT: [[FLDEXP:%[0-9]+]]:_(s32) = G_FLDEXP [[UITOFP]], [[SUB]](s32)448    ; GFX6-NEXT: $vgpr0 = COPY [[FLDEXP]](s32)449    ; GFX8-LABEL: name: test_uitofp_s33_to_s32450    ; GFX8: liveins: $vgpr0_vgpr1451    ; GFX8-NEXT: {{  $}}452    ; GFX8-NEXT: [[COPY:%[0-9]+]]:_(s64) = COPY $vgpr0_vgpr1453    ; GFX8-NEXT: [[C:%[0-9]+]]:_(s64) = G_CONSTANT i64 8589934591454    ; GFX8-NEXT: [[AND:%[0-9]+]]:_(s64) = G_AND [[COPY]], [[C]]455    ; GFX8-NEXT: [[UV:%[0-9]+]]:_(s32), [[UV1:%[0-9]+]]:_(s32) = G_UNMERGE_VALUES [[AND]](s64)456    ; GFX8-NEXT: [[C1:%[0-9]+]]:_(s32) = G_CONSTANT i32 32457    ; GFX8-NEXT: [[C2:%[0-9]+]]:_(s32) = G_CONSTANT i32 1458    ; GFX8-NEXT: [[AMDGPU_FFBH_U32_:%[0-9]+]]:_(s32) = G_AMDGPU_FFBH_U32 [[UV1]](s32)459    ; GFX8-NEXT: [[UMIN:%[0-9]+]]:_(s32) = G_UMIN [[AMDGPU_FFBH_U32_]], [[C1]]460    ; GFX8-NEXT: [[SHL:%[0-9]+]]:_(s64) = G_SHL [[AND]], [[UMIN]](s32)461    ; GFX8-NEXT: [[UV2:%[0-9]+]]:_(s32), [[UV3:%[0-9]+]]:_(s32) = G_UNMERGE_VALUES [[SHL]](s64)462    ; GFX8-NEXT: [[UMIN1:%[0-9]+]]:_(s32) = G_UMIN [[C2]], [[UV2]]463    ; GFX8-NEXT: [[OR:%[0-9]+]]:_(s32) = G_OR [[UV3]], [[UMIN1]]464    ; GFX8-NEXT: [[UITOFP:%[0-9]+]]:_(s32) = G_UITOFP [[OR]](s32)465    ; GFX8-NEXT: [[SUB:%[0-9]+]]:_(s32) = G_SUB [[C1]], [[UMIN]]466    ; GFX8-NEXT: [[FLDEXP:%[0-9]+]]:_(s32) = G_FLDEXP [[UITOFP]], [[SUB]](s32)467    ; GFX8-NEXT: $vgpr0 = COPY [[FLDEXP]](s32)468    %0:_(s64) = COPY $vgpr0_vgpr1469    %1:_(s33) = G_TRUNC %0470    %2:_(s32) = G_UITOFP %1471    $vgpr0 = COPY %2472...473 474---475name: test_uitofp_s64_to_s16476body: |477  bb.0:478    liveins: $vgpr0_vgpr1479 480    ; GFX6-LABEL: name: test_uitofp_s64_to_s16481    ; GFX6: liveins: $vgpr0_vgpr1482    ; GFX6-NEXT: {{  $}}483    ; GFX6-NEXT: [[COPY:%[0-9]+]]:_(s64) = COPY $vgpr0_vgpr1484    ; GFX6-NEXT: [[UV:%[0-9]+]]:_(s32), [[UV1:%[0-9]+]]:_(s32) = G_UNMERGE_VALUES [[COPY]](s64)485    ; GFX6-NEXT: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 32486    ; GFX6-NEXT: [[C1:%[0-9]+]]:_(s32) = G_CONSTANT i32 1487    ; GFX6-NEXT: [[AMDGPU_FFBH_U32_:%[0-9]+]]:_(s32) = G_AMDGPU_FFBH_U32 [[UV1]](s32)488    ; GFX6-NEXT: [[UMIN:%[0-9]+]]:_(s32) = G_UMIN [[AMDGPU_FFBH_U32_]], [[C]]489    ; GFX6-NEXT: [[SHL:%[0-9]+]]:_(s64) = G_SHL [[COPY]], [[UMIN]](s32)490    ; GFX6-NEXT: [[UV2:%[0-9]+]]:_(s32), [[UV3:%[0-9]+]]:_(s32) = G_UNMERGE_VALUES [[SHL]](s64)491    ; GFX6-NEXT: [[UMIN1:%[0-9]+]]:_(s32) = G_UMIN [[C1]], [[UV2]]492    ; GFX6-NEXT: [[OR:%[0-9]+]]:_(s32) = G_OR [[UV3]], [[UMIN1]]493    ; GFX6-NEXT: [[UITOFP:%[0-9]+]]:_(s32) = G_UITOFP [[OR]](s32)494    ; GFX6-NEXT: [[SUB:%[0-9]+]]:_(s32) = G_SUB [[C]], [[UMIN]]495    ; GFX6-NEXT: [[FLDEXP:%[0-9]+]]:_(s32) = G_FLDEXP [[UITOFP]], [[SUB]](s32)496    ; GFX6-NEXT: [[FPTRUNC:%[0-9]+]]:_(s16) = G_FPTRUNC [[FLDEXP]](s32)497    ; GFX6-NEXT: [[ANYEXT:%[0-9]+]]:_(s32) = G_ANYEXT [[FPTRUNC]](s16)498    ; GFX6-NEXT: $vgpr0 = COPY [[ANYEXT]](s32)499    ; GFX8-LABEL: name: test_uitofp_s64_to_s16500    ; GFX8: liveins: $vgpr0_vgpr1501    ; GFX8-NEXT: {{  $}}502    ; GFX8-NEXT: [[COPY:%[0-9]+]]:_(s64) = COPY $vgpr0_vgpr1503    ; GFX8-NEXT: [[UV:%[0-9]+]]:_(s32), [[UV1:%[0-9]+]]:_(s32) = G_UNMERGE_VALUES [[COPY]](s64)504    ; GFX8-NEXT: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 32505    ; GFX8-NEXT: [[C1:%[0-9]+]]:_(s32) = G_CONSTANT i32 1506    ; GFX8-NEXT: [[AMDGPU_FFBH_U32_:%[0-9]+]]:_(s32) = G_AMDGPU_FFBH_U32 [[UV1]](s32)507    ; GFX8-NEXT: [[UMIN:%[0-9]+]]:_(s32) = G_UMIN [[AMDGPU_FFBH_U32_]], [[C]]508    ; GFX8-NEXT: [[SHL:%[0-9]+]]:_(s64) = G_SHL [[COPY]], [[UMIN]](s32)509    ; GFX8-NEXT: [[UV2:%[0-9]+]]:_(s32), [[UV3:%[0-9]+]]:_(s32) = G_UNMERGE_VALUES [[SHL]](s64)510    ; GFX8-NEXT: [[UMIN1:%[0-9]+]]:_(s32) = G_UMIN [[C1]], [[UV2]]511    ; GFX8-NEXT: [[OR:%[0-9]+]]:_(s32) = G_OR [[UV3]], [[UMIN1]]512    ; GFX8-NEXT: [[UITOFP:%[0-9]+]]:_(s32) = G_UITOFP [[OR]](s32)513    ; GFX8-NEXT: [[SUB:%[0-9]+]]:_(s32) = G_SUB [[C]], [[UMIN]]514    ; GFX8-NEXT: [[FLDEXP:%[0-9]+]]:_(s32) = G_FLDEXP [[UITOFP]], [[SUB]](s32)515    ; GFX8-NEXT: [[FPTRUNC:%[0-9]+]]:_(s16) = G_FPTRUNC [[FLDEXP]](s32)516    ; GFX8-NEXT: [[ANYEXT:%[0-9]+]]:_(s32) = G_ANYEXT [[FPTRUNC]](s16)517    ; GFX8-NEXT: $vgpr0 = COPY [[ANYEXT]](s32)518    %0:_(s64) = COPY $vgpr0_vgpr1519    %1:_(s16) = G_UITOFP %0520    %2:_(s32) = G_ANYEXT %1521    $vgpr0 = COPY %2522...523 524---525name: test_sitofp_v2s64_to_v2s16526body: |527  bb.0:528    liveins: $vgpr0_vgpr1_vgpr2_vgpr3529 530    ; GFX6-LABEL: name: test_sitofp_v2s64_to_v2s16531    ; GFX6: liveins: $vgpr0_vgpr1_vgpr2_vgpr3532    ; GFX6-NEXT: {{  $}}533    ; GFX6-NEXT: [[COPY:%[0-9]+]]:_(<2 x s64>) = COPY $vgpr0_vgpr1_vgpr2_vgpr3534    ; GFX6-NEXT: [[UV:%[0-9]+]]:_(s64), [[UV1:%[0-9]+]]:_(s64) = G_UNMERGE_VALUES [[COPY]](<2 x s64>)535    ; GFX6-NEXT: [[UV2:%[0-9]+]]:_(s32), [[UV3:%[0-9]+]]:_(s32) = G_UNMERGE_VALUES [[UV]](s64)536    ; GFX6-NEXT: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 32537    ; GFX6-NEXT: [[C1:%[0-9]+]]:_(s32) = G_CONSTANT i32 1538    ; GFX6-NEXT: [[AMDGPU_FFBH_U32_:%[0-9]+]]:_(s32) = G_AMDGPU_FFBH_U32 [[UV3]](s32)539    ; GFX6-NEXT: [[UMIN:%[0-9]+]]:_(s32) = G_UMIN [[AMDGPU_FFBH_U32_]], [[C]]540    ; GFX6-NEXT: [[SHL:%[0-9]+]]:_(s64) = G_SHL [[UV]], [[UMIN]](s32)541    ; GFX6-NEXT: [[UV4:%[0-9]+]]:_(s32), [[UV5:%[0-9]+]]:_(s32) = G_UNMERGE_VALUES [[SHL]](s64)542    ; GFX6-NEXT: [[UMIN1:%[0-9]+]]:_(s32) = G_UMIN [[C1]], [[UV4]]543    ; GFX6-NEXT: [[OR:%[0-9]+]]:_(s32) = G_OR [[UV5]], [[UMIN1]]544    ; GFX6-NEXT: [[UITOFP:%[0-9]+]]:_(s32) = G_UITOFP [[OR]](s32)545    ; GFX6-NEXT: [[SUB:%[0-9]+]]:_(s32) = G_SUB [[C]], [[UMIN]]546    ; GFX6-NEXT: [[FLDEXP:%[0-9]+]]:_(s32) = G_FLDEXP [[UITOFP]], [[SUB]](s32)547    ; GFX6-NEXT: [[FPTRUNC:%[0-9]+]]:_(s16) = G_FPTRUNC [[FLDEXP]](s32)548    ; GFX6-NEXT: [[UV6:%[0-9]+]]:_(s32), [[UV7:%[0-9]+]]:_(s32) = G_UNMERGE_VALUES [[UV1]](s64)549    ; GFX6-NEXT: [[AMDGPU_FFBH_U32_1:%[0-9]+]]:_(s32) = G_AMDGPU_FFBH_U32 [[UV7]](s32)550    ; GFX6-NEXT: [[UMIN2:%[0-9]+]]:_(s32) = G_UMIN [[AMDGPU_FFBH_U32_1]], [[C]]551    ; GFX6-NEXT: [[SHL1:%[0-9]+]]:_(s64) = G_SHL [[UV1]], [[UMIN2]](s32)552    ; GFX6-NEXT: [[UV8:%[0-9]+]]:_(s32), [[UV9:%[0-9]+]]:_(s32) = G_UNMERGE_VALUES [[SHL1]](s64)553    ; GFX6-NEXT: [[UMIN3:%[0-9]+]]:_(s32) = G_UMIN [[C1]], [[UV8]]554    ; GFX6-NEXT: [[OR1:%[0-9]+]]:_(s32) = G_OR [[UV9]], [[UMIN3]]555    ; GFX6-NEXT: [[UITOFP1:%[0-9]+]]:_(s32) = G_UITOFP [[OR1]](s32)556    ; GFX6-NEXT: [[SUB1:%[0-9]+]]:_(s32) = G_SUB [[C]], [[UMIN2]]557    ; GFX6-NEXT: [[FLDEXP1:%[0-9]+]]:_(s32) = G_FLDEXP [[UITOFP1]], [[SUB1]](s32)558    ; GFX6-NEXT: [[FPTRUNC1:%[0-9]+]]:_(s16) = G_FPTRUNC [[FLDEXP1]](s32)559    ; GFX6-NEXT: [[ZEXT:%[0-9]+]]:_(s32) = G_ZEXT [[FPTRUNC]](s16)560    ; GFX6-NEXT: [[ZEXT1:%[0-9]+]]:_(s32) = G_ZEXT [[FPTRUNC1]](s16)561    ; GFX6-NEXT: [[C2:%[0-9]+]]:_(s32) = G_CONSTANT i32 16562    ; GFX6-NEXT: [[SHL2:%[0-9]+]]:_(s32) = G_SHL [[ZEXT1]], [[C2]](s32)563    ; GFX6-NEXT: [[OR2:%[0-9]+]]:_(s32) = G_OR [[ZEXT]], [[SHL2]]564    ; GFX6-NEXT: [[BITCAST:%[0-9]+]]:_(<2 x s16>) = G_BITCAST [[OR2]](s32)565    ; GFX6-NEXT: $vgpr0 = COPY [[BITCAST]](<2 x s16>)566    ; GFX8-LABEL: name: test_sitofp_v2s64_to_v2s16567    ; GFX8: liveins: $vgpr0_vgpr1_vgpr2_vgpr3568    ; GFX8-NEXT: {{  $}}569    ; GFX8-NEXT: [[COPY:%[0-9]+]]:_(<2 x s64>) = COPY $vgpr0_vgpr1_vgpr2_vgpr3570    ; GFX8-NEXT: [[UV:%[0-9]+]]:_(s64), [[UV1:%[0-9]+]]:_(s64) = G_UNMERGE_VALUES [[COPY]](<2 x s64>)571    ; GFX8-NEXT: [[UV2:%[0-9]+]]:_(s32), [[UV3:%[0-9]+]]:_(s32) = G_UNMERGE_VALUES [[UV]](s64)572    ; GFX8-NEXT: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 32573    ; GFX8-NEXT: [[C1:%[0-9]+]]:_(s32) = G_CONSTANT i32 1574    ; GFX8-NEXT: [[AMDGPU_FFBH_U32_:%[0-9]+]]:_(s32) = G_AMDGPU_FFBH_U32 [[UV3]](s32)575    ; GFX8-NEXT: [[UMIN:%[0-9]+]]:_(s32) = G_UMIN [[AMDGPU_FFBH_U32_]], [[C]]576    ; GFX8-NEXT: [[SHL:%[0-9]+]]:_(s64) = G_SHL [[UV]], [[UMIN]](s32)577    ; GFX8-NEXT: [[UV4:%[0-9]+]]:_(s32), [[UV5:%[0-9]+]]:_(s32) = G_UNMERGE_VALUES [[SHL]](s64)578    ; GFX8-NEXT: [[UMIN1:%[0-9]+]]:_(s32) = G_UMIN [[C1]], [[UV4]]579    ; GFX8-NEXT: [[OR:%[0-9]+]]:_(s32) = G_OR [[UV5]], [[UMIN1]]580    ; GFX8-NEXT: [[UITOFP:%[0-9]+]]:_(s32) = G_UITOFP [[OR]](s32)581    ; GFX8-NEXT: [[SUB:%[0-9]+]]:_(s32) = G_SUB [[C]], [[UMIN]]582    ; GFX8-NEXT: [[FLDEXP:%[0-9]+]]:_(s32) = G_FLDEXP [[UITOFP]], [[SUB]](s32)583    ; GFX8-NEXT: [[FPTRUNC:%[0-9]+]]:_(s16) = G_FPTRUNC [[FLDEXP]](s32)584    ; GFX8-NEXT: [[UV6:%[0-9]+]]:_(s32), [[UV7:%[0-9]+]]:_(s32) = G_UNMERGE_VALUES [[UV1]](s64)585    ; GFX8-NEXT: [[AMDGPU_FFBH_U32_1:%[0-9]+]]:_(s32) = G_AMDGPU_FFBH_U32 [[UV7]](s32)586    ; GFX8-NEXT: [[UMIN2:%[0-9]+]]:_(s32) = G_UMIN [[AMDGPU_FFBH_U32_1]], [[C]]587    ; GFX8-NEXT: [[SHL1:%[0-9]+]]:_(s64) = G_SHL [[UV1]], [[UMIN2]](s32)588    ; GFX8-NEXT: [[UV8:%[0-9]+]]:_(s32), [[UV9:%[0-9]+]]:_(s32) = G_UNMERGE_VALUES [[SHL1]](s64)589    ; GFX8-NEXT: [[UMIN3:%[0-9]+]]:_(s32) = G_UMIN [[C1]], [[UV8]]590    ; GFX8-NEXT: [[OR1:%[0-9]+]]:_(s32) = G_OR [[UV9]], [[UMIN3]]591    ; GFX8-NEXT: [[UITOFP1:%[0-9]+]]:_(s32) = G_UITOFP [[OR1]](s32)592    ; GFX8-NEXT: [[SUB1:%[0-9]+]]:_(s32) = G_SUB [[C]], [[UMIN2]]593    ; GFX8-NEXT: [[FLDEXP1:%[0-9]+]]:_(s32) = G_FLDEXP [[UITOFP1]], [[SUB1]](s32)594    ; GFX8-NEXT: [[FPTRUNC1:%[0-9]+]]:_(s16) = G_FPTRUNC [[FLDEXP1]](s32)595    ; GFX8-NEXT: [[ZEXT:%[0-9]+]]:_(s32) = G_ZEXT [[FPTRUNC]](s16)596    ; GFX8-NEXT: [[ZEXT1:%[0-9]+]]:_(s32) = G_ZEXT [[FPTRUNC1]](s16)597    ; GFX8-NEXT: [[C2:%[0-9]+]]:_(s32) = G_CONSTANT i32 16598    ; GFX8-NEXT: [[SHL2:%[0-9]+]]:_(s32) = G_SHL [[ZEXT1]], [[C2]](s32)599    ; GFX8-NEXT: [[OR2:%[0-9]+]]:_(s32) = G_OR [[ZEXT]], [[SHL2]]600    ; GFX8-NEXT: [[BITCAST:%[0-9]+]]:_(<2 x s16>) = G_BITCAST [[OR2]](s32)601    ; GFX8-NEXT: $vgpr0 = COPY [[BITCAST]](<2 x s16>)602    %0:_(<2 x s64>) = COPY $vgpr0_vgpr1_vgpr2_vgpr3603    %1:_(<2 x s16>) = G_UITOFP %0604    $vgpr0 = COPY %1605...606