mirror of
https://github.com/RPCS3/llvm-mirror.git
synced 2024-11-22 18:54:02 +01:00
Use concrete natural type alignment for masked load/store operations instead of 0.
Summary: Alignment needs to be resolved at this point so we replace the 0 value with the ABI Type Alignment.
This commit is contained in:
parent
c0e9a51908
commit
ea4d44ea3b
@ -1387,12 +1387,18 @@ public:
|
||||
case Intrinsic::lifetime_end:
|
||||
case Intrinsic::sideeffect:
|
||||
return 0;
|
||||
case Intrinsic::masked_store:
|
||||
return ConcreteTTI->getMaskedMemoryOpCost(Instruction::Store, Tys[0], 0,
|
||||
case Intrinsic::masked_store: {
|
||||
Type *Ty = Tys[0];
|
||||
unsigned TyAlign = ConcreteTTI->DL.getABITypeAlignment(Ty);
|
||||
return ConcreteTTI->getMaskedMemoryOpCost(Instruction::Store, Ty, TyAlign,
|
||||
0, CostKind);
|
||||
case Intrinsic::masked_load:
|
||||
return ConcreteTTI->getMaskedMemoryOpCost(Instruction::Load, RetTy, 0, 0,
|
||||
CostKind);
|
||||
}
|
||||
case Intrinsic::masked_load: {
|
||||
Type *Ty = RetTy;
|
||||
unsigned TyAlign = ConcreteTTI->DL.getABITypeAlignment(Ty);
|
||||
return ConcreteTTI->getMaskedMemoryOpCost(Instruction::Load, Ty, TyAlign,
|
||||
0, CostKind);
|
||||
}
|
||||
case Intrinsic::experimental_vector_reduce_add:
|
||||
return ConcreteTTI->getArithmeticReductionCost(Instruction::Add, VecOpTy,
|
||||
/*IsPairwiseForm=*/false,
|
||||
|
Loading…
Reference in New Issue
Block a user