Skip to content

Commit 8c85470

Browse files
committed
take vector into account when calculating mem size
1 parent 2e9cbd7 commit 8c85470

File tree

1 file changed

+8
-3
lines changed

1 file changed

+8
-3
lines changed

llvm/lib/CodeGen/GlobalISel/LegalizerHelper.cpp

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3330,8 +3330,12 @@ LegalizerHelper::LegalizeResult LegalizerHelper::lowerLoad(GAnyLoad &LoadMI) {
33303330
LLT MemTy = MMO.getMemoryType();
33313331
MachineFunction &MF = MIRBuilder.getMF();
33323332

3333-
unsigned MemSizeInBits = MemTy.getSizeInBits();
3334-
unsigned MemStoreSizeInBits = 8 * MemTy.getSizeInBytes();
3333+
unsigned MemSizeInBits = MemTy.isVector()
3334+
? MemTy.getSizeInBits().getKnownMinValue()
3335+
: MemTy.getSizeInBits();
3336+
unsigned MemStoreSizeInBits =
3337+
MemTy.isVector() ? 8 * MemTy.getSizeInBytes().getKnownMinValue()
3338+
: 8 * MemTy.getSizeInBytes();
33353339

33363340
if (MemSizeInBits != MemStoreSizeInBits) {
33373341
if (MemTy.isVector())
@@ -3406,6 +3410,7 @@ LegalizerHelper::LegalizeResult LegalizerHelper::lowerLoad(GAnyLoad &LoadMI) {
34063410
if (TLI.allowsMemoryAccess(Ctx, MIRBuilder.getDataLayout(), MemTy, MMO))
34073411
return UnableToLegalize;
34083412

3413+
llvm::errs() << "able to legalize\n";
34093414
SmallSplitSize = LargeSplitSize = MemSizeInBits / 2;
34103415
}
34113416

@@ -3637,7 +3642,7 @@ void LegalizerHelper::changeOpcode(MachineInstr &MI, unsigned NewOpcode) {
36373642
LegalizerHelper::LegalizeResult
36383643
LegalizerHelper::lower(MachineInstr &MI, unsigned TypeIdx, LLT LowerHintTy) {
36393644
using namespace TargetOpcode;
3640-
3645+
llvm::errs() << "Helper\n";
36413646
switch(MI.getOpcode()) {
36423647
default:
36433648
return UnableToLegalize;

0 commit comments

Comments
 (0)