; LLVM IR from ljm941004/HYPERCV_PUBLIC :: modules/satellite/src (satellite_orbit)

; Unoptimized IR (clang -disable-llvm-passes):
target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-i128:128-f80:128-n8:16:32:64-S128"
target triple = "x86_64-unknown-linux-gnu"

%struct.SATELLITE_ORBIT = type { x86_fp80, x86_fp80, x86_fp80, x86_fp80, x86_fp80, x86_fp80, x86_fp80, x86_fp80, x86_fp80, x86_fp80, x86_fp80, x86_fp80, x86_fp80, x86_fp80, x86_fp80, x86_fp80, x86_fp80, x86_fp80, x86_fp80, x86_fp80, x86_fp80, x86_fp80, x86_fp80, x86_fp80, x86_fp80, x86_fp80, x86_fp80, x86_fp80, x86_fp80, x86_fp80, x86_fp80 }

; Function Attrs: nounwind uwtable
define dso_local ptr @hypercv_create_orbit(x86_fp80 noundef %0, x86_fp80 noundef %1, x86_fp80 noundef %2, x86_fp80 noundef %3, x86_fp80 noundef %4, x86_fp80 noundef %5, x86_fp80 noundef %6, x86_fp80 noundef %7, x86_fp80 noundef %8, x86_fp80 noundef %9, x86_fp80 noundef %10, x86_fp80 noundef %11, x86_fp80 noundef %12, x86_fp80 noundef %13, x86_fp80 noundef %14, x86_fp80 noundef %15, x86_fp80 noundef %16) #0 {
  %18 = alloca x86_fp80, align 16
  %19 = alloca x86_fp80, align 16
  %20 = alloca x86_fp80, align 16
  %21 = alloca x86_fp80, align 16
  %22 = alloca x86_fp80, align 16
  %23 = alloca x86_fp80, align 16
  %24 = alloca x86_fp80, align 16
  %25 = alloca x86_fp80, align 16
  %26 = alloca x86_fp80, align 16
  %27 = alloca x86_fp80, align 16
  %28 = alloca x86_fp80, align 16
  %29 = alloca x86_fp80, align 16
  %30 = alloca x86_fp80, align 16
  %31 = alloca x86_fp80, align 16
  %32 = alloca x86_fp80, align 16
  %33 = alloca x86_fp80, align 16
  %34 = alloca x86_fp80, align 16
  %35 = alloca ptr, align 8
  %36 = alloca i32, align 4
  store x86_fp80 %0, ptr %18, align 16, !tbaa !5
  store x86_fp80 %1, ptr %19, align 16, !tbaa !5
  store x86_fp80 %2, ptr %20, align 16, !tbaa !5
  store x86_fp80 %3, ptr %21, align 16, !tbaa !5
  store x86_fp80 %4, ptr %22, align 16, !tbaa !5
  store x86_fp80 %5, ptr %23, align 16, !tbaa !5
  store x86_fp80 %6, ptr %24, align 16, !tbaa !5
  store x86_fp80 %7, ptr %25, align 16, !tbaa !5
  store x86_fp80 %8, ptr %26, align 16, !tbaa !5
  store x86_fp80 %9, ptr %27, align 16, !tbaa !5
  store x86_fp80 %10, ptr %28, align 16, !tbaa !5
  store x86_fp80 %11, ptr %29, align 16, !tbaa !5
  store x86_fp80 %12, ptr %30, align 16, !tbaa !5
  store x86_fp80 %13, ptr %31, align 16, !tbaa !5
  store x86_fp80 %14, ptr %32, align 16, !tbaa !5
  store x86_fp80 %15, ptr %33, align 16, !tbaa !5
  store x86_fp80 %16, ptr %34, align 16, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %35) #4
  %37 = load x86_fp80, ptr %18, align 16, !tbaa !5
  %38 = load ptr, ptr %35, align 8, !tbaa !9
  %39 = getelementptr inbounds %struct.SATELLITE_ORBIT, ptr %38, i32 0, i32 0
  store x86_fp80 %37, ptr %39, align 16, !tbaa !11
  %40 = load x86_fp80, ptr %19, align 16, !tbaa !5
  %41 = load ptr, ptr %35, align 8, !tbaa !9
  %42 = getelementptr inbounds %struct.SATELLITE_ORBIT, ptr %41, i32 0, i32 1
  store x86_fp80 %40, ptr %42, align 16, !tbaa !13
  %43 = load x86_fp80, ptr %20, align 16, !tbaa !5
  %44 = load ptr, ptr %35, align 8, !tbaa !9
  %45 = getelementptr inbounds %struct.SATELLITE_ORBIT, ptr %44, i32 0, i32 2
  store x86_fp80 %43, ptr %45, align 16, !tbaa !14
  %46 = load x86_fp80, ptr %21, align 16, !tbaa !5
  %47 = load ptr, ptr %35, align 8, !tbaa !9
  %48 = getelementptr inbounds %struct.SATELLITE_ORBIT, ptr %47, i32 0, i32 3
  store x86_fp80 %46, ptr %48, align 16, !tbaa !15
  %49 = load x86_fp80, ptr %22, align 16, !tbaa !5
  %50 = load ptr, ptr %35, align 8, !tbaa !9
  %51 = getelementptr inbounds %struct.SATELLITE_ORBIT, ptr %50, i32 0, i32 4
  store x86_fp80 %49, ptr %51, align 16, !tbaa !16
  %52 = load x86_fp80, ptr %23, align 16, !tbaa !5
  %53 = load ptr, ptr %35, align 8, !tbaa !9
  %54 = getelementptr inbounds %struct.SATELLITE_ORBIT, ptr %53, i32 0, i32 5
  store x86_fp80 %52, ptr %54, align 16, !tbaa !17
  %55 = load x86_fp80, ptr %24, align 16, !tbaa !5
  %56 = load ptr, ptr %35, align 8, !tbaa !9
  %57 = getelementptr inbounds %struct.SATELLITE_ORBIT, ptr %56, i32 0, i32 6
  store x86_fp80 %55, ptr %57, align 16, !tbaa !18
  %58 = load x86_fp80, ptr %25, align 16, !tbaa !5
  %59 = load ptr, ptr %35, align 8, !tbaa !9
  %60 = getelementptr inbounds %struct.SATELLITE_ORBIT, ptr %59, i32 0, i32 7
  store x86_fp80 %58, ptr %60, align 16, !tbaa !19
  %61 = load x86_fp80, ptr %26, align 16, !tbaa !5
  %62 = load ptr, ptr %35, align 8, !tbaa !9
  %63 = getelementptr inbounds %struct.SATELLITE_ORBIT, ptr %62, i32 0, i32 8
  store x86_fp80 %61, ptr %63, align 16, !tbaa !20
  %64 = load x86_fp80, ptr %27, align 16, !tbaa !5
  %65 = load ptr, ptr %35, align 8, !tbaa !9
  %66 = getelementptr inbounds %struct.SATELLITE_ORBIT, ptr %65, i32 0, i32 9
  store x86_fp80 %64, ptr %66, align 16, !tbaa !21
  %67 = load x86_fp80, ptr %28, align 16, !tbaa !5
  %68 = load ptr, ptr %35, align 8, !tbaa !9
  %69 = getelementptr inbounds %struct.SATELLITE_ORBIT, ptr %68, i32 0, i32 10
  store x86_fp80 %67, ptr %69, align 16, !tbaa !22
  %70 = load x86_fp80, ptr %29, align 16, !tbaa !5
  %71 = load ptr, ptr %35, align 8, !tbaa !9
  %72 = getelementptr inbounds %struct.SATELLITE_ORBIT, ptr %71, i32 0, i32 11
  store x86_fp80 %70, ptr %72, align 16, !tbaa !23
  %73 = load x86_fp80, ptr %30, align 16, !tbaa !5
  %74 = load ptr, ptr %35, align 8, !tbaa !9
  %75 = getelementptr inbounds %struct.SATELLITE_ORBIT, ptr %74, i32 0, i32 12
  store x86_fp80 %73, ptr %75, align 16, !tbaa !24
  %76 = load x86_fp80, ptr %31, align 16, !tbaa !5
  %77 = load ptr, ptr %35, align 8, !tbaa !9
  %78 = getelementptr inbounds %struct.SATELLITE_ORBIT, ptr %77, i32 0, i32 13
  store x86_fp80 %76, ptr %78, align 16, !tbaa !25
  %79 = load x86_fp80, ptr %32, align 16, !tbaa !5
  %80 = load ptr, ptr %35, align 8, !tbaa !9
  %81 = getelementptr inbounds %struct.SATELLITE_ORBIT, ptr %80, i32 0, i32 14
  store x86_fp80 %79, ptr %81, align 16, !tbaa !26
  %82 = load x86_fp80, ptr %33, align 16, !tbaa !5
  %83 = load ptr, ptr %35, align 8, !tbaa !9
  %84 = getelementptr inbounds %struct.SATELLITE_ORBIT, ptr %83, i32 0, i32 15
  store x86_fp80 %82, ptr %84, align 16, !tbaa !27
  %85 = load x86_fp80, ptr %34, align 16, !tbaa !5
  %86 = load ptr, ptr %35, align 8, !tbaa !9
  %87 = getelementptr inbounds %struct.SATELLITE_ORBIT, ptr %86, i32 0, i32 16
  store x86_fp80 %85, ptr %87, align 16, !tbaa !28
  %88 = load x86_fp80, ptr %18, align 16, !tbaa !5
  %89 = load x86_fp80, ptr %18, align 16, !tbaa !5
  %90 = fmul x86_fp80 %88, %89
  %91 = load x86_fp80, ptr %18, align 16, !tbaa !5
  %92 = fmul x86_fp80 %90, %91
  %93 = fdiv x86_fp80 0xK402FB543349ADA800000, %92
  %94 = fptrunc x86_fp80 %93 to double
  %95 = call double @sqrt(double noundef %94) #4
  %96 = fpext double %95 to x86_fp80
  %97 = load ptr, ptr %35, align 8, !tbaa !9
  %98 = getelementptr inbounds %struct.SATELLITE_ORBIT, ptr %97, i32 0, i32 19
  store x86_fp80 %96, ptr %98, align 16, !tbaa !29
  %99 = load ptr, ptr %35, align 8, !tbaa !9
  %100 = getelementptr inbounds %struct.SATELLITE_ORBIT, ptr %99, i32 0, i32 19
  %101 = load x86_fp80, ptr %100, align 16, !tbaa !29
  %102 = load ptr, ptr %35, align 8, !tbaa !9
  %103 = getelementptr inbounds %struct.SATELLITE_ORBIT, ptr %102, i32 0, i32 7
  %104 = load x86_fp80, ptr %103, align 16, !tbaa !19
  %105 = fadd x86_fp80 %101, %104
  %106 = load ptr, ptr %35, align 8, !tbaa !9
  %107 = getelementptr inbounds %struct.SATELLITE_ORBIT, ptr %106, i32 0, i32 21
  store x86_fp80 %105, ptr %107, align 16, !tbaa !30
  %108 = load ptr, ptr %35, align 8, !tbaa !9
  %109 = getelementptr inbounds %struct.SATELLITE_ORBIT, ptr %108, i32 0, i32 4
  %110 = load x86_fp80, ptr %109, align 16, !tbaa !16
  %111 = load ptr, ptr %35, align 8, !tbaa !9
  %112 = getelementptr inbounds %struct.SATELLITE_ORBIT, ptr %111, i32 0, i32 21
  %113 = load x86_fp80, ptr %112, align 16, !tbaa !30
  %114 = load ptr, ptr %35, align 8, !tbaa !9
  %115 = getelementptr inbounds %struct.SATELLITE_ORBIT, ptr %114, i32 0, i32 20
  %116 = load x86_fp80, ptr %115, align 16, !tbaa !31
  %117 = call x86_fp80 @llvm.fmuladd.f80(x86_fp80 %113, x86_fp80 %116, x86_fp80 %110)
  %118 = load ptr, ptr %35, align 8, !tbaa !9
  %119 = getelementptr inbounds %struct.SATELLITE_ORBIT, ptr %118, i32 0, i32 22
  store x86_fp80 %117, ptr %119, align 16, !tbaa !32
  call void @llvm.lifetime.start.p0(i64 4, ptr %36) #4
  store i32 0, ptr %36, align 4, !tbaa !33
  br label %120

