Index: llvm/lib/Target/AArch64/AArch64ISelLowering.cpp =================================================================== --- llvm/lib/Target/AArch64/AArch64ISelLowering.cpp +++ llvm/lib/Target/AArch64/AArch64ISelLowering.cpp @@ -517,8 +517,6 @@ MaskAndBranchFoldingIsLegal = true; EnableExtLdPromotion = true; - setMinFunctionAlignment(2); - setHasExtractBitsInsn(true); setOperationAction(ISD::INTRINSIC_WO_CHAIN, MVT::Other, Custom); @@ -635,6 +633,17 @@ } PredictableSelectIsExpensive = Subtarget->predictableSelectIsExpensive(); + + setMinFunctionAlignment(2); + + // Set preferred alignments. + switch (Subtarget->getProcFamily()) { + default: break; + case AArch64Subtarget::ExynosM1: + setPrefFunctionAlignment(4); + setPrefLoopAlignment(3); + break; + } } void AArch64TargetLowering::addTypeForNEON(MVT VT, MVT PromotedBitwiseVT) {