llvm/llvm/unittests/tools/llvm-exegesis/X86/SnippetGeneratorTest.cpp

//===-- SnippetGeneratorTest.cpp --------------------------------*- C++ -*-===//
//
// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
// See https://llvm.org/LICENSE.txt for license information.
// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
//
//===----------------------------------------------------------------------===//

#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) {}

} // namespace
} // namespace exegesis
} // namespace llvm