206 lines · plain
1# NOTE: Assertions have been autogenerated by utils/update_mir_test_checks.py2# RUN: llc -mtriple=riscv64 -run-pass=instruction-select %s -o - \3# RUN: | FileCheck %s4 5---6name: select_s327legalized: true8regBankSelected: true9tracksRegLiveness: true10body: |11 bb.0:12 liveins: $x10, $x11, $x1213 14 ; CHECK-LABEL: name: select_s3215 ; CHECK: liveins: $x10, $x11, $x1216 ; CHECK-NEXT: {{ $}}17 ; CHECK-NEXT: [[COPY:%[0-9]+]]:gpr = COPY $x1018 ; CHECK-NEXT: [[COPY1:%[0-9]+]]:gpr = COPY $x1119 ; CHECK-NEXT: [[COPY2:%[0-9]+]]:gpr = COPY $x1220 ; CHECK-NEXT: [[Select_GPR_Using_CC_GPR:%[0-9]+]]:gpr = Select_GPR_Using_CC_GPR [[COPY]], $x0, 1, [[COPY1]], [[COPY2]]21 ; CHECK-NEXT: $x10 = COPY [[Select_GPR_Using_CC_GPR]]22 ; CHECK-NEXT: PseudoRET implicit $x1023 %0:gprb(s64) = COPY $x1024 %1:gprb(s64) = COPY $x1125 %2:gprb(s64) = COPY $x1226 %3:gprb(s32) = G_TRUNC %127 %4:gprb(s32) = G_TRUNC %228 %5:gprb(s32) = G_SELECT %0, %3, %429 %6:gprb(s64) = G_ANYEXT %530 $x10 = COPY %6(s64)31 PseudoRET implicit $x1032 33...34---35name: select_s6436legalized: true37regBankSelected: true38tracksRegLiveness: true39body: |40 bb.0:41 liveins: $x10, $x11, $x1242 43 ; CHECK-LABEL: name: select_s6444 ; CHECK: liveins: $x10, $x11, $x1245 ; CHECK-NEXT: {{ $}}46 ; CHECK-NEXT: [[COPY:%[0-9]+]]:gpr = COPY $x1047 ; CHECK-NEXT: [[COPY1:%[0-9]+]]:gpr = COPY $x1148 ; CHECK-NEXT: [[COPY2:%[0-9]+]]:gpr = COPY $x1249 ; CHECK-NEXT: [[Select_GPR_Using_CC_GPR:%[0-9]+]]:gpr = Select_GPR_Using_CC_GPR [[COPY]], $x0, 1, [[COPY1]], [[COPY2]]50 ; CHECK-NEXT: $x10 = COPY [[Select_GPR_Using_CC_GPR]]51 ; CHECK-NEXT: PseudoRET implicit $x1052 %0:gprb(s64) = COPY $x1053 %1:gprb(s64) = COPY $x1154 %2:gprb(s64) = COPY $x1255 %3:gprb(s64) = G_SELECT %0, %1, %256 $x10 = COPY %3(s64)57 PseudoRET implicit $x1058 59...60---61name: select_p062legalized: true63regBankSelected: true64tracksRegLiveness: true65body: |66 bb.0:67 liveins: $x10, $x11, $x1268 69 ; CHECK-LABEL: name: select_p070 ; CHECK: liveins: $x10, $x11, $x1271 ; CHECK-NEXT: {{ $}}72 ; CHECK-NEXT: [[COPY:%[0-9]+]]:gpr = COPY $x1073 ; CHECK-NEXT: [[COPY1:%[0-9]+]]:gpr = COPY $x1174 ; CHECK-NEXT: [[COPY2:%[0-9]+]]:gpr = COPY $x1275 ; CHECK-NEXT: [[Select_GPR_Using_CC_GPR:%[0-9]+]]:gpr = Select_GPR_Using_CC_GPR [[COPY]], $x0, 1, [[COPY1]], [[COPY2]]76 ; CHECK-NEXT: $x10 = COPY [[Select_GPR_Using_CC_GPR]]77 ; CHECK-NEXT: PseudoRET implicit $x1078 %0:gprb(s64) = COPY $x1079 %1:gprb(p0) = COPY $x1180 %2:gprb(p0) = COPY $x1281 %3:gprb(p0) = G_SELECT %0, %1, %282 $x10 = COPY %3(p0)83 PseudoRET implicit $x1084 85...86---87name: select_icmp_ult88legalized: true89regBankSelected: true90tracksRegLiveness: true91body: |92 bb.0:93 liveins: $x10, $x11, $x12, $x13, $x1494 95 ; CHECK-LABEL: name: select_icmp_ult96 ; CHECK: liveins: $x10, $x11, $x12, $x13, $x1497 ; CHECK-NEXT: {{ $}}98 ; CHECK-NEXT: [[COPY:%[0-9]+]]:gpr = COPY $x1099 ; CHECK-NEXT: [[COPY1:%[0-9]+]]:gpr = COPY $x11100 ; CHECK-NEXT: [[COPY2:%[0-9]+]]:gpr = COPY $x12101 ; CHECK-NEXT: [[COPY3:%[0-9]+]]:gpr = COPY $x13102 ; CHECK-NEXT: [[Select_GPR_Using_CC_GPR:%[0-9]+]]:gpr = Select_GPR_Using_CC_GPR [[COPY2]], [[COPY3]], 4, [[COPY]], [[COPY1]]103 ; CHECK-NEXT: $x10 = COPY [[Select_GPR_Using_CC_GPR]]104 ; CHECK-NEXT: PseudoRET implicit $x10105 %0:gprb(s64) = COPY $x10106 %1:gprb(s64) = COPY $x11107 %2:gprb(s64) = COPY $x12108 %3:gprb(s64) = COPY $x13109 %4:gprb(s64) = COPY $x14110 %5:gprb(s64) = G_ICMP intpred(ult), %2, %3111 %6:gprb(s64) = G_SELECT %5, %0, %1112 $x10 = COPY %6(s64)113 PseudoRET implicit $x10114 115...116---117name: select_icmp_ugt118legalized: true119regBankSelected: true120tracksRegLiveness: true121body: |122 bb.0:123 liveins: $x10, $x11, $x12, $x13, $x14124 125 ; CHECK-LABEL: name: select_icmp_ugt126 ; CHECK: liveins: $x10, $x11, $x12, $x13, $x14127 ; CHECK-NEXT: {{ $}}128 ; CHECK-NEXT: [[COPY:%[0-9]+]]:gpr = COPY $x10129 ; CHECK-NEXT: [[COPY1:%[0-9]+]]:gpr = COPY $x11130 ; CHECK-NEXT: [[COPY2:%[0-9]+]]:gpr = COPY $x12131 ; CHECK-NEXT: [[COPY3:%[0-9]+]]:gpr = COPY $x13132 ; CHECK-NEXT: [[Select_GPR_Using_CC_GPR:%[0-9]+]]:gpr = Select_GPR_Using_CC_GPR [[COPY3]], [[COPY2]], 4, [[COPY]], [[COPY1]]133 ; CHECK-NEXT: $x10 = COPY [[Select_GPR_Using_CC_GPR]]134 ; CHECK-NEXT: PseudoRET implicit $x10135 %0:gprb(s64) = COPY $x10136 %1:gprb(s64) = COPY $x11137 %2:gprb(s64) = COPY $x12138 %3:gprb(s64) = COPY $x13139 %4:gprb(s64) = COPY $x14140 %5:gprb(s64) = G_ICMP intpred(ugt), %2, %3141 %6:gprb(s64) = G_SELECT %5, %0, %1142 $x10 = COPY %6(s64)143 PseudoRET implicit $x10144 145...146---147name: select_icmp_sgtneg1148legalized: true149regBankSelected: true150tracksRegLiveness: true151body: |152 bb.0:153 liveins: $x10, $x11, $x12, $x13, $x14154 155 ; CHECK-LABEL: name: select_icmp_sgtneg1156 ; CHECK: liveins: $x10, $x11, $x12, $x13, $x14157 ; CHECK-NEXT: {{ $}}158 ; CHECK-NEXT: [[COPY:%[0-9]+]]:gpr = COPY $x10159 ; CHECK-NEXT: [[COPY1:%[0-9]+]]:gpr = COPY $x11160 ; CHECK-NEXT: [[COPY2:%[0-9]+]]:gpr = COPY $x12161 ; CHECK-NEXT: [[Select_GPR_Using_CC_GPR:%[0-9]+]]:gpr = Select_GPR_Using_CC_GPR [[COPY2]], $x0, 3, [[COPY]], [[COPY1]]162 ; CHECK-NEXT: $x10 = COPY [[Select_GPR_Using_CC_GPR]]163 ; CHECK-NEXT: PseudoRET implicit $x10164 %0:gprb(s64) = COPY $x10165 %1:gprb(s64) = COPY $x11166 %2:gprb(s64) = COPY $x12167 %3:gprb(s64) = COPY $x13168 %4:gprb(s64) = COPY $x14169 %5:gprb(s64) = G_CONSTANT i64 -1170 %6:gprb(s64) = G_ICMP intpred(sgt), %2, %5171 %7:gprb(s64) = G_SELECT %6, %0, %1172 $x10 = COPY %7(s64)173 PseudoRET implicit $x10174 175...176---177name: select_icmp_slt1178legalized: true179regBankSelected: true180tracksRegLiveness: true181body: |182 bb.0:183 liveins: $x10, $x11, $x12, $x13, $x14184 185 ; CHECK-LABEL: name: select_icmp_slt1186 ; CHECK: liveins: $x10, $x11, $x12, $x13, $x14187 ; CHECK-NEXT: {{ $}}188 ; CHECK-NEXT: [[COPY:%[0-9]+]]:gpr = COPY $x10189 ; CHECK-NEXT: [[COPY1:%[0-9]+]]:gpr = COPY $x11190 ; CHECK-NEXT: [[COPY2:%[0-9]+]]:gpr = COPY $x12191 ; CHECK-NEXT: [[Select_GPR_Using_CC_GPR:%[0-9]+]]:gpr = Select_GPR_Using_CC_GPR $x0, [[COPY2]], 3, [[COPY]], [[COPY1]]192 ; CHECK-NEXT: $x10 = COPY [[Select_GPR_Using_CC_GPR]]193 ; CHECK-NEXT: PseudoRET implicit $x10194 %0:gprb(s64) = COPY $x10195 %1:gprb(s64) = COPY $x11196 %2:gprb(s64) = COPY $x12197 %3:gprb(s64) = COPY $x13198 %4:gprb(s64) = COPY $x14199 %5:gprb(s64) = G_CONSTANT i64 1200 %6:gprb(s64) = G_ICMP intpred(slt), %2, %5201 %7:gprb(s64) = G_SELECT %6, %0, %1202 $x10 = COPY %7(s64)203 PseudoRET implicit $x10204 205...206