brintos

brintos / llvm-project-archived public Read only

0
0
Text · 1.7 KiB · 0e90654 Raw
64 lines · cpp
1//===-- TargetTest.cpp ---------------------------------------*- C++ -*-===//2//3// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.4// See https://llvm.org/LICENSE.txt for license information.5// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception6//7//===----------------------------------------------------------------------===//8 9#include "Target.h"10 11#include <cassert>12#include <memory>13 14#include "MCTargetDesc/PPCMCTargetDesc.h"15#include "TestBase.h"16#include "llvm/MC/TargetRegistry.h"17#include "llvm/Support/TargetSelect.h"18#include "gmock/gmock.h"19#include "gtest/gtest.h"20 21namespace llvm{22namespace exegesis {23namespace {24 25using testing::NotNull;26using testing::IsEmpty;27using testing::Not;28 29constexpr char kTriple[] = "powerpc64le-unknown-linux";30 31class PowerPCTargetTest : public PPCTestBase {32protected:33  const Triple TT;34 35  PowerPCTargetTest()36      : TT(kTriple), ExegesisTarget_(ExegesisTarget::lookup(TT)) {37    EXPECT_THAT(ExegesisTarget_, NotNull());38    std::string error;39    Target_ = TargetRegistry::lookupTarget(TT, error);40    EXPECT_THAT(Target_, NotNull());41  }42 43  const Target *Target_;44  const ExegesisTarget *const ExegesisTarget_;45};46 47TEST_F(PowerPCTargetTest, SetRegToConstant) {48  const std::unique_ptr<MCSubtargetInfo> STI(49      Target_->createMCSubtargetInfo(TT, "generic", ""));50  const auto Insts = ExegesisTarget_->setRegTo(*STI, PPC::X0, APInt());51  EXPECT_THAT(Insts, Not(IsEmpty()));52}53 54TEST_F(PowerPCTargetTest, DefaultPfmCounters) {55  const std::string Expected = "CYCLES";56  EXPECT_EQ(ExegesisTarget_->getPfmCounters("").CycleCounter, Expected);57  EXPECT_EQ(ExegesisTarget_->getPfmCounters("unknown_cpu").CycleCounter,58            Expected);59}60 61} // namespace62} // namespace exegesis63} // namespace llvm64