| Jan Wen Voung | 6dc3076 | 2013-03-12 16:27:52 +0000 | [diff] [blame^] | 1 | ; REQUIRES: asserts | 
| Chandler Carruth | 5da5343 | 2012-07-02 18:37:59 +0000 | [diff] [blame] | 2 | ; RUN: llc < %s -march=x86 -mcpu=yonah -stats 2>&1 | grep "Number of block tails merged" | grep 16 | 
| Evan Cheng | 634a8f9 | 2008-02-19 02:09:58 +0000 | [diff] [blame] | 3 | ; PR1909 | 
|  | 4 |  | 
|  | 5 | @.str = internal constant [48 x i8] c"transformed bounds: (%.2f, %.2f), (%.2f, %.2f)\0A\00"		; <[48 x i8]*> [#uses=1] | 
|  | 6 |  | 
| Bob Wilson | 3ab552e | 2009-10-28 22:10:20 +0000 | [diff] [blame] | 7 | define void @minmax(float* %result) nounwind optsize { | 
| Evan Cheng | 634a8f9 | 2008-02-19 02:09:58 +0000 | [diff] [blame] | 8 | entry: | 
|  | 9 | %tmp2 = load float* %result, align 4		; <float> [#uses=6] | 
|  | 10 | %tmp4 = getelementptr float* %result, i32 2		; <float*> [#uses=5] | 
|  | 11 | %tmp5 = load float* %tmp4, align 4		; <float> [#uses=10] | 
|  | 12 | %tmp7 = getelementptr float* %result, i32 4		; <float*> [#uses=5] | 
|  | 13 | %tmp8 = load float* %tmp7, align 4		; <float> [#uses=8] | 
|  | 14 | %tmp10 = getelementptr float* %result, i32 6		; <float*> [#uses=3] | 
|  | 15 | %tmp11 = load float* %tmp10, align 4		; <float> [#uses=8] | 
|  | 16 | %tmp12 = fcmp olt float %tmp8, %tmp11		; <i1> [#uses=5] | 
|  | 17 | br i1 %tmp12, label %bb, label %bb21 | 
|  | 18 |  | 
|  | 19 | bb:		; preds = %entry | 
|  | 20 | %tmp23469 = fcmp olt float %tmp5, %tmp8		; <i1> [#uses=1] | 
|  | 21 | br i1 %tmp23469, label %bb26, label %bb30 | 
|  | 22 |  | 
|  | 23 | bb21:		; preds = %entry | 
|  | 24 | %tmp23 = fcmp olt float %tmp5, %tmp11		; <i1> [#uses=1] | 
|  | 25 | br i1 %tmp23, label %bb26, label %bb30 | 
|  | 26 |  | 
|  | 27 | bb26:		; preds = %bb21, %bb | 
|  | 28 | %tmp52471 = fcmp olt float %tmp2, %tmp5		; <i1> [#uses=1] | 
|  | 29 | br i1 %tmp52471, label %bb111, label %bb59 | 
|  | 30 |  | 
|  | 31 | bb30:		; preds = %bb21, %bb | 
|  | 32 | br i1 %tmp12, label %bb40, label %bb50 | 
|  | 33 |  | 
|  | 34 | bb40:		; preds = %bb30 | 
|  | 35 | %tmp52473 = fcmp olt float %tmp2, %tmp8		; <i1> [#uses=1] | 
|  | 36 | br i1 %tmp52473, label %bb111, label %bb59 | 
|  | 37 |  | 
|  | 38 | bb50:		; preds = %bb30 | 
|  | 39 | %tmp52 = fcmp olt float %tmp2, %tmp11		; <i1> [#uses=1] | 
|  | 40 | br i1 %tmp52, label %bb111, label %bb59 | 
|  | 41 |  | 
|  | 42 | bb59:		; preds = %bb50, %bb40, %bb26 | 
|  | 43 | br i1 %tmp12, label %bb72, label %bb80 | 
|  | 44 |  | 
|  | 45 | bb72:		; preds = %bb59 | 
|  | 46 | %tmp82475 = fcmp olt float %tmp5, %tmp8		; <i1> [#uses=2] | 
|  | 47 | %brmerge786 = or i1 %tmp82475, %tmp12		; <i1> [#uses=1] | 
|  | 48 | %tmp4.mux787 = select i1 %tmp82475, float* %tmp4, float* %tmp7		; <float*> [#uses=1] | 
|  | 49 | br i1 %brmerge786, label %bb111, label %bb103 | 
|  | 50 |  | 
|  | 51 | bb80:		; preds = %bb59 | 
|  | 52 | %tmp82 = fcmp olt float %tmp5, %tmp11		; <i1> [#uses=2] | 
|  | 53 | %brmerge = or i1 %tmp82, %tmp12		; <i1> [#uses=1] | 
|  | 54 | %tmp4.mux = select i1 %tmp82, float* %tmp4, float* %tmp7		; <float*> [#uses=1] | 
|  | 55 | br i1 %brmerge, label %bb111, label %bb103 | 
|  | 56 |  | 
|  | 57 | bb103:		; preds = %bb80, %bb72 | 
|  | 58 | br label %bb111 | 
|  | 59 |  | 
|  | 60 | bb111:		; preds = %bb103, %bb80, %bb72, %bb50, %bb40, %bb26 | 
|  | 61 | %iftmp.0.0.in = phi float* [ %tmp10, %bb103 ], [ %result, %bb26 ], [ %result, %bb40 ], [ %result, %bb50 ], [ %tmp4.mux, %bb80 ], [ %tmp4.mux787, %bb72 ]		; <float*> [#uses=1] | 
|  | 62 | %iftmp.0.0 = load float* %iftmp.0.0.in		; <float> [#uses=1] | 
|  | 63 | %tmp125 = fcmp ogt float %tmp8, %tmp11		; <i1> [#uses=5] | 
|  | 64 | br i1 %tmp125, label %bb128, label %bb136 | 
|  | 65 |  | 
|  | 66 | bb128:		; preds = %bb111 | 
|  | 67 | %tmp138477 = fcmp ogt float %tmp5, %tmp8		; <i1> [#uses=1] | 
|  | 68 | br i1 %tmp138477, label %bb141, label %bb145 | 
|  | 69 |  | 
|  | 70 | bb136:		; preds = %bb111 | 
|  | 71 | %tmp138 = fcmp ogt float %tmp5, %tmp11		; <i1> [#uses=1] | 
|  | 72 | br i1 %tmp138, label %bb141, label %bb145 | 
|  | 73 |  | 
|  | 74 | bb141:		; preds = %bb136, %bb128 | 
|  | 75 | %tmp167479 = fcmp ogt float %tmp2, %tmp5		; <i1> [#uses=1] | 
|  | 76 | br i1 %tmp167479, label %bb226, label %bb174 | 
|  | 77 |  | 
|  | 78 | bb145:		; preds = %bb136, %bb128 | 
|  | 79 | br i1 %tmp125, label %bb155, label %bb165 | 
|  | 80 |  | 
|  | 81 | bb155:		; preds = %bb145 | 
|  | 82 | %tmp167481 = fcmp ogt float %tmp2, %tmp8		; <i1> [#uses=1] | 
|  | 83 | br i1 %tmp167481, label %bb226, label %bb174 | 
|  | 84 |  | 
|  | 85 | bb165:		; preds = %bb145 | 
|  | 86 | %tmp167 = fcmp ogt float %tmp2, %tmp11		; <i1> [#uses=1] | 
|  | 87 | br i1 %tmp167, label %bb226, label %bb174 | 
|  | 88 |  | 
|  | 89 | bb174:		; preds = %bb165, %bb155, %bb141 | 
|  | 90 | br i1 %tmp125, label %bb187, label %bb195 | 
|  | 91 |  | 
|  | 92 | bb187:		; preds = %bb174 | 
|  | 93 | %tmp197483 = fcmp ogt float %tmp5, %tmp8		; <i1> [#uses=2] | 
|  | 94 | %brmerge790 = or i1 %tmp197483, %tmp125		; <i1> [#uses=1] | 
|  | 95 | %tmp4.mux791 = select i1 %tmp197483, float* %tmp4, float* %tmp7		; <float*> [#uses=1] | 
|  | 96 | br i1 %brmerge790, label %bb226, label %bb218 | 
|  | 97 |  | 
|  | 98 | bb195:		; preds = %bb174 | 
|  | 99 | %tmp197 = fcmp ogt float %tmp5, %tmp11		; <i1> [#uses=2] | 
|  | 100 | %brmerge788 = or i1 %tmp197, %tmp125		; <i1> [#uses=1] | 
|  | 101 | %tmp4.mux789 = select i1 %tmp197, float* %tmp4, float* %tmp7		; <float*> [#uses=1] | 
|  | 102 | br i1 %brmerge788, label %bb226, label %bb218 | 
|  | 103 |  | 
|  | 104 | bb218:		; preds = %bb195, %bb187 | 
|  | 105 | br label %bb226 | 
|  | 106 |  | 
|  | 107 | bb226:		; preds = %bb218, %bb195, %bb187, %bb165, %bb155, %bb141 | 
|  | 108 | %iftmp.7.0.in = phi float* [ %tmp10, %bb218 ], [ %result, %bb141 ], [ %result, %bb155 ], [ %result, %bb165 ], [ %tmp4.mux789, %bb195 ], [ %tmp4.mux791, %bb187 ]		; <float*> [#uses=1] | 
|  | 109 | %iftmp.7.0 = load float* %iftmp.7.0.in		; <float> [#uses=1] | 
|  | 110 | %tmp229 = getelementptr float* %result, i32 1		; <float*> [#uses=7] | 
|  | 111 | %tmp230 = load float* %tmp229, align 4		; <float> [#uses=6] | 
|  | 112 | %tmp232 = getelementptr float* %result, i32 3		; <float*> [#uses=5] | 
|  | 113 | %tmp233 = load float* %tmp232, align 4		; <float> [#uses=10] | 
|  | 114 | %tmp235 = getelementptr float* %result, i32 5		; <float*> [#uses=5] | 
|  | 115 | %tmp236 = load float* %tmp235, align 4		; <float> [#uses=8] | 
|  | 116 | %tmp238 = getelementptr float* %result, i32 7		; <float*> [#uses=3] | 
|  | 117 | %tmp239 = load float* %tmp238, align 4		; <float> [#uses=8] | 
|  | 118 | %tmp240 = fcmp olt float %tmp236, %tmp239		; <i1> [#uses=5] | 
|  | 119 | br i1 %tmp240, label %bb243, label %bb251 | 
|  | 120 |  | 
|  | 121 | bb243:		; preds = %bb226 | 
|  | 122 | %tmp253485 = fcmp olt float %tmp233, %tmp236		; <i1> [#uses=1] | 
|  | 123 | br i1 %tmp253485, label %bb256, label %bb260 | 
|  | 124 |  | 
|  | 125 | bb251:		; preds = %bb226 | 
|  | 126 | %tmp253 = fcmp olt float %tmp233, %tmp239		; <i1> [#uses=1] | 
|  | 127 | br i1 %tmp253, label %bb256, label %bb260 | 
|  | 128 |  | 
|  | 129 | bb256:		; preds = %bb251, %bb243 | 
|  | 130 | %tmp282487 = fcmp olt float %tmp230, %tmp233		; <i1> [#uses=1] | 
|  | 131 | br i1 %tmp282487, label %bb341, label %bb289 | 
|  | 132 |  | 
|  | 133 | bb260:		; preds = %bb251, %bb243 | 
|  | 134 | br i1 %tmp240, label %bb270, label %bb280 | 
|  | 135 |  | 
|  | 136 | bb270:		; preds = %bb260 | 
|  | 137 | %tmp282489 = fcmp olt float %tmp230, %tmp236		; <i1> [#uses=1] | 
|  | 138 | br i1 %tmp282489, label %bb341, label %bb289 | 
|  | 139 |  | 
|  | 140 | bb280:		; preds = %bb260 | 
|  | 141 | %tmp282 = fcmp olt float %tmp230, %tmp239		; <i1> [#uses=1] | 
|  | 142 | br i1 %tmp282, label %bb341, label %bb289 | 
|  | 143 |  | 
|  | 144 | bb289:		; preds = %bb280, %bb270, %bb256 | 
|  | 145 | br i1 %tmp240, label %bb302, label %bb310 | 
|  | 146 |  | 
|  | 147 | bb302:		; preds = %bb289 | 
|  | 148 | %tmp312491 = fcmp olt float %tmp233, %tmp236		; <i1> [#uses=2] | 
|  | 149 | %brmerge793 = or i1 %tmp312491, %tmp240		; <i1> [#uses=1] | 
|  | 150 | %tmp232.mux794 = select i1 %tmp312491, float* %tmp232, float* %tmp235		; <float*> [#uses=1] | 
|  | 151 | br i1 %brmerge793, label %bb341, label %bb333 | 
|  | 152 |  | 
|  | 153 | bb310:		; preds = %bb289 | 
|  | 154 | %tmp312 = fcmp olt float %tmp233, %tmp239		; <i1> [#uses=2] | 
|  | 155 | %brmerge792 = or i1 %tmp312, %tmp240		; <i1> [#uses=1] | 
|  | 156 | %tmp232.mux = select i1 %tmp312, float* %tmp232, float* %tmp235		; <float*> [#uses=1] | 
|  | 157 | br i1 %brmerge792, label %bb341, label %bb333 | 
|  | 158 |  | 
|  | 159 | bb333:		; preds = %bb310, %bb302 | 
|  | 160 | br label %bb341 | 
|  | 161 |  | 
|  | 162 | bb341:		; preds = %bb333, %bb310, %bb302, %bb280, %bb270, %bb256 | 
|  | 163 | %iftmp.14.0.in = phi float* [ %tmp238, %bb333 ], [ %tmp229, %bb280 ], [ %tmp229, %bb270 ], [ %tmp229, %bb256 ], [ %tmp232.mux, %bb310 ], [ %tmp232.mux794, %bb302 ]		; <float*> [#uses=1] | 
|  | 164 | %iftmp.14.0 = load float* %iftmp.14.0.in		; <float> [#uses=1] | 
|  | 165 | %tmp355 = fcmp ogt float %tmp236, %tmp239		; <i1> [#uses=5] | 
|  | 166 | br i1 %tmp355, label %bb358, label %bb366 | 
|  | 167 |  | 
|  | 168 | bb358:		; preds = %bb341 | 
|  | 169 | %tmp368493 = fcmp ogt float %tmp233, %tmp236		; <i1> [#uses=1] | 
|  | 170 | br i1 %tmp368493, label %bb371, label %bb375 | 
|  | 171 |  | 
|  | 172 | bb366:		; preds = %bb341 | 
|  | 173 | %tmp368 = fcmp ogt float %tmp233, %tmp239		; <i1> [#uses=1] | 
|  | 174 | br i1 %tmp368, label %bb371, label %bb375 | 
|  | 175 |  | 
|  | 176 | bb371:		; preds = %bb366, %bb358 | 
|  | 177 | %tmp397495 = fcmp ogt float %tmp230, %tmp233		; <i1> [#uses=1] | 
|  | 178 | br i1 %tmp397495, label %bb456, label %bb404 | 
|  | 179 |  | 
|  | 180 | bb375:		; preds = %bb366, %bb358 | 
|  | 181 | br i1 %tmp355, label %bb385, label %bb395 | 
|  | 182 |  | 
|  | 183 | bb385:		; preds = %bb375 | 
|  | 184 | %tmp397497 = fcmp ogt float %tmp230, %tmp236		; <i1> [#uses=1] | 
|  | 185 | br i1 %tmp397497, label %bb456, label %bb404 | 
|  | 186 |  | 
|  | 187 | bb395:		; preds = %bb375 | 
|  | 188 | %tmp397 = fcmp ogt float %tmp230, %tmp239		; <i1> [#uses=1] | 
|  | 189 | br i1 %tmp397, label %bb456, label %bb404 | 
|  | 190 |  | 
|  | 191 | bb404:		; preds = %bb395, %bb385, %bb371 | 
|  | 192 | br i1 %tmp355, label %bb417, label %bb425 | 
|  | 193 |  | 
|  | 194 | bb417:		; preds = %bb404 | 
|  | 195 | %tmp427499 = fcmp ogt float %tmp233, %tmp236		; <i1> [#uses=2] | 
|  | 196 | %brmerge797 = or i1 %tmp427499, %tmp355		; <i1> [#uses=1] | 
|  | 197 | %tmp232.mux798 = select i1 %tmp427499, float* %tmp232, float* %tmp235		; <float*> [#uses=1] | 
|  | 198 | br i1 %brmerge797, label %bb456, label %bb448 | 
|  | 199 |  | 
|  | 200 | bb425:		; preds = %bb404 | 
|  | 201 | %tmp427 = fcmp ogt float %tmp233, %tmp239		; <i1> [#uses=2] | 
|  | 202 | %brmerge795 = or i1 %tmp427, %tmp355		; <i1> [#uses=1] | 
|  | 203 | %tmp232.mux796 = select i1 %tmp427, float* %tmp232, float* %tmp235		; <float*> [#uses=1] | 
|  | 204 | br i1 %brmerge795, label %bb456, label %bb448 | 
|  | 205 |  | 
|  | 206 | bb448:		; preds = %bb425, %bb417 | 
|  | 207 | br label %bb456 | 
|  | 208 |  | 
|  | 209 | bb456:		; preds = %bb448, %bb425, %bb417, %bb395, %bb385, %bb371 | 
|  | 210 | %iftmp.21.0.in = phi float* [ %tmp238, %bb448 ], [ %tmp229, %bb395 ], [ %tmp229, %bb385 ], [ %tmp229, %bb371 ], [ %tmp232.mux796, %bb425 ], [ %tmp232.mux798, %bb417 ]		; <float*> [#uses=1] | 
|  | 211 | %iftmp.21.0 = load float* %iftmp.21.0.in		; <float> [#uses=1] | 
|  | 212 | %tmp458459 = fpext float %iftmp.21.0 to double		; <double> [#uses=1] | 
|  | 213 | %tmp460461 = fpext float %iftmp.7.0 to double		; <double> [#uses=1] | 
|  | 214 | %tmp462463 = fpext float %iftmp.14.0 to double		; <double> [#uses=1] | 
|  | 215 | %tmp464465 = fpext float %iftmp.0.0 to double		; <double> [#uses=1] | 
|  | 216 | %tmp467 = tail call i32 (i8*, ...)* @printf( i8* getelementptr ([48 x i8]* @.str, i32 0, i32 0), double %tmp464465, double %tmp462463, double %tmp460461, double %tmp458459 ) nounwind 		; <i32> [#uses=0] | 
|  | 217 | ret void | 
|  | 218 | } | 
|  | 219 |  | 
|  | 220 | declare i32 @printf(i8*, ...) nounwind |