| Reid Spencer | 6e87ec4 | 2007-04-16 17:36:08 +0000 | [diff] [blame] | 1 | ; RUN: llvm-as < %s | llc -march=x86 | grep 8388635 | 
| Reid Spencer | 4dcf8bf | 2007-04-16 15:31:49 +0000 | [diff] [blame] | 2 | ; RUN: llvm-as < %s | llc -march=x86-64 | grep 4294981120 | 
| Anton Korobeynikov | 8a1a84f | 2007-04-14 13:25:55 +0000 | [diff] [blame] | 3 | ; PR 1325 | 
|  | 4 |  | 
| Anton Korobeynikov | 8a1a84f | 2007-04-14 13:25:55 +0000 | [diff] [blame] | 5 | ; ModuleID = 'bugpoint.test.bc' | 
|  | 6 | target datalayout = "E-p:32:32:32-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:32:64-f32:32:32-f64:32:64-v64:64:64-v128:128:128-a0:0:64" | 
|  | 7 | target triple = "powerpc-apple-darwin8.8.0" | 
|  | 8 | ;target triple = "i686-linux-gnu" | 
|  | 9 | %struct.FILE = type { i8*, i32, i32, i16, i16, %struct.__sbuf, i32, i8*, i32 (i8*)*, i32 (i8*, i8*, i32)*, i64 (i8*, i64, i32)*, i32 (i8*, i8*, i32)*, %struct.__sbuf, %struct.__sFILEX*, i32, [3 x i8], [1 x i8], %struct.__sbuf, i32, i64 } | 
|  | 10 | %struct.__sFILEX = type opaque | 
|  | 11 | %struct.__sbuf = type { i8*, i32 } | 
|  | 12 | @PL_rsfp = external global %struct.FILE*		; <%struct.FILE**> [#uses=1] | 
|  | 13 | @PL_bufend = external global i8*		; <i8**> [#uses=1] | 
|  | 14 | @PL_in_eval = external global i32		; <i32*> [#uses=1] | 
|  | 15 |  | 
|  | 16 | declare fastcc void @incline(i8*) | 
|  | 17 |  | 
|  | 18 | define i16 @Perl_skipspace_bb60(i8* %s, i8** %s_addr.4.out) { | 
|  | 19 | newFuncRoot: | 
|  | 20 | %tmp138.loc = alloca i8*		; <i8**> [#uses=2] | 
|  | 21 | %s_addr.4.loc = alloca i8*		; <i8**> [#uses=2] | 
|  | 22 | %tmp274.loc = alloca i8*		; <i8**> [#uses=2] | 
|  | 23 | br label %bb60 | 
|  | 24 |  | 
|  | 25 | cond_next154.UnifiedReturnBlock_crit_edge.exitStub:		; preds = %codeRepl | 
|  | 26 | store i8* %s_addr.4.reload, i8** %s_addr.4.out | 
|  | 27 | ret i16 0 | 
|  | 28 |  | 
|  | 29 | cond_next161.UnifiedReturnBlock_crit_edge.exitStub:		; preds = %codeRepl | 
|  | 30 | store i8* %s_addr.4.reload, i8** %s_addr.4.out | 
|  | 31 | ret i16 1 | 
|  | 32 |  | 
|  | 33 | cond_next167.UnifiedReturnBlock_crit_edge.exitStub:		; preds = %codeRepl | 
|  | 34 | store i8* %s_addr.4.reload, i8** %s_addr.4.out | 
|  | 35 | ret i16 2 | 
|  | 36 |  | 
|  | 37 | cond_false29.i.cond_true190_crit_edge.exitStub:		; preds = %codeRepl | 
|  | 38 | store i8* %s_addr.4.reload, i8** %s_addr.4.out | 
|  | 39 | ret i16 3 | 
|  | 40 |  | 
|  | 41 | cond_next.i.cond_true190_crit_edge.exitStub:		; preds = %codeRepl | 
|  | 42 | store i8* %s_addr.4.reload, i8** %s_addr.4.out | 
|  | 43 | ret i16 4 | 
|  | 44 |  | 
|  | 45 | cond_true19.i.cond_true190_crit_edge.exitStub:		; preds = %codeRepl | 
|  | 46 | store i8* %s_addr.4.reload, i8** %s_addr.4.out | 
|  | 47 | ret i16 5 | 
|  | 48 |  | 
|  | 49 | bb60:		; preds = %bb60.backedge, %newFuncRoot | 
|  | 50 | %s_addr.2 = phi i8* [ %s, %newFuncRoot ], [ %s_addr.2.be, %bb60.backedge ]		; <i8*> [#uses=3] | 
|  | 51 | %tmp61 = load i8** @PL_bufend		; <i8*> [#uses=1] | 
|  | 52 | %tmp63 = icmp ult i8* %s_addr.2, %tmp61		; <i1> [#uses=1] | 
|  | 53 | br i1 %tmp63, label %bb60.cond_next67_crit_edge, label %bb60.bb101_crit_edge | 
|  | 54 |  | 
|  | 55 | bb37:		; preds = %cond_next67.bb37_crit_edge5, %cond_next67.bb37_crit_edge4, %cond_next67.bb37_crit_edge3, %cond_next67.bb37_crit_edge2, %cond_next67.bb37_crit_edge | 
|  | 56 | %tmp40 = icmp eq i8 %tmp69, 10		; <i1> [#uses=1] | 
|  | 57 | %tmp43 = getelementptr i8* %s_addr.27.2, i32 1		; <i8*> [#uses=5] | 
|  | 58 | br i1 %tmp40, label %cond_true45, label %bb37.bb60_crit_edge | 
|  | 59 |  | 
|  | 60 | cond_true45:		; preds = %bb37 | 
|  | 61 | %tmp46 = volatile load i32* @PL_in_eval		; <i32> [#uses=1] | 
|  | 62 | %tmp47 = icmp eq i32 %tmp46, 0		; <i1> [#uses=1] | 
|  | 63 | br i1 %tmp47, label %cond_true45.bb60_crit_edge, label %cond_true50 | 
|  | 64 |  | 
|  | 65 | cond_true50:		; preds = %cond_true45 | 
|  | 66 | %tmp51 = volatile load %struct.FILE** @PL_rsfp		; <%struct.FILE*> [#uses=1] | 
|  | 67 | %tmp52 = icmp eq %struct.FILE* %tmp51, null		; <i1> [#uses=1] | 
|  | 68 | br i1 %tmp52, label %cond_true55, label %cond_true50.bb60_crit_edge | 
|  | 69 |  | 
|  | 70 | cond_true55:		; preds = %cond_true50 | 
|  | 71 | tail call fastcc void @incline( i8* %tmp43 ) | 
|  | 72 | br label %bb60.backedge | 
|  | 73 |  | 
|  | 74 | cond_next67:		; preds = %Perl_newSV.exit.cond_next67_crit_edge, %cond_true148.cond_next67_crit_edge, %bb60.cond_next67_crit_edge | 
|  | 75 | %s_addr.27.2 = phi i8* [ %s_addr.2, %bb60.cond_next67_crit_edge ], [ %tmp274.reload, %Perl_newSV.exit.cond_next67_crit_edge ], [ %tmp138.reload, %cond_true148.cond_next67_crit_edge ]		; <i8*> [#uses=3] | 
|  | 76 | %tmp69 = load i8* %s_addr.27.2		; <i8> [#uses=2] | 
|  | 77 | switch i8 %tmp69, label %cond_next67.bb101_crit_edge [ | 
|  | 78 | i8 32, label %cond_next67.bb37_crit_edge | 
|  | 79 | i8 9, label %cond_next67.bb37_crit_edge2 | 
|  | 80 | i8 10, label %cond_next67.bb37_crit_edge3 | 
|  | 81 | i8 13, label %cond_next67.bb37_crit_edge4 | 
|  | 82 | i8 12, label %cond_next67.bb37_crit_edge5 | 
|  | 83 | ] | 
|  | 84 |  | 
|  | 85 | codeRepl:		; preds = %bb101.preheader | 
|  | 86 | %targetBlock = call i16 @Perl_skipspace_bb60_bb101( i8* %s_addr.27.3.ph, i8** %tmp274.loc, i8** %s_addr.4.loc, i8** %tmp138.loc )		; <i16> [#uses=1] | 
|  | 87 | %tmp274.reload = load i8** %tmp274.loc		; <i8*> [#uses=4] | 
|  | 88 | %s_addr.4.reload = load i8** %s_addr.4.loc		; <i8*> [#uses=6] | 
|  | 89 | %tmp138.reload = load i8** %tmp138.loc		; <i8*> [#uses=1] | 
|  | 90 | switch i16 %targetBlock, label %cond_true19.i.cond_true190_crit_edge.exitStub [ | 
|  | 91 | i16 0, label %cond_next271.bb60_crit_edge | 
|  | 92 | i16 1, label %cond_true290.bb60_crit_edge | 
|  | 93 | i16 2, label %cond_true295.bb60_crit_edge | 
|  | 94 | i16 3, label %Perl_newSV.exit.cond_next67_crit_edge | 
|  | 95 | i16 4, label %cond_true148.cond_next67_crit_edge | 
|  | 96 | i16 5, label %cond_next154.UnifiedReturnBlock_crit_edge.exitStub | 
|  | 97 | i16 6, label %cond_next161.UnifiedReturnBlock_crit_edge.exitStub | 
|  | 98 | i16 7, label %cond_next167.UnifiedReturnBlock_crit_edge.exitStub | 
|  | 99 | i16 8, label %cond_false29.i.cond_true190_crit_edge.exitStub | 
|  | 100 | i16 9, label %cond_next.i.cond_true190_crit_edge.exitStub | 
|  | 101 | ] | 
|  | 102 |  | 
|  | 103 | bb37.bb60_crit_edge:		; preds = %bb37 | 
|  | 104 | br label %bb60.backedge | 
|  | 105 |  | 
|  | 106 | cond_true45.bb60_crit_edge:		; preds = %cond_true45 | 
|  | 107 | br label %bb60.backedge | 
|  | 108 |  | 
|  | 109 | cond_true50.bb60_crit_edge:		; preds = %cond_true50 | 
|  | 110 | br label %bb60.backedge | 
|  | 111 |  | 
|  | 112 | bb60.cond_next67_crit_edge:		; preds = %bb60 | 
|  | 113 | br label %cond_next67 | 
|  | 114 |  | 
|  | 115 | bb60.bb101_crit_edge:		; preds = %bb60 | 
|  | 116 | br label %bb101.preheader | 
|  | 117 |  | 
|  | 118 | cond_next67.bb101_crit_edge:		; preds = %cond_next67 | 
|  | 119 | br label %bb101.preheader | 
|  | 120 |  | 
|  | 121 | cond_next67.bb37_crit_edge:		; preds = %cond_next67 | 
|  | 122 | br label %bb37 | 
|  | 123 |  | 
|  | 124 | cond_next67.bb37_crit_edge2:		; preds = %cond_next67 | 
|  | 125 | br label %bb37 | 
|  | 126 |  | 
|  | 127 | cond_next67.bb37_crit_edge3:		; preds = %cond_next67 | 
|  | 128 | br label %bb37 | 
|  | 129 |  | 
|  | 130 | cond_next67.bb37_crit_edge4:		; preds = %cond_next67 | 
|  | 131 | br label %bb37 | 
|  | 132 |  | 
|  | 133 | cond_next67.bb37_crit_edge5:		; preds = %cond_next67 | 
|  | 134 | br label %bb37 | 
|  | 135 |  | 
|  | 136 | cond_true148.cond_next67_crit_edge:		; preds = %codeRepl | 
|  | 137 | br label %cond_next67 | 
|  | 138 |  | 
|  | 139 | cond_next271.bb60_crit_edge:		; preds = %codeRepl | 
|  | 140 | br label %bb60.backedge | 
|  | 141 |  | 
|  | 142 | cond_true290.bb60_crit_edge:		; preds = %codeRepl | 
|  | 143 | br label %bb60.backedge | 
|  | 144 |  | 
|  | 145 | cond_true295.bb60_crit_edge:		; preds = %codeRepl | 
|  | 146 | br label %bb60.backedge | 
|  | 147 |  | 
|  | 148 | Perl_newSV.exit.cond_next67_crit_edge:		; preds = %codeRepl | 
|  | 149 | br label %cond_next67 | 
|  | 150 |  | 
|  | 151 | bb101.preheader:		; preds = %cond_next67.bb101_crit_edge, %bb60.bb101_crit_edge | 
|  | 152 | %s_addr.27.3.ph = phi i8* [ %s_addr.27.2, %cond_next67.bb101_crit_edge ], [ %s_addr.2, %bb60.bb101_crit_edge ]		; <i8*> [#uses=1] | 
|  | 153 | br label %codeRepl | 
|  | 154 |  | 
|  | 155 | bb60.backedge:		; preds = %cond_true295.bb60_crit_edge, %cond_true290.bb60_crit_edge, %cond_next271.bb60_crit_edge, %cond_true50.bb60_crit_edge, %cond_true45.bb60_crit_edge, %bb37.bb60_crit_edge, %cond_true55 | 
|  | 156 | %s_addr.2.be = phi i8* [ %tmp43, %cond_true55 ], [ %tmp43, %bb37.bb60_crit_edge ], [ %tmp43, %cond_true45.bb60_crit_edge ], [ %tmp43, %cond_true50.bb60_crit_edge ], [ %tmp274.reload, %cond_next271.bb60_crit_edge ], [ %tmp274.reload, %cond_true290.bb60_crit_edge ], [ %tmp274.reload, %cond_true295.bb60_crit_edge ]		; <i8*> [#uses=1] | 
|  | 157 | br label %bb60 | 
|  | 158 | } | 
|  | 159 |  | 
|  | 160 | declare i16 @Perl_skipspace_bb60_bb101(i8*, i8**, i8**, i8**) |