|
1 |
| -; RUN: opt -disable-verify -debug-pass-manager -passes='default<O1>' -S %s 2>&1 | FileCheck %s --check-prefixes=O1 |
2 |
| -; RUN: opt -disable-verify -debug-pass-manager -passes='default<O2>' -S %s 2>&1 | FileCheck %s --check-prefixes=O2 |
3 |
| -; RUN: opt -disable-verify -debug-pass-manager -passes='default<O2>' -extra-vectorizer-passes -S %s 2>&1 | FileCheck %s --check-prefixes=O2_EXTRA |
| 1 | +; RUN: opt -disable-verify -debug-pass-manager -passes='default<O1>' -force-vector-width=4 -S %s 2>&1 | FileCheck %s --check-prefixes=O1 |
| 2 | +; RUN: opt -disable-verify -debug-pass-manager -passes='default<O2>' -force-vector-width=4 -S %s 2>&1 | FileCheck %s --check-prefixes=O2 |
| 3 | +; RUN: opt -disable-verify -debug-pass-manager -passes='default<O2>' -force-vector-width=4 -extra-vectorizer-passes -S %s 2>&1 | FileCheck %s --check-prefixes=O2_EXTRA |
4 | 4 |
|
5 | 5 | ; REQUIRES: asserts
|
6 | 6 |
|
|
17 | 17 | ; Everything runs at -O2.
|
18 | 18 | ; O2-LABEL: Running pass: LoopVectorizePass
|
19 | 19 | ; O2: Running pass: SLPVectorizerPass
|
| 20 | +; O2-NOT: Running pass: EarlyCSEPass |
| 21 | +; O2-NOT: Running pass: LICMPass |
20 | 22 | ; O2: Running pass: VectorCombinePass
|
21 | 23 |
|
22 | 24 | ; Optionally run cleanup passes.
|
|
32 | 34 | ; O2_EXTRA: Running pass: EarlyCSEPass
|
33 | 35 | ; O2_EXTRA: Running pass: VectorCombinePass
|
34 | 36 |
|
35 |
| -define i64 @f(i1 %cond) { |
| 37 | +define i64 @f(i1 %cond, i32* %src, i32* %dst) { |
36 | 38 | entry:
|
37 | 39 | br label %loop
|
38 | 40 |
|
39 | 41 | loop:
|
40 | 42 | %i = phi i64 [ 0, %entry ], [ %inc, %loop ]
|
41 |
| - %inc = add i64 %i, 1 |
42 |
| - br i1 %cond, label %loop, label %exit |
| 43 | + %src.i = getelementptr i32, i32* %src, i64 %i |
| 44 | + %src.v = load i32, i32* %src.i |
| 45 | + %add = add i32 %src.v, 10 |
| 46 | + %dst.i = getelementptr i32, i32* %dst, i64 %i |
| 47 | + store i32 %add, i32* %dst.i |
| 48 | + %inc = add nuw nsw i64 %i, 1 |
| 49 | + %ec = icmp ne i64 %inc, 1000 |
| 50 | + br i1 %ec, label %loop, label %exit |
43 | 51 |
|
44 | 52 | exit:
|
45 | 53 | ret i64 %i
|
|
0 commit comments