1*85388a06SWang Pengcheng //===---- RISCVTargetParserTest.cpp - RISCVTargetParser unit tests --------===//
2*85388a06SWang Pengcheng //
3*85388a06SWang Pengcheng // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
4*85388a06SWang Pengcheng // See https://llvm.org/LICENSE.txt for license information.
5*85388a06SWang Pengcheng // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
6*85388a06SWang Pengcheng //
7*85388a06SWang Pengcheng //===----------------------------------------------------------------------===//
8*85388a06SWang Pengcheng
9*85388a06SWang Pengcheng #include "llvm/TargetParser/RISCVTargetParser.h"
10*85388a06SWang Pengcheng #include "gtest/gtest.h"
11*85388a06SWang Pengcheng
12*85388a06SWang Pengcheng using namespace llvm;
13*85388a06SWang Pengcheng
14*85388a06SWang Pengcheng namespace {
TEST(RISCVVType,CheckSameRatioLMUL)15*85388a06SWang Pengcheng TEST(RISCVVType, CheckSameRatioLMUL) {
16*85388a06SWang Pengcheng // Smaller LMUL.
17*85388a06SWang Pengcheng EXPECT_EQ(RISCVII::LMUL_1,
18*85388a06SWang Pengcheng RISCVVType::getSameRatioLMUL(16, RISCVII::LMUL_2, 8));
19*85388a06SWang Pengcheng EXPECT_EQ(RISCVII::LMUL_F2,
20*85388a06SWang Pengcheng RISCVVType::getSameRatioLMUL(16, RISCVII::LMUL_1, 8));
21*85388a06SWang Pengcheng // Smaller fractional LMUL.
22*85388a06SWang Pengcheng EXPECT_EQ(RISCVII::LMUL_F8,
23*85388a06SWang Pengcheng RISCVVType::getSameRatioLMUL(16, RISCVII::LMUL_F4, 8));
24*85388a06SWang Pengcheng // Bigger LMUL.
25*85388a06SWang Pengcheng EXPECT_EQ(RISCVII::LMUL_2,
26*85388a06SWang Pengcheng RISCVVType::getSameRatioLMUL(8, RISCVII::LMUL_1, 16));
27*85388a06SWang Pengcheng EXPECT_EQ(RISCVII::LMUL_1,
28*85388a06SWang Pengcheng RISCVVType::getSameRatioLMUL(8, RISCVII::LMUL_F2, 16));
29*85388a06SWang Pengcheng // Bigger fractional LMUL.
30*85388a06SWang Pengcheng EXPECT_EQ(RISCVII::LMUL_F2,
31*85388a06SWang Pengcheng RISCVVType::getSameRatioLMUL(8, RISCVII::LMUL_F4, 16));
32*85388a06SWang Pengcheng }
33*85388a06SWang Pengcheng } // namespace
34