401 lines · plain
1# NOTE: Assertions have been autogenerated by utils/update_mir_test_checks.py2# RUN: llc -mtriple=riscv64 -mattr=+d -run-pass=legalizer %s -o - \3# RUN: | FileCheck %s4 5---6name: fptosi_s1_s327body: |8 bb.1:9 liveins: $f10_f10 11 ; CHECK-LABEL: name: fptosi_s1_s3212 ; CHECK: liveins: $f10_f13 ; CHECK-NEXT: {{ $}}14 ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(s32) = COPY $f10_f15 ; CHECK-NEXT: [[FCVT_W_RV64_:%[0-9]+]]:_(s64) = G_FCVT_W_RV64 [[COPY]](s32), 116 ; CHECK-NEXT: $x10 = COPY [[FCVT_W_RV64_]](s64)17 ; CHECK-NEXT: PseudoRET implicit $x1018 %0:_(s32) = COPY $f10_f19 %1:_(s1) = G_FPTOSI %0(s32)20 %2:_(s64) = G_ANYEXT %1(s1)21 $x10 = COPY %2(s64)22 PseudoRET implicit $x1023 24...25---26name: fptoui_s1_s3227body: |28 bb.1:29 liveins: $f10_f30 31 ; CHECK-LABEL: name: fptoui_s1_s3232 ; CHECK: liveins: $f10_f33 ; CHECK-NEXT: {{ $}}34 ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(s32) = COPY $f10_f35 ; CHECK-NEXT: [[FCVT_WU_RV64_:%[0-9]+]]:_(s64) = G_FCVT_WU_RV64 [[COPY]](s32), 136 ; CHECK-NEXT: $x10 = COPY [[FCVT_WU_RV64_]](s64)37 ; CHECK-NEXT: PseudoRET implicit $x1038 %0:_(s32) = COPY $f10_f39 %1:_(s1) = G_FPTOUI %0(s32)40 %2:_(s64) = G_ANYEXT %1(s1)41 $x10 = COPY %2(s64)42 PseudoRET implicit $x1043 44...45---46name: fptosi_s8_s3247body: |48 bb.1:49 liveins: $f10_f50 51 ; CHECK-LABEL: name: fptosi_s8_s3252 ; CHECK: liveins: $f10_f53 ; CHECK-NEXT: {{ $}}54 ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(s32) = COPY $f10_f55 ; CHECK-NEXT: [[FCVT_W_RV64_:%[0-9]+]]:_(s64) = G_FCVT_W_RV64 [[COPY]](s32), 156 ; CHECK-NEXT: $x10 = COPY [[FCVT_W_RV64_]](s64)57 ; CHECK-NEXT: PseudoRET implicit $x1058 %0:_(s32) = COPY $f10_f59 %1:_(s8) = G_FPTOSI %0(s32)60 %2:_(s64) = G_ANYEXT %1(s8)61 $x10 = COPY %2(s64)62 PseudoRET implicit $x1063 64...65---66name: fptoui_s8_s3267body: |68 bb.1:69 liveins: $f10_f70 71 ; CHECK-LABEL: name: fptoui_s8_s3272 ; CHECK: liveins: $f10_f73 ; CHECK-NEXT: {{ $}}74 ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(s32) = COPY $f10_f75 ; CHECK-NEXT: [[FCVT_WU_RV64_:%[0-9]+]]:_(s64) = G_FCVT_WU_RV64 [[COPY]](s32), 176 ; CHECK-NEXT: $x10 = COPY [[FCVT_WU_RV64_]](s64)77 ; CHECK-NEXT: PseudoRET implicit $x1078 %0:_(s32) = COPY $f10_f79 %1:_(s8) = G_FPTOUI %0(s32)80 %2:_(s64) = G_ANYEXT %1(s8)81 $x10 = COPY %2(s64)82 PseudoRET implicit $x1083 84...85---86name: fptosi_s16_s3287body: |88 bb.1:89 liveins: $f10_f90 91 ; CHECK-LABEL: name: fptosi_s16_s3292 ; CHECK: liveins: $f10_f93 ; CHECK-NEXT: {{ $}}94 ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(s32) = COPY $f10_f95 ; CHECK-NEXT: [[FCVT_W_RV64_:%[0-9]+]]:_(s64) = G_FCVT_W_RV64 [[COPY]](s32), 196 ; CHECK-NEXT: $x10 = COPY [[FCVT_W_RV64_]](s64)97 ; CHECK-NEXT: PseudoRET implicit $x1098 %0:_(s32) = COPY $f10_f99 %1:_(s16) = G_FPTOSI %0(s32)100 %2:_(s64) = G_ANYEXT %1(s16)101 $x10 = COPY %2(s64)102 PseudoRET implicit $x10103 104...105---106name: fptoui_s16_s32107body: |108 bb.1:109 liveins: $f10_f110 111 ; CHECK-LABEL: name: fptoui_s16_s32112 ; CHECK: liveins: $f10_f113 ; CHECK-NEXT: {{ $}}114 ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(s32) = COPY $f10_f115 ; CHECK-NEXT: [[FCVT_WU_RV64_:%[0-9]+]]:_(s64) = G_FCVT_WU_RV64 [[COPY]](s32), 1116 ; CHECK-NEXT: $x10 = COPY [[FCVT_WU_RV64_]](s64)117 ; CHECK-NEXT: PseudoRET implicit $x10118 %0:_(s32) = COPY $f10_f119 %1:_(s16) = G_FPTOUI %0(s32)120 %2:_(s64) = G_ANYEXT %1(s16)121 $x10 = COPY %2(s64)122 PseudoRET implicit $x10123 124...125---126name: fptosi_s32_s32127body: |128 bb.1:129 liveins: $f10_f130 131 ; CHECK-LABEL: name: fptosi_s32_s32132 ; CHECK: liveins: $f10_f133 ; CHECK-NEXT: {{ $}}134 ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(s32) = COPY $f10_f135 ; CHECK-NEXT: [[FCVT_W_RV64_:%[0-9]+]]:_(s64) = G_FCVT_W_RV64 [[COPY]](s32), 1136 ; CHECK-NEXT: $x10 = COPY [[FCVT_W_RV64_]](s64)137 ; CHECK-NEXT: PseudoRET implicit $x10138 %0:_(s32) = COPY $f10_f139 %1:_(s32) = G_FPTOSI %0(s32)140 %2:_(s64) = G_ANYEXT %1(s32)141 $x10 = COPY %2(s64)142 PseudoRET implicit $x10143 144...145---146name: fptoui_s32_s32147body: |148 bb.1:149 liveins: $f10_f150 151 ; CHECK-LABEL: name: fptoui_s32_s32152 ; CHECK: liveins: $f10_f153 ; CHECK-NEXT: {{ $}}154 ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(s32) = COPY $f10_f155 ; CHECK-NEXT: [[FCVT_WU_RV64_:%[0-9]+]]:_(s64) = G_FCVT_WU_RV64 [[COPY]](s32), 1156 ; CHECK-NEXT: $x10 = COPY [[FCVT_WU_RV64_]](s64)157 ; CHECK-NEXT: PseudoRET implicit $x10158 %0:_(s32) = COPY $f10_f159 %1:_(s32) = G_FPTOUI %0(s32)160 %2:_(s64) = G_ANYEXT %1(s32)161 $x10 = COPY %2(s64)162 PseudoRET implicit $x10163 164...165---166name: fptosi_s64_s32167body: |168 bb.1:169 liveins: $f10_f170 171 ; CHECK-LABEL: name: fptosi_s64_s32172 ; CHECK: liveins: $f10_f173 ; CHECK-NEXT: {{ $}}174 ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(s32) = COPY $f10_f175 ; CHECK-NEXT: [[FPTOSI:%[0-9]+]]:_(s64) = G_FPTOSI [[COPY]](s32)176 ; CHECK-NEXT: $x10 = COPY [[FPTOSI]](s64)177 ; CHECK-NEXT: PseudoRET implicit $x10178 %0:_(s32) = COPY $f10_f179 %1:_(s64) = G_FPTOSI %0(s32)180 $x10 = COPY %1(s64)181 PseudoRET implicit $x10182 183...184---185name: fptoui_s64_s32186body: |187 bb.1:188 liveins: $f10_f189 190 ; CHECK-LABEL: name: fptoui_s64_s32191 ; CHECK: liveins: $f10_f192 ; CHECK-NEXT: {{ $}}193 ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(s32) = COPY $f10_f194 ; CHECK-NEXT: [[FPTOUI:%[0-9]+]]:_(s64) = G_FPTOUI [[COPY]](s32)195 ; CHECK-NEXT: $x10 = COPY [[FPTOUI]](s64)196 ; CHECK-NEXT: PseudoRET implicit $x10197 %0:_(s32) = COPY $f10_f198 %1:_(s64) = G_FPTOUI %0(s32)199 $x10 = COPY %1(s64)200 PseudoRET implicit $x10201 202...203---204name: fptosi_s1_s64205body: |206 bb.1:207 liveins: $f10_d208 209 ; CHECK-LABEL: name: fptosi_s1_s64210 ; CHECK: liveins: $f10_d211 ; CHECK-NEXT: {{ $}}212 ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(s64) = COPY $f10_d213 ; CHECK-NEXT: [[FCVT_W_RV64_:%[0-9]+]]:_(s64) = G_FCVT_W_RV64 [[COPY]](s64), 1214 ; CHECK-NEXT: $x10 = COPY [[FCVT_W_RV64_]](s64)215 ; CHECK-NEXT: PseudoRET implicit $x10216 %0:_(s64) = COPY $f10_d217 %1:_(s1) = G_FPTOSI %0(s64)218 %2:_(s64) = G_ANYEXT %1(s1)219 $x10 = COPY %2(s64)220 PseudoRET implicit $x10221 222...223---224name: fptoui_s1_s64225body: |226 bb.1:227 liveins: $f10_d228 229 ; CHECK-LABEL: name: fptoui_s1_s64230 ; CHECK: liveins: $f10_d231 ; CHECK-NEXT: {{ $}}232 ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(s64) = COPY $f10_d233 ; CHECK-NEXT: [[FCVT_WU_RV64_:%[0-9]+]]:_(s64) = G_FCVT_WU_RV64 [[COPY]](s64), 1234 ; CHECK-NEXT: $x10 = COPY [[FCVT_WU_RV64_]](s64)235 ; CHECK-NEXT: PseudoRET implicit $x10236 %0:_(s64) = COPY $f10_d237 %1:_(s1) = G_FPTOUI %0(s64)238 %2:_(s64) = G_ANYEXT %1(s1)239 $x10 = COPY %2(s64)240 PseudoRET implicit $x10241 242...243---244name: fptosi_s8_s64245body: |246 bb.1:247 liveins: $f10_d248 249 ; CHECK-LABEL: name: fptosi_s8_s64250 ; CHECK: liveins: $f10_d251 ; CHECK-NEXT: {{ $}}252 ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(s64) = COPY $f10_d253 ; CHECK-NEXT: [[FCVT_W_RV64_:%[0-9]+]]:_(s64) = G_FCVT_W_RV64 [[COPY]](s64), 1254 ; CHECK-NEXT: $x10 = COPY [[FCVT_W_RV64_]](s64)255 ; CHECK-NEXT: PseudoRET implicit $x10256 %0:_(s64) = COPY $f10_d257 %1:_(s8) = G_FPTOSI %0(s64)258 %2:_(s64) = G_ANYEXT %1(s8)259 $x10 = COPY %2(s64)260 PseudoRET implicit $x10261 262...263---264name: fptoui_s8_s64265body: |266 bb.1:267 liveins: $f10_d268 269 ; CHECK-LABEL: name: fptoui_s8_s64270 ; CHECK: liveins: $f10_d271 ; CHECK-NEXT: {{ $}}272 ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(s64) = COPY $f10_d273 ; CHECK-NEXT: [[FCVT_WU_RV64_:%[0-9]+]]:_(s64) = G_FCVT_WU_RV64 [[COPY]](s64), 1274 ; CHECK-NEXT: $x10 = COPY [[FCVT_WU_RV64_]](s64)275 ; CHECK-NEXT: PseudoRET implicit $x10276 %0:_(s64) = COPY $f10_d277 %1:_(s8) = G_FPTOUI %0(s64)278 %2:_(s64) = G_ANYEXT %1(s8)279 $x10 = COPY %2(s64)280 PseudoRET implicit $x10281 282...283---284name: fptosi_s16_s64285body: |286 bb.1:287 liveins: $f10_d288 289 ; CHECK-LABEL: name: fptosi_s16_s64290 ; CHECK: liveins: $f10_d291 ; CHECK-NEXT: {{ $}}292 ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(s64) = COPY $f10_d293 ; CHECK-NEXT: [[FCVT_W_RV64_:%[0-9]+]]:_(s64) = G_FCVT_W_RV64 [[COPY]](s64), 1294 ; CHECK-NEXT: $x10 = COPY [[FCVT_W_RV64_]](s64)295 ; CHECK-NEXT: PseudoRET implicit $x10296 %0:_(s64) = COPY $f10_d297 %1:_(s16) = G_FPTOSI %0(s64)298 %2:_(s64) = G_ANYEXT %1(s16)299 $x10 = COPY %2(s64)300 PseudoRET implicit $x10301 302...303---304name: fptoui_s16_s64305body: |306 bb.1:307 liveins: $f10_d308 309 ; CHECK-LABEL: name: fptoui_s16_s64310 ; CHECK: liveins: $f10_d311 ; CHECK-NEXT: {{ $}}312 ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(s64) = COPY $f10_d313 ; CHECK-NEXT: [[FCVT_WU_RV64_:%[0-9]+]]:_(s64) = G_FCVT_WU_RV64 [[COPY]](s64), 1314 ; CHECK-NEXT: $x10 = COPY [[FCVT_WU_RV64_]](s64)315 ; CHECK-NEXT: PseudoRET implicit $x10316 %0:_(s64) = COPY $f10_d317 %1:_(s16) = G_FPTOUI %0(s64)318 %2:_(s64) = G_ANYEXT %1(s16)319 $x10 = COPY %2(s64)320 PseudoRET implicit $x10321 322...323---324name: fptosi_s32_s64325body: |326 bb.1:327 liveins: $f10_d328 329 ; CHECK-LABEL: name: fptosi_s32_s64330 ; CHECK: liveins: $f10_d331 ; CHECK-NEXT: {{ $}}332 ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(s64) = COPY $f10_d333 ; CHECK-NEXT: [[FCVT_W_RV64_:%[0-9]+]]:_(s64) = G_FCVT_W_RV64 [[COPY]](s64), 1334 ; CHECK-NEXT: $x10 = COPY [[FCVT_W_RV64_]](s64)335 ; CHECK-NEXT: PseudoRET implicit $x10336 %0:_(s64) = COPY $f10_d337 %1:_(s32) = G_FPTOSI %0(s64)338 %2:_(s64) = G_ANYEXT %1(s32)339 $x10 = COPY %2(s64)340 PseudoRET implicit $x10341 342...343---344name: fptoui_s32_s64345body: |346 bb.1:347 liveins: $f10_d348 349 ; CHECK-LABEL: name: fptoui_s32_s64350 ; CHECK: liveins: $f10_d351 ; CHECK-NEXT: {{ $}}352 ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(s64) = COPY $f10_d353 ; CHECK-NEXT: [[FCVT_WU_RV64_:%[0-9]+]]:_(s64) = G_FCVT_WU_RV64 [[COPY]](s64), 1354 ; CHECK-NEXT: $x10 = COPY [[FCVT_WU_RV64_]](s64)355 ; CHECK-NEXT: PseudoRET implicit $x10356 %0:_(s64) = COPY $f10_d357 %1:_(s32) = G_FPTOUI %0(s64)358 %2:_(s64) = G_ANYEXT %1(s32)359 $x10 = COPY %2(s64)360 PseudoRET implicit $x10361 362...363---364name: fptosi_s64_s64365body: |366 bb.1:367 liveins: $f10_d368 369 ; CHECK-LABEL: name: fptosi_s64_s64370 ; CHECK: liveins: $f10_d371 ; CHECK-NEXT: {{ $}}372 ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(s64) = COPY $f10_d373 ; CHECK-NEXT: [[FPTOSI:%[0-9]+]]:_(s64) = G_FPTOSI [[COPY]](s64)374 ; CHECK-NEXT: $x10 = COPY [[FPTOSI]](s64)375 ; CHECK-NEXT: PseudoRET implicit $x10376 %0:_(s64) = COPY $f10_d377 %1:_(s64) = G_FPTOSI %0(s64)378 $x10 = COPY %1(s64)379 PseudoRET implicit $x10380 381...382---383name: fptoui_s64_s64384body: |385 bb.1:386 liveins: $f10_d387 388 ; CHECK-LABEL: name: fptoui_s64_s64389 ; CHECK: liveins: $f10_d390 ; CHECK-NEXT: {{ $}}391 ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(s64) = COPY $f10_d392 ; CHECK-NEXT: [[FPTOUI:%[0-9]+]]:_(s64) = G_FPTOUI [[COPY]](s64)393 ; CHECK-NEXT: $x10 = COPY [[FPTOUI]](s64)394 ; CHECK-NEXT: PseudoRET implicit $x10395 %0:_(s64) = COPY $f10_d396 %1:_(s64) = G_FPTOUI %0(s64)397 $x10 = COPY %1(s64)398 PseudoRET implicit $x10399 400...401