brintos

brintos / llvm-project-archived public Read only

0
0
Text · 9.1 KiB · 63e4696 Raw
317 lines · plain
1# NOTE: Assertions have been autogenerated by utils/update_mir_test_checks.py2# RUN: llc -mtriple=amdgcn -mcpu=tahiti -run-pass=instruction-select -verify-machineinstrs -o - %s | FileCheck -check-prefix=GFX6 %s3 4---5 6name:            fadd_s32_vvv7legalized:       true8regBankSelected: true9 10body: |11  bb.0:12    liveins: $vgpr0, $vgpr113    ; GFX6-LABEL: name: fadd_s32_vvv14    ; GFX6: liveins: $vgpr0, $vgpr115    ; GFX6-NEXT: {{  $}}16    ; GFX6-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr017    ; GFX6-NEXT: [[COPY1:%[0-9]+]]:vgpr_32 = COPY $vgpr118    ; GFX6-NEXT: %2:vgpr_32 = nofpexcept V_ADD_F32_e64 0, [[COPY]], 0, [[COPY1]], 0, 0, implicit $mode, implicit $exec19    ; GFX6-NEXT: S_ENDPGM 0, implicit %220    %0:vgpr(s32) = COPY $vgpr021    %1:vgpr(s32) = COPY $vgpr122    %2:vgpr(s32) = G_FADD %0, %123    S_ENDPGM 0, implicit %224 25...26 27---28 29name:            fadd_s32_vsv30legalized:       true31regBankSelected: true32 33body: |34  bb.0:35    liveins: $vgpr0, $sgpr036    ; GFX6-LABEL: name: fadd_s32_vsv37    ; GFX6: liveins: $vgpr0, $sgpr038    ; GFX6-NEXT: {{  $}}39    ; GFX6-NEXT: [[COPY:%[0-9]+]]:sreg_32 = COPY $sgpr040    ; GFX6-NEXT: [[COPY1:%[0-9]+]]:vgpr_32 = COPY $vgpr041    ; GFX6-NEXT: %2:vgpr_32 = nofpexcept V_ADD_F32_e64 0, [[COPY]], 0, [[COPY1]], 0, 0, implicit $mode, implicit $exec42    ; GFX6-NEXT: S_ENDPGM 0, implicit %243    %0:sgpr(s32) = COPY $sgpr044    %1:vgpr(s32) = COPY $vgpr045    %2:vgpr(s32) = G_FADD %0, %146    S_ENDPGM 0, implicit %247 48...49 50---51 52name:            fadd_s32_vvs53legalized:       true54regBankSelected: true55 56body: |57  bb.0:58    liveins: $vgpr0, $sgpr059    ; GFX6-LABEL: name: fadd_s32_vvs60    ; GFX6: liveins: $vgpr0, $sgpr061    ; GFX6-NEXT: {{  $}}62    ; GFX6-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr063    ; GFX6-NEXT: [[COPY1:%[0-9]+]]:sreg_32 = COPY $sgpr064    ; GFX6-NEXT: %2:vgpr_32 = nofpexcept V_ADD_F32_e64 0, [[COPY]], 0, [[COPY1]], 0, 0, implicit $mode, implicit $exec65    ; GFX6-NEXT: S_ENDPGM 0, implicit %266    %0:vgpr(s32) = COPY $vgpr067    %1:sgpr(s32) = COPY $sgpr068    %2:vgpr(s32) = G_FADD %0, %169    S_ENDPGM 0, implicit %270 71...72 73---74 75name:            fadd_s32_vvv_fabs_lhs76legalized:       true77regBankSelected: true78 79body: |80  bb.0:81    liveins: $vgpr0, $vgpr182    ; GFX6-LABEL: name: fadd_s32_vvv_fabs_lhs83    ; GFX6: liveins: $vgpr0, $vgpr184    ; GFX6-NEXT: {{  $}}85    ; GFX6-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr086    ; GFX6-NEXT: [[COPY1:%[0-9]+]]:vgpr_32 = COPY $vgpr187    ; GFX6-NEXT: %3:vgpr_32 = nofpexcept V_ADD_F32_e64 2, [[COPY]], 0, [[COPY1]], 0, 0, implicit $mode, implicit $exec88    ; GFX6-NEXT: S_ENDPGM 0, implicit %389    %0:vgpr(s32) = COPY $vgpr090    %1:vgpr(s32) = COPY $vgpr191    %2:vgpr(s32) = G_FABS %092    %3:vgpr(s32) = G_FADD %2, %193    S_ENDPGM 0, implicit %394 95...96 97---98 99name:            fadd_s32_vvv_fabs_rhs100legalized:       true101regBankSelected: true102 103body: |104  bb.0:105    liveins: $vgpr0, $vgpr1106    ; GFX6-LABEL: name: fadd_s32_vvv_fabs_rhs107    ; GFX6: liveins: $vgpr0, $vgpr1108    ; GFX6-NEXT: {{  $}}109    ; GFX6-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr1110    ; GFX6-NEXT: %3:vgpr_32 = nofpexcept V_ADD_F32_e64 0, [[COPY]], 2, [[COPY]], 0, 0, implicit $mode, implicit $exec111    ; GFX6-NEXT: S_ENDPGM 0, implicit %3112    %0:vgpr(s32) = COPY $vgpr0113    %1:vgpr(s32) = COPY $vgpr1114    %2:vgpr(s32) = G_FABS %1115    %3:vgpr(s32) = G_FADD %1, %2116    S_ENDPGM 0, implicit %3117 118...119 120---121 122name:            fadd_s32_vvv_fneg_fabs_lhs123legalized:       true124regBankSelected: true125 126body: |127  bb.0:128    liveins: $vgpr0, $vgpr1129    ; GFX6-LABEL: name: fadd_s32_vvv_fneg_fabs_lhs130    ; GFX6: liveins: $vgpr0, $vgpr1131    ; GFX6-NEXT: {{  $}}132    ; GFX6-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0133    ; GFX6-NEXT: [[COPY1:%[0-9]+]]:vgpr_32 = COPY $vgpr1134    ; GFX6-NEXT: %4:vgpr_32 = nofpexcept V_ADD_F32_e64 3, [[COPY]], 0, [[COPY1]], 0, 0, implicit $mode, implicit $exec135    ; GFX6-NEXT: S_ENDPGM 0, implicit %4136    %0:vgpr(s32) = COPY $vgpr0137    %1:vgpr(s32) = COPY $vgpr1138    %2:vgpr(s32) = G_FABS %0139    %3:vgpr(s32) = G_FNEG %2140    %4:vgpr(s32) = G_FADD %3, %1141    S_ENDPGM 0, implicit %4142 143...144 145---146 147name:            fadd_s32_vvv_fneg_fabs_rhs148legalized:       true149regBankSelected: true150 151body: |152  bb.0:153    liveins: $vgpr0, $vgpr1154    ; GFX6-LABEL: name: fadd_s32_vvv_fneg_fabs_rhs155    ; GFX6: liveins: $vgpr0, $vgpr1156    ; GFX6-NEXT: {{  $}}157    ; GFX6-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr1158    ; GFX6-NEXT: %4:vgpr_32 = nofpexcept V_ADD_F32_e64 0, [[COPY]], 3, [[COPY]], 0, 0, implicit $mode, implicit $exec159    ; GFX6-NEXT: S_ENDPGM 0, implicit %4160    %0:vgpr(s32) = COPY $vgpr0161    %1:vgpr(s32) = COPY $vgpr1162    %2:vgpr(s32) = G_FABS %1163    %3:vgpr(s32) = G_FNEG %2164    %4:vgpr(s32) = G_FADD %1, %3165    S_ENDPGM 0, implicit %4166 167...168 169# Need to look through reg bank copy to find source modifiers170---171 172name:            fadd_s32_fneg_copy_sgpr173legalized:       true174regBankSelected: true175 176body: |177  bb.0:178    liveins: $vgpr0, $sgpr0179    ; GFX6-LABEL: name: fadd_s32_fneg_copy_sgpr180    ; GFX6: liveins: $vgpr0, $sgpr0181    ; GFX6-NEXT: {{  $}}182    ; GFX6-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0183    ; GFX6-NEXT: [[COPY1:%[0-9]+]]:sreg_32 = COPY $sgpr0184    ; GFX6-NEXT: [[COPY2:%[0-9]+]]:vgpr_32 = COPY [[COPY1]]185    ; GFX6-NEXT: %4:vgpr_32 = nofpexcept V_ADD_F32_e64 0, [[COPY]], 1, [[COPY2]], 0, 0, implicit $mode, implicit $exec186    ; GFX6-NEXT: S_ENDPGM 0, implicit %4187    %0:vgpr(s32) = COPY $vgpr0188    %1:sgpr(s32) = COPY $sgpr0189    %2:sgpr(s32) = G_FNEG %1190    %3:vgpr(s32) = COPY %2191    %4:vgpr(s32) = G_FADD %0, %3192    S_ENDPGM 0, implicit %4193 194...195 196# Need to look through copy in between fneg and fabs197 198---199 200name:            fadd_s32_copy_fneg_copy_fabs201legalized:       true202regBankSelected: true203 204body: |205  bb.0:206    liveins: $vgpr0, $sgpr0207    ; GFX6-LABEL: name: fadd_s32_copy_fneg_copy_fabs208    ; GFX6: liveins: $vgpr0, $sgpr0209    ; GFX6-NEXT: {{  $}}210    ; GFX6-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0211    ; GFX6-NEXT: [[COPY1:%[0-9]+]]:sreg_32 = COPY $sgpr0212    ; GFX6-NEXT: %6:vgpr_32 = nofpexcept V_ADD_F32_e64 0, [[COPY]], 3, [[COPY1]], 0, 0, implicit $mode, implicit $exec213    ; GFX6-NEXT: S_ENDPGM 0, implicit %6214    %0:vgpr(s32) = COPY $vgpr0215    %1:sgpr(s32) = COPY $sgpr0216    %2:sgpr(s32) = G_FABS %1217    %3:sgpr(s32) = COPY %2218    %4:sgpr(s32) = G_FNEG %3219    %5:sgpr(s32) = COPY %4220    %6:vgpr(s32) = G_FADD %0, %5221    S_ENDPGM 0, implicit %6222 223...224 225# The source modifier lookup searches through SGPR->VGPR copies. Make226# sure we don't violate the constant bus restriction when we look at227# the source.228 229---230 231name:            fadd_s32_copy_fabs_sgpr_copy_fabs_sgpr232legalized:       true233regBankSelected: true234 235body: |236  bb.0:237    liveins: $sgpr0, $sgpr1238    ; GFX6-LABEL: name: fadd_s32_copy_fabs_sgpr_copy_fabs_sgpr239    ; GFX6: liveins: $sgpr0, $sgpr1240    ; GFX6-NEXT: {{  $}}241    ; GFX6-NEXT: [[COPY:%[0-9]+]]:sreg_32 = COPY $sgpr0242    ; GFX6-NEXT: [[COPY1:%[0-9]+]]:sreg_32 = COPY $sgpr1243    ; GFX6-NEXT: [[COPY2:%[0-9]+]]:vgpr_32 = COPY [[COPY]]244    ; GFX6-NEXT: [[COPY3:%[0-9]+]]:vgpr_32 = COPY [[COPY1]]245    ; GFX6-NEXT: %6:vgpr_32 = nofpexcept V_ADD_F32_e64 2, [[COPY2]], 2, [[COPY3]], 0, 0, implicit $mode, implicit $exec246    ; GFX6-NEXT: S_ENDPGM 0, implicit %6247    %0:sgpr(s32) = COPY $sgpr0248    %1:sgpr(s32) = COPY $sgpr1249    %2:sgpr(s32) = G_FABS %0250    %3:sgpr(s32) = G_FABS %1251    %4:vgpr(s32) = COPY %2252    %5:vgpr(s32) = COPY %3253    %6:vgpr(s32) = G_FADD %4, %5254    S_ENDPGM 0, implicit %6255 256...257 258---259 260name:            fadd_s32_copy_fneg_sgpr_copy_fneg_sgpr261legalized:       true262regBankSelected: true263 264body: |265  bb.0:266    liveins: $sgpr0, $sgpr1267    ; GFX6-LABEL: name: fadd_s32_copy_fneg_sgpr_copy_fneg_sgpr268    ; GFX6: liveins: $sgpr0, $sgpr1269    ; GFX6-NEXT: {{  $}}270    ; GFX6-NEXT: [[COPY:%[0-9]+]]:sreg_32 = COPY $sgpr0271    ; GFX6-NEXT: [[COPY1:%[0-9]+]]:sreg_32 = COPY $sgpr1272    ; GFX6-NEXT: [[COPY2:%[0-9]+]]:vgpr_32 = COPY [[COPY]]273    ; GFX6-NEXT: [[COPY3:%[0-9]+]]:vgpr_32 = COPY [[COPY1]]274    ; GFX6-NEXT: %6:vgpr_32 = nofpexcept V_ADD_F32_e64 1, [[COPY2]], 1, [[COPY3]], 0, 0, implicit $mode, implicit $exec275    ; GFX6-NEXT: S_ENDPGM 0, implicit %6276    %0:sgpr(s32) = COPY $sgpr0277    %1:sgpr(s32) = COPY $sgpr1278    %2:sgpr(s32) = G_FNEG %0279    %3:sgpr(s32) = G_FNEG %1280    %4:vgpr(s32) = COPY %2281    %5:vgpr(s32) = COPY %3282    %6:vgpr(s32) = G_FADD %4, %5283    S_ENDPGM 0, implicit %6284 285...286 287---288 289name:            fadd_s32_copy_fneg_fabs_sgpr_copy_fneg_fabs_sgpr290legalized:       true291regBankSelected: true292 293body: |294  bb.0:295    liveins: $sgpr0, $sgpr1296    ; GFX6-LABEL: name: fadd_s32_copy_fneg_fabs_sgpr_copy_fneg_fabs_sgpr297    ; GFX6: liveins: $sgpr0, $sgpr1298    ; GFX6-NEXT: {{  $}}299    ; GFX6-NEXT: [[COPY:%[0-9]+]]:sreg_32 = COPY $sgpr0300    ; GFX6-NEXT: [[COPY1:%[0-9]+]]:sreg_32 = COPY $sgpr1301    ; GFX6-NEXT: [[COPY2:%[0-9]+]]:vgpr_32 = COPY [[COPY]]302    ; GFX6-NEXT: [[COPY3:%[0-9]+]]:vgpr_32 = COPY [[COPY1]]303    ; GFX6-NEXT: %8:vgpr_32 = nofpexcept V_ADD_F32_e64 3, [[COPY2]], 3, [[COPY3]], 0, 0, implicit $mode, implicit $exec304    ; GFX6-NEXT: S_ENDPGM 0, implicit %8305    %0:sgpr(s32) = COPY $sgpr0306    %1:sgpr(s32) = COPY $sgpr1307    %2:sgpr(s32) = G_FABS %0308    %3:sgpr(s32) = G_FABS %1309    %4:sgpr(s32) = G_FNEG %2310    %5:sgpr(s32) = G_FNEG %3311    %6:vgpr(s32) = COPY %4312    %7:vgpr(s32) = COPY %5313    %8:vgpr(s32) = G_FADD %6, %7314    S_ENDPGM 0, implicit %8315 316...317