From ed70cbb3f367bc0f77d34d22163abbe4879526bc Mon Sep 17 00:00:00 2001 From: Evan Cheng Date: Wed, 26 Mar 2008 19:03:01 +0000 Subject: Avoid commuting a def MI in order to coalesce a copy instruction away if any use of the same val# is a copy instruction that has already been coalesced. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@48833 91177308-0d34-0410-b5e6-96231b3b80d8 --- test/CodeGen/X86/2007-03-26-CoalescerBug.ll | 49 +++++++++++++++++++++++++++++ 1 file changed, 49 insertions(+) create mode 100644 test/CodeGen/X86/2007-03-26-CoalescerBug.ll (limited to 'test/CodeGen/X86/2007-03-26-CoalescerBug.ll') diff --git a/test/CodeGen/X86/2007-03-26-CoalescerBug.ll b/test/CodeGen/X86/2007-03-26-CoalescerBug.ll new file mode 100644 index 0000000000..7ce0584c54 --- /dev/null +++ b/test/CodeGen/X86/2007-03-26-CoalescerBug.ll @@ -0,0 +1,49 @@ +; RUN: llvm-as < %s | llc -march=x86 + +@data = external global [339 x i64] + +define void @foo(...) { +bb1: + %t43 = load i64* getelementptr ([339 x i64]* @data, i32 0, i64 212), align 4 + br i1 false, label %bb80, label %bb6 +bb6: + br i1 false, label %bb38, label %bb265 +bb265: + ret void +bb38: + br i1 false, label %bb80, label %bb49 +bb80: + br i1 false, label %bb146, label %bb268 +bb49: + ret void +bb113: + ret void +bb268: + %t1062 = shl i64 %t43, 3 + %t1066 = shl i64 0, 3 + br label %bb85 +bb85: + %t1025 = phi i64 [ 0, %bb268 ], [ %t102.0, %bb234 ] + %t1028 = phi i64 [ 0, %bb268 ], [ %t1066, %bb234 ] + %t1031 = phi i64 [ 0, %bb268 ], [ %t103.0, %bb234 ] + %t1034 = phi i64 [ 0, %bb268 ], [ %t1066, %bb234 ] + %t102.0 = add i64 %t1028, %t1025 + %t103.0 = add i64 %t1034, %t1031 + br label %bb86 +bb86: + %t108.0 = phi i64 [ %t102.0, %bb85 ], [ %t1139, %bb248 ] + %t110.0 = phi i64 [ %t103.0, %bb85 ], [ %t1142, %bb248 ] + br label %bb193 +bb193: + %t1081 = add i64 %t110.0, -8 + %t1087 = add i64 %t108.0, -8 + br i1 false, label %bb193, label %bb248 +bb248: + %t1139 = add i64 %t108.0, %t1062 + %t1142 = add i64 %t110.0, %t1062 + br i1 false, label %bb86, label %bb234 +bb234: + br i1 false, label %bb85, label %bb113 +bb146: + ret void +} -- cgit v1.2.3