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