aboutsummaryrefslogtreecommitdiffstats
path: root/test/CodeGen/X86/lsr-quadratic-expand.ll
diff options
context:
space:
mode:
authorDan Gohman <gohman@apple.com>2011-03-02 01:34:10 +0000
committerDan Gohman <gohman@apple.com>2011-03-02 01:34:10 +0000
commit0cbe91ba3bd84a5ef68a1d0de5df6e955690b0a4 (patch)
tree70b49aa1042c0fade036961d38957c37e3e26e66 /test/CodeGen/X86/lsr-quadratic-expand.ll
parentf06e6c2ba717429936908254d53fa579bc941388 (diff)
downloadexternal_llvm-0cbe91ba3bd84a5ef68a1d0de5df6e955690b0a4.zip
external_llvm-0cbe91ba3bd84a5ef68a1d0de5df6e955690b0a4.tar.gz
external_llvm-0cbe91ba3bd84a5ef68a1d0de5df6e955690b0a4.tar.bz2
Don't re-use existing addrec expansions if they contain casts.
This fixes PR9259. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@126812 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'test/CodeGen/X86/lsr-quadratic-expand.ll')
-rw-r--r--test/CodeGen/X86/lsr-quadratic-expand.ll22
1 files changed, 22 insertions, 0 deletions
diff --git a/test/CodeGen/X86/lsr-quadratic-expand.ll b/test/CodeGen/X86/lsr-quadratic-expand.ll
new file mode 100644
index 0000000..2bbb470
--- /dev/null
+++ b/test/CodeGen/X86/lsr-quadratic-expand.ll
@@ -0,0 +1,22 @@
+; RUN: llc -march=x86-64 < %s
+
+define void @dw2102_i2c_transfer() nounwind {
+entry:
+ br label %bb
+
+bb: ; preds = %bb, %entry
+ %z = phi i64 [ 0, %entry ], [ %z3, %bb ]
+ %z1 = phi i16 [ undef, %entry ], [ %z6, %bb ]
+ %z2 = phi i32 [ 0, %entry ], [ %z8, %bb ]
+ %z3 = add i64 %z, 1
+ %z4 = zext i16 %z1 to i32
+ %z5 = add nsw i32 %z4, %z2
+ %z6 = trunc i32 %z5 to i16
+ call fastcc void @dw210x_op_rw(i16 zeroext %z6)
+ %z7 = getelementptr i8* null, i64 %z
+ store i8 undef, i8* %z7, align 1
+ %z8 = add nsw i32 %z2, 1
+ br label %bb
+}
+
+declare fastcc void @dw210x_op_rw(i16 zeroext) nounwind