xref: /llvm-project/llvm/test/Transforms/SLPVectorizer/phi-not-ordered.ll (revision 5f928a223ef2c14701eab3077a534c1e49269a51)
1*5f928a22SAlexey Bataev; NOTE: Assertions have been autogenerated by utils/update_test_checks.py
2*5f928a22SAlexey Bataev; RUN: opt -passes=slp-vectorizer -S < %s | FileCheck %s
3*5f928a22SAlexey Bataev
4*5f928a22SAlexey Bataevdefine void @f(i16 %0) {
5*5f928a22SAlexey Bataev; CHECK-LABEL: @f(
6*5f928a22SAlexey Bataev; CHECK-NEXT:  entry:
7*5f928a22SAlexey Bataev; CHECK-NEXT:    br label [[FOR_COND:%.*]]
8*5f928a22SAlexey Bataev; CHECK:       for.cond:
9*5f928a22SAlexey Bataev; CHECK-NEXT:    [[TMP1:%.*]] = phi i16 [ 0, [[FOR_END5:%.*]] ], [ [[TMP0:%.*]], [[ENTRY:%.*]] ]
10*5f928a22SAlexey Bataev; CHECK-NEXT:    [[B_0:%.*]] = phi i16 [ 0, [[ENTRY]] ], [ [[INC:%.*]], [[FOR_END5]] ]
11*5f928a22SAlexey Bataev; CHECK-NEXT:    [[INC]] = add i16 0, 0
12*5f928a22SAlexey Bataev; CHECK-NEXT:    br label [[FOR_BODY2:%.*]]
13*5f928a22SAlexey Bataev; CHECK:       for.body2:
14*5f928a22SAlexey Bataev; CHECK-NEXT:    br label [[FOR_BODY2]]
15*5f928a22SAlexey Bataev; CHECK:       for.end5:
16*5f928a22SAlexey Bataev; CHECK-NEXT:    br label [[FOR_COND]]
17*5f928a22SAlexey Bataev;
18*5f928a22SAlexey Bataeventry:
19*5f928a22SAlexey Bataev  br label %for.cond
20*5f928a22SAlexey Bataev
21*5f928a22SAlexey Bataevfor.cond:
22*5f928a22SAlexey Bataev  %1 = phi i16 [ 0, %for.end5 ], [ %0, %entry ]
23*5f928a22SAlexey Bataev  %b.0 = phi i16 [ 0, %entry ], [ %inc, %for.end5 ]
24*5f928a22SAlexey Bataev  %inc = add i16 0, 0
25*5f928a22SAlexey Bataev  br label %for.body2
26*5f928a22SAlexey Bataev
27*5f928a22SAlexey Bataevfor.body2:
28*5f928a22SAlexey Bataev  br label %for.body2
29*5f928a22SAlexey Bataev
30*5f928a22SAlexey Bataevfor.end5:
31*5f928a22SAlexey Bataev  br label %for.cond
32*5f928a22SAlexey Bataev}
33