brintos

brintos / llvm-project-archived public Read only

0
0
Text · 8.7 KiB · 8326862 Raw
242 lines · plain
1# NOTE: Assertions have been autogenerated by utils/update_mir_test_checks.py2# RUN: llc -mtriple=amdgcn-amd-amdhsa -mcpu=gfx90a -run-pass=si-fold-operands -verify-machineinstrs -o - %s | FileCheck --check-prefix=GFX90A %s3 4# Should fold only the aligned agpr copies with their uses.5 6---7name:            aligned_agpr_648tracksRegLiveness: true9body:             |10  bb.0:11    liveins: $vgpr0_vgpr112    ; GFX90A-LABEL: name: aligned_agpr_6413    ; GFX90A: liveins: $vgpr0_vgpr114    ; GFX90A-NEXT: {{  $}}15    ; GFX90A-NEXT: [[COPY:%[0-9]+]]:vreg_64_align2 = COPY $vgpr0_vgpr116    ; GFX90A-NEXT: [[DEF:%[0-9]+]]:areg_64_align2 = IMPLICIT_DEF17    ; GFX90A-NEXT: GLOBAL_STORE_DWORDX2 [[COPY]], [[DEF]], 0, 0, implicit $exec18    %0:vreg_64_align2 = COPY $vgpr0_vgpr119    %1:areg_64_align2 = IMPLICIT_DEF20    %2:areg_64_align2 = COPY killed %121    GLOBAL_STORE_DWORDX2 %0, %2, 0, 0, implicit $exec22...23 24---25name:            unaligned_agpr_6426tracksRegLiveness: true27body:             |28  bb.0:29    liveins: $vgpr0_vgpr130    ; GFX90A-LABEL: name: unaligned_agpr_6431    ; GFX90A: liveins: $vgpr0_vgpr132    ; GFX90A-NEXT: {{  $}}33    ; GFX90A-NEXT: [[COPY:%[0-9]+]]:vreg_64_align2 = COPY $vgpr0_vgpr134    ; GFX90A-NEXT: [[DEF:%[0-9]+]]:areg_64_align2 = IMPLICIT_DEF35    ; GFX90A-NEXT: GLOBAL_STORE_DWORDX2 [[COPY]], [[DEF]], 0, 0, implicit $exec36    %0:vreg_64_align2 = COPY $vgpr0_vgpr137    %1:areg_64 = IMPLICIT_DEF38    %2:areg_64_align2 = COPY killed %139    GLOBAL_STORE_DWORDX2 %0, %2, 0, 0, implicit $exec40...41 42---43name:            aligned_agpr_96_sub0_subg144tracksRegLiveness: true45body:             |46  bb.0:47    liveins: $vgpr0_vgpr148    ; GFX90A-LABEL: name: aligned_agpr_96_sub0_subg149    ; GFX90A: liveins: $vgpr0_vgpr150    ; GFX90A-NEXT: {{  $}}51    ; GFX90A-NEXT: [[COPY:%[0-9]+]]:vreg_64_align2 = COPY $vgpr0_vgpr152    ; GFX90A-NEXT: [[DEF:%[0-9]+]]:areg_96_align2 = IMPLICIT_DEF53    ; GFX90A-NEXT: GLOBAL_STORE_DWORDX2 [[COPY]], [[DEF]].sub0_sub1, 0, 0, implicit $exec54    %0:vreg_64_align2 = COPY $vgpr0_vgpr155    %1:areg_96_align2 = IMPLICIT_DEF56    %2:areg_64_align2 = COPY killed %1.sub0_sub1:areg_96_align257    GLOBAL_STORE_DWORDX2 %0, %2, 0, 0, implicit $exec58...59 60---61name:            unaligned_agpr_96_sub1_sub262tracksRegLiveness: true63body:             |64  bb.0:65    liveins: $vgpr0_vgpr166    ; GFX90A-LABEL: name: unaligned_agpr_96_sub1_sub267    ; GFX90A: liveins: $vgpr0_vgpr168    ; GFX90A-NEXT: {{  $}}69    ; GFX90A-NEXT: [[COPY:%[0-9]+]]:vreg_64_align2 = COPY $vgpr0_vgpr170    ; GFX90A-NEXT: [[DEF:%[0-9]+]]:areg_96_align2 = IMPLICIT_DEF71    ; GFX90A-NEXT: [[COPY1:%[0-9]+]]:areg_64_align2 = COPY killed [[DEF]].sub1_sub272    ; GFX90A-NEXT: GLOBAL_STORE_DWORDX2 [[COPY]], [[COPY1]], 0, 0, implicit $exec73    %0:vreg_64_align2 = COPY $vgpr0_vgpr174    %1:areg_96_align2 = IMPLICIT_DEF75    %2:areg_64_align2 = COPY killed %1.sub1_sub2:areg_96_align276    GLOBAL_STORE_DWORDX2 %0, %2, 0, 0, implicit $exec77...78 79---80name:            aligned_agpr_9681tracksRegLiveness: true82body:             |83  bb.0:84    liveins: $vgpr0_vgpr185    ; GFX90A-LABEL: name: aligned_agpr_9686    ; GFX90A: liveins: $vgpr0_vgpr187    ; GFX90A-NEXT: {{  $}}88    ; GFX90A-NEXT: [[COPY:%[0-9]+]]:vreg_64_align2 = COPY $vgpr0_vgpr189    ; GFX90A-NEXT: [[DEF:%[0-9]+]]:areg_96_align2 = IMPLICIT_DEF90    ; GFX90A-NEXT: GLOBAL_STORE_DWORDX3 [[COPY]], [[DEF]], 0, 0, implicit $exec91    %0:vreg_64_align2 = COPY $vgpr0_vgpr192    %1:areg_96_align2 = IMPLICIT_DEF93    %2:areg_96_align2 = COPY killed %194    GLOBAL_STORE_DWORDX3 %0, %2, 0, 0, implicit $exec95...96 97---98name:            unaligned_agpr_9699tracksRegLiveness: true100body:             |101  bb.0:102    liveins: $vgpr0_vgpr1103    ; GFX90A-LABEL: name: unaligned_agpr_96104    ; GFX90A: liveins: $vgpr0_vgpr1105    ; GFX90A-NEXT: {{  $}}106    ; GFX90A-NEXT: [[COPY:%[0-9]+]]:vreg_64_align2 = COPY $vgpr0_vgpr1107    ; GFX90A-NEXT: [[DEF:%[0-9]+]]:areg_96_align2 = IMPLICIT_DEF108    ; GFX90A-NEXT: GLOBAL_STORE_DWORDX3 [[COPY]], [[DEF]], 0, 0, implicit $exec109    %0:vreg_64_align2 = COPY $vgpr0_vgpr1110    %1:areg_96 = IMPLICIT_DEF111    %2:areg_96_align2 = COPY killed %1112    GLOBAL_STORE_DWORDX3 %0, %2, 0, 0, implicit $exec113...114 115---116name:            aligned_agpr_128_sub0_sub1117tracksRegLiveness: true118body:             |119  bb.0:120    liveins: $vgpr0_vgpr1121    ; GFX90A-LABEL: name: aligned_agpr_128_sub0_sub1122    ; GFX90A: liveins: $vgpr0_vgpr1123    ; GFX90A-NEXT: {{  $}}124    ; GFX90A-NEXT: [[COPY:%[0-9]+]]:vreg_64_align2 = COPY $vgpr0_vgpr1125    ; GFX90A-NEXT: [[DEF:%[0-9]+]]:areg_128_align2 = IMPLICIT_DEF126    ; GFX90A-NEXT: GLOBAL_STORE_DWORDX2 [[COPY]], [[DEF]].sub0_sub1, 0, 0, implicit $exec127    %0:vreg_64_align2 = COPY $vgpr0_vgpr1128    %1:areg_128_align2 = IMPLICIT_DEF129    %2:areg_64_align2 = COPY killed %1.sub0_sub1:areg_128_align2130    GLOBAL_STORE_DWORDX2 %0, %2, 0, 0, implicit $exec131...132 133---134name:            aligned_agpr_128_sub2_sub3135tracksRegLiveness: true136body:             |137  bb.0:138    liveins: $vgpr0_vgpr1139    ; GFX90A-LABEL: name: aligned_agpr_128_sub2_sub3140    ; GFX90A: liveins: $vgpr0_vgpr1141    ; GFX90A-NEXT: {{  $}}142    ; GFX90A-NEXT: [[COPY:%[0-9]+]]:vreg_64_align2 = COPY $vgpr0_vgpr1143    ; GFX90A-NEXT: [[DEF:%[0-9]+]]:areg_128_align2 = IMPLICIT_DEF144    ; GFX90A-NEXT: GLOBAL_STORE_DWORDX2 [[COPY]], [[DEF]].sub2_sub3, 0, 0, implicit $exec145    %0:vreg_64_align2 = COPY $vgpr0_vgpr1146    %1:areg_128_align2 = IMPLICIT_DEF147    %2:areg_64_align2 = COPY killed %1.sub2_sub3:areg_128_align2148    GLOBAL_STORE_DWORDX2 %0, %2, 0, 0, implicit $exec149...150 151---152name:            unaligned_agpr_128_sub1_sub2153tracksRegLiveness: true154body:             |155  bb.0:156    liveins: $vgpr0_vgpr1157    ; GFX90A-LABEL: name: unaligned_agpr_128_sub1_sub2158    ; GFX90A: liveins: $vgpr0_vgpr1159    ; GFX90A-NEXT: {{  $}}160    ; GFX90A-NEXT: [[COPY:%[0-9]+]]:vreg_64_align2 = COPY $vgpr0_vgpr1161    ; GFX90A-NEXT: [[DEF:%[0-9]+]]:areg_128_align2 = IMPLICIT_DEF162    ; GFX90A-NEXT: [[COPY1:%[0-9]+]]:areg_64_align2 = COPY killed [[DEF]].sub1_sub2163    ; GFX90A-NEXT: GLOBAL_STORE_DWORDX2 [[COPY]], [[COPY1]], 0, 0, implicit $exec164    %0:vreg_64_align2 = COPY $vgpr0_vgpr1165    %1:areg_128_align2 = IMPLICIT_DEF166    %2:areg_64_align2 = COPY killed %1.sub1_sub2:areg_128_align2167    GLOBAL_STORE_DWORDX2 %0, %2, 0, 0, implicit $exec168...169 170---171name:            aligned_agpr_128_sub0_sub1_sub2172tracksRegLiveness: true173body:             |174  bb.0:175    liveins: $vgpr0_vgpr1176    ; GFX90A-LABEL: name: aligned_agpr_128_sub0_sub1_sub2177    ; GFX90A: liveins: $vgpr0_vgpr1178    ; GFX90A-NEXT: {{  $}}179    ; GFX90A-NEXT: [[COPY:%[0-9]+]]:vreg_64_align2 = COPY $vgpr0_vgpr1180    ; GFX90A-NEXT: [[DEF:%[0-9]+]]:areg_128_align2 = IMPLICIT_DEF181    ; GFX90A-NEXT: GLOBAL_STORE_DWORDX3 [[COPY]], [[DEF]].sub0_sub1_sub2, 0, 0, implicit $exec182    %0:vreg_64_align2 = COPY $vgpr0_vgpr1183    %1:areg_128_align2 = IMPLICIT_DEF184    %2:areg_96_align2 = COPY killed %1.sub0_sub1_sub2:areg_128_align2185    GLOBAL_STORE_DWORDX3 %0, %2, 0, 0, implicit $exec186...187 188---189name:            unaligned_agpr_128_sub1_sub2_sub3190tracksRegLiveness: true191body:             |192  bb.0:193    liveins: $vgpr0_vgpr1194    ; GFX90A-LABEL: name: unaligned_agpr_128_sub1_sub2_sub3195    ; GFX90A: liveins: $vgpr0_vgpr1196    ; GFX90A-NEXT: {{  $}}197    ; GFX90A-NEXT: [[COPY:%[0-9]+]]:vreg_64_align2 = COPY $vgpr0_vgpr1198    ; GFX90A-NEXT: [[DEF:%[0-9]+]]:areg_128_align2 = IMPLICIT_DEF199    ; GFX90A-NEXT: [[COPY1:%[0-9]+]]:areg_96_align2 = COPY killed [[DEF]].sub1_sub2_sub3200    ; GFX90A-NEXT: GLOBAL_STORE_DWORDX3 [[COPY]], [[COPY1]], 0, 0, implicit $exec201    %0:vreg_64_align2 = COPY $vgpr0_vgpr1202    %1:areg_128_align2 = IMPLICIT_DEF203    %2:areg_96_align2 = COPY killed %1.sub1_sub2_sub3:areg_128_align2204    GLOBAL_STORE_DWORDX3 %0, %2, 0, 0, implicit $exec205...206 207---208name:            aligned_agpr_128209tracksRegLiveness: true210body:             |211  bb.0:212    liveins: $vgpr0_vgpr1213    ; GFX90A-LABEL: name: aligned_agpr_128214    ; GFX90A: liveins: $vgpr0_vgpr1215    ; GFX90A-NEXT: {{  $}}216    ; GFX90A-NEXT: [[COPY:%[0-9]+]]:vreg_64_align2 = COPY $vgpr0_vgpr1217    ; GFX90A-NEXT: [[DEF:%[0-9]+]]:areg_128_align2 = IMPLICIT_DEF218    ; GFX90A-NEXT: GLOBAL_STORE_DWORDX4 [[COPY]], [[DEF]], 0, 0, implicit $exec219    %0:vreg_64_align2 = COPY $vgpr0_vgpr1220    %1:areg_128_align2 = IMPLICIT_DEF221    %2:areg_128_align2 = COPY killed %1222    GLOBAL_STORE_DWORDX4 %0, %2, 0, 0, implicit $exec223...224 225---226name:            unaligned_agpr_128227tracksRegLiveness: true228body:             |229  bb.0:230    liveins: $vgpr0_vgpr1231    ; GFX90A-LABEL: name: unaligned_agpr_128232    ; GFX90A: liveins: $vgpr0_vgpr1233    ; GFX90A-NEXT: {{  $}}234    ; GFX90A-NEXT: [[COPY:%[0-9]+]]:vreg_64_align2 = COPY $vgpr0_vgpr1235    ; GFX90A-NEXT: [[DEF:%[0-9]+]]:areg_128_align2 = IMPLICIT_DEF236    ; GFX90A-NEXT: GLOBAL_STORE_DWORDX4 [[COPY]], [[DEF]], 0, 0, implicit $exec237    %0:vreg_64_align2 = COPY $vgpr0_vgpr1238    %1:areg_128 = IMPLICIT_DEF239    %2:areg_128_align2 = COPY killed %1240    GLOBAL_STORE_DWORDX4 %0, %2, 0, 0, implicit $exec241...242