313 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: fcmp_oeq_f167body: |8 bb.1:9 liveins: $f10_h, $f11_h10 11 ; CHECK-LABEL: name: fcmp_oeq_f1612 ; CHECK: liveins: $f10_h, $f11_h13 ; CHECK-NEXT: {{ $}}14 ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(s16) = COPY $f10_h15 ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(s16) = COPY $f11_h16 ; CHECK-NEXT: [[FCMP:%[0-9]+]]:_(s64) = G_FCMP floatpred(oeq), [[COPY]](s16), [[COPY1]]17 ; CHECK-NEXT: $x10 = COPY [[FCMP]](s64)18 ; CHECK-NEXT: PseudoRET implicit $x1019 %0:_(s16) = COPY $f10_h20 %1:_(s16) = COPY $f11_h21 %2:_(s1) = G_FCMP floatpred(oeq), %0(s16), %122 %3:_(s64) = G_ANYEXT %2(s1)23 $x10 = COPY %3(s64)24 PseudoRET implicit $x1025 26...27---28name: fcmp_ogt_f1629body: |30 bb.1:31 liveins: $f10_h, $f11_h32 33 ; CHECK-LABEL: name: fcmp_ogt_f1634 ; CHECK: liveins: $f10_h, $f11_h35 ; CHECK-NEXT: {{ $}}36 ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(s16) = COPY $f10_h37 ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(s16) = COPY $f11_h38 ; CHECK-NEXT: [[FCMP:%[0-9]+]]:_(s64) = G_FCMP floatpred(ogt), [[COPY]](s16), [[COPY1]]39 ; CHECK-NEXT: $x10 = COPY [[FCMP]](s64)40 ; CHECK-NEXT: PseudoRET implicit $x1041 %0:_(s16) = COPY $f10_h42 %1:_(s16) = COPY $f11_h43 %2:_(s1) = G_FCMP floatpred(ogt), %0(s16), %144 %3:_(s64) = G_ANYEXT %2(s1)45 $x10 = COPY %3(s64)46 PseudoRET implicit $x1047 48...49---50name: fcmp_oge_f1651body: |52 bb.1:53 liveins: $f10_h, $f11_h54 55 ; CHECK-LABEL: name: fcmp_oge_f1656 ; CHECK: liveins: $f10_h, $f11_h57 ; CHECK-NEXT: {{ $}}58 ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(s16) = COPY $f10_h59 ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(s16) = COPY $f11_h60 ; CHECK-NEXT: [[FCMP:%[0-9]+]]:_(s64) = G_FCMP floatpred(oge), [[COPY]](s16), [[COPY1]]61 ; CHECK-NEXT: $x10 = COPY [[FCMP]](s64)62 ; CHECK-NEXT: PseudoRET implicit $x1063 %0:_(s16) = COPY $f10_h64 %1:_(s16) = COPY $f11_h65 %2:_(s1) = G_FCMP floatpred(oge), %0(s16), %166 %3:_(s64) = G_ANYEXT %2(s1)67 $x10 = COPY %3(s64)68 PseudoRET implicit $x1069 70...71---72name: fcmp_olt_f1673body: |74 bb.1:75 liveins: $f10_h, $f11_h76 77 ; CHECK-LABEL: name: fcmp_olt_f1678 ; CHECK: liveins: $f10_h, $f11_h79 ; CHECK-NEXT: {{ $}}80 ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(s16) = COPY $f10_h81 ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(s16) = COPY $f11_h82 ; CHECK-NEXT: [[FCMP:%[0-9]+]]:_(s64) = G_FCMP floatpred(olt), [[COPY]](s16), [[COPY1]]83 ; CHECK-NEXT: $x10 = COPY [[FCMP]](s64)84 ; CHECK-NEXT: PseudoRET implicit $x1085 %0:_(s16) = COPY $f10_h86 %1:_(s16) = COPY $f11_h87 %2:_(s1) = G_FCMP floatpred(olt), %0(s16), %188 %3:_(s64) = G_ANYEXT %2(s1)89 $x10 = COPY %3(s64)90 PseudoRET implicit $x1091 92...93---94name: fcmp_ole_f1695body: |96 bb.1:97 liveins: $f10_h, $f11_h98 99 ; CHECK-LABEL: name: fcmp_ole_f16100 ; CHECK: liveins: $f10_h, $f11_h101 ; CHECK-NEXT: {{ $}}102 ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(s16) = COPY $f10_h103 ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(s16) = COPY $f11_h104 ; CHECK-NEXT: [[FCMP:%[0-9]+]]:_(s64) = G_FCMP floatpred(ole), [[COPY]](s16), [[COPY1]]105 ; CHECK-NEXT: $x10 = COPY [[FCMP]](s64)106 ; CHECK-NEXT: PseudoRET implicit $x10107 %0:_(s16) = COPY $f10_h108 %1:_(s16) = COPY $f11_h109 %2:_(s1) = G_FCMP floatpred(ole), %0(s16), %1110 %3:_(s64) = G_ANYEXT %2(s1)111 $x10 = COPY %3(s64)112 PseudoRET implicit $x10113 114...115---116name: fcmp_one_f16117body: |118 bb.1:119 liveins: $f10_h, $f11_h120 121 ; CHECK-LABEL: name: fcmp_one_f16122 ; CHECK: liveins: $f10_h, $f11_h123 ; CHECK-NEXT: {{ $}}124 ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(s16) = COPY $f10_h125 ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(s16) = COPY $f11_h126 ; CHECK-NEXT: [[FCMP:%[0-9]+]]:_(s64) = G_FCMP floatpred(one), [[COPY]](s16), [[COPY1]]127 ; CHECK-NEXT: $x10 = COPY [[FCMP]](s64)128 ; CHECK-NEXT: PseudoRET implicit $x10129 %0:_(s16) = COPY $f10_h130 %1:_(s16) = COPY $f11_h131 %2:_(s1) = G_FCMP floatpred(one), %0(s16), %1132 %3:_(s64) = G_ANYEXT %2(s1)133 $x10 = COPY %3(s64)134 PseudoRET implicit $x10135 136...137---138name: fcmp_ord_f16139body: |140 bb.1:141 liveins: $f10_h, $f11_h142 143 ; CHECK-LABEL: name: fcmp_ord_f16144 ; CHECK: liveins: $f10_h, $f11_h145 ; CHECK-NEXT: {{ $}}146 ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(s16) = COPY $f10_h147 ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(s16) = COPY $f11_h148 ; CHECK-NEXT: [[FCMP:%[0-9]+]]:_(s64) = G_FCMP floatpred(ord), [[COPY]](s16), [[COPY1]]149 ; CHECK-NEXT: $x10 = COPY [[FCMP]](s64)150 ; CHECK-NEXT: PseudoRET implicit $x10151 %0:_(s16) = COPY $f10_h152 %1:_(s16) = COPY $f11_h153 %2:_(s1) = G_FCMP floatpred(ord), %0(s16), %1154 %3:_(s64) = G_ANYEXT %2(s1)155 $x10 = COPY %3(s64)156 PseudoRET implicit $x10157 158...159---160name: fcmp_ueq_f16161body: |162 bb.1:163 liveins: $f10_h, $f11_h164 165 ; CHECK-LABEL: name: fcmp_ueq_f16166 ; CHECK: liveins: $f10_h, $f11_h167 ; CHECK-NEXT: {{ $}}168 ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(s16) = COPY $f10_h169 ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(s16) = COPY $f11_h170 ; CHECK-NEXT: [[FCMP:%[0-9]+]]:_(s64) = G_FCMP floatpred(ueq), [[COPY]](s16), [[COPY1]]171 ; CHECK-NEXT: $x10 = COPY [[FCMP]](s64)172 ; CHECK-NEXT: PseudoRET implicit $x10173 %0:_(s16) = COPY $f10_h174 %1:_(s16) = COPY $f11_h175 %2:_(s1) = G_FCMP floatpred(ueq), %0(s16), %1176 %3:_(s64) = G_ANYEXT %2(s1)177 $x10 = COPY %3(s64)178 PseudoRET implicit $x10179 180...181---182name: fcmp_ugt_f16183body: |184 bb.1:185 liveins: $f10_h, $f11_h186 187 ; CHECK-LABEL: name: fcmp_ugt_f16188 ; CHECK: liveins: $f10_h, $f11_h189 ; CHECK-NEXT: {{ $}}190 ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(s16) = COPY $f10_h191 ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(s16) = COPY $f11_h192 ; CHECK-NEXT: [[FCMP:%[0-9]+]]:_(s64) = G_FCMP floatpred(ugt), [[COPY]](s16), [[COPY1]]193 ; CHECK-NEXT: $x10 = COPY [[FCMP]](s64)194 ; CHECK-NEXT: PseudoRET implicit $x10195 %0:_(s16) = COPY $f10_h196 %1:_(s16) = COPY $f11_h197 %2:_(s1) = G_FCMP floatpred(ugt), %0(s16), %1198 %3:_(s64) = G_ANYEXT %2(s1)199 $x10 = COPY %3(s64)200 PseudoRET implicit $x10201 202...203---204name: fcmp_uge_f16205body: |206 bb.1:207 liveins: $f10_h, $f11_h208 209 ; CHECK-LABEL: name: fcmp_uge_f16210 ; CHECK: liveins: $f10_h, $f11_h211 ; CHECK-NEXT: {{ $}}212 ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(s16) = COPY $f10_h213 ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(s16) = COPY $f11_h214 ; CHECK-NEXT: [[FCMP:%[0-9]+]]:_(s64) = G_FCMP floatpred(uge), [[COPY]](s16), [[COPY1]]215 ; CHECK-NEXT: $x10 = COPY [[FCMP]](s64)216 ; CHECK-NEXT: PseudoRET implicit $x10217 %0:_(s16) = COPY $f10_h218 %1:_(s16) = COPY $f11_h219 %2:_(s1) = G_FCMP floatpred(uge), %0(s16), %1220 %3:_(s64) = G_ANYEXT %2(s1)221 $x10 = COPY %3(s64)222 PseudoRET implicit $x10223 224...225---226name: fcmp_ult_f16227body: |228 bb.1:229 liveins: $f10_h, $f11_h230 231 ; CHECK-LABEL: name: fcmp_ult_f16232 ; CHECK: liveins: $f10_h, $f11_h233 ; CHECK-NEXT: {{ $}}234 ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(s16) = COPY $f10_h235 ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(s16) = COPY $f11_h236 ; CHECK-NEXT: [[FCMP:%[0-9]+]]:_(s64) = G_FCMP floatpred(ult), [[COPY]](s16), [[COPY1]]237 ; CHECK-NEXT: $x10 = COPY [[FCMP]](s64)238 ; CHECK-NEXT: PseudoRET implicit $x10239 %0:_(s16) = COPY $f10_h240 %1:_(s16) = COPY $f11_h241 %2:_(s1) = G_FCMP floatpred(ult), %0(s16), %1242 %3:_(s64) = G_ANYEXT %2(s1)243 $x10 = COPY %3(s64)244 PseudoRET implicit $x10245 246...247---248name: fcmp_ule_f16249body: |250 bb.1:251 liveins: $f10_h, $f11_h252 253 ; CHECK-LABEL: name: fcmp_ule_f16254 ; CHECK: liveins: $f10_h, $f11_h255 ; CHECK-NEXT: {{ $}}256 ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(s16) = COPY $f10_h257 ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(s16) = COPY $f11_h258 ; CHECK-NEXT: [[FCMP:%[0-9]+]]:_(s64) = G_FCMP floatpred(ule), [[COPY]](s16), [[COPY1]]259 ; CHECK-NEXT: $x10 = COPY [[FCMP]](s64)260 ; CHECK-NEXT: PseudoRET implicit $x10261 %0:_(s16) = COPY $f10_h262 %1:_(s16) = COPY $f11_h263 %2:_(s1) = G_FCMP floatpred(ule), %0(s16), %1264 %3:_(s64) = G_ANYEXT %2(s1)265 $x10 = COPY %3(s64)266 PseudoRET implicit $x10267 268...269---270name: fcmp_une_f16271body: |272 bb.1:273 liveins: $f10_h, $f11_h274 275 ; CHECK-LABEL: name: fcmp_une_f16276 ; CHECK: liveins: $f10_h, $f11_h277 ; CHECK-NEXT: {{ $}}278 ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(s16) = COPY $f10_h279 ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(s16) = COPY $f11_h280 ; CHECK-NEXT: [[FCMP:%[0-9]+]]:_(s64) = G_FCMP floatpred(une), [[COPY]](s16), [[COPY1]]281 ; CHECK-NEXT: $x10 = COPY [[FCMP]](s64)282 ; CHECK-NEXT: PseudoRET implicit $x10283 %0:_(s16) = COPY $f10_h284 %1:_(s16) = COPY $f11_h285 %2:_(s1) = G_FCMP floatpred(une), %0(s16), %1286 %3:_(s64) = G_ANYEXT %2(s1)287 $x10 = COPY %3(s64)288 PseudoRET implicit $x10289 290...291---292name: fcmp_uno_f16293body: |294 bb.1:295 liveins: $f10_h, $f11_h296 297 ; CHECK-LABEL: name: fcmp_uno_f16298 ; CHECK: liveins: $f10_h, $f11_h299 ; CHECK-NEXT: {{ $}}300 ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(s16) = COPY $f10_h301 ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(s16) = COPY $f11_h302 ; CHECK-NEXT: [[FCMP:%[0-9]+]]:_(s64) = G_FCMP floatpred(uno), [[COPY]](s16), [[COPY1]]303 ; CHECK-NEXT: $x10 = COPY [[FCMP]](s64)304 ; CHECK-NEXT: PseudoRET implicit $x10305 %0:_(s16) = COPY $f10_h306 %1:_(s16) = COPY $f11_h307 %2:_(s1) = G_FCMP floatpred(uno), %0(s16), %1308 %3:_(s64) = G_ANYEXT %2(s1)309 $x10 = COPY %3(s64)310 PseudoRET implicit $x10311 312...313