summaryrefslogtreecommitdiff
path: root/test/CodeGen/X86/2007-12-18-LoadCSEBug.ll
diff options
context:
space:
mode:
authorEvan Cheng <evan.cheng@apple.com>2007-12-18 19:38:14 +0000
committerEvan Cheng <evan.cheng@apple.com>2007-12-18 19:38:14 +0000
commit636e5a216c8dab7567b5e5d8d1c7d982f507f7eb (patch)
tree568ba9b4dfda2f4e9fed78e24bab46b8f30b7430 /test/CodeGen/X86/2007-12-18-LoadCSEBug.ll
parent18edd2060526c4060a91d88b50be35c8f15a71e9 (diff)
downloadllvm-636e5a216c8dab7567b5e5d8d1c7d982f507f7eb.tar.gz
llvm-636e5a216c8dab7567b5e5d8d1c7d982f507f7eb.tar.bz2
llvm-636e5a216c8dab7567b5e5d8d1c7d982f507f7eb.tar.xz
Fix PR1872: SrcValue and SrcValueOffset should not be used to compute load / store node id.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45167 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'test/CodeGen/X86/2007-12-18-LoadCSEBug.ll')
-rw-r--r--test/CodeGen/X86/2007-12-18-LoadCSEBug.ll28
1 files changed, 28 insertions, 0 deletions
diff --git a/test/CodeGen/X86/2007-12-18-LoadCSEBug.ll b/test/CodeGen/X86/2007-12-18-LoadCSEBug.ll
new file mode 100644
index 0000000000..6309f3c510
--- /dev/null
+++ b/test/CodeGen/X86/2007-12-18-LoadCSEBug.ll
@@ -0,0 +1,28 @@
+; RUN: llvm-as < %s | llc -march=x86 | grep {(%esp)} | count 2
+; PR1872
+
+ %struct.c34007g__designated___XUB = type { i32, i32, i32, i32 }
+ %struct.c34007g__pkg__parent = type { i32*, %struct.c34007g__designated___XUB* }
+
+define void @_ada_c34007g() {
+entry:
+ %x8 = alloca %struct.c34007g__pkg__parent, align 8 ; <%struct.c34007g__pkg__parent*> [#uses=2]
+ %tmp1272 = getelementptr %struct.c34007g__pkg__parent* %x8, i32 0, i32 0 ; <i32**> [#uses=1]
+ %x82167 = bitcast %struct.c34007g__pkg__parent* %x8 to i64* ; <i64*> [#uses=1]
+ br i1 true, label %bb4668, label %bb848
+
+bb4668: ; preds = %bb4648
+ %tmp5464 = load i64* %x82167, align 8 ; <i64> [#uses=1]
+ %tmp5467 = icmp ne i64 0, %tmp5464 ; <i1> [#uses=1]
+ %tmp5470 = load i32** %tmp1272, align 8 ; <i32*> [#uses=1]
+ %tmp5471 = icmp eq i32* %tmp5470, null ; <i1> [#uses=1]
+ %tmp5475 = or i1 %tmp5471, %tmp5467 ; <i1> [#uses=1]
+ %tmp5497 = or i1 %tmp5475, false ; <i1> [#uses=1]
+ br i1 %tmp5497, label %bb848, label %bb5507
+
+bb848: ; preds = %entry
+ ret void
+
+bb5507: ; preds = %bb4668
+ ret void
+}