summaryrefslogtreecommitdiffstats
path: root/llvm/test/Transforms/EarlyCSE/basic.ll
diff options
context:
space:
mode:
Diffstat (limited to 'llvm/test/Transforms/EarlyCSE/basic.ll')
-rw-r--r--llvm/test/Transforms/EarlyCSE/basic.ll15
1 files changed, 13 insertions, 2 deletions
diff --git a/llvm/test/Transforms/EarlyCSE/basic.ll b/llvm/test/Transforms/EarlyCSE/basic.ll
index d42f503fc64..6cfd0a9df98 100644
--- a/llvm/test/Transforms/EarlyCSE/basic.ll
+++ b/llvm/test/Transforms/EarlyCSE/basic.ll
@@ -6,16 +6,27 @@ define void @test1(i8 %V, i32 *%P) {
%A = bitcast i64 42 to double ;; dead
%B = add i32 4, 19 ;; constant folds
store i32 %B, i32* %P
-
; CHECK-NEXT: store i32 23, i32* %P
%C = zext i8 %V to i32
%D = zext i8 %V to i32 ;; CSE
volatile store i32 %C, i32* %P
volatile store i32 %D, i32* %P
-
; CHECK-NEXT: %C = zext i8 %V to i32
; CHECK-NEXT: volatile store i32 %C
; CHECK-NEXT: volatile store i32 %C
+
+ %E = add i32 %C, %C
+ %F = add i32 %C, %C
+ volatile store i32 %E, i32* %P
+ volatile store i32 %F, i32* %P
+ ; CHECK-NEXT: %E = add i32 %C, %C
+ ; CHECK-NEXT: volatile store i32 %E
+ ; CHECK-NEXT: volatile store i32 %E
+
+ %G = add nuw i32 %C, %C ;; not a CSE with E
+ volatile store i32 %G, i32* %P
+ ; CHECK-NEXT: %G = add nuw i32 %C, %C
+ ; CHECK-NEXT: volatile store i32 %G
ret void
}
OpenPOWER on IntegriCloud