Re-land [openmp] Fix warnings when building on Windows with latest MSVC or Clang...
[llvm-project.git] / llvm / test / Transforms / SLPVectorizer / X86 / pr63668.ll
blob391771e06cab804c5bf428a81f6041de94b1ad7c
1 ; NOTE: Assertions have been autogenerated by utils/update_test_checks.py UTC_ARGS: --version 3
2 ; RUN: opt -passes=slp-vectorizer -mtriple=x86_64-unknown-linux-gnu -mcpu=znver4 -S < %s | FileCheck %s
4 define internal i32 @testfunc() {
5 ; CHECK-LABEL: define internal i32 @testfunc
6 ; CHECK-SAME: () #[[ATTR0:[0-9]+]] {
7 ; CHECK-NEXT:    br label [[TMP1:%.*]]
8 ; CHECK:       1:
9 ; CHECK-NEXT:    [[TMP2:%.*]] = phi float [ 0.000000e+00, [[TMP0:%.*]] ], [ 0.000000e+00, [[TMP8:%.*]] ]
10 ; CHECK-NEXT:    [[TMP3:%.*]] = phi float [ 0.000000e+00, [[TMP0]] ], [ 0.000000e+00, [[TMP8]] ]
11 ; CHECK-NEXT:    [[TMP4:%.*]] = phi float [ 0.000000e+00, [[TMP0]] ], [ 0.000000e+00, [[TMP8]] ]
12 ; CHECK-NEXT:    br i1 false, label [[TMP8]], label [[TMP5:%.*]]
13 ; CHECK:       5:
14 ; CHECK-NEXT:    br i1 false, label [[TMP6:%.*]], label [[TMP8]]
15 ; CHECK:       6:
16 ; CHECK-NEXT:    [[TMP7:%.*]] = extractelement <8 x float> zeroinitializer, i64 0
17 ; CHECK-NEXT:    br label [[TMP8]]
18 ; CHECK:       8:
19 ; CHECK-NEXT:    [[TMP9:%.*]] = phi float [ [[TMP7]], [[TMP6]] ], [ 0.000000e+00, [[TMP1]] ], [ 0.000000e+00, [[TMP5]] ]
20 ; CHECK-NEXT:    [[TMP10:%.*]] = phi float [ [[TMP2]], [[TMP6]] ], [ 0.000000e+00, [[TMP1]] ], [ [[TMP2]], [[TMP5]] ]
21 ; CHECK-NEXT:    [[TMP11:%.*]] = phi float [ [[TMP7]], [[TMP6]] ], [ 0.000000e+00, [[TMP1]] ], [ 0.000000e+00, [[TMP5]] ]
22 ; CHECK-NEXT:    [[TMP12:%.*]] = phi float [ [[TMP7]], [[TMP6]] ], [ 0.000000e+00, [[TMP1]] ], [ 0.000000e+00, [[TMP5]] ]
23 ; CHECK-NEXT:    [[TMP13:%.*]] = phi float [ [[TMP7]], [[TMP6]] ], [ 0.000000e+00, [[TMP1]] ], [ 0.000000e+00, [[TMP5]] ]
24 ; CHECK-NEXT:    [[TMP14:%.*]] = phi float [ [[TMP3]], [[TMP6]] ], [ 0.000000e+00, [[TMP1]] ], [ 0.000000e+00, [[TMP5]] ]
25 ; CHECK-NEXT:    [[TMP15:%.*]] = phi float [ [[TMP4]], [[TMP6]] ], [ 0.000000e+00, [[TMP1]] ], [ 0.000000e+00, [[TMP5]] ]
26 ; CHECK-NEXT:    [[TMP16:%.*]] = phi float [ [[TMP4]], [[TMP6]] ], [ 0.000000e+00, [[TMP1]] ], [ [[TMP3]], [[TMP5]] ]
27 ; CHECK-NEXT:    br label [[TMP1]]
29   br label %1
31 1:                                                ; preds = %8, %0
32   %2 = phi float [ 0.000000e+00, %0 ], [ 0.000000e+00, %8 ]
33   %3 = phi float [ 0.000000e+00, %0 ], [ 0.000000e+00, %8 ]
34   %4 = phi float [ 0.000000e+00, %0 ], [ 0.000000e+00, %8 ]
35   br i1 false, label %8, label %5
37 5:                                                ; preds = %1
38   br i1 false, label %6, label %8
40 6:                                                ; preds = %5
41   %7 = extractelement <8 x float> zeroinitializer, i64 0
42   br label %8
44 8:                                                ; preds = %6, %5, %1
45   %9 = phi float [ %7, %6 ], [ 0.000000e+00, %1 ], [ 0.000000e+00, %5 ]
46   %10 = phi float [ %2, %6 ], [ 0.000000e+00, %1 ], [ %2, %5 ]
47   %11 = phi float [ %7, %6 ], [ 0.000000e+00, %1 ], [ 0.000000e+00, %5 ]
48   %12 = phi float [ %7, %6 ], [ 0.000000e+00, %1 ], [ 0.000000e+00, %5 ]
49   %13 = phi float [ %7, %6 ], [ 0.000000e+00, %1 ], [ 0.000000e+00, %5 ]
50   %14 = phi float [ %3, %6 ], [ 0.000000e+00, %1 ], [ 0.000000e+00, %5 ]
51   %15 = phi float [ %4, %6 ], [ 0.000000e+00, %1 ], [ 0.000000e+00, %5 ]
52   %16 = phi float [ %4, %6 ], [ 0.000000e+00, %1 ], [ %3, %5 ]
53   br label %1