diff options
| author | Dan Gohman <gohman@apple.com> | 2011-07-01 00:42:17 +0000 |
|---|---|---|
| committer | Dan Gohman <gohman@apple.com> | 2011-07-01 00:42:17 +0000 |
| commit | ca8d9e1341d119040a05f1572655d119a3021526 (patch) | |
| tree | db01832fe58468256b0114babe0c79eb22cfb2ea /llvm/test/Transforms | |
| parent | c011d3154350b087c566e24f0a0354aeb2f35917 (diff) | |
| download | bcm5719-llvm-ca8d9e1341d119040a05f1572655d119a3021526.tar.gz bcm5719-llvm-ca8d9e1341d119040a05f1572655d119a3021526.zip | |
Improve constant folding of undef for binary operators.
llvm-svn: 134221
Diffstat (limited to 'llvm/test/Transforms')
| -rw-r--r-- | llvm/test/Transforms/InstSimplify/binop.ll | 99 |
1 files changed, 99 insertions, 0 deletions
diff --git a/llvm/test/Transforms/InstSimplify/binop.ll b/llvm/test/Transforms/InstSimplify/binop.ll new file mode 100644 index 00000000000..f4bc55753a5 --- /dev/null +++ b/llvm/test/Transforms/InstSimplify/binop.ll @@ -0,0 +1,99 @@ +; RUN: opt -instsimplify -S < %s | FileCheck %s + +; @test0 +; CHECK: ret i64 undef +define i64 @test0() { + %r = mul i64 undef, undef + ret i64 %r +} + +; @test1 +; CHECK: ret i64 undef +define i64 @test1() { + %r = mul i64 3, undef + ret i64 %r +} + +; @test2 +; CHECK: ret i64 undef +define i64 @test2() { + %r = mul i64 undef, 3 + ret i64 %r +} + +; @test3 +; CHECK: ret i64 0 +define i64 @test3() { + %r = mul i64 undef, 6 + ret i64 %r +} + +; @test4 +; CHECK: ret i64 0 +define i64 @test4() { + %r = mul i64 6, undef + ret i64 %r +} + +; @test5 +; CHECK: ret i64 undef +define i64 @test5() { + %r = and i64 undef, undef + ret i64 %r +} + +; @test6 +; CHECK: ret i64 undef +define i64 @test6() { + %r = or i64 undef, undef + ret i64 %r +} + +; @test7 +; CHECK: ret i64 undef +define i64 @test7() { + %r = udiv i64 undef, 1 + ret i64 %r +} + +; @test8 +; CHECK: ret i64 undef +define i64 @test8() { + %r = sdiv i64 undef, 1 + ret i64 %r +} + +; @test9 +; CHECK: ret i64 0 +define i64 @test9() { + %r = urem i64 undef, 1 + ret i64 %r +} + +; @test10 +; CHECK: ret i64 0 +define i64 @test10() { + %r = srem i64 undef, 1 + ret i64 %r +} + +; @test11 +; CHECK: ret i64 undef +define i64 @test11() { + %r = shl i64 undef, undef + ret i64 %r +} + +; @test12 +; CHECK: ret i64 undef +define i64 @test12() { + %r = ashr i64 undef, undef + ret i64 %r +} + +; @test13 +; CHECK: ret i64 undef +define i64 @test13() { + %r = lshr i64 undef, undef + ret i64 %r +} |

