Skip to content

Commit 3372e7b

Browse files
committed
[LoongArch][NFC] Pre-commit MCInstrAnalysis tests for instruction 'b'
The tests for 'b' which commented with FIXME are incorrect, the following patch will fix it.
1 parent 67c3cb4 commit 3372e7b

File tree

1 file changed

+18
-0
lines changed

1 file changed

+18
-0
lines changed

llvm/unittests/Target/LoongArch/MCInstrAnalysisTest.cpp

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -50,6 +50,8 @@ static MCInst beq() {
5050
.addImm(32);
5151
}
5252

53+
static MCInst b() { return MCInstBuilder(LoongArch::B).addImm(32); }
54+
5355
static MCInst bl() { return MCInstBuilder(LoongArch::BL).addImm(32); }
5456

5557
static MCInst jirl(unsigned RD, unsigned RJ = LoongArch::R10) {
@@ -58,20 +60,23 @@ static MCInst jirl(unsigned RD, unsigned RJ = LoongArch::R10) {
5860

5961
TEST_P(InstrAnalysisTest, IsTerminator) {
6062
EXPECT_TRUE(Analysis->isTerminator(beq()));
63+
EXPECT_TRUE(Analysis->isTerminator(b()));
6164
EXPECT_FALSE(Analysis->isTerminator(bl()));
6265
EXPECT_TRUE(Analysis->isTerminator(jirl(LoongArch::R0)));
6366
EXPECT_FALSE(Analysis->isTerminator(jirl(LoongArch::R5)));
6467
}
6568

6669
TEST_P(InstrAnalysisTest, IsCall) {
6770
EXPECT_FALSE(Analysis->isCall(beq()));
71+
EXPECT_FALSE(Analysis->isCall(b()));
6872
EXPECT_TRUE(Analysis->isCall(bl()));
6973
EXPECT_TRUE(Analysis->isCall(jirl(LoongArch::R1)));
7074
EXPECT_FALSE(Analysis->isCall(jirl(LoongArch::R0)));
7175
}
7276

7377
TEST_P(InstrAnalysisTest, IsReturn) {
7478
EXPECT_FALSE(Analysis->isReturn(beq()));
79+
EXPECT_FALSE(Analysis->isReturn(b()));
7580
EXPECT_FALSE(Analysis->isReturn(bl()));
7681
EXPECT_TRUE(Analysis->isReturn(jirl(LoongArch::R0, LoongArch::R1)));
7782
EXPECT_FALSE(Analysis->isReturn(jirl(LoongArch::R0)));
@@ -80,14 +85,26 @@ TEST_P(InstrAnalysisTest, IsReturn) {
8085

8186
TEST_P(InstrAnalysisTest, IsBranch) {
8287
EXPECT_TRUE(Analysis->isBranch(beq()));
88+
EXPECT_TRUE(Analysis->isBranch(b()));
8389
EXPECT_FALSE(Analysis->isBranch(bl()));
8490
EXPECT_TRUE(Analysis->isBranch(jirl(LoongArch::R0)));
8591
EXPECT_FALSE(Analysis->isBranch(jirl(LoongArch::R1)));
8692
EXPECT_FALSE(Analysis->isBranch(jirl(LoongArch::R0, LoongArch::R1)));
8793
}
8894

95+
TEST_P(InstrAnalysisTest, IsConditionalBranch) {
96+
EXPECT_TRUE(Analysis->isConditionalBranch(beq()));
97+
// FIXME: Instr 'b' is not a ConditionalBranch, so the analysis here is
98+
// wrong. The following patch will fix it.
99+
EXPECT_TRUE(Analysis->isConditionalBranch(b()));
100+
EXPECT_FALSE(Analysis->isConditionalBranch(bl()));
101+
}
102+
89103
TEST_P(InstrAnalysisTest, IsUnconditionalBranch) {
90104
EXPECT_FALSE(Analysis->isUnconditionalBranch(beq()));
105+
// FIXME: Instr 'b' is an UnconditionalBranch, so the analysis here is
106+
// wrong. The following patch will fix it.
107+
EXPECT_FALSE(Analysis->isUnconditionalBranch(b()));
91108
EXPECT_FALSE(Analysis->isUnconditionalBranch(bl()));
92109
EXPECT_TRUE(Analysis->isUnconditionalBranch(jirl(LoongArch::R0)));
93110
EXPECT_FALSE(Analysis->isUnconditionalBranch(jirl(LoongArch::R1)));
@@ -97,6 +114,7 @@ TEST_P(InstrAnalysisTest, IsUnconditionalBranch) {
97114

98115
TEST_P(InstrAnalysisTest, IsIndirectBranch) {
99116
EXPECT_FALSE(Analysis->isIndirectBranch(beq()));
117+
EXPECT_FALSE(Analysis->isIndirectBranch(b()));
100118
EXPECT_FALSE(Analysis->isIndirectBranch(bl()));
101119
EXPECT_TRUE(Analysis->isIndirectBranch(jirl(LoongArch::R0)));
102120
EXPECT_FALSE(Analysis->isIndirectBranch(jirl(LoongArch::R1)));

0 commit comments

Comments
 (0)