diff --git a/llvm/include/llvm/CodeGen/TargetLowering.h b/llvm/include/llvm/CodeGen/TargetLowering.h --- a/llvm/include/llvm/CodeGen/TargetLowering.h +++ b/llvm/include/llvm/CodeGen/TargetLowering.h @@ -2282,6 +2282,12 @@ } } + void setLoadExtAction(ArrayRef ExtTypes, MVT ValVT, + ArrayRef MemVTs, LegalizeAction Action) { + for (auto MemVT : MemVTs) + setLoadExtAction(ExtTypes, ValVT, MemVT, Action); + } + /// Indicate that the specified truncating store does not work with the /// specified type and indicate what to do about it. void setTruncStoreAction(MVT ValVT, MVT MemVT, LegalizeAction Action) { @@ -2294,8 +2300,16 @@ /// /// NOTE: All indexed mode loads are initialized to Expand in /// TargetLowering.cpp - void setIndexedLoadAction(unsigned IdxMode, MVT VT, LegalizeAction Action) { - setIndexedModeAction(IdxMode, VT, IMAB_Load, Action); + void setIndexedLoadAction(ArrayRef IdxModes, MVT VT, + LegalizeAction Action) { + for (auto IdxMode : IdxModes) + setIndexedModeAction(IdxMode, VT, IMAB_Load, Action); + } + + void setIndexedLoadAction(ArrayRef IdxModes, ArrayRef VTs, + LegalizeAction Action) { + for (auto VT : VTs) + setIndexedLoadAction(IdxModes, VT, Action); } /// Indicate that the specified indexed store does or does not work with the @@ -2303,8 +2317,16 @@ /// /// NOTE: All indexed mode stores are initialized to Expand in /// TargetLowering.cpp - void setIndexedStoreAction(unsigned IdxMode, MVT VT, LegalizeAction Action) { - setIndexedModeAction(IdxMode, VT, IMAB_Store, Action); + void setIndexedStoreAction(ArrayRef IdxModes, MVT VT, + LegalizeAction Action) { + for (auto IdxMode : IdxModes) + setIndexedModeAction(IdxMode, VT, IMAB_Store, Action); + } + + void setIndexedStoreAction(ArrayRef IdxModes, ArrayRef VTs, + LegalizeAction Action) { + for (auto VT : VTs) + setIndexedStoreAction(IdxModes, VT, Action); } /// Indicate that the specified indexed masked load does or does not work with