; RUN: llc < %s -march=x86 -mattr=+sse2 -pre-alloc-split -regalloc=linearscan @object_distance = external global double, align 8 ; [#uses=1] @axis_slope_angle = external global double, align 8 ; [#uses=1] @current_surfaces.b = external global i1 ; [#uses=1] declare double @sin(double) nounwind readonly declare double @asin(double) nounwind readonly declare double @tan(double) nounwind readonly define fastcc void @trace_line(i32 %line) nounwind { entry: %.b3 = load i1* @current_surfaces.b ; [#uses=1] br i1 %.b3, label %bb, label %return bb: ; preds = %bb, %entry %0 = tail call double @asin(double 0.000000e+00) nounwind readonly ; [#uses=1] %1 = fadd double 0.000000e+00, %0 ; [#uses=2] %2 = tail call double @asin(double 0.000000e+00) nounwind readonly ; [#uses=1] %3 = fsub double %1, %2 ; [#uses=2] store double %3, double* @axis_slope_angle, align 8 %4 = fdiv double %1, 2.000000e+00 ; [#uses=1] %5 = tail call double @sin(double %4) nounwind readonly ; [#uses=1] %6 = fmul double 0.000000e+00, %5 ; [#uses=1] %7 = tail call double @tan(double %3) nounwind readonly ; [#uses=0] %8 = fadd double 0.000000e+00, %6 ; [#uses=1] store double %8, double* @object_distance, align 8 br label %bb return: ; preds = %entry ret void }