summaryrefslogtreecommitdiffstats
path: root/llvm/test/Transforms/InstCombine
diff options
context:
space:
mode:
authorDavid Majnemer <david.majnemer@gmail.com>2015-05-21 23:04:21 +0000
committerDavid Majnemer <david.majnemer@gmail.com>2015-05-21 23:04:21 +0000
commit27e89ba24c60a917b4db63844db500c307014e50 (patch)
tree0ed0fba052f770aec13653c259aeaca19a008e99 /llvm/test/Transforms/InstCombine
parenteb31b68cefd5ab38ba61ac11c73108a5e344272d (diff)
downloadbcm5719-llvm-27e89ba24c60a917b4db63844db500c307014e50.tar.gz
bcm5719-llvm-27e89ba24c60a917b4db63844db500c307014e50.zip
[InstCombine] X - 0 is equal to X, not undef
A refactoring made @llvm.ssub.with.overflow.i32(i32 %X, i32 0) transform into undef instead of %X. This fixes PR23624. llvm-svn: 237968
Diffstat (limited to 'llvm/test/Transforms/InstCombine')
-rw-r--r--llvm/test/Transforms/InstCombine/intrinsics.ll8
1 files changed, 8 insertions, 0 deletions
diff --git a/llvm/test/Transforms/InstCombine/intrinsics.ll b/llvm/test/Transforms/InstCombine/intrinsics.ll
index f9ccf51a621..974ee4395b8 100644
--- a/llvm/test/Transforms/InstCombine/intrinsics.ll
+++ b/llvm/test/Transforms/InstCombine/intrinsics.ll
@@ -417,3 +417,11 @@ define %ov.result.32 @ssubtest_reorder(i8 %a) {
; CHECK-NEXT: %1 = insertvalue %ov.result.32 { i32 undef, i1 false }, i32 %x, 0
; CHECK-NEXT: ret %ov.result.32 %1
}
+
+define %ov.result.32 @never_overflows_ssub(i32 %a) {
+ %x = call %ov.result.32 @llvm.ssub.with.overflow.i32(i32 %a, i32 0)
+ ret %ov.result.32 %x
+; CHECK-LABEL: @never_overflows_ssub
+; CHECK-NEXT: %[[x:.*]] = insertvalue %ov.result.32 { i32 undef, i1 false }, i32 %a, 0
+; CHECK-NEXT: ret %ov.result.32 %[[x]]
+}
OpenPOWER on IntegriCloud