brintos

brintos / llvm-project-archived public Read only

0
0
Text · 6.1 KiB · df2f390 Raw
150 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-prefixes=GCN,GFX8 %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: fceil_s16_ss8legalized: true9regBankSelected: true10tracksRegLiveness: true11 12body: |13  bb.0:14    liveins: $sgpr015 16    ; GCN-LABEL: name: fceil_s16_ss17    ; GCN: liveins: $sgpr018    ; GCN-NEXT: {{  $}}19    ; GCN-NEXT: [[COPY:%[0-9]+]]:sgpr(s32) = COPY $sgpr020    ; GCN-NEXT: [[TRUNC:%[0-9]+]]:sgpr(s16) = G_TRUNC [[COPY]](s32)21    ; GCN-NEXT: [[FCEIL:%[0-9]+]]:sreg_32(s16) = G_FCEIL [[TRUNC]]22    ; GCN-NEXT: [[COPY1:%[0-9]+]]:sreg_32(s32) = COPY [[FCEIL]](s16)23    ; GCN-NEXT: $sgpr0 = COPY [[COPY1]](s32)24    %0:sgpr(s32) = COPY $sgpr025    %1:sgpr(s16) = G_TRUNC %026    %2:sgpr(s16) = G_FCEIL %127    %3:sgpr(s32) = G_ANYEXT %228    $sgpr0 = COPY %329...30 31---32name: fceil_s16_vv33legalized: true34regBankSelected: true35tracksRegLiveness: true36 37body: |38  bb.0:39    liveins: $vgpr040 41    ; GFX8-LABEL: name: fceil_s16_vv42    ; GFX8: liveins: $vgpr043    ; GFX8-NEXT: {{  $}}44    ; GFX8-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr045    ; GFX8-NEXT: [[V_CEIL_F16_e64_:%[0-9]+]]:vgpr_32 = nofpexcept V_CEIL_F16_e64 0, [[COPY]], 0, 0, implicit $mode, implicit $exec46    ; GFX8-NEXT: $vgpr0 = COPY [[V_CEIL_F16_e64_]]47    ;48    ; GFX11-TRUE16-LABEL: name: fceil_s16_vv49    ; GFX11-TRUE16: liveins: $vgpr050    ; GFX11-TRUE16-NEXT: {{  $}}51    ; GFX11-TRUE16-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr052    ; GFX11-TRUE16-NEXT: [[COPY1:%[0-9]+]]:vgpr_16 = COPY [[COPY]].lo1653    ; GFX11-TRUE16-NEXT: [[V_CEIL_F16_t16_e64_:%[0-9]+]]:vgpr_16 = nofpexcept V_CEIL_F16_t16_e64 0, [[COPY1]], 0, 0, 0, implicit $mode, implicit $exec54    ; GFX11-TRUE16-NEXT: [[DEF:%[0-9]+]]:vgpr_16 = IMPLICIT_DEF55    ; GFX11-TRUE16-NEXT: [[REG_SEQUENCE:%[0-9]+]]:vgpr_32 = REG_SEQUENCE [[V_CEIL_F16_t16_e64_]], %subreg.lo16, [[DEF]], %subreg.hi1656    ; GFX11-TRUE16-NEXT: $vgpr0 = COPY [[REG_SEQUENCE]]57    ;58    ; GFX11-FAKE16-LABEL: name: fceil_s16_vv59    ; GFX11-FAKE16: liveins: $vgpr060    ; GFX11-FAKE16-NEXT: {{  $}}61    ; GFX11-FAKE16-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr062    ; GFX11-FAKE16-NEXT: [[V_CEIL_F16_fake16_e64_:%[0-9]+]]:vgpr_32 = nofpexcept V_CEIL_F16_fake16_e64 0, [[COPY]], 0, 0, implicit $mode, implicit $exec63    ; GFX11-FAKE16-NEXT: $vgpr0 = COPY [[V_CEIL_F16_fake16_e64_]]64    %0:vgpr(s32) = COPY $vgpr065    %1:vgpr(s16) = G_TRUNC %066    %2:vgpr(s16) = G_FCEIL %167    %3:vgpr(s32) = G_ANYEXT %268    $vgpr0 = COPY %369...70 71---72name: fceil_s16_vs73legalized: true74regBankSelected: true75tracksRegLiveness: true76 77body: |78  bb.0:79    liveins: $sgpr080 81    ; GFX8-LABEL: name: fceil_s16_vs82    ; GFX8: liveins: $sgpr083    ; GFX8-NEXT: {{  $}}84    ; GFX8-NEXT: [[COPY:%[0-9]+]]:sreg_32 = COPY $sgpr085    ; GFX8-NEXT: [[V_CEIL_F16_e64_:%[0-9]+]]:vgpr_32 = nofpexcept V_CEIL_F16_e64 0, [[COPY]], 0, 0, implicit $mode, implicit $exec86    ; GFX8-NEXT: $vgpr0 = COPY [[V_CEIL_F16_e64_]]87    ;88    ; GFX11-TRUE16-LABEL: name: fceil_s16_vs89    ; GFX11-TRUE16: liveins: $sgpr090    ; GFX11-TRUE16-NEXT: {{  $}}91    ; GFX11-TRUE16-NEXT: [[COPY:%[0-9]+]]:sreg_32 = COPY $sgpr092    ; GFX11-TRUE16-NEXT: [[V_CEIL_F16_t16_e64_:%[0-9]+]]:vgpr_16 = nofpexcept V_CEIL_F16_t16_e64 0, [[COPY]], 0, 0, 0, implicit $mode, implicit $exec93    ; GFX11-TRUE16-NEXT: [[DEF:%[0-9]+]]:vgpr_16 = IMPLICIT_DEF94    ; GFX11-TRUE16-NEXT: [[REG_SEQUENCE:%[0-9]+]]:vgpr_32 = REG_SEQUENCE [[V_CEIL_F16_t16_e64_]], %subreg.lo16, [[DEF]], %subreg.hi1695    ; GFX11-TRUE16-NEXT: $vgpr0 = COPY [[REG_SEQUENCE]]96    ;97    ; GFX11-FAKE16-LABEL: name: fceil_s16_vs98    ; GFX11-FAKE16: liveins: $sgpr099    ; GFX11-FAKE16-NEXT: {{  $}}100    ; GFX11-FAKE16-NEXT: [[COPY:%[0-9]+]]:sreg_32 = COPY $sgpr0101    ; GFX11-FAKE16-NEXT: [[V_CEIL_F16_fake16_e64_:%[0-9]+]]:vgpr_32 = nofpexcept V_CEIL_F16_fake16_e64 0, [[COPY]], 0, 0, implicit $mode, implicit $exec102    ; GFX11-FAKE16-NEXT: $vgpr0 = COPY [[V_CEIL_F16_fake16_e64_]]103    %0:sgpr(s32) = COPY $sgpr0104    %1:sgpr(s16) = G_TRUNC %0105    %2:vgpr(s16) = G_FCEIL %1106    %3:vgpr(s32) = G_ANYEXT %2107    $vgpr0 = COPY %3108...109 110---111name: fceil_fneg_s16_vv112legalized: true113regBankSelected: true114tracksRegLiveness: true115 116body: |117  bb.0:118    liveins: $vgpr0119 120    ; GFX8-LABEL: name: fceil_fneg_s16_vv121    ; GFX8: liveins: $vgpr0122    ; GFX8-NEXT: {{  $}}123    ; GFX8-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0124    ; GFX8-NEXT: [[V_CEIL_F16_e64_:%[0-9]+]]:vgpr_32 = nofpexcept V_CEIL_F16_e64 1, [[COPY]], 0, 0, implicit $mode, implicit $exec125    ; GFX8-NEXT: $vgpr0 = COPY [[V_CEIL_F16_e64_]]126    ;127    ; GFX11-TRUE16-LABEL: name: fceil_fneg_s16_vv128    ; GFX11-TRUE16: liveins: $vgpr0129    ; GFX11-TRUE16-NEXT: {{  $}}130    ; GFX11-TRUE16-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0131    ; GFX11-TRUE16-NEXT: [[COPY1:%[0-9]+]]:vgpr_16 = COPY [[COPY]].lo16132    ; GFX11-TRUE16-NEXT: [[V_CEIL_F16_t16_e64_:%[0-9]+]]:vgpr_16 = nofpexcept V_CEIL_F16_t16_e64 1, [[COPY1]], 0, 0, 0, implicit $mode, implicit $exec133    ; GFX11-TRUE16-NEXT: [[DEF:%[0-9]+]]:vgpr_16 = IMPLICIT_DEF134    ; GFX11-TRUE16-NEXT: [[REG_SEQUENCE:%[0-9]+]]:vgpr_32 = REG_SEQUENCE [[V_CEIL_F16_t16_e64_]], %subreg.lo16, [[DEF]], %subreg.hi16135    ; GFX11-TRUE16-NEXT: $vgpr0 = COPY [[REG_SEQUENCE]]136    ;137    ; GFX11-FAKE16-LABEL: name: fceil_fneg_s16_vv138    ; GFX11-FAKE16: liveins: $vgpr0139    ; GFX11-FAKE16-NEXT: {{  $}}140    ; GFX11-FAKE16-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0141    ; GFX11-FAKE16-NEXT: [[V_CEIL_F16_fake16_e64_:%[0-9]+]]:vgpr_32 = nofpexcept V_CEIL_F16_fake16_e64 1, [[COPY]], 0, 0, implicit $mode, implicit $exec142    ; GFX11-FAKE16-NEXT: $vgpr0 = COPY [[V_CEIL_F16_fake16_e64_]]143    %0:vgpr(s32) = COPY $vgpr0144    %1:vgpr(s16) = G_TRUNC %0145    %2:vgpr(s16) = G_FNEG %1146    %3:vgpr(s16) = G_FCEIL %2147    %4:vgpr(s32) = G_ANYEXT %3148    $vgpr0 = COPY %4149...150