diff options
author | NAKAMURA Takumi <geek4civic@gmail.com> | 2025-01-09 18:15:55 +0900 |
---|---|---|
committer | NAKAMURA Takumi <geek4civic@gmail.com> | 2025-01-09 18:15:55 +0900 |
commit | bdcf47e4bcb92889665825654bb80a8bbe30379e (patch) | |
tree | 4de1d6b4ddc69f4f32daabb11ad5c71ab0cf895e /llvm/unittests/tools/llvm-exegesis/RISCV/TargetTest.cpp | |
parent | e7fd5cd25334048980ea207a9eff72698724721a (diff) | |
parent | fea7da1b00cc97d742faede2df96c7d327950f49 (diff) | |
download | llvm-users/chapuni/cov/single/base.zip llvm-users/chapuni/cov/single/base.tar.gz llvm-users/chapuni/cov/single/base.tar.bz2 |
Merge branch 'users/chapuni/cov/single/nextcount' into users/chapuni/cov/single/baseusers/chapuni/cov/single/base
Diffstat (limited to 'llvm/unittests/tools/llvm-exegesis/RISCV/TargetTest.cpp')
-rw-r--r-- | llvm/unittests/tools/llvm-exegesis/RISCV/TargetTest.cpp | 56 |
1 files changed, 56 insertions, 0 deletions
diff --git a/llvm/unittests/tools/llvm-exegesis/RISCV/TargetTest.cpp b/llvm/unittests/tools/llvm-exegesis/RISCV/TargetTest.cpp new file mode 100644 index 0000000..12d3ce7 --- /dev/null +++ b/llvm/unittests/tools/llvm-exegesis/RISCV/TargetTest.cpp @@ -0,0 +1,56 @@ +//===-- TargetTest.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 "Target.h" + +#include <cassert> +#include <memory> + +#include "MCTargetDesc/RISCVMCTargetDesc.h" +#include "TestBase.h" +#include "llvm/MC/TargetRegistry.h" +#include "llvm/Support/TargetSelect.h" +#include "gmock/gmock.h" +#include "gtest/gtest.h" + +namespace llvm { +namespace exegesis { + +void InitializeRISCVExegesisTarget(); + +namespace { + +using testing::IsEmpty; +using testing::Not; +using testing::NotNull; + +class RISCVTargetTest : public RISCVTestBase { +protected: + std::vector<MCInst> setRegTo(unsigned Reg, const APInt &Value) { + return State.getExegesisTarget().setRegTo(State.getSubtargetInfo(), Reg, + Value); + } +}; + +TEST_F(RISCVTargetTest, SetRegToConstant) { + const auto Insts = setRegTo(RISCV::X10, APInt()); + EXPECT_THAT(Insts, Not(IsEmpty())); +} + +TEST_F(RISCVTargetTest, DefaultPfmCounters) { + const std::string Expected = "CYCLES"; + EXPECT_EQ(State.getExegesisTarget().getPfmCounters("").CycleCounter, + Expected); + EXPECT_EQ( + State.getExegesisTarget().getPfmCounters("unknown_cpu").CycleCounter, + Expected); +} + +} // namespace +} // namespace exegesis +} // namespace llvm |