diff options
| author | David Majnemer <david.majnemer@gmail.com> | 2017-01-06 22:58:02 +0000 |
|---|---|---|
| committer | David Majnemer <david.majnemer@gmail.com> | 2017-01-06 22:58:02 +0000 |
| commit | 63da0c238bfb90a1d04e94ab92fe122cff72dc0d (patch) | |
| tree | 45b6da4dc472e767b957fbf7ff83bfb935939ca5 /llvm/test | |
| parent | e5945871cfb954d80cbeb9c99a26f02b41decae6 (diff) | |
| download | bcm5719-llvm-63da0c238bfb90a1d04e94ab92fe122cff72dc0d.tar.gz bcm5719-llvm-63da0c238bfb90a1d04e94ab92fe122cff72dc0d.zip | |
[InstSimplify] Optimize away udivs in the presence of range metadata
We know that udiv %V, C can be optimized away to 0 if %V is ult C.
llvm-svn: 291296
Diffstat (limited to 'llvm/test')
| -rw-r--r-- | llvm/test/Transforms/InstSimplify/div.ll | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/llvm/test/Transforms/InstSimplify/div.ll b/llvm/test/Transforms/InstSimplify/div.ll new file mode 100644 index 00000000000..b8ce34aaa37 --- /dev/null +++ b/llvm/test/Transforms/InstSimplify/div.ll @@ -0,0 +1,15 @@ +; RUN: opt < %s -instsimplify -S | FileCheck %s + +declare i32 @external() + +define i32 @div1() { +; CHECK-LABEL: @div1( +; CHECK: [[CALL:%.*]] = call i32 @external(), !range !0 +; CHECK-NEXT: ret i32 0 +; + %call = call i32 @external(), !range !0 + %urem = udiv i32 %call, 3 + ret i32 %urem +} + +!0 = !{i32 0, i32 3} |

