brintos

brintos / llvm-project-archived public Read only

0
0
Text · 8.1 KiB · 35d622d Raw
174 lines · plain
1# NOTE: Assertions have been autogenerated by utils/update_mir_test_checks.py2# RUN: llc -mtriple=amdgcn -mcpu=hawaii -run-pass=instruction-select -verify-machineinstrs %s -o - | FileCheck -check-prefix=WAVE64 %s3# RUN: llc -mtriple=amdgcn -mcpu=gfx1010 -run-pass=instruction-select -verify-machineinstrs %s -o - | FileCheck -check-prefix=WAVE32 %s4# RUN: llc -mtriple=amdgcn -mcpu=gfx1100 -mattr=+real-true16 -run-pass=instruction-select -verify-machineinstrs %s -o - | FileCheck -check-prefixes=GFX11,GFX11-TRUE16 %s5# RUN: llc -mtriple=amdgcn -mcpu=gfx1100 -mattr=-real-true16 -run-pass=instruction-select -verify-machineinstrs %s -o - | FileCheck -check-prefixes=GFX11,GFX11-FAKE16 %s6 7---8name: uitofp_s32_to_s32_vv9legalized: true10regBankSelected: true11tracksRegLiveness: true12 13body: |14  bb.0:15    liveins: $vgpr016 17    ; WAVE64-LABEL: name: uitofp_s32_to_s32_vv18    ; WAVE64: liveins: $vgpr019    ; WAVE64-NEXT: {{  $}}20    ; WAVE64-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr021    ; WAVE64-NEXT: [[V_CVT_F32_U32_e64_:%[0-9]+]]:vgpr_32 = V_CVT_F32_U32_e64 [[COPY]], 0, 0, implicit $mode, implicit $exec22    ; WAVE64-NEXT: $vgpr0 = COPY [[V_CVT_F32_U32_e64_]]23    ;24    ; WAVE32-LABEL: name: uitofp_s32_to_s32_vv25    ; WAVE32: liveins: $vgpr026    ; WAVE32-NEXT: {{  $}}27    ; WAVE32-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr028    ; WAVE32-NEXT: [[V_CVT_F32_U32_e64_:%[0-9]+]]:vgpr_32 = V_CVT_F32_U32_e64 [[COPY]], 0, 0, implicit $mode, implicit $exec29    ; WAVE32-NEXT: $vgpr0 = COPY [[V_CVT_F32_U32_e64_]]30    ;31    ; GFX11-LABEL: name: uitofp_s32_to_s32_vv32    ; GFX11: liveins: $vgpr033    ; GFX11-NEXT: {{  $}}34    ; GFX11-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr035    ; GFX11-NEXT: [[V_CVT_F32_U32_e64_:%[0-9]+]]:vgpr_32 = V_CVT_F32_U32_e64 [[COPY]], 0, 0, implicit $mode, implicit $exec36    ; GFX11-NEXT: $vgpr0 = COPY [[V_CVT_F32_U32_e64_]]37    %0:vgpr(s32) = COPY $vgpr038    %1:vgpr(s32) = G_UITOFP %039    $vgpr0 = COPY %140...41 42---43name: uitofp_s32_to_s32_vs44legalized: true45regBankSelected: true46tracksRegLiveness: true47 48body: |49  bb.0:50    liveins: $sgpr051 52    ; WAVE64-LABEL: name: uitofp_s32_to_s32_vs53    ; WAVE64: liveins: $sgpr054    ; WAVE64-NEXT: {{  $}}55    ; WAVE64-NEXT: [[COPY:%[0-9]+]]:sreg_32 = COPY $sgpr056    ; WAVE64-NEXT: [[V_CVT_F32_U32_e64_:%[0-9]+]]:vgpr_32 = V_CVT_F32_U32_e64 [[COPY]], 0, 0, implicit $mode, implicit $exec57    ; WAVE64-NEXT: $vgpr0 = COPY [[V_CVT_F32_U32_e64_]]58    ;59    ; WAVE32-LABEL: name: uitofp_s32_to_s32_vs60    ; WAVE32: liveins: $sgpr061    ; WAVE32-NEXT: {{  $}}62    ; WAVE32-NEXT: [[COPY:%[0-9]+]]:sreg_32 = COPY $sgpr063    ; WAVE32-NEXT: [[V_CVT_F32_U32_e64_:%[0-9]+]]:vgpr_32 = V_CVT_F32_U32_e64 [[COPY]], 0, 0, implicit $mode, implicit $exec64    ; WAVE32-NEXT: $vgpr0 = COPY [[V_CVT_F32_U32_e64_]]65    ;66    ; GFX11-LABEL: name: uitofp_s32_to_s32_vs67    ; GFX11: liveins: $sgpr068    ; GFX11-NEXT: {{  $}}69    ; GFX11-NEXT: [[COPY:%[0-9]+]]:sreg_32 = COPY $sgpr070    ; GFX11-NEXT: [[V_CVT_F32_U32_e64_:%[0-9]+]]:vgpr_32 = V_CVT_F32_U32_e64 [[COPY]], 0, 0, implicit $mode, implicit $exec71    ; GFX11-NEXT: $vgpr0 = COPY [[V_CVT_F32_U32_e64_]]72    %0:sgpr(s32) = COPY $sgpr073    %1:vgpr(s32) = G_UITOFP %074    $vgpr0 = COPY %175...76 77---78name: uitofp_s32_to_s16_vv79legalized: true80regBankSelected: true81tracksRegLiveness: true82 83body: |84  bb.0:85    liveins: $vgpr086 87    ; WAVE64-LABEL: name: uitofp_s32_to_s16_vv88    ; WAVE64: liveins: $vgpr089    ; WAVE64-NEXT: {{  $}}90    ; WAVE64-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr091    ; WAVE64-NEXT: [[V_CVT_F32_U32_e32_:%[0-9]+]]:vgpr_32 = V_CVT_F32_U32_e32 [[COPY]], implicit $mode, implicit $exec92    ; WAVE64-NEXT: [[V_CVT_F16_F32_e64_:%[0-9]+]]:vgpr_32 = nofpexcept V_CVT_F16_F32_e64 0, [[V_CVT_F32_U32_e32_]], 0, 0, implicit $mode, implicit $exec93    ; WAVE64-NEXT: $vgpr0 = COPY [[V_CVT_F16_F32_e64_]]94    ;95    ; WAVE32-LABEL: name: uitofp_s32_to_s16_vv96    ; WAVE32: liveins: $vgpr097    ; WAVE32-NEXT: {{  $}}98    ; WAVE32-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr099    ; WAVE32-NEXT: [[V_CVT_F32_U32_e32_:%[0-9]+]]:vgpr_32 = V_CVT_F32_U32_e32 [[COPY]], implicit $mode, implicit $exec100    ; WAVE32-NEXT: [[V_CVT_F16_F32_e64_:%[0-9]+]]:vgpr_32 = nofpexcept V_CVT_F16_F32_e64 0, [[V_CVT_F32_U32_e32_]], 0, 0, implicit $mode, implicit $exec101    ; WAVE32-NEXT: $vgpr0 = COPY [[V_CVT_F16_F32_e64_]]102    ;103    ; GFX11-TRUE16-LABEL: name: uitofp_s32_to_s16_vv104    ; GFX11-TRUE16: liveins: $vgpr0105    ; GFX11-TRUE16-NEXT: {{  $}}106    ; GFX11-TRUE16-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0107    ; GFX11-TRUE16-NEXT: [[V_CVT_F32_U32_e32_:%[0-9]+]]:vgpr_32 = V_CVT_F32_U32_e32 [[COPY]], implicit $mode, implicit $exec108    ; GFX11-TRUE16-NEXT: [[V_CVT_F16_F32_t16_e64_:%[0-9]+]]:vgpr_16 = nofpexcept V_CVT_F16_F32_t16_e64 0, [[V_CVT_F32_U32_e32_]], 0, 0, 0, implicit $mode, implicit $exec109    ; GFX11-TRUE16-NEXT: [[DEF:%[0-9]+]]:vgpr_16 = IMPLICIT_DEF110    ; GFX11-TRUE16-NEXT: [[REG_SEQUENCE:%[0-9]+]]:vgpr_32 = REG_SEQUENCE [[V_CVT_F16_F32_t16_e64_]], %subreg.lo16, [[DEF]], %subreg.hi16111    ; GFX11-TRUE16-NEXT: $vgpr0 = COPY [[REG_SEQUENCE]]112    ;113    ; GFX11-FAKE16-LABEL: name: uitofp_s32_to_s16_vv114    ; GFX11-FAKE16: liveins: $vgpr0115    ; GFX11-FAKE16-NEXT: {{  $}}116    ; GFX11-FAKE16-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0117    ; GFX11-FAKE16-NEXT: [[V_CVT_F32_U32_e32_:%[0-9]+]]:vgpr_32 = V_CVT_F32_U32_e32 [[COPY]], implicit $mode, implicit $exec118    ; GFX11-FAKE16-NEXT: [[V_CVT_F16_F32_fake16_e64_:%[0-9]+]]:vgpr_32 = nofpexcept V_CVT_F16_F32_fake16_e64 0, [[V_CVT_F32_U32_e32_]], 0, 0, implicit $mode, implicit $exec119    ; GFX11-FAKE16-NEXT: $vgpr0 = COPY [[V_CVT_F16_F32_fake16_e64_]]120    %0:vgpr(s32) = COPY $vgpr0121    %1:vgpr(s16) = G_UITOFP %0122    %2:vgpr(s32) = G_ANYEXT %1123    $vgpr0 = COPY %2124...125 126---127name: uitofp_s32_to_s16_vs128legalized: true129regBankSelected: true130tracksRegLiveness: true131 132body: |133  bb.0:134    liveins: $sgpr0135 136    ; WAVE64-LABEL: name: uitofp_s32_to_s16_vs137    ; WAVE64: liveins: $sgpr0138    ; WAVE64-NEXT: {{  $}}139    ; WAVE64-NEXT: [[COPY:%[0-9]+]]:sreg_32 = COPY $sgpr0140    ; WAVE64-NEXT: [[V_CVT_F32_U32_e32_:%[0-9]+]]:vgpr_32 = V_CVT_F32_U32_e32 [[COPY]], implicit $mode, implicit $exec141    ; WAVE64-NEXT: [[V_CVT_F16_F32_e64_:%[0-9]+]]:vgpr_32 = nofpexcept V_CVT_F16_F32_e64 0, [[V_CVT_F32_U32_e32_]], 0, 0, implicit $mode, implicit $exec142    ; WAVE64-NEXT: $vgpr0 = COPY [[V_CVT_F16_F32_e64_]]143    ;144    ; WAVE32-LABEL: name: uitofp_s32_to_s16_vs145    ; WAVE32: liveins: $sgpr0146    ; WAVE32-NEXT: {{  $}}147    ; WAVE32-NEXT: [[COPY:%[0-9]+]]:sreg_32 = COPY $sgpr0148    ; WAVE32-NEXT: [[V_CVT_F32_U32_e32_:%[0-9]+]]:vgpr_32 = V_CVT_F32_U32_e32 [[COPY]], implicit $mode, implicit $exec149    ; WAVE32-NEXT: [[V_CVT_F16_F32_e64_:%[0-9]+]]:vgpr_32 = nofpexcept V_CVT_F16_F32_e64 0, [[V_CVT_F32_U32_e32_]], 0, 0, implicit $mode, implicit $exec150    ; WAVE32-NEXT: $vgpr0 = COPY [[V_CVT_F16_F32_e64_]]151    ;152    ; GFX11-TRUE16-LABEL: name: uitofp_s32_to_s16_vs153    ; GFX11-TRUE16: liveins: $sgpr0154    ; GFX11-TRUE16-NEXT: {{  $}}155    ; GFX11-TRUE16-NEXT: [[COPY:%[0-9]+]]:sreg_32 = COPY $sgpr0156    ; GFX11-TRUE16-NEXT: [[V_CVT_F32_U32_e32_:%[0-9]+]]:vgpr_32 = V_CVT_F32_U32_e32 [[COPY]], implicit $mode, implicit $exec157    ; GFX11-TRUE16-NEXT: [[V_CVT_F16_F32_t16_e64_:%[0-9]+]]:vgpr_16 = nofpexcept V_CVT_F16_F32_t16_e64 0, [[V_CVT_F32_U32_e32_]], 0, 0, 0, implicit $mode, implicit $exec158    ; GFX11-TRUE16-NEXT: [[DEF:%[0-9]+]]:vgpr_16 = IMPLICIT_DEF159    ; GFX11-TRUE16-NEXT: [[REG_SEQUENCE:%[0-9]+]]:vgpr_32 = REG_SEQUENCE [[V_CVT_F16_F32_t16_e64_]], %subreg.lo16, [[DEF]], %subreg.hi16160    ; GFX11-TRUE16-NEXT: $vgpr0 = COPY [[REG_SEQUENCE]]161    ;162    ; GFX11-FAKE16-LABEL: name: uitofp_s32_to_s16_vs163    ; GFX11-FAKE16: liveins: $sgpr0164    ; GFX11-FAKE16-NEXT: {{  $}}165    ; GFX11-FAKE16-NEXT: [[COPY:%[0-9]+]]:sreg_32 = COPY $sgpr0166    ; GFX11-FAKE16-NEXT: [[V_CVT_F32_U32_e32_:%[0-9]+]]:vgpr_32 = V_CVT_F32_U32_e32 [[COPY]], implicit $mode, implicit $exec167    ; GFX11-FAKE16-NEXT: [[V_CVT_F16_F32_fake16_e64_:%[0-9]+]]:vgpr_32 = nofpexcept V_CVT_F16_F32_fake16_e64 0, [[V_CVT_F32_U32_e32_]], 0, 0, implicit $mode, implicit $exec168    ; GFX11-FAKE16-NEXT: $vgpr0 = COPY [[V_CVT_F16_F32_fake16_e64_]]169    %0:sgpr(s32) = COPY $sgpr0170    %1:vgpr(s16) = G_UITOFP %0171    %2:vgpr(s32) = G_ANYEXT %1172    $vgpr0 = COPY %2173...174