diff options
Diffstat (limited to 'test')
-rw-r--r-- | test/Transforms/InstCombine/cast-sext-zext.ll | 21 | ||||
-rw-r--r-- | test/Transforms/InstCombine/cast.ll | 11 |
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 +} |