diff options
author | David Majnemer <david.majnemer@gmail.com> | 2017-01-06 21:23:51 +0000 |
---|---|---|
committer | David Majnemer <david.majnemer@gmail.com> | 2017-01-06 21:23:51 +0000 |
commit | 8c0e62f507e2988ff54f6f909f5719c0e8fdb041 (patch) | |
tree | 5b9b2d6f0072b25aa88765ce1bae507c3b3a4242 /llvm/test/Transforms/InstSimplify/rem.ll | |
parent | 27d224fbbb5185bb84df5535ff8682560796ee18 (diff) | |
download | bcm5719-llvm-8c0e62f507e2988ff54f6f909f5719c0e8fdb041.tar.gz bcm5719-llvm-8c0e62f507e2988ff54f6f909f5719c0e8fdb041.zip |
[InstSimplify] Optimize away urems in the presence of range metadata
We know that urem %V, C can be optimized away to %V if %V is ult C.
llvm-svn: 291282
Diffstat (limited to 'llvm/test/Transforms/InstSimplify/rem.ll')
-rw-r--r-- | llvm/test/Transforms/InstSimplify/rem.ll | 14 |
1 files changed, 14 insertions, 0 deletions
diff --git a/llvm/test/Transforms/InstSimplify/rem.ll b/llvm/test/Transforms/InstSimplify/rem.ll index df3f659b782..c73d34346de 100644 --- a/llvm/test/Transforms/InstSimplify/rem.ll +++ b/llvm/test/Transforms/InstSimplify/rem.ll @@ -49,3 +49,17 @@ define i32 @rem3(i32 %x, i32 %n) { %mod1 = urem i32 %mod, %n ret i32 %mod1 } + +declare i32 @external() + +define i32 @rem4() { +; CHECK-LABEL: @rem4( +; CHECK: [[CALL:%.*]] = call i32 @external(), !range !0 +; CHECK-NEXT: ret i32 [[CALL]] +; + %call = call i32 @external(), !range !0 + %urem = urem i32 %call, 3 + ret i32 %urem +} + +!0 = !{i32 0, i32 3} |