aboutsummaryrefslogtreecommitdiffstats
path: root/test
diff options
context:
space:
mode:
Diffstat (limited to 'test')
-rw-r--r--test/Analysis/ScalarEvolution/2009-04-22-TruncCast.ll37
1 files changed, 37 insertions, 0 deletions
diff --git a/test/Analysis/ScalarEvolution/2009-04-22-TruncCast.ll b/test/Analysis/ScalarEvolution/2009-04-22-TruncCast.ll
new file mode 100644
index 0000000..4af79af
--- /dev/null
+++ b/test/Analysis/ScalarEvolution/2009-04-22-TruncCast.ll
@@ -0,0 +1,37 @@
+; RUN: llvm-as < %s | opt -analyze -scalar-evolution | grep truncate | not grep extend
+
+define i16 @test1(i8 %x) {
+ %A = sext i8 %x to i32
+ %B = trunc i32 %A to i16
+ ret i16 %B
+}
+
+define i8 @test2(i16 %x) {
+ %A = sext i16 %x to i32
+ %B = trunc i32 %A to i8
+ ret i8 %B
+}
+
+define i16 @test3(i16 %x) {
+ %A = sext i16 %x to i32
+ %B = trunc i32 %A to i16
+ ret i16 %B
+}
+
+define i16 @test4(i8 %x) {
+ %A = zext i8 %x to i32
+ %B = trunc i32 %A to i16
+ ret i16 %B
+}
+
+define i8 @test5(i16 %x) {
+ %A = zext i16 %x to i32
+ %B = trunc i32 %A to i8
+ ret i8 %B
+}
+
+define i16 @test6(i16 %x) {
+ %A = zext i16 %x to i32
+ %B = trunc i32 %A to i16
+ ret i16 %B
+}