brintos

brintos / llvm-project-archived public Read only

0
0
Text · 8.9 KiB · b1e2380 Raw
199 lines · plain
1# NOTE: Assertions have been autogenerated by utils/update_mir_test_checks.py2# RUN: llc -mtriple=amdgcn -mcpu=gfx1200 -verify-machineinstrs -run-pass=gcn-dpp-combine %s -o - | FileCheck -check-prefix=GFX12 %s3# RUN: llc -mtriple=amdgcn -mcpu=gfx1200 -verify-machineinstrs -passes=gcn-dpp-combine %s -o - | FileCheck -check-prefix=GFX12 %s4 5---6name:            test_cvt_f32_bf8_byte07tracksRegLiveness: true8body:             |9  bb.0:10    liveins: $vgpr011 12    ; GFX12-LABEL: name: test_cvt_f32_bf8_byte013    ; GFX12: liveins: $vgpr014    ; GFX12-NEXT: {{  $}}15    ; GFX12-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr016    ; GFX12-NEXT: [[DEF:%[0-9]+]]:vgpr_32 = IMPLICIT_DEF17    ; GFX12-NEXT: [[V_CVT_F32_BF8_OP_SEL_dpp:%[0-9]+]]:vgpr_32 = V_CVT_F32_BF8_OP_SEL_dpp [[DEF]], [[COPY]], 228, 15, 15, 1, implicit $mode, implicit $exec18    ; GFX12-NEXT: $vgpr0 = COPY [[V_CVT_F32_BF8_OP_SEL_dpp]]19    ; GFX12-NEXT: SI_RETURN_TO_EPILOG $vgpr020    %0:vgpr_32 = COPY $vgpr021    %1:vgpr_32 = V_MOV_B32_dpp %0, %0, 228, 15, 15, -1, implicit $exec22    %2:vgpr_32 = V_CVT_F32_BF8_OP_SEL_e32 killed %1, implicit $mode, implicit $exec23    $vgpr0 = COPY %224    SI_RETURN_TO_EPILOG $vgpr025 26...27---28name:            test_cvt_f32_bf8_byte229tracksRegLiveness: true30body:             |31  bb.0:32    liveins: $vgpr033 34    ; GFX12-LABEL: name: test_cvt_f32_bf8_byte235    ; GFX12: liveins: $vgpr036    ; GFX12-NEXT: {{  $}}37    ; GFX12-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr038    ; GFX12-NEXT: [[DEF:%[0-9]+]]:vgpr_32 = IMPLICIT_DEF39    ; GFX12-NEXT: [[V_CVT_F32_BF8_OP_SEL_e64_dpp:%[0-9]+]]:vgpr_32 = V_CVT_F32_BF8_OP_SEL_e64_dpp [[DEF]], [[COPY]], 2, 228, 15, 15, 1, implicit $mode, implicit $exec40    ; GFX12-NEXT: $vgpr0 = COPY [[V_CVT_F32_BF8_OP_SEL_e64_dpp]]41    ; GFX12-NEXT: SI_RETURN_TO_EPILOG $vgpr042    %0:vgpr_32 = COPY $vgpr043    %1:vgpr_32 = V_MOV_B32_dpp %0, %0, 228, 15, 15, -1, implicit $exec44    %2:vgpr_32 = V_CVT_F32_BF8_OP_SEL_e64 killed %1, 2, implicit $mode, implicit $exec45    $vgpr0 = COPY %246    SI_RETURN_TO_EPILOG $vgpr047 48...49---50name:            test_cvt_f32_fp8_byte351tracksRegLiveness: true52body:             |53  bb.0:54    liveins: $vgpr055 56    ; GFX12-LABEL: name: test_cvt_f32_fp8_byte357    ; GFX12: liveins: $vgpr058    ; GFX12-NEXT: {{  $}}59    ; GFX12-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr060    ; GFX12-NEXT: [[DEF:%[0-9]+]]:vgpr_32 = IMPLICIT_DEF61    ; GFX12-NEXT: [[V_CVT_F32_FP8_OP_SEL_e64_dpp:%[0-9]+]]:vgpr_32 = V_CVT_F32_FP8_OP_SEL_e64_dpp [[DEF]], [[COPY]], 3, 228, 15, 15, 1, implicit $mode, implicit $exec62    ; GFX12-NEXT: $vgpr0 = COPY [[V_CVT_F32_FP8_OP_SEL_e64_dpp]]63    ; GFX12-NEXT: SI_RETURN_TO_EPILOG $vgpr064    %0:vgpr_32 = COPY $vgpr065    %1:vgpr_32 = V_MOV_B32_dpp %0, %0, 228, 15, 15, -1, implicit $exec66    %2:vgpr_32 = V_CVT_F32_FP8_OP_SEL_e64 killed %1, 3, implicit $mode, implicit $exec67    $vgpr0 = COPY %268    SI_RETURN_TO_EPILOG $vgpr069 70...71---72name:            test_cvt_pk_bf8_f32_word073tracksRegLiveness: true74body:             |75  bb.0:76    liveins: $vgpr0, $vgpr1, $vgpr2, $vgpr3, $vgpr477 78    ; GFX12-LABEL: name: test_cvt_pk_bf8_f32_word079    ; GFX12: liveins: $vgpr0, $vgpr1, $vgpr2, $vgpr3, $vgpr480    ; GFX12-NEXT: {{  $}}81    ; GFX12-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr482    ; GFX12-NEXT: [[COPY1:%[0-9]+]]:vgpr_32 = COPY $vgpr383    ; GFX12-NEXT: [[COPY2:%[0-9]+]]:vgpr_32 = COPY $vgpr284    ; GFX12-NEXT: [[COPY3:%[0-9]+]]:vgpr_32 = COPY $vgpr185    ; GFX12-NEXT: [[COPY4:%[0-9]+]]:vgpr_32 = COPY $vgpr086    ; GFX12-NEXT: [[REG_SEQUENCE:%[0-9]+]]:vreg_64 = REG_SEQUENCE [[COPY1]], %subreg.sub0, [[COPY]], %subreg.sub187    ; GFX12-NEXT: [[DEF:%[0-9]+]]:vgpr_32 = IMPLICIT_DEF88    ; GFX12-NEXT: [[V_CVT_PK_BF8_F32_e64_dpp:%[0-9]+]]:vgpr_32 = V_CVT_PK_BF8_F32_e64_dpp [[DEF]], 0, [[COPY4]], 0, [[COPY3]], [[COPY2]], 0, 228, 15, 15, 1, implicit $mode, implicit $exec89    ; GFX12-NEXT: GLOBAL_STORE_DWORD [[REG_SEQUENCE]], killed [[V_CVT_PK_BF8_F32_e64_dpp]], 0, 0, implicit $exec90    ; GFX12-NEXT: S_ENDPGM 091    %4:vgpr_32 = COPY $vgpr492    %3:vgpr_32 = COPY $vgpr393    %2:vgpr_32 = COPY $vgpr294    %1:vgpr_32 = COPY $vgpr195    %0:vgpr_32 = COPY $vgpr096    %11:vreg_64 = REG_SEQUENCE %3, %subreg.sub0, %4, %subreg.sub197    %6:vgpr_32 = V_MOV_B32_dpp %0, %0, 228, 15, 15, -1, implicit $exec98    %7:vgpr_32 = V_CVT_PK_BF8_F32_e64 0, killed %6, 0, %1, %2, 0, implicit $mode, implicit $exec99    GLOBAL_STORE_DWORD %11, killed %7, 0, 0, implicit $exec100    S_ENDPGM 0101 102...103---104name:            test_cvt_pk_fp8_f32_word1105tracksRegLiveness: true106body:             |107  bb.0:108    liveins: $vgpr0, $vgpr1, $vgpr2, $vgpr3, $vgpr4109 110    ; GFX12-LABEL: name: test_cvt_pk_fp8_f32_word1111    ; GFX12: liveins: $vgpr0, $vgpr1, $vgpr2, $vgpr3, $vgpr4112    ; GFX12-NEXT: {{  $}}113    ; GFX12-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr4114    ; GFX12-NEXT: [[COPY1:%[0-9]+]]:vgpr_32 = COPY $vgpr3115    ; GFX12-NEXT: [[COPY2:%[0-9]+]]:vgpr_32 = COPY $vgpr2116    ; GFX12-NEXT: [[COPY3:%[0-9]+]]:vgpr_32 = COPY $vgpr1117    ; GFX12-NEXT: [[COPY4:%[0-9]+]]:vgpr_32 = COPY $vgpr0118    ; GFX12-NEXT: [[REG_SEQUENCE:%[0-9]+]]:vreg_64 = REG_SEQUENCE [[COPY1]], %subreg.sub0, [[COPY]], %subreg.sub1119    ; GFX12-NEXT: [[V_MOV_B32_dpp:%[0-9]+]]:vgpr_32 = V_MOV_B32_dpp [[COPY4]], [[COPY4]], 228, 15, 15, -1, implicit $exec120    ; GFX12-NEXT: [[V_CVT_PK_FP8_F32_e64_:%[0-9]+]]:vgpr_32 = V_CVT_PK_FP8_F32_e64 8, killed [[V_MOV_B32_dpp]], 0, [[COPY3]], [[COPY2]], 0, implicit $mode, implicit $exec121    ; GFX12-NEXT: GLOBAL_STORE_DWORD [[REG_SEQUENCE]], killed [[V_CVT_PK_FP8_F32_e64_]], 0, 0, implicit $exec122    ; GFX12-NEXT: S_ENDPGM 0123    %4:vgpr_32 = COPY $vgpr4124    %3:vgpr_32 = COPY $vgpr3125    %2:vgpr_32 = COPY $vgpr2126    %1:vgpr_32 = COPY $vgpr1127    %0:vgpr_32 = COPY $vgpr0128    %11:vreg_64 = REG_SEQUENCE %3, %subreg.sub0, %4, %subreg.sub1129    %6:vgpr_32 = V_MOV_B32_dpp %0, %0, 228, 15, 15, -1, implicit $exec130    %7:vgpr_32 = V_CVT_PK_FP8_F32_e64 8, killed %6, 0, %1, %2, 0, implicit $mode, implicit $exec131    GLOBAL_STORE_DWORD %11, killed %7, 0, 0, implicit $exec132    S_ENDPGM 0133 134...135---136name:            test_cvt_sr_bf8_f32_byte0137tracksRegLiveness: true138body:             |139  bb.0:140    liveins: $vgpr0, $vgpr1, $vgpr2, $vgpr3, $vgpr4141 142    ; GFX12-LABEL: name: test_cvt_sr_bf8_f32_byte0143    ; GFX12: liveins: $vgpr0, $vgpr1, $vgpr2, $vgpr3, $vgpr4144    ; GFX12-NEXT: {{  $}}145    ; GFX12-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr4146    ; GFX12-NEXT: [[COPY1:%[0-9]+]]:vgpr_32 = COPY $vgpr3147    ; GFX12-NEXT: [[COPY2:%[0-9]+]]:vgpr_32 = COPY $vgpr2148    ; GFX12-NEXT: [[COPY3:%[0-9]+]]:vgpr_32 = COPY $vgpr1149    ; GFX12-NEXT: [[COPY4:%[0-9]+]]:vgpr_32 = COPY $vgpr0150    ; GFX12-NEXT: [[REG_SEQUENCE:%[0-9]+]]:vreg_64 = REG_SEQUENCE [[COPY1]], %subreg.sub0, [[COPY]], %subreg.sub1151    ; GFX12-NEXT: [[DEF:%[0-9]+]]:vgpr_32 = IMPLICIT_DEF152    ; GFX12-NEXT: [[V_CVT_SR_BF8_F32_e64_dpp:%[0-9]+]]:vgpr_32 = V_CVT_SR_BF8_F32_e64_dpp [[DEF]], 0, [[COPY4]], 0, [[COPY3]], 0, [[COPY2]], 0, 228, 15, 15, 1, implicit $mode, implicit $exec153    ; GFX12-NEXT: GLOBAL_STORE_DWORD [[REG_SEQUENCE]], killed [[V_CVT_SR_BF8_F32_e64_dpp]], 0, 0, implicit $exec154    ; GFX12-NEXT: S_ENDPGM 0155    %4:vgpr_32 = COPY $vgpr4156    %3:vgpr_32 = COPY $vgpr3157    %2:vgpr_32 = COPY $vgpr2158    %1:vgpr_32 = COPY $vgpr1159    %0:vgpr_32 = COPY $vgpr0160    %11:vreg_64 = REG_SEQUENCE %3, %subreg.sub0, %4, %subreg.sub1161    %6:vgpr_32 = V_MOV_B32_dpp %0, %0, 228, 15, 15, -1, implicit $exec162    %7:vgpr_32 = V_CVT_SR_BF8_F32_e64 0, killed %6, 0, %1, 0, %2, 0, implicit $mode, implicit $exec163    GLOBAL_STORE_DWORD %11, killed %7, 0, 0, implicit $exec164    S_ENDPGM 0165 166...167---168name:            test_cvt_sr_fp8_f32_byte2169tracksRegLiveness: true170body:             |171  bb.0:172    liveins: $vgpr0, $vgpr1, $vgpr2, $vgpr3, $vgpr4173 174    ; GFX12-LABEL: name: test_cvt_sr_fp8_f32_byte2175    ; GFX12: liveins: $vgpr0, $vgpr1, $vgpr2, $vgpr3, $vgpr4176    ; GFX12-NEXT: {{  $}}177    ; GFX12-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr4178    ; GFX12-NEXT: [[COPY1:%[0-9]+]]:vgpr_32 = COPY $vgpr3179    ; GFX12-NEXT: [[COPY2:%[0-9]+]]:vgpr_32 = COPY $vgpr2180    ; GFX12-NEXT: [[COPY3:%[0-9]+]]:vgpr_32 = COPY $vgpr1181    ; GFX12-NEXT: [[COPY4:%[0-9]+]]:vgpr_32 = COPY $vgpr0182    ; GFX12-NEXT: [[REG_SEQUENCE:%[0-9]+]]:vreg_64 = REG_SEQUENCE [[COPY1]], %subreg.sub0, [[COPY]], %subreg.sub1183    ; GFX12-NEXT: [[V_MOV_B32_dpp:%[0-9]+]]:vgpr_32 = V_MOV_B32_dpp [[COPY4]], [[COPY4]], 228, 15, 15, -1, implicit $exec184    ; GFX12-NEXT: [[V_CVT_SR_FP8_F32_e64_:%[0-9]+]]:vgpr_32 = V_CVT_SR_FP8_F32_e64 8, killed [[V_MOV_B32_dpp]], 0, [[COPY3]], 0, [[COPY2]], 0, implicit $mode, implicit $exec185    ; GFX12-NEXT: GLOBAL_STORE_DWORD [[REG_SEQUENCE]], killed [[V_CVT_SR_FP8_F32_e64_]], 0, 0, implicit $exec186    ; GFX12-NEXT: S_ENDPGM 0187    %4:vgpr_32 = COPY $vgpr4188    %3:vgpr_32 = COPY $vgpr3189    %2:vgpr_32 = COPY $vgpr2190    %1:vgpr_32 = COPY $vgpr1191    %0:vgpr_32 = COPY $vgpr0192    %11:vreg_64 = REG_SEQUENCE %3, %subreg.sub0, %4, %subreg.sub1193    %6:vgpr_32 = V_MOV_B32_dpp %0, %0, 228, 15, 15, -1, implicit $exec194    %7:vgpr_32 = V_CVT_SR_FP8_F32_e64 8, killed %6, 0, %1, 0, %2, 0, implicit $mode, implicit $exec195    GLOBAL_STORE_DWORD %11, killed %7, 0, 0, implicit $exec196    S_ENDPGM 0197 198...199