1 ; RUN: opt < %s -S -early-cse | FileCheck %s
5 define void @test1(i8 %V, i32 *%P) {
6 %A = bitcast i64 42 to double ;; dead
7 %B = add i32 4, 19 ;; constant folds
9 ; CHECK-NEXT: store i32 23, i32* %P
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
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
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