diff --git a/llvm/lib/Target/X86/MCTargetDesc/X86BaseInfo.h b/llvm/lib/Target/X86/MCTargetDesc/X86BaseInfo.h index 4db1bfc251779..58e233d86da10 100644 --- a/llvm/lib/Target/X86/MCTargetDesc/X86BaseInfo.h +++ b/llvm/lib/Target/X86/MCTargetDesc/X86BaseInfo.h @@ -115,6 +115,7 @@ namespace X86 { Cmp, // AND And, + // FIXME: Zen 3 support branch fusion for OR/XOR. // ADD, SUB AddSub, // INC, DEC @@ -183,6 +184,7 @@ namespace X86 { case X86::AND8rr: case X86::AND8rr_REV: return FirstMacroFusionInstKind::And; + // FIXME: Zen 3 support branch fusion for OR/XOR. // CMP case X86::CMP16i16: case X86::CMP16mr: diff --git a/llvm/lib/Target/X86/X86.td b/llvm/lib/Target/X86/X86.td index 60c89b173bd92..7acfc3cb1600b 100644 --- a/llvm/lib/Target/X86/X86.td +++ b/llvm/lib/Target/X86/X86.td @@ -1090,7 +1090,9 @@ def ProcessorFeatures { FeaturePKU, FeatureVAES, FeatureVPCLMULQDQ]; - list ZN3Tuning = ZNTuning; + list ZN3AdditionalTuning = [FeatureMacroFusion]; + list ZN3Tuning = + !listconcat(ZNTuning, ZN3AdditionalTuning); list ZN3Features = !listconcat(ZN2Features, ZN3AdditionalFeatures); }