Author: evancheng
Date: Thu Jul 26 12:45:57 2007
New Revision: 40539

URL: http://llvm.org/viewvc/llvm-project?rev=40539&view=rev
Log:
Test case for PR1573.

Added:
    llvm/trunk/test/CodeGen/X86/2007-07-25-EpilogueBug.ll

Added: llvm/trunk/test/CodeGen/X86/2007-07-25-EpilogueBug.ll
URL: 
http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/X86/2007-07-25-EpilogueBug.ll?rev=40539&view=auto

==============================================================================
--- llvm/trunk/test/CodeGen/X86/2007-07-25-EpilogueBug.ll (added)
+++ llvm/trunk/test/CodeGen/X86/2007-07-25-EpilogueBug.ll Thu Jul 26 12:45:57 
2007
@@ -0,0 +1,54 @@
+; RUN: llvm-as < %s | llc -mtriple=i686-pc-linux-gnu -mcpu=i386 | \
+; RUN:   %prcontext ret 1 | grep FP_REG_KILL
+; PR1573
+
+       %struct.c34006f__TsB = type { i8, i32, i32, 
%struct.c34006f__TsB___b___XVN }
+       %struct.c34006f__TsB___b___XVN = type { 
%struct.c34006f__TsB___b___XVN___O }
+       %struct.c34006f__TsB___b___XVN___O = type { float }
+
+define fastcc i8 @c34006f__pkg__parentEQ.213(%struct.c34006f__TsB* %x, 
%struct.c34006f__TsB* %y) zeroext  {
+entry:
+       %tmp190 = icmp eq i8 0, 0               ; <i1> [#uses=1]
+       %tmp207 = icmp eq i32 0, 0              ; <i1> [#uses=1]
+       %bothcond = and i1 %tmp190, %tmp207             ; <i1> [#uses=1]
+       %tmp224 = icmp eq i32 0, 0              ; <i1> [#uses=1]
+       %bothcond1 = and i1 %bothcond, %tmp224          ; <i1> [#uses=1]
+       br i1 %bothcond1, label %cond_next229, label %UnifiedReturnBlock
+
+cond_next229:          ; preds = %entry
+       %tmp234 = icmp eq i8 0, 0               ; <i1> [#uses=1]
+       br i1 %tmp234, label %cond_false391, label %cond_true237
+
+cond_true237:          ; preds = %cond_next229
+       %tmp268 = icmp sgt i32 0, -1            ; <i1> [#uses=2]
+       %max269 = select i1 %tmp268, i32 0, i32 0               ; <i32> 
[#uses=1]
+       %tmp305.op = add i32 0, -1              ; <i32> [#uses=1]
+       br i1 false, label %bb328, label %cond_next315
+
+cond_next315:          ; preds = %cond_true237
+       ret i8 0
+
+bb328:         ; preds = %cond_true237
+       %tmp337 = select i1 %tmp268, i32 %tmp305.op, i32 -1             ; <i32> 
[#uses=1]
+       %tmp347 = icmp eq i32 %tmp337, 0                ; <i1> [#uses=1]
+       br i1 %tmp347, label %cond_next351, label %UnifiedReturnBlock
+
+cond_next351:          ; preds = %bb328
+       %tmp354 = getelementptr %struct.c34006f__TsB* %y, i32 0, i32 3          
; <%struct.c34006f__TsB___b___XVN*> [#uses=1]
+       %tmp354355 = bitcast %struct.c34006f__TsB___b___XVN* %tmp354 to i8*     
        ; <i8*> [#uses=1]
+       %tmp358 = getelementptr %struct.c34006f__TsB* %x, i32 0, i32 3          
; <%struct.c34006f__TsB___b___XVN*> [#uses=1]
+       %tmp358359 = bitcast %struct.c34006f__TsB___b___XVN* %tmp358 to i8*     
        ; <i8*> [#uses=1]
+       %tmp360 = tail call i32 (i8*, i8*, i32, ...)* @memcmp( i8* %tmp358359, 
i8* %tmp354355, i32 %max269 )            ; <i32> [#uses=0]
+       ret i8 0
+
+cond_false391:         ; preds = %cond_next229
+       %tmp400 = fcmp une float 0.000000e+00, 0.000000e+00             ; <i1> 
[#uses=1]
+       %not.tmp400 = xor i1 %tmp400, true              ; <i1> [#uses=1]
+       %retval = zext i1 %not.tmp400 to i8             ; <i8> [#uses=1]
+       ret i8 %retval
+
+UnifiedReturnBlock:            ; preds = %bb328, %entry
+       ret i8 0
+}
+
+declare i32 @memcmp(i8*, i8*, i32, ...)


_______________________________________________
llvm-commits mailing list
llvm-commits@cs.uiuc.edu
http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits

Reply via email to