diff --git a/llvm/lib/CodeGen/GlobalISel/LegalizerHelper.cpp b/llvm/lib/CodeGen/GlobalISel/LegalizerHelper.cpp index f56be39838ba7..83c1d79b1f92d 100644 --- a/llvm/lib/CodeGen/GlobalISel/LegalizerHelper.cpp +++ b/llvm/lib/CodeGen/GlobalISel/LegalizerHelper.cpp @@ -5347,9 +5347,9 @@ LegalizerHelper::fewerElementsBitcast(MachineInstr &MI, unsigned int TypeIdx, auto [DstReg, DstTy, SrcReg, SrcTy] = MI.getFirst2RegLLTs(); - unsigned SrcScalSize = SrcTy.getScalarSizeInBits(); - LLT SrcNarrowTy = - LLT::fixed_vector(NarrowTy.getSizeInBits() / SrcScalSize, SrcScalSize); + unsigned NewElemCount = + NarrowTy.getSizeInBits() / SrcTy.getScalarSizeInBits(); + LLT SrcNarrowTy = LLT::fixed_vector(NewElemCount, SrcTy.getElementType()); // Split the Src and Dst Reg into smaller registers SmallVector SrcVRegs, BitcastVRegs; diff --git a/llvm/lib/CodeGen/GlobalISel/Utils.cpp b/llvm/lib/CodeGen/GlobalISel/Utils.cpp index 45807a6818ee5..8c1e41ea106ec 100644 --- a/llvm/lib/CodeGen/GlobalISel/Utils.cpp +++ b/llvm/lib/CodeGen/GlobalISel/Utils.cpp @@ -525,8 +525,7 @@ bool llvm::extractParts(Register Reg, LLT RegTy, LLT MainTy, LLT &LeftoverTy, RegNumElts % LeftoverNumElts == 0 && RegTy.getScalarSizeInBits() == MainTy.getScalarSizeInBits() && LeftoverNumElts > 1) { - LeftoverTy = - LLT::fixed_vector(LeftoverNumElts, RegTy.getScalarSizeInBits()); + LeftoverTy = LLT::fixed_vector(LeftoverNumElts, RegTy.getElementType()); // Unmerge the SrcReg to LeftoverTy vectors SmallVector UnmergeValues; diff --git a/llvm/lib/Target/AMDGPU/AMDGPULegalizerInfo.cpp b/llvm/lib/Target/AMDGPU/AMDGPULegalizerInfo.cpp index 2e66f7525b9cc..9836e10c36bc5 100644 --- a/llvm/lib/Target/AMDGPU/AMDGPULegalizerInfo.cpp +++ b/llvm/lib/Target/AMDGPU/AMDGPULegalizerInfo.cpp @@ -154,8 +154,8 @@ static LegalizeMutation moreElementsToNextExistingRegClass(unsigned TypeIdx) { if (SIRegisterInfo::getSGPRClassForBitWidth(NewNumElts * EltSize)) break; } - - return std::pair(TypeIdx, LLT::fixed_vector(NewNumElts, EltSize)); + return std::pair(TypeIdx, + LLT::fixed_vector(NewNumElts, Ty.getElementType())); }; }