Created
March 20, 2023 17:54
-
-
Save d0k/a6541ebfd36ea75db36bf12ac6996ba1 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
; ModuleID = 'LLVMDialectModule' | |
source_filename = "LLVMDialectModule" | |
target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" | |
target triple = "x86_64-unknown-linux-gnu" | |
; Function Attrs: mustprogress nofree nosync nounwind willreturn memory(none) | |
declare double @atan2(double %0, double %1) local_unnamed_addr #0 | |
; Function Attrs: mustprogress nocallback nofree nosync nounwind speculatable willreturn memory(none) | |
declare double @llvm.fabs.f64(double %0) #1 | |
; Function Attrs: mustprogress nocallback nofree nosync nounwind speculatable willreturn memory(none) | |
declare double @llvm.copysign.f64(double %0, double %1) #1 | |
; Function Attrs: mustprogress nocallback nofree nosync nounwind speculatable willreturn memory(none) | |
declare double @llvm.sqrt.f64(double %0) #1 | |
; Function Attrs: mustprogress nocallback nofree nosync nounwind speculatable willreturn memory(none) | |
declare double @llvm.log.f64(double %0) #1 | |
; Function Attrs: nofree nosync nounwind memory(readwrite, inaccessiblemem: none) | |
define void @__xla__main(ptr nocapture readonly %0) local_unnamed_addr #2 { | |
%2 = getelementptr ptr, ptr %0, i64 2 | |
%3 = load ptr, ptr %2, align 8 | |
%4 = load ptr, ptr %3, align 8 | |
%5 = getelementptr ptr, ptr %0, i64 7 | |
%6 = load ptr, ptr %5, align 8 | |
%7 = load ptr, ptr %6, align 8 | |
br label %8 | |
8: ; preds = %1, %8 | |
%9 = phi i64 [ 0, %1 ], [ %431, %8 ] | |
%10 = getelementptr { double, double }, ptr %4, i64 %9 | |
%.unpack = load double, ptr %10, align 8 | |
%.elt1 = getelementptr { double, double }, ptr %4, i64 %9, i32 1 | |
%.unpack2 = load double, ptr %.elt1, align 8 | |
%11 = tail call double @llvm.fabs.f64(double %.unpack) | |
%12 = tail call double @llvm.fabs.f64(double %.unpack2) | |
%13 = fmul double %.unpack, %.unpack | |
%14 = tail call double @llvm.fabs.f64(double %13) | |
%15 = fmul double %.unpack2, %.unpack2 | |
%16 = tail call double @llvm.fabs.f64(double %15) | |
%17 = fsub double %13, %15 | |
%18 = fmul double %.unpack, %.unpack2 | |
%19 = tail call double @llvm.fabs.f64(double %18) | |
%20 = fadd double %18, %18 | |
%21 = fcmp uno double %17, 0.000000e+00 | |
%22 = fcmp uno double %20, 0.000000e+00 | |
%23 = and i1 %21, %22 | |
%24 = fcmp oeq double %11, 0x7FF0000000000000 | |
%25 = fcmp oeq double %12, 0x7FF0000000000000 | |
%26 = or i1 %24, %25 | |
%27 = fcmp uno double %.unpack, 0.000000e+00 | |
%28 = fcmp uno double %.unpack2, 0.000000e+00 | |
%29 = select i1 %24, double 1.000000e+00, double 0.000000e+00 | |
%30 = tail call double @llvm.copysign.f64(double %29, double %.unpack) | |
%31 = select i1 %26, double %30, double %.unpack | |
%32 = select i1 %25, double 1.000000e+00, double 0.000000e+00 | |
%33 = tail call double @llvm.copysign.f64(double %32, double %.unpack2) | |
%34 = select i1 %26, double %33, double %.unpack2 | |
%35 = and i1 %27, %26 | |
%36 = tail call double @llvm.copysign.f64(double 0.000000e+00, double %.unpack) | |
%37 = select i1 %35, double %36, double %.unpack | |
%38 = and i1 %28, %26 | |
%39 = tail call double @llvm.copysign.f64(double 0.000000e+00, double %.unpack2) | |
%40 = select i1 %38, double %39, double %.unpack2 | |
%41 = fcmp uno double %31, 0.000000e+00 | |
%42 = fcmp uno double %34, 0.000000e+00 | |
%43 = tail call double @llvm.copysign.f64(double %29, double %37) | |
%44 = select i1 %26, double %43, double %37 | |
%45 = tail call double @llvm.copysign.f64(double %32, double %40) | |
%46 = select i1 %26, double %45, double %40 | |
%47 = tail call double @llvm.copysign.f64(double 0.000000e+00, double %31) | |
%48 = select i1 %41, double %47, double %30 | |
%49 = select i1 %26, double %48, double %.unpack | |
%50 = tail call double @llvm.copysign.f64(double 0.000000e+00, double %34) | |
%51 = select i1 %42, double %50, double %33 | |
%52 = select i1 %26, double %51, double %.unpack2 | |
%53 = fcmp oeq double %14, 0x7FF0000000000000 | |
%54 = fcmp oeq double %16, 0x7FF0000000000000 | |
%55 = or i1 %53, %54 | |
%56 = fcmp oeq double %19, 0x7FF0000000000000 | |
%57 = or i1 %56, %55 | |
%58 = xor i1 %26, true | |
%59 = and i1 %57, %58 | |
%60 = and i1 %41, %59 | |
%61 = tail call double @llvm.copysign.f64(double 0.000000e+00, double %49) | |
%62 = select i1 %60, double %61, double %49 | |
%63 = and i1 %59, %42 | |
%64 = tail call double @llvm.copysign.f64(double 0.000000e+00, double %52) | |
%65 = select i1 %63, double %64, double %52 | |
%66 = and i1 %27, %59 | |
%67 = tail call double @llvm.copysign.f64(double 0.000000e+00, double %44) | |
%68 = select i1 %66, double %67, double %44 | |
%69 = and i1 %28, %59 | |
%70 = tail call double @llvm.copysign.f64(double 0.000000e+00, double %46) | |
%71 = select i1 %69, double %70, double %46 | |
%72 = or i1 %26, %57 | |
%73 = and i1 %23, %72 | |
%74 = fmul double %62, %68 | |
%75 = fmul double %71, %65 | |
%76 = fsub double %74, %75 | |
%77 = fmul double %76, 0x7FF0000000000000 | |
%78 = select i1 %73, double %77, double %17 | |
%79 = fmul double %68, %65 | |
%80 = fmul double %62, %71 | |
%81 = fadd double %80, %79 | |
%82 = fmul double %81, 0x7FF0000000000000 | |
%83 = select i1 %73, double %82, double %20 | |
%84 = fsub double 1.000000e+00, %78 | |
%85 = fsub double 0.000000e+00, %83 | |
%86 = tail call double @llvm.fabs.f64(double %84) | |
%87 = fmul double %84, %84 | |
%88 = fmul double %85, %85 | |
%89 = fadd double %87, %88 | |
%90 = tail call double @llvm.sqrt.f64(double %89) | |
%91 = fadd double %86, %90 | |
%92 = fmul double %91, 5.000000e-01 | |
%93 = tail call double @llvm.sqrt.f64(double %92) | |
%94 = fcmp olt double %84, 0.000000e+00 | |
%95 = fcmp olt double %85, 0.000000e+00 | |
%96 = fadd double %93, %93 | |
%97 = fdiv double %85, %96 | |
%98 = fneg double %93 | |
%99 = select i1 %95, double %98, double %93 | |
%100 = select i1 %94, double %99, double %97 | |
%101 = fadd double %100, %100 | |
%102 = fdiv double %85, %101 | |
%103 = select i1 %94, double %102, double %93 | |
%104 = fcmp oeq double %84, 0.000000e+00 | |
%105 = fcmp oeq double %85, 0.000000e+00 | |
%106 = and i1 %104, %105 | |
%.op = fadd double %103, 1.000000e+00 | |
%107 = select i1 %106, double 1.000000e+00, double %.op | |
%.op3 = fadd double %100, 0.000000e+00 | |
%108 = select i1 %106, double 0.000000e+00, double %.op3 | |
%109 = tail call double @llvm.fabs.f64(double %107) | |
%110 = tail call double @llvm.fabs.f64(double %108) | |
%111 = fmul double %107, %107 | |
%112 = tail call double @llvm.fabs.f64(double %111) | |
%113 = fmul double %108, %108 | |
%114 = tail call double @llvm.fabs.f64(double %113) | |
%115 = fsub double %111, %113 | |
%116 = fmul double %108, %107 | |
%117 = tail call double @llvm.fabs.f64(double %116) | |
%118 = fadd double %116, %116 | |
%119 = fcmp uno double %115, 0.000000e+00 | |
%120 = fcmp uno double %118, 0.000000e+00 | |
%121 = and i1 %119, %120 | |
%122 = fcmp oeq double %109, 0x7FF0000000000000 | |
%123 = fcmp oeq double %110, 0x7FF0000000000000 | |
%124 = or i1 %123, %122 | |
%125 = fcmp uno double %107, 0.000000e+00 | |
%126 = fcmp uno double %108, 0.000000e+00 | |
%127 = select i1 %122, double 1.000000e+00, double 0.000000e+00 | |
%128 = tail call double @llvm.copysign.f64(double %127, double %107) | |
%129 = select i1 %124, double %128, double %107 | |
%130 = select i1 %123, double 1.000000e+00, double 0.000000e+00 | |
%131 = tail call double @llvm.copysign.f64(double %130, double %108) | |
%132 = select i1 %124, double %131, double %108 | |
%133 = and i1 %125, %124 | |
%134 = tail call double @llvm.copysign.f64(double 0.000000e+00, double %107) | |
%135 = select i1 %133, double %134, double %107 | |
%136 = and i1 %126, %124 | |
%137 = tail call double @llvm.copysign.f64(double 0.000000e+00, double %108) | |
%138 = select i1 %136, double %137, double %108 | |
%139 = fcmp uno double %129, 0.000000e+00 | |
%140 = fcmp uno double %132, 0.000000e+00 | |
%141 = tail call double @llvm.copysign.f64(double %127, double %135) | |
%142 = select i1 %124, double %141, double %135 | |
%143 = tail call double @llvm.copysign.f64(double %130, double %138) | |
%144 = select i1 %124, double %143, double %138 | |
%145 = tail call double @llvm.copysign.f64(double 0.000000e+00, double %129) | |
%146 = select i1 %139, double %145, double %128 | |
%147 = select i1 %124, double %146, double %107 | |
%148 = tail call double @llvm.copysign.f64(double 0.000000e+00, double %132) | |
%149 = select i1 %140, double %148, double %131 | |
%150 = select i1 %124, double %149, double %108 | |
%151 = fcmp oeq double %112, 0x7FF0000000000000 | |
%152 = fcmp oeq double %114, 0x7FF0000000000000 | |
%153 = or i1 %152, %151 | |
%154 = fcmp oeq double %117, 0x7FF0000000000000 | |
%155 = or i1 %154, %153 | |
%156 = xor i1 %124, true | |
%157 = and i1 %155, %156 | |
%158 = and i1 %157, %139 | |
%159 = tail call double @llvm.copysign.f64(double 0.000000e+00, double %147) | |
%160 = select i1 %158, double %159, double %147 | |
%161 = and i1 %140, %157 | |
%162 = tail call double @llvm.copysign.f64(double 0.000000e+00, double %150) | |
%163 = select i1 %161, double %162, double %150 | |
%164 = and i1 %125, %157 | |
%165 = tail call double @llvm.copysign.f64(double 0.000000e+00, double %142) | |
%166 = select i1 %164, double %165, double %142 | |
%167 = and i1 %126, %157 | |
%168 = tail call double @llvm.copysign.f64(double 0.000000e+00, double %144) | |
%169 = select i1 %167, double %168, double %144 | |
%170 = or i1 %124, %155 | |
%171 = and i1 %121, %170 | |
%172 = fmul double %166, %160 | |
%173 = fmul double %163, %169 | |
%174 = fsub double %172, %173 | |
%175 = fmul double %174, 0x7FF0000000000000 | |
%176 = select i1 %171, double %175, double %115 | |
%177 = fmul double %163, %166 | |
%178 = fmul double %169, %160 | |
%179 = fadd double %177, %178 | |
%180 = fmul double %179, 0x7FF0000000000000 | |
%181 = select i1 %171, double %180, double %118 | |
%182 = fadd double %78, %176 | |
%183 = fadd double %83, %181 | |
%184 = tail call double @llvm.fabs.f64(double %182) | |
%185 = fmul double %182, %182 | |
%186 = fmul double %183, %183 | |
%187 = fadd double %185, %186 | |
%188 = tail call double @llvm.sqrt.f64(double %187) | |
%189 = fadd double %184, %188 | |
%190 = fmul double %189, 5.000000e-01 | |
%191 = tail call double @llvm.sqrt.f64(double %190) | |
%192 = fcmp olt double %182, 0.000000e+00 | |
%193 = fcmp olt double %183, 0.000000e+00 | |
%194 = fadd double %191, %191 | |
%195 = fdiv double %183, %194 | |
%196 = fneg double %191 | |
%197 = select i1 %193, double %196, double %191 | |
%198 = select i1 %192, double %197, double %195 | |
%199 = fadd double %198, %198 | |
%200 = fdiv double %183, %199 | |
%201 = select i1 %192, double %200, double %191 | |
%202 = fcmp oeq double %182, 0.000000e+00 | |
%203 = fcmp oeq double %183, 0.000000e+00 | |
%204 = and i1 %202, %203 | |
%205 = select i1 %204, double 0.000000e+00, double %201 | |
%206 = select i1 %204, double 0.000000e+00, double %198 | |
%207 = fmul double %.unpack, 0.000000e+00 | |
%208 = tail call double @llvm.fabs.f64(double %207) | |
%209 = fsub double %207, %.unpack2 | |
%210 = fmul double %.unpack2, 0.000000e+00 | |
%211 = tail call double @llvm.fabs.f64(double %210) | |
%212 = fadd double %.unpack, %210 | |
%213 = fcmp uno double %209, 0.000000e+00 | |
%214 = fcmp uno double %212, 0.000000e+00 | |
%215 = and i1 %213, %214 | |
%216 = fcmp oeq double %208, 0x7FF0000000000000 | |
%217 = fcmp oeq double %211, 0x7FF0000000000000 | |
%218 = or i1 %216, %217 | |
%219 = and i1 %218, %58 | |
%220 = and i1 %27, %219 | |
%221 = select i1 %220, double %47, double %31 | |
%222 = and i1 %28, %219 | |
%223 = select i1 %222, double %50, double %34 | |
%224 = or i1 %26, %218 | |
%225 = and i1 %215, %224 | |
%226 = fmul double %221, 0.000000e+00 | |
%227 = fsub double %226, %223 | |
%228 = fmul double %227, 0x7FF0000000000000 | |
%229 = select i1 %225, double %228, double %209 | |
%230 = fmul double %223, 0.000000e+00 | |
%231 = fadd double %221, %230 | |
%232 = fmul double %231, 0x7FF0000000000000 | |
%233 = select i1 %225, double %232, double %212 | |
%234 = fadd double %229, %107 | |
%235 = fadd double %233, %108 | |
%236 = fdiv double %205, %206 | |
%237 = fmul double %205, %236 | |
%238 = fadd double %206, %237 | |
%239 = fmul double %234, %236 | |
%240 = fadd double %235, %239 | |
%241 = fdiv double %240, %238 | |
%242 = fmul double %235, %236 | |
%243 = fsub double %242, %234 | |
%244 = fdiv double %243, %238 | |
%245 = fdiv double %206, %205 | |
%246 = fmul double %206, %245 | |
%247 = fadd double %205, %246 | |
%248 = fmul double %235, %245 | |
%249 = fadd double %234, %248 | |
%250 = fdiv double %249, %247 | |
%251 = fmul double %234, %245 | |
%252 = fsub double %235, %251 | |
%253 = fdiv double %252, %247 | |
%254 = tail call double @llvm.fabs.f64(double %205) | |
%255 = fcmp oeq double %205, 0.000000e+00 | |
%256 = tail call double @llvm.fabs.f64(double %206) | |
%257 = fcmp oeq double %206, 0.000000e+00 | |
%258 = fcmp ord double %234, 0.000000e+00 | |
%259 = fcmp ord double %235, 0.000000e+00 | |
%260 = or i1 %259, %258 | |
%261 = and i1 %257, %255 | |
%262 = and i1 %260, %261 | |
%263 = tail call double @llvm.copysign.f64(double 0x7FF0000000000000, double %205) | |
%264 = fmul double %234, %263 | |
%265 = fmul double %235, %263 | |
%266 = fcmp one double %254, 0x7FF0000000000000 | |
%267 = fcmp one double %256, 0x7FF0000000000000 | |
%268 = and i1 %267, %266 | |
%269 = tail call double @llvm.fabs.f64(double %234) | |
%270 = fcmp oeq double %269, 0x7FF0000000000000 | |
%271 = tail call double @llvm.fabs.f64(double %235) | |
%272 = fcmp oeq double %271, 0x7FF0000000000000 | |
%273 = or i1 %272, %270 | |
%274 = and i1 %273, %268 | |
%275 = select i1 %270, double 1.000000e+00, double 0.000000e+00 | |
%276 = tail call double @llvm.copysign.f64(double %275, double %234) | |
%277 = select i1 %272, double 1.000000e+00, double 0.000000e+00 | |
%278 = tail call double @llvm.copysign.f64(double %277, double %235) | |
%279 = fmul double %276, %205 | |
%280 = fmul double %278, %206 | |
%281 = fadd double %280, %279 | |
%282 = fmul double %281, 0x7FF0000000000000 | |
%283 = fmul double %276, %206 | |
%284 = fmul double %278, %205 | |
%285 = fsub double %284, %283 | |
%286 = fmul double %285, 0x7FF0000000000000 | |
%287 = fcmp one double %269, 0x7FF0000000000000 | |
%288 = fcmp one double %271, 0x7FF0000000000000 | |
%289 = and i1 %288, %287 | |
%290 = fcmp oeq double %254, 0x7FF0000000000000 | |
%291 = fcmp oeq double %256, 0x7FF0000000000000 | |
%292 = or i1 %291, %290 | |
%293 = and i1 %289, %292 | |
%294 = select i1 %290, double 1.000000e+00, double 0.000000e+00 | |
%295 = tail call double @llvm.copysign.f64(double %294, double %205) | |
%296 = select i1 %291, double 1.000000e+00, double 0.000000e+00 | |
%297 = tail call double @llvm.copysign.f64(double %296, double %206) | |
%298 = fmul double %234, %295 | |
%299 = fmul double %235, %297 | |
%300 = fadd double %299, %298 | |
%301 = fmul double %300, 0.000000e+00 | |
%302 = fmul double %235, %295 | |
%303 = fmul double %234, %297 | |
%304 = fsub double %302, %303 | |
%305 = fmul double %304, 0.000000e+00 | |
%306 = fcmp olt double %254, %256 | |
%307 = select i1 %306, double %241, double %250 | |
%308 = select i1 %306, double %244, double %253 | |
%309 = select i1 %293, double %301, double %307 | |
%310 = select i1 %293, double %305, double %308 | |
%311 = select i1 %274, double %282, double %309 | |
%312 = select i1 %274, double %286, double %310 | |
%313 = select i1 %262, double %264, double %311 | |
%314 = select i1 %262, double %265, double %312 | |
%315 = fcmp uno double %307, 0.000000e+00 | |
%316 = fcmp uno double %308, 0.000000e+00 | |
%317 = and i1 %315, %316 | |
%318 = select i1 %317, double %313, double %307 | |
%319 = select i1 %317, double %314, double %308 | |
%320 = fmul double %318, %318 | |
%321 = fmul double %319, %319 | |
%322 = fadd double %320, %321 | |
%323 = tail call double @llvm.sqrt.f64(double %322) | |
%324 = tail call double @llvm.log.f64(double %323) | |
%325 = tail call double @atan2(double %319, double %318) | |
%326 = tail call double @llvm.fabs.f64(double %324) | |
%327 = tail call double @llvm.fabs.f64(double %325) | |
%328 = fmul double %324, 0.000000e+00 | |
%329 = tail call double @llvm.fabs.f64(double %328) | |
%330 = fneg double %325 | |
%331 = tail call double @llvm.fabs.f64(double %330) | |
%332 = fadd double %325, %328 | |
%333 = fneg double %324 | |
%334 = tail call double @llvm.fabs.f64(double %333) | |
%335 = fmul double %325, 0.000000e+00 | |
%336 = tail call double @llvm.fabs.f64(double %335) | |
%337 = fsub double %335, %324 | |
%338 = fcmp uno double %332, 0.000000e+00 | |
%339 = fcmp uno double %337, 0.000000e+00 | |
%340 = and i1 %339, %338 | |
%341 = fcmp uno double %324, 0.000000e+00 | |
%342 = fcmp uno double %325, 0.000000e+00 | |
%343 = fcmp oeq double %326, 0x7FF0000000000000 | |
%344 = fcmp oeq double %327, 0x7FF0000000000000 | |
%345 = or i1 %344, %343 | |
%346 = select i1 %343, double 1.000000e+00, double 0.000000e+00 | |
%347 = tail call double @llvm.copysign.f64(double %346, double %324) | |
%348 = select i1 %345, double %347, double %324 | |
%349 = select i1 %344, double 1.000000e+00, double 0.000000e+00 | |
%350 = tail call double @llvm.copysign.f64(double %349, double %325) | |
%351 = select i1 %345, double %350, double %325 | |
%352 = fcmp oeq double %329, 0x7FF0000000000000 | |
%353 = fcmp oeq double %331, 0x7FF0000000000000 | |
%354 = or i1 %353, %352 | |
%355 = fcmp oeq double %336, 0x7FF0000000000000 | |
%356 = or i1 %355, %354 | |
%357 = fcmp oeq double %334, 0x7FF0000000000000 | |
%358 = or i1 %357, %356 | |
%359 = xor i1 %345, true | |
%360 = and i1 %358, %359 | |
%361 = and i1 %341, %360 | |
%362 = tail call double @llvm.copysign.f64(double 0.000000e+00, double %348) | |
%363 = select i1 %361, double %362, double %348 | |
%364 = and i1 %342, %360 | |
%365 = tail call double @llvm.copysign.f64(double 0.000000e+00, double %351) | |
%366 = select i1 %364, double %365, double %351 | |
%367 = or i1 %345, %358 | |
%368 = and i1 %340, %367 | |
%369 = fmul double %363, 0.000000e+00 | |
%370 = fadd double %366, %369 | |
%371 = fmul double %370, 0x7FF0000000000000 | |
%372 = select i1 %368, double %371, double %332 | |
%373 = fmul double %366, 0.000000e+00 | |
%374 = fsub double %373, %363 | |
%375 = fmul double %374, 0x7FF0000000000000 | |
%376 = select i1 %368, double %375, double %337 | |
%377 = tail call double @llvm.fabs.f64(double %372) | |
%378 = tail call double @llvm.fabs.f64(double %376) | |
%379 = fmul double %372, 2.000000e+00 | |
%380 = tail call double @llvm.fabs.f64(double %379) | |
%381 = fmul double %376, 0.000000e+00 | |
%382 = tail call double @llvm.fabs.f64(double %381) | |
%383 = fsub double %379, %381 | |
%384 = fmul double %376, 2.000000e+00 | |
%385 = tail call double @llvm.fabs.f64(double %384) | |
%386 = fmul double %372, 0.000000e+00 | |
%387 = tail call double @llvm.fabs.f64(double %386) | |
%388 = fadd double %384, %386 | |
%389 = fcmp uno double %383, 0.000000e+00 | |
%390 = fcmp uno double %388, 0.000000e+00 | |
%391 = and i1 %389, %390 | |
%392 = fcmp oeq double %377, 0x7FF0000000000000 | |
%393 = fcmp oeq double %378, 0x7FF0000000000000 | |
%394 = or i1 %392, %393 | |
%395 = select i1 %392, double 1.000000e+00, double 0.000000e+00 | |
%396 = tail call double @llvm.copysign.f64(double %395, double %372) | |
%397 = select i1 %394, double %396, double %372 | |
%398 = select i1 %393, double 1.000000e+00, double 0.000000e+00 | |
%399 = tail call double @llvm.copysign.f64(double %398, double %376) | |
%400 = select i1 %394, double %399, double %376 | |
%401 = fcmp uno double %397, 0.000000e+00 | |
%402 = fcmp uno double %400, 0.000000e+00 | |
%403 = fcmp oeq double %380, 0x7FF0000000000000 | |
%404 = fcmp oeq double %382, 0x7FF0000000000000 | |
%405 = or i1 %403, %404 | |
%406 = fcmp oeq double %387, 0x7FF0000000000000 | |
%407 = or i1 %406, %405 | |
%408 = fcmp oeq double %385, 0x7FF0000000000000 | |
%409 = or i1 %408, %407 | |
%410 = xor i1 %394, true | |
%411 = and i1 %409, %410 | |
%412 = and i1 %401, %411 | |
%413 = tail call double @llvm.copysign.f64(double 0.000000e+00, double %397) | |
%414 = select i1 %412, double %413, double %397 | |
%415 = and i1 %402, %411 | |
%416 = tail call double @llvm.copysign.f64(double 0.000000e+00, double %400) | |
%417 = select i1 %415, double %416, double %400 | |
%418 = or i1 %394, %409 | |
%419 = and i1 %391, %418 | |
%420 = fmul double %414, 2.000000e+00 | |
%421 = fmul double %417, 0.000000e+00 | |
%422 = fsub double %420, %421 | |
%423 = fmul double %422, 0x7FF0000000000000 | |
%424 = select i1 %419, double %423, double %383 | |
%425 = fmul double %417, 2.000000e+00 | |
%426 = fmul double %414, 0.000000e+00 | |
%427 = fadd double %425, %426 | |
%428 = fmul double %427, 0x7FF0000000000000 | |
%429 = select i1 %419, double %428, double %388 | |
%430 = getelementptr { double, double }, ptr %7, i64 %9 | |
store double %424, ptr %430, align 8 | |
%.repack4 = getelementptr { double, double }, ptr %7, i64 %9, i32 1 | |
store double %429, ptr %.repack4, align 8 | |
%431 = add nuw nsw i64 %9, 1 | |
%exitcond.not = icmp eq i64 %431, 4 | |
br i1 %exitcond.not, label %main.exit, label %8 | |
main.exit: ; preds = %8 | |
ret void | |
} | |
attributes #0 = { mustprogress nofree nosync nounwind willreturn memory(none) } | |
attributes #1 = { mustprogress nocallback nofree nosync nounwind speculatable willreturn memory(none) } | |
attributes #2 = { nofree nosync nounwind memory(readwrite, inaccessiblemem: none) "frame-pointer"="all" } | |
!llvm.module.flags = !{!0} | |
!0 = !{i32 2, !"Debug Info Version", i32 3} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment