Bump version to 19.1.0-rc3
[llvm-project.git] / llvm / test / Transforms / SLPVectorizer / X86 / extract-subvector-long-input.ll
blob1b54a604cd6f3a4b97bb4c6f920d0a0854cedb67
1 ; NOTE: Assertions have been autogenerated by utils/update_test_checks.py UTC_ARGS: --version 4
2 ; RUN: opt -passes=slp-vectorizer -S -slp-threshold=-99999 -mtriple=x86_64-unknown-linux-gnu < %s | FileCheck %s
4 define void @test() {
5 ; CHECK-LABEL: define void @test() {
6 ; CHECK-NEXT:  bb:
7 ; CHECK-NEXT:    br label [[BB1:%.*]]
8 ; CHECK:       bb1:
9 ; CHECK-NEXT:    [[TMP0:%.*]] = phi <8 x i32> [ poison, [[BB10:%.*]] ], [ zeroinitializer, [[BB:%.*]] ]
10 ; CHECK-NEXT:    [[TMP1:%.*]] = shufflevector <8 x i32> [[TMP0]], <8 x i32> poison, <2 x i32> <i32 7, i32 7>
11 ; CHECK-NEXT:    switch i32 0, label [[BB16:%.*]] [
12 ; CHECK-NEXT:      i32 0, label [[BB14:%.*]]
13 ; CHECK-NEXT:      i32 1, label [[BB11:%.*]]
14 ; CHECK-NEXT:    ]
15 ; CHECK:       bb9:
16 ; CHECK-NEXT:    br label [[BB11]]
17 ; CHECK:       bb10:
18 ; CHECK-NEXT:    br label [[BB1]]
19 ; CHECK:       bb11:
20 ; CHECK-NEXT:    [[TMP2:%.*]] = phi <2 x i32> [ poison, [[BB9:%.*]] ], [ [[TMP1]], [[BB1]] ]
21 ; CHECK-NEXT:    ret void
22 ; CHECK:       bb14:
23 ; CHECK-NEXT:    ret void
24 ; CHECK:       bb15:
25 ; CHECK-NEXT:    ret void
26 ; CHECK:       bb16:
27 ; CHECK-NEXT:    [[TMP3:%.*]] = phi <8 x i32> [ [[TMP0]], [[BB1]] ], [ poison, [[BB25:%.*]] ]
28 ; CHECK-NEXT:    ret void
29 ; CHECK:       bb25:
30 ; CHECK-NEXT:    switch i32 0, label [[BB16]] [
31 ; CHECK-NEXT:      i32 0, label [[BB14]]
32 ; CHECK-NEXT:      i32 1, label [[BB15:%.*]]
33 ; CHECK-NEXT:    ]
35 bb:
36   br label %bb1
38 bb1:
39   %phi = phi i32 [ 0, %bb10 ], [ 0, %bb ]
40   %phi2 = phi i32 [ 0, %bb10 ], [ 0, %bb ]
41   %phi3 = phi i32 [ 0, %bb10 ], [ 0, %bb ]
42   %phi4 = phi i32 [ 0, %bb10 ], [ 0, %bb ]
43   %phi5 = phi i32 [ 0, %bb10 ], [ 0, %bb ]
44   %phi6 = phi i32 [ 0, %bb10 ], [ 0, %bb ]
45   %phi7 = phi i32 [ 0, %bb10 ], [ 0, %bb ]
46   %phi8 = phi i32 [ 0, %bb10 ], [ 0, %bb ]
47   switch i32 0, label %bb16 [
48   i32 0, label %bb14
49   i32 1, label %bb11
50   ]
52 bb9:
53   br label %bb11
55 bb10:
56   br label %bb1
58 bb11:
59   %phi12 = phi i32 [ 0, %bb9 ], [ %phi7, %bb1 ]
60   %phi13 = phi i32 [ 0, %bb9 ], [ undef, %bb1 ]
61   ret void
63 bb14:
64   ret void
66 bb15:
67   ret void
69 bb16:
70   %phi17 = phi i32 [ %phi, %bb1 ], [ 0, %bb25 ]
71   %phi18 = phi i32 [ %phi2, %bb1 ], [ 0, %bb25 ]
72   %phi19 = phi i32 [ %phi3, %bb1 ], [ 0, %bb25 ]
73   %phi20 = phi i32 [ %phi4, %bb1 ], [ 0, %bb25 ]
74   %phi21 = phi i32 [ %phi5, %bb1 ], [ 0, %bb25 ]
75   %phi22 = phi i32 [ %phi6, %bb1 ], [ 0, %bb25 ]
76   %phi23 = phi i32 [ %phi7, %bb1 ], [ 0, %bb25 ]
77   %phi24 = phi i32 [ %phi8, %bb1 ], [ 0, %bb25 ]
78   ret void
80 bb25:
81   switch i32 0, label %bb16 [
82   i32 0, label %bb14
83   i32 1, label %bb15
84   ]