120:                                              ; preds = %140, %17
  %121 = load i32, ptr %36, align 4, !tbaa !33
  %122 = icmp slt i32 %121, 10
  br i1 %122, label %124, label %123

123:                                              ; preds = %120
  call void @llvm.lifetime.end.p0(i64 4, ptr %36) #4
  br label %143

124:                                              ; preds = %120
  %125 = load ptr, ptr %35, align 8, !tbaa !9
  %126 = getelementptr inbounds %struct.SATELLITE_ORBIT, ptr %125, i32 0, i32 22
  %127 = load x86_fp80, ptr %126, align 16, !tbaa !32
  %128 = load ptr, ptr %35, align 8, !tbaa !9
  %129 = getelementptr inbounds %struct.SATELLITE_ORBIT, ptr %128, i32 0, i32 1
  %130 = load x86_fp80, ptr %129, align 16, !tbaa !13
  %131 = load ptr, ptr %35, align 8, !tbaa !9
  %132 = getelementptr inbounds %struct.SATELLITE_ORBIT, ptr %131, i32 0, i32 23
  %133 = load x86_fp80, ptr %132, align 16, !tbaa !35
  %134 = fptrunc x86_fp80 %133 to double
  %135 = call double @sin(double noundef %134) #4
  %136 = fpext double %135 to x86_fp80
  %137 = call x86_fp80 @llvm.fmuladd.f80(x86_fp80 %130, x86_fp80 %136, x86_fp80 %127)
  %138 = load ptr, ptr %35, align 8, !tbaa !9
  %139 = getelementptr inbounds %struct.SATELLITE_ORBIT, ptr %138, i32 0, i32 23
  store x86_fp80 %137, ptr %139, align 16, !tbaa !35
  br label %140

