#include "../Common/AssemblerUtils.h"
#include "LlvmState.h"
#include "MCInstrDescView.h"
#include "ParallelSnippetGenerator.h"
#include "RegisterAliasing.h"
#include "SerialSnippetGenerator.h"
#include "TestBase.h"
#include "X86InstrInfo.h"
#include "llvm/ADT/SetOperations.h"
#include <unordered_set>
namespace llvm {
namespace exegesis {
void InitializeX86ExegesisTarget();
namespace {
AnyOf;
ElementsAre;
Gt;
HasSubstr;
IsEmpty;
Not;
SizeIs;
MATCHER(IsInvalid, "") { … }
MATCHER(IsReg, "") { … }
template <typename SnippetGeneratorT>
class X86SnippetGeneratorTest : public X86TestBase { … };
X86SerialSnippetGeneratorTest;
X86ParallelSnippetGeneratorTest;
TEST_F(X86SerialSnippetGeneratorTest, ImplicitSelfDependencyThroughImplicitReg) { … }
TEST_F(X86SerialSnippetGeneratorTest, ImplicitSelfDependencyThroughTiedRegs) { … }
TEST_F(X86SerialSnippetGeneratorTest, ImplicitSelfDependencyThroughExplicitRegs) { … }
TEST_F(X86SerialSnippetGeneratorTest,
ImplicitSelfDependencyThroughExplicitRegsForbidAll) { … }
TEST_F(X86SerialSnippetGeneratorTest,
ImplicitSelfDependencyThroughExplicitRegsForbidAlmostAll) { … }
TEST_F(X86SerialSnippetGeneratorTest, DependencyThroughOtherOpcode) { … }
TEST_F(X86SerialSnippetGeneratorTest, LAHF) { … }
TEST_F(X86SerialSnippetGeneratorTest, VCVTUSI642SDZrrb_Int) { … }
TEST_F(X86ParallelSnippetGeneratorTest, SerialInstruction) { … }
TEST_F(X86ParallelSnippetGeneratorTest, ReadAfterWrite_CMOV32rr) { … }
TEST_F(X86ParallelSnippetGeneratorTest, ReadAfterWrite_VFMADD132PDr) { … }
TEST_F(X86ParallelSnippetGeneratorTest, NoTiedVariables) { … }
TEST_F(X86ParallelSnippetGeneratorTest, MemoryUse) { … }
TEST_F(X86ParallelSnippetGeneratorTest, MOV16ms) { … }
TEST_F(X86ParallelSnippetGeneratorTest,
AvoidSerializingThroughImplicitRegisters) { … }
class X86FakeSnippetGenerator : public SnippetGenerator { … };
X86FakeSnippetGeneratorTest;
testing::Matcher<const RegisterValue &> IsRegisterValue(unsigned Reg,
APInt Value) { … }
TEST_F(X86FakeSnippetGeneratorTest, MemoryUse_Movsb) { … }
TEST_F(X86FakeSnippetGeneratorTest, ComputeRegisterInitialValuesAdd16ri) { … }
TEST_F(X86FakeSnippetGeneratorTest, ComputeRegisterInitialValuesAdd64rr) { … }
}
}
}