[clang] b3c5302 - [CIR][NFC] Merge vector type invalid tests and update names (#145238)

via cfe-commits cfe-commits at lists.llvm.org
Tue Jun 24 09:23:24 PDT 2025


Author: Amr Hesham
Date: 2025-06-24T18:23:21+02:00
New Revision: b3c53025aa163c1c554cd12f0286a65d5788ae86

URL: https://github.com/llvm/llvm-project/commit/b3c53025aa163c1c554cd12f0286a65d5788ae86
DIFF: https://github.com/llvm/llvm-project/commit/b3c53025aa163c1c554cd12f0286a65d5788ae86.diff

LOG: [CIR][NFC] Merge vector type invalid tests and update names (#145238)

- Merge all vector-type invalid tests into one file.
- Update the names of the functions in the invalid test

Issue https://github.com/llvm/llvm-project/issues/136487

Added: 
    

Modified: 
    clang/test/CIR/IR/invalid-vector.cir
    clang/test/CIR/Transforms/vector-splat.cir

Removed: 
    clang/test/CIR/IR/invalid-vector-create-wrong-size.cir
    clang/test/CIR/IR/invalid-vector-create-wrong-type.cir
    clang/test/CIR/IR/invalid-vector-shift-wrong-result-type.cir
    clang/test/CIR/IR/invalid-vector-shuffle-dyn-wrong-operands.cir
    clang/test/CIR/IR/invalid-vector-shuffle-wrong-index.cir
    clang/test/CIR/IR/invalid-vector-zero-size.cir


################################################################################
diff  --git a/clang/test/CIR/IR/invalid-vector-create-wrong-size.cir b/clang/test/CIR/IR/invalid-vector-create-wrong-size.cir
deleted file mode 100644
index 38ae74e83fb9e..0000000000000
--- a/clang/test/CIR/IR/invalid-vector-create-wrong-size.cir
+++ /dev/null
@@ -1,16 +0,0 @@
-// RUN: cir-opt %s -verify-diagnostics -split-input-file
-
-!s32i = !cir.int<s, 32>
-
-module  {
-  cir.func @foo() {
-    %1 = cir.const #cir.int<1> : !s32i
-    %2 = cir.const #cir.int<2> : !s32i
-    %3 = cir.const #cir.int<3> : !s32i
-    %4 = cir.const #cir.int<4> : !s32i
-
-    // expected-error @below {{operand count of 4 doesn't match vector type '!cir.vector<8 x !cir.int<s, 32>>' element count of 8}}
-    %5 = cir.vec.create(%1, %2, %3, %4 : !s32i, !s32i, !s32i, !s32i) : !cir.vector<8 x !s32i>
-    cir.return
-  }
-}

diff  --git a/clang/test/CIR/IR/invalid-vector-create-wrong-type.cir b/clang/test/CIR/IR/invalid-vector-create-wrong-type.cir
deleted file mode 100644
index ded0e6072b536..0000000000000
--- a/clang/test/CIR/IR/invalid-vector-create-wrong-type.cir
+++ /dev/null
@@ -1,17 +0,0 @@
-// RUN: cir-opt %s -verify-diagnostics -split-input-file
-
-!s32i = !cir.int<s, 32>
-!s64i = !cir.int<s, 64>
-
-module  {
-  cir.func @foo() {
-    %1 = cir.const #cir.int<1> : !s32i
-    %2 = cir.const #cir.int<2> : !s32i
-    %3 = cir.const #cir.int<3> : !s32i
-    %4 = cir.const #cir.int<4> : !s64i
-
-    // expected-error @below {{operand type '!cir.int<s, 64>' doesn't match vector element type '!cir.int<s, 32>'}}
-    %5 = cir.vec.create(%1, %2, %3, %4 : !s32i, !s32i, !s32i, !s64i) : !cir.vector<4 x !s32i>
-    cir.return
-  }
-}

diff  --git a/clang/test/CIR/IR/invalid-vector-shift-wrong-result-type.cir b/clang/test/CIR/IR/invalid-vector-shift-wrong-result-type.cir
deleted file mode 100644
index 5de9df9d572b2..0000000000000
--- a/clang/test/CIR/IR/invalid-vector-shift-wrong-result-type.cir
+++ /dev/null
@@ -1,17 +0,0 @@
-// RUN: cir-opt %s -verify-diagnostics -split-input-file
-
-!s32i = !cir.int<s, 32>
-
-module  {
-  cir.func @foo() {
-    %1 = cir.const #cir.int<1> : !s32i
-    %2 = cir.const #cir.int<2> : !s32i
-    %3 = cir.const #cir.int<3> : !s32i
-    %4 = cir.const #cir.int<4> : !s32i
-    %5 = cir.vec.create(%1, %2, %3, %4 : !s32i, !s32i, !s32i, !s32i) : !cir.vector<4 x !s32i>
-    %6 = cir.vec.create(%1, %2, %3, %4 : !s32i, !s32i, !s32i, !s32i) : !cir.vector<4 x !s32i>
-    // expected-error @below {{the type of the result must be a vector if it is vector shift}}
-    %7 = cir.shift(left, %5 : !cir.vector<4 x !s32i>, %6 : !cir.vector<4 x !s32i>) -> !s32i
-    cir.return
-  }
-}

diff  --git a/clang/test/CIR/IR/invalid-vector-shuffle-dyn-wrong-operands.cir b/clang/test/CIR/IR/invalid-vector-shuffle-dyn-wrong-operands.cir
deleted file mode 100644
index 2115e769e1773..0000000000000
--- a/clang/test/CIR/IR/invalid-vector-shuffle-dyn-wrong-operands.cir
+++ /dev/null
@@ -1,19 +0,0 @@
-// RUN: cir-opt %s -verify-diagnostics -split-input-file
-
-!s32i = !cir.int<s, 32>
-!s64i = !cir.int<s, 64>
-
-module  {
-  cir.func @foo() {
-    %1 = cir.const #cir.int<1> : !s32i
-    %2 = cir.const #cir.int<2> : !s32i
-    %3 = cir.const #cir.int<3> : !s32i
-    %4 = cir.const #cir.int<4> : !s32i
-    %vec = cir.vec.create(%1, %2, %3, %4 : !s32i, !s32i, !s32i, !s32i) : !cir.vector<4 x !s32i>
-    %indices = cir.vec.create(%1, %2 : !s32i, !s32i) : !cir.vector<2 x !s32i>
-
-    // expected-error @below {{the number of elements in '!cir.vector<4 x !cir.int<s, 32>>' and '!cir.vector<2 x !cir.int<s, 32>>' don't match}}
-    %new_vec = cir.vec.shuffle.dynamic %vec : !cir.vector<4 x !s32i>, %indices : !cir.vector<2 x !s32i>
-    cir.return
-  }
-}

diff  --git a/clang/test/CIR/IR/invalid-vector-shuffle-wrong-index.cir b/clang/test/CIR/IR/invalid-vector-shuffle-wrong-index.cir
deleted file mode 100644
index 375b2d3dc563e..0000000000000
--- a/clang/test/CIR/IR/invalid-vector-shuffle-wrong-index.cir
+++ /dev/null
@@ -1,16 +0,0 @@
-// RUN: cir-opt %s -verify-diagnostics -split-input-file
-
-!s32i = !cir.int<s, 32>
-!s64i = !cir.int<s, 64>
-
-module  {
-  cir.func @fold_shuffle_vector_op_test() -> !cir.vector<4 x !s32i> {
-    %vec_1 = cir.const #cir.const_vector<[#cir.int<1> : !s32i, #cir.int<3> : !s32i, #cir.int<5> : !s32i, #cir.int<7> : !s32i]> : !cir.vector<4 x !s32i>
-    %vec_2 = cir.const #cir.const_vector<[#cir.int<2> : !s32i, #cir.int<4> : !s32i, #cir.int<6> : !s32i, #cir.int<8> : !s32i]> : !cir.vector<4 x !s32i>
-
-    // expected-error @below {{index for __builtin_shufflevector must be less than the total number of vector elements}}
-    %new_vec = cir.vec.shuffle(%vec_1, %vec_2 : !cir.vector<4 x !s32i>) [#cir.int<9> : !s64i, #cir.int<4> : !s64i,
-      #cir.int<1> : !s64i, #cir.int<5> : !s64i] : !cir.vector<4 x !s32i>
-    cir.return %new_vec : !cir.vector<4 x !s32i>
-  }
-}

diff  --git a/clang/test/CIR/IR/invalid-vector-zero-size.cir b/clang/test/CIR/IR/invalid-vector-zero-size.cir
deleted file mode 100644
index ffe6c56a28aa1..0000000000000
--- a/clang/test/CIR/IR/invalid-vector-zero-size.cir
+++ /dev/null
@@ -1,10 +0,0 @@
-// RUN: cir-opt %s -verify-diagnostics -split-input-file
-
-!s32i = !cir.int<s, 32>
-
-module  {
-
-// expected-error @below {{the number of vector elements must be non-zero}}
-cir.global external @vec_a = #cir.zero : !cir.vector<0 x !s32i>
-
-}

diff  --git a/clang/test/CIR/IR/invalid-vector.cir b/clang/test/CIR/IR/invalid-vector.cir
index 98e1109df84f9..679994925786e 100644
--- a/clang/test/CIR/IR/invalid-vector.cir
+++ b/clang/test/CIR/IR/invalid-vector.cir
@@ -15,7 +15,7 @@ cir.global external @vec_b = #cir.zero : !cir.vector<4 x !cir.array<!s32i x 10>>
 !s64i = !cir.int<s, 64>
 
 module  {
-  cir.func @invalid_vector_shuffle() {
+  cir.func @vector_shuffle_invalid_element_type() {
     %1 = cir.const #cir.int<1> : !s32i
     %2 = cir.const #cir.int<2> : !s32i
     %3 = cir.const #cir.int<3> : !s32i
@@ -34,7 +34,7 @@ module  {
 !s64i = !cir.int<s, 64>
 
 module  {
-  cir.func @invalid_vector_shuffle() {
+  cir.func @vector_shuffle_
diff erent_number_of_elements() {
     %1 = cir.const #cir.int<1> : !s32i
     %2 = cir.const #cir.int<2> : !s32i
     %3 = cir.const #cir.int<3> : !s32i
@@ -46,3 +46,104 @@ module  {
     cir.return
   }
 }
+
+// -----
+
+!s32i = !cir.int<s, 32>
+
+module  {
+  cir.func @vector_create_
diff erent_size() {
+    %1 = cir.const #cir.int<1> : !s32i
+    %2 = cir.const #cir.int<2> : !s32i
+    %3 = cir.const #cir.int<3> : !s32i
+    %4 = cir.const #cir.int<4> : !s32i
+
+    // expected-error @below {{operand count of 4 doesn't match vector type '!cir.vector<8 x !cir.int<s, 32>>' element count of 8}}
+    %5 = cir.vec.create(%1, %2, %3, %4 : !s32i, !s32i, !s32i, !s32i) : !cir.vector<8 x !s32i>
+    cir.return
+  }
+}
+
+// -----
+
+!s32i = !cir.int<s, 32>
+!s64i = !cir.int<s, 64>
+
+module  {
+  cir.func @vector_create_
diff erent_type_size() {
+    %1 = cir.const #cir.int<1> : !s32i
+    %2 = cir.const #cir.int<2> : !s32i
+    %3 = cir.const #cir.int<3> : !s32i
+    %4 = cir.const #cir.int<4> : !s64i
+
+    // expected-error @below {{operand type '!cir.int<s, 64>' doesn't match vector element type '!cir.int<s, 32>'}}
+    %5 = cir.vec.create(%1, %2, %3, %4 : !s32i, !s32i, !s32i, !s64i) : !cir.vector<4 x !s32i>
+    cir.return
+  }
+}
+
+// -----
+
+!s32i = !cir.int<s, 32>
+
+module  {
+  cir.func @vector_shift_invalid_result_type() {
+    %1 = cir.const #cir.int<1> : !s32i
+    %2 = cir.const #cir.int<2> : !s32i
+    %3 = cir.const #cir.int<3> : !s32i
+    %4 = cir.const #cir.int<4> : !s32i
+    %5 = cir.vec.create(%1, %2, %3, %4 : !s32i, !s32i, !s32i, !s32i) : !cir.vector<4 x !s32i>
+    %6 = cir.vec.create(%1, %2, %3, %4 : !s32i, !s32i, !s32i, !s32i) : !cir.vector<4 x !s32i>
+    // expected-error @below {{the type of the result must be a vector if it is vector shift}}
+    %7 = cir.shift(left, %5 : !cir.vector<4 x !s32i>, %6 : !cir.vector<4 x !s32i>) -> !s32i
+    cir.return
+  }
+}
+
+// -----
+
+!s32i = !cir.int<s, 32>
+!s64i = !cir.int<s, 64>
+
+module  {
+  cir.func @vector_shuffle_dynamic_
diff erent_number_of_elements() {
+    %1 = cir.const #cir.int<1> : !s32i
+    %2 = cir.const #cir.int<2> : !s32i
+    %3 = cir.const #cir.int<3> : !s32i
+    %4 = cir.const #cir.int<4> : !s32i
+    %vec = cir.vec.create(%1, %2, %3, %4 : !s32i, !s32i, !s32i, !s32i) : !cir.vector<4 x !s32i>
+    %indices = cir.vec.create(%1, %2 : !s32i, !s32i) : !cir.vector<2 x !s32i>
+
+    // expected-error @below {{the number of elements in '!cir.vector<4 x !cir.int<s, 32>>' and '!cir.vector<2 x !cir.int<s, 32>>' don't match}}
+    %new_vec = cir.vec.shuffle.dynamic %vec : !cir.vector<4 x !s32i>, %indices : !cir.vector<2 x !s32i>
+    cir.return
+  }
+}
+
+// -----
+
+!s32i = !cir.int<s, 32>
+!s64i = !cir.int<s, 64>
+
+module  {
+  cir.func @vector_shuffle_invalid_index_value() -> !cir.vector<4 x !s32i> {
+    %vec_1 = cir.const #cir.const_vector<[#cir.int<1> : !s32i, #cir.int<3> : !s32i, #cir.int<5> : !s32i, #cir.int<7> : !s32i]> : !cir.vector<4 x !s32i>
+    %vec_2 = cir.const #cir.const_vector<[#cir.int<2> : !s32i, #cir.int<4> : !s32i, #cir.int<6> : !s32i, #cir.int<8> : !s32i]> : !cir.vector<4 x !s32i>
+
+    // expected-error @below {{index for __builtin_shufflevector must be less than the total number of vector elements}}
+    %new_vec = cir.vec.shuffle(%vec_1, %vec_2 : !cir.vector<4 x !s32i>) [#cir.int<9> : !s64i, #cir.int<4> : !s64i,
+      #cir.int<1> : !s64i, #cir.int<5> : !s64i] : !cir.vector<4 x !s32i>
+    cir.return %new_vec : !cir.vector<4 x !s32i>
+  }
+}
+
+// -----
+
+!s32i = !cir.int<s, 32>
+
+module  {
+
+// expected-error @below {{the number of vector elements must be non-zero}}
+cir.global external @vec_a = #cir.zero : !cir.vector<0 x !s32i>
+
+}

diff  --git a/clang/test/CIR/Transforms/vector-splat.cir b/clang/test/CIR/Transforms/vector-splat.cir
index e2274b8627b17..9b2b39d7f862e 100644
--- a/clang/test/CIR/Transforms/vector-splat.cir
+++ b/clang/test/CIR/Transforms/vector-splat.cir
@@ -3,13 +3,13 @@
 !s32i = !cir.int<s, 32>
 
 module  {
-  cir.func @fold_shuffle_vector_op_test() -> !cir.vector<4 x !s32i> {
+  cir.func @fold_splat_vector_op_test() -> !cir.vector<4 x !s32i> {
     %v = cir.const #cir.int<3> : !s32i
     %vec = cir.vec.splat %v : !s32i, !cir.vector<4 x !s32i>
     cir.return %vec : !cir.vector<4 x !s32i>
   }
 
-  // CHECK: cir.func @fold_shuffle_vector_op_test() -> !cir.vector<4 x !s32i> {
+  // CHECK: cir.func @fold_splat_vector_op_test() -> !cir.vector<4 x !s32i> {
   // CHECK-NEXT: %0 = cir.const #cir.const_vector<[#cir.int<3> : !s32i, #cir.int<3> : !s32i,
   // CHECK-SAME: #cir.int<3> : !s32i, #cir.int<3> : !s32i]> : !cir.vector<4 x !s32i>
   // CHECK-NEXT: cir.return %0 : !cir.vector<4 x !s32i>


        


More information about the cfe-commits mailing list