Evan Cheng | fc5a03e | 2010-04-13 18:50:27 +0000 | [diff] [blame^] | 1 | ; RUN: llc < %s -mtriple=i386-apple-darwin -mcpu=core2 |
| 2 | ; rdar://7857830 |
| 3 | |
| 4 | %0 = type opaque |
| 5 | %1 = type opaque |
| 6 | |
| 7 | define void @t(%0* %self, i8* nocapture %_cmd, %1* %scroller, i32 %hitPart, float %multiplier) nounwind optsize ssp { |
| 8 | entry: |
| 9 | switch i32 %hitPart, label %if.else [ |
| 10 | i32 7, label %if.then |
| 11 | i32 8, label %if.then |
| 12 | ] |
| 13 | |
| 14 | if.then: ; preds = %entry, %entry |
| 15 | %tmp69 = load float* null, align 4 ; <float> [#uses=1] |
| 16 | %cmp19 = icmp eq %1* null, %scroller ; <i1> [#uses=2] |
| 17 | %cond = select i1 %cmp19, float %tmp69, float 0.000000e+00 ; <float> [#uses=1] |
| 18 | %call36 = call i64 bitcast (i8* (i8*, i8*, ...)* @objc_msgSend to i64 (i8*, i8*)*)(i8* undef, i8* undef) nounwind optsize ; <i64> [#uses=2] |
| 19 | br i1 %cmp19, label %cond.true32, label %cond.false39 |
| 20 | |
| 21 | cond.true32: ; preds = %if.then |
| 22 | %sroa.store.elt68 = lshr i64 %call36, 32 ; <i64> [#uses=1] |
| 23 | %0 = trunc i64 %sroa.store.elt68 to i32 ; <i32> [#uses=1] |
| 24 | br label %cond.end47 |
| 25 | |
| 26 | cond.false39: ; preds = %if.then |
| 27 | %1 = trunc i64 %call36 to i32 ; <i32> [#uses=1] |
| 28 | br label %cond.end47 |
| 29 | |
| 30 | cond.end47: ; preds = %cond.false39, %cond.true32 |
| 31 | %cond48.in = phi i32 [ %0, %cond.true32 ], [ %1, %cond.false39 ] ; <i32> [#uses=1] |
| 32 | %cond48 = bitcast i32 %cond48.in to float ; <float> [#uses=1] |
| 33 | %div = fdiv float %cond, undef ; <float> [#uses=1] |
| 34 | %div58 = fdiv float %div, %cond48 ; <float> [#uses=1] |
| 35 | call void bitcast (i8* (i8*, i8*, ...)* @objc_msgSend to void (i8*, i8*, float)*)(i8* undef, i8* undef, float %div58) nounwind optsize |
| 36 | ret void |
| 37 | |
| 38 | if.else: ; preds = %entry |
| 39 | ret void |
| 40 | } |
| 41 | |
| 42 | declare i8* @objc_msgSend(i8*, i8*, ...) |