231 lines · plain
1# NOTE: Assertions have been autogenerated by utils/update_mir_test_checks.py UTC_ARGS: --version 32# RUN: llc -mtriple=riscv64 -mattr=+zfh -run-pass=legalizer %s -o - \3# RUN: | FileCheck %s4 5---6name: sitofp_s16_s17tracksRegLiveness: true8body: |9 bb.1:10 liveins: $x1011 12 ; CHECK-LABEL: name: sitofp_s16_s113 ; CHECK: liveins: $x1014 ; CHECK-NEXT: {{ $}}15 ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(s64) = COPY $x1016 ; CHECK-NEXT: [[C:%[0-9]+]]:_(s64) = G_CONSTANT i64 6317 ; CHECK-NEXT: [[SHL:%[0-9]+]]:_(s64) = G_SHL [[COPY]], [[C]](s64)18 ; CHECK-NEXT: [[ASHR:%[0-9]+]]:_(s64) = G_ASHR [[SHL]], [[C]](s64)19 ; CHECK-NEXT: [[SITOFP:%[0-9]+]]:_(s16) = G_SITOFP [[ASHR]](s64)20 ; CHECK-NEXT: $f10_h = COPY [[SITOFP]](s16)21 ; CHECK-NEXT: PseudoRET implicit $f10_h22 %1:_(s64) = COPY $x1023 %0:_(s1) = G_TRUNC %1(s64)24 %2:_(s16) = G_SITOFP %0(s1)25 $f10_h = COPY %2(s16)26 PseudoRET implicit $f10_h27 28...29---30name: uitofp_s16_s131tracksRegLiveness: true32body: |33 bb.1:34 liveins: $x1035 36 ; CHECK-LABEL: name: uitofp_s16_s137 ; CHECK: liveins: $x1038 ; CHECK-NEXT: {{ $}}39 ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(s64) = COPY $x1040 ; CHECK-NEXT: [[C:%[0-9]+]]:_(s64) = G_CONSTANT i64 141 ; CHECK-NEXT: [[AND:%[0-9]+]]:_(s64) = G_AND [[COPY]], [[C]]42 ; CHECK-NEXT: [[UITOFP:%[0-9]+]]:_(s16) = G_UITOFP [[AND]](s64)43 ; CHECK-NEXT: $f10_h = COPY [[UITOFP]](s16)44 ; CHECK-NEXT: PseudoRET implicit $f10_h45 %1:_(s64) = COPY $x1046 %0:_(s1) = G_TRUNC %1(s64)47 %2:_(s16) = G_UITOFP %0(s1)48 $f10_h = COPY %2(s16)49 PseudoRET implicit $f10_h50 51...52---53name: sitofp_s16_s854tracksRegLiveness: true55body: |56 bb.1:57 liveins: $x1058 59 ; CHECK-LABEL: name: sitofp_s16_s860 ; CHECK: liveins: $x1061 ; CHECK-NEXT: {{ $}}62 ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(s64) = COPY $x1063 ; CHECK-NEXT: [[C:%[0-9]+]]:_(s64) = G_CONSTANT i64 5664 ; CHECK-NEXT: [[SHL:%[0-9]+]]:_(s64) = G_SHL [[COPY]], [[C]](s64)65 ; CHECK-NEXT: [[ASHR:%[0-9]+]]:_(s64) = G_ASHR [[SHL]], [[C]](s64)66 ; CHECK-NEXT: [[SITOFP:%[0-9]+]]:_(s16) = G_SITOFP [[ASHR]](s64)67 ; CHECK-NEXT: $f10_h = COPY [[SITOFP]](s16)68 ; CHECK-NEXT: PseudoRET implicit $f10_h69 %1:_(s64) = COPY $x1070 %0:_(s8) = G_TRUNC %1(s64)71 %2:_(s16) = G_SITOFP %0(s8)72 $f10_h = COPY %2(s16)73 PseudoRET implicit $f10_h74 75...76---77name: uitofp_s16_s878tracksRegLiveness: true79body: |80 bb.1:81 liveins: $x1082 83 ; CHECK-LABEL: name: uitofp_s16_s884 ; CHECK: liveins: $x1085 ; CHECK-NEXT: {{ $}}86 ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(s64) = COPY $x1087 ; CHECK-NEXT: [[C:%[0-9]+]]:_(s64) = G_CONSTANT i64 25588 ; CHECK-NEXT: [[AND:%[0-9]+]]:_(s64) = G_AND [[COPY]], [[C]]89 ; CHECK-NEXT: [[UITOFP:%[0-9]+]]:_(s16) = G_UITOFP [[AND]](s64)90 ; CHECK-NEXT: $f10_h = COPY [[UITOFP]](s16)91 ; CHECK-NEXT: PseudoRET implicit $f10_h92 %1:_(s64) = COPY $x1093 %0:_(s8) = G_TRUNC %1(s64)94 %2:_(s16) = G_UITOFP %0(s8)95 $f10_h = COPY %2(s16)96 PseudoRET implicit $f10_h97 98...99---100name: sitofp_s16_s16101tracksRegLiveness: true102body: |103 bb.1:104 liveins: $x10105 106 ; CHECK-LABEL: name: sitofp_s16_s16107 ; CHECK: liveins: $x10108 ; CHECK-NEXT: {{ $}}109 ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(s64) = COPY $x10110 ; CHECK-NEXT: [[C:%[0-9]+]]:_(s64) = G_CONSTANT i64 48111 ; CHECK-NEXT: [[SHL:%[0-9]+]]:_(s64) = G_SHL [[COPY]], [[C]](s64)112 ; CHECK-NEXT: [[ASHR:%[0-9]+]]:_(s64) = G_ASHR [[SHL]], [[C]](s64)113 ; CHECK-NEXT: [[SITOFP:%[0-9]+]]:_(s16) = G_SITOFP [[ASHR]](s64)114 ; CHECK-NEXT: $f10_h = COPY [[SITOFP]](s16)115 ; CHECK-NEXT: PseudoRET implicit $f10_h116 %1:_(s64) = COPY $x10117 %0:_(s16) = G_TRUNC %1(s64)118 %2:_(s16) = G_SITOFP %0(s16)119 $f10_h = COPY %2(s16)120 PseudoRET implicit $f10_h121 122...123---124name: uitofp_s16_s16125tracksRegLiveness: true126body: |127 bb.1:128 liveins: $x10129 130 ; CHECK-LABEL: name: uitofp_s16_s16131 ; CHECK: liveins: $x10132 ; CHECK-NEXT: {{ $}}133 ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(s64) = COPY $x10134 ; CHECK-NEXT: [[C:%[0-9]+]]:_(s64) = G_CONSTANT i64 65535135 ; CHECK-NEXT: [[AND:%[0-9]+]]:_(s64) = G_AND [[COPY]], [[C]]136 ; CHECK-NEXT: [[UITOFP:%[0-9]+]]:_(s16) = G_UITOFP [[AND]](s64)137 ; CHECK-NEXT: $f10_h = COPY [[UITOFP]](s16)138 ; CHECK-NEXT: PseudoRET implicit $f10_h139 %1:_(s64) = COPY $x10140 %0:_(s16) = G_TRUNC %1(s64)141 %2:_(s16) = G_UITOFP %0(s16)142 $f10_h = COPY %2(s16)143 PseudoRET implicit $f10_h144 145...146---147name: sitofp_s16_s32148tracksRegLiveness: true149body: |150 bb.1:151 liveins: $x10152 153 ; CHECK-LABEL: name: sitofp_s16_s32154 ; CHECK: liveins: $x10155 ; CHECK-NEXT: {{ $}}156 ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(s64) = COPY $x10157 ; CHECK-NEXT: [[SEXT_INREG:%[0-9]+]]:_(s64) = G_SEXT_INREG [[COPY]], 32158 ; CHECK-NEXT: [[SITOFP:%[0-9]+]]:_(s16) = G_SITOFP [[SEXT_INREG]](s64)159 ; CHECK-NEXT: $f10_h = COPY [[SITOFP]](s16)160 ; CHECK-NEXT: PseudoRET implicit $f10_h161 %1:_(s64) = COPY $x10162 %0:_(s32) = G_TRUNC %1(s64)163 %2:_(s16) = G_SITOFP %0(s32)164 $f10_h = COPY %2(s16)165 PseudoRET implicit $f10_h166 167...168---169name: uitofp_s16_s32170tracksRegLiveness: true171body: |172 bb.1:173 liveins: $x10174 175 ; CHECK-LABEL: name: uitofp_s16_s32176 ; CHECK: liveins: $x10177 ; CHECK-NEXT: {{ $}}178 ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(s64) = COPY $x10179 ; CHECK-NEXT: [[C:%[0-9]+]]:_(s64) = G_CONSTANT i64 4294967295180 ; CHECK-NEXT: [[AND:%[0-9]+]]:_(s64) = G_AND [[COPY]], [[C]]181 ; CHECK-NEXT: [[UITOFP:%[0-9]+]]:_(s16) = G_UITOFP [[AND]](s64)182 ; CHECK-NEXT: $f10_h = COPY [[UITOFP]](s16)183 ; CHECK-NEXT: PseudoRET implicit $f10_h184 %1:_(s64) = COPY $x10185 %0:_(s32) = G_TRUNC %1(s64)186 %2:_(s16) = G_UITOFP %0(s32)187 $f10_h = COPY %2(s16)188 PseudoRET implicit $f10_h189 190...191---192name: sitofp_s16_s64193tracksRegLiveness: true194body: |195 bb.1:196 liveins: $x10197 198 ; CHECK-LABEL: name: sitofp_s16_s64199 ; CHECK: liveins: $x10200 ; CHECK-NEXT: {{ $}}201 ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(s64) = COPY $x10202 ; CHECK-NEXT: [[SITOFP:%[0-9]+]]:_(s16) = G_SITOFP [[COPY]](s64)203 ; CHECK-NEXT: $f10_h = COPY [[SITOFP]](s16)204 ; CHECK-NEXT: PseudoRET implicit $f10_h205 %0:_(s64) = COPY $x10206 %1:_(s16) = G_SITOFP %0(s64)207 $f10_h = COPY %1(s16)208 PseudoRET implicit $f10_h209 210...211---212name: uitofp_s16_s64213tracksRegLiveness: true214body: |215 bb.1:216 liveins: $x10217 218 ; CHECK-LABEL: name: uitofp_s16_s64219 ; CHECK: liveins: $x10220 ; CHECK-NEXT: {{ $}}221 ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(s64) = COPY $x10222 ; CHECK-NEXT: [[UITOFP:%[0-9]+]]:_(s16) = G_UITOFP [[COPY]](s64)223 ; CHECK-NEXT: $f10_h = COPY [[UITOFP]](s16)224 ; CHECK-NEXT: PseudoRET implicit $f10_h225 %0:_(s64) = COPY $x10226 %1:_(s16) = G_UITOFP %0(s64)227 $f10_h = COPY %1(s16)228 PseudoRET implicit $f10_h229 230...231