brintos

brintos / llvm-project-archived public Read only

0
0
Text · 11.3 KiB · 681c366 Raw
266 lines · plain
1# NOTE: Assertions have been autogenerated by utils/update_mir_test_checks.py2# RUN: llc -mtriple=amdgcn -mcpu=fiji -run-pass=instruction-select -verify-machineinstrs -o - %s  | FileCheck -check-prefix=GFX8 %s3# RUN: llc -mtriple=amdgcn -mcpu=gfx900 -run-pass=instruction-select -verify-machineinstrs -o - %s  | FileCheck -check-prefix=GFX9 %s4# RUN: llc -mtriple=amdgcn -mcpu=gfx1010 -run-pass=instruction-select -verify-machineinstrs -o - %s  | FileCheck -check-prefix=GFX9 %s5# RUN: llc -mtriple=amdgcn -mcpu=gfx1100 -run-pass=instruction-select -verify-machineinstrs -o - %s  | FileCheck -check-prefix=GFX9 %s6 7---8 9name:            add_s32_sgpr_sgpr_sgpr10legalized:       true11regBankSelected: true12tracksRegLiveness: true13 14body: |15  bb.0:16    liveins: $sgpr0, $sgpr1, $sgpr217    ; GFX8-LABEL: name: add_s32_sgpr_sgpr_sgpr18    ; GFX8: liveins: $sgpr0, $sgpr1, $sgpr219    ; GFX8-NEXT: {{  $}}20    ; GFX8-NEXT: [[COPY:%[0-9]+]]:sreg_32 = COPY $sgpr021    ; GFX8-NEXT: [[COPY1:%[0-9]+]]:sreg_32 = COPY $sgpr122    ; GFX8-NEXT: [[COPY2:%[0-9]+]]:sreg_32 = COPY $sgpr223    ; GFX8-NEXT: [[S_ADD_I32_:%[0-9]+]]:sreg_32 = S_ADD_I32 [[COPY]], [[COPY1]], implicit-def dead $scc24    ; GFX8-NEXT: [[S_ADD_I32_1:%[0-9]+]]:sreg_32 = S_ADD_I32 [[S_ADD_I32_]], [[COPY2]], implicit-def dead $scc25    ; GFX8-NEXT: S_ENDPGM 0, implicit [[S_ADD_I32_1]]26    ;27    ; GFX9-LABEL: name: add_s32_sgpr_sgpr_sgpr28    ; GFX9: liveins: $sgpr0, $sgpr1, $sgpr229    ; GFX9-NEXT: {{  $}}30    ; GFX9-NEXT: [[COPY:%[0-9]+]]:sreg_32 = COPY $sgpr031    ; GFX9-NEXT: [[COPY1:%[0-9]+]]:sreg_32 = COPY $sgpr132    ; GFX9-NEXT: [[COPY2:%[0-9]+]]:sreg_32 = COPY $sgpr233    ; GFX9-NEXT: [[S_ADD_I32_:%[0-9]+]]:sreg_32 = S_ADD_I32 [[COPY]], [[COPY1]], implicit-def dead $scc34    ; GFX9-NEXT: [[S_ADD_I32_1:%[0-9]+]]:sreg_32 = S_ADD_I32 [[S_ADD_I32_]], [[COPY2]], implicit-def dead $scc35    ; GFX9-NEXT: S_ENDPGM 0, implicit [[S_ADD_I32_1]]36    %0:sgpr(s32) = COPY $sgpr037    %1:sgpr(s32) = COPY $sgpr138    %2:sgpr(s32) = COPY $sgpr239    %3:sgpr(s32) = G_ADD %0, %140    %4:sgpr(s32) = G_ADD %3, %241    S_ENDPGM 0, implicit %442...43 44---45 46name:            add_s32_vgpr_vgpr_vgpr47legalized:       true48regBankSelected: true49tracksRegLiveness: true50 51body: |52  bb.0:53    liveins: $vgpr0, $vgpr1, $vgpr254    ; GFX8-LABEL: name: add_s32_vgpr_vgpr_vgpr55    ; GFX8: liveins: $vgpr0, $vgpr1, $vgpr256    ; GFX8-NEXT: {{  $}}57    ; GFX8-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr058    ; GFX8-NEXT: [[COPY1:%[0-9]+]]:vgpr_32 = COPY $vgpr159    ; GFX8-NEXT: [[COPY2:%[0-9]+]]:vgpr_32 = COPY $vgpr260    ; GFX8-NEXT: [[V_ADD_CO_U32_e64_:%[0-9]+]]:vgpr_32, dead [[V_ADD_CO_U32_e64_1:%[0-9]+]]:sreg_64 = V_ADD_CO_U32_e64 [[COPY]], [[COPY1]], 0, implicit $exec61    ; GFX8-NEXT: [[V_ADD_CO_U32_e64_2:%[0-9]+]]:vgpr_32, dead [[V_ADD_CO_U32_e64_3:%[0-9]+]]:sreg_64 = V_ADD_CO_U32_e64 [[V_ADD_CO_U32_e64_]], [[COPY2]], 0, implicit $exec62    ; GFX8-NEXT: S_ENDPGM 0, implicit [[V_ADD_CO_U32_e64_2]]63    ;64    ; GFX9-LABEL: name: add_s32_vgpr_vgpr_vgpr65    ; GFX9: liveins: $vgpr0, $vgpr1, $vgpr266    ; GFX9-NEXT: {{  $}}67    ; GFX9-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr068    ; GFX9-NEXT: [[COPY1:%[0-9]+]]:vgpr_32 = COPY $vgpr169    ; GFX9-NEXT: [[COPY2:%[0-9]+]]:vgpr_32 = COPY $vgpr270    ; GFX9-NEXT: [[V_ADD3_U32_e64_:%[0-9]+]]:vgpr_32 = V_ADD3_U32_e64 [[COPY]], [[COPY1]], [[COPY2]], implicit $exec71    ; GFX9-NEXT: S_ENDPGM 0, implicit [[V_ADD3_U32_e64_]]72    %0:vgpr(s32) = COPY $vgpr073    %1:vgpr(s32) = COPY $vgpr174    %2:vgpr(s32) = COPY $vgpr275    %3:vgpr(s32) = G_ADD %0, %176    %4:vgpr(s32) = G_ADD %3, %277    S_ENDPGM 0, implicit %478...79 80---81 82name:            add_s32_vgpr_vgpr_vgpr_multi_use83legalized:       true84regBankSelected: true85tracksRegLiveness: true86 87body: |88  bb.0:89    liveins: $vgpr0, $vgpr1, $vgpr290    ; GFX8-LABEL: name: add_s32_vgpr_vgpr_vgpr_multi_use91    ; GFX8: liveins: $vgpr0, $vgpr1, $vgpr292    ; GFX8-NEXT: {{  $}}93    ; GFX8-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr094    ; GFX8-NEXT: [[COPY1:%[0-9]+]]:vgpr_32 = COPY $vgpr195    ; GFX8-NEXT: [[COPY2:%[0-9]+]]:vgpr_32 = COPY $vgpr296    ; GFX8-NEXT: [[V_ADD_CO_U32_e64_:%[0-9]+]]:vgpr_32, dead [[V_ADD_CO_U32_e64_1:%[0-9]+]]:sreg_64 = V_ADD_CO_U32_e64 [[COPY]], [[COPY1]], 0, implicit $exec97    ; GFX8-NEXT: [[V_ADD_CO_U32_e64_2:%[0-9]+]]:vgpr_32, dead [[V_ADD_CO_U32_e64_3:%[0-9]+]]:sreg_64 = V_ADD_CO_U32_e64 [[V_ADD_CO_U32_e64_]], [[COPY2]], 0, implicit $exec98    ; GFX8-NEXT: S_ENDPGM 0, implicit [[V_ADD_CO_U32_e64_2]], implicit [[V_ADD_CO_U32_e64_]]99    ;100    ; GFX9-LABEL: name: add_s32_vgpr_vgpr_vgpr_multi_use101    ; GFX9: liveins: $vgpr0, $vgpr1, $vgpr2102    ; GFX9-NEXT: {{  $}}103    ; GFX9-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0104    ; GFX9-NEXT: [[COPY1:%[0-9]+]]:vgpr_32 = COPY $vgpr1105    ; GFX9-NEXT: [[COPY2:%[0-9]+]]:vgpr_32 = COPY $vgpr2106    ; GFX9-NEXT: [[V_ADD_U32_e64_:%[0-9]+]]:vgpr_32 = V_ADD_U32_e64 [[COPY]], [[COPY1]], 0, implicit $exec107    ; GFX9-NEXT: [[V_ADD_U32_e64_1:%[0-9]+]]:vgpr_32 = V_ADD_U32_e64 [[V_ADD_U32_e64_]], [[COPY2]], 0, implicit $exec108    ; GFX9-NEXT: S_ENDPGM 0, implicit [[V_ADD_U32_e64_1]], implicit [[V_ADD_U32_e64_]]109    %0:vgpr(s32) = COPY $vgpr0110    %1:vgpr(s32) = COPY $vgpr1111    %2:vgpr(s32) = COPY $vgpr2112    %3:vgpr(s32) = G_ADD %0, %1113    %4:vgpr(s32) = G_ADD %3, %2114    S_ENDPGM 0, implicit %4, implicit %3115...116 117---118 119name:            add_p3_vgpr_vgpr_vgpr120legalized:       true121regBankSelected: true122tracksRegLiveness: true123 124body: |125  bb.0:126    liveins: $vgpr0, $vgpr1, $vgpr2127 128    ; GFX8-LABEL: name: add_p3_vgpr_vgpr_vgpr129    ; GFX8: liveins: $vgpr0, $vgpr1, $vgpr2130    ; GFX8-NEXT: {{  $}}131    ; GFX8-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0132    ; GFX8-NEXT: [[COPY1:%[0-9]+]]:vgpr_32 = COPY $vgpr1133    ; GFX8-NEXT: [[COPY2:%[0-9]+]]:vgpr_32 = COPY $vgpr2134    ; GFX8-NEXT: [[V_ADD_CO_U32_e64_:%[0-9]+]]:vgpr_32, dead [[V_ADD_CO_U32_e64_1:%[0-9]+]]:sreg_64_xexec = V_ADD_CO_U32_e64 [[COPY]], [[COPY1]], 0, implicit $exec135    ; GFX8-NEXT: [[V_ADD_CO_U32_e64_2:%[0-9]+]]:vgpr_32, dead [[V_ADD_CO_U32_e64_3:%[0-9]+]]:sreg_64_xexec = V_ADD_CO_U32_e64 [[V_ADD_CO_U32_e64_]], [[COPY2]], 0, implicit $exec136    ; GFX8-NEXT: S_ENDPGM 0, implicit [[V_ADD_CO_U32_e64_2]]137    ;138    ; GFX9-LABEL: name: add_p3_vgpr_vgpr_vgpr139    ; GFX9: liveins: $vgpr0, $vgpr1, $vgpr2140    ; GFX9-NEXT: {{  $}}141    ; GFX9-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0142    ; GFX9-NEXT: [[COPY1:%[0-9]+]]:vgpr_32 = COPY $vgpr1143    ; GFX9-NEXT: [[COPY2:%[0-9]+]]:vgpr_32 = COPY $vgpr2144    ; GFX9-NEXT: [[V_ADD3_U32_e64_:%[0-9]+]]:vgpr_32 = V_ADD3_U32_e64 [[COPY]], [[COPY1]], [[COPY2]], implicit $exec145    ; GFX9-NEXT: S_ENDPGM 0, implicit [[V_ADD3_U32_e64_]]146    %0:vgpr(p3) = COPY $vgpr0147    %1:vgpr(s32) = COPY $vgpr1148    %2:vgpr(s32) = COPY $vgpr2149    %3:vgpr(p3) = G_PTR_ADD %0, %1150    %4:vgpr(p3) = G_PTR_ADD %3, %2151    S_ENDPGM 0, implicit %4152...153 154---155 156name:            add_p5_vgpr_vgpr_vgpr157legalized:       true158regBankSelected: true159tracksRegLiveness: true160 161body: |162  bb.0:163    liveins: $vgpr0, $vgpr1, $vgpr2164 165    ; GFX8-LABEL: name: add_p5_vgpr_vgpr_vgpr166    ; GFX8: liveins: $vgpr0, $vgpr1, $vgpr2167    ; GFX8-NEXT: {{  $}}168    ; GFX8-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0169    ; GFX8-NEXT: [[COPY1:%[0-9]+]]:vgpr_32 = COPY $vgpr1170    ; GFX8-NEXT: [[COPY2:%[0-9]+]]:vgpr_32 = COPY $vgpr2171    ; GFX8-NEXT: [[V_ADD_CO_U32_e64_:%[0-9]+]]:vgpr_32, dead [[V_ADD_CO_U32_e64_1:%[0-9]+]]:sreg_64_xexec = V_ADD_CO_U32_e64 [[COPY]], [[COPY1]], 0, implicit $exec172    ; GFX8-NEXT: [[V_ADD_CO_U32_e64_2:%[0-9]+]]:vgpr_32, dead [[V_ADD_CO_U32_e64_3:%[0-9]+]]:sreg_64_xexec = V_ADD_CO_U32_e64 [[V_ADD_CO_U32_e64_]], [[COPY2]], 0, implicit $exec173    ; GFX8-NEXT: S_ENDPGM 0, implicit [[V_ADD_CO_U32_e64_2]]174    ;175    ; GFX9-LABEL: name: add_p5_vgpr_vgpr_vgpr176    ; GFX9: liveins: $vgpr0, $vgpr1, $vgpr2177    ; GFX9-NEXT: {{  $}}178    ; GFX9-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0179    ; GFX9-NEXT: [[COPY1:%[0-9]+]]:vgpr_32 = COPY $vgpr1180    ; GFX9-NEXT: [[COPY2:%[0-9]+]]:vgpr_32 = COPY $vgpr2181    ; GFX9-NEXT: [[V_ADD3_U32_e64_:%[0-9]+]]:vgpr_32 = V_ADD3_U32_e64 [[COPY]], [[COPY1]], [[COPY2]], implicit $exec182    ; GFX9-NEXT: S_ENDPGM 0, implicit [[V_ADD3_U32_e64_]]183    %0:vgpr(p5) = COPY $vgpr0184    %1:vgpr(s32) = COPY $vgpr1185    %2:vgpr(s32) = COPY $vgpr2186    %3:vgpr(p5) = G_PTR_ADD %0, %1187    %4:vgpr(p5) = G_PTR_ADD %3, %2188    S_ENDPGM 0, implicit %4189...190 191---192 193name:            add_p3_s32_vgpr_vgpr_vgpr194legalized:       true195regBankSelected: true196tracksRegLiveness: true197 198body: |199  bb.0:200    liveins: $vgpr0, $vgpr1, $vgpr2201 202    ; GFX8-LABEL: name: add_p3_s32_vgpr_vgpr_vgpr203    ; GFX8: liveins: $vgpr0, $vgpr1, $vgpr2204    ; GFX8-NEXT: {{  $}}205    ; GFX8-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0206    ; GFX8-NEXT: [[COPY1:%[0-9]+]]:vgpr_32 = COPY $vgpr1207    ; GFX8-NEXT: [[COPY2:%[0-9]+]]:vgpr_32 = COPY $vgpr2208    ; GFX8-NEXT: [[V_ADD_CO_U32_e64_:%[0-9]+]]:vgpr_32, dead [[V_ADD_CO_U32_e64_1:%[0-9]+]]:sreg_64 = V_ADD_CO_U32_e64 [[COPY]], [[COPY1]], 0, implicit $exec209    ; GFX8-NEXT: [[V_ADD_CO_U32_e64_2:%[0-9]+]]:vgpr_32, dead [[V_ADD_CO_U32_e64_3:%[0-9]+]]:sreg_64_xexec = V_ADD_CO_U32_e64 [[COPY2]], [[V_ADD_CO_U32_e64_]], 0, implicit $exec210    ; GFX8-NEXT: S_ENDPGM 0, implicit [[V_ADD_CO_U32_e64_2]]211    ;212    ; GFX9-LABEL: name: add_p3_s32_vgpr_vgpr_vgpr213    ; GFX9: liveins: $vgpr0, $vgpr1, $vgpr2214    ; GFX9-NEXT: {{  $}}215    ; GFX9-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0216    ; GFX9-NEXT: [[COPY1:%[0-9]+]]:vgpr_32 = COPY $vgpr1217    ; GFX9-NEXT: [[COPY2:%[0-9]+]]:vgpr_32 = COPY $vgpr2218    ; GFX9-NEXT: [[V_ADD_U32_e64_:%[0-9]+]]:vgpr_32 = V_ADD_U32_e64 [[COPY]], [[COPY1]], 0, implicit $exec219    ; GFX9-NEXT: [[V_ADD_U32_e64_1:%[0-9]+]]:vgpr_32 = V_ADD_U32_e64 [[COPY2]], [[V_ADD_U32_e64_]], 0, implicit $exec220    ; GFX9-NEXT: S_ENDPGM 0, implicit [[V_ADD_U32_e64_1]]221    %0:vgpr(s32) = COPY $vgpr0222    %1:vgpr(s32) = COPY $vgpr1223    %2:vgpr(p3) = COPY $vgpr2224    %3:vgpr(s32) = G_ADD %0, %1225    %4:vgpr(p3) = G_PTR_ADD %2, %3226    S_ENDPGM 0, implicit %4227...228 229---230 231name:            add_p5_s32_vgpr_vgpr_vgpr232legalized:       true233regBankSelected: true234tracksRegLiveness: true235 236body: |237  bb.0:238    liveins: $vgpr0, $vgpr1, $vgpr2239 240    ; GFX8-LABEL: name: add_p5_s32_vgpr_vgpr_vgpr241    ; GFX8: liveins: $vgpr0, $vgpr1, $vgpr2242    ; GFX8-NEXT: {{  $}}243    ; GFX8-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0244    ; GFX8-NEXT: [[COPY1:%[0-9]+]]:vgpr_32 = COPY $vgpr1245    ; GFX8-NEXT: [[COPY2:%[0-9]+]]:vgpr_32 = COPY $vgpr2246    ; GFX8-NEXT: [[V_ADD_CO_U32_e64_:%[0-9]+]]:vgpr_32, dead [[V_ADD_CO_U32_e64_1:%[0-9]+]]:sreg_64 = V_ADD_CO_U32_e64 [[COPY]], [[COPY1]], 0, implicit $exec247    ; GFX8-NEXT: [[V_ADD_CO_U32_e64_2:%[0-9]+]]:vgpr_32, dead [[V_ADD_CO_U32_e64_3:%[0-9]+]]:sreg_64_xexec = V_ADD_CO_U32_e64 [[COPY2]], [[V_ADD_CO_U32_e64_]], 0, implicit $exec248    ; GFX8-NEXT: S_ENDPGM 0, implicit [[V_ADD_CO_U32_e64_2]]249    ;250    ; GFX9-LABEL: name: add_p5_s32_vgpr_vgpr_vgpr251    ; GFX9: liveins: $vgpr0, $vgpr1, $vgpr2252    ; GFX9-NEXT: {{  $}}253    ; GFX9-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0254    ; GFX9-NEXT: [[COPY1:%[0-9]+]]:vgpr_32 = COPY $vgpr1255    ; GFX9-NEXT: [[COPY2:%[0-9]+]]:vgpr_32 = COPY $vgpr2256    ; GFX9-NEXT: [[V_ADD_U32_e64_:%[0-9]+]]:vgpr_32 = V_ADD_U32_e64 [[COPY]], [[COPY1]], 0, implicit $exec257    ; GFX9-NEXT: [[V_ADD_U32_e64_1:%[0-9]+]]:vgpr_32 = V_ADD_U32_e64 [[COPY2]], [[V_ADD_U32_e64_]], 0, implicit $exec258    ; GFX9-NEXT: S_ENDPGM 0, implicit [[V_ADD_U32_e64_1]]259    %0:vgpr(s32) = COPY $vgpr0260    %1:vgpr(s32) = COPY $vgpr1261    %2:vgpr(p5) = COPY $vgpr2262    %3:vgpr(s32) = G_ADD %0, %1263    %4:vgpr(p5) = G_PTR_ADD %2, %3264    S_ENDPGM 0, implicit %4265...266