1# NOTE: Assertions have been autogenerated by utils/update_mir_test_checks.py 2# RUN: llc -march=amdgcn -mcpu=tahiti -run-pass=instruction-select -global-isel-abort=2 -pass-remarks-missed='gisel*' -verify-machineinstrs %s -o - 2>%t | FileCheck -check-prefix=GCN %s 3 4--- 5name: mul_s32_ss 6legalized: true 7regBankSelected: true 8 9body: | 10 bb.0: 11 liveins: $sgpr0, $sgpr1 12 ; GCN-LABEL: name: mul_s32_ss 13 ; GCN: [[COPY:%[0-9]+]]:sreg_32 = COPY $sgpr0 14 ; GCN: [[COPY1:%[0-9]+]]:sreg_32 = COPY $sgpr1 15 ; GCN: [[S_MUL_I32_:%[0-9]+]]:sreg_32 = S_MUL_I32 [[COPY]], [[COPY1]] 16 ; GCN: S_ENDPGM 0, implicit [[S_MUL_I32_]] 17 %0:sgpr(s32) = COPY $sgpr0 18 %1:sgpr(s32) = COPY $sgpr1 19 %2:sgpr(s32) = G_MUL %0, %1 20 S_ENDPGM 0, implicit %2 21... 22 23--- 24name: mul_s32_sv 25legalized: true 26regBankSelected: true 27 28body: | 29 bb.0: 30 liveins: $sgpr0, $vgpr0 31 ; GCN-LABEL: name: mul_s32_sv 32 ; GCN: [[COPY:%[0-9]+]]:sreg_32 = COPY $sgpr0 33 ; GCN: [[COPY1:%[0-9]+]]:vgpr_32 = COPY $vgpr0 34 ; GCN: [[V_MUL_LO_U32_:%[0-9]+]]:vgpr_32 = V_MUL_LO_U32 [[COPY]], [[COPY1]], implicit $exec 35 ; GCN: S_ENDPGM 0, implicit [[V_MUL_LO_U32_]] 36 %0:sgpr(s32) = COPY $sgpr0 37 %1:vgpr(s32) = COPY $vgpr0 38 %2:vgpr(s32) = G_MUL %0, %1 39 S_ENDPGM 0, implicit %2 40... 41 42--- 43name: mul_s32_vs 44legalized: true 45regBankSelected: true 46 47body: | 48 bb.0: 49 liveins: $sgpr0, $vgpr0 50 ; GCN-LABEL: name: mul_s32_vs 51 ; GCN: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0 52 ; GCN: [[COPY1:%[0-9]+]]:sreg_32 = COPY $sgpr0 53 ; GCN: [[V_MUL_LO_U32_:%[0-9]+]]:vgpr_32 = V_MUL_LO_U32 [[COPY]], [[COPY1]], implicit $exec 54 ; GCN: S_ENDPGM 0, implicit [[V_MUL_LO_U32_]] 55 %0:vgpr(s32) = COPY $vgpr0 56 %1:sgpr(s32) = COPY $sgpr0 57 %2:vgpr(s32) = G_MUL %0, %1 58 S_ENDPGM 0, implicit %2 59... 60 61--- 62name: mul_s32_vv 63legalized: true 64regBankSelected: true 65 66body: | 67 bb.0: 68 liveins: $vgpr0, $vgpr1 69 ; GCN-LABEL: name: mul_s32_vv 70 ; GCN: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0 71 ; GCN: [[COPY1:%[0-9]+]]:vgpr_32 = COPY $vgpr1 72 ; GCN: [[V_MUL_LO_U32_:%[0-9]+]]:vgpr_32 = V_MUL_LO_U32 [[COPY]], [[COPY1]], implicit $exec 73 ; GCN: S_ENDPGM 0, implicit [[V_MUL_LO_U32_]] 74 %0:vgpr(s32) = COPY $vgpr0 75 %1:vgpr(s32) = COPY $vgpr1 76 %2:vgpr(s32) = G_MUL %0, %1 77 S_ENDPGM 0, implicit %2 78... 79