@@ -4721,24 +4721,24 @@ void SelectionDAGBuilder::visitMaskedStore(const CallInst &I,
4721
4721
SDLoc sdl = getCurSDLoc();
4722
4722
4723
4723
auto getMaskedStoreOps = [&](Value *&Ptr, Value *&Mask, Value *&Src0,
4724
- MaybeAlign &Alignment) {
4724
+ Align &Alignment) {
4725
4725
// llvm.masked.store.*(Src0, Ptr, alignment, Mask)
4726
4726
Src0 = I.getArgOperand(0);
4727
4727
Ptr = I.getArgOperand(1);
4728
- Alignment = cast<ConstantInt>(I.getArgOperand(2))->getMaybeAlignValue ();
4728
+ Alignment = cast<ConstantInt>(I.getArgOperand(2))->getAlignValue ();
4729
4729
Mask = I.getArgOperand(3);
4730
4730
};
4731
4731
auto getCompressingStoreOps = [&](Value *&Ptr, Value *&Mask, Value *&Src0,
4732
- MaybeAlign &Alignment) {
4732
+ Align &Alignment) {
4733
4733
// llvm.masked.compressstore.*(Src0, Ptr, Mask)
4734
4734
Src0 = I.getArgOperand(0);
4735
4735
Ptr = I.getArgOperand(1);
4736
4736
Mask = I.getArgOperand(2);
4737
- Alignment = std::nullopt ;
4737
+ Alignment = I.getParamAlign(1).valueOrOne() ;
4738
4738
};
4739
4739
4740
4740
Value *PtrOperand, *MaskOperand, *Src0Operand;
4741
- MaybeAlign Alignment;
4741
+ Align Alignment;
4742
4742
if (IsCompressing)
4743
4743
getCompressingStoreOps(PtrOperand, MaskOperand, Src0Operand, Alignment);
4744
4744
else
@@ -4750,12 +4750,10 @@ void SelectionDAGBuilder::visitMaskedStore(const CallInst &I,
4750
4750
SDValue Offset = DAG.getUNDEF(Ptr.getValueType());
4751
4751
4752
4752
EVT VT = Src0.getValueType();
4753
- if (!Alignment)
4754
- Alignment = DAG.getEVTAlign(VT);
4755
4753
4756
4754
MachineMemOperand *MMO = DAG.getMachineFunction().getMachineMemOperand(
4757
4755
MachinePointerInfo(PtrOperand), MachineMemOperand::MOStore,
4758
- MemoryLocation::UnknownSize, * Alignment, I.getAAMetadata());
4756
+ MemoryLocation::UnknownSize, Alignment, I.getAAMetadata());
4759
4757
SDValue StoreNode =
4760
4758
DAG.getMaskedStore(getMemoryRoot(), sdl, Src0, Ptr, Offset, Mask, VT, MMO,
4761
4759
ISD::UNINDEXED, false /* Truncating */, IsCompressing);
@@ -4887,24 +4885,24 @@ void SelectionDAGBuilder::visitMaskedLoad(const CallInst &I, bool IsExpanding) {
4887
4885
SDLoc sdl = getCurSDLoc();
4888
4886
4889
4887
auto getMaskedLoadOps = [&](Value *&Ptr, Value *&Mask, Value *&Src0,
4890
- MaybeAlign &Alignment) {
4888
+ Align &Alignment) {
4891
4889
// @llvm.masked.load.*(Ptr, alignment, Mask, Src0)
4892
4890
Ptr = I.getArgOperand(0);
4893
- Alignment = cast<ConstantInt>(I.getArgOperand(1))->getMaybeAlignValue ();
4891
+ Alignment = cast<ConstantInt>(I.getArgOperand(1))->getAlignValue ();
4894
4892
Mask = I.getArgOperand(2);
4895
4893
Src0 = I.getArgOperand(3);
4896
4894
};
4897
4895
auto getExpandingLoadOps = [&](Value *&Ptr, Value *&Mask, Value *&Src0,
4898
- MaybeAlign &Alignment) {
4896
+ Align &Alignment) {
4899
4897
// @llvm.masked.expandload.*(Ptr, Mask, Src0)
4900
4898
Ptr = I.getArgOperand(0);
4901
- Alignment = std::nullopt ;
4899
+ Alignment = I.getParamAlign(0).valueOrOne() ;
4902
4900
Mask = I.getArgOperand(1);
4903
4901
Src0 = I.getArgOperand(2);
4904
4902
};
4905
4903
4906
4904
Value *PtrOperand, *MaskOperand, *Src0Operand;
4907
- MaybeAlign Alignment;
4905
+ Align Alignment;
4908
4906
if (IsExpanding)
4909
4907
getExpandingLoadOps(PtrOperand, MaskOperand, Src0Operand, Alignment);
4910
4908
else
@@ -4916,9 +4914,6 @@ void SelectionDAGBuilder::visitMaskedLoad(const CallInst &I, bool IsExpanding) {
4916
4914
SDValue Offset = DAG.getUNDEF(Ptr.getValueType());
4917
4915
4918
4916
EVT VT = Src0.getValueType();
4919
- if (!Alignment)
4920
- Alignment = DAG.getEVTAlign(VT);
4921
-
4922
4917
AAMDNodes AAInfo = I.getAAMetadata();
4923
4918
const MDNode *Ranges = getRangeMetadata(I);
4924
4919
@@ -4930,7 +4925,7 @@ void SelectionDAGBuilder::visitMaskedLoad(const CallInst &I, bool IsExpanding) {
4930
4925
4931
4926
MachineMemOperand *MMO = DAG.getMachineFunction().getMachineMemOperand(
4932
4927
MachinePointerInfo(PtrOperand), MachineMemOperand::MOLoad,
4933
- MemoryLocation::UnknownSize, * Alignment, AAInfo, Ranges);
4928
+ MemoryLocation::UnknownSize, Alignment, AAInfo, Ranges);
4934
4929
4935
4930
SDValue Load =
4936
4931
DAG.getMaskedLoad(VT, sdl, InChain, Ptr, Offset, Mask, Src0, VT, MMO,
0 commit comments