Index: lib/Target/PowerPC/PPC.td =================================================================== --- lib/Target/PowerPC/PPC.td +++ lib/Target/PowerPC/PPC.td @@ -86,6 +86,8 @@ "Enable fc[ft]* (unsigned and single-precision) and lfiwzx instructions">; def FeatureISEL : SubtargetFeature<"isel","HasISEL", "true", "Enable the isel instruction">; +def FeatureSlowISEL : SubtargetFeature<"slowisel","HasSlowISEL", "true", + "The ISEL instruction is slow compared to a predicted branch">; def FeaturePOPCNTD : SubtargetFeature<"popcntd","HasPOPCNTD", "true", "Enable the popcnt[dw] instructions">; def FeatureBPERMD : SubtargetFeature<"bpermd", "HasBPERMD", "true", @@ -169,7 +171,7 @@ FeatureMFOCRF, FeatureFCPSGN, FeatureFSqrt, FeatureFRE, FeatureFRES, FeatureFRSQRTE, FeatureFRSQRTES, FeatureRecipPrec, FeatureSTFIWX, FeatureLFIWAX, - FeatureFPRND, FeatureFPCVT, FeatureISEL, + FeatureFPRND, FeatureFPCVT, FeatureISEL, FeatureSlowISEL, FeaturePOPCNTD, FeatureCMPB, FeatureLDBRX, Feature64Bit /*, Feature64BitRegs */, FeatureBPERMD, FeatureExtDiv, Index: lib/Target/PowerPC/PPCSubtarget.h =================================================================== --- lib/Target/PowerPC/PPCSubtarget.h +++ lib/Target/PowerPC/PPCSubtarget.h @@ -101,6 +101,7 @@ bool HasFPRND; bool HasFPCVT; bool HasISEL; + bool HasSlowISEL; bool HasPOPCNTD; bool HasBPERMD; bool HasExtDiv; @@ -232,6 +233,7 @@ bool hasP8Crypto() const { return HasP8Crypto; } bool hasMFOCRF() const { return HasMFOCRF; } bool hasISEL() const { return HasISEL; } + bool hasSlowISEL() const { return HasSlowISEL; } bool hasPOPCNTD() const { return HasPOPCNTD; } bool hasBPERMD() const { return HasBPERMD; } bool hasExtDiv() const { return HasExtDiv; } Index: lib/Target/PowerPC/PPCSubtarget.cpp =================================================================== --- lib/Target/PowerPC/PPCSubtarget.cpp +++ lib/Target/PowerPC/PPCSubtarget.cpp @@ -82,6 +82,7 @@ HasFPRND = false; HasFPCVT = false; HasISEL = false; + HasSlowISEL = false; HasPOPCNTD = false; HasBPERMD = false; HasExtDiv = false;