Skip to content

[SLP][REVEC] Fix type comparison and mask transformation for REVEC. #135310

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 2 commits into from
Apr 11, 2025

Conversation

HanKuanChen
Copy link
Contributor

When REVEC is enabled, ScalarTy may be a FixedVectorType. Compare its
element type to decide if casting is needed. Also apply mask
transformation accordingly.

When REVEC is enabled, ScalarTy may be a FixedVectorType. Compare its
element type to decide if casting is needed. Also apply mask
transformation accordingly.
@llvmbot
Copy link
Member

llvmbot commented Apr 11, 2025

@llvm/pr-subscribers-vectorizers

Author: Han-Kuan Chen (HanKuanChen)

Changes

When REVEC is enabled, ScalarTy may be a FixedVectorType. Compare its
element type to decide if casting is needed. Also apply mask
transformation accordingly.


Full diff: https://github.com/llvm/llvm-project/pull/135310.diff

2 Files Affected:

  • (modified) llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp (+11-3)
  • (added) llvm/test/Transforms/SLPVectorizer/X86/revec-SplitVectorize.ll (+67)
diff --git a/llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp b/llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp
index 2efe107f03142..7b6953899cb8c 100644
--- a/llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp
+++ b/llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp
@@ -16998,7 +16998,8 @@ Value *BoUpSLP::vectorizeTree(TreeEntry *E) {
         });
       return IsSigned;
     };
