295 lines · plain
1# NOTE: Assertions have been autogenerated by utils/update_mir_test_checks.py2# RUN: llc -mtriple=amdgcn -mcpu=gfx1150 -run-pass=instruction-select -verify-machineinstrs -o - %s | FileCheck -check-prefix=GFX1150 %s3# RUN: llc -mtriple=amdgcn -mcpu=gfx1200 -run-pass=instruction-select -verify-machineinstrs -o - %s | FileCheck -check-prefix=GFX1150 %s4 5---6name: fadd_f327legalized: true8regBankSelected: true9body: |10 bb.0:11 liveins: $sgpr0, $sgpr112 13 ; GFX1150-LABEL: name: fadd_f3214 ; GFX1150: liveins: $sgpr0, $sgpr115 ; GFX1150-NEXT: {{ $}}16 ; GFX1150-NEXT: [[COPY:%[0-9]+]]:sreg_32 = COPY $sgpr017 ; GFX1150-NEXT: [[COPY1:%[0-9]+]]:sreg_32 = COPY $sgpr118 ; GFX1150-NEXT: %2:sreg_32 = nofpexcept S_ADD_F32 [[COPY]], [[COPY1]], implicit $mode19 ; GFX1150-NEXT: $sgpr0 = COPY %220 %0:sgpr(s32) = COPY $sgpr021 %1:sgpr(s32) = COPY $sgpr122 %2:sgpr(s32) = G_FADD %0, %123 $sgpr0 = COPY %2(s32)24 25...26---27name: fsub_f3228legalized: true29regBankSelected: true30body: |31 bb.0:32 liveins: $sgpr0, $sgpr133 34 ; GFX1150-LABEL: name: fsub_f3235 ; GFX1150: liveins: $sgpr0, $sgpr136 ; GFX1150-NEXT: {{ $}}37 ; GFX1150-NEXT: [[COPY:%[0-9]+]]:sreg_32 = COPY $sgpr038 ; GFX1150-NEXT: [[COPY1:%[0-9]+]]:sreg_32 = COPY $sgpr139 ; GFX1150-NEXT: %2:sreg_32 = nofpexcept S_SUB_F32 [[COPY]], [[COPY1]], implicit $mode40 ; GFX1150-NEXT: $sgpr0 = COPY %241 %0:sgpr(s32) = COPY $sgpr042 %1:sgpr(s32) = COPY $sgpr143 %2:sgpr(s32) = G_FSUB %0, %144 $sgpr0 = COPY %2(s32)45 46...47---48name: fmul_f3249legalized: true50regBankSelected: true51body: |52 bb.0:53 liveins: $sgpr0, $sgpr154 55 ; GFX1150-LABEL: name: fmul_f3256 ; GFX1150: liveins: $sgpr0, $sgpr157 ; GFX1150-NEXT: {{ $}}58 ; GFX1150-NEXT: [[COPY:%[0-9]+]]:sreg_32 = COPY $sgpr059 ; GFX1150-NEXT: [[COPY1:%[0-9]+]]:sreg_32 = COPY $sgpr160 ; GFX1150-NEXT: %2:sreg_32 = nofpexcept S_MUL_F32 [[COPY]], [[COPY1]], implicit $mode61 ; GFX1150-NEXT: $sgpr0 = COPY %262 %0:sgpr(s32) = COPY $sgpr063 %1:sgpr(s32) = COPY $sgpr164 %2:sgpr(s32) = G_FMUL %0, %165 $sgpr0 = COPY %2(s32)66 67...68---69name: fmin_f3270legalized: true71regBankSelected: true72body: |73 bb.0:74 liveins: $sgpr0, $sgpr175 76 ; GFX1150-LABEL: name: fmin_f3277 ; GFX1150: liveins: $sgpr0, $sgpr178 ; GFX1150-NEXT: {{ $}}79 ; GFX1150-NEXT: [[COPY:%[0-9]+]]:sreg_32 = COPY $sgpr080 ; GFX1150-NEXT: [[COPY1:%[0-9]+]]:sreg_32 = COPY $sgpr181 ; GFX1150-NEXT: %2:sreg_32 = nofpexcept S_MIN_F32 [[COPY]], [[COPY1]], implicit $mode82 ; GFX1150-NEXT: $sgpr0 = COPY %283 %0:sgpr(s32) = COPY $sgpr084 %1:sgpr(s32) = COPY $sgpr185 %2:sgpr(s32) = G_FMINNUM %0, %186 $sgpr0 = COPY %2(s32)87 88...89---90name: fmax_f3291legalized: true92regBankSelected: true93body: |94 bb.0:95 liveins: $sgpr0, $sgpr196 97 ; GFX1150-LABEL: name: fmax_f3298 ; GFX1150: liveins: $sgpr0, $sgpr199 ; GFX1150-NEXT: {{ $}}100 ; GFX1150-NEXT: [[COPY:%[0-9]+]]:sreg_32 = COPY $sgpr0101 ; GFX1150-NEXT: [[COPY1:%[0-9]+]]:sreg_32 = COPY $sgpr1102 ; GFX1150-NEXT: %2:sreg_32 = nofpexcept S_MAX_F32 [[COPY]], [[COPY1]], implicit $mode103 ; GFX1150-NEXT: $sgpr0 = COPY %2104 %0:sgpr(s32) = COPY $sgpr0105 %1:sgpr(s32) = COPY $sgpr1106 %2:sgpr(s32) = G_FMAXNUM %0, %1107 $sgpr0 = COPY %2(s32)108 109...110---111name: fadd_f16112legalized: true113regBankSelected: true114body: |115 bb.0:116 liveins: $sgpr0, $sgpr1117 118 ; GFX1150-LABEL: name: fadd_f16119 ; GFX1150: liveins: $sgpr0, $sgpr1120 ; GFX1150-NEXT: {{ $}}121 ; GFX1150-NEXT: [[COPY:%[0-9]+]]:sreg_32 = COPY $sgpr0122 ; GFX1150-NEXT: [[COPY1:%[0-9]+]]:sreg_32 = COPY $sgpr1123 ; GFX1150-NEXT: %4:sreg_32 = nofpexcept S_ADD_F16 [[COPY]], [[COPY1]], implicit $mode124 ; GFX1150-NEXT: $sgpr0 = COPY %4125 %0:sgpr(s32) = COPY $sgpr0126 %1:sgpr(s16) = G_TRUNC %0(s32)127 %2:sgpr(s32) = COPY $sgpr1128 %3:sgpr(s16) = G_TRUNC %2(s32)129 %4:sgpr(s16) = G_FADD %1, %3130 %5:sgpr(s32) = G_ANYEXT %4(s16)131 $sgpr0 = COPY %5(s32)132 133...134---135name: fsub_f16136legalized: true137regBankSelected: true138body: |139 bb.0:140 liveins: $sgpr0, $sgpr1141 142 ; GFX1150-LABEL: name: fsub_f16143 ; GFX1150: liveins: $sgpr0, $sgpr1144 ; GFX1150-NEXT: {{ $}}145 ; GFX1150-NEXT: [[COPY:%[0-9]+]]:sreg_32 = COPY $sgpr0146 ; GFX1150-NEXT: [[COPY1:%[0-9]+]]:sreg_32 = COPY $sgpr1147 ; GFX1150-NEXT: %4:sreg_32 = nofpexcept S_SUB_F16 [[COPY]], [[COPY1]], implicit $mode148 ; GFX1150-NEXT: $sgpr0 = COPY %4149 %0:sgpr(s32) = COPY $sgpr0150 %1:sgpr(s16) = G_TRUNC %0(s32)151 %2:sgpr(s32) = COPY $sgpr1152 %3:sgpr(s16) = G_TRUNC %2(s32)153 %4:sgpr(s16) = G_FSUB %1, %3154 %5:sgpr(s32) = G_ANYEXT %4(s16)155 $sgpr0 = COPY %5(s32)156 157...158---159name: fmul_f16160legalized: true161regBankSelected: true162body: |163 bb.0:164 liveins: $sgpr0, $sgpr1165 166 ; GFX1150-LABEL: name: fmul_f16167 ; GFX1150: liveins: $sgpr0, $sgpr1168 ; GFX1150-NEXT: {{ $}}169 ; GFX1150-NEXT: [[COPY:%[0-9]+]]:sreg_32 = COPY $sgpr0170 ; GFX1150-NEXT: [[COPY1:%[0-9]+]]:sreg_32 = COPY $sgpr1171 ; GFX1150-NEXT: %4:sreg_32 = nofpexcept S_MUL_F16 [[COPY]], [[COPY1]], implicit $mode172 ; GFX1150-NEXT: $sgpr0 = COPY %4173 %0:sgpr(s32) = COPY $sgpr0174 %1:sgpr(s16) = G_TRUNC %0(s32)175 %2:sgpr(s32) = COPY $sgpr1176 %3:sgpr(s16) = G_TRUNC %2(s32)177 %4:sgpr(s16) = G_FMUL %1, %3178 %5:sgpr(s32) = G_ANYEXT %4(s16)179 $sgpr0 = COPY %5(s32)180 181...182---183name: fmin_f16184legalized: true185regBankSelected: true186body: |187 bb.0:188 liveins: $sgpr0, $sgpr1189 190 ; GFX1150-LABEL: name: fmin_f16191 ; GFX1150: liveins: $sgpr0, $sgpr1192 ; GFX1150-NEXT: {{ $}}193 ; GFX1150-NEXT: [[COPY:%[0-9]+]]:sreg_32 = COPY $sgpr0194 ; GFX1150-NEXT: [[COPY1:%[0-9]+]]:sreg_32 = COPY $sgpr1195 ; GFX1150-NEXT: %4:sreg_32 = nofpexcept S_MIN_F16 [[COPY]], [[COPY1]], implicit $mode196 ; GFX1150-NEXT: $sgpr0 = COPY %4197 %0:sgpr(s32) = COPY $sgpr0198 %1:sgpr(s16) = G_TRUNC %0(s32)199 %2:sgpr(s32) = COPY $sgpr1200 %3:sgpr(s16) = G_TRUNC %2(s32)201 %4:sgpr(s16) = G_FMINNUM %1, %3202 %5:sgpr(s32) = G_ANYEXT %4(s16)203 $sgpr0 = COPY %5(s32)204 205...206---207name: fmax_f16208legalized: true209regBankSelected: true210body: |211 bb.0:212 liveins: $sgpr0, $sgpr1213 214 ; GFX1150-LABEL: name: fmax_f16215 ; GFX1150: liveins: $sgpr0, $sgpr1216 %0:sgpr(s32) = COPY $sgpr0217 %1:sgpr(s16) = G_TRUNC %0(s32)218 %2:sgpr(s32) = COPY $sgpr1219 %3:sgpr(s16) = G_TRUNC %2(s32)220 %4:sgpr(s16) = G_FMAXNUM %1, %3221 %5:sgpr(s32) = G_ANYEXT %4(s16)222 223...224---225name: s_cvt_pkrtz_v2f16_f32226legalized: true227regBankSelected: true228body: |229 bb.0:230 liveins: $sgpr0, $sgpr1231 232 ; GFX1150-LABEL: name: s_cvt_pkrtz_v2f16_f32233 ; GFX1150: liveins: $sgpr0, $sgpr1234 ; GFX1150-NEXT: {{ $}}235 ; GFX1150-NEXT: [[COPY:%[0-9]+]]:sreg_32 = COPY $sgpr0236 ; GFX1150-NEXT: [[COPY1:%[0-9]+]]:sreg_32 = COPY $sgpr1237 ; GFX1150-NEXT: %2:sreg_32 = nofpexcept S_CVT_PK_RTZ_F16_F32 [[COPY]], [[COPY1]], implicit $mode238 ; GFX1150-NEXT: $sgpr0 = COPY %2239 %0:sgpr(s32) = COPY $sgpr0240 %1:sgpr(s32) = COPY $sgpr1241 %2:sgpr(<2 x s16>) = G_INTRINSIC intrinsic(@llvm.amdgcn.cvt.pkrtz), %0(s32), %1(s32)242 $sgpr0 = COPY %2(<2 x s16>)243 244...245---246name: fmac_f32247legalized: true248regBankSelected: true249body: |250 bb.0:251 liveins: $sgpr0, $sgpr1, $sgpr2252 253 ; GFX1150-LABEL: name: fmac_f32254 ; GFX1150: liveins: $sgpr0, $sgpr1, $sgpr2255 ; GFX1150-NEXT: {{ $}}256 ; GFX1150-NEXT: [[COPY:%[0-9]+]]:sreg_32 = COPY $sgpr0257 ; GFX1150-NEXT: [[COPY1:%[0-9]+]]:sreg_32 = COPY $sgpr1258 ; GFX1150-NEXT: [[COPY2:%[0-9]+]]:sreg_32 = COPY $sgpr2259 ; GFX1150-NEXT: %3:sreg_32 = nofpexcept S_FMAC_F32 [[COPY1]], [[COPY2]], [[COPY]], implicit $mode260 ; GFX1150-NEXT: $sgpr0 = COPY %3261 %0:sgpr(s32) = COPY $sgpr0262 %1:sgpr(s32) = COPY $sgpr1263 %2:sgpr(s32) = COPY $sgpr2264 %3:sgpr(s32) = G_FMA %1, %2, %0265 $sgpr0 = COPY %3(s32)266 267...268---269name: fmac_f16270legalized: true271regBankSelected: true272body: |273 bb.0:274 liveins: $sgpr0, $sgpr1, $sgpr2275 276 ; GFX1150-LABEL: name: fmac_f16277 ; GFX1150: liveins: $sgpr0, $sgpr1, $sgpr2278 ; GFX1150-NEXT: {{ $}}279 ; GFX1150-NEXT: [[COPY:%[0-9]+]]:sreg_32 = COPY $sgpr0280 ; GFX1150-NEXT: [[COPY1:%[0-9]+]]:sreg_32 = COPY $sgpr1281 ; GFX1150-NEXT: [[COPY2:%[0-9]+]]:sreg_32 = COPY $sgpr2282 ; GFX1150-NEXT: %6:sreg_32 = nofpexcept S_FMAC_F16 [[COPY1]], [[COPY2]], [[COPY]], implicit $mode283 ; GFX1150-NEXT: $sgpr0 = COPY %6284 %0:sgpr(s32) = COPY $sgpr0285 %1:sgpr(s16) = G_TRUNC %0(s32)286 %2:sgpr(s32) = COPY $sgpr1287 %3:sgpr(s16) = G_TRUNC %2(s32)288 %4:sgpr(s32) = COPY $sgpr2289 %5:sgpr(s16) = G_TRUNC %4(s32)290 %6:sgpr(s16) = G_FMA %3, %5, %1291 %7:sgpr(s32) = G_ANYEXT %6(s16)292 $sgpr0 = COPY %7(s32)293 294...295