140:                                              ; preds = %124
  %141 = load i32, ptr %36, align 4, !tbaa !33
  %142 = add nsw i32 %141, 1
  store i32 %142, ptr %36, align 4, !tbaa !33
  br label %120, !llvm.loop !36

143:                                              ; preds = %123
  %144 = load ptr, ptr %35, align 8, !tbaa !9
  %145 = getelementptr inbounds %struct.SATELLITE_ORBIT, ptr %144, i32 0, i32 1
  %146 = load x86_fp80, ptr %145, align 16, !tbaa !13
  %147 = fadd x86_fp80 0xK3FFF8000000000000000, %146
  %148 = load ptr, ptr %35, align 8, !tbaa !9
  %149 = getelementptr inbounds %struct.SATELLITE_ORBIT, ptr %148, i32 0, i32 1
  %150 = load x86_fp80, ptr %149, align 16, !tbaa !13
  %151 = fsub x86_fp80 0xK3FFF8000000000000000, %150
  %152 = fdiv x86_fp80 %147, %151
  %153 = fptrunc x86_fp80 %152 to double
  %154 = call double @sqrt(double noundef %153) #4
  %155 = load ptr, ptr %35, align 8, !tbaa !9
  %156 = getelementptr inbounds %struct.SATELLITE_ORBIT, ptr %155, i32 0, i32 23
  %157 = load x86_fp80, ptr %156, align 16, !tbaa !35
  %158 = fptrunc x86_fp80 %157 to double
  %159 = call double @tan(double noundef %158) #4
  %160 = fmul double %154, %159
  %161 = fdiv double %160, 2.000000e+00
  %162 = call double @atan(double noundef %161) #4
  %163 = fmul double 2.000000e+00, %162
  %164 = fpext double %163 to x86_fp80
  %165 = load ptr, ptr %35, align 8, !tbaa !9
  %166 = getelementptr inbounds %struct.SATELLITE_ORBIT, ptr %165, i32 0, i32 17
  store x86_fp80 %164, ptr %166, align 16, !tbaa !38
  %167 = load ptr, ptr %35, align 8, !tbaa !9
  %168 = getelementptr inbounds %struct.SATELLITE_ORBIT, ptr %167, i32 0, i32 17
  %169 = load x86_fp80, ptr %168, align 16, !tbaa !38
  %170 = load ptr, ptr %35, align 8, !tbaa !9
  %171 = getelementptr inbounds %struct.SATELLITE_ORBIT, ptr %170, i32 0, i32 3
  %172 = load x86_fp80, ptr %171, align 16, !tbaa !15
  %173 = fadd x86_fp80 %169, %172
  %174 = load ptr, ptr %35, align 8, !tbaa !9
  %175 = getelementptr inbounds %struct.SATELLITE_ORBIT, ptr %174, i32 0, i32 24
  store x86_fp80 %173, ptr %175, align 16, !tbaa !39
  %176 = load ptr, ptr %35, align 8, !tbaa !9
  %177 = getelementptr inbounds %struct.SATELLITE_ORBIT, ptr %176, i32 0, i32 10
  %178 = load x86_fp80, ptr %177, align 16, !tbaa !22
  %179 = load ptr, ptr %35, align 8, !tbaa !9
  %180 = getelementptr inbounds %struct.SATELLITE_ORBIT, ptr %179, i32 0, i32 24
  %181 = load x86_fp80, ptr %180, align 16, !tbaa !39
  %182 = fmul x86_fp80 0xK40008000000000000000, %181
  %183 = fptrunc x86_fp80 %182 to double
  %184 = call double @sin(double noundef %183) #4
  %185 = fpext double %184 to x86_fp80
  %186 = load ptr, ptr %35, align 8, !tbaa !9
  %187 = getelementptr inbounds %struct.SATELLITE_ORBIT, ptr %186, i32 0, i32 11
  %188 = load x86_fp80, ptr %187, align 16, !tbaa !23
  %189 = load ptr, ptr %35, align 8, !tbaa !9
  %190 = getelementptr inbounds %struct.SATELLITE_ORBIT, ptr %189, i32 0, i32 24
  %191 = load x86_fp80, ptr %190, align 16, !tbaa !39
  %192 = fmul x86_fp80 0xK40008000000000000000, %191
  %193 = fptrunc x86_fp80 %192 to double
  %194 = call double @cos(double noundef %193) #4
  %195 = fpext double %194 to x86_fp80
  %196 = fmul x86_fp80 %188, %195
  %197 = call x86_fp80 @llvm.fmuladd.f80(x86_fp80 %178, x86_fp80 %185, x86_fp80 %196)
  %198 = load ptr, ptr %35, align 8, !tbaa !9
  %199 = getelementptr inbounds %struct.SATELLITE_ORBIT, ptr %198, i32 0, i32 25
  store x86_fp80 %197, ptr %199, align 16, !tbaa !40
  %200 = load ptr, ptr %35, align 8, !tbaa !9
  %201 = getelementptr inbounds %struct.SATELLITE_ORBIT, ptr %200, i32 0, i32 12
  %202 = load x86_fp80, ptr %201, align 16, !tbaa !24
  %203 = load ptr, ptr %35, align 8, !tbaa !9
  %204 = getelementptr inbounds %struct.SATELLITE_ORBIT, ptr %203, i32 0, i32 24
  %205 = load x86_fp80, ptr %204, align 16, !tbaa !39
  %206 = fmul x86_fp80 0xK40008000000000000000, %205
  %207 = fptrunc x86_fp80 %206 to double
  %208 = call double @sin(double noundef %207) #4
  %209 = fpext double %208 to x86_fp80
  %210 = load ptr, ptr %35, align 8, !tbaa !9
  %211 = getelementptr inbounds %struct.SATELLITE_ORBIT, ptr %210, i32 0, i32 13
  %212 = load x86_fp80, ptr %211, align 16, !tbaa !25
  %213 = load ptr, ptr %35, align 8, !tbaa !9
  %214 = getelementptr inbounds %struct.SATELLITE_ORBIT, ptr %213, i32 0, i32 24
  %215 = load x86_fp80, ptr %214, align 16, !tbaa !39
  %216 = fmul x86_fp80 0xK40008000000000000000, %215
  %217 = fptrunc x86_fp80 %216 to double
  %218 = call double @cos(double noundef %217) #4
  %219 = fpext double %218 to x86_fp80
  %220 = fmul x86_fp80 %212, %219
  %221 = call x86_fp80 @llvm.fmuladd.f80(x86_fp80 %202, x86_fp80 %209, x86_fp80 %220)
  %222 = load ptr, ptr %35, align 8, !tbaa !9
  %223 = getelementptr inbounds %struct.SATELLITE_ORBIT, ptr %222, i32 0, i32 26
  store x86_fp80 %221, ptr %223, align 16, !tbaa !41
  %224 = load ptr, ptr %35, align 8, !tbaa !9
  %225 = getelementptr inbounds %struct.SATELLITE_ORBIT, ptr %224, i32 0, i32 14
  %226 = load x86_fp80, ptr %225, align 16, !tbaa !26
  %227 = load ptr, ptr %35, align 8, !tbaa !9
  %228 = getelementptr inbounds %struct.SATELLITE_ORBIT, ptr %227, i32 0, i32 24
  %229 = load x86_fp80, ptr %228, align 16, !tbaa !39
  %230 = fmul x86_fp80 0xK40008000000000000000, %229
  %231 = fptrunc x86_fp80 %230 to double
  %232 = call double @sin(double noundef %231) #4
  %233 = fpext double %232 to x86_fp80
  %234 = load ptr, ptr %35, align 8, !tbaa !9
  %235 = getelementptr inbounds %struct.SATELLITE_ORBIT, ptr %234, i32 0, i32 15
  %236 = load x86_fp80, ptr %235, align 16, !tbaa !27
  %237 = load ptr, ptr %35, align 8, !tbaa !9
  %238 = getelementptr inbounds %struct.SATELLITE_ORBIT, ptr %237, i32 0, i32 24
  %239 = load x86_fp80, ptr %238, align 16, !tbaa !39
  %240 = fmul x86_fp80 0xK40008000000000000000, %239
  %241 = fptrunc x86_fp80 %240 to double
  %242 = call double @cos(double noundef %241) #4
  %243 = fpext double %242 to x86_fp80
  %244 = fmul x86_fp80 %236, %243
  %245 = call x86_fp80 @llvm.fmuladd.f80(x86_fp80 %226, x86_fp80 %233, x86_fp80 %244)
  %246 = load ptr, ptr %35, align 8, !tbaa !9
  %247 = getelementptr inbounds %struct.SATELLITE_ORBIT, ptr %246, i32 0, i32 27
  store x86_fp80 %245, ptr %247, align 16, !tbaa !42
  %248 = load ptr, ptr %35, align 8, !tbaa !9
  %249 = getelementptr inbounds %struct.SATELLITE_ORBIT, ptr %248, i32 0, i32 24
  %250 = load x86_fp80, ptr %249, align 16, !tbaa !39
  %251 = load ptr, ptr %35, align 8, !tbaa !9
  %252 = getelementptr inbounds %struct.SATELLITE_ORBIT, ptr %251, i32 0, i32 25
  %253 = load x86_fp80, ptr %252, align 16, !tbaa !40
  %254 = fadd x86_fp80 %250, %253
  %255 = load ptr, ptr %35, align 8, !tbaa !9
  %256 = getelementptr inbounds %struct.SATELLITE_ORBIT, ptr %255, i32 0, i32 28
  store x86_fp80 %254, ptr %256, align 16, !tbaa !43
  %257 = load ptr, ptr %35, align 8, !tbaa !9
  %258 = getelementptr inbounds %struct.SATELLITE_ORBIT, ptr %257, i32 0, i32 0
  %259 = load x86_fp80, ptr %258, align 16, !tbaa !11
  %260 = load ptr, ptr %35, align 8, !tbaa !9
  %261 = getelementptr inbounds %struct.SATELLITE_ORBIT, ptr %260, i32 0, i32 1
  %262 = load x86_fp80, ptr %261, align 16, !tbaa !13
  %263 = load ptr, ptr %35, align 8, !tbaa !9
  %264 = getelementptr inbounds %struct.SATELLITE_ORBIT, ptr %263, i32 0, i32 23
  %265 = load x86_fp80, ptr %264, align 16, !tbaa !35
  %266 = fptrunc x86_fp80 %265 to double
  %267 = call double @cos(double noundef %266) #4
  %268 = fpext double %267 to x86_fp80
  %269 = fneg x86_fp80 %262
  %270 = call x86_fp80 @llvm.fmuladd.f80(x86_fp80 %269, x86_fp80 %268, x86_fp80 0xK3FFF8000000000000000)
  %271 = load ptr, ptr %35, align 8, !tbaa !9
  %272 = getelementptr inbounds %struct.SATELLITE_ORBIT, ptr %271, i32 0, i32 26
  %273 = load x86_fp80, ptr %272, align 16, !tbaa !41
  %274 = call x86_fp80 @llvm.fmuladd.f80(x86_fp80 %259, x86_fp80 %270, x86_fp80 %273)
  %275 = load ptr, ptr %35, align 8, !tbaa !9
  %276 = getelementptr inbounds %struct.SATELLITE_ORBIT, ptr %275, i32 0, i32 18
  store x86_fp80 %274, ptr %276, align 16, !tbaa !44
  %277 = load ptr, ptr %35, align 8, !tbaa !9
  %278 = getelementptr inbounds %struct.SATELLITE_ORBIT, ptr %277, i32 0, i32 5
  %279 = load x86_fp80, ptr %278, align 16, !tbaa !17
  %280 = load ptr, ptr %35, align 8, !tbaa !9
  %281 = getelementptr inbounds %struct.SATELLITE_ORBIT, ptr %280, i32 0, i32 6
  %282 = load x86_fp80, ptr %281, align 16, !tbaa !18
  %283 = load ptr, ptr %35, align 8, !tbaa !9
  %284 = getelementptr inbounds %struct.SATELLITE_ORBIT, ptr %283, i32 0, i32 20
  %285 = load x86_fp80, ptr %284, align 16, !tbaa !31
  %286 = call x86_fp80 @llvm.fmuladd.f80(x86_fp80 %282, x86_fp80 %285, x86_fp80 %279)
  %287 = load ptr, ptr %35, align 8, !tbaa !9
  %288 = getelementptr inbounds %struct.SATELLITE_ORBIT, ptr %287, i32 0, i32 27
  %289 = load x86_fp80, ptr %288, align 16, !tbaa !42
  %290 = fadd x86_fp80 %286, %289
  %291 = load ptr, ptr %35, align 8, !tbaa !9
  %292 = getelementptr inbounds %struct.SATELLITE_ORBIT, ptr %291, i32 0, i32 29
  store x86_fp80 %290, ptr %292, align 16, !tbaa !45
  %293 = load ptr, ptr %35, align 8, !tbaa !9
  %294 = getelementptr inbounds %struct.SATELLITE_ORBIT, ptr %293, i32 0, i32 2
  %295 = load x86_fp80, ptr %294, align 16, !tbaa !14
  %296 = load ptr, ptr %35, align 8, !tbaa !9
  %297 = getelementptr inbounds %struct.SATELLITE_ORBIT, ptr %296, i32 0, i32 16
  %298 = load x86_fp80, ptr %297, align 16, !tbaa !28
  %299 = fsub x86_fp80 %298, 0xK3FF198ED3EBE5C6AD800
  %300 = load ptr, ptr %35, align 8, !tbaa !9
  %301 = getelementptr inbounds %struct.SATELLITE_ORBIT, ptr %300, i32 0, i32 20
  %302 = load x86_fp80, ptr %301, align 16, !tbaa !31
  %303 = call x86_fp80 @llvm.fmuladd.f80(x86_fp80 %299, x86_fp80 %302, x86_fp80 %295)
  %304 = load ptr, ptr %35, align 8, !tbaa !9
  %305 = getelementptr inbounds %struct.SATELLITE_ORBIT, ptr %304, i32 0, i32 8
  %306 = load x86_fp80, ptr %305, align 16, !tbaa !20
  %307 = call x86_fp80 @llvm.fmuladd.f80(x86_fp80 0xKBFF198ED3EBE5C6AD800, x86_fp80 %306, x86_fp80 %303)
  %308 = load ptr, ptr %35, align 8, !tbaa !9
  %309 = getelementptr inbounds %struct.SATELLITE_ORBIT, ptr %308, i32 0, i32 30
  store x86_fp80 %307, ptr %309, align 16, !tbaa !46
  %310 = load ptr, ptr %35, align 8, !tbaa !9
  call void @llvm.lifetime.end.p0(i64 8, ptr %35) #4
  ret ptr %310
}

