1 ; RUN: llvm-as < %s | llc -march=x86 -mattr=+sse2
4 %Value = type { i32 (...)** }
6 declare { i32, i1 } @llvm.sadd.with.overflow.i32(i32, i32) nounwind
8 define %Value* @bar(%Value** %exception) nounwind {
10 br i1 true, label %NextVerify41, label %FailedVerify
12 NextVerify41: ; preds = %prologue
13 br i1 true, label %NextVerify, label %FailedVerify
15 NextVerify: ; preds = %NextVerify41
16 br i1 false, label %label12, label %label
18 label: ; preds = %NextVerify
19 br i1 true, label %xxNumberLiteral.exit, label %handle_exception
21 xxNumberLiteral.exit: ; preds = %label
22 %0 = call { i32, i1 } @llvm.sadd.with.overflow.i32(i32 0, i32 0) ; <{ i32, i1 }> [#uses=2]
23 %intAdd = extractvalue { i32, i1 } %0, 0 ; <i32> [#uses=1]
24 %intAddOverflow = extractvalue { i32, i1 } %0, 1 ; <i1> [#uses=1]
25 %toint55 = ashr i32 %intAdd, 1 ; <i32> [#uses=1]
26 %toFP56 = sitofp i32 %toint55 to double ; <double> [#uses=1]
27 br i1 %intAddOverflow, label %exit, label %label12
29 label12: ; preds = %xxNumberLiteral.exit, %NextVerify
30 %var_lr1.0 = phi double [ %toFP56, %xxNumberLiteral.exit ], [ 0.000000e+00, %NextVerify ] ; <double> [#uses=0]
33 exit: ; preds = %xxNumberLiteral.exit
36 FailedVerify: ; preds = %NextVerify41, %prologue
39 handle_exception: ; preds = %label