Skip to content

Commit e1afd06

Browse files
authored
[NFC] Use TypeSize for comparison in EVT::isExtendedXBitVector functions (llvm#73131)
The functions should not compare results of getExtendedSizeInBits(), i.e TypeSize variables with plain integer values, but create a fixed TypeSize object so the correct operator can be used.
1 parent 026776f commit e1afd06

File tree

2 files changed

+26
-8
lines changed

2 files changed

+26
-8
lines changed

llvm/lib/CodeGen/ValueTypes.cpp

Lines changed: 16 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -79,35 +79,43 @@ bool EVT::isExtendedVector() const {
7979
}
8080

8181
bool EVT::isExtended16BitVector() const {
82-
return isExtendedVector() && getExtendedSizeInBits() == 16;
82+
return isExtendedVector() &&
83+
getExtendedSizeInBits() == TypeSize::getFixed(16);
8384
}
8485

8586
bool EVT::isExtended32BitVector() const {
86-
return isExtendedVector() && getExtendedSizeInBits() == 32;
87+
return isExtendedVector() &&
88+
getExtendedSizeInBits() == TypeSize::getFixed(32);
8789
}
8890

8991
bool EVT::isExtended64BitVector() const {
90-
return isExtendedVector() && getExtendedSizeInBits() == 64;
92+
return isExtendedVector() &&
93+
getExtendedSizeInBits() == TypeSize::getFixed(64);
9194
}
9295

9396
bool EVT::isExtended128BitVector() const {
94-
return isExtendedVector() && getExtendedSizeInBits() == 128;
97+
return isExtendedVector() &&
98+
getExtendedSizeInBits() == TypeSize::getFixed(128);
9599
}
96100

97101
bool EVT::isExtended256BitVector() const {
98-
return isExtendedVector() && getExtendedSizeInBits() == 256;
102+
return isExtendedVector() &&
103+
getExtendedSizeInBits() == TypeSize::getFixed(256);
99104
}
100105

101106
bool EVT::isExtended512BitVector() const {
102-
return isExtendedVector() && getExtendedSizeInBits() == 512;
107+
return isExtendedVector() &&
108+
getExtendedSizeInBits() == TypeSize::getFixed(512);
103109
}
104110

105111
bool EVT::isExtended1024BitVector() const {
106-
return isExtendedVector() && getExtendedSizeInBits() == 1024;
112+
return isExtendedVector() &&
113+
getExtendedSizeInBits() == TypeSize::getFixed(1024);
107114
}
108115

109116
bool EVT::isExtended2048BitVector() const {
110-
return isExtendedVector() && getExtendedSizeInBits() == 2048;
117+
return isExtendedVector() &&
118+
getExtendedSizeInBits() == TypeSize::getFixed(2048);
111119
}
112120

113121
bool EVT::isExtendedFixedLengthVector() const {

llvm/unittests/CodeGen/ScalableVectorMVTsTest.cpp

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -135,6 +135,16 @@ TEST(ScalableVectorMVTsTest, SizeQueries) {
135135
EVT v2i64 = EVT::getVectorVT(Ctx, MVT::i64, 2);
136136
EVT v2f64 = EVT::getVectorVT(Ctx, MVT::f64, 2);
137137

138+
EVT nxv5i32 = EVT::getVectorVT(Ctx, MVT::i32, 5, /*Scalable=*/true);
139+
ASSERT_FALSE(nxv5i32.is16BitVector());
140+
ASSERT_FALSE(nxv5i32.is32BitVector());
141+
ASSERT_FALSE(nxv5i32.is64BitVector());
142+
ASSERT_FALSE(nxv5i32.is128BitVector());
143+
ASSERT_FALSE(nxv5i32.is256BitVector());
144+
ASSERT_FALSE(nxv5i32.is512BitVector());
145+
ASSERT_FALSE(nxv5i32.is1024BitVector());
146+
ASSERT_FALSE(nxv5i32.is2048BitVector());
147+
138148
// Check equivalence and ordering on scalable types.
139149
EXPECT_EQ(nxv4i32.getSizeInBits(), nxv2i64.getSizeInBits());
140150
EXPECT_EQ(nxv2f64.getSizeInBits(), nxv2i64.getSizeInBits());

0 commit comments

Comments
 (0)