summaryrefslogtreecommitdiffstats
path: root/llvm/test/Transforms/InstCombine
diff options
context:
space:
mode:
Diffstat (limited to 'llvm/test/Transforms/InstCombine')
-rw-r--r--llvm/test/Transforms/InstCombine/icmp-shl-nuw.ll9
-rw-r--r--llvm/test/Transforms/InstCombine/icmp.ll6
2 files changed, 7 insertions, 8 deletions
diff --git a/llvm/test/Transforms/InstCombine/icmp-shl-nuw.ll b/llvm/test/Transforms/InstCombine/icmp-shl-nuw.ll
index d5a1b87565a..4ded0a4d93b 100644
--- a/llvm/test/Transforms/InstCombine/icmp-shl-nuw.ll
+++ b/llvm/test/Transforms/InstCombine/icmp-shl-nuw.ll
@@ -14,8 +14,8 @@ define i1 @icmp_ugt_32(i64) {
define i1 @icmp_ule_64(i128) {
; CHECK-LABEL: @icmp_ule_64(
-; CHECK-NEXT: [[TMP2:%.*]] = trunc i128 %0 to i64
-; CHECK-NEXT: [[D:%.*]] = icmp eq i64 [[TMP2]], 0
+; CHECK-NEXT: [[C:%.*]] = shl nuw i128 %0, 64
+; CHECK-NEXT: [[D:%.*]] = icmp ult i128 [[C]], 18446744073709551616
; CHECK-NEXT: ret i1 [[D]]
;
%c = shl nuw i128 %0, 64
@@ -34,11 +34,10 @@ define i1 @icmp_ugt_16(i64) {
ret i1 %d
}
-; FIXME: InstCombine ought not to emit the potentially illegal i48.
define <2 x i1> @icmp_ule_16x2(<2 x i64>) {
; CHECK-LABEL: @icmp_ule_16x2(
-; CHECK-NEXT: [[TMP2:%.*]] = trunc <2 x i64> %0 to <2 x i48>
-; CHECK-NEXT: [[D:%.*]] = icmp eq <2 x i48> [[TMP2]], zeroinitializer
+; CHECK-NEXT: [[C:%.*]] = shl nuw <2 x i64> %0, <i64 16, i64 16>
+; CHECK-NEXT: [[D:%.*]] = icmp ult <2 x i64> [[C]], <i64 65536, i64 65536>
; CHECK-NEXT: ret <2 x i1> [[D]]
;
%c = shl nuw <2 x i64> %0, <i64 16, i64 16>
diff --git a/llvm/test/Transforms/InstCombine/icmp.ll b/llvm/test/Transforms/InstCombine/icmp.ll
index 57e02a47e55..099aaca5f7d 100644
--- a/llvm/test/Transforms/InstCombine/icmp.ll
+++ b/llvm/test/Transforms/InstCombine/icmp.ll
@@ -1208,12 +1208,12 @@ define i1 @icmp_shl16(i32 %x) {
ret i1 %cmp
}
-; FIXME: We shouldn't be creating illegal types like i15 in InstCombine.
+; D25952: Don't create illegal types like i15 in InstCombine
define i1 @icmp_shl17(i32 %x) {
; CHECK-LABEL: @icmp_shl17(
-; CHECK-NEXT: [[TMP1:%.*]] = trunc i32 %x to i15
-; CHECK-NEXT: [[CMP:%.*]] = icmp slt i15 [[TMP1]], 18
+; CHECK-NEXT: [[SHL:%.*]] = shl i32 %x, 17
+; CHECK-NEXT: [[CMP:%.*]] = icmp slt i32 [[SHL]], 2359296
; CHECK-NEXT: ret i1 [[CMP]]
;
%shl = shl i32 %x, 17
OpenPOWER on IntegriCloud