-    if (cast<VectorType>(Op1->getType())->getElementType() != ScalarTy) {
+    if (cast<VectorType>(Op1->getType())->getElementType() !=
+        ScalarTy->getScalarType()) {
       assert(ScalarTy->isIntegerTy() && "Expected item in MinBWs.");
       Op1 = Builder.CreateIntCast(
           Op1,
@@ -17007,7 +17008,8 @@ Value *BoUpSLP::vectorizeTree(TreeEntry *E) {
               cast<FixedVectorType>(Op1->getType())->getNumElements()),
           GetOperandSignedness(&OpTE1));
     }
-    if (cast<VectorType>(Op2->getType())->getElementType() != ScalarTy) {
+    if (cast<VectorType>(Op2->getType())->getElementType() !=
+        ScalarTy->getScalarType()) {
       assert(ScalarTy->isIntegerTy() && "Expected item in MinBWs.");
       Op2 = Builder.CreateIntCast(
           Op2,
@@ -17022,9 +17024,15 @@ Value *BoUpSLP::vectorizeTree(TreeEntry *E) {
           Mask.begin(),
           std::next(Mask.begin(), E->CombinedEntriesWithIndices.back().second),
           0);
+      unsigned ScalarTyNumElements = getNumElements(ScalarTy);
+      if (ScalarTyNumElements != 1) {
+        assert(SLPReVec && "Only supported by REVEC.");
+        transformScalarShuffleIndiciesToVector(ScalarTyNumElements, Mask);
+      }
       Value *Vec = Builder.CreateShuffleVector(Op1, Mask);
       Vec = createInsertVector(Builder, Vec, Op2,
-                               E->CombinedEntriesWithIndices.back().second);
+                               E->CombinedEntriesWithIndices.back().second *
+                                   ScalarTyNumElements);
       E->VectorizedValue = Vec;
       return Vec;
     }
diff --git a/llvm/test/Transforms/SLPVectorizer/X86/revec-SplitVectorize.ll b/llvm/test/Transforms/SLPVectorizer/X86/revec-SplitVectorize.ll
new file mode 100644
index 0000000000000..a1a6cfe30cd1b
--- /dev/null
+++ b/llvm/test/Transforms/SLPVectorizer/X86/revec-SplitVectorize.ll
@@ -0,0 +1,67 @@
+; NOTE: Assertions have been autogenerated by utils/update_test_checks.py
+; RUN: opt -mtriple=x86_64-unknown-linux-gnu -mattr=+avx -passes=slp-vectorizer -S -slp-revec < %s | FileCheck %s
+
+define void @test() {
+; CHECK-LABEL: @test(
+; CHECK-NEXT:  entry:
+; CHECK-NEXT:    [[TMP0:%.*]] = call <32 x i32> @llvm.vector.insert.v32i32.v4i32(<32 x i32> poison, <4 x i32> zeroinitializer, i64 0)
+; CHECK-NEXT:    [[TMP1:%.*]] = call <32 x i32> @llvm.vector.insert.v32i32.v4i32(<32 x i32> [[TMP0]], <4 x i32> zeroinitializer, i64 4)
+; CHECK-NEXT:    [[TMP2:%.*]] = call <32 x i32> @llvm.vector.insert.v32i32.v4i32(<32 x i32> [[TMP1]], <4 x i32> zeroinitializer, i64 8)
+; CHECK-NEXT:    [[TMP3:%.*]] = call <32 x i32> @llvm.vector.insert.v32i32.v4i32(<32 x i32> [[TMP2]], <4 x i32> zeroinitializer, i64 12)
+; CHECK-NEXT:    [[TMP4:%.*]] = call <32 x i32> @llvm.vector.insert.v32i32.v4i32(<32 x i32> [[TMP3]], <4 x i32> zeroinitializer, i64 16)
+; CHECK-NEXT:    [[TMP5:%.*]] = call <32 x i32> @llvm.vector.insert.v32i32.v4i32(<32 x i32> [[TMP4]], <4 x i32> zeroinitializer, i64 20)
+; CHECK-NEXT:    [[TMP6:%.*]] = call <32 x i32> @llvm.vector.insert.v32i32.v4i32(<32 x i32> [[TMP5]], <4 x i32> zeroinitializer, i64 24)
+; CHECK-NEXT:    [[TMP7:%.*]] = call <32 x i32> @llvm.vector.insert.v32i32.v4i32(<32 x i32> [[TMP6]], <4 x i32> zeroinitializer, i64 28)
+; CHECK-NEXT:    [[TMP8:%.*]] = trunc <32 x i32> [[TMP7]] to <32 x i1>
+; CHECK-NEXT:    [[TMP9:%.*]] = call <16 x i1> @llvm.vector.insert.v16i1.v4i1(<16 x i1> poison, <4 x i1> zeroinitializer, i64 0)
+; CHECK-NEXT:    [[TMP10:%.*]] = call <16 x i1> @llvm.vector.insert.v16i1.v4i1(<16 x i1> [[TMP9]], <4 x i1> zeroinitializer, i64 4)
+; CHECK-NEXT:    [[TMP11:%.*]] = call <16 x i1> @llvm.vector.insert.v16i1.v4i1(<16 x i1> [[TMP10]], <4 x i1> zeroinitializer, i64 8)
+; CHECK-NEXT:    [[TMP12:%.*]] = call <16 x i1> @llvm.vector.insert.v16i1.v4i1(<16 x i1> [[TMP11]], <4 x i1> zeroinitializer, i64 12)
+; CHECK-NEXT:    br label [[VECTOR_BODY:%.*]]
+; CHECK:       vector.body:
+; CHECK-NEXT:    [[TMP13:%.*]] = phi <32 x i1> [ [[TMP8]], [[ENTRY:%.*]] ], [ [[TMP18:%.*]], [[VECTOR_BODY]] ]
+; CHECK-NEXT:    [[TMP14:%.*]] = select <16 x i1> [[TMP12]], <16 x i1> [[TMP12]], <16 x i1> [[TMP12]]
+; CHECK-NEXT:    [[TMP15:%.*]] = xor <16 x i1> [[TMP12]], [[TMP12]]
+; CHECK-NEXT:    [[TMP16:%.*]] = shufflevector <16 x i1> [[TMP14]], <16 x i1> poison, <32 x i32> <i32 0, i32 1, i32 2, i32 3, i32 4, i32 5, i32 6, i32 7, i32 8, i32 9, i32 10, i32 11, i32 12, i32 13, i32 14, i32 15, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison>
+; CHECK-NEXT:    [[TMP17:%.*]] = call <32 x i1> @llvm.vector.insert.v32i1.v16i1(<32 x i1> [[TMP16]], <16 x i1> [[TMP15]], i64 16)
+; CHECK-NEXT:    [[TMP18]] = or <32 x i1> [[TMP13]], [[TMP17]]
+; CHECK-NEXT:    br label [[VECTOR_BODY]]
+;
+entry:
+  br label %vector.body
+
+vector.body:                                      ; preds = %vector.body, %entry
+  %vec.phi30 = phi <4 x i32> [ zeroinitializer, %entry ], [ %predphi, %vector.body ]
+  %vec.phi31 = phi <4 x i32> [ zeroinitializer, %entry ], [ %predphi40, %vector.body ]
+  %vec.phi32 = phi <4 x i32> [ zeroinitializer, %entry ], [ %predphi41, %vector.body ]
+  %vec.phi33 = phi <4 x i32> [ zeroinitializer, %entry ], [ %predphi42, %vector.body ]
+  %vec.phi = phi <4 x i32> [ zeroinitializer, %entry ], [ %predphi43, %vector.body ]
+  %vec.phi27 = phi <4 x i32> [ zeroinitializer, %entry ], [ %predphi44, %vector.body ]
+  %vec.phi28 = phi <4 x i32> [ zeroinitializer, %entry ], [ %predphi45, %vector.body ]
+  %vec.phi29 = phi <4 x i32> [ zeroinitializer, %entry ], [ %predphi46, %vector.body ]
+  %narrow = select <4 x i1> zeroinitializer, <4 x i1> zeroinitializer, <4 x i1> zeroinitializer
+  %narrow66 = select <4 x i1> zeroinitializer, <4 x i1> zeroinitializer, <4 x i1> zeroinitializer
+  %narrow67 = select <4 x i1> zeroinitializer, <4 x i1> zeroinitializer, <4 x i1> zeroinitializer
+  %narrow68 = select <4 x i1> zeroinitializer, <4 x i1> zeroinitializer, <4 x i1> zeroinitializer
+  %not. = xor <4 x i1> zeroinitializer, zeroinitializer
+  %not.69 = xor <4 x i1> zeroinitializer, zeroinitializer
+  %not.70 = xor <4 x i1> zeroinitializer, zeroinitializer
+  %not.71 = xor <4 x i1> zeroinitializer, zeroinitializer
+  %0 = zext <4 x i1> %narrow to <4 x i32>
+  %1 = zext <4 x i1> %narrow66 to <4 x i32>
+  %2 = zext <4 x i1> %narrow67 to <4 x i32>
+  %3 = zext <4 x i1> %narrow68 to <4 x i32>
+  %4 = zext <4 x i1> %not. to <4 x i32>
+  %5 = zext <4 x i1> %not.69 to <4 x i32>
+  %6 = zext <4 x i1> %not.70 to <4 x i32>
+  %7 = zext <4 x i1> %not.71 to <4 x i32>
+  %predphi = or <4 x i32> %vec.phi30, %0
+  %predphi40 = or <4 x i32> %vec.phi31, %1
+  %predphi41 = or <4 x i32> %vec.phi32, %2
+  %predphi42 = or <4 x i32> %vec.phi33, %3
+  %predphi43 = or <4 x i32> %vec.phi, %4
+  %predphi44 = or <4 x i32> %vec.phi27, %5
+  %predphi45 = or <4 x i32> %vec.phi28, %6
+  %predphi46 = or <4 x i32> %vec.phi29, %7
+  br label %vector.body
+}

@llvmbot
Copy link
Member

llvmbot commented Apr 11, 2025

@llvm/pr-subscribers-llvm-transforms

Author: Han-Kuan Chen (HanKuanChen)

Changes

When REVEC is enabled, ScalarTy may be a FixedVectorType. Compare its
element type to decide if casting is needed. Also apply mask
transformation accordingly.


Full diff: https://github.com/llvm/llvm-project/pull/135310.diff

2 Files Affected:

  • (modified) llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp (+11-3)
  • (added) llvm/test/Transforms/SLPVectorizer/X86/revec-SplitVectorize.ll (+67)
diff --git a/llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp b/llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp
index 2efe107f03142..7b6953899cb8c 100644
--- a/llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp
+++ b/llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp
@@ -16998,7 +16998,8 @@ Value *BoUpSLP::vectorizeTree(TreeEntry *E) {
         });
       return IsSigned;
     };
-    if (cast<VectorType>(Op1->getType())->getElementType() != ScalarTy) {
+    if (cast<VectorType>(Op1->getType())->getElementType() !=
+        ScalarTy->getScalarType()) {
       assert(ScalarTy->isIntegerTy() && "Expected item in MinBWs.");
       Op1 = Builder.CreateIntCast(
           Op1,
@@ -17007,7 +17008,8 @@ Value *BoUpSLP::vectorizeTree(TreeEntry *E) {
               cast<FixedVectorType>(Op1->getType())->getNumElements()),
           GetOperandSignedness(&OpTE1));
     }
-    if (cast<VectorType>(Op2->getType())->getElementType() != ScalarTy) {
+    if (cast<VectorType>(Op2->getType())->getElementType() !=
+        ScalarTy->getScalarType()) {
       assert(ScalarTy->isIntegerTy() && "Expected item in MinBWs.");
       Op2 = Builder.CreateIntCast(
           Op2,
@@ -17022,9 +17024,15 @@ Value *BoUpSLP::vectorizeTree(TreeEntry *E) {
           Mask.begin(),
           std::next(Mask.begin(), E->CombinedEntriesWithIndices.back().second),
           0);
+      unsigned ScalarTyNumElements = getNumElements(ScalarTy);
+      if (ScalarTyNumElements != 1) {
+        assert(SLPReVec && "Only supported by REVEC.");
+        transformScalarShuffleIndiciesToVector(ScalarTyNumElements, Mask);
+      }
       Value *Vec = Builder.CreateShuffleVector(Op1, Mask);
       Vec = createInsertVector(Builder, Vec, Op2,
-                               E->CombinedEntriesWithIndices.back().second);
+                               E->CombinedEntriesWithIndices.back().second *
+                                   ScalarTyNumElements);
       E->VectorizedValue = Vec;
       return Vec;
     }
diff --git a/llvm/test/Transforms/SLPVectorizer/X86/revec-SplitVectorize.ll b/llvm/test/Transforms/SLPVectorizer/X86/revec-SplitVectorize.ll
new file mode 100644
index 0000000000000..a1a6cfe30cd1b
--- /dev/null
+++ b/llvm/test/Transforms/SLPVectorizer/X86/revec-SplitVectorize.ll
@@ -0,0 +1,67 @@
+; NOTE: Assertions have been autogenerated by utils/update_test_checks.py
+; RUN: opt -mtriple=x86_64-unknown-linux-gnu -mattr=+avx -passes=slp-vectorizer -S -slp-revec < %s | FileCheck %s
+
+define void @test() {
+; CHECK-LABEL: @test(
+; CHECK-NEXT:  entry:
+; CHECK-NEXT:    [[TMP0:%.*]] = call <32 x i32> @llvm.vector.insert.v32i32.v4i32(<32 x i32> poison, <4 x i32> zeroinitializer, i64 0)
+; CHECK-NEXT:    [[TMP1:%.*]] = call <32 x i32> @llvm.vector.insert.v32i32.v4i32(<32 x i32> [[TMP0]], <4 x i32> zeroinitializer, i64 4)
+; CHECK-NEXT:    [[TMP2:%.*]] = call <32 x i32> @llvm.vector.insert.v32i32.v4i32(<32 x i32> [[TMP1]], <4 x i32> zeroinitializer, i64 8)
+; CHECK-NEXT:    [[TMP3:%.*]] = call <32 x i32> @llvm.vector.insert.v32i32.v4i32(<32 x i32> [[TMP2]], <4 x i32> zeroinitializer, i64 12)
+; CHECK-NEXT:    [[TMP4:%.*]] = call <32 x i32> @llvm.vector.insert.v32i32.v4i32(<32 x i32> [[TMP3]], <4 x i32> zeroinitializer, i64 16)
+; CHECK-NEXT:    [[TMP5:%.*]] = call <32 x i32> @llvm.vector.insert.v32i32.v4i32(<32 x i32> [[TMP4]], <4 x i32> zeroinitializer, i64 20)
+; CHECK-NEXT:    [[TMP6:%.*]] = call <32 x i32> @llvm.vector.insert.v32i32.v4i32(<32 x i32> [[TMP5]], <4 x i32> zeroinitializer, i64 24)
+; CHECK-NEXT:    [[TMP7:%.*]] = call <32 x i32> @llvm.vector.insert.v32i32.v4i32(<32 x i32> [[TMP6]], <4 x i32> zeroinitializer, i64 28)
+; CHECK-NEXT:    [[TMP8:%.*]] = trunc <32 x i32> [[TMP7]] to <32 x i1>
+; CHECK-NEXT:    [[TMP9:%.*]] = call <16 x i1> @llvm.vector.insert.v16i1.v4i1(<16 x i1> poison, <4 x i1> zeroinitializer, i64 0)
+; CHECK-NEXT:    [[TMP10:%.*]] = call <16 x i1> @llvm.vector.insert.v16i1.v4i1(<16 x i1> [[TMP9]], <4 x i1> zeroinitializer, i64 4)
+; CHECK-NEXT:    [[TMP11:%.*]] = call <16 x i1> @llvm.vector.insert.v16i1.v4i1(<16 x i1> [[TMP10]], <4 x i1> zeroinitializer, i64 8)
+; CHECK-NEXT:    [[TMP12:%.*]] = call <16 x i1> @llvm.vector.insert.v16i1.v4i1(<16 x i1> [[TMP11]], <4 x i1> zeroinitializer, i64 12)
+; CHECK-NEXT:    br label [[VECTOR_BODY:%.*]]
+; CHECK:       vector.body:
+; CHECK-NEXT:    [[TMP13:%.*]] = phi <32 x i1> [ [[TMP8]], [[ENTRY:%.*]] ], [ [[TMP18:%.*]], [[VECTOR_BODY]] ]
+; CHECK-NEXT:    [[TMP14:%.*]] = select <16 x i1> [[TMP12]], <16 x i1> [[TMP12]], <16 x i1> [[TMP12]]
+; CHECK-NEXT:    [[TMP15:%.*]] = xor <16 x i1> [[TMP12]], [[TMP12]]
+; CHECK-NEXT:    [[TMP16:%.*]] = shufflevector <16 x i1> [[TMP14]], <16 x i1> poison, <32 x i32> <i32 0, i32 1, i32 2, i32 3, i32 4, i32 5, i32 6, i32 7, i32 8, i32 9, i32 10, i32 11, i32 12, i32 13, i32 14, i32 15, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison>
+; CHECK-NEXT:    [[TMP17:%.*]] = call <32 x i1> @llvm.vector.insert.v32i1.v16i1(<32 x i1> [[TMP16]], <16 x i1> [[TMP15]], i64 16)
+; CHECK-NEXT:    [[TMP18]] = or <32 x i1> [[TMP13]], [[TMP17]]
+; CHECK-NEXT:    br label [[VECTOR_BODY]]
+;
+entry:
+  br label %vector.body
+
+vector.body:                                      ; preds = %vector.body, %entry
+  %vec.phi30 = phi <4 x i32> [ zeroinitializer, %entry ], [ %predphi, %vector.body ]
+  %vec.phi31 = phi <4 x i32> [ zeroinitializer, %entry ], [ %predphi40, %vector.body ]
+  %vec.phi32 = phi <4 x i32> [ zeroinitializer, %entry ], [ %predphi41, %vector.body ]
+  %vec.phi33 = phi <4 x i32> [ zeroinitializer, %entry ], [ %predphi42, %vector.body ]
+  %vec.phi = phi <4 x i32> [ zeroinitializer, %entry ], [ %predphi43, %vector.body ]
+  %vec.phi27 = phi <4 x i32> [ zeroinitializer, %entry ], [ %predphi44, %vector.body ]
+  %vec.phi28 = phi <4 x i32> [ zeroinitializer, %entry ], [ %predphi45, %vector.body ]
+  %vec.phi29 = phi <4 x i32> [ zeroinitializer, %entry ], [ %predphi46, %vector.body ]
+  %narrow = select <4 x i1> zeroinitializer, <4 x i1> zeroinitializer, <4 x i1> zeroinitializer
+  %narrow66 = select <4 x i1> zeroinitializer, <4 x i1> zeroinitializer, <4 x i1> zeroinitializer
+  %narrow67 = select <4 x i1> zeroinitializer, <4 x i1> zeroinitializer, <4 x i1> zeroinitializer
+  %narrow68 = select <4 x i1> zeroinitializer, <4 x i1> zeroinitializer, <4 x i1> zeroinitializer
+  %not. = xor <4 x i1> zeroinitializer, zeroinitializer
+  %not.69 = xor <4 x i1> zeroinitializer, zeroinitializer
+  %not.70 = xor <4 x i1> zeroinitializer, zeroinitializer
+  %not.71 = xor <4 x i1> zeroinitializer, zeroinitializer
+  %0 = zext <4 x i1> %narrow to <4 x i32>
+  %1 = zext <4 x i1> %narrow66 to <4 x i32>
+  %2 = zext <4 x i1> %narrow67 to <4 x i32>
+  %3 = zext <4 x i1> %narrow68 to <4 x i32>
+  %4 = zext <4 x i1> %not. to <4 x i32>
+  %5 = zext <4 x i1> %not.69 to <4 x i32>
+  %6 = zext <4 x i1> %not.70 to <4 x i32>
+  %7 = zext <4 x i1> %not.71 to <4 x i32>
+  %predphi = or <4 x i32> %vec.phi30, %0
+  %predphi40 = or <4 x i32> %vec.phi31, %1
+  %predphi41 = or <4 x i32> %vec.phi32, %2
+  %predphi42 = or <4 x i32> %vec.phi33, %3
+  %predphi43 = or <4 x i32> %vec.phi, %4
+  %predphi44 = or <4 x i32> %vec.phi27, %5
+  %predphi45 = or <4 x i32> %vec.phi28, %6
+  %predphi46 = or <4 x i32> %vec.phi29, %7
+  br label %vector.body
+}

@HanKuanChen HanKuanChen merged commit d77dc87 into llvm:main Apr 11, 2025
14 checks passed
@HanKuanChen HanKuanChen deleted the slp-revec-SplitVectorize branch April 11, 2025 09:28
@llvm-ci
Copy link
Collaborator

llvm-ci commented Apr 11, 2025

LLVM Buildbot has detected a new failure on builder llvm-clang-x86_64-sie-ubuntu-fast running on sie-linux-worker while building llvm at step 6 "test-build-unified-tree-check-all".

Full details are available at: https://lab.llvm.org/buildbot/#/builders/144/builds/22508

Here is the relevant piece of the build log for the reference
Step 6 (test-build-unified-tree-check-all) failure: test (failure)
******************** TEST 'LLVM :: Transforms/SLPVectorizer/X86/revec-SplitVectorize.ll' FAILED ********************
Exit Code: 1

Command Output (stderr):
--
/home/buildbot/buildbot-root/llvm-clang-x86_64-sie-ubuntu-fast/build/bin/opt -mtriple=x86_64-unknown-linux-gnu -mattr=+avx -passes=slp-vectorizer -S -slp-revec < /home/buildbot/buildbot-root/llvm-clang-x86_64-sie-ubuntu-fast/llvm-project/llvm/test/Transforms/SLPVectorizer/X86/revec-SplitVectorize.ll | /home/buildbot/buildbot-root/llvm-clang-x86_64-sie-ubuntu-fast/build/bin/FileCheck /home/buildbot/buildbot-root/llvm-clang-x86_64-sie-ubuntu-fast/llvm-project/llvm/test/Transforms/SLPVectorizer/X86/revec-SplitVectorize.ll # RUN: at line 2
+ /home/buildbot/buildbot-root/llvm-clang-x86_64-sie-ubuntu-fast/build/bin/opt -mtriple=x86_64-unknown-linux-gnu -mattr=+avx -passes=slp-vectorizer -S -slp-revec
+ /home/buildbot/buildbot-root/llvm-clang-x86_64-sie-ubuntu-fast/build/bin/FileCheck /home/buildbot/buildbot-root/llvm-clang-x86_64-sie-ubuntu-fast/llvm-project/llvm/test/Transforms/SLPVectorizer/X86/revec-SplitVectorize.ll
�[1m/home/buildbot/buildbot-root/llvm-clang-x86_64-sie-ubuntu-fast/llvm-project/llvm/test/Transforms/SLPVectorizer/X86/revec-SplitVectorize.ll:16:15: �[0m�[0;1;31merror: �[0m�[1mCHECK-NEXT: expected string not found in input
�[0m; CHECK-NEXT: [[TMP9:%.*]] = call <16 x i1> @llvm.vector.insert.v16i1.v4i1(<16 x i1> poison, <4 x i1> zeroinitializer, i64 0)
�[0;1;32m              ^
�[0m�[1m<stdin>:16:39: �[0m�[0;1;30mnote: �[0m�[1mscanning from here
�[0m %8 = trunc <32 x i32> %7 to <32 x i1>
�[0;1;32m                                      ^
�[0m�[1m<stdin>:29:2: �[0m�[0;1;30mnote: �[0m�[1mpossible intended match here
�[0m %14 = call <32 x i1> @llvm.vector.insert.v32i1.v4i1(<32 x i1> %13, <4 x i1> zeroinitializer, i64 16)
�[0;1;32m ^
�[0m
Input file: <stdin>
Check file: /home/buildbot/buildbot-root/llvm-clang-x86_64-sie-ubuntu-fast/llvm-project/llvm/test/Transforms/SLPVectorizer/X86/revec-SplitVectorize.ll

-dump-input=help explains the following input dump.

Input was:
<<<<<<
�[1m�[0m�[0;1;30m           1: �[0m�[1m�[0;1;46m; ModuleID = '<stdin>' �[0m
�[0;1;30m           2: �[0m�[1m�[0;1;46msource_filename = "<stdin>" �[0m
�[0;1;30m           3: �[0m�[1m�[0;1;46mtarget datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-i128:128-f80:128-n8:16:32:64-S128" �[0m
�[0;1;30m           4: �[0m�[1m�[0;1;46mtarget triple = "x86_64-unknown-linux-gnu" �[0m
�[0;1;30m           5: �[0m�[1m�[0;1;46m �[0m
�[0;1;30m           6: �[0m�[1m�[0;1;46mdefine void �[0m@test(�[0;1;46m) #0 { �[0m
�[0;1;32mlabel:5'0                 ^~~~~~
�[0m�[0;1;32mlabel:5'1                 ^~~~~~
�[0m�[0;1;30m           7: �[0m�[1m�[0;1;46m�[0mentry:�[0;1;46m �[0m
�[0;1;32mnext:6        ^~~~~~
�[0m�[0;1;30m           8: �[0m�[1m�[0;1;46m �[0m%0 = call <32 x i32> @llvm.vector.insert.v32i32.v4i32(<32 x i32> poison, <4 x i32> zeroinitializer, i64 0)�[0;1;46m �[0m
�[0;1;32mnext:7'0       ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
�[0m�[0;1;32mnext:7'1       ^~                                                                                                          captured var "TMP0"
�[0m�[0;1;30m           9: �[0m�[1m�[0;1;46m �[0m%1 = call <32 x i32> @llvm.vector.insert.v32i32.v4i32(<32 x i32> %0, <4 x i32> zeroinitializer, i64 4)�[0;1;46m �[0m
�[0;1;32mnext:8'0       ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
�[0m�[0;1;32mnext:8'1                                                                                                               with "TMP0" equal to "%0"
�[0m�[0;1;32mnext:8'2       ^~                                                                                                      captured var "TMP1"
�[0m�[0;1;30m          10: �[0m�[1m�[0;1;46m �[0m%2 = call <32 x i32> @llvm.vector.insert.v32i32.v4i32(<32 x i32> %1, <4 x i32> zeroinitializer, i64 8)�[0;1;46m �[0m
�[0;1;32mnext:9'0       ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
�[0m�[0;1;32mnext:9'1                                                                                                               with "TMP1" equal to "%1"
�[0m�[0;1;32mnext:9'2       ^~                                                                                                      captured var "TMP2"
�[0m�[0;1;30m          11: �[0m�[1m�[0;1;46m �[0m%3 = call <32 x i32> @llvm.vector.insert.v32i32.v4i32(<32 x i32> %2, <4 x i32> zeroinitializer, i64 12)�[0;1;46m �[0m
�[0;1;32mnext:10'0      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
�[0m�[0;1;32mnext:10'1                                                                                                               with "TMP2" equal to "%2"
�[0m�[0;1;32mnext:10'2      ^~                                                                                                       captured var "TMP3"
...

@llvm-ci
Copy link
Collaborator

llvm-ci commented Apr 11, 2025

LLVM Buildbot has detected a new failure on builder openmp-offload-sles-build-only running on rocm-worker-hw-04-sles while building llvm at step 9 "Add check check-llvm".

Full details are available at: https://lab.llvm.org/buildbot/#/builders/140/builds/20973

Here is the relevant piece of the build log for the reference
Step 9 (Add check check-llvm) failure: test (failure)
******************** TEST 'LLVM :: Transforms/SLPVectorizer/X86/revec-SplitVectorize.ll' FAILED ********************
Exit Code: 1

Command Output (stderr):
--
/home/botworker/bbot/builds/openmp-offload-sles-build/llvm.build/bin/opt -mtriple=x86_64-unknown-linux-gnu -mattr=+avx -passes=slp-vectorizer -S -slp-revec < /home/botworker/bbot/builds/openmp-offload-sles-build/llvm.src/llvm/test/Transforms/SLPVectorizer/X86/revec-SplitVectorize.ll | /home/botworker/bbot/builds/openmp-offload-sles-build/llvm.build/bin/FileCheck /home/botworker/bbot/builds/openmp-offload-sles-build/llvm.src/llvm/test/Transforms/SLPVectorizer/X86/revec-SplitVectorize.ll # RUN: at line 2
+ /home/botworker/bbot/builds/openmp-offload-sles-build/llvm.build/bin/FileCheck /home/botworker/bbot/builds/openmp-offload-sles-build/llvm.src/llvm/test/Transforms/SLPVectorizer/X86/revec-SplitVectorize.ll
+ /home/botworker/bbot/builds/openmp-offload-sles-build/llvm.build/bin/opt -mtriple=x86_64-unknown-linux-gnu -mattr=+avx -passes=slp-vectorizer -S -slp-revec
/home/botworker/bbot/builds/openmp-offload-sles-build/llvm.src/llvm/test/Transforms/SLPVectorizer/X86/revec-SplitVectorize.ll:16:15: error: CHECK-NEXT: expected string not found in input
; CHECK-NEXT: [[TMP9:%.*]] = call <16 x i1> @llvm.vector.insert.v16i1.v4i1(<16 x i1> poison, <4 x i1> zeroinitializer, i64 0)
              ^
<stdin>:16:39: note: scanning from here
 %8 = trunc <32 x i32> %7 to <32 x i1>
                                      ^
<stdin>:29:2: note: possible intended match here
 %14 = call <32 x i1> @llvm.vector.insert.v32i1.v4i1(<32 x i1> %13, <4 x i1> zeroinitializer, i64 16)
 ^

Input file: <stdin>
Check file: /home/botworker/bbot/builds/openmp-offload-sles-build/llvm.src/llvm/test/Transforms/SLPVectorizer/X86/revec-SplitVectorize.ll

-dump-input=help explains the following input dump.

Input was:
<<<<<<
           .
           .
           .
          11:  %3 = call <32 x i32> @llvm.vector.insert.v32i32.v4i32(<32 x i32> %2, <4 x i32> zeroinitializer, i64 12) 
          12:  %4 = call <32 x i32> @llvm.vector.insert.v32i32.v4i32(<32 x i32> %3, <4 x i32> zeroinitializer, i64 16) 
          13:  %5 = call <32 x i32> @llvm.vector.insert.v32i32.v4i32(<32 x i32> %4, <4 x i32> zeroinitializer, i64 20) 
          14:  %6 = call <32 x i32> @llvm.vector.insert.v32i32.v4i32(<32 x i32> %5, <4 x i32> zeroinitializer, i64 24) 
          15:  %7 = call <32 x i32> @llvm.vector.insert.v32i32.v4i32(<32 x i32> %6, <4 x i32> zeroinitializer, i64 28) 
          16:  %8 = trunc <32 x i32> %7 to <32 x i1> 
next:16'0                                           X error: no match found
          17:  br label %vector.body 
next:16'0     ~~~~~~~~~~~~~~~~~~~~~~~
          18:  
next:16'0     ~
          19: vector.body: ; preds = %vector.body, %entry 
next:16'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
          20:  %9 = phi <32 x i1> [ %8, %entry ], [ %18, %vector.body ] 
next:16'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
          21:  %narrow = select <4 x i1> zeroinitializer, <4 x i1> zeroinitializer, <4 x i1> zeroinitializer 
next:16'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
           .
           .
           .
          24:  %narrow68 = select <4 x i1> zeroinitializer, <4 x i1> zeroinitializer, <4 x i1> zeroinitializer 
next:16'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
...

@llvm-ci
Copy link
Collaborator

llvm-ci commented Apr 11, 2025

LLVM Buildbot has detected a new failure on builder llvm-x86_64-debian-dylib running on gribozavr4 while building llvm at step 7 "test-build-unified-tree-check-llvm".

Full details are available at: https://lab.llvm.org/buildbot/#/builders/60/builds/24455

Here is the relevant piece of the build log for the reference
Step 7 (test-build-unified-tree-check-llvm) failure: test (failure)
******************** TEST 'LLVM :: Transforms/SLPVectorizer/X86/revec-SplitVectorize.ll' FAILED ********************
Exit Code: 1

Command Output (stderr):
--
/b/1/llvm-x86_64-debian-dylib/build/bin/opt -mtriple=x86_64-unknown-linux-gnu -mattr=+avx -passes=slp-vectorizer -S -slp-revec < /b/1/llvm-x86_64-debian-dylib/llvm-project/llvm/test/Transforms/SLPVectorizer/X86/revec-SplitVectorize.ll | /b/1/llvm-x86_64-debian-dylib/build/bin/FileCheck /b/1/llvm-x86_64-debian-dylib/llvm-project/llvm/test/Transforms/SLPVectorizer/X86/revec-SplitVectorize.ll # RUN: at line 2
+ /b/1/llvm-x86_64-debian-dylib/build/bin/opt -mtriple=x86_64-unknown-linux-gnu -mattr=+avx -passes=slp-vectorizer -S -slp-revec
+ /b/1/llvm-x86_64-debian-dylib/build/bin/FileCheck /b/1/llvm-x86_64-debian-dylib/llvm-project/llvm/test/Transforms/SLPVectorizer/X86/revec-SplitVectorize.ll
/b/1/llvm-x86_64-debian-dylib/llvm-project/llvm/test/Transforms/SLPVectorizer/X86/revec-SplitVectorize.ll:16:15: error: CHECK-NEXT: expected string not found in input
; CHECK-NEXT: [[TMP9:%.*]] = call <16 x i1> @llvm.vector.insert.v16i1.v4i1(<16 x i1> poison, <4 x i1> zeroinitializer, i64 0)
              ^
<stdin>:16:39: note: scanning from here
 %8 = trunc <32 x i32> %7 to <32 x i1>
                                      ^
<stdin>:29:2: note: possible intended match here
 %14 = call <32 x i1> @llvm.vector.insert.v32i1.v4i1(<32 x i1> %13, <4 x i1> zeroinitializer, i64 16)
 ^

Input file: <stdin>
Check file: /b/1/llvm-x86_64-debian-dylib/llvm-project/llvm/test/Transforms/SLPVectorizer/X86/revec-SplitVectorize.ll

-dump-input=help explains the following input dump.

Input was:
<<<<<<
           .
           .
           .
          11:  %3 = call <32 x i32> @llvm.vector.insert.v32i32.v4i32(<32 x i32> %2, <4 x i32> zeroinitializer, i64 12) 
          12:  %4 = call <32 x i32> @llvm.vector.insert.v32i32.v4i32(<32 x i32> %3, <4 x i32> zeroinitializer, i64 16) 
          13:  %5 = call <32 x i32> @llvm.vector.insert.v32i32.v4i32(<32 x i32> %4, <4 x i32> zeroinitializer, i64 20) 
          14:  %6 = call <32 x i32> @llvm.vector.insert.v32i32.v4i32(<32 x i32> %5, <4 x i32> zeroinitializer, i64 24) 
          15:  %7 = call <32 x i32> @llvm.vector.insert.v32i32.v4i32(<32 x i32> %6, <4 x i32> zeroinitializer, i64 28) 
          16:  %8 = trunc <32 x i32> %7 to <32 x i1> 
next:16'0                                           X error: no match found
          17:  br label %vector.body 
next:16'0     ~~~~~~~~~~~~~~~~~~~~~~~
          18:  
next:16'0     ~
          19: vector.body: ; preds = %vector.body, %entry 
next:16'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
          20:  %9 = phi <32 x i1> [ %8, %entry ], [ %18, %vector.body ] 
next:16'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
          21:  %narrow = select <4 x i1> zeroinitializer, <4 x i1> zeroinitializer, <4 x i1> zeroinitializer 
next:16'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
           .
           .
           .
          24:  %narrow68 = select <4 x i1> zeroinitializer, <4 x i1> zeroinitializer, <4 x i1> zeroinitializer 
next:16'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
...

@llvm-ci
Copy link
Collaborator

llvm-ci commented Apr 11, 2025

LLVM Buildbot has detected a new failure on builder clang-m68k-linux-cross running on suse-gary-m68k-cross while building llvm at step 5 "ninja check 1".

Full details are available at: https://lab.llvm.org/buildbot/#/builders/27/builds/8473

Here is the relevant piece of the build log for the reference
Step 5 (ninja check 1) failure: stage 1 checked (failure)
******************** TEST 'LLVM :: Transforms/SLPVectorizer/X86/revec-SplitVectorize.ll' FAILED ********************
Exit Code: 1

Command Output (stderr):
--
/var/lib/buildbot/workers/suse-gary-m68k-cross/clang-m68k-linux-cross/stage1/bin/opt -mtriple=x86_64-unknown-linux-gnu -mattr=+avx -passes=slp-vectorizer -S -slp-revec < /var/lib/buildbot/workers/suse-gary-m68k-cross/clang-m68k-linux-cross/llvm/llvm/test/Transforms/SLPVectorizer/X86/revec-SplitVectorize.ll | /var/lib/buildbot/workers/suse-gary-m68k-cross/clang-m68k-linux-cross/stage1/bin/FileCheck /var/lib/buildbot/workers/suse-gary-m68k-cross/clang-m68k-linux-cross/llvm/llvm/test/Transforms/SLPVectorizer/X86/revec-SplitVectorize.ll # RUN: at line 2
+ /var/lib/buildbot/workers/suse-gary-m68k-cross/clang-m68k-linux-cross/stage1/bin/opt -mtriple=x86_64-unknown-linux-gnu -mattr=+avx -passes=slp-vectorizer -S -slp-revec
+ /var/lib/buildbot/workers/suse-gary-m68k-cross/clang-m68k-linux-cross/stage1/bin/FileCheck /var/lib/buildbot/workers/suse-gary-m68k-cross/clang-m68k-linux-cross/llvm/llvm/test/Transforms/SLPVectorizer/X86/revec-SplitVectorize.ll
/var/lib/buildbot/workers/suse-gary-m68k-cross/clang-m68k-linux-cross/llvm/llvm/test/Transforms/SLPVectorizer/X86/revec-SplitVectorize.ll:16:15: error: CHECK-NEXT: expected string not found in input
; CHECK-NEXT: [[TMP9:%.*]] = call <16 x i1> @llvm.vector.insert.v16i1.v4i1(<16 x i1> poison, <4 x i1> zeroinitializer, i64 0)
              ^
<stdin>:16:39: note: scanning from here
 %8 = trunc <32 x i32> %7 to <32 x i1>
                                      ^
<stdin>:29:2: note: possible intended match here
 %14 = call <32 x i1> @llvm.vector.insert.v32i1.v4i1(<32 x i1> %13, <4 x i1> zeroinitializer, i64 16)
 ^

Input file: <stdin>
Check file: /var/lib/buildbot/workers/suse-gary-m68k-cross/clang-m68k-linux-cross/llvm/llvm/test/Transforms/SLPVectorizer/X86/revec-SplitVectorize.ll

-dump-input=help explains the following input dump.

Input was:
<<<<<<
           .
           .
           .
          11:  %3 = call <32 x i32> @llvm.vector.insert.v32i32.v4i32(<32 x i32> %2, <4 x i32> zeroinitializer, i64 12) 
          12:  %4 = call <32 x i32> @llvm.vector.insert.v32i32.v4i32(<32 x i32> %3, <4 x i32> zeroinitializer, i64 16) 
          13:  %5 = call <32 x i32> @llvm.vector.insert.v32i32.v4i32(<32 x i32> %4, <4 x i32> zeroinitializer, i64 20) 
          14:  %6 = call <32 x i32> @llvm.vector.insert.v32i32.v4i32(<32 x i32> %5, <4 x i32> zeroinitializer, i64 24) 
          15:  %7 = call <32 x i32> @llvm.vector.insert.v32i32.v4i32(<32 x i32> %6, <4 x i32> zeroinitializer, i64 28) 
          16:  %8 = trunc <32 x i32> %7 to <32 x i1> 
next:16'0                                           X error: no match found
          17:  br label %vector.body 
next:16'0     ~~~~~~~~~~~~~~~~~~~~~~~
          18:  
next:16'0     ~
          19: vector.body: ; preds = %vector.body, %entry 
next:16'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
          20:  %9 = phi <32 x i1> [ %8, %entry ], [ %18, %vector.body ] 
next:16'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
          21:  %narrow = select <4 x i1> zeroinitializer, <4 x i1> zeroinitializer, <4 x i1> zeroinitializer 
next:16'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
           .
           .
           .
          24:  %narrow68 = select <4 x i1> zeroinitializer, <4 x i1> zeroinitializer, <4 x i1> zeroinitializer 
next:16'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
...

@llvm-ci
Copy link
Collaborator

llvm-ci commented Apr 11, 2025

LLVM Buildbot has detected a new failure on builder ml-opt-rel-x86-64 running on ml-opt-rel-x86-64-b1 while building llvm at step 6 "test-build-unified-tree-check-all".

Full details are available at: https://lab.llvm.org/buildbot/#/builders/185/builds/16515

Here is the relevant piece of the build log for the reference
Step 6 (test-build-unified-tree-check-all) failure: test (failure)
******************** TEST 'LLVM :: Transforms/SLPVectorizer/X86/revec-SplitVectorize.ll' FAILED ********************
Exit Code: 1

Command Output (stderr):
--
/b/ml-opt-rel-x86-64-b1/build/bin/opt -mtriple=x86_64-unknown-linux-gnu -mattr=+avx -passes=slp-vectorizer -S -slp-revec < /b/ml-opt-rel-x86-64-b1/llvm-project/llvm/test/Transforms/SLPVectorizer/X86/revec-SplitVectorize.ll | /b/ml-opt-rel-x86-64-b1/build/bin/FileCheck /b/ml-opt-rel-x86-64-b1/llvm-project/llvm/test/Transforms/SLPVectorizer/X86/revec-SplitVectorize.ll # RUN: at line 2
+ /b/ml-opt-rel-x86-64-b1/build/bin/opt -mtriple=x86_64-unknown-linux-gnu -mattr=+avx -passes=slp-vectorizer -S -slp-revec
+ /b/ml-opt-rel-x86-64-b1/build/bin/FileCheck /b/ml-opt-rel-x86-64-b1/llvm-project/llvm/test/Transforms/SLPVectorizer/X86/revec-SplitVectorize.ll
/b/ml-opt-rel-x86-64-b1/llvm-project/llvm/test/Transforms/SLPVectorizer/X86/revec-SplitVectorize.ll:16:15: error: CHECK-NEXT: expected string not found in input
; CHECK-NEXT: [[TMP9:%.*]] = call <16 x i1> @llvm.vector.insert.v16i1.v4i1(<16 x i1> poison, <4 x i1> zeroinitializer, i64 0)
              ^
<stdin>:16:39: note: scanning from here
 %8 = trunc <32 x i32> %7 to <32 x i1>
                                      ^
<stdin>:29:2: note: possible intended match here
 %14 = call <32 x i1> @llvm.vector.insert.v32i1.v4i1(<32 x i1> %13, <4 x i1> zeroinitializer, i64 16)
 ^

Input file: <stdin>
Check file: /b/ml-opt-rel-x86-64-b1/llvm-project/llvm/test/Transforms/SLPVectorizer/X86/revec-SplitVectorize.ll

-dump-input=help explains the following input dump.

Input was:
<<<<<<
           .
           .
           .
          11:  %3 = call <32 x i32> @llvm.vector.insert.v32i32.v4i32(<32 x i32> %2, <4 x i32> zeroinitializer, i64 12) 
          12:  %4 = call <32 x i32> @llvm.vector.insert.v32i32.v4i32(<32 x i32> %3, <4 x i32> zeroinitializer, i64 16) 
          13:  %5 = call <32 x i32> @llvm.vector.insert.v32i32.v4i32(<32 x i32> %4, <4 x i32> zeroinitializer, i64 20) 
          14:  %6 = call <32 x i32> @llvm.vector.insert.v32i32.v4i32(<32 x i32> %5, <4 x i32> zeroinitializer, i64 24) 
          15:  %7 = call <32 x i32> @llvm.vector.insert.v32i32.v4i32(<32 x i32> %6, <4 x i32> zeroinitializer, i64 28) 
          16:  %8 = trunc <32 x i32> %7 to <32 x i1> 
next:16'0                                           X error: no match found
          17:  br label %vector.body 
next:16'0     ~~~~~~~~~~~~~~~~~~~~~~~
          18:  
next:16'0     ~
          19: vector.body: ; preds = %vector.body, %entry 
next:16'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
          20:  %9 = phi <32 x i1> [ %8, %entry ], [ %18, %vector.body ] 
next:16'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
          21:  %narrow = select <4 x i1> zeroinitializer, <4 x i1> zeroinitializer, <4 x i1> zeroinitializer 
next:16'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
           .
           .
           .
          24:  %narrow68 = select <4 x i1> zeroinitializer, <4 x i1> zeroinitializer, <4 x i1> zeroinitializer 
next:16'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
...

@llvm-ci
Copy link
Collaborator

llvm-ci commented Apr 11, 2025

LLVM Buildbot has detected a new failure on builder ml-opt-dev-x86-64 running on ml-opt-dev-x86-64-b1 while building llvm at step 6 "test-build-unified-tree-check-all".

Full details are available at: https://lab.llvm.org/buildbot/#/builders/137/builds/16765

Here is the relevant piece of the build log for the reference
Step 6 (test-build-unified-tree-check-all) failure: test (failure)
******************** TEST 'LLVM :: Transforms/SLPVectorizer/X86/revec-SplitVectorize.ll' FAILED ********************
Exit Code: 1

Command Output (stderr):
--
/b/ml-opt-dev-x86-64-b1/build/bin/opt -mtriple=x86_64-unknown-linux-gnu -mattr=+avx -passes=slp-vectorizer -S -slp-revec < /b/ml-opt-dev-x86-64-b1/llvm-project/llvm/test/Transforms/SLPVectorizer/X86/revec-SplitVectorize.ll | /b/ml-opt-dev-x86-64-b1/build/bin/FileCheck /b/ml-opt-dev-x86-64-b1/llvm-project/llvm/test/Transforms/SLPVectorizer/X86/revec-SplitVectorize.ll # RUN: at line 2
+ /b/ml-opt-dev-x86-64-b1/build/bin/opt -mtriple=x86_64-unknown-linux-gnu -mattr=+avx -passes=slp-vectorizer -S -slp-revec
+ /b/ml-opt-dev-x86-64-b1/build/bin/FileCheck /b/ml-opt-dev-x86-64-b1/llvm-project/llvm/test/Transforms/SLPVectorizer/X86/revec-SplitVectorize.ll
/b/ml-opt-dev-x86-64-b1/llvm-project/llvm/test/Transforms/SLPVectorizer/X86/revec-SplitVectorize.ll:16:15: error: CHECK-NEXT: expected string not found in input
; CHECK-NEXT: [[TMP9:%.*]] = call <16 x i1> @llvm.vector.insert.v16i1.v4i1(<16 x i1> poison, <4 x i1> zeroinitializer, i64 0)
              ^
<stdin>:16:39: note: scanning from here
 %8 = trunc <32 x i32> %7 to <32 x i1>
                                      ^
<stdin>:29:2: note: possible intended match here
 %14 = call <32 x i1> @llvm.vector.insert.v32i1.v4i1(<32 x i1> %13, <4 x i1> zeroinitializer, i64 16)
 ^

Input file: <stdin>
Check file: /b/ml-opt-dev-x86-64-b1/llvm-project/llvm/test/Transforms/SLPVectorizer/X86/revec-SplitVectorize.ll

-dump-input=help explains the following input dump.

Input was:
<<<<<<
           .
           .
           .
          11:  %3 = call <32 x i32> @llvm.vector.insert.v32i32.v4i32(<32 x i32> %2, <4 x i32> zeroinitializer, i64 12) 
          12:  %4 = call <32 x i32> @llvm.vector.insert.v32i32.v4i32(<32 x i32> %3, <4 x i32> zeroinitializer, i64 16) 
          13:  %5 = call <32 x i32> @llvm.vector.insert.v32i32.v4i32(<32 x i32> %4, <4 x i32> zeroinitializer, i64 20) 
          14:  %6 = call <32 x i32> @llvm.vector.insert.v32i32.v4i32(<32 x i32> %5, <4 x i32> zeroinitializer, i64 24) 
          15:  %7 = call <32 x i32> @llvm.vector.insert.v32i32.v4i32(<32 x i32> %6, <4 x i32> zeroinitializer, i64 28) 
          16:  %8 = trunc <32 x i32> %7 to <32 x i1> 
next:16'0                                           X error: no match found
          17:  br label %vector.body 
next:16'0     ~~~~~~~~~~~~~~~~~~~~~~~
          18:  
next:16'0     ~
          19: vector.body: ; preds = %vector.body, %entry 
next:16'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
          20:  %9 = phi <32 x i1> [ %8, %entry ], [ %18, %vector.body ] 
next:16'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
          21:  %narrow = select <4 x i1> zeroinitializer, <4 x i1> zeroinitializer, <4 x i1> zeroinitializer 
next:16'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
           .
           .
           .
          24:  %narrow68 = select <4 x i1> zeroinitializer, <4 x i1> zeroinitializer, <4 x i1> zeroinitializer 
next:16'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
...

@llvm-ci
Copy link
Collaborator

llvm-ci commented Apr 11, 2025

LLVM Buildbot has detected a new failure on builder ml-opt-devrel-x86-64 running on ml-opt-devrel-x86-64-b1 while building llvm at step 6 "test-build-unified-tree-check-all".

Full details are available at: https://lab.llvm.org/buildbot/#/builders/175/builds/16673

Here is the relevant piece of the build log for the reference
Step 6 (test-build-unified-tree-check-all) failure: test (failure)
******************** TEST 'LLVM :: Transforms/SLPVectorizer/X86/revec-SplitVectorize.ll' FAILED ********************
Exit Code: 1

Command Output (stderr):
--
/b/ml-opt-devrel-x86-64-b1/build/bin/opt -mtriple=x86_64-unknown-linux-gnu -mattr=+avx -passes=slp-vectorizer -S -slp-revec < /b/ml-opt-devrel-x86-64-b1/llvm-project/llvm/test/Transforms/SLPVectorizer/X86/revec-SplitVectorize.ll | /b/ml-opt-devrel-x86-64-b1/build/bin/FileCheck /b/ml-opt-devrel-x86-64-b1/llvm-project/llvm/test/Transforms/SLPVectorizer/X86/revec-SplitVectorize.ll # RUN: at line 2
+ /b/ml-opt-devrel-x86-64-b1/build/bin/FileCheck /b/ml-opt-devrel-x86-64-b1/llvm-project/llvm/test/Transforms/SLPVectorizer/X86/revec-SplitVectorize.ll
+ /b/ml-opt-devrel-x86-64-b1/build/bin/opt -mtriple=x86_64-unknown-linux-gnu -mattr=+avx -passes=slp-vectorizer -S -slp-revec
/b/ml-opt-devrel-x86-64-b1/llvm-project/llvm/test/Transforms/SLPVectorizer/X86/revec-SplitVectorize.ll:16:15: error: CHECK-NEXT: expected string not found in input
; CHECK-NEXT: [[TMP9:%.*]] = call <16 x i1> @llvm.vector.insert.v16i1.v4i1(<16 x i1> poison, <4 x i1> zeroinitializer, i64 0)
              ^
<stdin>:16:39: note: scanning from here
 %8 = trunc <32 x i32> %7 to <32 x i1>
                                      ^
<stdin>:29:2: note: possible intended match here
 %14 = call <32 x i1> @llvm.vector.insert.v32i1.v4i1(<32 x i1> %13, <4 x i1> zeroinitializer, i64 16)
 ^

Input file: <stdin>
Check file: /b/ml-opt-devrel-x86-64-b1/llvm-project/llvm/test/Transforms/SLPVectorizer/X86/revec-SplitVectorize.ll

-dump-input=help explains the following input dump.

Input was:
<<<<<<
           .
           .
           .
          11:  %3 = call <32 x i32> @llvm.vector.insert.v32i32.v4i32(<32 x i32> %2, <4 x i32> zeroinitializer, i64 12) 
          12:  %4 = call <32 x i32> @llvm.vector.insert.v32i32.v4i32(<32 x i32> %3, <4 x i32> zeroinitializer, i64 16) 
          13:  %5 = call <32 x i32> @llvm.vector.insert.v32i32.v4i32(<32 x i32> %4, <4 x i32> zeroinitializer, i64 20) 
          14:  %6 = call <32 x i32> @llvm.vector.insert.v32i32.v4i32(<32 x i32> %5, <4 x i32> zeroinitializer, i64 24) 
          15:  %7 = call <32 x i32> @llvm.vector.insert.v32i32.v4i32(<32 x i32> %6, <4 x i32> zeroinitializer, i64 28) 
          16:  %8 = trunc <32 x i32> %7 to <32 x i1> 
next:16'0                                           X error: no match found
          17:  br label %vector.body 
next:16'0     ~~~~~~~~~~~~~~~~~~~~~~~
          18:  
next:16'0     ~
          19: vector.body: ; preds = %vector.body, %entry 
next:16'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
          20:  %9 = phi <32 x i1> [ %8, %entry ], [ %18, %vector.body ] 
next:16'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
          21:  %narrow = select <4 x i1> zeroinitializer, <4 x i1> zeroinitializer, <4 x i1> zeroinitializer 
next:16'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
           .
           .
           .
          24:  %narrow68 = select <4 x i1> zeroinitializer, <4 x i1> zeroinitializer, <4 x i1> zeroinitializer 
next:16'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
...

@llvm-ci
Copy link
Collaborator

llvm-ci commented Apr 11, 2025

LLVM Buildbot has detected a new failure on builder clang-cmake-x86_64-avx512-linux running on avx512-intel64 while building llvm at step 7 "ninja check 1".

Full details are available at: https://lab.llvm.org/buildbot/#/builders/133/builds/14346

Here is the relevant piece of the build log for the reference
Step 7 (ninja check 1) failure: stage 1 checked (failure)
******************** TEST 'LLVM :: Transforms/SLPVectorizer/X86/revec-SplitVectorize.ll' FAILED ********************
Exit Code: 1

Command Output (stderr):
--
/localdisk2/buildbot/llvm-worker/clang-cmake-x86_64-avx512-linux/stage1/bin/opt -mtriple=x86_64-unknown-linux-gnu -mattr=+avx -passes=slp-vectorizer -S -slp-revec < /localdisk2/buildbot/llvm-worker/clang-cmake-x86_64-avx512-linux/llvm/llvm/test/Transforms/SLPVectorizer/X86/revec-SplitVectorize.ll | /localdisk2/buildbot/llvm-worker/clang-cmake-x86_64-avx512-linux/stage1/bin/FileCheck /localdisk2/buildbot/llvm-worker/clang-cmake-x86_64-avx512-linux/llvm/llvm/test/Transforms/SLPVectorizer/X86/revec-SplitVectorize.ll # RUN: at line 2
+ /localdisk2/buildbot/llvm-worker/clang-cmake-x86_64-avx512-linux/stage1/bin/opt -mtriple=x86_64-unknown-linux-gnu -mattr=+avx -passes=slp-vectorizer -S -slp-revec
+ /localdisk2/buildbot/llvm-worker/clang-cmake-x86_64-avx512-linux/stage1/bin/FileCheck /localdisk2/buildbot/llvm-worker/clang-cmake-x86_64-avx512-linux/llvm/llvm/test/Transforms/SLPVectorizer/X86/revec-SplitVectorize.ll
/localdisk2/buildbot/llvm-worker/clang-cmake-x86_64-avx512-linux/llvm/llvm/test/Transforms/SLPVectorizer/X86/revec-SplitVectorize.ll:16:15: error: CHECK-NEXT: expected string not found in input
; CHECK-NEXT: [[TMP9:%.*]] = call <16 x i1> @llvm.vector.insert.v16i1.v4i1(<16 x i1> poison, <4 x i1> zeroinitializer, i64 0)
              ^
<stdin>:16:39: note: scanning from here
 %8 = trunc <32 x i32> %7 to <32 x i1>
                                      ^
<stdin>:29:2: note: possible intended match here
 %14 = call <32 x i1> @llvm.vector.insert.v32i1.v4i1(<32 x i1> %13, <4 x i1> zeroinitializer, i64 16)
 ^

Input file: <stdin>
Check file: /localdisk2/buildbot/llvm-worker/clang-cmake-x86_64-avx512-linux/llvm/llvm/test/Transforms/SLPVectorizer/X86/revec-SplitVectorize.ll

-dump-input=help explains the following input dump.

Input was:
<<<<<<
           .
           .
           .
          11:  %3 = call <32 x i32> @llvm.vector.insert.v32i32.v4i32(<32 x i32> %2, <4 x i32> zeroinitializer, i64 12) 
          12:  %4 = call <32 x i32> @llvm.vector.insert.v32i32.v4i32(<32 x i32> %3, <4 x i32> zeroinitializer, i64 16) 
          13:  %5 = call <32 x i32> @llvm.vector.insert.v32i32.v4i32(<32 x i32> %4, <4 x i32> zeroinitializer, i64 20) 
          14:  %6 = call <32 x i32> @llvm.vector.insert.v32i32.v4i32(<32 x i32> %5, <4 x i32> zeroinitializer, i64 24) 
          15:  %7 = call <32 x i32> @llvm.vector.insert.v32i32.v4i32(<32 x i32> %6, <4 x i32> zeroinitializer, i64 28) 
          16:  %8 = trunc <32 x i32> %7 to <32 x i1> 
next:16'0                                           X error: no match found
          17:  br label %vector.body 
next:16'0     ~~~~~~~~~~~~~~~~~~~~~~~
          18:  
next:16'0     ~
          19: vector.body: ; preds = %vector.body, %entry 
next:16'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
          20:  %9 = phi <32 x i1> [ %8, %entry ], [ %18, %vector.body ] 
next:16'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
          21:  %narrow = select <4 x i1> zeroinitializer, <4 x i1> zeroinitializer, <4 x i1> zeroinitializer 
next:16'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
           .
           .
           .
          24:  %narrow68 = select <4 x i1> zeroinitializer, <4 x i1> zeroinitializer, <4 x i1> zeroinitializer 
next:16'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
...

@llvm-ci
Copy link
Collaborator

llvm-ci commented Apr 11, 2025

LLVM Buildbot has detected a new failure on builder llvm-nvptx64-nvidia-ubuntu running on as-builder-7 while building llvm at step 6 "test-build-unified-tree-check-llvm".

Full details are available at: https://lab.llvm.org/buildbot/#/builders/160/builds/16151

Here is the relevant piece of the build log for the reference
Step 6 (test-build-unified-tree-check-llvm) failure: test (failure)
******************** TEST 'LLVM :: Transforms/SLPVectorizer/X86/revec-SplitVectorize.ll' FAILED ********************
Exit Code: 1

Command Output (stderr):
--
/home/buildbot/worker/as-builder-7/ramdisk/llvm-nvptx64-nvidia-ubuntu/build/bin/opt -mtriple=x86_64-unknown-linux-gnu -mattr=+avx -passes=slp-vectorizer -S -slp-revec < /home/buildbot/worker/as-builder-7/ramdisk/llvm-nvptx64-nvidia-ubuntu/llvm-project/llvm/test/Transforms/SLPVectorizer/X86/revec-SplitVectorize.ll | /home/buildbot/worker/as-builder-7/ramdisk/llvm-nvptx64-nvidia-ubuntu/build/bin/FileCheck /home/buildbot/worker/as-builder-7/ramdisk/llvm-nvptx64-nvidia-ubuntu/llvm-project/llvm/test/Transforms/SLPVectorizer/X86/revec-SplitVectorize.ll # RUN: at line 2
+ /home/buildbot/worker/as-builder-7/ramdisk/llvm-nvptx64-nvidia-ubuntu/build/bin/FileCheck /home/buildbot/worker/as-builder-7/ramdisk/llvm-nvptx64-nvidia-ubuntu/llvm-project/llvm/test/Transforms/SLPVectorizer/X86/revec-SplitVectorize.ll
+ /home/buildbot/worker/as-builder-7/ramdisk/llvm-nvptx64-nvidia-ubuntu/build/bin/opt -mtriple=x86_64-unknown-linux-gnu -mattr=+avx -passes=slp-vectorizer -S -slp-revec
/home/buildbot/worker/as-builder-7/ramdisk/llvm-nvptx64-nvidia-ubuntu/llvm-project/llvm/test/Transforms/SLPVectorizer/X86/revec-SplitVectorize.ll:16:15: error: CHECK-NEXT: expected string not found in input
; CHECK-NEXT: [[TMP9:%.*]] = call <16 x i1> @llvm.vector.insert.v16i1.v4i1(<16 x i1> poison, <4 x i1> zeroinitializer, i64 0)
              ^
<stdin>:16:39: note: scanning from here
 %8 = trunc <32 x i32> %7 to <32 x i1>
                                      ^
<stdin>:29:2: note: possible intended match here
 %14 = call <32 x i1> @llvm.vector.insert.v32i1.v4i1(<32 x i1> %13, <4 x i1> zeroinitializer, i64 16)
 ^

Input file: <stdin>
Check file: /home/buildbot/worker/as-builder-7/ramdisk/llvm-nvptx64-nvidia-ubuntu/llvm-project/llvm/test/Transforms/SLPVectorizer/X86/revec-SplitVectorize.ll

-dump-input=help explains the following input dump.

Input was:
<<<<<<
           .
           .
           .
          11:  %3 = call <32 x i32> @llvm.vector.insert.v32i32.v4i32(<32 x i32> %2, <4 x i32> zeroinitializer, i64 12) 
          12:  %4 = call <32 x i32> @llvm.vector.insert.v32i32.v4i32(<32 x i32> %3, <4 x i32> zeroinitializer, i64 16) 
          13:  %5 = call <32 x i32> @llvm.vector.insert.v32i32.v4i32(<32 x i32> %4, <4 x i32> zeroinitializer, i64 20) 
          14:  %6 = call <32 x i32> @llvm.vector.insert.v32i32.v4i32(<32 x i32> %5, <4 x i32> zeroinitializer, i64 24) 
          15:  %7 = call <32 x i32> @llvm.vector.insert.v32i32.v4i32(<32 x i32> %6, <4 x i32> zeroinitializer, i64 28) 
          16:  %8 = trunc <32 x i32> %7 to <32 x i1> 
next:16'0                                           X error: no match found
          17:  br label %vector.body 
next:16'0     ~~~~~~~~~~~~~~~~~~~~~~~
          18:  
next:16'0     ~
          19: vector.body: ; preds = %vector.body, %entry 
next:16'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
          20:  %9 = phi <32 x i1> [ %8, %entry ], [ %18, %vector.body ] 
next:16'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
          21:  %narrow = select <4 x i1> zeroinitializer, <4 x i1> zeroinitializer, <4 x i1> zeroinitializer 
next:16'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
           .
           .
           .
          24:  %narrow68 = select <4 x i1> zeroinitializer, <4 x i1> zeroinitializer, <4 x i1> zeroinitializer 
next:16'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
...

@llvm-ci
Copy link
Collaborator

llvm-ci commented Apr 11, 2025

LLVM Buildbot has detected a new failure on builder llvm-clang-x86_64-expensive-checks-debian running on gribozavr4 while building llvm at step 6 "test-build-unified-tree-check-all".

Full details are available at: https://lab.llvm.org/buildbot/#/builders/16/builds/17190

Here is the relevant piece of the build log for the reference
Step 6 (test-build-unified-tree-check-all) failure: test (failure)
******************** TEST 'LLVM :: Transforms/SLPVectorizer/X86/revec-SplitVectorize.ll' FAILED ********************
Exit Code: 1

Command Output (stderr):
--
/b/1/llvm-clang-x86_64-expensive-checks-debian/build/bin/opt -mtriple=x86_64-unknown-linux-gnu -mattr=+avx -passes=slp-vectorizer -S -slp-revec < /b/1/llvm-clang-x86_64-expensive-checks-debian/llvm-project/llvm/test/Transforms/SLPVectorizer/X86/revec-SplitVectorize.ll | /b/1/llvm-clang-x86_64-expensive-checks-debian/build/bin/FileCheck /b/1/llvm-clang-x86_64-expensive-checks-debian/llvm-project/llvm/test/Transforms/SLPVectorizer/X86/revec-SplitVectorize.ll # RUN: at line 2
+ /b/1/llvm-clang-x86_64-expensive-checks-debian/build/bin/opt -mtriple=x86_64-unknown-linux-gnu -mattr=+avx -passes=slp-vectorizer -S -slp-revec
+ /b/1/llvm-clang-x86_64-expensive-checks-debian/build/bin/FileCheck /b/1/llvm-clang-x86_64-expensive-checks-debian/llvm-project/llvm/test/Transforms/SLPVectorizer/X86/revec-SplitVectorize.ll
/b/1/llvm-clang-x86_64-expensive-checks-debian/llvm-project/llvm/test/Transforms/SLPVectorizer/X86/revec-SplitVectorize.ll:16:15: error: CHECK-NEXT: expected string not found in input
; CHECK-NEXT: [[TMP9:%.*]] = call <16 x i1> @llvm.vector.insert.v16i1.v4i1(<16 x i1> poison, <4 x i1> zeroinitializer, i64 0)
              ^
<stdin>:16:39: note: scanning from here
 %8 = trunc <32 x i32> %7 to <32 x i1>
                                      ^
<stdin>:29:2: note: possible intended match here
 %14 = call <32 x i1> @llvm.vector.insert.v32i1.v4i1(<32 x i1> %13, <4 x i1> zeroinitializer, i64 16)
 ^

Input file: <stdin>
Check file: /b/1/llvm-clang-x86_64-expensive-checks-debian/llvm-project/llvm/test/Transforms/SLPVectorizer/X86/revec-SplitVectorize.ll

-dump-input=help explains the following input dump.

Input was:
<<<<<<
           .
           .
           .
          11:  %3 = call <32 x i32> @llvm.vector.insert.v32i32.v4i32(<32 x i32> %2, <4 x i32> zeroinitializer, i64 12) 
          12:  %4 = call <32 x i32> @llvm.vector.insert.v32i32.v4i32(<32 x i32> %3, <4 x i32> zeroinitializer, i64 16) 
          13:  %5 = call <32 x i32> @llvm.vector.insert.v32i32.v4i32(<32 x i32> %4, <4 x i32> zeroinitializer, i64 20) 
          14:  %6 = call <32 x i32> @llvm.vector.insert.v32i32.v4i32(<32 x i32> %5, <4 x i32> zeroinitializer, i64 24) 
          15:  %7 = call <32 x i32> @llvm.vector.insert.v32i32.v4i32(<32 x i32> %6, <4 x i32> zeroinitializer, i64 28) 
          16:  %8 = trunc <32 x i32> %7 to <32 x i1> 
next:16'0                                           X error: no match found
          17:  br label %vector.body 
next:16'0     ~~~~~~~~~~~~~~~~~~~~~~~
          18:  
next:16'0     ~
          19: vector.body: ; preds = %vector.body, %entry 
next:16'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
          20:  %9 = phi <32 x i1> [ %8, %entry ], [ %18, %vector.body ] 
next:16'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
          21:  %narrow = select <4 x i1> zeroinitializer, <4 x i1> zeroinitializer, <4 x i1> zeroinitializer 
next:16'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
           .
           .
           .
          24:  %narrow68 = select <4 x i1> zeroinitializer, <4 x i1> zeroinitializer, <4 x i1> zeroinitializer 
next:16'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
...

@llvm-ci
Copy link
Collaborator

llvm-ci commented Apr 11, 2025

LLVM Buildbot has detected a new failure on builder llvm-clang-x86_64-gcc-ubuntu running on sie-linux-worker3 while building llvm at step 6 "test-build-unified-tree-check-all".

Full details are available at: https://lab.llvm.org/buildbot/#/builders/174/builds/16036

Here is the relevant piece of the build log for the reference
Step 6 (test-build-unified-tree-check-all) failure: test (failure)
******************** TEST 'LLVM :: Transforms/SLPVectorizer/X86/revec-SplitVectorize.ll' FAILED ********************
Exit Code: 1

Command Output (stderr):
--
/home/buildbot/buildbot-root/llvm-clang-x86_64-gcc-ubuntu/build/bin/opt -mtriple=x86_64-unknown-linux-gnu -mattr=+avx -passes=slp-vectorizer -S -slp-revec < /home/buildbot/buildbot-root/llvm-clang-x86_64-gcc-ubuntu/llvm-project/llvm/test/Transforms/SLPVectorizer/X86/revec-SplitVectorize.ll | /home/buildbot/buildbot-root/llvm-clang-x86_64-gcc-ubuntu/build/bin/FileCheck /home/buildbot/buildbot-root/llvm-clang-x86_64-gcc-ubuntu/llvm-project/llvm/test/Transforms/SLPVectorizer/X86/revec-SplitVectorize.ll # RUN: at line 2
+ /home/buildbot/buildbot-root/llvm-clang-x86_64-gcc-ubuntu/build/bin/FileCheck /home/buildbot/buildbot-root/llvm-clang-x86_64-gcc-ubuntu/llvm-project/llvm/test/Transforms/SLPVectorizer/X86/revec-SplitVectorize.ll
+ /home/buildbot/buildbot-root/llvm-clang-x86_64-gcc-ubuntu/build/bin/opt -mtriple=x86_64-unknown-linux-gnu -mattr=+avx -passes=slp-vectorizer -S -slp-revec
�[1m/home/buildbot/buildbot-root/llvm-clang-x86_64-gcc-ubuntu/llvm-project/llvm/test/Transforms/SLPVectorizer/X86/revec-SplitVectorize.ll:16:15: �[0m�[0;1;31merror: �[0m�[1mCHECK-NEXT: expected string not found in input
�[0m; CHECK-NEXT: [[TMP9:%.*]] = call <16 x i1> @llvm.vector.insert.v16i1.v4i1(<16 x i1> poison, <4 x i1> zeroinitializer, i64 0)
�[0;1;32m              ^
�[0m�[1m<stdin>:16:39: �[0m�[0;1;30mnote: �[0m�[1mscanning from here
�[0m %8 = trunc <32 x i32> %7 to <32 x i1>
�[0;1;32m                                      ^
�[0m�[1m<stdin>:29:2: �[0m�[0;1;30mnote: �[0m�[1mpossible intended match here
�[0m %14 = call <32 x i1> @llvm.vector.insert.v32i1.v4i1(<32 x i1> %13, <4 x i1> zeroinitializer, i64 16)
�[0;1;32m ^
�[0m
Input file: <stdin>
Check file: /home/buildbot/buildbot-root/llvm-clang-x86_64-gcc-ubuntu/llvm-project/llvm/test/Transforms/SLPVectorizer/X86/revec-SplitVectorize.ll

-dump-input=help explains the following input dump.

Input was:
<<<<<<
�[1m�[0m�[0;1;30m           1: �[0m�[1m�[0;1;46m; ModuleID = '<stdin>' �[0m
�[0;1;30m           2: �[0m�[1m�[0;1;46msource_filename = "<stdin>" �[0m
�[0;1;30m           3: �[0m�[1m�[0;1;46mtarget datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-i128:128-f80:128-n8:16:32:64-S128" �[0m
�[0;1;30m           4: �[0m�[1m�[0;1;46mtarget triple = "x86_64-unknown-linux-gnu" �[0m
�[0;1;30m           5: �[0m�[1m�[0;1;46m �[0m
�[0;1;30m           6: �[0m�[1m�[0;1;46mdefine void �[0m@test(�[0;1;46m) #0 { �[0m
�[0;1;32mlabel:5'0                 ^~~~~~
�[0m�[0;1;32mlabel:5'1                 ^~~~~~
�[0m�[0;1;30m           7: �[0m�[1m�[0;1;46m�[0mentry:�[0;1;46m �[0m
�[0;1;32mnext:6        ^~~~~~
�[0m�[0;1;30m           8: �[0m�[1m�[0;1;46m �[0m%0 = call <32 x i32> @llvm.vector.insert.v32i32.v4i32(<32 x i32> poison, <4 x i32> zeroinitializer, i64 0)�[0;1;46m �[0m
�[0;1;32mnext:7'0       ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
�[0m�[0;1;32mnext:7'1       ^~                                                                                                          captured var "TMP0"
�[0m�[0;1;30m           9: �[0m�[1m�[0;1;46m �[0m%1 = call <32 x i32> @llvm.vector.insert.v32i32.v4i32(<32 x i32> %0, <4 x i32> zeroinitializer, i64 4)�[0;1;46m �[0m
�[0;1;32mnext:8'0       ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
�[0m�[0;1;32mnext:8'1                                                                                                               with "TMP0" equal to "%0"
�[0m�[0;1;32mnext:8'2       ^~                                                                                                      captured var "TMP1"
�[0m�[0;1;30m          10: �[0m�[1m�[0;1;46m �[0m%2 = call <32 x i32> @llvm.vector.insert.v32i32.v4i32(<32 x i32> %1, <4 x i32> zeroinitializer, i64 8)�[0;1;46m �[0m
�[0;1;32mnext:9'0       ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
�[0m�[0;1;32mnext:9'1                                                                                                               with "TMP1" equal to "%1"
�[0m�[0;1;32mnext:9'2       ^~                                                                                                      captured var "TMP2"
�[0m�[0;1;30m          11: �[0m�[1m�[0;1;46m �[0m%3 = call <32 x i32> @llvm.vector.insert.v32i32.v4i32(<32 x i32> %2, <4 x i32> zeroinitializer, i64 12)�[0;1;46m �[0m
�[0;1;32mnext:10'0      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
�[0m�[0;1;32mnext:10'1                                                                                                               with "TMP2" equal to "%2"
�[0m�[0;1;32mnext:10'2      ^~                                                                                                       captured var "TMP3"
...

@llvm-ci
Copy link
Collaborator

llvm-ci commented Apr 11, 2025

LLVM Buildbot has detected a new failure on builder llvm-clang-x86_64-sie-win running on sie-win-worker while building llvm at step 7 "test-build-unified-tree-check-all".

Full details are available at: https://lab.llvm.org/buildbot/#/builders/46/builds/15028

Here is the relevant piece of the build log for the reference
Step 7 (test-build-unified-tree-check-all) failure: test (failure)
******************** TEST 'LLVM :: Transforms/SLPVectorizer/X86/revec-SplitVectorize.ll' FAILED ********************
Exit Code: 1

Command Output (stdout):
--
# RUN: at line 2
z:\b\llvm-clang-x86_64-sie-win\build\bin\opt.exe -mtriple=x86_64-unknown-linux-gnu -mattr=+avx -passes=slp-vectorizer -S -slp-revec < Z:\b\llvm-clang-x86_64-sie-win\llvm-project\llvm\test\Transforms\SLPVectorizer\X86\revec-SplitVectorize.ll | z:\b\llvm-clang-x86_64-sie-win\build\bin\filecheck.exe Z:\b\llvm-clang-x86_64-sie-win\llvm-project\llvm\test\Transforms\SLPVectorizer\X86\revec-SplitVectorize.ll
# executed command: 'z:\b\llvm-clang-x86_64-sie-win\build\bin\opt.exe' -mtriple=x86_64-unknown-linux-gnu -mattr=+avx -passes=slp-vectorizer -S -slp-revec
# executed command: 'z:\b\llvm-clang-x86_64-sie-win\build\bin\filecheck.exe' 'Z:\b\llvm-clang-x86_64-sie-win\llvm-project\llvm\test\Transforms\SLPVectorizer\X86\revec-SplitVectorize.ll'
# .---command stderr------------
# | �[1mZ:\b\llvm-clang-x86_64-sie-win\llvm-project\llvm\test\Transforms\SLPVectorizer\X86\revec-SplitVectorize.ll:16:15: �[0m�[0;1;31merror: �[0m�[1mCHECK-NEXT: expected string not found in input
�[0m# | �[1m�[0m; CHECK-NEXT: [[TMP9:%.*]] = call <16 x i1> @llvm.vector.insert.v16i1.v4i1(<16 x i1> poison, <4 x i1> zeroinitializer, i64 0)
# | �[0;1;32m              ^
�[0m# | �[0;1;32m�[0m�[1m<stdin>:16:39: �[0m�[0;1;30mnote: �[0m�[1mscanning from here
�[0m# | �[1m�[0m %8 = trunc <32 x i32> %7 to <32 x i1>
# | �[0;1;32m                                      ^
�[0m# | �[0;1;32m�[0m�[1m<stdin>:29:2: �[0m�[0;1;30mnote: �[0m�[1mpossible intended match here
�[0m# | �[1m�[0m %14 = call <32 x i1> @llvm.vector.insert.v32i1.v4i1(<32 x i1> %13, <4 x i1> zeroinitializer, i64 16)
# | �[0;1;32m ^
�[0m# | �[0;1;32m�[0m
# | Input file: <stdin>
# | Check file: Z:\b\llvm-clang-x86_64-sie-win\llvm-project\llvm\test\Transforms\SLPVectorizer\X86\revec-SplitVectorize.ll
# | 
# | -dump-input=help explains the following input dump.
# | 
# | Input was:
# | <<<<<<
# | �[1m�[0m�[0;1;30m           1: �[0m�[1m�[0;1;46m; ModuleID = '<stdin>' �[0m
# | �[0;1;30m           2: �[0m�[1m�[0;1;46msource_filename = "<stdin>" �[0m
# | �[0;1;30m           3: �[0m�[1m�[0;1;46mtarget datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-i128:128-f80:128-n8:16:32:64-S128" �[0m
# | �[0;1;30m           4: �[0m�[1m�[0;1;46mtarget triple = "x86_64-unknown-linux-gnu" �[0m
# | �[0;1;30m           5: �[0m�[1m�[0;1;46m �[0m
# | �[0;1;30m           6: �[0m�[1m�[0;1;46mdefine void �[0m@test(�[0;1;46m) #0 { �[0m
# | �[0;1;32mlabel:5'0                 ^~~~~~
�[0m# | �[0;1;32m�[0m�[0;1;32mlabel:5'1                 ^~~~~~
�[0m# | �[0;1;32m�[0m�[0;1;30m           7: �[0m�[1m�[0;1;46m�[0mentry:�[0;1;46m �[0m
# | �[0;1;32mnext:6        ^~~~~~
�[0m# | �[0;1;32m�[0m�[0;1;30m           8: �[0m�[1m�[0;1;46m �[0m%0 = call <32 x i32> @llvm.vector.insert.v32i32.v4i32(<32 x i32> poison, <4 x i32> zeroinitializer, i64 0)�[0;1;46m �[0m
# | �[0;1;32mnext:7'0       ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
�[0m# | �[0;1;32m�[0m�[0;1;32mnext:7'1       ^~                                                                                                          captured var "TMP0"
�[0m# | �[0;1;32m�[0m�[0;1;30m           9: �[0m�[1m�[0;1;46m �[0m%1 = call <32 x i32> @llvm.vector.insert.v32i32.v4i32(<32 x i32> %0, <4 x i32> zeroinitializer, i64 4)�[0;1;46m �[0m
# | �[0;1;32mnext:8'0       ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
�[0m# | �[0;1;32m�[0m�[0;1;32mnext:8'1                                                                                                               with "TMP0" equal to "%0"
�[0m# | �[0;1;32m�[0m�[0;1;32mnext:8'2       ^~                                                                                                      captured var "TMP1"
�[0m# | �[0;1;32m�[0m�[0;1;30m          10: �[0m�[1m�[0;1;46m �[0m%2 = call <32 x i32> @llvm.vector.insert.v32i32.v4i32(<32 x i32> %1, <4 x i32> zeroinitializer, i64 8)�[0;1;46m �[0m
# | �[0;1;32mnext:9'0       ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
�[0m# | �[0;1;32m�[0m�[0;1;32mnext:9'1                                                                                                               with "TMP1" equal to "%1"
�[0m# | �[0;1;32m�[0m�[0;1;32mnext:9'2       ^~                                                                                                      captured var "TMP2"
�[0m# | �[0;1;32m�[0m�[0;1;30m          11: �[0m�[1m�[0;1;46m �[0m%3 = call <32 x i32> @llvm.vector.insert.v32i32.v4i32(<32 x i32> %2, <4 x i32> zeroinitializer, i64 12)�[0;1;46m �[0m
# | �[0;1;32mnext:10'0      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
...

@llvm-ci
Copy link
Collaborator

llvm-ci commented Apr 11, 2025

LLVM Buildbot has detected a new failure on builder llvm-nvptx-nvidia-ubuntu running on as-builder-7 while building llvm at step 6 "test-build-unified-tree-check-llvm".

Full details are available at: https://lab.llvm.org/buildbot/#/builders/180/builds/16140

Here is the relevant piece of the build log for the reference
Step 6 (test-build-unified-tree-check-llvm) failure: test (failure)
******************** TEST 'LLVM :: Transforms/SLPVectorizer/X86/revec-SplitVectorize.ll' FAILED ********************
Exit Code: 1

Command Output (stderr):
--
/home/buildbot/worker/as-builder-7/ramdisk/llvm-nvptx-nvidia-ubuntu/build/bin/opt -mtriple=x86_64-unknown-linux-gnu -mattr=+avx -passes=slp-vectorizer -S -slp-revec < /home/buildbot/worker/as-builder-7/ramdisk/llvm-nvptx-nvidia-ubuntu/llvm-project/llvm/test/Transforms/SLPVectorizer/X86/revec-SplitVectorize.ll | /home/buildbot/worker/as-builder-7/ramdisk/llvm-nvptx-nvidia-ubuntu/build/bin/FileCheck /home/buildbot/worker/as-builder-7/ramdisk/llvm-nvptx-nvidia-ubuntu/llvm-project/llvm/test/Transforms/SLPVectorizer/X86/revec-SplitVectorize.ll # RUN: at line 2
+ /home/buildbot/worker/as-builder-7/ramdisk/llvm-nvptx-nvidia-ubuntu/build/bin/opt -mtriple=x86_64-unknown-linux-gnu -mattr=+avx -passes=slp-vectorizer -S -slp-revec
+ /home/buildbot/worker/as-builder-7/ramdisk/llvm-nvptx-nvidia-ubuntu/build/bin/FileCheck /home/buildbot/worker/as-builder-7/ramdisk/llvm-nvptx-nvidia-ubuntu/llvm-project/llvm/test/Transforms/SLPVectorizer/X86/revec-SplitVectorize.ll
/home/buildbot/worker/as-builder-7/ramdisk/llvm-nvptx-nvidia-ubuntu/llvm-project/llvm/test/Transforms/SLPVectorizer/X86/revec-SplitVectorize.ll:16:15: error: CHECK-NEXT: expected string not found in input
; CHECK-NEXT: [[TMP9:%.*]] = call <16 x i1> @llvm.vector.insert.v16i1.v4i1(<16 x i1> poison, <4 x i1> zeroinitializer, i64 0)
              ^
<stdin>:16:39: note: scanning from here
 %8 = trunc <32 x i32> %7 to <32 x i1>
                                      ^
<stdin>:29:2: note: possible intended match here
 %14 = call <32 x i1> @llvm.vector.insert.v32i1.v4i1(<32 x i1> %13, <4 x i1> zeroinitializer, i64 16)
 ^

Input file: <stdin>
Check file: /home/buildbot/worker/as-builder-7/ramdisk/llvm-nvptx-nvidia-ubuntu/llvm-project/llvm/test/Transforms/SLPVectorizer/X86/revec-SplitVectorize.ll

-dump-input=help explains the following input dump.

Input was:
<<<<<<
           .
           .
           .
          11:  %3 = call <32 x i32> @llvm.vector.insert.v32i32.v4i32(<32 x i32> %2, <4 x i32> zeroinitializer, i64 12) 
          12:  %4 = call <32 x i32> @llvm.vector.insert.v32i32.v4i32(<32 x i32> %3, <4 x i32> zeroinitializer, i64 16) 
          13:  %5 = call <32 x i32> @llvm.vector.insert.v32i32.v4i32(<32 x i32> %4, <4 x i32> zeroinitializer, i64 20) 
          14:  %6 = call <32 x i32> @llvm.vector.insert.v32i32.v4i32(<32 x i32> %5, <4 x i32> zeroinitializer, i64 24) 
          15:  %7 = call <32 x i32> @llvm.vector.insert.v32i32.v4i32(<32 x i32> %6, <4 x i32> zeroinitializer, i64 28) 
          16:  %8 = trunc <32 x i32> %7 to <32 x i1> 
next:16'0                                           X error: no match found
          17:  br label %vector.body 
next:16'0     ~~~~~~~~~~~~~~~~~~~~~~~
          18:  
next:16'0     ~
          19: vector.body: ; preds = %vector.body, %entry 
next:16'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
          20:  %9 = phi <32 x i1> [ %8, %entry ], [ %18, %vector.body ] 
next:16'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
          21:  %narrow = select <4 x i1> zeroinitializer, <4 x i1> zeroinitializer, <4 x i1> zeroinitializer 
next:16'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
           .
           .
           .
          24:  %narrow68 = select <4 x i1> zeroinitializer, <4 x i1> zeroinitializer, <4 x i1> zeroinitializer 
next:16'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
...

@llvm-ci
Copy link
Collaborator

llvm-ci commented Apr 11, 2025

LLVM Buildbot has detected a new failure on builder clang-debian-cpp20 running on clang-debian-cpp20 while building llvm at step 6 "test-build-unified-tree-check-all".

Full details are available at: https://lab.llvm.org/buildbot/#/builders/108/builds/11520

Here is the relevant piece of the build log for the reference
Step 6 (test-build-unified-tree-check-all) failure: test (failure)
******************** TEST 'LLVM :: Transforms/SLPVectorizer/X86/revec-SplitVectorize.ll' FAILED ********************
Exit Code: 1

Command Output (stderr):
--
/vol/worker/clang-debian-cpp20/clang-debian-cpp20/build/bin/opt -mtriple=x86_64-unknown-linux-gnu -mattr=+avx -passes=slp-vectorizer -S -slp-revec < /vol/worker/clang-debian-cpp20/clang-debian-cpp20/llvm-project/llvm/test/Transforms/SLPVectorizer/X86/revec-SplitVectorize.ll | /vol/worker/clang-debian-cpp20/clang-debian-cpp20/build/bin/FileCheck /vol/worker/clang-debian-cpp20/clang-debian-cpp20/llvm-project/llvm/test/Transforms/SLPVectorizer/X86/revec-SplitVectorize.ll # RUN: at line 2
+ /vol/worker/clang-debian-cpp20/clang-debian-cpp20/build/bin/opt -mtriple=x86_64-unknown-linux-gnu -mattr=+avx -passes=slp-vectorizer -S -slp-revec
+ /vol/worker/clang-debian-cpp20/clang-debian-cpp20/build/bin/FileCheck /vol/worker/clang-debian-cpp20/clang-debian-cpp20/llvm-project/llvm/test/Transforms/SLPVectorizer/X86/revec-SplitVectorize.ll
/vol/worker/clang-debian-cpp20/clang-debian-cpp20/llvm-project/llvm/test/Transforms/SLPVectorizer/X86/revec-SplitVectorize.ll:16:15: error: CHECK-NEXT: expected string not found in input
; CHECK-NEXT: [[TMP9:%.*]] = call <16 x i1> @llvm.vector.insert.v16i1.v4i1(<16 x i1> poison, <4 x i1> zeroinitializer, i64 0)
              ^
<stdin>:16:39: note: scanning from here
 %8 = trunc <32 x i32> %7 to <32 x i1>
                                      ^
<stdin>:29:2: note: possible intended match here
 %14 = call <32 x i1> @llvm.vector.insert.v32i1.v4i1(<32 x i1> %13, <4 x i1> zeroinitializer, i64 16)
 ^

Input file: <stdin>
Check file: /vol/worker/clang-debian-cpp20/clang-debian-cpp20/llvm-project/llvm/test/Transforms/SLPVectorizer/X86/revec-SplitVectorize.ll

-dump-input=help explains the following input dump.

Input was:
<<<<<<
           .
           .
           .
          11:  %3 = call <32 x i32> @llvm.vector.insert.v32i32.v4i32(<32 x i32> %2, <4 x i32> zeroinitializer, i64 12) 
          12:  %4 = call <32 x i32> @llvm.vector.insert.v32i32.v4i32(<32 x i32> %3, <4 x i32> zeroinitializer, i64 16) 
          13:  %5 = call <32 x i32> @llvm.vector.insert.v32i32.v4i32(<32 x i32> %4, <4 x i32> zeroinitializer, i64 20) 
          14:  %6 = call <32 x i32> @llvm.vector.insert.v32i32.v4i32(<32 x i32> %5, <4 x i32> zeroinitializer, i64 24) 
          15:  %7 = call <32 x i32> @llvm.vector.insert.v32i32.v4i32(<32 x i32> %6, <4 x i32> zeroinitializer, i64 28) 
          16:  %8 = trunc <32 x i32> %7 to <32 x i1> 
next:16'0                                           X error: no match found
          17:  br label %vector.body 
next:16'0     ~~~~~~~~~~~~~~~~~~~~~~~
          18:  
next:16'0     ~
          19: vector.body: ; preds = %vector.body, %entry 
next:16'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
          20:  %9 = phi <32 x i1> [ %8, %entry ], [ %18, %vector.body ] 
next:16'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
          21:  %narrow = select <4 x i1> zeroinitializer, <4 x i1> zeroinitializer, <4 x i1> zeroinitializer 
next:16'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
           .
           .
           .
          24:  %narrow68 = select <4 x i1> zeroinitializer, <4 x i1> zeroinitializer, <4 x i1> zeroinitializer 
next:16'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
...

@llvm-ci
Copy link
Collaborator

llvm-ci commented Apr 11, 2025

LLVM Buildbot has detected a new failure on builder clang-x86_64-debian-fast running on gribozavr4 while building llvm at step 6 "test-build-unified-tree-check-all".

Full details are available at: https://lab.llvm.org/buildbot/#/builders/56/builds/23187

Here is the relevant piece of the build log for the reference
Step 6 (test-build-unified-tree-check-all) failure: test (failure)
******************** TEST 'LLVM :: Transforms/SLPVectorizer/X86/revec-SplitVectorize.ll' FAILED ********************
Exit Code: 1

Command Output (stderr):
--
/b/1/clang-x86_64-debian-fast/llvm.obj/bin/opt -mtriple=x86_64-unknown-linux-gnu -mattr=+avx -passes=slp-vectorizer -S -slp-revec < /b/1/clang-x86_64-debian-fast/llvm.src/llvm/test/Transforms/SLPVectorizer/X86/revec-SplitVectorize.ll | /b/1/clang-x86_64-debian-fast/llvm.obj/bin/FileCheck /b/1/clang-x86_64-debian-fast/llvm.src/llvm/test/Transforms/SLPVectorizer/X86/revec-SplitVectorize.ll # RUN: at line 2
+ /b/1/clang-x86_64-debian-fast/llvm.obj/bin/FileCheck /b/1/clang-x86_64-debian-fast/llvm.src/llvm/test/Transforms/SLPVectorizer/X86/revec-SplitVectorize.ll
+ /b/1/clang-x86_64-debian-fast/llvm.obj/bin/opt -mtriple=x86_64-unknown-linux-gnu -mattr=+avx -passes=slp-vectorizer -S -slp-revec
/b/1/clang-x86_64-debian-fast/llvm.src/llvm/test/Transforms/SLPVectorizer/X86/revec-SplitVectorize.ll:16:15: error: CHECK-NEXT: expected string not found in input
; CHECK-NEXT: [[TMP9:%.*]] = call <16 x i1> @llvm.vector.insert.v16i1.v4i1(<16 x i1> poison, <4 x i1> zeroinitializer, i64 0)
              ^
<stdin>:16:39: note: scanning from here
 %8 = trunc <32 x i32> %7 to <32 x i1>
                                      ^
<stdin>:29:2: note: possible intended match here
 %14 = call <32 x i1> @llvm.vector.insert.v32i1.v4i1(<32 x i1> %13, <4 x i1> zeroinitializer, i64 16)
 ^

Input file: <stdin>
Check file: /b/1/clang-x86_64-debian-fast/llvm.src/llvm/test/Transforms/SLPVectorizer/X86/revec-SplitVectorize.ll

-dump-input=help explains the following input dump.

Input was:
<<<<<<
           .
           .
           .
          11:  %3 = call <32 x i32> @llvm.vector.insert.v32i32.v4i32(<32 x i32> %2, <4 x i32> zeroinitializer, i64 12) 
          12:  %4 = call <32 x i32> @llvm.vector.insert.v32i32.v4i32(<32 x i32> %3, <4 x i32> zeroinitializer, i64 16) 
          13:  %5 = call <32 x i32> @llvm.vector.insert.v32i32.v4i32(<32 x i32> %4, <4 x i32> zeroinitializer, i64 20) 
          14:  %6 = call <32 x i32> @llvm.vector.insert.v32i32.v4i32(<32 x i32> %5, <4 x i32> zeroinitializer, i64 24) 
          15:  %7 = call <32 x i32> @llvm.vector.insert.v32i32.v4i32(<32 x i32> %6, <4 x i32> zeroinitializer, i64 28) 
          16:  %8 = trunc <32 x i32> %7 to <32 x i1> 
next:16'0                                           X error: no match found
          17:  br label %vector.body 
next:16'0     ~~~~~~~~~~~~~~~~~~~~~~~
          18:  
next:16'0     ~
          19: vector.body: ; preds = %vector.body, %entry 
next:16'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
          20:  %9 = phi <32 x i1> [ %8, %entry ], [ %18, %vector.body ] 
next:16'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
          21:  %narrow = select <4 x i1> zeroinitializer, <4 x i1> zeroinitializer, <4 x i1> zeroinitializer 
next:16'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
           .
           .
           .
          24:  %narrow68 = select <4 x i1> zeroinitializer, <4 x i1> zeroinitializer, <4 x i1> zeroinitializer 
next:16'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
...

@llvm-ci
Copy link
Collaborator

llvm-ci commented Apr 11, 2025

LLVM Buildbot has detected a new failure on builder lld-x86_64-ubuntu-fast running on as-builder-4 while building llvm at step 6 "test-build-unified-tree-check-all".

Full details are available at: https://lab.llvm.org/buildbot/#/builders/33/builds/14702

Here is the relevant piece of the build log for the reference
Step 6 (test-build-unified-tree-check-all) failure: test (failure)
******************** TEST 'LLVM :: Transforms/SLPVectorizer/X86/revec-SplitVectorize.ll' FAILED ********************
Exit Code: 1

Command Output (stderr):
--
/home/buildbot/worker/as-builder-4/ramdisk/lld-x86_64/build/bin/opt -mtriple=x86_64-unknown-linux-gnu -mattr=+avx -passes=slp-vectorizer -S -slp-revec < /home/buildbot/worker/as-builder-4/ramdisk/lld-x86_64/llvm-project/llvm/test/Transforms/SLPVectorizer/X86/revec-SplitVectorize.ll | /home/buildbot/worker/as-builder-4/ramdisk/lld-x86_64/build/bin/FileCheck /home/buildbot/worker/as-builder-4/ramdisk/lld-x86_64/llvm-project/llvm/test/Transforms/SLPVectorizer/X86/revec-SplitVectorize.ll # RUN: at line 2
+ /home/buildbot/worker/as-builder-4/ramdisk/lld-x86_64/build/bin/FileCheck /home/buildbot/worker/as-builder-4/ramdisk/lld-x86_64/llvm-project/llvm/test/Transforms/SLPVectorizer/X86/revec-SplitVectorize.ll
+ /home/buildbot/worker/as-builder-4/ramdisk/lld-x86_64/build/bin/opt -mtriple=x86_64-unknown-linux-gnu -mattr=+avx -passes=slp-vectorizer -S -slp-revec
/home/buildbot/worker/as-builder-4/ramdisk/lld-x86_64/llvm-project/llvm/test/Transforms/SLPVectorizer/X86/revec-SplitVectorize.ll:16:15: error: CHECK-NEXT: expected string not found in input
; CHECK-NEXT: [[TMP9:%.*]] = call <16 x i1> @llvm.vector.insert.v16i1.v4i1(<16 x i1> poison, <4 x i1> zeroinitializer, i64 0)
              ^
<stdin>:16:39: note: scanning from here
 %8 = trunc <32 x i32> %7 to <32 x i1>
                                      ^
<stdin>:29:2: note: possible intended match here
 %14 = call <32 x i1> @llvm.vector.insert.v32i1.v4i1(<32 x i1> %13, <4 x i1> zeroinitializer, i64 16)
 ^

Input file: <stdin>
Check file: /home/buildbot/worker/as-builder-4/ramdisk/lld-x86_64/llvm-project/llvm/test/Transforms/SLPVectorizer/X86/revec-SplitVectorize.ll

-dump-input=help explains the following input dump.

Input was:
<<<<<<
           .
           .
           .
          11:  %3 = call <32 x i32> @llvm.vector.insert.v32i32.v4i32(<32 x i32> %2, <4 x i32> zeroinitializer, i64 12) 
          12:  %4 = call <32 x i32> @llvm.vector.insert.v32i32.v4i32(<32 x i32> %3, <4 x i32> zeroinitializer, i64 16) 
          13:  %5 = call <32 x i32> @llvm.vector.insert.v32i32.v4i32(<32 x i32> %4, <4 x i32> zeroinitializer, i64 20) 
          14:  %6 = call <32 x i32> @llvm.vector.insert.v32i32.v4i32(<32 x i32> %5, <4 x i32> zeroinitializer, i64 24) 
          15:  %7 = call <32 x i32> @llvm.vector.insert.v32i32.v4i32(<32 x i32> %6, <4 x i32> zeroinitializer, i64 28) 
          16:  %8 = trunc <32 x i32> %7 to <32 x i1> 
next:16'0                                           X error: no match found
          17:  br label %vector.body 
next:16'0     ~~~~~~~~~~~~~~~~~~~~~~~
          18:  
next:16'0     ~
          19: vector.body: ; preds = %vector.body, %entry 
next:16'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
          20:  %9 = phi <32 x i1> [ %8, %entry ], [ %18, %vector.body ] 
next:16'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
          21:  %narrow = select <4 x i1> zeroinitializer, <4 x i1> zeroinitializer, <4 x i1> zeroinitializer 
next:16'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
           .
           .
           .
          24:  %narrow68 = select <4 x i1> zeroinitializer, <4 x i1> zeroinitializer, <4 x i1> zeroinitializer 
next:16'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
...

@mikaelholmen
Copy link
Collaborator

@HanKuanChen and @alexey-bataev :
Quite a lot of build bot failures for the new revec-SplitVectorize.ll testcase with this patch.

@HanKuanChen
Copy link
Contributor Author

I sent an update already.

@mikaelholmen
Copy link
Collaborator

Ok, so should be fixed in b99a2b6 then I suppose.

@llvm-ci
Copy link
Collaborator

llvm-ci commented Apr 11, 2025

LLVM Buildbot has detected a new failure on builder premerge-monolithic-linux running on premerge-linux-1 while building llvm at step 7 "test-build-unified-tree-check-all".

Full details are available at: https://lab.llvm.org/buildbot/#/builders/153/builds/28524

Here is the relevant piece of the build log for the reference
Step 7 (test-build-unified-tree-check-all) failure: test (failure)
******************** TEST 'LLVM :: Transforms/SLPVectorizer/X86/revec-SplitVectorize.ll' FAILED ********************
Exit Code: 1

Command Output (stderr):
--
/build/buildbot/premerge-monolithic-linux/build/bin/opt -mtriple=x86_64-unknown-linux-gnu -mattr=+avx -passes=slp-vectorizer -S -slp-revec < /build/buildbot/premerge-monolithic-linux/llvm-project/llvm/test/Transforms/SLPVectorizer/X86/revec-SplitVectorize.ll | /build/buildbot/premerge-monolithic-linux/build/bin/FileCheck /build/buildbot/premerge-monolithic-linux/llvm-project/llvm/test/Transforms/SLPVectorizer/X86/revec-SplitVectorize.ll # RUN: at line 2
+ /build/buildbot/premerge-monolithic-linux/build/bin/opt -mtriple=x86_64-unknown-linux-gnu -mattr=+avx -passes=slp-vectorizer -S -slp-revec
+ /build/buildbot/premerge-monolithic-linux/build/bin/FileCheck /build/buildbot/premerge-monolithic-linux/llvm-project/llvm/test/Transforms/SLPVectorizer/X86/revec-SplitVectorize.ll
/build/buildbot/premerge-monolithic-linux/llvm-project/llvm/test/Transforms/SLPVectorizer/X86/revec-SplitVectorize.ll:16:15: error: CHECK-NEXT: expected string not found in input
; CHECK-NEXT: [[TMP9:%.*]] = call <16 x i1> @llvm.vector.insert.v16i1.v4i1(<16 x i1> poison, <4 x i1> zeroinitializer, i64 0)
              ^
<stdin>:16:39: note: scanning from here
 %8 = trunc <32 x i32> %7 to <32 x i1>
                                      ^
<stdin>:29:2: note: possible intended match here
 %14 = call <32 x i1> @llvm.vector.insert.v32i1.v4i1(<32 x i1> %13, <4 x i1> zeroinitializer, i64 16)
 ^

Input file: <stdin>
Check file: /build/buildbot/premerge-monolithic-linux/llvm-project/llvm/test/Transforms/SLPVectorizer/X86/revec-SplitVectorize.ll

-dump-input=help explains the following input dump.

Input was:
<<<<<<
           .
           .
           .
          11:  %3 = call <32 x i32> @llvm.vector.insert.v32i32.v4i32(<32 x i32> %2, <4 x i32> zeroinitializer, i64 12) 
          12:  %4 = call <32 x i32> @llvm.vector.insert.v32i32.v4i32(<32 x i32> %3, <4 x i32> zeroinitializer, i64 16) 
          13:  %5 = call <32 x i32> @llvm.vector.insert.v32i32.v4i32(<32 x i32> %4, <4 x i32> zeroinitializer, i64 20) 
          14:  %6 = call <32 x i32> @llvm.vector.insert.v32i32.v4i32(<32 x i32> %5, <4 x i32> zeroinitializer, i64 24) 
          15:  %7 = call <32 x i32> @llvm.vector.insert.v32i32.v4i32(<32 x i32> %6, <4 x i32> zeroinitializer, i64 28) 
          16:  %8 = trunc <32 x i32> %7 to <32 x i1> 
next:16'0                                           X error: no match found
          17:  br label %vector.body 
next:16'0     ~~~~~~~~~~~~~~~~~~~~~~~
          18:  
next:16'0     ~
          19: vector.body: ; preds = %vector.body, %entry 
next:16'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
          20:  %9 = phi <32 x i1> [ %8, %entry ], [ %18, %vector.body ] 
next:16'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
          21:  %narrow = select <4 x i1> zeroinitializer, <4 x i1> zeroinitializer, <4 x i1> zeroinitializer 
next:16'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
           .
           .
           .
          24:  %narrow68 = select <4 x i1> zeroinitializer, <4 x i1> zeroinitializer, <4 x i1> zeroinitializer 
next:16'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
...

var-const pushed a commit to ldionne/llvm-project that referenced this pull request Apr 17, 2025
…lvm#135310)

When REVEC is enabled, ScalarTy may be a FixedVectorType. Compare its
element type to decide if casting is needed. Also apply mask
transformation accordingly.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

5 participants