Use concrete natural type alignment for masked load/store operations instead of 0.
authorGuillaume Chatelet <gchatelet@google.com>
Wed, 24 Jun 2020 21:26:03 +0000 (21:26 +0000)
committerGuillaume Chatelet <gchatelet@google.com>
Wed, 24 Jun 2020 21:42:05 +0000 (21:42 +0000)
llvm/include/llvm/CodeGen/BasicTTIImpl.h

index 4962c0d..5194332 100644 (file)
@@ -1388,11 +1388,12 @@ public:
     case Intrinsic::sideeffect:
       return 0;
     case Intrinsic::masked_store:
-      return ConcreteTTI->getMaskedMemoryOpCost(Instruction::Store, Tys[0], 0,
+      return ConcreteTTI->getMaskedMemoryOpCost(Instruction::Store, Tys[0],
+                                                DL.getABITypeAlignment(Tys[0]),
                                                 0, CostKind);
     case Intrinsic::masked_load:
-      return ConcreteTTI->getMaskedMemoryOpCost(Instruction::Load, RetTy, 0, 0,
-                                                CostKind);
+      return ConcreteTTI->getMaskedMemoryOpCost(
+          Instruction::Load, RetTy, DL.getABITypeAlignment(RetTy), 0, CostKind);
     case Intrinsic::experimental_vector_reduce_add:
       return ConcreteTTI->getArithmeticReductionCost(Instruction::Add, VecOpTy,
                                                      /*IsPairwiseForm=*/false,