203 lines · plain
1# NOTE: Assertions have been autogenerated by utils/update_mir_test_checks.py2# RUN: llc -mtriple=riscv64 -mattr=+zfh -run-pass=legalizer %s -o - \3# RUN: | FileCheck %s4 5---6name: fptosi_s1_s167body: |8 bb.1:9 liveins: $f10_h10 11 ; CHECK-LABEL: name: fptosi_s1_s1612 ; CHECK: liveins: $f10_h13 ; CHECK-NEXT: {{ $}}14 ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(s16) = COPY $f10_h15 ; CHECK-NEXT: [[FCVT_W_RV64_:%[0-9]+]]:_(s64) = G_FCVT_W_RV64 [[COPY]](s16), 116 ; CHECK-NEXT: $x10 = COPY [[FCVT_W_RV64_]](s64)17 ; CHECK-NEXT: PseudoRET implicit $x1018 %0:_(s16) = COPY $f10_h19 %1:_(s1) = G_FPTOSI %0(s16)20 %2:_(s64) = G_ANYEXT %1(s1)21 $x10 = COPY %2(s64)22 PseudoRET implicit $x1023 24...25---26name: fptoui_s1_s1627body: |28 bb.1:29 liveins: $f10_h30 31 ; CHECK-LABEL: name: fptoui_s1_s1632 ; CHECK: liveins: $f10_h33 ; CHECK-NEXT: {{ $}}34 ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(s16) = COPY $f10_h35 ; CHECK-NEXT: [[FCVT_WU_RV64_:%[0-9]+]]:_(s64) = G_FCVT_WU_RV64 [[COPY]](s16), 136 ; CHECK-NEXT: $x10 = COPY [[FCVT_WU_RV64_]](s64)37 ; CHECK-NEXT: PseudoRET implicit $x1038 %0:_(s16) = COPY $f10_h39 %1:_(s1) = G_FPTOUI %0(s16)40 %2:_(s64) = G_ANYEXT %1(s1)41 $x10 = COPY %2(s64)42 PseudoRET implicit $x1043 44...45---46name: fptosi_s8_s1647body: |48 bb.1:49 liveins: $f10_h50 51 ; CHECK-LABEL: name: fptosi_s8_s1652 ; CHECK: liveins: $f10_h53 ; CHECK-NEXT: {{ $}}54 ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(s16) = COPY $f10_h55 ; CHECK-NEXT: [[FCVT_W_RV64_:%[0-9]+]]:_(s64) = G_FCVT_W_RV64 [[COPY]](s16), 156 ; CHECK-NEXT: $x10 = COPY [[FCVT_W_RV64_]](s64)57 ; CHECK-NEXT: PseudoRET implicit $x1058 %0:_(s16) = COPY $f10_h59 %1:_(s8) = G_FPTOSI %0(s16)60 %2:_(s64) = G_ANYEXT %1(s8)61 $x10 = COPY %2(s64)62 PseudoRET implicit $x1063 64...65---66name: fptoui_s8_s1667body: |68 bb.1:69 liveins: $f10_h70 71 ; CHECK-LABEL: name: fptoui_s8_s1672 ; CHECK: liveins: $f10_h73 ; CHECK-NEXT: {{ $}}74 ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(s16) = COPY $f10_h75 ; CHECK-NEXT: [[FCVT_WU_RV64_:%[0-9]+]]:_(s64) = G_FCVT_WU_RV64 [[COPY]](s16), 176 ; CHECK-NEXT: $x10 = COPY [[FCVT_WU_RV64_]](s64)77 ; CHECK-NEXT: PseudoRET implicit $x1078 %0:_(s16) = COPY $f10_h79 %1:_(s8) = G_FPTOUI %0(s16)80 %2:_(s64) = G_ANYEXT %1(s8)81 $x10 = COPY %2(s64)82 PseudoRET implicit $x1083 84...85---86name: fptosi_s16_s1687body: |88 bb.1:89 liveins: $f10_h90 91 ; CHECK-LABEL: name: fptosi_s16_s1692 ; CHECK: liveins: $f10_h93 ; CHECK-NEXT: {{ $}}94 ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(s16) = COPY $f10_h95 ; CHECK-NEXT: [[FCVT_W_RV64_:%[0-9]+]]:_(s64) = G_FCVT_W_RV64 [[COPY]](s16), 196 ; CHECK-NEXT: $x10 = COPY [[FCVT_W_RV64_]](s64)97 ; CHECK-NEXT: PseudoRET implicit $x1098 %0:_(s16) = COPY $f10_h99 %1:_(s16) = G_FPTOSI %0(s16)100 %2:_(s64) = G_ANYEXT %1(s16)101 $x10 = COPY %2(s64)102 PseudoRET implicit $x10103 104...105---106name: fptoui_s16_s16107body: |108 bb.1:109 liveins: $f10_h110 111 ; CHECK-LABEL: name: fptoui_s16_s16112 ; CHECK: liveins: $f10_h113 ; CHECK-NEXT: {{ $}}114 ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(s16) = COPY $f10_h115 ; CHECK-NEXT: [[FCVT_WU_RV64_:%[0-9]+]]:_(s64) = G_FCVT_WU_RV64 [[COPY]](s16), 1116 ; CHECK-NEXT: $x10 = COPY [[FCVT_WU_RV64_]](s64)117 ; CHECK-NEXT: PseudoRET implicit $x10118 %0:_(s16) = COPY $f10_h119 %1:_(s16) = G_FPTOUI %0(s16)120 %2:_(s64) = G_ANYEXT %1(s16)121 $x10 = COPY %2(s64)122 PseudoRET implicit $x10123 124...125---126name: fptosi_s32_s16127body: |128 bb.1:129 liveins: $f10_h130 131 ; CHECK-LABEL: name: fptosi_s32_s16132 ; CHECK: liveins: $f10_h133 ; CHECK-NEXT: {{ $}}134 ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(s16) = COPY $f10_h135 ; CHECK-NEXT: [[FCVT_W_RV64_:%[0-9]+]]:_(s64) = G_FCVT_W_RV64 [[COPY]](s16), 1136 ; CHECK-NEXT: $x10 = COPY [[FCVT_W_RV64_]](s64)137 ; CHECK-NEXT: PseudoRET implicit $x10138 %0:_(s16) = COPY $f10_h139 %1:_(s32) = G_FPTOSI %0(s16)140 %2:_(s64) = G_ANYEXT %1(s32)141 $x10 = COPY %2(s64)142 PseudoRET implicit $x10143 144...145---146name: fptoui_s32_s16147body: |148 bb.1:149 liveins: $f10_h150 151 ; CHECK-LABEL: name: fptoui_s32_s16152 ; CHECK: liveins: $f10_h153 ; CHECK-NEXT: {{ $}}154 ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(s16) = COPY $f10_h155 ; CHECK-NEXT: [[FCVT_WU_RV64_:%[0-9]+]]:_(s64) = G_FCVT_WU_RV64 [[COPY]](s16), 1156 ; CHECK-NEXT: $x10 = COPY [[FCVT_WU_RV64_]](s64)157 ; CHECK-NEXT: PseudoRET implicit $x10158 %0:_(s16) = COPY $f10_h159 %1:_(s32) = G_FPTOUI %0(s16)160 %2:_(s64) = G_ANYEXT %1(s32)161 $x10 = COPY %2(s64)162 PseudoRET implicit $x10163 164...165---166name: fptosi_s64_s16167body: |168 bb.1:169 liveins: $f10_h170 171 ; CHECK-LABEL: name: fptosi_s64_s16172 ; CHECK: liveins: $f10_h173 ; CHECK-NEXT: {{ $}}174 ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(s16) = COPY $f10_h175 ; CHECK-NEXT: [[FPTOSI:%[0-9]+]]:_(s64) = G_FPTOSI [[COPY]](s16)176 ; CHECK-NEXT: $x10 = COPY [[FPTOSI]](s64)177 ; CHECK-NEXT: PseudoRET implicit $x10178 %0:_(s16) = COPY $f10_h179 %1:_(s64) = G_FPTOSI %0(s16)180 $x10 = COPY %1(s64)181 PseudoRET implicit $x10182 183...184---185name: fptoui_s64_s16186body: |187 bb.1:188 liveins: $f10_h189 190 ; CHECK-LABEL: name: fptoui_s64_s16191 ; CHECK: liveins: $f10_h192 ; CHECK-NEXT: {{ $}}193 ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(s16) = COPY $f10_h194 ; CHECK-NEXT: [[FPTOUI:%[0-9]+]]:_(s64) = G_FPTOUI [[COPY]](s16)195 ; CHECK-NEXT: $x10 = COPY [[FPTOUI]](s64)196 ; CHECK-NEXT: PseudoRET implicit $x10197 %0:_(s16) = COPY $f10_h198 %1:_(s64) = G_FPTOUI %0(s16)199 $x10 = COPY %1(s64)200 PseudoRET implicit $x10201 202...203