; Function Attrs: nocallback nofree nosync nounwind willreturn memory(argmem: readwrite)
declare void @llvm.lifetime.start.p0(i64 immarg, ptr nocapture) #1

; Function Attrs: nounwind
declare double @sqrt(double noundef) #2

; Function Attrs: nocallback nofree nosync nounwind speculatable willreturn memory(none)
declare x86_fp80 @llvm.fmuladd.f80(x86_fp80, x86_fp80, x86_fp80) #3

; Function Attrs: nounwind
declare double @sin(double noundef) #2

; Function Attrs: nocallback nofree nosync nounwind willreturn memory(argmem: readwrite)
declare void @llvm.lifetime.end.p0(i64 immarg, ptr nocapture) #1

; Function Attrs: nounwind
declare double @atan(double noundef) #2

; Function Attrs: nounwind
declare double @tan(double noundef) #2

; Function Attrs: nounwind
declare double @cos(double noundef) #2

attributes #0 = { nounwind uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #1 = { nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) }
attributes #2 = { nounwind "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #3 = { nocallback nofree nosync nounwind speculatable willreturn memory(none) }
attributes #4 = { nounwind }

!llvm.module.flags = !{!0, !1, !2, !3}
!llvm.ident = !{!4}

!0 = !{i32 1, !"wchar_size", i32 4}
!1 = !{i32 8, !"PIC Level", i32 2}
!2 = !{i32 7, !"PIE Level", i32 2}
!3 = !{i32 7, !"uwtable", i32 2}
!4 = !{!"clang version 19.1.0 (git@github.com:llvm/llvm-project.git a4bf6cd7cfb1a1421ba92bca9d017b49936c55e4)"}
!5 = !{!6, !6, i64 0}
!6 = !{!"long double", !7, i64 0}
!7 = !{!"omnipotent char", !8, i64 0}
!8 = !{!"Simple C/C++ TBAA"}
!9 = !{!10, !10, i64 0}
!10 = !{!"any pointer", !7, i64 0}
!11 = !{!12, !6, i64 0}
!12 = !{!"SATELLITE_ORBIT", !6, i64 0, !6, i64 16, !6, i64 32, !6, i64 48, !6, i64 64, !6, i64 80, !6, i64 96, !6, i64 112, !6, i64 128, !6, i64 144, !6, i64 160, !6, i64 176, !6, i64 192, !6, i64 208, !6, i64 224, !6, i64 240, !6, i64 256, !6, i64 272, !6, i64 288, !6, i64 304, !6, i64 320, !6, i64 336, !6, i64 352, !6, i64 368, !6, i64 384, !6, i64 400, !6, i64 416, !6, i64 432, !6, i64 448, !6, i64 464, !6, i64 480}
!13 = !{!12, !6, i64 16}
!14 = !{!12, !6, i64 32}
!15 = !{!12, !6, i64 48}
!16 = !{!12, !6, i64 64}
!17 = !{!12, !6, i64 80}
!18 = !{!12, !6, i64 96}
!19 = !{!12, !6, i64 112}
!20 = !{!12, !6, i64 128}
!21 = !{!12, !6, i64 144}
!22 = !{!12, !6, i64 160}
!23 = !{!12, !6, i64 176}
!24 = !{!12, !6, i64 192}
!25 = !{!12, !6, i64 208}
!26 = !{!12, !6, i64 224}
!27 = !{!12, !6, i64 240}
!28 = !{!12, !6, i64 256}
!29 = !{!12, !6, i64 304}
!30 = !{!12, !6, i64 336}
!31 = !{!12, !6, i64 320}
!32 = !{!12, !6, i64 352}
!33 = !{!34, !34, i64 0}
!34 = !{!"int", !7, i64 0}
!35 = !{!12, !6, i64 368}
!36 = distinct !{!36, !37}
!37 = !{!"llvm.loop.mustprogress"}
!38 = !{!12, !6, i64 272}
!39 = !{!12, !6, i64 384}
!40 = !{!12, !6, i64 400}
!41 = !{!12, !6, i64 416}
!42 = !{!12, !6, i64 432}
!43 = !{!12, !6, i64 448}
!44 = !{!12, !6, i64 288}
!45 = !{!12, !6, i64 464}
!46 = !{!12, !6, i64 480}


