445 lines · plain
1# NOTE: Assertions have been autogenerated by utils/update_mir_test_checks.py UTC_ARGS: --version 52# RUN: llc -mtriple=amdgcn -mcpu=gfx90a -run-pass=si-fold-operands %s -o - | FileCheck -check-prefix=GCN %s3 4---5name: v_mov_b64_pseudo_imm_0_copy_to_areg_646tracksRegLiveness: true7body: |8 bb.0:9 ; GCN-LABEL: name: v_mov_b64_pseudo_imm_0_copy_to_areg_6410 ; GCN: [[AV_MOV_:%[0-9]+]]:areg_64_align2 = AV_MOV_B64_IMM_PSEUDO 0, implicit $exec11 ; GCN-NEXT: $agpr0_agpr1 = COPY [[AV_MOV_]]12 ; GCN-NEXT: S_ENDPGM 013 %0:vreg_64_align2 = V_MOV_B64_PSEUDO 0, implicit $exec14 %1:areg_64_align2 = COPY %015 $agpr0_agpr1 = COPY %116 S_ENDPGM 017 18...19 20---21name: v_mov_b64_pseudo_imm_neg1_copy_to_areg_6422tracksRegLiveness: true23body: |24 bb.0:25 ; GCN-LABEL: name: v_mov_b64_pseudo_imm_neg1_copy_to_areg_6426 ; GCN: [[AV_MOV_:%[0-9]+]]:areg_64_align2 = AV_MOV_B64_IMM_PSEUDO -1, implicit $exec27 ; GCN-NEXT: $agpr0_agpr1 = COPY [[AV_MOV_]]28 ; GCN-NEXT: S_ENDPGM 029 %0:vreg_64_align2 = V_MOV_B64_PSEUDO -1, implicit $exec30 %1:areg_64_align2 = COPY %031 $agpr0_agpr1 = COPY %132 S_ENDPGM 033 34...35 36---37name: v_mov_b64_pseudo_literal_copy_to_areg_6438tracksRegLiveness: true39body: |40 bb.0:41 ; GCN-LABEL: name: v_mov_b64_pseudo_literal_copy_to_areg_6442 ; GCN: [[V_MOV_B:%[0-9]+]]:vreg_64_align2 = V_MOV_B64_PSEUDO 999, implicit $exec43 ; GCN-NEXT: [[COPY:%[0-9]+]]:areg_64_align2 = COPY [[V_MOV_B]]44 ; GCN-NEXT: $agpr0_agpr1 = COPY [[COPY]]45 ; GCN-NEXT: S_ENDPGM 046 %0:vreg_64_align2 = V_MOV_B64_PSEUDO 999, implicit $exec47 %1:areg_64_align2 = COPY %048 $agpr0_agpr1 = COPY %149 S_ENDPGM 050 51...52 53---54name: v_mov_b64_pseudo_imm_0_copy_sub0_to_agpr_3255tracksRegLiveness: true56body: |57 bb.0:58 ; GCN-LABEL: name: v_mov_b64_pseudo_imm_0_copy_sub0_to_agpr_3259 ; GCN: [[V_ACCVGPR_WRITE_B32_e64_:%[0-9]+]]:agpr_32 = V_ACCVGPR_WRITE_B32_e64 0, implicit $exec60 ; GCN-NEXT: $agpr0 = COPY [[V_ACCVGPR_WRITE_B32_e64_]]61 ; GCN-NEXT: S_ENDPGM 062 %0:vreg_64_align2 = V_MOV_B64_PSEUDO 0, implicit $exec63 %1:agpr_32 = COPY %0.sub064 $agpr0 = COPY %165 S_ENDPGM 066 67...68 69---70name: v_mov_b64_pseudo_imm_0_copy_sub1_to_agpr_3271tracksRegLiveness: true72body: |73 bb.0:74 ; GCN-LABEL: name: v_mov_b64_pseudo_imm_0_copy_sub1_to_agpr_3275 ; GCN: [[V_ACCVGPR_WRITE_B32_e64_:%[0-9]+]]:agpr_32 = V_ACCVGPR_WRITE_B32_e64 0, implicit $exec76 ; GCN-NEXT: $agpr0 = COPY [[V_ACCVGPR_WRITE_B32_e64_]]77 ; GCN-NEXT: S_ENDPGM 078 %0:vreg_64_align2 = V_MOV_B64_PSEUDO 0, implicit $exec79 %1:agpr_32 = COPY %0.sub180 $agpr0 = COPY %181 S_ENDPGM 082 83...84 85---86name: v_mov_b64_pseudo_lit_copy_sub0_to_agpr_3287tracksRegLiveness: true88body: |89 bb.0:90 ; GCN-LABEL: name: v_mov_b64_pseudo_lit_copy_sub0_to_agpr_3291 ; GCN: [[V_MOV_B:%[0-9]+]]:vreg_64_align2 = V_MOV_B64_PSEUDO 4290672329592, implicit $exec92 ; GCN-NEXT: [[V_ACCVGPR_WRITE_B32_e64_:%[0-9]+]]:agpr_32 = V_ACCVGPR_WRITE_B32_e64 [[V_MOV_B]].sub0, implicit $exec93 ; GCN-NEXT: $agpr0 = COPY [[V_ACCVGPR_WRITE_B32_e64_]]94 ; GCN-NEXT: S_ENDPGM 095 %0:vreg_64_align2 = V_MOV_B64_PSEUDO 4290672329592, implicit $exec96 %1:agpr_32 = COPY %0.sub097 $agpr0 = COPY %198 S_ENDPGM 099 100...101 102---103name: v_mov_b64_pseudo_lit_copy_sub1_to_agpr_32104tracksRegLiveness: true105body: |106 bb.0:107 ; GCN-LABEL: name: v_mov_b64_pseudo_lit_copy_sub1_to_agpr_32108 ; GCN: [[V_MOV_B:%[0-9]+]]:vreg_64_align2 = V_MOV_B64_PSEUDO 4290672329592, implicit $exec109 ; GCN-NEXT: [[V_ACCVGPR_WRITE_B32_e64_:%[0-9]+]]:agpr_32 = V_ACCVGPR_WRITE_B32_e64 [[V_MOV_B]].sub1, implicit $exec110 ; GCN-NEXT: $agpr0 = COPY [[V_ACCVGPR_WRITE_B32_e64_]]111 ; GCN-NEXT: S_ENDPGM 0112 %0:vreg_64_align2 = V_MOV_B64_PSEUDO 4290672329592, implicit $exec113 %1:agpr_32 = COPY %0.sub1114 $agpr0 = COPY %1115 S_ENDPGM 0116 117...118 119 120---121name: v_mov_b64_pseudo_imm_0_copy_to_av_64122tracksRegLiveness: true123body: |124 bb.0:125 ; GCN-LABEL: name: v_mov_b64_pseudo_imm_0_copy_to_av_64126 ; GCN: [[AV_MOV_:%[0-9]+]]:av_64_align2 = AV_MOV_B64_IMM_PSEUDO 0, implicit $exec127 ; GCN-NEXT: S_ENDPGM 0, implicit [[AV_MOV_]]128 %0:vreg_64_align2 = V_MOV_B64_PSEUDO 0, implicit $exec129 %1:av_64_align2 = COPY %0130 S_ENDPGM 0, implicit %1131 132...133 134---135name: s_mov_b32_imm_0_copy_to_agpr_32136tracksRegLiveness: true137body: |138 bb.0:139 ; GCN-LABEL: name: s_mov_b32_imm_0_copy_to_agpr_32140 ; GCN: [[V_ACCVGPR_WRITE_B32_e64_:%[0-9]+]]:agpr_32 = V_ACCVGPR_WRITE_B32_e64 0, implicit $exec141 ; GCN-NEXT: S_ENDPGM 0, implicit [[V_ACCVGPR_WRITE_B32_e64_]]142 %0:sreg_32 = S_MOV_B32 0, implicit $exec143 %1:agpr_32 = COPY %0144 S_ENDPGM 0, implicit %1145 146...147 148---149name: s_mov_b32_imm_neg16_copy_to_agpr_32150tracksRegLiveness: true151body: |152 bb.0:153 ; GCN-LABEL: name: s_mov_b32_imm_neg16_copy_to_agpr_32154 ; GCN: [[V_ACCVGPR_WRITE_B32_e64_:%[0-9]+]]:agpr_32 = V_ACCVGPR_WRITE_B32_e64 -16, implicit $exec155 ; GCN-NEXT: S_ENDPGM 0, implicit [[V_ACCVGPR_WRITE_B32_e64_]]156 %0:sreg_32 = S_MOV_B32 -16, implicit $exec157 %1:agpr_32 = COPY %0158 S_ENDPGM 0, implicit %1159 160...161 162---163name: s_mov_b32_imm_65_copy_to_agpr_32164tracksRegLiveness: true165body: |166 bb.0:167 ; GCN-LABEL: name: s_mov_b32_imm_65_copy_to_agpr_32168 ; GCN: [[S_MOV_B32_:%[0-9]+]]:sreg_32 = S_MOV_B32 65, implicit $exec169 ; GCN-NEXT: [[V_ACCVGPR_WRITE_B32_e64_:%[0-9]+]]:agpr_32 = V_ACCVGPR_WRITE_B32_e64 [[S_MOV_B32_]], implicit $exec170 ; GCN-NEXT: S_ENDPGM 0, implicit [[V_ACCVGPR_WRITE_B32_e64_]]171 %0:sreg_32 = S_MOV_B32 65, implicit $exec172 %1:agpr_32 = COPY %0173 S_ENDPGM 0, implicit %1174 175...176 177---178name: s_mov_b32_imm_0_copy_to_av_32179tracksRegLiveness: true180body: |181 bb.0:182 ; GCN-LABEL: name: s_mov_b32_imm_0_copy_to_av_32183 ; GCN: [[AV_MOV_:%[0-9]+]]:av_32 = AV_MOV_B32_IMM_PSEUDO 0, implicit $exec184 ; GCN-NEXT: S_ENDPGM 0, implicit [[AV_MOV_]]185 %0:sreg_32 = S_MOV_B32 0, implicit $exec186 %1:av_32 = COPY %0187 S_ENDPGM 0, implicit %1188 189...190 191---192name: s_mov_b32_imm_neg16_copy_to_av_32193tracksRegLiveness: true194body: |195 bb.0:196 ; GCN-LABEL: name: s_mov_b32_imm_neg16_copy_to_av_32197 ; GCN: [[AV_MOV_:%[0-9]+]]:av_32 = AV_MOV_B32_IMM_PSEUDO -16, implicit $exec198 ; GCN-NEXT: S_ENDPGM 0, implicit [[AV_MOV_]]199 %0:sreg_32 = S_MOV_B32 -16, implicit $exec200 %1:av_32 = COPY %0201 S_ENDPGM 0, implicit %1202 203...204 205---206name: s_mov_b32_imm_65_copy_to_av_32207tracksRegLiveness: true208body: |209 bb.0:210 ; GCN-LABEL: name: s_mov_b32_imm_65_copy_to_av_32211 ; GCN: [[S_MOV_B32_:%[0-9]+]]:sreg_32 = S_MOV_B32 65, implicit $exec212 ; GCN-NEXT: [[COPY:%[0-9]+]]:av_32 = COPY [[S_MOV_B32_]]213 ; GCN-NEXT: S_ENDPGM 0, implicit [[COPY]]214 %0:sreg_32 = S_MOV_B32 65, implicit $exec215 %1:av_32 = COPY %0216 S_ENDPGM 0, implicit %1217 218...219 220---221name: s_mov_b64_imm_0_copy_to_areg_64222tracksRegLiveness: true223body: |224 bb.0:225 ; GCN-LABEL: name: s_mov_b64_imm_0_copy_to_areg_64226 ; GCN: [[AV_MOV_:%[0-9]+]]:areg_64 = AV_MOV_B64_IMM_PSEUDO 0, implicit $exec227 ; GCN-NEXT: S_ENDPGM 0, implicit [[AV_MOV_]]228 %0:sreg_64 = S_MOV_B64 0, implicit $exec229 %1:areg_64 = COPY %0230 S_ENDPGM 0, implicit %1231 232...233 234---235name: s_mov_b64_imm_0_copy_to_areg_64_align2236tracksRegLiveness: true237body: |238 bb.0:239 ; GCN-LABEL: name: s_mov_b64_imm_0_copy_to_areg_64_align2240 ; GCN: [[AV_MOV_:%[0-9]+]]:areg_64_align2 = AV_MOV_B64_IMM_PSEUDO 0, implicit $exec241 ; GCN-NEXT: S_ENDPGM 0, implicit [[AV_MOV_]]242 %0:sreg_64 = S_MOV_B64 0, implicit $exec243 %1:areg_64_align2 = COPY %0244 S_ENDPGM 0, implicit %1245 246...247 248---249name: s_mov_b64_imm_neg16_copy_to_areg_64250tracksRegLiveness: true251body: |252 bb.0:253 ; GCN-LABEL: name: s_mov_b64_imm_neg16_copy_to_areg_64254 ; GCN: [[AV_MOV_:%[0-9]+]]:areg_64 = AV_MOV_B64_IMM_PSEUDO -16, implicit $exec255 ; GCN-NEXT: S_ENDPGM 0, implicit [[AV_MOV_]]256 %0:sreg_64 = S_MOV_B64 -16, implicit $exec257 %1:areg_64 = COPY %0258 S_ENDPGM 0, implicit %1259 260...261 262---263name: s_mov_b64_imm_neg16_copy_to_areg_64_align2264tracksRegLiveness: true265body: |266 bb.0:267 ; GCN-LABEL: name: s_mov_b64_imm_neg16_copy_to_areg_64_align2268 ; GCN: [[AV_MOV_:%[0-9]+]]:areg_64_align2 = AV_MOV_B64_IMM_PSEUDO -16, implicit $exec269 ; GCN-NEXT: S_ENDPGM 0, implicit [[AV_MOV_]]270 %0:sreg_64 = S_MOV_B64 -16, implicit $exec271 %1:areg_64_align2 = COPY %0272 S_ENDPGM 0, implicit %1273 274...275 276---277name: s_mov_b64_imm_0_copy_to_av_64278tracksRegLiveness: true279body: |280 bb.0:281 ; GCN-LABEL: name: s_mov_b64_imm_0_copy_to_av_64282 ; GCN: [[AV_MOV_:%[0-9]+]]:av_64 = AV_MOV_B64_IMM_PSEUDO 0, implicit $exec283 ; GCN-NEXT: S_ENDPGM 0, implicit [[AV_MOV_]]284 %0:sreg_64 = S_MOV_B64 0, implicit $exec285 %1:av_64 = COPY %0286 S_ENDPGM 0, implicit %1287 288...289 290---291name: s_mov_b64_imm_0_copy_to_av_64_align2292tracksRegLiveness: true293body: |294 bb.0:295 ; GCN-LABEL: name: s_mov_b64_imm_0_copy_to_av_64_align2296 ; GCN: [[AV_MOV_:%[0-9]+]]:av_64_align2 = AV_MOV_B64_IMM_PSEUDO 0, implicit $exec297 ; GCN-NEXT: S_ENDPGM 0, implicit [[AV_MOV_]]298 %0:sreg_64 = S_MOV_B64 0, implicit $exec299 %1:av_64_align2 = COPY %0300 S_ENDPGM 0, implicit %1301 302...303 304---305name: s_mov_b64_imm_neg16_copy_to_av_64306tracksRegLiveness: true307body: |308 bb.0:309 ; GCN-LABEL: name: s_mov_b64_imm_neg16_copy_to_av_64310 ; GCN: [[AV_MOV_:%[0-9]+]]:av_64 = AV_MOV_B64_IMM_PSEUDO -16, implicit $exec311 ; GCN-NEXT: S_ENDPGM 0, implicit [[AV_MOV_]]312 %0:sreg_64 = S_MOV_B64 -16, implicit $exec313 %1:av_64 = COPY %0314 S_ENDPGM 0, implicit %1315 316...317 318---319name: s_mov_b64_imm_neg16_copy_to_av_64_align2320tracksRegLiveness: true321body: |322 bb.0:323 ; GCN-LABEL: name: s_mov_b64_imm_neg16_copy_to_av_64_align2324 ; GCN: [[AV_MOV_:%[0-9]+]]:av_64_align2 = AV_MOV_B64_IMM_PSEUDO -16, implicit $exec325 ; GCN-NEXT: S_ENDPGM 0, implicit [[AV_MOV_]]326 %0:sreg_64 = S_MOV_B64 -16, implicit $exec327 %1:av_64_align2 = COPY %0328 S_ENDPGM 0, implicit %1329 330...331 332---333name: s_mov_b64_imm_pseudo_literal_32_halves_copy_to_areg_64334tracksRegLiveness: true335body: |336 bb.0:337 ; GCN-LABEL: name: s_mov_b64_imm_pseudo_literal_32_halves_copy_to_areg_64338 ; GCN: [[AV_MOV_:%[0-9]+]]:areg_64 = AV_MOV_B64_IMM_PSEUDO -42949672960, implicit $exec339 ; GCN-NEXT: S_ENDPGM 0, implicit [[AV_MOV_]]340 %0:sreg_64 = S_MOV_B64_IMM_PSEUDO 18446744030759878656, implicit $exec341 %1:areg_64 = COPY %0342 S_ENDPGM 0, implicit %1343 344...345 346---347name: s_mov_b64_imm_pseudo_literal_32_halves_copy_to_areg_64_align2348tracksRegLiveness: true349body: |350 bb.0:351 ; GCN-LABEL: name: s_mov_b64_imm_pseudo_literal_32_halves_copy_to_areg_64_align2352 ; GCN: [[AV_MOV_:%[0-9]+]]:areg_64_align2 = AV_MOV_B64_IMM_PSEUDO -42949672960, implicit $exec353 ; GCN-NEXT: S_ENDPGM 0, implicit [[AV_MOV_]]354 %0:sreg_64 = S_MOV_B64_IMM_PSEUDO 18446744030759878656, implicit $exec355 %1:areg_64_align2 = COPY %0356 S_ENDPGM 0, implicit %1357 358...359 360---361name: s_mov_b64_imm_pseudo_inlineimm_32_halves_copy_to_areg_64362tracksRegLiveness: true363body: |364 bb.0:365 ; GCN-LABEL: name: s_mov_b64_imm_pseudo_inlineimm_32_halves_copy_to_areg_64366 ; GCN: [[AV_MOV_:%[0-9]+]]:areg_64 = AV_MOV_B64_IMM_PSEUDO -21474836480, implicit $exec367 ; GCN-NEXT: S_ENDPGM 0, implicit [[AV_MOV_]]368 %0:sreg_64 = S_MOV_B64_IMM_PSEUDO 18446744052234715136, implicit $exec369 %1:areg_64 = COPY %0370 S_ENDPGM 0, implicit %1371 372...373 374---375name: s_mov_b64_imm_pseudo_inlineimm_32_halves_copy_to_areg_64_align2376tracksRegLiveness: true377body: |378 bb.0:379 ; GCN-LABEL: name: s_mov_b64_imm_pseudo_inlineimm_32_halves_copy_to_areg_64_align2380 ; GCN: [[AV_MOV_:%[0-9]+]]:areg_64_align2 = AV_MOV_B64_IMM_PSEUDO -21474836480, implicit $exec381 ; GCN-NEXT: S_ENDPGM 0, implicit [[AV_MOV_]]382 %0:sreg_64 = S_MOV_B64_IMM_PSEUDO 18446744052234715136, implicit $exec383 %1:areg_64_align2 = COPY %0384 S_ENDPGM 0, implicit %1385 386...387 388---389name: s_mov_b64_imm_pseudo_literal_32_halves_copy_to_av_64390tracksRegLiveness: true391body: |392 bb.0:393 ; GCN-LABEL: name: s_mov_b64_imm_pseudo_literal_32_halves_copy_to_av_64394 ; GCN: [[AV_MOV_:%[0-9]+]]:av_64 = AV_MOV_B64_IMM_PSEUDO -42949672960, implicit $exec395 ; GCN-NEXT: S_ENDPGM 0, implicit [[AV_MOV_]]396 %0:sreg_64 = S_MOV_B64_IMM_PSEUDO 18446744030759878656, implicit $exec397 %1:av_64 = COPY %0398 S_ENDPGM 0, implicit %1399 400...401 402---403name: s_mov_b64_imm_pseudo_literal_32_halves_copy_to_av_64_align2404tracksRegLiveness: true405body: |406 bb.0:407 ; GCN-LABEL: name: s_mov_b64_imm_pseudo_literal_32_halves_copy_to_av_64_align2408 ; GCN: [[AV_MOV_:%[0-9]+]]:av_64_align2 = AV_MOV_B64_IMM_PSEUDO -42949672960, implicit $exec409 ; GCN-NEXT: S_ENDPGM 0, implicit [[AV_MOV_]]410 %0:sreg_64 = S_MOV_B64_IMM_PSEUDO 18446744030759878656, implicit $exec411 %1:av_64_align2 = COPY %0412 S_ENDPGM 0, implicit %1413 414...415 416---417name: s_mov_b64_imm_pseudo_inlineimm_32_halves_copy_to_av_64418tracksRegLiveness: true419body: |420 bb.0:421 ; GCN-LABEL: name: s_mov_b64_imm_pseudo_inlineimm_32_halves_copy_to_av_64422 ; GCN: [[S_MOV_B:%[0-9]+]]:sreg_64 = S_MOV_B64_IMM_PSEUDO -9223372036854775784, implicit $exec423 ; GCN-NEXT: [[COPY:%[0-9]+]]:av_64 = COPY [[S_MOV_B]]424 ; GCN-NEXT: S_ENDPGM 0, implicit [[COPY]]425 %0:sreg_64 = S_MOV_B64_IMM_PSEUDO -9223372036854775784, implicit $exec426 %1:av_64 = COPY %0427 S_ENDPGM 0, implicit %1428 429...430 431---432name: s_mov_b64_imm_pseudo_inlineimm_32_halves_copy_to_av_64_align2433tracksRegLiveness: true434body: |435 bb.0:436 ; GCN-LABEL: name: s_mov_b64_imm_pseudo_inlineimm_32_halves_copy_to_av_64_align2437 ; GCN: [[S_MOV_B:%[0-9]+]]:sreg_64 = S_MOV_B64_IMM_PSEUDO -9223372036854775784, implicit $exec438 ; GCN-NEXT: [[COPY:%[0-9]+]]:av_64_align2 = COPY [[S_MOV_B]]439 ; GCN-NEXT: S_ENDPGM 0, implicit [[COPY]]440 %0:sreg_64 = S_MOV_B64_IMM_PSEUDO -9223372036854775784, implicit $exec441 %1:av_64_align2 = COPY %0442 S_ENDPGM 0, implicit %1443 444...445