
The VLMUL and policy enums originally lived in RISCVBaseInfo.h in the backend which is where everything else in the RISCVII namespace is defined. RISCVTargetParser.h is used by much more of the compiler and it doesn't really make sense to have 2 different namespaces exposed. These enums are both associated with VTYPE so using the RISCVVType namespace seems like a good home for them.
34 lines
1.2 KiB
C++
34 lines
1.2 KiB
C++
//===---- RISCVTargetParserTest.cpp - RISCVTargetParser unit tests --------===//
|
|
//
|
|
// 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 "llvm/TargetParser/RISCVTargetParser.h"
|
|
#include "gtest/gtest.h"
|
|
|
|
using namespace llvm;
|
|
|
|
namespace {
|
|
TEST(RISCVVType, CheckSameRatioLMUL) {
|
|
// Smaller LMUL.
|
|
EXPECT_EQ(RISCVVType::LMUL_1,
|
|
RISCVVType::getSameRatioLMUL(16, RISCVVType::LMUL_2, 8));
|
|
EXPECT_EQ(RISCVVType::LMUL_F2,
|
|
RISCVVType::getSameRatioLMUL(16, RISCVVType::LMUL_1, 8));
|
|
// Smaller fractional LMUL.
|
|
EXPECT_EQ(RISCVVType::LMUL_F8,
|
|
RISCVVType::getSameRatioLMUL(16, RISCVVType::LMUL_F4, 8));
|
|
// Bigger LMUL.
|
|
EXPECT_EQ(RISCVVType::LMUL_2,
|
|
RISCVVType::getSameRatioLMUL(8, RISCVVType::LMUL_1, 16));
|
|
EXPECT_EQ(RISCVVType::LMUL_1,
|
|
RISCVVType::getSameRatioLMUL(8, RISCVVType::LMUL_F2, 16));
|
|
// Bigger fractional LMUL.
|
|
EXPECT_EQ(RISCVVType::LMUL_F2,
|
|
RISCVVType::getSameRatioLMUL(8, RISCVVType::LMUL_F4, 16));
|
|
}
|
|
} // namespace
|