; RUN: opt -S -inline -inline-threshold=275 < %s | FileCheck %s
; PR13095

; The performance of the c-ray benchmark largely depends on the inlining of a
; specific call to @ray_sphere. This test case is designed to verify that it's
; inlined at -O3.

target datalayout = "e-p:64:64:64-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:64:64-f32:32:32-f64:64:64-v64:64:64-v128:128:128-a0:0:64-s0:64:64-f80:128:128-n8:16:32:64-S128"
target triple = "x86_64-apple-macosx10.8.0"

%struct.sphere = type { %struct.vec3, double, %struct.material, %struct.sphere* }
%struct.vec3 = type { double, double, double }
%struct.material = type { %struct.vec3, double, double }
%struct.ray = type { %struct.vec3, %struct.vec3 }
%struct.spoint = type { %struct.vec3, %struct.vec3, %struct.vec3, double }

define i32 @caller(%struct.sphere* %i) {
  %shadow_ray = alloca %struct.ray, align 8
  call void @fix(%struct.ray* %shadow_ray)

  %call = call i32 @ray_sphere(%struct.sphere* %i, %struct.ray* byval align 8 %shadow_ray, %struct.spoint* null)
  ret i32 %call

; CHECK-LABEL: @caller(
; CHECK-NOT: call i32 @ray_sphere
; CHECK: ret i32
}

declare void @fix(%struct.ray*)

define i32 @ray_sphere(%struct.sphere* nocapture %sph, %struct.ray* nocapture byval align 8 %ray, %struct.spoint* %sp) nounwind uwtable ssp {
  %1 = getelementptr inbounds %struct.ray, %struct.ray* %ray, i64 0, i32 1, i32 0
  %2 = load double, double* %1, align 8
  %3 = fmul double %2, %2
  %4 = getelementptr inbounds %struct.ray, %struct.ray* %ray, i64 0, i32 1, i32 1
  %5 = load double, double* %4, align 8
  %6 = fmul double %5, %5
  %7 = fadd double %3, %6
  %8 = getelementptr inbounds %struct.ray, %struct.ray* %ray, i64 0, i32 1, i32 2
  %9 = load double, double* %8, align 8
  %10 = fmul double %9, %9
  %11 = fadd double %7, %10
  %12 = fmul double %2, 2.000000e+00
  %13 = getelementptr inbounds %struct.ray, %struct.ray* %ray, i64 0, i32 0, i32 0
  %14 = load double, double* %13, align 8
  %15 = getelementptr inbounds %struct.sphere, %struct.sphere* %sph, i64 0, i32 0, i32 0
  %16 = load double, double* %15, align 8
  %17 = fsub double %14, %16
  %18 = fmul double %12, %17
  %19 = fmul double %5, 2.000000e+00
  %20 = getelementptr inbounds %struct.ray, %struct.ray* %ray, i64 0, i32 0, i32 1
  %21 = load double, double* %20, align 8
  %22 = getelementptr inbounds %struct.sphere, %struct.sphere* %sph, i64 0, i32 0, i32 1
  %23 = load double, double* %22, align 8
  %24 = fsub double %21, %23
  %25 = fmul double %19, %24
  %26 = fadd double %18, %25
  %27 = fmul double %9, 2.000000e+00
  %28 = getelementptr inbounds %struct.ray, %struct.ray* %ray, i64 0, i32 0, i32 2
  %29 = load double, double* %28, align 8
  %30 = getelementptr inbounds %struct.sphere, %struct.sphere* %sph, i64 0, i32 0, i32 2
  %31 = load double, double* %30, align 8
  %32 = fsub double %29, %31
  %33 = fmul double %27, %32
  %34 = fadd double %26, %33
  %35 = fmul double %16, %16
  %36 = fmul double %23, %23
  %37 = fadd double %35, %36
  %38 = fmul double %31, %31
  %39 = fadd double %37, %38
  %40 = fmul double %14, %14
  %41 = fadd double %40, %39
  %42 = fmul double %21, %21
  %43 = fadd double %42, %41
  %44 = fmul double %29, %29
  %45 = fadd double %44, %43
  %46 = fsub double -0.000000e+00, %16
  %47 = fmul double %14, %46
  %48 = fmul double %21, %23
  %49 = fsub double %47, %48
  %50 = fmul double %29, %31
  %51 = fsub double %49, %50
  %52 = fmul double %51, 2.000000e+00
  %53 = fadd double %52, %45
  %54 = getelementptr inbounds %struct.sphere, %struct.sphere* %sph, i64 0, i32 1
  %55 = load double, double* %54, align 8
  %56 = fmul double %55, %55
  %57 = fsub double %53, %56
  %58 = fmul double %34, %34
  %59 = fmul double %11, 4.000000e+00
  %60 = fmul double %59, %57
  %61 = fsub double %58, %60
  %62 = fcmp olt double %61, 0.000000e+00
  br i1 %62, label %130, label %63

; <label>:63                                      ; preds = %0
  %64 = tail call double @sqrt(double %61) nounwind readnone
  %65 = fsub double -0.000000e+00, %34
  %66 = fsub double %64, %34
  %67 = fmul double %11, 2.000000e+00
  %68 = fdiv double %66, %67
  %69 = fsub double %65, %64
  %70 = fdiv double %69, %67
  %71 = fcmp olt double %68, 1.000000e-06
  %72 = fcmp olt double %70, 1.000000e-06
  %or.cond = and i1 %71, %72
  br i1 %or.cond, label %130, label %73

; <label>:73                                      ; preds = %63
  %74 = fcmp ogt double %68, 1.000000e+00
  %75 = fcmp ogt double %70, 1.000000e+00
  %or.cond1 = and i1 %74, %75
  br i1 %or.cond1, label %130, label %76

; <label>:76                                      ; preds = %73
  %77 = icmp eq %struct.spoint* %sp, null
  br i1 %77, label %130, label %78

; <label>:78                                      ; preds = %76
  %t1.0 = select i1 %71, double %70, double %68
  %t2.0 = select i1 %72, double %t1.0, double %70
  %79 = fcmp olt double %t1.0, %t2.0
  %80 = select i1 %79, double %t1.0, double %t2.0
  %81 = getelementptr inbounds %struct.spoint, %struct.spoint* %sp, i64 0, i32 3
  store double %80, double* %81, align 8
  %82 = fmul double %80, %2
  %83 = fadd double %14, %82
  %84 = getelementptr inbounds %struct.spoint, %struct.spoint* %sp, i64 0, i32 0, i32 0
  store double %83, double* %84, align 8
  %85 = fmul double %5, %80
  %86 = fadd double %21, %85
  %87 = getelementptr inbounds %struct.spoint, %struct.spoint* %sp, i64 0, i32 0, i32 1
  store double %86, double* %87, align 8
  %88 = fmul double %9, %80
  %89 = fadd double %29, %88
  %90 = getelementptr inbounds %struct.spoint, %struct.spoint* %sp, i64 0, i32 0, i32 2
  store double %89, double* %90, align 8
  %91 = load double, double* %15, align 8
  %92 = fsub double %83, %91
  %93 = load double, double* %54, align 8
  %94 = fdiv double %92, %93
  %95 = getelementptr inbounds %struct.spoint, %struct.spoint* %sp, i64 0, i32 1, i32 0
  store double %94, double* %95, align 8
  %96 = load double, double* %22, align 8
  %97 = fsub double %86, %96
  %98 = load double, double* %54, align 8
  %99 = fdiv double %97, %98
  %100 = getelementptr inbounds %struct.spoint, %struct.spoint* %sp, i64 0, i32 1, i32 1
  store double %99, double* %100, align 8
  %101 = load double, double* %30, align 8
  %102 = fsub double %89, %101
  %103 = load double, double* %54, align 8
  %104 = fdiv double %102, %103
  %105 = getelementptr inbounds %struct.spoint, %struct.spoint* %sp, i64 0, i32 1, i32 2
  store double %104, double* %105, align 8
  %106 = fmul double %2, %94
  %107 = fmul double %5, %99
  %108 = fadd double %106, %107
  %109 = fmul double %9, %104
  %110 = fadd double %108, %109
  %111 = fmul double %110, 2.000000e+00
  %112 = fmul double %94, %111
  %113 = fsub double %112, %2
  %114 = fsub double -0.000000e+00, %113
  %115 = fmul double %99, %111
  %116 = fsub double %115, %5
  %117 = fsub double -0.000000e+00, %116
  %118 = fmul double %104, %111
  %119 = fsub double %118, %9
  %120 = fsub double -0.000000e+00, %119
  %.06 = getelementptr inbounds %struct.spoint, %struct.spoint* %sp, i64 0, i32 2, i32 0
  %.18 = getelementptr inbounds %struct.spoint, %struct.spoint* %sp, i64 0, i32 2, i32 1
  %.210 = getelementptr inbounds %struct.spoint, %struct.spoint* %sp, i64 0, i32 2, i32 2
  %121 = fmul double %113, %113
  %122 = fmul double %116, %116
  %123 = fadd double %121, %122
  %124 = fmul double %119, %119
  %125 = fadd double %123, %124
  %126 = tail call double @sqrt(double %125) nounwind readnone
  %127 = fdiv double %114, %126
  store double %127, double* %.06, align 8
  %128 = fdiv double %117, %126
  store double %128, double* %.18, align 8
  %129 = fdiv double %120, %126
  store double %129, double* %.210, align 8
  br label %130

; <label>:130                                     ; preds = %78, %76, %73, %63, %0
  %.0 = phi i32 [ 0, %0 ], [ 0, %73 ], [ 0, %63 ], [ 1, %76 ], [ 1, %78 ]
  ret i32 %.0
}

declare double @sqrt(double) nounwind readnone
