https://github.com/llvmbot created 
https://github.com/llvm/llvm-project/pull/156297

Backport 7730ebce8e8fa84db4da04a7d8fe1977ccbf28ff

Requested by: @nikic

>From e2b91fde2aea498001ff429051c3d6feb4592f6b Mon Sep 17 00:00:00 2001
From: Alexey Bataev <a.bat...@outlook.com>
Date: Sun, 31 Aug 2025 10:37:24 -0700
Subject: [PATCH] [SLP]Do not to try to revectorize previously vectorized phis
 in loops

No need to try to revectorize previously vectorized phis in loops, it leads to
a compile time blow-up.

Fixes #155998

(cherry picked from commit 7730ebce8e8fa84db4da04a7d8fe1977ccbf28ff)
---
 .../Transforms/Vectorize/SLPVectorizer.cpp    |   5 +-
 .../SLPVectorizer/X86/revectorize-phis.ll     | 193 ++++++++++++++++++
 2 files changed, 197 insertions(+), 1 deletion(-)
 create mode 100644 llvm/test/Transforms/SLPVectorizer/X86/revectorize-phis.ll

diff --git a/llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp 
b/llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp
index f6610ea5b333f..2d50981690f41 100644
--- a/llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp
+++ b/llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp
@@ -9968,7 +9968,10 @@ BoUpSLP::getScalarsVectorizationLegality(ArrayRef<Value 
*> VL, unsigned Depth,
       }
       SmallPtrSet<Value *, 8> Values(llvm::from_range, E->Scalars);
       if (all_of(VL, [&](Value *V) {
-            return isa<PoisonValue>(V) || Values.contains(V);
+            return isa<PoisonValue>(V) || Values.contains(V) ||
+                   (S.getOpcode() == Instruction::PHI && isa<PHINode>(V) &&
+                    LI->getLoopFor(S.getMainOp()->getParent()) &&
+                    isVectorized(V));
           })) {
         LLVM_DEBUG(dbgs() << "SLP: Gathering due to full overlap.\n");
         return ScalarsVectorizationLegality(S, /*IsLegal=*/false);
diff --git a/llvm/test/Transforms/SLPVectorizer/X86/revectorize-phis.ll 
b/llvm/test/Transforms/SLPVectorizer/X86/revectorize-phis.ll
new file mode 100644
index 0000000000000..9eec3074b5345
--- /dev/null
+++ b/llvm/test/Transforms/SLPVectorizer/X86/revectorize-phis.ll
@@ -0,0 +1,193 @@
+; NOTE: Assertions have been autogenerated by utils/update_test_checks.py 
UTC_ARGS: --version 5
+; RUN: opt -S --passes=slp-vectorizer -mtriple=x86_64-unknown-linux-gnu < %s | 
FileCheck %s
+
+define void @test() {
+; CHECK-LABEL: define void @test() {
+; CHECK-NEXT:  [[BB:.*]]:
+; CHECK-NEXT:    br label %[[BB1:.*]]
+; CHECK:       [[BB1]]:
+; CHECK-NEXT:    [[PHI:%.*]] = phi i64 [ 0, %[[BB]] ], [ [[PHI]], %[[BB31:.*]] 
], [ [[PHI]], %[[BB32:.*]] ], [ [[PHI]], %[[BB33:.*]] ], [ [[PHI]], 
%[[BB36:.*]] ], [ [[PHI]], %[[BB39:.*]] ], [ [[PHI]], %[[BB40:.*]] ], [ 
[[PHI]], %[[BB41:.*]] ], [ [[PHI]], %[[BB42:.*]] ], [ [[PHI]], %[[BB43:.*]] ], 
[ 0, %[[BB45:.*]] ], [ [[PHI]], %[[BB21:.*]] ], [ [[PHI]], %[[BB22:.*]] ], [ 
[[PHI]], %[[BB23:.*]] ], [ [[PHI]], %[[BB24:.*]] ], [ [[PHI]], %[[BB25:.*]] ], 
[ [[PHI]], %[[BB26:.*]] ], [ [[PHI]], %[[BB27:.*]] ], [ [[PHI]], %[[BB28:.*]] 
], [ [[PHI]], %[[BB29:.*]] ], [ 0, %[[BB30:.*]] ]
+; CHECK-NEXT:    [[PHI2:%.*]] = phi i64 [ undef, %[[BB]] ], [ [[PHI2]], 
%[[BB31]] ], [ [[PHI2]], %[[BB32]] ], [ [[PHI2]], %[[BB33]] ], [ [[PHI2]], 
%[[BB36]] ], [ [[PHI2]], %[[BB39]] ], [ [[PHI2]], %[[BB40]] ], [ [[PHI2]], 
%[[BB41]] ], [ [[PHI2]], %[[BB42]] ], [ [[LOAD44:%.*]], %[[BB43]] ], [ 
[[PHI2]], %[[BB45]] ], [ [[PHI2]], %[[BB21]] ], [ 0, %[[BB22]] ], [ [[PHI2]], 
%[[BB23]] ], [ [[PHI2]], %[[BB24]] ], [ [[PHI2]], %[[BB25]] ], [ [[PHI2]], 
%[[BB26]] ], [ [[PHI2]], %[[BB27]] ], [ [[PHI2]], %[[BB28]] ], [ [[PHI2]], 
%[[BB29]] ], [ [[PHI2]], %[[BB30]] ]
+; CHECK-NEXT:    [[PHI3:%.*]] = phi i64 [ 0, %[[BB]] ], [ 0, %[[BB31]] ], [ 
[[PHI3]], %[[BB32]] ], [ [[PHI3]], %[[BB33]] ], [ [[PHI3]], %[[BB36]] ], [ 
[[PHI3]], %[[BB39]] ], [ [[PHI3]], %[[BB40]] ], [ [[PHI3]], %[[BB41]] ], [ 0, 
%[[BB42]] ], [ [[PHI3]], %[[BB43]] ], [ [[PHI3]], %[[BB45]] ], [ [[PHI3]], 
%[[BB21]] ], [ [[PHI3]], %[[BB22]] ], [ [[PHI3]], %[[BB23]] ], [ [[PHI3]], 
%[[BB24]] ], [ [[PHI3]], %[[BB25]] ], [ [[PHI3]], %[[BB26]] ], [ [[PHI3]], 
%[[BB27]] ], [ [[PHI3]], %[[BB28]] ], [ [[PHI3]], %[[BB29]] ], [ [[PHI3]], 
%[[BB30]] ]
+; CHECK-NEXT:    [[PHI4:%.*]] = phi i64 [ 0, %[[BB]] ], [ [[PHI4]], %[[BB31]] 
], [ [[PHI4]], %[[BB32]] ], [ [[PHI4]], %[[BB33]] ], [ [[PHI4]], %[[BB36]] ], [ 
[[PHI4]], %[[BB39]] ], [ [[PHI4]], %[[BB40]] ], [ [[PHI4]], %[[BB41]] ], [ 
[[PHI4]], %[[BB42]] ], [ [[PHI4]], %[[BB43]] ], [ [[PHI4]], %[[BB45]] ], [ 
[[PHI4]], %[[BB21]] ], [ [[PHI4]], %[[BB22]] ], [ [[PHI4]], %[[BB23]] ], [ 
[[PHI4]], %[[BB24]] ], [ [[PHI4]], %[[BB25]] ], [ [[PHI4]], %[[BB26]] ], [ 0, 
%[[BB27]] ], [ [[PHI4]], %[[BB28]] ], [ [[PHI4]], %[[BB29]] ], [ [[PHI4]], 
%[[BB30]] ]
+; CHECK-NEXT:    [[PHI5:%.*]] = phi i64 [ undef, %[[BB]] ], [ [[PHI5]], 
%[[BB31]] ], [ [[PHI5]], %[[BB32]] ], [ [[PHI5]], %[[BB33]] ], [ [[PHI5]], 
%[[BB36]] ], [ 0, %[[BB39]] ], [ [[PHI5]], %[[BB40]] ], [ [[PHI5]], %[[BB41]] 
], [ [[PHI5]], %[[BB42]] ], [ [[PHI5]], %[[BB43]] ], [ [[PHI5]], %[[BB45]] ], [ 
0, %[[BB21]] ], [ [[PHI5]], %[[BB22]] ], [ [[PHI5]], %[[BB23]] ], [ [[PHI5]], 
%[[BB24]] ], [ [[PHI5]], %[[BB25]] ], [ [[PHI5]], %[[BB26]] ], [ [[PHI5]], 
%[[BB27]] ], [ [[PHI5]], %[[BB28]] ], [ [[PHI5]], %[[BB29]] ], [ [[PHI5]], 
%[[BB30]] ]
+; CHECK-NEXT:    [[PHI6:%.*]] = phi i64 [ undef, %[[BB]] ], [ [[PHI6]], 
%[[BB31]] ], [ 0, %[[BB32]] ], [ 0, %[[BB33]] ], [ [[LOAD38:%.*]], %[[BB36]] ], 
[ 0, %[[BB39]] ], [ 0, %[[BB40]] ], [ [[PHI6]], %[[BB41]] ], [ [[PHI6]], 
%[[BB42]] ], [ [[PHI6]], %[[BB43]] ], [ [[PHI6]], %[[BB45]] ], [ [[PHI6]], 
%[[BB21]] ], [ 0, %[[BB22]] ], [ [[PHI6]], %[[BB23]] ], [ [[PHI6]], %[[BB24]] 
], [ [[PHI6]], %[[BB25]] ], [ 0, %[[BB26]] ], [ [[PHI6]], %[[BB27]] ], [ 
[[PHI6]], %[[BB28]] ], [ [[PHI6]], %[[BB29]] ], [ [[PHI6]], %[[BB30]] ]
+; CHECK-NEXT:    [[PHI7:%.*]] = phi i64 [ undef, %[[BB]] ], [ [[PHI7]], 
%[[BB31]] ], [ [[PTRTOINT:%.*]], %[[BB32]] ], [ [[PHI7]], %[[BB33]] ], [ 
[[PHI7]], %[[BB36]] ], [ [[PHI7]], %[[BB39]] ], [ [[PHI7]], %[[BB40]] ], [ 
[[PHI7]], %[[BB41]] ], [ [[PHI7]], %[[BB42]] ], [ [[PHI7]], %[[BB43]] ], [ 0, 
%[[BB45]] ], [ [[PHI7]], %[[BB21]] ], [ [[PHI7]], %[[BB22]] ], [ [[PHI7]], 
%[[BB23]] ], [ [[PHI7]], %[[BB24]] ], [ [[PHI7]], %[[BB25]] ], [ [[PHI7]], 
%[[BB26]] ], [ [[PHI7]], %[[BB27]] ], [ [[PHI7]], %[[BB28]] ], [ [[PHI7]], 
%[[BB29]] ], [ [[PHI7]], %[[BB30]] ]
+; CHECK-NEXT:    [[PHI8:%.*]] = phi i64 [ 0, %[[BB]] ], [ 0, %[[BB31]] ], [ 
[[PHI8]], %[[BB32]] ], [ [[PHI8]], %[[BB33]] ], [ [[PHI8]], %[[BB36]] ], [ 
[[PHI8]], %[[BB39]] ], [ [[PHI8]], %[[BB40]] ], [ [[PHI8]], %[[BB41]] ], [ 
[[PHI8]], %[[BB42]] ], [ [[PHI8]], %[[BB43]] ], [ [[PHI8]], %[[BB45]] ], [ 
[[PHI8]], %[[BB21]] ], [ [[PHI8]], %[[BB22]] ], [ [[PHI8]], %[[BB23]] ], [ 
[[PHI8]], %[[BB24]] ], [ [[PHI8]], %[[BB25]] ], [ [[PHI8]], %[[BB26]] ], [ 
[[PHI8]], %[[BB27]] ], [ [[PHI8]], %[[BB28]] ], [ [[PHI8]], %[[BB29]] ], [ 
[[PHI8]], %[[BB30]] ]
+; CHECK-NEXT:    [[PHI9:%.*]] = phi i64 [ undef, %[[BB]] ], [ [[PHI9]], 
%[[BB31]] ], [ [[PHI9]], %[[BB32]] ], [ [[PHI9]], %[[BB33]] ], [ [[PHI9]], 
%[[BB36]] ], [ [[PHI9]], %[[BB39]] ], [ [[PHI9]], %[[BB40]] ], [ [[PHI9]], 
%[[BB41]] ], [ 0, %[[BB42]] ], [ [[PHI9]], %[[BB43]] ], [ [[LOAD46:%.*]], 
%[[BB45]] ], [ [[PHI9]], %[[BB21]] ], [ [[PHI9]], %[[BB22]] ], [ 0, %[[BB23]] 
], [ [[PHI9]], %[[BB24]] ], [ [[PHI9]], %[[BB25]] ], [ [[PHI9]], %[[BB26]] ], [ 
0, %[[BB27]] ], [ [[PHI9]], %[[BB28]] ], [ [[PHI9]], %[[BB29]] ], [ [[PHI]], 
%[[BB30]] ]
+; CHECK-NEXT:    [[PHI10:%.*]] = phi i64 [ 0, %[[BB]] ], [ 0, %[[BB31]] ], [ 
[[PHI10]], %[[BB32]] ], [ [[PHI10]], %[[BB33]] ], [ [[PHI10]], %[[BB36]] ], [ 
0, %[[BB39]] ], [ [[PHI10]], %[[BB40]] ], [ [[PHI10]], %[[BB41]] ], [ 
[[PHI10]], %[[BB42]] ], [ 0, %[[BB43]] ], [ [[PHI10]], %[[BB45]] ], [ 
[[PHI10]], %[[BB21]] ], [ [[PHI10]], %[[BB22]] ], [ [[PHI10]], %[[BB23]] ], [ 
0, %[[BB24]] ], [ [[PHI10]], %[[BB25]] ], [ [[PHI10]], %[[BB26]] ], [ 
[[PHI10]], %[[BB27]] ], [ [[PHI10]], %[[BB28]] ], [ [[PHI2]], %[[BB29]] ], [ 
[[PHI10]], %[[BB30]] ]
+; CHECK-NEXT:    [[PHI11:%.*]] = phi i64 [ undef, %[[BB]] ], [ [[PHI11]], 
%[[BB31]] ], [ [[PHI11]], %[[BB32]] ], [ [[PHI11]], %[[BB33]] ], [ [[PHI11]], 
%[[BB36]] ], [ [[PHI11]], %[[BB39]] ], [ [[PHI11]], %[[BB40]] ], [ [[PHI11]], 
%[[BB41]] ], [ 0, %[[BB42]] ], [ 0, %[[BB43]] ], [ [[PHI11]], %[[BB45]] ], [ 
[[PHI11]], %[[BB21]] ], [ [[PHI11]], %[[BB22]] ], [ [[PHI11]], %[[BB23]] ], [ 
[[PHI11]], %[[BB24]] ], [ [[PHI11]], %[[BB25]] ], [ [[PHI11]], %[[BB26]] ], [ 
0, %[[BB27]] ], [ [[PHI3]], %[[BB28]] ], [ [[PHI11]], %[[BB29]] ], [ [[PHI11]], 
%[[BB30]] ]
+; CHECK-NEXT:    [[PHI12:%.*]] = phi i64 [ 0, %[[BB]] ], [ [[PHI12]], 
%[[BB31]] ], [ 0, %[[BB32]] ], [ [[PHI12]], %[[BB33]] ], [ [[LOAD37:%.*]], 
%[[BB36]] ], [ [[PHI12]], %[[BB39]] ], [ [[PHI12]], %[[BB40]] ], [ [[PHI12]], 
%[[BB41]] ], [ [[PHI12]], %[[BB42]] ], [ [[PHI12]], %[[BB43]] ], [ [[PHI12]], 
%[[BB45]] ], [ [[PHI12]], %[[BB21]] ], [ [[PHI12]], %[[BB22]] ], [ [[PHI12]], 
%[[BB23]] ], [ 1, %[[BB24]] ], [ [[PHI12]], %[[BB25]] ], [ 0, %[[BB26]] ], [ 
[[PHI12]], %[[BB27]] ], [ [[PHI12]], %[[BB28]] ], [ [[PHI12]], %[[BB29]] ], [ 
[[PHI12]], %[[BB30]] ]
+; CHECK-NEXT:    [[PHI13:%.*]] = phi i64 [ 0, %[[BB]] ], [ [[PHI13]], 
%[[BB31]] ], [ [[PHI13]], %[[BB32]] ], [ [[LOAD35:%.*]], %[[BB33]] ], [ 
[[PHI13]], %[[BB36]] ], [ [[PHI13]], %[[BB39]] ], [ [[PHI13]], %[[BB40]] ], [ 
[[PHI13]], %[[BB41]] ], [ 0, %[[BB42]] ], [ [[PHI13]], %[[BB43]] ], [ 
[[PHI13]], %[[BB45]] ], [ [[PHI13]], %[[BB21]] ], [ [[PHI13]], %[[BB22]] ], [ 
0, %[[BB23]] ], [ 1, %[[BB24]] ], [ [[PHI13]], %[[BB25]] ], [ 0, %[[BB26]] ], [ 
0, %[[BB27]] ], [ [[PHI13]], %[[BB28]] ], [ [[PHI13]], %[[BB29]] ], [ 
[[PHI13]], %[[BB30]] ]
+; CHECK-NEXT:    [[PHI14:%.*]] = phi i64 [ 0, %[[BB]] ], [ 0, %[[BB31]] ], [ 
[[PHI14]], %[[BB32]] ], [ [[LOAD34:%.*]], %[[BB33]] ], [ 0, %[[BB36]] ], [ 
[[PHI14]], %[[BB39]] ], [ [[PHI14]], %[[BB40]] ], [ [[PHI14]], %[[BB41]] ], [ 
[[PHI14]], %[[BB42]] ], [ [[PHI14]], %[[BB43]] ], [ [[PHI14]], %[[BB45]] ], [ 
[[PHI14]], %[[BB21]] ], [ [[PHI14]], %[[BB22]] ], [ 0, %[[BB23]] ], [ 
[[PHI14]], %[[BB24]] ], [ [[PHI14]], %[[BB25]] ], [ [[PHI14]], %[[BB26]] ], [ 
[[PHI14]], %[[BB27]] ], [ [[PHI14]], %[[BB28]] ], [ [[PHI14]], %[[BB29]] ], [ 
[[PHI14]], %[[BB30]] ]
+; CHECK-NEXT:    [[PHI15:%.*]] = phi i64 [ 0, %[[BB]] ], [ [[LOAD:%.*]], 
%[[BB31]] ], [ [[PHI15]], %[[BB32]] ], [ [[PHI15]], %[[BB33]] ], [ [[PHI15]], 
%[[BB36]] ], [ 0, %[[BB39]] ], [ [[PHI15]], %[[BB40]] ], [ [[PHI15]], %[[BB41]] 
], [ 0, %[[BB42]] ], [ [[PHI15]], %[[BB43]] ], [ [[PHI15]], %[[BB45]] ], [ 
[[PHI8]], %[[BB21]] ], [ [[PHI15]], %[[BB22]] ], [ [[PHI15]], %[[BB23]] ], [ 
[[PHI15]], %[[BB24]] ], [ [[PHI15]], %[[BB25]] ], [ 0, %[[BB26]] ], [ 0, 
%[[BB27]] ], [ [[PHI15]], %[[BB28]] ], [ [[PHI15]], %[[BB29]] ], [ [[PHI15]], 
%[[BB30]] ]
+; CHECK-NEXT:    [[PHI16:%.*]] = phi i8 [ 3, %[[BB]] ], [ 0, %[[BB31]] ], [ 0, 
%[[BB32]] ], [ 0, %[[BB33]] ], [ 0, %[[BB36]] ], [ 0, %[[BB39]] ], [ 0, 
%[[BB40]] ], [ 0, %[[BB41]] ], [ 0, %[[BB42]] ], [ 0, %[[BB43]] ], [ 0, 
%[[BB45]] ], [ 0, %[[BB21]] ], [ 0, %[[BB22]] ], [ 0, %[[BB23]] ], [ 0, 
%[[BB24]] ], [ 0, %[[BB25]] ], [ 0, %[[BB26]] ], [ 0, %[[BB27]] ], [ 0, 
%[[BB28]] ], [ 0, %[[BB29]] ], [ 0, %[[BB30]] ]
+; CHECK-NEXT:    [[PHI17:%.*]] = phi i64 [ 0, %[[BB]] ], [ [[PHI17]], 
%[[BB31]] ], [ [[PHI17]], %[[BB32]] ], [ [[PHI17]], %[[BB33]] ], [ [[PHI17]], 
%[[BB36]] ], [ 0, %[[BB39]] ], [ [[PHI17]], %[[BB40]] ], [ [[PHI4]], %[[BB41]] 
], [ [[PHI17]], %[[BB42]] ], [ 0, %[[BB43]] ], [ [[PHI17]], %[[BB45]] ], [ 
[[PHI17]], %[[BB21]] ], [ [[PHI17]], %[[BB22]] ], [ [[PHI17]], %[[BB23]] ], [ 
0, %[[BB24]] ], [ [[PHI17]], %[[BB25]] ], [ 0, %[[BB26]] ], [ 0, %[[BB27]] ], [ 
[[PHI17]], %[[BB28]] ], [ [[PHI17]], %[[BB29]] ], [ [[PHI17]], %[[BB30]] ]
+; CHECK-NEXT:    [[PHI18:%.*]] = phi i8 [ 0, %[[BB]] ], [ 0, %[[BB31]] ], [ 0, 
%[[BB32]] ], [ 0, %[[BB33]] ], [ 0, %[[BB36]] ], [ 0, %[[BB39]] ], [ 0, 
%[[BB40]] ], [ 0, %[[BB41]] ], [ 0, %[[BB42]] ], [ 0, %[[BB43]] ], [ 0, 
%[[BB45]] ], [ 0, %[[BB21]] ], [ 0, %[[BB22]] ], [ 0, %[[BB23]] ], [ 0, 
%[[BB24]] ], [ 0, %[[BB25]] ], [ 0, %[[BB26]] ], [ 0, %[[BB27]] ], [ 0, 
%[[BB28]] ], [ 0, %[[BB29]] ], [ 0, %[[BB30]] ]
+; CHECK-NEXT:    [[PHI19:%.*]] = phi i64 [ 0, %[[BB]] ], [ [[PHI19]], 
%[[BB31]] ], [ [[PHI19]], %[[BB32]] ], [ [[PHI19]], %[[BB33]] ], [ [[PHI19]], 
%[[BB36]] ], [ 0, %[[BB39]] ], [ [[PHI19]], %[[BB40]] ], [ [[PHI19]], %[[BB41]] 
], [ [[PHI19]], %[[BB42]] ], [ 0, %[[BB43]] ], [ [[PHI19]], %[[BB45]] ], [ 
[[PHI19]], %[[BB21]] ], [ [[PHI19]], %[[BB22]] ], [ [[PHI19]], %[[BB23]] ], [ 
[[PHI19]], %[[BB24]] ], [ [[PHI5]], %[[BB25]] ], [ 0, %[[BB26]] ], [ 0, 
%[[BB27]] ], [ [[PHI19]], %[[BB28]] ], [ [[PHI19]], %[[BB29]] ], [ [[PHI19]], 
%[[BB30]] ]
+; CHECK-NEXT:    [[PHI20:%.*]] = phi i64 [ 0, %[[BB]] ], [ [[PHI20]], 
%[[BB31]] ], [ [[PTRTOINT]], %[[BB32]] ], [ [[PHI20]], %[[BB33]] ], [ 
[[PHI20]], %[[BB36]] ], [ [[PHI20]], %[[BB39]] ], [ 0, %[[BB40]] ], [ 
[[PHI20]], %[[BB41]] ], [ 0, %[[BB42]] ], [ [[PHI20]], %[[BB43]] ], [ 
[[PHI20]], %[[BB45]] ], [ [[PHI20]], %[[BB21]] ], [ [[PHI7]], %[[BB22]] ], [ 
[[PHI20]], %[[BB23]] ], [ [[PHI20]], %[[BB24]] ], [ [[PHI20]], %[[BB25]] ], [ 
0, %[[BB26]] ], [ [[PHI20]], %[[BB27]] ], [ [[PHI20]], %[[BB28]] ], [ 
[[PHI20]], %[[BB29]] ], [ [[PHI20]], %[[BB30]] ]
+; CHECK-NEXT:    switch i8 0, label %[[BB30]] [
+; CHECK-NEXT:      i8 9, label %[[BB26]]
+; CHECK-NEXT:      i8 0, label %[[BB29]]
+; CHECK-NEXT:      i8 13, label %[[BB28]]
+; CHECK-NEXT:      i8 1, label %[[BB21]]
+; CHECK-NEXT:      i8 3, label %[[BB22]]
+; CHECK-NEXT:      i8 12, label %[[BB27]]
+; CHECK-NEXT:      i8 5, label %[[BB23]]
+; CHECK-NEXT:      i8 6, label %[[BB24]]
+; CHECK-NEXT:      i8 7, label %[[BB25]]
+; CHECK-NEXT:    ]
+; CHECK:       [[BB21]]:
+; CHECK-NEXT:    br i1 false, label %[[BB1]], label %[[BB31]]
+; CHECK:       [[BB22]]:
+; CHECK-NEXT:    br i1 false, label %[[BB1]], label %[[BB32]]
+; CHECK:       [[BB23]]:
+; CHECK-NEXT:    br i1 false, label %[[BB1]], label %[[BB33]]
+; CHECK:       [[BB24]]:
+; CHECK-NEXT:    br i1 false, label %[[BB1]], label %[[BB36]]
+; CHECK:       [[BB25]]:
+; CHECK-NEXT:    br i1 false, label %[[BB1]], label %[[BB39]]
+; CHECK:       [[BB26]]:
+; CHECK-NEXT:    br i1 false, label %[[BB40]], label %[[BB1]]
+; CHECK:       [[BB27]]:
+; CHECK-NEXT:    br i1 false, label %[[BB41]], label %[[BB1]]
+; CHECK:       [[BB28]]:
+; CHECK-NEXT:    br i1 false, label %[[BB1]], label %[[BB42]]
+; CHECK:       [[BB29]]:
+; CHECK-NEXT:    br i1 false, label %[[BB1]], label %[[BB43]]
+; CHECK:       [[BB30]]:
+; CHECK-NEXT:    br i1 false, label %[[BB1]], label %[[BB45]]
+; CHECK:       [[BB31]]:
+; CHECK-NEXT:    [[LOAD]] = load i64, ptr null, align 8
+; CHECK-NEXT:    br label %[[BB1]]
+; CHECK:       [[BB32]]:
+; CHECK-NEXT:    [[PTRTOINT]] = ptrtoint ptr null to i64
+; CHECK-NEXT:    br label %[[BB1]]
+; CHECK:       [[BB33]]:
+; CHECK-NEXT:    [[LOAD34]] = load i64, ptr null, align 8
+; CHECK-NEXT:    [[LOAD35]] = load i64, ptr null, align 8
+; CHECK-NEXT:    br label %[[BB1]]
+; CHECK:       [[BB36]]:
+; CHECK-NEXT:    [[LOAD37]] = load i64, ptr null, align 8
+; CHECK-NEXT:    [[LOAD38]] = load i64, ptr null, align 8
+; CHECK-NEXT:    br label %[[BB1]]
+; CHECK:       [[BB39]]:
+; CHECK-NEXT:    br label %[[BB1]]
+; CHECK:       [[BB40]]:
+; CHECK-NEXT:    br label %[[BB1]]
+; CHECK:       [[BB41]]:
+; CHECK-NEXT:    br label %[[BB1]]
+; CHECK:       [[BB42]]:
+; CHECK-NEXT:    br label %[[BB1]]
+; CHECK:       [[BB43]]:
+; CHECK-NEXT:    [[LOAD44]] = load i64, ptr null, align 8
+; CHECK-NEXT:    br label %[[BB1]]
+; CHECK:       [[BB45]]:
+; CHECK-NEXT:    [[LOAD46]] = load i64, ptr null, align 8
+; CHECK-NEXT:    br label %[[BB1]]
+;
+bb:
+  br label %bb1
+
+bb1:
+  %phi = phi i64 [ 0, %bb ], [ %phi, %bb31 ], [ %phi, %bb32 ], [ %phi, %bb33 
], [ %phi, %bb36 ], [ %phi, %bb39 ], [ %phi, %bb40 ], [ %phi, %bb41 ], [ %phi, 
%bb42 ], [ %phi, %bb43 ], [ 0, %bb45 ], [ %phi, %bb21 ], [ %phi, %bb22 ], [ 
%phi, %bb23 ], [ %phi, %bb24 ], [ %phi, %bb25 ], [ %phi, %bb26 ], [ %phi, %bb27 
], [ %phi, %bb28 ], [ %phi, %bb29 ], [ 0, %bb30 ]
+  %phi2 = phi i64 [ undef, %bb ], [ %phi2, %bb31 ], [ %phi2, %bb32 ], [ %phi2, 
%bb33 ], [ %phi2, %bb36 ], [ %phi2, %bb39 ], [ %phi2, %bb40 ], [ %phi2, %bb41 
], [ %phi2, %bb42 ], [ %load44, %bb43 ], [ %phi2, %bb45 ], [ %phi2, %bb21 ], [ 
0, %bb22 ], [ %phi2, %bb23 ], [ %phi2, %bb24 ], [ %phi2, %bb25 ], [ %phi2, 
%bb26 ], [ %phi2, %bb27 ], [ %phi2, %bb28 ], [ %phi2, %bb29 ], [ %phi2, %bb30 ]
+  %phi3 = phi i64 [ 0, %bb ], [ 0, %bb31 ], [ %phi3, %bb32 ], [ %phi3, %bb33 
], [ %phi3, %bb36 ], [ %phi3, %bb39 ], [ %phi3, %bb40 ], [ %phi3, %bb41 ], [ 0, 
%bb42 ], [ %phi3, %bb43 ], [ %phi3, %bb45 ], [ %phi3, %bb21 ], [ %phi3, %bb22 
], [ %phi3, %bb23 ], [ %phi3, %bb24 ], [ %phi3, %bb25 ], [ %phi3, %bb26 ], [ 
%phi3, %bb27 ], [ %phi3, %bb28 ], [ %phi3, %bb29 ], [ %phi3, %bb30 ]
+  %phi4 = phi i64 [ 0, %bb ], [ %phi4, %bb31 ], [ %phi4, %bb32 ], [ %phi4, 
%bb33 ], [ %phi4, %bb36 ], [ %phi4, %bb39 ], [ %phi4, %bb40 ], [ %phi4, %bb41 
], [ %phi4, %bb42 ], [ %phi4, %bb43 ], [ %phi4, %bb45 ], [ %phi4, %bb21 ], [ 
%phi4, %bb22 ], [ %phi4, %bb23 ], [ %phi4, %bb24 ], [ %phi4, %bb25 ], [ %phi4, 
%bb26 ], [ 0, %bb27 ], [ %phi4, %bb28 ], [ %phi4, %bb29 ], [ %phi4, %bb30 ]
+  %phi5 = phi i64 [ undef, %bb ], [ %phi5, %bb31 ], [ %phi5, %bb32 ], [ %phi5, 
%bb33 ], [ %phi5, %bb36 ], [ 0, %bb39 ], [ %phi5, %bb40 ], [ %phi5, %bb41 ], [ 
%phi5, %bb42 ], [ %phi5, %bb43 ], [ %phi5, %bb45 ], [ 0, %bb21 ], [ %phi5, 
%bb22 ], [ %phi5, %bb23 ], [ %phi5, %bb24 ], [ %phi5, %bb25 ], [ %phi5, %bb26 
], [ %phi5, %bb27 ], [ %phi5, %bb28 ], [ %phi5, %bb29 ], [ %phi5, %bb30 ]
+  %phi6 = phi i64 [ undef, %bb ], [ %phi6, %bb31 ], [ 0, %bb32 ], [ 0, %bb33 
], [ %load38, %bb36 ], [ 0, %bb39 ], [ 0, %bb40 ], [ %phi6, %bb41 ], [ %phi6, 
%bb42 ], [ %phi6, %bb43 ], [ %phi6, %bb45 ], [ %phi6, %bb21 ], [ 0, %bb22 ], [ 
%phi6, %bb23 ], [ %phi6, %bb24 ], [ %phi6, %bb25 ], [ 0, %bb26 ], [ %phi6, 
%bb27 ], [ %phi6, %bb28 ], [ %phi6, %bb29 ], [ %phi6, %bb30 ]
+  %phi7 = phi i64 [ undef, %bb ], [ %phi7, %bb31 ], [ %ptrtoint, %bb32 ], [ 
%phi7, %bb33 ], [ %phi7, %bb36 ], [ %phi7, %bb39 ], [ %phi7, %bb40 ], [ %phi7, 
%bb41 ], [ %phi7, %bb42 ], [ %phi7, %bb43 ], [ 0, %bb45 ], [ %phi7, %bb21 ], [ 
%phi7, %bb22 ], [ %phi7, %bb23 ], [ %phi7, %bb24 ], [ %phi7, %bb25 ], [ %phi7, 
%bb26 ], [ %phi7, %bb27 ], [ %phi7, %bb28 ], [ %phi7, %bb29 ], [ %phi7, %bb30 ]
+  %phi8 = phi i64 [ 0, %bb ], [ 0, %bb31 ], [ %phi8, %bb32 ], [ %phi8, %bb33 
], [ %phi8, %bb36 ], [ %phi8, %bb39 ], [ %phi8, %bb40 ], [ %phi8, %bb41 ], [ 
%phi8, %bb42 ], [ %phi8, %bb43 ], [ %phi8, %bb45 ], [ %phi8, %bb21 ], [ %phi8, 
%bb22 ], [ %phi8, %bb23 ], [ %phi8, %bb24 ], [ %phi8, %bb25 ], [ %phi8, %bb26 
], [ %phi8, %bb27 ], [ %phi8, %bb28 ], [ %phi8, %bb29 ], [ %phi8, %bb30 ]
+  %phi9 = phi i64 [ undef, %bb ], [ %phi9, %bb31 ], [ %phi9, %bb32 ], [ %phi9, 
%bb33 ], [ %phi9, %bb36 ], [ %phi9, %bb39 ], [ %phi9, %bb40 ], [ %phi9, %bb41 
], [ 0, %bb42 ], [ %phi9, %bb43 ], [ %load46, %bb45 ], [ %phi9, %bb21 ], [ 
%phi9, %bb22 ], [ 0, %bb23 ], [ %phi9, %bb24 ], [ %phi9, %bb25 ], [ %phi9, 
%bb26 ], [ 0, %bb27 ], [ %phi9, %bb28 ], [ %phi9, %bb29 ], [ %phi, %bb30 ]
+  %phi10 = phi i64 [ 0, %bb ], [ 0, %bb31 ], [ %phi10, %bb32 ], [ %phi10, 
%bb33 ], [ %phi10, %bb36 ], [ 0, %bb39 ], [ %phi10, %bb40 ], [ %phi10, %bb41 ], 
[ %phi10, %bb42 ], [ 0, %bb43 ], [ %phi10, %bb45 ], [ %phi10, %bb21 ], [ 
%phi10, %bb22 ], [ %phi10, %bb23 ], [ 0, %bb24 ], [ %phi10, %bb25 ], [ %phi10, 
%bb26 ], [ %phi10, %bb27 ], [ %phi10, %bb28 ], [ %phi2, %bb29 ], [ %phi10, 
%bb30 ]
+  %phi11 = phi i64 [ undef, %bb ], [ %phi11, %bb31 ], [ %phi11, %bb32 ], [ 
%phi11, %bb33 ], [ %phi11, %bb36 ], [ %phi11, %bb39 ], [ %phi11, %bb40 ], [ 
%phi11, %bb41 ], [ 0, %bb42 ], [ 0, %bb43 ], [ %phi11, %bb45 ], [ %phi11, %bb21 
], [ %phi11, %bb22 ], [ %phi11, %bb23 ], [ %phi11, %bb24 ], [ %phi11, %bb25 ], 
[ %phi11, %bb26 ], [ 0, %bb27 ], [ %phi3, %bb28 ], [ %phi11, %bb29 ], [ %phi11, 
%bb30 ]
+  %phi12 = phi i64 [ 0, %bb ], [ %phi12, %bb31 ], [ 0, %bb32 ], [ %phi12, 
%bb33 ], [ %load37, %bb36 ], [ %phi12, %bb39 ], [ %phi12, %bb40 ], [ %phi12, 
%bb41 ], [ %phi12, %bb42 ], [ %phi12, %bb43 ], [ %phi12, %bb45 ], [ %phi12, 
%bb21 ], [ %phi12, %bb22 ], [ %phi12, %bb23 ], [ 1, %bb24 ], [ %phi12, %bb25 ], 
[ 0, %bb26 ], [ %phi12, %bb27 ], [ %phi12, %bb28 ], [ %phi12, %bb29 ], [ 
%phi12, %bb30 ]
+  %phi13 = phi i64 [ 0, %bb ], [ %phi13, %bb31 ], [ %phi13, %bb32 ], [ 
%load35, %bb33 ], [ %phi13, %bb36 ], [ %phi13, %bb39 ], [ %phi13, %bb40 ], [ 
%phi13, %bb41 ], [ 0, %bb42 ], [ %phi13, %bb43 ], [ %phi13, %bb45 ], [ %phi13, 
%bb21 ], [ %phi13, %bb22 ], [ 0, %bb23 ], [ 1, %bb24 ], [ %phi13, %bb25 ], [ 0, 
%bb26 ], [ 0, %bb27 ], [ %phi13, %bb28 ], [ %phi13, %bb29 ], [ %phi13, %bb30 ]
+  %phi14 = phi i64 [ 0, %bb ], [ 0, %bb31 ], [ %phi14, %bb32 ], [ %load34, 
%bb33 ], [ 0, %bb36 ], [ %phi14, %bb39 ], [ %phi14, %bb40 ], [ %phi14, %bb41 ], 
[ %phi14, %bb42 ], [ %phi14, %bb43 ], [ %phi14, %bb45 ], [ %phi14, %bb21 ], [ 
%phi14, %bb22 ], [ 0, %bb23 ], [ %phi14, %bb24 ], [ %phi14, %bb25 ], [ %phi14, 
%bb26 ], [ %phi14, %bb27 ], [ %phi14, %bb28 ], [ %phi14, %bb29 ], [ %phi14, 
%bb30 ]
+  %phi15 = phi i64 [ 0, %bb ], [ %load, %bb31 ], [ %phi15, %bb32 ], [ %phi15, 
%bb33 ], [ %phi15, %bb36 ], [ 0, %bb39 ], [ %phi15, %bb40 ], [ %phi15, %bb41 ], 
[ 0, %bb42 ], [ %phi15, %bb43 ], [ %phi15, %bb45 ], [ %phi8, %bb21 ], [ %phi15, 
%bb22 ], [ %phi15, %bb23 ], [ %phi15, %bb24 ], [ %phi15, %bb25 ], [ 0, %bb26 ], 
[ 0, %bb27 ], [ %phi15, %bb28 ], [ %phi15, %bb29 ], [ %phi15, %bb30 ]
+  %phi16 = phi i8 [ 3, %bb ], [ 0, %bb31 ], [ 0, %bb32 ], [ 0, %bb33 ], [ 0, 
%bb36 ], [ 0, %bb39 ], [ 0, %bb40 ], [ 0, %bb41 ], [ 0, %bb42 ], [ 0, %bb43 ], 
[ 0, %bb45 ], [ 0, %bb21 ], [ 0, %bb22 ], [ 0, %bb23 ], [ 0, %bb24 ], [ 0, 
%bb25 ], [ 0, %bb26 ], [ 0, %bb27 ], [ 0, %bb28 ], [ 0, %bb29 ], [ 0, %bb30 ]
+  %phi17 = phi i64 [ 0, %bb ], [ %phi17, %bb31 ], [ %phi17, %bb32 ], [ %phi17, 
%bb33 ], [ %phi17, %bb36 ], [ 0, %bb39 ], [ %phi17, %bb40 ], [ %phi4, %bb41 ], 
[ %phi17, %bb42 ], [ 0, %bb43 ], [ %phi17, %bb45 ], [ %phi17, %bb21 ], [ 
%phi17, %bb22 ], [ %phi17, %bb23 ], [ 0, %bb24 ], [ %phi17, %bb25 ], [ 0, %bb26 
], [ 0, %bb27 ], [ %phi17, %bb28 ], [ %phi17, %bb29 ], [ %phi17, %bb30 ]
+  %phi18 = phi i8 [ 0, %bb ], [ 0, %bb31 ], [ 0, %bb32 ], [ 0, %bb33 ], [ 0, 
%bb36 ], [ 0, %bb39 ], [ 0, %bb40 ], [ 0, %bb41 ], [ 0, %bb42 ], [ 0, %bb43 ], 
[ 0, %bb45 ], [ 0, %bb21 ], [ 0, %bb22 ], [ 0, %bb23 ], [ 0, %bb24 ], [ 0, 
%bb25 ], [ 0, %bb26 ], [ 0, %bb27 ], [ 0, %bb28 ], [ 0, %bb29 ], [ 0, %bb30 ]
+  %phi19 = phi i64 [ 0, %bb ], [ %phi19, %bb31 ], [ %phi19, %bb32 ], [ %phi19, 
%bb33 ], [ %phi19, %bb36 ], [ 0, %bb39 ], [ %phi19, %bb40 ], [ %phi19, %bb41 ], 
[ %phi19, %bb42 ], [ 0, %bb43 ], [ %phi19, %bb45 ], [ %phi19, %bb21 ], [ 
%phi19, %bb22 ], [ %phi19, %bb23 ], [ %phi19, %bb24 ], [ %phi5, %bb25 ], [ 0, 
%bb26 ], [ 0, %bb27 ], [ %phi19, %bb28 ], [ %phi19, %bb29 ], [ %phi19, %bb30 ]
+  %phi20 = phi i64 [ 0, %bb ], [ %phi20, %bb31 ], [ %ptrtoint, %bb32 ], [ 
%phi20, %bb33 ], [ %phi20, %bb36 ], [ %phi20, %bb39 ], [ 0, %bb40 ], [ %phi20, 
%bb41 ], [ 0, %bb42 ], [ %phi20, %bb43 ], [ %phi20, %bb45 ], [ %phi20, %bb21 ], 
[ %phi7, %bb22 ], [ %phi20, %bb23 ], [ %phi20, %bb24 ], [ %phi20, %bb25 ], [ 0, 
%bb26 ], [ %phi20, %bb27 ], [ %phi20, %bb28 ], [ %phi20, %bb29 ], [ %phi20, 
%bb30 ]
+  switch i8 0, label %bb30 [
+  i8 9, label %bb26
+  i8 0, label %bb29
+  i8 13, label %bb28
+  i8 1, label %bb21
+  i8 3, label %bb22
+  i8 12, label %bb27
+  i8 5, label %bb23
+  i8 6, label %bb24
+  i8 7, label %bb25
+  ]
+
+bb21:
+  br i1 false, label %bb1, label %bb31
+
+bb22:
+  br i1 false, label %bb1, label %bb32
+
+bb23:
+  br i1 false, label %bb1, label %bb33
+
+bb24:
+  br i1 false, label %bb1, label %bb36
+
+bb25:
+  br i1 false, label %bb1, label %bb39
+
+bb26:
+  br i1 false, label %bb40, label %bb1
+
+bb27:
+  br i1 false, label %bb41, label %bb1
+
+bb28:
+  br i1 false, label %bb1, label %bb42
+
+bb29:
+  br i1 false, label %bb1, label %bb43
+
+bb30:
+  br i1 false, label %bb1, label %bb45
+
+bb31:
+  %load = load i64, ptr null, align 8
+  br label %bb1
+
+bb32:
+  %ptrtoint = ptrtoint ptr null to i64
+  br label %bb1
+
+bb33:
+  %load34 = load i64, ptr null, align 8
+  %load35 = load i64, ptr null, align 8
+  br label %bb1
+
+bb36:
+  %load37 = load i64, ptr null, align 8
+  %load38 = load i64, ptr null, align 8
+  br label %bb1
+
+bb39:
+  br label %bb1
+
+bb40:
+  br label %bb1
+
+bb41:
+  br label %bb1
+
+bb42:
+  br label %bb1
+
+bb43:
+  %load44 = load i64, ptr null, align 8
+  br label %bb1
+
+bb45:
+  %load46 = load i64, ptr null, align 8
+  br label %bb1
+}
+

_______________________________________________
llvm-branch-commits mailing list
llvm-branch-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits

Reply via email to