brintos

brintos / llvm-project-archived public Read only

0
0
Text · 6.5 KiB · df62806 Raw
159 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 -global-isel-abort=0 -verify-machineinstrs -o - %s | FileCheck -check-prefix=VI %s3# RUN: llc -mtriple=amdgcn -mcpu=gfx1100 -mattr=+real-true16 -run-pass=instruction-select -global-isel-abort=0 -verify-machineinstrs -o - %s | FileCheck -check-prefixes=GCN,GFX11-TRUE16 %s4# RUN: llc -mtriple=amdgcn -mcpu=gfx1100 -mattr=-real-true16 -run-pass=instruction-select -global-isel-abort=0 -verify-machineinstrs -o - %s | FileCheck -check-prefixes=GCN,GFX11-FAKE16 %s5 6---7name: ffloor_s16_ss8legalized: true9regBankSelected: true10tracksRegLiveness: true11 12body: |13  bb.0:14    liveins: $sgpr015 16    ; VI-LABEL: name: ffloor_s16_ss17    ; VI: liveins: $sgpr018    ; VI-NEXT: {{  $}}19    ; VI-NEXT: [[COPY:%[0-9]+]]:sgpr(s32) = COPY $sgpr020    ; VI-NEXT: [[TRUNC:%[0-9]+]]:sgpr(s16) = G_TRUNC [[COPY]](s32)21    ; VI-NEXT: [[FFLOOR:%[0-9]+]]:sreg_32(s16) = G_FFLOOR [[TRUNC]]22    ; VI-NEXT: [[COPY1:%[0-9]+]]:sreg_32(s32) = COPY [[FFLOOR]](s16)23    ; VI-NEXT: $sgpr0 = COPY [[COPY1]](s32)24    ;25    ; GCN-LABEL: name: ffloor_s16_ss26    ; GCN: liveins: $sgpr027    ; GCN-NEXT: {{  $}}28    ; GCN-NEXT: [[COPY:%[0-9]+]]:sgpr(s32) = COPY $sgpr029    ; GCN-NEXT: [[TRUNC:%[0-9]+]]:sgpr(s16) = G_TRUNC [[COPY]](s32)30    ; GCN-NEXT: [[FFLOOR:%[0-9]+]]:sreg_32(s16) = G_FFLOOR [[TRUNC]]31    ; GCN-NEXT: [[COPY1:%[0-9]+]]:sreg_32(s32) = COPY [[FFLOOR]](s16)32    ; GCN-NEXT: $sgpr0 = COPY [[COPY1]](s32)33    %0:sgpr(s32) = COPY $sgpr034    %1:sgpr(s16) = G_TRUNC %035    %2:sgpr(s16) = G_FFLOOR %136    %3:sgpr(s32) = G_ANYEXT %237    $sgpr0 = COPY %338...39 40---41name: ffloor_s16_vv42legalized: true43regBankSelected: true44tracksRegLiveness: true45 46body: |47  bb.0:48    liveins: $vgpr049 50    ; VI-LABEL: name: ffloor_s16_vv51    ; VI: liveins: $vgpr052    ; VI-NEXT: {{  $}}53    ; VI-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr054    ; VI-NEXT: [[V_FLOOR_F16_e64_:%[0-9]+]]:vgpr_32 = nofpexcept V_FLOOR_F16_e64 0, [[COPY]], 0, 0, implicit $mode, implicit $exec55    ; VI-NEXT: $vgpr0 = COPY [[V_FLOOR_F16_e64_]]56    ;57    ; GFX11-TRUE16-LABEL: name: ffloor_s16_vv58    ; GFX11-TRUE16: liveins: $vgpr059    ; GFX11-TRUE16-NEXT: {{  $}}60    ; GFX11-TRUE16-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr061    ; GFX11-TRUE16-NEXT: [[COPY1:%[0-9]+]]:vgpr_16 = COPY [[COPY]].lo1662    ; GFX11-TRUE16-NEXT: [[V_FLOOR_F16_t16_e64_:%[0-9]+]]:vgpr_16 = nofpexcept V_FLOOR_F16_t16_e64 0, [[COPY1]], 0, 0, 0, implicit $mode, implicit $exec63    ; GFX11-TRUE16-NEXT: [[DEF:%[0-9]+]]:vgpr_16 = IMPLICIT_DEF64    ; GFX11-TRUE16-NEXT: [[REG_SEQUENCE:%[0-9]+]]:vgpr_32 = REG_SEQUENCE [[V_FLOOR_F16_t16_e64_]], %subreg.lo16, [[DEF]], %subreg.hi1665    ; GFX11-TRUE16-NEXT: $vgpr0 = COPY [[REG_SEQUENCE]]66    ;67    ; GFX11-FAKE16-LABEL: name: ffloor_s16_vv68    ; GFX11-FAKE16: liveins: $vgpr069    ; GFX11-FAKE16-NEXT: {{  $}}70    ; GFX11-FAKE16-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr071    ; GFX11-FAKE16-NEXT: [[V_FLOOR_F16_fake16_e64_:%[0-9]+]]:vgpr_32 = nofpexcept V_FLOOR_F16_fake16_e64 0, [[COPY]], 0, 0, implicit $mode, implicit $exec72    ; GFX11-FAKE16-NEXT: $vgpr0 = COPY [[V_FLOOR_F16_fake16_e64_]]73    %0:vgpr(s32) = COPY $vgpr074    %1:vgpr(s16) = G_TRUNC %075    %2:vgpr(s16) = G_FFLOOR %176    %3:vgpr(s32) = G_ANYEXT %277    $vgpr0 = COPY %378...79 80---81name: ffloor_s16_vs82legalized: true83regBankSelected: true84tracksRegLiveness: true85 86body: |87  bb.0:88    liveins: $sgpr089 90    ; VI-LABEL: name: ffloor_s16_vs91    ; VI: liveins: $sgpr092    ; VI-NEXT: {{  $}}93    ; VI-NEXT: [[COPY:%[0-9]+]]:sreg_32 = COPY $sgpr094    ; VI-NEXT: [[V_FLOOR_F16_e64_:%[0-9]+]]:vgpr_32 = nofpexcept V_FLOOR_F16_e64 0, [[COPY]], 0, 0, implicit $mode, implicit $exec95    ; VI-NEXT: $vgpr0 = COPY [[V_FLOOR_F16_e64_]]96    ;97    ; GFX11-TRUE16-LABEL: name: ffloor_s16_vs98    ; GFX11-TRUE16: liveins: $sgpr099    ; GFX11-TRUE16-NEXT: {{  $}}100    ; GFX11-TRUE16-NEXT: [[COPY:%[0-9]+]]:sreg_32 = COPY $sgpr0101    ; GFX11-TRUE16-NEXT: [[V_FLOOR_F16_t16_e64_:%[0-9]+]]:vgpr_16 = nofpexcept V_FLOOR_F16_t16_e64 0, [[COPY]], 0, 0, 0, implicit $mode, implicit $exec102    ; GFX11-TRUE16-NEXT: [[DEF:%[0-9]+]]:vgpr_16 = IMPLICIT_DEF103    ; GFX11-TRUE16-NEXT: [[REG_SEQUENCE:%[0-9]+]]:vgpr_32 = REG_SEQUENCE [[V_FLOOR_F16_t16_e64_]], %subreg.lo16, [[DEF]], %subreg.hi16104    ; GFX11-TRUE16-NEXT: $vgpr0 = COPY [[REG_SEQUENCE]]105    ;106    ; GFX11-FAKE16-LABEL: name: ffloor_s16_vs107    ; GFX11-FAKE16: liveins: $sgpr0108    ; GFX11-FAKE16-NEXT: {{  $}}109    ; GFX11-FAKE16-NEXT: [[COPY:%[0-9]+]]:sreg_32 = COPY $sgpr0110    ; GFX11-FAKE16-NEXT: [[V_FLOOR_F16_fake16_e64_:%[0-9]+]]:vgpr_32 = nofpexcept V_FLOOR_F16_fake16_e64 0, [[COPY]], 0, 0, implicit $mode, implicit $exec111    ; GFX11-FAKE16-NEXT: $vgpr0 = COPY [[V_FLOOR_F16_fake16_e64_]]112    %0:sgpr(s32) = COPY $sgpr0113    %1:sgpr(s16) = G_TRUNC %0114    %2:vgpr(s16) = G_FFLOOR %1115    %3:vgpr(s32) = G_ANYEXT %2116    $vgpr0 = COPY %3117...118 119---120name: ffloor_fneg_s16_vv121legalized: true122regBankSelected: true123tracksRegLiveness: true124 125body: |126  bb.0:127    liveins: $vgpr0128 129    ; VI-LABEL: name: ffloor_fneg_s16_vv130    ; VI: liveins: $vgpr0131    ; VI-NEXT: {{  $}}132    ; VI-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0133    ; VI-NEXT: [[V_FLOOR_F16_e64_:%[0-9]+]]:vgpr_32 = nofpexcept V_FLOOR_F16_e64 1, [[COPY]], 0, 0, implicit $mode, implicit $exec134    ; VI-NEXT: $vgpr0 = COPY [[V_FLOOR_F16_e64_]]135    ;136    ; GFX11-TRUE16-LABEL: name: ffloor_fneg_s16_vv137    ; GFX11-TRUE16: liveins: $vgpr0138    ; GFX11-TRUE16-NEXT: {{  $}}139    ; GFX11-TRUE16-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0140    ; GFX11-TRUE16-NEXT: [[COPY1:%[0-9]+]]:vgpr_16 = COPY [[COPY]].lo16141    ; GFX11-TRUE16-NEXT: [[V_FLOOR_F16_t16_e64_:%[0-9]+]]:vgpr_16 = nofpexcept V_FLOOR_F16_t16_e64 1, [[COPY1]], 0, 0, 0, implicit $mode, implicit $exec142    ; GFX11-TRUE16-NEXT: [[DEF:%[0-9]+]]:vgpr_16 = IMPLICIT_DEF143    ; GFX11-TRUE16-NEXT: [[REG_SEQUENCE:%[0-9]+]]:vgpr_32 = REG_SEQUENCE [[V_FLOOR_F16_t16_e64_]], %subreg.lo16, [[DEF]], %subreg.hi16144    ; GFX11-TRUE16-NEXT: $vgpr0 = COPY [[REG_SEQUENCE]]145    ;146    ; GFX11-FAKE16-LABEL: name: ffloor_fneg_s16_vv147    ; GFX11-FAKE16: liveins: $vgpr0148    ; GFX11-FAKE16-NEXT: {{  $}}149    ; GFX11-FAKE16-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0150    ; GFX11-FAKE16-NEXT: [[V_FLOOR_F16_fake16_e64_:%[0-9]+]]:vgpr_32 = nofpexcept V_FLOOR_F16_fake16_e64 1, [[COPY]], 0, 0, implicit $mode, implicit $exec151    ; GFX11-FAKE16-NEXT: $vgpr0 = COPY [[V_FLOOR_F16_fake16_e64_]]152    %0:vgpr(s32) = COPY $vgpr0153    %1:vgpr(s16) = G_TRUNC %0154    %2:vgpr(s16) = G_FNEG %1155    %3:vgpr(s16) = G_FFLOOR %2156    %4:vgpr(s32) = G_ANYEXT %3157    $vgpr0 = COPY %4158...159