add DEBUG and -stats output to earlycse.
[oota-llvm.git] / test / Transforms / EarlyCSE / basic.ll
1 ; RUN: opt < %s -S -early-cse | FileCheck %s
2
3
4 ; CHECK: @test1
5 define void @test1(i8 %V, i32 *%P) {
6   %A = bitcast i64 42 to double  ;; dead
7   %B = add i32 4, 19             ;; constant folds
8   store i32 %B, i32* %P
9   ; CHECK-NEXT: store i32 23, i32* %P
10   
11   %C = zext i8 %V to i32
12   %D = zext i8 %V to i32  ;; CSE
13   volatile store i32 %C, i32* %P
14   volatile store i32 %D, i32* %P
15   ; CHECK-NEXT: %C = zext i8 %V to i32
16   ; CHECK-NEXT: volatile store i32 %C
17   ; CHECK-NEXT: volatile store i32 %C
18   
19   %E = add i32 %C, %C
20   %F = add i32 %C, %C
21   volatile store i32 %E, i32* %P
22   volatile store i32 %F, i32* %P
23   ; CHECK-NEXT: %E = add i32 %C, %C
24   ; CHECK-NEXT: volatile store i32 %E
25   ; CHECK-NEXT: volatile store i32 %E
26
27   %G = add nuw i32 %C, %C         ;; not a CSE with E
28   volatile store i32 %G, i32* %P
29   ; CHECK-NEXT: %G = add nuw i32 %C, %C
30   ; CHECK-NEXT: volatile store i32 %G
31   ret void
32 }