aboutsummaryrefslogtreecommitdiffstats
path: root/test
diff options
context:
space:
mode:
Diffstat (limited to 'test')
-rw-r--r--test/Transforms/InstCombine/cast-sext-zext.ll21
-rw-r--r--test/Transforms/InstCombine/cast.ll11
2 files changed, 11 insertions, 21 deletions
diff --git a/test/Transforms/InstCombine/cast-sext-zext.ll b/test/Transforms/InstCombine/cast-sext-zext.ll
deleted file mode 100644
index 678874a..0000000
--- a/test/Transforms/InstCombine/cast-sext-zext.ll
+++ /dev/null
@@ -1,21 +0,0 @@
-; RUN: opt < %s -instcombine -S | not grep sext
-; XFAIL: *
-; rdar://6598839
-
-define zeroext i16 @t(i8 zeroext %on_off, i16* nocapture %puls) nounwind readonly {
-entry:
- %0 = zext i8 %on_off to i32
- %1 = add i32 %0, -1
- %2 = sext i32 %1 to i64
- %3 = getelementptr i16* %puls, i64 %2
- %4 = load i16* %3, align 2
- ret i16 %4
-}
-
-define zeroext i64 @t2(i8 zeroext %on_off) nounwind readonly {
-entry:
- %0 = zext i8 %on_off to i32
- %1 = add i32 %0, -1
- %2 = sext i32 %1 to i64
- ret i64 %2 ;; Should be (add (zext i8 -> i64), -1)
-}
diff --git a/test/Transforms/InstCombine/cast.ll b/test/Transforms/InstCombine/cast.ll
index a6c6795..10e5050 100644
--- a/test/Transforms/InstCombine/cast.ll
+++ b/test/Transforms/InstCombine/cast.ll
@@ -381,3 +381,14 @@ define i32 @test42(i32 %X) {
; CHECK: %Z = and i32 %X, 255
}
+; rdar://6598839
+define zeroext i64 @test43(i8 zeroext %on_off) nounwind readonly {
+ %A = zext i8 %on_off to i32
+ %B = add i32 %A, -1
+ %C = sext i32 %B to i64
+ ret i64 %C ;; Should be (add (zext i8 -> i64), -1)
+; CHECK: @test43
+; CHECK-NEXT: %A = zext i8 %on_off to i64
+; CHECK-NEXT: %B = add i64 %A, -1
+; CHECK-NEXT: ret i64 %B
+}