Remove llvm-upgrade and update tests.
[oota-llvm.git] / test / CodeGen / X86 / 2007-07-25-EpilogueBug.ll
1 ; RUN: llvm-as < %s | llc -mtriple=i686-pc-linux-gnu -mcpu=i386 | \
2 ; RUN:   %prcontext ret 1 | grep FP_REG_KILL
3 ; PR1573
4
5         %struct.c34006f__TsB = type { i8, i32, i32, %struct.c34006f__TsB___b___XVN }
6         %struct.c34006f__TsB___b___XVN = type { %struct.c34006f__TsB___b___XVN___O }
7         %struct.c34006f__TsB___b___XVN___O = type { float }
8
9 define fastcc i8 @c34006f__pkg__parentEQ.213(%struct.c34006f__TsB* %x, %struct.c34006f__TsB* %y) zeroext  {
10 entry:
11         %tmp190 = icmp eq i8 0, 0               ; <i1> [#uses=1]
12         %tmp207 = icmp eq i32 0, 0              ; <i1> [#uses=1]
13         %bothcond = and i1 %tmp190, %tmp207             ; <i1> [#uses=1]
14         %tmp224 = icmp eq i32 0, 0              ; <i1> [#uses=1]
15         %bothcond1 = and i1 %bothcond, %tmp224          ; <i1> [#uses=1]
16         br i1 %bothcond1, label %cond_next229, label %UnifiedReturnBlock
17
18 cond_next229:           ; preds = %entry
19         %tmp234 = icmp eq i8 0, 0               ; <i1> [#uses=1]
20         br i1 %tmp234, label %cond_false391, label %cond_true237
21
22 cond_true237:           ; preds = %cond_next229
23         %tmp268 = icmp sgt i32 0, -1            ; <i1> [#uses=2]
24         %max269 = select i1 %tmp268, i32 0, i32 0               ; <i32> [#uses=1]
25         %tmp305.op = add i32 0, -1              ; <i32> [#uses=1]
26         br i1 false, label %bb328, label %cond_next315
27
28 cond_next315:           ; preds = %cond_true237
29         ret i8 0
30
31 bb328:          ; preds = %cond_true237
32         %tmp337 = select i1 %tmp268, i32 %tmp305.op, i32 -1             ; <i32> [#uses=1]
33         %tmp347 = icmp eq i32 %tmp337, 0                ; <i1> [#uses=1]
34         br i1 %tmp347, label %cond_next351, label %UnifiedReturnBlock
35
36 cond_next351:           ; preds = %bb328
37         %tmp354 = getelementptr %struct.c34006f__TsB* %y, i32 0, i32 3          ; <%struct.c34006f__TsB___b___XVN*> [#uses=1]
38         %tmp354355 = bitcast %struct.c34006f__TsB___b___XVN* %tmp354 to i8*             ; <i8*> [#uses=1]
39         %tmp358 = getelementptr %struct.c34006f__TsB* %x, i32 0, i32 3          ; <%struct.c34006f__TsB___b___XVN*> [#uses=1]
40         %tmp358359 = bitcast %struct.c34006f__TsB___b___XVN* %tmp358 to i8*             ; <i8*> [#uses=1]
41         %tmp360 = tail call i32 (i8*, i8*, i32, ...)* @memcmp( i8* %tmp358359, i8* %tmp354355, i32 %max269 )            ; <i32> [#uses=0]
42         ret i8 0
43
44 cond_false391:          ; preds = %cond_next229
45         %tmp1 = getelementptr %struct.c34006f__TsB* %y, i32 0, i32 3, i32 0, i32 0
46         %tmp2 = load float* %tmp1
47         %tmp400 = fcmp une float %tmp2, 0.000000e+00            ; <i1> [#uses=1]
48         %not.tmp400 = xor i1 %tmp400, true              ; <i1> [#uses=1]
49         %retval = zext i1 %not.tmp400 to i8             ; <i8> [#uses=1]
50         ret i8 %retval
51
52 UnifiedReturnBlock:             ; preds = %bb328, %entry
53         ret i8 0
54 }
55
56 declare i32 @memcmp(i8*, i8*, i32, ...)