[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