brintos

brintos / llvm-project-archived public Read only

0
0
Text · 20.3 KiB · cfb42de Raw
521 lines · plain
1# NOTE: Assertions have been autogenerated by utils/update_mir_test_checks.py UTC_ARGS: --version 32# RUN: llc -mtriple=amdgcn -mcpu=gfx1010 -verify-machineinstrs -run-pass=si-fold-operands -o - %s | FileCheck --check-prefixes=GCN,GFX10 %s3# RUN: llc -mtriple=amdgcn -mcpu=gfx900 -verify-machineinstrs -run-pass=si-fold-operands -o - %s | FileCheck --check-prefixes=GCN,GFX9 %s4 5---6name:            no_fold_fp_64bit_literal_sgpr7tracksRegLiveness: true8body:             |9  bb.0:10 11    ; GCN-LABEL: name: no_fold_fp_64bit_literal_sgpr12    ; GCN: [[DEF:%[0-9]+]]:vreg_64 = IMPLICIT_DEF13    ; GCN-NEXT: [[S_MOV_B:%[0-9]+]]:sreg_64 = S_MOV_B64_IMM_PSEUDO 131176846775012120014    ; GCN-NEXT: [[V_ADD_F64_e64_:%[0-9]+]]:vreg_64 = V_ADD_F64_e64 0, [[S_MOV_B]], 0, [[DEF]], 0, 0, implicit $mode, implicit $exec15    ; GCN-NEXT: SI_RETURN_TO_EPILOG [[V_ADD_F64_e64_]]16    %0:vreg_64 = IMPLICIT_DEF17    %1:sreg_64 = S_MOV_B64_IMM_PSEUDO 131176846775012120018    %2:vreg_64 = V_ADD_F64_e64 0, %1, 0, %0, 0, 0, implicit $mode, implicit $exec19    SI_RETURN_TO_EPILOG %220...21 22---23name:            no_fold_fp_64bit_literal_vgpr24tracksRegLiveness: true25body:             |26  bb.0:27 28    ; GCN-LABEL: name: no_fold_fp_64bit_literal_vgpr29    ; GCN: [[DEF:%[0-9]+]]:vreg_64 = IMPLICIT_DEF30    ; GCN-NEXT: [[V_MOV_B:%[0-9]+]]:vreg_64 = V_MOV_B64_PSEUDO 1311768467750121200, implicit $exec31    ; GCN-NEXT: [[V_ADD_F64_e64_:%[0-9]+]]:vreg_64 = V_ADD_F64_e64 0, [[V_MOV_B]], 0, [[DEF]], 0, 0, implicit $mode, implicit $exec32    ; GCN-NEXT: SI_RETURN_TO_EPILOG [[V_ADD_F64_e64_]]33    %0:vreg_64 = IMPLICIT_DEF34    %1:vreg_64 = V_MOV_B64_PSEUDO 1311768467750121200, implicit $exec35    %2:vreg_64 = V_ADD_F64_e64 0, %1, 0, %0, 0, 0, implicit $mode, implicit $exec36    SI_RETURN_TO_EPILOG %237...38 39---40name:            fold_fp_32bit_literal_sgpr41tracksRegLiveness: true42body:             |43  bb.0:44 45    ; GFX10-LABEL: name: fold_fp_32bit_literal_sgpr46    ; GFX10: [[DEF:%[0-9]+]]:vreg_64 = IMPLICIT_DEF47    ; GFX10-NEXT: [[V_ADD_F64_e64_:%[0-9]+]]:vreg_64 = V_ADD_F64_e64 0, 4636737291354636288, 0, [[DEF]], 0, 0, implicit $mode, implicit $exec48    ; GFX10-NEXT: SI_RETURN_TO_EPILOG [[V_ADD_F64_e64_]]49    ;50    ; GFX9-LABEL: name: fold_fp_32bit_literal_sgpr51    ; GFX9: [[DEF:%[0-9]+]]:vreg_64 = IMPLICIT_DEF52    ; GFX9-NEXT: [[S_MOV_B:%[0-9]+]]:sreg_64 = S_MOV_B64_IMM_PSEUDO 463673729135463628853    ; GFX9-NEXT: [[V_ADD_F64_e64_:%[0-9]+]]:vreg_64 = V_ADD_F64_e64 0, [[S_MOV_B]], 0, [[DEF]], 0, 0, implicit $mode, implicit $exec54    ; GFX9-NEXT: SI_RETURN_TO_EPILOG [[V_ADD_F64_e64_]]55    %0:vreg_64 = IMPLICIT_DEF56    %1:sreg_64 = S_MOV_B64_IMM_PSEUDO 463673729135463628857    %2:vreg_64 = V_ADD_F64_e64 0, %1, 0, %0, 0, 0, implicit $mode, implicit $exec58    SI_RETURN_TO_EPILOG %259...60 61---62name:            no_fold_int_64bit_literal_sgpr63tracksRegLiveness: true64body:             |65  bb.0:66 67    ; GCN-LABEL: name: no_fold_int_64bit_literal_sgpr68    ; GCN: [[DEF:%[0-9]+]]:sreg_64 = IMPLICIT_DEF69    ; GCN-NEXT: [[S_MOV_B:%[0-9]+]]:sreg_64 = S_MOV_B64_IMM_PSEUDO 131176846775012120070    ; GCN-NEXT: [[S_AND_B64_:%[0-9]+]]:sreg_64 = S_AND_B64 [[DEF]], [[S_MOV_B]], implicit-def $scc71    ; GCN-NEXT: SI_RETURN_TO_EPILOG [[S_AND_B64_]]72    %0:sreg_64 = IMPLICIT_DEF73    %1:sreg_64 = S_MOV_B64_IMM_PSEUDO 131176846775012120074    %2:sreg_64 = S_AND_B64 %0, %1, implicit-def $scc75    SI_RETURN_TO_EPILOG %276...77 78---79name:            fold_int_32bit_literal_sgpr80tracksRegLiveness: true81body:             |82  bb.0:83 84    ; GCN-LABEL: name: fold_int_32bit_literal_sgpr85    ; GCN: [[DEF:%[0-9]+]]:sreg_64 = IMPLICIT_DEF86    ; GCN-NEXT: [[S_AND_B64_:%[0-9]+]]:sreg_64 = S_AND_B64 [[DEF]], 2147483647, implicit-def $scc87    ; GCN-NEXT: SI_RETURN_TO_EPILOG [[S_AND_B64_]]88    %0:sreg_64 = IMPLICIT_DEF89    %1:sreg_64 = S_MOV_B64 214748364790    %2:sreg_64 = S_AND_B64 %0, %1, implicit-def $scc91    SI_RETURN_TO_EPILOG %292...93 94# FIXME: This could be folded, but we do not know if operand of S_AND_B64 is signed or unsigned95#        and if it will be sign or zero extended.96 97---98name:            fold_uint_32bit_literal_sgpr99tracksRegLiveness: true100body:             |101  bb.0:102 103    ; GCN-LABEL: name: fold_uint_32bit_literal_sgpr104    ; GCN: [[DEF:%[0-9]+]]:sreg_64 = IMPLICIT_DEF105    ; GCN-NEXT: [[S_MOV_B64_:%[0-9]+]]:sreg_64 = S_MOV_B64 4294967295106    ; GCN-NEXT: [[S_AND_B64_:%[0-9]+]]:sreg_64 = S_AND_B64 [[DEF]], [[S_MOV_B64_]], implicit-def $scc107    ; GCN-NEXT: SI_RETURN_TO_EPILOG [[S_AND_B64_]]108    %0:sreg_64 = IMPLICIT_DEF109    %1:sreg_64 = S_MOV_B64 4294967295110    %2:sreg_64 = S_AND_B64 %0, %1, implicit-def $scc111    SI_RETURN_TO_EPILOG %2112...113 114---115name:            no_fold_v2fp_64bit_literal_sgpr116tracksRegLiveness: true117body:             |118  bb.0:119 120    ; GCN-LABEL: name: no_fold_v2fp_64bit_literal_sgpr121    ; GCN: [[DEF:%[0-9]+]]:vreg_64 = IMPLICIT_DEF122    ; GCN-NEXT: [[V_MOV_B:%[0-9]+]]:vreg_64 = V_MOV_B64_PSEUDO 4629700418019000320, implicit $exec123    ; GCN-NEXT: [[V_PK_ADD_F32_:%[0-9]+]]:vreg_64 = V_PK_ADD_F32 0, [[DEF]], 0, [[V_MOV_B]], 0, 0, 0, 0, 0, implicit $mode, implicit $exec124    ; GCN-NEXT: SI_RETURN_TO_EPILOG [[V_PK_ADD_F32_]]125    %0:vreg_64 = IMPLICIT_DEF126    %1:vreg_64 = V_MOV_B64_PSEUDO 4629700418019000320, implicit $exec127    %2:vreg_64 = V_PK_ADD_F32 0, %0, 0, %1, 0, 0, 0, 0, 0, implicit $mode, implicit $exec128    SI_RETURN_TO_EPILOG %2129...130 131---132name:            fold_v2fp_32bit_literal_sgpr133tracksRegLiveness: true134body:             |135  bb.0:136 137    ; GCN-LABEL: name: fold_v2fp_32bit_literal_sgpr138    ; GCN: [[DEF:%[0-9]+]]:vreg_64 = IMPLICIT_DEF139    ; GCN-NEXT: [[V_PK_ADD_F32_:%[0-9]+]]:vreg_64 = V_PK_ADD_F32 0, [[DEF]], 0, 1065353216, 0, 0, 0, 0, 0, implicit $mode, implicit $exec140    ; GCN-NEXT: SI_RETURN_TO_EPILOG [[V_PK_ADD_F32_]]141    %0:vreg_64 = IMPLICIT_DEF142    %1:vreg_64 = V_MOV_B64_PSEUDO 1065353216, implicit $exec143    %2:vreg_64 = V_PK_ADD_F32 0, %0, 0, %1, 0, 0, 0, 0, 0, implicit $mode, implicit $exec144    SI_RETURN_TO_EPILOG %2145...146 147---148name: v_mov_b64_pseudo_imm_0_full_copy_to_f64_use149tracksRegLiveness: true150body:             |151  bb.0:152  liveins: $vgpr0_vgpr1153    ; GCN-LABEL: name: v_mov_b64_pseudo_imm_0_full_copy_to_f64_use154    ; GCN: liveins: $vgpr0_vgpr1155    ; GCN-NEXT: {{  $}}156    ; GCN-NEXT: [[COPY:%[0-9]+]]:vreg_64_align2 = COPY $vgpr0_vgpr1157    ; GCN-NEXT: [[V_ADD_F64_e64_:%[0-9]+]]:vreg_64_align2 = nofpexcept V_ADD_F64_e64 0, [[COPY]], 1, 0, 0, 0, implicit $mode, implicit $exec158    ; GCN-NEXT: $vgpr0_vgpr1 = COPY [[V_ADD_F64_e64_]]159    ; GCN-NEXT: S_ENDPGM 0160    %0:vreg_64_align2 = COPY $vgpr0_vgpr1161    %1:vreg_64_align2 = V_MOV_B64_PSEUDO 0, implicit $exec162    %2:vreg_64_align2 = COPY %1163    %3:vreg_64_align2 = nofpexcept V_ADD_F64_e64 0, %0, 1, %2, 0, 0, implicit $mode, implicit $exec164    $vgpr0_vgpr1 = COPY %3165    S_ENDPGM 0166 167...168 169---170name: v_mov_b64_pseudo_imm_fp64_1_full_copy_to_f64_use171tracksRegLiveness: true172body:             |173  bb.0:174  liveins: $vgpr0_vgpr1175    ; GCN-LABEL: name: v_mov_b64_pseudo_imm_fp64_1_full_copy_to_f64_use176    ; GCN: liveins: $vgpr0_vgpr1177    ; GCN-NEXT: {{  $}}178    ; GCN-NEXT: [[COPY:%[0-9]+]]:vreg_64_align2 = COPY $vgpr0_vgpr1179    ; GCN-NEXT: [[V_ADD_F64_e64_:%[0-9]+]]:vreg_64_align2 = nofpexcept V_ADD_F64_e64 0, [[COPY]], 1, 4607182418800017408, 0, 0, implicit $mode, implicit $exec180    ; GCN-NEXT: $vgpr0_vgpr1 = COPY [[V_ADD_F64_e64_]]181    ; GCN-NEXT: S_ENDPGM 0182    %0:vreg_64_align2 = COPY $vgpr0_vgpr1183    %1:vreg_64_align2 = V_MOV_B64_PSEUDO 4607182418800017408, implicit $exec184    %2:vreg_64_align2 = COPY %1185    %3:vreg_64_align2 = nofpexcept V_ADD_F64_e64 0, %0, 1, %2, 0, 0, implicit $mode, implicit $exec186    $vgpr0_vgpr1 = COPY %3187    S_ENDPGM 0188 189...190 191---192name: v_mov_b64_pseudo_lit_full_copy_to_f64_use193tracksRegLiveness: true194body:             |195  bb.0:196  liveins: $vgpr0_vgpr1197    ; GCN-LABEL: name: v_mov_b64_pseudo_lit_full_copy_to_f64_use198    ; GCN: liveins: $vgpr0_vgpr1199    ; GCN-NEXT: {{  $}}200    ; GCN-NEXT: [[COPY:%[0-9]+]]:vreg_64_align2 = COPY $vgpr0_vgpr1201    ; GCN-NEXT: [[V_MOV_B:%[0-9]+]]:vreg_64_align2 = V_MOV_B64_PSEUDO 4290672329592, implicit $exec202    ; GCN-NEXT: [[V_ADD_F64_e64_:%[0-9]+]]:vreg_64_align2 = nofpexcept V_ADD_F64_e64 0, [[COPY]], 1, [[V_MOV_B]], 0, 0, implicit $mode, implicit $exec203    ; GCN-NEXT: $vgpr0_vgpr1 = COPY [[V_ADD_F64_e64_]]204    ; GCN-NEXT: S_ENDPGM 0205    %0:vreg_64_align2 = COPY $vgpr0_vgpr1206    %1:vreg_64_align2 = V_MOV_B64_PSEUDO 4290672329592, implicit $exec207    %2:vreg_64_align2 = COPY %1208    %3:vreg_64_align2 = nofpexcept V_ADD_F64_e64 0, %0, 1, %2, 0, 0, implicit $mode, implicit $exec209    $vgpr0_vgpr1 = COPY %3210    S_ENDPGM 0211 212...213 214---215name: v_mov_b64_pseudo_imm_fp32_1_splat_full_copy_to_f64_use216tracksRegLiveness: true217body:             |218  bb.0:219  liveins: $vgpr0_vgpr1220    ; GCN-LABEL: name: v_mov_b64_pseudo_imm_fp32_1_splat_full_copy_to_f64_use221    ; GCN: liveins: $vgpr0_vgpr1222    ; GCN-NEXT: {{  $}}223    ; GCN-NEXT: [[COPY:%[0-9]+]]:vreg_64_align2 = COPY $vgpr0_vgpr1224    ; GCN-NEXT: [[V_MOV_B:%[0-9]+]]:vreg_64_align2 = V_MOV_B64_PSEUDO 4575657222473777152, implicit $exec225    ; GCN-NEXT: [[V_ADD_F64_e64_:%[0-9]+]]:vreg_64_align2 = nofpexcept V_ADD_F64_e64 0, [[COPY]], 1, [[V_MOV_B]], 0, 0, implicit $mode, implicit $exec226    ; GCN-NEXT: $vgpr0_vgpr1 = COPY [[V_ADD_F64_e64_]]227    ; GCN-NEXT: S_ENDPGM 0228    %0:vreg_64_align2 = COPY $vgpr0_vgpr1229    %1:vreg_64_align2 = V_MOV_B64_PSEUDO 4575657222473777152, implicit $exec230    %2:vreg_64_align2 = COPY %1231    %3:vreg_64_align2 = nofpexcept V_ADD_F64_e64 0, %0, 1, %2, 0, 0, implicit $mode, implicit $exec232    $vgpr0_vgpr1 = COPY %3233    S_ENDPGM 0234 235...236 237---238name: v_mov_b64_pseudo_imm_fp32_1_splat_copy_extract_sub0_to_f32_use239tracksRegLiveness: true240body:             |241  bb.0:242  liveins: $vgpr0243    ; GCN-LABEL: name: v_mov_b64_pseudo_imm_fp32_1_splat_copy_extract_sub0_to_f32_use244    ; GCN: liveins: $vgpr0245    ; GCN-NEXT: {{  $}}246    ; GCN-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0247    ; GCN-NEXT: [[V_ADD_F32_e64_:%[0-9]+]]:vgpr_32 = nofpexcept V_ADD_F32_e64 0, [[COPY]], 1, 1065353216, 0, 0, implicit $mode, implicit $exec248    ; GCN-NEXT: $vgpr0 = COPY [[V_ADD_F32_e64_]]249    ; GCN-NEXT: S_ENDPGM 0250    %0:vgpr_32 = COPY $vgpr0251    %1:vreg_64_align2 = V_MOV_B64_PSEUDO 4575657222473777152, implicit $exec252    %2:vgpr_32 = COPY %1.sub0253    %3:vgpr_32 = nofpexcept V_ADD_F32_e64 0, %0, 1, %2, 0, 0, implicit $mode, implicit $exec254    $vgpr0 = COPY %3255    S_ENDPGM 0256 257...258 259---260name: v_mov_b64_pseudo_imm_fp32_1_splat_copy_extract_sub1_to_f32_use261tracksRegLiveness: true262body:             |263  bb.0:264  liveins: $vgpr0265    ; GCN-LABEL: name: v_mov_b64_pseudo_imm_fp32_1_splat_copy_extract_sub1_to_f32_use266    ; GCN: liveins: $vgpr0267    ; GCN-NEXT: {{  $}}268    ; GCN-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0269    ; GCN-NEXT: [[V_ADD_F32_e64_:%[0-9]+]]:vgpr_32 = nofpexcept V_ADD_F32_e64 0, [[COPY]], 1, 1065353216, 0, 0, implicit $mode, implicit $exec270    ; GCN-NEXT: $vgpr0 = COPY [[V_ADD_F32_e64_]]271    ; GCN-NEXT: S_ENDPGM 0272    %0:vgpr_32 = COPY $vgpr0273    %1:vreg_64_align2 = V_MOV_B64_PSEUDO 4575657222473777152, implicit $exec274    %2:vgpr_32 = COPY %1.sub1275    %3:vgpr_32 = nofpexcept V_ADD_F32_e64 0, %0, 1, %2, 0, 0, implicit $mode, implicit $exec276    $vgpr0 = COPY %3277    S_ENDPGM 0278 279...280 281---282name: v_mov_b64_pseudo_imm_fp64_1_copy_extract_sub0_to_f32_use283tracksRegLiveness: true284body:             |285  bb.0:286  liveins: $vgpr0287    ; GCN-LABEL: name: v_mov_b64_pseudo_imm_fp64_1_copy_extract_sub0_to_f32_use288    ; GCN: liveins: $vgpr0289    ; GCN-NEXT: {{  $}}290    ; GCN-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0291    ; GCN-NEXT: [[V_ADD_F32_e64_:%[0-9]+]]:vgpr_32 = nofpexcept V_ADD_F32_e64 0, [[COPY]], 1, 0, 0, 0, implicit $mode, implicit $exec292    ; GCN-NEXT: $vgpr0 = COPY [[V_ADD_F32_e64_]]293    ; GCN-NEXT: S_ENDPGM 0294    %0:vgpr_32 = COPY $vgpr0295    %1:vreg_64_align2 = V_MOV_B64_PSEUDO 4607182418800017408, implicit $exec296    %2:vgpr_32 = COPY %1.sub0297    %3:vgpr_32 = nofpexcept V_ADD_F32_e64 0, %0, 1, %2, 0, 0, implicit $mode, implicit $exec298    $vgpr0 = COPY %3299    S_ENDPGM 0300 301...302 303---304name: v_mov_b64_pseudo_imm_fp64_1_copy_extract_sub1_to_f32_use305tracksRegLiveness: true306body:             |307  bb.0:308  liveins: $vgpr0309    ; GFX10-LABEL: name: v_mov_b64_pseudo_imm_fp64_1_copy_extract_sub1_to_f32_use310    ; GFX10: liveins: $vgpr0311    ; GFX10-NEXT: {{  $}}312    ; GFX10-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0313    ; GFX10-NEXT: [[V_ADD_F32_e64_:%[0-9]+]]:vgpr_32 = nofpexcept V_ADD_F32_e64 0, [[COPY]], 1, 1072693248, 0, 0, implicit $mode, implicit $exec314    ; GFX10-NEXT: $vgpr0 = COPY [[V_ADD_F32_e64_]]315    ; GFX10-NEXT: S_ENDPGM 0316    ;317    ; GFX9-LABEL: name: v_mov_b64_pseudo_imm_fp64_1_copy_extract_sub1_to_f32_use318    ; GFX9: liveins: $vgpr0319    ; GFX9-NEXT: {{  $}}320    ; GFX9-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0321    ; GFX9-NEXT: [[V_MOV_B32_e32_:%[0-9]+]]:vgpr_32 = V_MOV_B32_e32 1072693248, implicit $exec322    ; GFX9-NEXT: [[V_ADD_F32_e64_:%[0-9]+]]:vgpr_32 = nofpexcept V_ADD_F32_e64 0, [[COPY]], 1, [[V_MOV_B32_e32_]], 0, 0, implicit $mode, implicit $exec323    ; GFX9-NEXT: $vgpr0 = COPY [[V_ADD_F32_e64_]]324    ; GFX9-NEXT: S_ENDPGM 0325    %0:vgpr_32 = COPY $vgpr0326    %1:vreg_64_align2 = V_MOV_B64_PSEUDO 4607182418800017408, implicit $exec327    %2:vgpr_32 = COPY %1.sub1328    %3:vgpr_32 = nofpexcept V_ADD_F32_e64 0, %0, 1, %2, 0, 0, implicit $mode, implicit $exec329    $vgpr0 = COPY %3330    S_ENDPGM 0331 332...333 334---335name: v_mov_b64_pseudo_imm_fp32_1_fp32_2_copy_extract_sub0_f32_use336tracksRegLiveness: true337body:             |338  bb.0:339  liveins: $vgpr0340    ; GCN-LABEL: name: v_mov_b64_pseudo_imm_fp32_1_fp32_2_copy_extract_sub0_f32_use341    ; GCN: liveins: $vgpr0342    ; GCN-NEXT: {{  $}}343    ; GCN-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0344    ; GCN-NEXT: [[V_ADD_F32_e64_:%[0-9]+]]:vgpr_32 = nofpexcept V_ADD_F32_e64 0, [[COPY]], 1, 1073741824, 0, 0, implicit $mode, implicit $exec345    ; GCN-NEXT: $vgpr0 = COPY [[V_ADD_F32_e64_]]346    ; GCN-NEXT: S_ENDPGM 0347    %0:vgpr_32 = COPY $vgpr0348    %1:vreg_64_align2 = V_MOV_B64_PSEUDO 4575657222482165760, implicit $exec349    %2:vgpr_32 = COPY %1.sub0350    %3:vgpr_32 = nofpexcept V_ADD_F32_e64 0, %0, 1, %2, 0, 0, implicit $mode, implicit $exec351    $vgpr0 = COPY %3352    S_ENDPGM 0353 354...355 356---357name: v_mov_b64_pseudo_imm_fp32_1_fp32_2_copy_extract_sub1_f32_use358tracksRegLiveness: true359body:             |360  bb.0:361  liveins: $vgpr0362    ; GCN-LABEL: name: v_mov_b64_pseudo_imm_fp32_1_fp32_2_copy_extract_sub1_f32_use363    ; GCN: liveins: $vgpr0364    ; GCN-NEXT: {{  $}}365    ; GCN-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0366    ; GCN-NEXT: [[V_ADD_F32_e64_:%[0-9]+]]:vgpr_32 = nofpexcept V_ADD_F32_e64 0, [[COPY]], 1, 1065353216, 0, 0, implicit $mode, implicit $exec367    ; GCN-NEXT: $vgpr0 = COPY [[V_ADD_F32_e64_]]368    ; GCN-NEXT: S_ENDPGM 0369    %0:vgpr_32 = COPY $vgpr0370    %1:vreg_64_align2 = V_MOV_B64_PSEUDO 4575657222482165760, implicit $exec371    %2:vgpr_32 = COPY %1.sub1372    %3:vgpr_32 = nofpexcept V_ADD_F32_e64 0, %0, 1, %2, 0, 0, implicit $mode, implicit $exec373    $vgpr0 = COPY %3374    S_ENDPGM 0375 376...377 378---379name: v_mov_b64_pseudo_imm_fp32_1_splat_direct_subreg_sub0_f32_use380tracksRegLiveness: true381body:             |382  bb.0:383  liveins: $vgpr0384    ; GCN-LABEL: name: v_mov_b64_pseudo_imm_fp32_1_splat_direct_subreg_sub0_f32_use385    ; GCN: liveins: $vgpr0386    ; GCN-NEXT: {{  $}}387    ; GCN-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0388    ; GCN-NEXT: [[V_ADD_F32_e64_:%[0-9]+]]:vgpr_32 = nofpexcept V_ADD_F32_e64 0, [[COPY]], 1, 1065353216, 0, 0, implicit $mode, implicit $exec389    ; GCN-NEXT: $vgpr0 = COPY [[V_ADD_F32_e64_]]390    ; GCN-NEXT: S_ENDPGM 0391    %0:vgpr_32 = COPY $vgpr0392    %1:vreg_64_align2 = V_MOV_B64_PSEUDO 4575657222473777152, implicit $exec393    %2:vgpr_32 = nofpexcept V_ADD_F32_e64 0, %0, 1, %1.sub0, 0, 0, implicit $mode, implicit $exec394    $vgpr0 = COPY %2395    S_ENDPGM 0396 397...398 399---400name: v_mov_b64_pseudo_imm_fp32_1_splat_direct_subreg_sub1_f32_use401tracksRegLiveness: true402body:             |403  bb.0:404  liveins: $vgpr0405    ; GCN-LABEL: name: v_mov_b64_pseudo_imm_fp32_1_splat_direct_subreg_sub1_f32_use406    ; GCN: liveins: $vgpr0407    ; GCN-NEXT: {{  $}}408    ; GCN-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0409    ; GCN-NEXT: [[V_ADD_F32_e64_:%[0-9]+]]:vgpr_32 = nofpexcept V_ADD_F32_e64 0, [[COPY]], 1, 1065353216, 0, 0, implicit $mode, implicit $exec410    ; GCN-NEXT: $vgpr0 = COPY [[V_ADD_F32_e64_]]411    ; GCN-NEXT: S_ENDPGM 0412    %0:vgpr_32 = COPY $vgpr0413    %1:vreg_64_align2 = V_MOV_B64_PSEUDO 4575657222473777152, implicit $exec414    %2:vgpr_32 = nofpexcept V_ADD_F32_e64 0, %0, 1, %1.sub1, 0, 0, implicit $mode, implicit $exec415    $vgpr0 = COPY %2416    S_ENDPGM 0417 418...419 420---421name: v_mov_b64_pseudo_lit_direct_subreg_sub0_f32_use422tracksRegLiveness: true423body:             |424  bb.0:425  liveins: $vgpr0426    ; GFX10-LABEL: name: v_mov_b64_pseudo_lit_direct_subreg_sub0_f32_use427    ; GFX10: liveins: $vgpr0428    ; GFX10-NEXT: {{  $}}429    ; GFX10-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0430    ; GFX10-NEXT: [[V_ADD_F32_e64_:%[0-9]+]]:vgpr_32 = nofpexcept V_ADD_F32_e64 0, [[COPY]], 1, 8888, 0, 0, implicit $mode, implicit $exec431    ; GFX10-NEXT: $vgpr0 = COPY [[V_ADD_F32_e64_]]432    ; GFX10-NEXT: S_ENDPGM 0433    ;434    ; GFX9-LABEL: name: v_mov_b64_pseudo_lit_direct_subreg_sub0_f32_use435    ; GFX9: liveins: $vgpr0436    ; GFX9-NEXT: {{  $}}437    ; GFX9-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0438    ; GFX9-NEXT: [[V_MOV_B:%[0-9]+]]:vreg_64_align2 = V_MOV_B64_PSEUDO 42945378001592, implicit $exec439    ; GFX9-NEXT: [[V_ADD_F32_e64_:%[0-9]+]]:vgpr_32 = nofpexcept V_ADD_F32_e64 0, [[COPY]], 1, [[V_MOV_B]].sub0, 0, 0, implicit $mode, implicit $exec440    ; GFX9-NEXT: $vgpr0 = COPY [[V_ADD_F32_e64_]]441    ; GFX9-NEXT: S_ENDPGM 0442    %0:vgpr_32 = COPY $vgpr0443    %1:vreg_64_align2 = V_MOV_B64_PSEUDO 42945378001592, implicit $exec444    %2:vgpr_32 = nofpexcept V_ADD_F32_e64 0, %0, 1, %1.sub0, 0, 0, implicit $mode, implicit $exec445    $vgpr0 = COPY %2446    S_ENDPGM 0447 448...449 450---451name: v_mov_b64_pseudo_lit_direct_subreg_sub1_f32_use452tracksRegLiveness: true453body:             |454  bb.0:455  liveins: $vgpr0456    ; GFX10-LABEL: name: v_mov_b64_pseudo_lit_direct_subreg_sub1_f32_use457    ; GFX10: liveins: $vgpr0458    ; GFX10-NEXT: {{  $}}459    ; GFX10-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0460    ; GFX10-NEXT: [[V_ADD_F32_e64_:%[0-9]+]]:vgpr_32 = nofpexcept V_ADD_F32_e64 0, [[COPY]], 1, 9999, 0, 0, implicit $mode, implicit $exec461    ; GFX10-NEXT: $vgpr0 = COPY [[V_ADD_F32_e64_]]462    ; GFX10-NEXT: S_ENDPGM 0463    ;464    ; GFX9-LABEL: name: v_mov_b64_pseudo_lit_direct_subreg_sub1_f32_use465    ; GFX9: liveins: $vgpr0466    ; GFX9-NEXT: {{  $}}467    ; GFX9-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0468    ; GFX9-NEXT: [[V_MOV_B:%[0-9]+]]:vreg_64_align2 = V_MOV_B64_PSEUDO 42945378001592, implicit $exec469    ; GFX9-NEXT: [[V_ADD_F32_e64_:%[0-9]+]]:vgpr_32 = nofpexcept V_ADD_F32_e64 0, [[COPY]], 1, [[V_MOV_B]].sub1, 0, 0, implicit $mode, implicit $exec470    ; GFX9-NEXT: $vgpr0 = COPY [[V_ADD_F32_e64_]]471    ; GFX9-NEXT: S_ENDPGM 0472    %0:vgpr_32 = COPY $vgpr0473    %1:vreg_64_align2 = V_MOV_B64_PSEUDO 42945378001592, implicit $exec474    %2:vgpr_32 = nofpexcept V_ADD_F32_e64 0, %0, 1, %1.sub1, 0, 0, implicit $mode, implicit $exec475    $vgpr0 = COPY %2476    S_ENDPGM 0477 478...479 480---481name: v_mov_b64_pseudo_imm_fp32_1_fp32_2_direct_subreg_sub0_f32_use482tracksRegLiveness: true483body:             |484  bb.0:485  liveins: $vgpr0486    ; GCN-LABEL: name: v_mov_b64_pseudo_imm_fp32_1_fp32_2_direct_subreg_sub0_f32_use487    ; GCN: liveins: $vgpr0488    ; GCN-NEXT: {{  $}}489    ; GCN-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0490    ; GCN-NEXT: [[V_ADD_F32_e64_:%[0-9]+]]:vgpr_32 = nofpexcept V_ADD_F32_e64 0, [[COPY]], 1, 1073741824, 0, 0, implicit $mode, implicit $exec491    ; GCN-NEXT: $vgpr0 = COPY [[V_ADD_F32_e64_]]492    ; GCN-NEXT: S_ENDPGM 0493    %0:vgpr_32 = COPY $vgpr0494    %1:vreg_64_align2 = V_MOV_B64_PSEUDO 4575657222482165760, implicit $exec495    %2:vgpr_32 = nofpexcept V_ADD_F32_e64 0, %0, 1, %1.sub0, 0, 0, implicit $mode, implicit $exec496    $vgpr0 = COPY %2497    S_ENDPGM 0498 499...500 501---502name: v_mov_b64_pseudo_imm_fp32_1_fp32_2_direct_subreg_sub1_f32_use503tracksRegLiveness: true504body:             |505  bb.0:506  liveins: $vgpr0507    ; GCN-LABEL: name: v_mov_b64_pseudo_imm_fp32_1_fp32_2_direct_subreg_sub1_f32_use508    ; GCN: liveins: $vgpr0509    ; GCN-NEXT: {{  $}}510    ; GCN-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0511    ; GCN-NEXT: [[V_ADD_F32_e64_:%[0-9]+]]:vgpr_32 = nofpexcept V_ADD_F32_e64 0, [[COPY]], 1, 1065353216, 0, 0, implicit $mode, implicit $exec512    ; GCN-NEXT: $vgpr0 = COPY [[V_ADD_F32_e64_]]513    ; GCN-NEXT: S_ENDPGM 0514    %0:vgpr_32 = COPY $vgpr0515    %1:vreg_64_align2 = V_MOV_B64_PSEUDO 4575657222482165760, implicit $exec516    %2:vgpr_32 = nofpexcept V_ADD_F32_e64 0, %0, 1, %1.sub1, 0, 0, implicit $mode, implicit $exec517    $vgpr0 = COPY %2518    S_ENDPGM 0519 520...521