[llvm] [NFC] Add unit tests for TypeSize:isXBitVector (PR #73131)
Maciej Gabka via llvm-commits
llvm-commits at lists.llvm.org
Wed Nov 22 07:43:49 PST 2023
https://github.com/mgabka updated https://github.com/llvm/llvm-project/pull/73131
>From 3aa7dca3f5fc272a625c1f5a2cb2f1787a138c04 Mon Sep 17 00:00:00 2001
From: Maciej Gabka <maciej.gabka at arm.com>
Date: Wed, 22 Nov 2023 13:42:08 +0000
Subject: [PATCH 1/2] [NFC] Add unit tests for TypeSize:isXBitVector
---
llvm/unittests/CodeGen/ScalableVectorMVTsTest.cpp | 10 ++++++++++
1 file changed, 10 insertions(+)
diff --git a/llvm/unittests/CodeGen/ScalableVectorMVTsTest.cpp b/llvm/unittests/CodeGen/ScalableVectorMVTsTest.cpp
index 424abb03dc129c9..bddcfaa088b176f 100644
--- a/llvm/unittests/CodeGen/ScalableVectorMVTsTest.cpp
+++ b/llvm/unittests/CodeGen/ScalableVectorMVTsTest.cpp
@@ -135,6 +135,16 @@ TEST(ScalableVectorMVTsTest, SizeQueries) {
EVT v2i64 = EVT::getVectorVT(Ctx, MVT::i64, 2);
EVT v2f64 = EVT::getVectorVT(Ctx, MVT::f64, 2);
+ EVT nxv5i32 = EVT::getVectorVT(Ctx, MVT::i32, 5, /*Scalable=*/ true);
+ ASSERT_FALSE(nxv5i32.is16BitVector());
+ ASSERT_FALSE(nxv5i32.is32BitVector());
+ ASSERT_FALSE(nxv5i32.is64BitVector());
+ ASSERT_FALSE(nxv5i32.is128BitVector());
+ ASSERT_FALSE(nxv5i32.is256BitVector());
+ ASSERT_FALSE(nxv5i32.is512BitVector());
+ ASSERT_FALSE(nxv5i32.is1024BitVector());
+ ASSERT_FALSE(nxv5i32.is2048BitVector());
+
// Check equivalence and ordering on scalable types.
EXPECT_EQ(nxv4i32.getSizeInBits(), nxv2i64.getSizeInBits());
EXPECT_EQ(nxv2f64.getSizeInBits(), nxv2i64.getSizeInBits());
>From c9450464200b1897d38466ceb26e0be272041ea3 Mon Sep 17 00:00:00 2001
From: Maciej Gabka <maciej.gabka at arm.com>
Date: Wed, 22 Nov 2023 15:35:47 +0000
Subject: [PATCH 2/2] Fix EVT::isExtendedXBitVector functions.
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.
---
llvm/lib/CodeGen/ValueTypes.cpp | 24 ++++++++++++-------
.../CodeGen/ScalableVectorMVTsTest.cpp | 2 +-
2 files changed, 17 insertions(+), 9 deletions(-)
diff --git a/llvm/lib/CodeGen/ValueTypes.cpp b/llvm/lib/CodeGen/ValueTypes.cpp
index 30507ffea932525..ba3b9e00e34e94e 100644
--- a/llvm/lib/CodeGen/ValueTypes.cpp
+++ b/llvm/lib/CodeGen/ValueTypes.cpp
@@ -79,35 +79,43 @@ bool EVT::isExtendedVector() const {
}
bool EVT::isExtended16BitVector() const {
- return isExtendedVector() && getExtendedSizeInBits() == 16;
+ return isExtendedVector() &&
+ getExtendedSizeInBits() == TypeSize::getFixed(16);
}
bool EVT::isExtended32BitVector() const {
- return isExtendedVector() && getExtendedSizeInBits() == 32;
+ return isExtendedVector() &&
+ getExtendedSizeInBits() == TypeSize::getFixed(32);
}
bool EVT::isExtended64BitVector() const {
- return isExtendedVector() && getExtendedSizeInBits() == 64;
+ return isExtendedVector() &&
+ getExtendedSizeInBits() == TypeSize::getFixed(64);
}
bool EVT::isExtended128BitVector() const {
- return isExtendedVector() && getExtendedSizeInBits() == 128;
+ return isExtendedVector() &&
+ getExtendedSizeInBits() == TypeSize::getFixed(128);
}
bool EVT::isExtended256BitVector() const {
- return isExtendedVector() && getExtendedSizeInBits() == 256;
+ return isExtendedVector() &&
+ getExtendedSizeInBits() == TypeSize::getFixed(256);
}
bool EVT::isExtended512BitVector() const {
- return isExtendedVector() && getExtendedSizeInBits() == 512;
+ return isExtendedVector() &&
+ getExtendedSizeInBits() == TypeSize::getFixed(512);
}
bool EVT::isExtended1024BitVector() const {
- return isExtendedVector() && getExtendedSizeInBits() == 1024;
+ return isExtendedVector() &&
+ getExtendedSizeInBits() == TypeSize::getFixed(1024);
}
bool EVT::isExtended2048BitVector() const {
- return isExtendedVector() && getExtendedSizeInBits() == 2048;
+ return isExtendedVector() &&
+ getExtendedSizeInBits() == TypeSize::getFixed(2048);
}
bool EVT::isExtendedFixedLengthVector() const {
diff --git a/llvm/unittests/CodeGen/ScalableVectorMVTsTest.cpp b/llvm/unittests/CodeGen/ScalableVectorMVTsTest.cpp
index bddcfaa088b176f..ffe457ba3175da8 100644
--- a/llvm/unittests/CodeGen/ScalableVectorMVTsTest.cpp
+++ b/llvm/unittests/CodeGen/ScalableVectorMVTsTest.cpp
@@ -135,7 +135,7 @@ TEST(ScalableVectorMVTsTest, SizeQueries) {
EVT v2i64 = EVT::getVectorVT(Ctx, MVT::i64, 2);
EVT v2f64 = EVT::getVectorVT(Ctx, MVT::f64, 2);
- EVT nxv5i32 = EVT::getVectorVT(Ctx, MVT::i32, 5, /*Scalable=*/ true);
+ EVT nxv5i32 = EVT::getVectorVT(Ctx, MVT::i32, 5, /*Scalable=*/true);
ASSERT_FALSE(nxv5i32.is16BitVector());
ASSERT_FALSE(nxv5i32.is32BitVector());
ASSERT_FALSE(nxv5i32.is64BitVector());
More information about the llvm-commits
mailing list