[LLVM][IR] Use splat syntax when printing ConstantExpr based splats. (#116856)
[llvm-project.git] / llvm / test / Transforms / SLPVectorizer / X86 / phis-different-order.ll
blob2a0d4804026fda6bc03c762f4264c28984cc4fb6
1 ; NOTE: Assertions have been autogenerated by utils/update_test_checks.py UTC_ARGS: --version 2
2 ; RUN: opt -passes=slp-vectorizer -S < %s -mcpu=pentium4 -mtriple=i386-pc-windows-msvc19.16.0 | FileCheck %s
4 define ptr @test()  {
5 ; CHECK-LABEL: define ptr @test
6 ; CHECK-SAME: () #[[ATTR0:[0-9]+]] {
7 ; CHECK-NEXT:  entry:
8 ; CHECK-NEXT:    br label [[FOR_BODY:%.*]]
9 ; CHECK:       for.body:
10 ; CHECK-NEXT:    [[PC:%.*]] = phi i64 [ 0, [[ENTRY:%.*]] ], [ 0, [[BB:%.*]] ]
11 ; CHECK-NEXT:    br i1 false, label [[FOR_INC:%.*]], label [[BB2:%.*]]
12 ; CHECK:       for.inc:
13 ; CHECK-NEXT:    [[TMP0:%.*]] = insertelement <2 x i64> <i64 0, i64 poison>, i64 [[PC]], i32 1
14 ; CHECK-NEXT:    br i1 false, label [[BB2]], label [[BB]]
15 ; CHECK:       bb:
16 ; CHECK-NEXT:    br i1 false, label [[BB2]], label [[FOR_BODY]]
17 ; CHECK:       bb1:
18 ; CHECK-NEXT:    br label [[BB2]]
19 ; CHECK:       bb2:
20 ; CHECK-NEXT:    [[TMP1:%.*]] = phi <2 x i64> [ poison, [[BB1:%.*]] ], [ [[TMP0]], [[BB]] ], [ [[TMP0]], [[FOR_INC]] ], [ zeroinitializer, [[FOR_BODY]] ]
21 ; CHECK-NEXT:    store <2 x i64> [[TMP1]], ptr getelementptr inbounds ([7 x i64], ptr null, i32 0, i32 2), align 8
22 ; CHECK-NEXT:    ret ptr null
24 entry:
25   br label %for.body
27 for.body:
28   %pc = phi i64 [ 0, %entry ], [ 0, %bb ]
29   br i1 false, label %for.inc, label %bb2
31 for.inc:
32   br i1 false, label %bb2, label %bb
34 bb:
35   br i1 false, label %bb2, label %for.body
37 bb1:
38   br label %bb2
40 bb2:
41   %ph1 = phi i64 [ 0, %bb1 ], [ 0, %bb ], [ 0, %for.inc ], [ 0, %for.body ]
42   %ph2 = phi i64 [ 0, %bb1 ], [ 0, %for.body ], [ %pc, %bb ], [ %pc, %for.inc ]
43   store i64 %ph1, ptr getelementptr inbounds ([7 x i64], ptr null, i32 0, i32 2), align 8
44   store i64 %ph2, ptr getelementptr inbounds ([7 x i64], ptr null, i32 0, i32 3), align 8
45   ret ptr null