Bump version to 19.1.0-rc3
[llvm-project.git] / llvm / test / Transforms / SLPVectorizer / X86 / reduction-value-in-tree.ll
blob254525c942356a3ea45d428e9c3a4c459d5d13e4
1 ; NOTE: Assertions have been autogenerated by utils/update_test_checks.py
2 ; RUN: opt -S -passes=slp-vectorizer -mtriple=x86_64-unknown-linux < %s | FileCheck %s
3 define void @test() {
4 ; CHECK-LABEL: @test(
5 ; CHECK-NEXT:  bb:
6 ; CHECK-NEXT:    br i1 false, label [[PH:%.*]], label [[EXIT:%.*]]
7 ; CHECK:       ph:
8 ; CHECK-NEXT:    [[TMP0:%.*]] = call i8 @llvm.vector.reduce.and.v8i8(<8 x i8> zeroinitializer)
9 ; CHECK-NEXT:    [[OP_RDX2:%.*]] = and i8 0, [[TMP0]]
10 ; CHECK-NEXT:    br label [[EXIT]]
11 ; CHECK:       exit:
12 ; CHECK-NEXT:    [[PHI:%.*]] = phi i8 [ [[OP_RDX2]], [[PH]] ], [ 0, [[BB:%.*]] ]
13 ; CHECK-NEXT:    ret void
15 bb:
16   br i1 false, label %ph, label %exit
18 ph:
19   %add1 = add i8 0, 0
20   %add2 = add i8 %add1, 0
21   %add3 = add i8 %add1, 0
22   %add4 = add i8 %add1, 0
23   %add5 = add i8 %add1, 0
24   %add6 = add i8 %add1, 0
25   %add7 = add i8 %add1, 0
26   %add8 = add i8 %add1, 0
27   %add9 = add i8 0, 0
28   %add10 = add i8 0, %add9
29   %0 = and i8 %add10, %add3
30   %1 = and i8 %0, %add2
31   %2 = and i8 %1, %add4
32   %3 = and i8 %2, 0
33   %4 = and i8 %3, %add5
34   %5 = and i8 %4, %add6
35   %6 = and i8 %5, 0
36   %7 = and i8 %6, 0
37   %8 = and i8 %7, 0
38   %9 = and i8 %8, 0
39   %10 = and i8 %9, 0
40   %11 = and i8 %10, 0
41   %12 = and i8 %11, 0
42   %13 = and i8 %12, %add7
43   %14 = and i8 %13, %add8
44   %15 = and i8 %14, 0
45   %16 = and i8 %15, 0
46   %17 = and i8 %16, 0
47   %18 = and i8 %17, 0
48   %and = and i8 %18, %add1
49   br label %exit
51 exit:
52   %phi = phi i8 [ %and, %ph ], [ 0, %bb ]
53   ret void