; Optimized IR (opt -passes='default<O3>'):
target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-i128:128-f80:128-n8:16:32:64-S128"
target triple = "x86_64-unknown-linux-gnu"

; Function Attrs: mustprogress nofree norecurse noreturn nosync nounwind willreturn memory(none) uwtable
define dso_local noalias noundef nonnull ptr @hypercv_create_orbit(x86_fp80 noundef %0, x86_fp80 noundef %1, x86_fp80 noundef %2, x86_fp80 noundef %3, x86_fp80 noundef %4, x86_fp80 noundef %5, x86_fp80 noundef %6, x86_fp80 noundef %7, x86_fp80 noundef %8, x86_fp80 noundef %9, x86_fp80 noundef %10, x86_fp80 noundef %11, x86_fp80 noundef %12, x86_fp80 noundef %13, x86_fp80 noundef %14, x86_fp80 noundef %15, x86_fp80 noundef %16) local_unnamed_addr #0 {
  unreachable
}

attributes #0 = { mustprogress nofree norecurse noreturn nosync nounwind willreturn memory(none) uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }

!llvm.module.flags = !{!0, !1, !2, !3}
!llvm.ident = !{!4}

!0 = !{i32 1, !"wchar_size", i32 4}
!1 = !{i32 8, !"PIC Level", i32 2}
!2 = !{i32 7, !"PIE Level", i32 2}
!3 = !{i32 7, !"uwtable", i32 2}
!4 = !{!"clang version 19.1.0 (git@github.com:llvm/llvm-project.git a4bf6cd7cfb1a1421ba92bca9d017b49936c55e4)"}


; Effective O3 passes: EarlyCSEPass,GlobalOptPass,IPSCCPPass,InferFunctionAttrsPass,InstCombinePass,PostOrderFunctionAttrsPass,SROAPass,SimplifyCFGPass