diff --git a/llvm/tools/llvm-exegesis/lib/X86/Target.cpp b/llvm/tools/llvm-exegesis/lib/X86/Target.cpp --- a/llvm/tools/llvm-exegesis/lib/X86/Target.cpp +++ b/llvm/tools/llvm-exegesis/lib/X86/Target.cpp @@ -196,6 +196,21 @@ if (OpcodeName.startswith("POP") || OpcodeName.startswith("PUSH") || OpcodeName.startswith("ADJCALLSTACK") || OpcodeName.startswith("LEAVE")) return "unsupported opcode: Push/Pop/AdjCallStack/Leave"; + switch (Instr.Description.Opcode) { + case X86::LFS16rm: + case X86::LFS32rm: + case X86::LFS64rm: + case X86::LGS16rm: + case X86::LGS32rm: + case X86::LGS64rm: + case X86::LSS16rm: + case X86::LSS32rm: + case X86::LSS64rm: + case X86::SYSENTER: + return "unsupported opcode"; + default: + break; + } if (const auto reason = isInvalidMemoryInstr(Instr)) return reason; // We do not handle instructions with OPERAND_PCREL.