866 lines · plain
1# NOTE: Assertions have been autogenerated by utils/update_mir_test_checks.py2# RUN: llc -mtriple=amdgcn--amdhsa -mcpu=gfx942 -verify-machineinstrs -run-pass peephole-opt -o - %s | FileCheck -check-prefixes=GCN,GFX942 %s3# RUN: llc -mtriple=amdgcn--amdhsa -mcpu=gfx1250 -run-pass peephole-opt -o - %s | FileCheck -check-prefixes=GCN,GFX1250 %s4 5---6name: fold_simm_virtual7body: |8 bb.0:9 10 ; GCN-LABEL: name: fold_simm_virtual11 ; GCN: [[S_MOV_B32_:%[0-9]+]]:sreg_32 = S_MOV_B32 012 ; GCN-NEXT: SI_RETURN_TO_EPILOG13 %0:sreg_32 = S_MOV_B32 014 %1:sreg_32 = COPY killed %015 SI_RETURN_TO_EPILOG16 17...18 19---20name: fold_simm_physical21body: |22 bb.0:23 24 ; GCN-LABEL: name: fold_simm_physical25 ; GCN: [[S_MOV_B32_:%[0-9]+]]:sreg_32 = S_MOV_B32 026 ; GCN-NEXT: $sgpr1 = S_MOV_B32 027 ; GCN-NEXT: SI_RETURN_TO_EPILOG28 %0:sreg_32 = S_MOV_B32 029 $sgpr1 = COPY killed %030 SI_RETURN_TO_EPILOG31 32...33 34---35name: dont_fold_simm_scc36body: |37 bb.0:38 39 ; GCN-LABEL: name: dont_fold_simm_scc40 ; GCN: [[S_MOV_B32_:%[0-9]+]]:sreg_32 = S_MOV_B32 041 ; GCN-NEXT: $scc = COPY killed [[S_MOV_B32_]]42 ; GCN-NEXT: SI_RETURN_TO_EPILOG43 %0:sreg_32 = S_MOV_B32 044 $scc = COPY killed %045 SI_RETURN_TO_EPILOG46 47...48 49---50name: fold_simm_16_sub_to_lo51body: |52 bb.0:53 54 ; GCN-LABEL: name: fold_simm_16_sub_to_lo55 ; GCN: [[S_MOV_B32_:%[0-9]+]]:sreg_32 = S_MOV_B32 204856 ; GCN-NEXT: [[COPY:%[0-9]+]]:sgpr_lo16 = COPY killed [[S_MOV_B32_]].lo1657 ; GCN-NEXT: SI_RETURN_TO_EPILOG [[COPY]]58 %0:sreg_32 = S_MOV_B32 204859 %1:sgpr_lo16 = COPY killed %0.lo1660 SI_RETURN_TO_EPILOG %161 62...63 64---65name: fold_simm_16_sub_to_phys66body: |67 bb.0:68 69 ; GCN-LABEL: name: fold_simm_16_sub_to_phys70 ; GCN: [[S_MOV_B32_:%[0-9]+]]:sreg_32 = S_MOV_B32 204871 ; GCN-NEXT: $sgpr0 = S_MOV_B32 204872 ; GCN-NEXT: SI_RETURN_TO_EPILOG $sgpr0_lo1673 %0:sreg_32 = S_MOV_B32 204874 $sgpr0_lo16 = COPY killed %0.lo1675 SI_RETURN_TO_EPILOG $sgpr0_lo1676 77...78 79---80name: fold_aimm_16_sub_to_phys81body: |82 bb.0:83 84 ; GCN-LABEL: name: fold_aimm_16_sub_to_phys85 ; GCN: [[S_MOV_B32_:%[0-9]+]]:sreg_32 = S_MOV_B32 086 ; GCN-NEXT: $agpr0 = V_ACCVGPR_WRITE_B32_e64 0, implicit $exec87 ; GCN-NEXT: SI_RETURN_TO_EPILOG $agpr0_lo1688 %0:sreg_32 = S_MOV_B32 089 $agpr0_lo16 = COPY killed %0.lo1690 SI_RETURN_TO_EPILOG $agpr0_lo1691 92...93 94---95name: fold_vimm_16_sub_to_lo96body: |97 bb.0:98 99 ; GCN-LABEL: name: fold_vimm_16_sub_to_lo100 ; GCN: [[S_MOV_B32_:%[0-9]+]]:sreg_32 = S_MOV_B32 2048101 ; GCN-NEXT: [[COPY:%[0-9]+]]:vgpr_16 = COPY killed [[S_MOV_B32_]].lo16102 ; GCN-NEXT: SI_RETURN_TO_EPILOG [[COPY]]103 %0:sreg_32 = S_MOV_B32 2048104 %1:vgpr_16 = COPY killed %0.lo16105 SI_RETURN_TO_EPILOG %1106 107...108 109---110name: fold_vimm_16_sub_to_phys111body: |112 bb.0:113 114 ; GCN-LABEL: name: fold_vimm_16_sub_to_phys115 ; GCN: [[S_MOV_B32_:%[0-9]+]]:sreg_32 = S_MOV_B32 2048116 ; GCN-NEXT: $vgpr0_lo16 = COPY killed [[S_MOV_B32_]].lo16117 ; GCN-NEXT: SI_RETURN_TO_EPILOG $vgpr0_lo16118 %0:sreg_32 = S_MOV_B32 2048119 $vgpr0_lo16 = COPY killed %0.lo16120 SI_RETURN_TO_EPILOG $vgpr0_lo16121 122...123 124---125name: fold_sreg_64_sub0_to_vgpr_32126body: |127 bb.0:128 129 ; GCN-LABEL: name: fold_sreg_64_sub0_to_vgpr_32130 ; GCN: [[S_MOV_B:%[0-9]+]]:sreg_64 = S_MOV_B64_IMM_PSEUDO 1311768467750121200131 ; GCN-NEXT: [[V_MOV_B32_e32_:%[0-9]+]]:vgpr_32 = V_MOV_B32_e32 -1412567312, implicit $exec132 ; GCN-NEXT: SI_RETURN_TO_EPILOG [[V_MOV_B32_e32_]]133 %0:sreg_64 = S_MOV_B64_IMM_PSEUDO 1311768467750121200134 %1:vgpr_32 = COPY killed %0.sub0135 SI_RETURN_TO_EPILOG %1136 137...138 139---140name: fold_sreg_64_sub1_to_vgpr_32141body: |142 bb.0:143 144 ; GCN-LABEL: name: fold_sreg_64_sub1_to_vgpr_32145 ; GCN: [[S_MOV_B64_:%[0-9]+]]:sreg_64 = S_MOV_B64 1311768467750121200146 ; GCN-NEXT: [[V_MOV_B32_e32_:%[0-9]+]]:vgpr_32 = V_MOV_B32_e32 305419896, implicit $exec147 ; GCN-NEXT: SI_RETURN_TO_EPILOG [[V_MOV_B32_e32_]]148 %0:sreg_64 = S_MOV_B64 1311768467750121200149 %1:vgpr_32 = COPY killed %0.sub1150 SI_RETURN_TO_EPILOG %1151 152...153 154---155name: fold_vreg_64_sub1_to_vgpr_32156body: |157 bb.0:158 159 ; GCN-LABEL: name: fold_vreg_64_sub1_to_vgpr_32160 ; GCN: [[V_MOV_B:%[0-9]+]]:vreg_64_align2 = V_MOV_B64_PSEUDO 1311768467750121200, implicit $exec161 ; GCN-NEXT: [[V_MOV_B32_e32_:%[0-9]+]]:vgpr_32 = V_MOV_B32_e32 305419896, implicit $exec162 ; GCN-NEXT: SI_RETURN_TO_EPILOG [[V_MOV_B32_e32_]]163 %0:vreg_64_align2 = V_MOV_B64_PSEUDO 1311768467750121200, implicit $exec164 %1:vgpr_32 = COPY killed %0.sub1165 SI_RETURN_TO_EPILOG %1166 167...168 169---170name: fold_sreg_64_to_vreg_64171body: |172 bb.0:173 174 ; GCN-LABEL: name: fold_sreg_64_to_vreg_64175 ; GCN: [[S_MOV_B:%[0-9]+]]:sreg_64 = S_MOV_B64_IMM_PSEUDO 1311768467750121200176 ; GCN-NEXT: [[V_MOV_B:%[0-9]+]]:vreg_64_align2 = V_MOV_B64_PSEUDO 1311768467750121200, implicit $exec177 ; GCN-NEXT: SI_RETURN_TO_EPILOG [[V_MOV_B]]178 %0:sreg_64 = S_MOV_B64_IMM_PSEUDO 1311768467750121200179 %1:vreg_64_align2 = COPY killed %0180 SI_RETURN_TO_EPILOG %1181 182...183 184---185name: fold_sreg_64_to_sreg_64186body: |187 bb.0:188 189 ; GCN-LABEL: name: fold_sreg_64_to_sreg_64190 ; GCN: [[S_MOV_B64_:%[0-9]+]]:sreg_64 = S_MOV_B64 1311768467750121200191 ; GCN-NEXT: SI_RETURN_TO_EPILOG [[S_MOV_B64_]]192 %0:sreg_64 = S_MOV_B64 1311768467750121200193 %1:sreg_64 = COPY killed %0194 SI_RETURN_TO_EPILOG %1195 196...197 198---199name: fold_sreg_64_lo16_to_sgpr_lo16200body: |201 bb.0:202 203 ; GCN-LABEL: name: fold_sreg_64_lo16_to_sgpr_lo16204 ; GCN: [[S_MOV_B:%[0-9]+]]:sreg_64 = S_MOV_B64_IMM_PSEUDO 1125912791875585205 ; GCN-NEXT: $sgpr0 = S_MOV_B32 1206 ; GCN-NEXT: SI_RETURN_TO_EPILOG $sgpr0_lo16207 %0:sreg_64 = S_MOV_B64_IMM_PSEUDO 1125912791875585208 $sgpr0_lo16 = COPY killed %0.lo16209 SI_RETURN_TO_EPILOG $sgpr0_lo16210 211...212 213---214name: fold_sreg_64_hi16_to_sgpr_lo16215body: |216 bb.0:217 218 ; GCN-LABEL: name: fold_sreg_64_hi16_to_sgpr_lo16219 ; GCN: [[S_MOV_B:%[0-9]+]]:sreg_64 = S_MOV_B64_IMM_PSEUDO 1125912791875585220 ; GCN-NEXT: $sgpr0 = S_MOV_B32 2221 ; GCN-NEXT: SI_RETURN_TO_EPILOG $sgpr0_lo16222 %0:sreg_64 = S_MOV_B64_IMM_PSEUDO 1125912791875585223 $sgpr0_lo16 = COPY killed %0.hi16224 SI_RETURN_TO_EPILOG $sgpr0_lo16225 226...227 228---229name: fold_sreg_64_sub1_lo16_to_sgpr_lo16230body: |231 bb.0:232 233 ; GCN-LABEL: name: fold_sreg_64_sub1_lo16_to_sgpr_lo16234 ; GCN: [[S_MOV_B:%[0-9]+]]:sreg_64 = S_MOV_B64_IMM_PSEUDO 1125912791875585235 ; GCN-NEXT: $sgpr0 = S_MOV_B32 3236 ; GCN-NEXT: SI_RETURN_TO_EPILOG $sgpr0_lo16237 %0:sreg_64 = S_MOV_B64_IMM_PSEUDO 1125912791875585238 $sgpr0_lo16 = COPY killed %0.sub1_lo16239 SI_RETURN_TO_EPILOG $sgpr0_lo16240 241...242 243---244name: fold_sreg_64_sub1_hi16_to_sgpr_lo16245body: |246 bb.0:247 248 ; GCN-LABEL: name: fold_sreg_64_sub1_hi16_to_sgpr_lo16249 ; GCN: [[S_MOV_B:%[0-9]+]]:sreg_64 = S_MOV_B64_IMM_PSEUDO 1125912791875585250 ; GCN-NEXT: $sgpr0 = S_MOV_B32 4251 ; GCN-NEXT: SI_RETURN_TO_EPILOG $sgpr0_lo16252 %0:sreg_64 = S_MOV_B64_IMM_PSEUDO 1125912791875585253 $sgpr0_lo16 = COPY killed %0.sub1_hi16254 SI_RETURN_TO_EPILOG $sgpr0_lo16255 256...257 258---259name: fmac_sreg_64_sub0_src0_to_fmamk260tracksRegLiveness: true261body: |262 bb.0:263 264 ; GCN-LABEL: name: fmac_sreg_64_sub0_src0_to_fmamk265 ; GCN: [[DEF:%[0-9]+]]:vgpr_32 = IMPLICIT_DEF266 ; GCN-NEXT: [[DEF1:%[0-9]+]]:vgpr_32 = IMPLICIT_DEF267 ; GCN-NEXT: [[V_FMAMK_F32_:%[0-9]+]]:vgpr_32 = V_FMAMK_F32 [[DEF]], -1412567312, [[DEF1]], implicit $mode, implicit $exec268 ; GCN-NEXT: SI_RETURN_TO_EPILOG [[V_FMAMK_F32_]]269 %0:vgpr_32 = IMPLICIT_DEF270 %1:vgpr_32 = IMPLICIT_DEF271 %2:sreg_64 = S_MOV_B64_IMM_PSEUDO 1311768467750121200272 %3:vgpr_32 = V_FMAC_F32_e64 0, %2.sub0, 0, %0, 0, %1, 0, 0, implicit $mode, implicit $exec273 SI_RETURN_TO_EPILOG %3274...275 276---277name: fmac_sreg_64_sub1_src0_to_fmamk278tracksRegLiveness: true279body: |280 bb.0:281 282 ; GCN-LABEL: name: fmac_sreg_64_sub1_src0_to_fmamk283 ; GCN: [[DEF:%[0-9]+]]:vgpr_32 = IMPLICIT_DEF284 ; GCN-NEXT: [[DEF1:%[0-9]+]]:vgpr_32 = IMPLICIT_DEF285 ; GCN-NEXT: [[V_FMAMK_F32_:%[0-9]+]]:vgpr_32 = V_FMAMK_F32 [[DEF]], 305419896, [[DEF1]], implicit $mode, implicit $exec286 ; GCN-NEXT: SI_RETURN_TO_EPILOG [[V_FMAMK_F32_]]287 %0:vgpr_32 = IMPLICIT_DEF288 %1:vgpr_32 = IMPLICIT_DEF289 %2:sreg_64 = S_MOV_B64_IMM_PSEUDO 1311768467750121200290 %3:vgpr_32 = V_FMAC_F32_e64 0, %2.sub1, 0, %0, 0, %1, 0, 0, implicit $mode, implicit $exec291 SI_RETURN_TO_EPILOG %3292...293 294---295name: fmac_sreg_64_sub1_src1_to_fmaak296tracksRegLiveness: true297body: |298 bb.0:299 300 ; GCN-LABEL: name: fmac_sreg_64_sub1_src1_to_fmaak301 ; GCN: [[DEF:%[0-9]+]]:vgpr_32 = IMPLICIT_DEF302 ; GCN-NEXT: [[DEF1:%[0-9]+]]:vgpr_32 = IMPLICIT_DEF303 ; GCN-NEXT: [[V_FMAMK_F32_:%[0-9]+]]:vgpr_32 = V_FMAMK_F32 [[DEF]], 305419896, [[DEF1]], implicit $mode, implicit $exec304 ; GCN-NEXT: SI_RETURN_TO_EPILOG [[V_FMAMK_F32_]]305 %0:vgpr_32 = IMPLICIT_DEF306 %1:vgpr_32 = IMPLICIT_DEF307 %2:sreg_64 = S_MOV_B64_IMM_PSEUDO 1311768467750121200308 %3:vgpr_32 = V_FMAC_F32_e64 0, %0, 0, %2.sub1, 0, %1, 0, 0, implicit $mode, implicit $exec309 SI_RETURN_TO_EPILOG %3310...311 312---313name: fma_sreg_64_sub0_to_fmaak314tracksRegLiveness: true315body: |316 bb.0:317 318 ; GCN-LABEL: name: fma_sreg_64_sub0_to_fmaak319 ; GCN: [[DEF:%[0-9]+]]:vgpr_32 = IMPLICIT_DEF320 ; GCN-NEXT: [[DEF1:%[0-9]+]]:vgpr_32 = IMPLICIT_DEF321 ; GCN-NEXT: [[V_FMAAK_F32_:%[0-9]+]]:vgpr_32 = V_FMAAK_F32 [[DEF]], [[DEF1]], -1412567312, implicit $mode, implicit $exec322 ; GCN-NEXT: SI_RETURN_TO_EPILOG [[V_FMAAK_F32_]]323 %0:vgpr_32 = IMPLICIT_DEF324 %1:vgpr_32 = IMPLICIT_DEF325 %2:sreg_64 = S_MOV_B64_IMM_PSEUDO 1311768467750121200326 %3:vgpr_32 = V_FMA_F32_e64 0, %0, 0, %1, 0, %2.sub0, 0, 0, implicit $mode, implicit $exec327 SI_RETURN_TO_EPILOG %3328...329 330---331name: fma_sreg_64_sub1_to_fmaak332tracksRegLiveness: true333body: |334 bb.0:335 336 ; GCN-LABEL: name: fma_sreg_64_sub1_to_fmaak337 ; GCN: [[DEF:%[0-9]+]]:vgpr_32 = IMPLICIT_DEF338 ; GCN-NEXT: [[DEF1:%[0-9]+]]:vgpr_32 = IMPLICIT_DEF339 ; GCN-NEXT: [[V_FMAAK_F32_:%[0-9]+]]:vgpr_32 = V_FMAAK_F32 [[DEF]], [[DEF1]], 305419896, implicit $mode, implicit $exec340 ; GCN-NEXT: SI_RETURN_TO_EPILOG [[V_FMAAK_F32_]]341 %0:vgpr_32 = IMPLICIT_DEF342 %1:vgpr_32 = IMPLICIT_DEF343 %2:sreg_64 = S_MOV_B64_IMM_PSEUDO 1311768467750121200344 %3:vgpr_32 = V_FMA_F32_e64 0, %0, 0, %1, 0, %2.sub1, 0, 0, implicit $mode, implicit $exec345 SI_RETURN_TO_EPILOG %3346...347 348---349name: fold_aimm_virtual350body: |351 bb.0:352 353 ; GCN-LABEL: name: fold_aimm_virtual354 ; GCN: [[V_ACCVGPR_WRITE_B32_e64_:%[0-9]+]]:agpr_32 = V_ACCVGPR_WRITE_B32_e64 64, implicit $exec355 ; GCN-NEXT: SI_RETURN_TO_EPILOG implicit [[V_ACCVGPR_WRITE_B32_e64_]]356 %0:agpr_32 = V_ACCVGPR_WRITE_B32_e64 64, implicit $exec357 %1:agpr_32 = COPY killed %0358 SI_RETURN_TO_EPILOG implicit %1359 360...361 362---363name: fold_aimm_virtual_copy_to_vgpr364body: |365 bb.0:366 367 ; GCN-LABEL: name: fold_aimm_virtual_copy_to_vgpr368 ; GCN: [[V_ACCVGPR_WRITE_B32_e64_:%[0-9]+]]:agpr_32 = V_ACCVGPR_WRITE_B32_e64 64, implicit $exec369 ; GCN-NEXT: [[V_MOV_B32_e32_:%[0-9]+]]:vgpr_32 = V_MOV_B32_e32 64, implicit $exec370 ; GCN-NEXT: SI_RETURN_TO_EPILOG implicit [[V_MOV_B32_e32_]]371 %0:agpr_32 = V_ACCVGPR_WRITE_B32_e64 64, implicit $exec372 %1:vgpr_32 = COPY killed %0373 SI_RETURN_TO_EPILOG implicit %1374 375...376 377---378name: fold_v_mov_b64_64_sub0_to_vgpr_32379body: |380 bb.0:381 382 ; GCN-LABEL: name: fold_v_mov_b64_64_sub0_to_vgpr_32383 ; GCN: [[V_MOV_B64_e32_:%[0-9]+]]:vreg_64_align2 = V_MOV_B64_e32 1311768467750121200, implicit $exec384 ; GCN-NEXT: [[V_MOV_B32_e32_:%[0-9]+]]:vgpr_32 = V_MOV_B32_e32 -1412567312, implicit $exec385 ; GCN-NEXT: SI_RETURN_TO_EPILOG [[V_MOV_B32_e32_]]386 %0:vreg_64_align2 = V_MOV_B64_e32 1311768467750121200, implicit $exec387 %1:vgpr_32 = COPY killed %0.sub0388 SI_RETURN_TO_EPILOG %1389 390...391 392---393name: fold_v_mov_b64_64_sub1_to_vgpr_32394body: |395 bb.0:396 397 ; GCN-LABEL: name: fold_v_mov_b64_64_sub1_to_vgpr_32398 ; GCN: [[V_MOV_B64_e32_:%[0-9]+]]:vreg_64_align2 = V_MOV_B64_e32 1311768467750121200, implicit $exec399 ; GCN-NEXT: [[V_MOV_B32_e32_:%[0-9]+]]:vgpr_32 = V_MOV_B32_e32 305419896, implicit $exec400 ; GCN-NEXT: SI_RETURN_TO_EPILOG [[V_MOV_B32_e32_]]401 %0:vreg_64_align2 = V_MOV_B64_e32 1311768467750121200, implicit $exec402 %1:vgpr_32 = COPY killed %0.sub1403 SI_RETURN_TO_EPILOG %1404 405...406 407---408name: fold_v_mov_b64_64409body: |410 bb.0:411 412 ; GCN-LABEL: name: fold_v_mov_b64_64413 ; GCN: [[V_MOV_B64_e32_:%[0-9]+]]:vreg_64_align2 = V_MOV_B64_e32 1311768467750121200, implicit $exec414 ; GCN-NEXT: [[V_MOV_B:%[0-9]+]]:vreg_64_align2 = V_MOV_B64_PSEUDO 1311768467750121200, implicit $exec415 ; GCN-NEXT: SI_RETURN_TO_EPILOG implicit [[V_MOV_B]]416 %0:vreg_64_align2 = V_MOV_B64_e32 1311768467750121200, implicit $exec417 %1:vreg_64_align2 = COPY killed %0418 SI_RETURN_TO_EPILOG implicit %1419 420...421 422---423name: fold_v_mov_b64_64_to_unaligned424body: |425 bb.0:426 ; GCN-LABEL: name: fold_v_mov_b64_64_to_unaligned427 ; GCN: [[V_MOV_B64_e32_:%[0-9]+]]:vreg_64_align2 = V_MOV_B64_e32 1311768467750121200, implicit $exec428 ; GCN-NEXT: [[V_MOV_B:%[0-9]+]]:vreg_64_align2 = V_MOV_B64_PSEUDO 1311768467750121200, implicit $exec429 ; GCN-NEXT: SI_RETURN_TO_EPILOG implicit [[V_MOV_B]]430 %0:vreg_64_align2 = V_MOV_B64_e32 1311768467750121200, implicit $exec431 %1:vreg_64 = COPY killed %0432 SI_RETURN_TO_EPILOG implicit %1433...434 435---436name: fold_v_mov_b64_pseudo_64_to_unaligned437body: |438 bb.0:439 ; GCN-LABEL: name: fold_v_mov_b64_pseudo_64_to_unaligned440 ; GCN: [[V_MOV_B:%[0-9]+]]:vreg_64_align2 = V_MOV_B64_PSEUDO 1311768467750121200, implicit $exec441 ; GCN-NEXT: SI_RETURN_TO_EPILOG implicit [[V_MOV_B]]442 %0:vreg_64_align2 = V_MOV_B64_PSEUDO 1311768467750121200, implicit $exec443 %1:vreg_64 = COPY killed %0444 SI_RETURN_TO_EPILOG implicit %1445...446 447---448name: fold_s_brev_b32_simm_virtual_0449body: |450 bb.0:451 452 ; GCN-LABEL: name: fold_s_brev_b32_simm_virtual_0453 ; GCN: [[S_BREV_B32_:%[0-9]+]]:sreg_32 = S_BREV_B32 1454 ; GCN-NEXT: [[S_MOV_B32_:%[0-9]+]]:sreg_32 = S_MOV_B32 -2147483648455 ; GCN-NEXT: SI_RETURN_TO_EPILOG456 %0:sreg_32 = S_BREV_B32 1457 %1:sreg_32 = COPY killed %0458 SI_RETURN_TO_EPILOG459 460...461 462---463name: fold_s_brev_b32_simm_virtual_1464body: |465 bb.0:466 467 ; GCN-LABEL: name: fold_s_brev_b32_simm_virtual_1468 ; GCN: [[S_BREV_B32_:%[0-9]+]]:sreg_32 = S_BREV_B32 -64469 ; GCN-NEXT: [[S_MOV_B32_:%[0-9]+]]:sreg_32 = S_MOV_B32 67108863470 ; GCN-NEXT: SI_RETURN_TO_EPILOG471 %0:sreg_32 = S_BREV_B32 -64472 %1:sreg_32 = COPY killed %0473 SI_RETURN_TO_EPILOG474 475...476 477---478name: fold_v_bfrev_b32_e32_imm479body: |480 bb.0:481 482 ; GCN-LABEL: name: fold_v_bfrev_b32_e32_imm483 ; GCN: [[V_BFREV_B32_e32_:%[0-9]+]]:vgpr_32 = V_BFREV_B32_e32 1, implicit $exec484 ; GCN-NEXT: [[V_MOV_B32_e32_:%[0-9]+]]:vgpr_32 = V_MOV_B32_e32 -2147483648, implicit $exec485 ; GCN-NEXT: SI_RETURN_TO_EPILOG [[V_MOV_B32_e32_]]486 %0:vgpr_32 = V_BFREV_B32_e32 1, implicit $exec487 %1:vgpr_32 = COPY killed %0488 SI_RETURN_TO_EPILOG %1489 490...491 492---493name: fold_v_bfrev_b32_e64_imm494body: |495 bb.0:496 497 ; GCN-LABEL: name: fold_v_bfrev_b32_e64_imm498 ; GCN: [[V_BFREV_B32_e64_:%[0-9]+]]:vgpr_32 = V_BFREV_B32_e64 1, implicit $exec499 ; GCN-NEXT: [[V_MOV_B32_e32_:%[0-9]+]]:vgpr_32 = V_MOV_B32_e32 -2147483648, implicit $exec500 ; GCN-NEXT: SI_RETURN_TO_EPILOG [[V_MOV_B32_e32_]]501 %0:vgpr_32 = V_BFREV_B32_e64 1, implicit $exec502 %1:vgpr_32 = COPY killed %0503 SI_RETURN_TO_EPILOG %1504 505...506 507---508name: fold_s_not_b32_simm_virtual_0509body: |510 bb.0:511 512 ; GCN-LABEL: name: fold_s_not_b32_simm_virtual_0513 ; GCN: [[S_NOT_B32_:%[0-9]+]]:sreg_32 = S_NOT_B32 1, implicit-def $scc514 ; GCN-NEXT: [[S_MOV_B32_:%[0-9]+]]:sreg_32 = S_MOV_B32 -2515 ; GCN-NEXT: SI_RETURN_TO_EPILOG516 %0:sreg_32 = S_NOT_B32 1, implicit-def $scc517 %1:sreg_32 = COPY killed %0518 SI_RETURN_TO_EPILOG519 520...521 522---523name: fold_s_not_b32_simm_virtual_1524body: |525 bb.0:526 527 ; GCN-LABEL: name: fold_s_not_b32_simm_virtual_1528 ; GCN: [[S_NOT_B32_:%[0-9]+]]:sreg_32 = S_NOT_B32 -64, implicit-def $scc529 ; GCN-NEXT: [[S_MOV_B32_:%[0-9]+]]:sreg_32 = S_MOV_B32 63530 ; GCN-NEXT: SI_RETURN_TO_EPILOG531 %0:sreg_32 = S_NOT_B32 -64, implicit-def $scc532 %1:sreg_32 = COPY killed %0533 SI_RETURN_TO_EPILOG534 535...536 537---538name: fold_v_not_b32_e32_imm539body: |540 bb.0:541 542 ; GCN-LABEL: name: fold_v_not_b32_e32_imm543 ; GCN: [[V_NOT_B32_e32_:%[0-9]+]]:vgpr_32 = V_NOT_B32_e32 1, implicit $exec544 ; GCN-NEXT: [[V_MOV_B32_e32_:%[0-9]+]]:vgpr_32 = V_MOV_B32_e32 -2, implicit $exec545 ; GCN-NEXT: SI_RETURN_TO_EPILOG [[V_MOV_B32_e32_]]546 %0:vgpr_32 = V_NOT_B32_e32 1, implicit $exec547 %1:vgpr_32 = COPY killed %0548 SI_RETURN_TO_EPILOG %1549 550...551 552---553name: fold_v_not_b32_e64_imm554body: |555 bb.0:556 557 ; GCN-LABEL: name: fold_v_not_b32_e64_imm558 ; GCN: [[V_NOT_B32_e64_:%[0-9]+]]:vgpr_32 = V_NOT_B32_e64 1, implicit $exec559 ; GCN-NEXT: [[V_MOV_B32_e32_:%[0-9]+]]:vgpr_32 = V_MOV_B32_e32 -2, implicit $exec560 ; GCN-NEXT: SI_RETURN_TO_EPILOG [[V_MOV_B32_e32_]]561 %0:vgpr_32 = V_NOT_B32_e64 1, implicit $exec562 %1:vgpr_32 = COPY killed %0563 SI_RETURN_TO_EPILOG %1564 565...566 567---568name: fmac_sreg_64_src0_to_fmamk_f64569tracksRegLiveness: true570body: |571 bb.0:572 573 ; GFX942-LABEL: name: fmac_sreg_64_src0_to_fmamk_f64574 ; GFX942: [[DEF:%[0-9]+]]:vreg_64_align2 = IMPLICIT_DEF575 ; GFX942-NEXT: [[DEF1:%[0-9]+]]:vreg_64_align2 = IMPLICIT_DEF576 ; GFX942-NEXT: [[S_MOV_B:%[0-9]+]]:sreg_64 = S_MOV_B64_IMM_PSEUDO 1311768467750121200577 ; GFX942-NEXT: [[V_FMAC_F64_e64_:%[0-9]+]]:vreg_64_align2 = V_FMAC_F64_e64 0, [[S_MOV_B]], 0, [[DEF]], 0, [[DEF1]], 0, 0, implicit $mode, implicit $exec578 ; GFX942-NEXT: SI_RETURN_TO_EPILOG [[V_FMAC_F64_e64_]]579 ;580 ; GFX1250-LABEL: name: fmac_sreg_64_src0_to_fmamk_f64581 ; GFX1250: [[DEF:%[0-9]+]]:vreg_64_align2 = IMPLICIT_DEF582 ; GFX1250-NEXT: [[DEF1:%[0-9]+]]:vreg_64_align2 = IMPLICIT_DEF583 ; GFX1250-NEXT: [[V_FMAMK_F64_:%[0-9]+]]:vreg_64_align2 = V_FMAMK_F64 [[DEF]], 1311768467750121200, [[DEF1]], implicit $mode, implicit $exec584 ; GFX1250-NEXT: SI_RETURN_TO_EPILOG [[V_FMAMK_F64_]]585 %0:vreg_64_align2 = IMPLICIT_DEF586 %1:vreg_64_align2 = IMPLICIT_DEF587 %2:sreg_64 = S_MOV_B64_IMM_PSEUDO 1311768467750121200588 %3:vreg_64_align2 = V_FMAC_F64_e64 0, %2, 0, %0, 0, %1, 0, 0, implicit $mode, implicit $exec589 SI_RETURN_TO_EPILOG %3590...591 592---593name: fmac_sreg_64_src1_to_fmamk_f64594tracksRegLiveness: true595body: |596 bb.0:597 598 ; GCN-LABEL: name: fmac_sreg_64_src1_to_fmamk_f64599 ; GCN: [[DEF:%[0-9]+]]:vreg_64_align2 = IMPLICIT_DEF600 ; GCN-NEXT: [[DEF1:%[0-9]+]]:vreg_64_align2 = IMPLICIT_DEF601 ; GCN-NEXT: [[S_MOV_B:%[0-9]+]]:sreg_64 = S_MOV_B64_IMM_PSEUDO 1311768467750121200602 ; GCN-NEXT: [[V_FMAC_F64_e64_:%[0-9]+]]:vreg_64_align2 = V_FMAC_F64_e64 0, [[DEF]], 0, [[DEF1]], 0, [[DEF1]], 0, 0, implicit $mode, implicit $exec603 ; GCN-NEXT: SI_RETURN_TO_EPILOG [[V_FMAC_F64_e64_]]604 %0:vreg_64_align2 = IMPLICIT_DEF605 %1:vreg_64_align2 = IMPLICIT_DEF606 %2:sreg_64 = S_MOV_B64_IMM_PSEUDO 1311768467750121200607 %3:vreg_64_align2 = V_FMAC_F64_e64 0, %0, 0, %1, 0, %1, 0, 0, implicit $mode, implicit $exec608 SI_RETURN_TO_EPILOG %3609...610 611---612name: fmac_vreg_64_to_fmaak_f64613tracksRegLiveness: true614body: |615 bb.0:616 617 ; GFX942-LABEL: name: fmac_vreg_64_to_fmaak_f64618 ; GFX942: [[DEF:%[0-9]+]]:vreg_64_align2 = IMPLICIT_DEF619 ; GFX942-NEXT: [[DEF1:%[0-9]+]]:vreg_64_align2 = IMPLICIT_DEF620 ; GFX942-NEXT: [[V_MOV_B:%[0-9]+]]:vreg_64_align2 = V_MOV_B64_PSEUDO 1311768467750121200, implicit $exec621 ; GFX942-NEXT: [[V_FMAC_F64_e64_:%[0-9]+]]:vreg_64_align2 = V_FMAC_F64_e64 0, [[DEF]], 0, [[DEF1]], 0, [[V_MOV_B]], 0, 0, implicit $mode, implicit $exec622 ; GFX942-NEXT: SI_RETURN_TO_EPILOG [[V_FMAC_F64_e64_]]623 ;624 ; GFX1250-LABEL: name: fmac_vreg_64_to_fmaak_f64625 ; GFX1250: [[DEF:%[0-9]+]]:vreg_64_align2 = IMPLICIT_DEF626 ; GFX1250-NEXT: [[DEF1:%[0-9]+]]:vreg_64_align2 = IMPLICIT_DEF627 ; GFX1250-NEXT: [[V_FMAAK_F64_:%[0-9]+]]:vreg_64_align2 = V_FMAAK_F64 [[DEF]], [[DEF1]], 1311768467750121200, implicit $mode, implicit $exec628 ; GFX1250-NEXT: SI_RETURN_TO_EPILOG [[V_FMAAK_F64_]]629 %0:vreg_64_align2 = IMPLICIT_DEF630 %1:vreg_64_align2 = IMPLICIT_DEF631 %2:vreg_64_align2 = V_MOV_B64_PSEUDO 1311768467750121200, implicit $exec632 %3:vreg_64_align2 = V_FMAC_F64_e64 0, %0, 0, %1, 0, %2, 0, 0, implicit $mode, implicit $exec633 SI_RETURN_TO_EPILOG %3634...635 636---637name: fma_sreg_64_src0_to_fmamk_f64638tracksRegLiveness: true639body: |640 bb.0:641 642 ; GFX942-LABEL: name: fma_sreg_64_src0_to_fmamk_f64643 ; GFX942: [[DEF:%[0-9]+]]:vreg_64_align2 = IMPLICIT_DEF644 ; GFX942-NEXT: [[DEF1:%[0-9]+]]:vreg_64_align2 = IMPLICIT_DEF645 ; GFX942-NEXT: [[S_MOV_B:%[0-9]+]]:sreg_64 = S_MOV_B64_IMM_PSEUDO 1311768467750121200646 ; GFX942-NEXT: [[V_FMA_F64_e64_:%[0-9]+]]:vreg_64_align2 = V_FMA_F64_e64 0, [[S_MOV_B]], 0, [[DEF]], 0, [[DEF1]], 0, 0, implicit $mode, implicit $exec647 ; GFX942-NEXT: SI_RETURN_TO_EPILOG [[V_FMA_F64_e64_]]648 ;649 ; GFX1250-LABEL: name: fma_sreg_64_src0_to_fmamk_f64650 ; GFX1250: [[DEF:%[0-9]+]]:vreg_64_align2 = IMPLICIT_DEF651 ; GFX1250-NEXT: [[DEF1:%[0-9]+]]:vreg_64_align2 = IMPLICIT_DEF652 ; GFX1250-NEXT: [[V_FMAMK_F64_:%[0-9]+]]:vreg_64_align2 = V_FMAMK_F64 [[DEF]], 1311768467750121200, [[DEF1]], implicit $mode, implicit $exec653 ; GFX1250-NEXT: SI_RETURN_TO_EPILOG [[V_FMAMK_F64_]]654 %0:vreg_64_align2 = IMPLICIT_DEF655 %1:vreg_64_align2 = IMPLICIT_DEF656 %2:sreg_64 = S_MOV_B64_IMM_PSEUDO 1311768467750121200657 %3:vreg_64_align2 = V_FMA_F64_e64 0, %2, 0, %0, 0, %1, 0, 0, implicit $mode, implicit $exec658 SI_RETURN_TO_EPILOG %3659...660 661---662name: fma_sreg_64_src1_to_fmamk_f64663tracksRegLiveness: true664body: |665 bb.0:666 667 ; GCN-LABEL: name: fma_sreg_64_src1_to_fmamk_f64668 ; GCN: [[DEF:%[0-9]+]]:vreg_64_align2 = IMPLICIT_DEF669 ; GCN-NEXT: [[DEF1:%[0-9]+]]:vreg_64_align2 = IMPLICIT_DEF670 ; GCN-NEXT: [[S_MOV_B:%[0-9]+]]:sreg_64 = S_MOV_B64_IMM_PSEUDO 1311768467750121200671 ; GCN-NEXT: [[V_FMA_F64_e64_:%[0-9]+]]:vreg_64_align2 = V_FMA_F64_e64 0, [[DEF]], 0, [[DEF1]], 0, [[DEF1]], 0, 0, implicit $mode, implicit $exec672 ; GCN-NEXT: SI_RETURN_TO_EPILOG [[V_FMA_F64_e64_]]673 %0:vreg_64_align2 = IMPLICIT_DEF674 %1:vreg_64_align2 = IMPLICIT_DEF675 %2:sreg_64 = S_MOV_B64_IMM_PSEUDO 1311768467750121200676 %3:vreg_64_align2 = V_FMA_F64_e64 0, %0, 0, %1, 0, %1, 0, 0, implicit $mode, implicit $exec677 SI_RETURN_TO_EPILOG %3678...679 680---681name: fma_vreg_64_to_fmaak_f64682tracksRegLiveness: true683body: |684 bb.0:685 686 ; GFX942-LABEL: name: fma_vreg_64_to_fmaak_f64687 ; GFX942: [[DEF:%[0-9]+]]:vreg_64_align2 = IMPLICIT_DEF688 ; GFX942-NEXT: [[DEF1:%[0-9]+]]:vreg_64_align2 = IMPLICIT_DEF689 ; GFX942-NEXT: [[V_MOV_B:%[0-9]+]]:vreg_64_align2 = V_MOV_B64_PSEUDO 1311768467750121200, implicit $exec690 ; GFX942-NEXT: [[V_FMA_F64_e64_:%[0-9]+]]:vreg_64_align2 = V_FMA_F64_e64 0, [[DEF]], 0, [[DEF1]], 0, [[V_MOV_B]], 0, 0, implicit $mode, implicit $exec691 ; GFX942-NEXT: SI_RETURN_TO_EPILOG [[V_FMA_F64_e64_]]692 ;693 ; GFX1250-LABEL: name: fma_vreg_64_to_fmaak_f64694 ; GFX1250: [[DEF:%[0-9]+]]:vreg_64_align2 = IMPLICIT_DEF695 ; GFX1250-NEXT: [[DEF1:%[0-9]+]]:vreg_64_align2 = IMPLICIT_DEF696 ; GFX1250-NEXT: [[V_FMAAK_F64_:%[0-9]+]]:vreg_64_align2 = V_FMAAK_F64 [[DEF]], [[DEF1]], 1311768467750121200, implicit $mode, implicit $exec697 ; GFX1250-NEXT: SI_RETURN_TO_EPILOG [[V_FMAAK_F64_]]698 %0:vreg_64_align2 = IMPLICIT_DEF699 %1:vreg_64_align2 = IMPLICIT_DEF700 %2:vreg_64_align2 = V_MOV_B64_PSEUDO 1311768467750121200, implicit $exec701 %3:vreg_64_align2 = V_FMA_F64_e64 0, %0, 0, %1, 0, %2, 0, 0, implicit $mode, implicit $exec702 SI_RETURN_TO_EPILOG %3703...704 705---706name: fold_v_mov_b32_e32_literal_to_agpr707body: |708 bb.0:709 ; GCN-LABEL: name: fold_v_mov_b32_e32_literal_to_agpr710 ; GCN: [[V_MOV_B32_e32_:%[0-9]+]]:vgpr_32 = V_MOV_B32_e32 999, implicit $exec711 ; GCN-NEXT: [[COPY:%[0-9]+]]:agpr_32 = COPY killed [[V_MOV_B32_e32_]]712 ; GCN-NEXT: SI_RETURN_TO_EPILOG implicit [[COPY]]713 %0:vgpr_32 = V_MOV_B32_e32 999, implicit $exec714 %1:agpr_32 = COPY killed %0715 SI_RETURN_TO_EPILOG implicit %1716...717 718---719name: fold_v_mov_b32_e32_inlineimm_to_agpr720body: |721 bb.0:722 ; GCN-LABEL: name: fold_v_mov_b32_e32_inlineimm_to_agpr723 ; GCN: [[V_MOV_B32_e32_:%[0-9]+]]:vgpr_32 = V_MOV_B32_e32 64, implicit $exec724 ; GCN-NEXT: [[V_ACCVGPR_WRITE_B32_e64_:%[0-9]+]]:agpr_32 = V_ACCVGPR_WRITE_B32_e64 64, implicit $exec725 ; GCN-NEXT: SI_RETURN_TO_EPILOG implicit [[V_ACCVGPR_WRITE_B32_e64_]]726 %0:vgpr_32 = V_MOV_B32_e32 64, implicit $exec727 %1:agpr_32 = COPY killed %0728 SI_RETURN_TO_EPILOG implicit %1729...730 731---732name: fold_av_mov_b32_imm_pseudo_inlineimm_to_vgpr733body: |734 bb.0:735 ; GCN-LABEL: name: fold_av_mov_b32_imm_pseudo_inlineimm_to_vgpr736 ; GCN: [[AV_MOV_:%[0-9]+]]:av_32 = AV_MOV_B32_IMM_PSEUDO 64, implicit $exec737 ; GCN-NEXT: [[V_MOV_B32_e32_:%[0-9]+]]:vgpr_32 = V_MOV_B32_e32 64, implicit $exec738 ; GCN-NEXT: SI_RETURN_TO_EPILOG implicit [[V_MOV_B32_e32_]]739 %0:av_32 = AV_MOV_B32_IMM_PSEUDO 64, implicit $exec740 %1:vgpr_32 = COPY killed %0741 SI_RETURN_TO_EPILOG implicit %1742...743 744---745name: fold_av_mov_b32_imm_pseudo_inlineimm_to_agpr746body: |747 bb.0:748 ; GCN-LABEL: name: fold_av_mov_b32_imm_pseudo_inlineimm_to_agpr749 ; GCN: [[AV_MOV_:%[0-9]+]]:av_32 = AV_MOV_B32_IMM_PSEUDO 64, implicit $exec750 ; GCN-NEXT: [[V_ACCVGPR_WRITE_B32_e64_:%[0-9]+]]:agpr_32 = V_ACCVGPR_WRITE_B32_e64 64, implicit $exec751 ; GCN-NEXT: SI_RETURN_TO_EPILOG implicit [[V_ACCVGPR_WRITE_B32_e64_]]752 %0:av_32 = AV_MOV_B32_IMM_PSEUDO 64, implicit $exec753 %1:agpr_32 = COPY killed %0754 SI_RETURN_TO_EPILOG implicit %1755...756 757---758name: fold_av_mov_b32_imm_pseudo_inlineimm_to_av759body: |760 bb.0:761 ; GCN-LABEL: name: fold_av_mov_b32_imm_pseudo_inlineimm_to_av762 ; GCN: [[AV_MOV_:%[0-9]+]]:av_32 = AV_MOV_B32_IMM_PSEUDO 64, implicit $exec763 ; GCN-NEXT: [[V_MOV_B32_e32_:%[0-9]+]]:vgpr_32 = V_MOV_B32_e32 64, implicit $exec764 ; GCN-NEXT: SI_RETURN_TO_EPILOG implicit [[V_MOV_B32_e32_]]765 %0:av_32 = AV_MOV_B32_IMM_PSEUDO 64, implicit $exec766 %1:av_32 = COPY killed %0767 SI_RETURN_TO_EPILOG implicit %1768...769 770---771name: fold_av_mov_b64_imm_pseudo_inlineimm_to_vgpr772body: |773 bb.0:774 ; GCN-LABEL: name: fold_av_mov_b64_imm_pseudo_inlineimm_to_vgpr775 ; GCN: [[AV_MOV_:%[0-9]+]]:av_64_align2 = AV_MOV_B64_IMM_PSEUDO 64, implicit $exec776 ; GCN-NEXT: [[V_MOV_B:%[0-9]+]]:vreg_64_align2 = V_MOV_B64_PSEUDO 64, implicit $exec777 ; GCN-NEXT: SI_RETURN_TO_EPILOG implicit [[V_MOV_B]]778 %0:av_64_align2 = AV_MOV_B64_IMM_PSEUDO 64, implicit $exec779 %1:vreg_64_align2 = COPY killed %0780 SI_RETURN_TO_EPILOG implicit %1781...782 783---784name: fold_av_mov_b64_imm_pseudo_inlineimm_to_agpr785body: |786 bb.0:787 ; GCN-LABEL: name: fold_av_mov_b64_imm_pseudo_inlineimm_to_agpr788 ; GCN: [[AV_MOV_:%[0-9]+]]:av_64_align2 = AV_MOV_B64_IMM_PSEUDO 64, implicit $exec789 ; GCN-NEXT: [[COPY:%[0-9]+]]:areg_64_align2 = COPY killed [[AV_MOV_]]790 ; GCN-NEXT: SI_RETURN_TO_EPILOG implicit [[COPY]]791 %0:av_64_align2 = AV_MOV_B64_IMM_PSEUDO 64, implicit $exec792 %1:areg_64_align2 = COPY killed %0793 SI_RETURN_TO_EPILOG implicit %1794...795 796---797name: fold_av_mov_b64_imm_pseudo_inlineimm_to_av798body: |799 bb.0:800 ; GCN-LABEL: name: fold_av_mov_b64_imm_pseudo_inlineimm_to_av801 ; GCN: [[AV_MOV_:%[0-9]+]]:av_64_align2 = AV_MOV_B64_IMM_PSEUDO 64, implicit $exec802 ; GCN-NEXT: [[V_MOV_B:%[0-9]+]]:vreg_64_align2 = V_MOV_B64_PSEUDO 64, implicit $exec803 ; GCN-NEXT: SI_RETURN_TO_EPILOG implicit [[V_MOV_B]]804 %0:av_64_align2 = AV_MOV_B64_IMM_PSEUDO 64, implicit $exec805 %1:av_64_align2 = COPY killed %0806 SI_RETURN_TO_EPILOG implicit %1807...808 809---810name: fold_simm_16_sub_to_lo_from_mov_64_virt_sgpr16811body: |812 bb.0:813 814 ; GCN-LABEL: name: fold_simm_16_sub_to_lo_from_mov_64_virt_sgpr16815 ; GCN: [[S_MOV_B64_:%[0-9]+]]:sreg_64 = S_MOV_B64 64816 ; GCN-NEXT: [[COPY:%[0-9]+]]:sgpr_lo16 = COPY killed [[S_MOV_B64_]].lo16817 ; GCN-NEXT: SI_RETURN_TO_EPILOG [[COPY]]818 %0:sreg_64 = S_MOV_B64 64819 %1:sgpr_lo16 = COPY killed %0.lo16820 SI_RETURN_TO_EPILOG %1821 822...823---824name: fold_simm_16_sub_to_hi_from_mov_64_inline_imm_virt_sgpr16825body: |826 bb.0:827 828 ; GCN-LABEL: name: fold_simm_16_sub_to_hi_from_mov_64_inline_imm_virt_sgpr16829 ; GCN: [[S_MOV_B64_:%[0-9]+]]:sreg_64 = S_MOV_B64 64830 ; GCN-NEXT: [[COPY:%[0-9]+]]:sgpr_lo16 = COPY killed [[S_MOV_B64_]].hi16831 ; GCN-NEXT: SI_RETURN_TO_EPILOG [[COPY]]832 %0:sreg_64 = S_MOV_B64 64833 %1:sgpr_lo16 = COPY killed %0.hi16834 SI_RETURN_TO_EPILOG %1835 836...837 838---839name: fold_simm_16_sub_to_lo_from_mov_64_phys_sgpr16_lo840body: |841 bb.0:842 843 ; GCN-LABEL: name: fold_simm_16_sub_to_lo_from_mov_64_phys_sgpr16_lo844 ; GCN: [[S_MOV_B64_:%[0-9]+]]:sreg_64 = S_MOV_B64 64845 ; GCN-NEXT: $sgpr0 = S_MOV_B32 64846 ; GCN-NEXT: SI_RETURN_TO_EPILOG $sgpr0_lo16847 %0:sreg_64 = S_MOV_B64 64848 $sgpr0_lo16 = COPY killed %0.lo16849 SI_RETURN_TO_EPILOG $sgpr0_lo16850 851...852---853name: fold_simm_16_sub_to_hi_from_mov_64_inline_imm_phys_sgpr16_lo854body: |855 bb.0:856 857 ; GCN-LABEL: name: fold_simm_16_sub_to_hi_from_mov_64_inline_imm_phys_sgpr16_lo858 ; GCN: [[S_MOV_B64_:%[0-9]+]]:sreg_64 = S_MOV_B64 64859 ; GCN-NEXT: $sgpr0 = S_MOV_B32 0860 ; GCN-NEXT: SI_RETURN_TO_EPILOG $sgpr0_lo16861 %0:sreg_64 = S_MOV_B64 64862 $sgpr0_lo16 = COPY killed %0.hi16863 SI_RETURN_TO_EPILOG $sgpr0_lo16864 865...866