diff options
Diffstat (limited to 'test/Transforms/ConstProp')
-rw-r--r-- | test/Transforms/ConstProp/2009-06-20-constexpr-zero-lhs.ll | 11 | ||||
-rw-r--r-- | test/Transforms/ConstProp/div-zero.ll | 12 |
2 files changed, 23 insertions, 0 deletions
diff --git a/test/Transforms/ConstProp/2009-06-20-constexpr-zero-lhs.ll b/test/Transforms/ConstProp/2009-06-20-constexpr-zero-lhs.ll new file mode 100644 index 0000000000000..332260590ae16 --- /dev/null +++ b/test/Transforms/ConstProp/2009-06-20-constexpr-zero-lhs.ll @@ -0,0 +1,11 @@ +; RUN: llvm-as < %s | llvm-dis | not grep ptrtoint +; PR4424 +@G = external global i32 +@test1 = constant i32 sdiv (i32 0, i32 ptrtoint (i32* @G to i32)) +@test2 = constant i32 udiv (i32 0, i32 ptrtoint (i32* @G to i32)) +@test3 = constant i32 srem (i32 0, i32 ptrtoint (i32* @G to i32)) +@test4 = constant i32 urem (i32 0, i32 ptrtoint (i32* @G to i32)) +@test5 = constant i32 lshr (i32 0, i32 ptrtoint (i32* @G to i32)) +@test6 = constant i32 ashr (i32 0, i32 ptrtoint (i32* @G to i32)) +@test7 = constant i32 shl (i32 0, i32 ptrtoint (i32* @G to i32)) + diff --git a/test/Transforms/ConstProp/div-zero.ll b/test/Transforms/ConstProp/div-zero.ll new file mode 100644 index 0000000000000..166c643dcc999 --- /dev/null +++ b/test/Transforms/ConstProp/div-zero.ll @@ -0,0 +1,12 @@ +; RUN: llvm-as < %s | opt -instcombine | llvm-dis | grep {ret i32 0} +; PR4424 +declare void @ext() + +define i32 @foo(i32 %ptr) { +entry: + %zero = sub i32 %ptr, %ptr ; <i32> [#uses=1] + %div_zero = sdiv i32 %zero, ptrtoint (i32* getelementptr (i32* null, +i32 1) to i32) ; <i32> [#uses=1] + ret i32 %div_zero +} + |