ERROR: LoadError: Enzyme compilation failed. Current scope: ; ModuleID = 'start' source_filename = "start" target datalayout = "e-p:64:64:64:32-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:64:64-f32:32:32-f64:64:64-v16:16:16-v32:32:32-v64:64:64-v128:128:128-n16:32:64-ni:10:11:12:13" target triple = "nvptx64-nvidia-cuda" @.str = private unnamed_addr constant [11 x i8] c"__CUDA_FTZ\00", align 1 @.str.2 = private unnamed_addr constant [17 x i8] c"__CUDA_PREC_SQRT\00", align 1 @.str.1 = private unnamed_addr constant [12 x i8] c"__CUDA_ARCH\00", align 1 @__cudart_i2opi_f = internal unnamed_addr addrspace(1) constant [6 x i32] [i32 1011060801, i32 -614296167, i32 -181084736, i32 -64530479, i32 1313084713, i32 -1560706194], align 4 @__cudart_i2opi_d = internal unnamed_addr addrspace(1) constant [18 x i64] [i64 7780917995555872008, i64 4397547296490951402, i64 8441921394348257659, i64 5712322887342352941, i64 7869616827067468215, i64 -1211730484530615009, i64 2303758334597371919, i64 -7168499653074671557, i64 4148332274289687028, i64 -1613291254968254911, i64 -1692731182770600828, i64 -135693905287338178, i64 452944820249399836, i64 -5249950069107600672, i64 -121206125134887583, i64 -2638381946312093631, i64 -277156292786332224, i64 -6703182060581546711], align 8 @__cudart_sin_cos_coeffs = internal unnamed_addr addrspace(1) constant [16 x double] [double 0x3DE5DB65F9785EBA, double 0xBE5AE5F12CB0D246, double 0x3EC71DE369ACE392, double 0xBF2A01A019DB62A1, double 0x3F81111111110818, double 0xBFC5555555555554, double 0.000000e+00, double 0.000000e+00, double 0xBDA8FF8320FD8164, double 0x3E21EEA7C1EF8528, double 0xBE927E4F8E06E6D9, double 0x3EFA01A019DDBCE9, double 0xBF56C16C16C15D47, double 0x3FA5555555555551, double -5.000000e-01, double 1.000000e+00], align 8 ; Function Attrs: nofree readnone declare {}*** @julia.get_pgcstack() local_unnamed_addr #0 define internal fastcc void @julia_force_3701([1 x [3 x double]]* noalias nocapture nofree noundef nonnull writeonly sret([1 x [3 x double]]) align 8 dereferenceable(24) %0, [1 x [3 x float]] addrspace(11)* nocapture nofree noundef nonnull readonly align 4 dereferenceable(12) %1, [1 x [3 x float]] addrspace(11)* nocapture nofree noundef nonnull readonly align 4 dereferenceable(12) %2) unnamed_addr #1 !dbg !45 { top: %3 = call {}*** @julia.get_pgcstack() %4 = getelementptr inbounds [1 x [3 x float]], [1 x [3 x float]] addrspace(11)* %2, i32 0, i32 0, i32 0, !dbg !47 %5 = getelementptr inbounds [1 x [3 x float]], [1 x [3 x float]] addrspace(11)* %1, i32 0, i32 0, i32 0, !dbg !47 %6 = load float, float addrspace(11)* %4, align 4, !dbg !64, !tbaa !67, !invariant.load !11, !alias.scope !71, !noalias !74 %7 = load float, float addrspace(11)* %5, align 4, !dbg !64, !tbaa !67, !invariant.load !11, !alias.scope !71, !noalias !74 %8 = fsub float %6, %7, !dbg !64 %9 = getelementptr inbounds [1 x [3 x float]], [1 x [3 x float]] addrspace(11)* %2, i32 0, i32 0, i32 1, !dbg !47 %10 = getelementptr inbounds [1 x [3 x float]], [1 x [3 x float]] addrspace(11)* %1, i32 0, i32 0, i32 1, !dbg !47 %11 = load float, float addrspace(11)* %9, align 4, !dbg !64, !tbaa !67, !invariant.load !11, !alias.scope !71, !noalias !74 %12 = load float, float addrspace(11)* %10, align 4, !dbg !64, !tbaa !67, !invariant.load !11, !alias.scope !71, !noalias !74 %13 = fsub float %11, %12, !dbg !64 %14 = getelementptr inbounds [1 x [3 x float]], [1 x [3 x float]] addrspace(11)* %2, i32 0, i32 0, i32 2, !dbg !47 %15 = getelementptr inbounds [1 x [3 x float]], [1 x [3 x float]] addrspace(11)* %1, i32 0, i32 0, i32 2, !dbg !47 %16 = load float, float addrspace(11)* %14, align 4, !dbg !64, !tbaa !67, !invariant.load !11, !alias.scope !71, !noalias !74 %17 = load float, float addrspace(11)* %15, align 4, !dbg !64, !tbaa !67, !invariant.load !11, !alias.scope !71, !noalias !74 %18 = fsub float %16, %17, !dbg !64 %19 = fmul float %8, %8, !dbg !79 %20 = fmul float %13, %13, !dbg !79 %21 = fadd float %19, %20, !dbg !94 %22 = fmul float %18, %18, !dbg !79 %23 = fadd float %21, %22, !dbg !94 %24 = call float @__nv_sqrtf(float %23) #135, !dbg !96 %25 = fcmp ule float %24, 0.000000e+00, !dbg !99 br i1 %25, label %L32, label %L25, !dbg !101 L25: ; preds = %top %26 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135, !dbg !102 %.not = icmp eq i32 %26, 0, !dbg !102 %27 = call float @llvm.nvvm.fabs.ftz.f(float %24) #135, !dbg !102 %28 = call float @llvm.fabs.f32(float %24), !dbg !102 %.0.i = select i1 %.not, float %28, float %27, !dbg !102 %29 = fcmp uge float %.0.i, 0x7FF0000000000000, !dbg !102 br i1 %29, label %L32, label %L79, !dbg !101 L32: ; preds = %L25, %top %30 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135, !dbg !104 %.not49 = icmp eq i32 %30, 0, !dbg !104 %31 = call float @llvm.nvvm.fabs.ftz.f(float %8) #135, !dbg !104 %32 = call float @llvm.fabs.f32(float %8), !dbg !104 %.0.i20 = select i1 %.not49, float %32, float %31, !dbg !104 %33 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135, !dbg !113 %.not50 = icmp eq i32 %33, 0, !dbg !113 %34 = call float @llvm.nvvm.fabs.ftz.f(float %13) #135, !dbg !113 %35 = call float @llvm.fabs.f32(float %13), !dbg !113 %.0.i36 = select i1 %.not50, float %35, float %34, !dbg !113 %36 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135, !dbg !116 %.not51 = icmp eq i32 %36, 0, !dbg !116 %37 = call float @llvm.nvvm.fmax.ftz.f(float %.0.i20, float %.0.i36) #135, !dbg !116 %38 = call float @llvm.maxnum.f32(float %.0.i20, float %.0.i36), !dbg !116 %.0.i38 = select i1 %.not51, float %38, float %37, !dbg !116 %39 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135, !dbg !113 %.not50.1 = icmp eq i32 %39, 0, !dbg !113 %40 = call float @llvm.nvvm.fabs.ftz.f(float %18) #135, !dbg !113 %41 = call float @llvm.fabs.f32(float %18), !dbg !113 %.0.i36.1 = select i1 %.not50.1, float %41, float %40, !dbg !113 %42 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135, !dbg !116 %.not51.1 = icmp eq i32 %42, 0, !dbg !116 %43 = call float @llvm.nvvm.fmax.ftz.f(float %.0.i38, float %.0.i36.1) #135, !dbg !116 %44 = call float @llvm.maxnum.f32(float %.0.i38, float %.0.i36.1), !dbg !116 %.0.i38.1 = select i1 %.not51.1, float %44, float %43, !dbg !116 %45 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135, !dbg !118 %.not53 = icmp eq i32 %45, 0, !dbg !118 %46 = call float @llvm.nvvm.fabs.ftz.f(float %.0.i38.1) #135, !dbg !118 %47 = call float @llvm.fabs.f32(float %.0.i38.1), !dbg !118 %.0.i21 = select i1 %.not53, float %47, float %46, !dbg !118 %48 = fcmp olt float %.0.i21, 0x7FF0000000000000, !dbg !118 br i1 %48, label %L60, label %L79, !dbg !119 L60: ; preds = %L32 %49 = fcmp une float %.0.i38.1, 0.000000e+00, !dbg !120 br i1 %49, label %L64, label %L62, !dbg !124 L62: ; preds = %L60 %50 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135, !dbg !125 %.not54 = icmp eq i32 %50, 0, !dbg !125 %51 = call float @llvm.nvvm.fabs.ftz.f(float noundef 0.000000e+00) #135, !dbg !125 %.0.i23 = select i1 %.not54, float 0.000000e+00, float %51, !dbg !125 br label %L79, !dbg !131 L64: ; preds = %L60 %52 = fdiv float %8, %.0.i38.1, !dbg !135 %53 = fmul float %52, %52, !dbg !138 %54 = fdiv float %13, %.0.i38.1, !dbg !135 %55 = fmul float %54, %54, !dbg !138 %56 = fadd float %53, %55, !dbg !141 %57 = fdiv float %18, %.0.i38.1, !dbg !135 %58 = fmul float %57, %57, !dbg !138 %59 = fadd float %58, %56, !dbg !141 %60 = call float @__nv_sqrtf(float %59) #135, !dbg !142 %61 = fmul float %.0.i38.1, %60, !dbg !143 br label %L79, !dbg !131 L79: ; preds = %L25, %L32, %L64, %L62 %value_phi = phi float [ %24, %L25 ], [ %.0.i23, %L62 ], [ %61, %L64 ], [ %.0.i38.1, %L32 ] %62 = call float @__nv_sqrtf(float %23) #135, !dbg !144 %63 = fcmp ule float %62, 0.000000e+00, !dbg !151 br i1 %63, label %L96, label %L89, !dbg !152 L89: ; preds = %L79 %64 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135, !dbg !153 %.not42 = icmp eq i32 %64, 0, !dbg !153 %65 = call float @llvm.nvvm.fabs.ftz.f(float %62) #135, !dbg !153 %66 = call float @llvm.fabs.f32(float %62), !dbg !153 %.0.i25 = select i1 %.not42, float %66, float %65, !dbg !153 %67 = fcmp uge float %.0.i25, 0x7FF0000000000000, !dbg !153 br i1 %67, label %L96, label %L143, !dbg !152 L96: ; preds = %L89, %L79 %68 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135, !dbg !154 %.not43 = icmp eq i32 %68, 0, !dbg !154 %69 = call float @llvm.nvvm.fabs.ftz.f(float %8) #135, !dbg !154 %70 = call float @llvm.fabs.f32(float %8), !dbg !154 %.0.i27 = select i1 %.not43, float %70, float %69, !dbg !154 %71 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135, !dbg !160 %.not44 = icmp eq i32 %71, 0, !dbg !160 %72 = call float @llvm.nvvm.fabs.ftz.f(float %13) #135, !dbg !160 %73 = call float @llvm.fabs.f32(float %13), !dbg !160 %.0.i33 = select i1 %.not44, float %73, float %72, !dbg !160 %74 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135, !dbg !163 %.not45 = icmp eq i32 %74, 0, !dbg !163 %75 = call float @llvm.nvvm.fmax.ftz.f(float %.0.i27, float %.0.i33) #135, !dbg !163 %76 = call float @llvm.maxnum.f32(float %.0.i27, float %.0.i33), !dbg !163 %.0.i35 = select i1 %.not45, float %76, float %75, !dbg !163 %77 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135, !dbg !160 %.not44.1 = icmp eq i32 %77, 0, !dbg !160 %78 = call float @llvm.nvvm.fabs.ftz.f(float %18) #135, !dbg !160 %79 = call float @llvm.fabs.f32(float %18), !dbg !160 %.0.i33.1 = select i1 %.not44.1, float %79, float %78, !dbg !160 %80 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135, !dbg !163 %.not45.1 = icmp eq i32 %80, 0, !dbg !163 %81 = call float @llvm.nvvm.fmax.ftz.f(float %.0.i35, float %.0.i33.1) #135, !dbg !163 %82 = call float @llvm.maxnum.f32(float %.0.i35, float %.0.i33.1), !dbg !163 %.0.i35.1 = select i1 %.not45.1, float %82, float %81, !dbg !163 %83 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135, !dbg !164 %.not47 = icmp eq i32 %83, 0, !dbg !164 %84 = call float @llvm.nvvm.fabs.ftz.f(float %.0.i35.1) #135, !dbg !164 %85 = call float @llvm.fabs.f32(float %.0.i35.1), !dbg !164 %.0.i29 = select i1 %.not47, float %85, float %84, !dbg !164 %86 = fcmp olt float %.0.i29, 0x7FF0000000000000, !dbg !164 br i1 %86, label %L124, label %L143, !dbg !165 L124: ; preds = %L96 %87 = fcmp une float %.0.i35.1, 0.000000e+00, !dbg !166 br i1 %87, label %L128, label %L126, !dbg !168 L126: ; preds = %L124 %88 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135, !dbg !169 %.not48 = icmp eq i32 %88, 0, !dbg !169 %89 = call float @llvm.nvvm.fabs.ftz.f(float noundef 0.000000e+00) #135, !dbg !169 %.0.i31 = select i1 %.not48, float 0.000000e+00, float %89, !dbg !169 br label %L143, !dbg !173 L128: ; preds = %L124 %90 = fdiv float %8, %.0.i35.1, !dbg !175 %91 = fmul float %90, %90, !dbg !177 %92 = fdiv float %13, %.0.i35.1, !dbg !175 %93 = fmul float %92, %92, !dbg !177 %94 = fadd float %91, %93, !dbg !180 %95 = fdiv float %18, %.0.i35.1, !dbg !175 %96 = fmul float %95, %95, !dbg !177 %97 = fadd float %96, %94, !dbg !180 %98 = call float @__nv_sqrtf(float %97) #135, !dbg !181 %99 = fmul float %.0.i35.1, %98, !dbg !182 br label %L143, !dbg !173 L143: ; preds = %L89, %L96, %L128, %L126 %value_phi1 = phi float [ %62, %L89 ], [ %.0.i31, %L126 ], [ %99, %L128 ], [ %.0.i35.1, %L96 ] %100 = fpext float %value_phi to double, !dbg !183 %101 = fadd double %100, -1.000000e+00, !dbg !194 %102 = fdiv float 1.000000e+00, %value_phi1, !dbg !195 %103 = fmul float %8, %102, !dbg !198 %104 = fpext float %103 to double, !dbg !206 %105 = fmul double %101, %104, !dbg !217 %.sroa.0.0..sroa_idx = getelementptr inbounds [1 x [3 x double]], [1 x [3 x double]]* %0, i32 0, i32 0, i32 0, !dbg !218 store double %105, double* %.sroa.0.0..sroa_idx, align 8, !dbg !218, !noalias !219 ret void, !dbg !218 } ; Function Attrs: nounwind readnone speculatable declare i32 @llvm.nvvm.read.ptx.sreg.ctaid.x() #2 ; Function Attrs: nounwind readnone speculatable declare i32 @llvm.nvvm.read.ptx.sreg.ntid.x() #2 ; Function Attrs: nounwind readnone speculatable declare i32 @llvm.nvvm.read.ptx.sreg.tid.x() #2 ; Function Attrs: nofree nosync nounwind readnone speculatable willreturn declare i32 @llvm.ctlz.i32(i32, i1 immarg) #3 ; Function Attrs: nofree nosync nounwind readnone speculatable willreturn declare i64 @llvm.ctlz.i64(i64, i1 immarg) #3 declare i32 @__nvvm_reflect(i8*) local_unnamed_addr #4 ; Function Attrs: nofree nosync nounwind readnone speculatable willreturn declare float @llvm.nvvm.floor.ftz.f(float) #3 ; Function Attrs: nofree nosync nounwind readnone speculatable willreturn declare float @llvm.nvvm.fabs.ftz.f(float) #3 ; Function Attrs: nofree nosync nounwind readnone willreturn declare double @llvm.nvvm.rcp.approx.ftz.d(double) #5 ; Function Attrs: nofree nosync nounwind readnone speculatable willreturn declare float @llvm.nvvm.fmin.ftz.f(float, float) #3 ; Function Attrs: nofree nosync nounwind readnone speculatable willreturn declare float @llvm.nvvm.fmax.ftz.f(float, float) #3 ; Function Attrs: nofree nosync nounwind readnone willreturn declare float @llvm.nvvm.rsqrt.approx.ftz.f(float) #5 ; Function Attrs: nofree nosync nounwind readnone willreturn declare float @llvm.nvvm.rsqrt.approx.f(float) #5 ; Function Attrs: nofree nosync nounwind readnone willreturn declare double @llvm.nvvm.rsqrt.approx.d(double) #5 ; Function Attrs: noinline nounwind define dso_local float @__nv_exp2f(float %x) local_unnamed_addr #6 { %1 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not = icmp eq i32 %1, 0 br i1 %.not, label %4, label %2 2: ; preds = %0 %3 = call float @llvm.nvvm.ex2.approx.ftz.f(float %x) #135 br label %__exp2f.exit 4: ; preds = %0 %5 = call float @llvm.nvvm.ex2.approx.f(float %x) #135 br label %__exp2f.exit __exp2f.exit: ; preds = %4, %2 %.0 = phi float [ %3, %2 ], [ %5, %4 ] ret float %.0 } ; Function Attrs: nofree nosync nounwind readnone willreturn declare float @llvm.nvvm.ex2.approx.ftz.f(float) #5 ; Function Attrs: nofree nosync nounwind readnone willreturn declare float @llvm.nvvm.ex2.approx.f(float) #5 ; Function Attrs: nofree nosync nounwind readnone speculatable willreturn declare float @llvm.nvvm.saturate.ftz.f(float) #3 ; Function Attrs: nofree nosync nounwind readnone speculatable willreturn declare float @llvm.nvvm.saturate.f(float) #3 ; Function Attrs: nofree nosync nounwind readnone speculatable willreturn declare float @llvm.nvvm.fma.rn.ftz.f(float, float, float) #3 ; Function Attrs: nofree nosync nounwind readnone speculatable willreturn declare float @llvm.nvvm.fma.rz.ftz.f(float, float, float) #3 ; Function Attrs: nofree nosync nounwind readnone speculatable willreturn declare float @llvm.nvvm.fma.rz.f(float, float, float) #3 ; Function Attrs: nofree nosync nounwind readnone speculatable willreturn declare float @llvm.nvvm.fma.rm.ftz.f(float, float, float) #3 ; Function Attrs: nofree nosync nounwind readnone speculatable willreturn declare float @llvm.nvvm.fma.rm.f(float, float, float) #3 ; Function Attrs: nofree nosync nounwind readnone willreturn declare float @llvm.nvvm.div.approx.ftz.f(float, float) #5 ; Function Attrs: nofree nosync nounwind readnone willreturn declare float @llvm.nvvm.div.approx.f(float, float) #5 ; Function Attrs: nofree nosync nounwind readnone willreturn declare float @llvm.nvvm.sqrt.rn.ftz.f(float) #5 ; Function Attrs: noinline nounwind define dso_local float @__nv_sqrtf(float %x) local_unnamed_addr #7 { %1 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not = icmp eq i32 %1, 0 br i1 %.not, label %8, label %2 2: ; preds = %0 %3 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([17 x i8], [17 x i8]* @.str.2, i32 0, i32 0)) #135 %.not2 = icmp eq i32 %3, 0 br i1 %.not2, label %6, label %4 4: ; preds = %2 %5 = call float @llvm.nvvm.sqrt.rn.ftz.f(float %x) #135 br label %__nvvm_sqrt_f.exit 6: ; preds = %2 %7 = call float @llvm.nvvm.sqrt.approx.ftz.f(float %x) #135 br label %__nvvm_sqrt_f.exit 8: ; preds = %0 %9 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([17 x i8], [17 x i8]* @.str.2, i32 0, i32 0)) #135 %.not1 = icmp eq i32 %9, 0 br i1 %.not1, label %12, label %10 10: ; preds = %8 %11 = call float @llvm.sqrt.f32(float %x) br label %__nvvm_sqrt_f.exit 12: ; preds = %8 %13 = call float @llvm.nvvm.sqrt.approx.f(float %x) #135 br label %__nvvm_sqrt_f.exit __nvvm_sqrt_f.exit: ; preds = %12, %10, %6, %4 %.0 = phi float [ %5, %4 ], [ %7, %6 ], [ %11, %10 ], [ %13, %12 ] ret float %.0 } ; Function Attrs: nofree nosync nounwind readnone willreturn declare float @llvm.nvvm.sqrt.approx.ftz.f(float) #5 ; Function Attrs: nofree nosync nounwind readnone willreturn declare float @llvm.nvvm.sqrt.approx.f(float) #5 ; Function Attrs: nofree noinline nosync nounwind readnone willreturn define dso_local double @__nv_sqrt(double %x) local_unnamed_addr #8 { %1 = call double @llvm.sqrt.f64(double %x) #136 ret double %1 } ; Function Attrs: nofree nosync nounwind readnone speculatable willreturn declare double @llvm.nvvm.add.rz.d(double, double) #3 ; Function Attrs: nofree nosync nounwind readnone speculatable willreturn declare float @llvm.nvvm.add.rn.ftz.f(float, float) #3 ; Function Attrs: nofree nosync nounwind readnone speculatable willreturn declare float @llvm.nvvm.add.rz.ftz.f(float, float) #3 ; Function Attrs: nofree nosync nounwind readnone speculatable willreturn declare float @llvm.nvvm.add.rz.f(float, float) #3 ; Function Attrs: nofree nosync nounwind readnone speculatable willreturn declare float @llvm.nvvm.mul.rn.ftz.f(float, float) #3 ; Function Attrs: nofree nosync nounwind readnone speculatable willreturn declare float @llvm.nvvm.mul.rz.ftz.f(float, float) #3 ; Function Attrs: nofree nosync nounwind readnone speculatable willreturn declare float @llvm.nvvm.mul.rz.f(float, float) #3 ; Function Attrs: nofree nosync nounwind readnone speculatable willreturn declare i32 @llvm.nvvm.d2i.rn(double) #3 ; Function Attrs: nofree nosync nounwind readnone speculatable willreturn declare i32 @llvm.nvvm.f2i.rn.ftz(float) #3 ; Function Attrs: nofree nosync nounwind readnone speculatable willreturn declare i32 @llvm.nvvm.f2i.rn(float) #3 ; Function Attrs: nofree nosync nounwind readnone speculatable willreturn declare double @llvm.nvvm.lohi.i2d(i32, i32) #3 ; Function Attrs: nofree nosync nounwind readnone speculatable willreturn declare i32 @llvm.nvvm.d2i.lo(double) #3 ; Function Attrs: nofree nosync nounwind readnone speculatable willreturn declare i32 @llvm.nvvm.d2i.hi(double) #3 ; Function Attrs: nofree nosync nounwind readnone willreturn declare float @llvm.nvvm.lg2.approx.ftz.f(float) #5 ; Function Attrs: nofree nosync nounwind readnone willreturn declare float @llvm.nvvm.lg2.approx.f(float) #5 ; Function Attrs: noinline nounwind define dso_local i32 @__nv_isinff(float %a) local_unnamed_addr #9 { __nv_fabsf.exit: %0 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not = icmp eq i32 %0, 0 %1 = call float @llvm.nvvm.fabs.ftz.f(float %a) #135 %2 = call float @llvm.fabs.f32(float %a) %.0 = select i1 %.not, float %2, float %1 %3 = fcmp oeq float %.0, 0x7FF0000000000000 %4 = zext i1 %3 to i32 ret i32 %4 } ; Function Attrs: noinline nounwind define dso_local float @__nv_sinf(float %a) local_unnamed_addr #10 { __nv_float2int_rn.exit.i.i: %result.i.i.i = alloca [7 x i32], align 4 %0 = fmul float %a, 0x3FE45F3060000000 %1 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not = icmp eq i32 %1, 0 %2 = call i32 @llvm.nvvm.f2i.rn.ftz(float %0) #135 %3 = call i32 @llvm.nvvm.f2i.rn(float %0) #135 %.01 = select i1 %.not, i32 %3, i32 %2 %4 = sitofp i32 %.01 to float %5 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not1 = icmp eq i32 %5, 0 %6 = call float @llvm.nvvm.fma.rn.ftz.f(float %4, float noundef 0xBFF921FB40000000, float %a) #135 %7 = call float @llvm.fma.f32(float %4, float noundef 0xBFF921FB40000000, float %a) %.02 = select i1 %.not1, float %7, float %6 %8 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not2 = icmp eq i32 %8, 0 %9 = call float @llvm.nvvm.fma.rn.ftz.f(float %4, float noundef 0xBE74442D00000000, float %.02) #135 %10 = call float @llvm.fma.f32(float %4, float noundef 0xBE74442D00000000, float %.02) %.03 = select i1 %.not2, float %10, float %9 %11 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not3 = icmp eq i32 %11, 0 %12 = call float @llvm.nvvm.fma.rn.ftz.f(float %4, float noundef 0xBCF84698A0000000, float %.03) #135 %13 = call float @llvm.fma.f32(float %4, float noundef 0xBCF84698A0000000, float %.03) %.04 = select i1 %.not3, float %13, float %12 %14 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not4 = icmp eq i32 %14, 0 %15 = call float @llvm.nvvm.fabs.ftz.f(float %a) #135 %16 = call float @llvm.fabs.f32(float %a) %.06 = select i1 %.not4, float %16, float %15 %17 = fcmp ult float %.06, 1.056150e+05 br i1 %17, label %__internal_trig_reduction_kernel.exit.i, label %__nv_isinff.exit.i.i __nv_isinff.exit.i.i: ; preds = %__nv_float2int_rn.exit.i.i %18 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not14 = icmp eq i32 %18, 0 %.07 = select i1 %.not14, float %16, float %15 %19 = fcmp oeq float %.07, 0x7FF0000000000000 br i1 %19, label %__nv_fmul_rn.exit.i.i, label %23 __nv_fmul_rn.exit.i.i: ; preds = %__nv_isinff.exit.i.i %20 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not20 = icmp eq i32 %20, 0 %21 = call float @llvm.nvvm.mul.rn.ftz.f(float %a, float noundef 0.000000e+00) #135 %22 = fmul float %a, 0.000000e+00 %.08 = select i1 %.not20, float %22, float %21 br label %__internal_trig_reduction_kernel.exit.i 23: ; preds = %__nv_isinff.exit.i.i %24 = bitcast float %a to i32 %25 = lshr i32 %24, 23 %26 = and i32 %25, 255 %27 = shl i32 %24, 8 %28 = or i32 %27, -2147483648 br label %29 29: ; preds = %23, %29 %iq.i.i.i.022 = phi i32 [ 0, %23 ], [ %36, %29 ] %hi.i.i.i.021 = phi i32 [ 0, %23 ], [ %34, %29 ] %30 = getelementptr inbounds [6 x i32], [6 x i32] addrspace(1)* @__cudart_i2opi_f, i32 0, i32 %iq.i.i.i.022 %31 = load i32, i32 addrspace(1)* %30, align 4 %32 = call { i32, i32 } asm "{\0A\09mad.lo.cc.u32 $0, $2, $3, $4;\0A\09madc.hi.u32 $1, $2, $3, 0;\0A\09}", "=r,=r,r,r,r"(i32 %31, i32 %28, i32 %hi.i.i.i.021) #137, !srcloc !222 %33 = extractvalue { i32, i32 } %32, 0 %34 = extractvalue { i32, i32 } %32, 1 %35 = getelementptr inbounds [7 x i32], [7 x i32]* %result.i.i.i, i32 0, i32 %iq.i.i.i.022 store i32 %33, i32* %35, align 4, !noalias !219 %36 = add nuw nsw i32 %iq.i.i.i.022, 1 %exitcond.not = icmp eq i32 %36, 6 br i1 %exitcond.not, label %37, label %29, !llvm.loop !223 37: ; preds = %29 %38 = add nsw i32 %26, -128 %39 = lshr i32 %38, 5 %40 = and i32 %24, -2147483648 %41 = getelementptr inbounds [7 x i32], [7 x i32]* %result.i.i.i, i32 0, i32 6 store i32 %34, i32* %41, align 4, !noalias !219 %42 = and i32 %25, 31 %43 = sub nsw i32 6, %39 %44 = getelementptr inbounds [7 x i32], [7 x i32]* %result.i.i.i, i32 0, i32 %43 %45 = load i32, i32* %44, align 4 %46 = sub nsw i32 5, %39 %47 = getelementptr inbounds [7 x i32], [7 x i32]* %result.i.i.i, i32 0, i32 %46 %48 = load i32, i32* %47, align 4 %.not15 = icmp eq i32 %42, 0 br i1 %.not15, label %__internal_trig_reduction_slowpath.exit.i.i, label %49 49: ; preds = %37 %50 = sub nsw i32 4, %39 %51 = sub nuw nsw i32 32, %42 %52 = shl i32 %45, %42 %53 = lshr i32 %48, %51 %54 = add i32 %53, %52 %55 = shl i32 %48, %42 %56 = getelementptr inbounds [7 x i32], [7 x i32]* %result.i.i.i, i32 0, i32 %50 %57 = load i32, i32* %56, align 4 %58 = lshr i32 %57, %51 %59 = add i32 %58, %55 br label %__internal_trig_reduction_slowpath.exit.i.i __internal_trig_reduction_slowpath.exit.i.i: ; preds = %49, %37 %hi.i.i.i.1 = phi i32 [ %54, %49 ], [ %45, %37 ] %lo.i.i.i.0 = phi i32 [ %59, %49 ], [ %48, %37 ] %60 = lshr i32 %hi.i.i.i.1, 30 %61 = call i32 @llvm.fshl.i32(i32 %hi.i.i.i.1, i32 %lo.i.i.i.0, i32 noundef 2) %62 = shl i32 %lo.i.i.i.0, 2 %63 = lshr i32 %61, 31 %64 = add nuw nsw i32 %63, %60 %.not16 = icmp eq i32 %40, 0 %65 = sub nsw i32 0, %64 %spec.select = select i1 %.not16, i32 %64, i32 %65 %.not17 = icmp sgt i32 %61, -1 %66 = xor i32 %40, -2147483648 %s.i.i.i.0 = select i1 %.not17, i32 %40, i32 %66 %not..not17 = xor i1 %.not17, true %67 = sext i1 %not..not17 to i32 %hi.i.i.i.2 = xor i32 %61, %67 %lo.i.i.i.1 = xor i32 %62, %67 %68 = zext i32 %hi.i.i.i.2 to i64 %69 = shl nuw i64 %68, 32 %70 = zext i32 %lo.i.i.i.1 to i64 %71 = or i64 %69, %70 %72 = sitofp i64 %71 to double %73 = fmul double %72, 0x3BF921FB54442D19 %74 = fptrunc double %73 to float %.not19 = icmp eq i32 %s.i.i.i.0, 0 %75 = fneg float %74 %r.i.i.i.0 = select i1 %.not19, float %74, float %75 br label %__internal_trig_reduction_kernel.exit.i __internal_trig_reduction_kernel.exit.i: ; preds = %__nv_fmul_rn.exit.i.i, %__internal_trig_reduction_slowpath.exit.i.i, %__nv_float2int_rn.exit.i.i %i.i.1 = phi i32 [ %.01, %__nv_float2int_rn.exit.i.i ], [ 0, %__nv_fmul_rn.exit.i.i ], [ %spec.select, %__internal_trig_reduction_slowpath.exit.i.i ] %t.i.i.1 = phi float [ %.04, %__nv_float2int_rn.exit.i.i ], [ %.08, %__nv_fmul_rn.exit.i.i ], [ %r.i.i.i.0, %__internal_trig_reduction_slowpath.exit.i.i ] %76 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not5 = icmp eq i32 %76, 0 %77 = call float @llvm.nvvm.mul.rn.ftz.f(float %t.i.i.1, float %t.i.i.1) #135 %78 = fmul float %t.i.i.1, %t.i.i.1 %.011 = select i1 %.not5, float %78, float %77 %79 = and i32 %i.i.1, 1 %.not6 = icmp eq i32 %79, 0 %80 = select i1 %.not6, float %t.i.i.1, float 1.000000e+00 %81 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not7 = icmp eq i32 %81, 0 %82 = call float @llvm.nvvm.fma.rn.ftz.f(float %.011, float %80, float noundef 0.000000e+00) #135 %83 = call float @llvm.fma.f32(float %.011, float %80, float noundef 0.000000e+00) %.012 = select i1 %.not7, float %83, float %82 br i1 %.not6, label %__internal_fmad.exit2.i.i, label %__internal_fmad.exit1.i.i __internal_fmad.exit1.i.i: ; preds = %__internal_trig_reduction_kernel.exit.i %84 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not13 = icmp eq i32 %84, 0 %85 = call float @llvm.nvvm.fma.rn.ftz.f(float noundef 0x3EF9758000000000, float %.011, float noundef 0xBF56C0FDA0000000) #135 %86 = call float @llvm.fma.f32(float %.011, float noundef 0x3EF9758000000000, float noundef 0xBF56C0FDA0000000) %.013 = select i1 %.not13, float %86, float %85 br label %__internal_fmad.exit2.i.i __internal_fmad.exit2.i.i: ; preds = %__internal_trig_reduction_kernel.exit.i, %__internal_fmad.exit1.i.i %87 = phi float [ 0xBFC5555500000000, %__internal_trig_reduction_kernel.exit.i ], [ 0xBFDFFFFFE0000000, %__internal_fmad.exit1.i.i ] %88 = phi float [ 0x3F8110BC80000000, %__internal_trig_reduction_kernel.exit.i ], [ 0x3FA5555760000000, %__internal_fmad.exit1.i.i ] %89 = phi float [ 0xBF29A82A60000000, %__internal_trig_reduction_kernel.exit.i ], [ %.013, %__internal_fmad.exit1.i.i ] %90 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not8 = icmp eq i32 %90, 0 %91 = call float @llvm.nvvm.fma.rn.ftz.f(float %89, float %.011, float noundef %88) #135 %92 = call float @llvm.fma.f32(float %89, float %.011, float noundef %88) %.010 = select i1 %.not8, float %92, float %91 %93 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not9 = icmp eq i32 %93, 0 %94 = call float @llvm.nvvm.fma.rn.ftz.f(float %.010, float %.011, float noundef %87) #135 %95 = call float @llvm.fma.f32(float %.010, float %.011, float noundef %87) %.09 = select i1 %.not9, float %95, float %94 %96 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not10 = icmp eq i32 %96, 0 %97 = call float @llvm.nvvm.fma.rn.ftz.f(float %.09, float %.012, float %80) #135 %98 = call float @llvm.fma.f32(float %.09, float %.012, float %80) %.05 = select i1 %.not10, float %98, float %97 %99 = and i32 %i.i.1, 2 %.not11 = icmp eq i32 %99, 0 br i1 %.not11, label %__internal_accurate_sinf.exit, label %__internal_fmad.exit5.i.i __internal_fmad.exit5.i.i: ; preds = %__internal_fmad.exit2.i.i %100 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not12 = icmp eq i32 %100, 0 %101 = call float @llvm.nvvm.fma.rn.ftz.f(float %.05, float noundef -1.000000e+00, float noundef 0.000000e+00) #135 %102 = call float @llvm.fma.f32(float %.05, float noundef -1.000000e+00, float noundef 0.000000e+00) %.0 = select i1 %.not12, float %102, float %101 br label %__internal_accurate_sinf.exit __internal_accurate_sinf.exit: ; preds = %__internal_fmad.exit5.i.i, %__internal_fmad.exit2.i.i %z.i.i.0 = phi float [ %.0, %__internal_fmad.exit5.i.i ], [ %.05, %__internal_fmad.exit2.i.i ] ret float %z.i.i.0 } ; Function Attrs: noinline nounwind define dso_local float @__nv_cosf(float %a) local_unnamed_addr #11 { __nv_float2int_rn.exit.i.i: %result.i.i.i = alloca [7 x i32], align 4 %0 = fmul float %a, 0x3FE45F3060000000 %1 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not = icmp eq i32 %1, 0 %2 = call i32 @llvm.nvvm.f2i.rn.ftz(float %0) #135 %3 = call i32 @llvm.nvvm.f2i.rn(float %0) #135 %.01 = select i1 %.not, i32 %3, i32 %2 %4 = sitofp i32 %.01 to float %5 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not1 = icmp eq i32 %5, 0 %6 = call float @llvm.nvvm.fma.rn.ftz.f(float %4, float noundef 0xBFF921FB40000000, float %a) #135 %7 = call float @llvm.fma.f32(float %4, float noundef 0xBFF921FB40000000, float %a) %.02 = select i1 %.not1, float %7, float %6 %8 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not2 = icmp eq i32 %8, 0 %9 = call float @llvm.nvvm.fma.rn.ftz.f(float %4, float noundef 0xBE74442D00000000, float %.02) #135 %10 = call float @llvm.fma.f32(float %4, float noundef 0xBE74442D00000000, float %.02) %.03 = select i1 %.not2, float %10, float %9 %11 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not3 = icmp eq i32 %11, 0 %12 = call float @llvm.nvvm.fma.rn.ftz.f(float %4, float noundef 0xBCF84698A0000000, float %.03) #135 %13 = call float @llvm.fma.f32(float %4, float noundef 0xBCF84698A0000000, float %.03) %.04 = select i1 %.not3, float %13, float %12 %14 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not4 = icmp eq i32 %14, 0 %15 = call float @llvm.nvvm.fabs.ftz.f(float %a) #135 %16 = call float @llvm.fabs.f32(float %a) %.06 = select i1 %.not4, float %16, float %15 %17 = fcmp ult float %.06, 1.056150e+05 br i1 %17, label %__internal_trig_reduction_kernel.exit.i, label %__nv_isinff.exit.i.i __nv_isinff.exit.i.i: ; preds = %__nv_float2int_rn.exit.i.i %18 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not14 = icmp eq i32 %18, 0 %.07 = select i1 %.not14, float %16, float %15 %19 = fcmp oeq float %.07, 0x7FF0000000000000 br i1 %19, label %__nv_fmul_rn.exit.i.i, label %23 __nv_fmul_rn.exit.i.i: ; preds = %__nv_isinff.exit.i.i %20 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not20 = icmp eq i32 %20, 0 %21 = call float @llvm.nvvm.mul.rn.ftz.f(float %a, float noundef 0.000000e+00) #135 %22 = fmul float %a, 0.000000e+00 %.08 = select i1 %.not20, float %22, float %21 br label %__internal_trig_reduction_kernel.exit.i 23: ; preds = %__nv_isinff.exit.i.i %24 = bitcast float %a to i32 %25 = lshr i32 %24, 23 %26 = and i32 %25, 255 %27 = shl i32 %24, 8 %28 = or i32 %27, -2147483648 br label %29 29: ; preds = %23, %29 %iq.i.i.i.022 = phi i32 [ 0, %23 ], [ %36, %29 ] %hi.i.i.i.021 = phi i32 [ 0, %23 ], [ %34, %29 ] %30 = getelementptr inbounds [6 x i32], [6 x i32] addrspace(1)* @__cudart_i2opi_f, i32 0, i32 %iq.i.i.i.022 %31 = load i32, i32 addrspace(1)* %30, align 4 %32 = call { i32, i32 } asm "{\0A\09mad.lo.cc.u32 $0, $2, $3, $4;\0A\09madc.hi.u32 $1, $2, $3, 0;\0A\09}", "=r,=r,r,r,r"(i32 %31, i32 %28, i32 %hi.i.i.i.021) #137, !srcloc !222 %33 = extractvalue { i32, i32 } %32, 0 %34 = extractvalue { i32, i32 } %32, 1 %35 = getelementptr inbounds [7 x i32], [7 x i32]* %result.i.i.i, i32 0, i32 %iq.i.i.i.022 store i32 %33, i32* %35, align 4, !noalias !219 %36 = add nuw nsw i32 %iq.i.i.i.022, 1 %exitcond.not = icmp eq i32 %36, 6 br i1 %exitcond.not, label %37, label %29, !llvm.loop !223 37: ; preds = %29 %38 = add nsw i32 %26, -128 %39 = lshr i32 %38, 5 %40 = and i32 %24, -2147483648 %41 = getelementptr inbounds [7 x i32], [7 x i32]* %result.i.i.i, i32 0, i32 6 store i32 %34, i32* %41, align 4, !noalias !219 %42 = and i32 %25, 31 %43 = sub nsw i32 6, %39 %44 = getelementptr inbounds [7 x i32], [7 x i32]* %result.i.i.i, i32 0, i32 %43 %45 = load i32, i32* %44, align 4 %46 = sub nsw i32 5, %39 %47 = getelementptr inbounds [7 x i32], [7 x i32]* %result.i.i.i, i32 0, i32 %46 %48 = load i32, i32* %47, align 4 %.not15 = icmp eq i32 %42, 0 br i1 %.not15, label %__internal_trig_reduction_slowpath.exit.i.i, label %49 49: ; preds = %37 %50 = sub nsw i32 4, %39 %51 = sub nuw nsw i32 32, %42 %52 = shl i32 %45, %42 %53 = lshr i32 %48, %51 %54 = add i32 %53, %52 %55 = shl i32 %48, %42 %56 = getelementptr inbounds [7 x i32], [7 x i32]* %result.i.i.i, i32 0, i32 %50 %57 = load i32, i32* %56, align 4 %58 = lshr i32 %57, %51 %59 = add i32 %58, %55 br label %__internal_trig_reduction_slowpath.exit.i.i __internal_trig_reduction_slowpath.exit.i.i: ; preds = %49, %37 %hi.i.i.i.1 = phi i32 [ %54, %49 ], [ %45, %37 ] %lo.i.i.i.0 = phi i32 [ %59, %49 ], [ %48, %37 ] %60 = lshr i32 %hi.i.i.i.1, 30 %61 = call i32 @llvm.fshl.i32(i32 %hi.i.i.i.1, i32 %lo.i.i.i.0, i32 noundef 2) %62 = shl i32 %lo.i.i.i.0, 2 %63 = lshr i32 %61, 31 %64 = add nuw nsw i32 %63, %60 %.not16 = icmp eq i32 %40, 0 %65 = sub nsw i32 0, %64 %spec.select = select i1 %.not16, i32 %64, i32 %65 %.not17 = icmp sgt i32 %61, -1 %66 = xor i32 %40, -2147483648 %s.i.i.i.0 = select i1 %.not17, i32 %40, i32 %66 %not..not17 = xor i1 %.not17, true %67 = sext i1 %not..not17 to i32 %hi.i.i.i.2 = xor i32 %61, %67 %lo.i.i.i.1 = xor i32 %62, %67 %68 = zext i32 %hi.i.i.i.2 to i64 %69 = shl nuw i64 %68, 32 %70 = zext i32 %lo.i.i.i.1 to i64 %71 = or i64 %69, %70 %72 = sitofp i64 %71 to double %73 = fmul double %72, 0x3BF921FB54442D19 %74 = fptrunc double %73 to float %.not19 = icmp eq i32 %s.i.i.i.0, 0 %75 = fneg float %74 %r.i.i.i.0 = select i1 %.not19, float %74, float %75 br label %__internal_trig_reduction_kernel.exit.i __internal_trig_reduction_kernel.exit.i: ; preds = %__nv_fmul_rn.exit.i.i, %__internal_trig_reduction_slowpath.exit.i.i, %__nv_float2int_rn.exit.i.i %i.i.1 = phi i32 [ %.01, %__nv_float2int_rn.exit.i.i ], [ 0, %__nv_fmul_rn.exit.i.i ], [ %spec.select, %__internal_trig_reduction_slowpath.exit.i.i ] %t.i.i.1 = phi float [ %.04, %__nv_float2int_rn.exit.i.i ], [ %.08, %__nv_fmul_rn.exit.i.i ], [ %r.i.i.i.0, %__internal_trig_reduction_slowpath.exit.i.i ] %76 = add i32 %i.i.1, 1 %77 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not5 = icmp eq i32 %77, 0 %78 = call float @llvm.nvvm.mul.rn.ftz.f(float %t.i.i.1, float %t.i.i.1) #135 %79 = fmul float %t.i.i.1, %t.i.i.1 %.011 = select i1 %.not5, float %79, float %78 %80 = and i32 %76, 1 %.not6 = icmp eq i32 %80, 0 %81 = select i1 %.not6, float %t.i.i.1, float 1.000000e+00 %82 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not7 = icmp eq i32 %82, 0 %83 = call float @llvm.nvvm.fma.rn.ftz.f(float %.011, float %81, float noundef 0.000000e+00) #135 %84 = call float @llvm.fma.f32(float %.011, float %81, float noundef 0.000000e+00) %.012 = select i1 %.not7, float %84, float %83 br i1 %.not6, label %__internal_fmad.exit2.i.i, label %__internal_fmad.exit1.i.i __internal_fmad.exit1.i.i: ; preds = %__internal_trig_reduction_kernel.exit.i %85 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not13 = icmp eq i32 %85, 0 %86 = call float @llvm.nvvm.fma.rn.ftz.f(float noundef 0x3EF9758000000000, float %.011, float noundef 0xBF56C0FDA0000000) #135 %87 = call float @llvm.fma.f32(float %.011, float noundef 0x3EF9758000000000, float noundef 0xBF56C0FDA0000000) %.013 = select i1 %.not13, float %87, float %86 br label %__internal_fmad.exit2.i.i __internal_fmad.exit2.i.i: ; preds = %__internal_trig_reduction_kernel.exit.i, %__internal_fmad.exit1.i.i %88 = phi float [ 0xBFC5555500000000, %__internal_trig_reduction_kernel.exit.i ], [ 0xBFDFFFFFE0000000, %__internal_fmad.exit1.i.i ] %89 = phi float [ 0x3F8110BC80000000, %__internal_trig_reduction_kernel.exit.i ], [ 0x3FA5555760000000, %__internal_fmad.exit1.i.i ] %90 = phi float [ 0xBF29A82A60000000, %__internal_trig_reduction_kernel.exit.i ], [ %.013, %__internal_fmad.exit1.i.i ] %91 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not8 = icmp eq i32 %91, 0 %92 = call float @llvm.nvvm.fma.rn.ftz.f(float %90, float %.011, float noundef %89) #135 %93 = call float @llvm.fma.f32(float %90, float %.011, float noundef %89) %.010 = select i1 %.not8, float %93, float %92 %94 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not9 = icmp eq i32 %94, 0 %95 = call float @llvm.nvvm.fma.rn.ftz.f(float %.010, float %.011, float noundef %88) #135 %96 = call float @llvm.fma.f32(float %.010, float %.011, float noundef %88) %.09 = select i1 %.not9, float %96, float %95 %97 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not10 = icmp eq i32 %97, 0 %98 = call float @llvm.nvvm.fma.rn.ftz.f(float %.09, float %.012, float %81) #135 %99 = call float @llvm.fma.f32(float %.09, float %.012, float %81) %.05 = select i1 %.not10, float %99, float %98 %100 = and i32 %76, 2 %.not11 = icmp eq i32 %100, 0 br i1 %.not11, label %__internal_accurate_cosf.exit, label %__internal_fmad.exit5.i.i __internal_fmad.exit5.i.i: ; preds = %__internal_fmad.exit2.i.i %101 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not12 = icmp eq i32 %101, 0 %102 = call float @llvm.nvvm.fma.rn.ftz.f(float %.05, float noundef -1.000000e+00, float noundef 0.000000e+00) #135 %103 = call float @llvm.fma.f32(float %.05, float noundef -1.000000e+00, float noundef 0.000000e+00) %.0 = select i1 %.not12, float %103, float %102 br label %__internal_accurate_cosf.exit __internal_accurate_cosf.exit: ; preds = %__internal_fmad.exit5.i.i, %__internal_fmad.exit2.i.i %z.i.i.0 = phi float [ %.0, %__internal_fmad.exit5.i.i ], [ %.05, %__internal_fmad.exit2.i.i ] ret float %z.i.i.0 } ; Function Attrs: noinline nounwind define dso_local float @__nv_tanf(float %a) local_unnamed_addr #12 { __nv_float2int_rn.exit.i: %result.i.i = alloca [7 x i32], align 4 %0 = fmul float %a, 0x3FE45F3060000000 %1 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not = icmp eq i32 %1, 0 %2 = call i32 @llvm.nvvm.f2i.rn.ftz(float %0) #135 %3 = call i32 @llvm.nvvm.f2i.rn(float %0) #135 %.01 = select i1 %.not, i32 %3, i32 %2 %4 = sitofp i32 %.01 to float %5 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not1 = icmp eq i32 %5, 0 %6 = call float @llvm.nvvm.fma.rn.ftz.f(float %4, float noundef 0xBFF921FB40000000, float %a) #135 %7 = call float @llvm.fma.f32(float %4, float noundef 0xBFF921FB40000000, float %a) %.03 = select i1 %.not1, float %7, float %6 %8 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not2 = icmp eq i32 %8, 0 %9 = call float @llvm.nvvm.fma.rn.ftz.f(float %4, float noundef 0xBE74442D00000000, float %.03) #135 %10 = call float @llvm.fma.f32(float %4, float noundef 0xBE74442D00000000, float %.03) %.04 = select i1 %.not2, float %10, float %9 %11 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not3 = icmp eq i32 %11, 0 %12 = call float @llvm.nvvm.fma.rn.ftz.f(float %4, float noundef 0xBCF84698A0000000, float %.04) #135 %13 = call float @llvm.fma.f32(float %4, float noundef 0xBCF84698A0000000, float %.04) %.05 = select i1 %.not3, float %13, float %12 %14 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not4 = icmp eq i32 %14, 0 %15 = call float @llvm.nvvm.fabs.ftz.f(float %a) #135 %16 = call float @llvm.fabs.f32(float %a) %.06 = select i1 %.not4, float %16, float %15 %17 = fcmp ult float %.06, 1.056150e+05 br i1 %17, label %__internal_trig_reduction_kernel.exit, label %__nv_isinff.exit.i __nv_isinff.exit.i: ; preds = %__nv_float2int_rn.exit.i %18 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not14 = icmp eq i32 %18, 0 %.07 = select i1 %.not14, float %16, float %15 %19 = fcmp oeq float %.07, 0x7FF0000000000000 br i1 %19, label %__nv_fmul_rn.exit.i, label %23 __nv_fmul_rn.exit.i: ; preds = %__nv_isinff.exit.i %20 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not20 = icmp eq i32 %20, 0 %21 = call float @llvm.nvvm.mul.rn.ftz.f(float %a, float noundef 0.000000e+00) #135 %22 = fmul float %a, 0.000000e+00 %.08 = select i1 %.not20, float %22, float %21 br label %__internal_trig_reduction_kernel.exit 23: ; preds = %__nv_isinff.exit.i %24 = bitcast float %a to i32 %25 = lshr i32 %24, 23 %26 = and i32 %25, 255 %27 = shl i32 %24, 8 %28 = or i32 %27, -2147483648 br label %29 29: ; preds = %23, %29 %iq.i.i.022 = phi i32 [ 0, %23 ], [ %36, %29 ] %hi.i.i.021 = phi i32 [ 0, %23 ], [ %34, %29 ] %30 = getelementptr inbounds [6 x i32], [6 x i32] addrspace(1)* @__cudart_i2opi_f, i32 0, i32 %iq.i.i.022 %31 = load i32, i32 addrspace(1)* %30, align 4 %32 = call { i32, i32 } asm "{\0A\09mad.lo.cc.u32 $0, $2, $3, $4;\0A\09madc.hi.u32 $1, $2, $3, 0;\0A\09}", "=r,=r,r,r,r"(i32 %31, i32 %28, i32 %hi.i.i.021) #137, !srcloc !222 %33 = extractvalue { i32, i32 } %32, 0 %34 = extractvalue { i32, i32 } %32, 1 %35 = getelementptr inbounds [7 x i32], [7 x i32]* %result.i.i, i32 0, i32 %iq.i.i.022 store i32 %33, i32* %35, align 4, !noalias !219 %36 = add nuw nsw i32 %iq.i.i.022, 1 %exitcond.not = icmp eq i32 %36, 6 br i1 %exitcond.not, label %37, label %29, !llvm.loop !223 37: ; preds = %29 %38 = add nsw i32 %26, -128 %39 = lshr i32 %38, 5 %40 = and i32 %24, -2147483648 %41 = getelementptr inbounds [7 x i32], [7 x i32]* %result.i.i, i32 0, i32 6 store i32 %34, i32* %41, align 4, !noalias !219 %42 = and i32 %25, 31 %43 = sub nsw i32 6, %39 %44 = getelementptr inbounds [7 x i32], [7 x i32]* %result.i.i, i32 0, i32 %43 %45 = load i32, i32* %44, align 4 %46 = sub nsw i32 5, %39 %47 = getelementptr inbounds [7 x i32], [7 x i32]* %result.i.i, i32 0, i32 %46 %48 = load i32, i32* %47, align 4 %.not15 = icmp eq i32 %42, 0 br i1 %.not15, label %__internal_trig_reduction_slowpath.exit.i, label %49 49: ; preds = %37 %50 = sub nsw i32 4, %39 %51 = sub nuw nsw i32 32, %42 %52 = shl i32 %45, %42 %53 = lshr i32 %48, %51 %54 = add i32 %53, %52 %55 = shl i32 %48, %42 %56 = getelementptr inbounds [7 x i32], [7 x i32]* %result.i.i, i32 0, i32 %50 %57 = load i32, i32* %56, align 4 %58 = lshr i32 %57, %51 %59 = add i32 %58, %55 br label %__internal_trig_reduction_slowpath.exit.i __internal_trig_reduction_slowpath.exit.i: ; preds = %49, %37 %hi.i.i.1 = phi i32 [ %54, %49 ], [ %45, %37 ] %lo.i.i.0 = phi i32 [ %59, %49 ], [ %48, %37 ] %60 = lshr i32 %hi.i.i.1, 30 %61 = call i32 @llvm.fshl.i32(i32 %hi.i.i.1, i32 %lo.i.i.0, i32 noundef 2) %62 = shl i32 %lo.i.i.0, 2 %63 = lshr i32 %61, 31 %64 = add nuw nsw i32 %63, %60 %.not16 = icmp eq i32 %40, 0 %65 = sub nsw i32 0, %64 %spec.select = select i1 %.not16, i32 %64, i32 %65 %.not17 = icmp sgt i32 %61, -1 %66 = xor i32 %40, -2147483648 %s.i.i.0 = select i1 %.not17, i32 %40, i32 %66 %not..not17 = xor i1 %.not17, true %67 = sext i1 %not..not17 to i32 %hi.i.i.2 = xor i32 %61, %67 %lo.i.i.1 = xor i32 %62, %67 %68 = zext i32 %hi.i.i.2 to i64 %69 = shl nuw i64 %68, 32 %70 = zext i32 %lo.i.i.1 to i64 %71 = or i64 %69, %70 %72 = sitofp i64 %71 to double %73 = fmul double %72, 0x3BF921FB54442D19 %74 = fptrunc double %73 to float %.not19 = icmp eq i32 %s.i.i.0, 0 %75 = fneg float %74 %r.i.i.0 = select i1 %.not19, float %74, float %75 br label %__internal_trig_reduction_kernel.exit __internal_trig_reduction_kernel.exit: ; preds = %__nv_fmul_rn.exit.i, %__internal_trig_reduction_slowpath.exit.i, %__nv_float2int_rn.exit.i %i.1 = phi i32 [ %.01, %__nv_float2int_rn.exit.i ], [ 0, %__nv_fmul_rn.exit.i ], [ %spec.select, %__internal_trig_reduction_slowpath.exit.i ] %t.i.1 = phi float [ %.05, %__nv_float2int_rn.exit.i ], [ %.08, %__nv_fmul_rn.exit.i ], [ %r.i.i.0, %__internal_trig_reduction_slowpath.exit.i ] %76 = fmul float %t.i.1, %t.i.1 %77 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not5 = icmp eq i32 %77, 0 %78 = call float @llvm.nvvm.fma.rn.ftz.f(float noundef 0x3F83200000000000, float %76, float noundef 0x3F6AC00000000000) #135 %79 = call float @llvm.fma.f32(float %76, float noundef 0x3F83200000000000, float noundef 0x3F6AC00000000000) %.012 = select i1 %.not5, float %79, float %78 %80 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not6 = icmp eq i32 %80, 0 %81 = call float @llvm.nvvm.fma.rn.ftz.f(float %.012, float %76, float noundef 0x3F98E00000000000) #135 %82 = call float @llvm.fma.f32(float %.012, float %76, float noundef 0x3F98E00000000000) %.013 = select i1 %.not6, float %82, float %81 %83 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not7 = icmp eq i32 %83, 0 %84 = call float @llvm.nvvm.fma.rn.ftz.f(float %.013, float %76, float noundef 0x3FAB600000000000) #135 %85 = call float @llvm.fma.f32(float %.013, float %76, float noundef 0x3FAB600000000000) %.014 = select i1 %.not7, float %85, float %84 %86 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not8 = icmp eq i32 %86, 0 %87 = call float @llvm.nvvm.fma.rn.ftz.f(float %.014, float %76, float noundef 0x3FC1128700000000) #135 %88 = call float @llvm.fma.f32(float %.014, float %76, float noundef 0x3FC1128700000000) %.011 = select i1 %.not8, float %88, float %87 %89 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not9 = icmp eq i32 %89, 0 %90 = call float @llvm.nvvm.fma.rn.ftz.f(float %.011, float %76, float noundef 0x3FD5555100000000) #135 %91 = call float @llvm.fma.f32(float %.011, float %76, float noundef 0x3FD5555100000000) %.010 = select i1 %.not9, float %91, float %90 %92 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not10 = icmp eq i32 %92, 0 %93 = call float @llvm.nvvm.mul.rn.ftz.f(float %76, float %t.i.1) #135 %94 = fmul float %t.i.1, %76 %.09 = select i1 %.not10, float %94, float %93 %95 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not11 = icmp eq i32 %95, 0 %96 = call float @llvm.nvvm.fma.rn.ftz.f(float %.010, float %.09, float %t.i.1) #135 %97 = call float @llvm.fma.f32(float %.010, float %.09, float %t.i.1) %.02 = select i1 %.not11, float %97, float %96 %98 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not12 = icmp eq i32 %98, 0 %99 = call float @llvm.nvvm.fabs.ftz.f(float %t.i.1) #135 %100 = call float @llvm.fabs.f32(float %t.i.1) %.0 = select i1 %.not12, float %100, float %99 %101 = fcmp oeq float %.0, 0x3F40168780000000 %t.i1.0 = select i1 %101, float %t.i.1, float %.02 %102 = and i32 %i.1, 1 %.not13 = icmp eq i32 %102, 0 br i1 %.not13, label %106, label %103 103: ; preds = %__internal_trig_reduction_kernel.exit %104 = fneg float %t.i1.0 %105 = call float asm "rcp.approx.ftz.f32 $0,$1;", "=f,f"(float %104) #137, !srcloc !225 br label %106 106: ; preds = %103, %__internal_trig_reduction_kernel.exit %z.0 = phi float [ %105, %103 ], [ %t.i1.0, %__internal_trig_reduction_kernel.exit ] ret float %z.0 } ; Function Attrs: noinline nounwind define dso_local float @__nv_log2f(float %a) local_unnamed_addr #13 { __nv_fmaf_rn.exit10.i: %0 = fcmp olt float %a, 0x3810000000000000 %1 = fmul float %a, 0x4160000000000000 %.02 = select i1 %0, float %1, float %a %i.i.0 = select i1 %0, float -2.300000e+01, float 0.000000e+00 %2 = bitcast float %.02 to i32 %3 = add i32 %2, -1060439283 %4 = and i32 %3, -8388608 %5 = sub i32 %2, %4 %6 = bitcast i32 %5 to float %7 = sitofp i32 %4 to float %8 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not = icmp eq i32 %8, 0 %9 = call float @llvm.nvvm.fma.rn.ftz.f(float %7, float noundef 0x3E80000000000000, float noundef %i.i.0) #135 %10 = call float @llvm.fma.f32(float %7, float noundef 0x3E80000000000000, float noundef %i.i.0) %.08 = select i1 %.not, float %10, float %9 %11 = fadd float %6, -1.000000e+00 %12 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not1 = icmp eq i32 %12, 0 %13 = call float @llvm.nvvm.fma.rn.ftz.f(float noundef 0x3FB8D64FE0000000, float %11, float noundef 0xBFC58FE600000000) #135 %14 = call float @llvm.fma.f32(float %11, float noundef 0x3FB8D64FE0000000, float noundef 0xBFC58FE600000000) %.010 = select i1 %.not1, float %14, float %13 %15 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not2 = icmp eq i32 %15, 0 %16 = call float @llvm.nvvm.fma.rn.ftz.f(float %.010, float %11, float noundef 0x3FC5F9E540000000) #135 %17 = call float @llvm.fma.f32(float %.010, float %11, float noundef 0x3FC5F9E540000000) %.011 = select i1 %.not2, float %17, float %16 %18 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not3 = icmp eq i32 %18, 0 %19 = call float @llvm.nvvm.fma.rn.ftz.f(float %.011, float %11, float noundef 0xBFC6E9C860000000) #135 %20 = call float @llvm.fma.f32(float %.011, float %11, float noundef 0xBFC6E9C860000000) %.012 = select i1 %.not3, float %20, float %19 %21 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not4 = icmp eq i32 %21, 0 %22 = call float @llvm.nvvm.fma.rn.ftz.f(float %.012, float %11, float noundef 0x3FCA417E80000000) #135 %23 = call float @llvm.fma.f32(float %.012, float %11, float noundef 0x3FCA417E80000000) %.09 = select i1 %.not4, float %23, float %22 %24 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not5 = icmp eq i32 %24, 0 %25 = call float @llvm.nvvm.fma.rn.ftz.f(float %.09, float %11, float noundef 0xBFCEC79160000000) #135 %26 = call float @llvm.fma.f32(float %.09, float %11, float noundef 0xBFCEC79160000000) %.05 = select i1 %.not5, float %26, float %25 %27 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not6 = icmp eq i32 %27, 0 %28 = call float @llvm.nvvm.fma.rn.ftz.f(float %.05, float %11, float noundef 0x3FD277F320000000) #135 %29 = call float @llvm.fma.f32(float %.05, float %11, float noundef 0x3FD277F320000000) %.01 = select i1 %.not6, float %29, float %28 %30 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not7 = icmp eq i32 %30, 0 %31 = call float @llvm.nvvm.fma.rn.ftz.f(float %.01, float %11, float noundef 0xBFD7154920000000) #135 %32 = call float @llvm.fma.f32(float %.01, float %11, float noundef 0xBFD7154920000000) %.0 = select i1 %.not7, float %32, float %31 %33 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not8 = icmp eq i32 %33, 0 %34 = call float @llvm.nvvm.fma.rn.ftz.f(float %.0, float %11, float noundef 0x3FDEC70940000000) #135 %35 = call float @llvm.fma.f32(float %.0, float %11, float noundef 0x3FDEC70940000000) %.07 = select i1 %.not8, float %35, float %34 %36 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not9 = icmp eq i32 %36, 0 %37 = call float @llvm.nvvm.fma.rn.ftz.f(float %.07, float %11, float noundef 0xBFE7154760000000) #135 %38 = call float @llvm.fma.f32(float %.07, float %11, float noundef 0xBFE7154760000000) %.06 = select i1 %.not9, float %38, float %37 %39 = fmul float %11, %.06 %40 = fmul float %11, %39 %41 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not10 = icmp eq i32 %41, 0 %42 = call float @llvm.nvvm.fma.rn.ftz.f(float %11, float noundef 0x3FF7154760000000, float %40) #135 %43 = call float @llvm.fma.f32(float %11, float noundef 0x3FF7154760000000, float %40) %.04 = select i1 %.not10, float %43, float %42 %44 = fadd float %.08, %.04 %45 = icmp ugt i32 %2, 2139095039 br i1 %45, label %__nv_fmaf_rn.exit.i, label %__internal_accurate_log2f.exit __nv_fmaf_rn.exit.i: ; preds = %__nv_fmaf_rn.exit10.i %46 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not11 = icmp eq i32 %46, 0 %47 = call float @llvm.nvvm.fma.rn.ftz.f(float %.02, float noundef 0x7FF0000000000000, float noundef 0x7FF0000000000000) #135 %48 = call float @llvm.fma.f32(float %.02, float noundef 0x7FF0000000000000, float noundef 0x7FF0000000000000) %.03 = select i1 %.not11, float %48, float %47 br label %__internal_accurate_log2f.exit __internal_accurate_log2f.exit: ; preds = %__nv_fmaf_rn.exit.i, %__nv_fmaf_rn.exit10.i %r.i.0 = phi float [ %.03, %__nv_fmaf_rn.exit.i ], [ %44, %__nv_fmaf_rn.exit10.i ] %49 = fcmp oeq float %.02, 0.000000e+00 %r.i.1 = select i1 %49, float 0xFFF0000000000000, float %r.i.0 ret float %r.i.1 } ; Function Attrs: noinline nounwind define dso_local float @__nv_expf(float %a) local_unnamed_addr #14 { __nv_fmaf_rn.exit.i.i: %0 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not = icmp eq i32 %0, 0 %1 = call float @llvm.nvvm.fma.rn.ftz.f(float %a, float noundef 0x3F777313A0000000, float noundef 5.000000e-01) #135 %2 = call float @llvm.fma.f32(float %a, float noundef 0x3F777313A0000000, float noundef 5.000000e-01) %.02 = select i1 %.not, float %2, float %1 %3 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not1 = icmp eq i32 %3, 0 %4 = call float @llvm.nvvm.saturate.ftz.f(float %.02) #135 %5 = call float @llvm.nvvm.saturate.f(float %.02) #135 %.03 = select i1 %.not1, float %5, float %4 %6 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not2 = icmp eq i32 %6, 0 %7 = call float @llvm.nvvm.fma.rm.ftz.f(float %.03, float noundef 2.520000e+02, float noundef 0x4168000020000000) #135 %8 = call float @llvm.nvvm.fma.rm.f(float %.03, float noundef 2.520000e+02, float noundef 0x4168000020000000) #135 %.04 = select i1 %.not2, float %8, float %7 %9 = fadd float %.04, 0xC168000FE0000000 %10 = fneg float %9 %11 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not3 = icmp eq i32 %11, 0 %12 = call float @llvm.nvvm.fma.rn.ftz.f(float %a, float noundef 0x3FF7154760000000, float %10) #135 %13 = call float @llvm.fma.f32(float %a, float noundef 0x3FF7154760000000, float %10) %.0 = select i1 %.not3, float %13, float %12 %14 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not4 = icmp eq i32 %14, 0 %15 = call float @llvm.nvvm.fma.rn.ftz.f(float %a, float noundef 0x3E54AE0C00000000, float %.0) #135 %16 = call float @llvm.fma.f32(float %a, float noundef 0x3E54AE0C00000000, float %.0) %.01 = select i1 %.not4, float %16, float %15 %17 = bitcast float %.04 to i32 %18 = shl i32 %17, 23 %19 = bitcast i32 %18 to float %20 = call float @llvm.nvvm.ex2.approx.ftz.f(float %.01) #135 %21 = fmul float %20, %19 ret float %21 } ; Function Attrs: noinline nounwind define dso_local float @__nv_exp10f(float %a) local_unnamed_addr #15 { __nv_fmaf_rn.exit.i.i: %0 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not = icmp eq i32 %0, 0 %1 = call float @llvm.nvvm.fma.rn.ftz.f(float %a, float noundef 0x3F8AFF4C40000000, float noundef 5.000000e-01) #135 %2 = call float @llvm.fma.f32(float %a, float noundef 0x3F8AFF4C40000000, float noundef 5.000000e-01) %.02 = select i1 %.not, float %2, float %1 %3 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not1 = icmp eq i32 %3, 0 %4 = call float @llvm.nvvm.saturate.ftz.f(float %.02) #135 %5 = call float @llvm.nvvm.saturate.f(float %.02) #135 %.03 = select i1 %.not1, float %5, float %4 %6 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not2 = icmp eq i32 %6, 0 %7 = call float @llvm.nvvm.fma.rm.ftz.f(float %.03, float noundef 2.520000e+02, float noundef 0x4168000020000000) #135 %8 = call float @llvm.nvvm.fma.rm.f(float %.03, float noundef 2.520000e+02, float noundef 0x4168000020000000) #135 %.04 = select i1 %.not2, float %8, float %7 %9 = fadd float %.04, 0xC168000FE0000000 %10 = fneg float %9 %11 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not3 = icmp eq i32 %11, 0 %12 = call float @llvm.nvvm.fma.rn.ftz.f(float %a, float noundef 0x400A934F00000000, float %10) #135 %13 = call float @llvm.fma.f32(float %a, float noundef 0x400A934F00000000, float %10) %.0 = select i1 %.not3, float %13, float %12 %14 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not4 = icmp eq i32 %14, 0 %15 = call float @llvm.nvvm.fma.rn.ftz.f(float %a, float noundef 0x3E72F346E0000000, float %.0) #135 %16 = call float @llvm.fma.f32(float %a, float noundef 0x3E72F346E0000000, float %.0) %.01 = select i1 %.not4, float %16, float %15 %17 = bitcast float %.04 to i32 %18 = shl i32 %17, 23 %19 = bitcast i32 %18 to float %20 = call float @llvm.nvvm.ex2.approx.ftz.f(float %.01) #135 %21 = fmul float %20, %19 ret float %21 } ; Function Attrs: noinline nounwind define dso_local float @__nv_coshf(float %a) local_unnamed_addr #16 { __nv_fabsf.exit: %0 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not = icmp eq i32 %0, 0 %1 = call float @llvm.nvvm.fabs.ftz.f(float %a) #135 %2 = call float @llvm.fabs.f32(float %a) %.01 = select i1 %.not, float %2, float %1 %3 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not1 = icmp eq i32 %3, 0 %4 = call float @llvm.nvvm.mul.rn.ftz.f(float %.01, float noundef 0x3FF7154760000000) #135 %5 = fmul float %.01, 0x3FF7154760000000 %.06 = select i1 %.not1, float %5, float %4 %6 = call float @llvm.trunc.f32(float %.06) %7 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not2 = icmp eq i32 %7, 0 %8 = call float @llvm.nvvm.fabs.ftz.f(float %6) #135 %9 = call float @llvm.fabs.f32(float %6) %.04 = select i1 %.not2, float %9, float %8 %10 = fcmp ogt float %.04, 1.260000e+02 %11 = bitcast float %6 to i32 %12 = and i32 %11, -2147483648 %13 = or i32 %12, 1123811328 %14 = bitcast i32 %13 to float %j.i.0 = select i1 %10, float %14, float %6 %15 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not3 = icmp eq i32 %15, 0 %16 = call float @llvm.nvvm.fma.rn.ftz.f(float %j.i.0, float noundef 0xBFE62E4300000000, float %.01) #135 %17 = call float @llvm.fma.f32(float %j.i.0, float noundef 0xBFE62E4300000000, float %.01) %.03 = select i1 %.not3, float %17, float %16 %18 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not4 = icmp eq i32 %18, 0 %19 = call float @llvm.nvvm.fma.rn.ftz.f(float %j.i.0, float noundef 0x3E205C6100000000, float %.03) #135 %20 = call float @llvm.fma.f32(float %j.i.0, float noundef 0x3E205C6100000000, float %.03) %.02 = select i1 %.not4, float %20, float %19 %21 = fmul float %.02, 0x3FF7154760000000 %22 = fadd float %j.i.0, 0x4168000FA0000000 %23 = bitcast float %22 to i32 %24 = shl i32 %23, 23 %25 = bitcast i32 %24 to float %26 = call float @llvm.nvvm.ex2.approx.ftz.f(float %21) #135 %27 = fmul float %26, %25 %28 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not5 = icmp eq i32 %28, 0 br i1 %.not5, label %31, label %29 29: ; preds = %__nv_fabsf.exit %30 = call float @llvm.nvvm.div.approx.ftz.f(float noundef 1.250000e-01, float %27) #135 br label %__nv_fast_fdividef.exit 31: ; preds = %__nv_fabsf.exit %32 = call float @llvm.nvvm.div.approx.f(float noundef 1.250000e-01, float %27) #135 br label %__nv_fast_fdividef.exit __nv_fast_fdividef.exit: ; preds = %31, %29 %.05 = phi float [ %30, %29 ], [ %32, %31 ] %33 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not6 = icmp eq i32 %33, 0 %34 = call float @llvm.nvvm.fma.rn.ftz.f(float noundef 2.000000e+00, float %27, float %.05) #135 %35 = call float @llvm.fma.f32(float %27, float noundef 2.000000e+00, float %.05) %.0 = select i1 %.not6, float %35, float %34 %36 = fcmp oge float %.01, 9.000000e+01 %z.0 = select i1 %36, float 0x7FF0000000000000, float %.0 ret float %z.0 } ; Function Attrs: noinline nounwind define dso_local float @__nv_sinhf(float %a) local_unnamed_addr #17 { __nv_fabsf.exit: %0 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not = icmp eq i32 %0, 0 %1 = call float @llvm.nvvm.fabs.ftz.f(float %a) #135 %2 = call float @llvm.fabs.f32(float %a) %.01 = select i1 %.not, float %2, float %1 %3 = fcmp ult float %.01, 1.000000e+00 br i1 %3, label %__internal_fmad.exit4, label %__nv_fmul_rn.exit.i __nv_fmul_rn.exit.i: ; preds = %__nv_fabsf.exit %4 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not5 = icmp eq i32 %4, 0 %5 = call float @llvm.nvvm.mul.rn.ftz.f(float %.01, float noundef 0x3FF7154760000000) #135 %6 = fmul float %.01, 0x3FF7154760000000 %.06 = select i1 %.not5, float %6, float %5 %7 = call float @llvm.trunc.f32(float %.06) %8 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not6 = icmp eq i32 %8, 0 %9 = call float @llvm.nvvm.fabs.ftz.f(float %7) #135 %10 = call float @llvm.fabs.f32(float %7) %.05 = select i1 %.not6, float %10, float %9 %11 = fcmp ogt float %.05, 1.260000e+02 %12 = bitcast float %7 to i32 %13 = and i32 %12, -2147483648 %14 = or i32 %13, 1123811328 %15 = bitcast i32 %14 to float %j.i.0 = select i1 %11, float %15, float %7 %16 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not7 = icmp eq i32 %16, 0 %17 = call float @llvm.nvvm.fma.rn.ftz.f(float %j.i.0, float noundef 0xBFE62E4300000000, float %.01) #135 %18 = call float @llvm.fma.f32(float %j.i.0, float noundef 0xBFE62E4300000000, float %.01) %.04 = select i1 %.not7, float %18, float %17 %19 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not8 = icmp eq i32 %19, 0 %20 = call float @llvm.nvvm.fma.rn.ftz.f(float %j.i.0, float noundef 0x3E205C6100000000, float %.04) #135 %21 = call float @llvm.fma.f32(float %j.i.0, float noundef 0x3E205C6100000000, float %.04) %.02 = select i1 %.not8, float %21, float %20 %22 = fmul float %.02, 0x3FF7154760000000 %23 = fadd float %j.i.0, 0x4168000FA0000000 %24 = bitcast float %23 to i32 %25 = shl i32 %24, 23 %26 = bitcast i32 %25 to float %27 = call float @llvm.nvvm.ex2.approx.ftz.f(float %22) #135 %28 = fmul float %27, %26 %29 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not9 = icmp eq i32 %29, 0 br i1 %.not9, label %32, label %30 30: ; preds = %__nv_fmul_rn.exit.i %31 = call float @llvm.nvvm.div.approx.ftz.f(float noundef 1.250000e-01, float %28) #135 br label %__nv_fast_fdividef.exit 32: ; preds = %__nv_fmul_rn.exit.i %33 = call float @llvm.nvvm.div.approx.f(float noundef 1.250000e-01, float %28) #135 br label %__nv_fast_fdividef.exit __nv_fast_fdividef.exit: ; preds = %32, %30 %.07 = phi float [ %31, %30 ], [ %33, %32 ] %34 = fneg float %.07 %35 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not10 = icmp eq i32 %35, 0 %36 = call float @llvm.nvvm.fma.rn.ftz.f(float noundef 2.000000e+00, float %28, float %34) #135 %37 = call float @llvm.fma.f32(float %28, float noundef 2.000000e+00, float %34) %.08 = select i1 %.not10, float %37, float %36 %38 = fcmp oge float %.01, 9.000000e+01 %z.0 = select i1 %38, float 0x7FF0000000000000, float %.08 %39 = bitcast float %z.0 to i32 %40 = bitcast float %a to i32 %41 = and i32 %40, -2147483648 %42 = or i32 %41, %39 %43 = bitcast i32 %42 to float br label %58 __internal_fmad.exit4: ; preds = %__nv_fabsf.exit %44 = fmul float %a, %a %45 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not1 = icmp eq i32 %45, 0 %46 = call float @llvm.nvvm.fma.rn.ftz.f(float noundef 0x3EC7A15B40000000, float %44, float noundef 0x3F29FFE920000000) #135 %47 = call float @llvm.fma.f32(float %44, float noundef 0x3EC7A15B40000000, float noundef 0x3F29FFE920000000) %.09 = select i1 %.not1, float %47, float %46 %48 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not2 = icmp eq i32 %48, 0 %49 = call float @llvm.nvvm.fma.rn.ftz.f(float %.09, float %44, float noundef 0x3F81111340000000) #135 %50 = call float @llvm.fma.f32(float %.09, float %44, float noundef 0x3F81111340000000) %.010 = select i1 %.not2, float %50, float %49 %51 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not3 = icmp eq i32 %51, 0 %52 = call float @llvm.nvvm.fma.rn.ftz.f(float %.010, float %44, float noundef 0x3FC5555560000000) #135 %53 = call float @llvm.fma.f32(float %.010, float %44, float noundef 0x3FC5555560000000) %.03 = select i1 %.not3, float %53, float %52 %54 = fmul float %44, %.03 %55 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not4 = icmp eq i32 %55, 0 %56 = call float @llvm.nvvm.fma.rn.ftz.f(float %54, float %a, float %a) #135 %57 = call float @llvm.fma.f32(float %54, float %a, float %a) %.0 = select i1 %.not4, float %57, float %56 br label %58 58: ; preds = %__internal_fmad.exit4, %__nv_fast_fdividef.exit %z.1 = phi float [ %43, %__nv_fast_fdividef.exit ], [ %.0, %__internal_fmad.exit4 ] ret float %z.1 } ; Function Attrs: noinline nounwind define dso_local float @__nv_tanhf(float %a) local_unnamed_addr #18 { __nv_fabsf.exit: %0 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not = icmp eq i32 %0, 0 %1 = call float @llvm.nvvm.fabs.ftz.f(float %a) #135 %2 = call float @llvm.fabs.f32(float %a) %.01 = select i1 %.not, float %2, float %1 %3 = fcmp ult float %.01, 0x3FE3333340000000 br i1 %3, label %__internal_fmad.exit3, label %__internal_fmad.exit1 __internal_fmad.exit1: ; preds = %__nv_fabsf.exit %4 = fmul float %.01, 0x4007154760000000 %5 = call float @llvm.nvvm.ex2.approx.ftz.f(float %4) #135 %6 = fadd float %5, 1.000000e+00 %7 = call float asm "rcp.approx.ftz.f32 $0,$1;", "=f,f"(float %6) #137, !srcloc !225 %8 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not6 = icmp eq i32 %8, 0 %9 = call float @llvm.nvvm.fma.rn.ftz.f(float %7, float noundef -2.000000e+00, float noundef 1.000000e+00) #135 %10 = call float @llvm.fma.f32(float %7, float noundef -2.000000e+00, float noundef 1.000000e+00) %.03 = select i1 %.not6, float %10, float %9 %11 = fcmp oge float %.01, 0x4022059680000000 %s.0 = select i1 %11, float 1.000000e+00, float %.03 %12 = bitcast float %s.0 to i32 %13 = bitcast float %a to i32 %14 = and i32 %13, -2147483648 %15 = or i32 %14, %12 %16 = bitcast i32 %15 to float br label %33 __internal_fmad.exit3: ; preds = %__nv_fabsf.exit %17 = fmul float %a, %a %18 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not1 = icmp eq i32 %18, 0 %19 = call float @llvm.nvvm.fma.rn.ftz.f(float noundef 0x3F901E1040000000, float %17, float noundef 0xBFAAC795C0000000) #135 %20 = call float @llvm.fma.f32(float %17, float noundef 0x3F901E1040000000, float noundef 0xBFAAC795C0000000) %.06 = select i1 %.not1, float %20, float %19 %21 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not2 = icmp eq i32 %21, 0 %22 = call float @llvm.nvvm.fma.rn.ftz.f(float %.06, float %17, float noundef 0x3FC10B2820000000) #135 %23 = call float @llvm.fma.f32(float %.06, float %17, float noundef 0x3FC10B2820000000) %.05 = select i1 %.not2, float %23, float %22 %24 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not3 = icmp eq i32 %24, 0 %25 = call float @llvm.nvvm.fma.rn.ftz.f(float %.05, float %17, float noundef 0xBFD5553DA0000000) #135 %26 = call float @llvm.fma.f32(float %.05, float %17, float noundef 0xBFD5553DA0000000) %.0 = select i1 %.not3, float %26, float %25 %27 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not4 = icmp eq i32 %27, 0 %28 = call float @llvm.nvvm.fma.rn.ftz.f(float %.0, float %17, float noundef 0.000000e+00) #135 %29 = call float @llvm.fma.f32(float %.0, float %17, float noundef 0.000000e+00) %.04 = select i1 %.not4, float %29, float %28 %30 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not5 = icmp eq i32 %30, 0 %31 = call float @llvm.nvvm.fma.rn.ftz.f(float %.04, float %a, float %a) #135 %32 = call float @llvm.fma.f32(float %.04, float %a, float %a) %.02 = select i1 %.not5, float %32, float %31 br label %33 33: ; preds = %__internal_fmad.exit3, %__internal_fmad.exit1 %s.1 = phi float [ %16, %__internal_fmad.exit1 ], [ %.02, %__internal_fmad.exit3 ] ret float %s.1 } ; Function Attrs: noinline nounwind define dso_local float @__nv_atan2f(float %a, float %b) local_unnamed_addr #19 { __nv_fabsf.exit: %0 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not = icmp eq i32 %0, 0 %1 = call float @llvm.nvvm.fabs.ftz.f(float %b) #135 %2 = call float @llvm.fabs.f32(float %b) %.02 = select i1 %.not, float %2, float %1 %3 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not3 = icmp eq i32 %3, 0 %4 = call float @llvm.nvvm.fabs.ftz.f(float %a) #135 %5 = call float @llvm.fabs.f32(float %a) %.03 = select i1 %.not3, float %5, float %4 %6 = fcmp oeq float %.02, 0.000000e+00 %7 = fcmp oeq float %.03, 0.000000e+00 %or.cond = select i1 %6, i1 %7, i1 false br i1 %or.cond, label %8, label %16 8: ; preds = %__nv_fabsf.exit %9 = bitcast float %b to i32 %10 = icmp slt i32 %9, 0 %11 = select i1 %10, i32 1078530011, i32 0 %12 = bitcast float %a to i32 %13 = and i32 %12, -2147483648 %14 = or i32 %11, %13 %15 = bitcast i32 %14 to float br label %68 16: ; preds = %__nv_fabsf.exit %17 = fcmp oeq float %.02, 0x7FF0000000000000 %18 = fcmp oeq float %.03, 0x7FF0000000000000 %or.cond2 = select i1 %17, i1 %18, i1 false br i1 %or.cond2, label %19, label %__nv_fmaxf.exit 19: ; preds = %16 %20 = bitcast float %b to i32 %21 = icmp slt i32 %20, 0 %22 = select i1 %21, i32 1075235812, i32 1061752795 %23 = bitcast float %a to i32 %24 = and i32 %23, -2147483648 %25 = or i32 %22, %24 %26 = bitcast i32 %25 to float br label %68 __nv_fmaxf.exit: ; preds = %16 %27 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not4 = icmp eq i32 %27, 0 %28 = call float @llvm.nvvm.fmax.ftz.f(float %.03, float %.02) #135 %29 = call float @llvm.maxnum.f32(float %.03, float %.02) %.01 = select i1 %.not4, float %29, float %28 %30 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not5 = icmp eq i32 %30, 0 %31 = call float @llvm.nvvm.fmin.ftz.f(float %.03, float %.02) #135 %32 = call float @llvm.minnum.f32(float %.03, float %.02) %.0 = select i1 %.not5, float %32, float %31 %33 = fdiv float %.0, %.01 %34 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not6 = icmp eq i32 %34, 0 %35 = call float @llvm.nvvm.mul.rn.ftz.f(float %33, float %33) #135 %36 = fmul float %33, %33 %.04 = select i1 %.not6, float %36, float %35 %37 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not7 = icmp eq i32 %37, 0 %38 = call float @llvm.nvvm.fma.rn.ftz.f(float %.04, float noundef 0xBFEA58FD40000000, float noundef 0xC016B31060000000) #135 %39 = call float @llvm.fma.f32(float %.04, float noundef 0xBFEA58FD40000000, float noundef 0xC016B31060000000) %.05 = select i1 %.not7, float %39, float %38 %40 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not8 = icmp eq i32 %40, 0 %41 = call float @llvm.nvvm.fma.rn.ftz.f(float %.05, float %.04, float noundef 0xC01A4320E0000000) #135 %42 = call float @llvm.fma.f32(float %.05, float %.04, float noundef 0xC01A4320E0000000) %.06 = select i1 %.not8, float %42, float %41 %43 = fmul float %.04, %.06 %44 = fmul float %33, %43 %45 = fadd float %.04, 0x4026ABB800000000 %46 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not9 = icmp eq i32 %46, 0 %47 = call float @llvm.nvvm.fma.rn.ftz.f(float %45, float %.04, float noundef 0x403CD7AC00000000) #135 %48 = call float @llvm.fma.f32(float %45, float %.04, float noundef 0x403CD7AC00000000) %.07 = select i1 %.not9, float %48, float %47 %49 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not10 = icmp eq i32 %49, 0 %50 = call float @llvm.nvvm.fma.rn.ftz.f(float %.07, float %.04, float noundef 0x4033B25900000000) #135 %51 = call float @llvm.fma.f32(float %.07, float %.04, float noundef 0x4033B25900000000) %.08 = select i1 %.not10, float %51, float %50 %52 = fdiv float 1.000000e+00, %.08 %53 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not11 = icmp eq i32 %53, 0 %54 = call float @llvm.nvvm.fma.rn.ftz.f(float %44, float %52, float %33) #135 %55 = call float @llvm.fma.f32(float %44, float %52, float %33) %.09 = select i1 %.not11, float %55, float %54 %56 = fcmp ogt float %.03, %.02 %57 = fsub float 0x3FF921FB60000000, %.09 %t0.0 = select i1 %56, float %57, float %.09 %58 = bitcast float %b to i32 %59 = icmp slt i32 %58, 0 %60 = fsub float 0x400921FB60000000, %t0.0 %t0.1 = select i1 %59, float %60, float %t0.0 %61 = bitcast float %t0.1 to i32 %62 = bitcast float %a to i32 %63 = and i32 %62, -2147483648 %64 = or i32 %63, %61 %65 = bitcast i32 %64 to float %66 = fadd float %.02, %.03 %67 = fcmp ole float %66, 0x7FF0000000000000 %t0.2 = select i1 %67, float %65, float %66 br label %68 68: ; preds = %19, %__nv_fmaxf.exit, %8 %t0.4 = phi float [ %15, %8 ], [ %26, %19 ], [ %t0.2, %__nv_fmaxf.exit ] ret float %t0.4 } ; Function Attrs: noinline nounwind define dso_local float @__nv_atanf(float %a) local_unnamed_addr #20 { __nv_fabsf.exit: %0 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not = icmp eq i32 %0, 0 %1 = call float @llvm.nvvm.fabs.ftz.f(float %a) #135 %2 = call float @llvm.fabs.f32(float %a) %.0 = select i1 %.not, float %2, float %1 %3 = fcmp ogt float %.0, 1.000000e+00 br i1 %3, label %4, label %__internal_fmad.exit.i 4: ; preds = %__nv_fabsf.exit %5 = call float asm "rcp.approx.ftz.f32 $0,$1;", "=f,f"(float %.0) #137, !srcloc !225 br label %__internal_fmad.exit.i __internal_fmad.exit.i: ; preds = %4, %__nv_fabsf.exit %t1.0 = phi float [ %5, %4 ], [ %.0, %__nv_fabsf.exit ] %6 = fmul float %t1.0, %t1.0 %7 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not1 = icmp eq i32 %7, 0 %8 = call float @llvm.nvvm.fma.rn.ftz.f(float noundef 0x3F64121540000000, float %6, float noundef 0xBF8D7C29E0000000) #135 %9 = call float @llvm.fma.f32(float %6, float noundef 0x3F64121540000000, float noundef 0xBF8D7C29E0000000) %.01 = select i1 %.not1, float %9, float %8 %10 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not2 = icmp eq i32 %10, 0 %11 = call float @llvm.nvvm.fma.rn.ftz.f(float %.01, float %6, float noundef 0x3FA4672FC0000000) #135 %12 = call float @llvm.fma.f32(float %.01, float %6, float noundef 0x3FA4672FC0000000) %.02 = select i1 %.not2, float %12, float %11 %13 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not3 = icmp eq i32 %13, 0 %14 = call float @llvm.nvvm.fma.rn.ftz.f(float %.02, float %6, float noundef 0xBFB2914F40000000) #135 %15 = call float @llvm.fma.f32(float %.02, float %6, float noundef 0xBFB2914F40000000) %.03 = select i1 %.not3, float %15, float %14 %16 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not4 = icmp eq i32 %16, 0 %17 = call float @llvm.nvvm.fma.rn.ftz.f(float %.03, float %6, float noundef 0x3FBAED6420000000) #135 %18 = call float @llvm.fma.f32(float %.03, float %6, float noundef 0x3FBAED6420000000) %.04 = select i1 %.not4, float %18, float %17 %19 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not5 = icmp eq i32 %19, 0 %20 = call float @llvm.nvvm.fma.rn.ftz.f(float %.04, float %6, float noundef 0xBFC223D100000000) #135 %21 = call float @llvm.fma.f32(float %.04, float %6, float noundef 0xBFC223D100000000) %.05 = select i1 %.not5, float %21, float %20 %22 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not6 = icmp eq i32 %22, 0 %23 = call float @llvm.nvvm.fma.rn.ftz.f(float %.05, float %6, float noundef 0x3FC995EC00000000) #135 %24 = call float @llvm.fma.f32(float %.05, float %6, float noundef 0x3FC995EC00000000) %.06 = select i1 %.not6, float %24, float %23 %25 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not7 = icmp eq i32 %25, 0 %26 = call float @llvm.nvvm.fma.rn.ftz.f(float %.06, float %6, float noundef 0xBFD55544E0000000) #135 %27 = call float @llvm.fma.f32(float %.06, float %6, float noundef 0xBFD55544E0000000) %.07 = select i1 %.not7, float %27, float %26 %28 = fmul float %6, %.07 %29 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not8 = icmp eq i32 %29, 0 %30 = call float @llvm.nvvm.fma.rn.ftz.f(float %28, float %t1.0, float %t1.0) #135 %31 = call float @llvm.fma.f32(float %28, float %t1.0, float %t1.0) %.08 = select i1 %.not8, float %31, float %30 br i1 %3, label %__internal_fmad.exit, label %36 __internal_fmad.exit: ; preds = %__internal_fmad.exit.i %32 = fneg float %.08 %33 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not9 = icmp eq i32 %33, 0 %34 = call float @llvm.nvvm.fma.rn.ftz.f(float noundef 0x3FEDDCB020000000, float noundef 0x3FFAEE9D60000000, float %32) #135 %35 = call float @llvm.fma.f32(float noundef 0x3FEDDCB020000000, float noundef 0x3FFAEE9D60000000, float %32) %.09 = select i1 %.not9, float %35, float %34 br label %36 36: ; preds = %__internal_fmad.exit, %__internal_fmad.exit.i %t1.1 = phi float [ %.09, %__internal_fmad.exit ], [ %.08, %__internal_fmad.exit.i ] %37 = fcmp ugt float %.0, 0x7FF0000000000000 br i1 %37, label %44, label %38 38: ; preds = %36 %39 = bitcast float %t1.1 to i32 %40 = bitcast float %a to i32 %41 = and i32 %40, -2147483648 %42 = or i32 %41, %39 %43 = bitcast i32 %42 to float br label %44 44: ; preds = %38, %36 %t1.2 = phi float [ %43, %38 ], [ %t1.1, %36 ] ret float %t1.2 } ; Function Attrs: noinline nounwind define dso_local float @__nv_asinf(float %a) local_unnamed_addr #21 { __nv_fabsf.exit: %0 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not = icmp eq i32 %0, 0 %1 = call float @llvm.nvvm.fabs.ftz.f(float %a) #135 %2 = call float @llvm.fabs.f32(float %a) %.01 = select i1 %.not, float %2, float %1 %3 = fneg float %.01 %4 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not1 = icmp eq i32 %4, 0 %5 = call float @llvm.nvvm.fma.rn.ftz.f(float noundef 5.000000e-01, float %3, float noundef 5.000000e-01) #135 %6 = call float @llvm.fma.f32(float %3, float noundef 5.000000e-01, float noundef 5.000000e-01) %.02 = select i1 %.not1, float %6, float %5 %7 = call float @llvm.nvvm.rsqrt.approx.ftz.f(float %.02) #135 %8 = fmul float %7, %.02 %9 = fmul float %7, 5.000000e-01 %10 = fneg float %8 %11 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not2 = icmp eq i32 %11, 0 %12 = call float @llvm.nvvm.fma.rn.ftz.f(float %10, float %9, float noundef 5.000000e-01) #135 %13 = call float @llvm.fma.f32(float %10, float %9, float noundef 5.000000e-01) %.05 = select i1 %.not2, float %13, float %12 %14 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not3 = icmp eq i32 %14, 0 %15 = call float @llvm.nvvm.fma.rn.ftz.f(float %8, float %.05, float %8) #135 %16 = call float @llvm.fma.f32(float %8, float %.05, float %8) %.06 = select i1 %.not3, float %16, float %15 %17 = fcmp oeq float %.01, 1.000000e+00 %18 = select i1 %17, float 0.000000e+00, float %.06 %19 = fcmp ogt float %.01, 0x3FE1EB8520000000 %20 = select i1 %19, float %18, float %.01 %21 = fmul float %20, %20 %22 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not4 = icmp eq i32 %22, 0 %23 = call float @llvm.nvvm.fma.rn.ftz.f(float noundef 0x3FA9BA5EE0000000, float %21, float noundef 0x3F933952E0000000) #135 %24 = call float @llvm.fma.f32(float %21, float noundef 0x3FA9BA5EE0000000, float noundef 0x3F933952E0000000) %.07 = select i1 %.not4, float %24, float %23 %25 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not5 = icmp eq i32 %25, 0 %26 = call float @llvm.nvvm.fma.rn.ftz.f(float %.07, float %21, float noundef 0x3FA7F21D00000000) #135 %27 = call float @llvm.fma.f32(float %.07, float %21, float noundef 0x3FA7F21D00000000) %.08 = select i1 %.not5, float %27, float %26 %28 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not6 = icmp eq i32 %28, 0 %29 = call float @llvm.nvvm.fma.rn.ftz.f(float %.08, float %21, float noundef 0x3FB32799E0000000) #135 %30 = call float @llvm.fma.f32(float %.08, float %21, float noundef 0x3FB32799E0000000) %.09 = select i1 %.not6, float %30, float %29 %31 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not7 = icmp eq i32 %31, 0 %32 = call float @llvm.nvvm.fma.rn.ftz.f(float %.09, float %21, float noundef 0x3FC5558080000000) #135 %33 = call float @llvm.fma.f32(float %.09, float %21, float noundef 0x3FC5558080000000) %.04 = select i1 %.not7, float %33, float %32 %34 = fmul float %21, %.04 %35 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not8 = icmp eq i32 %35, 0 %36 = call float @llvm.nvvm.fma.rn.ftz.f(float %34, float %20, float %20) #135 %37 = call float @llvm.fma.f32(float %34, float %20, float %20) %.0 = select i1 %.not8, float %37, float %36 %38 = fmul float %.0, -2.000000e+00 %39 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not9 = icmp eq i32 %39, 0 %40 = call float @llvm.nvvm.fma.rn.ftz.f(float noundef 0x3FEDDCB020000000, float noundef 0x3FFAEE9D60000000, float %38) #135 %41 = call float @llvm.fma.f32(float noundef 0x3FEDDCB020000000, float noundef 0x3FFAEE9D60000000, float %38) %.03 = select i1 %.not9, float %41, float %40 %z.0 = select i1 %19, float %.03, float %.0 %42 = fcmp ugt float %z.0, 0x7FF0000000000000 br i1 %42, label %49, label %43 43: ; preds = %__nv_fabsf.exit %44 = bitcast float %z.0 to i32 %45 = bitcast float %a to i32 %46 = and i32 %45, -2147483648 %47 = or i32 %46, %44 %48 = bitcast i32 %47 to float br label %49 49: ; preds = %43, %__nv_fabsf.exit %z.1 = phi float [ %48, %43 ], [ %z.0, %__nv_fabsf.exit ] ret float %z.1 } ; Function Attrs: noinline nounwind define dso_local float @__nv_acosf(float %a) local_unnamed_addr #22 { __nv_fabsf.exit: %0 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not = icmp eq i32 %0, 0 %1 = call float @llvm.nvvm.fabs.ftz.f(float %a) #135 %2 = call float @llvm.fabs.f32(float %a) %.01 = select i1 %.not, float %2, float %1 %3 = fneg float %.01 %4 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not1 = icmp eq i32 %4, 0 %5 = call float @llvm.nvvm.fma.rn.ftz.f(float noundef 5.000000e-01, float %3, float noundef 5.000000e-01) #135 %6 = call float @llvm.fma.f32(float %3, float noundef 5.000000e-01, float noundef 5.000000e-01) %.02 = select i1 %.not1, float %6, float %5 %7 = call float @llvm.nvvm.rsqrt.approx.ftz.f(float %.02) #135 %8 = fmul float %7, %.02 %9 = fmul float %7, 5.000000e-01 %10 = fneg float %8 %11 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not2 = icmp eq i32 %11, 0 %12 = call float @llvm.nvvm.fma.rn.ftz.f(float %10, float %9, float noundef 5.000000e-01) #135 %13 = call float @llvm.fma.f32(float %10, float %9, float noundef 5.000000e-01) %.05 = select i1 %.not2, float %13, float %12 %14 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not3 = icmp eq i32 %14, 0 %15 = call float @llvm.nvvm.fma.rn.ftz.f(float %8, float %.05, float %8) #135 %16 = call float @llvm.fma.f32(float %8, float %.05, float %8) %.06 = select i1 %.not3, float %16, float %15 %17 = fcmp oeq float %.01, 1.000000e+00 %18 = select i1 %17, float 0.000000e+00, float %.06 %19 = fcmp ogt float %.01, 0x3FE1EB8520000000 %20 = select i1 %19, float %18, float %.01 %21 = bitcast float %20 to i32 %22 = bitcast float %a to i32 %23 = and i32 %22, -2147483648 %24 = or i32 %23, %21 %25 = bitcast i32 %24 to float %26 = fmul float %25, %25 %27 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not4 = icmp eq i32 %27, 0 %28 = call float @llvm.nvvm.fma.rn.ftz.f(float noundef 0x3FA21D9DE0000000, float %26, float noundef 0x3F91635760000000) #135 %29 = call float @llvm.fma.f32(float %26, float noundef 0x3FA21D9DE0000000, float noundef 0x3F91635760000000) %.07 = select i1 %.not4, float %29, float %28 %30 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not5 = icmp eq i32 %30, 0 %31 = call float @llvm.nvvm.fma.rn.ftz.f(float %.07, float %26, float noundef 0x3F9F805180000000) #135 %32 = call float @llvm.fma.f32(float %.07, float %26, float noundef 0x3F9F805180000000) %.08 = select i1 %.not5, float %32, float %31 %33 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not6 = icmp eq i32 %33, 0 %34 = call float @llvm.nvvm.fma.rn.ftz.f(float %.08, float %26, float noundef 0x3FA6E42720000000) #135 %35 = call float @llvm.fma.f32(float %.08, float %26, float noundef 0x3FA6E42720000000) %.010 = select i1 %.not6, float %35, float %34 %36 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not7 = icmp eq i32 %36, 0 %37 = call float @llvm.nvvm.fma.rn.ftz.f(float %.010, float %26, float noundef 0x3FB3327B60000000) #135 %38 = call float @llvm.fma.f32(float %.010, float %26, float noundef 0x3FB3327B60000000) %.09 = select i1 %.not7, float %38, float %37 %39 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not8 = icmp eq i32 %39, 0 %40 = call float @llvm.nvvm.fma.rn.ftz.f(float %.09, float %26, float noundef 0x3FC55558C0000000) #135 %41 = call float @llvm.fma.f32(float %.09, float %26, float noundef 0x3FC55558C0000000) %.04 = select i1 %.not8, float %41, float %40 %42 = fmul float %26, %.04 %43 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not9 = icmp eq i32 %43, 0 %44 = call float @llvm.nvvm.fma.rn.ftz.f(float %42, float %25, float %25) #135 %45 = call float @llvm.fma.f32(float %42, float %25, float %25) %.0 = select i1 %.not9, float %45, float %44 %46 = fneg float %.0 %47 = select i1 %19, float %.0, float %46 %48 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not10 = icmp eq i32 %48, 0 %49 = call float @llvm.nvvm.fma.rn.ftz.f(float noundef 0x3FEDDCB020000000, float noundef 0x3FFAEE9D60000000, float %47) #135 %50 = call float @llvm.fma.f32(float noundef 0x3FEDDCB020000000, float noundef 0x3FFAEE9D60000000, float %47) %.03 = select i1 %.not10, float %50, float %49 %51 = fcmp ogt float %a, 0x3FE1EB8520000000 %52 = select i1 %51, float %.0, float %.03 %53 = fmul float %52, 2.000000e+00 %z.0 = select i1 %19, float %53, float %52 ret float %z.0 } ; Function Attrs: noinline nounwind define dso_local float @__nv_logf(float %a) local_unnamed_addr #23 { __nv_fmaf_rn.exit10.i: %0 = fcmp olt float %a, 0x3810000000000000 %1 = fmul float %a, 0x4160000000000000 %.02 = select i1 %0, float %1, float %a %i.i.0 = select i1 %0, float -2.300000e+01, float 0.000000e+00 %2 = bitcast float %.02 to i32 %3 = add i32 %2, -1059760811 %4 = and i32 %3, -8388608 %5 = sub i32 %2, %4 %6 = bitcast i32 %5 to float %7 = sitofp i32 %4 to float %8 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not = icmp eq i32 %8, 0 %9 = call float @llvm.nvvm.fma.rn.ftz.f(float %7, float noundef 0x3E80000000000000, float noundef %i.i.0) #135 %10 = call float @llvm.fma.f32(float %7, float noundef 0x3E80000000000000, float noundef %i.i.0) %.08 = select i1 %.not, float %10, float %9 %11 = fadd float %6, -1.000000e+00 %12 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not1 = icmp eq i32 %12, 0 %13 = call float @llvm.nvvm.fma.rn.ftz.f(float noundef 0xBFC0AA04E0000000, float %11, float noundef 0x3FC2073EC0000000) #135 %14 = call float @llvm.fma.f32(float %11, float noundef 0xBFC0AA04E0000000, float noundef 0x3FC2073EC0000000) %.010 = select i1 %.not1, float %14, float %13 %15 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not2 = icmp eq i32 %15, 0 %16 = call float @llvm.nvvm.fma.rn.ftz.f(float %.010, float %11, float noundef 0xBFBF19B980000000) #135 %17 = call float @llvm.fma.f32(float %.010, float %11, float noundef 0xBFBF19B980000000) %.011 = select i1 %.not2, float %17, float %16 %18 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not3 = icmp eq i32 %18, 0 %19 = call float @llvm.nvvm.fma.rn.ftz.f(float %.011, float %11, float noundef 0x3FC1E52AA0000000) #135 %20 = call float @llvm.fma.f32(float %.011, float %11, float noundef 0x3FC1E52AA0000000) %.012 = select i1 %.not3, float %20, float %19 %21 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not4 = icmp eq i32 %21, 0 %22 = call float @llvm.nvvm.fma.rn.ftz.f(float %.012, float %11, float noundef 0xBFC55B1720000000) #135 %23 = call float @llvm.fma.f32(float %.012, float %11, float noundef 0xBFC55B1720000000) %.09 = select i1 %.not4, float %23, float %22 %24 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not5 = icmp eq i32 %24, 0 %25 = call float @llvm.nvvm.fma.rn.ftz.f(float %.09, float %11, float noundef 0x3FC99DA160000000) #135 %26 = call float @llvm.fma.f32(float %.09, float %11, float noundef 0x3FC99DA160000000) %.05 = select i1 %.not5, float %26, float %25 %27 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not6 = icmp eq i32 %27, 0 %28 = call float @llvm.nvvm.fma.rn.ftz.f(float %.05, float %11, float noundef 0xBFCFFFE440000000) #135 %29 = call float @llvm.fma.f32(float %.05, float %11, float noundef 0xBFCFFFE440000000) %.01 = select i1 %.not6, float %29, float %28 %30 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not7 = icmp eq i32 %30, 0 %31 = call float @llvm.nvvm.fma.rn.ftz.f(float %.01, float %11, float noundef 0x3FD5554F00000000) #135 %32 = call float @llvm.fma.f32(float %.01, float %11, float noundef 0x3FD5554F00000000) %.0 = select i1 %.not7, float %32, float %31 %33 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not8 = icmp eq i32 %33, 0 %34 = call float @llvm.nvvm.fma.rn.ftz.f(float %.0, float %11, float noundef -5.000000e-01) #135 %35 = call float @llvm.fma.f32(float %.0, float %11, float noundef -5.000000e-01) %.07 = select i1 %.not8, float %35, float %34 %36 = fmul float %11, %.07 %37 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not9 = icmp eq i32 %37, 0 %38 = call float @llvm.nvvm.fma.rn.ftz.f(float %36, float %11, float %11) #135 %39 = call float @llvm.fma.f32(float %36, float %11, float %11) %.06 = select i1 %.not9, float %39, float %38 %40 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not10 = icmp eq i32 %40, 0 %41 = call float @llvm.nvvm.fma.rn.ftz.f(float %.08, float noundef 0x3FE62E4300000000, float %.06) #135 %42 = call float @llvm.fma.f32(float %.08, float noundef 0x3FE62E4300000000, float %.06) %.04 = select i1 %.not10, float %42, float %41 %43 = icmp ugt i32 %2, 2139095039 br i1 %43, label %__nv_fmaf_rn.exit.i, label %__internal_accurate_logf.exit __nv_fmaf_rn.exit.i: ; preds = %__nv_fmaf_rn.exit10.i %44 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not11 = icmp eq i32 %44, 0 %45 = call float @llvm.nvvm.fma.rn.ftz.f(float %.02, float noundef 0x7FF0000000000000, float noundef 0x7FF0000000000000) #135 %46 = call float @llvm.fma.f32(float %.02, float noundef 0x7FF0000000000000, float noundef 0x7FF0000000000000) %.03 = select i1 %.not11, float %46, float %45 br label %__internal_accurate_logf.exit __internal_accurate_logf.exit: ; preds = %__nv_fmaf_rn.exit.i, %__nv_fmaf_rn.exit10.i %r.i.0 = phi float [ %.03, %__nv_fmaf_rn.exit.i ], [ %.04, %__nv_fmaf_rn.exit10.i ] %47 = fcmp oeq float %.02, 0.000000e+00 %r.i.1 = select i1 %47, float 0xFFF0000000000000, float %r.i.0 ret float %r.i.1 } ; Function Attrs: noinline nounwind define dso_local float @__nv_log10f(float %a) local_unnamed_addr #24 { __nv_fmaf_rn.exit10.i: %0 = fcmp olt float %a, 0x3810000000000000 %1 = fmul float %a, 0x4160000000000000 %.02 = select i1 %0, float %1, float %a %i.i.0 = select i1 %0, float -2.300000e+01, float 0.000000e+00 %2 = bitcast float %.02 to i32 %3 = add i32 %2, -1059760811 %4 = and i32 %3, -8388608 %5 = sub i32 %2, %4 %6 = bitcast i32 %5 to float %7 = sitofp i32 %4 to float %8 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not = icmp eq i32 %8, 0 %9 = call float @llvm.nvvm.fma.rn.ftz.f(float %7, float noundef 0x3E80000000000000, float noundef %i.i.0) #135 %10 = call float @llvm.fma.f32(float %7, float noundef 0x3E80000000000000, float noundef %i.i.0) %.08 = select i1 %.not, float %10, float %9 %11 = fadd float %6, -1.000000e+00 %12 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not1 = icmp eq i32 %12, 0 %13 = call float @llvm.nvvm.fma.rn.ftz.f(float noundef 0xBFC0AA04E0000000, float %11, float noundef 0x3FC2073EC0000000) #135 %14 = call float @llvm.fma.f32(float %11, float noundef 0xBFC0AA04E0000000, float noundef 0x3FC2073EC0000000) %.010 = select i1 %.not1, float %14, float %13 %15 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not2 = icmp eq i32 %15, 0 %16 = call float @llvm.nvvm.fma.rn.ftz.f(float %.010, float %11, float noundef 0xBFBF19B980000000) #135 %17 = call float @llvm.fma.f32(float %.010, float %11, float noundef 0xBFBF19B980000000) %.011 = select i1 %.not2, float %17, float %16 %18 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not3 = icmp eq i32 %18, 0 %19 = call float @llvm.nvvm.fma.rn.ftz.f(float %.011, float %11, float noundef 0x3FC1E52AA0000000) #135 %20 = call float @llvm.fma.f32(float %.011, float %11, float noundef 0x3FC1E52AA0000000) %.012 = select i1 %.not3, float %20, float %19 %21 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not4 = icmp eq i32 %21, 0 %22 = call float @llvm.nvvm.fma.rn.ftz.f(float %.012, float %11, float noundef 0xBFC55B1720000000) #135 %23 = call float @llvm.fma.f32(float %.012, float %11, float noundef 0xBFC55B1720000000) %.09 = select i1 %.not4, float %23, float %22 %24 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not5 = icmp eq i32 %24, 0 %25 = call float @llvm.nvvm.fma.rn.ftz.f(float %.09, float %11, float noundef 0x3FC99DA160000000) #135 %26 = call float @llvm.fma.f32(float %.09, float %11, float noundef 0x3FC99DA160000000) %.05 = select i1 %.not5, float %26, float %25 %27 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not6 = icmp eq i32 %27, 0 %28 = call float @llvm.nvvm.fma.rn.ftz.f(float %.05, float %11, float noundef 0xBFCFFFE440000000) #135 %29 = call float @llvm.fma.f32(float %.05, float %11, float noundef 0xBFCFFFE440000000) %.01 = select i1 %.not6, float %29, float %28 %30 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not7 = icmp eq i32 %30, 0 %31 = call float @llvm.nvvm.fma.rn.ftz.f(float %.01, float %11, float noundef 0x3FD5554F00000000) #135 %32 = call float @llvm.fma.f32(float %.01, float %11, float noundef 0x3FD5554F00000000) %.0 = select i1 %.not7, float %32, float %31 %33 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not8 = icmp eq i32 %33, 0 %34 = call float @llvm.nvvm.fma.rn.ftz.f(float %.0, float %11, float noundef -5.000000e-01) #135 %35 = call float @llvm.fma.f32(float %.0, float %11, float noundef -5.000000e-01) %.07 = select i1 %.not8, float %35, float %34 %36 = fmul float %11, %.07 %37 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not9 = icmp eq i32 %37, 0 %38 = call float @llvm.nvvm.fma.rn.ftz.f(float %36, float %11, float %11) #135 %39 = call float @llvm.fma.f32(float %36, float %11, float %11) %.06 = select i1 %.not9, float %39, float %38 %40 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not10 = icmp eq i32 %40, 0 %41 = call float @llvm.nvvm.fma.rn.ftz.f(float %.08, float noundef 0x3FE62E4300000000, float %.06) #135 %42 = call float @llvm.fma.f32(float %.08, float noundef 0x3FE62E4300000000, float %.06) %.04 = select i1 %.not10, float %42, float %41 %43 = icmp ugt i32 %2, 2139095039 br i1 %43, label %__nv_fmaf_rn.exit.i, label %__internal_accurate_logf.exit __nv_fmaf_rn.exit.i: ; preds = %__nv_fmaf_rn.exit10.i %44 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not11 = icmp eq i32 %44, 0 %45 = call float @llvm.nvvm.fma.rn.ftz.f(float %.02, float noundef 0x7FF0000000000000, float noundef 0x7FF0000000000000) #135 %46 = call float @llvm.fma.f32(float %.02, float noundef 0x7FF0000000000000, float noundef 0x7FF0000000000000) %.03 = select i1 %.not11, float %46, float %45 br label %__internal_accurate_logf.exit __internal_accurate_logf.exit: ; preds = %__nv_fmaf_rn.exit.i, %__nv_fmaf_rn.exit10.i %r.i.0 = phi float [ %.03, %__nv_fmaf_rn.exit.i ], [ %.04, %__nv_fmaf_rn.exit10.i ] %47 = fcmp oeq float %.02, 0.000000e+00 %r.i.0.op = fmul float %r.i.0, 0x3FDBCB7B20000000 %48 = select i1 %47, float 0xFFF0000000000000, float %r.i.0.op ret float %48 } ; Function Attrs: noinline nounwind define dso_local float @__nv_log1pf(float %a) local_unnamed_addr #25 { __nv_fadd_rz.exit: %0 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not = icmp eq i32 %0, 0 %1 = call float @llvm.nvvm.add.rz.ftz.f(float %a, float noundef 1.000000e+00) #135 %2 = call float @llvm.nvvm.add.rz.f(float %a, float noundef 1.000000e+00) #135 %.01 = select i1 %.not, float %2, float %1 %3 = bitcast float %.01 to i32 %4 = add i32 %3, -1061158912 %5 = and i32 %4, -8388608 %6 = bitcast float %a to i32 %7 = sub i32 %6, %5 %8 = bitcast i32 %7 to float %9 = sub i32 1082130432, %5 %10 = bitcast i32 %9 to float %11 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not1 = icmp eq i32 %11, 0 %12 = call float @llvm.nvvm.fma.rn.ftz.f(float noundef 2.500000e-01, float %10, float noundef -1.000000e+00) #135 %13 = call float @llvm.fma.f32(float %10, float noundef 2.500000e-01, float noundef -1.000000e+00) %.09 = select i1 %.not1, float %13, float %12 %14 = fadd float %.09, %8 %15 = sitofp i32 %5 to float %16 = fmul float %15, 0x3E80000000000000 %17 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not2 = icmp eq i32 %17, 0 %18 = call float @llvm.nvvm.fma.rn.ftz.f(float noundef 0xBFA737EF00000000, float %14, float noundef 0x3FBB000240000000) #135 %19 = call float @llvm.fma.f32(float %14, float noundef 0xBFA737EF00000000, float noundef 0x3FBB000240000000) %.012 = select i1 %.not2, float %19, float %18 %20 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not3 = icmp eq i32 %20, 0 %21 = call float @llvm.nvvm.fma.rn.ftz.f(float %.012, float %14, float noundef 0xBFC0EF1C00000000) #135 %22 = call float @llvm.fma.f32(float %.012, float %14, float noundef 0xBFC0EF1C00000000) %.010 = select i1 %.not3, float %22, float %21 %23 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not4 = icmp eq i32 %23, 0 %24 = call float @llvm.nvvm.fma.rn.ftz.f(float %.010, float %14, float noundef 0x3FC28C8EA0000000) #135 %25 = call float @llvm.fma.f32(float %.010, float %14, float noundef 0x3FC28C8EA0000000) %.06 = select i1 %.not4, float %25, float %24 %26 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not5 = icmp eq i32 %26, 0 %27 = call float @llvm.nvvm.fma.rn.ftz.f(float %.06, float %14, float noundef 0xBFC54D1BA0000000) #135 %28 = call float @llvm.fma.f32(float %.06, float %14, float noundef 0xBFC54D1BA0000000) %.02 = select i1 %.not5, float %28, float %27 %29 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not6 = icmp eq i32 %29, 0 %30 = call float @llvm.nvvm.fma.rn.ftz.f(float %.02, float %14, float noundef 0x3FC995F3C0000000) #135 %31 = call float @llvm.fma.f32(float %.02, float %14, float noundef 0x3FC995F3C0000000) %.0 = select i1 %.not6, float %31, float %30 %32 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not7 = icmp eq i32 %32, 0 %33 = call float @llvm.nvvm.fma.rn.ftz.f(float %.0, float %14, float noundef 0xBFD0000840000000) #135 %34 = call float @llvm.fma.f32(float %.0, float %14, float noundef 0xBFD0000840000000) %.011 = select i1 %.not7, float %34, float %33 %35 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not8 = icmp eq i32 %35, 0 %36 = call float @llvm.nvvm.fma.rn.ftz.f(float %.011, float %14, float noundef 0x3FD5555CC0000000) #135 %37 = call float @llvm.fma.f32(float %.011, float %14, float noundef 0x3FD5555CC0000000) %.08 = select i1 %.not8, float %37, float %36 %38 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not9 = icmp eq i32 %38, 0 %39 = call float @llvm.nvvm.fma.rn.ftz.f(float %.08, float %14, float noundef -5.000000e-01) #135 %40 = call float @llvm.fma.f32(float %.08, float %14, float noundef -5.000000e-01) %.07 = select i1 %.not9, float %40, float %39 %41 = fmul float %14, %.07 %42 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not10 = icmp eq i32 %42, 0 %43 = call float @llvm.nvvm.fma.rn.ftz.f(float %41, float %14, float %14) #135 %44 = call float @llvm.fma.f32(float %41, float %14, float %14) %.05 = select i1 %.not10, float %44, float %43 %45 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not11 = icmp eq i32 %45, 0 %46 = call float @llvm.nvvm.fma.rn.ftz.f(float %16, float noundef 0x3FE62E4300000000, float %.05) #135 %47 = call float @llvm.fma.f32(float %16, float noundef 0x3FE62E4300000000, float %.05) %.04 = select i1 %.not11, float %47, float %46 %48 = icmp ugt i32 %6, 2139095039 br i1 %48, label %49, label %56 49: ; preds = %__nv_fadd_rz.exit %50 = icmp sgt i32 %6, -1082130432 br i1 %50, label %__nv_fmaf_rn.exit, label %54 __nv_fmaf_rn.exit: ; preds = %49 %51 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not12 = icmp eq i32 %51, 0 %52 = call float @llvm.nvvm.fma.rn.ftz.f(float %a, float noundef 0x7FF0000000000000, float noundef 0x7FF0000000000000) #135 %53 = call float @llvm.fma.f32(float %a, float noundef 0x7FF0000000000000, float noundef 0x7FF0000000000000) %.03 = select i1 %.not12, float %53, float %52 br label %54 54: ; preds = %__nv_fmaf_rn.exit, %49 %r.0 = phi float [ %.03, %__nv_fmaf_rn.exit ], [ %.04, %49 ] %55 = fcmp oeq float %a, 0.000000e+00 %r.1 = select i1 %55, float -0.000000e+00, float %r.0 br label %56 56: ; preds = %54, %__nv_fadd_rz.exit %r.2 = phi float [ %r.1, %54 ], [ %.04, %__nv_fadd_rz.exit ] ret float %r.2 } ; Function Attrs: noinline nounwind define dso_local float @__nv_acoshf(float %a) local_unnamed_addr #26 { %1 = fadd float %a, -1.000000e+00 %2 = bitcast float %1 to i32 %3 = icmp ugt i32 %2, 1258291200 br i1 %3, label %__nv_fmaf_rn.exit10.i13, label %__nv_fmul_rz.exit __nv_fmaf_rn.exit10.i13: ; preds = %0 %4 = fcmp olt float %1, 0x3810000000000000 %5 = fmul float %1, 0x4160000000000000 %.021 = select i1 %4, float %5, float %1 %i.i11.0 = select i1 %4, float -2.300000e+01, float 0.000000e+00 %6 = bitcast float %.021 to i32 %7 = add i32 %6, -1059760811 %8 = and i32 %7, -8388608 %9 = sub i32 %6, %8 %10 = bitcast i32 %9 to float %11 = sitofp i32 %8 to float %12 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not18 = icmp eq i32 %12, 0 %13 = call float @llvm.nvvm.fma.rn.ftz.f(float %11, float noundef 0x3E80000000000000, float noundef %i.i11.0) #135 %14 = call float @llvm.fma.f32(float %11, float noundef 0x3E80000000000000, float noundef %i.i11.0) %.028 = select i1 %.not18, float %14, float %13 %15 = fadd float %10, -1.000000e+00 %16 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not19 = icmp eq i32 %16, 0 %17 = call float @llvm.nvvm.fma.rn.ftz.f(float noundef 0xBFC0AA04E0000000, float %15, float noundef 0x3FC2073EC0000000) #135 %18 = call float @llvm.fma.f32(float %15, float noundef 0xBFC0AA04E0000000, float noundef 0x3FC2073EC0000000) %.027 = select i1 %.not19, float %18, float %17 %19 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not20 = icmp eq i32 %19, 0 %20 = call float @llvm.nvvm.fma.rn.ftz.f(float %.027, float %15, float noundef 0xBFBF19B980000000) #135 %21 = call float @llvm.fma.f32(float %.027, float %15, float noundef 0xBFBF19B980000000) %.023 = select i1 %.not20, float %21, float %20 %22 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not21 = icmp eq i32 %22, 0 %23 = call float @llvm.nvvm.fma.rn.ftz.f(float %.023, float %15, float noundef 0x3FC1E52AA0000000) #135 %24 = call float @llvm.fma.f32(float %.023, float %15, float noundef 0x3FC1E52AA0000000) %.020 = select i1 %.not21, float %24, float %23 %25 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not22 = icmp eq i32 %25, 0 %26 = call float @llvm.nvvm.fma.rn.ftz.f(float %.020, float %15, float noundef 0xBFC55B1720000000) #135 %27 = call float @llvm.fma.f32(float %.020, float %15, float noundef 0xBFC55B1720000000) %.018 = select i1 %.not22, float %27, float %26 %28 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not23 = icmp eq i32 %28, 0 %29 = call float @llvm.nvvm.fma.rn.ftz.f(float %.018, float %15, float noundef 0x3FC99DA160000000) #135 %30 = call float @llvm.fma.f32(float %.018, float %15, float noundef 0x3FC99DA160000000) %.014 = select i1 %.not23, float %30, float %29 %31 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not24 = icmp eq i32 %31, 0 %32 = call float @llvm.nvvm.fma.rn.ftz.f(float %.014, float %15, float noundef 0xBFCFFFE440000000) #135 %33 = call float @llvm.fma.f32(float %.014, float %15, float noundef 0xBFCFFFE440000000) %.010 = select i1 %.not24, float %33, float %32 %34 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not25 = icmp eq i32 %34, 0 %35 = call float @llvm.nvvm.fma.rn.ftz.f(float %.010, float %15, float noundef 0x3FD5554F00000000) #135 %36 = call float @llvm.fma.f32(float %.010, float %15, float noundef 0x3FD5554F00000000) %.06 = select i1 %.not25, float %36, float %35 %37 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not26 = icmp eq i32 %37, 0 %38 = call float @llvm.nvvm.fma.rn.ftz.f(float %.06, float %15, float noundef -5.000000e-01) #135 %39 = call float @llvm.fma.f32(float %.06, float %15, float noundef -5.000000e-01) %.026 = select i1 %.not26, float %39, float %38 %40 = fmul float %15, %.026 %41 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not27 = icmp eq i32 %41, 0 %42 = call float @llvm.nvvm.fma.rn.ftz.f(float %40, float %15, float %15) #135 %43 = call float @llvm.fma.f32(float %40, float %15, float %15) %.025 = select i1 %.not27, float %43, float %42 %44 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not28 = icmp eq i32 %44, 0 %45 = call float @llvm.nvvm.fma.rn.ftz.f(float %.028, float noundef 0x3FE62E4300000000, float %.025) #135 %46 = call float @llvm.fma.f32(float %.028, float noundef 0x3FE62E4300000000, float %.025) %.024 = select i1 %.not28, float %46, float %45 %47 = icmp ugt i32 %6, 2139095039 br i1 %47, label %__nv_fmaf_rn.exit.i22, label %__internal_accurate_logf.exit __nv_fmaf_rn.exit.i22: ; preds = %__nv_fmaf_rn.exit10.i13 %48 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not29 = icmp eq i32 %48, 0 %49 = call float @llvm.nvvm.fma.rn.ftz.f(float %.021, float noundef 0x7FF0000000000000, float noundef 0x7FF0000000000000) #135 %50 = call float @llvm.fma.f32(float %.021, float noundef 0x7FF0000000000000, float noundef 0x7FF0000000000000) %.022 = select i1 %.not29, float %50, float %49 br label %__internal_accurate_logf.exit __internal_accurate_logf.exit: ; preds = %__nv_fmaf_rn.exit.i22, %__nv_fmaf_rn.exit10.i13 %r.i10.0 = phi float [ %.022, %__nv_fmaf_rn.exit.i22 ], [ %.024, %__nv_fmaf_rn.exit10.i13 ] %51 = fcmp oeq float %.021, 0.000000e+00 %r.i10.0.op = fadd float %r.i10.0, 0x3FE62E4300000000 %52 = select i1 %51, float 0xFFF0000000000000, float %r.i10.0.op br label %__nv_log1pf.exit __nv_fmul_rz.exit: ; preds = %0 %53 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not = icmp eq i32 %53, 0 %54 = call float @llvm.nvvm.mul.rz.ftz.f(float %a, float %1) #135 %55 = call float @llvm.nvvm.mul.rz.f(float %a, float %1) #135 %.03 = select i1 %.not, float %55, float %54 %56 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not1 = icmp eq i32 %56, 0 %57 = call float @llvm.nvvm.add.rn.ftz.f(float %.03, float %1) #135 %58 = fadd float %1, %.03 %.01 = select i1 %.not1, float %58, float %57 %59 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not2 = icmp eq i32 %59, 0 br i1 %.not2, label %66, label %60 60: ; preds = %__nv_fmul_rz.exit %61 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([17 x i8], [17 x i8]* @.str.2, i32 0, i32 0)) #135 %.not17 = icmp eq i32 %61, 0 br i1 %.not17, label %64, label %62 62: ; preds = %60 %63 = call float @llvm.nvvm.sqrt.rn.ftz.f(float %.01) #135 br label %__nv_sqrtf.exit 64: ; preds = %60 %65 = call float @llvm.nvvm.sqrt.approx.ftz.f(float %.01) #135 br label %__nv_sqrtf.exit 66: ; preds = %__nv_fmul_rz.exit %67 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([17 x i8], [17 x i8]* @.str.2, i32 0, i32 0)) #135 %.not3 = icmp eq i32 %67, 0 br i1 %.not3, label %70, label %68 68: ; preds = %66 %69 = call float @llvm.sqrt.f32(float %.01) br label %__nv_sqrtf.exit 70: ; preds = %66 %71 = call float @llvm.nvvm.sqrt.approx.f(float %.01) #135 br label %__nv_sqrtf.exit __nv_sqrtf.exit: ; preds = %70, %68, %64, %62 %.0 = phi float [ %63, %62 ], [ %65, %64 ], [ %69, %68 ], [ %71, %70 ] %72 = fadd float %1, %.0 %73 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not4 = icmp eq i32 %73, 0 %74 = call float @llvm.nvvm.add.rz.ftz.f(float %72, float noundef 1.000000e+00) #135 %75 = call float @llvm.nvvm.add.rz.f(float %72, float noundef 1.000000e+00) #135 %.02 = select i1 %.not4, float %75, float %74 %76 = bitcast float %.02 to i32 %77 = add i32 %76, -1061158912 %78 = and i32 %77, -8388608 %79 = bitcast float %72 to i32 %80 = sub i32 %79, %78 %81 = bitcast i32 %80 to float %82 = sub i32 1082130432, %78 %83 = bitcast i32 %82 to float %84 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not5 = icmp eq i32 %84, 0 %85 = call float @llvm.nvvm.fma.rn.ftz.f(float noundef 2.500000e-01, float %83, float noundef -1.000000e+00) #135 %86 = call float @llvm.fma.f32(float %83, float noundef 2.500000e-01, float noundef -1.000000e+00) %.011 = select i1 %.not5, float %86, float %85 %87 = fadd float %.011, %81 %88 = sitofp i32 %78 to float %89 = fmul float %88, 0x3E80000000000000 %90 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not6 = icmp eq i32 %90, 0 %91 = call float @llvm.nvvm.fma.rn.ftz.f(float noundef 0xBFA737EF00000000, float %87, float noundef 0x3FBB000240000000) #135 %92 = call float @llvm.fma.f32(float %87, float noundef 0xBFA737EF00000000, float noundef 0x3FBB000240000000) %.013 = select i1 %.not6, float %92, float %91 %93 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not7 = icmp eq i32 %93, 0 %94 = call float @llvm.nvvm.fma.rn.ftz.f(float %.013, float %87, float noundef 0xBFC0EF1C00000000) #135 %95 = call float @llvm.fma.f32(float %.013, float %87, float noundef 0xBFC0EF1C00000000) %.015 = select i1 %.not7, float %95, float %94 %96 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not8 = icmp eq i32 %96, 0 %97 = call float @llvm.nvvm.fma.rn.ftz.f(float %.015, float %87, float noundef 0x3FC28C8EA0000000) #135 %98 = call float @llvm.fma.f32(float %.015, float %87, float noundef 0x3FC28C8EA0000000) %.016 = select i1 %.not8, float %98, float %97 %99 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not9 = icmp eq i32 %99, 0 %100 = call float @llvm.nvvm.fma.rn.ftz.f(float %.016, float %87, float noundef 0xBFC54D1BA0000000) #135 %101 = call float @llvm.fma.f32(float %.016, float %87, float noundef 0xBFC54D1BA0000000) %.017 = select i1 %.not9, float %101, float %100 %102 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not10 = icmp eq i32 %102, 0 %103 = call float @llvm.nvvm.fma.rn.ftz.f(float %.017, float %87, float noundef 0x3FC995F3C0000000) #135 %104 = call float @llvm.fma.f32(float %.017, float %87, float noundef 0x3FC995F3C0000000) %.019 = select i1 %.not10, float %104, float %103 %105 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not11 = icmp eq i32 %105, 0 %106 = call float @llvm.nvvm.fma.rn.ftz.f(float %.019, float %87, float noundef 0xBFD0000840000000) #135 %107 = call float @llvm.fma.f32(float %.019, float %87, float noundef 0xBFD0000840000000) %.012 = select i1 %.not11, float %107, float %106 %108 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not12 = icmp eq i32 %108, 0 %109 = call float @llvm.nvvm.fma.rn.ftz.f(float %.012, float %87, float noundef 0x3FD5555CC0000000) #135 %110 = call float @llvm.fma.f32(float %.012, float %87, float noundef 0x3FD5555CC0000000) %.09 = select i1 %.not12, float %110, float %109 %111 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not13 = icmp eq i32 %111, 0 %112 = call float @llvm.nvvm.fma.rn.ftz.f(float %.09, float %87, float noundef -5.000000e-01) #135 %113 = call float @llvm.fma.f32(float %.09, float %87, float noundef -5.000000e-01) %.08 = select i1 %.not13, float %113, float %112 %114 = fmul float %87, %.08 %115 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not14 = icmp eq i32 %115, 0 %116 = call float @llvm.nvvm.fma.rn.ftz.f(float %114, float %87, float %87) #135 %117 = call float @llvm.fma.f32(float %114, float %87, float %87) %.07 = select i1 %.not14, float %117, float %116 %118 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not15 = icmp eq i32 %118, 0 %119 = call float @llvm.nvvm.fma.rn.ftz.f(float %89, float noundef 0x3FE62E4300000000, float %.07) #135 %120 = call float @llvm.fma.f32(float %89, float noundef 0x3FE62E4300000000, float %.07) %.05 = select i1 %.not15, float %120, float %119 %121 = icmp ugt i32 %79, 2139095039 br i1 %121, label %122, label %__nv_log1pf.exit 122: ; preds = %__nv_sqrtf.exit %123 = icmp sgt i32 %79, -1082130432 br i1 %123, label %__nv_fmaf_rn.exit.i, label %127 __nv_fmaf_rn.exit.i: ; preds = %122 %124 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not16 = icmp eq i32 %124, 0 %125 = call float @llvm.nvvm.fma.rn.ftz.f(float %72, float noundef 0x7FF0000000000000, float noundef 0x7FF0000000000000) #135 %126 = call float @llvm.fma.f32(float %72, float noundef 0x7FF0000000000000, float noundef 0x7FF0000000000000) %.04 = select i1 %.not16, float %126, float %125 br label %127 127: ; preds = %__nv_fmaf_rn.exit.i, %122 %r.i.0 = phi float [ %.04, %__nv_fmaf_rn.exit.i ], [ %.05, %122 ] %128 = fcmp oeq float %72, 0.000000e+00 %r.i.1 = select i1 %128, float -0.000000e+00, float %r.i.0 br label %__nv_log1pf.exit __nv_log1pf.exit: ; preds = %__nv_sqrtf.exit, %127, %__internal_accurate_logf.exit %t.0 = phi float [ %52, %__internal_accurate_logf.exit ], [ %r.i.1, %127 ], [ %.05, %__nv_sqrtf.exit ] ret float %t.0 } ; Function Attrs: noinline nounwind define dso_local float @__nv_asinhf(float %a) local_unnamed_addr #27 { __nv_fabsf.exit: %0 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not = icmp eq i32 %0, 0 %1 = call float @llvm.nvvm.fabs.ftz.f(float %a) #135 %2 = call float @llvm.fabs.f32(float %a) %.0 = select i1 %.not, float %2, float %1 %3 = fcmp ogt float %.0, 0x47D0000000000000 br i1 %3, label %4, label %__internal_fmad.exit 4: ; preds = %__nv_fabsf.exit %5 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not19 = icmp eq i32 %5, 0 br i1 %.not19, label %8, label %6 6: ; preds = %4 %7 = call float @llvm.nvvm.lg2.approx.ftz.f(float %.0) #135 br label %__nv_fast_logf.exit 8: ; preds = %4 %9 = call float @llvm.nvvm.lg2.approx.f(float %.0) #135 br label %__nv_fast_logf.exit __nv_fast_logf.exit: ; preds = %8, %6 %.01 = phi float [ %7, %6 ], [ %9, %8 ] %10 = fmul float %.01, 0x3FE62E4300000000 %11 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not20 = icmp eq i32 %11, 0 %12 = call float @llvm.nvvm.add.rn.ftz.f(float noundef 0x3FE62E4300000000, float %10) #135 %13 = fadd float %10, 0x3FE62E4300000000 %.02 = select i1 %.not20, float %13, float %12 br label %__nv_log1pf.exit __internal_fmad.exit: ; preds = %__nv_fabsf.exit %14 = fdiv float 1.000000e+00, %.0 %15 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not1 = icmp eq i32 %15, 0 %16 = call float @llvm.nvvm.fma.rn.ftz.f(float %14, float %14, float noundef 1.000000e+00) #135 %17 = call float @llvm.fma.f32(float %14, float %14, float noundef 1.000000e+00) %.03 = select i1 %.not1, float %17, float %16 %18 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not2 = icmp eq i32 %18, 0 br i1 %.not2, label %25, label %19 19: ; preds = %__internal_fmad.exit %20 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([17 x i8], [17 x i8]* @.str.2, i32 0, i32 0)) #135 %.not18 = icmp eq i32 %20, 0 br i1 %.not18, label %23, label %21 21: ; preds = %19 %22 = call float @llvm.nvvm.sqrt.rn.ftz.f(float %.03) #135 br label %__nv_sqrtf.exit 23: ; preds = %19 %24 = call float @llvm.nvvm.sqrt.approx.ftz.f(float %.03) #135 br label %__nv_sqrtf.exit 25: ; preds = %__internal_fmad.exit %26 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([17 x i8], [17 x i8]* @.str.2, i32 0, i32 0)) #135 %.not3 = icmp eq i32 %26, 0 br i1 %.not3, label %29, label %27 27: ; preds = %25 %28 = call float @llvm.sqrt.f32(float %.03) br label %__nv_sqrtf.exit 29: ; preds = %25 %30 = call float @llvm.nvvm.sqrt.approx.f(float %.03) #135 br label %__nv_sqrtf.exit __nv_sqrtf.exit: ; preds = %29, %27, %23, %21 %.04 = phi float [ %22, %21 ], [ %24, %23 ], [ %28, %27 ], [ %30, %29 ] %31 = fadd float %14, %.04 %32 = call float asm "rcp.approx.ftz.f32 $0,$1;", "=f,f"(float %31) #137, !srcloc !225 %33 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not4 = icmp eq i32 %33, 0 %34 = call float @llvm.nvvm.fma.rn.ftz.f(float %.0, float %32, float %.0) #135 %35 = call float @llvm.fma.f32(float %.0, float %32, float %.0) %.05 = select i1 %.not4, float %35, float %34 %36 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not5 = icmp eq i32 %36, 0 %37 = call float @llvm.nvvm.add.rz.ftz.f(float %.05, float noundef 1.000000e+00) #135 %38 = call float @llvm.nvvm.add.rz.f(float %.05, float noundef 1.000000e+00) #135 %.06 = select i1 %.not5, float %38, float %37 %39 = bitcast float %.06 to i32 %40 = add i32 %39, -1061158912 %41 = and i32 %40, -8388608 %42 = bitcast float %.05 to i32 %43 = sub i32 %42, %41 %44 = bitcast i32 %43 to float %45 = sub i32 1082130432, %41 %46 = bitcast i32 %45 to float %47 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not6 = icmp eq i32 %47, 0 %48 = call float @llvm.nvvm.fma.rn.ftz.f(float noundef 2.500000e-01, float %46, float noundef -1.000000e+00) #135 %49 = call float @llvm.fma.f32(float %46, float noundef 2.500000e-01, float noundef -1.000000e+00) %.014 = select i1 %.not6, float %49, float %48 %50 = fadd float %.014, %44 %51 = sitofp i32 %41 to float %52 = fmul float %51, 0x3E80000000000000 %53 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not7 = icmp eq i32 %53, 0 %54 = call float @llvm.nvvm.fma.rn.ftz.f(float noundef 0xBFA737EF00000000, float %50, float noundef 0x3FBB000240000000) #135 %55 = call float @llvm.fma.f32(float %50, float noundef 0xBFA737EF00000000, float noundef 0x3FBB000240000000) %.016 = select i1 %.not7, float %55, float %54 %56 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not8 = icmp eq i32 %56, 0 %57 = call float @llvm.nvvm.fma.rn.ftz.f(float %.016, float %50, float noundef 0xBFC0EF1C00000000) #135 %58 = call float @llvm.fma.f32(float %.016, float %50, float noundef 0xBFC0EF1C00000000) %.018 = select i1 %.not8, float %58, float %57 %59 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not9 = icmp eq i32 %59, 0 %60 = call float @llvm.nvvm.fma.rn.ftz.f(float %.018, float %50, float noundef 0x3FC28C8EA0000000) #135 %61 = call float @llvm.fma.f32(float %.018, float %50, float noundef 0x3FC28C8EA0000000) %.017 = select i1 %.not9, float %61, float %60 %62 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not10 = icmp eq i32 %62, 0 %63 = call float @llvm.nvvm.fma.rn.ftz.f(float %.017, float %50, float noundef 0xBFC54D1BA0000000) #135 %64 = call float @llvm.fma.f32(float %.017, float %50, float noundef 0xBFC54D1BA0000000) %.013 = select i1 %.not10, float %64, float %63 %65 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not11 = icmp eq i32 %65, 0 %66 = call float @llvm.nvvm.fma.rn.ftz.f(float %.013, float %50, float noundef 0x3FC995F3C0000000) #135 %67 = call float @llvm.fma.f32(float %.013, float %50, float noundef 0x3FC995F3C0000000) %.09 = select i1 %.not11, float %67, float %66 %68 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not12 = icmp eq i32 %68, 0 %69 = call float @llvm.nvvm.fma.rn.ftz.f(float %.09, float %50, float noundef 0xBFD0000840000000) #135 %70 = call float @llvm.fma.f32(float %.09, float %50, float noundef 0xBFD0000840000000) %.015 = select i1 %.not12, float %70, float %69 %71 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not13 = icmp eq i32 %71, 0 %72 = call float @llvm.nvvm.fma.rn.ftz.f(float %.015, float %50, float noundef 0x3FD5555CC0000000) #135 %73 = call float @llvm.fma.f32(float %.015, float %50, float noundef 0x3FD5555CC0000000) %.012 = select i1 %.not13, float %73, float %72 %74 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not14 = icmp eq i32 %74, 0 %75 = call float @llvm.nvvm.fma.rn.ftz.f(float %.012, float %50, float noundef -5.000000e-01) #135 %76 = call float @llvm.fma.f32(float %.012, float %50, float noundef -5.000000e-01) %.011 = select i1 %.not14, float %76, float %75 %77 = fmul float %50, %.011 %78 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not15 = icmp eq i32 %78, 0 %79 = call float @llvm.nvvm.fma.rn.ftz.f(float %77, float %50, float %50) #135 %80 = call float @llvm.fma.f32(float %77, float %50, float %50) %.010 = select i1 %.not15, float %80, float %79 %81 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not16 = icmp eq i32 %81, 0 %82 = call float @llvm.nvvm.fma.rn.ftz.f(float %52, float noundef 0x3FE62E4300000000, float %.010) #135 %83 = call float @llvm.fma.f32(float %52, float noundef 0x3FE62E4300000000, float %.010) %.08 = select i1 %.not16, float %83, float %82 %84 = icmp ugt i32 %42, 2139095039 br i1 %84, label %85, label %__nv_log1pf.exit 85: ; preds = %__nv_sqrtf.exit %86 = icmp sgt i32 %42, -1082130432 br i1 %86, label %__nv_fmaf_rn.exit.i, label %90 __nv_fmaf_rn.exit.i: ; preds = %85 %87 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not17 = icmp eq i32 %87, 0 %88 = call float @llvm.nvvm.fma.rn.ftz.f(float %.05, float noundef 0x7FF0000000000000, float noundef 0x7FF0000000000000) #135 %89 = call float @llvm.fma.f32(float %.05, float noundef 0x7FF0000000000000, float noundef 0x7FF0000000000000) %.07 = select i1 %.not17, float %89, float %88 br label %90 90: ; preds = %__nv_fmaf_rn.exit.i, %85 %r.i2.0 = phi float [ %.07, %__nv_fmaf_rn.exit.i ], [ %.08, %85 ] %91 = fcmp oeq float %.05, 0.000000e+00 %r.i2.1 = select i1 %91, float -0.000000e+00, float %r.i2.0 br label %__nv_log1pf.exit __nv_log1pf.exit: ; preds = %__nv_sqrtf.exit, %90, %__nv_fast_logf.exit %t.0 = phi float [ %.02, %__nv_fast_logf.exit ], [ %r.i2.1, %90 ], [ %.08, %__nv_sqrtf.exit ] %92 = fcmp ugt float %.0, 0x7FF0000000000000 br i1 %92, label %99, label %93 93: ; preds = %__nv_log1pf.exit %94 = bitcast float %t.0 to i32 %95 = bitcast float %a to i32 %96 = and i32 %95, -2147483648 %97 = or i32 %96, %94 %98 = bitcast i32 %97 to float br label %99 99: ; preds = %93, %__nv_log1pf.exit %t.1 = phi float [ %98, %93 ], [ %t.0, %__nv_log1pf.exit ] ret float %t.1 } ; Function Attrs: noinline nounwind define dso_local float @__nv_atanhf(float %a) local_unnamed_addr #28 { __nv_fabsf.exit: %0 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not = icmp eq i32 %0, 0 %1 = call float @llvm.nvvm.fabs.ftz.f(float %a) #135 %2 = call float @llvm.fabs.f32(float %a) %.0 = select i1 %.not, float %2, float %1 %3 = fsub float 1.000000e+00, %.0 %4 = call float asm "rcp.approx.ftz.f32 $0,$1;", "=f,f"(float %3) #137, !srcloc !225 %5 = fmul float %4, 2.000000e+00 %6 = fmul float %5, %.0 %7 = fcmp ogt float %.0, 0x47D0000000000000 %t.0 = select i1 %7, float -2.000000e+00, float %6 %8 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not1 = icmp eq i32 %8, 0 %9 = call float @llvm.nvvm.add.rz.ftz.f(float %t.0, float noundef 1.000000e+00) #135 %10 = call float @llvm.nvvm.add.rz.f(float %t.0, float noundef 1.000000e+00) #135 %.01 = select i1 %.not1, float %10, float %9 %11 = bitcast float %.01 to i32 %12 = add i32 %11, -1061158912 %13 = and i32 %12, -8388608 %14 = bitcast float %t.0 to i32 %15 = sub i32 %14, %13 %16 = bitcast i32 %15 to float %17 = sub i32 1082130432, %13 %18 = bitcast i32 %17 to float %19 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not2 = icmp eq i32 %19, 0 %20 = call float @llvm.nvvm.fma.rn.ftz.f(float noundef 2.500000e-01, float %18, float noundef -1.000000e+00) #135 %21 = call float @llvm.fma.f32(float %18, float noundef 2.500000e-01, float noundef -1.000000e+00) %.07 = select i1 %.not2, float %21, float %20 %22 = fadd float %.07, %16 %23 = sitofp i32 %13 to float %24 = fmul float %23, 0x3E80000000000000 %25 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not3 = icmp eq i32 %25, 0 %26 = call float @llvm.nvvm.fma.rn.ftz.f(float noundef 0xBFA737EF00000000, float %22, float noundef 0x3FBB000240000000) #135 %27 = call float @llvm.fma.f32(float %22, float noundef 0xBFA737EF00000000, float noundef 0x3FBB000240000000) %.010 = select i1 %.not3, float %27, float %26 %28 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not4 = icmp eq i32 %28, 0 %29 = call float @llvm.nvvm.fma.rn.ftz.f(float %.010, float %22, float noundef 0xBFC0EF1C00000000) #135 %30 = call float @llvm.fma.f32(float %.010, float %22, float noundef 0xBFC0EF1C00000000) %.012 = select i1 %.not4, float %30, float %29 %31 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not5 = icmp eq i32 %31, 0 %32 = call float @llvm.nvvm.fma.rn.ftz.f(float %.012, float %22, float noundef 0x3FC28C8EA0000000) #135 %33 = call float @llvm.fma.f32(float %.012, float %22, float noundef 0x3FC28C8EA0000000) %.013 = select i1 %.not5, float %33, float %32 %34 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not6 = icmp eq i32 %34, 0 %35 = call float @llvm.nvvm.fma.rn.ftz.f(float %.013, float %22, float noundef 0xBFC54D1BA0000000) #135 %36 = call float @llvm.fma.f32(float %.013, float %22, float noundef 0xBFC54D1BA0000000) %.014 = select i1 %.not6, float %36, float %35 %37 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not7 = icmp eq i32 %37, 0 %38 = call float @llvm.nvvm.fma.rn.ftz.f(float %.014, float %22, float noundef 0x3FC995F3C0000000) #135 %39 = call float @llvm.fma.f32(float %.014, float %22, float noundef 0x3FC995F3C0000000) %.011 = select i1 %.not7, float %39, float %38 %40 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not8 = icmp eq i32 %40, 0 %41 = call float @llvm.nvvm.fma.rn.ftz.f(float %.011, float %22, float noundef 0xBFD0000840000000) #135 %42 = call float @llvm.fma.f32(float %.011, float %22, float noundef 0xBFD0000840000000) %.08 = select i1 %.not8, float %42, float %41 %43 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not9 = icmp eq i32 %43, 0 %44 = call float @llvm.nvvm.fma.rn.ftz.f(float %.08, float %22, float noundef 0x3FD5555CC0000000) #135 %45 = call float @llvm.fma.f32(float %.08, float %22, float noundef 0x3FD5555CC0000000) %.06 = select i1 %.not9, float %45, float %44 %46 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not10 = icmp eq i32 %46, 0 %47 = call float @llvm.nvvm.fma.rn.ftz.f(float %.06, float %22, float noundef -5.000000e-01) #135 %48 = call float @llvm.fma.f32(float %.06, float %22, float noundef -5.000000e-01) %.05 = select i1 %.not10, float %48, float %47 %49 = fmul float %22, %.05 %50 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not11 = icmp eq i32 %50, 0 %51 = call float @llvm.nvvm.fma.rn.ftz.f(float %49, float %22, float %22) #135 %52 = call float @llvm.fma.f32(float %49, float %22, float %22) %.04 = select i1 %.not11, float %52, float %51 %53 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not12 = icmp eq i32 %53, 0 %54 = call float @llvm.nvvm.fma.rn.ftz.f(float %24, float noundef 0x3FE62E4300000000, float %.04) #135 %55 = call float @llvm.fma.f32(float %24, float noundef 0x3FE62E4300000000, float %.04) %.03 = select i1 %.not12, float %55, float %54 %56 = icmp ugt i32 %14, 2139095039 br i1 %56, label %57, label %__nv_log1pf.exit 57: ; preds = %__nv_fabsf.exit %58 = icmp sgt i32 %14, -1082130432 br i1 %58, label %__nv_fmaf_rn.exit.i, label %62 __nv_fmaf_rn.exit.i: ; preds = %57 %59 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not14 = icmp eq i32 %59, 0 %60 = call float @llvm.nvvm.fma.rn.ftz.f(float %t.0, float noundef 0x7FF0000000000000, float noundef 0x7FF0000000000000) #135 %61 = call float @llvm.fma.f32(float %t.0, float noundef 0x7FF0000000000000, float noundef 0x7FF0000000000000) %.02 = select i1 %.not14, float %61, float %60 br label %62 62: ; preds = %__nv_fmaf_rn.exit.i, %57 %r.i1.0 = phi float [ %.02, %__nv_fmaf_rn.exit.i ], [ %.03, %57 ] %63 = fcmp oeq float %t.0, 0.000000e+00 %r.i1.1 = select i1 %63, float -0.000000e+00, float %r.i1.0 br label %__nv_log1pf.exit __nv_log1pf.exit: ; preds = %62, %__nv_fabsf.exit %r.i1.2 = phi float [ %r.i1.1, %62 ], [ %.03, %__nv_fabsf.exit ] %64 = fmul float %r.i1.2, 5.000000e-01 %65 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not13 = icmp eq i32 %65, 0 %66 = call float @llvm.nvvm.fabs.ftz.f(float %64) #135 %67 = call float @llvm.fabs.f32(float %64) %.09 = select i1 %.not13, float %67, float %66 %68 = fcmp ugt float %.09, 0x7FF0000000000000 br i1 %68, label %75, label %69 69: ; preds = %__nv_log1pf.exit %70 = bitcast float %64 to i32 %71 = bitcast float %a to i32 %72 = and i32 %71, -2147483648 %73 = or i32 %72, %70 %74 = bitcast i32 %73 to float br label %75 75: ; preds = %69, %__nv_log1pf.exit %t.1 = phi float [ %74, %69 ], [ %64, %__nv_log1pf.exit ] ret float %t.1 } ; Function Attrs: noinline nounwind define dso_local float @__nv_expm1f(float %a) local_unnamed_addr #29 { __nv_fabsf.exit: %0 = fmul float %a, 0x3FF7154760000000 %1 = call float @llvm.round.f32(float %0) #136 %2 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not = icmp eq i32 %2, 0 %3 = call float @llvm.nvvm.fabs.ftz.f(float %a) #135 %4 = call float @llvm.fabs.f32(float %a) %.03 = select i1 %.not, float %4, float %3 %5 = fcmp olt float %.03, 0x3FDA3D70A0000000 %t.0 = select i1 %5, float 0.000000e+00, float %1 %6 = fneg float %t.0 %7 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not1 = icmp eq i32 %7, 0 %8 = call float @llvm.nvvm.fma.rn.ftz.f(float %6, float noundef 0x3FE62E4000000000, float %a) #135 %9 = call float @llvm.fma.f32(float %6, float noundef 0x3FE62E4000000000, float %a) %.04 = select i1 %.not1, float %9, float %8 %10 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not2 = icmp eq i32 %10, 0 %11 = call float @llvm.nvvm.fma.rn.ftz.f(float %6, float noundef 0x3EB7F7D1C0000000, float %.04) #135 %12 = call float @llvm.fma.f32(float %6, float noundef 0x3EB7F7D1C0000000, float %.04) %.05 = select i1 %.not2, float %12, float %11 %13 = fcmp oeq float %t.0, 1.280000e+02 %14 = fadd float %t.0, -1.000000e+00 %j.0 = select i1 %13, float %14, float %t.0 %15 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not3 = icmp eq i32 %15, 0 %16 = call float @llvm.nvvm.fma.rn.ftz.f(float noundef 0x3F56BD7CC0000000, float %.05, float noundef 0x3F812ACC60000000) #135 %17 = call float @llvm.fma.f32(float %.05, float noundef 0x3F56BD7CC0000000, float noundef 0x3F812ACC60000000) %.07 = select i1 %.not3, float %17, float %16 %18 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not4 = icmp eq i32 %18, 0 %19 = call float @llvm.nvvm.fma.rn.ftz.f(float %.07, float %.05, float noundef 0x3FA5557C60000000) #135 %20 = call float @llvm.fma.f32(float %.07, float %.05, float noundef 0x3FA5557C60000000) %.08 = select i1 %.not4, float %20, float %19 %21 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not5 = icmp eq i32 %21, 0 %22 = call float @llvm.nvvm.fma.rn.ftz.f(float %.08, float %.05, float noundef 0x3FC5553EC0000000) #135 %23 = call float @llvm.fma.f32(float %.08, float %.05, float noundef 0x3FC5553EC0000000) %.09 = select i1 %.not5, float %23, float %22 %24 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not6 = icmp eq i32 %24, 0 %25 = call float @llvm.nvvm.fma.rn.ftz.f(float %.09, float %.05, float noundef 0x3FDFFFFFC0000000) #135 %26 = call float @llvm.fma.f32(float %.09, float %.05, float noundef 0x3FDFFFFFC0000000) %.06 = select i1 %.not6, float %26, float %25 %27 = fmul float %.05, %.06 %28 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not7 = icmp eq i32 %28, 0 %29 = call float @llvm.nvvm.fma.rn.ftz.f(float %27, float %.05, float %.05) #135 %30 = call float @llvm.fma.f32(float %27, float %.05, float %.05) %.01 = select i1 %.not7, float %30, float %29 %31 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not8 = icmp eq i32 %31, 0 br i1 %.not8, label %34, label %32 32: ; preds = %__nv_fabsf.exit %33 = call float @llvm.nvvm.ex2.approx.ftz.f(float %j.0) #135 br label %__nv_exp2f.exit 34: ; preds = %__nv_fabsf.exit %35 = call float @llvm.nvvm.ex2.approx.f(float %j.0) #135 br label %__nv_exp2f.exit __nv_exp2f.exit: ; preds = %34, %32 %.0 = phi float [ %33, %32 ], [ %35, %34 ] %36 = fadd float %.0, -1.000000e+00 %37 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not9 = icmp eq i32 %37, 0 %38 = call float @llvm.nvvm.fma.rn.ftz.f(float %.01, float %.0, float %36) #135 %39 = call float @llvm.fma.f32(float %.01, float %.0, float %36) %.02 = select i1 %.not9, float %39, float %38 %40 = select i1 %13, float %.02, float -0.000000e+00 %u.0 = fadd float %.02, %40 %41 = fcmp ogt float %j.0, 1.280000e+02 %u.1 = select i1 %41, float 0x7FF0000000000000, float %u.0 %42 = fcmp olt float %j.0, -2.500000e+01 %u.2 = select i1 %42, float -1.000000e+00, float %u.1 %43 = fcmp oeq float %a, 0.000000e+00 %44 = fadd float %a, %a %u.3 = select i1 %43, float %44, float %u.2 ret float %u.3 } ; Function Attrs: noinline nounwind define dso_local float @__nv_hypotf(float %a, float %b) local_unnamed_addr #30 { __nv_fabsf.exit: %0 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not = icmp eq i32 %0, 0 %1 = call float @llvm.nvvm.fabs.ftz.f(float %a) #135 %2 = call float @llvm.fabs.f32(float %a) %.0 = select i1 %.not, float %2, float %1 %3 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not1 = icmp eq i32 %3, 0 %4 = call float @llvm.nvvm.fabs.ftz.f(float %b) #135 %5 = call float @llvm.fabs.f32(float %b) %.01 = select i1 %.not1, float %5, float %4 %6 = bitcast float %.01 to i32 %7 = bitcast float %.0 to i32 %min.cond.not = icmp sgt i32 %6, %7 %min = select i1 %min.cond.not, i32 %7, i32 %6 %8 = bitcast i32 %min to float %max = select i1 %min.cond.not, i32 %6, i32 %7 %9 = bitcast i32 %max to float %10 = and i32 %max, -33554432 %11 = sub i32 2122317824, %10 %12 = bitcast i32 %11 to float %13 = fmul float %8, %12 %14 = fmul float %9, %12 %15 = fmul float %13, %13 %16 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not2 = icmp eq i32 %16, 0 %17 = call float @llvm.nvvm.fma.rn.ftz.f(float %14, float %14, float %15) #135 %18 = call float @llvm.fma.f32(float %14, float %14, float %15) %.03 = select i1 %.not2, float %18, float %17 %19 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not3 = icmp eq i32 %19, 0 br i1 %.not3, label %26, label %20 20: ; preds = %__nv_fabsf.exit %21 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([17 x i8], [17 x i8]* @.str.2, i32 0, i32 0)) #135 %.not5 = icmp eq i32 %21, 0 br i1 %.not5, label %24, label %22 22: ; preds = %20 %23 = call float @llvm.nvvm.sqrt.rn.ftz.f(float %.03) #135 br label %__nv_sqrtf.exit 24: ; preds = %20 %25 = call float @llvm.nvvm.sqrt.approx.ftz.f(float %.03) #135 br label %__nv_sqrtf.exit 26: ; preds = %__nv_fabsf.exit %27 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([17 x i8], [17 x i8]* @.str.2, i32 0, i32 0)) #135 %.not4 = icmp eq i32 %27, 0 br i1 %.not4, label %30, label %28 28: ; preds = %26 %29 = call float @llvm.sqrt.f32(float %.03) br label %__nv_sqrtf.exit 30: ; preds = %26 %31 = call float @llvm.nvvm.sqrt.approx.f(float %.03) #135 br label %__nv_sqrtf.exit __nv_sqrtf.exit: ; preds = %30, %28, %24, %22 %.02 = phi float [ %23, %22 ], [ %25, %24 ], [ %29, %28 ], [ %31, %30 ] %32 = or i32 %10, 8388608 %33 = bitcast i32 %32 to float %34 = fmul float %.02, %33 %35 = fcmp oeq float %8, 0.000000e+00 %res.0 = select i1 %35, float %9, float %34 %36 = fcmp oeq float %8, 0x7FF0000000000000 %res.1 = select i1 %36, float 0x7FF0000000000000, float %res.0 ret float %res.1 } ; Function Attrs: noinline nounwind define dso_local float @__nv_rhypotf(float %a, float %b) local_unnamed_addr #31 { __nv_fabsf.exit: %0 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not = icmp eq i32 %0, 0 %1 = call float @llvm.nvvm.fabs.ftz.f(float %a) #135 %2 = call float @llvm.fabs.f32(float %a) %.0 = select i1 %.not, float %2, float %1 %3 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not1 = icmp eq i32 %3, 0 %4 = call float @llvm.nvvm.fabs.ftz.f(float %b) #135 %5 = call float @llvm.fabs.f32(float %b) %.01 = select i1 %.not1, float %5, float %4 %6 = bitcast float %.01 to i32 %7 = bitcast float %.0 to i32 %min.cond.not = icmp sgt i32 %6, %7 %min = select i1 %min.cond.not, i32 %7, i32 %6 %8 = bitcast i32 %min to float %max = select i1 %min.cond.not, i32 %6, i32 %7 %9 = bitcast i32 %max to float %10 = and i32 %max, -33554432 %11 = sub i32 2122317824, %10 %12 = bitcast i32 %11 to float %13 = fmul float %8, %12 %14 = fmul float %9, %12 %15 = fmul float %13, %13 %16 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not2 = icmp eq i32 %16, 0 %17 = call float @llvm.nvvm.fma.rn.ftz.f(float %14, float %14, float %15) #135 %18 = call float @llvm.fma.f32(float %14, float %14, float %15) %.03 = select i1 %.not2, float %18, float %17 %19 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not3 = icmp eq i32 %19, 0 br i1 %.not3, label %22, label %20 20: ; preds = %__nv_fabsf.exit %21 = call float @llvm.nvvm.rsqrt.approx.ftz.f(float %.03) #135 br label %__nv_rsqrtf.exit 22: ; preds = %__nv_fabsf.exit %23 = call float @llvm.nvvm.rsqrt.approx.f(float %.03) #135 br label %__nv_rsqrtf.exit __nv_rsqrtf.exit: ; preds = %22, %20 %.02 = phi float [ %21, %20 ], [ %23, %22 ] %24 = fmul float %.02, %12 %25 = fcmp oeq float %8, 0x7FF0000000000000 %res.0 = select i1 %25, float 0.000000e+00, float %24 ret float %res.0 } ; Function Attrs: noinline nounwind define dso_local float @__nv_norm3df(float %a, float %b, float %c) local_unnamed_addr #32 { __nv_fabsf.exit: %0 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not = icmp eq i32 %0, 0 %1 = call float @llvm.nvvm.fabs.ftz.f(float %a) #135 %2 = call float @llvm.fabs.f32(float %a) %.02 = select i1 %.not, float %2, float %1 %3 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not1 = icmp eq i32 %3, 0 %4 = call float @llvm.nvvm.fabs.ftz.f(float %b) #135 %5 = call float @llvm.fabs.f32(float %b) %.04 = select i1 %.not1, float %5, float %4 %6 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not2 = icmp eq i32 %6, 0 %7 = call float @llvm.nvvm.fabs.ftz.f(float %c) #135 %8 = call float @llvm.fabs.f32(float %c) %.05 = select i1 %.not2, float %8, float %7 %9 = fadd float %.02, %.04 %10 = fadd float %9, %.05 %11 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not3 = icmp eq i32 %11, 0 %12 = call float @llvm.nvvm.fmin.ftz.f(float %.02, float %.04) #135 %13 = call float @llvm.minnum.f32(float %.02, float %.04) %.06 = select i1 %.not3, float %13, float %12 %14 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not4 = icmp eq i32 %14, 0 %15 = call float @llvm.nvvm.fmax.ftz.f(float %.02, float %.04) #135 %16 = call float @llvm.maxnum.f32(float %.02, float %.04) %.07 = select i1 %.not4, float %16, float %15 %17 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not5 = icmp eq i32 %17, 0 %18 = call float @llvm.nvvm.fmin.ftz.f(float %.07, float %.05) #135 %19 = call float @llvm.minnum.f32(float %.07, float %.05) %.08 = select i1 %.not5, float %19, float %18 %20 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not6 = icmp eq i32 %20, 0 %21 = call float @llvm.nvvm.fmax.ftz.f(float %.07, float %.05) #135 %22 = call float @llvm.maxnum.f32(float %.07, float %.05) %.09 = select i1 %.not6, float %22, float %21 %23 = bitcast float %.09 to i32 %24 = and i32 %23, -33554432 %25 = sub i32 2122317824, %24 %26 = bitcast i32 %25 to float %27 = fmul float %.08, %26 %28 = fmul float %.06, %26 %29 = fmul float %.09, %26 %30 = fmul float %27, %27 %31 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not7 = icmp eq i32 %31, 0 %32 = call float @llvm.nvvm.fma.rn.ftz.f(float %28, float %28, float %30) #135 %33 = call float @llvm.fma.f32(float %28, float %28, float %30) %.01 = select i1 %.not7, float %33, float %32 %34 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not8 = icmp eq i32 %34, 0 %35 = call float @llvm.nvvm.fma.rn.ftz.f(float %29, float %29, float %.01) #135 %36 = call float @llvm.fma.f32(float %29, float %29, float %.01) %.0 = select i1 %.not8, float %36, float %35 %37 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not9 = icmp eq i32 %37, 0 br i1 %.not9, label %44, label %38 38: ; preds = %__nv_fabsf.exit %39 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([17 x i8], [17 x i8]* @.str.2, i32 0, i32 0)) #135 %.not11 = icmp eq i32 %39, 0 br i1 %.not11, label %42, label %40 40: ; preds = %38 %41 = call float @llvm.nvvm.sqrt.rn.ftz.f(float %.0) #135 br label %__nv_sqrtf.exit 42: ; preds = %38 %43 = call float @llvm.nvvm.sqrt.approx.ftz.f(float %.0) #135 br label %__nv_sqrtf.exit 44: ; preds = %__nv_fabsf.exit %45 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([17 x i8], [17 x i8]* @.str.2, i32 0, i32 0)) #135 %.not10 = icmp eq i32 %45, 0 br i1 %.not10, label %48, label %46 46: ; preds = %44 %47 = call float @llvm.sqrt.f32(float %.0) br label %__nv_sqrtf.exit 48: ; preds = %44 %49 = call float @llvm.nvvm.sqrt.approx.f(float %.0) #135 br label %__nv_sqrtf.exit __nv_sqrtf.exit: ; preds = %48, %46, %42, %40 %.03 = phi float [ %41, %40 ], [ %43, %42 ], [ %47, %46 ], [ %49, %48 ] %50 = or i32 %24, 8388608 %51 = bitcast i32 %50 to float %52 = fmul float %.03, %51 %53 = fcmp ogt float %10, %.09 %res.0 = select i1 %53, float %52, float %10 %54 = fcmp oeq float %.09, 0x7FF0000000000000 %res.1 = select i1 %54, float 0x7FF0000000000000, float %res.0 ret float %res.1 } ; Function Attrs: noinline nounwind define dso_local float @__nv_rnorm3df(float %a, float %b, float %c) local_unnamed_addr #33 { __nv_fabsf.exit: %0 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not = icmp eq i32 %0, 0 %1 = call float @llvm.nvvm.fabs.ftz.f(float %a) #135 %2 = call float @llvm.fabs.f32(float %a) %.02 = select i1 %.not, float %2, float %1 %3 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not1 = icmp eq i32 %3, 0 %4 = call float @llvm.nvvm.fabs.ftz.f(float %b) #135 %5 = call float @llvm.fabs.f32(float %b) %.03 = select i1 %.not1, float %5, float %4 %6 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not2 = icmp eq i32 %6, 0 %7 = call float @llvm.nvvm.fabs.ftz.f(float %c) #135 %8 = call float @llvm.fabs.f32(float %c) %.04 = select i1 %.not2, float %8, float %7 %9 = fadd float %.02, %.03 %10 = fadd float %9, %.04 %11 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not3 = icmp eq i32 %11, 0 %12 = call float @llvm.nvvm.fmin.ftz.f(float %.02, float %.03) #135 %13 = call float @llvm.minnum.f32(float %.02, float %.03) %.05 = select i1 %.not3, float %13, float %12 %14 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not4 = icmp eq i32 %14, 0 %15 = call float @llvm.nvvm.fmax.ftz.f(float %.02, float %.03) #135 %16 = call float @llvm.maxnum.f32(float %.02, float %.03) %.06 = select i1 %.not4, float %16, float %15 %17 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not5 = icmp eq i32 %17, 0 %18 = call float @llvm.nvvm.fmin.ftz.f(float %.06, float %.04) #135 %19 = call float @llvm.minnum.f32(float %.06, float %.04) %.08 = select i1 %.not5, float %19, float %18 %20 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not6 = icmp eq i32 %20, 0 %21 = call float @llvm.nvvm.fmax.ftz.f(float %.06, float %.04) #135 %22 = call float @llvm.maxnum.f32(float %.06, float %.04) %.09 = select i1 %.not6, float %22, float %21 %23 = bitcast float %.09 to i32 %24 = and i32 %23, -33554432 %25 = sub i32 2122317824, %24 %26 = bitcast i32 %25 to float %27 = fmul float %.08, %26 %28 = fmul float %.05, %26 %29 = fmul float %.09, %26 %30 = fmul float %27, %27 %31 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not7 = icmp eq i32 %31, 0 %32 = call float @llvm.nvvm.fma.rn.ftz.f(float %28, float %28, float %30) #135 %33 = call float @llvm.fma.f32(float %28, float %28, float %30) %.01 = select i1 %.not7, float %33, float %32 %34 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not8 = icmp eq i32 %34, 0 %35 = call float @llvm.nvvm.fma.rn.ftz.f(float %29, float %29, float %.01) #135 %36 = call float @llvm.fma.f32(float %29, float %29, float %.01) %.0 = select i1 %.not8, float %36, float %35 %37 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not9 = icmp eq i32 %37, 0 br i1 %.not9, label %40, label %38 38: ; preds = %__nv_fabsf.exit %39 = call float @llvm.nvvm.rsqrt.approx.ftz.f(float %.0) #135 br label %__nv_rsqrtf.exit 40: ; preds = %__nv_fabsf.exit %41 = call float @llvm.nvvm.rsqrt.approx.f(float %.0) #135 br label %__nv_rsqrtf.exit __nv_rsqrtf.exit: ; preds = %40, %38 %.07 = phi float [ %39, %38 ], [ %41, %40 ] %42 = fmul float %.07, %26 %43 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not10 = icmp eq i32 %43, 0 %44 = call float @llvm.nvvm.fabs.ftz.f(float %10) #135 %45 = call float @llvm.fabs.f32(float %10) %.010 = select i1 %.not10, float %45, float %44 %46 = fcmp ugt float %.010, 0x7FF0000000000000 %res.0 = select i1 %46, float %10, float %42 %47 = fcmp oeq float %.09, 0x7FF0000000000000 %res.1 = select i1 %47, float 0.000000e+00, float %res.0 ret float %res.1 } ; Function Attrs: noinline nounwind define dso_local float @__nv_norm4df(float %a, float %b, float %c, float %d) local_unnamed_addr #34 { __nv_fabsf.exit: %0 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not = icmp eq i32 %0, 0 %1 = call float @llvm.nvvm.fabs.ftz.f(float %a) #135 %2 = call float @llvm.fabs.f32(float %a) %.02 = select i1 %.not, float %2, float %1 %3 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not1 = icmp eq i32 %3, 0 %4 = call float @llvm.nvvm.fabs.ftz.f(float %b) #135 %5 = call float @llvm.fabs.f32(float %b) %.03 = select i1 %.not1, float %5, float %4 %6 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not2 = icmp eq i32 %6, 0 %7 = call float @llvm.nvvm.fabs.ftz.f(float %c) #135 %8 = call float @llvm.fabs.f32(float %c) %.04 = select i1 %.not2, float %8, float %7 %9 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not3 = icmp eq i32 %9, 0 %10 = call float @llvm.nvvm.fabs.ftz.f(float %d) #135 %11 = call float @llvm.fabs.f32(float %d) %.06 = select i1 %.not3, float %11, float %10 %12 = fadd float %.02, %.03 %13 = fadd float %12, %.06 %14 = fadd float %.04, %13 %15 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not4 = icmp eq i32 %15, 0 %16 = call float @llvm.nvvm.fmin.ftz.f(float %.02, float %.03) #135 %17 = call float @llvm.minnum.f32(float %.02, float %.03) %.07 = select i1 %.not4, float %17, float %16 %18 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not5 = icmp eq i32 %18, 0 %19 = call float @llvm.nvvm.fmax.ftz.f(float %.02, float %.03) #135 %20 = call float @llvm.maxnum.f32(float %.02, float %.03) %.08 = select i1 %.not5, float %20, float %19 %21 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not6 = icmp eq i32 %21, 0 %22 = call float @llvm.nvvm.fmin.ftz.f(float %.08, float %.04) #135 %23 = call float @llvm.minnum.f32(float %.08, float %.04) %.09 = select i1 %.not6, float %23, float %22 %24 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not7 = icmp eq i32 %24, 0 %25 = call float @llvm.nvvm.fmax.ftz.f(float %.08, float %.04) #135 %26 = call float @llvm.maxnum.f32(float %.08, float %.04) %.010 = select i1 %.not7, float %26, float %25 %27 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not8 = icmp eq i32 %27, 0 %28 = call float @llvm.nvvm.fmin.ftz.f(float %.010, float %.06) #135 %29 = call float @llvm.minnum.f32(float %.010, float %.06) %.011 = select i1 %.not8, float %29, float %28 %30 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not9 = icmp eq i32 %30, 0 %31 = call float @llvm.nvvm.fmax.ftz.f(float %.010, float %.06) #135 %32 = call float @llvm.maxnum.f32(float %.010, float %.06) %.012 = select i1 %.not9, float %32, float %31 %33 = bitcast float %.012 to i32 %34 = and i32 %33, -33554432 %35 = sub i32 2122317824, %34 %36 = bitcast i32 %35 to float %37 = fmul float %.011, %36 %38 = fmul float %.09, %36 %39 = fmul float %.07, %36 %40 = fmul float %.012, %36 %41 = fmul float %37, %37 %42 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not10 = icmp eq i32 %42, 0 %43 = call float @llvm.nvvm.fma.rn.ftz.f(float %38, float %38, float %41) #135 %44 = call float @llvm.fma.f32(float %38, float %38, float %41) %.05 = select i1 %.not10, float %44, float %43 %45 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not11 = icmp eq i32 %45, 0 %46 = call float @llvm.nvvm.fma.rn.ftz.f(float %39, float %39, float %.05) #135 %47 = call float @llvm.fma.f32(float %39, float %39, float %.05) %.01 = select i1 %.not11, float %47, float %46 %48 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not12 = icmp eq i32 %48, 0 %49 = call float @llvm.nvvm.fma.rn.ftz.f(float %40, float %40, float %.01) #135 %50 = call float @llvm.fma.f32(float %40, float %40, float %.01) %.0 = select i1 %.not12, float %50, float %49 %51 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not13 = icmp eq i32 %51, 0 br i1 %.not13, label %58, label %52 52: ; preds = %__nv_fabsf.exit %53 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([17 x i8], [17 x i8]* @.str.2, i32 0, i32 0)) #135 %.not15 = icmp eq i32 %53, 0 br i1 %.not15, label %56, label %54 54: ; preds = %52 %55 = call float @llvm.nvvm.sqrt.rn.ftz.f(float %.0) #135 br label %__nv_sqrtf.exit 56: ; preds = %52 %57 = call float @llvm.nvvm.sqrt.approx.ftz.f(float %.0) #135 br label %__nv_sqrtf.exit 58: ; preds = %__nv_fabsf.exit %59 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([17 x i8], [17 x i8]* @.str.2, i32 0, i32 0)) #135 %.not14 = icmp eq i32 %59, 0 br i1 %.not14, label %62, label %60 60: ; preds = %58 %61 = call float @llvm.sqrt.f32(float %.0) br label %__nv_sqrtf.exit 62: ; preds = %58 %63 = call float @llvm.nvvm.sqrt.approx.f(float %.0) #135 br label %__nv_sqrtf.exit __nv_sqrtf.exit: ; preds = %62, %60, %56, %54 %.013 = phi float [ %55, %54 ], [ %57, %56 ], [ %61, %60 ], [ %63, %62 ] %64 = or i32 %34, 8388608 %65 = bitcast i32 %64 to float %66 = fmul float %.013, %65 %67 = fcmp ogt float %14, %.012 %res.0 = select i1 %67, float %66, float %14 %68 = fcmp oeq float %.012, 0x7FF0000000000000 %res.1 = select i1 %68, float 0x7FF0000000000000, float %res.0 ret float %res.1 } ; Function Attrs: noinline nounwind define dso_local float @__nv_rnorm4df(float %a, float %b, float %c, float %d) local_unnamed_addr #35 { __nv_fabsf.exit: %0 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not = icmp eq i32 %0, 0 %1 = call float @llvm.nvvm.fabs.ftz.f(float %a) #135 %2 = call float @llvm.fabs.f32(float %a) %.04 = select i1 %.not, float %2, float %1 %3 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not1 = icmp eq i32 %3, 0 %4 = call float @llvm.nvvm.fabs.ftz.f(float %b) #135 %5 = call float @llvm.fabs.f32(float %b) %.05 = select i1 %.not1, float %5, float %4 %6 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not2 = icmp eq i32 %6, 0 %7 = call float @llvm.nvvm.fabs.ftz.f(float %c) #135 %8 = call float @llvm.fabs.f32(float %c) %.06 = select i1 %.not2, float %8, float %7 %9 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not3 = icmp eq i32 %9, 0 %10 = call float @llvm.nvvm.fabs.ftz.f(float %d) #135 %11 = call float @llvm.fabs.f32(float %d) %.07 = select i1 %.not3, float %11, float %10 %12 = fadd float %.04, %.05 %13 = fadd float %12, %.07 %14 = fadd float %.06, %13 %15 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not4 = icmp eq i32 %15, 0 %16 = call float @llvm.nvvm.fmin.ftz.f(float %.04, float %.05) #135 %17 = call float @llvm.minnum.f32(float %.04, float %.05) %.08 = select i1 %.not4, float %17, float %16 %18 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not5 = icmp eq i32 %18, 0 %19 = call float @llvm.nvvm.fmax.ftz.f(float %.04, float %.05) #135 %20 = call float @llvm.maxnum.f32(float %.04, float %.05) %.010 = select i1 %.not5, float %20, float %19 %21 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not6 = icmp eq i32 %21, 0 %22 = call float @llvm.nvvm.fmin.ftz.f(float %.010, float %.06) #135 %23 = call float @llvm.minnum.f32(float %.010, float %.06) %.011 = select i1 %.not6, float %23, float %22 %24 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not7 = icmp eq i32 %24, 0 %25 = call float @llvm.nvvm.fmax.ftz.f(float %.010, float %.06) #135 %26 = call float @llvm.maxnum.f32(float %.010, float %.06) %.012 = select i1 %.not7, float %26, float %25 %27 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not8 = icmp eq i32 %27, 0 %28 = call float @llvm.nvvm.fmin.ftz.f(float %.012, float %.07) #135 %29 = call float @llvm.minnum.f32(float %.012, float %.07) %.013 = select i1 %.not8, float %29, float %28 %30 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not9 = icmp eq i32 %30, 0 %31 = call float @llvm.nvvm.fmax.ftz.f(float %.012, float %.07) #135 %32 = call float @llvm.maxnum.f32(float %.012, float %.07) %.014 = select i1 %.not9, float %32, float %31 %33 = bitcast float %.014 to i32 %34 = and i32 %33, -33554432 %35 = sub i32 2122317824, %34 %36 = bitcast i32 %35 to float %37 = fmul float %.013, %36 %38 = fmul float %.011, %36 %39 = fmul float %.08, %36 %40 = fmul float %.014, %36 %41 = fmul float %37, %37 %42 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not10 = icmp eq i32 %42, 0 %43 = call float @llvm.nvvm.fma.rn.ftz.f(float %38, float %38, float %41) #135 %44 = call float @llvm.fma.f32(float %38, float %38, float %41) %.02 = select i1 %.not10, float %44, float %43 %45 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not11 = icmp eq i32 %45, 0 %46 = call float @llvm.nvvm.fma.rn.ftz.f(float %39, float %39, float %.02) #135 %47 = call float @llvm.fma.f32(float %39, float %39, float %.02) %.01 = select i1 %.not11, float %47, float %46 %48 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not12 = icmp eq i32 %48, 0 %49 = call float @llvm.nvvm.fma.rn.ftz.f(float %40, float %40, float %.01) #135 %50 = call float @llvm.fma.f32(float %40, float %40, float %.01) %.0 = select i1 %.not12, float %50, float %49 %51 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not13 = icmp eq i32 %51, 0 br i1 %.not13, label %54, label %52 52: ; preds = %__nv_fabsf.exit %53 = call float @llvm.nvvm.rsqrt.approx.ftz.f(float %.0) #135 br label %__nv_rsqrtf.exit 54: ; preds = %__nv_fabsf.exit %55 = call float @llvm.nvvm.rsqrt.approx.f(float %.0) #135 br label %__nv_rsqrtf.exit __nv_rsqrtf.exit: ; preds = %54, %52 %.03 = phi float [ %53, %52 ], [ %55, %54 ] %56 = fmul float %.03, %36 %57 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not14 = icmp eq i32 %57, 0 %58 = call float @llvm.nvvm.fabs.ftz.f(float %14) #135 %59 = call float @llvm.fabs.f32(float %14) %.09 = select i1 %.not14, float %59, float %58 %60 = fcmp ugt float %.09, 0x7FF0000000000000 %res.0 = select i1 %60, float %14, float %56 %61 = fcmp oeq float %.014, 0x7FF0000000000000 %res.1 = select i1 %61, float 0.000000e+00, float %res.0 ret float %res.1 } ; Function Attrs: noinline nounwind define dso_local float @__nv_normf(i32 %dim, float* nocapture nofree noundef nonnull readonly align 4 dereferenceable(4) %t) local_unnamed_addr #36 { __nv_fabsf.exit: %0 = load float, float* %t, align 4 %1 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not = icmp eq i32 %1, 0 %2 = call float @llvm.nvvm.fabs.ftz.f(float %0) #135 %3 = call float @llvm.fabs.f32(float %0) %.02 = select i1 %.not, float %3, float %2 %4 = icmp sgt i32 %dim, 1 br i1 %4, label %__nv_fabsf.exit1.lr.ph, label %._crit_edge __nv_fabsf.exit1.lr.ph: ; preds = %__nv_fabsf.exit %5 = add nsw i32 %dim, -1 %xtraiter = and i32 %5, 1 %6 = icmp eq i32 %dim, 2 br i1 %6, label %._crit_edge.unr-lcssa, label %__nv_fabsf.exit1.lr.ph.new __nv_fabsf.exit1.lr.ph.new: ; preds = %__nv_fabsf.exit1.lr.ph %unroll_iter = and i32 %5, -2 br label %__nv_fabsf.exit1 __nv_fabsf.exit1: ; preds = %__nv_fabsf.exit1, %__nv_fabsf.exit1.lr.ph.new %i.015 = phi i32 [ 1, %__nv_fabsf.exit1.lr.ph.new ], [ %24, %__nv_fabsf.exit1 ] %largest.014 = phi float [ %.02, %__nv_fabsf.exit1.lr.ph.new ], [ %.05.1, %__nv_fabsf.exit1 ] %niter = phi i32 [ 0, %__nv_fabsf.exit1.lr.ph.new ], [ %niter.next.1, %__nv_fabsf.exit1 ] %7 = getelementptr inbounds float, float* %t, i32 %i.015 %8 = load float, float* %7, align 4 %9 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not9 = icmp eq i32 %9, 0 %10 = call float @llvm.nvvm.fabs.ftz.f(float %8) #135 %11 = call float @llvm.fabs.f32(float %8) %.04 = select i1 %.not9, float %11, float %10 %12 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not10 = icmp eq i32 %12, 0 %13 = call float @llvm.nvvm.fmax.ftz.f(float %.04, float %largest.014) #135 %14 = call float @llvm.maxnum.f32(float %.04, float %largest.014) %.05 = select i1 %.not10, float %14, float %13 %15 = add nuw nsw i32 %i.015, 1 %16 = getelementptr inbounds float, float* %t, i32 %15 %17 = load float, float* %16, align 4 %18 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not9.1 = icmp eq i32 %18, 0 %19 = call float @llvm.nvvm.fabs.ftz.f(float %17) #135 %20 = call float @llvm.fabs.f32(float %17) %.04.1 = select i1 %.not9.1, float %20, float %19 %21 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not10.1 = icmp eq i32 %21, 0 %22 = call float @llvm.nvvm.fmax.ftz.f(float %.04.1, float %.05) #135 %23 = call float @llvm.maxnum.f32(float %.04.1, float %.05) %.05.1 = select i1 %.not10.1, float %23, float %22 %24 = add nuw nsw i32 %i.015, 2 %niter.next.1 = add i32 %niter, 2 %niter.ncmp.1.not = icmp eq i32 %niter.next.1, %unroll_iter br i1 %niter.ncmp.1.not, label %._crit_edge.unr-lcssa.loopexit, label %__nv_fabsf.exit1 ._crit_edge.unr-lcssa.loopexit: ; preds = %__nv_fabsf.exit1 %25 = or i32 %5, 1 br label %._crit_edge.unr-lcssa ._crit_edge.unr-lcssa: ; preds = %._crit_edge.unr-lcssa.loopexit, %__nv_fabsf.exit1.lr.ph %.05.lcssa.ph = phi float [ undef, %__nv_fabsf.exit1.lr.ph ], [ %.05.1, %._crit_edge.unr-lcssa.loopexit ] %i.015.unr = phi i32 [ 1, %__nv_fabsf.exit1.lr.ph ], [ %25, %._crit_edge.unr-lcssa.loopexit ] %largest.014.unr = phi float [ %.02, %__nv_fabsf.exit1.lr.ph ], [ %.05.1, %._crit_edge.unr-lcssa.loopexit ] %lcmp.mod.not = icmp eq i32 %xtraiter, 0 br i1 %lcmp.mod.not, label %._crit_edge, label %__nv_fabsf.exit1.epil.preheader __nv_fabsf.exit1.epil.preheader: ; preds = %._crit_edge.unr-lcssa %26 = getelementptr inbounds float, float* %t, i32 %i.015.unr %27 = load float, float* %26, align 4 %28 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not9.epil = icmp eq i32 %28, 0 %29 = call float @llvm.nvvm.fabs.ftz.f(float %27) #135 %30 = call float @llvm.fabs.f32(float %27) %.04.epil = select i1 %.not9.epil, float %30, float %29 %31 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not10.epil = icmp eq i32 %31, 0 %32 = call float @llvm.nvvm.fmax.ftz.f(float %.04.epil, float %largest.014.unr) #135 %33 = call float @llvm.maxnum.f32(float %.04.epil, float %largest.014.unr) %.05.epil = select i1 %.not10.epil, float %33, float %32 br label %._crit_edge ._crit_edge: ; preds = %__nv_fabsf.exit1.epil.preheader, %._crit_edge.unr-lcssa, %__nv_fabsf.exit %largest.0.lcssa = phi float [ %.02, %__nv_fabsf.exit ], [ %.05.lcssa.ph, %._crit_edge.unr-lcssa ], [ %.05.epil, %__nv_fabsf.exit1.epil.preheader ] %34 = bitcast float %largest.0.lcssa to i32 %35 = and i32 %34, -33554432 %36 = sub i32 2122317824, %35 %37 = bitcast i32 %36 to float %38 = fmul float %largest.0.lcssa, %37 %39 = icmp sgt i32 %dim, 0 br i1 %39, label %__nv_fabsf.exit5, label %__nv_fmaf_rn.exit6 __nv_fabsf.exit5: ; preds = %._crit_edge, %52 %j.013 = phi i32 [ %j.1, %52 ], [ 0, %._crit_edge ] %i.112 = phi i32 [ %53, %52 ], [ 0, %._crit_edge ] %res0.011 = phi float [ %res0.1, %52 ], [ 0.000000e+00, %._crit_edge ] %40 = getelementptr inbounds float, float* %t, i32 %i.112 %41 = load float, float* %40, align 4 %42 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not7 = icmp eq i32 %42, 0 %43 = call float @llvm.nvvm.fabs.ftz.f(float %41) #135 %44 = call float @llvm.fabs.f32(float %41) %.03 = select i1 %.not7, float %44, float %43 %45 = fmul float %.03, %37 %46 = fcmp une float %45, %38 %47 = icmp ne i32 %i.112, %j.013 %or.cond = select i1 %46, i1 true, i1 %47 br i1 %or.cond, label %__nv_fmaf_rn.exit, label %52 __nv_fmaf_rn.exit: ; preds = %__nv_fabsf.exit5 %48 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not8 = icmp eq i32 %48, 0 %49 = call float @llvm.nvvm.fma.rn.ftz.f(float %45, float %45, float %res0.011) #135 %50 = call float @llvm.fma.f32(float %45, float %45, float %res0.011) %.01 = select i1 %.not8, float %50, float %49 %51 = add nsw i32 %j.013, 1 br label %52 52: ; preds = %__nv_fmaf_rn.exit, %__nv_fabsf.exit5 %res0.1 = phi float [ %.01, %__nv_fmaf_rn.exit ], [ %res0.011, %__nv_fabsf.exit5 ] %j.1 = phi i32 [ %51, %__nv_fmaf_rn.exit ], [ %j.013, %__nv_fabsf.exit5 ] %53 = add nuw nsw i32 %i.112, 1 %exitcond.not = icmp eq i32 %53, %dim br i1 %exitcond.not, label %__nv_fmaf_rn.exit6, label %__nv_fabsf.exit5 __nv_fmaf_rn.exit6: ; preds = %52, %._crit_edge %res0.0.lcssa = phi float [ 0.000000e+00, %._crit_edge ], [ %res0.1, %52 ] %54 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not3 = icmp eq i32 %54, 0 %55 = call float @llvm.nvvm.fma.rn.ftz.f(float %38, float %38, float %res0.0.lcssa) #135 %56 = call float @llvm.fma.f32(float %38, float %38, float %res0.0.lcssa) %.0 = select i1 %.not3, float %56, float %55 %57 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not4 = icmp eq i32 %57, 0 br i1 %.not4, label %64, label %58 58: ; preds = %__nv_fmaf_rn.exit6 %59 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([17 x i8], [17 x i8]* @.str.2, i32 0, i32 0)) #135 %.not6 = icmp eq i32 %59, 0 br i1 %.not6, label %62, label %60 60: ; preds = %58 %61 = call float @llvm.nvvm.sqrt.rn.ftz.f(float %.0) #135 br label %__nv_sqrtf.exit 62: ; preds = %58 %63 = call float @llvm.nvvm.sqrt.approx.ftz.f(float %.0) #135 br label %__nv_sqrtf.exit 64: ; preds = %__nv_fmaf_rn.exit6 %65 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([17 x i8], [17 x i8]* @.str.2, i32 0, i32 0)) #135 %.not5 = icmp eq i32 %65, 0 br i1 %.not5, label %68, label %66 66: ; preds = %64 %67 = call float @llvm.sqrt.f32(float %.0) br label %__nv_sqrtf.exit 68: ; preds = %64 %69 = call float @llvm.nvvm.sqrt.approx.f(float %.0) #135 br label %__nv_sqrtf.exit __nv_sqrtf.exit: ; preds = %68, %66, %62, %60 %.06 = phi float [ %61, %60 ], [ %63, %62 ], [ %67, %66 ], [ %69, %68 ] %70 = or i32 %35, 8388608 %71 = bitcast i32 %70 to float %72 = fmul float %.06, %71 %73 = fcmp oeq float %res0.0.lcssa, 0.000000e+00 %74 = fcmp oeq float %largest.0.lcssa, 0x7FF0000000000000 %or.cond2 = select i1 %73, i1 true, i1 %74 %res.0 = select i1 %or.cond2, float %largest.0.lcssa, float %72 ret float %res.0 } ; Function Attrs: noinline nounwind define dso_local float @__nv_rnormf(i32 %dim, float* nocapture nofree noundef nonnull readonly align 4 dereferenceable(4) %t) local_unnamed_addr #37 { __nv_fabsf.exit: %0 = load float, float* %t, align 4 %1 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not = icmp eq i32 %1, 0 %2 = call float @llvm.nvvm.fabs.ftz.f(float %0) #135 %3 = call float @llvm.fabs.f32(float %0) %.03 = select i1 %.not, float %3, float %2 %4 = icmp sgt i32 %dim, 1 br i1 %4, label %__nv_fabsf.exit1.lr.ph, label %._crit_edge __nv_fabsf.exit1.lr.ph: ; preds = %__nv_fabsf.exit %5 = add nsw i32 %dim, -1 %xtraiter = and i32 %5, 1 %6 = icmp eq i32 %dim, 2 br i1 %6, label %._crit_edge.unr-lcssa, label %__nv_fabsf.exit1.lr.ph.new __nv_fabsf.exit1.lr.ph.new: ; preds = %__nv_fabsf.exit1.lr.ph %unroll_iter = and i32 %5, -2 br label %__nv_fabsf.exit1 __nv_fabsf.exit1: ; preds = %__nv_fabsf.exit1, %__nv_fabsf.exit1.lr.ph.new %i.011 = phi i32 [ 1, %__nv_fabsf.exit1.lr.ph.new ], [ %24, %__nv_fabsf.exit1 ] %largest.010 = phi float [ %.03, %__nv_fabsf.exit1.lr.ph.new ], [ %.05.1, %__nv_fabsf.exit1 ] %niter = phi i32 [ 0, %__nv_fabsf.exit1.lr.ph.new ], [ %niter.next.1, %__nv_fabsf.exit1 ] %7 = getelementptr inbounds float, float* %t, i32 %i.011 %8 = load float, float* %7, align 4 %9 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not5 = icmp eq i32 %9, 0 %10 = call float @llvm.nvvm.fabs.ftz.f(float %8) #135 %11 = call float @llvm.fabs.f32(float %8) %.04 = select i1 %.not5, float %11, float %10 %12 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not6 = icmp eq i32 %12, 0 %13 = call float @llvm.nvvm.fmax.ftz.f(float %.04, float %largest.010) #135 %14 = call float @llvm.maxnum.f32(float %.04, float %largest.010) %.05 = select i1 %.not6, float %14, float %13 %15 = add nuw nsw i32 %i.011, 1 %16 = getelementptr inbounds float, float* %t, i32 %15 %17 = load float, float* %16, align 4 %18 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not5.1 = icmp eq i32 %18, 0 %19 = call float @llvm.nvvm.fabs.ftz.f(float %17) #135 %20 = call float @llvm.fabs.f32(float %17) %.04.1 = select i1 %.not5.1, float %20, float %19 %21 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not6.1 = icmp eq i32 %21, 0 %22 = call float @llvm.nvvm.fmax.ftz.f(float %.04.1, float %.05) #135 %23 = call float @llvm.maxnum.f32(float %.04.1, float %.05) %.05.1 = select i1 %.not6.1, float %23, float %22 %24 = add nuw nsw i32 %i.011, 2 %niter.next.1 = add i32 %niter, 2 %niter.ncmp.1.not = icmp eq i32 %niter.next.1, %unroll_iter br i1 %niter.ncmp.1.not, label %._crit_edge.unr-lcssa.loopexit, label %__nv_fabsf.exit1 ._crit_edge.unr-lcssa.loopexit: ; preds = %__nv_fabsf.exit1 %25 = or i32 %5, 1 br label %._crit_edge.unr-lcssa ._crit_edge.unr-lcssa: ; preds = %._crit_edge.unr-lcssa.loopexit, %__nv_fabsf.exit1.lr.ph %.05.lcssa.ph = phi float [ undef, %__nv_fabsf.exit1.lr.ph ], [ %.05.1, %._crit_edge.unr-lcssa.loopexit ] %i.011.unr = phi i32 [ 1, %__nv_fabsf.exit1.lr.ph ], [ %25, %._crit_edge.unr-lcssa.loopexit ] %largest.010.unr = phi float [ %.03, %__nv_fabsf.exit1.lr.ph ], [ %.05.1, %._crit_edge.unr-lcssa.loopexit ] %lcmp.mod.not = icmp eq i32 %xtraiter, 0 br i1 %lcmp.mod.not, label %._crit_edge, label %__nv_fabsf.exit1.epil.preheader __nv_fabsf.exit1.epil.preheader: ; preds = %._crit_edge.unr-lcssa %26 = getelementptr inbounds float, float* %t, i32 %i.011.unr %27 = load float, float* %26, align 4 %28 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not5.epil = icmp eq i32 %28, 0 %29 = call float @llvm.nvvm.fabs.ftz.f(float %27) #135 %30 = call float @llvm.fabs.f32(float %27) %.04.epil = select i1 %.not5.epil, float %30, float %29 %31 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not6.epil = icmp eq i32 %31, 0 %32 = call float @llvm.nvvm.fmax.ftz.f(float %.04.epil, float %largest.010.unr) #135 %33 = call float @llvm.maxnum.f32(float %.04.epil, float %largest.010.unr) %.05.epil = select i1 %.not6.epil, float %33, float %32 br label %._crit_edge ._crit_edge: ; preds = %__nv_fabsf.exit1.epil.preheader, %._crit_edge.unr-lcssa, %__nv_fabsf.exit %largest.0.lcssa = phi float [ %.03, %__nv_fabsf.exit ], [ %.05.lcssa.ph, %._crit_edge.unr-lcssa ], [ %.05.epil, %__nv_fabsf.exit1.epil.preheader ] %34 = bitcast float %largest.0.lcssa to i32 %35 = and i32 %34, -33554432 %36 = sub i32 2122317824, %35 %37 = bitcast i32 %36 to float %38 = fmul float %largest.0.lcssa, %37 %39 = icmp sgt i32 %dim, 0 br i1 %39, label %__nv_fabsf.exit4, label %__nv_fmaf_rn.exit __nv_fabsf.exit4: ; preds = %._crit_edge, %52 %j.09 = phi i32 [ %j.1, %52 ], [ 0, %._crit_edge ] %i.18 = phi i32 [ %53, %52 ], [ 0, %._crit_edge ] %res0.07 = phi float [ %res0.1, %52 ], [ 0.000000e+00, %._crit_edge ] %40 = getelementptr inbounds float, float* %t, i32 %i.18 %41 = load float, float* %40, align 4 %42 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not3 = icmp eq i32 %42, 0 %43 = call float @llvm.nvvm.fabs.ftz.f(float %41) #135 %44 = call float @llvm.fabs.f32(float %41) %.01 = select i1 %.not3, float %44, float %43 %45 = fmul float %.01, %37 %46 = fcmp une float %45, %38 %47 = icmp ne i32 %i.18, %j.09 %or.cond = select i1 %46, i1 true, i1 %47 br i1 %or.cond, label %__nv_fmaf_rn.exit5, label %52 __nv_fmaf_rn.exit5: ; preds = %__nv_fabsf.exit4 %48 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not4 = icmp eq i32 %48, 0 %49 = call float @llvm.nvvm.fma.rn.ftz.f(float %45, float %45, float %res0.07) #135 %50 = call float @llvm.fma.f32(float %45, float %45, float %res0.07) %.0 = select i1 %.not4, float %50, float %49 %51 = add nsw i32 %j.09, 1 br label %52 52: ; preds = %__nv_fmaf_rn.exit5, %__nv_fabsf.exit4 %res0.1 = phi float [ %.0, %__nv_fmaf_rn.exit5 ], [ %res0.07, %__nv_fabsf.exit4 ] %j.1 = phi i32 [ %51, %__nv_fmaf_rn.exit5 ], [ %j.09, %__nv_fabsf.exit4 ] %53 = add nuw nsw i32 %i.18, 1 %exitcond.not = icmp eq i32 %53, %dim br i1 %exitcond.not, label %__nv_fmaf_rn.exit, label %__nv_fabsf.exit4 __nv_fmaf_rn.exit: ; preds = %52, %._crit_edge %res0.0.lcssa = phi float [ 0.000000e+00, %._crit_edge ], [ %res0.1, %52 ] %54 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not1 = icmp eq i32 %54, 0 %55 = call float @llvm.nvvm.fma.rn.ftz.f(float %38, float %38, float %res0.0.lcssa) #135 %56 = call float @llvm.fma.f32(float %38, float %38, float %res0.0.lcssa) %.02 = select i1 %.not1, float %56, float %55 %57 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not2 = icmp eq i32 %57, 0 br i1 %.not2, label %60, label %58 58: ; preds = %__nv_fmaf_rn.exit %59 = call float @llvm.nvvm.rsqrt.approx.ftz.f(float %.02) #135 br label %__nv_rsqrtf.exit 60: ; preds = %__nv_fmaf_rn.exit %61 = call float @llvm.nvvm.rsqrt.approx.f(float %.02) #135 br label %__nv_rsqrtf.exit __nv_rsqrtf.exit: ; preds = %60, %58 %.06 = phi float [ %59, %58 ], [ %61, %60 ] %62 = fmul float %.06, %37 %63 = fcmp oeq float %largest.0.lcssa, 0x7FF0000000000000 %res.0 = select i1 %63, float 0.000000e+00, float %62 ret float %res.0 } ; Function Attrs: noinline nounwind define dso_local float @__nv_cbrtf(float %a) local_unnamed_addr #38 { __nv_fabsf.exit: %0 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not = icmp eq i32 %0, 0 %1 = call float @llvm.nvvm.fabs.ftz.f(float %a) #135 %2 = call float @llvm.fabs.f32(float %a) %.01 = select i1 %.not, float %2, float %1 %3 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not1 = icmp eq i32 %3, 0 br i1 %.not1, label %6, label %4 4: ; preds = %__nv_fabsf.exit %5 = call float @llvm.nvvm.lg2.approx.ftz.f(float %.01) #135 br label %__nv_fast_log2f.exit 6: ; preds = %__nv_fabsf.exit %7 = call float @llvm.nvvm.lg2.approx.f(float %.01) #135 br label %__nv_fast_log2f.exit __nv_fast_log2f.exit: ; preds = %6, %4 %.02 = phi float [ %5, %4 ], [ %7, %6 ] %8 = fmul float %.02, 0x3FD5555560000000 %9 = call float @llvm.nvvm.ex2.approx.ftz.f(float %8) #135 %10 = fmul float %9, %9 %11 = call float asm "rcp.approx.ftz.f32 $0,$1;", "=f,f"(float %10) #137, !srcloc !225 %12 = fneg float %.01 %13 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not2 = icmp eq i32 %13, 0 %14 = call float @llvm.nvvm.fma.rn.ftz.f(float %11, float %12, float %9) #135 %15 = call float @llvm.fma.f32(float %11, float %12, float %9) %.0 = select i1 %.not2, float %15, float %14 %16 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not3 = icmp eq i32 %16, 0 %17 = call float @llvm.nvvm.fma.rn.ftz.f(float %.0, float noundef 0xBFD5555560000000, float %9) #135 %18 = call float @llvm.fma.f32(float %.0, float noundef 0xBFD5555560000000, float %9) %.03 = select i1 %.not3, float %18, float %17 %19 = fcmp olt float %a, 0.000000e+00 %20 = fneg float %.03 %t.0 = select i1 %19, float %20, float %.03 %21 = fadd float %a, %a %22 = fcmp oeq float %21, %a %t.1 = select i1 %22, float %21, float %t.0 ret float %t.1 } ; Function Attrs: noinline nounwind define dso_local float @__nv_rcbrtf(float %a) local_unnamed_addr #39 { __nv_fabsf.exit: %0 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not = icmp eq i32 %0, 0 %1 = call float @llvm.nvvm.fabs.ftz.f(float %a) #135 %2 = call float @llvm.fabs.f32(float %a) %.01 = select i1 %.not, float %2, float %1 %3 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not1 = icmp eq i32 %3, 0 br i1 %.not1, label %6, label %4 4: ; preds = %__nv_fabsf.exit %5 = call float @llvm.nvvm.lg2.approx.ftz.f(float %.01) #135 br label %__nv_fast_log2f.exit 6: ; preds = %__nv_fabsf.exit %7 = call float @llvm.nvvm.lg2.approx.f(float %.01) #135 br label %__nv_fast_log2f.exit __nv_fast_log2f.exit: ; preds = %6, %4 %.02 = phi float [ %5, %4 ], [ %7, %6 ] %8 = fmul float %.02, 0xBFD5555560000000 %9 = call float @llvm.nvvm.ex2.approx.ftz.f(float %8) #135 %10 = fmul float %9, %9 %11 = fneg float %.01 %12 = fmul float %9, %11 %13 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not2 = icmp eq i32 %13, 0 %14 = call float @llvm.nvvm.fma.rn.ftz.f(float %10, float %12, float noundef 1.000000e+00) #135 %15 = call float @llvm.fma.f32(float %10, float %12, float noundef 1.000000e+00) %.03 = select i1 %.not2, float %15, float %14 %16 = fmul float %9, 0x3FD5555560000000 %17 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not3 = icmp eq i32 %17, 0 %18 = call float @llvm.nvvm.fma.rn.ftz.f(float %.03, float %16, float %9) #135 %19 = call float @llvm.fma.f32(float %.03, float %16, float %9) %.0 = select i1 %.not3, float %19, float %18 %20 = fcmp olt float %a, 0.000000e+00 %21 = fneg float %.0 %t.0 = select i1 %20, float %21, float %.0 %22 = fadd float %a, %a %23 = fcmp oeq float %22, %a br i1 %23, label %24, label %26 24: ; preds = %__nv_fast_log2f.exit %25 = call float asm "rcp.approx.ftz.f32 $0,$1;", "=f,f"(float %a) #137, !srcloc !225 br label %26 26: ; preds = %24, %__nv_fast_log2f.exit %t.1 = phi float [ %25, %24 ], [ %t.0, %__nv_fast_log2f.exit ] ret float %t.1 } ; Function Attrs: noinline nounwind define dso_local float @__nv_j0f(float %a) local_unnamed_addr #40 { __nv_fabsf.exit: %result.i.i.i = alloca [7 x i32], align 4 %0 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not = icmp eq i32 %0, 0 %1 = call float @llvm.nvvm.fabs.ftz.f(float %a) #135 %2 = call float @llvm.fabs.f32(float %a) %.01 = select i1 %.not, float %2, float %1 %3 = fcmp ugt float %.01, 8.000000e+00 br i1 %3, label %__nv_isinff.exit, label %__internal_fmad.exit __internal_fmad.exit: ; preds = %__nv_fabsf.exit %4 = fadd float %.01, 0xC0033D1520000000 %5 = fadd float %4, 0xBE7D2E3660000000 %6 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not36 = icmp eq i32 %6, 0 %7 = call float @llvm.nvvm.fma.rn.ftz.f(float noundef 0xBCD6771CE0000000, float %5, float noundef 0xBD35953660000000) #135 %8 = call float @llvm.fma.f32(float %5, float noundef 0xBCD6771CE0000000, float noundef 0xBD35953660000000) %.02 = select i1 %.not36, float %8, float %7 %9 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not37 = icmp eq i32 %9, 0 %10 = call float @llvm.nvvm.fma.rn.ftz.f(float %.02, float %5, float noundef 0x3D87E1C300000000) #135 %11 = call float @llvm.fma.f32(float %.02, float %5, float noundef 0x3D87E1C300000000) %.03 = select i1 %.not37, float %11, float %10 %12 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not38 = icmp eq i32 %12, 0 %13 = call float @llvm.nvvm.fma.rn.ftz.f(float %.03, float %5, float noundef 0xBD9A82F020000000) #135 %14 = call float @llvm.fma.f32(float %.03, float %5, float noundef 0xBD9A82F020000000) %.05 = select i1 %.not38, float %14, float %13 %15 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not39 = icmp eq i32 %15, 0 %16 = call float @llvm.nvvm.fma.rn.ftz.f(float %.05, float %5, float noundef 0xBDFD21E700000000) #135 %17 = call float @llvm.fma.f32(float %.05, float %5, float noundef 0xBDFD21E700000000) %.06 = select i1 %.not39, float %17, float %16 %18 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not40 = icmp eq i32 %18, 0 %19 = call float @llvm.nvvm.fma.rn.ftz.f(float %.06, float %5, float noundef 0x3E04060B60000000) #135 %20 = call float @llvm.fma.f32(float %.06, float %5, float noundef 0x3E04060B60000000) %.07 = select i1 %.not40, float %20, float %19 %21 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not41 = icmp eq i32 %21, 0 %22 = call float @llvm.nvvm.fma.rn.ftz.f(float %.07, float %5, float noundef 0x3E6F2E2860000000) #135 %23 = call float @llvm.fma.f32(float %.07, float %5, float noundef 0x3E6F2E2860000000) %.08 = select i1 %.not41, float %23, float %22 %24 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not42 = icmp eq i32 %24, 0 %25 = call float @llvm.nvvm.fma.rn.ftz.f(float %.08, float %5, float noundef 0x3E1EEDF0A0000000) #135 %26 = call float @llvm.fma.f32(float %.08, float %5, float noundef 0x3E1EEDF0A0000000) %.09 = select i1 %.not42, float %26, float %25 %27 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not43 = icmp eq i32 %27, 0 %28 = call float @llvm.nvvm.fma.rn.ftz.f(float %.09, float %5, float noundef 0xBED6DBF8C0000000) #135 %29 = call float @llvm.fma.f32(float %.09, float %5, float noundef 0xBED6DBF8C0000000) %.010 = select i1 %.not43, float %29, float %28 %30 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not44 = icmp eq i32 %30, 0 %31 = call float @llvm.nvvm.fma.rn.ftz.f(float %.010, float %5, float noundef 0xBEDECCB920000000) #135 %32 = call float @llvm.fma.f32(float %.010, float %5, float noundef 0xBEDECCB920000000) %.012 = select i1 %.not44, float %32, float %31 %33 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not45 = icmp eq i32 %33, 0 %34 = call float @llvm.nvvm.fma.rn.ftz.f(float %.012, float %5, float noundef 0x3F33C5BD60000000) #135 %35 = call float @llvm.fma.f32(float %.012, float %5, float noundef 0x3F33C5BD60000000) %.013 = select i1 %.not45, float %35, float %34 %36 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not46 = icmp eq i32 %36, 0 %37 = call float @llvm.nvvm.fma.rn.ftz.f(float %.013, float %5, float noundef 0x3F495C6680000000) #135 %38 = call float @llvm.fma.f32(float %.013, float %5, float noundef 0x3F495C6680000000) %.014 = select i1 %.not46, float %38, float %37 %39 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not47 = icmp eq i32 %39, 0 %40 = call float @llvm.nvvm.fma.rn.ftz.f(float %.014, float %5, float noundef 0xBF7DD54360000000) #135 %41 = call float @llvm.fma.f32(float %.014, float %5, float noundef 0xBF7DD54360000000) %.015 = select i1 %.not47, float %41, float %40 %42 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not48 = icmp eq i32 %42, 0 %43 = call float @llvm.nvvm.fma.rn.ftz.f(float %.015, float %5, float noundef 0xBF9B4EE8E0000000) #135 %44 = call float @llvm.fma.f32(float %.015, float %5, float noundef 0xBF9B4EE8E0000000) %.016 = select i1 %.not48, float %44, float %43 %45 = fmul float %5, %.016 %46 = fadd float %.01, 0xC016148F60000000 %47 = fadd float %46, 0x3E734F46E0000000 %48 = fmul float %47, %45 %49 = fadd float %.01, 0xC0214EB560000000 %50 = fadd float %49, 0xBE9999BDA0000000 %51 = fmul float %50, %48 br label %211 __nv_isinff.exit: ; preds = %__nv_fabsf.exit %52 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not1 = icmp eq i32 %52, 0 %53 = call float @llvm.nvvm.fabs.ftz.f(float %.01) #135 %54 = call float @llvm.fabs.f32(float %.01) %.017 = select i1 %.not1, float %54, float %53 %55 = fcmp oeq float %.017, 0x7FF0000000000000 br i1 %55, label %211, label %__internal_fmad.exit13 __internal_fmad.exit13: ; preds = %__nv_isinff.exit %56 = call float asm "rcp.approx.ftz.f32 $0,$1;", "=f,f"(float %.01) #137, !srcloc !225 %57 = fmul float %56, %56 %58 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not2 = icmp eq i32 %58, 0 %59 = call float @llvm.nvvm.fma.rn.ftz.f(float noundef 0x400ADFD260000000, float %57, float noundef 0xBFE076F840000000) #135 %60 = call float @llvm.fma.f32(float %57, float noundef 0x400ADFD260000000, float noundef 0xBFE076F840000000) %.019 = select i1 %.not2, float %60, float %59 %61 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not3 = icmp eq i32 %61, 0 %62 = call float @llvm.nvvm.fma.rn.ftz.f(float %.019, float %57, float noundef 0x3FBA767E60000000) #135 %63 = call float @llvm.fma.f32(float %.019, float %57, float noundef 0x3FBA767E60000000) %.020 = select i1 %.not3, float %63, float %62 %64 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not4 = icmp eq i32 %64, 0 %65 = call float @llvm.nvvm.fma.rn.ftz.f(float %.020, float %57, float noundef 0xBFAFFFF6C0000000) #135 %66 = call float @llvm.fma.f32(float %.020, float %57, float noundef 0xBFAFFFF6C0000000) %.021 = select i1 %.not4, float %66, float %65 %67 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not5 = icmp eq i32 %67, 0 %68 = call float @llvm.nvvm.fma.rn.ftz.f(float %.021, float %57, float noundef 1.000000e+00) #135 %69 = call float @llvm.fma.f32(float %.021, float %57, float noundef 1.000000e+00) %.022 = select i1 %.not5, float %69, float %68 %70 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not6 = icmp eq i32 %70, 0 %71 = call float @llvm.nvvm.fma.rn.ftz.f(float noundef 0x3FF23C0120000000, float %57, float noundef 0xBFCA4825A0000000) #135 %72 = call float @llvm.fma.f32(float %57, float noundef 0x3FF23C0120000000, float noundef 0xBFCA4825A0000000) %.023 = select i1 %.not6, float %72, float %71 %73 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not7 = icmp eq i32 %73, 0 %74 = call float @llvm.nvvm.fma.rn.ftz.f(float %.023, float %57, float noundef 0x3FB0A9DA20000000) #135 %75 = call float @llvm.fma.f32(float %.023, float %57, float noundef 0x3FB0A9DA20000000) %.024 = select i1 %.not7, float %75, float %74 %76 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not8 = icmp eq i32 %76, 0 %77 = call float @llvm.nvvm.fma.rn.ftz.f(float %.024, float %57, float noundef 0xBFBFFFFFE0000000) #135 %78 = call float @llvm.fma.f32(float %.024, float %57, float noundef 0xBFBFFFFFE0000000) %.026 = select i1 %.not8, float %78, float %77 %79 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not9 = icmp eq i32 %79, 0 %80 = call float @llvm.nvvm.fma.rn.ftz.f(float %.026, float %56, float %.01) #135 %81 = call float @llvm.fma.f32(float %.026, float %56, float %.01) %.027 = select i1 %.not9, float %81, float %80 %82 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not10 = icmp eq i32 %82, 0 br i1 %.not10, label %85, label %83 83: ; preds = %__internal_fmad.exit13 %84 = call float @llvm.nvvm.rsqrt.approx.ftz.f(float %.01) #135 br label %__nv_rsqrtf.exit 85: ; preds = %__internal_fmad.exit13 %86 = call float @llvm.nvvm.rsqrt.approx.f(float %.01) #135 br label %__nv_rsqrtf.exit __nv_rsqrtf.exit: ; preds = %85, %83 %.028 = phi float [ %84, %83 ], [ %86, %85 ] %87 = fmul float %.028, 0x3FE9884540000000 %88 = fmul float %.022, %87 %89 = fmul float %.027, 0x3FE45F3060000000 %90 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not11 = icmp eq i32 %90, 0 %91 = call i32 @llvm.nvvm.f2i.rn.ftz(float %89) #135 %92 = call i32 @llvm.nvvm.f2i.rn(float %89) #135 %.030 = select i1 %.not11, i32 %92, i32 %91 %93 = sitofp i32 %.030 to float %94 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not12 = icmp eq i32 %94, 0 %95 = call float @llvm.nvvm.fma.rn.ftz.f(float %93, float noundef 0xBFF921FB40000000, float %.027) #135 %96 = call float @llvm.fma.f32(float %93, float noundef 0xBFF921FB40000000, float %.027) %.031 = select i1 %.not12, float %96, float %95 %97 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not13 = icmp eq i32 %97, 0 %98 = call float @llvm.nvvm.fma.rn.ftz.f(float %93, float noundef 0xBE74442D00000000, float %.031) #135 %99 = call float @llvm.fma.f32(float %93, float noundef 0xBE74442D00000000, float %.031) %.032 = select i1 %.not13, float %99, float %98 %100 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not14 = icmp eq i32 %100, 0 %101 = call float @llvm.nvvm.fma.rn.ftz.f(float %93, float noundef 0xBCF84698A0000000, float %.032) #135 %102 = call float @llvm.fma.f32(float %93, float noundef 0xBCF84698A0000000, float %.032) %.033 = select i1 %.not14, float %102, float %101 %103 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not15 = icmp eq i32 %103, 0 %104 = call float @llvm.nvvm.fabs.ftz.f(float %.027) #135 %105 = call float @llvm.fabs.f32(float %.027) %.035 = select i1 %.not15, float %105, float %104 %106 = fcmp ult float %.035, 1.056150e+05 br i1 %106, label %__internal_trig_reduction_kernel.exit.i, label %__nv_isinff.exit.i.i __nv_isinff.exit.i.i: ; preds = %__nv_rsqrtf.exit %107 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not29 = icmp eq i32 %107, 0 %.036 = select i1 %.not29, float %105, float %104 %108 = fcmp oeq float %.036, 0x7FF0000000000000 br i1 %108, label %__nv_fmul_rn.exit.i.i, label %112 __nv_fmul_rn.exit.i.i: ; preds = %__nv_isinff.exit.i.i %109 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not35 = icmp eq i32 %109, 0 %110 = call float @llvm.nvvm.mul.rn.ftz.f(float %.027, float noundef 0.000000e+00) #135 %111 = fmul float %.027, 0.000000e+00 %.037 = select i1 %.not35, float %111, float %110 br label %__internal_trig_reduction_kernel.exit.i 112: ; preds = %__nv_isinff.exit.i.i %113 = bitcast float %.027 to i32 %114 = lshr i32 %113, 23 %115 = and i32 %114, 255 %116 = shl i32 %113, 8 %117 = or i32 %116, -2147483648 br label %118 118: ; preds = %112, %118 %iq.i.i.i.050 = phi i32 [ 0, %112 ], [ %125, %118 ] %hi.i.i.i.049 = phi i32 [ 0, %112 ], [ %123, %118 ] %119 = getelementptr inbounds [6 x i32], [6 x i32] addrspace(1)* @__cudart_i2opi_f, i32 0, i32 %iq.i.i.i.050 %120 = load i32, i32 addrspace(1)* %119, align 4 %121 = call { i32, i32 } asm "{\0A\09mad.lo.cc.u32 $0, $2, $3, $4;\0A\09madc.hi.u32 $1, $2, $3, 0;\0A\09}", "=r,=r,r,r,r"(i32 %120, i32 %117, i32 %hi.i.i.i.049) #137, !srcloc !222 %122 = extractvalue { i32, i32 } %121, 0 %123 = extractvalue { i32, i32 } %121, 1 %124 = getelementptr inbounds [7 x i32], [7 x i32]* %result.i.i.i, i32 0, i32 %iq.i.i.i.050 store i32 %122, i32* %124, align 4, !noalias !219 %125 = add nuw nsw i32 %iq.i.i.i.050, 1 %exitcond.not = icmp eq i32 %125, 6 br i1 %exitcond.not, label %126, label %118, !llvm.loop !223 126: ; preds = %118 %127 = add nsw i32 %115, -128 %128 = lshr i32 %127, 5 %129 = and i32 %113, -2147483648 %130 = getelementptr inbounds [7 x i32], [7 x i32]* %result.i.i.i, i32 0, i32 6 store i32 %123, i32* %130, align 4, !noalias !219 %131 = and i32 %114, 31 %132 = sub nsw i32 6, %128 %133 = getelementptr inbounds [7 x i32], [7 x i32]* %result.i.i.i, i32 0, i32 %132 %134 = load i32, i32* %133, align 4 %135 = sub nsw i32 5, %128 %136 = getelementptr inbounds [7 x i32], [7 x i32]* %result.i.i.i, i32 0, i32 %135 %137 = load i32, i32* %136, align 4 %.not30 = icmp eq i32 %131, 0 br i1 %.not30, label %__internal_trig_reduction_slowpath.exit.i.i, label %138 138: ; preds = %126 %139 = sub nsw i32 4, %128 %140 = sub nuw nsw i32 32, %131 %141 = shl i32 %134, %131 %142 = lshr i32 %137, %140 %143 = add i32 %142, %141 %144 = shl i32 %137, %131 %145 = getelementptr inbounds [7 x i32], [7 x i32]* %result.i.i.i, i32 0, i32 %139 %146 = load i32, i32* %145, align 4 %147 = lshr i32 %146, %140 %148 = add i32 %147, %144 br label %__internal_trig_reduction_slowpath.exit.i.i __internal_trig_reduction_slowpath.exit.i.i: ; preds = %138, %126 %hi.i.i.i.1 = phi i32 [ %143, %138 ], [ %134, %126 ] %lo.i.i.i.0 = phi i32 [ %148, %138 ], [ %137, %126 ] %149 = lshr i32 %hi.i.i.i.1, 30 %150 = call i32 @llvm.fshl.i32(i32 %hi.i.i.i.1, i32 %lo.i.i.i.0, i32 noundef 2) %151 = shl i32 %lo.i.i.i.0, 2 %152 = lshr i32 %150, 31 %153 = add nuw nsw i32 %152, %149 %.not31 = icmp eq i32 %129, 0 %154 = sub nsw i32 0, %153 %spec.select = select i1 %.not31, i32 %153, i32 %154 %.not32 = icmp sgt i32 %150, -1 %155 = xor i32 %129, -2147483648 %s.i.i.i.0 = select i1 %.not32, i32 %129, i32 %155 %not..not32 = xor i1 %.not32, true %156 = sext i1 %not..not32 to i32 %hi.i.i.i.2 = xor i32 %150, %156 %lo.i.i.i.1 = xor i32 %151, %156 %157 = zext i32 %hi.i.i.i.2 to i64 %158 = shl nuw i64 %157, 32 %159 = zext i32 %lo.i.i.i.1 to i64 %160 = or i64 %158, %159 %161 = sitofp i64 %160 to double %162 = fmul double %161, 0x3BF921FB54442D19 %163 = fptrunc double %162 to float %.not34 = icmp eq i32 %s.i.i.i.0, 0 %164 = fneg float %163 %r.i.i.i.0 = select i1 %.not34, float %163, float %164 br label %__internal_trig_reduction_kernel.exit.i __internal_trig_reduction_kernel.exit.i: ; preds = %__nv_fmul_rn.exit.i.i, %__internal_trig_reduction_slowpath.exit.i.i, %__nv_rsqrtf.exit %i.i.1 = phi i32 [ %.030, %__nv_rsqrtf.exit ], [ 0, %__nv_fmul_rn.exit.i.i ], [ %spec.select, %__internal_trig_reduction_slowpath.exit.i.i ] %t.i.i.1 = phi float [ %.033, %__nv_rsqrtf.exit ], [ %.037, %__nv_fmul_rn.exit.i.i ], [ %r.i.i.i.0, %__internal_trig_reduction_slowpath.exit.i.i ] %165 = and i32 %i.i.1, 3 %166 = uitofp i32 %165 to float %167 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not16 = icmp eq i32 %167, 0 %168 = call float @llvm.nvvm.fma.rn.ftz.f(float %166, float noundef 0x3FF921FB60000000, float noundef 0xBFE921FB60000000) #135 %169 = call float @llvm.fma.f32(float %166, float noundef 0x3FF921FB60000000, float noundef 0xBFE921FB60000000) %.040 = select i1 %.not16, float %169, float %168 %170 = fadd float %t.i.i.1, %.040 %171 = fmul float %170, 0x3FE45F3060000000 %172 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not17 = icmp eq i32 %172, 0 %173 = call i32 @llvm.nvvm.f2i.rn.ftz(float %171) #135 %174 = call i32 @llvm.nvvm.f2i.rn(float %171) #135 %.041 = select i1 %.not17, i32 %174, i32 %173 %175 = sitofp i32 %.041 to float %176 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not18 = icmp eq i32 %176, 0 %177 = call float @llvm.nvvm.fma.rn.ftz.f(float %175, float noundef 0xBFF921FB40000000, float %170) #135 %178 = call float @llvm.fma.f32(float %175, float noundef 0xBFF921FB40000000, float %170) %.039 = select i1 %.not18, float %178, float %177 %179 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not19 = icmp eq i32 %179, 0 %180 = call float @llvm.nvvm.fma.rn.ftz.f(float %175, float noundef 0xBE74442D00000000, float %.039) #135 %181 = call float @llvm.fma.f32(float %175, float noundef 0xBE74442D00000000, float %.039) %.038 = select i1 %.not19, float %181, float %180 %182 = add i32 %.041, 1 %183 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not20 = icmp eq i32 %183, 0 %184 = call float @llvm.nvvm.mul.rn.ftz.f(float %.038, float %.038) #135 %185 = fmul float %.038, %.038 %.034 = select i1 %.not20, float %185, float %184 %186 = and i32 %182, 1 %.not21 = icmp eq i32 %186, 0 %187 = select i1 %.not21, float %.038, float 1.000000e+00 %188 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not22 = icmp eq i32 %188, 0 %189 = call float @llvm.nvvm.fma.rn.ftz.f(float %.034, float %187, float noundef 0.000000e+00) #135 %190 = call float @llvm.fma.f32(float %.034, float %187, float noundef 0.000000e+00) %.029 = select i1 %.not22, float %190, float %189 br i1 %.not21, label %__internal_fmad.exit2.i.i, label %__internal_fmad.exit1.i.i __internal_fmad.exit1.i.i: ; preds = %__internal_trig_reduction_kernel.exit.i %191 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not28 = icmp eq i32 %191, 0 %192 = call float @llvm.nvvm.fma.rn.ftz.f(float noundef 0x3EF9758000000000, float %.034, float noundef 0xBF56C0FDA0000000) #135 %193 = call float @llvm.fma.f32(float %.034, float noundef 0x3EF9758000000000, float noundef 0xBF56C0FDA0000000) %.025 = select i1 %.not28, float %193, float %192 br label %__internal_fmad.exit2.i.i __internal_fmad.exit2.i.i: ; preds = %__internal_trig_reduction_kernel.exit.i, %__internal_fmad.exit1.i.i %194 = phi float [ 0xBFC5555500000000, %__internal_trig_reduction_kernel.exit.i ], [ 0xBFDFFFFFE0000000, %__internal_fmad.exit1.i.i ] %195 = phi float [ 0x3F8110BC80000000, %__internal_trig_reduction_kernel.exit.i ], [ 0x3FA5555760000000, %__internal_fmad.exit1.i.i ] %196 = phi float [ 0xBF29A82A60000000, %__internal_trig_reduction_kernel.exit.i ], [ %.025, %__internal_fmad.exit1.i.i ] %197 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not23 = icmp eq i32 %197, 0 %198 = call float @llvm.nvvm.fma.rn.ftz.f(float %196, float %.034, float noundef %195) #135 %199 = call float @llvm.fma.f32(float %196, float %.034, float noundef %195) %.018 = select i1 %.not23, float %199, float %198 %200 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not24 = icmp eq i32 %200, 0 %201 = call float @llvm.nvvm.fma.rn.ftz.f(float %.018, float %.034, float noundef %194) #135 %202 = call float @llvm.fma.f32(float %.018, float %.034, float noundef %194) %.011 = select i1 %.not24, float %202, float %201 %203 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not25 = icmp eq i32 %203, 0 %204 = call float @llvm.nvvm.fma.rn.ftz.f(float %.011, float %.029, float %187) #135 %205 = call float @llvm.fma.f32(float %.011, float %.029, float %187) %.04 = select i1 %.not25, float %205, float %204 %206 = and i32 %182, 2 %.not26 = icmp eq i32 %206, 0 br i1 %.not26, label %__internal_cos_offset_f.exit, label %__internal_fmad.exit5.i.i __internal_fmad.exit5.i.i: ; preds = %__internal_fmad.exit2.i.i %207 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not27 = icmp eq i32 %207, 0 %208 = call float @llvm.nvvm.fma.rn.ftz.f(float %.04, float noundef -1.000000e+00, float noundef 0.000000e+00) #135 %209 = call float @llvm.fma.f32(float %.04, float noundef -1.000000e+00, float noundef 0.000000e+00) %.0 = select i1 %.not27, float %209, float %208 br label %__internal_cos_offset_f.exit __internal_cos_offset_f.exit: ; preds = %__internal_fmad.exit5.i.i, %__internal_fmad.exit2.i.i %z.i.i.0 = phi float [ %.0, %__internal_fmad.exit5.i.i ], [ %.04, %__internal_fmad.exit2.i.i ] %210 = fmul float %88, %z.i.i.0 br label %211 211: ; preds = %__internal_cos_offset_f.exit, %__nv_isinff.exit, %__internal_fmad.exit %r.1 = phi float [ %51, %__internal_fmad.exit ], [ %210, %__internal_cos_offset_f.exit ], [ 0.000000e+00, %__nv_isinff.exit ] ret float %r.1 } ; Function Attrs: noinline nounwind define dso_local float @__nv_j1f(float %a) local_unnamed_addr #41 { __nv_fabsf.exit: %result.i.i.i = alloca [7 x i32], align 4 %0 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not = icmp eq i32 %0, 0 %1 = call float @llvm.nvvm.fabs.ftz.f(float %a) #135 %2 = call float @llvm.fabs.f32(float %a) %.0 = select i1 %.not, float %2, float %1 %3 = fcmp ugt float %.0, 8.000000e+00 br i1 %3, label %__nv_isinff.exit, label %__internal_fmad.exit __internal_fmad.exit: ; preds = %__nv_fabsf.exit %4 = fadd float %.0, 0xC00EA75580000000 %5 = fadd float %4, 0x3E74A121E0000000 %6 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not36 = icmp eq i32 %6, 0 %7 = call float @llvm.nvvm.fma.rn.ftz.f(float noundef 0x3D35E68C60000000, float %5, float noundef 0x3D7037E840000000) #135 %8 = call float @llvm.fma.f32(float %5, float noundef 0x3D35E68C60000000, float noundef 0x3D7037E840000000) %.01 = select i1 %.not36, float %8, float %7 %9 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not37 = icmp eq i32 %9, 0 %10 = call float @llvm.nvvm.fma.rn.ftz.f(float %.01, float %5, float noundef 0xBDBC43D820000000) #135 %11 = call float @llvm.fma.f32(float %.01, float %5, float noundef 0xBDBC43D820000000) %.02 = select i1 %.not37, float %11, float %10 %12 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not38 = icmp eq i32 %12, 0 %13 = call float @llvm.nvvm.fma.rn.ftz.f(float %.02, float %5, float noundef 0xBDEBBBDFE0000000) #135 %14 = call float @llvm.fma.f32(float %.02, float %5, float noundef 0xBDEBBBDFE0000000) %.03 = select i1 %.not38, float %14, float %13 %15 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not39 = icmp eq i32 %15, 0 %16 = call float @llvm.nvvm.fma.rn.ftz.f(float %.03, float %5, float noundef 0x3E336193A0000000) #135 %17 = call float @llvm.fma.f32(float %.03, float %5, float noundef 0x3E336193A0000000) %.04 = select i1 %.not39, float %17, float %16 %18 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not40 = icmp eq i32 %18, 0 %19 = call float @llvm.nvvm.fma.rn.ftz.f(float %.04, float %5, float noundef 0x3E5D022E60000000) #135 %20 = call float @llvm.fma.f32(float %.04, float %5, float noundef 0x3E5D022E60000000) %.06 = select i1 %.not40, float %20, float %19 %21 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not41 = icmp eq i32 %21, 0 %22 = call float @llvm.nvvm.fma.rn.ftz.f(float %.06, float %5, float noundef 0xBEA1F1B900000000) #135 %23 = call float @llvm.fma.f32(float %.06, float %5, float noundef 0xBEA1F1B900000000) %.07 = select i1 %.not41, float %23, float %22 %24 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not42 = icmp eq i32 %24, 0 %25 = call float @llvm.nvvm.fma.rn.ftz.f(float %.07, float %5, float noundef 0xBEC3CCA7A0000000) #135 %26 = call float @llvm.fma.f32(float %.07, float %5, float noundef 0xBEC3CCA7A0000000) %.08 = select i1 %.not42, float %26, float %25 %27 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not43 = icmp eq i32 %27, 0 %28 = call float @llvm.nvvm.fma.rn.ftz.f(float %.08, float %5, float noundef 0x3F059B38A0000000) #135 %29 = call float @llvm.fma.f32(float %.08, float %5, float noundef 0x3F059B38A0000000) %.09 = select i1 %.not43, float %29, float %28 %30 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not44 = icmp eq i32 %30, 0 %31 = call float @llvm.nvvm.fma.rn.ftz.f(float %.09, float %5, float noundef 0x3F1F3D6200000000) #135 %32 = call float @llvm.fma.f32(float %.09, float %5, float noundef 0x3F1F3D6200000000) %.010 = select i1 %.not44, float %32, float %31 %33 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not45 = icmp eq i32 %33, 0 %34 = call float @llvm.nvvm.fma.rn.ftz.f(float %.010, float %5, float noundef 0xBF5D9D7380000000) #135 %35 = call float @llvm.fma.f32(float %.010, float %5, float noundef 0xBF5D9D7380000000) %.011 = select i1 %.not45, float %35, float %34 %36 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not46 = icmp eq i32 %36, 0 %37 = call float @llvm.nvvm.fma.rn.ftz.f(float %.011, float %5, float noundef 0xBF64EDFFA0000000) #135 %38 = call float @llvm.fma.f32(float %.011, float %5, float noundef 0xBF64EDFFA0000000) %.013 = select i1 %.not46, float %38, float %37 %39 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not47 = icmp eq i32 %39, 0 %40 = call float @llvm.nvvm.fma.rn.ftz.f(float %.013, float %5, float noundef 0x3FA0E73260000000) #135 %41 = call float @llvm.fma.f32(float %.013, float %5, float noundef 0x3FA0E73260000000) %.014 = select i1 %.not47, float %41, float %40 %42 = fadd float %.0, 0xC01C0FF600000000 %43 = fadd float %42, 0x3E88971B60000000 %44 = fmul float %43, %.014 %45 = fmul float %5, %44 %46 = fmul float %.0, %45 br label %206 __nv_isinff.exit: ; preds = %__nv_fabsf.exit %47 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not1 = icmp eq i32 %47, 0 %48 = call float @llvm.nvvm.fabs.ftz.f(float %.0) #135 %49 = call float @llvm.fabs.f32(float %.0) %.015 = select i1 %.not1, float %49, float %48 %50 = fcmp oeq float %.015, 0x7FF0000000000000 br i1 %50, label %206, label %__internal_fmad.exit12 __internal_fmad.exit12: ; preds = %__nv_isinff.exit %51 = call float asm "rcp.approx.ftz.f32 $0,$1;", "=f,f"(float %.0) #137, !srcloc !225 %52 = fmul float %51, %51 %53 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not2 = icmp eq i32 %53, 0 %54 = call float @llvm.nvvm.fma.rn.ftz.f(float noundef 0xC0105966E0000000, float %52, float noundef 0x3FE7FEFD20000000) #135 %55 = call float @llvm.fma.f32(float %52, float noundef 0xC0105966E0000000, float noundef 0x3FE7FEFD20000000) %.016 = select i1 %.not2, float %55, float %54 %56 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not3 = icmp eq i32 %56, 0 %57 = call float @llvm.nvvm.fma.rn.ftz.f(float %.016, float %52, float noundef 0xBFC8B175C0000000) #135 %58 = call float @llvm.fma.f32(float %.016, float %52, float noundef 0xBFC8B175C0000000) %.017 = select i1 %.not3, float %58, float %57 %59 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not4 = icmp eq i32 %59, 0 %60 = call float @llvm.nvvm.fma.rn.ftz.f(float %.017, float %52, float noundef 0x3FC7FFF160000000) #135 %61 = call float @llvm.fma.f32(float %.017, float %52, float noundef 0x3FC7FFF160000000) %.018 = select i1 %.not4, float %61, float %60 %62 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not5 = icmp eq i32 %62, 0 %63 = call float @llvm.nvvm.fma.rn.ftz.f(float %.018, float %52, float noundef 1.000000e+00) #135 %64 = call float @llvm.fma.f32(float %.018, float %52, float noundef 1.000000e+00) %.020 = select i1 %.not5, float %64, float %63 %65 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not6 = icmp eq i32 %65, 0 %66 = call float @llvm.nvvm.fma.rn.ftz.f(float noundef 0xBFF9477440000000, float %52, float noundef 0x3FD72295A0000000) #135 %67 = call float @llvm.fma.f32(float %52, float noundef 0xBFF9477440000000, float noundef 0x3FD72295A0000000) %.021 = select i1 %.not6, float %67, float %66 %68 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not7 = icmp eq i32 %68, 0 %69 = call float @llvm.nvvm.fma.rn.ftz.f(float %.021, float %52, float noundef 0xBFC4FE5D80000000) #135 %70 = call float @llvm.fma.f32(float %.021, float %52, float noundef 0xBFC4FE5D80000000) %.022 = select i1 %.not7, float %70, float %69 %71 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not8 = icmp eq i32 %71, 0 %72 = call float @llvm.nvvm.fma.rn.ftz.f(float %.022, float %52, float noundef 0x3FD7FFFFA0000000) #135 %73 = call float @llvm.fma.f32(float %.022, float %52, float noundef 0x3FD7FFFFA0000000) %.023 = select i1 %.not8, float %73, float %72 %74 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not9 = icmp eq i32 %74, 0 %75 = call float @llvm.nvvm.fma.rn.ftz.f(float %.023, float %51, float %.0) #135 %76 = call float @llvm.fma.f32(float %.023, float %51, float %.0) %.024 = select i1 %.not9, float %76, float %75 %77 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not10 = icmp eq i32 %77, 0 br i1 %.not10, label %80, label %78 78: ; preds = %__internal_fmad.exit12 %79 = call float @llvm.nvvm.rsqrt.approx.ftz.f(float %.0) #135 br label %__nv_rsqrtf.exit 80: ; preds = %__internal_fmad.exit12 %81 = call float @llvm.nvvm.rsqrt.approx.f(float %.0) #135 br label %__nv_rsqrtf.exit __nv_rsqrtf.exit: ; preds = %80, %78 %.025 = phi float [ %79, %78 ], [ %81, %80 ] %82 = fmul float %.025, 0x3FE9884540000000 %83 = fmul float %.020, %82 %84 = fmul float %.024, 0x3FE45F3060000000 %85 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not11 = icmp eq i32 %85, 0 %86 = call i32 @llvm.nvvm.f2i.rn.ftz(float %84) #135 %87 = call i32 @llvm.nvvm.f2i.rn(float %84) #135 %.027 = select i1 %.not11, i32 %87, i32 %86 %88 = sitofp i32 %.027 to float %89 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not12 = icmp eq i32 %89, 0 %90 = call float @llvm.nvvm.fma.rn.ftz.f(float %88, float noundef 0xBFF921FB40000000, float %.024) #135 %91 = call float @llvm.fma.f32(float %88, float noundef 0xBFF921FB40000000, float %.024) %.029 = select i1 %.not12, float %91, float %90 %92 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not13 = icmp eq i32 %92, 0 %93 = call float @llvm.nvvm.fma.rn.ftz.f(float %88, float noundef 0xBE74442D00000000, float %.029) #135 %94 = call float @llvm.fma.f32(float %88, float noundef 0xBE74442D00000000, float %.029) %.030 = select i1 %.not13, float %94, float %93 %95 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not14 = icmp eq i32 %95, 0 %96 = call float @llvm.nvvm.fma.rn.ftz.f(float %88, float noundef 0xBCF84698A0000000, float %.030) #135 %97 = call float @llvm.fma.f32(float %88, float noundef 0xBCF84698A0000000, float %.030) %.031 = select i1 %.not14, float %97, float %96 %98 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not15 = icmp eq i32 %98, 0 %99 = call float @llvm.nvvm.fabs.ftz.f(float %.024) #135 %100 = call float @llvm.fabs.f32(float %.024) %.032 = select i1 %.not15, float %100, float %99 %101 = fcmp ult float %.032, 1.056150e+05 br i1 %101, label %__internal_trig_reduction_kernel.exit.i, label %__nv_isinff.exit.i.i __nv_isinff.exit.i.i: ; preds = %__nv_rsqrtf.exit %102 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not29 = icmp eq i32 %102, 0 %.033 = select i1 %.not29, float %100, float %99 %103 = fcmp oeq float %.033, 0x7FF0000000000000 br i1 %103, label %__nv_fmul_rn.exit.i.i, label %107 __nv_fmul_rn.exit.i.i: ; preds = %__nv_isinff.exit.i.i %104 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not35 = icmp eq i32 %104, 0 %105 = call float @llvm.nvvm.mul.rn.ftz.f(float %.024, float noundef 0.000000e+00) #135 %106 = fmul float %.024, 0.000000e+00 %.034 = select i1 %.not35, float %106, float %105 br label %__internal_trig_reduction_kernel.exit.i 107: ; preds = %__nv_isinff.exit.i.i %108 = bitcast float %.024 to i32 %109 = lshr i32 %108, 23 %110 = and i32 %109, 255 %111 = shl i32 %108, 8 %112 = or i32 %111, -2147483648 br label %113 113: ; preds = %107, %113 %iq.i.i.i.049 = phi i32 [ 0, %107 ], [ %120, %113 ] %hi.i.i.i.048 = phi i32 [ 0, %107 ], [ %118, %113 ] %114 = getelementptr inbounds [6 x i32], [6 x i32] addrspace(1)* @__cudart_i2opi_f, i32 0, i32 %iq.i.i.i.049 %115 = load i32, i32 addrspace(1)* %114, align 4 %116 = call { i32, i32 } asm "{\0A\09mad.lo.cc.u32 $0, $2, $3, $4;\0A\09madc.hi.u32 $1, $2, $3, 0;\0A\09}", "=r,=r,r,r,r"(i32 %115, i32 %112, i32 %hi.i.i.i.048) #137, !srcloc !222 %117 = extractvalue { i32, i32 } %116, 0 %118 = extractvalue { i32, i32 } %116, 1 %119 = getelementptr inbounds [7 x i32], [7 x i32]* %result.i.i.i, i32 0, i32 %iq.i.i.i.049 store i32 %117, i32* %119, align 4, !noalias !219 %120 = add nuw nsw i32 %iq.i.i.i.049, 1 %exitcond.not = icmp eq i32 %120, 6 br i1 %exitcond.not, label %121, label %113, !llvm.loop !223 121: ; preds = %113 %122 = add nsw i32 %110, -128 %123 = lshr i32 %122, 5 %124 = and i32 %108, -2147483648 %125 = getelementptr inbounds [7 x i32], [7 x i32]* %result.i.i.i, i32 0, i32 6 store i32 %118, i32* %125, align 4, !noalias !219 %126 = and i32 %109, 31 %127 = sub nsw i32 6, %123 %128 = getelementptr inbounds [7 x i32], [7 x i32]* %result.i.i.i, i32 0, i32 %127 %129 = load i32, i32* %128, align 4 %130 = sub nsw i32 5, %123 %131 = getelementptr inbounds [7 x i32], [7 x i32]* %result.i.i.i, i32 0, i32 %130 %132 = load i32, i32* %131, align 4 %.not30 = icmp eq i32 %126, 0 br i1 %.not30, label %__internal_trig_reduction_slowpath.exit.i.i, label %133 133: ; preds = %121 %134 = sub nsw i32 4, %123 %135 = sub nuw nsw i32 32, %126 %136 = shl i32 %129, %126 %137 = lshr i32 %132, %135 %138 = add i32 %137, %136 %139 = shl i32 %132, %126 %140 = getelementptr inbounds [7 x i32], [7 x i32]* %result.i.i.i, i32 0, i32 %134 %141 = load i32, i32* %140, align 4 %142 = lshr i32 %141, %135 %143 = add i32 %142, %139 br label %__internal_trig_reduction_slowpath.exit.i.i __internal_trig_reduction_slowpath.exit.i.i: ; preds = %133, %121 %hi.i.i.i.1 = phi i32 [ %138, %133 ], [ %129, %121 ] %lo.i.i.i.0 = phi i32 [ %143, %133 ], [ %132, %121 ] %144 = lshr i32 %hi.i.i.i.1, 30 %145 = call i32 @llvm.fshl.i32(i32 %hi.i.i.i.1, i32 %lo.i.i.i.0, i32 noundef 2) %146 = shl i32 %lo.i.i.i.0, 2 %147 = lshr i32 %145, 31 %148 = add nuw nsw i32 %147, %144 %.not31 = icmp eq i32 %124, 0 %149 = sub nsw i32 0, %148 %spec.select = select i1 %.not31, i32 %148, i32 %149 %.not32 = icmp sgt i32 %145, -1 %150 = xor i32 %124, -2147483648 %s.i.i.i.0 = select i1 %.not32, i32 %124, i32 %150 %not..not32 = xor i1 %.not32, true %151 = sext i1 %not..not32 to i32 %hi.i.i.i.2 = xor i32 %145, %151 %lo.i.i.i.1 = xor i32 %146, %151 %152 = zext i32 %hi.i.i.i.2 to i64 %153 = shl nuw i64 %152, 32 %154 = zext i32 %lo.i.i.i.1 to i64 %155 = or i64 %153, %154 %156 = sitofp i64 %155 to double %157 = fmul double %156, 0x3BF921FB54442D19 %158 = fptrunc double %157 to float %.not34 = icmp eq i32 %s.i.i.i.0, 0 %159 = fneg float %158 %r.i.i.i.0 = select i1 %.not34, float %158, float %159 br label %__internal_trig_reduction_kernel.exit.i __internal_trig_reduction_kernel.exit.i: ; preds = %__nv_fmul_rn.exit.i.i, %__internal_trig_reduction_slowpath.exit.i.i, %__nv_rsqrtf.exit %i.i.1 = phi i32 [ %.027, %__nv_rsqrtf.exit ], [ 0, %__nv_fmul_rn.exit.i.i ], [ %spec.select, %__internal_trig_reduction_slowpath.exit.i.i ] %t.i.i.1 = phi float [ %.031, %__nv_rsqrtf.exit ], [ %.034, %__nv_fmul_rn.exit.i.i ], [ %r.i.i.i.0, %__internal_trig_reduction_slowpath.exit.i.i ] %160 = and i32 %i.i.1, 3 %161 = uitofp i32 %160 to float %162 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not16 = icmp eq i32 %162, 0 %163 = call float @llvm.nvvm.fma.rn.ftz.f(float %161, float noundef 0x3FF921FB60000000, float noundef 0xC002D97C80000000) #135 %164 = call float @llvm.fma.f32(float %161, float noundef 0x3FF921FB60000000, float noundef 0xC002D97C80000000) %.037 = select i1 %.not16, float %164, float %163 %165 = fadd float %t.i.i.1, %.037 %166 = fmul float %165, 0x3FE45F3060000000 %167 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not17 = icmp eq i32 %167, 0 %168 = call i32 @llvm.nvvm.f2i.rn.ftz(float %166) #135 %169 = call i32 @llvm.nvvm.f2i.rn(float %166) #135 %.038 = select i1 %.not17, i32 %169, i32 %168 %170 = sitofp i32 %.038 to float %171 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not18 = icmp eq i32 %171, 0 %172 = call float @llvm.nvvm.fma.rn.ftz.f(float %170, float noundef 0xBFF921FB40000000, float %165) #135 %173 = call float @llvm.fma.f32(float %170, float noundef 0xBFF921FB40000000, float %165) %.039 = select i1 %.not18, float %173, float %172 %174 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not19 = icmp eq i32 %174, 0 %175 = call float @llvm.nvvm.fma.rn.ftz.f(float %170, float noundef 0xBE74442D00000000, float %.039) #135 %176 = call float @llvm.fma.f32(float %170, float noundef 0xBE74442D00000000, float %.039) %.040 = select i1 %.not19, float %176, float %175 %177 = add i32 %.038, 1 %178 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not20 = icmp eq i32 %178, 0 %179 = call float @llvm.nvvm.mul.rn.ftz.f(float %.040, float %.040) #135 %180 = fmul float %.040, %.040 %.036 = select i1 %.not20, float %180, float %179 %181 = and i32 %177, 1 %.not21 = icmp eq i32 %181, 0 %182 = select i1 %.not21, float %.040, float 1.000000e+00 %183 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not22 = icmp eq i32 %183, 0 %184 = call float @llvm.nvvm.fma.rn.ftz.f(float %.036, float %182, float noundef 0.000000e+00) #135 %185 = call float @llvm.fma.f32(float %.036, float %182, float noundef 0.000000e+00) %.035 = select i1 %.not22, float %185, float %184 br i1 %.not21, label %__internal_fmad.exit2.i.i, label %__internal_fmad.exit1.i.i __internal_fmad.exit1.i.i: ; preds = %__internal_trig_reduction_kernel.exit.i %186 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not28 = icmp eq i32 %186, 0 %187 = call float @llvm.nvvm.fma.rn.ftz.f(float noundef 0x3EF9758000000000, float %.036, float noundef 0xBF56C0FDA0000000) #135 %188 = call float @llvm.fma.f32(float %.036, float noundef 0x3EF9758000000000, float noundef 0xBF56C0FDA0000000) %.028 = select i1 %.not28, float %188, float %187 br label %__internal_fmad.exit2.i.i __internal_fmad.exit2.i.i: ; preds = %__internal_trig_reduction_kernel.exit.i, %__internal_fmad.exit1.i.i %189 = phi float [ 0xBFC5555500000000, %__internal_trig_reduction_kernel.exit.i ], [ 0xBFDFFFFFE0000000, %__internal_fmad.exit1.i.i ] %190 = phi float [ 0x3F8110BC80000000, %__internal_trig_reduction_kernel.exit.i ], [ 0x3FA5555760000000, %__internal_fmad.exit1.i.i ] %191 = phi float [ 0xBF29A82A60000000, %__internal_trig_reduction_kernel.exit.i ], [ %.028, %__internal_fmad.exit1.i.i ] %192 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not23 = icmp eq i32 %192, 0 %193 = call float @llvm.nvvm.fma.rn.ftz.f(float %191, float %.036, float noundef %190) #135 %194 = call float @llvm.fma.f32(float %191, float %.036, float noundef %190) %.026 = select i1 %.not23, float %194, float %193 %195 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not24 = icmp eq i32 %195, 0 %196 = call float @llvm.nvvm.fma.rn.ftz.f(float %.026, float %.036, float noundef %189) #135 %197 = call float @llvm.fma.f32(float %.026, float %.036, float noundef %189) %.019 = select i1 %.not24, float %197, float %196 %198 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not25 = icmp eq i32 %198, 0 %199 = call float @llvm.nvvm.fma.rn.ftz.f(float %.019, float %.035, float %182) #135 %200 = call float @llvm.fma.f32(float %.019, float %.035, float %182) %.012 = select i1 %.not25, float %200, float %199 %201 = and i32 %177, 2 %.not26 = icmp eq i32 %201, 0 br i1 %.not26, label %__internal_cos_offset_f.exit, label %__internal_fmad.exit5.i.i __internal_fmad.exit5.i.i: ; preds = %__internal_fmad.exit2.i.i %202 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not27 = icmp eq i32 %202, 0 %203 = call float @llvm.nvvm.fma.rn.ftz.f(float %.012, float noundef -1.000000e+00, float noundef 0.000000e+00) #135 %204 = call float @llvm.fma.f32(float %.012, float noundef -1.000000e+00, float noundef 0.000000e+00) %.05 = select i1 %.not27, float %204, float %203 br label %__internal_cos_offset_f.exit __internal_cos_offset_f.exit: ; preds = %__internal_fmad.exit5.i.i, %__internal_fmad.exit2.i.i %z.i.i.0 = phi float [ %.05, %__internal_fmad.exit5.i.i ], [ %.012, %__internal_fmad.exit2.i.i ] %205 = fmul float %83, %z.i.i.0 br label %206 206: ; preds = %__internal_cos_offset_f.exit, %__nv_isinff.exit, %__internal_fmad.exit %r.1 = phi float [ %46, %__internal_fmad.exit ], [ %205, %__internal_cos_offset_f.exit ], [ 0.000000e+00, %__nv_isinff.exit ] %207 = fcmp olt float %a, 0.000000e+00 %208 = fneg float %r.1 %r.2 = select i1 %207, float %208, float %r.1 %209 = fcmp olt float %.0, 0x39B4484C00000000 br i1 %209, label %210, label %217 210: ; preds = %206 %211 = bitcast float %a to i32 %212 = and i32 %211, -2147483648 %213 = bitcast float %r.2 to i32 %214 = and i32 %213, 2147483647 %215 = or i32 %214, %212 %216 = bitcast i32 %215 to float br label %217 217: ; preds = %210, %206 %r.3 = phi float [ %216, %210 ], [ %r.2, %206 ] ret float %r.3 } ; Function Attrs: noinline nounwind define dso_local float @__nv_y0f(float %a) local_unnamed_addr #42 { __nv_fabsf.exit: %result.i.i.i.i = alloca [7 x i32], align 4 %0 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not = icmp eq i32 %0, 0 %1 = call float @llvm.nvvm.fabs.ftz.f(float %a) #135 %2 = call float @llvm.fabs.f32(float %a) %.01 = select i1 %.not, float %2, float %1 %3 = fcmp ugt float %.01, 0x3FDC982EC0000000 br i1 %3, label %283, label %__internal_fmad.exit __internal_fmad.exit: ; preds = %__nv_fabsf.exit %4 = fmul float %.01, %.01 %5 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not65 = icmp eq i32 %5, 0 %6 = call float @llvm.nvvm.fma.rn.ftz.f(float noundef 0x3E7B7CB580000000, float %4, float noundef 0xBEE3E936C0000000) #135 %7 = call float @llvm.fma.f32(float %4, float noundef 0x3E7B7CB580000000, float noundef 0xBEE3E936C0000000) %.02 = select i1 %.not65, float %7, float %6 %8 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not66 = icmp eq i32 %8, 0 %9 = call float @llvm.nvvm.fma.rn.ftz.f(float %.02, float %4, float noundef 0x3F41A62000000000) #135 %10 = call float @llvm.fma.f32(float %.02, float %4, float noundef 0x3F41A62000000000) %.03 = select i1 %.not66, float %10, float %9 %11 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not67 = icmp eq i32 %11, 0 %12 = call float @llvm.nvvm.fma.rn.ftz.f(float %.03, float %4, float noundef 0xBF9075B1C0000000) #135 %13 = call float @llvm.fma.f32(float %.03, float %4, float noundef 0xBF9075B1C0000000) %.05 = select i1 %.not67, float %13, float %12 %14 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not68 = icmp eq i32 %14, 0 %15 = call float @llvm.nvvm.fma.rn.ftz.f(float %.05, float %4, float noundef 0x3FC6BBCB40000000) #135 %16 = call float @llvm.fma.f32(float %.05, float %4, float noundef 0x3FC6BBCB40000000) %.06 = select i1 %.not68, float %16, float %15 %17 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not69 = icmp eq i32 %17, 0 %18 = call float @llvm.nvvm.fma.rn.ftz.f(float %.06, float %4, float noundef 0xBFB2E4D6A0000000) #135 %19 = call float @llvm.fma.f32(float %.06, float %4, float noundef 0xBFB2E4D6A0000000) %.07 = select i1 %.not69, float %19, float %18 %20 = fcmp olt float %.01, 0x3810000000000000 %21 = fmul float %.01, 0x4160000000000000 %.09 = select i1 %20, float %21, float %.01 %i.i.0 = select i1 %20, float -2.300000e+01, float 0.000000e+00 %22 = bitcast float %.09 to i32 %23 = add i32 %22, -1059760811 %24 = and i32 %23, -8388608 %25 = sub i32 %22, %24 %26 = bitcast i32 %25 to float %27 = sitofp i32 %24 to float %28 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not70 = icmp eq i32 %28, 0 %29 = call float @llvm.nvvm.fma.rn.ftz.f(float %27, float noundef 0x3E80000000000000, float noundef %i.i.0) #135 %30 = call float @llvm.fma.f32(float %27, float noundef 0x3E80000000000000, float noundef %i.i.0) %.014 = select i1 %.not70, float %30, float %29 %31 = fadd float %26, -1.000000e+00 %32 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not71 = icmp eq i32 %32, 0 %33 = call float @llvm.nvvm.fma.rn.ftz.f(float noundef 0xBFC0AA04E0000000, float %31, float noundef 0x3FC2073EC0000000) #135 %34 = call float @llvm.fma.f32(float %31, float noundef 0xBFC0AA04E0000000, float noundef 0x3FC2073EC0000000) %.016 = select i1 %.not71, float %34, float %33 %35 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not72 = icmp eq i32 %35, 0 %36 = call float @llvm.nvvm.fma.rn.ftz.f(float %.016, float %31, float noundef 0xBFBF19B980000000) #135 %37 = call float @llvm.fma.f32(float %.016, float %31, float noundef 0xBFBF19B980000000) %.017 = select i1 %.not72, float %37, float %36 %38 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not73 = icmp eq i32 %38, 0 %39 = call float @llvm.nvvm.fma.rn.ftz.f(float %.017, float %31, float noundef 0x3FC1E52AA0000000) #135 %40 = call float @llvm.fma.f32(float %.017, float %31, float noundef 0x3FC1E52AA0000000) %.018 = select i1 %.not73, float %40, float %39 %41 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not74 = icmp eq i32 %41, 0 %42 = call float @llvm.nvvm.fma.rn.ftz.f(float %.018, float %31, float noundef 0xBFC55B1720000000) #135 %43 = call float @llvm.fma.f32(float %.018, float %31, float noundef 0xBFC55B1720000000) %.019 = select i1 %.not74, float %43, float %42 %44 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not75 = icmp eq i32 %44, 0 %45 = call float @llvm.nvvm.fma.rn.ftz.f(float %.019, float %31, float noundef 0x3FC99DA160000000) #135 %46 = call float @llvm.fma.f32(float %.019, float %31, float noundef 0x3FC99DA160000000) %.020 = select i1 %.not75, float %46, float %45 %47 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not76 = icmp eq i32 %47, 0 %48 = call float @llvm.nvvm.fma.rn.ftz.f(float %.020, float %31, float noundef 0xBFCFFFE440000000) #135 %49 = call float @llvm.fma.f32(float %.020, float %31, float noundef 0xBFCFFFE440000000) %.021 = select i1 %.not76, float %49, float %48 %50 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not77 = icmp eq i32 %50, 0 %51 = call float @llvm.nvvm.fma.rn.ftz.f(float %.021, float %31, float noundef 0x3FD5554F00000000) #135 %52 = call float @llvm.fma.f32(float %.021, float %31, float noundef 0x3FD5554F00000000) %.023 = select i1 %.not77, float %52, float %51 %53 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not78 = icmp eq i32 %53, 0 %54 = call float @llvm.nvvm.fma.rn.ftz.f(float %.023, float %31, float noundef -5.000000e-01) #135 %55 = call float @llvm.fma.f32(float %.023, float %31, float noundef -5.000000e-01) %.013 = select i1 %.not78, float %55, float %54 %56 = fmul float %31, %.013 %57 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not79 = icmp eq i32 %57, 0 %58 = call float @llvm.nvvm.fma.rn.ftz.f(float %56, float %31, float %31) #135 %59 = call float @llvm.fma.f32(float %56, float %31, float %31) %.012 = select i1 %.not79, float %59, float %58 %60 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not80 = icmp eq i32 %60, 0 %61 = call float @llvm.nvvm.fma.rn.ftz.f(float %.014, float noundef 0x3FE62E4300000000, float %.012) #135 %62 = call float @llvm.fma.f32(float %.014, float noundef 0x3FE62E4300000000, float %.012) %.011 = select i1 %.not80, float %62, float %61 %63 = icmp ugt i32 %22, 2139095039 br i1 %63, label %__nv_fmaf_rn.exit.i, label %__internal_accurate_logf.exit __nv_fmaf_rn.exit.i: ; preds = %__internal_fmad.exit %64 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not131 = icmp eq i32 %64, 0 %65 = call float @llvm.nvvm.fma.rn.ftz.f(float %.09, float noundef 0x7FF0000000000000, float noundef 0x7FF0000000000000) #135 %66 = call float @llvm.fma.f32(float %.09, float noundef 0x7FF0000000000000, float noundef 0x7FF0000000000000) %.010 = select i1 %.not131, float %66, float %65 br label %__internal_accurate_logf.exit __internal_accurate_logf.exit: ; preds = %__nv_fmaf_rn.exit.i, %__internal_fmad.exit %r.i.0 = phi float [ %.010, %__nv_fmaf_rn.exit.i ], [ %.011, %__internal_fmad.exit ] %67 = fcmp oeq float %.09, 0.000000e+00 %r.i.0.op = fmul float %r.i.0, 0x3FE45F3060000000 %68 = select i1 %67, float 0xFFF0000000000000, float %r.i.0.op %69 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not81 = icmp eq i32 %69, 0 %70 = call float @llvm.nvvm.fabs.ftz.f(float %.01) #135 %71 = call float @llvm.fabs.f32(float %.01) %.024 = select i1 %.not81, float %71, float %70 %72 = fcmp ugt float %.024, 8.000000e+00 br i1 %72, label %__nv_isinff.exit.i, label %__internal_fmad.exit.i __internal_fmad.exit.i: ; preds = %__internal_accurate_logf.exit %73 = fadd float %.024, 0xC0033D1520000000 %74 = fadd float %73, 0xBE7D2E3660000000 %75 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not118 = icmp eq i32 %75, 0 %76 = call float @llvm.nvvm.fma.rn.ftz.f(float noundef 0xBCD6771CE0000000, float %74, float noundef 0xBD35953660000000) #135 %77 = call float @llvm.fma.f32(float %74, float noundef 0xBCD6771CE0000000, float noundef 0xBD35953660000000) %.025 = select i1 %.not118, float %77, float %76 %78 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not119 = icmp eq i32 %78, 0 %79 = call float @llvm.nvvm.fma.rn.ftz.f(float %.025, float %74, float noundef 0x3D87E1C300000000) #135 %80 = call float @llvm.fma.f32(float %.025, float %74, float noundef 0x3D87E1C300000000) %.027 = select i1 %.not119, float %80, float %79 %81 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not120 = icmp eq i32 %81, 0 %82 = call float @llvm.nvvm.fma.rn.ftz.f(float %.027, float %74, float noundef 0xBD9A82F020000000) #135 %83 = call float @llvm.fma.f32(float %.027, float %74, float noundef 0xBD9A82F020000000) %.028 = select i1 %.not120, float %83, float %82 %84 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not121 = icmp eq i32 %84, 0 %85 = call float @llvm.nvvm.fma.rn.ftz.f(float %.028, float %74, float noundef 0xBDFD21E700000000) #135 %86 = call float @llvm.fma.f32(float %.028, float %74, float noundef 0xBDFD21E700000000) %.029 = select i1 %.not121, float %86, float %85 %87 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not122 = icmp eq i32 %87, 0 %88 = call float @llvm.nvvm.fma.rn.ftz.f(float %.029, float %74, float noundef 0x3E04060B60000000) #135 %89 = call float @llvm.fma.f32(float %.029, float %74, float noundef 0x3E04060B60000000) %.030 = select i1 %.not122, float %89, float %88 %90 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not123 = icmp eq i32 %90, 0 %91 = call float @llvm.nvvm.fma.rn.ftz.f(float %.030, float %74, float noundef 0x3E6F2E2860000000) #135 %92 = call float @llvm.fma.f32(float %.030, float %74, float noundef 0x3E6F2E2860000000) %.031 = select i1 %.not123, float %92, float %91 %93 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not124 = icmp eq i32 %93, 0 %94 = call float @llvm.nvvm.fma.rn.ftz.f(float %.031, float %74, float noundef 0x3E1EEDF0A0000000) #135 %95 = call float @llvm.fma.f32(float %.031, float %74, float noundef 0x3E1EEDF0A0000000) %.032 = select i1 %.not124, float %95, float %94 %96 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not125 = icmp eq i32 %96, 0 %97 = call float @llvm.nvvm.fma.rn.ftz.f(float %.032, float %74, float noundef 0xBED6DBF8C0000000) #135 %98 = call float @llvm.fma.f32(float %.032, float %74, float noundef 0xBED6DBF8C0000000) %.034 = select i1 %.not125, float %98, float %97 %99 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not126 = icmp eq i32 %99, 0 %100 = call float @llvm.nvvm.fma.rn.ftz.f(float %.034, float %74, float noundef 0xBEDECCB920000000) #135 %101 = call float @llvm.fma.f32(float %.034, float %74, float noundef 0xBEDECCB920000000) %.035 = select i1 %.not126, float %101, float %100 %102 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not127 = icmp eq i32 %102, 0 %103 = call float @llvm.nvvm.fma.rn.ftz.f(float %.035, float %74, float noundef 0x3F33C5BD60000000) #135 %104 = call float @llvm.fma.f32(float %.035, float %74, float noundef 0x3F33C5BD60000000) %.036 = select i1 %.not127, float %104, float %103 %105 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not128 = icmp eq i32 %105, 0 %106 = call float @llvm.nvvm.fma.rn.ftz.f(float %.036, float %74, float noundef 0x3F495C6680000000) #135 %107 = call float @llvm.fma.f32(float %.036, float %74, float noundef 0x3F495C6680000000) %.037 = select i1 %.not128, float %107, float %106 %108 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not129 = icmp eq i32 %108, 0 %109 = call float @llvm.nvvm.fma.rn.ftz.f(float %.037, float %74, float noundef 0xBF7DD54360000000) #135 %110 = call float @llvm.fma.f32(float %.037, float %74, float noundef 0xBF7DD54360000000) %.038 = select i1 %.not129, float %110, float %109 %111 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not130 = icmp eq i32 %111, 0 %112 = call float @llvm.nvvm.fma.rn.ftz.f(float %.038, float %74, float noundef 0xBF9B4EE8E0000000) #135 %113 = call float @llvm.fma.f32(float %.038, float %74, float noundef 0xBF9B4EE8E0000000) %.039 = select i1 %.not130, float %113, float %112 %114 = fmul float %74, %.039 %115 = fadd float %.024, 0xC016148F60000000 %116 = fadd float %115, 0x3E734F46E0000000 %117 = fmul float %116, %114 %118 = fadd float %.024, 0xC0214EB560000000 %119 = fadd float %118, 0xBE9999BDA0000000 %120 = fmul float %119, %117 br label %__nv_j0f.exit __nv_isinff.exit.i: ; preds = %__internal_accurate_logf.exit %121 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not82 = icmp eq i32 %121, 0 %122 = call float @llvm.nvvm.fabs.ftz.f(float %.024) #135 %123 = call float @llvm.fabs.f32(float %.024) %.040 = select i1 %.not82, float %123, float %122 %124 = fcmp oeq float %.040, 0x7FF0000000000000 br i1 %124, label %__nv_j0f.exit, label %__internal_fmad.exit13.i __internal_fmad.exit13.i: ; preds = %__nv_isinff.exit.i %125 = call float asm "rcp.approx.ftz.f32 $0,$1;", "=f,f"(float %.024) #137, !srcloc !225 %126 = fmul float %125, %125 %127 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not83 = icmp eq i32 %127, 0 %128 = call float @llvm.nvvm.fma.rn.ftz.f(float noundef 0x400ADFD260000000, float %126, float noundef 0xBFE076F840000000) #135 %129 = call float @llvm.fma.f32(float %126, float noundef 0x400ADFD260000000, float noundef 0xBFE076F840000000) %.041 = select i1 %.not83, float %129, float %128 %130 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not84 = icmp eq i32 %130, 0 %131 = call float @llvm.nvvm.fma.rn.ftz.f(float %.041, float %126, float noundef 0x3FBA767E60000000) #135 %132 = call float @llvm.fma.f32(float %.041, float %126, float noundef 0x3FBA767E60000000) %.043 = select i1 %.not84, float %132, float %131 %133 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not85 = icmp eq i32 %133, 0 %134 = call float @llvm.nvvm.fma.rn.ftz.f(float %.043, float %126, float noundef 0xBFAFFFF6C0000000) #135 %135 = call float @llvm.fma.f32(float %.043, float %126, float noundef 0xBFAFFFF6C0000000) %.044 = select i1 %.not85, float %135, float %134 %136 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not86 = icmp eq i32 %136, 0 %137 = call float @llvm.nvvm.fma.rn.ftz.f(float %.044, float %126, float noundef 1.000000e+00) #135 %138 = call float @llvm.fma.f32(float %.044, float %126, float noundef 1.000000e+00) %.045 = select i1 %.not86, float %138, float %137 %139 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not87 = icmp eq i32 %139, 0 %140 = call float @llvm.nvvm.fma.rn.ftz.f(float noundef 0x3FF23C0120000000, float %126, float noundef 0xBFCA4825A0000000) #135 %141 = call float @llvm.fma.f32(float %126, float noundef 0x3FF23C0120000000, float noundef 0xBFCA4825A0000000) %.047 = select i1 %.not87, float %141, float %140 %142 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not88 = icmp eq i32 %142, 0 %143 = call float @llvm.nvvm.fma.rn.ftz.f(float %.047, float %126, float noundef 0x3FB0A9DA20000000) #135 %144 = call float @llvm.fma.f32(float %.047, float %126, float noundef 0x3FB0A9DA20000000) %.048 = select i1 %.not88, float %144, float %143 %145 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not89 = icmp eq i32 %145, 0 %146 = call float @llvm.nvvm.fma.rn.ftz.f(float %.048, float %126, float noundef 0xBFBFFFFFE0000000) #135 %147 = call float @llvm.fma.f32(float %.048, float %126, float noundef 0xBFBFFFFFE0000000) %.049 = select i1 %.not89, float %147, float %146 %148 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not90 = icmp eq i32 %148, 0 %149 = call float @llvm.nvvm.fma.rn.ftz.f(float %.049, float %125, float %.024) #135 %150 = call float @llvm.fma.f32(float %.049, float %125, float %.024) %.051 = select i1 %.not90, float %150, float %149 %151 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not91 = icmp eq i32 %151, 0 br i1 %.not91, label %154, label %152 152: ; preds = %__internal_fmad.exit13.i %153 = call float @llvm.nvvm.rsqrt.approx.ftz.f(float %.024) #135 br label %__nv_rsqrtf.exit.i 154: ; preds = %__internal_fmad.exit13.i %155 = call float @llvm.nvvm.rsqrt.approx.f(float %.024) #135 br label %__nv_rsqrtf.exit.i __nv_rsqrtf.exit.i: ; preds = %154, %152 %.053 = phi float [ %153, %152 ], [ %155, %154 ] %156 = fmul float %.053, 0x3FE9884540000000 %157 = fmul float %.045, %156 %158 = fmul float %.051, 0x3FE45F3060000000 %159 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not92 = icmp eq i32 %159, 0 %160 = call i32 @llvm.nvvm.f2i.rn.ftz(float %158) #135 %161 = call i32 @llvm.nvvm.f2i.rn(float %158) #135 %.054 = select i1 %.not92, i32 %161, i32 %160 %162 = sitofp i32 %.054 to float %163 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not93 = icmp eq i32 %163, 0 %164 = call float @llvm.nvvm.fma.rn.ftz.f(float %162, float noundef 0xBFF921FB40000000, float %.051) #135 %165 = call float @llvm.fma.f32(float %162, float noundef 0xBFF921FB40000000, float %.051) %.055 = select i1 %.not93, float %165, float %164 %166 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not94 = icmp eq i32 %166, 0 %167 = call float @llvm.nvvm.fma.rn.ftz.f(float %162, float noundef 0xBE74442D00000000, float %.055) #135 %168 = call float @llvm.fma.f32(float %162, float noundef 0xBE74442D00000000, float %.055) %.056 = select i1 %.not94, float %168, float %167 %169 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not95 = icmp eq i32 %169, 0 %170 = call float @llvm.nvvm.fma.rn.ftz.f(float %162, float noundef 0xBCF84698A0000000, float %.056) #135 %171 = call float @llvm.fma.f32(float %162, float noundef 0xBCF84698A0000000, float %.056) %.057 = select i1 %.not95, float %171, float %170 %172 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not96 = icmp eq i32 %172, 0 %173 = call float @llvm.nvvm.fabs.ftz.f(float %.051) #135 %174 = call float @llvm.fabs.f32(float %.051) %.058 = select i1 %.not96, float %174, float %173 %175 = fcmp ult float %.058, 1.056150e+05 br i1 %175, label %__internal_trig_reduction_kernel.exit.i.i, label %__nv_isinff.exit.i.i.i __nv_isinff.exit.i.i.i: ; preds = %__nv_rsqrtf.exit.i %176 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not111 = icmp eq i32 %176, 0 %.059 = select i1 %.not111, float %174, float %173 %177 = fcmp oeq float %.059, 0x7FF0000000000000 br i1 %177, label %__nv_fmul_rn.exit.i.i.i, label %181 __nv_fmul_rn.exit.i.i.i: ; preds = %__nv_isinff.exit.i.i.i %178 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not117 = icmp eq i32 %178, 0 %179 = call float @llvm.nvvm.mul.rn.ftz.f(float %.051, float noundef 0.000000e+00) #135 %180 = fmul float %.051, 0.000000e+00 %.060 = select i1 %.not117, float %180, float %179 br label %__internal_trig_reduction_kernel.exit.i.i 181: ; preds = %__nv_isinff.exit.i.i.i %182 = bitcast float %.051 to i32 %183 = lshr i32 %182, 23 %184 = and i32 %183, 255 %185 = shl i32 %182, 8 %186 = or i32 %185, -2147483648 br label %187 187: ; preds = %181, %187 %iq.i.i.i.i.0135 = phi i32 [ 0, %181 ], [ %194, %187 ] %hi.i.i.i.i.0134 = phi i32 [ 0, %181 ], [ %192, %187 ] %188 = getelementptr inbounds [6 x i32], [6 x i32] addrspace(1)* @__cudart_i2opi_f, i32 0, i32 %iq.i.i.i.i.0135 %189 = load i32, i32 addrspace(1)* %188, align 4 %190 = call { i32, i32 } asm "{\0A\09mad.lo.cc.u32 $0, $2, $3, $4;\0A\09madc.hi.u32 $1, $2, $3, 0;\0A\09}", "=r,=r,r,r,r"(i32 %189, i32 %186, i32 %hi.i.i.i.i.0134) #137, !srcloc !222 %191 = extractvalue { i32, i32 } %190, 0 %192 = extractvalue { i32, i32 } %190, 1 %193 = getelementptr inbounds [7 x i32], [7 x i32]* %result.i.i.i.i, i32 0, i32 %iq.i.i.i.i.0135 store i32 %191, i32* %193, align 4, !noalias !219 %194 = add nuw nsw i32 %iq.i.i.i.i.0135, 1 %exitcond140.not = icmp eq i32 %194, 6 br i1 %exitcond140.not, label %195, label %187, !llvm.loop !223 195: ; preds = %187 %196 = add nsw i32 %184, -128 %197 = lshr i32 %196, 5 %198 = and i32 %182, -2147483648 %199 = getelementptr inbounds [7 x i32], [7 x i32]* %result.i.i.i.i, i32 0, i32 6 store i32 %192, i32* %199, align 4, !noalias !219 %200 = and i32 %183, 31 %201 = sub nsw i32 6, %197 %202 = getelementptr inbounds [7 x i32], [7 x i32]* %result.i.i.i.i, i32 0, i32 %201 %203 = load i32, i32* %202, align 4 %204 = sub nsw i32 5, %197 %205 = getelementptr inbounds [7 x i32], [7 x i32]* %result.i.i.i.i, i32 0, i32 %204 %206 = load i32, i32* %205, align 4 %.not112 = icmp eq i32 %200, 0 br i1 %.not112, label %__internal_trig_reduction_slowpath.exit.i.i.i, label %207 207: ; preds = %195 %208 = sub nsw i32 4, %197 %209 = sub nuw nsw i32 32, %200 %210 = shl i32 %203, %200 %211 = lshr i32 %206, %209 %212 = add i32 %211, %210 %213 = shl i32 %206, %200 %214 = getelementptr inbounds [7 x i32], [7 x i32]* %result.i.i.i.i, i32 0, i32 %208 %215 = load i32, i32* %214, align 4 %216 = lshr i32 %215, %209 %217 = add i32 %216, %213 br label %__internal_trig_reduction_slowpath.exit.i.i.i __internal_trig_reduction_slowpath.exit.i.i.i: ; preds = %207, %195 %hi.i.i.i.i.1 = phi i32 [ %212, %207 ], [ %203, %195 ] %lo.i.i.i.i.0 = phi i32 [ %217, %207 ], [ %206, %195 ] %218 = lshr i32 %hi.i.i.i.i.1, 30 %219 = call i32 @llvm.fshl.i32(i32 %hi.i.i.i.i.1, i32 %lo.i.i.i.i.0, i32 noundef 2) %220 = shl i32 %lo.i.i.i.i.0, 2 %221 = lshr i32 %219, 31 %222 = add nuw nsw i32 %221, %218 %.not113 = icmp eq i32 %198, 0 %223 = sub nsw i32 0, %222 %spec.select = select i1 %.not113, i32 %222, i32 %223 %.not114 = icmp sgt i32 %219, -1 %224 = xor i32 %198, -2147483648 %s.i.i.i.i.0 = select i1 %.not114, i32 %198, i32 %224 %not..not114 = xor i1 %.not114, true %225 = sext i1 %not..not114 to i32 %hi.i.i.i.i.2 = xor i32 %219, %225 %lo.i.i.i.i.1 = xor i32 %220, %225 %226 = zext i32 %hi.i.i.i.i.2 to i64 %227 = shl nuw i64 %226, 32 %228 = zext i32 %lo.i.i.i.i.1 to i64 %229 = or i64 %227, %228 %230 = sitofp i64 %229 to double %231 = fmul double %230, 0x3BF921FB54442D19 %232 = fptrunc double %231 to float %.not116 = icmp eq i32 %s.i.i.i.i.0, 0 %233 = fneg float %232 %r.i.i.i.i.0 = select i1 %.not116, float %232, float %233 br label %__internal_trig_reduction_kernel.exit.i.i __internal_trig_reduction_kernel.exit.i.i: ; preds = %__nv_fmul_rn.exit.i.i.i, %__internal_trig_reduction_slowpath.exit.i.i.i, %__nv_rsqrtf.exit.i %i.i.i.1 = phi i32 [ %.054, %__nv_rsqrtf.exit.i ], [ 0, %__nv_fmul_rn.exit.i.i.i ], [ %spec.select, %__internal_trig_reduction_slowpath.exit.i.i.i ] %t.i.i.i.1 = phi float [ %.057, %__nv_rsqrtf.exit.i ], [ %.060, %__nv_fmul_rn.exit.i.i.i ], [ %r.i.i.i.i.0, %__internal_trig_reduction_slowpath.exit.i.i.i ] %234 = and i32 %i.i.i.1, 3 %235 = uitofp i32 %234 to float %236 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not97 = icmp eq i32 %236, 0 %237 = call float @llvm.nvvm.fma.rn.ftz.f(float %235, float noundef 0x3FF921FB60000000, float noundef 0xBFE921FB60000000) #135 %238 = call float @llvm.fma.f32(float %235, float noundef 0x3FF921FB60000000, float noundef 0xBFE921FB60000000) %.061 = select i1 %.not97, float %238, float %237 %239 = fadd float %t.i.i.i.1, %.061 %240 = fmul float %239, 0x3FE45F3060000000 %241 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not98 = icmp eq i32 %241, 0 %242 = call i32 @llvm.nvvm.f2i.rn.ftz(float %240) #135 %243 = call i32 @llvm.nvvm.f2i.rn(float %240) #135 %.062 = select i1 %.not98, i32 %243, i32 %242 %244 = sitofp i32 %.062 to float %245 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not99 = icmp eq i32 %245, 0 %246 = call float @llvm.nvvm.fma.rn.ftz.f(float %244, float noundef 0xBFF921FB40000000, float %239) #135 %247 = call float @llvm.fma.f32(float %244, float noundef 0xBFF921FB40000000, float %239) %.064 = select i1 %.not99, float %247, float %246 %248 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not100 = icmp eq i32 %248, 0 %249 = call float @llvm.nvvm.fma.rn.ftz.f(float %244, float noundef 0xBE74442D00000000, float %.064) #135 %250 = call float @llvm.fma.f32(float %244, float noundef 0xBE74442D00000000, float %.064) %.065 = select i1 %.not100, float %250, float %249 %251 = add i32 %.062, 1 %252 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not101 = icmp eq i32 %252, 0 %253 = call float @llvm.nvvm.mul.rn.ftz.f(float %.065, float %.065) #135 %254 = fmul float %.065, %.065 %.066 = select i1 %.not101, float %254, float %253 %255 = and i32 %251, 1 %.not102 = icmp eq i32 %255, 0 %256 = select i1 %.not102, float %.065, float 1.000000e+00 %257 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not103 = icmp eq i32 %257, 0 %258 = call float @llvm.nvvm.fma.rn.ftz.f(float %.066, float %256, float noundef 0.000000e+00) #135 %259 = call float @llvm.fma.f32(float %.066, float %256, float noundef 0.000000e+00) %.068 = select i1 %.not103, float %259, float %258 br i1 %.not102, label %__internal_fmad.exit2.i.i.i, label %__internal_fmad.exit1.i.i.i __internal_fmad.exit1.i.i.i: ; preds = %__internal_trig_reduction_kernel.exit.i.i %260 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not110 = icmp eq i32 %260, 0 %261 = call float @llvm.nvvm.fma.rn.ftz.f(float noundef 0x3EF9758000000000, float %.066, float noundef 0xBF56C0FDA0000000) #135 %262 = call float @llvm.fma.f32(float %.066, float noundef 0x3EF9758000000000, float noundef 0xBF56C0FDA0000000) %.069 = select i1 %.not110, float %262, float %261 br label %__internal_fmad.exit2.i.i.i __internal_fmad.exit2.i.i.i: ; preds = %__internal_trig_reduction_kernel.exit.i.i, %__internal_fmad.exit1.i.i.i %263 = phi float [ 0xBFC5555500000000, %__internal_trig_reduction_kernel.exit.i.i ], [ 0xBFDFFFFFE0000000, %__internal_fmad.exit1.i.i.i ] %264 = phi float [ 0x3F8110BC80000000, %__internal_trig_reduction_kernel.exit.i.i ], [ 0x3FA5555760000000, %__internal_fmad.exit1.i.i.i ] %265 = phi float [ 0xBF29A82A60000000, %__internal_trig_reduction_kernel.exit.i.i ], [ %.069, %__internal_fmad.exit1.i.i.i ] %266 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not104 = icmp eq i32 %266, 0 %267 = call float @llvm.nvvm.fma.rn.ftz.f(float %265, float %.066, float noundef %264) #135 %268 = call float @llvm.fma.f32(float %265, float %.066, float noundef %264) %.071 = select i1 %.not104, float %268, float %267 %269 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not105 = icmp eq i32 %269, 0 %270 = call float @llvm.nvvm.fma.rn.ftz.f(float %.071, float %.066, float noundef %263) #135 %271 = call float @llvm.fma.f32(float %.071, float %.066, float noundef %263) %.073 = select i1 %.not105, float %271, float %270 %272 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not106 = icmp eq i32 %272, 0 %273 = call float @llvm.nvvm.fma.rn.ftz.f(float %.073, float %.068, float %256) #135 %274 = call float @llvm.fma.f32(float %.073, float %.068, float %256) %.074 = select i1 %.not106, float %274, float %273 %275 = and i32 %251, 2 %.not107 = icmp eq i32 %275, 0 br i1 %.not107, label %__internal_cos_offset_f.exit.i, label %__internal_fmad.exit5.i.i.i __internal_fmad.exit5.i.i.i: ; preds = %__internal_fmad.exit2.i.i.i %276 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not109 = icmp eq i32 %276, 0 %277 = call float @llvm.nvvm.fma.rn.ftz.f(float %.074, float noundef -1.000000e+00, float noundef 0.000000e+00) #135 %278 = call float @llvm.fma.f32(float %.074, float noundef -1.000000e+00, float noundef 0.000000e+00) %.075 = select i1 %.not109, float %278, float %277 br label %__internal_cos_offset_f.exit.i __internal_cos_offset_f.exit.i: ; preds = %__internal_fmad.exit5.i.i.i, %__internal_fmad.exit2.i.i.i %z.i.i.i.0 = phi float [ %.075, %__internal_fmad.exit5.i.i.i ], [ %.074, %__internal_fmad.exit2.i.i.i ] %279 = fmul float %157, %z.i.i.i.0 br label %__nv_j0f.exit __nv_j0f.exit: ; preds = %__internal_cos_offset_f.exit.i, %__nv_isinff.exit.i, %__internal_fmad.exit.i %r.i5.1 = phi float [ %120, %__internal_fmad.exit.i ], [ %279, %__internal_cos_offset_f.exit.i ], [ 0.000000e+00, %__nv_isinff.exit.i ] %280 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not108 = icmp eq i32 %280, 0 %281 = call float @llvm.nvvm.fma.rn.ftz.f(float %68, float %r.i5.1, float %.07) #135 %282 = call float @llvm.fma.f32(float %68, float %r.i5.1, float %.07) %.077 = select i1 %.not108, float %282, float %281 br label %541 283: ; preds = %__nv_fabsf.exit %284 = fcmp ugt float %.01, 0x3FFECF5F00000000 br i1 %284, label %324, label %__internal_fmad.exit9 __internal_fmad.exit9: ; preds = %283 %285 = fadd float %.01, 0xBFEC982EC0000000 %286 = fadd float %285, 0x3E4CAFA060000000 %287 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not53 = icmp eq i32 %287, 0 %288 = call float @llvm.nvvm.fma.rn.ftz.f(float noundef 0x3F9BB91660000000, float %286, float noundef 0xBFC04AE980000000) #135 %289 = call float @llvm.fma.f32(float %286, float noundef 0x3F9BB91660000000, float noundef 0xBFC04AE980000000) %.078 = select i1 %.not53, float %289, float %288 %290 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not54 = icmp eq i32 %290, 0 %291 = call float @llvm.nvvm.fma.rn.ftz.f(float %.078, float %286, float noundef 0x3FCFE59920000000) #135 %292 = call float @llvm.fma.f32(float %.078, float %286, float noundef 0x3FCFE59920000000) %.079 = select i1 %.not54, float %292, float %291 %293 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not55 = icmp eq i32 %293, 0 %294 = call float @llvm.nvvm.fma.rn.ftz.f(float %.079, float %286, float noundef 0xBFD17E5360000000) #135 %295 = call float @llvm.fma.f32(float %.079, float %286, float noundef 0xBFD17E5360000000) %.081 = select i1 %.not55, float %295, float %294 %296 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not56 = icmp eq i32 %296, 0 %297 = call float @llvm.nvvm.fma.rn.ftz.f(float %.081, float %286, float noundef 0x3FCB79D260000000) #135 %298 = call float @llvm.fma.f32(float %.081, float %286, float noundef 0x3FCB79D260000000) %.082 = select i1 %.not56, float %298, float %297 %299 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not57 = icmp eq i32 %299, 0 %300 = call float @llvm.nvvm.fma.rn.ftz.f(float %.082, float %286, float noundef 0xBFC7189FE0000000) #135 %301 = call float @llvm.fma.f32(float %.082, float %286, float noundef 0xBFC7189FE0000000) %.083 = select i1 %.not57, float %301, float %300 %302 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not58 = icmp eq i32 %302, 0 %303 = call float @llvm.nvvm.fma.rn.ftz.f(float %.083, float %286, float noundef 0x3FC84EE9A0000000) #135 %304 = call float @llvm.fma.f32(float %.083, float %286, float noundef 0x3FC84EE9A0000000) %.085 = select i1 %.not58, float %304, float %303 %305 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not59 = icmp eq i32 %305, 0 %306 = call float @llvm.nvvm.fma.rn.ftz.f(float %.085, float %286, float noundef 0xBFCA4B9640000000) #135 %307 = call float @llvm.fma.f32(float %.085, float %286, float noundef 0xBFCA4B9640000000) %.086 = select i1 %.not59, float %307, float %306 %308 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not60 = icmp eq i32 %308, 0 %309 = call float @llvm.nvvm.fma.rn.ftz.f(float %.086, float %286, float noundef 0x3FCC1E87A0000000) #135 %310 = call float @llvm.fma.f32(float %.086, float %286, float noundef 0x3FCC1E87A0000000) %.087 = select i1 %.not60, float %310, float %309 %311 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not61 = icmp eq i32 %311, 0 %312 = call float @llvm.nvvm.fma.rn.ftz.f(float %.087, float %286, float noundef 0xBFCCF228A0000000) #135 %313 = call float @llvm.fma.f32(float %.087, float %286, float noundef 0xBFCCF228A0000000) %.088 = select i1 %.not61, float %313, float %312 %314 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not62 = icmp eq i32 %314, 0 %315 = call float @llvm.nvvm.fma.rn.ftz.f(float %.088, float %286, float noundef 0x3FCC3A4940000000) #135 %316 = call float @llvm.fma.f32(float %.088, float %286, float noundef 0x3FCC3A4940000000) %.089 = select i1 %.not62, float %316, float %315 %317 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not63 = icmp eq i32 %317, 0 %318 = call float @llvm.nvvm.fma.rn.ftz.f(float %.089, float %286, float noundef 0xBFDF7E35A0000000) #135 %319 = call float @llvm.fma.f32(float %.089, float %286, float noundef 0xBFDF7E35A0000000) %.090 = select i1 %.not63, float %319, float %318 %320 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not64 = icmp eq i32 %320, 0 %321 = call float @llvm.nvvm.fma.rn.ftz.f(float %.090, float %286, float noundef 0x3FEC243760000000) #135 %322 = call float @llvm.fma.f32(float %.090, float %286, float noundef 0x3FEC243760000000) %.092 = select i1 %.not64, float %322, float %321 %323 = fmul float %286, %.092 br label %541 324: ; preds = %283 %325 = fcmp ugt float %.01, 0x40161663C0000000 br i1 %325, label %356, label %__internal_fmad.exit33 __internal_fmad.exit33: ; preds = %324 %326 = fadd float %.01, 0xC00FA95340000000 %327 = fadd float %326, 0xBE7B30AD40000000 %328 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not44 = icmp eq i32 %328, 0 %329 = call float @llvm.nvvm.fma.rn.ftz.f(float noundef 0xBE893BA7E0000000, float %327, float noundef 0xBE8BC4C0E0000000) #135 %330 = call float @llvm.fma.f32(float %327, float noundef 0xBE893BA7E0000000, float noundef 0xBE8BC4C0E0000000) %.094 = select i1 %.not44, float %330, float %329 %331 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not45 = icmp eq i32 %331, 0 %332 = call float @llvm.nvvm.fma.rn.ftz.f(float %.094, float %327, float noundef 0xBED0AE0C80000000) #135 %333 = call float @llvm.fma.f32(float %.094, float %327, float noundef 0xBED0AE0C80000000) %.095 = select i1 %.not45, float %333, float %332 %334 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not46 = icmp eq i32 %334, 0 %335 = call float @llvm.nvvm.fma.rn.ftz.f(float %.095, float %327, float noundef 0x3F0AA8C200000000) #135 %336 = call float @llvm.fma.f32(float %.095, float %327, float noundef 0x3F0AA8C200000000) %.096 = select i1 %.not46, float %336, float %335 %337 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not47 = icmp eq i32 %337, 0 %338 = call float @llvm.nvvm.fma.rn.ftz.f(float %.096, float %327, float noundef 0x3F2959DAE0000000) #135 %339 = call float @llvm.fma.f32(float %.096, float %327, float noundef 0x3F2959DAE0000000) %.097 = select i1 %.not47, float %339, float %338 %340 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not48 = icmp eq i32 %340, 0 %341 = call float @llvm.nvvm.fma.rn.ftz.f(float %.097, float %327, float noundef 0xBF61E34180000000) #135 %342 = call float @llvm.fma.f32(float %.097, float %327, float noundef 0xBF61E34180000000) %.098 = select i1 %.not48, float %342, float %341 %343 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not49 = icmp eq i32 %343, 0 %344 = call float @llvm.nvvm.fma.rn.ftz.f(float %.098, float %327, float noundef 0xBF7C0FE5C0000000) #135 %345 = call float @llvm.fma.f32(float %.098, float %327, float noundef 0xBF7C0FE5C0000000) %.099 = select i1 %.not49, float %345, float %344 %346 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not50 = icmp eq i32 %346, 0 %347 = call float @llvm.nvvm.fma.rn.ftz.f(float %.099, float %327, float noundef 0x3FADF6D6A0000000) #135 %348 = call float @llvm.fma.f32(float %.099, float %327, float noundef 0x3FADF6D6A0000000) %.0101 = select i1 %.not50, float %348, float %347 %349 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not51 = icmp eq i32 %349, 0 %350 = call float @llvm.nvvm.fma.rn.ftz.f(float %.0101, float %327, float noundef 0x3FAA09BE20000000) #135 %351 = call float @llvm.fma.f32(float %.0101, float %327, float noundef 0x3FAA09BE20000000) %.0102 = select i1 %.not51, float %351, float %350 %352 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not52 = icmp eq i32 %352, 0 %353 = call float @llvm.nvvm.fma.rn.ftz.f(float %.0102, float %327, float noundef 0xBFD9C34260000000) #135 %354 = call float @llvm.fma.f32(float %.0102, float %327, float noundef 0xBFD9C34260000000) %.0103 = select i1 %.not52, float %354, float %353 %355 = fmul float %327, %.0103 br label %541 356: ; preds = %324 %357 = fcmp ugt float %.01, 0x40214EF300000000 br i1 %357, label %__nv_isinff.exit, label %__internal_fmad.exit51 __internal_fmad.exit51: ; preds = %356 %358 = fadd float %.01, 0xC01C581DC0000000 %359 = fadd float %358, 0xBE739C8400000000 %360 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not36 = icmp eq i32 %360, 0 %361 = call float @llvm.nvvm.fma.rn.ftz.f(float noundef 0x3EA219D7C0000000, float %359, float noundef 0x3EC53B4D80000000) #135 %362 = call float @llvm.fma.f32(float %359, float noundef 0x3EA219D7C0000000, float noundef 0x3EC53B4D80000000) %.0104 = select i1 %.not36, float %362, float %361 %363 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not37 = icmp eq i32 %363, 0 %364 = call float @llvm.nvvm.fma.rn.ftz.f(float %.0104, float %359, float noundef 0xBF080A9800000000) #135 %365 = call float @llvm.fma.f32(float %.0104, float %359, float noundef 0xBF080A9800000000) %.0105 = select i1 %.not37, float %365, float %364 %366 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not38 = icmp eq i32 %366, 0 %367 = call float @llvm.nvvm.fma.rn.ftz.f(float %.0105, float %359, float noundef 0xBF22631560000000) #135 %368 = call float @llvm.fma.f32(float %.0105, float %359, float noundef 0xBF22631560000000) %.0106 = select i1 %.not38, float %368, float %367 %369 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not39 = icmp eq i32 %369, 0 %370 = call float @llvm.nvvm.fma.rn.ftz.f(float %.0106, float %359, float noundef 0x3F61D32420000000) #135 %371 = call float @llvm.fma.f32(float %.0106, float %359, float noundef 0x3F61D32420000000) %.0108 = select i1 %.not39, float %371, float %370 %372 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not40 = icmp eq i32 %372, 0 %373 = call float @llvm.nvvm.fma.rn.ftz.f(float %.0108, float %359, float noundef 0x3F6B2E9AA0000000) #135 %374 = call float @llvm.fma.f32(float %.0108, float %359, float noundef 0x3F6B2E9AA0000000) %.0109 = select i1 %.not40, float %374, float %373 %375 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not41 = icmp eq i32 %375, 0 %376 = call float @llvm.nvvm.fma.rn.ftz.f(float %.0109, float %359, float noundef 0xBFA8969AE0000000) #135 %377 = call float @llvm.fma.f32(float %.0109, float %359, float noundef 0xBFA8969AE0000000) %.0110 = select i1 %.not41, float %377, float %376 %378 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not42 = icmp eq i32 %378, 0 %379 = call float @llvm.nvvm.fma.rn.ftz.f(float %.0110, float %359, float noundef 0xBF95AEF320000000) #135 %380 = call float @llvm.fma.f32(float %.0110, float %359, float noundef 0xBF95AEF320000000) %.0111 = select i1 %.not42, float %380, float %379 %381 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not43 = icmp eq i32 %381, 0 %382 = call float @llvm.nvvm.fma.rn.ftz.f(float %.0111, float %359, float noundef 0x3FD334CCA0000000) #135 %383 = call float @llvm.fma.f32(float %.0111, float %359, float noundef 0x3FD334CCA0000000) %.0112 = select i1 %.not43, float %383, float %382 %384 = fmul float %359, %.0112 br label %541 __nv_isinff.exit: ; preds = %356 %385 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not2 = icmp eq i32 %385, 0 %386 = call float @llvm.nvvm.fabs.ftz.f(float %.01) #135 %387 = call float @llvm.fabs.f32(float %.01) %.0113 = select i1 %.not2, float %387, float %386 %388 = fcmp oeq float %.0113, 0x7FF0000000000000 br i1 %388, label %541, label %__internal_fmad.exit70 __internal_fmad.exit70: ; preds = %__nv_isinff.exit %389 = call float asm "rcp.approx.ftz.f32 $0,$1;", "=f,f"(float %.01) #137, !srcloc !225 %390 = fmul float %389, %389 %391 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not3 = icmp eq i32 %391, 0 %392 = call float @llvm.nvvm.fma.rn.ftz.f(float noundef 0xBFD98D3E60000000, float %390, float noundef 0x3FBA1ABE00000000) #135 %393 = call float @llvm.fma.f32(float %390, float noundef 0xBFD98D3E60000000, float noundef 0x3FBA1ABE00000000) %.0115 = select i1 %.not3, float %393, float %392 %394 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not4 = icmp eq i32 %394, 0 %395 = call float @llvm.nvvm.fma.rn.ftz.f(float %.0115, float %390, float noundef 0xBFAFFF0AA0000000) #135 %396 = call float @llvm.fma.f32(float %.0115, float %390, float noundef 0xBFAFFF0AA0000000) %.0116 = select i1 %.not4, float %396, float %395 %397 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not5 = icmp eq i32 %397, 0 %398 = call float @llvm.nvvm.fma.rn.ftz.f(float %.0116, float %390, float noundef 1.000000e+00) #135 %399 = call float @llvm.fma.f32(float %.0116, float %390, float noundef 1.000000e+00) %.0117 = select i1 %.not5, float %399, float %398 %400 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not6 = icmp eq i32 %400, 0 %401 = call float @llvm.nvvm.fma.rn.ftz.f(float noundef 0x3FF199AC20000000, float %390, float noundef 0xBFCA1A6380000000) #135 %402 = call float @llvm.fma.f32(float %390, float noundef 0x3FF199AC20000000, float noundef 0xBFCA1A6380000000) %.0114 = select i1 %.not6, float %402, float %401 %403 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not7 = icmp eq i32 %403, 0 %404 = call float @llvm.nvvm.fma.rn.ftz.f(float %.0114, float %390, float noundef 0x3FB0A8F060000000) #135 %405 = call float @llvm.fma.f32(float %.0114, float %390, float noundef 0x3FB0A8F060000000) %.0107 = select i1 %.not7, float %405, float %404 %406 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not8 = icmp eq i32 %406, 0 %407 = call float @llvm.nvvm.fma.rn.ftz.f(float %.0107, float %390, float noundef 0xBFBFFFFF60000000) #135 %408 = call float @llvm.fma.f32(float %.0107, float %390, float noundef 0xBFBFFFFF60000000) %.0100 = select i1 %.not8, float %408, float %407 %409 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not9 = icmp eq i32 %409, 0 %410 = call float @llvm.nvvm.fma.rn.ftz.f(float %.0100, float %389, float %.01) #135 %411 = call float @llvm.fma.f32(float %.0100, float %389, float %.01) %.093 = select i1 %.not9, float %411, float %410 %412 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not10 = icmp eq i32 %412, 0 br i1 %.not10, label %415, label %413 413: ; preds = %__internal_fmad.exit70 %414 = call float @llvm.nvvm.rsqrt.approx.ftz.f(float %.01) #135 br label %__nv_rsqrtf.exit 415: ; preds = %__internal_fmad.exit70 %416 = call float @llvm.nvvm.rsqrt.approx.f(float %.01) #135 br label %__nv_rsqrtf.exit __nv_rsqrtf.exit: ; preds = %415, %413 %.091 = phi float [ %414, %413 ], [ %416, %415 ] %417 = fmul float %.091, 0x3FE9884540000000 %418 = fmul float %.0117, %417 %419 = fmul float %.093, 0x3FE45F3060000000 %420 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not11 = icmp eq i32 %420, 0 %421 = call i32 @llvm.nvvm.f2i.rn.ftz(float %419) #135 %422 = call i32 @llvm.nvvm.f2i.rn(float %419) #135 %.084 = select i1 %.not11, i32 %422, i32 %421 %423 = sitofp i32 %.084 to float %424 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not12 = icmp eq i32 %424, 0 %425 = call float @llvm.nvvm.fma.rn.ftz.f(float %423, float noundef 0xBFF921FB40000000, float %.093) #135 %426 = call float @llvm.fma.f32(float %423, float noundef 0xBFF921FB40000000, float %.093) %.080 = select i1 %.not12, float %426, float %425 %427 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not13 = icmp eq i32 %427, 0 %428 = call float @llvm.nvvm.fma.rn.ftz.f(float %423, float noundef 0xBE74442D00000000, float %.080) #135 %429 = call float @llvm.fma.f32(float %423, float noundef 0xBE74442D00000000, float %.080) %.076 = select i1 %.not13, float %429, float %428 %430 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not14 = icmp eq i32 %430, 0 %431 = call float @llvm.nvvm.fma.rn.ftz.f(float %423, float noundef 0xBCF84698A0000000, float %.076) #135 %432 = call float @llvm.fma.f32(float %423, float noundef 0xBCF84698A0000000, float %.076) %.072 = select i1 %.not14, float %432, float %431 %433 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not15 = icmp eq i32 %433, 0 %434 = call float @llvm.nvvm.fabs.ftz.f(float %.093) #135 %435 = call float @llvm.fabs.f32(float %.093) %.070 = select i1 %.not15, float %435, float %434 %436 = fcmp ult float %.070, 1.056150e+05 br i1 %436, label %__internal_trig_reduction_kernel.exit.i, label %__nv_isinff.exit.i.i __nv_isinff.exit.i.i: ; preds = %__nv_rsqrtf.exit %437 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not29 = icmp eq i32 %437, 0 %.067 = select i1 %.not29, float %435, float %434 %438 = fcmp oeq float %.067, 0x7FF0000000000000 br i1 %438, label %__nv_fmul_rn.exit.i.i, label %442 __nv_fmul_rn.exit.i.i: ; preds = %__nv_isinff.exit.i.i %439 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not35 = icmp eq i32 %439, 0 %440 = call float @llvm.nvvm.mul.rn.ftz.f(float %.093, float noundef 0.000000e+00) #135 %441 = fmul float %.093, 0.000000e+00 %.063 = select i1 %.not35, float %441, float %440 br label %__internal_trig_reduction_kernel.exit.i 442: ; preds = %__nv_isinff.exit.i.i %443 = bitcast float %.093 to i32 %444 = lshr i32 %443, 23 %445 = and i32 %444, 255 %446 = shl i32 %443, 8 %447 = or i32 %446, -2147483648 br label %448 448: ; preds = %442, %448 %hi.i.i.i.0133 = phi i32 [ 0, %442 ], [ %453, %448 ] %iq.i.i.i.0132 = phi i32 [ 0, %442 ], [ %455, %448 ] %449 = getelementptr inbounds [6 x i32], [6 x i32] addrspace(1)* @__cudart_i2opi_f, i32 0, i32 %iq.i.i.i.0132 %450 = load i32, i32 addrspace(1)* %449, align 4 %451 = call { i32, i32 } asm "{\0A\09mad.lo.cc.u32 $0, $2, $3, $4;\0A\09madc.hi.u32 $1, $2, $3, 0;\0A\09}", "=r,=r,r,r,r"(i32 %450, i32 %447, i32 %hi.i.i.i.0133) #137, !srcloc !222 %452 = extractvalue { i32, i32 } %451, 0 %453 = extractvalue { i32, i32 } %451, 1 %454 = getelementptr inbounds [7 x i32], [7 x i32]* %result.i.i.i.i, i32 0, i32 %iq.i.i.i.0132 store i32 %452, i32* %454, align 4, !noalias !219 %455 = add nuw nsw i32 %iq.i.i.i.0132, 1 %exitcond.not = icmp eq i32 %455, 6 br i1 %exitcond.not, label %456, label %448, !llvm.loop !223 456: ; preds = %448 %457 = add nsw i32 %445, -128 %458 = lshr i32 %457, 5 %459 = and i32 %443, -2147483648 %460 = getelementptr inbounds [7 x i32], [7 x i32]* %result.i.i.i.i, i32 0, i32 6 store i32 %453, i32* %460, align 4, !noalias !219 %461 = and i32 %444, 31 %462 = sub nsw i32 6, %458 %463 = getelementptr inbounds [7 x i32], [7 x i32]* %result.i.i.i.i, i32 0, i32 %462 %464 = load i32, i32* %463, align 4 %465 = sub nsw i32 5, %458 %466 = getelementptr inbounds [7 x i32], [7 x i32]* %result.i.i.i.i, i32 0, i32 %465 %467 = load i32, i32* %466, align 4 %.not30 = icmp eq i32 %461, 0 br i1 %.not30, label %__internal_trig_reduction_slowpath.exit.i.i, label %468 468: ; preds = %456 %469 = sub nsw i32 4, %458 %470 = sub nuw nsw i32 32, %461 %471 = shl i32 %464, %461 %472 = lshr i32 %467, %470 %473 = add i32 %472, %471 %474 = shl i32 %467, %461 %475 = getelementptr inbounds [7 x i32], [7 x i32]* %result.i.i.i.i, i32 0, i32 %469 %476 = load i32, i32* %475, align 4 %477 = lshr i32 %476, %470 %478 = add i32 %477, %474 br label %__internal_trig_reduction_slowpath.exit.i.i __internal_trig_reduction_slowpath.exit.i.i: ; preds = %468, %456 %lo.i.i.i.0 = phi i32 [ %478, %468 ], [ %467, %456 ] %hi.i.i.i.1 = phi i32 [ %473, %468 ], [ %464, %456 ] %479 = lshr i32 %hi.i.i.i.1, 30 %480 = call i32 @llvm.fshl.i32(i32 %hi.i.i.i.1, i32 %lo.i.i.i.0, i32 noundef 2) %481 = shl i32 %lo.i.i.i.0, 2 %482 = lshr i32 %480, 31 %483 = add nuw nsw i32 %482, %479 %.not31 = icmp eq i32 %459, 0 %484 = sub nsw i32 0, %483 %spec.select1 = select i1 %.not31, i32 %483, i32 %484 %.not32 = icmp sgt i32 %480, -1 %485 = xor i32 %459, -2147483648 %not..not32 = xor i1 %.not32, true %486 = sext i1 %not..not32 to i32 %lo.i.i.i.1 = xor i32 %481, %486 %hi.i.i.i.2 = xor i32 %480, %486 %s.i.i.i.0 = select i1 %.not32, i32 %459, i32 %485 %487 = zext i32 %hi.i.i.i.2 to i64 %488 = shl nuw i64 %487, 32 %489 = zext i32 %lo.i.i.i.1 to i64 %490 = or i64 %488, %489 %491 = sitofp i64 %490 to double %492 = fmul double %491, 0x3BF921FB54442D19 %493 = fptrunc double %492 to float %.not34 = icmp eq i32 %s.i.i.i.0, 0 %494 = fneg float %493 %r.i.i.i.0 = select i1 %.not34, float %493, float %494 br label %__internal_trig_reduction_kernel.exit.i __internal_trig_reduction_kernel.exit.i: ; preds = %__nv_fmul_rn.exit.i.i, %__internal_trig_reduction_slowpath.exit.i.i, %__nv_rsqrtf.exit %i.i85.1 = phi i32 [ %.084, %__nv_rsqrtf.exit ], [ 0, %__nv_fmul_rn.exit.i.i ], [ %spec.select1, %__internal_trig_reduction_slowpath.exit.i.i ] %t.i.i.1 = phi float [ %.072, %__nv_rsqrtf.exit ], [ %.063, %__nv_fmul_rn.exit.i.i ], [ %r.i.i.i.0, %__internal_trig_reduction_slowpath.exit.i.i ] %495 = and i32 %i.i85.1, 3 %496 = uitofp i32 %495 to float %497 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not16 = icmp eq i32 %497, 0 %498 = call float @llvm.nvvm.fma.rn.ftz.f(float %496, float noundef 0x3FF921FB60000000, float noundef 0xC002D97C80000000) #135 %499 = call float @llvm.fma.f32(float %496, float noundef 0x3FF921FB60000000, float noundef 0xC002D97C80000000) %.052 = select i1 %.not16, float %499, float %498 %500 = fadd float %t.i.i.1, %.052 %501 = fmul float %500, 0x3FE45F3060000000 %502 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not17 = icmp eq i32 %502, 0 %503 = call i32 @llvm.nvvm.f2i.rn.ftz(float %501) #135 %504 = call i32 @llvm.nvvm.f2i.rn(float %501) #135 %.050 = select i1 %.not17, i32 %504, i32 %503 %505 = sitofp i32 %.050 to float %506 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not18 = icmp eq i32 %506, 0 %507 = call float @llvm.nvvm.fma.rn.ftz.f(float %505, float noundef 0xBFF921FB40000000, float %500) #135 %508 = call float @llvm.fma.f32(float %505, float noundef 0xBFF921FB40000000, float %500) %.046 = select i1 %.not18, float %508, float %507 %509 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not19 = icmp eq i32 %509, 0 %510 = call float @llvm.nvvm.fma.rn.ftz.f(float %505, float noundef 0xBE74442D00000000, float %.046) #135 %511 = call float @llvm.fma.f32(float %505, float noundef 0xBE74442D00000000, float %.046) %.042 = select i1 %.not19, float %511, float %510 %512 = add i32 %.050, 1 %513 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not20 = icmp eq i32 %513, 0 %514 = call float @llvm.nvvm.mul.rn.ftz.f(float %.042, float %.042) #135 %515 = fmul float %.042, %.042 %.033 = select i1 %.not20, float %515, float %514 %516 = and i32 %512, 1 %.not21 = icmp eq i32 %516, 0 %517 = select i1 %.not21, float %.042, float 1.000000e+00 %518 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not22 = icmp eq i32 %518, 0 %519 = call float @llvm.nvvm.fma.rn.ftz.f(float %.033, float %517, float noundef 0.000000e+00) #135 %520 = call float @llvm.fma.f32(float %.033, float %517, float noundef 0.000000e+00) %.026 = select i1 %.not22, float %520, float %519 br i1 %.not21, label %__internal_fmad.exit2.i.i, label %__internal_fmad.exit1.i.i __internal_fmad.exit1.i.i: ; preds = %__internal_trig_reduction_kernel.exit.i %521 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not28 = icmp eq i32 %521, 0 %522 = call float @llvm.nvvm.fma.rn.ftz.f(float noundef 0x3EF9758000000000, float %.033, float noundef 0xBF56C0FDA0000000) #135 %523 = call float @llvm.fma.f32(float %.033, float noundef 0x3EF9758000000000, float noundef 0xBF56C0FDA0000000) %.022 = select i1 %.not28, float %523, float %522 br label %__internal_fmad.exit2.i.i __internal_fmad.exit2.i.i: ; preds = %__internal_trig_reduction_kernel.exit.i, %__internal_fmad.exit1.i.i %524 = phi float [ 0xBFC5555500000000, %__internal_trig_reduction_kernel.exit.i ], [ 0xBFDFFFFFE0000000, %__internal_fmad.exit1.i.i ] %525 = phi float [ 0x3F8110BC80000000, %__internal_trig_reduction_kernel.exit.i ], [ 0x3FA5555760000000, %__internal_fmad.exit1.i.i ] %526 = phi float [ 0xBF29A82A60000000, %__internal_trig_reduction_kernel.exit.i ], [ %.022, %__internal_fmad.exit1.i.i ] %527 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not23 = icmp eq i32 %527, 0 %528 = call float @llvm.nvvm.fma.rn.ftz.f(float %526, float %.033, float noundef %525) #135 %529 = call float @llvm.fma.f32(float %526, float %.033, float noundef %525) %.015 = select i1 %.not23, float %529, float %528 %530 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not24 = icmp eq i32 %530, 0 %531 = call float @llvm.nvvm.fma.rn.ftz.f(float %.015, float %.033, float noundef %524) #135 %532 = call float @llvm.fma.f32(float %.015, float %.033, float noundef %524) %.08 = select i1 %.not24, float %532, float %531 %533 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not25 = icmp eq i32 %533, 0 %534 = call float @llvm.nvvm.fma.rn.ftz.f(float %.08, float %.026, float %517) #135 %535 = call float @llvm.fma.f32(float %.08, float %.026, float %517) %.04 = select i1 %.not25, float %535, float %534 %536 = and i32 %512, 2 %.not26 = icmp eq i32 %536, 0 br i1 %.not26, label %__internal_cos_offset_f.exit, label %__internal_fmad.exit5.i.i __internal_fmad.exit5.i.i: ; preds = %__internal_fmad.exit2.i.i %537 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not27 = icmp eq i32 %537, 0 %538 = call float @llvm.nvvm.fma.rn.ftz.f(float %.04, float noundef -1.000000e+00, float noundef 0.000000e+00) #135 %539 = call float @llvm.fma.f32(float %.04, float noundef -1.000000e+00, float noundef 0.000000e+00) %.0 = select i1 %.not27, float %539, float %538 br label %__internal_cos_offset_f.exit __internal_cos_offset_f.exit: ; preds = %__internal_fmad.exit5.i.i, %__internal_fmad.exit2.i.i %z.i.i83.0 = phi float [ %.0, %__internal_fmad.exit5.i.i ], [ %.04, %__internal_fmad.exit2.i.i ] %540 = fmul float %418, %z.i.i83.0 br label %541 541: ; preds = %__internal_fmad.exit9, %__internal_fmad.exit51, %__nv_isinff.exit, %__internal_cos_offset_f.exit, %__internal_fmad.exit33, %__nv_j0f.exit %r.4 = phi float [ %.077, %__nv_j0f.exit ], [ %323, %__internal_fmad.exit9 ], [ %355, %__internal_fmad.exit33 ], [ %384, %__internal_fmad.exit51 ], [ %540, %__internal_cos_offset_f.exit ], [ 0.000000e+00, %__nv_isinff.exit ] %542 = fcmp olt float %a, 0.000000e+00 %r.5 = select i1 %542, float 0x7FFFFFFFE0000000, float %r.4 ret float %r.5 } ; Function Attrs: noinline nounwind define dso_local float @__nv_y1f(float %a) local_unnamed_addr #43 { __nv_fabsf.exit: %result.i.i.i.i = alloca [7 x i32], align 4 %0 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not = icmp eq i32 %0, 0 %1 = call float @llvm.nvvm.fabs.ftz.f(float %a) #135 %2 = call float @llvm.fabs.f32(float %a) %.01 = select i1 %.not, float %2, float %1 %3 = fcmp olt float %.01, 0x3810000000000000 br i1 %3, label %4, label %6 4: ; preds = %__nv_fabsf.exit %5 = fdiv float 0xBFE45F3060000000, %.01 br label %543 6: ; preds = %__nv_fabsf.exit %7 = fcmp ugt float %.01, 0x3FFB2D5880000000 br i1 %7, label %294, label %__internal_fmad.exit __internal_fmad.exit: ; preds = %6 %8 = fmul float %.01, %.01 %9 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not62 = icmp eq i32 %9, 0 %10 = call float @llvm.nvvm.fma.rn.ftz.f(float noundef 0x3E428C5980000000, float %8, float noundef 0xBEB0A4FB40000000) #135 %11 = call float @llvm.fma.f32(float %8, float noundef 0x3E428C5980000000, float noundef 0xBEB0A4FB40000000) %.02 = select i1 %.not62, float %11, float %10 %12 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not63 = icmp eq i32 %12, 0 %13 = call float @llvm.nvvm.fma.rn.ftz.f(float %.02, float %8, float noundef 0x3F12C7D2A0000000) #135 %14 = call float @llvm.fma.f32(float %.02, float %8, float noundef 0x3F12C7D2A0000000) %.03 = select i1 %.not63, float %14, float %13 %15 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not64 = icmp eq i32 %15, 0 %16 = call float @llvm.nvvm.fma.rn.ftz.f(float %.03, float %8, float noundef 0xBF6835B960000000) #135 %17 = call float @llvm.fma.f32(float %.03, float %8, float noundef 0xBF6835B960000000) %.04 = select i1 %.not64, float %17, float %16 %18 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not65 = icmp eq i32 %18, 0 %19 = call float @llvm.nvvm.fma.rn.ftz.f(float %.04, float %8, float noundef 0x3FABD39760000000) #135 %20 = call float @llvm.fma.f32(float %.04, float %8, float noundef 0x3FABD39760000000) %.06 = select i1 %.not65, float %20, float %19 %21 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not66 = icmp eq i32 %21, 0 %22 = call float @llvm.nvvm.fma.rn.ftz.f(float %.06, float %8, float noundef 0xBFC9186620000000) #135 %23 = call float @llvm.fma.f32(float %.06, float %8, float noundef 0xBFC9186620000000) %.07 = select i1 %.not66, float %23, float %22 %24 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not67 = icmp eq i32 %24, 0 %25 = call float @llvm.nvvm.fabs.ftz.f(float %.01) #135 %26 = call float @llvm.fabs.f32(float %.01) %.08 = select i1 %.not67, float %26, float %25 %27 = fcmp ugt float %.08, 8.000000e+00 br i1 %27, label %__nv_isinff.exit.i, label %__internal_fmad.exit.i __internal_fmad.exit.i: ; preds = %__internal_fmad.exit %28 = fadd float %.08, 0xC00EA75580000000 %29 = fadd float %28, 0x3E74A121E0000000 %30 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not117 = icmp eq i32 %30, 0 %31 = call float @llvm.nvvm.fma.rn.ftz.f(float noundef 0x3D35E68C60000000, float %29, float noundef 0x3D7037E840000000) #135 %32 = call float @llvm.fma.f32(float %29, float noundef 0x3D35E68C60000000, float noundef 0x3D7037E840000000) %.010 = select i1 %.not117, float %32, float %31 %33 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not118 = icmp eq i32 %33, 0 %34 = call float @llvm.nvvm.fma.rn.ftz.f(float %.010, float %29, float noundef 0xBDBC43D820000000) #135 %35 = call float @llvm.fma.f32(float %.010, float %29, float noundef 0xBDBC43D820000000) %.011 = select i1 %.not118, float %35, float %34 %36 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not119 = icmp eq i32 %36, 0 %37 = call float @llvm.nvvm.fma.rn.ftz.f(float %.011, float %29, float noundef 0xBDEBBBDFE0000000) #135 %38 = call float @llvm.fma.f32(float %.011, float %29, float noundef 0xBDEBBBDFE0000000) %.012 = select i1 %.not119, float %38, float %37 %39 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not120 = icmp eq i32 %39, 0 %40 = call float @llvm.nvvm.fma.rn.ftz.f(float %.012, float %29, float noundef 0x3E336193A0000000) #135 %41 = call float @llvm.fma.f32(float %.012, float %29, float noundef 0x3E336193A0000000) %.013 = select i1 %.not120, float %41, float %40 %42 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not121 = icmp eq i32 %42, 0 %43 = call float @llvm.nvvm.fma.rn.ftz.f(float %.013, float %29, float noundef 0x3E5D022E60000000) #135 %44 = call float @llvm.fma.f32(float %.013, float %29, float noundef 0x3E5D022E60000000) %.014 = select i1 %.not121, float %44, float %43 %45 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not122 = icmp eq i32 %45, 0 %46 = call float @llvm.nvvm.fma.rn.ftz.f(float %.014, float %29, float noundef 0xBEA1F1B900000000) #135 %47 = call float @llvm.fma.f32(float %.014, float %29, float noundef 0xBEA1F1B900000000) %.015 = select i1 %.not122, float %47, float %46 %48 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not123 = icmp eq i32 %48, 0 %49 = call float @llvm.nvvm.fma.rn.ftz.f(float %.015, float %29, float noundef 0xBEC3CCA7A0000000) #135 %50 = call float @llvm.fma.f32(float %.015, float %29, float noundef 0xBEC3CCA7A0000000) %.017 = select i1 %.not123, float %50, float %49 %51 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not124 = icmp eq i32 %51, 0 %52 = call float @llvm.nvvm.fma.rn.ftz.f(float %.017, float %29, float noundef 0x3F059B38A0000000) #135 %53 = call float @llvm.fma.f32(float %.017, float %29, float noundef 0x3F059B38A0000000) %.018 = select i1 %.not124, float %53, float %52 %54 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not125 = icmp eq i32 %54, 0 %55 = call float @llvm.nvvm.fma.rn.ftz.f(float %.018, float %29, float noundef 0x3F1F3D6200000000) #135 %56 = call float @llvm.fma.f32(float %.018, float %29, float noundef 0x3F1F3D6200000000) %.019 = select i1 %.not125, float %56, float %55 %57 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not126 = icmp eq i32 %57, 0 %58 = call float @llvm.nvvm.fma.rn.ftz.f(float %.019, float %29, float noundef 0xBF5D9D7380000000) #135 %59 = call float @llvm.fma.f32(float %.019, float %29, float noundef 0xBF5D9D7380000000) %.020 = select i1 %.not126, float %59, float %58 %60 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not127 = icmp eq i32 %60, 0 %61 = call float @llvm.nvvm.fma.rn.ftz.f(float %.020, float %29, float noundef 0xBF64EDFFA0000000) #135 %62 = call float @llvm.fma.f32(float %.020, float %29, float noundef 0xBF64EDFFA0000000) %.021 = select i1 %.not127, float %62, float %61 %63 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not128 = icmp eq i32 %63, 0 %64 = call float @llvm.nvvm.fma.rn.ftz.f(float %.021, float %29, float noundef 0x3FA0E73260000000) #135 %65 = call float @llvm.fma.f32(float %.021, float %29, float noundef 0x3FA0E73260000000) %.022 = select i1 %.not128, float %65, float %64 %66 = fadd float %.08, 0xC01C0FF600000000 %67 = fadd float %66, 0x3E88971B60000000 %68 = fmul float %67, %.022 %69 = fmul float %29, %68 %70 = fmul float %.08, %69 br label %230 __nv_isinff.exit.i: ; preds = %__internal_fmad.exit %71 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not68 = icmp eq i32 %71, 0 %72 = call float @llvm.nvvm.fabs.ftz.f(float %.08) #135 %73 = call float @llvm.fabs.f32(float %.08) %.024 = select i1 %.not68, float %73, float %72 %74 = fcmp oeq float %.024, 0x7FF0000000000000 br i1 %74, label %230, label %__internal_fmad.exit12.i __internal_fmad.exit12.i: ; preds = %__nv_isinff.exit.i %75 = call float asm "rcp.approx.ftz.f32 $0,$1;", "=f,f"(float %.08) #137, !srcloc !225 %76 = fmul float %75, %75 %77 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not69 = icmp eq i32 %77, 0 %78 = call float @llvm.nvvm.fma.rn.ftz.f(float noundef 0xC0105966E0000000, float %76, float noundef 0x3FE7FEFD20000000) #135 %79 = call float @llvm.fma.f32(float %76, float noundef 0xC0105966E0000000, float noundef 0x3FE7FEFD20000000) %.025 = select i1 %.not69, float %79, float %78 %80 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not70 = icmp eq i32 %80, 0 %81 = call float @llvm.nvvm.fma.rn.ftz.f(float %.025, float %76, float noundef 0xBFC8B175C0000000) #135 %82 = call float @llvm.fma.f32(float %.025, float %76, float noundef 0xBFC8B175C0000000) %.026 = select i1 %.not70, float %82, float %81 %83 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not71 = icmp eq i32 %83, 0 %84 = call float @llvm.nvvm.fma.rn.ftz.f(float %.026, float %76, float noundef 0x3FC7FFF160000000) #135 %85 = call float @llvm.fma.f32(float %.026, float %76, float noundef 0x3FC7FFF160000000) %.027 = select i1 %.not71, float %85, float %84 %86 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not72 = icmp eq i32 %86, 0 %87 = call float @llvm.nvvm.fma.rn.ftz.f(float %.027, float %76, float noundef 1.000000e+00) #135 %88 = call float @llvm.fma.f32(float %.027, float %76, float noundef 1.000000e+00) %.028 = select i1 %.not72, float %88, float %87 %89 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not73 = icmp eq i32 %89, 0 %90 = call float @llvm.nvvm.fma.rn.ftz.f(float noundef 0xBFF9477440000000, float %76, float noundef 0x3FD72295A0000000) #135 %91 = call float @llvm.fma.f32(float %76, float noundef 0xBFF9477440000000, float noundef 0x3FD72295A0000000) %.029 = select i1 %.not73, float %91, float %90 %92 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not74 = icmp eq i32 %92, 0 %93 = call float @llvm.nvvm.fma.rn.ftz.f(float %.029, float %76, float noundef 0xBFC4FE5D80000000) #135 %94 = call float @llvm.fma.f32(float %.029, float %76, float noundef 0xBFC4FE5D80000000) %.031 = select i1 %.not74, float %94, float %93 %95 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not75 = icmp eq i32 %95, 0 %96 = call float @llvm.nvvm.fma.rn.ftz.f(float %.031, float %76, float noundef 0x3FD7FFFFA0000000) #135 %97 = call float @llvm.fma.f32(float %.031, float %76, float noundef 0x3FD7FFFFA0000000) %.032 = select i1 %.not75, float %97, float %96 %98 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not76 = icmp eq i32 %98, 0 %99 = call float @llvm.nvvm.fma.rn.ftz.f(float %.032, float %75, float %.08) #135 %100 = call float @llvm.fma.f32(float %.032, float %75, float %.08) %.033 = select i1 %.not76, float %100, float %99 %101 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not77 = icmp eq i32 %101, 0 br i1 %.not77, label %104, label %102 102: ; preds = %__internal_fmad.exit12.i %103 = call float @llvm.nvvm.rsqrt.approx.ftz.f(float %.08) #135 br label %__nv_rsqrtf.exit.i 104: ; preds = %__internal_fmad.exit12.i %105 = call float @llvm.nvvm.rsqrt.approx.f(float %.08) #135 br label %__nv_rsqrtf.exit.i __nv_rsqrtf.exit.i: ; preds = %104, %102 %.034 = phi float [ %103, %102 ], [ %105, %104 ] %106 = fmul float %.034, 0x3FE9884540000000 %107 = fmul float %.028, %106 %108 = fmul float %.033, 0x3FE45F3060000000 %109 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not78 = icmp eq i32 %109, 0 %110 = call i32 @llvm.nvvm.f2i.rn.ftz(float %108) #135 %111 = call i32 @llvm.nvvm.f2i.rn(float %108) #135 %.036 = select i1 %.not78, i32 %111, i32 %110 %112 = sitofp i32 %.036 to float %113 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not79 = icmp eq i32 %113, 0 %114 = call float @llvm.nvvm.fma.rn.ftz.f(float %112, float noundef 0xBFF921FB40000000, float %.033) #135 %115 = call float @llvm.fma.f32(float %112, float noundef 0xBFF921FB40000000, float %.033) %.037 = select i1 %.not79, float %115, float %114 %116 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not80 = icmp eq i32 %116, 0 %117 = call float @llvm.nvvm.fma.rn.ftz.f(float %112, float noundef 0xBE74442D00000000, float %.037) #135 %118 = call float @llvm.fma.f32(float %112, float noundef 0xBE74442D00000000, float %.037) %.038 = select i1 %.not80, float %118, float %117 %119 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not81 = icmp eq i32 %119, 0 %120 = call float @llvm.nvvm.fma.rn.ftz.f(float %112, float noundef 0xBCF84698A0000000, float %.038) #135 %121 = call float @llvm.fma.f32(float %112, float noundef 0xBCF84698A0000000, float %.038) %.039 = select i1 %.not81, float %121, float %120 %122 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not82 = icmp eq i32 %122, 0 %123 = call float @llvm.nvvm.fabs.ftz.f(float %.033) #135 %124 = call float @llvm.fabs.f32(float %.033) %.040 = select i1 %.not82, float %124, float %123 %125 = fcmp ult float %.040, 1.056150e+05 br i1 %125, label %__internal_trig_reduction_kernel.exit.i.i, label %__nv_isinff.exit.i.i.i __nv_isinff.exit.i.i.i: ; preds = %__nv_rsqrtf.exit.i %126 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not110 = icmp eq i32 %126, 0 %.042 = select i1 %.not110, float %124, float %123 %127 = fcmp oeq float %.042, 0x7FF0000000000000 br i1 %127, label %__nv_fmul_rn.exit.i.i.i, label %131 __nv_fmul_rn.exit.i.i.i: ; preds = %__nv_isinff.exit.i.i.i %128 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not116 = icmp eq i32 %128, 0 %129 = call float @llvm.nvvm.mul.rn.ftz.f(float %.033, float noundef 0.000000e+00) #135 %130 = fmul float %.033, 0.000000e+00 %.043 = select i1 %.not116, float %130, float %129 br label %__internal_trig_reduction_kernel.exit.i.i 131: ; preds = %__nv_isinff.exit.i.i.i %132 = bitcast float %.033 to i32 %133 = lshr i32 %132, 23 %134 = and i32 %133, 255 %135 = shl i32 %132, 8 %136 = or i32 %135, -2147483648 br label %137 137: ; preds = %131, %137 %iq.i.i.i.i.0132 = phi i32 [ 0, %131 ], [ %144, %137 ] %hi.i.i.i.i.0131 = phi i32 [ 0, %131 ], [ %142, %137 ] %138 = getelementptr inbounds [6 x i32], [6 x i32] addrspace(1)* @__cudart_i2opi_f, i32 0, i32 %iq.i.i.i.i.0132 %139 = load i32, i32 addrspace(1)* %138, align 4 %140 = call { i32, i32 } asm "{\0A\09mad.lo.cc.u32 $0, $2, $3, $4;\0A\09madc.hi.u32 $1, $2, $3, 0;\0A\09}", "=r,=r,r,r,r"(i32 %139, i32 %136, i32 %hi.i.i.i.i.0131) #137, !srcloc !222 %141 = extractvalue { i32, i32 } %140, 0 %142 = extractvalue { i32, i32 } %140, 1 %143 = getelementptr inbounds [7 x i32], [7 x i32]* %result.i.i.i.i, i32 0, i32 %iq.i.i.i.i.0132 store i32 %141, i32* %143, align 4, !noalias !219 %144 = add nuw nsw i32 %iq.i.i.i.i.0132, 1 %exitcond137.not = icmp eq i32 %144, 6 br i1 %exitcond137.not, label %145, label %137, !llvm.loop !223 145: ; preds = %137 %146 = add nsw i32 %134, -128 %147 = lshr i32 %146, 5 %148 = and i32 %132, -2147483648 %149 = getelementptr inbounds [7 x i32], [7 x i32]* %result.i.i.i.i, i32 0, i32 6 store i32 %142, i32* %149, align 4, !noalias !219 %150 = and i32 %133, 31 %151 = sub nsw i32 6, %147 %152 = getelementptr inbounds [7 x i32], [7 x i32]* %result.i.i.i.i, i32 0, i32 %151 %153 = load i32, i32* %152, align 4 %154 = sub nsw i32 5, %147 %155 = getelementptr inbounds [7 x i32], [7 x i32]* %result.i.i.i.i, i32 0, i32 %154 %156 = load i32, i32* %155, align 4 %.not111 = icmp eq i32 %150, 0 br i1 %.not111, label %__internal_trig_reduction_slowpath.exit.i.i.i, label %157 157: ; preds = %145 %158 = sub nsw i32 4, %147 %159 = sub nuw nsw i32 32, %150 %160 = shl i32 %153, %150 %161 = lshr i32 %156, %159 %162 = add i32 %161, %160 %163 = shl i32 %156, %150 %164 = getelementptr inbounds [7 x i32], [7 x i32]* %result.i.i.i.i, i32 0, i32 %158 %165 = load i32, i32* %164, align 4 %166 = lshr i32 %165, %159 %167 = add i32 %166, %163 br label %__internal_trig_reduction_slowpath.exit.i.i.i __internal_trig_reduction_slowpath.exit.i.i.i: ; preds = %157, %145 %hi.i.i.i.i.1 = phi i32 [ %162, %157 ], [ %153, %145 ] %lo.i.i.i.i.0 = phi i32 [ %167, %157 ], [ %156, %145 ] %168 = lshr i32 %hi.i.i.i.i.1, 30 %169 = call i32 @llvm.fshl.i32(i32 %hi.i.i.i.i.1, i32 %lo.i.i.i.i.0, i32 noundef 2) %170 = shl i32 %lo.i.i.i.i.0, 2 %171 = lshr i32 %169, 31 %172 = add nuw nsw i32 %171, %168 %.not112 = icmp eq i32 %148, 0 %173 = sub nsw i32 0, %172 %spec.select = select i1 %.not112, i32 %172, i32 %173 %.not113 = icmp sgt i32 %169, -1 %174 = xor i32 %148, -2147483648 %s.i.i.i.i.0 = select i1 %.not113, i32 %148, i32 %174 %not..not113 = xor i1 %.not113, true %175 = sext i1 %not..not113 to i32 %hi.i.i.i.i.2 = xor i32 %169, %175 %lo.i.i.i.i.1 = xor i32 %170, %175 %176 = zext i32 %hi.i.i.i.i.2 to i64 %177 = shl nuw i64 %176, 32 %178 = zext i32 %lo.i.i.i.i.1 to i64 %179 = or i64 %177, %178 %180 = sitofp i64 %179 to double %181 = fmul double %180, 0x3BF921FB54442D19 %182 = fptrunc double %181 to float %.not115 = icmp eq i32 %s.i.i.i.i.0, 0 %183 = fneg float %182 %r.i.i.i.i.0 = select i1 %.not115, float %182, float %183 br label %__internal_trig_reduction_kernel.exit.i.i __internal_trig_reduction_kernel.exit.i.i: ; preds = %__nv_fmul_rn.exit.i.i.i, %__internal_trig_reduction_slowpath.exit.i.i.i, %__nv_rsqrtf.exit.i %i.i.i.1 = phi i32 [ %.036, %__nv_rsqrtf.exit.i ], [ 0, %__nv_fmul_rn.exit.i.i.i ], [ %spec.select, %__internal_trig_reduction_slowpath.exit.i.i.i ] %t.i.i.i.1 = phi float [ %.039, %__nv_rsqrtf.exit.i ], [ %.043, %__nv_fmul_rn.exit.i.i.i ], [ %r.i.i.i.i.0, %__internal_trig_reduction_slowpath.exit.i.i.i ] %184 = and i32 %i.i.i.1, 3 %185 = uitofp i32 %184 to float %186 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not83 = icmp eq i32 %186, 0 %187 = call float @llvm.nvvm.fma.rn.ftz.f(float %185, float noundef 0x3FF921FB60000000, float noundef 0xC002D97C80000000) #135 %188 = call float @llvm.fma.f32(float %185, float noundef 0x3FF921FB60000000, float noundef 0xC002D97C80000000) %.047 = select i1 %.not83, float %188, float %187 %189 = fadd float %t.i.i.i.1, %.047 %190 = fmul float %189, 0x3FE45F3060000000 %191 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not84 = icmp eq i32 %191, 0 %192 = call i32 @llvm.nvvm.f2i.rn.ftz(float %190) #135 %193 = call i32 @llvm.nvvm.f2i.rn(float %190) #135 %.048 = select i1 %.not84, i32 %193, i32 %192 %194 = sitofp i32 %.048 to float %195 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not85 = icmp eq i32 %195, 0 %196 = call float @llvm.nvvm.fma.rn.ftz.f(float %194, float noundef 0xBFF921FB40000000, float %189) #135 %197 = call float @llvm.fma.f32(float %194, float noundef 0xBFF921FB40000000, float %189) %.049 = select i1 %.not85, float %197, float %196 %198 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not86 = icmp eq i32 %198, 0 %199 = call float @llvm.nvvm.fma.rn.ftz.f(float %194, float noundef 0xBE74442D00000000, float %.049) #135 %200 = call float @llvm.fma.f32(float %194, float noundef 0xBE74442D00000000, float %.049) %.050 = select i1 %.not86, float %200, float %199 %201 = add i32 %.048, 1 %202 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not87 = icmp eq i32 %202, 0 %203 = call float @llvm.nvvm.mul.rn.ftz.f(float %.050, float %.050) #135 %204 = fmul float %.050, %.050 %.051 = select i1 %.not87, float %204, float %203 %205 = and i32 %201, 1 %.not88 = icmp eq i32 %205, 0 %206 = select i1 %.not88, float %.050, float 1.000000e+00 %207 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not89 = icmp eq i32 %207, 0 %208 = call float @llvm.nvvm.fma.rn.ftz.f(float %.051, float %206, float noundef 0.000000e+00) #135 %209 = call float @llvm.fma.f32(float %.051, float %206, float noundef 0.000000e+00) %.052 = select i1 %.not89, float %209, float %208 br i1 %.not88, label %__internal_fmad.exit2.i.i.i, label %__internal_fmad.exit1.i.i.i __internal_fmad.exit1.i.i.i: ; preds = %__internal_trig_reduction_kernel.exit.i.i %210 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not109 = icmp eq i32 %210, 0 %211 = call float @llvm.nvvm.fma.rn.ftz.f(float noundef 0x3EF9758000000000, float %.051, float noundef 0xBF56C0FDA0000000) #135 %212 = call float @llvm.fma.f32(float %.051, float noundef 0x3EF9758000000000, float noundef 0xBF56C0FDA0000000) %.053 = select i1 %.not109, float %212, float %211 br label %__internal_fmad.exit2.i.i.i __internal_fmad.exit2.i.i.i: ; preds = %__internal_trig_reduction_kernel.exit.i.i, %__internal_fmad.exit1.i.i.i %213 = phi float [ 0xBFC5555500000000, %__internal_trig_reduction_kernel.exit.i.i ], [ 0xBFDFFFFFE0000000, %__internal_fmad.exit1.i.i.i ] %214 = phi float [ 0x3F8110BC80000000, %__internal_trig_reduction_kernel.exit.i.i ], [ 0x3FA5555760000000, %__internal_fmad.exit1.i.i.i ] %215 = phi float [ 0xBF29A82A60000000, %__internal_trig_reduction_kernel.exit.i.i ], [ %.053, %__internal_fmad.exit1.i.i.i ] %216 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not90 = icmp eq i32 %216, 0 %217 = call float @llvm.nvvm.fma.rn.ftz.f(float %215, float %.051, float noundef %214) #135 %218 = call float @llvm.fma.f32(float %215, float %.051, float noundef %214) %.054 = select i1 %.not90, float %218, float %217 %219 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not91 = icmp eq i32 %219, 0 %220 = call float @llvm.nvvm.fma.rn.ftz.f(float %.054, float %.051, float noundef %213) #135 %221 = call float @llvm.fma.f32(float %.054, float %.051, float noundef %213) %.055 = select i1 %.not91, float %221, float %220 %222 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not92 = icmp eq i32 %222, 0 %223 = call float @llvm.nvvm.fma.rn.ftz.f(float %.055, float %.052, float %206) #135 %224 = call float @llvm.fma.f32(float %.055, float %.052, float %206) %.056 = select i1 %.not92, float %224, float %223 %225 = and i32 %201, 2 %.not93 = icmp eq i32 %225, 0 br i1 %.not93, label %__internal_cos_offset_f.exit.i, label %__internal_fmad.exit5.i.i.i __internal_fmad.exit5.i.i.i: ; preds = %__internal_fmad.exit2.i.i.i %226 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not108 = icmp eq i32 %226, 0 %227 = call float @llvm.nvvm.fma.rn.ftz.f(float %.056, float noundef -1.000000e+00, float noundef 0.000000e+00) #135 %228 = call float @llvm.fma.f32(float %.056, float noundef -1.000000e+00, float noundef 0.000000e+00) %.057 = select i1 %.not108, float %228, float %227 br label %__internal_cos_offset_f.exit.i __internal_cos_offset_f.exit.i: ; preds = %__internal_fmad.exit5.i.i.i, %__internal_fmad.exit2.i.i.i %z.i.i.i.0 = phi float [ %.057, %__internal_fmad.exit5.i.i.i ], [ %.056, %__internal_fmad.exit2.i.i.i ] %229 = fmul float %107, %z.i.i.i.0 br label %230 230: ; preds = %__internal_cos_offset_f.exit.i, %__nv_isinff.exit.i, %__internal_fmad.exit.i %r.i.1 = phi float [ %70, %__internal_fmad.exit.i ], [ %229, %__internal_cos_offset_f.exit.i ], [ 0.000000e+00, %__nv_isinff.exit.i ] %231 = fcmp olt float %.01, 0.000000e+00 %232 = fneg float %r.i.1 %r.i.2 = select i1 %231, float %232, float %r.i.1 %233 = fcmp olt float %.08, 0x39B4484C00000000 br i1 %233, label %234, label %.__nv_j1f.exit_crit_edge .__nv_j1f.exit_crit_edge: ; preds = %230 %.pre = bitcast float %.01 to i32 br label %__nv_j1f.exit 234: ; preds = %230 %235 = bitcast float %.01 to i32 %236 = and i32 %235, -2147483648 %237 = bitcast float %r.i.2 to i32 %238 = and i32 %237, 2147483647 %239 = or i32 %238, %236 %240 = bitcast i32 %239 to float br label %__nv_j1f.exit __nv_j1f.exit: ; preds = %.__nv_j1f.exit_crit_edge, %234 %.pre-phi = phi i32 [ %.pre, %.__nv_j1f.exit_crit_edge ], [ %235, %234 ] %r.i.3 = phi float [ %r.i.2, %.__nv_j1f.exit_crit_edge ], [ %240, %234 ] %241 = add i32 %.pre-phi, -1059760811 %242 = and i32 %241, -8388608 %243 = sub i32 %.pre-phi, %242 %244 = bitcast i32 %243 to float %245 = sitofp i32 %242 to float %246 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not94 = icmp eq i32 %246, 0 %247 = call float @llvm.nvvm.fma.rn.ftz.f(float %245, float noundef 0x3E80000000000000, float noundef 0.000000e+00) #135 %248 = call float @llvm.fma.f32(float %245, float noundef 0x3E80000000000000, float noundef 0.000000e+00) %.064 = select i1 %.not94, float %248, float %247 %249 = fadd float %244, -1.000000e+00 %250 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not95 = icmp eq i32 %250, 0 %251 = call float @llvm.nvvm.fma.rn.ftz.f(float noundef 0xBFC0AA04E0000000, float %249, float noundef 0x3FC2073EC0000000) #135 %252 = call float @llvm.fma.f32(float %249, float noundef 0xBFC0AA04E0000000, float noundef 0x3FC2073EC0000000) %.065 = select i1 %.not95, float %252, float %251 %253 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not96 = icmp eq i32 %253, 0 %254 = call float @llvm.nvvm.fma.rn.ftz.f(float %.065, float %249, float noundef 0xBFBF19B980000000) #135 %255 = call float @llvm.fma.f32(float %.065, float %249, float noundef 0xBFBF19B980000000) %.066 = select i1 %.not96, float %255, float %254 %256 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not97 = icmp eq i32 %256, 0 %257 = call float @llvm.nvvm.fma.rn.ftz.f(float %.066, float %249, float noundef 0x3FC1E52AA0000000) #135 %258 = call float @llvm.fma.f32(float %.066, float %249, float noundef 0x3FC1E52AA0000000) %.067 = select i1 %.not97, float %258, float %257 %259 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not98 = icmp eq i32 %259, 0 %260 = call float @llvm.nvvm.fma.rn.ftz.f(float %.067, float %249, float noundef 0xBFC55B1720000000) #135 %261 = call float @llvm.fma.f32(float %.067, float %249, float noundef 0xBFC55B1720000000) %.069 = select i1 %.not98, float %261, float %260 %262 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not99 = icmp eq i32 %262, 0 %263 = call float @llvm.nvvm.fma.rn.ftz.f(float %.069, float %249, float noundef 0x3FC99DA160000000) #135 %264 = call float @llvm.fma.f32(float %.069, float %249, float noundef 0x3FC99DA160000000) %.070 = select i1 %.not99, float %264, float %263 %265 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not100 = icmp eq i32 %265, 0 %266 = call float @llvm.nvvm.fma.rn.ftz.f(float %.070, float %249, float noundef 0xBFCFFFE440000000) #135 %267 = call float @llvm.fma.f32(float %.070, float %249, float noundef 0xBFCFFFE440000000) %.072 = select i1 %.not100, float %267, float %266 %268 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not101 = icmp eq i32 %268, 0 %269 = call float @llvm.nvvm.fma.rn.ftz.f(float %.072, float %249, float noundef 0x3FD5554F00000000) #135 %270 = call float @llvm.fma.f32(float %.072, float %249, float noundef 0x3FD5554F00000000) %.074 = select i1 %.not101, float %270, float %269 %271 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not102 = icmp eq i32 %271, 0 %272 = call float @llvm.nvvm.fma.rn.ftz.f(float %.074, float %249, float noundef -5.000000e-01) #135 %273 = call float @llvm.fma.f32(float %.074, float %249, float noundef -5.000000e-01) %.062 = select i1 %.not102, float %273, float %272 %274 = fmul float %249, %.062 %275 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not103 = icmp eq i32 %275, 0 %276 = call float @llvm.nvvm.fma.rn.ftz.f(float %274, float %249, float %249) #135 %277 = call float @llvm.fma.f32(float %274, float %249, float %249) %.061 = select i1 %.not103, float %277, float %276 %278 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not104 = icmp eq i32 %278, 0 %279 = call float @llvm.nvvm.fma.rn.ftz.f(float %.064, float noundef 0x3FE62E4300000000, float %.061) #135 %280 = call float @llvm.fma.f32(float %.064, float noundef 0x3FE62E4300000000, float %.061) %.060 = select i1 %.not104, float %280, float %279 %281 = icmp ugt i32 %.pre-phi, 2139095039 br i1 %281, label %__nv_fmaf_rn.exit.i, label %__internal_accurate_logf.exit __nv_fmaf_rn.exit.i: ; preds = %__nv_j1f.exit %282 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not107 = icmp eq i32 %282, 0 %283 = call float @llvm.nvvm.fma.rn.ftz.f(float %.01, float noundef 0x7FF0000000000000, float noundef 0x7FF0000000000000) #135 %284 = call float @llvm.fma.f32(float %.01, float noundef 0x7FF0000000000000, float noundef 0x7FF0000000000000) %.059 = select i1 %.not107, float %284, float %283 br label %__internal_accurate_logf.exit __internal_accurate_logf.exit: ; preds = %__nv_fmaf_rn.exit.i, %__nv_j1f.exit %r.i5.0 = phi float [ %.059, %__nv_fmaf_rn.exit.i ], [ %.060, %__nv_j1f.exit ] %285 = fcmp oeq float %.01, 0.000000e+00 %r.i5.1 = select i1 %285, float 0xFFF0000000000000, float %r.i5.0 %286 = fdiv float -1.000000e+00, %.01 %287 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not105 = icmp eq i32 %287, 0 %288 = call float @llvm.nvvm.fma.rn.ftz.f(float %r.i.3, float %r.i5.1, float %286) #135 %289 = call float @llvm.fma.f32(float %r.i.3, float %r.i5.1, float %286) %.075 = select i1 %.not105, float %289, float %288 %290 = fmul float %.075, 0x3FE45F3060000000 %291 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not106 = icmp eq i32 %291, 0 %292 = call float @llvm.nvvm.fma.rn.ftz.f(float %.07, float %.01, float %290) #135 %293 = call float @llvm.fma.f32(float %.07, float %.01, float %290) %.076 = select i1 %.not106, float %293, float %292 br label %543 294: ; preds = %6 %295 = fcmp ugt float %.01, 0x400E81DDC0000000 br i1 %295, label %326, label %__internal_fmad.exit11 __internal_fmad.exit11: ; preds = %294 %296 = fadd float %.01, 0xC00193BEE0000000 %297 = fadd float %296, 0x3E76401B80000000 %298 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not53 = icmp eq i32 %298, 0 %299 = call float @llvm.nvvm.fma.rn.ftz.f(float noundef 0xBEF13C53A0000000, float %297, float noundef 0x3F20C95100000000) #135 %300 = call float @llvm.fma.f32(float %297, float noundef 0xBEF13C53A0000000, float noundef 0x3F20C95100000000) %.078 = select i1 %.not53, float %300, float %299 %301 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not54 = icmp eq i32 %301, 0 %302 = call float @llvm.nvvm.fma.rn.ftz.f(float %.078, float %297, float noundef 0xBF3E1561A0000000) #135 %303 = call float @llvm.fma.f32(float %.078, float %297, float noundef 0xBF3E1561A0000000) %.079 = select i1 %.not54, float %303, float %302 %304 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not55 = icmp eq i32 %304, 0 %305 = call float @llvm.nvvm.fma.rn.ftz.f(float %.079, float %297, float noundef 0x3F51EC2040000000) #135 %306 = call float @llvm.fma.f32(float %.079, float %297, float noundef 0x3F51EC2040000000) %.080 = select i1 %.not55, float %306, float %305 %307 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not56 = icmp eq i32 %307, 0 %308 = call float @llvm.nvvm.fma.rn.ftz.f(float %.080, float %297, float noundef 0xBF658E08A0000000) #135 %309 = call float @llvm.fma.f32(float %.080, float %297, float noundef 0xBF658E08A0000000) %.082 = select i1 %.not56, float %309, float %308 %310 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not57 = icmp eq i32 %310, 0 %311 = call float @llvm.nvvm.fma.rn.ftz.f(float %.082, float %297, float noundef 0x3F7E6BBEE0000000) #135 %312 = call float @llvm.fma.f32(float %.082, float %297, float noundef 0x3F7E6BBEE0000000) %.083 = select i1 %.not57, float %312, float %311 %313 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not58 = icmp eq i32 %313, 0 %314 = call float @llvm.nvvm.fma.rn.ftz.f(float %.083, float %297, float noundef 0xBF73A12F80000000) #135 %315 = call float @llvm.fma.f32(float %.083, float %297, float noundef 0xBF73A12F80000000) %.084 = select i1 %.not58, float %315, float %314 %316 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not59 = icmp eq i32 %316, 0 %317 = call float @llvm.nvvm.fma.rn.ftz.f(float %.084, float %297, float noundef 0xBFA0D2D140000000) #135 %318 = call float @llvm.fma.f32(float %.084, float %297, float noundef 0xBFA0D2D140000000) %.086 = select i1 %.not59, float %318, float %317 %319 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not60 = icmp eq i32 %319, 0 %320 = call float @llvm.nvvm.fma.rn.ftz.f(float %.086, float %297, float noundef 0xBFBE56FBE0000000) #135 %321 = call float @llvm.fma.f32(float %.086, float %297, float noundef 0xBFBE56FBE0000000) %.087 = select i1 %.not60, float %321, float %320 %322 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not61 = icmp eq i32 %322, 0 %323 = call float @llvm.nvvm.fma.rn.ftz.f(float %.087, float %297, float noundef 0x3FE0AA4840000000) #135 %324 = call float @llvm.fma.f32(float %.087, float %297, float noundef 0x3FE0AA4840000000) %.088 = select i1 %.not61, float %324, float %323 %325 = fmul float %297, %.088 br label %543 326: ; preds = %294 %327 = fcmp ugt float %.01, 0x401C0D26E0000000 br i1 %327, label %358, label %__internal_fmad.exit29 __internal_fmad.exit29: ; preds = %326 %328 = fadd float %.01, 0xC015B7FE40000000 %329 = fadd float %328, 0xBE8D0F6060000000 %330 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not44 = icmp eq i32 %330, 0 %331 = call float @llvm.nvvm.fma.rn.ftz.f(float noundef 0x3E57CAFA00000000, float %329, float noundef 0xBEA11482C0000000) #135 %332 = call float @llvm.fma.f32(float %329, float noundef 0x3E57CAFA00000000, float noundef 0xBEA11482C0000000) %.089 = select i1 %.not44, float %332, float %331 %333 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not45 = icmp eq i32 %333, 0 %334 = call float @llvm.nvvm.fma.rn.ftz.f(float %.089, float %329, float noundef 0xBEC7F14280000000) #135 %335 = call float @llvm.fma.f32(float %.089, float %329, float noundef 0xBEC7F14280000000) %.090 = select i1 %.not45, float %335, float %334 %336 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not46 = icmp eq i32 %336, 0 %337 = call float @llvm.nvvm.fma.rn.ftz.f(float %.090, float %329, float noundef 0x3F084FC040000000) #135 %338 = call float @llvm.fma.f32(float %.090, float %329, float noundef 0x3F084FC040000000) %.091 = select i1 %.not46, float %338, float %337 %339 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not47 = icmp eq i32 %339, 0 %340 = call float @llvm.nvvm.fma.rn.ftz.f(float %.091, float %329, float noundef 0x3F23376380000000) #135 %341 = call float @llvm.fma.f32(float %.091, float %329, float noundef 0x3F23376380000000) %.093 = select i1 %.not47, float %341, float %340 %342 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not48 = icmp eq i32 %342, 0 %343 = call float @llvm.nvvm.fma.rn.ftz.f(float %.093, float %329, float noundef 0xBF61BE3FA0000000) #135 %344 = call float @llvm.fma.f32(float %.093, float %329, float noundef 0xBF61BE3FA0000000) %.095 = select i1 %.not48, float %344, float %343 %345 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not49 = icmp eq i32 %345, 0 %346 = call float @llvm.nvvm.fma.rn.ftz.f(float %.095, float %329, float noundef 0xBF710A3120000000) #135 %347 = call float @llvm.fma.f32(float %.095, float %329, float noundef 0xBF710A3120000000) %.096 = select i1 %.not49, float %347, float %346 %348 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not50 = icmp eq i32 %348, 0 %349 = call float @llvm.nvvm.fma.rn.ftz.f(float %.096, float %329, float noundef 0x3FAA15D820000000) #135 %350 = call float @llvm.fma.f32(float %.096, float %329, float noundef 0x3FAA15D820000000) %.097 = select i1 %.not50, float %350, float %349 %351 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not51 = icmp eq i32 %351, 0 %352 = call float @llvm.nvvm.fma.rn.ftz.f(float %.097, float %329, float noundef 0x3FA00B9F80000000) #135 %353 = call float @llvm.fma.f32(float %.097, float %329, float noundef 0x3FA00B9F80000000) %.098 = select i1 %.not51, float %353, float %352 %354 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not52 = icmp eq i32 %354, 0 %355 = call float @llvm.nvvm.fma.rn.ftz.f(float %.098, float %329, float noundef 0xBFD5C7C560000000) #135 %356 = call float @llvm.fma.f32(float %.098, float %329, float noundef 0xBFD5C7C560000000) %.099 = select i1 %.not52, float %356, float %355 %357 = fmul float %329, %.099 br label %543 358: ; preds = %326 %359 = fcmp ugt float %.01, 0x4024585C60000000 br i1 %359, label %__nv_isinff.exit, label %__internal_fmad.exit47 __internal_fmad.exit47: ; preds = %358 %360 = fadd float %.01, 0xC0213127A0000000 %361 = fadd float %360, 0xBE9CC2D360000000 %362 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not36 = icmp eq i32 %362, 0 %363 = call float @llvm.nvvm.fma.rn.ftz.f(float noundef 0x3EA19E7060000000, float %361, float noundef 0x3EC05205C0000000) #135 %364 = call float @llvm.fma.f32(float %361, float noundef 0x3EA19E7060000000, float noundef 0x3EC05205C0000000) %.0100 = select i1 %.not36, float %364, float %363 %365 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not37 = icmp eq i32 %365, 0 %366 = call float @llvm.nvvm.fma.rn.ftz.f(float %.0100, float %361, float noundef 0xBF06EBEE20000000) #135 %367 = call float @llvm.fma.f32(float %.0100, float %361, float noundef 0xBF06EBEE20000000) %.0102 = select i1 %.not37, float %367, float %366 %368 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not38 = icmp eq i32 %368, 0 %369 = call float @llvm.nvvm.fma.rn.ftz.f(float %.0102, float %361, float noundef 0xBF1B3F5500000000) #135 %370 = call float @llvm.fma.f32(float %.0102, float %361, float noundef 0xBF1B3F5500000000) %.0103 = select i1 %.not38, float %370, float %369 %371 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not39 = icmp eq i32 %371, 0 %372 = call float @llvm.nvvm.fma.rn.ftz.f(float %.0103, float %361, float noundef 0x3F607A3340000000) #135 %373 = call float @llvm.fma.f32(float %.0103, float %361, float noundef 0x3F607A3340000000) %.0104 = select i1 %.not39, float %373, float %372 %374 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not40 = icmp eq i32 %374, 0 %375 = call float @llvm.nvvm.fma.rn.ftz.f(float %.0104, float %361, float noundef 0x3F63CE6DA0000000) #135 %376 = call float @llvm.fma.f32(float %.0104, float %361, float noundef 0x3F63CE6DA0000000) %.0105 = select i1 %.not40, float %376, float %375 %377 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not41 = icmp eq i32 %377, 0 %378 = call float @llvm.nvvm.fma.rn.ftz.f(float %.0105, float %361, float noundef 0xBFA6395CA0000000) #135 %379 = call float @llvm.fma.f32(float %.0105, float %361, float noundef 0xBFA6395CA0000000) %.0106 = select i1 %.not41, float %379, float %378 %380 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not42 = icmp eq i32 %380, 0 %381 = call float @llvm.nvvm.fma.rn.ftz.f(float %.0106, float %361, float noundef 0xBF902B36C0000000) #135 %382 = call float @llvm.fma.f32(float %.0106, float %361, float noundef 0xBF902B36C0000000) %.0107 = select i1 %.not42, float %382, float %381 %383 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not43 = icmp eq i32 %383, 0 %384 = call float @llvm.nvvm.fma.rn.ftz.f(float %.0107, float %361, float noundef 0x3FD15F9940000000) #135 %385 = call float @llvm.fma.f32(float %.0107, float %361, float noundef 0x3FD15F9940000000) %.0109 = select i1 %.not43, float %385, float %384 %386 = fmul float %361, %.0109 br label %543 __nv_isinff.exit: ; preds = %358 %387 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not2 = icmp eq i32 %387, 0 %388 = call float @llvm.nvvm.fabs.ftz.f(float %.01) #135 %389 = call float @llvm.fabs.f32(float %.01) %.0110 = select i1 %.not2, float %389, float %388 %390 = fcmp oeq float %.0110, 0x7FF0000000000000 br i1 %390, label %543, label %__internal_fmad.exit66 __internal_fmad.exit66: ; preds = %__nv_isinff.exit %391 = call float asm "rcp.approx.ftz.f32 $0,$1;", "=f,f"(float %.01) #137, !srcloc !225 %392 = fmul float %391, %391 %393 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not3 = icmp eq i32 %393, 0 %394 = call float @llvm.nvvm.fma.rn.ftz.f(float noundef 0x3FE4CFEC00000000, float %392, float noundef 0xBFC8957200000000) #135 %395 = call float @llvm.fma.f32(float %392, float noundef 0x3FE4CFEC00000000, float noundef 0xBFC8957200000000) %.0111 = select i1 %.not3, float %395, float %394 %396 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not4 = icmp eq i32 %396, 0 %397 = call float @llvm.nvvm.fma.rn.ftz.f(float %.0111, float %392, float noundef 0x3FC7FFD7E0000000) #135 %398 = call float @llvm.fma.f32(float %.0111, float %392, float noundef 0x3FC7FFD7E0000000) %.0112 = select i1 %.not4, float %398, float %397 %399 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not5 = icmp eq i32 %399, 0 %400 = call float @llvm.nvvm.fma.rn.ftz.f(float %.0112, float %392, float noundef 1.000000e+00) #135 %401 = call float @llvm.fma.f32(float %.0112, float %392, float noundef 1.000000e+00) %.0113 = select i1 %.not5, float %401, float %400 %402 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not6 = icmp eq i32 %402, 0 %403 = call float @llvm.nvvm.fma.rn.ftz.f(float noundef 0xBFFC9C3560000000, float %392, float noundef 0x3FD76E7560000000) #135 %404 = call float @llvm.fma.f32(float %392, float noundef 0xBFFC9C3560000000, float noundef 0x3FD76E7560000000) %.0114 = select i1 %.not6, float %404, float %403 %405 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not7 = icmp eq i32 %405, 0 %406 = call float @llvm.nvvm.fma.rn.ftz.f(float %.0114, float %392, float noundef 0xBFC4FF6DC0000000) #135 %407 = call float @llvm.fma.f32(float %.0114, float %392, float noundef 0xBFC4FF6DC0000000) %.0108 = select i1 %.not7, float %407, float %406 %408 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not8 = icmp eq i32 %408, 0 %409 = call float @llvm.nvvm.fma.rn.ftz.f(float %.0108, float %392, float noundef 0x3FD7FFFFE0000000) #135 %410 = call float @llvm.fma.f32(float %.0108, float %392, float noundef 0x3FD7FFFFE0000000) %.0101 = select i1 %.not8, float %410, float %409 %411 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not9 = icmp eq i32 %411, 0 %412 = call float @llvm.nvvm.fma.rn.ftz.f(float %.0101, float %391, float %.01) #135 %413 = call float @llvm.fma.f32(float %.0101, float %391, float %.01) %.094 = select i1 %.not9, float %413, float %412 %414 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not10 = icmp eq i32 %414, 0 br i1 %.not10, label %417, label %415 415: ; preds = %__internal_fmad.exit66 %416 = call float @llvm.nvvm.rsqrt.approx.ftz.f(float %.01) #135 br label %__nv_rsqrtf.exit 417: ; preds = %__internal_fmad.exit66 %418 = call float @llvm.nvvm.rsqrt.approx.f(float %.01) #135 br label %__nv_rsqrtf.exit __nv_rsqrtf.exit: ; preds = %417, %415 %.092 = phi float [ %416, %415 ], [ %418, %417 ] %419 = fmul float %.092, 0x3FE9884540000000 %420 = fmul float %.0113, %419 %421 = fmul float %.094, 0x3FE45F3060000000 %422 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not11 = icmp eq i32 %422, 0 %423 = call i32 @llvm.nvvm.f2i.rn.ftz(float %421) #135 %424 = call i32 @llvm.nvvm.f2i.rn(float %421) #135 %.085 = select i1 %.not11, i32 %424, i32 %423 %425 = sitofp i32 %.085 to float %426 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not12 = icmp eq i32 %426, 0 %427 = call float @llvm.nvvm.fma.rn.ftz.f(float %425, float noundef 0xBFF921FB40000000, float %.094) #135 %428 = call float @llvm.fma.f32(float %425, float noundef 0xBFF921FB40000000, float %.094) %.081 = select i1 %.not12, float %428, float %427 %429 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not13 = icmp eq i32 %429, 0 %430 = call float @llvm.nvvm.fma.rn.ftz.f(float %425, float noundef 0xBE74442D00000000, float %.081) #135 %431 = call float @llvm.fma.f32(float %425, float noundef 0xBE74442D00000000, float %.081) %.077 = select i1 %.not13, float %431, float %430 %432 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not14 = icmp eq i32 %432, 0 %433 = call float @llvm.nvvm.fma.rn.ftz.f(float %425, float noundef 0xBCF84698A0000000, float %.077) #135 %434 = call float @llvm.fma.f32(float %425, float noundef 0xBCF84698A0000000, float %.077) %.073 = select i1 %.not14, float %434, float %433 %435 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not15 = icmp eq i32 %435, 0 %436 = call float @llvm.nvvm.fabs.ftz.f(float %.094) #135 %437 = call float @llvm.fabs.f32(float %.094) %.071 = select i1 %.not15, float %437, float %436 %438 = fcmp ult float %.071, 1.056150e+05 br i1 %438, label %__internal_trig_reduction_kernel.exit.i, label %__nv_isinff.exit.i.i __nv_isinff.exit.i.i: ; preds = %__nv_rsqrtf.exit %439 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not29 = icmp eq i32 %439, 0 %.068 = select i1 %.not29, float %437, float %436 %440 = fcmp oeq float %.068, 0x7FF0000000000000 br i1 %440, label %__nv_fmul_rn.exit.i.i, label %444 __nv_fmul_rn.exit.i.i: ; preds = %__nv_isinff.exit.i.i %441 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not35 = icmp eq i32 %441, 0 %442 = call float @llvm.nvvm.mul.rn.ftz.f(float %.094, float noundef 0.000000e+00) #135 %443 = fmul float %.094, 0.000000e+00 %.063 = select i1 %.not35, float %443, float %442 br label %__internal_trig_reduction_kernel.exit.i 444: ; preds = %__nv_isinff.exit.i.i %445 = bitcast float %.094 to i32 %446 = lshr i32 %445, 23 %447 = and i32 %446, 255 %448 = shl i32 %445, 8 %449 = or i32 %448, -2147483648 br label %450 450: ; preds = %444, %450 %hi.i.i.i.0130 = phi i32 [ 0, %444 ], [ %455, %450 ] %iq.i.i.i.0129 = phi i32 [ 0, %444 ], [ %457, %450 ] %451 = getelementptr inbounds [6 x i32], [6 x i32] addrspace(1)* @__cudart_i2opi_f, i32 0, i32 %iq.i.i.i.0129 %452 = load i32, i32 addrspace(1)* %451, align 4 %453 = call { i32, i32 } asm "{\0A\09mad.lo.cc.u32 $0, $2, $3, $4;\0A\09madc.hi.u32 $1, $2, $3, 0;\0A\09}", "=r,=r,r,r,r"(i32 %452, i32 %449, i32 %hi.i.i.i.0130) #137, !srcloc !222 %454 = extractvalue { i32, i32 } %453, 0 %455 = extractvalue { i32, i32 } %453, 1 %456 = getelementptr inbounds [7 x i32], [7 x i32]* %result.i.i.i.i, i32 0, i32 %iq.i.i.i.0129 store i32 %454, i32* %456, align 4, !noalias !219 %457 = add nuw nsw i32 %iq.i.i.i.0129, 1 %exitcond.not = icmp eq i32 %457, 6 br i1 %exitcond.not, label %458, label %450, !llvm.loop !223 458: ; preds = %450 %459 = add nsw i32 %447, -128 %460 = lshr i32 %459, 5 %461 = and i32 %445, -2147483648 %462 = getelementptr inbounds [7 x i32], [7 x i32]* %result.i.i.i.i, i32 0, i32 6 store i32 %455, i32* %462, align 4, !noalias !219 %463 = and i32 %446, 31 %464 = sub nsw i32 6, %460 %465 = getelementptr inbounds [7 x i32], [7 x i32]* %result.i.i.i.i, i32 0, i32 %464 %466 = load i32, i32* %465, align 4 %467 = sub nsw i32 5, %460 %468 = getelementptr inbounds [7 x i32], [7 x i32]* %result.i.i.i.i, i32 0, i32 %467 %469 = load i32, i32* %468, align 4 %.not30 = icmp eq i32 %463, 0 br i1 %.not30, label %__internal_trig_reduction_slowpath.exit.i.i, label %470 470: ; preds = %458 %471 = sub nsw i32 4, %460 %472 = sub nuw nsw i32 32, %463 %473 = shl i32 %466, %463 %474 = lshr i32 %469, %472 %475 = add i32 %474, %473 %476 = shl i32 %469, %463 %477 = getelementptr inbounds [7 x i32], [7 x i32]* %result.i.i.i.i, i32 0, i32 %471 %478 = load i32, i32* %477, align 4 %479 = lshr i32 %478, %472 %480 = add i32 %479, %476 br label %__internal_trig_reduction_slowpath.exit.i.i __internal_trig_reduction_slowpath.exit.i.i: ; preds = %470, %458 %lo.i.i.i.0 = phi i32 [ %480, %470 ], [ %469, %458 ] %hi.i.i.i.1 = phi i32 [ %475, %470 ], [ %466, %458 ] %481 = lshr i32 %hi.i.i.i.1, 30 %482 = call i32 @llvm.fshl.i32(i32 %hi.i.i.i.1, i32 %lo.i.i.i.0, i32 noundef 2) %483 = shl i32 %lo.i.i.i.0, 2 %484 = lshr i32 %482, 31 %485 = add nuw nsw i32 %484, %481 %.not31 = icmp eq i32 %461, 0 %486 = sub nsw i32 0, %485 %spec.select1 = select i1 %.not31, i32 %485, i32 %486 %.not32 = icmp sgt i32 %482, -1 %487 = xor i32 %461, -2147483648 %not..not32 = xor i1 %.not32, true %488 = sext i1 %not..not32 to i32 %lo.i.i.i.1 = xor i32 %483, %488 %hi.i.i.i.2 = xor i32 %482, %488 %s.i.i.i.0 = select i1 %.not32, i32 %461, i32 %487 %489 = zext i32 %hi.i.i.i.2 to i64 %490 = shl nuw i64 %489, 32 %491 = zext i32 %lo.i.i.i.1 to i64 %492 = or i64 %490, %491 %493 = sitofp i64 %492 to double %494 = fmul double %493, 0x3BF921FB54442D19 %495 = fptrunc double %494 to float %.not34 = icmp eq i32 %s.i.i.i.0, 0 %496 = fneg float %495 %r.i.i.i.0 = select i1 %.not34, float %495, float %496 br label %__internal_trig_reduction_kernel.exit.i __internal_trig_reduction_kernel.exit.i: ; preds = %__nv_fmul_rn.exit.i.i, %__internal_trig_reduction_slowpath.exit.i.i, %__nv_rsqrtf.exit %i.i81.1 = phi i32 [ %.085, %__nv_rsqrtf.exit ], [ 0, %__nv_fmul_rn.exit.i.i ], [ %spec.select1, %__internal_trig_reduction_slowpath.exit.i.i ] %t.i.i.1 = phi float [ %.073, %__nv_rsqrtf.exit ], [ %.063, %__nv_fmul_rn.exit.i.i ], [ %r.i.i.i.0, %__internal_trig_reduction_slowpath.exit.i.i ] %497 = and i32 %i.i81.1, 3 %498 = uitofp i32 %497 to float %499 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not16 = icmp eq i32 %499, 0 %500 = call float @llvm.nvvm.fma.rn.ftz.f(float %498, float noundef 0x3FF921FB60000000, float noundef 0xC00F6A7A20000000) #135 %501 = call float @llvm.fma.f32(float %498, float noundef 0x3FF921FB60000000, float noundef 0xC00F6A7A20000000) %.046 = select i1 %.not16, float %501, float %500 %502 = fadd float %t.i.i.1, %.046 %503 = fmul float %502, 0x3FE45F3060000000 %504 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not17 = icmp eq i32 %504, 0 %505 = call i32 @llvm.nvvm.f2i.rn.ftz(float %503) #135 %506 = call i32 @llvm.nvvm.f2i.rn(float %503) #135 %.045 = select i1 %.not17, i32 %506, i32 %505 %507 = sitofp i32 %.045 to float %508 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not18 = icmp eq i32 %508, 0 %509 = call float @llvm.nvvm.fma.rn.ftz.f(float %507, float noundef 0xBFF921FB40000000, float %502) #135 %510 = call float @llvm.fma.f32(float %507, float noundef 0xBFF921FB40000000, float %502) %.044 = select i1 %.not18, float %510, float %509 %511 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not19 = icmp eq i32 %511, 0 %512 = call float @llvm.nvvm.fma.rn.ftz.f(float %507, float noundef 0xBE74442D00000000, float %.044) #135 %513 = call float @llvm.fma.f32(float %507, float noundef 0xBE74442D00000000, float %.044) %.041 = select i1 %.not19, float %513, float %512 %514 = add i32 %.045, 1 %515 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not20 = icmp eq i32 %515, 0 %516 = call float @llvm.nvvm.mul.rn.ftz.f(float %.041, float %.041) #135 %517 = fmul float %.041, %.041 %.035 = select i1 %.not20, float %517, float %516 %518 = and i32 %514, 1 %.not21 = icmp eq i32 %518, 0 %519 = select i1 %.not21, float %.041, float 1.000000e+00 %520 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not22 = icmp eq i32 %520, 0 %521 = call float @llvm.nvvm.fma.rn.ftz.f(float %.035, float %519, float noundef 0.000000e+00) #135 %522 = call float @llvm.fma.f32(float %.035, float %519, float noundef 0.000000e+00) %.030 = select i1 %.not22, float %522, float %521 br i1 %.not21, label %__internal_fmad.exit2.i.i, label %__internal_fmad.exit1.i.i __internal_fmad.exit1.i.i: ; preds = %__internal_trig_reduction_kernel.exit.i %523 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not28 = icmp eq i32 %523, 0 %524 = call float @llvm.nvvm.fma.rn.ftz.f(float noundef 0x3EF9758000000000, float %.035, float noundef 0xBF56C0FDA0000000) #135 %525 = call float @llvm.fma.f32(float %.035, float noundef 0x3EF9758000000000, float noundef 0xBF56C0FDA0000000) %.023 = select i1 %.not28, float %525, float %524 br label %__internal_fmad.exit2.i.i __internal_fmad.exit2.i.i: ; preds = %__internal_trig_reduction_kernel.exit.i, %__internal_fmad.exit1.i.i %526 = phi float [ 0xBFC5555500000000, %__internal_trig_reduction_kernel.exit.i ], [ 0xBFDFFFFFE0000000, %__internal_fmad.exit1.i.i ] %527 = phi float [ 0x3F8110BC80000000, %__internal_trig_reduction_kernel.exit.i ], [ 0x3FA5555760000000, %__internal_fmad.exit1.i.i ] %528 = phi float [ 0xBF29A82A60000000, %__internal_trig_reduction_kernel.exit.i ], [ %.023, %__internal_fmad.exit1.i.i ] %529 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not23 = icmp eq i32 %529, 0 %530 = call float @llvm.nvvm.fma.rn.ftz.f(float %528, float %.035, float noundef %527) #135 %531 = call float @llvm.fma.f32(float %528, float %.035, float noundef %527) %.016 = select i1 %.not23, float %531, float %530 %532 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not24 = icmp eq i32 %532, 0 %533 = call float @llvm.nvvm.fma.rn.ftz.f(float %.016, float %.035, float noundef %526) #135 %534 = call float @llvm.fma.f32(float %.016, float %.035, float noundef %526) %.09 = select i1 %.not24, float %534, float %533 %535 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not25 = icmp eq i32 %535, 0 %536 = call float @llvm.nvvm.fma.rn.ftz.f(float %.09, float %.030, float %519) #135 %537 = call float @llvm.fma.f32(float %.09, float %.030, float %519) %.05 = select i1 %.not25, float %537, float %536 %538 = and i32 %514, 2 %.not26 = icmp eq i32 %538, 0 br i1 %.not26, label %__internal_cos_offset_f.exit, label %__internal_fmad.exit5.i.i __internal_fmad.exit5.i.i: ; preds = %__internal_fmad.exit2.i.i %539 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not27 = icmp eq i32 %539, 0 %540 = call float @llvm.nvvm.fma.rn.ftz.f(float %.05, float noundef -1.000000e+00, float noundef 0.000000e+00) #135 %541 = call float @llvm.fma.f32(float %.05, float noundef -1.000000e+00, float noundef 0.000000e+00) %.0 = select i1 %.not27, float %541, float %540 br label %__internal_cos_offset_f.exit __internal_cos_offset_f.exit: ; preds = %__internal_fmad.exit5.i.i, %__internal_fmad.exit2.i.i %z.i.i79.0 = phi float [ %.0, %__internal_fmad.exit5.i.i ], [ %.05, %__internal_fmad.exit2.i.i ] %542 = fmul float %420, %z.i.i79.0 br label %543 543: ; preds = %__internal_accurate_logf.exit, %__internal_fmad.exit29, %__internal_cos_offset_f.exit, %__nv_isinff.exit, %__internal_fmad.exit47, %__internal_fmad.exit11, %4 %r.5 = phi float [ %5, %4 ], [ %.076, %__internal_accurate_logf.exit ], [ %325, %__internal_fmad.exit11 ], [ %357, %__internal_fmad.exit29 ], [ %386, %__internal_fmad.exit47 ], [ %542, %__internal_cos_offset_f.exit ], [ 0.000000e+00, %__nv_isinff.exit ] %544 = fcmp olt float %a, 0.000000e+00 %r.6 = select i1 %544, float 0x7FFFFFFFE0000000, float %r.5 ret float %r.6 } ; Function Attrs: noinline nounwind define dso_local float @__nv_ynf(i32 %n, float %a) local_unnamed_addr #44 { __nv_fabsf.exit.i: %result.i.i.i.i.i = alloca [7 x i32], align 4 %0 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not = icmp eq i32 %0, 0 %1 = call float @llvm.nvvm.fabs.ftz.f(float %a) #135 %2 = call float @llvm.fabs.f32(float %a) %.03 = select i1 %.not, float %2, float %1 %3 = fcmp olt float %.03, 0x3810000000000000 br i1 %3, label %4, label %6 4: ; preds = %__nv_fabsf.exit.i %5 = fdiv float 0xBFE45F3060000000, %.03 br label %__nv_y1f.exit 6: ; preds = %__nv_fabsf.exit.i %7 = fcmp ugt float %.03, 0x3FFB2D5880000000 br i1 %7, label %294, label %__internal_fmad.exit.i __internal_fmad.exit.i: ; preds = %6 %8 = fmul float %.03, %.03 %9 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not464 = icmp eq i32 %9, 0 %10 = call float @llvm.nvvm.fma.rn.ftz.f(float noundef 0x3E428C5980000000, float %8, float noundef 0xBEB0A4FB40000000) #135 %11 = call float @llvm.fma.f32(float %8, float noundef 0x3E428C5980000000, float noundef 0xBEB0A4FB40000000) %.04 = select i1 %.not464, float %11, float %10 %12 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not465 = icmp eq i32 %12, 0 %13 = call float @llvm.nvvm.fma.rn.ftz.f(float %.04, float %8, float noundef 0x3F12C7D2A0000000) #135 %14 = call float @llvm.fma.f32(float %.04, float %8, float noundef 0x3F12C7D2A0000000) %.05 = select i1 %.not465, float %14, float %13 %15 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not466 = icmp eq i32 %15, 0 %16 = call float @llvm.nvvm.fma.rn.ftz.f(float %.05, float %8, float noundef 0xBF6835B960000000) #135 %17 = call float @llvm.fma.f32(float %.05, float %8, float noundef 0xBF6835B960000000) %.07 = select i1 %.not466, float %17, float %16 %18 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not467 = icmp eq i32 %18, 0 %19 = call float @llvm.nvvm.fma.rn.ftz.f(float %.07, float %8, float noundef 0x3FABD39760000000) #135 %20 = call float @llvm.fma.f32(float %.07, float %8, float noundef 0x3FABD39760000000) %.09 = select i1 %.not467, float %20, float %19 %21 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not468 = icmp eq i32 %21, 0 %22 = call float @llvm.nvvm.fma.rn.ftz.f(float %.09, float %8, float noundef 0xBFC9186620000000) #135 %23 = call float @llvm.fma.f32(float %.09, float %8, float noundef 0xBFC9186620000000) %.010 = select i1 %.not468, float %23, float %22 %24 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not469 = icmp eq i32 %24, 0 %25 = call float @llvm.nvvm.fabs.ftz.f(float %.03) #135 %26 = call float @llvm.fabs.f32(float %.03) %.011 = select i1 %.not469, float %26, float %25 %27 = fcmp ugt float %.011, 8.000000e+00 br i1 %27, label %__nv_isinff.exit.i.i, label %__internal_fmad.exit.i.i __internal_fmad.exit.i.i: ; preds = %__internal_fmad.exit.i %28 = fadd float %.011, 0xC00EA75580000000 %29 = fadd float %28, 0x3E74A121E0000000 %30 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not519 = icmp eq i32 %30, 0 %31 = call float @llvm.nvvm.fma.rn.ftz.f(float noundef 0x3D35E68C60000000, float %29, float noundef 0x3D7037E840000000) #135 %32 = call float @llvm.fma.f32(float %29, float noundef 0x3D35E68C60000000, float noundef 0x3D7037E840000000) %.012 = select i1 %.not519, float %32, float %31 %33 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not520 = icmp eq i32 %33, 0 %34 = call float @llvm.nvvm.fma.rn.ftz.f(float %.012, float %29, float noundef 0xBDBC43D820000000) #135 %35 = call float @llvm.fma.f32(float %.012, float %29, float noundef 0xBDBC43D820000000) %.014 = select i1 %.not520, float %35, float %34 %36 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not521 = icmp eq i32 %36, 0 %37 = call float @llvm.nvvm.fma.rn.ftz.f(float %.014, float %29, float noundef 0xBDEBBBDFE0000000) #135 %38 = call float @llvm.fma.f32(float %.014, float %29, float noundef 0xBDEBBBDFE0000000) %.015 = select i1 %.not521, float %38, float %37 %39 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not522 = icmp eq i32 %39, 0 %40 = call float @llvm.nvvm.fma.rn.ftz.f(float %.015, float %29, float noundef 0x3E336193A0000000) #135 %41 = call float @llvm.fma.f32(float %.015, float %29, float noundef 0x3E336193A0000000) %.016 = select i1 %.not522, float %41, float %40 %42 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not523 = icmp eq i32 %42, 0 %43 = call float @llvm.nvvm.fma.rn.ftz.f(float %.016, float %29, float noundef 0x3E5D022E60000000) #135 %44 = call float @llvm.fma.f32(float %.016, float %29, float noundef 0x3E5D022E60000000) %.017 = select i1 %.not523, float %44, float %43 %45 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not524 = icmp eq i32 %45, 0 %46 = call float @llvm.nvvm.fma.rn.ftz.f(float %.017, float %29, float noundef 0xBEA1F1B900000000) #135 %47 = call float @llvm.fma.f32(float %.017, float %29, float noundef 0xBEA1F1B900000000) %.018 = select i1 %.not524, float %47, float %46 %48 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not525 = icmp eq i32 %48, 0 %49 = call float @llvm.nvvm.fma.rn.ftz.f(float %.018, float %29, float noundef 0xBEC3CCA7A0000000) #135 %50 = call float @llvm.fma.f32(float %.018, float %29, float noundef 0xBEC3CCA7A0000000) %.019 = select i1 %.not525, float %50, float %49 %51 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not526 = icmp eq i32 %51, 0 %52 = call float @llvm.nvvm.fma.rn.ftz.f(float %.019, float %29, float noundef 0x3F059B38A0000000) #135 %53 = call float @llvm.fma.f32(float %.019, float %29, float noundef 0x3F059B38A0000000) %.021 = select i1 %.not526, float %53, float %52 %54 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not527 = icmp eq i32 %54, 0 %55 = call float @llvm.nvvm.fma.rn.ftz.f(float %.021, float %29, float noundef 0x3F1F3D6200000000) #135 %56 = call float @llvm.fma.f32(float %.021, float %29, float noundef 0x3F1F3D6200000000) %.022 = select i1 %.not527, float %56, float %55 %57 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not528 = icmp eq i32 %57, 0 %58 = call float @llvm.nvvm.fma.rn.ftz.f(float %.022, float %29, float noundef 0xBF5D9D7380000000) #135 %59 = call float @llvm.fma.f32(float %.022, float %29, float noundef 0xBF5D9D7380000000) %.023 = select i1 %.not528, float %59, float %58 %60 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not529 = icmp eq i32 %60, 0 %61 = call float @llvm.nvvm.fma.rn.ftz.f(float %.023, float %29, float noundef 0xBF64EDFFA0000000) #135 %62 = call float @llvm.fma.f32(float %.023, float %29, float noundef 0xBF64EDFFA0000000) %.024 = select i1 %.not529, float %62, float %61 %63 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not530 = icmp eq i32 %63, 0 %64 = call float @llvm.nvvm.fma.rn.ftz.f(float %.024, float %29, float noundef 0x3FA0E73260000000) #135 %65 = call float @llvm.fma.f32(float %.024, float %29, float noundef 0x3FA0E73260000000) %.025 = select i1 %.not530, float %65, float %64 %66 = fadd float %.011, 0xC01C0FF600000000 %67 = fadd float %66, 0x3E88971B60000000 %68 = fmul float %67, %.025 %69 = fmul float %29, %68 %70 = fmul float %.011, %69 br label %230 __nv_isinff.exit.i.i: ; preds = %__internal_fmad.exit.i %71 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not470 = icmp eq i32 %71, 0 %72 = call float @llvm.nvvm.fabs.ftz.f(float %.011) #135 %73 = call float @llvm.fabs.f32(float %.011) %.026 = select i1 %.not470, float %73, float %72 %74 = fcmp oeq float %.026, 0x7FF0000000000000 br i1 %74, label %230, label %__internal_fmad.exit12.i.i __internal_fmad.exit12.i.i: ; preds = %__nv_isinff.exit.i.i %75 = call float asm "rcp.approx.ftz.f32 $0,$1;", "=f,f"(float %.011) #137, !srcloc !225 %76 = fmul float %75, %75 %77 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not471 = icmp eq i32 %77, 0 %78 = call float @llvm.nvvm.fma.rn.ftz.f(float noundef 0xC0105966E0000000, float %76, float noundef 0x3FE7FEFD20000000) #135 %79 = call float @llvm.fma.f32(float %76, float noundef 0xC0105966E0000000, float noundef 0x3FE7FEFD20000000) %.028 = select i1 %.not471, float %79, float %78 %80 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not472 = icmp eq i32 %80, 0 %81 = call float @llvm.nvvm.fma.rn.ftz.f(float %.028, float %76, float noundef 0xBFC8B175C0000000) #135 %82 = call float @llvm.fma.f32(float %.028, float %76, float noundef 0xBFC8B175C0000000) %.029 = select i1 %.not472, float %82, float %81 %83 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not473 = icmp eq i32 %83, 0 %84 = call float @llvm.nvvm.fma.rn.ftz.f(float %.029, float %76, float noundef 0x3FC7FFF160000000) #135 %85 = call float @llvm.fma.f32(float %.029, float %76, float noundef 0x3FC7FFF160000000) %.030 = select i1 %.not473, float %85, float %84 %86 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not474 = icmp eq i32 %86, 0 %87 = call float @llvm.nvvm.fma.rn.ftz.f(float %.030, float %76, float noundef 1.000000e+00) #135 %88 = call float @llvm.fma.f32(float %.030, float %76, float noundef 1.000000e+00) %.031 = select i1 %.not474, float %88, float %87 %89 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not475 = icmp eq i32 %89, 0 %90 = call float @llvm.nvvm.fma.rn.ftz.f(float noundef 0xBFF9477440000000, float %76, float noundef 0x3FD72295A0000000) #135 %91 = call float @llvm.fma.f32(float %76, float noundef 0xBFF9477440000000, float noundef 0x3FD72295A0000000) %.032 = select i1 %.not475, float %91, float %90 %92 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not476 = icmp eq i32 %92, 0 %93 = call float @llvm.nvvm.fma.rn.ftz.f(float %.032, float %76, float noundef 0xBFC4FE5D80000000) #135 %94 = call float @llvm.fma.f32(float %.032, float %76, float noundef 0xBFC4FE5D80000000) %.033 = select i1 %.not476, float %94, float %93 %95 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not477 = icmp eq i32 %95, 0 %96 = call float @llvm.nvvm.fma.rn.ftz.f(float %.033, float %76, float noundef 0x3FD7FFFFA0000000) #135 %97 = call float @llvm.fma.f32(float %.033, float %76, float noundef 0x3FD7FFFFA0000000) %.035 = select i1 %.not477, float %97, float %96 %98 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not478 = icmp eq i32 %98, 0 %99 = call float @llvm.nvvm.fma.rn.ftz.f(float %.035, float %75, float %.011) #135 %100 = call float @llvm.fma.f32(float %.035, float %75, float %.011) %.036 = select i1 %.not478, float %100, float %99 %101 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not479 = icmp eq i32 %101, 0 br i1 %.not479, label %104, label %102 102: ; preds = %__internal_fmad.exit12.i.i %103 = call float @llvm.nvvm.rsqrt.approx.ftz.f(float %.011) #135 br label %__nv_rsqrtf.exit.i.i 104: ; preds = %__internal_fmad.exit12.i.i %105 = call float @llvm.nvvm.rsqrt.approx.f(float %.011) #135 br label %__nv_rsqrtf.exit.i.i __nv_rsqrtf.exit.i.i: ; preds = %104, %102 %.037 = phi float [ %103, %102 ], [ %105, %104 ] %106 = fmul float %.037, 0x3FE9884540000000 %107 = fmul float %.031, %106 %108 = fmul float %.036, 0x3FE45F3060000000 %109 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not480 = icmp eq i32 %109, 0 %110 = call i32 @llvm.nvvm.f2i.rn.ftz(float %108) #135 %111 = call i32 @llvm.nvvm.f2i.rn(float %108) #135 %.039 = select i1 %.not480, i32 %111, i32 %110 %112 = sitofp i32 %.039 to float %113 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not481 = icmp eq i32 %113, 0 %114 = call float @llvm.nvvm.fma.rn.ftz.f(float %112, float noundef 0xBFF921FB40000000, float %.036) #135 %115 = call float @llvm.fma.f32(float %112, float noundef 0xBFF921FB40000000, float %.036) %.040 = select i1 %.not481, float %115, float %114 %116 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not482 = icmp eq i32 %116, 0 %117 = call float @llvm.nvvm.fma.rn.ftz.f(float %112, float noundef 0xBE74442D00000000, float %.040) #135 %118 = call float @llvm.fma.f32(float %112, float noundef 0xBE74442D00000000, float %.040) %.041 = select i1 %.not482, float %118, float %117 %119 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not483 = icmp eq i32 %119, 0 %120 = call float @llvm.nvvm.fma.rn.ftz.f(float %112, float noundef 0xBCF84698A0000000, float %.041) #135 %121 = call float @llvm.fma.f32(float %112, float noundef 0xBCF84698A0000000, float %.041) %.042 = select i1 %.not483, float %121, float %120 %122 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not484 = icmp eq i32 %122, 0 %123 = call float @llvm.nvvm.fabs.ftz.f(float %.036) #135 %124 = call float @llvm.fabs.f32(float %.036) %.044 = select i1 %.not484, float %124, float %123 %125 = fcmp ult float %.044, 1.056150e+05 br i1 %125, label %__internal_trig_reduction_kernel.exit.i.i.i, label %__nv_isinff.exit.i.i.i.i __nv_isinff.exit.i.i.i.i: ; preds = %__nv_rsqrtf.exit.i.i %126 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not512 = icmp eq i32 %126, 0 %.045 = select i1 %.not512, float %124, float %123 %127 = fcmp oeq float %.045, 0x7FF0000000000000 br i1 %127, label %__nv_fmul_rn.exit.i.i.i.i, label %131 __nv_fmul_rn.exit.i.i.i.i: ; preds = %__nv_isinff.exit.i.i.i.i %128 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not518 = icmp eq i32 %128, 0 %129 = call float @llvm.nvvm.mul.rn.ftz.f(float %.036, float noundef 0.000000e+00) #135 %130 = fmul float %.036, 0.000000e+00 %.046 = select i1 %.not518, float %130, float %129 br label %__internal_trig_reduction_kernel.exit.i.i.i 131: ; preds = %__nv_isinff.exit.i.i.i.i %132 = bitcast float %.036 to i32 %133 = lshr i32 %132, 23 %134 = and i32 %133, 255 %135 = shl i32 %132, 8 %136 = or i32 %135, -2147483648 br label %137 137: ; preds = %131, %137 %iq.i.i.i.i.i.0549 = phi i32 [ 0, %131 ], [ %144, %137 ] %hi.i.i.i.i.i.0548 = phi i32 [ 0, %131 ], [ %142, %137 ] %138 = getelementptr inbounds [6 x i32], [6 x i32] addrspace(1)* @__cudart_i2opi_f, i32 0, i32 %iq.i.i.i.i.i.0549 %139 = load i32, i32 addrspace(1)* %138, align 4 %140 = call { i32, i32 } asm "{\0A\09mad.lo.cc.u32 $0, $2, $3, $4;\0A\09madc.hi.u32 $1, $2, $3, 0;\0A\09}", "=r,=r,r,r,r"(i32 %139, i32 %136, i32 %hi.i.i.i.i.i.0548) #137, !srcloc !222 %141 = extractvalue { i32, i32 } %140, 0 %142 = extractvalue { i32, i32 } %140, 1 %143 = getelementptr inbounds [7 x i32], [7 x i32]* %result.i.i.i.i.i, i32 0, i32 %iq.i.i.i.i.i.0549 store i32 %141, i32* %143, align 4, !noalias !219 %144 = add nuw nsw i32 %iq.i.i.i.i.i.0549, 1 %exitcond579.not = icmp eq i32 %144, 6 br i1 %exitcond579.not, label %145, label %137, !llvm.loop !223 145: ; preds = %137 %146 = add nsw i32 %134, -128 %147 = lshr i32 %146, 5 %148 = and i32 %132, -2147483648 %149 = getelementptr inbounds [7 x i32], [7 x i32]* %result.i.i.i.i.i, i32 0, i32 6 store i32 %142, i32* %149, align 4, !noalias !219 %150 = and i32 %133, 31 %151 = sub nsw i32 6, %147 %152 = getelementptr inbounds [7 x i32], [7 x i32]* %result.i.i.i.i.i, i32 0, i32 %151 %153 = load i32, i32* %152, align 4 %154 = sub nsw i32 5, %147 %155 = getelementptr inbounds [7 x i32], [7 x i32]* %result.i.i.i.i.i, i32 0, i32 %154 %156 = load i32, i32* %155, align 4 %.not513 = icmp eq i32 %150, 0 br i1 %.not513, label %__internal_trig_reduction_slowpath.exit.i.i.i.i, label %157 157: ; preds = %145 %158 = sub nsw i32 4, %147 %159 = sub nuw nsw i32 32, %150 %160 = shl i32 %153, %150 %161 = lshr i32 %156, %159 %162 = add i32 %161, %160 %163 = shl i32 %156, %150 %164 = getelementptr inbounds [7 x i32], [7 x i32]* %result.i.i.i.i.i, i32 0, i32 %158 %165 = load i32, i32* %164, align 4 %166 = lshr i32 %165, %159 %167 = add i32 %166, %163 br label %__internal_trig_reduction_slowpath.exit.i.i.i.i __internal_trig_reduction_slowpath.exit.i.i.i.i: ; preds = %157, %145 %hi.i.i.i.i.i.1 = phi i32 [ %162, %157 ], [ %153, %145 ] %lo.i.i.i.i.i.0 = phi i32 [ %167, %157 ], [ %156, %145 ] %168 = lshr i32 %hi.i.i.i.i.i.1, 30 %169 = call i32 @llvm.fshl.i32(i32 %hi.i.i.i.i.i.1, i32 %lo.i.i.i.i.i.0, i32 noundef 2) %170 = shl i32 %lo.i.i.i.i.i.0, 2 %171 = lshr i32 %169, 31 %172 = add nuw nsw i32 %171, %168 %.not514 = icmp eq i32 %148, 0 %173 = sub nsw i32 0, %172 %spec.select = select i1 %.not514, i32 %172, i32 %173 %.not515 = icmp sgt i32 %169, -1 %174 = xor i32 %148, -2147483648 %s.i.i.i.i.i.0 = select i1 %.not515, i32 %148, i32 %174 %not..not515 = xor i1 %.not515, true %175 = sext i1 %not..not515 to i32 %hi.i.i.i.i.i.2 = xor i32 %169, %175 %lo.i.i.i.i.i.1 = xor i32 %170, %175 %176 = zext i32 %hi.i.i.i.i.i.2 to i64 %177 = shl nuw i64 %176, 32 %178 = zext i32 %lo.i.i.i.i.i.1 to i64 %179 = or i64 %177, %178 %180 = sitofp i64 %179 to double %181 = fmul double %180, 0x3BF921FB54442D19 %182 = fptrunc double %181 to float %.not517 = icmp eq i32 %s.i.i.i.i.i.0, 0 %183 = fneg float %182 %r.i.i.i.i.i.0 = select i1 %.not517, float %182, float %183 br label %__internal_trig_reduction_kernel.exit.i.i.i __internal_trig_reduction_kernel.exit.i.i.i: ; preds = %__nv_fmul_rn.exit.i.i.i.i, %__internal_trig_reduction_slowpath.exit.i.i.i.i, %__nv_rsqrtf.exit.i.i %i.i.i.i.1 = phi i32 [ %.039, %__nv_rsqrtf.exit.i.i ], [ 0, %__nv_fmul_rn.exit.i.i.i.i ], [ %spec.select, %__internal_trig_reduction_slowpath.exit.i.i.i.i ] %t.i.i.i.i.1 = phi float [ %.042, %__nv_rsqrtf.exit.i.i ], [ %.046, %__nv_fmul_rn.exit.i.i.i.i ], [ %r.i.i.i.i.i.0, %__internal_trig_reduction_slowpath.exit.i.i.i.i ] %184 = and i32 %i.i.i.i.1, 3 %185 = uitofp i32 %184 to float %186 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not485 = icmp eq i32 %186, 0 %187 = call float @llvm.nvvm.fma.rn.ftz.f(float %185, float noundef 0x3FF921FB60000000, float noundef 0xC002D97C80000000) #135 %188 = call float @llvm.fma.f32(float %185, float noundef 0x3FF921FB60000000, float noundef 0xC002D97C80000000) %.048 = select i1 %.not485, float %188, float %187 %189 = fadd float %t.i.i.i.i.1, %.048 %190 = fmul float %189, 0x3FE45F3060000000 %191 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not486 = icmp eq i32 %191, 0 %192 = call i32 @llvm.nvvm.f2i.rn.ftz(float %190) #135 %193 = call i32 @llvm.nvvm.f2i.rn(float %190) #135 %.049 = select i1 %.not486, i32 %193, i32 %192 %194 = sitofp i32 %.049 to float %195 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not487 = icmp eq i32 %195, 0 %196 = call float @llvm.nvvm.fma.rn.ftz.f(float %194, float noundef 0xBFF921FB40000000, float %189) #135 %197 = call float @llvm.fma.f32(float %194, float noundef 0xBFF921FB40000000, float %189) %.050 = select i1 %.not487, float %197, float %196 %198 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not488 = icmp eq i32 %198, 0 %199 = call float @llvm.nvvm.fma.rn.ftz.f(float %194, float noundef 0xBE74442D00000000, float %.050) #135 %200 = call float @llvm.fma.f32(float %194, float noundef 0xBE74442D00000000, float %.050) %.052 = select i1 %.not488, float %200, float %199 %201 = add i32 %.049, 1 %202 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not489 = icmp eq i32 %202, 0 %203 = call float @llvm.nvvm.mul.rn.ftz.f(float %.052, float %.052) #135 %204 = fmul float %.052, %.052 %.053 = select i1 %.not489, float %204, float %203 %205 = and i32 %201, 1 %.not490 = icmp eq i32 %205, 0 %206 = select i1 %.not490, float %.052, float 1.000000e+00 %207 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not491 = icmp eq i32 %207, 0 %208 = call float @llvm.nvvm.fma.rn.ftz.f(float %.053, float %206, float noundef 0.000000e+00) #135 %209 = call float @llvm.fma.f32(float %.053, float %206, float noundef 0.000000e+00) %.055 = select i1 %.not491, float %209, float %208 br i1 %.not490, label %__internal_fmad.exit2.i.i.i.i, label %__internal_fmad.exit1.i.i.i.i __internal_fmad.exit1.i.i.i.i: ; preds = %__internal_trig_reduction_kernel.exit.i.i.i %210 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not511 = icmp eq i32 %210, 0 %211 = call float @llvm.nvvm.fma.rn.ftz.f(float noundef 0x3EF9758000000000, float %.053, float noundef 0xBF56C0FDA0000000) #135 %212 = call float @llvm.fma.f32(float %.053, float noundef 0x3EF9758000000000, float noundef 0xBF56C0FDA0000000) %.056 = select i1 %.not511, float %212, float %211 br label %__internal_fmad.exit2.i.i.i.i __internal_fmad.exit2.i.i.i.i: ; preds = %__internal_trig_reduction_kernel.exit.i.i.i, %__internal_fmad.exit1.i.i.i.i %213 = phi float [ 0xBFC5555500000000, %__internal_trig_reduction_kernel.exit.i.i.i ], [ 0xBFDFFFFFE0000000, %__internal_fmad.exit1.i.i.i.i ] %214 = phi float [ 0x3F8110BC80000000, %__internal_trig_reduction_kernel.exit.i.i.i ], [ 0x3FA5555760000000, %__internal_fmad.exit1.i.i.i.i ] %215 = phi float [ 0xBF29A82A60000000, %__internal_trig_reduction_kernel.exit.i.i.i ], [ %.056, %__internal_fmad.exit1.i.i.i.i ] %216 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not492 = icmp eq i32 %216, 0 %217 = call float @llvm.nvvm.fma.rn.ftz.f(float %215, float %.053, float noundef %214) #135 %218 = call float @llvm.fma.f32(float %215, float %.053, float noundef %214) %.057 = select i1 %.not492, float %218, float %217 %219 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not493 = icmp eq i32 %219, 0 %220 = call float @llvm.nvvm.fma.rn.ftz.f(float %.057, float %.053, float noundef %213) #135 %221 = call float @llvm.fma.f32(float %.057, float %.053, float noundef %213) %.059 = select i1 %.not493, float %221, float %220 %222 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not494 = icmp eq i32 %222, 0 %223 = call float @llvm.nvvm.fma.rn.ftz.f(float %.059, float %.055, float %206) #135 %224 = call float @llvm.fma.f32(float %.059, float %.055, float %206) %.061 = select i1 %.not494, float %224, float %223 %225 = and i32 %201, 2 %.not495 = icmp eq i32 %225, 0 br i1 %.not495, label %__internal_cos_offset_f.exit.i.i, label %__internal_fmad.exit5.i.i.i.i __internal_fmad.exit5.i.i.i.i: ; preds = %__internal_fmad.exit2.i.i.i.i %226 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not510 = icmp eq i32 %226, 0 %227 = call float @llvm.nvvm.fma.rn.ftz.f(float %.061, float noundef -1.000000e+00, float noundef 0.000000e+00) #135 %228 = call float @llvm.fma.f32(float %.061, float noundef -1.000000e+00, float noundef 0.000000e+00) %.062 = select i1 %.not510, float %228, float %227 br label %__internal_cos_offset_f.exit.i.i __internal_cos_offset_f.exit.i.i: ; preds = %__internal_fmad.exit5.i.i.i.i, %__internal_fmad.exit2.i.i.i.i %z.i.i.i.i.0 = phi float [ %.062, %__internal_fmad.exit5.i.i.i.i ], [ %.061, %__internal_fmad.exit2.i.i.i.i ] %229 = fmul float %107, %z.i.i.i.i.0 br label %230 230: ; preds = %__internal_cos_offset_f.exit.i.i, %__nv_isinff.exit.i.i, %__internal_fmad.exit.i.i %r.i.i.1 = phi float [ %70, %__internal_fmad.exit.i.i ], [ %229, %__internal_cos_offset_f.exit.i.i ], [ 0.000000e+00, %__nv_isinff.exit.i.i ] %231 = fcmp olt float %.03, 0.000000e+00 %232 = fneg float %r.i.i.1 %r.i.i.2 = select i1 %231, float %232, float %r.i.i.1 %233 = fcmp olt float %.011, 0x39B4484C00000000 br i1 %233, label %234, label %.__nv_j1f.exit.i_crit_edge .__nv_j1f.exit.i_crit_edge: ; preds = %230 %.pre8 = bitcast float %.03 to i32 br label %__nv_j1f.exit.i 234: ; preds = %230 %235 = bitcast float %.03 to i32 %236 = and i32 %235, -2147483648 %237 = bitcast float %r.i.i.2 to i32 %238 = and i32 %237, 2147483647 %239 = or i32 %238, %236 %240 = bitcast i32 %239 to float br label %__nv_j1f.exit.i __nv_j1f.exit.i: ; preds = %.__nv_j1f.exit.i_crit_edge, %234 %.pre-phi9 = phi i32 [ %.pre8, %.__nv_j1f.exit.i_crit_edge ], [ %235, %234 ] %r.i.i.3 = phi float [ %r.i.i.2, %.__nv_j1f.exit.i_crit_edge ], [ %240, %234 ] %241 = add i32 %.pre-phi9, -1059760811 %242 = and i32 %241, -8388608 %243 = sub i32 %.pre-phi9, %242 %244 = bitcast i32 %243 to float %245 = sitofp i32 %242 to float %246 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not496 = icmp eq i32 %246, 0 %247 = call float @llvm.nvvm.fma.rn.ftz.f(float %245, float noundef 0x3E80000000000000, float noundef 0.000000e+00) #135 %248 = call float @llvm.fma.f32(float %245, float noundef 0x3E80000000000000, float noundef 0.000000e+00) %.068 = select i1 %.not496, float %248, float %247 %249 = fadd float %244, -1.000000e+00 %250 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not497 = icmp eq i32 %250, 0 %251 = call float @llvm.nvvm.fma.rn.ftz.f(float noundef 0xBFC0AA04E0000000, float %249, float noundef 0x3FC2073EC0000000) #135 %252 = call float @llvm.fma.f32(float %249, float noundef 0xBFC0AA04E0000000, float noundef 0x3FC2073EC0000000) %.069 = select i1 %.not497, float %252, float %251 %253 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not498 = icmp eq i32 %253, 0 %254 = call float @llvm.nvvm.fma.rn.ftz.f(float %.069, float %249, float noundef 0xBFBF19B980000000) #135 %255 = call float @llvm.fma.f32(float %.069, float %249, float noundef 0xBFBF19B980000000) %.070 = select i1 %.not498, float %255, float %254 %256 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not499 = icmp eq i32 %256, 0 %257 = call float @llvm.nvvm.fma.rn.ftz.f(float %.070, float %249, float noundef 0x3FC1E52AA0000000) #135 %258 = call float @llvm.fma.f32(float %.070, float %249, float noundef 0x3FC1E52AA0000000) %.071 = select i1 %.not499, float %258, float %257 %259 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not500 = icmp eq i32 %259, 0 %260 = call float @llvm.nvvm.fma.rn.ftz.f(float %.071, float %249, float noundef 0xBFC55B1720000000) #135 %261 = call float @llvm.fma.f32(float %.071, float %249, float noundef 0xBFC55B1720000000) %.072 = select i1 %.not500, float %261, float %260 %262 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not501 = icmp eq i32 %262, 0 %263 = call float @llvm.nvvm.fma.rn.ftz.f(float %.072, float %249, float noundef 0x3FC99DA160000000) #135 %264 = call float @llvm.fma.f32(float %.072, float %249, float noundef 0x3FC99DA160000000) %.073 = select i1 %.not501, float %264, float %263 %265 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not502 = icmp eq i32 %265, 0 %266 = call float @llvm.nvvm.fma.rn.ftz.f(float %.073, float %249, float noundef 0xBFCFFFE440000000) #135 %267 = call float @llvm.fma.f32(float %.073, float %249, float noundef 0xBFCFFFE440000000) %.074 = select i1 %.not502, float %267, float %266 %268 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not503 = icmp eq i32 %268, 0 %269 = call float @llvm.nvvm.fma.rn.ftz.f(float %.074, float %249, float noundef 0x3FD5554F00000000) #135 %270 = call float @llvm.fma.f32(float %.074, float %249, float noundef 0x3FD5554F00000000) %.075 = select i1 %.not503, float %270, float %269 %271 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not504 = icmp eq i32 %271, 0 %272 = call float @llvm.nvvm.fma.rn.ftz.f(float %.075, float %249, float noundef -5.000000e-01) #135 %273 = call float @llvm.fma.f32(float %.075, float %249, float noundef -5.000000e-01) %.067 = select i1 %.not504, float %273, float %272 %274 = fmul float %249, %.067 %275 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not505 = icmp eq i32 %275, 0 %276 = call float @llvm.nvvm.fma.rn.ftz.f(float %274, float %249, float %249) #135 %277 = call float @llvm.fma.f32(float %274, float %249, float %249) %.066 = select i1 %.not505, float %277, float %276 %278 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not506 = icmp eq i32 %278, 0 %279 = call float @llvm.nvvm.fma.rn.ftz.f(float %.068, float noundef 0x3FE62E4300000000, float %.066) #135 %280 = call float @llvm.fma.f32(float %.068, float noundef 0x3FE62E4300000000, float %.066) %.065 = select i1 %.not506, float %280, float %279 %281 = icmp ugt i32 %.pre-phi9, 2139095039 br i1 %281, label %__nv_fmaf_rn.exit.i.i, label %__internal_accurate_logf.exit.i __nv_fmaf_rn.exit.i.i: ; preds = %__nv_j1f.exit.i %282 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not509 = icmp eq i32 %282, 0 %283 = call float @llvm.nvvm.fma.rn.ftz.f(float %.03, float noundef 0x7FF0000000000000, float noundef 0x7FF0000000000000) #135 %284 = call float @llvm.fma.f32(float %.03, float noundef 0x7FF0000000000000, float noundef 0x7FF0000000000000) %.064 = select i1 %.not509, float %284, float %283 br label %__internal_accurate_logf.exit.i __internal_accurate_logf.exit.i: ; preds = %__nv_fmaf_rn.exit.i.i, %__nv_j1f.exit.i %r.i5.i.0 = phi float [ %.064, %__nv_fmaf_rn.exit.i.i ], [ %.065, %__nv_j1f.exit.i ] %285 = fcmp oeq float %.03, 0.000000e+00 %r.i5.i.1 = select i1 %285, float 0xFFF0000000000000, float %r.i5.i.0 %286 = fdiv float -1.000000e+00, %.03 %287 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not507 = icmp eq i32 %287, 0 %288 = call float @llvm.nvvm.fma.rn.ftz.f(float %r.i.i.3, float %r.i5.i.1, float %286) #135 %289 = call float @llvm.fma.f32(float %r.i.i.3, float %r.i5.i.1, float %286) %.076 = select i1 %.not507, float %289, float %288 %290 = fmul float %.076, 0x3FE45F3060000000 %291 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not508 = icmp eq i32 %291, 0 %292 = call float @llvm.nvvm.fma.rn.ftz.f(float %.010, float %.03, float %290) #135 %293 = call float @llvm.fma.f32(float %.010, float %.03, float %290) %.077 = select i1 %.not508, float %293, float %292 br label %__nv_y1f.exit 294: ; preds = %6 %295 = fcmp ugt float %.03, 0x400E81DDC0000000 br i1 %295, label %326, label %__internal_fmad.exit11.i __internal_fmad.exit11.i: ; preds = %294 %296 = fadd float %.03, 0xC00193BEE0000000 %297 = fadd float %296, 0x3E76401B80000000 %298 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not455 = icmp eq i32 %298, 0 %299 = call float @llvm.nvvm.fma.rn.ftz.f(float noundef 0xBEF13C53A0000000, float %297, float noundef 0x3F20C95100000000) #135 %300 = call float @llvm.fma.f32(float %297, float noundef 0xBEF13C53A0000000, float noundef 0x3F20C95100000000) %.078 = select i1 %.not455, float %300, float %299 %301 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not456 = icmp eq i32 %301, 0 %302 = call float @llvm.nvvm.fma.rn.ftz.f(float %.078, float %297, float noundef 0xBF3E1561A0000000) #135 %303 = call float @llvm.fma.f32(float %.078, float %297, float noundef 0xBF3E1561A0000000) %.079 = select i1 %.not456, float %303, float %302 %304 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not457 = icmp eq i32 %304, 0 %305 = call float @llvm.nvvm.fma.rn.ftz.f(float %.079, float %297, float noundef 0x3F51EC2040000000) #135 %306 = call float @llvm.fma.f32(float %.079, float %297, float noundef 0x3F51EC2040000000) %.080 = select i1 %.not457, float %306, float %305 %307 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not458 = icmp eq i32 %307, 0 %308 = call float @llvm.nvvm.fma.rn.ftz.f(float %.080, float %297, float noundef 0xBF658E08A0000000) #135 %309 = call float @llvm.fma.f32(float %.080, float %297, float noundef 0xBF658E08A0000000) %.082 = select i1 %.not458, float %309, float %308 %310 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not459 = icmp eq i32 %310, 0 %311 = call float @llvm.nvvm.fma.rn.ftz.f(float %.082, float %297, float noundef 0x3F7E6BBEE0000000) #135 %312 = call float @llvm.fma.f32(float %.082, float %297, float noundef 0x3F7E6BBEE0000000) %.083 = select i1 %.not459, float %312, float %311 %313 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not460 = icmp eq i32 %313, 0 %314 = call float @llvm.nvvm.fma.rn.ftz.f(float %.083, float %297, float noundef 0xBF73A12F80000000) #135 %315 = call float @llvm.fma.f32(float %.083, float %297, float noundef 0xBF73A12F80000000) %.084 = select i1 %.not460, float %315, float %314 %316 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not461 = icmp eq i32 %316, 0 %317 = call float @llvm.nvvm.fma.rn.ftz.f(float %.084, float %297, float noundef 0xBFA0D2D140000000) #135 %318 = call float @llvm.fma.f32(float %.084, float %297, float noundef 0xBFA0D2D140000000) %.085 = select i1 %.not461, float %318, float %317 %319 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not462 = icmp eq i32 %319, 0 %320 = call float @llvm.nvvm.fma.rn.ftz.f(float %.085, float %297, float noundef 0xBFBE56FBE0000000) #135 %321 = call float @llvm.fma.f32(float %.085, float %297, float noundef 0xBFBE56FBE0000000) %.087 = select i1 %.not462, float %321, float %320 %322 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not463 = icmp eq i32 %322, 0 %323 = call float @llvm.nvvm.fma.rn.ftz.f(float %.087, float %297, float noundef 0x3FE0AA4840000000) #135 %324 = call float @llvm.fma.f32(float %.087, float %297, float noundef 0x3FE0AA4840000000) %.088 = select i1 %.not463, float %324, float %323 %325 = fmul float %297, %.088 br label %__nv_y1f.exit 326: ; preds = %294 %327 = fcmp ugt float %.03, 0x401C0D26E0000000 br i1 %327, label %358, label %__internal_fmad.exit29.i __internal_fmad.exit29.i: ; preds = %326 %328 = fadd float %.03, 0xC015B7FE40000000 %329 = fadd float %328, 0xBE8D0F6060000000 %330 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not446 = icmp eq i32 %330, 0 %331 = call float @llvm.nvvm.fma.rn.ftz.f(float noundef 0x3E57CAFA00000000, float %329, float noundef 0xBEA11482C0000000) #135 %332 = call float @llvm.fma.f32(float %329, float noundef 0x3E57CAFA00000000, float noundef 0xBEA11482C0000000) %.090 = select i1 %.not446, float %332, float %331 %333 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not447 = icmp eq i32 %333, 0 %334 = call float @llvm.nvvm.fma.rn.ftz.f(float %.090, float %329, float noundef 0xBEC7F14280000000) #135 %335 = call float @llvm.fma.f32(float %.090, float %329, float noundef 0xBEC7F14280000000) %.092 = select i1 %.not447, float %335, float %334 %336 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not448 = icmp eq i32 %336, 0 %337 = call float @llvm.nvvm.fma.rn.ftz.f(float %.092, float %329, float noundef 0x3F084FC040000000) #135 %338 = call float @llvm.fma.f32(float %.092, float %329, float noundef 0x3F084FC040000000) %.093 = select i1 %.not448, float %338, float %337 %339 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not449 = icmp eq i32 %339, 0 %340 = call float @llvm.nvvm.fma.rn.ftz.f(float %.093, float %329, float noundef 0x3F23376380000000) #135 %341 = call float @llvm.fma.f32(float %.093, float %329, float noundef 0x3F23376380000000) %.094 = select i1 %.not449, float %341, float %340 %342 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not450 = icmp eq i32 %342, 0 %343 = call float @llvm.nvvm.fma.rn.ftz.f(float %.094, float %329, float noundef 0xBF61BE3FA0000000) #135 %344 = call float @llvm.fma.f32(float %.094, float %329, float noundef 0xBF61BE3FA0000000) %.096 = select i1 %.not450, float %344, float %343 %345 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not451 = icmp eq i32 %345, 0 %346 = call float @llvm.nvvm.fma.rn.ftz.f(float %.096, float %329, float noundef 0xBF710A3120000000) #135 %347 = call float @llvm.fma.f32(float %.096, float %329, float noundef 0xBF710A3120000000) %.097 = select i1 %.not451, float %347, float %346 %348 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not452 = icmp eq i32 %348, 0 %349 = call float @llvm.nvvm.fma.rn.ftz.f(float %.097, float %329, float noundef 0x3FAA15D820000000) #135 %350 = call float @llvm.fma.f32(float %.097, float %329, float noundef 0x3FAA15D820000000) %.098 = select i1 %.not452, float %350, float %349 %351 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not453 = icmp eq i32 %351, 0 %352 = call float @llvm.nvvm.fma.rn.ftz.f(float %.098, float %329, float noundef 0x3FA00B9F80000000) #135 %353 = call float @llvm.fma.f32(float %.098, float %329, float noundef 0x3FA00B9F80000000) %.0100 = select i1 %.not453, float %353, float %352 %354 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not454 = icmp eq i32 %354, 0 %355 = call float @llvm.nvvm.fma.rn.ftz.f(float %.0100, float %329, float noundef 0xBFD5C7C560000000) #135 %356 = call float @llvm.fma.f32(float %.0100, float %329, float noundef 0xBFD5C7C560000000) %.0101 = select i1 %.not454, float %356, float %355 %357 = fmul float %329, %.0101 br label %__nv_y1f.exit 358: ; preds = %326 %359 = fcmp ugt float %.03, 0x4024585C60000000 br i1 %359, label %__nv_isinff.exit.i, label %__internal_fmad.exit47.i __internal_fmad.exit47.i: ; preds = %358 %360 = fadd float %.03, 0xC0213127A0000000 %361 = fadd float %360, 0xBE9CC2D360000000 %362 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not438 = icmp eq i32 %362, 0 %363 = call float @llvm.nvvm.fma.rn.ftz.f(float noundef 0x3EA19E7060000000, float %361, float noundef 0x3EC05205C0000000) #135 %364 = call float @llvm.fma.f32(float %361, float noundef 0x3EA19E7060000000, float noundef 0x3EC05205C0000000) %.0102 = select i1 %.not438, float %364, float %363 %365 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not439 = icmp eq i32 %365, 0 %366 = call float @llvm.nvvm.fma.rn.ftz.f(float %.0102, float %361, float noundef 0xBF06EBEE20000000) #135 %367 = call float @llvm.fma.f32(float %.0102, float %361, float noundef 0xBF06EBEE20000000) %.0104 = select i1 %.not439, float %367, float %366 %368 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not440 = icmp eq i32 %368, 0 %369 = call float @llvm.nvvm.fma.rn.ftz.f(float %.0104, float %361, float noundef 0xBF1B3F5500000000) #135 %370 = call float @llvm.fma.f32(float %.0104, float %361, float noundef 0xBF1B3F5500000000) %.0105 = select i1 %.not440, float %370, float %369 %371 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not441 = icmp eq i32 %371, 0 %372 = call float @llvm.nvvm.fma.rn.ftz.f(float %.0105, float %361, float noundef 0x3F607A3340000000) #135 %373 = call float @llvm.fma.f32(float %.0105, float %361, float noundef 0x3F607A3340000000) %.0106 = select i1 %.not441, float %373, float %372 %374 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not442 = icmp eq i32 %374, 0 %375 = call float @llvm.nvvm.fma.rn.ftz.f(float %.0106, float %361, float noundef 0x3F63CE6DA0000000) #135 %376 = call float @llvm.fma.f32(float %.0106, float %361, float noundef 0x3F63CE6DA0000000) %.0107 = select i1 %.not442, float %376, float %375 %377 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not443 = icmp eq i32 %377, 0 %378 = call float @llvm.nvvm.fma.rn.ftz.f(float %.0107, float %361, float noundef 0xBFA6395CA0000000) #135 %379 = call float @llvm.fma.f32(float %.0107, float %361, float noundef 0xBFA6395CA0000000) %.0108 = select i1 %.not443, float %379, float %378 %380 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not444 = icmp eq i32 %380, 0 %381 = call float @llvm.nvvm.fma.rn.ftz.f(float %.0108, float %361, float noundef 0xBF902B36C0000000) #135 %382 = call float @llvm.fma.f32(float %.0108, float %361, float noundef 0xBF902B36C0000000) %.0109 = select i1 %.not444, float %382, float %381 %383 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not445 = icmp eq i32 %383, 0 %384 = call float @llvm.nvvm.fma.rn.ftz.f(float %.0109, float %361, float noundef 0x3FD15F9940000000) #135 %385 = call float @llvm.fma.f32(float %.0109, float %361, float noundef 0x3FD15F9940000000) %.0111 = select i1 %.not445, float %385, float %384 %386 = fmul float %361, %.0111 br label %__nv_y1f.exit __nv_isinff.exit.i: ; preds = %358 %387 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not10 = icmp eq i32 %387, 0 %388 = call float @llvm.nvvm.fabs.ftz.f(float %.03) #135 %389 = call float @llvm.fabs.f32(float %.03) %.0113 = select i1 %.not10, float %389, float %388 %390 = fcmp oeq float %.0113, 0x7FF0000000000000 br i1 %390, label %__nv_y1f.exit, label %__internal_fmad.exit66.i __internal_fmad.exit66.i: ; preds = %__nv_isinff.exit.i %391 = call float asm "rcp.approx.ftz.f32 $0,$1;", "=f,f"(float %.03) #137, !srcloc !225 %392 = fmul float %391, %391 %393 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not11 = icmp eq i32 %393, 0 %394 = call float @llvm.nvvm.fma.rn.ftz.f(float noundef 0x3FE4CFEC00000000, float %392, float noundef 0xBFC8957200000000) #135 %395 = call float @llvm.fma.f32(float %392, float noundef 0x3FE4CFEC00000000, float noundef 0xBFC8957200000000) %.0114 = select i1 %.not11, float %395, float %394 %396 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not12 = icmp eq i32 %396, 0 %397 = call float @llvm.nvvm.fma.rn.ftz.f(float %.0114, float %392, float noundef 0x3FC7FFD7E0000000) #135 %398 = call float @llvm.fma.f32(float %.0114, float %392, float noundef 0x3FC7FFD7E0000000) %.0115 = select i1 %.not12, float %398, float %397 %399 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not13 = icmp eq i32 %399, 0 %400 = call float @llvm.nvvm.fma.rn.ftz.f(float %.0115, float %392, float noundef 1.000000e+00) #135 %401 = call float @llvm.fma.f32(float %.0115, float %392, float noundef 1.000000e+00) %.0116 = select i1 %.not13, float %401, float %400 %402 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not14 = icmp eq i32 %402, 0 %403 = call float @llvm.nvvm.fma.rn.ftz.f(float noundef 0xBFFC9C3560000000, float %392, float noundef 0x3FD76E7560000000) #135 %404 = call float @llvm.fma.f32(float %392, float noundef 0xBFFC9C3560000000, float noundef 0x3FD76E7560000000) %.0117 = select i1 %.not14, float %404, float %403 %405 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not15 = icmp eq i32 %405, 0 %406 = call float @llvm.nvvm.fma.rn.ftz.f(float %.0117, float %392, float noundef 0xBFC4FF6DC0000000) #135 %407 = call float @llvm.fma.f32(float %.0117, float %392, float noundef 0xBFC4FF6DC0000000) %.0118 = select i1 %.not15, float %407, float %406 %408 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not16 = icmp eq i32 %408, 0 %409 = call float @llvm.nvvm.fma.rn.ftz.f(float %.0118, float %392, float noundef 0x3FD7FFFFE0000000) #135 %410 = call float @llvm.fma.f32(float %.0118, float %392, float noundef 0x3FD7FFFFE0000000) %.0120 = select i1 %.not16, float %410, float %409 %411 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not17 = icmp eq i32 %411, 0 %412 = call float @llvm.nvvm.fma.rn.ftz.f(float %.0120, float %391, float %.03) #135 %413 = call float @llvm.fma.f32(float %.0120, float %391, float %.03) %.0121 = select i1 %.not17, float %413, float %412 %414 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not18 = icmp eq i32 %414, 0 br i1 %.not18, label %417, label %415 415: ; preds = %__internal_fmad.exit66.i %416 = call float @llvm.nvvm.rsqrt.approx.ftz.f(float %.03) #135 br label %__nv_rsqrtf.exit.i 417: ; preds = %__internal_fmad.exit66.i %418 = call float @llvm.nvvm.rsqrt.approx.f(float %.03) #135 br label %__nv_rsqrtf.exit.i __nv_rsqrtf.exit.i: ; preds = %417, %415 %.0122 = phi float [ %416, %415 ], [ %418, %417 ] %419 = fmul float %.0122, 0x3FE9884540000000 %420 = fmul float %.0116, %419 %421 = fmul float %.0121, 0x3FE45F3060000000 %422 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not19 = icmp eq i32 %422, 0 %423 = call i32 @llvm.nvvm.f2i.rn.ftz(float %421) #135 %424 = call i32 @llvm.nvvm.f2i.rn(float %421) #135 %.0124 = select i1 %.not19, i32 %424, i32 %423 %425 = sitofp i32 %.0124 to float %426 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not20 = icmp eq i32 %426, 0 %427 = call float @llvm.nvvm.fma.rn.ftz.f(float %425, float noundef 0xBFF921FB40000000, float %.0121) #135 %428 = call float @llvm.fma.f32(float %425, float noundef 0xBFF921FB40000000, float %.0121) %.0125 = select i1 %.not20, float %428, float %427 %429 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not21 = icmp eq i32 %429, 0 %430 = call float @llvm.nvvm.fma.rn.ftz.f(float %425, float noundef 0xBE74442D00000000, float %.0125) #135 %431 = call float @llvm.fma.f32(float %425, float noundef 0xBE74442D00000000, float %.0125) %.0126 = select i1 %.not21, float %431, float %430 %432 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not22 = icmp eq i32 %432, 0 %433 = call float @llvm.nvvm.fma.rn.ftz.f(float %425, float noundef 0xBCF84698A0000000, float %.0126) #135 %434 = call float @llvm.fma.f32(float %425, float noundef 0xBCF84698A0000000, float %.0126) %.0127 = select i1 %.not22, float %434, float %433 %435 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not23 = icmp eq i32 %435, 0 %436 = call float @llvm.nvvm.fabs.ftz.f(float %.0121) #135 %437 = call float @llvm.fabs.f32(float %.0121) %.0129 = select i1 %.not23, float %437, float %436 %438 = fcmp ult float %.0129, 1.056150e+05 br i1 %438, label %__internal_trig_reduction_kernel.exit.i.i, label %__nv_isinff.exit.i.i.i __nv_isinff.exit.i.i.i: ; preds = %__nv_rsqrtf.exit.i %439 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not431 = icmp eq i32 %439, 0 %.0130 = select i1 %.not431, float %437, float %436 %440 = fcmp oeq float %.0130, 0x7FF0000000000000 br i1 %440, label %__nv_fmul_rn.exit.i.i.i, label %444 __nv_fmul_rn.exit.i.i.i: ; preds = %__nv_isinff.exit.i.i.i %441 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not437 = icmp eq i32 %441, 0 %442 = call float @llvm.nvvm.mul.rn.ftz.f(float %.0121, float noundef 0.000000e+00) #135 %443 = fmul float %.0121, 0.000000e+00 %.0131 = select i1 %.not437, float %443, float %442 br label %__internal_trig_reduction_kernel.exit.i.i 444: ; preds = %__nv_isinff.exit.i.i.i %445 = bitcast float %.0121 to i32 %446 = lshr i32 %445, 23 %447 = and i32 %446, 255 %448 = shl i32 %445, 8 %449 = or i32 %448, -2147483648 br label %450 450: ; preds = %444, %450 %iq.i.i.i.i.0547 = phi i32 [ 0, %444 ], [ %457, %450 ] %hi.i.i.i.i.0546 = phi i32 [ 0, %444 ], [ %455, %450 ] %451 = getelementptr inbounds [6 x i32], [6 x i32] addrspace(1)* @__cudart_i2opi_f, i32 0, i32 %iq.i.i.i.i.0547 %452 = load i32, i32 addrspace(1)* %451, align 4 %453 = call { i32, i32 } asm "{\0A\09mad.lo.cc.u32 $0, $2, $3, $4;\0A\09madc.hi.u32 $1, $2, $3, 0;\0A\09}", "=r,=r,r,r,r"(i32 %452, i32 %449, i32 %hi.i.i.i.i.0546) #137, !srcloc !222 %454 = extractvalue { i32, i32 } %453, 0 %455 = extractvalue { i32, i32 } %453, 1 %456 = getelementptr inbounds [7 x i32], [7 x i32]* %result.i.i.i.i.i, i32 0, i32 %iq.i.i.i.i.0547 store i32 %454, i32* %456, align 4, !noalias !219 %457 = add nuw nsw i32 %iq.i.i.i.i.0547, 1 %exitcond578.not = icmp eq i32 %457, 6 br i1 %exitcond578.not, label %458, label %450, !llvm.loop !223 458: ; preds = %450 %459 = add nsw i32 %447, -128 %460 = lshr i32 %459, 5 %461 = and i32 %445, -2147483648 %462 = getelementptr inbounds [7 x i32], [7 x i32]* %result.i.i.i.i.i, i32 0, i32 6 store i32 %455, i32* %462, align 4, !noalias !219 %463 = and i32 %446, 31 %464 = sub nsw i32 6, %460 %465 = getelementptr inbounds [7 x i32], [7 x i32]* %result.i.i.i.i.i, i32 0, i32 %464 %466 = load i32, i32* %465, align 4 %467 = sub nsw i32 5, %460 %468 = getelementptr inbounds [7 x i32], [7 x i32]* %result.i.i.i.i.i, i32 0, i32 %467 %469 = load i32, i32* %468, align 4 %.not432 = icmp eq i32 %463, 0 br i1 %.not432, label %__internal_trig_reduction_slowpath.exit.i.i.i, label %470 470: ; preds = %458 %471 = sub nsw i32 4, %460 %472 = sub nuw nsw i32 32, %463 %473 = shl i32 %466, %463 %474 = lshr i32 %469, %472 %475 = add i32 %474, %473 %476 = shl i32 %469, %463 %477 = getelementptr inbounds [7 x i32], [7 x i32]* %result.i.i.i.i.i, i32 0, i32 %471 %478 = load i32, i32* %477, align 4 %479 = lshr i32 %478, %472 %480 = add i32 %479, %476 br label %__internal_trig_reduction_slowpath.exit.i.i.i __internal_trig_reduction_slowpath.exit.i.i.i: ; preds = %470, %458 %hi.i.i.i.i.1 = phi i32 [ %475, %470 ], [ %466, %458 ] %lo.i.i.i.i.0 = phi i32 [ %480, %470 ], [ %469, %458 ] %481 = lshr i32 %hi.i.i.i.i.1, 30 %482 = call i32 @llvm.fshl.i32(i32 %hi.i.i.i.i.1, i32 %lo.i.i.i.i.0, i32 noundef 2) %483 = shl i32 %lo.i.i.i.i.0, 2 %484 = lshr i32 %482, 31 %485 = add nuw nsw i32 %484, %481 %.not433 = icmp eq i32 %461, 0 %486 = sub nsw i32 0, %485 %spec.select1 = select i1 %.not433, i32 %485, i32 %486 %.not434 = icmp sgt i32 %482, -1 %487 = xor i32 %461, -2147483648 %s.i.i.i.i.0 = select i1 %.not434, i32 %461, i32 %487 %not..not434 = xor i1 %.not434, true %488 = sext i1 %not..not434 to i32 %hi.i.i.i.i.2 = xor i32 %482, %488 %lo.i.i.i.i.1 = xor i32 %483, %488 %489 = zext i32 %hi.i.i.i.i.2 to i64 %490 = shl nuw i64 %489, 32 %491 = zext i32 %lo.i.i.i.i.1 to i64 %492 = or i64 %490, %491 %493 = sitofp i64 %492 to double %494 = fmul double %493, 0x3BF921FB54442D19 %495 = fptrunc double %494 to float %.not436 = icmp eq i32 %s.i.i.i.i.0, 0 %496 = fneg float %495 %r.i.i.i.i.0 = select i1 %.not436, float %495, float %496 br label %__internal_trig_reduction_kernel.exit.i.i __internal_trig_reduction_kernel.exit.i.i: ; preds = %__nv_fmul_rn.exit.i.i.i, %__internal_trig_reduction_slowpath.exit.i.i.i, %__nv_rsqrtf.exit.i %i.i81.i.1 = phi i32 [ %.0124, %__nv_rsqrtf.exit.i ], [ 0, %__nv_fmul_rn.exit.i.i.i ], [ %spec.select1, %__internal_trig_reduction_slowpath.exit.i.i.i ] %t.i.i.i.1 = phi float [ %.0127, %__nv_rsqrtf.exit.i ], [ %.0131, %__nv_fmul_rn.exit.i.i.i ], [ %r.i.i.i.i.0, %__internal_trig_reduction_slowpath.exit.i.i.i ] %497 = and i32 %i.i81.i.1, 3 %498 = uitofp i32 %497 to float %499 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not24 = icmp eq i32 %499, 0 %500 = call float @llvm.nvvm.fma.rn.ftz.f(float %498, float noundef 0x3FF921FB60000000, float noundef 0xC00F6A7A20000000) #135 %501 = call float @llvm.fma.f32(float %498, float noundef 0x3FF921FB60000000, float noundef 0xC00F6A7A20000000) %.0133 = select i1 %.not24, float %501, float %500 %502 = fadd float %t.i.i.i.1, %.0133 %503 = fmul float %502, 0x3FE45F3060000000 %504 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not25 = icmp eq i32 %504, 0 %505 = call i32 @llvm.nvvm.f2i.rn.ftz(float %503) #135 %506 = call i32 @llvm.nvvm.f2i.rn(float %503) #135 %.0135 = select i1 %.not25, i32 %506, i32 %505 %507 = sitofp i32 %.0135 to float %508 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not26 = icmp eq i32 %508, 0 %509 = call float @llvm.nvvm.fma.rn.ftz.f(float %507, float noundef 0xBFF921FB40000000, float %502) #135 %510 = call float @llvm.fma.f32(float %507, float noundef 0xBFF921FB40000000, float %502) %.0136 = select i1 %.not26, float %510, float %509 %511 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not27 = icmp eq i32 %511, 0 %512 = call float @llvm.nvvm.fma.rn.ftz.f(float %507, float noundef 0xBE74442D00000000, float %.0136) #135 %513 = call float @llvm.fma.f32(float %507, float noundef 0xBE74442D00000000, float %.0136) %.0137 = select i1 %.not27, float %513, float %512 %514 = add i32 %.0135, 1 %515 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not28 = icmp eq i32 %515, 0 %516 = call float @llvm.nvvm.mul.rn.ftz.f(float %.0137, float %.0137) #135 %517 = fmul float %.0137, %.0137 %.0138 = select i1 %.not28, float %517, float %516 %518 = and i32 %514, 1 %.not29 = icmp eq i32 %518, 0 %519 = select i1 %.not29, float %.0137, float 1.000000e+00 %520 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not30 = icmp eq i32 %520, 0 %521 = call float @llvm.nvvm.fma.rn.ftz.f(float %.0138, float %519, float noundef 0.000000e+00) #135 %522 = call float @llvm.fma.f32(float %.0138, float %519, float noundef 0.000000e+00) %.0139 = select i1 %.not30, float %522, float %521 br i1 %.not29, label %__internal_fmad.exit2.i.i.i, label %__internal_fmad.exit1.i.i.i __internal_fmad.exit1.i.i.i: ; preds = %__internal_trig_reduction_kernel.exit.i.i %523 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not430 = icmp eq i32 %523, 0 %524 = call float @llvm.nvvm.fma.rn.ftz.f(float noundef 0x3EF9758000000000, float %.0138, float noundef 0xBF56C0FDA0000000) #135 %525 = call float @llvm.fma.f32(float %.0138, float noundef 0x3EF9758000000000, float noundef 0xBF56C0FDA0000000) %.0141 = select i1 %.not430, float %525, float %524 br label %__internal_fmad.exit2.i.i.i __internal_fmad.exit2.i.i.i: ; preds = %__internal_trig_reduction_kernel.exit.i.i, %__internal_fmad.exit1.i.i.i %526 = phi float [ 0xBFC5555500000000, %__internal_trig_reduction_kernel.exit.i.i ], [ 0xBFDFFFFFE0000000, %__internal_fmad.exit1.i.i.i ] %527 = phi float [ 0x3F8110BC80000000, %__internal_trig_reduction_kernel.exit.i.i ], [ 0x3FA5555760000000, %__internal_fmad.exit1.i.i.i ] %528 = phi float [ 0xBF29A82A60000000, %__internal_trig_reduction_kernel.exit.i.i ], [ %.0141, %__internal_fmad.exit1.i.i.i ] %529 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not31 = icmp eq i32 %529, 0 %530 = call float @llvm.nvvm.fma.rn.ftz.f(float %528, float %.0138, float noundef %527) #135 %531 = call float @llvm.fma.f32(float %528, float %.0138, float noundef %527) %.0142 = select i1 %.not31, float %531, float %530 %532 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not32 = icmp eq i32 %532, 0 %533 = call float @llvm.nvvm.fma.rn.ftz.f(float %.0142, float %.0138, float noundef %526) #135 %534 = call float @llvm.fma.f32(float %.0142, float %.0138, float noundef %526) %.0143 = select i1 %.not32, float %534, float %533 %535 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not33 = icmp eq i32 %535, 0 %536 = call float @llvm.nvvm.fma.rn.ftz.f(float %.0143, float %.0139, float %519) #135 %537 = call float @llvm.fma.f32(float %.0143, float %.0139, float %519) %.0144 = select i1 %.not33, float %537, float %536 %538 = and i32 %514, 2 %.not34 = icmp eq i32 %538, 0 br i1 %.not34, label %__internal_cos_offset_f.exit.i, label %__internal_fmad.exit5.i.i.i __internal_fmad.exit5.i.i.i: ; preds = %__internal_fmad.exit2.i.i.i %539 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not429 = icmp eq i32 %539, 0 %540 = call float @llvm.nvvm.fma.rn.ftz.f(float %.0144, float noundef -1.000000e+00, float noundef 0.000000e+00) #135 %541 = call float @llvm.fma.f32(float %.0144, float noundef -1.000000e+00, float noundef 0.000000e+00) %.0145 = select i1 %.not429, float %541, float %540 br label %__internal_cos_offset_f.exit.i __internal_cos_offset_f.exit.i: ; preds = %__internal_fmad.exit5.i.i.i, %__internal_fmad.exit2.i.i.i %z.i.i79.i.0 = phi float [ %.0145, %__internal_fmad.exit5.i.i.i ], [ %.0144, %__internal_fmad.exit2.i.i.i ] %542 = fmul float %420, %z.i.i79.i.0 br label %__nv_y1f.exit __nv_y1f.exit: ; preds = %__internal_accurate_logf.exit.i, %__internal_fmad.exit29.i, %__internal_cos_offset_f.exit.i, %__nv_isinff.exit.i, %__internal_fmad.exit47.i, %__internal_fmad.exit11.i, %4 %r.i.5 = phi float [ %5, %4 ], [ %.077, %__internal_accurate_logf.exit.i ], [ %325, %__internal_fmad.exit11.i ], [ %357, %__internal_fmad.exit29.i ], [ %386, %__internal_fmad.exit47.i ], [ %542, %__internal_cos_offset_f.exit.i ], [ 0.000000e+00, %__nv_isinff.exit.i ] %543 = fcmp olt float %a, 0.000000e+00 %r.i.6 = select i1 %543, float 0x7FFFFFFFE0000000, float %r.i.5 %544 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not35 = icmp eq i32 %544, 0 %.0147 = select i1 %.not35, float %2, float %1 %545 = fcmp ugt float %.0147, 0x3FDC982EC0000000 br i1 %545, label %825, label %__internal_fmad.exit.i83 __internal_fmad.exit.i83: ; preds = %__nv_y1f.exit %546 = fmul float %.0147, %.0147 %547 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not362 = icmp eq i32 %547, 0 %548 = call float @llvm.nvvm.fma.rn.ftz.f(float noundef 0x3E7B7CB580000000, float %546, float noundef 0xBEE3E936C0000000) #135 %549 = call float @llvm.fma.f32(float %546, float noundef 0x3E7B7CB580000000, float noundef 0xBEE3E936C0000000) %.0148 = select i1 %.not362, float %549, float %548 %550 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not363 = icmp eq i32 %550, 0 %551 = call float @llvm.nvvm.fma.rn.ftz.f(float %.0148, float %546, float noundef 0x3F41A62000000000) #135 %552 = call float @llvm.fma.f32(float %.0148, float %546, float noundef 0x3F41A62000000000) %.0150 = select i1 %.not363, float %552, float %551 %553 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not364 = icmp eq i32 %553, 0 %554 = call float @llvm.nvvm.fma.rn.ftz.f(float %.0150, float %546, float noundef 0xBF9075B1C0000000) #135 %555 = call float @llvm.fma.f32(float %.0150, float %546, float noundef 0xBF9075B1C0000000) %.0151 = select i1 %.not364, float %555, float %554 %556 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not365 = icmp eq i32 %556, 0 %557 = call float @llvm.nvvm.fma.rn.ftz.f(float %.0151, float %546, float noundef 0x3FC6BBCB40000000) #135 %558 = call float @llvm.fma.f32(float %.0151, float %546, float noundef 0x3FC6BBCB40000000) %.0152 = select i1 %.not365, float %558, float %557 %559 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not366 = icmp eq i32 %559, 0 %560 = call float @llvm.nvvm.fma.rn.ftz.f(float %.0152, float %546, float noundef 0xBFB2E4D6A0000000) #135 %561 = call float @llvm.fma.f32(float %.0152, float %546, float noundef 0xBFB2E4D6A0000000) %.0153 = select i1 %.not366, float %561, float %560 %562 = fcmp olt float %.0147, 0x3810000000000000 %563 = fmul float %.0147, 0x4160000000000000 %.0155 = select i1 %562, float %563, float %.0147 %i.i.i72.0 = select i1 %562, float -2.300000e+01, float 0.000000e+00 %564 = bitcast float %.0155 to i32 %565 = add i32 %564, -1059760811 %566 = and i32 %565, -8388608 %567 = sub i32 %564, %566 %568 = bitcast i32 %567 to float %569 = sitofp i32 %566 to float %570 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not367 = icmp eq i32 %570, 0 %571 = call float @llvm.nvvm.fma.rn.ftz.f(float %569, float noundef 0x3E80000000000000, float noundef %i.i.i72.0) #135 %572 = call float @llvm.fma.f32(float %569, float noundef 0x3E80000000000000, float noundef %i.i.i72.0) %.0161 = select i1 %.not367, float %572, float %571 %573 = fadd float %568, -1.000000e+00 %574 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not368 = icmp eq i32 %574, 0 %575 = call float @llvm.nvvm.fma.rn.ftz.f(float noundef 0xBFC0AA04E0000000, float %573, float noundef 0x3FC2073EC0000000) #135 %576 = call float @llvm.fma.f32(float %573, float noundef 0xBFC0AA04E0000000, float noundef 0x3FC2073EC0000000) %.0162 = select i1 %.not368, float %576, float %575 %577 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not369 = icmp eq i32 %577, 0 %578 = call float @llvm.nvvm.fma.rn.ftz.f(float %.0162, float %573, float noundef 0xBFBF19B980000000) #135 %579 = call float @llvm.fma.f32(float %.0162, float %573, float noundef 0xBFBF19B980000000) %.0163 = select i1 %.not369, float %579, float %578 %580 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not370 = icmp eq i32 %580, 0 %581 = call float @llvm.nvvm.fma.rn.ftz.f(float %.0163, float %573, float noundef 0x3FC1E52AA0000000) #135 %582 = call float @llvm.fma.f32(float %.0163, float %573, float noundef 0x3FC1E52AA0000000) %.0164 = select i1 %.not370, float %582, float %581 %583 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not371 = icmp eq i32 %583, 0 %584 = call float @llvm.nvvm.fma.rn.ftz.f(float %.0164, float %573, float noundef 0xBFC55B1720000000) #135 %585 = call float @llvm.fma.f32(float %.0164, float %573, float noundef 0xBFC55B1720000000) %.0165 = select i1 %.not371, float %585, float %584 %586 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not372 = icmp eq i32 %586, 0 %587 = call float @llvm.nvvm.fma.rn.ftz.f(float %.0165, float %573, float noundef 0x3FC99DA160000000) #135 %588 = call float @llvm.fma.f32(float %.0165, float %573, float noundef 0x3FC99DA160000000) %.0166 = select i1 %.not372, float %588, float %587 %589 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not373 = icmp eq i32 %589, 0 %590 = call float @llvm.nvvm.fma.rn.ftz.f(float %.0166, float %573, float noundef 0xBFCFFFE440000000) #135 %591 = call float @llvm.fma.f32(float %.0166, float %573, float noundef 0xBFCFFFE440000000) %.0168 = select i1 %.not373, float %591, float %590 %592 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not374 = icmp eq i32 %592, 0 %593 = call float @llvm.nvvm.fma.rn.ftz.f(float %.0168, float %573, float noundef 0x3FD5554F00000000) #135 %594 = call float @llvm.fma.f32(float %.0168, float %573, float noundef 0x3FD5554F00000000) %.0169 = select i1 %.not374, float %594, float %593 %595 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not375 = icmp eq i32 %595, 0 %596 = call float @llvm.nvvm.fma.rn.ftz.f(float %.0169, float %573, float noundef -5.000000e-01) #135 %597 = call float @llvm.fma.f32(float %.0169, float %573, float noundef -5.000000e-01) %.0159 = select i1 %.not375, float %597, float %596 %598 = fmul float %573, %.0159 %599 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not376 = icmp eq i32 %599, 0 %600 = call float @llvm.nvvm.fma.rn.ftz.f(float %598, float %573, float %573) #135 %601 = call float @llvm.fma.f32(float %598, float %573, float %573) %.0158 = select i1 %.not376, float %601, float %600 %602 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not377 = icmp eq i32 %602, 0 %603 = call float @llvm.nvvm.fma.rn.ftz.f(float %.0161, float noundef 0x3FE62E4300000000, float %.0158) #135 %604 = call float @llvm.fma.f32(float %.0161, float noundef 0x3FE62E4300000000, float %.0158) %.0157 = select i1 %.not377, float %604, float %603 %605 = icmp ugt i32 %564, 2139095039 br i1 %605, label %__nv_fmaf_rn.exit.i.i99, label %__internal_accurate_logf.exit.i100 __nv_fmaf_rn.exit.i.i99: ; preds = %__internal_fmad.exit.i83 %606 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not428 = icmp eq i32 %606, 0 %607 = call float @llvm.nvvm.fma.rn.ftz.f(float %.0155, float noundef 0x7FF0000000000000, float noundef 0x7FF0000000000000) #135 %608 = call float @llvm.fma.f32(float %.0155, float noundef 0x7FF0000000000000, float noundef 0x7FF0000000000000) %.0156 = select i1 %.not428, float %608, float %607 br label %__internal_accurate_logf.exit.i100 __internal_accurate_logf.exit.i100: ; preds = %__nv_fmaf_rn.exit.i.i99, %__internal_fmad.exit.i83 %r.i.i71.0 = phi float [ %.0156, %__nv_fmaf_rn.exit.i.i99 ], [ %.0157, %__internal_fmad.exit.i83 ] %609 = fcmp oeq float %.0155, 0.000000e+00 %r.i.i71.0.op = fmul float %r.i.i71.0, 0x3FE45F3060000000 %610 = select i1 %609, float 0xFFF0000000000000, float %r.i.i71.0.op %611 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not378 = icmp eq i32 %611, 0 %612 = call float @llvm.nvvm.fabs.ftz.f(float %.0147) #135 %613 = call float @llvm.fabs.f32(float %.0147) %.0170 = select i1 %.not378, float %613, float %612 %614 = fcmp ugt float %.0170, 8.000000e+00 br i1 %614, label %__nv_isinff.exit.i.i115, label %__internal_fmad.exit.i.i102 __internal_fmad.exit.i.i102: ; preds = %__internal_accurate_logf.exit.i100 %615 = fadd float %.0170, 0xC0033D1520000000 %616 = fadd float %615, 0xBE7D2E3660000000 %617 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not415 = icmp eq i32 %617, 0 %618 = call float @llvm.nvvm.fma.rn.ftz.f(float noundef 0xBCD6771CE0000000, float %616, float noundef 0xBD35953660000000) #135 %619 = call float @llvm.fma.f32(float %616, float noundef 0xBCD6771CE0000000, float noundef 0xBD35953660000000) %.0172 = select i1 %.not415, float %619, float %618 %620 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not416 = icmp eq i32 %620, 0 %621 = call float @llvm.nvvm.fma.rn.ftz.f(float %.0172, float %616, float noundef 0x3D87E1C300000000) #135 %622 = call float @llvm.fma.f32(float %.0172, float %616, float noundef 0x3D87E1C300000000) %.0173 = select i1 %.not416, float %622, float %621 %623 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not417 = icmp eq i32 %623, 0 %624 = call float @llvm.nvvm.fma.rn.ftz.f(float %.0173, float %616, float noundef 0xBD9A82F020000000) #135 %625 = call float @llvm.fma.f32(float %.0173, float %616, float noundef 0xBD9A82F020000000) %.0174 = select i1 %.not417, float %625, float %624 %626 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not418 = icmp eq i32 %626, 0 %627 = call float @llvm.nvvm.fma.rn.ftz.f(float %.0174, float %616, float noundef 0xBDFD21E700000000) #135 %628 = call float @llvm.fma.f32(float %.0174, float %616, float noundef 0xBDFD21E700000000) %.0175 = select i1 %.not418, float %628, float %627 %629 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not419 = icmp eq i32 %629, 0 %630 = call float @llvm.nvvm.fma.rn.ftz.f(float %.0175, float %616, float noundef 0x3E04060B60000000) #135 %631 = call float @llvm.fma.f32(float %.0175, float %616, float noundef 0x3E04060B60000000) %.0176 = select i1 %.not419, float %631, float %630 %632 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not420 = icmp eq i32 %632, 0 %633 = call float @llvm.nvvm.fma.rn.ftz.f(float %.0176, float %616, float noundef 0x3E6F2E2860000000) #135 %634 = call float @llvm.fma.f32(float %.0176, float %616, float noundef 0x3E6F2E2860000000) %.0177 = select i1 %.not420, float %634, float %633 %635 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not421 = icmp eq i32 %635, 0 %636 = call float @llvm.nvvm.fma.rn.ftz.f(float %.0177, float %616, float noundef 0x3E1EEDF0A0000000) #135 %637 = call float @llvm.fma.f32(float %.0177, float %616, float noundef 0x3E1EEDF0A0000000) %.0179 = select i1 %.not421, float %637, float %636 %638 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not422 = icmp eq i32 %638, 0 %639 = call float @llvm.nvvm.fma.rn.ftz.f(float %.0179, float %616, float noundef 0xBED6DBF8C0000000) #135 %640 = call float @llvm.fma.f32(float %.0179, float %616, float noundef 0xBED6DBF8C0000000) %.0180 = select i1 %.not422, float %640, float %639 %641 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not423 = icmp eq i32 %641, 0 %642 = call float @llvm.nvvm.fma.rn.ftz.f(float %.0180, float %616, float noundef 0xBEDECCB920000000) #135 %643 = call float @llvm.fma.f32(float %.0180, float %616, float noundef 0xBEDECCB920000000) %.0181 = select i1 %.not423, float %643, float %642 %644 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not424 = icmp eq i32 %644, 0 %645 = call float @llvm.nvvm.fma.rn.ftz.f(float %.0181, float %616, float noundef 0x3F33C5BD60000000) #135 %646 = call float @llvm.fma.f32(float %.0181, float %616, float noundef 0x3F33C5BD60000000) %.0182 = select i1 %.not424, float %646, float %645 %647 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not425 = icmp eq i32 %647, 0 %648 = call float @llvm.nvvm.fma.rn.ftz.f(float %.0182, float %616, float noundef 0x3F495C6680000000) #135 %649 = call float @llvm.fma.f32(float %.0182, float %616, float noundef 0x3F495C6680000000) %.0183 = select i1 %.not425, float %649, float %648 %650 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not426 = icmp eq i32 %650, 0 %651 = call float @llvm.nvvm.fma.rn.ftz.f(float %.0183, float %616, float noundef 0xBF7DD54360000000) #135 %652 = call float @llvm.fma.f32(float %.0183, float %616, float noundef 0xBF7DD54360000000) %.0184 = select i1 %.not426, float %652, float %651 %653 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not427 = icmp eq i32 %653, 0 %654 = call float @llvm.nvvm.fma.rn.ftz.f(float %.0184, float %616, float noundef 0xBF9B4EE8E0000000) #135 %655 = call float @llvm.fma.f32(float %.0184, float %616, float noundef 0xBF9B4EE8E0000000) %.0186 = select i1 %.not427, float %655, float %654 %656 = fmul float %616, %.0186 %657 = fadd float %.0170, 0xC016148F60000000 %658 = fadd float %657, 0x3E734F46E0000000 %659 = fmul float %658, %656 %660 = fadd float %.0170, 0xC0214EB560000000 %661 = fadd float %660, 0xBE9999BDA0000000 %662 = fmul float %661, %659 br label %__nv_j0f.exit.i __nv_isinff.exit.i.i115: ; preds = %__internal_accurate_logf.exit.i100 %663 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not379 = icmp eq i32 %663, 0 %664 = call float @llvm.nvvm.fabs.ftz.f(float %.0170) #135 %665 = call float @llvm.fabs.f32(float %.0170) %.0187 = select i1 %.not379, float %665, float %664 %666 = fcmp oeq float %.0187, 0x7FF0000000000000 br i1 %666, label %__nv_j0f.exit.i, label %__internal_fmad.exit13.i.i116 __internal_fmad.exit13.i.i116: ; preds = %__nv_isinff.exit.i.i115 %667 = call float asm "rcp.approx.ftz.f32 $0,$1;", "=f,f"(float %.0170) #137, !srcloc !225 %668 = fmul float %667, %667 %669 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not380 = icmp eq i32 %669, 0 %670 = call float @llvm.nvvm.fma.rn.ftz.f(float noundef 0x400ADFD260000000, float %668, float noundef 0xBFE076F840000000) #135 %671 = call float @llvm.fma.f32(float %668, float noundef 0x400ADFD260000000, float noundef 0xBFE076F840000000) %.0188 = select i1 %.not380, float %671, float %670 %672 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not381 = icmp eq i32 %672, 0 %673 = call float @llvm.nvvm.fma.rn.ftz.f(float %.0188, float %668, float noundef 0x3FBA767E60000000) #135 %674 = call float @llvm.fma.f32(float %.0188, float %668, float noundef 0x3FBA767E60000000) %.0189 = select i1 %.not381, float %674, float %673 %675 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not382 = icmp eq i32 %675, 0 %676 = call float @llvm.nvvm.fma.rn.ftz.f(float %.0189, float %668, float noundef 0xBFAFFFF6C0000000) #135 %677 = call float @llvm.fma.f32(float %.0189, float %668, float noundef 0xBFAFFFF6C0000000) %.0190 = select i1 %.not382, float %677, float %676 %678 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not383 = icmp eq i32 %678, 0 %679 = call float @llvm.nvvm.fma.rn.ftz.f(float %.0190, float %668, float noundef 1.000000e+00) #135 %680 = call float @llvm.fma.f32(float %.0190, float %668, float noundef 1.000000e+00) %.0191 = select i1 %.not383, float %680, float %679 %681 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not384 = icmp eq i32 %681, 0 %682 = call float @llvm.nvvm.fma.rn.ftz.f(float noundef 0x3FF23C0120000000, float %668, float noundef 0xBFCA4825A0000000) #135 %683 = call float @llvm.fma.f32(float %668, float noundef 0x3FF23C0120000000, float noundef 0xBFCA4825A0000000) %.0193 = select i1 %.not384, float %683, float %682 %684 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not385 = icmp eq i32 %684, 0 %685 = call float @llvm.nvvm.fma.rn.ftz.f(float %.0193, float %668, float noundef 0x3FB0A9DA20000000) #135 %686 = call float @llvm.fma.f32(float %.0193, float %668, float noundef 0x3FB0A9DA20000000) %.0194 = select i1 %.not385, float %686, float %685 %687 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not386 = icmp eq i32 %687, 0 %688 = call float @llvm.nvvm.fma.rn.ftz.f(float %.0194, float %668, float noundef 0xBFBFFFFFE0000000) #135 %689 = call float @llvm.fma.f32(float %.0194, float %668, float noundef 0xBFBFFFFFE0000000) %.0195 = select i1 %.not386, float %689, float %688 %690 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not387 = icmp eq i32 %690, 0 %691 = call float @llvm.nvvm.fma.rn.ftz.f(float %.0195, float %667, float %.0170) #135 %692 = call float @llvm.fma.f32(float %.0195, float %667, float %.0170) %.0196 = select i1 %.not387, float %692, float %691 %693 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not388 = icmp eq i32 %693, 0 br i1 %.not388, label %696, label %694 694: ; preds = %__internal_fmad.exit13.i.i116 %695 = call float @llvm.nvvm.rsqrt.approx.ftz.f(float %.0170) #135 br label %__nv_rsqrtf.exit.i.i123 696: ; preds = %__internal_fmad.exit13.i.i116 %697 = call float @llvm.nvvm.rsqrt.approx.f(float %.0170) #135 br label %__nv_rsqrtf.exit.i.i123 __nv_rsqrtf.exit.i.i123: ; preds = %696, %694 %.0197 = phi float [ %695, %694 ], [ %697, %696 ] %698 = fmul float %.0197, 0x3FE9884540000000 %699 = fmul float %.0191, %698 %700 = fmul float %.0196, 0x3FE45F3060000000 %701 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not389 = icmp eq i32 %701, 0 %702 = call i32 @llvm.nvvm.f2i.rn.ftz(float %700) #135 %703 = call i32 @llvm.nvvm.f2i.rn(float %700) #135 %.0199 = select i1 %.not389, i32 %703, i32 %702 %704 = sitofp i32 %.0199 to float %705 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not390 = icmp eq i32 %705, 0 %706 = call float @llvm.nvvm.fma.rn.ftz.f(float %704, float noundef 0xBFF921FB40000000, float %.0196) #135 %707 = call float @llvm.fma.f32(float %704, float noundef 0xBFF921FB40000000, float %.0196) %.0200 = select i1 %.not390, float %707, float %706 %708 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not391 = icmp eq i32 %708, 0 %709 = call float @llvm.nvvm.fma.rn.ftz.f(float %704, float noundef 0xBE74442D00000000, float %.0200) #135 %710 = call float @llvm.fma.f32(float %704, float noundef 0xBE74442D00000000, float %.0200) %.0202 = select i1 %.not391, float %710, float %709 %711 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not392 = icmp eq i32 %711, 0 %712 = call float @llvm.nvvm.fma.rn.ftz.f(float %704, float noundef 0xBCF84698A0000000, float %.0202) #135 %713 = call float @llvm.fma.f32(float %704, float noundef 0xBCF84698A0000000, float %.0202) %.0203 = select i1 %.not392, float %713, float %712 %714 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not393 = icmp eq i32 %714, 0 %715 = call float @llvm.nvvm.fabs.ftz.f(float %.0196) #135 %716 = call float @llvm.fabs.f32(float %.0196) %.0204 = select i1 %.not393, float %716, float %715 %717 = fcmp ult float %.0204, 1.056150e+05 br i1 %717, label %__internal_trig_reduction_kernel.exit.i.i.i132, label %__nv_isinff.exit.i.i.i.i129 __nv_isinff.exit.i.i.i.i129: ; preds = %__nv_rsqrtf.exit.i.i123 %718 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not408 = icmp eq i32 %718, 0 %.0205 = select i1 %.not408, float %716, float %715 %719 = fcmp oeq float %.0205, 0x7FF0000000000000 br i1 %719, label %__nv_fmul_rn.exit.i.i.i.i130, label %723 __nv_fmul_rn.exit.i.i.i.i130: ; preds = %__nv_isinff.exit.i.i.i.i129 %720 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not414 = icmp eq i32 %720, 0 %721 = call float @llvm.nvvm.mul.rn.ftz.f(float %.0196, float noundef 0.000000e+00) #135 %722 = fmul float %.0196, 0.000000e+00 %.0206 = select i1 %.not414, float %722, float %721 br label %__internal_trig_reduction_kernel.exit.i.i.i132 723: ; preds = %__nv_isinff.exit.i.i.i.i129 %724 = bitcast float %.0196 to i32 %725 = lshr i32 %724, 23 %726 = and i32 %725, 255 %727 = shl i32 %724, 8 %728 = or i32 %727, -2147483648 br label %729 729: ; preds = %723, %729 %iq.i.i.i.i.i41.0545 = phi i32 [ 0, %723 ], [ %736, %729 ] %hi.i.i.i.i.i36.0544 = phi i32 [ 0, %723 ], [ %734, %729 ] %730 = getelementptr inbounds [6 x i32], [6 x i32] addrspace(1)* @__cudart_i2opi_f, i32 0, i32 %iq.i.i.i.i.i41.0545 %731 = load i32, i32 addrspace(1)* %730, align 4 %732 = call { i32, i32 } asm "{\0A\09mad.lo.cc.u32 $0, $2, $3, $4;\0A\09madc.hi.u32 $1, $2, $3, 0;\0A\09}", "=r,=r,r,r,r"(i32 %731, i32 %728, i32 %hi.i.i.i.i.i36.0544) #137, !srcloc !222 %733 = extractvalue { i32, i32 } %732, 0 %734 = extractvalue { i32, i32 } %732, 1 %735 = getelementptr inbounds [7 x i32], [7 x i32]* %result.i.i.i.i.i, i32 0, i32 %iq.i.i.i.i.i41.0545 store i32 %733, i32* %735, align 4, !noalias !219 %736 = add nuw nsw i32 %iq.i.i.i.i.i41.0545, 1 %exitcond577.not = icmp eq i32 %736, 6 br i1 %exitcond577.not, label %737, label %729, !llvm.loop !223 737: ; preds = %729 %738 = add nsw i32 %726, -128 %739 = lshr i32 %738, 5 %740 = and i32 %724, -2147483648 %741 = getelementptr inbounds [7 x i32], [7 x i32]* %result.i.i.i.i.i, i32 0, i32 6 store i32 %734, i32* %741, align 4, !noalias !219 %742 = and i32 %725, 31 %743 = sub nsw i32 6, %739 %744 = getelementptr inbounds [7 x i32], [7 x i32]* %result.i.i.i.i.i, i32 0, i32 %743 %745 = load i32, i32* %744, align 4 %746 = sub nsw i32 5, %739 %747 = getelementptr inbounds [7 x i32], [7 x i32]* %result.i.i.i.i.i, i32 0, i32 %746 %748 = load i32, i32* %747, align 4 %.not409 = icmp eq i32 %742, 0 br i1 %.not409, label %__internal_trig_reduction_slowpath.exit.i.i.i.i131, label %749 749: ; preds = %737 %750 = sub nsw i32 4, %739 %751 = sub nuw nsw i32 32, %742 %752 = shl i32 %745, %742 %753 = lshr i32 %748, %751 %754 = add i32 %753, %752 %755 = shl i32 %748, %742 %756 = getelementptr inbounds [7 x i32], [7 x i32]* %result.i.i.i.i.i, i32 0, i32 %750 %757 = load i32, i32* %756, align 4 %758 = lshr i32 %757, %751 %759 = add i32 %758, %755 br label %__internal_trig_reduction_slowpath.exit.i.i.i.i131 __internal_trig_reduction_slowpath.exit.i.i.i.i131: ; preds = %749, %737 %hi.i.i.i.i.i36.1 = phi i32 [ %754, %749 ], [ %745, %737 ] %lo.i.i.i.i.i37.0 = phi i32 [ %759, %749 ], [ %748, %737 ] %760 = lshr i32 %hi.i.i.i.i.i36.1, 30 %761 = call i32 @llvm.fshl.i32(i32 %hi.i.i.i.i.i36.1, i32 %lo.i.i.i.i.i37.0, i32 noundef 2) %762 = shl i32 %lo.i.i.i.i.i37.0, 2 %763 = lshr i32 %761, 31 %764 = add nuw nsw i32 %763, %760 %.not410 = icmp eq i32 %740, 0 %765 = sub nsw i32 0, %764 %spec.select2 = select i1 %.not410, i32 %764, i32 %765 %.not411 = icmp sgt i32 %761, -1 %766 = xor i32 %740, -2147483648 %s.i.i.i.i.i34.0 = select i1 %.not411, i32 %740, i32 %766 %not..not411 = xor i1 %.not411, true %767 = sext i1 %not..not411 to i32 %hi.i.i.i.i.i36.2 = xor i32 %761, %767 %lo.i.i.i.i.i37.1 = xor i32 %762, %767 %768 = zext i32 %hi.i.i.i.i.i36.2 to i64 %769 = shl nuw i64 %768, 32 %770 = zext i32 %lo.i.i.i.i.i37.1 to i64 %771 = or i64 %769, %770 %772 = sitofp i64 %771 to double %773 = fmul double %772, 0x3BF921FB54442D19 %774 = fptrunc double %773 to float %.not413 = icmp eq i32 %s.i.i.i.i.i34.0, 0 %775 = fneg float %774 %r.i.i.i.i.i45.0 = select i1 %.not413, float %774, float %775 br label %__internal_trig_reduction_kernel.exit.i.i.i132 __internal_trig_reduction_kernel.exit.i.i.i132: ; preds = %__nv_fmul_rn.exit.i.i.i.i130, %__internal_trig_reduction_slowpath.exit.i.i.i.i131, %__nv_rsqrtf.exit.i.i123 %i.i.i.i51.1 = phi i32 [ %.0199, %__nv_rsqrtf.exit.i.i123 ], [ 0, %__nv_fmul_rn.exit.i.i.i.i130 ], [ %spec.select2, %__internal_trig_reduction_slowpath.exit.i.i.i.i131 ] %t.i.i.i.i48.1 = phi float [ %.0203, %__nv_rsqrtf.exit.i.i123 ], [ %.0206, %__nv_fmul_rn.exit.i.i.i.i130 ], [ %r.i.i.i.i.i45.0, %__internal_trig_reduction_slowpath.exit.i.i.i.i131 ] %776 = and i32 %i.i.i.i51.1, 3 %777 = uitofp i32 %776 to float %778 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not394 = icmp eq i32 %778, 0 %779 = call float @llvm.nvvm.fma.rn.ftz.f(float %777, float noundef 0x3FF921FB60000000, float noundef 0xBFE921FB60000000) #135 %780 = call float @llvm.fma.f32(float %777, float noundef 0x3FF921FB60000000, float noundef 0xBFE921FB60000000) %.0209 = select i1 %.not394, float %780, float %779 %781 = fadd float %t.i.i.i.i48.1, %.0209 %782 = fmul float %781, 0x3FE45F3060000000 %783 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not395 = icmp eq i32 %783, 0 %784 = call i32 @llvm.nvvm.f2i.rn.ftz(float %782) #135 %785 = call i32 @llvm.nvvm.f2i.rn(float %782) #135 %.0210 = select i1 %.not395, i32 %785, i32 %784 %786 = sitofp i32 %.0210 to float %787 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not396 = icmp eq i32 %787, 0 %788 = call float @llvm.nvvm.fma.rn.ftz.f(float %786, float noundef 0xBFF921FB40000000, float %781) #135 %789 = call float @llvm.fma.f32(float %786, float noundef 0xBFF921FB40000000, float %781) %.0211 = select i1 %.not396, float %789, float %788 %790 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not397 = icmp eq i32 %790, 0 %791 = call float @llvm.nvvm.fma.rn.ftz.f(float %786, float noundef 0xBE74442D00000000, float %.0211) #135 %792 = call float @llvm.fma.f32(float %786, float noundef 0xBE74442D00000000, float %.0211) %.0212 = select i1 %.not397, float %792, float %791 %793 = add i32 %.0210, 1 %794 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not398 = icmp eq i32 %794, 0 %795 = call float @llvm.nvvm.mul.rn.ftz.f(float %.0212, float %.0212) #135 %796 = fmul float %.0212, %.0212 %.0214 = select i1 %.not398, float %796, float %795 %797 = and i32 %793, 1 %.not399 = icmp eq i32 %797, 0 %798 = select i1 %.not399, float %.0212, float 1.000000e+00 %799 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not400 = icmp eq i32 %799, 0 %800 = call float @llvm.nvvm.fma.rn.ftz.f(float %.0214, float %798, float noundef 0.000000e+00) #135 %801 = call float @llvm.fma.f32(float %.0214, float %798, float noundef 0.000000e+00) %.0215 = select i1 %.not400, float %801, float %800 br i1 %.not399, label %__internal_fmad.exit2.i.i.i.i140, label %__internal_fmad.exit1.i.i.i.i139 __internal_fmad.exit1.i.i.i.i139: ; preds = %__internal_trig_reduction_kernel.exit.i.i.i132 %802 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not407 = icmp eq i32 %802, 0 %803 = call float @llvm.nvvm.fma.rn.ftz.f(float noundef 0x3EF9758000000000, float %.0214, float noundef 0xBF56C0FDA0000000) #135 %804 = call float @llvm.fma.f32(float %.0214, float noundef 0x3EF9758000000000, float noundef 0xBF56C0FDA0000000) %.0216 = select i1 %.not407, float %804, float %803 br label %__internal_fmad.exit2.i.i.i.i140 __internal_fmad.exit2.i.i.i.i140: ; preds = %__internal_trig_reduction_kernel.exit.i.i.i132, %__internal_fmad.exit1.i.i.i.i139 %805 = phi float [ 0xBFC5555500000000, %__internal_trig_reduction_kernel.exit.i.i.i132 ], [ 0xBFDFFFFFE0000000, %__internal_fmad.exit1.i.i.i.i139 ] %806 = phi float [ 0x3F8110BC80000000, %__internal_trig_reduction_kernel.exit.i.i.i132 ], [ 0x3FA5555760000000, %__internal_fmad.exit1.i.i.i.i139 ] %807 = phi float [ 0xBF29A82A60000000, %__internal_trig_reduction_kernel.exit.i.i.i132 ], [ %.0216, %__internal_fmad.exit1.i.i.i.i139 ] %808 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not401 = icmp eq i32 %808, 0 %809 = call float @llvm.nvvm.fma.rn.ftz.f(float %807, float %.0214, float noundef %806) #135 %810 = call float @llvm.fma.f32(float %807, float %.0214, float noundef %806) %.0217 = select i1 %.not401, float %810, float %809 %811 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not402 = icmp eq i32 %811, 0 %812 = call float @llvm.nvvm.fma.rn.ftz.f(float %.0217, float %.0214, float noundef %805) #135 %813 = call float @llvm.fma.f32(float %.0217, float %.0214, float noundef %805) %.0218 = select i1 %.not402, float %813, float %812 %814 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not403 = icmp eq i32 %814, 0 %815 = call float @llvm.nvvm.fma.rn.ftz.f(float %.0218, float %.0215, float %798) #135 %816 = call float @llvm.fma.f32(float %.0218, float %.0215, float %798) %.0219 = select i1 %.not403, float %816, float %815 %817 = and i32 %793, 2 %.not404 = icmp eq i32 %817, 0 br i1 %.not404, label %__internal_cos_offset_f.exit.i.i144, label %__internal_fmad.exit5.i.i.i.i143 __internal_fmad.exit5.i.i.i.i143: ; preds = %__internal_fmad.exit2.i.i.i.i140 %818 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not406 = icmp eq i32 %818, 0 %819 = call float @llvm.nvvm.fma.rn.ftz.f(float %.0219, float noundef -1.000000e+00, float noundef 0.000000e+00) #135 %820 = call float @llvm.fma.f32(float %.0219, float noundef -1.000000e+00, float noundef 0.000000e+00) %.0221 = select i1 %.not406, float %820, float %819 br label %__internal_cos_offset_f.exit.i.i144 __internal_cos_offset_f.exit.i.i144: ; preds = %__internal_fmad.exit5.i.i.i.i143, %__internal_fmad.exit2.i.i.i.i140 %z.i.i.i.i27.0 = phi float [ %.0221, %__internal_fmad.exit5.i.i.i.i143 ], [ %.0219, %__internal_fmad.exit2.i.i.i.i140 ] %821 = fmul float %699, %z.i.i.i.i27.0 br label %__nv_j0f.exit.i __nv_j0f.exit.i: ; preds = %__internal_cos_offset_f.exit.i.i144, %__nv_isinff.exit.i.i115, %__internal_fmad.exit.i.i102 %r.i5.i57.1 = phi float [ %662, %__internal_fmad.exit.i.i102 ], [ %821, %__internal_cos_offset_f.exit.i.i144 ], [ 0.000000e+00, %__nv_isinff.exit.i.i115 ] %822 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not405 = icmp eq i32 %822, 0 %823 = call float @llvm.nvvm.fma.rn.ftz.f(float %610, float %r.i5.i57.1, float %.0153) #135 %824 = call float @llvm.fma.f32(float %610, float %r.i5.i57.1, float %.0153) %.0222 = select i1 %.not405, float %824, float %823 br label %__nv_y0f.exit 825: ; preds = %__nv_y1f.exit %826 = fcmp ugt float %.0147, 0x3FFECF5F00000000 br i1 %826, label %866, label %__internal_fmad.exit9.i146 __internal_fmad.exit9.i146: ; preds = %825 %827 = fadd float %.0147, 0xBFEC982EC0000000 %828 = fadd float %827, 0x3E4CAFA060000000 %829 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not350 = icmp eq i32 %829, 0 %830 = call float @llvm.nvvm.fma.rn.ftz.f(float noundef 0x3F9BB91660000000, float %828, float noundef 0xBFC04AE980000000) #135 %831 = call float @llvm.fma.f32(float %828, float noundef 0x3F9BB91660000000, float noundef 0xBFC04AE980000000) %.0223 = select i1 %.not350, float %831, float %830 %832 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not351 = icmp eq i32 %832, 0 %833 = call float @llvm.nvvm.fma.rn.ftz.f(float %.0223, float %828, float noundef 0x3FCFE59920000000) #135 %834 = call float @llvm.fma.f32(float %.0223, float %828, float noundef 0x3FCFE59920000000) %.0224 = select i1 %.not351, float %834, float %833 %835 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not352 = icmp eq i32 %835, 0 %836 = call float @llvm.nvvm.fma.rn.ftz.f(float %.0224, float %828, float noundef 0xBFD17E5360000000) #135 %837 = call float @llvm.fma.f32(float %.0224, float %828, float noundef 0xBFD17E5360000000) %.0225 = select i1 %.not352, float %837, float %836 %838 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not353 = icmp eq i32 %838, 0 %839 = call float @llvm.nvvm.fma.rn.ftz.f(float %.0225, float %828, float noundef 0x3FCB79D260000000) #135 %840 = call float @llvm.fma.f32(float %.0225, float %828, float noundef 0x3FCB79D260000000) %.0226 = select i1 %.not353, float %840, float %839 %841 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not354 = icmp eq i32 %841, 0 %842 = call float @llvm.nvvm.fma.rn.ftz.f(float %.0226, float %828, float noundef 0xBFC7189FE0000000) #135 %843 = call float @llvm.fma.f32(float %.0226, float %828, float noundef 0xBFC7189FE0000000) %.0228 = select i1 %.not354, float %843, float %842 %844 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not355 = icmp eq i32 %844, 0 %845 = call float @llvm.nvvm.fma.rn.ftz.f(float %.0228, float %828, float noundef 0x3FC84EE9A0000000) #135 %846 = call float @llvm.fma.f32(float %.0228, float %828, float noundef 0x3FC84EE9A0000000) %.0229 = select i1 %.not355, float %846, float %845 %847 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not356 = icmp eq i32 %847, 0 %848 = call float @llvm.nvvm.fma.rn.ftz.f(float %.0229, float %828, float noundef 0xBFCA4B9640000000) #135 %849 = call float @llvm.fma.f32(float %.0229, float %828, float noundef 0xBFCA4B9640000000) %.0230 = select i1 %.not356, float %849, float %848 %850 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not357 = icmp eq i32 %850, 0 %851 = call float @llvm.nvvm.fma.rn.ftz.f(float %.0230, float %828, float noundef 0x3FCC1E87A0000000) #135 %852 = call float @llvm.fma.f32(float %.0230, float %828, float noundef 0x3FCC1E87A0000000) %.0231 = select i1 %.not357, float %852, float %851 %853 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not358 = icmp eq i32 %853, 0 %854 = call float @llvm.nvvm.fma.rn.ftz.f(float %.0231, float %828, float noundef 0xBFCCF228A0000000) #135 %855 = call float @llvm.fma.f32(float %.0231, float %828, float noundef 0xBFCCF228A0000000) %.0232 = select i1 %.not358, float %855, float %854 %856 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not359 = icmp eq i32 %856, 0 %857 = call float @llvm.nvvm.fma.rn.ftz.f(float %.0232, float %828, float noundef 0x3FCC3A4940000000) #135 %858 = call float @llvm.fma.f32(float %.0232, float %828, float noundef 0x3FCC3A4940000000) %.0233 = select i1 %.not359, float %858, float %857 %859 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not360 = icmp eq i32 %859, 0 %860 = call float @llvm.nvvm.fma.rn.ftz.f(float %.0233, float %828, float noundef 0xBFDF7E35A0000000) #135 %861 = call float @llvm.fma.f32(float %.0233, float %828, float noundef 0xBFDF7E35A0000000) %.0235 = select i1 %.not360, float %861, float %860 %862 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not361 = icmp eq i32 %862, 0 %863 = call float @llvm.nvvm.fma.rn.ftz.f(float %.0235, float %828, float noundef 0x3FEC243760000000) #135 %864 = call float @llvm.fma.f32(float %.0235, float %828, float noundef 0x3FEC243760000000) %.0236 = select i1 %.not361, float %864, float %863 %865 = fmul float %828, %.0236 br label %__nv_y0f.exit 866: ; preds = %825 %867 = fcmp ugt float %.0147, 0x40161663C0000000 br i1 %867, label %898, label %__internal_fmad.exit33.i158 __internal_fmad.exit33.i158: ; preds = %866 %868 = fadd float %.0147, 0xC00FA95340000000 %869 = fadd float %868, 0xBE7B30AD40000000 %870 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not341 = icmp eq i32 %870, 0 %871 = call float @llvm.nvvm.fma.rn.ftz.f(float noundef 0xBE893BA7E0000000, float %869, float noundef 0xBE8BC4C0E0000000) #135 %872 = call float @llvm.fma.f32(float %869, float noundef 0xBE893BA7E0000000, float noundef 0xBE8BC4C0E0000000) %.0237 = select i1 %.not341, float %872, float %871 %873 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not342 = icmp eq i32 %873, 0 %874 = call float @llvm.nvvm.fma.rn.ftz.f(float %.0237, float %869, float noundef 0xBED0AE0C80000000) #135 %875 = call float @llvm.fma.f32(float %.0237, float %869, float noundef 0xBED0AE0C80000000) %.0238 = select i1 %.not342, float %875, float %874 %876 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not343 = icmp eq i32 %876, 0 %877 = call float @llvm.nvvm.fma.rn.ftz.f(float %.0238, float %869, float noundef 0x3F0AA8C200000000) #135 %878 = call float @llvm.fma.f32(float %.0238, float %869, float noundef 0x3F0AA8C200000000) %.0239 = select i1 %.not343, float %878, float %877 %879 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not344 = icmp eq i32 %879, 0 %880 = call float @llvm.nvvm.fma.rn.ftz.f(float %.0239, float %869, float noundef 0x3F2959DAE0000000) #135 %881 = call float @llvm.fma.f32(float %.0239, float %869, float noundef 0x3F2959DAE0000000) %.0240 = select i1 %.not344, float %881, float %880 %882 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not345 = icmp eq i32 %882, 0 %883 = call float @llvm.nvvm.fma.rn.ftz.f(float %.0240, float %869, float noundef 0xBF61E34180000000) #135 %884 = call float @llvm.fma.f32(float %.0240, float %869, float noundef 0xBF61E34180000000) %.0242 = select i1 %.not345, float %884, float %883 %885 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not346 = icmp eq i32 %885, 0 %886 = call float @llvm.nvvm.fma.rn.ftz.f(float %.0242, float %869, float noundef 0xBF7C0FE5C0000000) #135 %887 = call float @llvm.fma.f32(float %.0242, float %869, float noundef 0xBF7C0FE5C0000000) %.0243 = select i1 %.not346, float %887, float %886 %888 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not347 = icmp eq i32 %888, 0 %889 = call float @llvm.nvvm.fma.rn.ftz.f(float %.0243, float %869, float noundef 0x3FADF6D6A0000000) #135 %890 = call float @llvm.fma.f32(float %.0243, float %869, float noundef 0x3FADF6D6A0000000) %.0244 = select i1 %.not347, float %890, float %889 %891 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not348 = icmp eq i32 %891, 0 %892 = call float @llvm.nvvm.fma.rn.ftz.f(float %.0244, float %869, float noundef 0x3FAA09BE20000000) #135 %893 = call float @llvm.fma.f32(float %.0244, float %869, float noundef 0x3FAA09BE20000000) %.0245 = select i1 %.not348, float %893, float %892 %894 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not349 = icmp eq i32 %894, 0 %895 = call float @llvm.nvvm.fma.rn.ftz.f(float %.0245, float %869, float noundef 0xBFD9C34260000000) #135 %896 = call float @llvm.fma.f32(float %.0245, float %869, float noundef 0xBFD9C34260000000) %.0246 = select i1 %.not349, float %896, float %895 %897 = fmul float %869, %.0246 br label %__nv_y0f.exit 898: ; preds = %866 %899 = fcmp ugt float %.0147, 0x40214EF300000000 br i1 %899, label %__nv_isinff.exit.i173, label %__internal_fmad.exit51.i167 __internal_fmad.exit51.i167: ; preds = %898 %900 = fadd float %.0147, 0xC01C581DC0000000 %901 = fadd float %900, 0xBE739C8400000000 %902 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not333 = icmp eq i32 %902, 0 %903 = call float @llvm.nvvm.fma.rn.ftz.f(float noundef 0x3EA219D7C0000000, float %901, float noundef 0x3EC53B4D80000000) #135 %904 = call float @llvm.fma.f32(float %901, float noundef 0x3EA219D7C0000000, float noundef 0x3EC53B4D80000000) %.0247 = select i1 %.not333, float %904, float %903 %905 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not334 = icmp eq i32 %905, 0 %906 = call float @llvm.nvvm.fma.rn.ftz.f(float %.0247, float %901, float noundef 0xBF080A9800000000) #135 %907 = call float @llvm.fma.f32(float %.0247, float %901, float noundef 0xBF080A9800000000) %.0249 = select i1 %.not334, float %907, float %906 %908 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not335 = icmp eq i32 %908, 0 %909 = call float @llvm.nvvm.fma.rn.ftz.f(float %.0249, float %901, float noundef 0xBF22631560000000) #135 %910 = call float @llvm.fma.f32(float %.0249, float %901, float noundef 0xBF22631560000000) %.0250 = select i1 %.not335, float %910, float %909 %911 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not336 = icmp eq i32 %911, 0 %912 = call float @llvm.nvvm.fma.rn.ftz.f(float %.0250, float %901, float noundef 0x3F61D32420000000) #135 %913 = call float @llvm.fma.f32(float %.0250, float %901, float noundef 0x3F61D32420000000) %.0251 = select i1 %.not336, float %913, float %912 %914 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not337 = icmp eq i32 %914, 0 %915 = call float @llvm.nvvm.fma.rn.ftz.f(float %.0251, float %901, float noundef 0x3F6B2E9AA0000000) #135 %916 = call float @llvm.fma.f32(float %.0251, float %901, float noundef 0x3F6B2E9AA0000000) %.0252 = select i1 %.not337, float %916, float %915 %917 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not338 = icmp eq i32 %917, 0 %918 = call float @llvm.nvvm.fma.rn.ftz.f(float %.0252, float %901, float noundef 0xBFA8969AE0000000) #135 %919 = call float @llvm.fma.f32(float %.0252, float %901, float noundef 0xBFA8969AE0000000) %.0253 = select i1 %.not338, float %919, float %918 %920 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not339 = icmp eq i32 %920, 0 %921 = call float @llvm.nvvm.fma.rn.ftz.f(float %.0253, float %901, float noundef 0xBF95AEF320000000) #135 %922 = call float @llvm.fma.f32(float %.0253, float %901, float noundef 0xBF95AEF320000000) %.0254 = select i1 %.not339, float %922, float %921 %923 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not340 = icmp eq i32 %923, 0 %924 = call float @llvm.nvvm.fma.rn.ftz.f(float %.0254, float %901, float noundef 0x3FD334CCA0000000) #135 %925 = call float @llvm.fma.f32(float %.0254, float %901, float noundef 0x3FD334CCA0000000) %.0256 = select i1 %.not340, float %925, float %924 %926 = fmul float %901, %.0256 br label %__nv_y0f.exit __nv_isinff.exit.i173: ; preds = %898 %927 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not36 = icmp eq i32 %927, 0 %928 = call float @llvm.nvvm.fabs.ftz.f(float %.0147) #135 %929 = call float @llvm.fabs.f32(float %.0147) %.0257 = select i1 %.not36, float %929, float %928 %930 = fcmp oeq float %.0257, 0x7FF0000000000000 br i1 %930, label %__nv_y0f.exit, label %__internal_fmad.exit70.i174 __internal_fmad.exit70.i174: ; preds = %__nv_isinff.exit.i173 %931 = call float asm "rcp.approx.ftz.f32 $0,$1;", "=f,f"(float %.0147) #137, !srcloc !225 %932 = fmul float %931, %931 %933 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not37 = icmp eq i32 %933, 0 %934 = call float @llvm.nvvm.fma.rn.ftz.f(float noundef 0xBFD98D3E60000000, float %932, float noundef 0x3FBA1ABE00000000) #135 %935 = call float @llvm.fma.f32(float %932, float noundef 0xBFD98D3E60000000, float noundef 0x3FBA1ABE00000000) %.0258 = select i1 %.not37, float %935, float %934 %936 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not38 = icmp eq i32 %936, 0 %937 = call float @llvm.nvvm.fma.rn.ftz.f(float %.0258, float %932, float noundef 0xBFAFFF0AA0000000) #135 %938 = call float @llvm.fma.f32(float %.0258, float %932, float noundef 0xBFAFFF0AA0000000) %.0259 = select i1 %.not38, float %938, float %937 %939 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not39 = icmp eq i32 %939, 0 %940 = call float @llvm.nvvm.fma.rn.ftz.f(float %.0259, float %932, float noundef 1.000000e+00) #135 %941 = call float @llvm.fma.f32(float %.0259, float %932, float noundef 1.000000e+00) %.0260 = select i1 %.not39, float %941, float %940 %942 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not40 = icmp eq i32 %942, 0 %943 = call float @llvm.nvvm.fma.rn.ftz.f(float noundef 0x3FF199AC20000000, float %932, float noundef 0xBFCA1A6380000000) #135 %944 = call float @llvm.fma.f32(float %932, float noundef 0x3FF199AC20000000, float noundef 0xBFCA1A6380000000) %.0261 = select i1 %.not40, float %944, float %943 %945 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not41 = icmp eq i32 %945, 0 %946 = call float @llvm.nvvm.fma.rn.ftz.f(float %.0261, float %932, float noundef 0x3FB0A8F060000000) #135 %947 = call float @llvm.fma.f32(float %.0261, float %932, float noundef 0x3FB0A8F060000000) %.0263 = select i1 %.not41, float %947, float %946 %948 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not42 = icmp eq i32 %948, 0 %949 = call float @llvm.nvvm.fma.rn.ftz.f(float %.0263, float %932, float noundef 0xBFBFFFFF60000000) #135 %950 = call float @llvm.fma.f32(float %.0263, float %932, float noundef 0xBFBFFFFF60000000) %.0264 = select i1 %.not42, float %950, float %949 %951 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not43 = icmp eq i32 %951, 0 %952 = call float @llvm.nvvm.fma.rn.ftz.f(float %.0264, float %931, float %.0147) #135 %953 = call float @llvm.fma.f32(float %.0264, float %931, float %.0147) %.0265 = select i1 %.not43, float %953, float %952 %954 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not44 = icmp eq i32 %954, 0 br i1 %.not44, label %957, label %955 955: ; preds = %__internal_fmad.exit70.i174 %956 = call float @llvm.nvvm.rsqrt.approx.ftz.f(float %.0147) #135 br label %__nv_rsqrtf.exit.i179 957: ; preds = %__internal_fmad.exit70.i174 %958 = call float @llvm.nvvm.rsqrt.approx.f(float %.0147) #135 br label %__nv_rsqrtf.exit.i179 __nv_rsqrtf.exit.i179: ; preds = %957, %955 %.0266 = phi float [ %956, %955 ], [ %958, %957 ] %959 = fmul float %.0266, 0x3FE9884540000000 %960 = fmul float %.0260, %959 %961 = fmul float %.0265, 0x3FE45F3060000000 %962 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not45 = icmp eq i32 %962, 0 %963 = call i32 @llvm.nvvm.f2i.rn.ftz(float %961) #135 %964 = call i32 @llvm.nvvm.f2i.rn(float %961) #135 %.0268 = select i1 %.not45, i32 %964, i32 %963 %965 = sitofp i32 %.0268 to float %966 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not46 = icmp eq i32 %966, 0 %967 = call float @llvm.nvvm.fma.rn.ftz.f(float %965, float noundef 0xBFF921FB40000000, float %.0265) #135 %968 = call float @llvm.fma.f32(float %965, float noundef 0xBFF921FB40000000, float %.0265) %.0269 = select i1 %.not46, float %968, float %967 %969 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not47 = icmp eq i32 %969, 0 %970 = call float @llvm.nvvm.fma.rn.ftz.f(float %965, float noundef 0xBE74442D00000000, float %.0269) #135 %971 = call float @llvm.fma.f32(float %965, float noundef 0xBE74442D00000000, float %.0269) %.0270 = select i1 %.not47, float %971, float %970 %972 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not48 = icmp eq i32 %972, 0 %973 = call float @llvm.nvvm.fma.rn.ftz.f(float %965, float noundef 0xBCF84698A0000000, float %.0270) #135 %974 = call float @llvm.fma.f32(float %965, float noundef 0xBCF84698A0000000, float %.0270) %.0272 = select i1 %.not48, float %974, float %973 %975 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not49 = icmp eq i32 %975, 0 %976 = call float @llvm.nvvm.fabs.ftz.f(float %.0265) #135 %977 = call float @llvm.fabs.f32(float %.0265) %.0273 = select i1 %.not49, float %977, float %976 %978 = fcmp ult float %.0273, 1.056150e+05 br i1 %978, label %__internal_trig_reduction_kernel.exit.i.i185, label %__nv_isinff.exit.i.i.i182 __nv_isinff.exit.i.i.i182: ; preds = %__nv_rsqrtf.exit.i179 %979 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not326 = icmp eq i32 %979, 0 %.0274 = select i1 %.not326, float %977, float %976 %980 = fcmp oeq float %.0274, 0x7FF0000000000000 br i1 %980, label %__nv_fmul_rn.exit.i.i.i183, label %984 __nv_fmul_rn.exit.i.i.i183: ; preds = %__nv_isinff.exit.i.i.i182 %981 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not332 = icmp eq i32 %981, 0 %982 = call float @llvm.nvvm.mul.rn.ftz.f(float %.0265, float noundef 0.000000e+00) #135 %983 = fmul float %.0265, 0.000000e+00 %.0275 = select i1 %.not332, float %983, float %982 br label %__internal_trig_reduction_kernel.exit.i.i185 984: ; preds = %__nv_isinff.exit.i.i.i182 %985 = bitcast float %.0265 to i32 %986 = lshr i32 %985, 23 %987 = and i32 %986, 255 %988 = shl i32 %985, 8 %989 = or i32 %988, -2147483648 br label %990 990: ; preds = %984, %990 %iq.i.i.i.i15.0543 = phi i32 [ 0, %984 ], [ %997, %990 ] %hi.i.i.i.i10.0542 = phi i32 [ 0, %984 ], [ %995, %990 ] %991 = getelementptr inbounds [6 x i32], [6 x i32] addrspace(1)* @__cudart_i2opi_f, i32 0, i32 %iq.i.i.i.i15.0543 %992 = load i32, i32 addrspace(1)* %991, align 4 %993 = call { i32, i32 } asm "{\0A\09mad.lo.cc.u32 $0, $2, $3, $4;\0A\09madc.hi.u32 $1, $2, $3, 0;\0A\09}", "=r,=r,r,r,r"(i32 %992, i32 %989, i32 %hi.i.i.i.i10.0542) #137, !srcloc !222 %994 = extractvalue { i32, i32 } %993, 0 %995 = extractvalue { i32, i32 } %993, 1 %996 = getelementptr inbounds [7 x i32], [7 x i32]* %result.i.i.i.i.i, i32 0, i32 %iq.i.i.i.i15.0543 store i32 %994, i32* %996, align 4, !noalias !219 %997 = add nuw nsw i32 %iq.i.i.i.i15.0543, 1 %exitcond576.not = icmp eq i32 %997, 6 br i1 %exitcond576.not, label %998, label %990, !llvm.loop !223 998: ; preds = %990 %999 = add nsw i32 %987, -128 %1000 = lshr i32 %999, 5 %1001 = and i32 %985, -2147483648 %1002 = getelementptr inbounds [7 x i32], [7 x i32]* %result.i.i.i.i.i, i32 0, i32 6 store i32 %995, i32* %1002, align 4, !noalias !219 %1003 = and i32 %986, 31 %1004 = sub nsw i32 6, %1000 %1005 = getelementptr inbounds [7 x i32], [7 x i32]* %result.i.i.i.i.i, i32 0, i32 %1004 %1006 = load i32, i32* %1005, align 4 %1007 = sub nsw i32 5, %1000 %1008 = getelementptr inbounds [7 x i32], [7 x i32]* %result.i.i.i.i.i, i32 0, i32 %1007 %1009 = load i32, i32* %1008, align 4 %.not327 = icmp eq i32 %1003, 0 br i1 %.not327, label %__internal_trig_reduction_slowpath.exit.i.i.i184, label %1010 1010: ; preds = %998 %1011 = sub nsw i32 4, %1000 %1012 = sub nuw nsw i32 32, %1003 %1013 = shl i32 %1006, %1003 %1014 = lshr i32 %1009, %1012 %1015 = add i32 %1014, %1013 %1016 = shl i32 %1009, %1003 %1017 = getelementptr inbounds [7 x i32], [7 x i32]* %result.i.i.i.i.i, i32 0, i32 %1011 %1018 = load i32, i32* %1017, align 4 %1019 = lshr i32 %1018, %1012 %1020 = add i32 %1019, %1016 br label %__internal_trig_reduction_slowpath.exit.i.i.i184 __internal_trig_reduction_slowpath.exit.i.i.i184: ; preds = %1010, %998 %hi.i.i.i.i10.1 = phi i32 [ %1015, %1010 ], [ %1006, %998 ] %lo.i.i.i.i11.0 = phi i32 [ %1020, %1010 ], [ %1009, %998 ] %1021 = lshr i32 %hi.i.i.i.i10.1, 30 %1022 = call i32 @llvm.fshl.i32(i32 %hi.i.i.i.i10.1, i32 %lo.i.i.i.i11.0, i32 noundef 2) %1023 = shl i32 %lo.i.i.i.i11.0, 2 %1024 = lshr i32 %1022, 31 %1025 = add nuw nsw i32 %1024, %1021 %.not328 = icmp eq i32 %1001, 0 %1026 = sub nsw i32 0, %1025 %spec.select3 = select i1 %.not328, i32 %1025, i32 %1026 %.not329 = icmp sgt i32 %1022, -1 %1027 = xor i32 %1001, -2147483648 %s.i.i.i.i9.0 = select i1 %.not329, i32 %1001, i32 %1027 %not..not329 = xor i1 %.not329, true %1028 = sext i1 %not..not329 to i32 %hi.i.i.i.i10.2 = xor i32 %1022, %1028 %lo.i.i.i.i11.1 = xor i32 %1023, %1028 %1029 = zext i32 %hi.i.i.i.i10.2 to i64 %1030 = shl nuw i64 %1029, 32 %1031 = zext i32 %lo.i.i.i.i11.1 to i64 %1032 = or i64 %1030, %1031 %1033 = sitofp i64 %1032 to double %1034 = fmul double %1033, 0x3BF921FB54442D19 %1035 = fptrunc double %1034 to float %.not331 = icmp eq i32 %s.i.i.i.i9.0, 0 %1036 = fneg float %1035 %r.i.i.i.i19.0 = select i1 %.not331, float %1035, float %1036 br label %__internal_trig_reduction_kernel.exit.i.i185 __internal_trig_reduction_kernel.exit.i.i185: ; preds = %__nv_fmul_rn.exit.i.i.i183, %__internal_trig_reduction_slowpath.exit.i.i.i184, %__nv_rsqrtf.exit.i179 %i.i85.i.1 = phi i32 [ %.0268, %__nv_rsqrtf.exit.i179 ], [ 0, %__nv_fmul_rn.exit.i.i.i183 ], [ %spec.select3, %__internal_trig_reduction_slowpath.exit.i.i.i184 ] %t.i.i.i22.1 = phi float [ %.0272, %__nv_rsqrtf.exit.i179 ], [ %.0275, %__nv_fmul_rn.exit.i.i.i183 ], [ %r.i.i.i.i19.0, %__internal_trig_reduction_slowpath.exit.i.i.i184 ] %1037 = and i32 %i.i85.i.1, 3 %1038 = uitofp i32 %1037 to float %1039 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not50 = icmp eq i32 %1039, 0 %1040 = call float @llvm.nvvm.fma.rn.ftz.f(float %1038, float noundef 0x3FF921FB60000000, float noundef 0xC002D97C80000000) #135 %1041 = call float @llvm.fma.f32(float %1038, float noundef 0x3FF921FB60000000, float noundef 0xC002D97C80000000) %.0278 = select i1 %.not50, float %1041, float %1040 %1042 = fadd float %t.i.i.i22.1, %.0278 %1043 = fmul float %1042, 0x3FE45F3060000000 %1044 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not51 = icmp eq i32 %1044, 0 %1045 = call i32 @llvm.nvvm.f2i.rn.ftz(float %1043) #135 %1046 = call i32 @llvm.nvvm.f2i.rn(float %1043) #135 %.0279 = select i1 %.not51, i32 %1046, i32 %1045 %1047 = sitofp i32 %.0279 to float %1048 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not52 = icmp eq i32 %1048, 0 %1049 = call float @llvm.nvvm.fma.rn.ftz.f(float %1047, float noundef 0xBFF921FB40000000, float %1042) #135 %1050 = call float @llvm.fma.f32(float %1047, float noundef 0xBFF921FB40000000, float %1042) %.0280 = select i1 %.not52, float %1050, float %1049 %1051 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not53 = icmp eq i32 %1051, 0 %1052 = call float @llvm.nvvm.fma.rn.ftz.f(float %1047, float noundef 0xBE74442D00000000, float %.0280) #135 %1053 = call float @llvm.fma.f32(float %1047, float noundef 0xBE74442D00000000, float %.0280) %.0281 = select i1 %.not53, float %1053, float %1052 %1054 = add i32 %.0279, 1 %1055 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not54 = icmp eq i32 %1055, 0 %1056 = call float @llvm.nvvm.mul.rn.ftz.f(float %.0281, float %.0281) #135 %1057 = fmul float %.0281, %.0281 %.0282 = select i1 %.not54, float %1057, float %1056 %1058 = and i32 %1054, 1 %.not55 = icmp eq i32 %1058, 0 %1059 = select i1 %.not55, float %.0281, float 1.000000e+00 %1060 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not56 = icmp eq i32 %1060, 0 %1061 = call float @llvm.nvvm.fma.rn.ftz.f(float %.0282, float %1059, float noundef 0.000000e+00) #135 %1062 = call float @llvm.fma.f32(float %.0282, float %1059, float noundef 0.000000e+00) %.0284 = select i1 %.not56, float %1062, float %1061 br i1 %.not55, label %__internal_fmad.exit2.i.i.i190, label %__internal_fmad.exit1.i.i.i189 __internal_fmad.exit1.i.i.i189: ; preds = %__internal_trig_reduction_kernel.exit.i.i185 %1063 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not325 = icmp eq i32 %1063, 0 %1064 = call float @llvm.nvvm.fma.rn.ftz.f(float noundef 0x3EF9758000000000, float %.0282, float noundef 0xBF56C0FDA0000000) #135 %1065 = call float @llvm.fma.f32(float %.0282, float noundef 0x3EF9758000000000, float noundef 0xBF56C0FDA0000000) %.0285 = select i1 %.not325, float %1065, float %1064 br label %__internal_fmad.exit2.i.i.i190 __internal_fmad.exit2.i.i.i190: ; preds = %__internal_trig_reduction_kernel.exit.i.i185, %__internal_fmad.exit1.i.i.i189 %1066 = phi float [ 0xBFC5555500000000, %__internal_trig_reduction_kernel.exit.i.i185 ], [ 0xBFDFFFFFE0000000, %__internal_fmad.exit1.i.i.i189 ] %1067 = phi float [ 0x3F8110BC80000000, %__internal_trig_reduction_kernel.exit.i.i185 ], [ 0x3FA5555760000000, %__internal_fmad.exit1.i.i.i189 ] %1068 = phi float [ 0xBF29A82A60000000, %__internal_trig_reduction_kernel.exit.i.i185 ], [ %.0285, %__internal_fmad.exit1.i.i.i189 ] %1069 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not57 = icmp eq i32 %1069, 0 %1070 = call float @llvm.nvvm.fma.rn.ftz.f(float %1068, float %.0282, float noundef %1067) #135 %1071 = call float @llvm.fma.f32(float %1068, float %.0282, float noundef %1067) %.0286 = select i1 %.not57, float %1071, float %1070 %1072 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not58 = icmp eq i32 %1072, 0 %1073 = call float @llvm.nvvm.fma.rn.ftz.f(float %.0286, float %.0282, float noundef %1066) #135 %1074 = call float @llvm.fma.f32(float %.0286, float %.0282, float noundef %1066) %.0287 = select i1 %.not58, float %1074, float %1073 %1075 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not59 = icmp eq i32 %1075, 0 %1076 = call float @llvm.nvvm.fma.rn.ftz.f(float %.0287, float %.0284, float %1059) #135 %1077 = call float @llvm.fma.f32(float %.0287, float %.0284, float %1059) %.0288 = select i1 %.not59, float %1077, float %1076 %1078 = and i32 %1054, 2 %.not60 = icmp eq i32 %1078, 0 br i1 %.not60, label %__internal_cos_offset_f.exit.i194, label %__internal_fmad.exit5.i.i.i193 __internal_fmad.exit5.i.i.i193: ; preds = %__internal_fmad.exit2.i.i.i190 %1079 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not324 = icmp eq i32 %1079, 0 %1080 = call float @llvm.nvvm.fma.rn.ftz.f(float %.0288, float noundef -1.000000e+00, float noundef 0.000000e+00) #135 %1081 = call float @llvm.fma.f32(float %.0288, float noundef -1.000000e+00, float noundef 0.000000e+00) %.0289 = select i1 %.not324, float %1081, float %1080 br label %__internal_cos_offset_f.exit.i194 __internal_cos_offset_f.exit.i194: ; preds = %__internal_fmad.exit5.i.i.i193, %__internal_fmad.exit2.i.i.i190 %z.i.i83.i.0 = phi float [ %.0289, %__internal_fmad.exit5.i.i.i193 ], [ %.0288, %__internal_fmad.exit2.i.i.i190 ] %1082 = fmul float %960, %z.i.i83.i.0 br label %__nv_y0f.exit __nv_y0f.exit: ; preds = %__internal_fmad.exit9.i146, %__internal_fmad.exit51.i167, %__nv_isinff.exit.i173, %__internal_cos_offset_f.exit.i194, %__internal_fmad.exit33.i158, %__nv_j0f.exit.i %r.i75.4 = phi float [ %.0222, %__nv_j0f.exit.i ], [ %865, %__internal_fmad.exit9.i146 ], [ %897, %__internal_fmad.exit33.i158 ], [ %926, %__internal_fmad.exit51.i167 ], [ %1082, %__internal_cos_offset_f.exit.i194 ], [ 0.000000e+00, %__nv_isinff.exit.i173 ] %r.i75.5 = select i1 %543, float 0x7FFFFFFFE0000000, float %r.i75.4 switch i32 %n, label %2163 [ i32 0, label %__nv_fabsf.exit.i281 i32 1, label %__nv_fabsf.exit.i496 ] __nv_fabsf.exit.i281: ; preds = %__nv_y0f.exit %1083 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not189 = icmp eq i32 %1083, 0 %.0291 = select i1 %.not189, float %2, float %1 %1084 = fcmp ugt float %.0291, 0x3FDC982EC0000000 br i1 %1084, label %1364, label %__internal_fmad.exit.i282 __internal_fmad.exit.i282: ; preds = %__nv_fabsf.exit.i281 %1085 = fmul float %.0291, %.0291 %1086 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not253 = icmp eq i32 %1086, 0 %1087 = call float @llvm.nvvm.fma.rn.ftz.f(float noundef 0x3E7B7CB580000000, float %1085, float noundef 0xBEE3E936C0000000) #135 %1088 = call float @llvm.fma.f32(float %1085, float noundef 0x3E7B7CB580000000, float noundef 0xBEE3E936C0000000) %.0293 = select i1 %.not253, float %1088, float %1087 %1089 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not254 = icmp eq i32 %1089, 0 %1090 = call float @llvm.nvvm.fma.rn.ftz.f(float %.0293, float %1085, float noundef 0x3F41A62000000000) #135 %1091 = call float @llvm.fma.f32(float %.0293, float %1085, float noundef 0x3F41A62000000000) %.0294 = select i1 %.not254, float %1091, float %1090 %1092 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not255 = icmp eq i32 %1092, 0 %1093 = call float @llvm.nvvm.fma.rn.ftz.f(float %.0294, float %1085, float noundef 0xBF9075B1C0000000) #135 %1094 = call float @llvm.fma.f32(float %.0294, float %1085, float noundef 0xBF9075B1C0000000) %.0295 = select i1 %.not255, float %1094, float %1093 %1095 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not256 = icmp eq i32 %1095, 0 %1096 = call float @llvm.nvvm.fma.rn.ftz.f(float %.0295, float %1085, float noundef 0x3FC6BBCB40000000) #135 %1097 = call float @llvm.fma.f32(float %.0295, float %1085, float noundef 0x3FC6BBCB40000000) %.0296 = select i1 %.not256, float %1097, float %1096 %1098 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not257 = icmp eq i32 %1098, 0 %1099 = call float @llvm.nvvm.fma.rn.ftz.f(float %.0296, float %1085, float noundef 0xBFB2E4D6A0000000) #135 %1100 = call float @llvm.fma.f32(float %.0296, float %1085, float noundef 0xBFB2E4D6A0000000) %.0297 = select i1 %.not257, float %1100, float %1099 %1101 = fcmp olt float %.0291, 0x3810000000000000 %1102 = fmul float %.0291, 0x4160000000000000 %.0299 = select i1 %1101, float %1102, float %.0291 %i.i.i271.0 = select i1 %1101, float -2.300000e+01, float 0.000000e+00 %1103 = bitcast float %.0299 to i32 %1104 = add i32 %1103, -1059760811 %1105 = and i32 %1104, -8388608 %1106 = sub i32 %1103, %1105 %1107 = bitcast i32 %1106 to float %1108 = sitofp i32 %1105 to float %1109 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not258 = icmp eq i32 %1109, 0 %1110 = call float @llvm.nvvm.fma.rn.ftz.f(float %1108, float noundef 0x3E80000000000000, float noundef %i.i.i271.0) #135 %1111 = call float @llvm.fma.f32(float %1108, float noundef 0x3E80000000000000, float noundef %i.i.i271.0) %.0305 = select i1 %.not258, float %1111, float %1110 %1112 = fadd float %1107, -1.000000e+00 %1113 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not259 = icmp eq i32 %1113, 0 %1114 = call float @llvm.nvvm.fma.rn.ftz.f(float noundef 0xBFC0AA04E0000000, float %1112, float noundef 0x3FC2073EC0000000) #135 %1115 = call float @llvm.fma.f32(float %1112, float noundef 0xBFC0AA04E0000000, float noundef 0x3FC2073EC0000000) %.0306 = select i1 %.not259, float %1115, float %1114 %1116 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not260 = icmp eq i32 %1116, 0 %1117 = call float @llvm.nvvm.fma.rn.ftz.f(float %.0306, float %1112, float noundef 0xBFBF19B980000000) #135 %1118 = call float @llvm.fma.f32(float %.0306, float %1112, float noundef 0xBFBF19B980000000) %.0308 = select i1 %.not260, float %1118, float %1117 %1119 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not261 = icmp eq i32 %1119, 0 %1120 = call float @llvm.nvvm.fma.rn.ftz.f(float %.0308, float %1112, float noundef 0x3FC1E52AA0000000) #135 %1121 = call float @llvm.fma.f32(float %.0308, float %1112, float noundef 0x3FC1E52AA0000000) %.0309 = select i1 %.not261, float %1121, float %1120 %1122 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not262 = icmp eq i32 %1122, 0 %1123 = call float @llvm.nvvm.fma.rn.ftz.f(float %.0309, float %1112, float noundef 0xBFC55B1720000000) #135 %1124 = call float @llvm.fma.f32(float %.0309, float %1112, float noundef 0xBFC55B1720000000) %.0310 = select i1 %.not262, float %1124, float %1123 %1125 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not263 = icmp eq i32 %1125, 0 %1126 = call float @llvm.nvvm.fma.rn.ftz.f(float %.0310, float %1112, float noundef 0x3FC99DA160000000) #135 %1127 = call float @llvm.fma.f32(float %.0310, float %1112, float noundef 0x3FC99DA160000000) %.0312 = select i1 %.not263, float %1127, float %1126 %1128 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not264 = icmp eq i32 %1128, 0 %1129 = call float @llvm.nvvm.fma.rn.ftz.f(float %.0312, float %1112, float noundef 0xBFCFFFE440000000) #135 %1130 = call float @llvm.fma.f32(float %.0312, float %1112, float noundef 0xBFCFFFE440000000) %.0313 = select i1 %.not264, float %1130, float %1129 %1131 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not265 = icmp eq i32 %1131, 0 %1132 = call float @llvm.nvvm.fma.rn.ftz.f(float %.0313, float %1112, float noundef 0x3FD5554F00000000) #135 %1133 = call float @llvm.fma.f32(float %.0313, float %1112, float noundef 0x3FD5554F00000000) %.0314 = select i1 %.not265, float %1133, float %1132 %1134 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not266 = icmp eq i32 %1134, 0 %1135 = call float @llvm.nvvm.fma.rn.ftz.f(float %.0314, float %1112, float noundef -5.000000e-01) #135 %1136 = call float @llvm.fma.f32(float %.0314, float %1112, float noundef -5.000000e-01) %.0304 = select i1 %.not266, float %1136, float %1135 %1137 = fmul float %1112, %.0304 %1138 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not267 = icmp eq i32 %1138, 0 %1139 = call float @llvm.nvvm.fma.rn.ftz.f(float %1137, float %1112, float %1112) #135 %1140 = call float @llvm.fma.f32(float %1137, float %1112, float %1112) %.0302 = select i1 %.not267, float %1140, float %1139 %1141 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not268 = icmp eq i32 %1141, 0 %1142 = call float @llvm.nvvm.fma.rn.ftz.f(float %.0305, float noundef 0x3FE62E4300000000, float %.0302) #135 %1143 = call float @llvm.fma.f32(float %.0305, float noundef 0x3FE62E4300000000, float %.0302) %.0301 = select i1 %.not268, float %1143, float %1142 %1144 = icmp ugt i32 %1103, 2139095039 br i1 %1144, label %__nv_fmaf_rn.exit.i.i298, label %__internal_accurate_logf.exit.i299 __nv_fmaf_rn.exit.i.i298: ; preds = %__internal_fmad.exit.i282 %1145 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not319 = icmp eq i32 %1145, 0 %1146 = call float @llvm.nvvm.fma.rn.ftz.f(float %.0299, float noundef 0x7FF0000000000000, float noundef 0x7FF0000000000000) #135 %1147 = call float @llvm.fma.f32(float %.0299, float noundef 0x7FF0000000000000, float noundef 0x7FF0000000000000) %.0300 = select i1 %.not319, float %1147, float %1146 br label %__internal_accurate_logf.exit.i299 __internal_accurate_logf.exit.i299: ; preds = %__nv_fmaf_rn.exit.i.i298, %__internal_fmad.exit.i282 %r.i.i270.0 = phi float [ %.0300, %__nv_fmaf_rn.exit.i.i298 ], [ %.0301, %__internal_fmad.exit.i282 ] %1148 = fcmp oeq float %.0299, 0.000000e+00 %r.i.i270.0.op = fmul float %r.i.i270.0, 0x3FE45F3060000000 %1149 = select i1 %1148, float 0xFFF0000000000000, float %r.i.i270.0.op %1150 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not269 = icmp eq i32 %1150, 0 %1151 = call float @llvm.nvvm.fabs.ftz.f(float %.0291) #135 %1152 = call float @llvm.fabs.f32(float %.0291) %.0317 = select i1 %.not269, float %1152, float %1151 %1153 = fcmp ugt float %.0317, 8.000000e+00 br i1 %1153, label %__nv_isinff.exit.i.i314, label %__internal_fmad.exit.i.i301 __internal_fmad.exit.i.i301: ; preds = %__internal_accurate_logf.exit.i299 %1154 = fadd float %.0317, 0xC0033D1520000000 %1155 = fadd float %1154, 0xBE7D2E3660000000 %1156 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not306 = icmp eq i32 %1156, 0 %1157 = call float @llvm.nvvm.fma.rn.ftz.f(float noundef 0xBCD6771CE0000000, float %1155, float noundef 0xBD35953660000000) #135 %1158 = call float @llvm.fma.f32(float %1155, float noundef 0xBCD6771CE0000000, float noundef 0xBD35953660000000) %.0318 = select i1 %.not306, float %1158, float %1157 %1159 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not307 = icmp eq i32 %1159, 0 %1160 = call float @llvm.nvvm.fma.rn.ftz.f(float %.0318, float %1155, float noundef 0x3D87E1C300000000) #135 %1161 = call float @llvm.fma.f32(float %.0318, float %1155, float noundef 0x3D87E1C300000000) %.0319 = select i1 %.not307, float %1161, float %1160 %1162 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not308 = icmp eq i32 %1162, 0 %1163 = call float @llvm.nvvm.fma.rn.ftz.f(float %.0319, float %1155, float noundef 0xBD9A82F020000000) #135 %1164 = call float @llvm.fma.f32(float %.0319, float %1155, float noundef 0xBD9A82F020000000) %.0321 = select i1 %.not308, float %1164, float %1163 %1165 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not309 = icmp eq i32 %1165, 0 %1166 = call float @llvm.nvvm.fma.rn.ftz.f(float %.0321, float %1155, float noundef 0xBDFD21E700000000) #135 %1167 = call float @llvm.fma.f32(float %.0321, float %1155, float noundef 0xBDFD21E700000000) %.0322 = select i1 %.not309, float %1167, float %1166 %1168 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not310 = icmp eq i32 %1168, 0 %1169 = call float @llvm.nvvm.fma.rn.ftz.f(float %.0322, float %1155, float noundef 0x3E04060B60000000) #135 %1170 = call float @llvm.fma.f32(float %.0322, float %1155, float noundef 0x3E04060B60000000) %.0323 = select i1 %.not310, float %1170, float %1169 %1171 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not311 = icmp eq i32 %1171, 0 %1172 = call float @llvm.nvvm.fma.rn.ftz.f(float %.0323, float %1155, float noundef 0x3E6F2E2860000000) #135 %1173 = call float @llvm.fma.f32(float %.0323, float %1155, float noundef 0x3E6F2E2860000000) %.0325 = select i1 %.not311, float %1173, float %1172 %1174 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not312 = icmp eq i32 %1174, 0 %1175 = call float @llvm.nvvm.fma.rn.ftz.f(float %.0325, float %1155, float noundef 0x3E1EEDF0A0000000) #135 %1176 = call float @llvm.fma.f32(float %.0325, float %1155, float noundef 0x3E1EEDF0A0000000) %.0326 = select i1 %.not312, float %1176, float %1175 %1177 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not313 = icmp eq i32 %1177, 0 %1178 = call float @llvm.nvvm.fma.rn.ftz.f(float %.0326, float %1155, float noundef 0xBED6DBF8C0000000) #135 %1179 = call float @llvm.fma.f32(float %.0326, float %1155, float noundef 0xBED6DBF8C0000000) %.0327 = select i1 %.not313, float %1179, float %1178 %1180 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not314 = icmp eq i32 %1180, 0 %1181 = call float @llvm.nvvm.fma.rn.ftz.f(float %.0327, float %1155, float noundef 0xBEDECCB920000000) #135 %1182 = call float @llvm.fma.f32(float %.0327, float %1155, float noundef 0xBEDECCB920000000) %.0329 = select i1 %.not314, float %1182, float %1181 %1183 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not315 = icmp eq i32 %1183, 0 %1184 = call float @llvm.nvvm.fma.rn.ftz.f(float %.0329, float %1155, float noundef 0x3F33C5BD60000000) #135 %1185 = call float @llvm.fma.f32(float %.0329, float %1155, float noundef 0x3F33C5BD60000000) %.0330 = select i1 %.not315, float %1185, float %1184 %1186 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not316 = icmp eq i32 %1186, 0 %1187 = call float @llvm.nvvm.fma.rn.ftz.f(float %.0330, float %1155, float noundef 0x3F495C6680000000) #135 %1188 = call float @llvm.fma.f32(float %.0330, float %1155, float noundef 0x3F495C6680000000) %.0331 = select i1 %.not316, float %1188, float %1187 %1189 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not317 = icmp eq i32 %1189, 0 %1190 = call float @llvm.nvvm.fma.rn.ftz.f(float %.0331, float %1155, float noundef 0xBF7DD54360000000) #135 %1191 = call float @llvm.fma.f32(float %.0331, float %1155, float noundef 0xBF7DD54360000000) %.0333 = select i1 %.not317, float %1191, float %1190 %1192 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not318 = icmp eq i32 %1192, 0 %1193 = call float @llvm.nvvm.fma.rn.ftz.f(float %.0333, float %1155, float noundef 0xBF9B4EE8E0000000) #135 %1194 = call float @llvm.fma.f32(float %.0333, float %1155, float noundef 0xBF9B4EE8E0000000) %.0334 = select i1 %.not318, float %1194, float %1193 %1195 = fmul float %1155, %.0334 %1196 = fadd float %.0317, 0xC016148F60000000 %1197 = fadd float %1196, 0x3E734F46E0000000 %1198 = fmul float %1197, %1195 %1199 = fadd float %.0317, 0xC0214EB560000000 %1200 = fadd float %1199, 0xBE9999BDA0000000 %1201 = fmul float %1200, %1198 br label %__nv_j0f.exit.i345 __nv_isinff.exit.i.i314: ; preds = %__internal_accurate_logf.exit.i299 %1202 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not270 = icmp eq i32 %1202, 0 %1203 = call float @llvm.nvvm.fabs.ftz.f(float %.0317) #135 %1204 = call float @llvm.fabs.f32(float %.0317) %.0335 = select i1 %.not270, float %1204, float %1203 %1205 = fcmp oeq float %.0335, 0x7FF0000000000000 br i1 %1205, label %__nv_j0f.exit.i345, label %__internal_fmad.exit13.i.i315 __internal_fmad.exit13.i.i315: ; preds = %__nv_isinff.exit.i.i314 %1206 = call float asm "rcp.approx.ftz.f32 $0,$1;", "=f,f"(float %.0317) #137, !srcloc !225 %1207 = fmul float %1206, %1206 %1208 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not271 = icmp eq i32 %1208, 0 %1209 = call float @llvm.nvvm.fma.rn.ftz.f(float noundef 0x400ADFD260000000, float %1207, float noundef 0xBFE076F840000000) #135 %1210 = call float @llvm.fma.f32(float %1207, float noundef 0x400ADFD260000000, float noundef 0xBFE076F840000000) %.0336 = select i1 %.not271, float %1210, float %1209 %1211 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not272 = icmp eq i32 %1211, 0 %1212 = call float @llvm.nvvm.fma.rn.ftz.f(float %.0336, float %1207, float noundef 0x3FBA767E60000000) #135 %1213 = call float @llvm.fma.f32(float %.0336, float %1207, float noundef 0x3FBA767E60000000) %.0338 = select i1 %.not272, float %1213, float %1212 %1214 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not273 = icmp eq i32 %1214, 0 %1215 = call float @llvm.nvvm.fma.rn.ftz.f(float %.0338, float %1207, float noundef 0xBFAFFFF6C0000000) #135 %1216 = call float @llvm.fma.f32(float %.0338, float %1207, float noundef 0xBFAFFFF6C0000000) %.0339 = select i1 %.not273, float %1216, float %1215 %1217 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not274 = icmp eq i32 %1217, 0 %1218 = call float @llvm.nvvm.fma.rn.ftz.f(float %.0339, float %1207, float noundef 1.000000e+00) #135 %1219 = call float @llvm.fma.f32(float %.0339, float %1207, float noundef 1.000000e+00) %.0340 = select i1 %.not274, float %1219, float %1218 %1220 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not275 = icmp eq i32 %1220, 0 %1221 = call float @llvm.nvvm.fma.rn.ftz.f(float noundef 0x3FF23C0120000000, float %1207, float noundef 0xBFCA4825A0000000) #135 %1222 = call float @llvm.fma.f32(float %1207, float noundef 0x3FF23C0120000000, float noundef 0xBFCA4825A0000000) %.0341 = select i1 %.not275, float %1222, float %1221 %1223 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not276 = icmp eq i32 %1223, 0 %1224 = call float @llvm.nvvm.fma.rn.ftz.f(float %.0341, float %1207, float noundef 0x3FB0A9DA20000000) #135 %1225 = call float @llvm.fma.f32(float %.0341, float %1207, float noundef 0x3FB0A9DA20000000) %.0342 = select i1 %.not276, float %1225, float %1224 %1226 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not277 = icmp eq i32 %1226, 0 %1227 = call float @llvm.nvvm.fma.rn.ftz.f(float %.0342, float %1207, float noundef 0xBFBFFFFFE0000000) #135 %1228 = call float @llvm.fma.f32(float %.0342, float %1207, float noundef 0xBFBFFFFFE0000000) %.0344 = select i1 %.not277, float %1228, float %1227 %1229 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not278 = icmp eq i32 %1229, 0 %1230 = call float @llvm.nvvm.fma.rn.ftz.f(float %.0344, float %1206, float %.0317) #135 %1231 = call float @llvm.fma.f32(float %.0344, float %1206, float %.0317) %.0345 = select i1 %.not278, float %1231, float %1230 %1232 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not279 = icmp eq i32 %1232, 0 br i1 %.not279, label %1235, label %1233 1233: ; preds = %__internal_fmad.exit13.i.i315 %1234 = call float @llvm.nvvm.rsqrt.approx.ftz.f(float %.0317) #135 br label %__nv_rsqrtf.exit.i.i323 1235: ; preds = %__internal_fmad.exit13.i.i315 %1236 = call float @llvm.nvvm.rsqrt.approx.f(float %.0317) #135 br label %__nv_rsqrtf.exit.i.i323 __nv_rsqrtf.exit.i.i323: ; preds = %1235, %1233 %.0346 = phi float [ %1234, %1233 ], [ %1236, %1235 ] %1237 = fmul float %.0346, 0x3FE9884540000000 %1238 = fmul float %.0340, %1237 %1239 = fmul float %.0345, 0x3FE45F3060000000 %1240 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not280 = icmp eq i32 %1240, 0 %1241 = call i32 @llvm.nvvm.f2i.rn.ftz(float %1239) #135 %1242 = call i32 @llvm.nvvm.f2i.rn(float %1239) #135 %.0347 = select i1 %.not280, i32 %1242, i32 %1241 %1243 = sitofp i32 %.0347 to float %1244 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not281 = icmp eq i32 %1244, 0 %1245 = call float @llvm.nvvm.fma.rn.ftz.f(float %1243, float noundef 0xBFF921FB40000000, float %.0345) #135 %1246 = call float @llvm.fma.f32(float %1243, float noundef 0xBFF921FB40000000, float %.0345) %.0348 = select i1 %.not281, float %1246, float %1245 %1247 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not282 = icmp eq i32 %1247, 0 %1248 = call float @llvm.nvvm.fma.rn.ftz.f(float %1243, float noundef 0xBE74442D00000000, float %.0348) #135 %1249 = call float @llvm.fma.f32(float %1243, float noundef 0xBE74442D00000000, float %.0348) %.0349 = select i1 %.not282, float %1249, float %1248 %1250 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not283 = icmp eq i32 %1250, 0 %1251 = call float @llvm.nvvm.fma.rn.ftz.f(float %1243, float noundef 0xBCF84698A0000000, float %.0349) #135 %1252 = call float @llvm.fma.f32(float %1243, float noundef 0xBCF84698A0000000, float %.0349) %.0351 = select i1 %.not283, float %1252, float %1251 %1253 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not284 = icmp eq i32 %1253, 0 %1254 = call float @llvm.nvvm.fabs.ftz.f(float %.0345) #135 %1255 = call float @llvm.fabs.f32(float %.0345) %.0352 = select i1 %.not284, float %1255, float %1254 %1256 = fcmp ult float %.0352, 1.056150e+05 br i1 %1256, label %__internal_trig_reduction_kernel.exit.i.i.i332, label %__nv_isinff.exit.i.i.i.i329 __nv_isinff.exit.i.i.i.i329: ; preds = %__nv_rsqrtf.exit.i.i323 %1257 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not299 = icmp eq i32 %1257, 0 %.0353 = select i1 %.not299, float %1255, float %1254 %1258 = fcmp oeq float %.0353, 0x7FF0000000000000 br i1 %1258, label %__nv_fmul_rn.exit.i.i.i.i330, label %1262 __nv_fmul_rn.exit.i.i.i.i330: ; preds = %__nv_isinff.exit.i.i.i.i329 %1259 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not305 = icmp eq i32 %1259, 0 %1260 = call float @llvm.nvvm.mul.rn.ftz.f(float %.0345, float noundef 0.000000e+00) #135 %1261 = fmul float %.0345, 0.000000e+00 %.0354 = select i1 %.not305, float %1261, float %1260 br label %__internal_trig_reduction_kernel.exit.i.i.i332 1262: ; preds = %__nv_isinff.exit.i.i.i.i329 %1263 = bitcast float %.0345 to i32 %1264 = lshr i32 %1263, 23 %1265 = and i32 %1264, 255 %1266 = shl i32 %1263, 8 %1267 = or i32 %1266, -2147483648 br label %1268 1268: ; preds = %1262, %1268 %iq.i.i.i.i.i240.0537 = phi i32 [ 0, %1262 ], [ %1275, %1268 ] %hi.i.i.i.i.i235.0536 = phi i32 [ 0, %1262 ], [ %1273, %1268 ] %1269 = getelementptr inbounds [6 x i32], [6 x i32] addrspace(1)* @__cudart_i2opi_f, i32 0, i32 %iq.i.i.i.i.i240.0537 %1270 = load i32, i32 addrspace(1)* %1269, align 4 %1271 = call { i32, i32 } asm "{\0A\09mad.lo.cc.u32 $0, $2, $3, $4;\0A\09madc.hi.u32 $1, $2, $3, 0;\0A\09}", "=r,=r,r,r,r"(i32 %1270, i32 %1267, i32 %hi.i.i.i.i.i235.0536) #137, !srcloc !222 %1272 = extractvalue { i32, i32 } %1271, 0 %1273 = extractvalue { i32, i32 } %1271, 1 %1274 = getelementptr inbounds [7 x i32], [7 x i32]* %result.i.i.i.i.i, i32 0, i32 %iq.i.i.i.i.i240.0537 store i32 %1272, i32* %1274, align 4, !noalias !219 %1275 = add nuw nsw i32 %iq.i.i.i.i.i240.0537, 1 %exitcond573.not = icmp eq i32 %1275, 6 br i1 %exitcond573.not, label %1276, label %1268, !llvm.loop !223 1276: ; preds = %1268 %1277 = add nsw i32 %1265, -128 %1278 = lshr i32 %1277, 5 %1279 = and i32 %1263, -2147483648 %1280 = getelementptr inbounds [7 x i32], [7 x i32]* %result.i.i.i.i.i, i32 0, i32 6 store i32 %1273, i32* %1280, align 4, !noalias !219 %1281 = and i32 %1264, 31 %1282 = sub nsw i32 6, %1278 %1283 = getelementptr inbounds [7 x i32], [7 x i32]* %result.i.i.i.i.i, i32 0, i32 %1282 %1284 = load i32, i32* %1283, align 4 %1285 = sub nsw i32 5, %1278 %1286 = getelementptr inbounds [7 x i32], [7 x i32]* %result.i.i.i.i.i, i32 0, i32 %1285 %1287 = load i32, i32* %1286, align 4 %.not300 = icmp eq i32 %1281, 0 br i1 %.not300, label %__internal_trig_reduction_slowpath.exit.i.i.i.i331, label %1288 1288: ; preds = %1276 %1289 = sub nsw i32 4, %1278 %1290 = sub nuw nsw i32 32, %1281 %1291 = shl i32 %1284, %1281 %1292 = lshr i32 %1287, %1290 %1293 = add i32 %1292, %1291 %1294 = shl i32 %1287, %1281 %1295 = getelementptr inbounds [7 x i32], [7 x i32]* %result.i.i.i.i.i, i32 0, i32 %1289 %1296 = load i32, i32* %1295, align 4 %1297 = lshr i32 %1296, %1290 %1298 = add i32 %1297, %1294 br label %__internal_trig_reduction_slowpath.exit.i.i.i.i331 __internal_trig_reduction_slowpath.exit.i.i.i.i331: ; preds = %1288, %1276 %hi.i.i.i.i.i235.1 = phi i32 [ %1293, %1288 ], [ %1284, %1276 ] %lo.i.i.i.i.i236.0 = phi i32 [ %1298, %1288 ], [ %1287, %1276 ] %1299 = lshr i32 %hi.i.i.i.i.i235.1, 30 %1300 = call i32 @llvm.fshl.i32(i32 %hi.i.i.i.i.i235.1, i32 %lo.i.i.i.i.i236.0, i32 noundef 2) %1301 = shl i32 %lo.i.i.i.i.i236.0, 2 %1302 = lshr i32 %1300, 31 %1303 = add nuw nsw i32 %1302, %1299 %.not301 = icmp eq i32 %1279, 0 %1304 = sub nsw i32 0, %1303 %spec.select4 = select i1 %.not301, i32 %1303, i32 %1304 %.not302 = icmp sgt i32 %1300, -1 %1305 = xor i32 %1279, -2147483648 %s.i.i.i.i.i233.0 = select i1 %.not302, i32 %1279, i32 %1305 %not..not302 = xor i1 %.not302, true %1306 = sext i1 %not..not302 to i32 %hi.i.i.i.i.i235.2 = xor i32 %1300, %1306 %lo.i.i.i.i.i236.1 = xor i32 %1301, %1306 %1307 = zext i32 %hi.i.i.i.i.i235.2 to i64 %1308 = shl nuw i64 %1307, 32 %1309 = zext i32 %lo.i.i.i.i.i236.1 to i64 %1310 = or i64 %1308, %1309 %1311 = sitofp i64 %1310 to double %1312 = fmul double %1311, 0x3BF921FB54442D19 %1313 = fptrunc double %1312 to float %.not304 = icmp eq i32 %s.i.i.i.i.i233.0, 0 %1314 = fneg float %1313 %r.i.i.i.i.i244.0 = select i1 %.not304, float %1313, float %1314 br label %__internal_trig_reduction_kernel.exit.i.i.i332 __internal_trig_reduction_kernel.exit.i.i.i332: ; preds = %__nv_fmul_rn.exit.i.i.i.i330, %__internal_trig_reduction_slowpath.exit.i.i.i.i331, %__nv_rsqrtf.exit.i.i323 %i.i.i.i250.1 = phi i32 [ %.0347, %__nv_rsqrtf.exit.i.i323 ], [ 0, %__nv_fmul_rn.exit.i.i.i.i330 ], [ %spec.select4, %__internal_trig_reduction_slowpath.exit.i.i.i.i331 ] %t.i.i.i.i247.1 = phi float [ %.0351, %__nv_rsqrtf.exit.i.i323 ], [ %.0354, %__nv_fmul_rn.exit.i.i.i.i330 ], [ %r.i.i.i.i.i244.0, %__internal_trig_reduction_slowpath.exit.i.i.i.i331 ] %1315 = and i32 %i.i.i.i250.1, 3 %1316 = uitofp i32 %1315 to float %1317 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not285 = icmp eq i32 %1317, 0 %1318 = call float @llvm.nvvm.fma.rn.ftz.f(float %1316, float noundef 0x3FF921FB60000000, float noundef 0xBFE921FB60000000) #135 %1319 = call float @llvm.fma.f32(float %1316, float noundef 0x3FF921FB60000000, float noundef 0xBFE921FB60000000) %.0356 = select i1 %.not285, float %1319, float %1318 %1320 = fadd float %t.i.i.i.i247.1, %.0356 %1321 = fmul float %1320, 0x3FE45F3060000000 %1322 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not286 = icmp eq i32 %1322, 0 %1323 = call i32 @llvm.nvvm.f2i.rn.ftz(float %1321) #135 %1324 = call i32 @llvm.nvvm.f2i.rn(float %1321) #135 %.0357 = select i1 %.not286, i32 %1324, i32 %1323 %1325 = sitofp i32 %.0357 to float %1326 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not287 = icmp eq i32 %1326, 0 %1327 = call float @llvm.nvvm.fma.rn.ftz.f(float %1325, float noundef 0xBFF921FB40000000, float %1320) #135 %1328 = call float @llvm.fma.f32(float %1325, float noundef 0xBFF921FB40000000, float %1320) %.0358 = select i1 %.not287, float %1328, float %1327 %1329 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not288 = icmp eq i32 %1329, 0 %1330 = call float @llvm.nvvm.fma.rn.ftz.f(float %1325, float noundef 0xBE74442D00000000, float %.0358) #135 %1331 = call float @llvm.fma.f32(float %1325, float noundef 0xBE74442D00000000, float %.0358) %.0359 = select i1 %.not288, float %1331, float %1330 %1332 = add i32 %.0357, 1 %1333 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not289 = icmp eq i32 %1333, 0 %1334 = call float @llvm.nvvm.mul.rn.ftz.f(float %.0359, float %.0359) #135 %1335 = fmul float %.0359, %.0359 %.0361 = select i1 %.not289, float %1335, float %1334 %1336 = and i32 %1332, 1 %.not290 = icmp eq i32 %1336, 0 %1337 = select i1 %.not290, float %.0359, float 1.000000e+00 %1338 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not291 = icmp eq i32 %1338, 0 %1339 = call float @llvm.nvvm.fma.rn.ftz.f(float %.0361, float %1337, float noundef 0.000000e+00) #135 %1340 = call float @llvm.fma.f32(float %.0361, float %1337, float noundef 0.000000e+00) %.0362 = select i1 %.not291, float %1340, float %1339 br i1 %.not290, label %__internal_fmad.exit2.i.i.i.i340, label %__internal_fmad.exit1.i.i.i.i339 __internal_fmad.exit1.i.i.i.i339: ; preds = %__internal_trig_reduction_kernel.exit.i.i.i332 %1341 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not298 = icmp eq i32 %1341, 0 %1342 = call float @llvm.nvvm.fma.rn.ftz.f(float noundef 0x3EF9758000000000, float %.0361, float noundef 0xBF56C0FDA0000000) #135 %1343 = call float @llvm.fma.f32(float %.0361, float noundef 0x3EF9758000000000, float noundef 0xBF56C0FDA0000000) %.0363 = select i1 %.not298, float %1343, float %1342 br label %__internal_fmad.exit2.i.i.i.i340 __internal_fmad.exit2.i.i.i.i340: ; preds = %__internal_trig_reduction_kernel.exit.i.i.i332, %__internal_fmad.exit1.i.i.i.i339 %1344 = phi float [ 0xBFC5555500000000, %__internal_trig_reduction_kernel.exit.i.i.i332 ], [ 0xBFDFFFFFE0000000, %__internal_fmad.exit1.i.i.i.i339 ] %1345 = phi float [ 0x3F8110BC80000000, %__internal_trig_reduction_kernel.exit.i.i.i332 ], [ 0x3FA5555760000000, %__internal_fmad.exit1.i.i.i.i339 ] %1346 = phi float [ 0xBF29A82A60000000, %__internal_trig_reduction_kernel.exit.i.i.i332 ], [ %.0363, %__internal_fmad.exit1.i.i.i.i339 ] %1347 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not292 = icmp eq i32 %1347, 0 %1348 = call float @llvm.nvvm.fma.rn.ftz.f(float %1346, float %.0361, float noundef %1345) #135 %1349 = call float @llvm.fma.f32(float %1346, float %.0361, float noundef %1345) %.0364 = select i1 %.not292, float %1349, float %1348 %1350 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not293 = icmp eq i32 %1350, 0 %1351 = call float @llvm.nvvm.fma.rn.ftz.f(float %.0364, float %.0361, float noundef %1344) #135 %1352 = call float @llvm.fma.f32(float %.0364, float %.0361, float noundef %1344) %.0365 = select i1 %.not293, float %1352, float %1351 %1353 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not294 = icmp eq i32 %1353, 0 %1354 = call float @llvm.nvvm.fma.rn.ftz.f(float %.0365, float %.0362, float %1337) #135 %1355 = call float @llvm.fma.f32(float %.0365, float %.0362, float %1337) %.0367 = select i1 %.not294, float %1355, float %1354 %1356 = and i32 %1332, 2 %.not295 = icmp eq i32 %1356, 0 br i1 %.not295, label %__internal_cos_offset_f.exit.i.i344, label %__internal_fmad.exit5.i.i.i.i343 __internal_fmad.exit5.i.i.i.i343: ; preds = %__internal_fmad.exit2.i.i.i.i340 %1357 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not297 = icmp eq i32 %1357, 0 %1358 = call float @llvm.nvvm.fma.rn.ftz.f(float %.0367, float noundef -1.000000e+00, float noundef 0.000000e+00) #135 %1359 = call float @llvm.fma.f32(float %.0367, float noundef -1.000000e+00, float noundef 0.000000e+00) %.0368 = select i1 %.not297, float %1359, float %1358 br label %__internal_cos_offset_f.exit.i.i344 __internal_cos_offset_f.exit.i.i344: ; preds = %__internal_fmad.exit5.i.i.i.i343, %__internal_fmad.exit2.i.i.i.i340 %z.i.i.i.i226.0 = phi float [ %.0368, %__internal_fmad.exit5.i.i.i.i343 ], [ %.0367, %__internal_fmad.exit2.i.i.i.i340 ] %1360 = fmul float %1238, %z.i.i.i.i226.0 br label %__nv_j0f.exit.i345 __nv_j0f.exit.i345: ; preds = %__internal_cos_offset_f.exit.i.i344, %__nv_isinff.exit.i.i314, %__internal_fmad.exit.i.i301 %r.i5.i256.1 = phi float [ %1201, %__internal_fmad.exit.i.i301 ], [ %1360, %__internal_cos_offset_f.exit.i.i344 ], [ 0.000000e+00, %__nv_isinff.exit.i.i314 ] %1361 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not296 = icmp eq i32 %1361, 0 %1362 = call float @llvm.nvvm.fma.rn.ftz.f(float %1149, float %r.i5.i256.1, float %.0297) #135 %1363 = call float @llvm.fma.f32(float %1149, float %r.i5.i256.1, float %.0297) %.0369 = select i1 %.not296, float %1363, float %1362 br label %__nv_y0f.exit406 1364: ; preds = %__nv_fabsf.exit.i281 %1365 = fcmp ugt float %.0291, 0x3FFECF5F00000000 br i1 %1365, label %1405, label %__internal_fmad.exit9.i347 __internal_fmad.exit9.i347: ; preds = %1364 %1366 = fadd float %.0291, 0xBFEC982EC0000000 %1367 = fadd float %1366, 0x3E4CAFA060000000 %1368 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not241 = icmp eq i32 %1368, 0 %1369 = call float @llvm.nvvm.fma.rn.ftz.f(float noundef 0x3F9BB91660000000, float %1367, float noundef 0xBFC04AE980000000) #135 %1370 = call float @llvm.fma.f32(float %1367, float noundef 0x3F9BB91660000000, float noundef 0xBFC04AE980000000) %.0370 = select i1 %.not241, float %1370, float %1369 %1371 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not242 = icmp eq i32 %1371, 0 %1372 = call float @llvm.nvvm.fma.rn.ftz.f(float %.0370, float %1367, float noundef 0x3FCFE59920000000) #135 %1373 = call float @llvm.fma.f32(float %.0370, float %1367, float noundef 0x3FCFE59920000000) %.0371 = select i1 %.not242, float %1373, float %1372 %1374 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not243 = icmp eq i32 %1374, 0 %1375 = call float @llvm.nvvm.fma.rn.ftz.f(float %.0371, float %1367, float noundef 0xBFD17E5360000000) #135 %1376 = call float @llvm.fma.f32(float %.0371, float %1367, float noundef 0xBFD17E5360000000) %.0372 = select i1 %.not243, float %1376, float %1375 %1377 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not244 = icmp eq i32 %1377, 0 %1378 = call float @llvm.nvvm.fma.rn.ftz.f(float %.0372, float %1367, float noundef 0x3FCB79D260000000) #135 %1379 = call float @llvm.fma.f32(float %.0372, float %1367, float noundef 0x3FCB79D260000000) %.0374 = select i1 %.not244, float %1379, float %1378 %1380 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not245 = icmp eq i32 %1380, 0 %1381 = call float @llvm.nvvm.fma.rn.ftz.f(float %.0374, float %1367, float noundef 0xBFC7189FE0000000) #135 %1382 = call float @llvm.fma.f32(float %.0374, float %1367, float noundef 0xBFC7189FE0000000) %.0375 = select i1 %.not245, float %1382, float %1381 %1383 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not246 = icmp eq i32 %1383, 0 %1384 = call float @llvm.nvvm.fma.rn.ftz.f(float %.0375, float %1367, float noundef 0x3FC84EE9A0000000) #135 %1385 = call float @llvm.fma.f32(float %.0375, float %1367, float noundef 0x3FC84EE9A0000000) %.0376 = select i1 %.not246, float %1385, float %1384 %1386 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not247 = icmp eq i32 %1386, 0 %1387 = call float @llvm.nvvm.fma.rn.ftz.f(float %.0376, float %1367, float noundef 0xBFCA4B9640000000) #135 %1388 = call float @llvm.fma.f32(float %.0376, float %1367, float noundef 0xBFCA4B9640000000) %.0377 = select i1 %.not247, float %1388, float %1387 %1389 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not248 = icmp eq i32 %1389, 0 %1390 = call float @llvm.nvvm.fma.rn.ftz.f(float %.0377, float %1367, float noundef 0x3FCC1E87A0000000) #135 %1391 = call float @llvm.fma.f32(float %.0377, float %1367, float noundef 0x3FCC1E87A0000000) %.0378 = select i1 %.not248, float %1391, float %1390 %1392 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not249 = icmp eq i32 %1392, 0 %1393 = call float @llvm.nvvm.fma.rn.ftz.f(float %.0378, float %1367, float noundef 0xBFCCF228A0000000) #135 %1394 = call float @llvm.fma.f32(float %.0378, float %1367, float noundef 0xBFCCF228A0000000) %.0379 = select i1 %.not249, float %1394, float %1393 %1395 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not250 = icmp eq i32 %1395, 0 %1396 = call float @llvm.nvvm.fma.rn.ftz.f(float %.0379, float %1367, float noundef 0x3FCC3A4940000000) #135 %1397 = call float @llvm.fma.f32(float %.0379, float %1367, float noundef 0x3FCC3A4940000000) %.0381 = select i1 %.not250, float %1397, float %1396 %1398 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not251 = icmp eq i32 %1398, 0 %1399 = call float @llvm.nvvm.fma.rn.ftz.f(float %.0381, float %1367, float noundef 0xBFDF7E35A0000000) #135 %1400 = call float @llvm.fma.f32(float %.0381, float %1367, float noundef 0xBFDF7E35A0000000) %.0382 = select i1 %.not251, float %1400, float %1399 %1401 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not252 = icmp eq i32 %1401, 0 %1402 = call float @llvm.nvvm.fma.rn.ftz.f(float %.0382, float %1367, float noundef 0x3FEC243760000000) #135 %1403 = call float @llvm.fma.f32(float %.0382, float %1367, float noundef 0x3FEC243760000000) %.0383 = select i1 %.not252, float %1403, float %1402 %1404 = fmul float %1367, %.0383 br label %__nv_y0f.exit406 1405: ; preds = %1364 %1406 = fcmp ugt float %.0291, 0x40161663C0000000 br i1 %1406, label %1437, label %__internal_fmad.exit33.i359 __internal_fmad.exit33.i359: ; preds = %1405 %1407 = fadd float %.0291, 0xC00FA95340000000 %1408 = fadd float %1407, 0xBE7B30AD40000000 %1409 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not232 = icmp eq i32 %1409, 0 %1410 = call float @llvm.nvvm.fma.rn.ftz.f(float noundef 0xBE893BA7E0000000, float %1408, float noundef 0xBE8BC4C0E0000000) #135 %1411 = call float @llvm.fma.f32(float %1408, float noundef 0xBE893BA7E0000000, float noundef 0xBE8BC4C0E0000000) %.0384 = select i1 %.not232, float %1411, float %1410 %1412 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not233 = icmp eq i32 %1412, 0 %1413 = call float @llvm.nvvm.fma.rn.ftz.f(float %.0384, float %1408, float noundef 0xBED0AE0C80000000) #135 %1414 = call float @llvm.fma.f32(float %.0384, float %1408, float noundef 0xBED0AE0C80000000) %.0385 = select i1 %.not233, float %1414, float %1413 %1415 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not234 = icmp eq i32 %1415, 0 %1416 = call float @llvm.nvvm.fma.rn.ftz.f(float %.0385, float %1408, float noundef 0x3F0AA8C200000000) #135 %1417 = call float @llvm.fma.f32(float %.0385, float %1408, float noundef 0x3F0AA8C200000000) %.0386 = select i1 %.not234, float %1417, float %1416 %1418 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not235 = icmp eq i32 %1418, 0 %1419 = call float @llvm.nvvm.fma.rn.ftz.f(float %.0386, float %1408, float noundef 0x3F2959DAE0000000) #135 %1420 = call float @llvm.fma.f32(float %.0386, float %1408, float noundef 0x3F2959DAE0000000) %.0388 = select i1 %.not235, float %1420, float %1419 %1421 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not236 = icmp eq i32 %1421, 0 %1422 = call float @llvm.nvvm.fma.rn.ftz.f(float %.0388, float %1408, float noundef 0xBF61E34180000000) #135 %1423 = call float @llvm.fma.f32(float %.0388, float %1408, float noundef 0xBF61E34180000000) %.0389 = select i1 %.not236, float %1423, float %1422 %1424 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not237 = icmp eq i32 %1424, 0 %1425 = call float @llvm.nvvm.fma.rn.ftz.f(float %.0389, float %1408, float noundef 0xBF7C0FE5C0000000) #135 %1426 = call float @llvm.fma.f32(float %.0389, float %1408, float noundef 0xBF7C0FE5C0000000) %.0390 = select i1 %.not237, float %1426, float %1425 %1427 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not238 = icmp eq i32 %1427, 0 %1428 = call float @llvm.nvvm.fma.rn.ftz.f(float %.0390, float %1408, float noundef 0x3FADF6D6A0000000) #135 %1429 = call float @llvm.fma.f32(float %.0390, float %1408, float noundef 0x3FADF6D6A0000000) %.0391 = select i1 %.not238, float %1429, float %1428 %1430 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not239 = icmp eq i32 %1430, 0 %1431 = call float @llvm.nvvm.fma.rn.ftz.f(float %.0391, float %1408, float noundef 0x3FAA09BE20000000) #135 %1432 = call float @llvm.fma.f32(float %.0391, float %1408, float noundef 0x3FAA09BE20000000) %.0392 = select i1 %.not239, float %1432, float %1431 %1433 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not240 = icmp eq i32 %1433, 0 %1434 = call float @llvm.nvvm.fma.rn.ftz.f(float %.0392, float %1408, float noundef 0xBFD9C34260000000) #135 %1435 = call float @llvm.fma.f32(float %.0392, float %1408, float noundef 0xBFD9C34260000000) %.0393 = select i1 %.not240, float %1435, float %1434 %1436 = fmul float %1408, %.0393 br label %__nv_y0f.exit406 1437: ; preds = %1405 %1438 = fcmp ugt float %.0291, 0x40214EF300000000 br i1 %1438, label %__nv_isinff.exit.i376, label %__internal_fmad.exit51.i368 __internal_fmad.exit51.i368: ; preds = %1437 %1439 = fadd float %.0291, 0xC01C581DC0000000 %1440 = fadd float %1439, 0xBE739C8400000000 %1441 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not224 = icmp eq i32 %1441, 0 %1442 = call float @llvm.nvvm.fma.rn.ftz.f(float noundef 0x3EA219D7C0000000, float %1440, float noundef 0x3EC53B4D80000000) #135 %1443 = call float @llvm.fma.f32(float %1440, float noundef 0x3EA219D7C0000000, float noundef 0x3EC53B4D80000000) %.0395 = select i1 %.not224, float %1443, float %1442 %1444 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not225 = icmp eq i32 %1444, 0 %1445 = call float @llvm.nvvm.fma.rn.ftz.f(float %.0395, float %1440, float noundef 0xBF080A9800000000) #135 %1446 = call float @llvm.fma.f32(float %.0395, float %1440, float noundef 0xBF080A9800000000) %.0396 = select i1 %.not225, float %1446, float %1445 %1447 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not226 = icmp eq i32 %1447, 0 %1448 = call float @llvm.nvvm.fma.rn.ftz.f(float %.0396, float %1440, float noundef 0xBF22631560000000) #135 %1449 = call float @llvm.fma.f32(float %.0396, float %1440, float noundef 0xBF22631560000000) %.0397 = select i1 %.not226, float %1449, float %1448 %1450 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not227 = icmp eq i32 %1450, 0 %1451 = call float @llvm.nvvm.fma.rn.ftz.f(float %.0397, float %1440, float noundef 0x3F61D32420000000) #135 %1452 = call float @llvm.fma.f32(float %.0397, float %1440, float noundef 0x3F61D32420000000) %.0398 = select i1 %.not227, float %1452, float %1451 %1453 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not228 = icmp eq i32 %1453, 0 %1454 = call float @llvm.nvvm.fma.rn.ftz.f(float %.0398, float %1440, float noundef 0x3F6B2E9AA0000000) #135 %1455 = call float @llvm.fma.f32(float %.0398, float %1440, float noundef 0x3F6B2E9AA0000000) %.0399 = select i1 %.not228, float %1455, float %1454 %1456 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not229 = icmp eq i32 %1456, 0 %1457 = call float @llvm.nvvm.fma.rn.ftz.f(float %.0399, float %1440, float noundef 0xBFA8969AE0000000) #135 %1458 = call float @llvm.fma.f32(float %.0399, float %1440, float noundef 0xBFA8969AE0000000) %.0400 = select i1 %.not229, float %1458, float %1457 %1459 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not230 = icmp eq i32 %1459, 0 %1460 = call float @llvm.nvvm.fma.rn.ftz.f(float %.0400, float %1440, float noundef 0xBF95AEF320000000) #135 %1461 = call float @llvm.fma.f32(float %.0400, float %1440, float noundef 0xBF95AEF320000000) %.0402 = select i1 %.not230, float %1461, float %1460 %1462 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not231 = icmp eq i32 %1462, 0 %1463 = call float @llvm.nvvm.fma.rn.ftz.f(float %.0402, float %1440, float noundef 0x3FD334CCA0000000) #135 %1464 = call float @llvm.fma.f32(float %.0402, float %1440, float noundef 0x3FD334CCA0000000) %.0403 = select i1 %.not231, float %1464, float %1463 %1465 = fmul float %1440, %.0403 br label %__nv_y0f.exit406 __nv_isinff.exit.i376: ; preds = %1437 %1466 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not190 = icmp eq i32 %1466, 0 %1467 = call float @llvm.nvvm.fabs.ftz.f(float %.0291) #135 %1468 = call float @llvm.fabs.f32(float %.0291) %.0404 = select i1 %.not190, float %1468, float %1467 %1469 = fcmp oeq float %.0404, 0x7FF0000000000000 br i1 %1469, label %__nv_y0f.exit406, label %__internal_fmad.exit70.i377 __internal_fmad.exit70.i377: ; preds = %__nv_isinff.exit.i376 %1470 = call float asm "rcp.approx.ftz.f32 $0,$1;", "=f,f"(float %.0291) #137, !srcloc !225 %1471 = fmul float %1470, %1470 %1472 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not191 = icmp eq i32 %1472, 0 %1473 = call float @llvm.nvvm.fma.rn.ftz.f(float noundef 0xBFD98D3E60000000, float %1471, float noundef 0x3FBA1ABE00000000) #135 %1474 = call float @llvm.fma.f32(float %1471, float noundef 0xBFD98D3E60000000, float noundef 0x3FBA1ABE00000000) %.0405 = select i1 %.not191, float %1474, float %1473 %1475 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not192 = icmp eq i32 %1475, 0 %1476 = call float @llvm.nvvm.fma.rn.ftz.f(float %.0405, float %1471, float noundef 0xBFAFFF0AA0000000) #135 %1477 = call float @llvm.fma.f32(float %.0405, float %1471, float noundef 0xBFAFFF0AA0000000) %.0406 = select i1 %.not192, float %1477, float %1476 %1478 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not193 = icmp eq i32 %1478, 0 %1479 = call float @llvm.nvvm.fma.rn.ftz.f(float %.0406, float %1471, float noundef 1.000000e+00) #135 %1480 = call float @llvm.fma.f32(float %.0406, float %1471, float noundef 1.000000e+00) %.0407 = select i1 %.not193, float %1480, float %1479 %1481 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not194 = icmp eq i32 %1481, 0 %1482 = call float @llvm.nvvm.fma.rn.ftz.f(float noundef 0x3FF199AC20000000, float %1471, float noundef 0xBFCA1A6380000000) #135 %1483 = call float @llvm.fma.f32(float %1471, float noundef 0x3FF199AC20000000, float noundef 0xBFCA1A6380000000) %.0408 = select i1 %.not194, float %1483, float %1482 %1484 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not195 = icmp eq i32 %1484, 0 %1485 = call float @llvm.nvvm.fma.rn.ftz.f(float %.0408, float %1471, float noundef 0x3FB0A8F060000000) #135 %1486 = call float @llvm.fma.f32(float %.0408, float %1471, float noundef 0x3FB0A8F060000000) %.0409 = select i1 %.not195, float %1486, float %1485 %1487 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not196 = icmp eq i32 %1487, 0 %1488 = call float @llvm.nvvm.fma.rn.ftz.f(float %.0409, float %1471, float noundef 0xBFBFFFFF60000000) #135 %1489 = call float @llvm.fma.f32(float %.0409, float %1471, float noundef 0xBFBFFFFF60000000) %.0411 = select i1 %.not196, float %1489, float %1488 %1490 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not197 = icmp eq i32 %1490, 0 %1491 = call float @llvm.nvvm.fma.rn.ftz.f(float %.0411, float %1470, float %.0291) #135 %1492 = call float @llvm.fma.f32(float %.0411, float %1470, float %.0291) %.0412 = select i1 %.not197, float %1492, float %1491 %1493 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not198 = icmp eq i32 %1493, 0 br i1 %.not198, label %1496, label %1494 1494: ; preds = %__internal_fmad.exit70.i377 %1495 = call float @llvm.nvvm.rsqrt.approx.ftz.f(float %.0291) #135 br label %__nv_rsqrtf.exit.i384 1496: ; preds = %__internal_fmad.exit70.i377 %1497 = call float @llvm.nvvm.rsqrt.approx.f(float %.0291) #135 br label %__nv_rsqrtf.exit.i384 __nv_rsqrtf.exit.i384: ; preds = %1496, %1494 %.0413 = phi float [ %1495, %1494 ], [ %1497, %1496 ] %1498 = fmul float %.0413, 0x3FE9884540000000 %1499 = fmul float %.0407, %1498 %1500 = fmul float %.0412, 0x3FE45F3060000000 %1501 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not199 = icmp eq i32 %1501, 0 %1502 = call i32 @llvm.nvvm.f2i.rn.ftz(float %1500) #135 %1503 = call i32 @llvm.nvvm.f2i.rn(float %1500) #135 %.0417 = select i1 %.not199, i32 %1503, i32 %1502 %1504 = sitofp i32 %.0417 to float %1505 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not200 = icmp eq i32 %1505, 0 %1506 = call float @llvm.nvvm.fma.rn.ftz.f(float %1504, float noundef 0xBFF921FB40000000, float %.0412) #135 %1507 = call float @llvm.fma.f32(float %1504, float noundef 0xBFF921FB40000000, float %.0412) %.0418 = select i1 %.not200, float %1507, float %1506 %1508 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not201 = icmp eq i32 %1508, 0 %1509 = call float @llvm.nvvm.fma.rn.ftz.f(float %1504, float noundef 0xBE74442D00000000, float %.0418) #135 %1510 = call float @llvm.fma.f32(float %1504, float noundef 0xBE74442D00000000, float %.0418) %.0419 = select i1 %.not201, float %1510, float %1509 %1511 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not202 = icmp eq i32 %1511, 0 %1512 = call float @llvm.nvvm.fma.rn.ftz.f(float %1504, float noundef 0xBCF84698A0000000, float %.0419) #135 %1513 = call float @llvm.fma.f32(float %1504, float noundef 0xBCF84698A0000000, float %.0419) %.0420 = select i1 %.not202, float %1513, float %1512 %1514 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not203 = icmp eq i32 %1514, 0 %1515 = call float @llvm.nvvm.fabs.ftz.f(float %.0412) #135 %1516 = call float @llvm.fabs.f32(float %.0412) %.0421 = select i1 %.not203, float %1516, float %1515 %1517 = fcmp ult float %.0421, 1.056150e+05 br i1 %1517, label %__internal_trig_reduction_kernel.exit.i.i393, label %__nv_isinff.exit.i.i.i390 __nv_isinff.exit.i.i.i390: ; preds = %__nv_rsqrtf.exit.i384 %1518 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not217 = icmp eq i32 %1518, 0 %.0422 = select i1 %.not217, float %1516, float %1515 %1519 = fcmp oeq float %.0422, 0x7FF0000000000000 br i1 %1519, label %__nv_fmul_rn.exit.i.i.i391, label %1523 __nv_fmul_rn.exit.i.i.i391: ; preds = %__nv_isinff.exit.i.i.i390 %1520 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not223 = icmp eq i32 %1520, 0 %1521 = call float @llvm.nvvm.mul.rn.ftz.f(float %.0412, float noundef 0.000000e+00) #135 %1522 = fmul float %.0412, 0.000000e+00 %.0423 = select i1 %.not223, float %1522, float %1521 br label %__internal_trig_reduction_kernel.exit.i.i393 1523: ; preds = %__nv_isinff.exit.i.i.i390 %1524 = bitcast float %.0412 to i32 %1525 = lshr i32 %1524, 23 %1526 = and i32 %1525, 255 %1527 = shl i32 %1524, 8 %1528 = or i32 %1527, -2147483648 br label %1529 1529: ; preds = %1523, %1529 %iq.i.i.i.i210.0535 = phi i32 [ 0, %1523 ], [ %1536, %1529 ] %hi.i.i.i.i205.0534 = phi i32 [ 0, %1523 ], [ %1534, %1529 ] %1530 = getelementptr inbounds [6 x i32], [6 x i32] addrspace(1)* @__cudart_i2opi_f, i32 0, i32 %iq.i.i.i.i210.0535 %1531 = load i32, i32 addrspace(1)* %1530, align 4 %1532 = call { i32, i32 } asm "{\0A\09mad.lo.cc.u32 $0, $2, $3, $4;\0A\09madc.hi.u32 $1, $2, $3, 0;\0A\09}", "=r,=r,r,r,r"(i32 %1531, i32 %1528, i32 %hi.i.i.i.i205.0534) #137, !srcloc !222 %1533 = extractvalue { i32, i32 } %1532, 0 %1534 = extractvalue { i32, i32 } %1532, 1 %1535 = getelementptr inbounds [7 x i32], [7 x i32]* %result.i.i.i.i.i, i32 0, i32 %iq.i.i.i.i210.0535 store i32 %1533, i32* %1535, align 4, !noalias !219 %1536 = add nuw nsw i32 %iq.i.i.i.i210.0535, 1 %exitcond.not = icmp eq i32 %1536, 6 br i1 %exitcond.not, label %1537, label %1529, !llvm.loop !223 1537: ; preds = %1529 %1538 = add nsw i32 %1526, -128 %1539 = lshr i32 %1538, 5 %1540 = and i32 %1524, -2147483648 %1541 = getelementptr inbounds [7 x i32], [7 x i32]* %result.i.i.i.i.i, i32 0, i32 6 store i32 %1534, i32* %1541, align 4, !noalias !219 %1542 = and i32 %1525, 31 %1543 = sub nsw i32 6, %1539 %1544 = getelementptr inbounds [7 x i32], [7 x i32]* %result.i.i.i.i.i, i32 0, i32 %1543 %1545 = load i32, i32* %1544, align 4 %1546 = sub nsw i32 5, %1539 %1547 = getelementptr inbounds [7 x i32], [7 x i32]* %result.i.i.i.i.i, i32 0, i32 %1546 %1548 = load i32, i32* %1547, align 4 %.not218 = icmp eq i32 %1542, 0 br i1 %.not218, label %__internal_trig_reduction_slowpath.exit.i.i.i392, label %1549 1549: ; preds = %1537 %1550 = sub nsw i32 4, %1539 %1551 = sub nuw nsw i32 32, %1542 %1552 = shl i32 %1545, %1542 %1553 = lshr i32 %1548, %1551 %1554 = add i32 %1553, %1552 %1555 = shl i32 %1548, %1542 %1556 = getelementptr inbounds [7 x i32], [7 x i32]* %result.i.i.i.i.i, i32 0, i32 %1550 %1557 = load i32, i32* %1556, align 4 %1558 = lshr i32 %1557, %1551 %1559 = add i32 %1558, %1555 br label %__internal_trig_reduction_slowpath.exit.i.i.i392 __internal_trig_reduction_slowpath.exit.i.i.i392: ; preds = %1549, %1537 %hi.i.i.i.i205.1 = phi i32 [ %1554, %1549 ], [ %1545, %1537 ] %lo.i.i.i.i206.0 = phi i32 [ %1559, %1549 ], [ %1548, %1537 ] %1560 = lshr i32 %hi.i.i.i.i205.1, 30 %1561 = call i32 @llvm.fshl.i32(i32 %hi.i.i.i.i205.1, i32 %lo.i.i.i.i206.0, i32 noundef 2) %1562 = shl i32 %lo.i.i.i.i206.0, 2 %1563 = lshr i32 %1561, 31 %1564 = add nuw nsw i32 %1563, %1560 %.not219 = icmp eq i32 %1540, 0 %1565 = sub nsw i32 0, %1564 %spec.select5 = select i1 %.not219, i32 %1564, i32 %1565 %.not220 = icmp sgt i32 %1561, -1 %1566 = xor i32 %1540, -2147483648 %s.i.i.i.i204.0 = select i1 %.not220, i32 %1540, i32 %1566 %not..not220 = xor i1 %.not220, true %1567 = sext i1 %not..not220 to i32 %hi.i.i.i.i205.2 = xor i32 %1561, %1567 %lo.i.i.i.i206.1 = xor i32 %1562, %1567 %1568 = zext i32 %hi.i.i.i.i205.2 to i64 %1569 = shl nuw i64 %1568, 32 %1570 = zext i32 %lo.i.i.i.i206.1 to i64 %1571 = or i64 %1569, %1570 %1572 = sitofp i64 %1571 to double %1573 = fmul double %1572, 0x3BF921FB54442D19 %1574 = fptrunc double %1573 to float %.not222 = icmp eq i32 %s.i.i.i.i204.0, 0 %1575 = fneg float %1574 %r.i.i.i.i214.0 = select i1 %.not222, float %1574, float %1575 br label %__internal_trig_reduction_kernel.exit.i.i393 __internal_trig_reduction_kernel.exit.i.i393: ; preds = %__nv_fmul_rn.exit.i.i.i391, %__internal_trig_reduction_slowpath.exit.i.i.i392, %__nv_rsqrtf.exit.i384 %i.i85.i220.1 = phi i32 [ %.0417, %__nv_rsqrtf.exit.i384 ], [ 0, %__nv_fmul_rn.exit.i.i.i391 ], [ %spec.select5, %__internal_trig_reduction_slowpath.exit.i.i.i392 ] %t.i.i.i217.1 = phi float [ %.0420, %__nv_rsqrtf.exit.i384 ], [ %.0423, %__nv_fmul_rn.exit.i.i.i391 ], [ %r.i.i.i.i214.0, %__internal_trig_reduction_slowpath.exit.i.i.i392 ] %1576 = and i32 %i.i85.i220.1, 3 %1577 = uitofp i32 %1576 to float %1578 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not204 = icmp eq i32 %1578, 0 %1579 = call float @llvm.nvvm.fma.rn.ftz.f(float %1577, float noundef 0x3FF921FB60000000, float noundef 0xC002D97C80000000) #135 %1580 = call float @llvm.fma.f32(float %1577, float noundef 0x3FF921FB60000000, float noundef 0xC002D97C80000000) %.0424 = select i1 %.not204, float %1580, float %1579 %1581 = fadd float %t.i.i.i217.1, %.0424 %1582 = fmul float %1581, 0x3FE45F3060000000 %1583 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not205 = icmp eq i32 %1583, 0 %1584 = call i32 @llvm.nvvm.f2i.rn.ftz(float %1582) #135 %1585 = call i32 @llvm.nvvm.f2i.rn(float %1582) #135 %.0425 = select i1 %.not205, i32 %1585, i32 %1584 %1586 = sitofp i32 %.0425 to float %1587 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not206 = icmp eq i32 %1587, 0 %1588 = call float @llvm.nvvm.fma.rn.ftz.f(float %1586, float noundef 0xBFF921FB40000000, float %1581) #135 %1589 = call float @llvm.fma.f32(float %1586, float noundef 0xBFF921FB40000000, float %1581) %.0426 = select i1 %.not206, float %1589, float %1588 %1590 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not207 = icmp eq i32 %1590, 0 %1591 = call float @llvm.nvvm.fma.rn.ftz.f(float %1586, float noundef 0xBE74442D00000000, float %.0426) #135 %1592 = call float @llvm.fma.f32(float %1586, float noundef 0xBE74442D00000000, float %.0426) %.0427 = select i1 %.not207, float %1592, float %1591 %1593 = add i32 %.0425, 1 %1594 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not208 = icmp eq i32 %1594, 0 %1595 = call float @llvm.nvvm.mul.rn.ftz.f(float %.0427, float %.0427) #135 %1596 = fmul float %.0427, %.0427 %.0428 = select i1 %.not208, float %1596, float %1595 %1597 = and i32 %1593, 1 %.not209 = icmp eq i32 %1597, 0 %1598 = select i1 %.not209, float %.0427, float 1.000000e+00 %1599 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not210 = icmp eq i32 %1599, 0 %1600 = call float @llvm.nvvm.fma.rn.ftz.f(float %.0428, float %1598, float noundef 0.000000e+00) #135 %1601 = call float @llvm.fma.f32(float %.0428, float %1598, float noundef 0.000000e+00) %.0429 = select i1 %.not210, float %1601, float %1600 br i1 %.not209, label %__internal_fmad.exit2.i.i.i401, label %__internal_fmad.exit1.i.i.i400 __internal_fmad.exit1.i.i.i400: ; preds = %__internal_trig_reduction_kernel.exit.i.i393 %1602 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not216 = icmp eq i32 %1602, 0 %1603 = call float @llvm.nvvm.fma.rn.ftz.f(float noundef 0x3EF9758000000000, float %.0428, float noundef 0xBF56C0FDA0000000) #135 %1604 = call float @llvm.fma.f32(float %.0428, float noundef 0x3EF9758000000000, float noundef 0xBF56C0FDA0000000) %.0431 = select i1 %.not216, float %1604, float %1603 br label %__internal_fmad.exit2.i.i.i401 __internal_fmad.exit2.i.i.i401: ; preds = %__internal_trig_reduction_kernel.exit.i.i393, %__internal_fmad.exit1.i.i.i400 %1605 = phi float [ 0xBFC5555500000000, %__internal_trig_reduction_kernel.exit.i.i393 ], [ 0xBFDFFFFFE0000000, %__internal_fmad.exit1.i.i.i400 ] %1606 = phi float [ 0x3F8110BC80000000, %__internal_trig_reduction_kernel.exit.i.i393 ], [ 0x3FA5555760000000, %__internal_fmad.exit1.i.i.i400 ] %1607 = phi float [ 0xBF29A82A60000000, %__internal_trig_reduction_kernel.exit.i.i393 ], [ %.0431, %__internal_fmad.exit1.i.i.i400 ] %1608 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not211 = icmp eq i32 %1608, 0 %1609 = call float @llvm.nvvm.fma.rn.ftz.f(float %1607, float %.0428, float noundef %1606) #135 %1610 = call float @llvm.fma.f32(float %1607, float %.0428, float noundef %1606) %.0432 = select i1 %.not211, float %1610, float %1609 %1611 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not212 = icmp eq i32 %1611, 0 %1612 = call float @llvm.nvvm.fma.rn.ftz.f(float %.0432, float %.0428, float noundef %1605) #135 %1613 = call float @llvm.fma.f32(float %.0432, float %.0428, float noundef %1605) %.0433 = select i1 %.not212, float %1613, float %1612 %1614 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not213 = icmp eq i32 %1614, 0 %1615 = call float @llvm.nvvm.fma.rn.ftz.f(float %.0433, float %.0429, float %1598) #135 %1616 = call float @llvm.fma.f32(float %.0433, float %.0429, float %1598) %.0434 = select i1 %.not213, float %1616, float %1615 %1617 = and i32 %1593, 2 %.not214 = icmp eq i32 %1617, 0 br i1 %.not214, label %__internal_cos_offset_f.exit.i405, label %__internal_fmad.exit5.i.i.i404 __internal_fmad.exit5.i.i.i404: ; preds = %__internal_fmad.exit2.i.i.i401 %1618 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not215 = icmp eq i32 %1618, 0 %1619 = call float @llvm.nvvm.fma.rn.ftz.f(float %.0434, float noundef -1.000000e+00, float noundef 0.000000e+00) #135 %1620 = call float @llvm.fma.f32(float %.0434, float noundef -1.000000e+00, float noundef 0.000000e+00) %.0436 = select i1 %.not215, float %1620, float %1619 br label %__internal_cos_offset_f.exit.i405 __internal_cos_offset_f.exit.i405: ; preds = %__internal_fmad.exit5.i.i.i404, %__internal_fmad.exit2.i.i.i401 %z.i.i83.i197.0 = phi float [ %.0436, %__internal_fmad.exit5.i.i.i404 ], [ %.0434, %__internal_fmad.exit2.i.i.i401 ] %1621 = fmul float %1499, %z.i.i83.i197.0 br label %__nv_y0f.exit406 __nv_y0f.exit406: ; preds = %__internal_fmad.exit9.i347, %__internal_fmad.exit51.i368, %__nv_isinff.exit.i376, %__internal_cos_offset_f.exit.i405, %__internal_fmad.exit33.i359, %__nv_j0f.exit.i345 %r.i274.4 = phi float [ %.0369, %__nv_j0f.exit.i345 ], [ %1404, %__internal_fmad.exit9.i347 ], [ %1436, %__internal_fmad.exit33.i359 ], [ %1465, %__internal_fmad.exit51.i368 ], [ %1621, %__internal_cos_offset_f.exit.i405 ], [ 0.000000e+00, %__nv_isinff.exit.i376 ] %r.i274.5 = select i1 %543, float 0x7FFFFFFFE0000000, float %r.i274.4 br label %2198 __nv_fabsf.exit.i496: ; preds = %__nv_y0f.exit %1622 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not61 = icmp eq i32 %1622, 0 %.0439 = select i1 %.not61, float %2, float %1 %1623 = fcmp olt float %.0439, 0x3810000000000000 br i1 %1623, label %1624, label %1626 1624: ; preds = %__nv_fabsf.exit.i496 %1625 = fdiv float 0xBFE45F3060000000, %.0439 br label %__nv_y1f.exit618 1626: ; preds = %__nv_fabsf.exit.i496 %1627 = fcmp ugt float %.0439, 0x3FFB2D5880000000 br i1 %1627, label %1914, label %__internal_fmad.exit.i497 __internal_fmad.exit.i497: ; preds = %1626 %1628 = fmul float %.0439, %.0439 %1629 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not122 = icmp eq i32 %1629, 0 %1630 = call float @llvm.nvvm.fma.rn.ftz.f(float noundef 0x3E428C5980000000, float %1628, float noundef 0xBEB0A4FB40000000) #135 %1631 = call float @llvm.fma.f32(float %1628, float noundef 0x3E428C5980000000, float noundef 0xBEB0A4FB40000000) %.0441 = select i1 %.not122, float %1631, float %1630 %1632 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not123 = icmp eq i32 %1632, 0 %1633 = call float @llvm.nvvm.fma.rn.ftz.f(float %.0441, float %1628, float noundef 0x3F12C7D2A0000000) #135 %1634 = call float @llvm.fma.f32(float %.0441, float %1628, float noundef 0x3F12C7D2A0000000) %.0442 = select i1 %.not123, float %1634, float %1633 %1635 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not124 = icmp eq i32 %1635, 0 %1636 = call float @llvm.nvvm.fma.rn.ftz.f(float %.0442, float %1628, float noundef 0xBF6835B960000000) #135 %1637 = call float @llvm.fma.f32(float %.0442, float %1628, float noundef 0xBF6835B960000000) %.0443 = select i1 %.not124, float %1637, float %1636 %1638 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not125 = icmp eq i32 %1638, 0 %1639 = call float @llvm.nvvm.fma.rn.ftz.f(float %.0443, float %1628, float noundef 0x3FABD39760000000) #135 %1640 = call float @llvm.fma.f32(float %.0443, float %1628, float noundef 0x3FABD39760000000) %.0445 = select i1 %.not125, float %1640, float %1639 %1641 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not126 = icmp eq i32 %1641, 0 %1642 = call float @llvm.nvvm.fma.rn.ftz.f(float %.0445, float %1628, float noundef 0xBFC9186620000000) #135 %1643 = call float @llvm.fma.f32(float %.0445, float %1628, float noundef 0xBFC9186620000000) %.0446 = select i1 %.not126, float %1643, float %1642 %1644 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not127 = icmp eq i32 %1644, 0 %1645 = call float @llvm.nvvm.fabs.ftz.f(float %.0439) #135 %1646 = call float @llvm.fabs.f32(float %.0439) %.0448 = select i1 %.not127, float %1646, float %1645 %1647 = fcmp ugt float %.0448, 8.000000e+00 br i1 %1647, label %__nv_isinff.exit.i.i515, label %__internal_fmad.exit.i.i503 __internal_fmad.exit.i.i503: ; preds = %__internal_fmad.exit.i497 %1648 = fadd float %.0448, 0xC00EA75580000000 %1649 = fadd float %1648, 0x3E74A121E0000000 %1650 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not177 = icmp eq i32 %1650, 0 %1651 = call float @llvm.nvvm.fma.rn.ftz.f(float noundef 0x3D35E68C60000000, float %1649, float noundef 0x3D7037E840000000) #135 %1652 = call float @llvm.fma.f32(float %1649, float noundef 0x3D35E68C60000000, float noundef 0x3D7037E840000000) %.0449 = select i1 %.not177, float %1652, float %1651 %1653 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not178 = icmp eq i32 %1653, 0 %1654 = call float @llvm.nvvm.fma.rn.ftz.f(float %.0449, float %1649, float noundef 0xBDBC43D820000000) #135 %1655 = call float @llvm.fma.f32(float %.0449, float %1649, float noundef 0xBDBC43D820000000) %.0450 = select i1 %.not178, float %1655, float %1654 %1656 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not179 = icmp eq i32 %1656, 0 %1657 = call float @llvm.nvvm.fma.rn.ftz.f(float %.0450, float %1649, float noundef 0xBDEBBBDFE0000000) #135 %1658 = call float @llvm.fma.f32(float %.0450, float %1649, float noundef 0xBDEBBBDFE0000000) %.0451 = select i1 %.not179, float %1658, float %1657 %1659 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not180 = icmp eq i32 %1659, 0 %1660 = call float @llvm.nvvm.fma.rn.ftz.f(float %.0451, float %1649, float noundef 0x3E336193A0000000) #135 %1661 = call float @llvm.fma.f32(float %.0451, float %1649, float noundef 0x3E336193A0000000) %.0453 = select i1 %.not180, float %1661, float %1660 %1662 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not181 = icmp eq i32 %1662, 0 %1663 = call float @llvm.nvvm.fma.rn.ftz.f(float %.0453, float %1649, float noundef 0x3E5D022E60000000) #135 %1664 = call float @llvm.fma.f32(float %.0453, float %1649, float noundef 0x3E5D022E60000000) %.0455 = select i1 %.not181, float %1664, float %1663 %1665 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not182 = icmp eq i32 %1665, 0 %1666 = call float @llvm.nvvm.fma.rn.ftz.f(float %.0455, float %1649, float noundef 0xBEA1F1B900000000) #135 %1667 = call float @llvm.fma.f32(float %.0455, float %1649, float noundef 0xBEA1F1B900000000) %.0456 = select i1 %.not182, float %1667, float %1666 %1668 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not183 = icmp eq i32 %1668, 0 %1669 = call float @llvm.nvvm.fma.rn.ftz.f(float %.0456, float %1649, float noundef 0xBEC3CCA7A0000000) #135 %1670 = call float @llvm.fma.f32(float %.0456, float %1649, float noundef 0xBEC3CCA7A0000000) %.0457 = select i1 %.not183, float %1670, float %1669 %1671 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not184 = icmp eq i32 %1671, 0 %1672 = call float @llvm.nvvm.fma.rn.ftz.f(float %.0457, float %1649, float noundef 0x3F059B38A0000000) #135 %1673 = call float @llvm.fma.f32(float %.0457, float %1649, float noundef 0x3F059B38A0000000) %.0458 = select i1 %.not184, float %1673, float %1672 %1674 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not185 = icmp eq i32 %1674, 0 %1675 = call float @llvm.nvvm.fma.rn.ftz.f(float %.0458, float %1649, float noundef 0x3F1F3D6200000000) #135 %1676 = call float @llvm.fma.f32(float %.0458, float %1649, float noundef 0x3F1F3D6200000000) %.0459 = select i1 %.not185, float %1676, float %1675 %1677 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not186 = icmp eq i32 %1677, 0 %1678 = call float @llvm.nvvm.fma.rn.ftz.f(float %.0459, float %1649, float noundef 0xBF5D9D7380000000) #135 %1679 = call float @llvm.fma.f32(float %.0459, float %1649, float noundef 0xBF5D9D7380000000) %.0460 = select i1 %.not186, float %1679, float %1678 %1680 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not187 = icmp eq i32 %1680, 0 %1681 = call float @llvm.nvvm.fma.rn.ftz.f(float %.0460, float %1649, float noundef 0xBF64EDFFA0000000) #135 %1682 = call float @llvm.fma.f32(float %.0460, float %1649, float noundef 0xBF64EDFFA0000000) %.0462 = select i1 %.not187, float %1682, float %1681 %1683 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not188 = icmp eq i32 %1683, 0 %1684 = call float @llvm.nvvm.fma.rn.ftz.f(float %.0462, float %1649, float noundef 0x3FA0E73260000000) #135 %1685 = call float @llvm.fma.f32(float %.0462, float %1649, float noundef 0x3FA0E73260000000) %.0463 = select i1 %.not188, float %1685, float %1684 %1686 = fadd float %.0448, 0xC01C0FF600000000 %1687 = fadd float %1686, 0x3E88971B60000000 %1688 = fmul float %1687, %.0463 %1689 = fmul float %1649, %1688 %1690 = fmul float %.0448, %1689 br label %1850 __nv_isinff.exit.i.i515: ; preds = %__internal_fmad.exit.i497 %1691 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not128 = icmp eq i32 %1691, 0 %1692 = call float @llvm.nvvm.fabs.ftz.f(float %.0448) #135 %1693 = call float @llvm.fabs.f32(float %.0448) %.0464 = select i1 %.not128, float %1693, float %1692 %1694 = fcmp oeq float %.0464, 0x7FF0000000000000 br i1 %1694, label %1850, label %__internal_fmad.exit12.i.i516 __internal_fmad.exit12.i.i516: ; preds = %__nv_isinff.exit.i.i515 %1695 = call float asm "rcp.approx.ftz.f32 $0,$1;", "=f,f"(float %.0448) #137, !srcloc !225 %1696 = fmul float %1695, %1695 %1697 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not129 = icmp eq i32 %1697, 0 %1698 = call float @llvm.nvvm.fma.rn.ftz.f(float noundef 0xC0105966E0000000, float %1696, float noundef 0x3FE7FEFD20000000) #135 %1699 = call float @llvm.fma.f32(float %1696, float noundef 0xC0105966E0000000, float noundef 0x3FE7FEFD20000000) %.0465 = select i1 %.not129, float %1699, float %1698 %1700 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not130 = icmp eq i32 %1700, 0 %1701 = call float @llvm.nvvm.fma.rn.ftz.f(float %.0465, float %1696, float noundef 0xBFC8B175C0000000) #135 %1702 = call float @llvm.fma.f32(float %.0465, float %1696, float noundef 0xBFC8B175C0000000) %.0466 = select i1 %.not130, float %1702, float %1701 %1703 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not131 = icmp eq i32 %1703, 0 %1704 = call float @llvm.nvvm.fma.rn.ftz.f(float %.0466, float %1696, float noundef 0x3FC7FFF160000000) #135 %1705 = call float @llvm.fma.f32(float %.0466, float %1696, float noundef 0x3FC7FFF160000000) %.0467 = select i1 %.not131, float %1705, float %1704 %1706 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not132 = icmp eq i32 %1706, 0 %1707 = call float @llvm.nvvm.fma.rn.ftz.f(float %.0467, float %1696, float noundef 1.000000e+00) #135 %1708 = call float @llvm.fma.f32(float %.0467, float %1696, float noundef 1.000000e+00) %.0469 = select i1 %.not132, float %1708, float %1707 %1709 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not133 = icmp eq i32 %1709, 0 %1710 = call float @llvm.nvvm.fma.rn.ftz.f(float noundef 0xBFF9477440000000, float %1696, float noundef 0x3FD72295A0000000) #135 %1711 = call float @llvm.fma.f32(float %1696, float noundef 0xBFF9477440000000, float noundef 0x3FD72295A0000000) %.0470 = select i1 %.not133, float %1711, float %1710 %1712 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not134 = icmp eq i32 %1712, 0 %1713 = call float @llvm.nvvm.fma.rn.ftz.f(float %.0470, float %1696, float noundef 0xBFC4FE5D80000000) #135 %1714 = call float @llvm.fma.f32(float %.0470, float %1696, float noundef 0xBFC4FE5D80000000) %.0468 = select i1 %.not134, float %1714, float %1713 %1715 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not135 = icmp eq i32 %1715, 0 %1716 = call float @llvm.nvvm.fma.rn.ftz.f(float %.0468, float %1696, float noundef 0x3FD7FFFFA0000000) #135 %1717 = call float @llvm.fma.f32(float %.0468, float %1696, float noundef 0x3FD7FFFFA0000000) %.0461 = select i1 %.not135, float %1717, float %1716 %1718 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not136 = icmp eq i32 %1718, 0 %1719 = call float @llvm.nvvm.fma.rn.ftz.f(float %.0461, float %1695, float %.0448) #135 %1720 = call float @llvm.fma.f32(float %.0461, float %1695, float %.0448) %.0454 = select i1 %.not136, float %1720, float %1719 %1721 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not137 = icmp eq i32 %1721, 0 br i1 %.not137, label %1724, label %1722 1722: ; preds = %__internal_fmad.exit12.i.i516 %1723 = call float @llvm.nvvm.rsqrt.approx.ftz.f(float %.0448) #135 br label %__nv_rsqrtf.exit.i.i524 1724: ; preds = %__internal_fmad.exit12.i.i516 %1725 = call float @llvm.nvvm.rsqrt.approx.f(float %.0448) #135 br label %__nv_rsqrtf.exit.i.i524 __nv_rsqrtf.exit.i.i524: ; preds = %1724, %1722 %.0452 = phi float [ %1723, %1722 ], [ %1725, %1724 ] %1726 = fmul float %.0452, 0x3FE9884540000000 %1727 = fmul float %.0469, %1726 %1728 = fmul float %.0454, 0x3FE45F3060000000 %1729 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not138 = icmp eq i32 %1729, 0 %1730 = call i32 @llvm.nvvm.f2i.rn.ftz(float %1728) #135 %1731 = call i32 @llvm.nvvm.f2i.rn(float %1728) #135 %.0447 = select i1 %.not138, i32 %1731, i32 %1730 %1732 = sitofp i32 %.0447 to float %1733 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not139 = icmp eq i32 %1733, 0 %1734 = call float @llvm.nvvm.fma.rn.ftz.f(float %1732, float noundef 0xBFF921FB40000000, float %.0454) #135 %1735 = call float @llvm.fma.f32(float %1732, float noundef 0xBFF921FB40000000, float %.0454) %.0444 = select i1 %.not139, float %1735, float %1734 %1736 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not140 = icmp eq i32 %1736, 0 %1737 = call float @llvm.nvvm.fma.rn.ftz.f(float %1732, float noundef 0xBE74442D00000000, float %.0444) #135 %1738 = call float @llvm.fma.f32(float %1732, float noundef 0xBE74442D00000000, float %.0444) %.0440 = select i1 %.not140, float %1738, float %1737 %1739 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not141 = icmp eq i32 %1739, 0 %1740 = call float @llvm.nvvm.fma.rn.ftz.f(float %1732, float noundef 0xBCF84698A0000000, float %.0440) #135 %1741 = call float @llvm.fma.f32(float %1732, float noundef 0xBCF84698A0000000, float %.0440) %.0438 = select i1 %.not141, float %1741, float %1740 %1742 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not142 = icmp eq i32 %1742, 0 %1743 = call float @llvm.nvvm.fabs.ftz.f(float %.0454) #135 %1744 = call float @llvm.fabs.f32(float %.0454) %.0437 = select i1 %.not142, float %1744, float %1743 %1745 = fcmp ult float %.0437, 1.056150e+05 br i1 %1745, label %__internal_trig_reduction_kernel.exit.i.i.i533, label %__nv_isinff.exit.i.i.i.i530 __nv_isinff.exit.i.i.i.i530: ; preds = %__nv_rsqrtf.exit.i.i524 %1746 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not170 = icmp eq i32 %1746, 0 %.0435 = select i1 %.not170, float %1744, float %1743 %1747 = fcmp oeq float %.0435, 0x7FF0000000000000 br i1 %1747, label %__nv_fmul_rn.exit.i.i.i.i531, label %1751 __nv_fmul_rn.exit.i.i.i.i531: ; preds = %__nv_isinff.exit.i.i.i.i530 %1748 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not176 = icmp eq i32 %1748, 0 %1749 = call float @llvm.nvvm.mul.rn.ftz.f(float %.0454, float noundef 0.000000e+00) #135 %1750 = fmul float %.0454, 0.000000e+00 %.0430 = select i1 %.not176, float %1750, float %1749 br label %__internal_trig_reduction_kernel.exit.i.i.i533 1751: ; preds = %__nv_isinff.exit.i.i.i.i530 %1752 = bitcast float %.0454 to i32 %1753 = lshr i32 %1752, 23 %1754 = and i32 %1753, 255 %1755 = shl i32 %1752, 8 %1756 = or i32 %1755, -2147483648 br label %1757 1757: ; preds = %1751, %1757 %hi.i.i.i.i.i461.0541 = phi i32 [ 0, %1751 ], [ %1762, %1757 ] %iq.i.i.i.i.i466.0540 = phi i32 [ 0, %1751 ], [ %1764, %1757 ] %1758 = getelementptr inbounds [6 x i32], [6 x i32] addrspace(1)* @__cudart_i2opi_f, i32 0, i32 %iq.i.i.i.i.i466.0540 %1759 = load i32, i32 addrspace(1)* %1758, align 4 %1760 = call { i32, i32 } asm "{\0A\09mad.lo.cc.u32 $0, $2, $3, $4;\0A\09madc.hi.u32 $1, $2, $3, 0;\0A\09}", "=r,=r,r,r,r"(i32 %1759, i32 %1756, i32 %hi.i.i.i.i.i461.0541) #137, !srcloc !222 %1761 = extractvalue { i32, i32 } %1760, 0 %1762 = extractvalue { i32, i32 } %1760, 1 %1763 = getelementptr inbounds [7 x i32], [7 x i32]* %result.i.i.i.i.i, i32 0, i32 %iq.i.i.i.i.i466.0540 store i32 %1761, i32* %1763, align 4, !noalias !219 %1764 = add nuw nsw i32 %iq.i.i.i.i.i466.0540, 1 %exitcond575.not = icmp eq i32 %1764, 6 br i1 %exitcond575.not, label %1765, label %1757, !llvm.loop !223 1765: ; preds = %1757 %1766 = add nsw i32 %1754, -128 %1767 = lshr i32 %1766, 5 %1768 = and i32 %1752, -2147483648 %1769 = getelementptr inbounds [7 x i32], [7 x i32]* %result.i.i.i.i.i, i32 0, i32 6 store i32 %1762, i32* %1769, align 4, !noalias !219 %1770 = and i32 %1753, 31 %1771 = sub nsw i32 6, %1767 %1772 = getelementptr inbounds [7 x i32], [7 x i32]* %result.i.i.i.i.i, i32 0, i32 %1771 %1773 = load i32, i32* %1772, align 4 %1774 = sub nsw i32 5, %1767 %1775 = getelementptr inbounds [7 x i32], [7 x i32]* %result.i.i.i.i.i, i32 0, i32 %1774 %1776 = load i32, i32* %1775, align 4 %.not171 = icmp eq i32 %1770, 0 br i1 %.not171, label %__internal_trig_reduction_slowpath.exit.i.i.i.i532, label %1777 1777: ; preds = %1765 %1778 = sub nsw i32 4, %1767 %1779 = sub nuw nsw i32 32, %1770 %1780 = shl i32 %1773, %1770 %1781 = lshr i32 %1776, %1779 %1782 = add i32 %1781, %1780 %1783 = shl i32 %1776, %1770 %1784 = getelementptr inbounds [7 x i32], [7 x i32]* %result.i.i.i.i.i, i32 0, i32 %1778 %1785 = load i32, i32* %1784, align 4 %1786 = lshr i32 %1785, %1779 %1787 = add i32 %1786, %1783 br label %__internal_trig_reduction_slowpath.exit.i.i.i.i532 __internal_trig_reduction_slowpath.exit.i.i.i.i532: ; preds = %1777, %1765 %lo.i.i.i.i.i462.0 = phi i32 [ %1787, %1777 ], [ %1776, %1765 ] %hi.i.i.i.i.i461.1 = phi i32 [ %1782, %1777 ], [ %1773, %1765 ] %1788 = lshr i32 %hi.i.i.i.i.i461.1, 30 %1789 = call i32 @llvm.fshl.i32(i32 %hi.i.i.i.i.i461.1, i32 %lo.i.i.i.i.i462.0, i32 noundef 2) %1790 = shl i32 %lo.i.i.i.i.i462.0, 2 %1791 = lshr i32 %1789, 31 %1792 = add nuw nsw i32 %1791, %1788 %.not172 = icmp eq i32 %1768, 0 %1793 = sub nsw i32 0, %1792 %spec.select6 = select i1 %.not172, i32 %1792, i32 %1793 %.not173 = icmp sgt i32 %1789, -1 %1794 = xor i32 %1768, -2147483648 %not..not173 = xor i1 %.not173, true %1795 = sext i1 %not..not173 to i32 %lo.i.i.i.i.i462.1 = xor i32 %1790, %1795 %hi.i.i.i.i.i461.2 = xor i32 %1789, %1795 %s.i.i.i.i.i459.0 = select i1 %.not173, i32 %1768, i32 %1794 %1796 = zext i32 %hi.i.i.i.i.i461.2 to i64 %1797 = shl nuw i64 %1796, 32 %1798 = zext i32 %lo.i.i.i.i.i462.1 to i64 %1799 = or i64 %1797, %1798 %1800 = sitofp i64 %1799 to double %1801 = fmul double %1800, 0x3BF921FB54442D19 %1802 = fptrunc double %1801 to float %.not175 = icmp eq i32 %s.i.i.i.i.i459.0, 0 %1803 = fneg float %1802 %r.i.i.i.i.i470.0 = select i1 %.not175, float %1802, float %1803 br label %__internal_trig_reduction_kernel.exit.i.i.i533 __internal_trig_reduction_kernel.exit.i.i.i533: ; preds = %__nv_fmul_rn.exit.i.i.i.i531, %__internal_trig_reduction_slowpath.exit.i.i.i.i532, %__nv_rsqrtf.exit.i.i524 %i.i.i.i476.1 = phi i32 [ %.0447, %__nv_rsqrtf.exit.i.i524 ], [ 0, %__nv_fmul_rn.exit.i.i.i.i531 ], [ %spec.select6, %__internal_trig_reduction_slowpath.exit.i.i.i.i532 ] %t.i.i.i.i473.1 = phi float [ %.0438, %__nv_rsqrtf.exit.i.i524 ], [ %.0430, %__nv_fmul_rn.exit.i.i.i.i531 ], [ %r.i.i.i.i.i470.0, %__internal_trig_reduction_slowpath.exit.i.i.i.i532 ] %1804 = and i32 %i.i.i.i476.1, 3 %1805 = uitofp i32 %1804 to float %1806 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not143 = icmp eq i32 %1806, 0 %1807 = call float @llvm.nvvm.fma.rn.ftz.f(float %1805, float noundef 0x3FF921FB60000000, float noundef 0xC002D97C80000000) #135 %1808 = call float @llvm.fma.f32(float %1805, float noundef 0x3FF921FB60000000, float noundef 0xC002D97C80000000) %.0416 = select i1 %.not143, float %1808, float %1807 %1809 = fadd float %t.i.i.i.i473.1, %.0416 %1810 = fmul float %1809, 0x3FE45F3060000000 %1811 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not144 = icmp eq i32 %1811, 0 %1812 = call i32 @llvm.nvvm.f2i.rn.ftz(float %1810) #135 %1813 = call i32 @llvm.nvvm.f2i.rn(float %1810) #135 %.0415 = select i1 %.not144, i32 %1813, i32 %1812 %1814 = sitofp i32 %.0415 to float %1815 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not145 = icmp eq i32 %1815, 0 %1816 = call float @llvm.nvvm.fma.rn.ftz.f(float %1814, float noundef 0xBFF921FB40000000, float %1809) #135 %1817 = call float @llvm.fma.f32(float %1814, float noundef 0xBFF921FB40000000, float %1809) %.0414 = select i1 %.not145, float %1817, float %1816 %1818 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not146 = icmp eq i32 %1818, 0 %1819 = call float @llvm.nvvm.fma.rn.ftz.f(float %1814, float noundef 0xBE74442D00000000, float %.0414) #135 %1820 = call float @llvm.fma.f32(float %1814, float noundef 0xBE74442D00000000, float %.0414) %.0410 = select i1 %.not146, float %1820, float %1819 %1821 = add i32 %.0415, 1 %1822 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not147 = icmp eq i32 %1822, 0 %1823 = call float @llvm.nvvm.mul.rn.ftz.f(float %.0410, float %.0410) #135 %1824 = fmul float %.0410, %.0410 %.0401 = select i1 %.not147, float %1824, float %1823 %1825 = and i32 %1821, 1 %.not148 = icmp eq i32 %1825, 0 %1826 = select i1 %.not148, float %.0410, float 1.000000e+00 %1827 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not149 = icmp eq i32 %1827, 0 %1828 = call float @llvm.nvvm.fma.rn.ftz.f(float %.0401, float %1826, float noundef 0.000000e+00) #135 %1829 = call float @llvm.fma.f32(float %.0401, float %1826, float noundef 0.000000e+00) %.0394 = select i1 %.not149, float %1829, float %1828 br i1 %.not148, label %__internal_fmad.exit2.i.i.i.i541, label %__internal_fmad.exit1.i.i.i.i540 __internal_fmad.exit1.i.i.i.i540: ; preds = %__internal_trig_reduction_kernel.exit.i.i.i533 %1830 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not169 = icmp eq i32 %1830, 0 %1831 = call float @llvm.nvvm.fma.rn.ftz.f(float noundef 0x3EF9758000000000, float %.0401, float noundef 0xBF56C0FDA0000000) #135 %1832 = call float @llvm.fma.f32(float %.0401, float noundef 0x3EF9758000000000, float noundef 0xBF56C0FDA0000000) %.0387 = select i1 %.not169, float %1832, float %1831 br label %__internal_fmad.exit2.i.i.i.i541 __internal_fmad.exit2.i.i.i.i541: ; preds = %__internal_trig_reduction_kernel.exit.i.i.i533, %__internal_fmad.exit1.i.i.i.i540 %1833 = phi float [ 0xBFC5555500000000, %__internal_trig_reduction_kernel.exit.i.i.i533 ], [ 0xBFDFFFFFE0000000, %__internal_fmad.exit1.i.i.i.i540 ] %1834 = phi float [ 0x3F8110BC80000000, %__internal_trig_reduction_kernel.exit.i.i.i533 ], [ 0x3FA5555760000000, %__internal_fmad.exit1.i.i.i.i540 ] %1835 = phi float [ 0xBF29A82A60000000, %__internal_trig_reduction_kernel.exit.i.i.i533 ], [ %.0387, %__internal_fmad.exit1.i.i.i.i540 ] %1836 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not150 = icmp eq i32 %1836, 0 %1837 = call float @llvm.nvvm.fma.rn.ftz.f(float %1835, float %.0401, float noundef %1834) #135 %1838 = call float @llvm.fma.f32(float %1835, float %.0401, float noundef %1834) %.0380 = select i1 %.not150, float %1838, float %1837 %1839 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not151 = icmp eq i32 %1839, 0 %1840 = call float @llvm.nvvm.fma.rn.ftz.f(float %.0380, float %.0401, float noundef %1833) #135 %1841 = call float @llvm.fma.f32(float %.0380, float %.0401, float noundef %1833) %.0373 = select i1 %.not151, float %1841, float %1840 %1842 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not152 = icmp eq i32 %1842, 0 %1843 = call float @llvm.nvvm.fma.rn.ftz.f(float %.0373, float %.0394, float %1826) #135 %1844 = call float @llvm.fma.f32(float %.0373, float %.0394, float %1826) %.0366 = select i1 %.not152, float %1844, float %1843 %1845 = and i32 %1821, 2 %.not153 = icmp eq i32 %1845, 0 br i1 %.not153, label %__internal_cos_offset_f.exit.i.i545, label %__internal_fmad.exit5.i.i.i.i544 __internal_fmad.exit5.i.i.i.i544: ; preds = %__internal_fmad.exit2.i.i.i.i541 %1846 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not168 = icmp eq i32 %1846, 0 %1847 = call float @llvm.nvvm.fma.rn.ftz.f(float %.0366, float noundef -1.000000e+00, float noundef 0.000000e+00) #135 %1848 = call float @llvm.fma.f32(float %.0366, float noundef -1.000000e+00, float noundef 0.000000e+00) %.0360 = select i1 %.not168, float %1848, float %1847 br label %__internal_cos_offset_f.exit.i.i545 __internal_cos_offset_f.exit.i.i545: ; preds = %__internal_fmad.exit5.i.i.i.i544, %__internal_fmad.exit2.i.i.i.i541 %z.i.i.i.i452.0 = phi float [ %.0360, %__internal_fmad.exit5.i.i.i.i544 ], [ %.0366, %__internal_fmad.exit2.i.i.i.i541 ] %1849 = fmul float %1727, %z.i.i.i.i452.0 br label %1850 1850: ; preds = %__internal_cos_offset_f.exit.i.i545, %__nv_isinff.exit.i.i515, %__internal_fmad.exit.i.i503 %r.i.i482.1 = phi float [ %1690, %__internal_fmad.exit.i.i503 ], [ %1849, %__internal_cos_offset_f.exit.i.i545 ], [ 0.000000e+00, %__nv_isinff.exit.i.i515 ] %1851 = fcmp olt float %.0439, 0.000000e+00 %1852 = fneg float %r.i.i482.1 %r.i.i482.2 = select i1 %1851, float %1852, float %r.i.i482.1 %1853 = fcmp olt float %.0448, 0x39B4484C00000000 br i1 %1853, label %1854, label %.__nv_j1f.exit.i546_crit_edge .__nv_j1f.exit.i546_crit_edge: ; preds = %1850 %.pre = bitcast float %.0439 to i32 br label %__nv_j1f.exit.i546 1854: ; preds = %1850 %1855 = bitcast float %.0439 to i32 %1856 = and i32 %1855, -2147483648 %1857 = bitcast float %r.i.i482.2 to i32 %1858 = and i32 %1857, 2147483647 %1859 = or i32 %1858, %1856 %1860 = bitcast i32 %1859 to float br label %__nv_j1f.exit.i546 __nv_j1f.exit.i546: ; preds = %.__nv_j1f.exit.i546_crit_edge, %1854 %.pre-phi = phi i32 [ %.pre, %.__nv_j1f.exit.i546_crit_edge ], [ %1855, %1854 ] %r.i.i482.3 = phi float [ %r.i.i482.2, %.__nv_j1f.exit.i546_crit_edge ], [ %1860, %1854 ] %1861 = add i32 %.pre-phi, -1059760811 %1862 = and i32 %1861, -8388608 %1863 = sub i32 %.pre-phi, %1862 %1864 = bitcast i32 %1863 to float %1865 = sitofp i32 %1862 to float %1866 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not154 = icmp eq i32 %1866, 0 %1867 = call float @llvm.nvvm.fma.rn.ftz.f(float %1865, float noundef 0x3E80000000000000, float noundef 0.000000e+00) #135 %1868 = call float @llvm.fma.f32(float %1865, float noundef 0x3E80000000000000, float noundef 0.000000e+00) %.0328 = select i1 %.not154, float %1868, float %1867 %1869 = fadd float %1864, -1.000000e+00 %1870 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not155 = icmp eq i32 %1870, 0 %1871 = call float @llvm.nvvm.fma.rn.ftz.f(float noundef 0xBFC0AA04E0000000, float %1869, float noundef 0x3FC2073EC0000000) #135 %1872 = call float @llvm.fma.f32(float %1869, float noundef 0xBFC0AA04E0000000, float noundef 0x3FC2073EC0000000) %.0324 = select i1 %.not155, float %1872, float %1871 %1873 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not156 = icmp eq i32 %1873, 0 %1874 = call float @llvm.nvvm.fma.rn.ftz.f(float %.0324, float %1869, float noundef 0xBFBF19B980000000) #135 %1875 = call float @llvm.fma.f32(float %.0324, float %1869, float noundef 0xBFBF19B980000000) %.0320 = select i1 %.not156, float %1875, float %1874 %1876 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not157 = icmp eq i32 %1876, 0 %1877 = call float @llvm.nvvm.fma.rn.ftz.f(float %.0320, float %1869, float noundef 0x3FC1E52AA0000000) #135 %1878 = call float @llvm.fma.f32(float %.0320, float %1869, float noundef 0x3FC1E52AA0000000) %.0316 = select i1 %.not157, float %1878, float %1877 %1879 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not158 = icmp eq i32 %1879, 0 %1880 = call float @llvm.nvvm.fma.rn.ftz.f(float %.0316, float %1869, float noundef 0xBFC55B1720000000) #135 %1881 = call float @llvm.fma.f32(float %.0316, float %1869, float noundef 0xBFC55B1720000000) %.0315 = select i1 %.not158, float %1881, float %1880 %1882 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not159 = icmp eq i32 %1882, 0 %1883 = call float @llvm.nvvm.fma.rn.ftz.f(float %.0315, float %1869, float noundef 0x3FC99DA160000000) #135 %1884 = call float @llvm.fma.f32(float %.0315, float %1869, float noundef 0x3FC99DA160000000) %.0311 = select i1 %.not159, float %1884, float %1883 %1885 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not160 = icmp eq i32 %1885, 0 %1886 = call float @llvm.nvvm.fma.rn.ftz.f(float %.0311, float %1869, float noundef 0xBFCFFFE440000000) #135 %1887 = call float @llvm.fma.f32(float %.0311, float %1869, float noundef 0xBFCFFFE440000000) %.0307 = select i1 %.not160, float %1887, float %1886 %1888 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not161 = icmp eq i32 %1888, 0 %1889 = call float @llvm.nvvm.fma.rn.ftz.f(float %.0307, float %1869, float noundef 0x3FD5554F00000000) #135 %1890 = call float @llvm.fma.f32(float %.0307, float %1869, float noundef 0x3FD5554F00000000) %.0303 = select i1 %.not161, float %1890, float %1889 %1891 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not162 = icmp eq i32 %1891, 0 %1892 = call float @llvm.nvvm.fma.rn.ftz.f(float %.0303, float %1869, float noundef -5.000000e-01) #135 %1893 = call float @llvm.fma.f32(float %.0303, float %1869, float noundef -5.000000e-01) %.0332 = select i1 %.not162, float %1893, float %1892 %1894 = fmul float %1869, %.0332 %1895 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not163 = icmp eq i32 %1895, 0 %1896 = call float @llvm.nvvm.fma.rn.ftz.f(float %1894, float %1869, float %1869) #135 %1897 = call float @llvm.fma.f32(float %1894, float %1869, float %1869) %.0337 = select i1 %.not163, float %1897, float %1896 %1898 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not164 = icmp eq i32 %1898, 0 %1899 = call float @llvm.nvvm.fma.rn.ftz.f(float %.0328, float noundef 0x3FE62E4300000000, float %.0337) #135 %1900 = call float @llvm.fma.f32(float %.0328, float noundef 0x3FE62E4300000000, float %.0337) %.0343 = select i1 %.not164, float %1900, float %1899 %1901 = icmp ugt i32 %.pre-phi, 2139095039 br i1 %1901, label %__nv_fmaf_rn.exit.i.i558, label %__internal_accurate_logf.exit.i559 __nv_fmaf_rn.exit.i.i558: ; preds = %__nv_j1f.exit.i546 %1902 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not167 = icmp eq i32 %1902, 0 %1903 = call float @llvm.nvvm.fma.rn.ftz.f(float %.0439, float noundef 0x7FF0000000000000, float noundef 0x7FF0000000000000) #135 %1904 = call float @llvm.fma.f32(float %.0439, float noundef 0x7FF0000000000000, float noundef 0x7FF0000000000000) %.0350 = select i1 %.not167, float %1904, float %1903 br label %__internal_accurate_logf.exit.i559 __internal_accurate_logf.exit.i559: ; preds = %__nv_fmaf_rn.exit.i.i558, %__nv_j1f.exit.i546 %r.i5.i445.0 = phi float [ %.0350, %__nv_fmaf_rn.exit.i.i558 ], [ %.0343, %__nv_j1f.exit.i546 ] %1905 = fcmp oeq float %.0439, 0.000000e+00 %r.i5.i445.1 = select i1 %1905, float 0xFFF0000000000000, float %r.i5.i445.0 %1906 = fdiv float -1.000000e+00, %.0439 %1907 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not165 = icmp eq i32 %1907, 0 %1908 = call float @llvm.nvvm.fma.rn.ftz.f(float %r.i.i482.3, float %r.i5.i445.1, float %1906) #135 %1909 = call float @llvm.fma.f32(float %r.i.i482.3, float %r.i5.i445.1, float %1906) %.0298 = select i1 %.not165, float %1909, float %1908 %1910 = fmul float %.0298, 0x3FE45F3060000000 %1911 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not166 = icmp eq i32 %1911, 0 %1912 = call float @llvm.nvvm.fma.rn.ftz.f(float %.0446, float %.0439, float %1910) #135 %1913 = call float @llvm.fma.f32(float %.0446, float %.0439, float %1910) %.0292 = select i1 %.not166, float %1913, float %1912 br label %__nv_y1f.exit618 1914: ; preds = %1626 %1915 = fcmp ugt float %.0439, 0x400E81DDC0000000 br i1 %1915, label %1946, label %__internal_fmad.exit11.i562 __internal_fmad.exit11.i562: ; preds = %1914 %1916 = fadd float %.0439, 0xC00193BEE0000000 %1917 = fadd float %1916, 0x3E76401B80000000 %1918 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not113 = icmp eq i32 %1918, 0 %1919 = call float @llvm.nvvm.fma.rn.ftz.f(float noundef 0xBEF13C53A0000000, float %1917, float noundef 0x3F20C95100000000) #135 %1920 = call float @llvm.fma.f32(float %1917, float noundef 0xBEF13C53A0000000, float noundef 0x3F20C95100000000) %.0290 = select i1 %.not113, float %1920, float %1919 %1921 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not114 = icmp eq i32 %1921, 0 %1922 = call float @llvm.nvvm.fma.rn.ftz.f(float %.0290, float %1917, float noundef 0xBF3E1561A0000000) #135 %1923 = call float @llvm.fma.f32(float %.0290, float %1917, float noundef 0xBF3E1561A0000000) %.0283 = select i1 %.not114, float %1923, float %1922 %1924 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not115 = icmp eq i32 %1924, 0 %1925 = call float @llvm.nvvm.fma.rn.ftz.f(float %.0283, float %1917, float noundef 0x3F51EC2040000000) #135 %1926 = call float @llvm.fma.f32(float %.0283, float %1917, float noundef 0x3F51EC2040000000) %.0277 = select i1 %.not115, float %1926, float %1925 %1927 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not116 = icmp eq i32 %1927, 0 %1928 = call float @llvm.nvvm.fma.rn.ftz.f(float %.0277, float %1917, float noundef 0xBF658E08A0000000) #135 %1929 = call float @llvm.fma.f32(float %.0277, float %1917, float noundef 0xBF658E08A0000000) %.0276 = select i1 %.not116, float %1929, float %1928 %1930 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not117 = icmp eq i32 %1930, 0 %1931 = call float @llvm.nvvm.fma.rn.ftz.f(float %.0276, float %1917, float noundef 0x3F7E6BBEE0000000) #135 %1932 = call float @llvm.fma.f32(float %.0276, float %1917, float noundef 0x3F7E6BBEE0000000) %.0271 = select i1 %.not117, float %1932, float %1931 %1933 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not118 = icmp eq i32 %1933, 0 %1934 = call float @llvm.nvvm.fma.rn.ftz.f(float %.0271, float %1917, float noundef 0xBF73A12F80000000) #135 %1935 = call float @llvm.fma.f32(float %.0271, float %1917, float noundef 0xBF73A12F80000000) %.0267 = select i1 %.not118, float %1935, float %1934 %1936 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not119 = icmp eq i32 %1936, 0 %1937 = call float @llvm.nvvm.fma.rn.ftz.f(float %.0267, float %1917, float noundef 0xBFA0D2D140000000) #135 %1938 = call float @llvm.fma.f32(float %.0267, float %1917, float noundef 0xBFA0D2D140000000) %.0262 = select i1 %.not119, float %1938, float %1937 %1939 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not120 = icmp eq i32 %1939, 0 %1940 = call float @llvm.nvvm.fma.rn.ftz.f(float %.0262, float %1917, float noundef 0xBFBE56FBE0000000) #135 %1941 = call float @llvm.fma.f32(float %.0262, float %1917, float noundef 0xBFBE56FBE0000000) %.0255 = select i1 %.not120, float %1941, float %1940 %1942 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not121 = icmp eq i32 %1942, 0 %1943 = call float @llvm.nvvm.fma.rn.ftz.f(float %.0255, float %1917, float noundef 0x3FE0AA4840000000) #135 %1944 = call float @llvm.fma.f32(float %.0255, float %1917, float noundef 0x3FE0AA4840000000) %.0248 = select i1 %.not121, float %1944, float %1943 %1945 = fmul float %1917, %.0248 br label %__nv_y1f.exit618 1946: ; preds = %1914 %1947 = fcmp ugt float %.0439, 0x401C0D26E0000000 br i1 %1947, label %1978, label %__internal_fmad.exit29.i571 __internal_fmad.exit29.i571: ; preds = %1946 %1948 = fadd float %.0439, 0xC015B7FE40000000 %1949 = fadd float %1948, 0xBE8D0F6060000000 %1950 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not104 = icmp eq i32 %1950, 0 %1951 = call float @llvm.nvvm.fma.rn.ftz.f(float noundef 0x3E57CAFA00000000, float %1949, float noundef 0xBEA11482C0000000) #135 %1952 = call float @llvm.fma.f32(float %1949, float noundef 0x3E57CAFA00000000, float noundef 0xBEA11482C0000000) %.0241 = select i1 %.not104, float %1952, float %1951 %1953 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not105 = icmp eq i32 %1953, 0 %1954 = call float @llvm.nvvm.fma.rn.ftz.f(float %.0241, float %1949, float noundef 0xBEC7F14280000000) #135 %1955 = call float @llvm.fma.f32(float %.0241, float %1949, float noundef 0xBEC7F14280000000) %.0234 = select i1 %.not105, float %1955, float %1954 %1956 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not106 = icmp eq i32 %1956, 0 %1957 = call float @llvm.nvvm.fma.rn.ftz.f(float %.0234, float %1949, float noundef 0x3F084FC040000000) #135 %1958 = call float @llvm.fma.f32(float %.0234, float %1949, float noundef 0x3F084FC040000000) %.0227 = select i1 %.not106, float %1958, float %1957 %1959 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not107 = icmp eq i32 %1959, 0 %1960 = call float @llvm.nvvm.fma.rn.ftz.f(float %.0227, float %1949, float noundef 0x3F23376380000000) #135 %1961 = call float @llvm.fma.f32(float %.0227, float %1949, float noundef 0x3F23376380000000) %.0220 = select i1 %.not107, float %1961, float %1960 %1962 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not108 = icmp eq i32 %1962, 0 %1963 = call float @llvm.nvvm.fma.rn.ftz.f(float %.0220, float %1949, float noundef 0xBF61BE3FA0000000) #135 %1964 = call float @llvm.fma.f32(float %.0220, float %1949, float noundef 0xBF61BE3FA0000000) %.0213 = select i1 %.not108, float %1964, float %1963 %1965 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not109 = icmp eq i32 %1965, 0 %1966 = call float @llvm.nvvm.fma.rn.ftz.f(float %.0213, float %1949, float noundef 0xBF710A3120000000) #135 %1967 = call float @llvm.fma.f32(float %.0213, float %1949, float noundef 0xBF710A3120000000) %.0208 = select i1 %.not109, float %1967, float %1966 %1968 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not110 = icmp eq i32 %1968, 0 %1969 = call float @llvm.nvvm.fma.rn.ftz.f(float %.0208, float %1949, float noundef 0x3FAA15D820000000) #135 %1970 = call float @llvm.fma.f32(float %.0208, float %1949, float noundef 0x3FAA15D820000000) %.0207 = select i1 %.not110, float %1970, float %1969 %1971 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not111 = icmp eq i32 %1971, 0 %1972 = call float @llvm.nvvm.fma.rn.ftz.f(float %.0207, float %1949, float noundef 0x3FA00B9F80000000) #135 %1973 = call float @llvm.fma.f32(float %.0207, float %1949, float noundef 0x3FA00B9F80000000) %.0201 = select i1 %.not111, float %1973, float %1972 %1974 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not112 = icmp eq i32 %1974, 0 %1975 = call float @llvm.nvvm.fma.rn.ftz.f(float %.0201, float %1949, float noundef 0xBFD5C7C560000000) #135 %1976 = call float @llvm.fma.f32(float %.0201, float %1949, float noundef 0xBFD5C7C560000000) %.0198 = select i1 %.not112, float %1976, float %1975 %1977 = fmul float %1949, %.0198 br label %__nv_y1f.exit618 1978: ; preds = %1946 %1979 = fcmp ugt float %.0439, 0x4024585C60000000 br i1 %1979, label %__nv_isinff.exit.i588, label %__internal_fmad.exit47.i580 __internal_fmad.exit47.i580: ; preds = %1978 %1980 = fadd float %.0439, 0xC0213127A0000000 %1981 = fadd float %1980, 0xBE9CC2D360000000 %1982 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not96 = icmp eq i32 %1982, 0 %1983 = call float @llvm.nvvm.fma.rn.ftz.f(float noundef 0x3EA19E7060000000, float %1981, float noundef 0x3EC05205C0000000) #135 %1984 = call float @llvm.fma.f32(float %1981, float noundef 0x3EA19E7060000000, float noundef 0x3EC05205C0000000) %.0192 = select i1 %.not96, float %1984, float %1983 %1985 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not97 = icmp eq i32 %1985, 0 %1986 = call float @llvm.nvvm.fma.rn.ftz.f(float %.0192, float %1981, float noundef 0xBF06EBEE20000000) #135 %1987 = call float @llvm.fma.f32(float %.0192, float %1981, float noundef 0xBF06EBEE20000000) %.0185 = select i1 %.not97, float %1987, float %1986 %1988 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not98 = icmp eq i32 %1988, 0 %1989 = call float @llvm.nvvm.fma.rn.ftz.f(float %.0185, float %1981, float noundef 0xBF1B3F5500000000) #135 %1990 = call float @llvm.fma.f32(float %.0185, float %1981, float noundef 0xBF1B3F5500000000) %.0178 = select i1 %.not98, float %1990, float %1989 %1991 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not99 = icmp eq i32 %1991, 0 %1992 = call float @llvm.nvvm.fma.rn.ftz.f(float %.0178, float %1981, float noundef 0x3F607A3340000000) #135 %1993 = call float @llvm.fma.f32(float %.0178, float %1981, float noundef 0x3F607A3340000000) %.0171 = select i1 %.not99, float %1993, float %1992 %1994 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not100 = icmp eq i32 %1994, 0 %1995 = call float @llvm.nvvm.fma.rn.ftz.f(float %.0171, float %1981, float noundef 0x3F63CE6DA0000000) #135 %1996 = call float @llvm.fma.f32(float %.0171, float %1981, float noundef 0x3F63CE6DA0000000) %.0167 = select i1 %.not100, float %1996, float %1995 %1997 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not101 = icmp eq i32 %1997, 0 %1998 = call float @llvm.nvvm.fma.rn.ftz.f(float %.0167, float %1981, float noundef 0xBFA6395CA0000000) #135 %1999 = call float @llvm.fma.f32(float %.0167, float %1981, float noundef 0xBFA6395CA0000000) %.0160 = select i1 %.not101, float %1999, float %1998 %2000 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not102 = icmp eq i32 %2000, 0 %2001 = call float @llvm.nvvm.fma.rn.ftz.f(float %.0160, float %1981, float noundef 0xBF902B36C0000000) #135 %2002 = call float @llvm.fma.f32(float %.0160, float %1981, float noundef 0xBF902B36C0000000) %.0154 = select i1 %.not102, float %2002, float %2001 %2003 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not103 = icmp eq i32 %2003, 0 %2004 = call float @llvm.nvvm.fma.rn.ftz.f(float %.0154, float %1981, float noundef 0x3FD15F9940000000) #135 %2005 = call float @llvm.fma.f32(float %.0154, float %1981, float noundef 0x3FD15F9940000000) %.0149 = select i1 %.not103, float %2005, float %2004 %2006 = fmul float %1981, %.0149 br label %__nv_y1f.exit618 __nv_isinff.exit.i588: ; preds = %1978 %2007 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not62 = icmp eq i32 %2007, 0 %2008 = call float @llvm.nvvm.fabs.ftz.f(float %.0439) #135 %2009 = call float @llvm.fabs.f32(float %.0439) %.0146 = select i1 %.not62, float %2009, float %2008 %2010 = fcmp oeq float %.0146, 0x7FF0000000000000 br i1 %2010, label %__nv_y1f.exit618, label %__internal_fmad.exit66.i589 __internal_fmad.exit66.i589: ; preds = %__nv_isinff.exit.i588 %2011 = call float asm "rcp.approx.ftz.f32 $0,$1;", "=f,f"(float %.0439) #137, !srcloc !225 %2012 = fmul float %2011, %2011 %2013 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not63 = icmp eq i32 %2013, 0 %2014 = call float @llvm.nvvm.fma.rn.ftz.f(float noundef 0x3FE4CFEC00000000, float %2012, float noundef 0xBFC8957200000000) #135 %2015 = call float @llvm.fma.f32(float %2012, float noundef 0x3FE4CFEC00000000, float noundef 0xBFC8957200000000) %.0140 = select i1 %.not63, float %2015, float %2014 %2016 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not64 = icmp eq i32 %2016, 0 %2017 = call float @llvm.nvvm.fma.rn.ftz.f(float %.0140, float %2012, float noundef 0x3FC7FFD7E0000000) #135 %2018 = call float @llvm.fma.f32(float %.0140, float %2012, float noundef 0x3FC7FFD7E0000000) %.0134 = select i1 %.not64, float %2018, float %2017 %2019 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not65 = icmp eq i32 %2019, 0 %2020 = call float @llvm.nvvm.fma.rn.ftz.f(float %.0134, float %2012, float noundef 1.000000e+00) #135 %2021 = call float @llvm.fma.f32(float %.0134, float %2012, float noundef 1.000000e+00) %.0132 = select i1 %.not65, float %2021, float %2020 %2022 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not66 = icmp eq i32 %2022, 0 %2023 = call float @llvm.nvvm.fma.rn.ftz.f(float noundef 0xBFFC9C3560000000, float %2012, float noundef 0x3FD76E7560000000) #135 %2024 = call float @llvm.fma.f32(float %2012, float noundef 0xBFFC9C3560000000, float noundef 0x3FD76E7560000000) %.0128 = select i1 %.not66, float %2024, float %2023 %2025 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not67 = icmp eq i32 %2025, 0 %2026 = call float @llvm.nvvm.fma.rn.ftz.f(float %.0128, float %2012, float noundef 0xBFC4FF6DC0000000) #135 %2027 = call float @llvm.fma.f32(float %.0128, float %2012, float noundef 0xBFC4FF6DC0000000) %.0123 = select i1 %.not67, float %2027, float %2026 %2028 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not68 = icmp eq i32 %2028, 0 %2029 = call float @llvm.nvvm.fma.rn.ftz.f(float %.0123, float %2012, float noundef 0x3FD7FFFFE0000000) #135 %2030 = call float @llvm.fma.f32(float %.0123, float %2012, float noundef 0x3FD7FFFFE0000000) %.0119 = select i1 %.not68, float %2030, float %2029 %2031 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not69 = icmp eq i32 %2031, 0 %2032 = call float @llvm.nvvm.fma.rn.ftz.f(float %.0119, float %2011, float %.0439) #135 %2033 = call float @llvm.fma.f32(float %.0119, float %2011, float %.0439) %.0112 = select i1 %.not69, float %2033, float %2032 %2034 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not70 = icmp eq i32 %2034, 0 br i1 %.not70, label %2037, label %2035 2035: ; preds = %__internal_fmad.exit66.i589 %2036 = call float @llvm.nvvm.rsqrt.approx.ftz.f(float %.0439) #135 br label %__nv_rsqrtf.exit.i596 2037: ; preds = %__internal_fmad.exit66.i589 %2038 = call float @llvm.nvvm.rsqrt.approx.f(float %.0439) #135 br label %__nv_rsqrtf.exit.i596 __nv_rsqrtf.exit.i596: ; preds = %2037, %2035 %.0110 = phi float [ %2036, %2035 ], [ %2038, %2037 ] %2039 = fmul float %.0110, 0x3FE9884540000000 %2040 = fmul float %.0132, %2039 %2041 = fmul float %.0112, 0x3FE45F3060000000 %2042 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not71 = icmp eq i32 %2042, 0 %2043 = call i32 @llvm.nvvm.f2i.rn.ftz(float %2041) #135 %2044 = call i32 @llvm.nvvm.f2i.rn(float %2041) #135 %.0103 = select i1 %.not71, i32 %2044, i32 %2043 %2045 = sitofp i32 %.0103 to float %2046 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not72 = icmp eq i32 %2046, 0 %2047 = call float @llvm.nvvm.fma.rn.ftz.f(float %2045, float noundef 0xBFF921FB40000000, float %.0112) #135 %2048 = call float @llvm.fma.f32(float %2045, float noundef 0xBFF921FB40000000, float %.0112) %.099 = select i1 %.not72, float %2048, float %2047 %2049 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not73 = icmp eq i32 %2049, 0 %2050 = call float @llvm.nvvm.fma.rn.ftz.f(float %2045, float noundef 0xBE74442D00000000, float %.099) #135 %2051 = call float @llvm.fma.f32(float %2045, float noundef 0xBE74442D00000000, float %.099) %.095 = select i1 %.not73, float %2051, float %2050 %2052 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not74 = icmp eq i32 %2052, 0 %2053 = call float @llvm.nvvm.fma.rn.ftz.f(float %2045, float noundef 0xBCF84698A0000000, float %.095) #135 %2054 = call float @llvm.fma.f32(float %2045, float noundef 0xBCF84698A0000000, float %.095) %.091 = select i1 %.not74, float %2054, float %2053 %2055 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not75 = icmp eq i32 %2055, 0 %2056 = call float @llvm.nvvm.fabs.ftz.f(float %.0112) #135 %2057 = call float @llvm.fabs.f32(float %.0112) %.089 = select i1 %.not75, float %2057, float %2056 %2058 = fcmp ult float %.089, 1.056150e+05 br i1 %2058, label %__internal_trig_reduction_kernel.exit.i.i605, label %__nv_isinff.exit.i.i.i602 __nv_isinff.exit.i.i.i602: ; preds = %__nv_rsqrtf.exit.i596 %2059 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not89 = icmp eq i32 %2059, 0 %.086 = select i1 %.not89, float %2057, float %2056 %2060 = fcmp oeq float %.086, 0x7FF0000000000000 br i1 %2060, label %__nv_fmul_rn.exit.i.i.i603, label %2064 __nv_fmul_rn.exit.i.i.i603: ; preds = %__nv_isinff.exit.i.i.i602 %2061 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not95 = icmp eq i32 %2061, 0 %2062 = call float @llvm.nvvm.mul.rn.ftz.f(float %.0112, float noundef 0.000000e+00) #135 %2063 = fmul float %.0112, 0.000000e+00 %.081 = select i1 %.not95, float %2063, float %2062 br label %__internal_trig_reduction_kernel.exit.i.i605 2064: ; preds = %__nv_isinff.exit.i.i.i602 %2065 = bitcast float %.0112 to i32 %2066 = lshr i32 %2065, 23 %2067 = and i32 %2066, 255 %2068 = shl i32 %2065, 8 %2069 = or i32 %2068, -2147483648 br label %2070 2070: ; preds = %2064, %2070 %hi.i.i.i.i417.0539 = phi i32 [ 0, %2064 ], [ %2075, %2070 ] %iq.i.i.i.i422.0538 = phi i32 [ 0, %2064 ], [ %2077, %2070 ] %2071 = getelementptr inbounds [6 x i32], [6 x i32] addrspace(1)* @__cudart_i2opi_f, i32 0, i32 %iq.i.i.i.i422.0538 %2072 = load i32, i32 addrspace(1)* %2071, align 4 %2073 = call { i32, i32 } asm "{\0A\09mad.lo.cc.u32 $0, $2, $3, $4;\0A\09madc.hi.u32 $1, $2, $3, 0;\0A\09}", "=r,=r,r,r,r"(i32 %2072, i32 %2069, i32 %hi.i.i.i.i417.0539) #137, !srcloc !222 %2074 = extractvalue { i32, i32 } %2073, 0 %2075 = extractvalue { i32, i32 } %2073, 1 %2076 = getelementptr inbounds [7 x i32], [7 x i32]* %result.i.i.i.i.i, i32 0, i32 %iq.i.i.i.i422.0538 store i32 %2074, i32* %2076, align 4, !noalias !219 %2077 = add nuw nsw i32 %iq.i.i.i.i422.0538, 1 %exitcond574.not = icmp eq i32 %2077, 6 br i1 %exitcond574.not, label %2078, label %2070, !llvm.loop !223 2078: ; preds = %2070 %2079 = add nsw i32 %2067, -128 %2080 = lshr i32 %2079, 5 %2081 = and i32 %2065, -2147483648 %2082 = getelementptr inbounds [7 x i32], [7 x i32]* %result.i.i.i.i.i, i32 0, i32 6 store i32 %2075, i32* %2082, align 4, !noalias !219 %2083 = and i32 %2066, 31 %2084 = sub nsw i32 6, %2080 %2085 = getelementptr inbounds [7 x i32], [7 x i32]* %result.i.i.i.i.i, i32 0, i32 %2084 %2086 = load i32, i32* %2085, align 4 %2087 = sub nsw i32 5, %2080 %2088 = getelementptr inbounds [7 x i32], [7 x i32]* %result.i.i.i.i.i, i32 0, i32 %2087 %2089 = load i32, i32* %2088, align 4 %.not90 = icmp eq i32 %2083, 0 br i1 %.not90, label %__internal_trig_reduction_slowpath.exit.i.i.i604, label %2090 2090: ; preds = %2078 %2091 = sub nsw i32 4, %2080 %2092 = sub nuw nsw i32 32, %2083 %2093 = shl i32 %2086, %2083 %2094 = lshr i32 %2089, %2092 %2095 = add i32 %2094, %2093 %2096 = shl i32 %2089, %2083 %2097 = getelementptr inbounds [7 x i32], [7 x i32]* %result.i.i.i.i.i, i32 0, i32 %2091 %2098 = load i32, i32* %2097, align 4 %2099 = lshr i32 %2098, %2092 %2100 = add i32 %2099, %2096 br label %__internal_trig_reduction_slowpath.exit.i.i.i604 __internal_trig_reduction_slowpath.exit.i.i.i604: ; preds = %2090, %2078 %lo.i.i.i.i418.0 = phi i32 [ %2100, %2090 ], [ %2089, %2078 ] %hi.i.i.i.i417.1 = phi i32 [ %2095, %2090 ], [ %2086, %2078 ] %2101 = lshr i32 %hi.i.i.i.i417.1, 30 %2102 = call i32 @llvm.fshl.i32(i32 %hi.i.i.i.i417.1, i32 %lo.i.i.i.i418.0, i32 noundef 2) %2103 = shl i32 %lo.i.i.i.i418.0, 2 %2104 = lshr i32 %2102, 31 %2105 = add nuw nsw i32 %2104, %2101 %.not91 = icmp eq i32 %2081, 0 %2106 = sub nsw i32 0, %2105 %spec.select7 = select i1 %.not91, i32 %2105, i32 %2106 %.not92 = icmp sgt i32 %2102, -1 %2107 = xor i32 %2081, -2147483648 %not..not92 = xor i1 %.not92, true %2108 = sext i1 %not..not92 to i32 %lo.i.i.i.i418.1 = xor i32 %2103, %2108 %hi.i.i.i.i417.2 = xor i32 %2102, %2108 %s.i.i.i.i416.0 = select i1 %.not92, i32 %2081, i32 %2107 %2109 = zext i32 %hi.i.i.i.i417.2 to i64 %2110 = shl nuw i64 %2109, 32 %2111 = zext i32 %lo.i.i.i.i418.1 to i64 %2112 = or i64 %2110, %2111 %2113 = sitofp i64 %2112 to double %2114 = fmul double %2113, 0x3BF921FB54442D19 %2115 = fptrunc double %2114 to float %.not94 = icmp eq i32 %s.i.i.i.i416.0, 0 %2116 = fneg float %2115 %r.i.i.i.i426.0 = select i1 %.not94, float %2115, float %2116 br label %__internal_trig_reduction_kernel.exit.i.i605 __internal_trig_reduction_kernel.exit.i.i605: ; preds = %__nv_fmul_rn.exit.i.i.i603, %__internal_trig_reduction_slowpath.exit.i.i.i604, %__nv_rsqrtf.exit.i596 %i.i81.i432.1 = phi i32 [ %.0103, %__nv_rsqrtf.exit.i596 ], [ 0, %__nv_fmul_rn.exit.i.i.i603 ], [ %spec.select7, %__internal_trig_reduction_slowpath.exit.i.i.i604 ] %t.i.i.i429.1 = phi float [ %.091, %__nv_rsqrtf.exit.i596 ], [ %.081, %__nv_fmul_rn.exit.i.i.i603 ], [ %r.i.i.i.i426.0, %__internal_trig_reduction_slowpath.exit.i.i.i604 ] %2117 = and i32 %i.i81.i432.1, 3 %2118 = uitofp i32 %2117 to float %2119 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not76 = icmp eq i32 %2119, 0 %2120 = call float @llvm.nvvm.fma.rn.ftz.f(float %2118, float noundef 0x3FF921FB60000000, float noundef 0xC00F6A7A20000000) #135 %2121 = call float @llvm.fma.f32(float %2118, float noundef 0x3FF921FB60000000, float noundef 0xC00F6A7A20000000) %.060 = select i1 %.not76, float %2121, float %2120 %2122 = fadd float %t.i.i.i429.1, %.060 %2123 = fmul float %2122, 0x3FE45F3060000000 %2124 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not77 = icmp eq i32 %2124, 0 %2125 = call i32 @llvm.nvvm.f2i.rn.ftz(float %2123) #135 %2126 = call i32 @llvm.nvvm.f2i.rn(float %2123) #135 %.058 = select i1 %.not77, i32 %2126, i32 %2125 %2127 = sitofp i32 %.058 to float %2128 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not78 = icmp eq i32 %2128, 0 %2129 = call float @llvm.nvvm.fma.rn.ftz.f(float %2127, float noundef 0xBFF921FB40000000, float %2122) #135 %2130 = call float @llvm.fma.f32(float %2127, float noundef 0xBFF921FB40000000, float %2122) %.054 = select i1 %.not78, float %2130, float %2129 %2131 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not79 = icmp eq i32 %2131, 0 %2132 = call float @llvm.nvvm.fma.rn.ftz.f(float %2127, float noundef 0xBE74442D00000000, float %.054) #135 %2133 = call float @llvm.fma.f32(float %2127, float noundef 0xBE74442D00000000, float %.054) %.051 = select i1 %.not79, float %2133, float %2132 %2134 = add i32 %.058, 1 %2135 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not80 = icmp eq i32 %2135, 0 %2136 = call float @llvm.nvvm.mul.rn.ftz.f(float %.051, float %.051) #135 %2137 = fmul float %.051, %.051 %.047 = select i1 %.not80, float %2137, float %2136 %2138 = and i32 %2134, 1 %.not81 = icmp eq i32 %2138, 0 %2139 = select i1 %.not81, float %.051, float 1.000000e+00 %2140 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not82 = icmp eq i32 %2140, 0 %2141 = call float @llvm.nvvm.fma.rn.ftz.f(float %.047, float %2139, float noundef 0.000000e+00) #135 %2142 = call float @llvm.fma.f32(float %.047, float %2139, float noundef 0.000000e+00) %.043 = select i1 %.not82, float %2142, float %2141 br i1 %.not81, label %__internal_fmad.exit2.i.i.i613, label %__internal_fmad.exit1.i.i.i612 __internal_fmad.exit1.i.i.i612: ; preds = %__internal_trig_reduction_kernel.exit.i.i605 %2143 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not88 = icmp eq i32 %2143, 0 %2144 = call float @llvm.nvvm.fma.rn.ftz.f(float noundef 0x3EF9758000000000, float %.047, float noundef 0xBF56C0FDA0000000) #135 %2145 = call float @llvm.fma.f32(float %.047, float noundef 0x3EF9758000000000, float noundef 0xBF56C0FDA0000000) %.038 = select i1 %.not88, float %2145, float %2144 br label %__internal_fmad.exit2.i.i.i613 __internal_fmad.exit2.i.i.i613: ; preds = %__internal_trig_reduction_kernel.exit.i.i605, %__internal_fmad.exit1.i.i.i612 %2146 = phi float [ 0xBFC5555500000000, %__internal_trig_reduction_kernel.exit.i.i605 ], [ 0xBFDFFFFFE0000000, %__internal_fmad.exit1.i.i.i612 ] %2147 = phi float [ 0x3F8110BC80000000, %__internal_trig_reduction_kernel.exit.i.i605 ], [ 0x3FA5555760000000, %__internal_fmad.exit1.i.i.i612 ] %2148 = phi float [ 0xBF29A82A60000000, %__internal_trig_reduction_kernel.exit.i.i605 ], [ %.038, %__internal_fmad.exit1.i.i.i612 ] %2149 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not83 = icmp eq i32 %2149, 0 %2150 = call float @llvm.nvvm.fma.rn.ftz.f(float %2148, float %.047, float noundef %2147) #135 %2151 = call float @llvm.fma.f32(float %2148, float %.047, float noundef %2147) %.034 = select i1 %.not83, float %2151, float %2150 %2152 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not84 = icmp eq i32 %2152, 0 %2153 = call float @llvm.nvvm.fma.rn.ftz.f(float %.034, float %.047, float noundef %2146) #135 %2154 = call float @llvm.fma.f32(float %.034, float %.047, float noundef %2146) %.027 = select i1 %.not84, float %2154, float %2153 %2155 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not85 = icmp eq i32 %2155, 0 %2156 = call float @llvm.nvvm.fma.rn.ftz.f(float %.027, float %.043, float %2139) #135 %2157 = call float @llvm.fma.f32(float %.027, float %.043, float %2139) %.020 = select i1 %.not85, float %2157, float %2156 %2158 = and i32 %2134, 2 %.not86 = icmp eq i32 %2158, 0 br i1 %.not86, label %__internal_cos_offset_f.exit.i617, label %__internal_fmad.exit5.i.i.i616 __internal_fmad.exit5.i.i.i616: ; preds = %__internal_fmad.exit2.i.i.i613 %2159 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not87 = icmp eq i32 %2159, 0 %2160 = call float @llvm.nvvm.fma.rn.ftz.f(float %.020, float noundef -1.000000e+00, float noundef 0.000000e+00) #135 %2161 = call float @llvm.fma.f32(float %.020, float noundef -1.000000e+00, float noundef 0.000000e+00) %.013 = select i1 %.not87, float %2161, float %2160 br label %__internal_cos_offset_f.exit.i617 __internal_cos_offset_f.exit.i617: ; preds = %__internal_fmad.exit5.i.i.i616, %__internal_fmad.exit2.i.i.i613 %z.i.i79.i409.0 = phi float [ %.013, %__internal_fmad.exit5.i.i.i616 ], [ %.020, %__internal_fmad.exit2.i.i.i613 ] %2162 = fmul float %2040, %z.i.i79.i409.0 br label %__nv_y1f.exit618 __nv_y1f.exit618: ; preds = %__internal_accurate_logf.exit.i559, %__internal_fmad.exit29.i571, %__internal_cos_offset_f.exit.i617, %__nv_isinff.exit.i588, %__internal_fmad.exit47.i580, %__internal_fmad.exit11.i562, %1624 %r.i489.5 = phi float [ %1625, %1624 ], [ %.0292, %__internal_accurate_logf.exit.i559 ], [ %1945, %__internal_fmad.exit11.i562 ], [ %1977, %__internal_fmad.exit29.i571 ], [ %2006, %__internal_fmad.exit47.i580 ], [ %2162, %__internal_cos_offset_f.exit.i617 ], [ 0.000000e+00, %__nv_isinff.exit.i588 ] %r.i489.6 = select i1 %543, float 0x7FFFFFFFE0000000, float %r.i489.5 br label %2198 2163: ; preds = %__nv_y0f.exit %2164 = icmp slt i32 %n, 0 %2165 = fcmp ult float %a, 0.000000e+00 %or.cond = select i1 %2164, i1 true, i1 %2165 br i1 %or.cond, label %2198, label %__nv_fabsf.exit __nv_fabsf.exit: ; preds = %2163 %2166 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not320 = icmp eq i32 %2166, 0 %.08 = select i1 %.not320, float %2, float %1 %2167 = fcmp olt float %.08, 0x3810000000000000 br i1 %2167, label %__nv_fabsf.exit620, label %__internal_fmad.exit.lr.ph __nv_fabsf.exit620: ; preds = %__nv_fabsf.exit %2168 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not323 = icmp eq i32 %2168, 0 %.06 = select i1 %.not323, float %2, float %1 %2169 = fdiv float -1.000000e+09, %.06 br label %2198 __internal_fmad.exit.lr.ph: ; preds = %__nv_fabsf.exit %2170 = fdiv float 2.000000e+00, %a %2171 = add nsw i32 %n, -1 %xtraiter = and i32 %2171, 1 %2172 = icmp eq i32 %n, 2 br i1 %2172, label %.__nv_isnanf.exit_crit_edge.unr-lcssa, label %__internal_fmad.exit.lr.ph.new __internal_fmad.exit.lr.ph.new: ; preds = %__internal_fmad.exit.lr.ph %unroll_iter = and i32 %2171, -2 br label %__internal_fmad.exit __internal_fmad.exit: ; preds = %__internal_fmad.exit, %__internal_fmad.exit.lr.ph.new %i.0533 = phi i32 [ 1, %__internal_fmad.exit.lr.ph.new ], [ %2186, %__internal_fmad.exit ] %yim1.0532 = phi float [ %r.i75.5, %__internal_fmad.exit.lr.ph.new ], [ %.02, %__internal_fmad.exit ] %yi.0531 = phi float [ %r.i.6, %__internal_fmad.exit.lr.ph.new ], [ %.02.1, %__internal_fmad.exit ] %niter = phi i32 [ 0, %__internal_fmad.exit.lr.ph.new ], [ %niter.next.1, %__internal_fmad.exit ] %2173 = sitofp i32 %i.0533 to float %2174 = fmul float %2170, %2173 %2175 = fneg float %yim1.0532 %2176 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not322 = icmp eq i32 %2176, 0 %2177 = call float @llvm.nvvm.fma.rn.ftz.f(float %2174, float %yi.0531, float %2175) #135 %2178 = call float @llvm.fma.f32(float %2174, float %yi.0531, float %2175) %.02 = select i1 %.not322, float %2178, float %2177 %2179 = add nuw nsw i32 %i.0533, 1 %2180 = sitofp i32 %2179 to float %2181 = fmul float %2170, %2180 %2182 = fneg float %yi.0531 %2183 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not322.1 = icmp eq i32 %2183, 0 %2184 = call float @llvm.nvvm.fma.rn.ftz.f(float %2181, float %.02, float %2182) #135 %2185 = call float @llvm.fma.f32(float %2181, float %.02, float %2182) %.02.1 = select i1 %.not322.1, float %2185, float %2184 %2186 = add nuw nsw i32 %i.0533, 2 %niter.next.1 = add i32 %niter, 2 %niter.ncmp.1.not = icmp eq i32 %niter.next.1, %unroll_iter br i1 %niter.ncmp.1.not, label %.__nv_isnanf.exit_crit_edge.unr-lcssa.loopexit, label %__internal_fmad.exit .__nv_isnanf.exit_crit_edge.unr-lcssa.loopexit: ; preds = %__internal_fmad.exit %2187 = or i32 %2171, 1 %phi.cast = sitofp i32 %2187 to float br label %.__nv_isnanf.exit_crit_edge.unr-lcssa .__nv_isnanf.exit_crit_edge.unr-lcssa: ; preds = %.__nv_isnanf.exit_crit_edge.unr-lcssa.loopexit, %__internal_fmad.exit.lr.ph %.02.lcssa.ph = phi float [ undef, %__internal_fmad.exit.lr.ph ], [ %.02.1, %.__nv_isnanf.exit_crit_edge.unr-lcssa.loopexit ] %i.0533.unr = phi float [ 1.000000e+00, %__internal_fmad.exit.lr.ph ], [ %phi.cast, %.__nv_isnanf.exit_crit_edge.unr-lcssa.loopexit ] %yim1.0532.unr = phi float [ %r.i75.5, %__internal_fmad.exit.lr.ph ], [ %.02, %.__nv_isnanf.exit_crit_edge.unr-lcssa.loopexit ] %yi.0531.unr = phi float [ %r.i.6, %__internal_fmad.exit.lr.ph ], [ %.02.1, %.__nv_isnanf.exit_crit_edge.unr-lcssa.loopexit ] %lcmp.mod.not = icmp eq i32 %xtraiter, 0 br i1 %lcmp.mod.not, label %__nv_isnanf.exit, label %__internal_fmad.exit.epil.preheader __internal_fmad.exit.epil.preheader: ; preds = %.__nv_isnanf.exit_crit_edge.unr-lcssa %2188 = fmul float %2170, %i.0533.unr %2189 = fneg float %yim1.0532.unr %2190 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not322.epil = icmp eq i32 %2190, 0 %2191 = call float @llvm.nvvm.fma.rn.ftz.f(float %2188, float %yi.0531.unr, float %2189) #135 %2192 = call float @llvm.fma.f32(float %2188, float %yi.0531.unr, float %2189) %.02.epil = select i1 %.not322.epil, float %2192, float %2191 br label %__nv_isnanf.exit __nv_isnanf.exit: ; preds = %__internal_fmad.exit.epil.preheader, %.__nv_isnanf.exit_crit_edge.unr-lcssa %yip1.0.lcssa = phi float [ %.02.lcssa.ph, %.__nv_isnanf.exit_crit_edge.unr-lcssa ], [ %.02.epil, %__internal_fmad.exit.epil.preheader ] %2193 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not321 = icmp eq i32 %2193, 0 %2194 = call float @llvm.nvvm.fabs.ftz.f(float %yip1.0.lcssa) #135 %2195 = call float @llvm.fabs.f32(float %yip1.0.lcssa) %.0 = select i1 %.not321, float %2195, float %2194 %2196 = fcmp ugt float %.0, 0x7FF0000000000000 br i1 %2196, label %2197, label %2198 2197: ; preds = %__nv_isnanf.exit br label %2198 2198: ; preds = %2163, %__nv_isnanf.exit, %2197, %__nv_fabsf.exit620, %__nv_y1f.exit618, %__nv_y0f.exit406 %.01 = phi float [ %r.i274.5, %__nv_y0f.exit406 ], [ %r.i489.6, %__nv_y1f.exit618 ], [ %2169, %__nv_fabsf.exit620 ], [ 0xFFF0000000000000, %2197 ], [ %yip1.0.lcssa, %__nv_isnanf.exit ], [ 0x7FFFFFFFE0000000, %2163 ] ret float %.01 } ; Function Attrs: noinline nounwind define dso_local float @__nv_jnf(i32 %n, float %a) local_unnamed_addr #45 { %result.i.i.i.i = alloca [7 x i32], align 4 switch i32 %n, label %429 [ i32 0, label %__nv_fabsf.exit.i i32 1, label %__nv_fabsf.exit.i40 ] __nv_fabsf.exit.i: ; preds = %0 %1 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not52 = icmp eq i32 %1, 0 %2 = call float @llvm.nvvm.fabs.ftz.f(float %a) #135 %3 = call float @llvm.fabs.f32(float %a) %.05 = select i1 %.not52, float %3, float %2 %4 = fcmp ugt float %.05, 8.000000e+00 br i1 %4, label %__nv_isinff.exit.i, label %__internal_fmad.exit.i __internal_fmad.exit.i: ; preds = %__nv_fabsf.exit.i %5 = fadd float %.05, 0xC0033D1520000000 %6 = fadd float %5, 0xBE7D2E3660000000 %7 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not88 = icmp eq i32 %7, 0 %8 = call float @llvm.nvvm.fma.rn.ftz.f(float noundef 0xBCD6771CE0000000, float %6, float noundef 0xBD35953660000000) #135 %9 = call float @llvm.fma.f32(float %6, float noundef 0xBCD6771CE0000000, float noundef 0xBD35953660000000) %.06 = select i1 %.not88, float %9, float %8 %10 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not89 = icmp eq i32 %10, 0 %11 = call float @llvm.nvvm.fma.rn.ftz.f(float %.06, float %6, float noundef 0x3D87E1C300000000) #135 %12 = call float @llvm.fma.f32(float %.06, float %6, float noundef 0x3D87E1C300000000) %.07 = select i1 %.not89, float %12, float %11 %13 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not90 = icmp eq i32 %13, 0 %14 = call float @llvm.nvvm.fma.rn.ftz.f(float %.07, float %6, float noundef 0xBD9A82F020000000) #135 %15 = call float @llvm.fma.f32(float %.07, float %6, float noundef 0xBD9A82F020000000) %.09 = select i1 %.not90, float %15, float %14 %16 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not91 = icmp eq i32 %16, 0 %17 = call float @llvm.nvvm.fma.rn.ftz.f(float %.09, float %6, float noundef 0xBDFD21E700000000) #135 %18 = call float @llvm.fma.f32(float %.09, float %6, float noundef 0xBDFD21E700000000) %.010 = select i1 %.not91, float %18, float %17 %19 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not92 = icmp eq i32 %19, 0 %20 = call float @llvm.nvvm.fma.rn.ftz.f(float %.010, float %6, float noundef 0x3E04060B60000000) #135 %21 = call float @llvm.fma.f32(float %.010, float %6, float noundef 0x3E04060B60000000) %.011 = select i1 %.not92, float %21, float %20 %22 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not93 = icmp eq i32 %22, 0 %23 = call float @llvm.nvvm.fma.rn.ftz.f(float %.011, float %6, float noundef 0x3E6F2E2860000000) #135 %24 = call float @llvm.fma.f32(float %.011, float %6, float noundef 0x3E6F2E2860000000) %.012 = select i1 %.not93, float %24, float %23 %25 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not94 = icmp eq i32 %25, 0 %26 = call float @llvm.nvvm.fma.rn.ftz.f(float %.012, float %6, float noundef 0x3E1EEDF0A0000000) #135 %27 = call float @llvm.fma.f32(float %.012, float %6, float noundef 0x3E1EEDF0A0000000) %.013 = select i1 %.not94, float %27, float %26 %28 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not95 = icmp eq i32 %28, 0 %29 = call float @llvm.nvvm.fma.rn.ftz.f(float %.013, float %6, float noundef 0xBED6DBF8C0000000) #135 %30 = call float @llvm.fma.f32(float %.013, float %6, float noundef 0xBED6DBF8C0000000) %.014 = select i1 %.not95, float %30, float %29 %31 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not96 = icmp eq i32 %31, 0 %32 = call float @llvm.nvvm.fma.rn.ftz.f(float %.014, float %6, float noundef 0xBEDECCB920000000) #135 %33 = call float @llvm.fma.f32(float %.014, float %6, float noundef 0xBEDECCB920000000) %.016 = select i1 %.not96, float %33, float %32 %34 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not97 = icmp eq i32 %34, 0 %35 = call float @llvm.nvvm.fma.rn.ftz.f(float %.016, float %6, float noundef 0x3F33C5BD60000000) #135 %36 = call float @llvm.fma.f32(float %.016, float %6, float noundef 0x3F33C5BD60000000) %.017 = select i1 %.not97, float %36, float %35 %37 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not98 = icmp eq i32 %37, 0 %38 = call float @llvm.nvvm.fma.rn.ftz.f(float %.017, float %6, float noundef 0x3F495C6680000000) #135 %39 = call float @llvm.fma.f32(float %.017, float %6, float noundef 0x3F495C6680000000) %.018 = select i1 %.not98, float %39, float %38 %40 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not99 = icmp eq i32 %40, 0 %41 = call float @llvm.nvvm.fma.rn.ftz.f(float %.018, float %6, float noundef 0xBF7DD54360000000) #135 %42 = call float @llvm.fma.f32(float %.018, float %6, float noundef 0xBF7DD54360000000) %.019 = select i1 %.not99, float %42, float %41 %43 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not100 = icmp eq i32 %43, 0 %44 = call float @llvm.nvvm.fma.rn.ftz.f(float %.019, float %6, float noundef 0xBF9B4EE8E0000000) #135 %45 = call float @llvm.fma.f32(float %.019, float %6, float noundef 0xBF9B4EE8E0000000) %.020 = select i1 %.not100, float %45, float %44 %46 = fmul float %6, %.020 %47 = fadd float %.05, 0xC016148F60000000 %48 = fadd float %47, 0x3E734F46E0000000 %49 = fmul float %48, %46 %50 = fadd float %.05, 0xC0214EB560000000 %51 = fadd float %50, 0xBE9999BDA0000000 %52 = fmul float %51, %49 br label %__nv_j0f.exit __nv_isinff.exit.i: ; preds = %__nv_fabsf.exit.i %53 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not53 = icmp eq i32 %53, 0 %54 = call float @llvm.nvvm.fabs.ftz.f(float %.05) #135 %55 = call float @llvm.fabs.f32(float %.05) %.021 = select i1 %.not53, float %55, float %54 %56 = fcmp oeq float %.021, 0x7FF0000000000000 br i1 %56, label %__nv_j0f.exit, label %__internal_fmad.exit13.i __internal_fmad.exit13.i: ; preds = %__nv_isinff.exit.i %57 = call float asm "rcp.approx.ftz.f32 $0,$1;", "=f,f"(float %.05) #137, !srcloc !225 %58 = fmul float %57, %57 %59 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not54 = icmp eq i32 %59, 0 %60 = call float @llvm.nvvm.fma.rn.ftz.f(float noundef 0x400ADFD260000000, float %58, float noundef 0xBFE076F840000000) #135 %61 = call float @llvm.fma.f32(float %58, float noundef 0x400ADFD260000000, float noundef 0xBFE076F840000000) %.023 = select i1 %.not54, float %61, float %60 %62 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not55 = icmp eq i32 %62, 0 %63 = call float @llvm.nvvm.fma.rn.ftz.f(float %.023, float %58, float noundef 0x3FBA767E60000000) #135 %64 = call float @llvm.fma.f32(float %.023, float %58, float noundef 0x3FBA767E60000000) %.024 = select i1 %.not55, float %64, float %63 %65 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not56 = icmp eq i32 %65, 0 %66 = call float @llvm.nvvm.fma.rn.ftz.f(float %.024, float %58, float noundef 0xBFAFFFF6C0000000) #135 %67 = call float @llvm.fma.f32(float %.024, float %58, float noundef 0xBFAFFFF6C0000000) %.025 = select i1 %.not56, float %67, float %66 %68 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not57 = icmp eq i32 %68, 0 %69 = call float @llvm.nvvm.fma.rn.ftz.f(float %.025, float %58, float noundef 1.000000e+00) #135 %70 = call float @llvm.fma.f32(float %.025, float %58, float noundef 1.000000e+00) %.026 = select i1 %.not57, float %70, float %69 %71 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not58 = icmp eq i32 %71, 0 %72 = call float @llvm.nvvm.fma.rn.ftz.f(float noundef 0x3FF23C0120000000, float %58, float noundef 0xBFCA4825A0000000) #135 %73 = call float @llvm.fma.f32(float %58, float noundef 0x3FF23C0120000000, float noundef 0xBFCA4825A0000000) %.027 = select i1 %.not58, float %73, float %72 %74 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not59 = icmp eq i32 %74, 0 %75 = call float @llvm.nvvm.fma.rn.ftz.f(float %.027, float %58, float noundef 0x3FB0A9DA20000000) #135 %76 = call float @llvm.fma.f32(float %.027, float %58, float noundef 0x3FB0A9DA20000000) %.028 = select i1 %.not59, float %76, float %75 %77 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not60 = icmp eq i32 %77, 0 %78 = call float @llvm.nvvm.fma.rn.ftz.f(float %.028, float %58, float noundef 0xBFBFFFFFE0000000) #135 %79 = call float @llvm.fma.f32(float %.028, float %58, float noundef 0xBFBFFFFFE0000000) %.030 = select i1 %.not60, float %79, float %78 %80 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not61 = icmp eq i32 %80, 0 %81 = call float @llvm.nvvm.fma.rn.ftz.f(float %.030, float %57, float %.05) #135 %82 = call float @llvm.fma.f32(float %.030, float %57, float %.05) %.031 = select i1 %.not61, float %82, float %81 %83 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not62 = icmp eq i32 %83, 0 br i1 %.not62, label %86, label %84 84: ; preds = %__internal_fmad.exit13.i %85 = call float @llvm.nvvm.rsqrt.approx.ftz.f(float %.05) #135 br label %__nv_rsqrtf.exit.i 86: ; preds = %__internal_fmad.exit13.i %87 = call float @llvm.nvvm.rsqrt.approx.f(float %.05) #135 br label %__nv_rsqrtf.exit.i __nv_rsqrtf.exit.i: ; preds = %86, %84 %.032 = phi float [ %85, %84 ], [ %87, %86 ] %88 = fmul float %.032, 0x3FE9884540000000 %89 = fmul float %.026, %88 %90 = fmul float %.031, 0x3FE45F3060000000 %91 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not63 = icmp eq i32 %91, 0 %92 = call i32 @llvm.nvvm.f2i.rn.ftz(float %90) #135 %93 = call i32 @llvm.nvvm.f2i.rn(float %90) #135 %.034 = select i1 %.not63, i32 %93, i32 %92 %94 = sitofp i32 %.034 to float %95 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not64 = icmp eq i32 %95, 0 %96 = call float @llvm.nvvm.fma.rn.ftz.f(float %94, float noundef 0xBFF921FB40000000, float %.031) #135 %97 = call float @llvm.fma.f32(float %94, float noundef 0xBFF921FB40000000, float %.031) %.035 = select i1 %.not64, float %97, float %96 %98 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not65 = icmp eq i32 %98, 0 %99 = call float @llvm.nvvm.fma.rn.ftz.f(float %94, float noundef 0xBE74442D00000000, float %.035) #135 %100 = call float @llvm.fma.f32(float %94, float noundef 0xBE74442D00000000, float %.035) %.036 = select i1 %.not65, float %100, float %99 %101 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not66 = icmp eq i32 %101, 0 %102 = call float @llvm.nvvm.fma.rn.ftz.f(float %94, float noundef 0xBCF84698A0000000, float %.036) #135 %103 = call float @llvm.fma.f32(float %94, float noundef 0xBCF84698A0000000, float %.036) %.037 = select i1 %.not66, float %103, float %102 %104 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not67 = icmp eq i32 %104, 0 %105 = call float @llvm.nvvm.fabs.ftz.f(float %.031) #135 %106 = call float @llvm.fabs.f32(float %.031) %.039 = select i1 %.not67, float %106, float %105 %107 = fcmp ult float %.039, 1.056150e+05 br i1 %107, label %__internal_trig_reduction_kernel.exit.i.i, label %__nv_isinff.exit.i.i.i __nv_isinff.exit.i.i.i: ; preds = %__nv_rsqrtf.exit.i %108 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not81 = icmp eq i32 %108, 0 %.040 = select i1 %.not81, float %106, float %105 %109 = fcmp oeq float %.040, 0x7FF0000000000000 br i1 %109, label %__nv_fmul_rn.exit.i.i.i, label %113 __nv_fmul_rn.exit.i.i.i: ; preds = %__nv_isinff.exit.i.i.i %110 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not87 = icmp eq i32 %110, 0 %111 = call float @llvm.nvvm.mul.rn.ftz.f(float %.031, float noundef 0.000000e+00) #135 %112 = fmul float %.031, 0.000000e+00 %.041 = select i1 %.not87, float %112, float %111 br label %__internal_trig_reduction_kernel.exit.i.i 113: ; preds = %__nv_isinff.exit.i.i.i %114 = bitcast float %.031 to i32 %115 = lshr i32 %114, 23 %116 = and i32 %115, 255 %117 = shl i32 %114, 8 %118 = or i32 %117, -2147483648 br label %119 119: ; preds = %113, %119 %iq.i.i.i.i.0221 = phi i32 [ 0, %113 ], [ %126, %119 ] %hi.i.i.i.i.0220 = phi i32 [ 0, %113 ], [ %124, %119 ] %120 = getelementptr inbounds [6 x i32], [6 x i32] addrspace(1)* @__cudart_i2opi_f, i32 0, i32 %iq.i.i.i.i.0221 %121 = load i32, i32 addrspace(1)* %120, align 4 %122 = call { i32, i32 } asm "{\0A\09mad.lo.cc.u32 $0, $2, $3, $4;\0A\09madc.hi.u32 $1, $2, $3, 0;\0A\09}", "=r,=r,r,r,r"(i32 %121, i32 %118, i32 %hi.i.i.i.i.0220) #137, !srcloc !222 %123 = extractvalue { i32, i32 } %122, 0 %124 = extractvalue { i32, i32 } %122, 1 %125 = getelementptr inbounds [7 x i32], [7 x i32]* %result.i.i.i.i, i32 0, i32 %iq.i.i.i.i.0221 store i32 %123, i32* %125, align 4, !noalias !219 %126 = add nuw nsw i32 %iq.i.i.i.i.0221, 1 %exitcond236.not = icmp eq i32 %126, 6 br i1 %exitcond236.not, label %127, label %119, !llvm.loop !223 127: ; preds = %119 %128 = add nsw i32 %116, -128 %129 = lshr i32 %128, 5 %130 = and i32 %114, -2147483648 %131 = getelementptr inbounds [7 x i32], [7 x i32]* %result.i.i.i.i, i32 0, i32 6 store i32 %124, i32* %131, align 4, !noalias !219 %132 = and i32 %115, 31 %133 = sub nsw i32 6, %129 %134 = getelementptr inbounds [7 x i32], [7 x i32]* %result.i.i.i.i, i32 0, i32 %133 %135 = load i32, i32* %134, align 4 %136 = sub nsw i32 5, %129 %137 = getelementptr inbounds [7 x i32], [7 x i32]* %result.i.i.i.i, i32 0, i32 %136 %138 = load i32, i32* %137, align 4 %.not82 = icmp eq i32 %132, 0 br i1 %.not82, label %__internal_trig_reduction_slowpath.exit.i.i.i, label %139 139: ; preds = %127 %140 = sub nsw i32 4, %129 %141 = sub nuw nsw i32 32, %132 %142 = shl i32 %135, %132 %143 = lshr i32 %138, %141 %144 = add i32 %143, %142 %145 = shl i32 %138, %132 %146 = getelementptr inbounds [7 x i32], [7 x i32]* %result.i.i.i.i, i32 0, i32 %140 %147 = load i32, i32* %146, align 4 %148 = lshr i32 %147, %141 %149 = add i32 %148, %145 br label %__internal_trig_reduction_slowpath.exit.i.i.i __internal_trig_reduction_slowpath.exit.i.i.i: ; preds = %139, %127 %hi.i.i.i.i.1 = phi i32 [ %144, %139 ], [ %135, %127 ] %lo.i.i.i.i.0 = phi i32 [ %149, %139 ], [ %138, %127 ] %150 = lshr i32 %hi.i.i.i.i.1, 30 %151 = call i32 @llvm.fshl.i32(i32 %hi.i.i.i.i.1, i32 %lo.i.i.i.i.0, i32 noundef 2) %152 = shl i32 %lo.i.i.i.i.0, 2 %153 = lshr i32 %151, 31 %154 = add nuw nsw i32 %153, %150 %.not83 = icmp eq i32 %130, 0 %155 = sub nsw i32 0, %154 %spec.select = select i1 %.not83, i32 %154, i32 %155 %.not84 = icmp sgt i32 %151, -1 %156 = xor i32 %130, -2147483648 %s.i.i.i.i.0 = select i1 %.not84, i32 %130, i32 %156 %not..not84 = xor i1 %.not84, true %157 = sext i1 %not..not84 to i32 %hi.i.i.i.i.2 = xor i32 %151, %157 %lo.i.i.i.i.1 = xor i32 %152, %157 %158 = zext i32 %hi.i.i.i.i.2 to i64 %159 = shl nuw i64 %158, 32 %160 = zext i32 %lo.i.i.i.i.1 to i64 %161 = or i64 %159, %160 %162 = sitofp i64 %161 to double %163 = fmul double %162, 0x3BF921FB54442D19 %164 = fptrunc double %163 to float %.not86 = icmp eq i32 %s.i.i.i.i.0, 0 %165 = fneg float %164 %r.i.i.i.i.0 = select i1 %.not86, float %164, float %165 br label %__internal_trig_reduction_kernel.exit.i.i __internal_trig_reduction_kernel.exit.i.i: ; preds = %__nv_fmul_rn.exit.i.i.i, %__internal_trig_reduction_slowpath.exit.i.i.i, %__nv_rsqrtf.exit.i %i.i.i.1 = phi i32 [ %.034, %__nv_rsqrtf.exit.i ], [ 0, %__nv_fmul_rn.exit.i.i.i ], [ %spec.select, %__internal_trig_reduction_slowpath.exit.i.i.i ] %t.i.i.i.1 = phi float [ %.037, %__nv_rsqrtf.exit.i ], [ %.041, %__nv_fmul_rn.exit.i.i.i ], [ %r.i.i.i.i.0, %__internal_trig_reduction_slowpath.exit.i.i.i ] %166 = and i32 %i.i.i.1, 3 %167 = uitofp i32 %166 to float %168 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not68 = icmp eq i32 %168, 0 %169 = call float @llvm.nvvm.fma.rn.ftz.f(float %167, float noundef 0x3FF921FB60000000, float noundef 0xBFE921FB60000000) #135 %170 = call float @llvm.fma.f32(float %167, float noundef 0x3FF921FB60000000, float noundef 0xBFE921FB60000000) %.044 = select i1 %.not68, float %170, float %169 %171 = fadd float %t.i.i.i.1, %.044 %172 = fmul float %171, 0x3FE45F3060000000 %173 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not69 = icmp eq i32 %173, 0 %174 = call i32 @llvm.nvvm.f2i.rn.ftz(float %172) #135 %175 = call i32 @llvm.nvvm.f2i.rn(float %172) #135 %.045 = select i1 %.not69, i32 %175, i32 %174 %176 = sitofp i32 %.045 to float %177 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not70 = icmp eq i32 %177, 0 %178 = call float @llvm.nvvm.fma.rn.ftz.f(float %176, float noundef 0xBFF921FB40000000, float %171) #135 %179 = call float @llvm.fma.f32(float %176, float noundef 0xBFF921FB40000000, float %171) %.046 = select i1 %.not70, float %179, float %178 %180 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not71 = icmp eq i32 %180, 0 %181 = call float @llvm.nvvm.fma.rn.ftz.f(float %176, float noundef 0xBE74442D00000000, float %.046) #135 %182 = call float @llvm.fma.f32(float %176, float noundef 0xBE74442D00000000, float %.046) %.048 = select i1 %.not71, float %182, float %181 %183 = add i32 %.045, 1 %184 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not72 = icmp eq i32 %184, 0 %185 = call float @llvm.nvvm.mul.rn.ftz.f(float %.048, float %.048) #135 %186 = fmul float %.048, %.048 %.050 = select i1 %.not72, float %186, float %185 %187 = and i32 %183, 1 %.not73 = icmp eq i32 %187, 0 %188 = select i1 %.not73, float %.048, float 1.000000e+00 %189 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not74 = icmp eq i32 %189, 0 %190 = call float @llvm.nvvm.fma.rn.ftz.f(float %.050, float %188, float noundef 0.000000e+00) #135 %191 = call float @llvm.fma.f32(float %.050, float %188, float noundef 0.000000e+00) %.051 = select i1 %.not74, float %191, float %190 br i1 %.not73, label %__internal_fmad.exit2.i.i.i, label %__internal_fmad.exit1.i.i.i __internal_fmad.exit1.i.i.i: ; preds = %__internal_trig_reduction_kernel.exit.i.i %192 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not80 = icmp eq i32 %192, 0 %193 = call float @llvm.nvvm.fma.rn.ftz.f(float noundef 0x3EF9758000000000, float %.050, float noundef 0xBF56C0FDA0000000) #135 %194 = call float @llvm.fma.f32(float %.050, float noundef 0x3EF9758000000000, float noundef 0xBF56C0FDA0000000) %.052 = select i1 %.not80, float %194, float %193 br label %__internal_fmad.exit2.i.i.i __internal_fmad.exit2.i.i.i: ; preds = %__internal_trig_reduction_kernel.exit.i.i, %__internal_fmad.exit1.i.i.i %195 = phi float [ 0xBFC5555500000000, %__internal_trig_reduction_kernel.exit.i.i ], [ 0xBFDFFFFFE0000000, %__internal_fmad.exit1.i.i.i ] %196 = phi float [ 0x3F8110BC80000000, %__internal_trig_reduction_kernel.exit.i.i ], [ 0x3FA5555760000000, %__internal_fmad.exit1.i.i.i ] %197 = phi float [ 0xBF29A82A60000000, %__internal_trig_reduction_kernel.exit.i.i ], [ %.052, %__internal_fmad.exit1.i.i.i ] %198 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not75 = icmp eq i32 %198, 0 %199 = call float @llvm.nvvm.fma.rn.ftz.f(float %197, float %.050, float noundef %196) #135 %200 = call float @llvm.fma.f32(float %197, float %.050, float noundef %196) %.053 = select i1 %.not75, float %200, float %199 %201 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not76 = icmp eq i32 %201, 0 %202 = call float @llvm.nvvm.fma.rn.ftz.f(float %.053, float %.050, float noundef %195) #135 %203 = call float @llvm.fma.f32(float %.053, float %.050, float noundef %195) %.054 = select i1 %.not76, float %203, float %202 %204 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not77 = icmp eq i32 %204, 0 %205 = call float @llvm.nvvm.fma.rn.ftz.f(float %.054, float %.051, float %188) #135 %206 = call float @llvm.fma.f32(float %.054, float %.051, float %188) %.055 = select i1 %.not77, float %206, float %205 %207 = and i32 %183, 2 %.not78 = icmp eq i32 %207, 0 br i1 %.not78, label %__internal_cos_offset_f.exit.i, label %__internal_fmad.exit5.i.i.i __internal_fmad.exit5.i.i.i: ; preds = %__internal_fmad.exit2.i.i.i %208 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not79 = icmp eq i32 %208, 0 %209 = call float @llvm.nvvm.fma.rn.ftz.f(float %.055, float noundef -1.000000e+00, float noundef 0.000000e+00) #135 %210 = call float @llvm.fma.f32(float %.055, float noundef -1.000000e+00, float noundef 0.000000e+00) %.056 = select i1 %.not79, float %210, float %209 br label %__internal_cos_offset_f.exit.i __internal_cos_offset_f.exit.i: ; preds = %__internal_fmad.exit5.i.i.i, %__internal_fmad.exit2.i.i.i %z.i.i.i.0 = phi float [ %.056, %__internal_fmad.exit5.i.i.i ], [ %.055, %__internal_fmad.exit2.i.i.i ] %211 = fmul float %89, %z.i.i.i.0 br label %__nv_j0f.exit __nv_fabsf.exit.i40: ; preds = %0 %212 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not = icmp eq i32 %212, 0 %213 = call float @llvm.nvvm.fabs.ftz.f(float %a) #135 %214 = call float @llvm.fabs.f32(float %a) %.057 = select i1 %.not, float %214, float %213 %215 = fcmp ugt float %.057, 8.000000e+00 br i1 %215, label %__nv_isinff.exit.i53, label %__internal_fmad.exit.i41 __internal_fmad.exit.i41: ; preds = %__nv_fabsf.exit.i40 %216 = fadd float %.057, 0xC00EA75580000000 %217 = fadd float %216, 0x3E74A121E0000000 %218 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not40 = icmp eq i32 %218, 0 %219 = call float @llvm.nvvm.fma.rn.ftz.f(float noundef 0x3D35E68C60000000, float %217, float noundef 0x3D7037E840000000) #135 %220 = call float @llvm.fma.f32(float %217, float noundef 0x3D35E68C60000000, float noundef 0x3D7037E840000000) %.058 = select i1 %.not40, float %220, float %219 %221 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not41 = icmp eq i32 %221, 0 %222 = call float @llvm.nvvm.fma.rn.ftz.f(float %.058, float %217, float noundef 0xBDBC43D820000000) #135 %223 = call float @llvm.fma.f32(float %.058, float %217, float noundef 0xBDBC43D820000000) %.059 = select i1 %.not41, float %223, float %222 %224 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not42 = icmp eq i32 %224, 0 %225 = call float @llvm.nvvm.fma.rn.ftz.f(float %.059, float %217, float noundef 0xBDEBBBDFE0000000) #135 %226 = call float @llvm.fma.f32(float %.059, float %217, float noundef 0xBDEBBBDFE0000000) %.060 = select i1 %.not42, float %226, float %225 %227 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not43 = icmp eq i32 %227, 0 %228 = call float @llvm.nvvm.fma.rn.ftz.f(float %.060, float %217, float noundef 0x3E336193A0000000) #135 %229 = call float @llvm.fma.f32(float %.060, float %217, float noundef 0x3E336193A0000000) %.061 = select i1 %.not43, float %229, float %228 %230 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not44 = icmp eq i32 %230, 0 %231 = call float @llvm.nvvm.fma.rn.ftz.f(float %.061, float %217, float noundef 0x3E5D022E60000000) #135 %232 = call float @llvm.fma.f32(float %.061, float %217, float noundef 0x3E5D022E60000000) %.062 = select i1 %.not44, float %232, float %231 %233 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not45 = icmp eq i32 %233, 0 %234 = call float @llvm.nvvm.fma.rn.ftz.f(float %.062, float %217, float noundef 0xBEA1F1B900000000) #135 %235 = call float @llvm.fma.f32(float %.062, float %217, float noundef 0xBEA1F1B900000000) %.063 = select i1 %.not45, float %235, float %234 %236 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not46 = icmp eq i32 %236, 0 %237 = call float @llvm.nvvm.fma.rn.ftz.f(float %.063, float %217, float noundef 0xBEC3CCA7A0000000) #135 %238 = call float @llvm.fma.f32(float %.063, float %217, float noundef 0xBEC3CCA7A0000000) %.064 = select i1 %.not46, float %238, float %237 %239 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not47 = icmp eq i32 %239, 0 %240 = call float @llvm.nvvm.fma.rn.ftz.f(float %.064, float %217, float noundef 0x3F059B38A0000000) #135 %241 = call float @llvm.fma.f32(float %.064, float %217, float noundef 0x3F059B38A0000000) %.065 = select i1 %.not47, float %241, float %240 %242 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not48 = icmp eq i32 %242, 0 %243 = call float @llvm.nvvm.fma.rn.ftz.f(float %.065, float %217, float noundef 0x3F1F3D6200000000) #135 %244 = call float @llvm.fma.f32(float %.065, float %217, float noundef 0x3F1F3D6200000000) %.066 = select i1 %.not48, float %244, float %243 %245 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not49 = icmp eq i32 %245, 0 %246 = call float @llvm.nvvm.fma.rn.ftz.f(float %.066, float %217, float noundef 0xBF5D9D7380000000) #135 %247 = call float @llvm.fma.f32(float %.066, float %217, float noundef 0xBF5D9D7380000000) %.067 = select i1 %.not49, float %247, float %246 %248 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not50 = icmp eq i32 %248, 0 %249 = call float @llvm.nvvm.fma.rn.ftz.f(float %.067, float %217, float noundef 0xBF64EDFFA0000000) #135 %250 = call float @llvm.fma.f32(float %.067, float %217, float noundef 0xBF64EDFFA0000000) %.068 = select i1 %.not50, float %250, float %249 %251 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not51 = icmp eq i32 %251, 0 %252 = call float @llvm.nvvm.fma.rn.ftz.f(float %.068, float %217, float noundef 0x3FA0E73260000000) #135 %253 = call float @llvm.fma.f32(float %.068, float %217, float noundef 0x3FA0E73260000000) %.070 = select i1 %.not51, float %253, float %252 %254 = fadd float %.057, 0xC01C0FF600000000 %255 = fadd float %254, 0x3E88971B60000000 %256 = fmul float %255, %.070 %257 = fmul float %217, %256 %258 = fmul float %.057, %257 br label %418 __nv_isinff.exit.i53: ; preds = %__nv_fabsf.exit.i40 %259 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not5 = icmp eq i32 %259, 0 %260 = call float @llvm.nvvm.fabs.ftz.f(float %.057) #135 %261 = call float @llvm.fabs.f32(float %.057) %.071 = select i1 %.not5, float %261, float %260 %262 = fcmp oeq float %.071, 0x7FF0000000000000 br i1 %262, label %418, label %__internal_fmad.exit12.i54 __internal_fmad.exit12.i54: ; preds = %__nv_isinff.exit.i53 %263 = call float asm "rcp.approx.ftz.f32 $0,$1;", "=f,f"(float %.057) #137, !srcloc !225 %264 = fmul float %263, %263 %265 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not6 = icmp eq i32 %265, 0 %266 = call float @llvm.nvvm.fma.rn.ftz.f(float noundef 0xC0105966E0000000, float %264, float noundef 0x3FE7FEFD20000000) #135 %267 = call float @llvm.fma.f32(float %264, float noundef 0xC0105966E0000000, float noundef 0x3FE7FEFD20000000) %.072 = select i1 %.not6, float %267, float %266 %268 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not7 = icmp eq i32 %268, 0 %269 = call float @llvm.nvvm.fma.rn.ftz.f(float %.072, float %264, float noundef 0xBFC8B175C0000000) #135 %270 = call float @llvm.fma.f32(float %.072, float %264, float noundef 0xBFC8B175C0000000) %.073 = select i1 %.not7, float %270, float %269 %271 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not8 = icmp eq i32 %271, 0 %272 = call float @llvm.nvvm.fma.rn.ftz.f(float %.073, float %264, float noundef 0x3FC7FFF160000000) #135 %273 = call float @llvm.fma.f32(float %.073, float %264, float noundef 0x3FC7FFF160000000) %.075 = select i1 %.not8, float %273, float %272 %274 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not9 = icmp eq i32 %274, 0 %275 = call float @llvm.nvvm.fma.rn.ftz.f(float %.075, float %264, float noundef 1.000000e+00) #135 %276 = call float @llvm.fma.f32(float %.075, float %264, float noundef 1.000000e+00) %.076 = select i1 %.not9, float %276, float %275 %277 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not10 = icmp eq i32 %277, 0 %278 = call float @llvm.nvvm.fma.rn.ftz.f(float noundef 0xBFF9477440000000, float %264, float noundef 0x3FD72295A0000000) #135 %279 = call float @llvm.fma.f32(float %264, float noundef 0xBFF9477440000000, float noundef 0x3FD72295A0000000) %.078 = select i1 %.not10, float %279, float %278 %280 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not11 = icmp eq i32 %280, 0 %281 = call float @llvm.nvvm.fma.rn.ftz.f(float %.078, float %264, float noundef 0xBFC4FE5D80000000) #135 %282 = call float @llvm.fma.f32(float %.078, float %264, float noundef 0xBFC4FE5D80000000) %.080 = select i1 %.not11, float %282, float %281 %283 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not12 = icmp eq i32 %283, 0 %284 = call float @llvm.nvvm.fma.rn.ftz.f(float %.080, float %264, float noundef 0x3FD7FFFFA0000000) #135 %285 = call float @llvm.fma.f32(float %.080, float %264, float noundef 0x3FD7FFFFA0000000) %.081 = select i1 %.not12, float %285, float %284 %286 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not13 = icmp eq i32 %286, 0 %287 = call float @llvm.nvvm.fma.rn.ftz.f(float %.081, float %263, float %.057) #135 %288 = call float @llvm.fma.f32(float %.081, float %263, float %.057) %.082 = select i1 %.not13, float %288, float %287 %289 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not14 = icmp eq i32 %289, 0 br i1 %.not14, label %292, label %290 290: ; preds = %__internal_fmad.exit12.i54 %291 = call float @llvm.nvvm.rsqrt.approx.ftz.f(float %.057) #135 br label %__nv_rsqrtf.exit.i62 292: ; preds = %__internal_fmad.exit12.i54 %293 = call float @llvm.nvvm.rsqrt.approx.f(float %.057) #135 br label %__nv_rsqrtf.exit.i62 __nv_rsqrtf.exit.i62: ; preds = %292, %290 %.084 = phi float [ %291, %290 ], [ %293, %292 ] %294 = fmul float %.084, 0x3FE9884540000000 %295 = fmul float %.076, %294 %296 = fmul float %.082, 0x3FE45F3060000000 %297 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not15 = icmp eq i32 %297, 0 %298 = call i32 @llvm.nvvm.f2i.rn.ftz(float %296) #135 %299 = call i32 @llvm.nvvm.f2i.rn(float %296) #135 %.087 = select i1 %.not15, i32 %299, i32 %298 %300 = sitofp i32 %.087 to float %301 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not16 = icmp eq i32 %301, 0 %302 = call float @llvm.nvvm.fma.rn.ftz.f(float %300, float noundef 0xBFF921FB40000000, float %.082) #135 %303 = call float @llvm.fma.f32(float %300, float noundef 0xBFF921FB40000000, float %.082) %.088 = select i1 %.not16, float %303, float %302 %304 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not17 = icmp eq i32 %304, 0 %305 = call float @llvm.nvvm.fma.rn.ftz.f(float %300, float noundef 0xBE74442D00000000, float %.088) #135 %306 = call float @llvm.fma.f32(float %300, float noundef 0xBE74442D00000000, float %.088) %.089 = select i1 %.not17, float %306, float %305 %307 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not18 = icmp eq i32 %307, 0 %308 = call float @llvm.nvvm.fma.rn.ftz.f(float %300, float noundef 0xBCF84698A0000000, float %.089) #135 %309 = call float @llvm.fma.f32(float %300, float noundef 0xBCF84698A0000000, float %.089) %.090 = select i1 %.not18, float %309, float %308 %310 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not19 = icmp eq i32 %310, 0 %311 = call float @llvm.nvvm.fabs.ftz.f(float %.082) #135 %312 = call float @llvm.fabs.f32(float %.082) %.091 = select i1 %.not19, float %312, float %311 %313 = fcmp ult float %.091, 1.056150e+05 br i1 %313, label %__internal_trig_reduction_kernel.exit.i.i71, label %__nv_isinff.exit.i.i.i68 __nv_isinff.exit.i.i.i68: ; preds = %__nv_rsqrtf.exit.i62 %314 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not33 = icmp eq i32 %314, 0 %.092 = select i1 %.not33, float %312, float %311 %315 = fcmp oeq float %.092, 0x7FF0000000000000 br i1 %315, label %__nv_fmul_rn.exit.i.i.i69, label %319 __nv_fmul_rn.exit.i.i.i69: ; preds = %__nv_isinff.exit.i.i.i68 %316 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not39 = icmp eq i32 %316, 0 %317 = call float @llvm.nvvm.mul.rn.ftz.f(float %.082, float noundef 0.000000e+00) #135 %318 = fmul float %.082, 0.000000e+00 %.094 = select i1 %.not39, float %318, float %317 br label %__internal_trig_reduction_kernel.exit.i.i71 319: ; preds = %__nv_isinff.exit.i.i.i68 %320 = bitcast float %.082 to i32 %321 = lshr i32 %320, 23 %322 = and i32 %321, 255 %323 = shl i32 %320, 8 %324 = or i32 %323, -2147483648 br label %325 325: ; preds = %319, %325 %iq.i.i.i.i18.0223 = phi i32 [ 0, %319 ], [ %332, %325 ] %hi.i.i.i.i13.0222 = phi i32 [ 0, %319 ], [ %330, %325 ] %326 = getelementptr inbounds [6 x i32], [6 x i32] addrspace(1)* @__cudart_i2opi_f, i32 0, i32 %iq.i.i.i.i18.0223 %327 = load i32, i32 addrspace(1)* %326, align 4 %328 = call { i32, i32 } asm "{\0A\09mad.lo.cc.u32 $0, $2, $3, $4;\0A\09madc.hi.u32 $1, $2, $3, 0;\0A\09}", "=r,=r,r,r,r"(i32 %327, i32 %324, i32 %hi.i.i.i.i13.0222) #137, !srcloc !222 %329 = extractvalue { i32, i32 } %328, 0 %330 = extractvalue { i32, i32 } %328, 1 %331 = getelementptr inbounds [7 x i32], [7 x i32]* %result.i.i.i.i, i32 0, i32 %iq.i.i.i.i18.0223 store i32 %329, i32* %331, align 4, !noalias !219 %332 = add nuw nsw i32 %iq.i.i.i.i18.0223, 1 %exitcond237.not = icmp eq i32 %332, 6 br i1 %exitcond237.not, label %333, label %325, !llvm.loop !223 333: ; preds = %325 %334 = add nsw i32 %322, -128 %335 = lshr i32 %334, 5 %336 = and i32 %320, -2147483648 %337 = getelementptr inbounds [7 x i32], [7 x i32]* %result.i.i.i.i, i32 0, i32 6 store i32 %330, i32* %337, align 4, !noalias !219 %338 = and i32 %321, 31 %339 = sub nsw i32 6, %335 %340 = getelementptr inbounds [7 x i32], [7 x i32]* %result.i.i.i.i, i32 0, i32 %339 %341 = load i32, i32* %340, align 4 %342 = sub nsw i32 5, %335 %343 = getelementptr inbounds [7 x i32], [7 x i32]* %result.i.i.i.i, i32 0, i32 %342 %344 = load i32, i32* %343, align 4 %.not34 = icmp eq i32 %338, 0 br i1 %.not34, label %__internal_trig_reduction_slowpath.exit.i.i.i70, label %345 345: ; preds = %333 %346 = sub nsw i32 4, %335 %347 = sub nuw nsw i32 32, %338 %348 = shl i32 %341, %338 %349 = lshr i32 %344, %347 %350 = add i32 %349, %348 %351 = shl i32 %344, %338 %352 = getelementptr inbounds [7 x i32], [7 x i32]* %result.i.i.i.i, i32 0, i32 %346 %353 = load i32, i32* %352, align 4 %354 = lshr i32 %353, %347 %355 = add i32 %354, %351 br label %__internal_trig_reduction_slowpath.exit.i.i.i70 __internal_trig_reduction_slowpath.exit.i.i.i70: ; preds = %345, %333 %hi.i.i.i.i13.1 = phi i32 [ %350, %345 ], [ %341, %333 ] %lo.i.i.i.i14.0 = phi i32 [ %355, %345 ], [ %344, %333 ] %356 = lshr i32 %hi.i.i.i.i13.1, 30 %357 = call i32 @llvm.fshl.i32(i32 %hi.i.i.i.i13.1, i32 %lo.i.i.i.i14.0, i32 noundef 2) %358 = shl i32 %lo.i.i.i.i14.0, 2 %359 = lshr i32 %357, 31 %360 = add nuw nsw i32 %359, %356 %.not35 = icmp eq i32 %336, 0 %361 = sub nsw i32 0, %360 %spec.select1 = select i1 %.not35, i32 %360, i32 %361 %.not36 = icmp sgt i32 %357, -1 %362 = xor i32 %336, -2147483648 %s.i.i.i.i11.0 = select i1 %.not36, i32 %336, i32 %362 %not..not36 = xor i1 %.not36, true %363 = sext i1 %not..not36 to i32 %hi.i.i.i.i13.2 = xor i32 %357, %363 %lo.i.i.i.i14.1 = xor i32 %358, %363 %364 = zext i32 %hi.i.i.i.i13.2 to i64 %365 = shl nuw i64 %364, 32 %366 = zext i32 %lo.i.i.i.i14.1 to i64 %367 = or i64 %365, %366 %368 = sitofp i64 %367 to double %369 = fmul double %368, 0x3BF921FB54442D19 %370 = fptrunc double %369 to float %.not38 = icmp eq i32 %s.i.i.i.i11.0, 0 %371 = fneg float %370 %r.i.i.i.i22.0 = select i1 %.not38, float %370, float %371 br label %__internal_trig_reduction_kernel.exit.i.i71 __internal_trig_reduction_kernel.exit.i.i71: ; preds = %__nv_fmul_rn.exit.i.i.i69, %__internal_trig_reduction_slowpath.exit.i.i.i70, %__nv_rsqrtf.exit.i62 %i.i.i28.1 = phi i32 [ %.087, %__nv_rsqrtf.exit.i62 ], [ 0, %__nv_fmul_rn.exit.i.i.i69 ], [ %spec.select1, %__internal_trig_reduction_slowpath.exit.i.i.i70 ] %t.i.i.i25.1 = phi float [ %.090, %__nv_rsqrtf.exit.i62 ], [ %.094, %__nv_fmul_rn.exit.i.i.i69 ], [ %r.i.i.i.i22.0, %__internal_trig_reduction_slowpath.exit.i.i.i70 ] %372 = and i32 %i.i.i28.1, 3 %373 = uitofp i32 %372 to float %374 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not20 = icmp eq i32 %374, 0 %375 = call float @llvm.nvvm.fma.rn.ftz.f(float %373, float noundef 0x3FF921FB60000000, float noundef 0xC002D97C80000000) #135 %376 = call float @llvm.fma.f32(float %373, float noundef 0x3FF921FB60000000, float noundef 0xC002D97C80000000) %.097 = select i1 %.not20, float %376, float %375 %377 = fadd float %t.i.i.i25.1, %.097 %378 = fmul float %377, 0x3FE45F3060000000 %379 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not21 = icmp eq i32 %379, 0 %380 = call i32 @llvm.nvvm.f2i.rn.ftz(float %378) #135 %381 = call i32 @llvm.nvvm.f2i.rn(float %378) #135 %.098 = select i1 %.not21, i32 %381, i32 %380 %382 = sitofp i32 %.098 to float %383 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not22 = icmp eq i32 %383, 0 %384 = call float @llvm.nvvm.fma.rn.ftz.f(float %382, float noundef 0xBFF921FB40000000, float %377) #135 %385 = call float @llvm.fma.f32(float %382, float noundef 0xBFF921FB40000000, float %377) %.099 = select i1 %.not22, float %385, float %384 %386 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not23 = icmp eq i32 %386, 0 %387 = call float @llvm.nvvm.fma.rn.ftz.f(float %382, float noundef 0xBE74442D00000000, float %.099) #135 %388 = call float @llvm.fma.f32(float %382, float noundef 0xBE74442D00000000, float %.099) %.0100 = select i1 %.not23, float %388, float %387 %389 = add i32 %.098, 1 %390 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not24 = icmp eq i32 %390, 0 %391 = call float @llvm.nvvm.mul.rn.ftz.f(float %.0100, float %.0100) #135 %392 = fmul float %.0100, %.0100 %.0102 = select i1 %.not24, float %392, float %391 %393 = and i32 %389, 1 %.not25 = icmp eq i32 %393, 0 %394 = select i1 %.not25, float %.0100, float 1.000000e+00 %395 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not26 = icmp eq i32 %395, 0 %396 = call float @llvm.nvvm.fma.rn.ftz.f(float %.0102, float %394, float noundef 0.000000e+00) #135 %397 = call float @llvm.fma.f32(float %.0102, float %394, float noundef 0.000000e+00) %.0103 = select i1 %.not26, float %397, float %396 br i1 %.not25, label %__internal_fmad.exit2.i.i.i79, label %__internal_fmad.exit1.i.i.i78 __internal_fmad.exit1.i.i.i78: ; preds = %__internal_trig_reduction_kernel.exit.i.i71 %398 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not32 = icmp eq i32 %398, 0 %399 = call float @llvm.nvvm.fma.rn.ftz.f(float noundef 0x3EF9758000000000, float %.0102, float noundef 0xBF56C0FDA0000000) #135 %400 = call float @llvm.fma.f32(float %.0102, float noundef 0x3EF9758000000000, float noundef 0xBF56C0FDA0000000) %.0104 = select i1 %.not32, float %400, float %399 br label %__internal_fmad.exit2.i.i.i79 __internal_fmad.exit2.i.i.i79: ; preds = %__internal_trig_reduction_kernel.exit.i.i71, %__internal_fmad.exit1.i.i.i78 %401 = phi float [ 0xBFC5555500000000, %__internal_trig_reduction_kernel.exit.i.i71 ], [ 0xBFDFFFFFE0000000, %__internal_fmad.exit1.i.i.i78 ] %402 = phi float [ 0x3F8110BC80000000, %__internal_trig_reduction_kernel.exit.i.i71 ], [ 0x3FA5555760000000, %__internal_fmad.exit1.i.i.i78 ] %403 = phi float [ 0xBF29A82A60000000, %__internal_trig_reduction_kernel.exit.i.i71 ], [ %.0104, %__internal_fmad.exit1.i.i.i78 ] %404 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not27 = icmp eq i32 %404, 0 %405 = call float @llvm.nvvm.fma.rn.ftz.f(float %403, float %.0102, float noundef %402) #135 %406 = call float @llvm.fma.f32(float %403, float %.0102, float noundef %402) %.0105 = select i1 %.not27, float %406, float %405 %407 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not28 = icmp eq i32 %407, 0 %408 = call float @llvm.nvvm.fma.rn.ftz.f(float %.0105, float %.0102, float noundef %401) #135 %409 = call float @llvm.fma.f32(float %.0105, float %.0102, float noundef %401) %.0106 = select i1 %.not28, float %409, float %408 %410 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not29 = icmp eq i32 %410, 0 %411 = call float @llvm.nvvm.fma.rn.ftz.f(float %.0106, float %.0103, float %394) #135 %412 = call float @llvm.fma.f32(float %.0106, float %.0103, float %394) %.0108 = select i1 %.not29, float %412, float %411 %413 = and i32 %389, 2 %.not30 = icmp eq i32 %413, 0 br i1 %.not30, label %__internal_cos_offset_f.exit.i83, label %__internal_fmad.exit5.i.i.i82 __internal_fmad.exit5.i.i.i82: ; preds = %__internal_fmad.exit2.i.i.i79 %414 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not31 = icmp eq i32 %414, 0 %415 = call float @llvm.nvvm.fma.rn.ftz.f(float %.0108, float noundef -1.000000e+00, float noundef 0.000000e+00) #135 %416 = call float @llvm.fma.f32(float %.0108, float noundef -1.000000e+00, float noundef 0.000000e+00) %.0109 = select i1 %.not31, float %416, float %415 br label %__internal_cos_offset_f.exit.i83 __internal_cos_offset_f.exit.i83: ; preds = %__internal_fmad.exit5.i.i.i82, %__internal_fmad.exit2.i.i.i79 %z.i.i.i4.0 = phi float [ %.0109, %__internal_fmad.exit5.i.i.i82 ], [ %.0108, %__internal_fmad.exit2.i.i.i79 ] %417 = fmul float %295, %z.i.i.i4.0 br label %418 418: ; preds = %__internal_cos_offset_f.exit.i83, %__nv_isinff.exit.i53, %__internal_fmad.exit.i41 %r.i34.1 = phi float [ %258, %__internal_fmad.exit.i41 ], [ %417, %__internal_cos_offset_f.exit.i83 ], [ 0.000000e+00, %__nv_isinff.exit.i53 ] %419 = fcmp olt float %a, 0.000000e+00 %420 = fneg float %r.i34.1 %r.i34.2 = select i1 %419, float %420, float %r.i34.1 %421 = fcmp olt float %.057, 0x39B4484C00000000 br i1 %421, label %422, label %__nv_j0f.exit 422: ; preds = %418 %423 = bitcast float %a to i32 %424 = and i32 %423, -2147483648 %425 = bitcast float %r.i34.2 to i32 %426 = and i32 %425, 2147483647 %427 = or i32 %426, %424 %428 = bitcast i32 %427 to float br label %__nv_j0f.exit 429: ; preds = %0 %430 = icmp slt i32 %n, 0 br i1 %430, label %__nv_j0f.exit, label %__nv_fabsf.exit __nv_fabsf.exit: ; preds = %429 %431 = icmp ugt i32 %n, 4 %432 = zext i1 %431 to i32 %433 = add nuw nsw i32 %432, %n %434 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not101 = icmp eq i32 %434, 0 %435 = call float @llvm.nvvm.fabs.ftz.f(float %a) #135 %436 = call float @llvm.fabs.f32(float %a) %.0110 = select i1 %.not101, float %436, float %435 %437 = sitofp i32 %433 to float %438 = fcmp ogt float %.0110, %437 br i1 %438, label %__nv_fabsf.exit.i124, label %881 __nv_fabsf.exit.i124: ; preds = %__nv_fabsf.exit %439 = fdiv float 2.000000e+00, %a %440 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not107 = icmp eq i32 %440, 0 %.0112 = select i1 %.not107, float %436, float %435 %441 = fcmp ugt float %.0112, 8.000000e+00 br i1 %441, label %__nv_isinff.exit.i137, label %__internal_fmad.exit.i125 __internal_fmad.exit.i125: ; preds = %__nv_fabsf.exit.i124 %442 = fadd float %.0112, 0xC00EA75580000000 %443 = fadd float %442, 0x3E74A121E0000000 %444 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not193 = icmp eq i32 %444, 0 %445 = call float @llvm.nvvm.fma.rn.ftz.f(float noundef 0x3D35E68C60000000, float %443, float noundef 0x3D7037E840000000) #135 %446 = call float @llvm.fma.f32(float %443, float noundef 0x3D35E68C60000000, float noundef 0x3D7037E840000000) %.0113 = select i1 %.not193, float %446, float %445 %447 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not194 = icmp eq i32 %447, 0 %448 = call float @llvm.nvvm.fma.rn.ftz.f(float %.0113, float %443, float noundef 0xBDBC43D820000000) #135 %449 = call float @llvm.fma.f32(float %.0113, float %443, float noundef 0xBDBC43D820000000) %.0114 = select i1 %.not194, float %449, float %448 %450 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not195 = icmp eq i32 %450, 0 %451 = call float @llvm.nvvm.fma.rn.ftz.f(float %.0114, float %443, float noundef 0xBDEBBBDFE0000000) #135 %452 = call float @llvm.fma.f32(float %.0114, float %443, float noundef 0xBDEBBBDFE0000000) %.0115 = select i1 %.not195, float %452, float %451 %453 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not196 = icmp eq i32 %453, 0 %454 = call float @llvm.nvvm.fma.rn.ftz.f(float %.0115, float %443, float noundef 0x3E336193A0000000) #135 %455 = call float @llvm.fma.f32(float %.0115, float %443, float noundef 0x3E336193A0000000) %.0116 = select i1 %.not196, float %455, float %454 %456 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not197 = icmp eq i32 %456, 0 %457 = call float @llvm.nvvm.fma.rn.ftz.f(float %.0116, float %443, float noundef 0x3E5D022E60000000) #135 %458 = call float @llvm.fma.f32(float %.0116, float %443, float noundef 0x3E5D022E60000000) %.0117 = select i1 %.not197, float %458, float %457 %459 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not198 = icmp eq i32 %459, 0 %460 = call float @llvm.nvvm.fma.rn.ftz.f(float %.0117, float %443, float noundef 0xBEA1F1B900000000) #135 %461 = call float @llvm.fma.f32(float %.0117, float %443, float noundef 0xBEA1F1B900000000) %.0119 = select i1 %.not198, float %461, float %460 %462 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not199 = icmp eq i32 %462, 0 %463 = call float @llvm.nvvm.fma.rn.ftz.f(float %.0119, float %443, float noundef 0xBEC3CCA7A0000000) #135 %464 = call float @llvm.fma.f32(float %.0119, float %443, float noundef 0xBEC3CCA7A0000000) %.0120 = select i1 %.not199, float %464, float %463 %465 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not200 = icmp eq i32 %465, 0 %466 = call float @llvm.nvvm.fma.rn.ftz.f(float %.0120, float %443, float noundef 0x3F059B38A0000000) #135 %467 = call float @llvm.fma.f32(float %.0120, float %443, float noundef 0x3F059B38A0000000) %.0121 = select i1 %.not200, float %467, float %466 %468 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not201 = icmp eq i32 %468, 0 %469 = call float @llvm.nvvm.fma.rn.ftz.f(float %.0121, float %443, float noundef 0x3F1F3D6200000000) #135 %470 = call float @llvm.fma.f32(float %.0121, float %443, float noundef 0x3F1F3D6200000000) %.0122 = select i1 %.not201, float %470, float %469 %471 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not202 = icmp eq i32 %471, 0 %472 = call float @llvm.nvvm.fma.rn.ftz.f(float %.0122, float %443, float noundef 0xBF5D9D7380000000) #135 %473 = call float @llvm.fma.f32(float %.0122, float %443, float noundef 0xBF5D9D7380000000) %.0123 = select i1 %.not202, float %473, float %472 %474 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not203 = icmp eq i32 %474, 0 %475 = call float @llvm.nvvm.fma.rn.ftz.f(float %.0123, float %443, float noundef 0xBF64EDFFA0000000) #135 %476 = call float @llvm.fma.f32(float %.0123, float %443, float noundef 0xBF64EDFFA0000000) %.0124 = select i1 %.not203, float %476, float %475 %477 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not204 = icmp eq i32 %477, 0 %478 = call float @llvm.nvvm.fma.rn.ftz.f(float %.0124, float %443, float noundef 0x3FA0E73260000000) #135 %479 = call float @llvm.fma.f32(float %.0124, float %443, float noundef 0x3FA0E73260000000) %.0126 = select i1 %.not204, float %479, float %478 %480 = fadd float %.0112, 0xC01C0FF600000000 %481 = fadd float %480, 0x3E88971B60000000 %482 = fmul float %481, %.0126 %483 = fmul float %443, %482 %484 = fmul float %.0112, %483 br label %644 __nv_isinff.exit.i137: ; preds = %__nv_fabsf.exit.i124 %485 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not108 = icmp eq i32 %485, 0 %486 = call float @llvm.nvvm.fabs.ftz.f(float %.0112) #135 %487 = call float @llvm.fabs.f32(float %.0112) %.0127 = select i1 %.not108, float %487, float %486 %488 = fcmp oeq float %.0127, 0x7FF0000000000000 br i1 %488, label %644, label %__internal_fmad.exit12.i138 __internal_fmad.exit12.i138: ; preds = %__nv_isinff.exit.i137 %489 = call float asm "rcp.approx.ftz.f32 $0,$1;", "=f,f"(float %.0112) #137, !srcloc !225 %490 = fmul float %489, %489 %491 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not109 = icmp eq i32 %491, 0 %492 = call float @llvm.nvvm.fma.rn.ftz.f(float noundef 0xC0105966E0000000, float %490, float noundef 0x3FE7FEFD20000000) #135 %493 = call float @llvm.fma.f32(float %490, float noundef 0xC0105966E0000000, float noundef 0x3FE7FEFD20000000) %.0128 = select i1 %.not109, float %493, float %492 %494 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not110 = icmp eq i32 %494, 0 %495 = call float @llvm.nvvm.fma.rn.ftz.f(float %.0128, float %490, float noundef 0xBFC8B175C0000000) #135 %496 = call float @llvm.fma.f32(float %.0128, float %490, float noundef 0xBFC8B175C0000000) %.0129 = select i1 %.not110, float %496, float %495 %497 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not111 = icmp eq i32 %497, 0 %498 = call float @llvm.nvvm.fma.rn.ftz.f(float %.0129, float %490, float noundef 0x3FC7FFF160000000) #135 %499 = call float @llvm.fma.f32(float %.0129, float %490, float noundef 0x3FC7FFF160000000) %.0130 = select i1 %.not111, float %499, float %498 %500 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not112 = icmp eq i32 %500, 0 %501 = call float @llvm.nvvm.fma.rn.ftz.f(float %.0130, float %490, float noundef 1.000000e+00) #135 %502 = call float @llvm.fma.f32(float %.0130, float %490, float noundef 1.000000e+00) %.0131 = select i1 %.not112, float %502, float %501 %503 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not113 = icmp eq i32 %503, 0 %504 = call float @llvm.nvvm.fma.rn.ftz.f(float noundef 0xBFF9477440000000, float %490, float noundef 0x3FD72295A0000000) #135 %505 = call float @llvm.fma.f32(float %490, float noundef 0xBFF9477440000000, float noundef 0x3FD72295A0000000) %.0133 = select i1 %.not113, float %505, float %504 %506 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not114 = icmp eq i32 %506, 0 %507 = call float @llvm.nvvm.fma.rn.ftz.f(float %.0133, float %490, float noundef 0xBFC4FE5D80000000) #135 %508 = call float @llvm.fma.f32(float %.0133, float %490, float noundef 0xBFC4FE5D80000000) %.0134 = select i1 %.not114, float %508, float %507 %509 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not115 = icmp eq i32 %509, 0 %510 = call float @llvm.nvvm.fma.rn.ftz.f(float %.0134, float %490, float noundef 0x3FD7FFFFA0000000) #135 %511 = call float @llvm.fma.f32(float %.0134, float %490, float noundef 0x3FD7FFFFA0000000) %.0135 = select i1 %.not115, float %511, float %510 %512 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not116 = icmp eq i32 %512, 0 %513 = call float @llvm.nvvm.fma.rn.ftz.f(float %.0135, float %489, float %.0112) #135 %514 = call float @llvm.fma.f32(float %.0135, float %489, float %.0112) %.0136 = select i1 %.not116, float %514, float %513 %515 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not117 = icmp eq i32 %515, 0 br i1 %.not117, label %518, label %516 516: ; preds = %__internal_fmad.exit12.i138 %517 = call float @llvm.nvvm.rsqrt.approx.ftz.f(float %.0112) #135 br label %__nv_rsqrtf.exit.i146 518: ; preds = %__internal_fmad.exit12.i138 %519 = call float @llvm.nvvm.rsqrt.approx.f(float %.0112) #135 br label %__nv_rsqrtf.exit.i146 __nv_rsqrtf.exit.i146: ; preds = %518, %516 %.0137 = phi float [ %517, %516 ], [ %519, %518 ] %520 = fmul float %.0137, 0x3FE9884540000000 %521 = fmul float %.0131, %520 %522 = fmul float %.0136, 0x3FE45F3060000000 %523 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not118 = icmp eq i32 %523, 0 %524 = call i32 @llvm.nvvm.f2i.rn.ftz(float %522) #135 %525 = call i32 @llvm.nvvm.f2i.rn(float %522) #135 %.0139 = select i1 %.not118, i32 %525, i32 %524 %526 = sitofp i32 %.0139 to float %527 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not119 = icmp eq i32 %527, 0 %528 = call float @llvm.nvvm.fma.rn.ftz.f(float %526, float noundef 0xBFF921FB40000000, float %.0136) #135 %529 = call float @llvm.fma.f32(float %526, float noundef 0xBFF921FB40000000, float %.0136) %.0140 = select i1 %.not119, float %529, float %528 %530 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not120 = icmp eq i32 %530, 0 %531 = call float @llvm.nvvm.fma.rn.ftz.f(float %526, float noundef 0xBE74442D00000000, float %.0140) #135 %532 = call float @llvm.fma.f32(float %526, float noundef 0xBE74442D00000000, float %.0140) %.0142 = select i1 %.not120, float %532, float %531 %533 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not121 = icmp eq i32 %533, 0 %534 = call float @llvm.nvvm.fma.rn.ftz.f(float %526, float noundef 0xBCF84698A0000000, float %.0142) #135 %535 = call float @llvm.fma.f32(float %526, float noundef 0xBCF84698A0000000, float %.0142) %.0143 = select i1 %.not121, float %535, float %534 %536 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not122 = icmp eq i32 %536, 0 %537 = call float @llvm.nvvm.fabs.ftz.f(float %.0136) #135 %538 = call float @llvm.fabs.f32(float %.0136) %.0144 = select i1 %.not122, float %538, float %537 %539 = fcmp ult float %.0144, 1.056150e+05 br i1 %539, label %__internal_trig_reduction_kernel.exit.i.i155, label %__nv_isinff.exit.i.i.i152 __nv_isinff.exit.i.i.i152: ; preds = %__nv_rsqrtf.exit.i146 %540 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not186 = icmp eq i32 %540, 0 %.0145 = select i1 %.not186, float %538, float %537 %541 = fcmp oeq float %.0145, 0x7FF0000000000000 br i1 %541, label %__nv_fmul_rn.exit.i.i.i153, label %545 __nv_fmul_rn.exit.i.i.i153: ; preds = %__nv_isinff.exit.i.i.i152 %542 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not192 = icmp eq i32 %542, 0 %543 = call float @llvm.nvvm.mul.rn.ftz.f(float %.0136, float noundef 0.000000e+00) #135 %544 = fmul float %.0136, 0.000000e+00 %.0146 = select i1 %.not192, float %544, float %543 br label %__internal_trig_reduction_kernel.exit.i.i155 545: ; preds = %__nv_isinff.exit.i.i.i152 %546 = bitcast float %.0136 to i32 %547 = lshr i32 %546, 23 %548 = and i32 %547, 255 %549 = shl i32 %546, 8 %550 = or i32 %549, -2147483648 br label %551 551: ; preds = %545, %551 %iq.i.i.i.i102.0211 = phi i32 [ 0, %545 ], [ %558, %551 ] %hi.i.i.i.i97.0210 = phi i32 [ 0, %545 ], [ %556, %551 ] %552 = getelementptr inbounds [6 x i32], [6 x i32] addrspace(1)* @__cudart_i2opi_f, i32 0, i32 %iq.i.i.i.i102.0211 %553 = load i32, i32 addrspace(1)* %552, align 4 %554 = call { i32, i32 } asm "{\0A\09mad.lo.cc.u32 $0, $2, $3, $4;\0A\09madc.hi.u32 $1, $2, $3, 0;\0A\09}", "=r,=r,r,r,r"(i32 %553, i32 %550, i32 %hi.i.i.i.i97.0210) #137, !srcloc !222 %555 = extractvalue { i32, i32 } %554, 0 %556 = extractvalue { i32, i32 } %554, 1 %557 = getelementptr inbounds [7 x i32], [7 x i32]* %result.i.i.i.i, i32 0, i32 %iq.i.i.i.i102.0211 store i32 %555, i32* %557, align 4, !noalias !219 %558 = add nuw nsw i32 %iq.i.i.i.i102.0211, 1 %exitcond235.not = icmp eq i32 %558, 6 br i1 %exitcond235.not, label %559, label %551, !llvm.loop !223 559: ; preds = %551 %560 = add nsw i32 %548, -128 %561 = lshr i32 %560, 5 %562 = and i32 %546, -2147483648 %563 = getelementptr inbounds [7 x i32], [7 x i32]* %result.i.i.i.i, i32 0, i32 6 store i32 %556, i32* %563, align 4, !noalias !219 %564 = and i32 %547, 31 %565 = sub nsw i32 6, %561 %566 = getelementptr inbounds [7 x i32], [7 x i32]* %result.i.i.i.i, i32 0, i32 %565 %567 = load i32, i32* %566, align 4 %568 = sub nsw i32 5, %561 %569 = getelementptr inbounds [7 x i32], [7 x i32]* %result.i.i.i.i, i32 0, i32 %568 %570 = load i32, i32* %569, align 4 %.not187 = icmp eq i32 %564, 0 br i1 %.not187, label %__internal_trig_reduction_slowpath.exit.i.i.i154, label %571 571: ; preds = %559 %572 = sub nsw i32 4, %561 %573 = sub nuw nsw i32 32, %564 %574 = shl i32 %567, %564 %575 = lshr i32 %570, %573 %576 = add i32 %575, %574 %577 = shl i32 %570, %564 %578 = getelementptr inbounds [7 x i32], [7 x i32]* %result.i.i.i.i, i32 0, i32 %572 %579 = load i32, i32* %578, align 4 %580 = lshr i32 %579, %573 %581 = add i32 %580, %577 br label %__internal_trig_reduction_slowpath.exit.i.i.i154 __internal_trig_reduction_slowpath.exit.i.i.i154: ; preds = %571, %559 %hi.i.i.i.i97.1 = phi i32 [ %576, %571 ], [ %567, %559 ] %lo.i.i.i.i98.0 = phi i32 [ %581, %571 ], [ %570, %559 ] %582 = lshr i32 %hi.i.i.i.i97.1, 30 %583 = call i32 @llvm.fshl.i32(i32 %hi.i.i.i.i97.1, i32 %lo.i.i.i.i98.0, i32 noundef 2) %584 = shl i32 %lo.i.i.i.i98.0, 2 %585 = lshr i32 %583, 31 %586 = add nuw nsw i32 %585, %582 %.not188 = icmp eq i32 %562, 0 %587 = sub nsw i32 0, %586 %spec.select2 = select i1 %.not188, i32 %586, i32 %587 %.not189 = icmp sgt i32 %583, -1 %588 = xor i32 %562, -2147483648 %s.i.i.i.i95.0 = select i1 %.not189, i32 %562, i32 %588 %not..not189 = xor i1 %.not189, true %589 = sext i1 %not..not189 to i32 %hi.i.i.i.i97.2 = xor i32 %583, %589 %lo.i.i.i.i98.1 = xor i32 %584, %589 %590 = zext i32 %hi.i.i.i.i97.2 to i64 %591 = shl nuw i64 %590, 32 %592 = zext i32 %lo.i.i.i.i98.1 to i64 %593 = or i64 %591, %592 %594 = sitofp i64 %593 to double %595 = fmul double %594, 0x3BF921FB54442D19 %596 = fptrunc double %595 to float %.not191 = icmp eq i32 %s.i.i.i.i95.0, 0 %597 = fneg float %596 %r.i.i.i.i106.0 = select i1 %.not191, float %596, float %597 br label %__internal_trig_reduction_kernel.exit.i.i155 __internal_trig_reduction_kernel.exit.i.i155: ; preds = %__nv_fmul_rn.exit.i.i.i153, %__internal_trig_reduction_slowpath.exit.i.i.i154, %__nv_rsqrtf.exit.i146 %i.i.i112.1 = phi i32 [ %.0139, %__nv_rsqrtf.exit.i146 ], [ 0, %__nv_fmul_rn.exit.i.i.i153 ], [ %spec.select2, %__internal_trig_reduction_slowpath.exit.i.i.i154 ] %t.i.i.i109.1 = phi float [ %.0143, %__nv_rsqrtf.exit.i146 ], [ %.0146, %__nv_fmul_rn.exit.i.i.i153 ], [ %r.i.i.i.i106.0, %__internal_trig_reduction_slowpath.exit.i.i.i154 ] %598 = and i32 %i.i.i112.1, 3 %599 = uitofp i32 %598 to float %600 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not123 = icmp eq i32 %600, 0 %601 = call float @llvm.nvvm.fma.rn.ftz.f(float %599, float noundef 0x3FF921FB60000000, float noundef 0xC002D97C80000000) #135 %602 = call float @llvm.fma.f32(float %599, float noundef 0x3FF921FB60000000, float noundef 0xC002D97C80000000) %.0149 = select i1 %.not123, float %602, float %601 %603 = fadd float %t.i.i.i109.1, %.0149 %604 = fmul float %603, 0x3FE45F3060000000 %605 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not124 = icmp eq i32 %605, 0 %606 = call i32 @llvm.nvvm.f2i.rn.ftz(float %604) #135 %607 = call i32 @llvm.nvvm.f2i.rn(float %604) #135 %.0150 = select i1 %.not124, i32 %607, i32 %606 %608 = sitofp i32 %.0150 to float %609 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not125 = icmp eq i32 %609, 0 %610 = call float @llvm.nvvm.fma.rn.ftz.f(float %608, float noundef 0xBFF921FB40000000, float %603) #135 %611 = call float @llvm.fma.f32(float %608, float noundef 0xBFF921FB40000000, float %603) %.0151 = select i1 %.not125, float %611, float %610 %612 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not126 = icmp eq i32 %612, 0 %613 = call float @llvm.nvvm.fma.rn.ftz.f(float %608, float noundef 0xBE74442D00000000, float %.0151) #135 %614 = call float @llvm.fma.f32(float %608, float noundef 0xBE74442D00000000, float %.0151) %.0152 = select i1 %.not126, float %614, float %613 %615 = add i32 %.0150, 1 %616 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not127 = icmp eq i32 %616, 0 %617 = call float @llvm.nvvm.mul.rn.ftz.f(float %.0152, float %.0152) #135 %618 = fmul float %.0152, %.0152 %.0154 = select i1 %.not127, float %618, float %617 %619 = and i32 %615, 1 %.not128 = icmp eq i32 %619, 0 %620 = select i1 %.not128, float %.0152, float 1.000000e+00 %621 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not129 = icmp eq i32 %621, 0 %622 = call float @llvm.nvvm.fma.rn.ftz.f(float %.0154, float %620, float noundef 0.000000e+00) #135 %623 = call float @llvm.fma.f32(float %.0154, float %620, float noundef 0.000000e+00) %.0155 = select i1 %.not129, float %623, float %622 br i1 %.not128, label %__internal_fmad.exit2.i.i.i163, label %__internal_fmad.exit1.i.i.i162 __internal_fmad.exit1.i.i.i162: ; preds = %__internal_trig_reduction_kernel.exit.i.i155 %624 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not185 = icmp eq i32 %624, 0 %625 = call float @llvm.nvvm.fma.rn.ftz.f(float noundef 0x3EF9758000000000, float %.0154, float noundef 0xBF56C0FDA0000000) #135 %626 = call float @llvm.fma.f32(float %.0154, float noundef 0x3EF9758000000000, float noundef 0xBF56C0FDA0000000) %.0156 = select i1 %.not185, float %626, float %625 br label %__internal_fmad.exit2.i.i.i163 __internal_fmad.exit2.i.i.i163: ; preds = %__internal_trig_reduction_kernel.exit.i.i155, %__internal_fmad.exit1.i.i.i162 %627 = phi float [ 0xBFC5555500000000, %__internal_trig_reduction_kernel.exit.i.i155 ], [ 0xBFDFFFFFE0000000, %__internal_fmad.exit1.i.i.i162 ] %628 = phi float [ 0x3F8110BC80000000, %__internal_trig_reduction_kernel.exit.i.i155 ], [ 0x3FA5555760000000, %__internal_fmad.exit1.i.i.i162 ] %629 = phi float [ 0xBF29A82A60000000, %__internal_trig_reduction_kernel.exit.i.i155 ], [ %.0156, %__internal_fmad.exit1.i.i.i162 ] %630 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not130 = icmp eq i32 %630, 0 %631 = call float @llvm.nvvm.fma.rn.ftz.f(float %629, float %.0154, float noundef %628) #135 %632 = call float @llvm.fma.f32(float %629, float %.0154, float noundef %628) %.0157 = select i1 %.not130, float %632, float %631 %633 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not131 = icmp eq i32 %633, 0 %634 = call float @llvm.nvvm.fma.rn.ftz.f(float %.0157, float %.0154, float noundef %627) #135 %635 = call float @llvm.fma.f32(float %.0157, float %.0154, float noundef %627) %.0158 = select i1 %.not131, float %635, float %634 %636 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not132 = icmp eq i32 %636, 0 %637 = call float @llvm.nvvm.fma.rn.ftz.f(float %.0158, float %.0155, float %620) #135 %638 = call float @llvm.fma.f32(float %.0158, float %.0155, float %620) %.0159 = select i1 %.not132, float %638, float %637 %639 = and i32 %615, 2 %.not133 = icmp eq i32 %639, 0 br i1 %.not133, label %__internal_cos_offset_f.exit.i167, label %__internal_fmad.exit5.i.i.i166 __internal_fmad.exit5.i.i.i166: ; preds = %__internal_fmad.exit2.i.i.i163 %640 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not184 = icmp eq i32 %640, 0 %641 = call float @llvm.nvvm.fma.rn.ftz.f(float %.0159, float noundef -1.000000e+00, float noundef 0.000000e+00) #135 %642 = call float @llvm.fma.f32(float %.0159, float noundef -1.000000e+00, float noundef 0.000000e+00) %.0161 = select i1 %.not184, float %642, float %641 br label %__internal_cos_offset_f.exit.i167 __internal_cos_offset_f.exit.i167: ; preds = %__internal_fmad.exit5.i.i.i166, %__internal_fmad.exit2.i.i.i163 %z.i.i.i88.0 = phi float [ %.0161, %__internal_fmad.exit5.i.i.i166 ], [ %.0159, %__internal_fmad.exit2.i.i.i163 ] %643 = fmul float %521, %z.i.i.i88.0 br label %644 644: ; preds = %__internal_cos_offset_f.exit.i167, %__nv_isinff.exit.i137, %__internal_fmad.exit.i125 %r.i118.1 = phi float [ %484, %__internal_fmad.exit.i125 ], [ %643, %__internal_cos_offset_f.exit.i167 ], [ 0.000000e+00, %__nv_isinff.exit.i137 ] %645 = fcmp olt float %a, 0.000000e+00 %646 = fneg float %r.i118.1 %r.i118.2 = select i1 %645, float %646, float %r.i118.1 %647 = fcmp olt float %.0112, 0x39B4484C00000000 br i1 %647, label %648, label %__nv_j1f.exit168 648: ; preds = %644 %649 = bitcast float %a to i32 %650 = and i32 %649, -2147483648 %651 = bitcast float %r.i118.2 to i32 %652 = and i32 %651, 2147483647 %653 = or i32 %652, %650 %654 = bitcast i32 %653 to float br label %__nv_j1f.exit168 __nv_j1f.exit168: ; preds = %648, %644 %r.i118.3 = phi float [ %654, %648 ], [ %r.i118.2, %644 ] %655 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not134 = icmp eq i32 %655, 0 %.0162 = select i1 %.not134, float %436, float %435 %656 = fcmp ugt float %.0162, 8.000000e+00 br i1 %656, label %__nv_isinff.exit.i220, label %__internal_fmad.exit.i207 __internal_fmad.exit.i207: ; preds = %__nv_j1f.exit168 %657 = fadd float %.0162, 0xC0033D1520000000 %658 = fadd float %657, 0xBE7D2E3660000000 %659 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not171 = icmp eq i32 %659, 0 %660 = call float @llvm.nvvm.fma.rn.ftz.f(float noundef 0xBCD6771CE0000000, float %658, float noundef 0xBD35953660000000) #135 %661 = call float @llvm.fma.f32(float %658, float noundef 0xBCD6771CE0000000, float noundef 0xBD35953660000000) %.0163 = select i1 %.not171, float %661, float %660 %662 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not172 = icmp eq i32 %662, 0 %663 = call float @llvm.nvvm.fma.rn.ftz.f(float %.0163, float %658, float noundef 0x3D87E1C300000000) #135 %664 = call float @llvm.fma.f32(float %.0163, float %658, float noundef 0x3D87E1C300000000) %.0165 = select i1 %.not172, float %664, float %663 %665 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not173 = icmp eq i32 %665, 0 %666 = call float @llvm.nvvm.fma.rn.ftz.f(float %.0165, float %658, float noundef 0xBD9A82F020000000) #135 %667 = call float @llvm.fma.f32(float %.0165, float %658, float noundef 0xBD9A82F020000000) %.0166 = select i1 %.not173, float %667, float %666 %668 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not174 = icmp eq i32 %668, 0 %669 = call float @llvm.nvvm.fma.rn.ftz.f(float %.0166, float %658, float noundef 0xBDFD21E700000000) #135 %670 = call float @llvm.fma.f32(float %.0166, float %658, float noundef 0xBDFD21E700000000) %.0167 = select i1 %.not174, float %670, float %669 %671 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not175 = icmp eq i32 %671, 0 %672 = call float @llvm.nvvm.fma.rn.ftz.f(float %.0167, float %658, float noundef 0x3E04060B60000000) #135 %673 = call float @llvm.fma.f32(float %.0167, float %658, float noundef 0x3E04060B60000000) %.0168 = select i1 %.not175, float %673, float %672 %674 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not176 = icmp eq i32 %674, 0 %675 = call float @llvm.nvvm.fma.rn.ftz.f(float %.0168, float %658, float noundef 0x3E6F2E2860000000) #135 %676 = call float @llvm.fma.f32(float %.0168, float %658, float noundef 0x3E6F2E2860000000) %.0169 = select i1 %.not176, float %676, float %675 %677 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not177 = icmp eq i32 %677, 0 %678 = call float @llvm.nvvm.fma.rn.ftz.f(float %.0169, float %658, float noundef 0x3E1EEDF0A0000000) #135 %679 = call float @llvm.fma.f32(float %.0169, float %658, float noundef 0x3E1EEDF0A0000000) %.0170 = select i1 %.not177, float %679, float %678 %680 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not178 = icmp eq i32 %680, 0 %681 = call float @llvm.nvvm.fma.rn.ftz.f(float %.0170, float %658, float noundef 0xBED6DBF8C0000000) #135 %682 = call float @llvm.fma.f32(float %.0170, float %658, float noundef 0xBED6DBF8C0000000) %.0164 = select i1 %.not178, float %682, float %681 %683 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not179 = icmp eq i32 %683, 0 %684 = call float @llvm.nvvm.fma.rn.ftz.f(float %.0164, float %658, float noundef 0xBEDECCB920000000) #135 %685 = call float @llvm.fma.f32(float %.0164, float %658, float noundef 0xBEDECCB920000000) %.0160 = select i1 %.not179, float %685, float %684 %686 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not180 = icmp eq i32 %686, 0 %687 = call float @llvm.nvvm.fma.rn.ftz.f(float %.0160, float %658, float noundef 0x3F33C5BD60000000) #135 %688 = call float @llvm.fma.f32(float %.0160, float %658, float noundef 0x3F33C5BD60000000) %.0153 = select i1 %.not180, float %688, float %687 %689 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not181 = icmp eq i32 %689, 0 %690 = call float @llvm.nvvm.fma.rn.ftz.f(float %.0153, float %658, float noundef 0x3F495C6680000000) #135 %691 = call float @llvm.fma.f32(float %.0153, float %658, float noundef 0x3F495C6680000000) %.0148 = select i1 %.not181, float %691, float %690 %692 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not182 = icmp eq i32 %692, 0 %693 = call float @llvm.nvvm.fma.rn.ftz.f(float %.0148, float %658, float noundef 0xBF7DD54360000000) #135 %694 = call float @llvm.fma.f32(float %.0148, float %658, float noundef 0xBF7DD54360000000) %.0147 = select i1 %.not182, float %694, float %693 %695 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not183 = icmp eq i32 %695, 0 %696 = call float @llvm.nvvm.fma.rn.ftz.f(float %.0147, float %658, float noundef 0xBF9B4EE8E0000000) #135 %697 = call float @llvm.fma.f32(float %.0147, float %658, float noundef 0xBF9B4EE8E0000000) %.0141 = select i1 %.not183, float %697, float %696 %698 = fmul float %658, %.0141 %699 = fadd float %.0162, 0xC016148F60000000 %700 = fadd float %699, 0x3E734F46E0000000 %701 = fmul float %700, %698 %702 = fadd float %.0162, 0xC0214EB560000000 %703 = fadd float %702, 0xBE9999BDA0000000 %704 = fmul float %703, %701 br label %__nv_j0f.exit251 __nv_isinff.exit.i220: ; preds = %__nv_j1f.exit168 %705 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not135 = icmp eq i32 %705, 0 %706 = call float @llvm.nvvm.fabs.ftz.f(float %.0162) #135 %707 = call float @llvm.fabs.f32(float %.0162) %.0138 = select i1 %.not135, float %707, float %706 %708 = fcmp oeq float %.0138, 0x7FF0000000000000 br i1 %708, label %__nv_j0f.exit251, label %__internal_fmad.exit13.i221 __internal_fmad.exit13.i221: ; preds = %__nv_isinff.exit.i220 %709 = call float asm "rcp.approx.ftz.f32 $0,$1;", "=f,f"(float %.0162) #137, !srcloc !225 %710 = fmul float %709, %709 %711 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not136 = icmp eq i32 %711, 0 %712 = call float @llvm.nvvm.fma.rn.ftz.f(float noundef 0x400ADFD260000000, float %710, float noundef 0xBFE076F840000000) #135 %713 = call float @llvm.fma.f32(float %710, float noundef 0x400ADFD260000000, float noundef 0xBFE076F840000000) %.0132 = select i1 %.not136, float %713, float %712 %714 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not137 = icmp eq i32 %714, 0 %715 = call float @llvm.nvvm.fma.rn.ftz.f(float %.0132, float %710, float noundef 0x3FBA767E60000000) #135 %716 = call float @llvm.fma.f32(float %.0132, float %710, float noundef 0x3FBA767E60000000) %.0125 = select i1 %.not137, float %716, float %715 %717 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not138 = icmp eq i32 %717, 0 %718 = call float @llvm.nvvm.fma.rn.ftz.f(float %.0125, float %710, float noundef 0xBFAFFFF6C0000000) #135 %719 = call float @llvm.fma.f32(float %.0125, float %710, float noundef 0xBFAFFFF6C0000000) %.0118 = select i1 %.not138, float %719, float %718 %720 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not139 = icmp eq i32 %720, 0 %721 = call float @llvm.nvvm.fma.rn.ftz.f(float %.0118, float %710, float noundef 1.000000e+00) #135 %722 = call float @llvm.fma.f32(float %.0118, float %710, float noundef 1.000000e+00) %.0111 = select i1 %.not139, float %722, float %721 %723 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not140 = icmp eq i32 %723, 0 %724 = call float @llvm.nvvm.fma.rn.ftz.f(float noundef 0x3FF23C0120000000, float %710, float noundef 0xBFCA4825A0000000) #135 %725 = call float @llvm.fma.f32(float %710, float noundef 0x3FF23C0120000000, float noundef 0xBFCA4825A0000000) %.0107 = select i1 %.not140, float %725, float %724 %726 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not141 = icmp eq i32 %726, 0 %727 = call float @llvm.nvvm.fma.rn.ftz.f(float %.0107, float %710, float noundef 0x3FB0A9DA20000000) #135 %728 = call float @llvm.fma.f32(float %.0107, float %710, float noundef 0x3FB0A9DA20000000) %.0101 = select i1 %.not141, float %728, float %727 %729 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not142 = icmp eq i32 %729, 0 %730 = call float @llvm.nvvm.fma.rn.ftz.f(float %.0101, float %710, float noundef 0xBFBFFFFFE0000000) #135 %731 = call float @llvm.fma.f32(float %.0101, float %710, float noundef 0xBFBFFFFFE0000000) %.096 = select i1 %.not142, float %731, float %730 %732 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not143 = icmp eq i32 %732, 0 %733 = call float @llvm.nvvm.fma.rn.ftz.f(float %.096, float %709, float %.0162) #135 %734 = call float @llvm.fma.f32(float %.096, float %709, float %.0162) %.095 = select i1 %.not143, float %734, float %733 %735 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not144 = icmp eq i32 %735, 0 br i1 %.not144, label %738, label %736 736: ; preds = %__internal_fmad.exit13.i221 %737 = call float @llvm.nvvm.rsqrt.approx.ftz.f(float %.0162) #135 br label %__nv_rsqrtf.exit.i229 738: ; preds = %__internal_fmad.exit13.i221 %739 = call float @llvm.nvvm.rsqrt.approx.f(float %.0162) #135 br label %__nv_rsqrtf.exit.i229 __nv_rsqrtf.exit.i229: ; preds = %738, %736 %.093 = phi float [ %737, %736 ], [ %739, %738 ] %740 = fmul float %.093, 0x3FE9884540000000 %741 = fmul float %.0111, %740 %742 = fmul float %.095, 0x3FE45F3060000000 %743 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not145 = icmp eq i32 %743, 0 %744 = call i32 @llvm.nvvm.f2i.rn.ftz(float %742) #135 %745 = call i32 @llvm.nvvm.f2i.rn(float %742) #135 %.086 = select i1 %.not145, i32 %745, i32 %744 %746 = sitofp i32 %.086 to float %747 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not146 = icmp eq i32 %747, 0 %748 = call float @llvm.nvvm.fma.rn.ftz.f(float %746, float noundef 0xBFF921FB40000000, float %.095) #135 %749 = call float @llvm.fma.f32(float %746, float noundef 0xBFF921FB40000000, float %.095) %.085 = select i1 %.not146, float %749, float %748 %750 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not147 = icmp eq i32 %750, 0 %751 = call float @llvm.nvvm.fma.rn.ftz.f(float %746, float noundef 0xBE74442D00000000, float %.085) #135 %752 = call float @llvm.fma.f32(float %746, float noundef 0xBE74442D00000000, float %.085) %.083 = select i1 %.not147, float %752, float %751 %753 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not148 = icmp eq i32 %753, 0 %754 = call float @llvm.nvvm.fma.rn.ftz.f(float %746, float noundef 0xBCF84698A0000000, float %.083) #135 %755 = call float @llvm.fma.f32(float %746, float noundef 0xBCF84698A0000000, float %.083) %.079 = select i1 %.not148, float %755, float %754 %756 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not149 = icmp eq i32 %756, 0 %757 = call float @llvm.nvvm.fabs.ftz.f(float %.095) #135 %758 = call float @llvm.fabs.f32(float %.095) %.077 = select i1 %.not149, float %758, float %757 %759 = fcmp ult float %.077, 1.056150e+05 br i1 %759, label %__internal_trig_reduction_kernel.exit.i.i238, label %__nv_isinff.exit.i.i.i235 __nv_isinff.exit.i.i.i235: ; preds = %__nv_rsqrtf.exit.i229 %760 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not164 = icmp eq i32 %760, 0 %.074 = select i1 %.not164, float %758, float %757 %761 = fcmp oeq float %.074, 0x7FF0000000000000 br i1 %761, label %__nv_fmul_rn.exit.i.i.i236, label %765 __nv_fmul_rn.exit.i.i.i236: ; preds = %__nv_isinff.exit.i.i.i235 %762 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not170 = icmp eq i32 %762, 0 %763 = call float @llvm.nvvm.mul.rn.ftz.f(float %.095, float noundef 0.000000e+00) #135 %764 = fmul float %.095, 0.000000e+00 %.069 = select i1 %.not170, float %764, float %763 br label %__internal_trig_reduction_kernel.exit.i.i238 765: ; preds = %__nv_isinff.exit.i.i.i235 %766 = bitcast float %.095 to i32 %767 = lshr i32 %766, 23 %768 = and i32 %767, 255 %769 = shl i32 %766, 8 %770 = or i32 %769, -2147483648 br label %771 771: ; preds = %765, %771 %hi.i.i.i.i179.0209 = phi i32 [ 0, %765 ], [ %776, %771 ] %iq.i.i.i.i184.0208 = phi i32 [ 0, %765 ], [ %778, %771 ] %772 = getelementptr inbounds [6 x i32], [6 x i32] addrspace(1)* @__cudart_i2opi_f, i32 0, i32 %iq.i.i.i.i184.0208 %773 = load i32, i32 addrspace(1)* %772, align 4 %774 = call { i32, i32 } asm "{\0A\09mad.lo.cc.u32 $0, $2, $3, $4;\0A\09madc.hi.u32 $1, $2, $3, 0;\0A\09}", "=r,=r,r,r,r"(i32 %773, i32 %770, i32 %hi.i.i.i.i179.0209) #137, !srcloc !222 %775 = extractvalue { i32, i32 } %774, 0 %776 = extractvalue { i32, i32 } %774, 1 %777 = getelementptr inbounds [7 x i32], [7 x i32]* %result.i.i.i.i, i32 0, i32 %iq.i.i.i.i184.0208 store i32 %775, i32* %777, align 4, !noalias !219 %778 = add nuw nsw i32 %iq.i.i.i.i184.0208, 1 %exitcond.not = icmp eq i32 %778, 6 br i1 %exitcond.not, label %779, label %771, !llvm.loop !223 779: ; preds = %771 %780 = add nsw i32 %768, -128 %781 = lshr i32 %780, 5 %782 = and i32 %766, -2147483648 %783 = getelementptr inbounds [7 x i32], [7 x i32]* %result.i.i.i.i, i32 0, i32 6 store i32 %776, i32* %783, align 4, !noalias !219 %784 = and i32 %767, 31 %785 = sub nsw i32 6, %781 %786 = getelementptr inbounds [7 x i32], [7 x i32]* %result.i.i.i.i, i32 0, i32 %785 %787 = load i32, i32* %786, align 4 %788 = sub nsw i32 5, %781 %789 = getelementptr inbounds [7 x i32], [7 x i32]* %result.i.i.i.i, i32 0, i32 %788 %790 = load i32, i32* %789, align 4 %.not165 = icmp eq i32 %784, 0 br i1 %.not165, label %__internal_trig_reduction_slowpath.exit.i.i.i237, label %791 791: ; preds = %779 %792 = sub nsw i32 4, %781 %793 = sub nuw nsw i32 32, %784 %794 = shl i32 %787, %784 %795 = lshr i32 %790, %793 %796 = add i32 %795, %794 %797 = shl i32 %790, %784 %798 = getelementptr inbounds [7 x i32], [7 x i32]* %result.i.i.i.i, i32 0, i32 %792 %799 = load i32, i32* %798, align 4 %800 = lshr i32 %799, %793 %801 = add i32 %800, %797 br label %__internal_trig_reduction_slowpath.exit.i.i.i237 __internal_trig_reduction_slowpath.exit.i.i.i237: ; preds = %791, %779 %lo.i.i.i.i180.0 = phi i32 [ %801, %791 ], [ %790, %779 ] %hi.i.i.i.i179.1 = phi i32 [ %796, %791 ], [ %787, %779 ] %802 = lshr i32 %hi.i.i.i.i179.1, 30 %803 = call i32 @llvm.fshl.i32(i32 %hi.i.i.i.i179.1, i32 %lo.i.i.i.i180.0, i32 noundef 2) %804 = shl i32 %lo.i.i.i.i180.0, 2 %805 = lshr i32 %803, 31 %806 = add nuw nsw i32 %805, %802 %.not166 = icmp eq i32 %782, 0 %807 = sub nsw i32 0, %806 %spec.select3 = select i1 %.not166, i32 %806, i32 %807 %.not167 = icmp sgt i32 %803, -1 %808 = xor i32 %782, -2147483648 %not..not167 = xor i1 %.not167, true %809 = sext i1 %not..not167 to i32 %lo.i.i.i.i180.1 = xor i32 %804, %809 %hi.i.i.i.i179.2 = xor i32 %803, %809 %s.i.i.i.i177.0 = select i1 %.not167, i32 %782, i32 %808 %810 = zext i32 %hi.i.i.i.i179.2 to i64 %811 = shl nuw i64 %810, 32 %812 = zext i32 %lo.i.i.i.i180.1 to i64 %813 = or i64 %811, %812 %814 = sitofp i64 %813 to double %815 = fmul double %814, 0x3BF921FB54442D19 %816 = fptrunc double %815 to float %.not169 = icmp eq i32 %s.i.i.i.i177.0, 0 %817 = fneg float %816 %r.i.i.i.i188.0 = select i1 %.not169, float %816, float %817 br label %__internal_trig_reduction_kernel.exit.i.i238 __internal_trig_reduction_kernel.exit.i.i238: ; preds = %__nv_fmul_rn.exit.i.i.i236, %__internal_trig_reduction_slowpath.exit.i.i.i237, %__nv_rsqrtf.exit.i229 %i.i.i194.1 = phi i32 [ %.086, %__nv_rsqrtf.exit.i229 ], [ 0, %__nv_fmul_rn.exit.i.i.i236 ], [ %spec.select3, %__internal_trig_reduction_slowpath.exit.i.i.i237 ] %t.i.i.i191.1 = phi float [ %.079, %__nv_rsqrtf.exit.i229 ], [ %.069, %__nv_fmul_rn.exit.i.i.i236 ], [ %r.i.i.i.i188.0, %__internal_trig_reduction_slowpath.exit.i.i.i237 ] %818 = and i32 %i.i.i194.1, 3 %819 = uitofp i32 %818 to float %820 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not150 = icmp eq i32 %820, 0 %821 = call float @llvm.nvvm.fma.rn.ftz.f(float %819, float noundef 0x3FF921FB60000000, float noundef 0xBFE921FB60000000) #135 %822 = call float @llvm.fma.f32(float %819, float noundef 0x3FF921FB60000000, float noundef 0xBFE921FB60000000) %.049 = select i1 %.not150, float %822, float %821 %823 = fadd float %t.i.i.i191.1, %.049 %824 = fmul float %823, 0x3FE45F3060000000 %825 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not151 = icmp eq i32 %825, 0 %826 = call i32 @llvm.nvvm.f2i.rn.ftz(float %824) #135 %827 = call i32 @llvm.nvvm.f2i.rn(float %824) #135 %.047 = select i1 %.not151, i32 %827, i32 %826 %828 = sitofp i32 %.047 to float %829 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not152 = icmp eq i32 %829, 0 %830 = call float @llvm.nvvm.fma.rn.ftz.f(float %828, float noundef 0xBFF921FB40000000, float %823) #135 %831 = call float @llvm.fma.f32(float %828, float noundef 0xBFF921FB40000000, float %823) %.043 = select i1 %.not152, float %831, float %830 %832 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not153 = icmp eq i32 %832, 0 %833 = call float @llvm.nvvm.fma.rn.ftz.f(float %828, float noundef 0xBE74442D00000000, float %.043) #135 %834 = call float @llvm.fma.f32(float %828, float noundef 0xBE74442D00000000, float %.043) %.042 = select i1 %.not153, float %834, float %833 %835 = add i32 %.047, 1 %836 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not154 = icmp eq i32 %836, 0 %837 = call float @llvm.nvvm.mul.rn.ftz.f(float %.042, float %.042) #135 %838 = fmul float %.042, %.042 %.038 = select i1 %.not154, float %838, float %837 %839 = and i32 %835, 1 %.not155 = icmp eq i32 %839, 0 %840 = select i1 %.not155, float %.042, float 1.000000e+00 %841 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not156 = icmp eq i32 %841, 0 %842 = call float @llvm.nvvm.fma.rn.ftz.f(float %.038, float %840, float noundef 0.000000e+00) #135 %843 = call float @llvm.fma.f32(float %.038, float %840, float noundef 0.000000e+00) %.033 = select i1 %.not156, float %843, float %842 br i1 %.not155, label %__internal_fmad.exit2.i.i.i246, label %__internal_fmad.exit1.i.i.i245 __internal_fmad.exit1.i.i.i245: ; preds = %__internal_trig_reduction_kernel.exit.i.i238 %844 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not163 = icmp eq i32 %844, 0 %845 = call float @llvm.nvvm.fma.rn.ftz.f(float noundef 0x3EF9758000000000, float %.038, float noundef 0xBF56C0FDA0000000) #135 %846 = call float @llvm.fma.f32(float %.038, float noundef 0x3EF9758000000000, float noundef 0xBF56C0FDA0000000) %.029 = select i1 %.not163, float %846, float %845 br label %__internal_fmad.exit2.i.i.i246 __internal_fmad.exit2.i.i.i246: ; preds = %__internal_trig_reduction_kernel.exit.i.i238, %__internal_fmad.exit1.i.i.i245 %847 = phi float [ 0xBFC5555500000000, %__internal_trig_reduction_kernel.exit.i.i238 ], [ 0xBFDFFFFFE0000000, %__internal_fmad.exit1.i.i.i245 ] %848 = phi float [ 0x3F8110BC80000000, %__internal_trig_reduction_kernel.exit.i.i238 ], [ 0x3FA5555760000000, %__internal_fmad.exit1.i.i.i245 ] %849 = phi float [ 0xBF29A82A60000000, %__internal_trig_reduction_kernel.exit.i.i238 ], [ %.029, %__internal_fmad.exit1.i.i.i245 ] %850 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not157 = icmp eq i32 %850, 0 %851 = call float @llvm.nvvm.fma.rn.ftz.f(float %849, float %.038, float noundef %848) #135 %852 = call float @llvm.fma.f32(float %849, float %.038, float noundef %848) %.022 = select i1 %.not157, float %852, float %851 %853 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not158 = icmp eq i32 %853, 0 %854 = call float @llvm.nvvm.fma.rn.ftz.f(float %.022, float %.038, float noundef %847) #135 %855 = call float @llvm.fma.f32(float %.022, float %.038, float noundef %847) %.015 = select i1 %.not158, float %855, float %854 %856 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not159 = icmp eq i32 %856, 0 %857 = call float @llvm.nvvm.fma.rn.ftz.f(float %.015, float %.033, float %840) #135 %858 = call float @llvm.fma.f32(float %.015, float %.033, float %840) %.08 = select i1 %.not159, float %858, float %857 %859 = and i32 %835, 2 %.not160 = icmp eq i32 %859, 0 br i1 %.not160, label %__internal_cos_offset_f.exit.i250, label %__internal_fmad.exit5.i.i.i249 __internal_fmad.exit5.i.i.i249: ; preds = %__internal_fmad.exit2.i.i.i246 %860 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not162 = icmp eq i32 %860, 0 %861 = call float @llvm.nvvm.fma.rn.ftz.f(float %.08, float noundef -1.000000e+00, float noundef 0.000000e+00) #135 %862 = call float @llvm.fma.f32(float %.08, float noundef -1.000000e+00, float noundef 0.000000e+00) %.04 = select i1 %.not162, float %862, float %861 br label %__internal_cos_offset_f.exit.i250 __internal_cos_offset_f.exit.i250: ; preds = %__internal_fmad.exit5.i.i.i249, %__internal_fmad.exit2.i.i.i246 %z.i.i.i170.0 = phi float [ %.04, %__internal_fmad.exit5.i.i.i249 ], [ %.08, %__internal_fmad.exit2.i.i.i246 ] %863 = fmul float %741, %z.i.i.i170.0 br label %__nv_j0f.exit251 __nv_j0f.exit251: ; preds = %__internal_cos_offset_f.exit.i250, %__nv_isinff.exit.i220, %__internal_fmad.exit.i207 %r.i200.1 = phi float [ %704, %__internal_fmad.exit.i207 ], [ %863, %__internal_cos_offset_f.exit.i250 ], [ 0.000000e+00, %__nv_isinff.exit.i220 ] %864 = icmp sgt i32 %n, 1 br i1 %864, label %__internal_fmad.exit.lr.ph, label %__nv_j0f.exit __internal_fmad.exit.lr.ph: ; preds = %__nv_j0f.exit251 %865 = add nsw i32 %n, -1 %xtraiter = and i32 %865, 1 %866 = icmp eq i32 %n, 2 br i1 %866, label %.__nv_j0f.exit.loopexit_crit_edge.unr-lcssa, label %__internal_fmad.exit.lr.ph.new __internal_fmad.exit.lr.ph.new: ; preds = %__internal_fmad.exit.lr.ph %unroll_iter = and i32 %865, -2 br label %__internal_fmad.exit __internal_fmad.exit: ; preds = %__internal_fmad.exit, %__internal_fmad.exit.lr.ph.new %jim1.0207 = phi float [ %r.i200.1, %__internal_fmad.exit.lr.ph.new ], [ %.02, %__internal_fmad.exit ] %ji.0206 = phi float [ %r.i118.3, %__internal_fmad.exit.lr.ph.new ], [ %.02.1, %__internal_fmad.exit ] %i.0205 = phi i32 [ 1, %__internal_fmad.exit.lr.ph.new ], [ %880, %__internal_fmad.exit ] %niter = phi i32 [ 0, %__internal_fmad.exit.lr.ph.new ], [ %niter.next.1, %__internal_fmad.exit ] %867 = sitofp i32 %i.0205 to float %868 = fmul float %ji.0206, %867 %869 = fneg float %jim1.0207 %870 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not161 = icmp eq i32 %870, 0 %871 = call float @llvm.nvvm.fma.rn.ftz.f(float %868, float %439, float %869) #135 %872 = call float @llvm.fma.f32(float %868, float %439, float %869) %.02 = select i1 %.not161, float %872, float %871 %873 = add nuw nsw i32 %i.0205, 1 %874 = sitofp i32 %873 to float %875 = fmul float %.02, %874 %876 = fneg float %ji.0206 %877 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not161.1 = icmp eq i32 %877, 0 %878 = call float @llvm.nvvm.fma.rn.ftz.f(float %875, float %439, float %876) #135 %879 = call float @llvm.fma.f32(float %875, float %439, float %876) %.02.1 = select i1 %.not161.1, float %879, float %878 %880 = add nuw nsw i32 %i.0205, 2 %niter.next.1 = add i32 %niter, 2 %niter.ncmp.1.not = icmp eq i32 %niter.next.1, %unroll_iter br i1 %niter.ncmp.1.not, label %.__nv_j0f.exit.loopexit_crit_edge.unr-lcssa.loopexit, label %__internal_fmad.exit 881: ; preds = %__nv_fabsf.exit %882 = mul nsw i32 %n, 40 %883 = sitofp i32 %882 to float %884 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not102 = icmp eq i32 %884, 0 br i1 %.not102, label %891, label %885 885: ; preds = %881 %886 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([17 x i8], [17 x i8]* @.str.2, i32 0, i32 0)) #135 %.not106 = icmp eq i32 %886, 0 br i1 %.not106, label %889, label %887 887: ; preds = %885 %888 = call float @llvm.nvvm.sqrt.rn.ftz.f(float %883) #135 br label %__nv_sqrtf.exit 889: ; preds = %885 %890 = call float @llvm.nvvm.sqrt.approx.ftz.f(float %883) #135 br label %__nv_sqrtf.exit 891: ; preds = %881 %892 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([17 x i8], [17 x i8]* @.str.2, i32 0, i32 0)) #135 %.not103 = icmp eq i32 %892, 0 br i1 %.not103, label %895, label %893 893: ; preds = %891 %894 = call float @llvm.sqrt.f32(float %883) br label %__nv_sqrtf.exit 895: ; preds = %891 %896 = call float @llvm.nvvm.sqrt.approx.f(float %883) #135 br label %__nv_sqrtf.exit __nv_sqrtf.exit: ; preds = %895, %893, %889, %887 %.01 = phi float [ %888, %887 ], [ %890, %889 ], [ %894, %893 ], [ %896, %895 ] %897 = fptosi float %.01 to i32 %898 = add nsw i32 %897, %n %899 = and i32 %898, -2 %900 = icmp sgt i32 %899, 0 br i1 %900, label %__nv_fabsf.exit252, label %__nv_j0f.exit __nv_fabsf.exit252: ; preds = %__nv_sqrtf.exit, %915 %ji1.0216 = phi float [ %jim12.0, %915 ], [ 1.000000e+00, %__nv_sqrtf.exit ] %i.1215 = phi i32 [ %916, %915 ], [ %899, %__nv_sqrtf.exit ] %sum.0214 = phi float [ %sum.2, %915 ], [ 0.000000e+00, %__nv_sqrtf.exit ] %lambda.0213 = phi float [ %spec.select4, %915 ], [ 0.000000e+00, %__nv_sqrtf.exit ] %jip1.1212 = phi float [ %jip1.2, %915 ], [ 0.000000e+00, %__nv_sqrtf.exit ] %901 = sitofp i32 %i.1215 to float %902 = fmul float %901, 2.000000e+00 %903 = fdiv float %902, %a %904 = fmul float %ji1.0216, %903 %905 = fsub float %904, %jip1.1212 %906 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not104 = icmp eq i32 %906, 0 %907 = call float @llvm.nvvm.fabs.ftz.f(float %905) #135 %908 = call float @llvm.fabs.f32(float %905) %.0 = select i1 %.not104, float %908, float %907 %909 = fcmp ogt float %.0, 0x430C6BF520000000 br i1 %909, label %910, label %915 910: ; preds = %__nv_fabsf.exit252 %911 = fmul float %905, 0x3CD203AFA0000000 %912 = fmul float %ji1.0216, 0x3CD203AFA0000000 %913 = fmul float %lambda.0213, 0x3CD203AFA0000000 %914 = fmul float %sum.0214, 0x3CD203AFA0000000 br label %915 915: ; preds = %910, %__nv_fabsf.exit252 %jip1.2 = phi float [ %912, %910 ], [ %ji1.0216, %__nv_fabsf.exit252 ] %lambda.1 = phi float [ %913, %910 ], [ %lambda.0213, %__nv_fabsf.exit252 ] %sum.1 = phi float [ %914, %910 ], [ %sum.0214, %__nv_fabsf.exit252 ] %jim12.0 = phi float [ %911, %910 ], [ %905, %__nv_fabsf.exit252 ] %916 = add nsw i32 %i.1215, -1 %917 = icmp eq i32 %916, %n %spec.select4 = select i1 %917, float %jim12.0, float %lambda.1 %918 = and i32 %i.1215, 1 %.not105 = icmp eq i32 %918, 0 %919 = fmul float %jim12.0, 2.000000e+00 %920 = select i1 %.not105, float -0.000000e+00, float %919 %sum.2 = fadd float %sum.1, %920 %921 = icmp ugt i32 %i.1215, 1 br i1 %921, label %__nv_fabsf.exit252, label %._crit_edge ._crit_edge: ; preds = %915 %922 = fsub float %sum.2, %jim12.0 %923 = fdiv float %spec.select4, %922 br label %__nv_j0f.exit .__nv_j0f.exit.loopexit_crit_edge.unr-lcssa.loopexit: ; preds = %__internal_fmad.exit %924 = or i32 %865, 1 %phi.cast = sitofp i32 %924 to float br label %.__nv_j0f.exit.loopexit_crit_edge.unr-lcssa .__nv_j0f.exit.loopexit_crit_edge.unr-lcssa: ; preds = %.__nv_j0f.exit.loopexit_crit_edge.unr-lcssa.loopexit, %__internal_fmad.exit.lr.ph %.02.lcssa.ph = phi float [ undef, %__internal_fmad.exit.lr.ph ], [ %.02.1, %.__nv_j0f.exit.loopexit_crit_edge.unr-lcssa.loopexit ] %jim1.0207.unr = phi float [ %r.i200.1, %__internal_fmad.exit.lr.ph ], [ %.02, %.__nv_j0f.exit.loopexit_crit_edge.unr-lcssa.loopexit ] %ji.0206.unr = phi float [ %r.i118.3, %__internal_fmad.exit.lr.ph ], [ %.02.1, %.__nv_j0f.exit.loopexit_crit_edge.unr-lcssa.loopexit ] %i.0205.unr = phi float [ 1.000000e+00, %__internal_fmad.exit.lr.ph ], [ %phi.cast, %.__nv_j0f.exit.loopexit_crit_edge.unr-lcssa.loopexit ] %lcmp.mod.not = icmp eq i32 %xtraiter, 0 br i1 %lcmp.mod.not, label %__nv_j0f.exit, label %__internal_fmad.exit.epil.preheader __internal_fmad.exit.epil.preheader: ; preds = %.__nv_j0f.exit.loopexit_crit_edge.unr-lcssa %925 = fmul float %ji.0206.unr, %i.0205.unr %926 = fneg float %jim1.0207.unr %927 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not161.epil = icmp eq i32 %927, 0 %928 = call float @llvm.nvvm.fma.rn.ftz.f(float %925, float %439, float %926) #135 %929 = call float @llvm.fma.f32(float %925, float %439, float %926) %.02.epil = select i1 %.not161.epil, float %929, float %928 br label %__nv_j0f.exit __nv_j0f.exit: ; preds = %__nv_j0f.exit251, %.__nv_j0f.exit.loopexit_crit_edge.unr-lcssa, %__internal_fmad.exit.epil.preheader, %__nv_sqrtf.exit, %._crit_edge, %429, %418, %422, %__internal_fmad.exit.i, %__nv_isinff.exit.i, %__internal_cos_offset_f.exit.i %.03 = phi float [ %52, %__internal_fmad.exit.i ], [ %211, %__internal_cos_offset_f.exit.i ], [ 0.000000e+00, %__nv_isinff.exit.i ], [ %428, %422 ], [ %r.i34.2, %418 ], [ 0x7FFFFFFFE0000000, %429 ], [ %923, %._crit_edge ], [ -0.000000e+00, %__nv_sqrtf.exit ], [ 0.000000e+00, %__nv_j0f.exit251 ], [ %.02.lcssa.ph, %.__nv_j0f.exit.loopexit_crit_edge.unr-lcssa ], [ %.02.epil, %__internal_fmad.exit.epil.preheader ] ret float %.03 } ; Function Attrs: noinline nounwind define dso_local float @__nv_erff(float %a) local_unnamed_addr #46 { __nv_fabsf.exit: %0 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not = icmp eq i32 %0, 0 %1 = call float @llvm.nvvm.fabs.ftz.f(float %a) #135 %2 = call float @llvm.fabs.f32(float %a) %.0 = select i1 %.not, float %2, float %1 %3 = fcmp oge float %.0, 0x3FF00C1FC0000000 br i1 %3, label %__nv_fabsf.exit1, label %5 __nv_fabsf.exit1: ; preds = %__nv_fabsf.exit %4 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not8 = icmp eq i32 %4, 0 %.01 = select i1 %.not8, float %2, float %1 br label %__internal_fmad.exit 5: ; preds = %__nv_fabsf.exit %6 = fmul float %a, %a br label %__internal_fmad.exit __internal_fmad.exit: ; preds = %5, %__nv_fabsf.exit1 %7 = phi float [ 0x3FC06EBA60000000, %5 ], [ 0x3FE4214280000000, %__nv_fabsf.exit1 ] %8 = phi float [ 0xBFD8127580000000, %5 ], [ 0x3FED369F20000000, %__nv_fabsf.exit1 ] %9 = phi float [ 0x3FBCE315E0000000, %5 ], [ 0x3FC46AA320000000, %__nv_fabsf.exit1 ] %10 = phi float [ 0xBF9B837CE0000000, %5 ], [ 0xBFA49B3340000000, %__nv_fabsf.exit1 ] %11 = phi float [ 0x3F755ABD40000000, %5 ], [ 0x3F813233E0000000, %__nv_fabsf.exit1 ] %12 = phi float [ 0xBF4AE9A400000000, %5 ], [ 0xBF55C00B60000000, %__nv_fabsf.exit1 ] %13 = phi float [ 0x3F163D2D40000000, %5 ], [ 0x3F1D698740000000, %__nv_fabsf.exit1 ] %14 = phi float [ %6, %5 ], [ %.01, %__nv_fabsf.exit1 ] %15 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not1 = icmp eq i32 %15, 0 %16 = call float @llvm.nvvm.fma.rn.ftz.f(float noundef %13, float %14, float noundef %12) #135 %17 = call float @llvm.fma.f32(float noundef %13, float %14, float noundef %12) %.02 = select i1 %.not1, float %17, float %16 %18 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not2 = icmp eq i32 %18, 0 %19 = call float @llvm.nvvm.fma.rn.ftz.f(float %.02, float %14, float noundef %11) #135 %20 = call float @llvm.fma.f32(float %.02, float %14, float noundef %11) %.03 = select i1 %.not2, float %20, float %19 %21 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not3 = icmp eq i32 %21, 0 %22 = call float @llvm.nvvm.fma.rn.ftz.f(float %.03, float %14, float noundef %10) #135 %23 = call float @llvm.fma.f32(float %.03, float %14, float noundef %10) %.04 = select i1 %.not3, float %23, float %22 %24 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not4 = icmp eq i32 %24, 0 %25 = call float @llvm.nvvm.fma.rn.ftz.f(float %.04, float %14, float noundef %9) #135 %26 = call float @llvm.fma.f32(float %.04, float %14, float noundef %9) %.05 = select i1 %.not4, float %26, float %25 %27 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not5 = icmp eq i32 %27, 0 %28 = call float @llvm.nvvm.fma.rn.ftz.f(float %.05, float %14, float noundef %8) #135 %29 = call float @llvm.fma.f32(float %.05, float %14, float noundef %8) %.06 = select i1 %.not5, float %29, float %28 %30 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not6 = icmp eq i32 %30, 0 %31 = call float @llvm.nvvm.fma.rn.ftz.f(float %.06, float %14, float noundef %7) #135 %32 = call float @llvm.fma.f32(float %.06, float %14, float noundef %7) %.07 = select i1 %.not6, float %32, float %31 %33 = fneg float %14 %34 = select i1 %3, float %33, float %a %35 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not7 = icmp eq i32 %35, 0 %36 = call float @llvm.nvvm.fma.rn.ftz.f(float %.07, float %34, float %34) #135 %37 = call float @llvm.fma.f32(float %.07, float %34, float %34) %.08 = select i1 %.not7, float %37, float %36 br i1 %3, label %38, label %46 38: ; preds = %__internal_fmad.exit %39 = call float @llvm.nvvm.ex2.approx.ftz.f(float %.08) #135 %40 = fsub float 1.000000e+00, %39 %41 = bitcast float %40 to i32 %42 = bitcast float %a to i32 %43 = and i32 %42, -2147483648 %44 = or i32 %43, %41 %45 = bitcast i32 %44 to float br label %46 46: ; preds = %38, %__internal_fmad.exit %r.0 = phi float [ %45, %38 ], [ %.08, %__internal_fmad.exit ] ret float %r.0 } ; Function Attrs: noinline nounwind define dso_local float @__nv_erfinvf(float %a) local_unnamed_addr #47 { __nv_fmaf_rn.exit: %0 = fneg float %a %1 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not = icmp eq i32 %1, 0 %2 = call float @llvm.nvvm.fma.rn.ftz.f(float %a, float %0, float noundef 1.000000e+00) #135 %3 = call float @llvm.fma.f32(float %a, float %0, float noundef 1.000000e+00) %.0 = select i1 %.not, float %3, float %2 %4 = call float @llvm.nvvm.lg2.approx.ftz.f(float %.0) #135 %5 = fneg float %4 %6 = fcmp olt float %4, 0xC020666660000000 br i1 %6, label %__internal_fmad.exit, label %__internal_fmad.exit.i __internal_fmad.exit: ; preds = %__nv_fmaf_rn.exit %7 = call float @llvm.nvvm.rsqrt.approx.ftz.f(float %5) #135 %8 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not10 = icmp eq i32 %8, 0 %9 = call float @llvm.nvvm.fma.rn.ftz.f(float noundef 0xBFE2E09420000000, float %7, float noundef 0xBFE53754A0000000) #135 %10 = call float @llvm.fma.f32(float %7, float noundef 0xBFE2E09420000000, float noundef 0xBFE53754A0000000) %.011 = select i1 %.not10, float %10, float %9 %11 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not11 = icmp eq i32 %11, 0 %12 = call float @llvm.nvvm.fma.rn.ftz.f(float %.011, float %7, float noundef 0x3FF98D5B80000000) #135 %13 = call float @llvm.fma.f32(float %.011, float %7, float noundef 0x3FF98D5B80000000) %.012 = select i1 %.not11, float %13, float %12 %14 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not12 = icmp eq i32 %14, 0 %15 = call float @llvm.nvvm.fma.rn.ftz.f(float %.012, float %7, float noundef 0xBFE59B5DA0000000) #135 %16 = call float @llvm.fma.f32(float %.012, float %7, float noundef 0xBFE59B5DA0000000) %.013 = select i1 %.not12, float %16, float %15 %17 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not13 = icmp eq i32 %17, 0 %18 = call float @llvm.nvvm.fma.rn.ftz.f(float %.013, float %7, float noundef 0xBFB860A6E0000000) #135 %19 = call float @llvm.fma.f32(float %.013, float %7, float noundef 0xBFB860A6E0000000) %.014 = select i1 %.not13, float %19, float %18 %20 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not14 = icmp eq i32 %20, 0 %21 = call float @llvm.nvvm.fma.rn.ftz.f(float %.014, float %7, float noundef 0x3FEABB3720000000) #135 %22 = call float @llvm.fma.f32(float %.014, float %7, float noundef 0x3FEABB3720000000) %.07 = select i1 %.not14, float %22, float %21 %23 = fdiv float 1.000000e+00, %7 %24 = fmul float %23, %.07 %25 = bitcast float %24 to i32 %26 = bitcast float %a to i32 %27 = and i32 %26, -2147483648 %28 = or i32 %27, %25 %29 = bitcast i32 %28 to float br label %58 __internal_fmad.exit.i: ; preds = %__nv_fmaf_rn.exit %30 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not1 = icmp eq i32 %30, 0 %31 = call float @llvm.nvvm.fma.rn.ftz.f(float noundef 0xBDF14C6E00000000, float %5, float noundef 0x3E443EC8A0000000) #135 %32 = call float @llvm.fma.f32(float %5, float noundef 0xBDF14C6E00000000, float noundef 0x3E443EC8A0000000) %.01 = select i1 %.not1, float %32, float %31 %33 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not2 = icmp eq i32 %33, 0 %34 = call float @llvm.nvvm.fma.rn.ftz.f(float %.01, float %5, float noundef 0xBE802DFB40000000) #135 %35 = call float @llvm.fma.f32(float %.01, float %5, float noundef 0xBE802DFB40000000) %.02 = select i1 %.not2, float %35, float %34 %36 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not3 = icmp eq i32 %36, 0 %37 = call float @llvm.nvvm.fma.rn.ftz.f(float %.02, float %5, float noundef 0x3E8D1F08C0000000) #135 %38 = call float @llvm.fma.f32(float %.02, float %5, float noundef 0x3E8D1F08C0000000) %.03 = select i1 %.not3, float %38, float %37 %39 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not4 = icmp eq i32 %39, 0 %40 = call float @llvm.nvvm.fma.rn.ftz.f(float %.03, float %5, float noundef 0x3EE0E85540000000) #135 %41 = call float @llvm.fma.f32(float %.03, float %5, float noundef 0x3EE0E85540000000) %.04 = select i1 %.not4, float %41, float %40 %42 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not5 = icmp eq i32 %42, 0 %43 = call float @llvm.nvvm.fma.rn.ftz.f(float %.04, float %5, float noundef 0xBF009B69A0000000) #135 %44 = call float @llvm.fma.f32(float %.04, float %5, float noundef 0xBF009B69A0000000) %.05 = select i1 %.not5, float %44, float %43 %45 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not6 = icmp eq i32 %45, 0 %46 = call float @llvm.nvvm.fma.rn.ftz.f(float %.05, float %5, float noundef 0xBF495FD420000000) #135 %47 = call float @llvm.fma.f32(float %.05, float %5, float noundef 0xBF495FD420000000) %.06 = select i1 %.not6, float %47, float %46 %48 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not7 = icmp eq i32 %48, 0 %49 = call float @llvm.nvvm.fma.rn.ftz.f(float %.06, float %5, float noundef 0x3F76B804E0000000) #135 %50 = call float @llvm.fma.f32(float %.06, float %5, float noundef 0x3F76B804E0000000) %.08 = select i1 %.not7, float %50, float %49 %51 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not8 = icmp eq i32 %51, 0 %52 = call float @llvm.nvvm.fma.rn.ftz.f(float %.08, float %5, float noundef 0x3FC495C1E0000000) #135 %53 = call float @llvm.fma.f32(float %.08, float %5, float noundef 0x3FC495C1E0000000) %.09 = select i1 %.not8, float %53, float %52 %54 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not9 = icmp eq i32 %54, 0 %55 = call float @llvm.nvvm.fma.rn.ftz.f(float %.09, float %5, float noundef 0x3FEC5BF880000000) #135 %56 = call float @llvm.fma.f32(float %.09, float %5, float noundef 0x3FEC5BF880000000) %.010 = select i1 %.not9, float %56, float %55 %57 = fmul float %.010, %a br label %58 58: ; preds = %__internal_fmad.exit.i, %__internal_fmad.exit %t.0 = phi float [ %29, %__internal_fmad.exit ], [ %57, %__internal_fmad.exit.i ] ret float %t.0 } ; Function Attrs: noinline nounwind define dso_local float @__nv_erfcf(float %a) local_unnamed_addr #48 { __nv_fabsf.exit: %0 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not = icmp eq i32 %0, 0 %1 = call float @llvm.nvvm.fabs.ftz.f(float %a) #135 %2 = call float @llvm.fabs.f32(float %a) %.01 = select i1 %.not, float %2, float %1 %3 = fadd float %.01, -4.000000e+00 %4 = fadd float %.01, 4.000000e+00 %5 = call float asm "rcp.approx.ftz.f32 $0,$1;", "=f,f"(float %4) #137, !srcloc !225 %6 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not1 = icmp eq i32 %6, 0 %7 = call float @llvm.nvvm.mul.rn.ftz.f(float %3, float %5) #135 %8 = fmul float %5, %3 %.04 = select i1 %.not1, float %8, float %7 %9 = fadd float %.04, 1.000000e+00 %10 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not2 = icmp eq i32 %10, 0 %11 = call float @llvm.nvvm.fma.rn.ftz.f(float noundef -4.000000e+00, float %9, float %.01) #135 %12 = call float @llvm.fma.f32(float %9, float noundef -4.000000e+00, float %.01) %.05 = select i1 %.not2, float %12, float %11 %13 = fneg float %.04 %14 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not3 = icmp eq i32 %14, 0 %15 = call float @llvm.nvvm.fma.rn.ftz.f(float %13, float %.01, float %.05) #135 %16 = call float @llvm.fma.f32(float %13, float %.01, float %.05) %.06 = select i1 %.not3, float %16, float %15 %17 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not4 = icmp eq i32 %17, 0 %18 = call float @llvm.nvvm.fma.rn.ftz.f(float %5, float %.06, float %.04) #135 %19 = call float @llvm.fma.f32(float %5, float %.06, float %.04) %.07 = select i1 %.not4, float %19, float %18 %20 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not5 = icmp eq i32 %20, 0 %21 = call float @llvm.nvvm.fma.rn.ftz.f(float noundef 0x3F4D341220000000, float %.07, float noundef 0x3F7CDC0B60000000) #135 %22 = call float @llvm.fma.f32(float %.07, float noundef 0x3F4D341220000000, float noundef 0x3F7CDC0B60000000) %.08 = select i1 %.not5, float %22, float %21 %23 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not6 = icmp eq i32 %23, 0 %24 = call float @llvm.nvvm.fma.rn.ftz.f(float %.08, float %.07, float noundef 0xBF903F6960000000) #135 %25 = call float @llvm.fma.f32(float %.08, float %.07, float noundef 0xBF903F6960000000) %.010 = select i1 %.not6, float %25, float %24 %26 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not7 = icmp eq i32 %26, 0 %27 = call float @llvm.nvvm.fma.rn.ftz.f(float %.010, float %.07, float noundef 0x3FA2A6E760000000) #135 %28 = call float @llvm.fma.f32(float %.010, float %.07, float noundef 0x3FA2A6E760000000) %.011 = select i1 %.not7, float %28, float %27 %29 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not8 = icmp eq i32 %29, 0 %30 = call float @llvm.nvvm.fma.rn.ftz.f(float %.011, float %.07, float noundef 0xBFB10F8B40000000) #135 %31 = call float @llvm.fma.f32(float %.011, float %.07, float noundef 0xBFB10F8B40000000) %.012 = select i1 %.not8, float %31, float %30 %32 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not9 = icmp eq i32 %32, 0 %33 = call float @llvm.nvvm.fma.rn.ftz.f(float %.012, float %.07, float noundef 0x3FB8043AA0000000) #135 %34 = call float @llvm.fma.f32(float %.012, float %.07, float noundef 0x3FB8043AA0000000) %.013 = select i1 %.not9, float %34, float %33 %35 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not10 = icmp eq i32 %35, 0 %36 = call float @llvm.nvvm.fma.rn.ftz.f(float %.013, float %.07, float noundef 0xBFB9DA8480000000) #135 %37 = call float @llvm.fma.f32(float %.013, float %.07, float noundef 0xBFB9DA8480000000) %.014 = select i1 %.not10, float %37, float %36 %38 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not11 = icmp eq i32 %38, 0 %39 = call float @llvm.nvvm.fma.rn.ftz.f(float %.014, float %.07, float noundef 0x3FB16E9BC0000000) #135 %40 = call float @llvm.fma.f32(float %.014, float %.07, float noundef 0x3FB16E9BC0000000) %.015 = select i1 %.not11, float %40, float %39 %41 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not12 = icmp eq i32 %41, 0 %42 = call float @llvm.nvvm.fma.rn.ftz.f(float %.015, float %.07, float noundef 0x3F8F7E2E00000000) #135 %43 = call float @llvm.fma.f32(float %.015, float %.07, float noundef 0x3F8F7E2E00000000) %.016 = select i1 %.not12, float %43, float %42 %44 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not13 = icmp eq i32 %44, 0 %45 = call float @llvm.nvvm.fma.rn.ftz.f(float %.016, float %.07, float noundef 0xBFC1DF1A80000000) #135 %46 = call float @llvm.fma.f32(float %.016, float %.07, float noundef 0xBFC1DF1A80000000) %.017 = select i1 %.not13, float %46, float %45 %47 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not14 = icmp eq i32 %47, 0 %48 = call float @llvm.nvvm.fma.rn.ftz.f(float %.017, float %.07, float noundef 0x3FF3BA5920000000) #135 %49 = call float @llvm.fma.f32(float %.017, float %.07, float noundef 0x3FF3BA5920000000) %.018 = select i1 %.not14, float %49, float %48 %50 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not15 = icmp eq i32 %50, 0 %51 = call float @llvm.nvvm.fma.rn.ftz.f(float noundef 2.000000e+00, float %.01, float noundef 1.000000e+00) #135 %52 = call float @llvm.fma.f32(float %.01, float noundef 2.000000e+00, float noundef 1.000000e+00) %.019 = select i1 %.not15, float %52, float %51 %53 = call float asm "rcp.approx.ftz.f32 $0,$1;", "=f,f"(float %.019) #137, !srcloc !225 %54 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not16 = icmp eq i32 %54, 0 %55 = call float @llvm.nvvm.mul.rn.ftz.f(float %.018, float %53) #135 %56 = fmul float %53, %.018 %.020 = select i1 %.not16, float %56, float %55 %57 = fmul float %.020, -2.000000e+00 %58 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not17 = icmp eq i32 %58, 0 %59 = call float @llvm.nvvm.fma.rn.ftz.f(float %.01, float %57, float %.018) #135 %60 = call float @llvm.fma.f32(float %.01, float %57, float %.018) %.021 = select i1 %.not17, float %60, float %59 %61 = fsub float %.021, %.020 %62 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not18 = icmp eq i32 %62, 0 %63 = call float @llvm.nvvm.fma.rn.ftz.f(float %61, float %53, float %.020) #135 %64 = call float @llvm.fma.f32(float %61, float %53, float %.020) %.022 = select i1 %.not18, float %64, float %63 %65 = fneg float %.01 %66 = fmul float %.01, %65 %67 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not19 = icmp eq i32 %67, 0 %68 = call float @llvm.nvvm.mul.rn.ftz.f(float %66, float noundef 0x3FF7154760000000) #135 %69 = fmul float %66, 0x3FF7154760000000 %.03 = select i1 %.not19, float %69, float %68 %70 = call float @llvm.trunc.f32(float %.03) %71 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not20 = icmp eq i32 %71, 0 %72 = call float @llvm.nvvm.fabs.ftz.f(float %70) #135 %73 = call float @llvm.fabs.f32(float %70) %.09 = select i1 %.not20, float %73, float %72 %74 = fcmp ogt float %.09, 1.260000e+02 %75 = bitcast float %70 to i32 %76 = and i32 %75, -2147483648 %77 = or i32 %76, 1123811328 %78 = bitcast i32 %77 to float %j.i.0 = select i1 %74, float %78, float %70 %79 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not21 = icmp eq i32 %79, 0 %80 = call float @llvm.nvvm.fma.rn.ftz.f(float %j.i.0, float noundef 0xBFE62E4300000000, float %66) #135 %81 = call float @llvm.fma.f32(float %j.i.0, float noundef 0xBFE62E4300000000, float %66) %.023 = select i1 %.not21, float %81, float %80 %82 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not22 = icmp eq i32 %82, 0 %83 = call float @llvm.nvvm.fma.rn.ftz.f(float %j.i.0, float noundef 0x3E205C6100000000, float %.023) #135 %84 = call float @llvm.fma.f32(float %j.i.0, float noundef 0x3E205C6100000000, float %.023) %.024 = select i1 %.not22, float %84, float %83 %85 = fmul float %.024, 0x3FF7154760000000 %86 = fadd float %j.i.0, 0x4168000FE0000000 %87 = bitcast float %86 to i32 %88 = shl i32 %87, 23 %89 = bitcast i32 %88 to float %90 = call float @llvm.nvvm.ex2.approx.ftz.f(float %85) #135 %91 = fmul float %90, %89 %92 = fneg float %66 %93 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not23 = icmp eq i32 %93, 0 %94 = call float @llvm.nvvm.fma.rn.ftz.f(float %65, float %.01, float %92) #135 %95 = call float @llvm.fma.f32(float %65, float %.01, float %92) %.02 = select i1 %.not23, float %95, float %94 %96 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not24 = icmp eq i32 %96, 0 %97 = call float @llvm.nvvm.fma.rn.ftz.f(float %91, float %.02, float %91) #135 %98 = call float @llvm.fma.f32(float %91, float %.02, float %91) %.0 = select i1 %.not24, float %98, float %97 %99 = fmul float %.0, %.022 %100 = fcmp ogt float %.01, 0x40241C2900000000 %t1.0 = select i1 %100, float 0.000000e+00, float %99 %101 = fcmp olt float %a, 0.000000e+00 %102 = fsub float 2.000000e+00, %t1.0 %103 = select i1 %101, float %102, float %t1.0 ret float %103 } ; Function Attrs: noinline nounwind define dso_local float @__nv_erfcxf(float %a) local_unnamed_addr #49 { __nv_fabsf.exit: %0 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not = icmp eq i32 %0, 0 %1 = call float @llvm.nvvm.fabs.ftz.f(float %a) #135 %2 = call float @llvm.fabs.f32(float %a) %.01 = select i1 %.not, float %2, float %1 %3 = fcmp olt float %.01, 0x40241C2900000000 br i1 %3, label %__nv_fmul_rn.exit.i, label %66 __nv_fmul_rn.exit.i: ; preds = %__nv_fabsf.exit %4 = fadd float %.01, -4.000000e+00 %5 = fadd float %.01, 4.000000e+00 %6 = call float asm "rcp.approx.ftz.f32 $0,$1;", "=f,f"(float %5) #137, !srcloc !225 %7 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not14 = icmp eq i32 %7, 0 %8 = call float @llvm.nvvm.mul.rn.ftz.f(float %4, float %6) #135 %9 = fmul float %4, %6 %.03 = select i1 %.not14, float %9, float %8 %10 = fadd float %.03, 1.000000e+00 %11 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not15 = icmp eq i32 %11, 0 %12 = call float @llvm.nvvm.fma.rn.ftz.f(float noundef -4.000000e+00, float %10, float %.01) #135 %13 = call float @llvm.fma.f32(float %10, float noundef -4.000000e+00, float %.01) %.04 = select i1 %.not15, float %13, float %12 %14 = fneg float %.03 %15 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not16 = icmp eq i32 %15, 0 %16 = call float @llvm.nvvm.fma.rn.ftz.f(float %14, float %.01, float %.04) #135 %17 = call float @llvm.fma.f32(float %14, float %.01, float %.04) %.05 = select i1 %.not16, float %17, float %16 %18 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not17 = icmp eq i32 %18, 0 %19 = call float @llvm.nvvm.fma.rn.ftz.f(float %6, float %.05, float %.03) #135 %20 = call float @llvm.fma.f32(float %6, float %.05, float %.03) %.06 = select i1 %.not17, float %20, float %19 %21 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not18 = icmp eq i32 %21, 0 %22 = call float @llvm.nvvm.fma.rn.ftz.f(float noundef 0x3F4D341220000000, float %.06, float noundef 0x3F7CDC0B60000000) #135 %23 = call float @llvm.fma.f32(float %.06, float noundef 0x3F4D341220000000, float noundef 0x3F7CDC0B60000000) %.07 = select i1 %.not18, float %23, float %22 %24 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not19 = icmp eq i32 %24, 0 %25 = call float @llvm.nvvm.fma.rn.ftz.f(float %.07, float %.06, float noundef 0xBF903F6960000000) #135 %26 = call float @llvm.fma.f32(float %.07, float %.06, float noundef 0xBF903F6960000000) %.08 = select i1 %.not19, float %26, float %25 %27 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not20 = icmp eq i32 %27, 0 %28 = call float @llvm.nvvm.fma.rn.ftz.f(float %.08, float %.06, float noundef 0x3FA2A6E760000000) #135 %29 = call float @llvm.fma.f32(float %.08, float %.06, float noundef 0x3FA2A6E760000000) %.010 = select i1 %.not20, float %29, float %28 %30 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not21 = icmp eq i32 %30, 0 %31 = call float @llvm.nvvm.fma.rn.ftz.f(float %.010, float %.06, float noundef 0xBFB10F8B40000000) #135 %32 = call float @llvm.fma.f32(float %.010, float %.06, float noundef 0xBFB10F8B40000000) %.011 = select i1 %.not21, float %32, float %31 %33 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not22 = icmp eq i32 %33, 0 %34 = call float @llvm.nvvm.fma.rn.ftz.f(float %.011, float %.06, float noundef 0x3FB8043AA0000000) #135 %35 = call float @llvm.fma.f32(float %.011, float %.06, float noundef 0x3FB8043AA0000000) %.012 = select i1 %.not22, float %35, float %34 %36 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not23 = icmp eq i32 %36, 0 %37 = call float @llvm.nvvm.fma.rn.ftz.f(float %.012, float %.06, float noundef 0xBFB9DA8480000000) #135 %38 = call float @llvm.fma.f32(float %.012, float %.06, float noundef 0xBFB9DA8480000000) %.014 = select i1 %.not23, float %38, float %37 %39 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not24 = icmp eq i32 %39, 0 %40 = call float @llvm.nvvm.fma.rn.ftz.f(float %.014, float %.06, float noundef 0x3FB16E9BC0000000) #135 %41 = call float @llvm.fma.f32(float %.014, float %.06, float noundef 0x3FB16E9BC0000000) %.016 = select i1 %.not24, float %41, float %40 %42 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not25 = icmp eq i32 %42, 0 %43 = call float @llvm.nvvm.fma.rn.ftz.f(float %.016, float %.06, float noundef 0x3F8F7E2E00000000) #135 %44 = call float @llvm.fma.f32(float %.016, float %.06, float noundef 0x3F8F7E2E00000000) %.017 = select i1 %.not25, float %44, float %43 %45 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not26 = icmp eq i32 %45, 0 %46 = call float @llvm.nvvm.fma.rn.ftz.f(float %.017, float %.06, float noundef 0xBFC1DF1A80000000) #135 %47 = call float @llvm.fma.f32(float %.017, float %.06, float noundef 0xBFC1DF1A80000000) %.018 = select i1 %.not26, float %47, float %46 %48 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not27 = icmp eq i32 %48, 0 %49 = call float @llvm.nvvm.fma.rn.ftz.f(float %.018, float %.06, float noundef 0x3FF3BA5920000000) #135 %50 = call float @llvm.fma.f32(float %.018, float %.06, float noundef 0x3FF3BA5920000000) %.020 = select i1 %.not27, float %50, float %49 %51 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not28 = icmp eq i32 %51, 0 %52 = call float @llvm.nvvm.fma.rn.ftz.f(float noundef 2.000000e+00, float %.01, float noundef 1.000000e+00) #135 %53 = call float @llvm.fma.f32(float %.01, float noundef 2.000000e+00, float noundef 1.000000e+00) %.021 = select i1 %.not28, float %53, float %52 %54 = call float asm "rcp.approx.ftz.f32 $0,$1;", "=f,f"(float %.021) #137, !srcloc !225 %55 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not29 = icmp eq i32 %55, 0 %56 = call float @llvm.nvvm.mul.rn.ftz.f(float %.020, float %54) #135 %57 = fmul float %54, %.020 %.022 = select i1 %.not29, float %57, float %56 %58 = fmul float %.022, -2.000000e+00 %59 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not30 = icmp eq i32 %59, 0 %60 = call float @llvm.nvvm.fma.rn.ftz.f(float %.01, float %58, float %.020) #135 %61 = call float @llvm.fma.f32(float %.01, float %58, float %.020) %.023 = select i1 %.not30, float %61, float %60 %62 = fsub float %.023, %.022 %63 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not31 = icmp eq i32 %63, 0 %64 = call float @llvm.nvvm.fma.rn.ftz.f(float %62, float %54, float %.022) #135 %65 = call float @llvm.fma.f32(float %62, float %54, float %.022) %.024 = select i1 %.not31, float %65, float %64 br label %88 66: ; preds = %__nv_fabsf.exit %67 = fmul float %.01, 2.500000e-01 %68 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not1 = icmp eq i32 %68, 0 br i1 %.not1, label %71, label %69 69: ; preds = %66 %70 = call float @llvm.nvvm.div.approx.ftz.f(float noundef 2.500000e-01, float %67) #135 br label %__nv_fast_fdividef.exit 71: ; preds = %66 %72 = call float @llvm.nvvm.div.approx.f(float noundef 2.500000e-01, float %67) #135 br label %__nv_fast_fdividef.exit __nv_fast_fdividef.exit: ; preds = %71, %69 %.025 = phi float [ %70, %69 ], [ %72, %71 ] %73 = fmul float %.025, %.025 %74 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not2 = icmp eq i32 %74, 0 %75 = call float @llvm.nvvm.fma.rn.ftz.f(float noundef 6.562500e+00, float %73, float noundef -1.875000e+00) #135 %76 = call float @llvm.fma.f32(float %73, float noundef 6.562500e+00, float noundef -1.875000e+00) %.026 = select i1 %.not2, float %76, float %75 %77 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not3 = icmp eq i32 %77, 0 %78 = call float @llvm.nvvm.fma.rn.ftz.f(float %.026, float %73, float noundef 7.500000e-01) #135 %79 = call float @llvm.fma.f32(float %.026, float %73, float noundef 7.500000e-01) %.027 = select i1 %.not3, float %79, float %78 %80 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not4 = icmp eq i32 %80, 0 %81 = call float @llvm.nvvm.fma.rn.ftz.f(float %.027, float %73, float noundef -5.000000e-01) #135 %82 = call float @llvm.fma.f32(float %.027, float %73, float noundef -5.000000e-01) %.028 = select i1 %.not4, float %82, float %81 %83 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not5 = icmp eq i32 %83, 0 %84 = call float @llvm.nvvm.fma.rn.ftz.f(float %.028, float %73, float noundef 1.000000e+00) #135 %85 = call float @llvm.fma.f32(float %.028, float %73, float noundef 1.000000e+00) %.029 = select i1 %.not5, float %85, float %84 %86 = fmul float %.025, 0x3FE20DD760000000 %87 = fmul float %86, %.029 br label %88 88: ; preds = %__nv_fast_fdividef.exit, %__nv_fmul_rn.exit.i %t1.0 = phi float [ %.024, %__nv_fmul_rn.exit.i ], [ %87, %__nv_fast_fdividef.exit ] %89 = fcmp olt float %a, 0.000000e+00 br i1 %89, label %__nv_fmul_rz.exit, label %125 __nv_fmul_rz.exit: ; preds = %88 %90 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not6 = icmp eq i32 %90, 0 %91 = call float @llvm.nvvm.mul.rz.ftz.f(float %.01, float %.01) #135 %92 = call float @llvm.nvvm.mul.rz.f(float %.01, float %.01) #135 %.030 = select i1 %.not6, float %92, float %91 %93 = fneg float %.030 %94 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not7 = icmp eq i32 %94, 0 %95 = call float @llvm.nvvm.fma.rn.ftz.f(float %.01, float %.01, float %93) #135 %96 = call float @llvm.fma.f32(float %.01, float %.01, float %93) %.031 = select i1 %.not7, float %96, float %95 %97 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not8 = icmp eq i32 %97, 0 %98 = call float @llvm.nvvm.fma.rn.ftz.f(float %.030, float noundef 0x3F777313A0000000, float noundef 5.000000e-01) #135 %99 = call float @llvm.fma.f32(float %.030, float noundef 0x3F777313A0000000, float noundef 5.000000e-01) %.015 = select i1 %.not8, float %99, float %98 %100 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not9 = icmp eq i32 %100, 0 %101 = call float @llvm.nvvm.saturate.ftz.f(float %.015) #135 %102 = call float @llvm.nvvm.saturate.f(float %.015) #135 %.013 = select i1 %.not9, float %102, float %101 %103 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not10 = icmp eq i32 %103, 0 %104 = call float @llvm.nvvm.fma.rm.ftz.f(float %.013, float noundef 2.520000e+02, float noundef 0x4168000020000000) #135 %105 = call float @llvm.nvvm.fma.rm.f(float %.013, float noundef 2.520000e+02, float noundef 0x4168000020000000) #135 %.09 = select i1 %.not10, float %105, float %104 %106 = fadd float %.09, 0xC168000FE0000000 %107 = fneg float %106 %108 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not11 = icmp eq i32 %108, 0 %109 = call float @llvm.nvvm.fma.rn.ftz.f(float %.030, float noundef 0x3FF7154760000000, float %107) #135 %110 = call float @llvm.fma.f32(float %.030, float noundef 0x3FF7154760000000, float %107) %.02 = select i1 %.not11, float %110, float %109 %111 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not12 = icmp eq i32 %111, 0 %112 = call float @llvm.nvvm.fma.rn.ftz.f(float %.030, float noundef 0x3E54AE0C00000000, float %.02) #135 %113 = call float @llvm.fma.f32(float %.030, float noundef 0x3E54AE0C00000000, float %.02) %.019 = select i1 %.not12, float %113, float %112 %114 = bitcast float %.09 to i32 %115 = shl i32 %114, 23 %116 = bitcast i32 %115 to float %117 = call float @llvm.nvvm.ex2.approx.ftz.f(float %.019) #135 %118 = fmul float %117, %116 %119 = fadd float %118, %118 %120 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not13 = icmp eq i32 %120, 0 %121 = call float @llvm.nvvm.fma.rn.ftz.f(float %119, float %.031, float %119) #135 %122 = call float @llvm.fma.f32(float %119, float %.031, float %119) %.0 = select i1 %.not13, float %122, float %121 %123 = fsub float %.0, %t1.0 %124 = fcmp oeq float %119, 0x7FF0000000000000 %t1.1 = select i1 %124, float %119, float %123 br label %125 125: ; preds = %__nv_fmul_rz.exit, %88 %t1.2 = phi float [ %t1.1, %__nv_fmul_rz.exit ], [ %t1.0, %88 ] ret float %t1.2 } ; Function Attrs: noinline nounwind define dso_local float @__nv_erfcinvf(float %a) local_unnamed_addr #50 { __nv_fadd_rn.exit: %0 = fneg float %a %1 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not = icmp eq i32 %1, 0 %2 = call float @llvm.nvvm.add.rn.ftz.f(float noundef 2.000000e+00, float %0) #135 %3 = fsub float 2.000000e+00, %a %.01 = select i1 %.not, float %3, float %2 %4 = fcmp oge float %a, 0x3F6BDA5120000000 %5 = fcmp ole float %a, 0x3FFFF212E0000000 %or.cond = and i1 %4, %5 br i1 %or.cond, label %__nv_fmul_rn.exit, label %41 __nv_fmul_rn.exit: ; preds = %__nv_fadd_rn.exit %6 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not11 = icmp eq i32 %6, 0 %7 = call float @llvm.nvvm.mul.rn.ftz.f(float %.01, float %a) #135 %8 = fmul float %.01, %a %.02 = select i1 %.not11, float %8, float %7 %9 = call float @llvm.nvvm.lg2.approx.ftz.f(float %.02) #135 %10 = fneg float %9 %11 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not12 = icmp eq i32 %11, 0 %12 = call float @llvm.nvvm.fma.rn.ftz.f(float noundef 0xBDF14C6E00000000, float %10, float noundef 0x3E443EC8A0000000) #135 %13 = call float @llvm.fma.f32(float %10, float noundef 0xBDF14C6E00000000, float noundef 0x3E443EC8A0000000) %.04 = select i1 %.not12, float %13, float %12 %14 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not13 = icmp eq i32 %14, 0 %15 = call float @llvm.nvvm.fma.rn.ftz.f(float %.04, float %10, float noundef 0xBE802DFB40000000) #135 %16 = call float @llvm.fma.f32(float %.04, float %10, float noundef 0xBE802DFB40000000) %.05 = select i1 %.not13, float %16, float %15 %17 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not14 = icmp eq i32 %17, 0 %18 = call float @llvm.nvvm.fma.rn.ftz.f(float %.05, float %10, float noundef 0x3E8D1F08C0000000) #135 %19 = call float @llvm.fma.f32(float %.05, float %10, float noundef 0x3E8D1F08C0000000) %.07 = select i1 %.not14, float %19, float %18 %20 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not15 = icmp eq i32 %20, 0 %21 = call float @llvm.nvvm.fma.rn.ftz.f(float %.07, float %10, float noundef 0x3EE0E85540000000) #135 %22 = call float @llvm.fma.f32(float %.07, float %10, float noundef 0x3EE0E85540000000) %.08 = select i1 %.not15, float %22, float %21 %23 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not16 = icmp eq i32 %23, 0 %24 = call float @llvm.nvvm.fma.rn.ftz.f(float %.08, float %10, float noundef 0xBF009B69A0000000) #135 %25 = call float @llvm.fma.f32(float %.08, float %10, float noundef 0xBF009B69A0000000) %.09 = select i1 %.not16, float %25, float %24 %26 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not17 = icmp eq i32 %26, 0 %27 = call float @llvm.nvvm.fma.rn.ftz.f(float %.09, float %10, float noundef 0xBF495FD420000000) #135 %28 = call float @llvm.fma.f32(float %.09, float %10, float noundef 0xBF495FD420000000) %.010 = select i1 %.not17, float %28, float %27 %29 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not18 = icmp eq i32 %29, 0 %30 = call float @llvm.nvvm.fma.rn.ftz.f(float %.010, float %10, float noundef 0x3F76B804E0000000) #135 %31 = call float @llvm.fma.f32(float %.010, float %10, float noundef 0x3F76B804E0000000) %.011 = select i1 %.not18, float %31, float %30 %32 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not19 = icmp eq i32 %32, 0 %33 = call float @llvm.nvvm.fma.rn.ftz.f(float %.011, float %10, float noundef 0x3FC495C1E0000000) #135 %34 = call float @llvm.fma.f32(float %.011, float %10, float noundef 0x3FC495C1E0000000) %.012 = select i1 %.not19, float %34, float %33 %35 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not20 = icmp eq i32 %35, 0 %36 = call float @llvm.nvvm.fma.rn.ftz.f(float %.012, float %10, float noundef 0x3FEC5BF880000000) #135 %37 = call float @llvm.fma.f32(float %.012, float %10, float noundef 0x3FEC5BF880000000) %.014 = select i1 %.not20, float %37, float %36 %38 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not21 = icmp eq i32 %38, 0 %39 = call float @llvm.nvvm.fma.rn.ftz.f(float %.014, float %0, float %.014) #135 %40 = call float @llvm.fma.f32(float %.014, float %0, float %.014) %.015 = select i1 %.not21, float %40, float %39 br label %79 41: ; preds = %__nv_fadd_rn.exit %42 = fcmp ogt float %a, 1.000000e+00 %p.0 = select i1 %42, float %.01, float %a %43 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not1 = icmp eq i32 %43, 0 br i1 %.not1, label %46, label %44 44: ; preds = %41 %45 = call float @llvm.nvvm.lg2.approx.ftz.f(float %p.0) #135 br label %__nv_fast_log2f.exit 46: ; preds = %41 %47 = call float @llvm.nvvm.lg2.approx.f(float %p.0) #135 br label %__nv_fast_log2f.exit __nv_fast_log2f.exit: ; preds = %46, %44 %.016 = phi float [ %45, %44 ], [ %47, %46 ] %48 = fneg float %.016 %49 = call float @llvm.nvvm.rsqrt.approx.ftz.f(float %48) #135 %50 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not2 = icmp eq i32 %50, 0 %51 = call float @llvm.nvvm.fma.rn.ftz.f(float noundef 0xC04F8E7E20000000, float %49, float noundef 0x405FDF0520000000) #135 %52 = call float @llvm.fma.f32(float %49, float noundef 0xC04F8E7E20000000, float noundef 0x405FDF0520000000) %.017 = select i1 %.not2, float %52, float %51 %53 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not3 = icmp eq i32 %53, 0 %54 = call float @llvm.nvvm.fma.rn.ftz.f(float %.017, float %49, float noundef 0xC05C86C380000000) #135 %55 = call float @llvm.fma.f32(float %.017, float %49, float noundef 0xC05C86C380000000) %.018 = select i1 %.not3, float %55, float %54 %56 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not4 = icmp eq i32 %56, 0 %57 = call float @llvm.nvvm.fma.rn.ftz.f(float %.018, float %49, float noundef 0x404E29B360000000) #135 %58 = call float @llvm.fma.f32(float %.018, float %49, float noundef 0x404E29B360000000) %.019 = select i1 %.not4, float %58, float %57 %59 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not5 = icmp eq i32 %59, 0 %60 = call float @llvm.nvvm.fma.rn.ftz.f(float %.019, float %49, float noundef 0xC035CA3660000000) #135 %61 = call float @llvm.fma.f32(float %.019, float %49, float noundef 0xC035CA3660000000) %.021 = select i1 %.not5, float %61, float %60 %62 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not6 = icmp eq i32 %62, 0 %63 = call float @llvm.nvvm.fma.rn.ftz.f(float %.021, float %49, float noundef 0x4019DEA080000000) #135 %64 = call float @llvm.fma.f32(float %.021, float %49, float noundef 0x4019DEA080000000) %.020 = select i1 %.not6, float %64, float %63 %65 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not7 = icmp eq i32 %65, 0 %66 = call float @llvm.nvvm.fma.rn.ftz.f(float %.020, float %49, float noundef 0xBFFD53C0A0000000) #135 %67 = call float @llvm.fma.f32(float %.020, float %49, float noundef 0xBFFD53C0A0000000) %.013 = select i1 %.not7, float %67, float %66 %68 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not8 = icmp eq i32 %68, 0 %69 = call float @llvm.nvvm.fma.rn.ftz.f(float %.013, float %49, float noundef 0xBF9F0E3E80000000) #135 %70 = call float @llvm.fma.f32(float %.013, float %49, float noundef 0xBF9F0E3E80000000) %.06 = select i1 %.not8, float %70, float %69 %71 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not9 = icmp eq i32 %71, 0 %72 = call float @llvm.nvvm.fma.rn.ftz.f(float %.06, float %49, float noundef 0x3FEAA6EEA0000000) #135 %73 = call float @llvm.fma.f32(float %.06, float %49, float noundef 0x3FEAA6EEA0000000) %.0 = select i1 %.not9, float %73, float %72 %74 = call float asm "rcp.approx.ftz.f32 $0,$1;", "=f,f"(float %49) #137, !srcloc !225 %75 = fneg float %74 %t.0 = select i1 %42, float %75, float %74 %76 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not10 = icmp eq i32 %76, 0 %77 = call float @llvm.nvvm.mul.rn.ftz.f(float %.0, float %t.0) #135 %78 = fmul float %t.0, %.0 %.03 = select i1 %.not10, float %78, float %77 br label %79 79: ; preds = %__nv_fast_log2f.exit, %__nv_fmul_rn.exit %t.1 = phi float [ %.015, %__nv_fmul_rn.exit ], [ %.03, %__nv_fast_log2f.exit ] ret float %t.1 } ; Function Attrs: noinline nounwind define dso_local float @__nv_normcdfinvf(float %a) local_unnamed_addr #51 { __nv_fadd_rn.exit.i: %0 = fadd float %a, %a %1 = fneg float %0 %2 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not = icmp eq i32 %2, 0 %3 = call float @llvm.nvvm.add.rn.ftz.f(float noundef 2.000000e+00, float %1) #135 %4 = fsub float 2.000000e+00, %0 %.01 = select i1 %.not, float %4, float %3 %5 = fcmp oge float %0, 0x3F6BDA5120000000 %6 = fcmp ole float %0, 0x3FFFF212E0000000 %or.cond = and i1 %5, %6 br i1 %or.cond, label %__nv_fmul_rn.exit.i, label %42 __nv_fmul_rn.exit.i: ; preds = %__nv_fadd_rn.exit.i %7 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not12 = icmp eq i32 %7, 0 %8 = call float @llvm.nvvm.mul.rn.ftz.f(float %.01, float %0) #135 %9 = fmul float %0, %.01 %.03 = select i1 %.not12, float %9, float %8 %10 = call float @llvm.nvvm.lg2.approx.ftz.f(float %.03) #135 %11 = fneg float %10 %12 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not13 = icmp eq i32 %12, 0 %13 = call float @llvm.nvvm.fma.rn.ftz.f(float noundef 0xBDF14C6E00000000, float %11, float noundef 0x3E443EC8A0000000) #135 %14 = call float @llvm.fma.f32(float %11, float noundef 0xBDF14C6E00000000, float noundef 0x3E443EC8A0000000) %.05 = select i1 %.not13, float %14, float %13 %15 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not14 = icmp eq i32 %15, 0 %16 = call float @llvm.nvvm.fma.rn.ftz.f(float %.05, float %11, float noundef 0xBE802DFB40000000) #135 %17 = call float @llvm.fma.f32(float %.05, float %11, float noundef 0xBE802DFB40000000) %.06 = select i1 %.not14, float %17, float %16 %18 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not15 = icmp eq i32 %18, 0 %19 = call float @llvm.nvvm.fma.rn.ftz.f(float %.06, float %11, float noundef 0x3E8D1F08C0000000) #135 %20 = call float @llvm.fma.f32(float %.06, float %11, float noundef 0x3E8D1F08C0000000) %.07 = select i1 %.not15, float %20, float %19 %21 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not16 = icmp eq i32 %21, 0 %22 = call float @llvm.nvvm.fma.rn.ftz.f(float %.07, float %11, float noundef 0x3EE0E85540000000) #135 %23 = call float @llvm.fma.f32(float %.07, float %11, float noundef 0x3EE0E85540000000) %.09 = select i1 %.not16, float %23, float %22 %24 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not17 = icmp eq i32 %24, 0 %25 = call float @llvm.nvvm.fma.rn.ftz.f(float %.09, float %11, float noundef 0xBF009B69A0000000) #135 %26 = call float @llvm.fma.f32(float %.09, float %11, float noundef 0xBF009B69A0000000) %.010 = select i1 %.not17, float %26, float %25 %27 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not18 = icmp eq i32 %27, 0 %28 = call float @llvm.nvvm.fma.rn.ftz.f(float %.010, float %11, float noundef 0xBF495FD420000000) #135 %29 = call float @llvm.fma.f32(float %.010, float %11, float noundef 0xBF495FD420000000) %.011 = select i1 %.not18, float %29, float %28 %30 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not19 = icmp eq i32 %30, 0 %31 = call float @llvm.nvvm.fma.rn.ftz.f(float %.011, float %11, float noundef 0x3F76B804E0000000) #135 %32 = call float @llvm.fma.f32(float %.011, float %11, float noundef 0x3F76B804E0000000) %.012 = select i1 %.not19, float %32, float %31 %33 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not20 = icmp eq i32 %33, 0 %34 = call float @llvm.nvvm.fma.rn.ftz.f(float %.012, float %11, float noundef 0x3FC495C1E0000000) #135 %35 = call float @llvm.fma.f32(float %.012, float %11, float noundef 0x3FC495C1E0000000) %.013 = select i1 %.not20, float %35, float %34 %36 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not21 = icmp eq i32 %36, 0 %37 = call float @llvm.nvvm.fma.rn.ftz.f(float %.013, float %11, float noundef 0x3FEC5BF880000000) #135 %38 = call float @llvm.fma.f32(float %.013, float %11, float noundef 0x3FEC5BF880000000) %.014 = select i1 %.not21, float %38, float %37 %39 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not22 = icmp eq i32 %39, 0 %40 = call float @llvm.nvvm.fma.rn.ftz.f(float %.014, float %1, float %.014) #135 %41 = call float @llvm.fma.f32(float %.014, float %1, float %.014) %.016 = select i1 %.not22, float %41, float %40 br label %__nv_erfcinvf.exit 42: ; preds = %__nv_fadd_rn.exit.i %43 = fcmp ogt float %0, 1.000000e+00 %p.i.0 = select i1 %43, float %.01, float %0 %44 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not1 = icmp eq i32 %44, 0 br i1 %.not1, label %47, label %45 45: ; preds = %42 %46 = call float @llvm.nvvm.lg2.approx.ftz.f(float %p.i.0) #135 br label %__nv_fast_log2f.exit.i 47: ; preds = %42 %48 = call float @llvm.nvvm.lg2.approx.f(float %p.i.0) #135 br label %__nv_fast_log2f.exit.i __nv_fast_log2f.exit.i: ; preds = %47, %45 %.017 = phi float [ %46, %45 ], [ %48, %47 ] %49 = fneg float %.017 %50 = call float @llvm.nvvm.rsqrt.approx.ftz.f(float %49) #135 %51 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not2 = icmp eq i32 %51, 0 %52 = call float @llvm.nvvm.fma.rn.ftz.f(float noundef 0xC04F8E7E20000000, float %50, float noundef 0x405FDF0520000000) #135 %53 = call float @llvm.fma.f32(float %50, float noundef 0xC04F8E7E20000000, float noundef 0x405FDF0520000000) %.018 = select i1 %.not2, float %53, float %52 %54 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not3 = icmp eq i32 %54, 0 %55 = call float @llvm.nvvm.fma.rn.ftz.f(float %.018, float %50, float noundef 0xC05C86C380000000) #135 %56 = call float @llvm.fma.f32(float %.018, float %50, float noundef 0xC05C86C380000000) %.019 = select i1 %.not3, float %56, float %55 %57 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not4 = icmp eq i32 %57, 0 %58 = call float @llvm.nvvm.fma.rn.ftz.f(float %.019, float %50, float noundef 0x404E29B360000000) #135 %59 = call float @llvm.fma.f32(float %.019, float %50, float noundef 0x404E29B360000000) %.020 = select i1 %.not4, float %59, float %58 %60 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not5 = icmp eq i32 %60, 0 %61 = call float @llvm.nvvm.fma.rn.ftz.f(float %.020, float %50, float noundef 0xC035CA3660000000) #135 %62 = call float @llvm.fma.f32(float %.020, float %50, float noundef 0xC035CA3660000000) %.021 = select i1 %.not5, float %62, float %61 %63 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not6 = icmp eq i32 %63, 0 %64 = call float @llvm.nvvm.fma.rn.ftz.f(float %.021, float %50, float noundef 0x4019DEA080000000) #135 %65 = call float @llvm.fma.f32(float %.021, float %50, float noundef 0x4019DEA080000000) %.022 = select i1 %.not6, float %65, float %64 %66 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not7 = icmp eq i32 %66, 0 %67 = call float @llvm.nvvm.fma.rn.ftz.f(float %.022, float %50, float noundef 0xBFFD53C0A0000000) #135 %68 = call float @llvm.fma.f32(float %.022, float %50, float noundef 0xBFFD53C0A0000000) %.015 = select i1 %.not7, float %68, float %67 %69 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not8 = icmp eq i32 %69, 0 %70 = call float @llvm.nvvm.fma.rn.ftz.f(float %.015, float %50, float noundef 0xBF9F0E3E80000000) #135 %71 = call float @llvm.fma.f32(float %.015, float %50, float noundef 0xBF9F0E3E80000000) %.08 = select i1 %.not8, float %71, float %70 %72 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not9 = icmp eq i32 %72, 0 %73 = call float @llvm.nvvm.fma.rn.ftz.f(float %.08, float %50, float noundef 0x3FEAA6EEA0000000) #135 %74 = call float @llvm.fma.f32(float %.08, float %50, float noundef 0x3FEAA6EEA0000000) %.02 = select i1 %.not9, float %74, float %73 %75 = call float asm "rcp.approx.ftz.f32 $0,$1;", "=f,f"(float %50) #137, !srcloc !225 %76 = fneg float %75 %t.i.0 = select i1 %43, float %76, float %75 %77 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not10 = icmp eq i32 %77, 0 %78 = call float @llvm.nvvm.mul.rn.ftz.f(float %.02, float %t.i.0) #135 %79 = fmul float %t.i.0, %.02 %.04 = select i1 %.not10, float %79, float %78 br label %__nv_erfcinvf.exit __nv_erfcinvf.exit: ; preds = %__nv_fast_log2f.exit.i, %__nv_fmul_rn.exit.i %t.i.1 = phi float [ %.016, %__nv_fmul_rn.exit.i ], [ %.04, %__nv_fast_log2f.exit.i ] %80 = fmul float %t.i.1, 0xBFF6A09E60000000 %81 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not11 = icmp eq i32 %81, 0 %82 = call float @llvm.nvvm.add.rn.ftz.f(float %80, float noundef 0.000000e+00) #135 %83 = fadd float %80, 0.000000e+00 %.0 = select i1 %.not11, float %83, float %82 ret float %.0 } ; Function Attrs: noinline nounwind define dso_local float @__nv_normcdff(float %a) local_unnamed_addr #52 { __nv_fabsf.exit: %0 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not = icmp eq i32 %0, 0 %1 = call float @llvm.nvvm.fabs.ftz.f(float %a) #135 %2 = call float @llvm.fabs.f32(float %a) %.03 = select i1 %.not, float %2, float %1 %3 = fcmp ogt float %.03, 1.450000e+01 %4 = bitcast float %a to i32 %5 = and i32 %4, -2147483648 %6 = or i32 %5, 1097334784 %7 = bitcast i32 %6 to float %.02 = select i1 %3, float %7, float %a %8 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not1 = icmp eq i32 %8, 0 %9 = call float @llvm.nvvm.mul.rn.ftz.f(float %.02, float noundef 0xBFE6A09E60000000) #135 %10 = fmul float %.02, 0xBFE6A09E60000000 %.06 = select i1 %.not1, float %10, float %9 %11 = fneg float %.06 %12 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not2 = icmp eq i32 %12, 0 %13 = call float @llvm.nvvm.fma.rn.ftz.f(float %.02, float noundef 0xBFE6A09E60000000, float %11) #135 %14 = call float @llvm.fma.f32(float %.02, float noundef 0xBFE6A09E60000000, float %11) %.07 = select i1 %.not2, float %14, float %13 %15 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not3 = icmp eq i32 %15, 0 %16 = call float @llvm.nvvm.fma.rn.ftz.f(float %.02, float noundef 0xBE49FCEF40000000, float %.07) #135 %17 = call float @llvm.fma.f32(float %.02, float noundef 0xBE49FCEF40000000, float %.07) %.09 = select i1 %.not3, float %17, float %16 %18 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not4 = icmp eq i32 %18, 0 %19 = call float @llvm.nvvm.add.rn.ftz.f(float %.06, float %.09) #135 %20 = fadd float %.06, %.09 %.010 = select i1 %.not4, float %20, float %19 %21 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not5 = icmp eq i32 %21, 0 %22 = call float @llvm.nvvm.fabs.ftz.f(float %.010) #135 %23 = call float @llvm.fabs.f32(float %.010) %.011 = select i1 %.not5, float %23, float %22 %24 = fadd float %.011, -4.000000e+00 %25 = fadd float %.011, 4.000000e+00 %26 = call float asm "rcp.approx.ftz.f32 $0,$1;", "=f,f"(float %25) #137, !srcloc !225 %27 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not6 = icmp eq i32 %27, 0 %28 = call float @llvm.nvvm.mul.rn.ftz.f(float %24, float %26) #135 %29 = fmul float %26, %24 %.013 = select i1 %.not6, float %29, float %28 %30 = fadd float %.013, 1.000000e+00 %31 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not7 = icmp eq i32 %31, 0 %32 = call float @llvm.nvvm.fma.rn.ftz.f(float noundef -4.000000e+00, float %30, float %.011) #135 %33 = call float @llvm.fma.f32(float %30, float noundef -4.000000e+00, float %.011) %.014 = select i1 %.not7, float %33, float %32 %34 = fneg float %.013 %35 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not8 = icmp eq i32 %35, 0 %36 = call float @llvm.nvvm.fma.rn.ftz.f(float %34, float %.011, float %.014) #135 %37 = call float @llvm.fma.f32(float %34, float %.011, float %.014) %.015 = select i1 %.not8, float %37, float %36 %38 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not9 = icmp eq i32 %38, 0 %39 = call float @llvm.nvvm.fma.rn.ftz.f(float %26, float %.015, float %.013) #135 %40 = call float @llvm.fma.f32(float %26, float %.015, float %.013) %.016 = select i1 %.not9, float %40, float %39 %41 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not10 = icmp eq i32 %41, 0 %42 = call float @llvm.nvvm.fma.rn.ftz.f(float noundef 0x3F4D341220000000, float %.016, float noundef 0x3F7CDC0B60000000) #135 %43 = call float @llvm.fma.f32(float %.016, float noundef 0x3F4D341220000000, float noundef 0x3F7CDC0B60000000) %.017 = select i1 %.not10, float %43, float %42 %44 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not11 = icmp eq i32 %44, 0 %45 = call float @llvm.nvvm.fma.rn.ftz.f(float %.017, float %.016, float noundef 0xBF903F6960000000) #135 %46 = call float @llvm.fma.f32(float %.017, float %.016, float noundef 0xBF903F6960000000) %.018 = select i1 %.not11, float %46, float %45 %47 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not12 = icmp eq i32 %47, 0 %48 = call float @llvm.nvvm.fma.rn.ftz.f(float %.018, float %.016, float noundef 0x3FA2A6E760000000) #135 %49 = call float @llvm.fma.f32(float %.018, float %.016, float noundef 0x3FA2A6E760000000) %.019 = select i1 %.not12, float %49, float %48 %50 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not13 = icmp eq i32 %50, 0 %51 = call float @llvm.nvvm.fma.rn.ftz.f(float %.019, float %.016, float noundef 0xBFB10F8B40000000) #135 %52 = call float @llvm.fma.f32(float %.019, float %.016, float noundef 0xBFB10F8B40000000) %.020 = select i1 %.not13, float %52, float %51 %53 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not14 = icmp eq i32 %53, 0 %54 = call float @llvm.nvvm.fma.rn.ftz.f(float %.020, float %.016, float noundef 0x3FB8043AA0000000) #135 %55 = call float @llvm.fma.f32(float %.020, float %.016, float noundef 0x3FB8043AA0000000) %.021 = select i1 %.not14, float %55, float %54 %56 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not15 = icmp eq i32 %56, 0 %57 = call float @llvm.nvvm.fma.rn.ftz.f(float %.021, float %.016, float noundef 0xBFB9DA8480000000) #135 %58 = call float @llvm.fma.f32(float %.021, float %.016, float noundef 0xBFB9DA8480000000) %.022 = select i1 %.not15, float %58, float %57 %59 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not16 = icmp eq i32 %59, 0 %60 = call float @llvm.nvvm.fma.rn.ftz.f(float %.022, float %.016, float noundef 0x3FB16E9BC0000000) #135 %61 = call float @llvm.fma.f32(float %.022, float %.016, float noundef 0x3FB16E9BC0000000) %.024 = select i1 %.not16, float %61, float %60 %62 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not17 = icmp eq i32 %62, 0 %63 = call float @llvm.nvvm.fma.rn.ftz.f(float %.024, float %.016, float noundef 0x3F8F7E2E00000000) #135 %64 = call float @llvm.fma.f32(float %.024, float %.016, float noundef 0x3F8F7E2E00000000) %.025 = select i1 %.not17, float %64, float %63 %65 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not18 = icmp eq i32 %65, 0 %66 = call float @llvm.nvvm.fma.rn.ftz.f(float %.025, float %.016, float noundef 0xBFC1DF1A80000000) #135 %67 = call float @llvm.fma.f32(float %.025, float %.016, float noundef 0xBFC1DF1A80000000) %.026 = select i1 %.not18, float %67, float %66 %68 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not19 = icmp eq i32 %68, 0 %69 = call float @llvm.nvvm.fma.rn.ftz.f(float %.026, float %.016, float noundef 0x3FF3BA5920000000) #135 %70 = call float @llvm.fma.f32(float %.026, float %.016, float noundef 0x3FF3BA5920000000) %.027 = select i1 %.not19, float %70, float %69 %71 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not20 = icmp eq i32 %71, 0 %72 = call float @llvm.nvvm.fma.rn.ftz.f(float noundef 2.000000e+00, float %.011, float noundef 1.000000e+00) #135 %73 = call float @llvm.fma.f32(float %.011, float noundef 2.000000e+00, float noundef 1.000000e+00) %.028 = select i1 %.not20, float %73, float %72 %74 = call float asm "rcp.approx.ftz.f32 $0,$1;", "=f,f"(float %.028) #137, !srcloc !225 %75 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not21 = icmp eq i32 %75, 0 %76 = call float @llvm.nvvm.mul.rn.ftz.f(float %.027, float %74) #135 %77 = fmul float %74, %.027 %.029 = select i1 %.not21, float %77, float %76 %78 = fmul float %.029, -2.000000e+00 %79 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not22 = icmp eq i32 %79, 0 %80 = call float @llvm.nvvm.fma.rn.ftz.f(float %.011, float %78, float %.027) #135 %81 = call float @llvm.fma.f32(float %.011, float %78, float %.027) %.030 = select i1 %.not22, float %81, float %80 %82 = fsub float %.030, %.029 %83 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not23 = icmp eq i32 %83, 0 %84 = call float @llvm.nvvm.fma.rn.ftz.f(float %82, float %74, float %.029) #135 %85 = call float @llvm.fma.f32(float %82, float %74, float %.029) %.031 = select i1 %.not23, float %85, float %84 %86 = fneg float %.011 %87 = fmul float %.011, %86 %88 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not24 = icmp eq i32 %88, 0 %89 = call float @llvm.nvvm.mul.rn.ftz.f(float %87, float noundef 0x3FF7154760000000) #135 %90 = fmul float %87, 0x3FF7154760000000 %.08 = select i1 %.not24, float %90, float %89 %91 = call float @llvm.trunc.f32(float %.08) %92 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not25 = icmp eq i32 %92, 0 %93 = call float @llvm.nvvm.fabs.ftz.f(float %91) #135 %94 = call float @llvm.fabs.f32(float %91) %.012 = select i1 %.not25, float %94, float %93 %95 = fcmp ogt float %.012, 1.260000e+02 %96 = bitcast float %91 to i32 %97 = and i32 %96, -2147483648 %98 = or i32 %97, 1123811328 %99 = bitcast i32 %98 to float %j.i.i.0 = select i1 %95, float %99, float %91 %100 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not26 = icmp eq i32 %100, 0 %101 = call float @llvm.nvvm.fma.rn.ftz.f(float %j.i.i.0, float noundef 0xBFE62E4300000000, float %87) #135 %102 = call float @llvm.fma.f32(float %j.i.i.0, float noundef 0xBFE62E4300000000, float %87) %.023 = select i1 %.not26, float %102, float %101 %103 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not27 = icmp eq i32 %103, 0 %104 = call float @llvm.nvvm.fma.rn.ftz.f(float %j.i.i.0, float noundef 0x3E205C6100000000, float %.023) #135 %105 = call float @llvm.fma.f32(float %j.i.i.0, float noundef 0x3E205C6100000000, float %.023) %.032 = select i1 %.not27, float %105, float %104 %106 = fmul float %.032, 0x3FF7154760000000 %107 = fadd float %j.i.i.0, 0x4168000FE0000000 %108 = bitcast float %107 to i32 %109 = shl i32 %108, 23 %110 = bitcast i32 %109 to float %111 = call float @llvm.nvvm.ex2.approx.ftz.f(float %106) #135 %112 = fmul float %111, %110 %113 = fneg float %87 %114 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not28 = icmp eq i32 %114, 0 %115 = call float @llvm.nvvm.fma.rn.ftz.f(float %86, float %.011, float %113) #135 %116 = call float @llvm.fma.f32(float %86, float %.011, float %113) %.04 = select i1 %.not28, float %116, float %115 %117 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not29 = icmp eq i32 %117, 0 %118 = call float @llvm.nvvm.fma.rn.ftz.f(float %112, float %.04, float %112) #135 %119 = call float @llvm.fma.f32(float %112, float %.04, float %112) %.01 = select i1 %.not29, float %119, float %118 %120 = fmul float %.01, %.031 %121 = fcmp ogt float %.011, 0x40241C2900000000 %t1.i.0 = select i1 %121, float 0.000000e+00, float %120 %122 = fcmp olt float %.010, 0.000000e+00 %123 = fsub float 2.000000e+00, %t1.i.0 %124 = select i1 %122, float %123, float %t1.i.0 %125 = fcmp olt float %.02, -1.000000e+00 br i1 %125, label %__nv_fadd_rn.exit2, label %135 __nv_fadd_rn.exit2: ; preds = %__nv_fabsf.exit %126 = fsub float %.06, %.010 %127 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not30 = icmp eq i32 %127, 0 %128 = call float @llvm.nvvm.add.rn.ftz.f(float %126, float %.09) #135 %129 = fadd float %.09, %126 %.0 = select i1 %.not30, float %129, float %128 %130 = fmul float %.010, -2.000000e+00 %131 = fmul float %130, %124 %132 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not31 = icmp eq i32 %132, 0 %133 = call float @llvm.nvvm.fma.rn.ftz.f(float %131, float %.0, float %124) #135 %134 = call float @llvm.fma.f32(float %131, float %.0, float %124) %.05 = select i1 %.not31, float %134, float %133 br label %135 135: ; preds = %__nv_fadd_rn.exit2, %__nv_fabsf.exit %z.0 = phi float [ %.05, %__nv_fadd_rn.exit2 ], [ %124, %__nv_fabsf.exit ] %136 = fmul float %z.0, 5.000000e-01 ret float %136 } ; Function Attrs: noinline nounwind define dso_local float @__nv_lgammaf(float %a) local_unnamed_addr #53 { __nv_fabsf.exit: %0 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not = icmp eq i32 %0, 0 %1 = call float @llvm.nvvm.fabs.ftz.f(float %a) #135 %2 = call float @llvm.fabs.f32(float %a) %.02 = select i1 %.not, float %2, float %1 %3 = fcmp ult float %.02, 3.000000e+00 br i1 %3, label %103, label %4 4: ; preds = %__nv_fabsf.exit %5 = fcmp ult float %.02, 0x401F333340000000 br i1 %5, label %__internal_fmad.exit5.i, label %__internal_fmad.exit.i __internal_fmad.exit.i: ; preds = %4 %6 = call float asm "rcp.approx.ftz.f32 $0,$1;", "=f,f"(float %.02) #137, !srcloc !225 %7 = fmul float %6, %6 %8 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not85 = icmp eq i32 %8, 0 %9 = call float @llvm.nvvm.fma.rn.ftz.f(float noundef 0x3F497CEAA0000000, float %7, float noundef 0xBF66C12A60000000) #135 %10 = call float @llvm.fma.f32(float %7, float noundef 0x3F497CEAA0000000, float noundef 0xBF66C12A60000000) %.05 = select i1 %.not85, float %10, float %9 %11 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not86 = icmp eq i32 %11, 0 %12 = call float @llvm.nvvm.fma.rn.ftz.f(float %.05, float %7, float noundef 0x3FB5555460000000) #135 %13 = call float @llvm.fma.f32(float %.05, float %7, float noundef 0x3FB5555460000000) %.06 = select i1 %.not86, float %13, float %12 %14 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not87 = icmp eq i32 %14, 0 %15 = call float @llvm.nvvm.fma.rn.ftz.f(float %.06, float %6, float noundef 0x3FED67F1C0000000) #135 %16 = call float @llvm.fma.f32(float %.06, float %6, float noundef 0x3FED67F1C0000000) %.07 = select i1 %.not87, float %16, float %15 %17 = fcmp olt float %.02, 0x3810000000000000 %18 = fmul float %.02, 0x4160000000000000 %.010 = select i1 %17, float %18, float %.02 %i.i.i.0 = select i1 %17, float -2.300000e+01, float 0.000000e+00 %19 = bitcast float %.010 to i32 %20 = add i32 %19, -1059760811 %21 = and i32 %20, -8388608 %22 = sub i32 %19, %21 %23 = bitcast i32 %22 to float %24 = sitofp i32 %21 to float %25 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not88 = icmp eq i32 %25, 0 %26 = call float @llvm.nvvm.fma.rn.ftz.f(float %24, float noundef 0x3E80000000000000, float noundef %i.i.i.0) #135 %27 = call float @llvm.fma.f32(float %24, float noundef 0x3E80000000000000, float noundef %i.i.i.0) %.016 = select i1 %.not88, float %27, float %26 %28 = fadd float %23, -1.000000e+00 %29 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not89 = icmp eq i32 %29, 0 %30 = call float @llvm.nvvm.fma.rn.ftz.f(float noundef 0xBFC0AA04E0000000, float %28, float noundef 0x3FC2073EC0000000) #135 %31 = call float @llvm.fma.f32(float %28, float noundef 0xBFC0AA04E0000000, float noundef 0x3FC2073EC0000000) %.018 = select i1 %.not89, float %31, float %30 %32 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not90 = icmp eq i32 %32, 0 %33 = call float @llvm.nvvm.fma.rn.ftz.f(float %.018, float %28, float noundef 0xBFBF19B980000000) #135 %34 = call float @llvm.fma.f32(float %.018, float %28, float noundef 0xBFBF19B980000000) %.019 = select i1 %.not90, float %34, float %33 %35 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not91 = icmp eq i32 %35, 0 %36 = call float @llvm.nvvm.fma.rn.ftz.f(float %.019, float %28, float noundef 0x3FC1E52AA0000000) #135 %37 = call float @llvm.fma.f32(float %.019, float %28, float noundef 0x3FC1E52AA0000000) %.020 = select i1 %.not91, float %37, float %36 %38 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not92 = icmp eq i32 %38, 0 %39 = call float @llvm.nvvm.fma.rn.ftz.f(float %.020, float %28, float noundef 0xBFC55B1720000000) #135 %40 = call float @llvm.fma.f32(float %.020, float %28, float noundef 0xBFC55B1720000000) %.022 = select i1 %.not92, float %40, float %39 %41 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not93 = icmp eq i32 %41, 0 %42 = call float @llvm.nvvm.fma.rn.ftz.f(float %.022, float %28, float noundef 0x3FC99DA160000000) #135 %43 = call float @llvm.fma.f32(float %.022, float %28, float noundef 0x3FC99DA160000000) %.023 = select i1 %.not93, float %43, float %42 %44 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not94 = icmp eq i32 %44, 0 %45 = call float @llvm.nvvm.fma.rn.ftz.f(float %.023, float %28, float noundef 0xBFCFFFE440000000) #135 %46 = call float @llvm.fma.f32(float %.023, float %28, float noundef 0xBFCFFFE440000000) %.024 = select i1 %.not94, float %46, float %45 %47 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not95 = icmp eq i32 %47, 0 %48 = call float @llvm.nvvm.fma.rn.ftz.f(float %.024, float %28, float noundef 0x3FD5554F00000000) #135 %49 = call float @llvm.fma.f32(float %.024, float %28, float noundef 0x3FD5554F00000000) %.026 = select i1 %.not95, float %49, float %48 %50 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not96 = icmp eq i32 %50, 0 %51 = call float @llvm.nvvm.fma.rn.ftz.f(float %.026, float %28, float noundef -5.000000e-01) #135 %52 = call float @llvm.fma.f32(float %.026, float %28, float noundef -5.000000e-01) %.015 = select i1 %.not96, float %52, float %51 %53 = fmul float %28, %.015 %54 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not97 = icmp eq i32 %54, 0 %55 = call float @llvm.nvvm.fma.rn.ftz.f(float %53, float %28, float %28) #135 %56 = call float @llvm.fma.f32(float %53, float %28, float %28) %.014 = select i1 %.not97, float %56, float %55 %57 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not98 = icmp eq i32 %57, 0 %58 = call float @llvm.nvvm.fma.rn.ftz.f(float %.016, float noundef 0x3FE62E4300000000, float %.014) #135 %59 = call float @llvm.fma.f32(float %.016, float noundef 0x3FE62E4300000000, float %.014) %.012 = select i1 %.not98, float %59, float %58 %60 = icmp ugt i32 %19, 2139095039 br i1 %60, label %__nv_fmaf_rn.exit.i.i, label %__internal_accurate_logf.exit.i __nv_fmaf_rn.exit.i.i: ; preds = %__internal_fmad.exit.i %61 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not101 = icmp eq i32 %61, 0 %62 = call float @llvm.nvvm.fma.rn.ftz.f(float %.010, float noundef 0x7FF0000000000000, float noundef 0x7FF0000000000000) #135 %63 = call float @llvm.fma.f32(float %.010, float noundef 0x7FF0000000000000, float noundef 0x7FF0000000000000) %.011 = select i1 %.not101, float %63, float %62 br label %__internal_accurate_logf.exit.i __internal_accurate_logf.exit.i: ; preds = %__nv_fmaf_rn.exit.i.i, %__internal_fmad.exit.i %r.i3.i.0 = phi float [ %.011, %__nv_fmaf_rn.exit.i.i ], [ %.012, %__internal_fmad.exit.i ] %64 = fcmp oeq float %.010, 0.000000e+00 %r.i3.i.0.op = fmul float %r.i3.i.0, 5.000000e-01 %65 = select i1 %64, float 0xFFF0000000000000, float %r.i3.i.0.op %66 = fadd float %.02, -5.000000e-01 %67 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not99 = icmp eq i32 %67, 0 %68 = call float @llvm.nvvm.mul.rn.ftz.f(float %65, float %66) #135 %69 = fmul float %66, %65 %.027 = select i1 %.not99, float %69, float %68 %70 = fsub float %.027, %.02 %71 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not100 = icmp eq i32 %71, 0 %72 = call float @llvm.nvvm.add.rn.ftz.f(float %.027, float %.07) #135 %73 = fadd float %.07, %.027 %.028 = select i1 %.not100, float %73, float %72 %74 = fadd float %70, %.028 %75 = fcmp oeq float %.02, 0x7FF0000000000000 %t.i.0 = select i1 %75, float %.02, float %74 br label %__internal_lgammaf_pos.exit __internal_fmad.exit5.i: ; preds = %4 %76 = fadd float %.02, -3.000000e+00 %77 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not77 = icmp eq i32 %77, 0 %78 = call float @llvm.nvvm.fma.rn.ftz.f(float noundef 0xC087671F60000000, float %76, float noundef 0xC0C81EDF00000000) #135 %79 = call float @llvm.fma.f32(float %76, float noundef 0xC087671F60000000, float noundef 0xC0C81EDF00000000) %.030 = select i1 %.not77, float %79, float %78 %80 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not78 = icmp eq i32 %80, 0 %81 = call float @llvm.nvvm.fma.rn.ftz.f(float %.030, float %76, float noundef 0xC0E40CAC00000000) #135 %82 = call float @llvm.fma.f32(float %.030, float %76, float noundef 0xC0E40CAC00000000) %.031 = select i1 %.not78, float %82, float %81 %83 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not79 = icmp eq i32 %83, 0 %84 = call float @llvm.nvvm.fma.rn.ftz.f(float %.031, float %76, float noundef 0xC0E796D540000000) #135 %85 = call float @llvm.fma.f32(float %.031, float %76, float noundef 0xC0E796D540000000) %.032 = select i1 %.not79, float %85, float %84 %86 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not80 = icmp eq i32 %86, 0 %87 = call float @llvm.nvvm.fma.rn.ftz.f(float %.032, float %76, float noundef 0xC10175CB40000000) #135 %88 = call float @llvm.fma.f32(float %.032, float %76, float noundef 0xC10175CB40000000) %.033 = select i1 %.not80, float %88, float %87 %89 = fadd float %76, 0xC070340400000000 %90 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not81 = icmp eq i32 %90, 0 %91 = call float @llvm.nvvm.fma.rn.ftz.f(float %89, float %76, float noundef 0xC0C50C9700000000) #135 %92 = call float @llvm.fma.f32(float %89, float %76, float noundef 0xC0C50C9700000000) %.035 = select i1 %.not81, float %92, float %91 %93 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not82 = icmp eq i32 %93, 0 %94 = call float @llvm.nvvm.fma.rn.ftz.f(float %.035, float %76, float noundef 0xC0F6A0D0C0000000) #135 %95 = call float @llvm.fma.f32(float %.035, float %76, float noundef 0xC0F6A0D0C0000000) %.036 = select i1 %.not82, float %95, float %94 %96 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not83 = icmp eq i32 %96, 0 %97 = call float @llvm.nvvm.fma.rn.ftz.f(float %.036, float %76, float noundef 0xC109308CA0000000) #135 %98 = call float @llvm.fma.f32(float %.036, float %76, float noundef 0xC109308CA0000000) %.037 = select i1 %.not83, float %98, float %97 %99 = call float asm "rcp.approx.ftz.f32 $0,$1;", "=f,f"(float %.037) #137, !srcloc !225 %100 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not84 = icmp eq i32 %100, 0 %101 = call float @llvm.nvvm.fma.rn.ftz.f(float %.033, float %99, float %76) #135 %102 = call float @llvm.fma.f32(float %.033, float %99, float %76) %.038 = select i1 %.not84, float %102, float %101 br label %__internal_lgammaf_pos.exit 103: ; preds = %__nv_fabsf.exit %104 = fcmp ult float %.02, 1.500000e+00 br i1 %104, label %134, label %__internal_fmad.exit22.i __internal_fmad.exit22.i: ; preds = %103 %105 = fadd float %.02, -2.000000e+00 %106 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not68 = icmp eq i32 %106, 0 %107 = call float @llvm.nvvm.fma.rn.ftz.f(float noundef 0x3F0A00FF40000000, float %105, float noundef 0xBF2CF40040000000) #135 %108 = call float @llvm.fma.f32(float %105, float noundef 0x3F0A00FF40000000, float noundef 0xBF2CF40040000000) %.039 = select i1 %.not68, float %108, float %107 %109 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not69 = icmp eq i32 %109, 0 %110 = call float @llvm.nvvm.fma.rn.ftz.f(float %.039, float %105, float noundef 0x3F41BCDF80000000) #135 %111 = call float @llvm.fma.f32(float %.039, float %105, float noundef 0x3F41BCDF80000000) %.041 = select i1 %.not69, float %111, float %110 %112 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not70 = icmp eq i32 %112, 0 %113 = call float @llvm.nvvm.fma.rn.ftz.f(float %.041, float %105, float noundef 0xBF53BC1C40000000) #135 %114 = call float @llvm.fma.f32(float %.041, float %105, float noundef 0xBF53BC1C40000000) %.042 = select i1 %.not70, float %114, float %113 %115 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not71 = icmp eq i32 %115, 0 %116 = call float @llvm.nvvm.fma.rn.ftz.f(float %.042, float %105, float noundef 0x3F67A0B6E0000000) #135 %117 = call float @llvm.fma.f32(float %.042, float %105, float noundef 0x3F67A0B6E0000000) %.043 = select i1 %.not71, float %117, float %116 %118 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not72 = icmp eq i32 %118, 0 %119 = call float @llvm.nvvm.fma.rn.ftz.f(float %.043, float %105, float noundef 0xBF7E3D6200000000) #135 %120 = call float @llvm.fma.f32(float %.043, float %105, float noundef 0xBF7E3D6200000000) %.044 = select i1 %.not72, float %120, float %119 %121 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not73 = icmp eq i32 %121, 0 %122 = call float @llvm.nvvm.fma.rn.ftz.f(float %.044, float %105, float noundef 0x3F95134500000000) #135 %123 = call float @llvm.fma.f32(float %.044, float %105, float noundef 0x3F95134500000000) %.045 = select i1 %.not73, float %123, float %122 %124 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not74 = icmp eq i32 %124, 0 %125 = call float @llvm.nvvm.fma.rn.ftz.f(float %.045, float %105, float noundef 0xBFB13E0340000000) #135 %126 = call float @llvm.fma.f32(float %.045, float %105, float noundef 0xBFB13E0340000000) %.046 = select i1 %.not74, float %126, float %125 %127 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not75 = icmp eq i32 %127, 0 %128 = call float @llvm.nvvm.fma.rn.ftz.f(float %.046, float %105, float noundef 0x3FD4A34CC0000000) #135 %129 = call float @llvm.fma.f32(float %.046, float %105, float noundef 0x3FD4A34CC0000000) %.047 = select i1 %.not75, float %129, float %128 %130 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not76 = icmp eq i32 %130, 0 %131 = call float @llvm.nvvm.fma.rn.ftz.f(float %.047, float %105, float noundef 0x3FDB0EE600000000) #135 %132 = call float @llvm.fma.f32(float %.047, float %105, float noundef 0x3FDB0EE600000000) %.048 = select i1 %.not76, float %132, float %131 %133 = fmul float %105, %.048 br label %__internal_lgammaf_pos.exit 134: ; preds = %103 %135 = fcmp ult float %.02, 0x3FE6666660000000 br i1 %135, label %__internal_fmad.exit60.i, label %__internal_fmad.exit40.i __internal_fmad.exit40.i: ; preds = %134 %136 = fsub float 1.000000e+00, %.02 %137 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not58 = icmp eq i32 %137, 0 %138 = call float @llvm.nvvm.fma.rn.ftz.f(float noundef 0x3FA77DEEC0000000, float %136, float noundef 0x3FBA8EAEE0000000) #135 %139 = call float @llvm.fma.f32(float %136, float noundef 0x3FA77DEEC0000000, float noundef 0x3FBA8EAEE0000000) %.049 = select i1 %.not58, float %139, float %138 %140 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not59 = icmp eq i32 %140, 0 %141 = call float @llvm.nvvm.fma.rn.ftz.f(float %.049, float %136, float noundef 0x3FBF700F20000000) #135 %142 = call float @llvm.fma.f32(float %.049, float %136, float noundef 0x3FBF700F20000000) %.050 = select i1 %.not59, float %142, float %141 %143 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not60 = icmp eq i32 %143, 0 %144 = call float @llvm.nvvm.fma.rn.ftz.f(float %.050, float %136, float noundef 0x3FC052B6A0000000) #135 %145 = call float @llvm.fma.f32(float %.050, float %136, float noundef 0x3FC052B6A0000000) %.051 = select i1 %.not60, float %145, float %144 %146 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not61 = icmp eq i32 %146, 0 %147 = call float @llvm.nvvm.fma.rn.ftz.f(float %.051, float %136, float noundef 0x3FC254ECA0000000) #135 %148 = call float @llvm.fma.f32(float %.051, float %136, float noundef 0x3FC254ECA0000000) %.053 = select i1 %.not61, float %148, float %147 %149 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not62 = icmp eq i32 %149, 0 %150 = call float @llvm.nvvm.fma.rn.ftz.f(float %.053, float %136, float noundef 0x3FC5AD0CE0000000) #135 %151 = call float @llvm.fma.f32(float %.053, float %136, float noundef 0x3FC5AD0CE0000000) %.054 = select i1 %.not62, float %151, float %150 %152 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not63 = icmp eq i32 %152, 0 %153 = call float @llvm.nvvm.fma.rn.ftz.f(float %.054, float %136, float noundef 0x3FCA8C57E0000000) #135 %154 = call float @llvm.fma.f32(float %.054, float %136, float noundef 0x3FCA8C57E0000000) %.055 = select i1 %.not63, float %154, float %153 %155 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not64 = icmp eq i32 %155, 0 %156 = call float @llvm.nvvm.fma.rn.ftz.f(float %.055, float %136, float noundef 0x3FD1514E40000000) #135 %157 = call float @llvm.fma.f32(float %.055, float %136, float noundef 0x3FD1514E40000000) %.056 = select i1 %.not64, float %157, float %156 %158 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not65 = icmp eq i32 %158, 0 %159 = call float @llvm.nvvm.fma.rn.ftz.f(float %.056, float %136, float noundef 0x3FD9A4D480000000) #135 %160 = call float @llvm.fma.f32(float %.056, float %136, float noundef 0x3FD9A4D480000000) %.057 = select i1 %.not65, float %160, float %159 %161 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not66 = icmp eq i32 %161, 0 %162 = call float @llvm.nvvm.fma.rn.ftz.f(float %.057, float %136, float noundef 0x3FEA51A640000000) #135 %163 = call float @llvm.fma.f32(float %.057, float %136, float noundef 0x3FEA51A640000000) %.058 = select i1 %.not66, float %163, float %162 %164 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not67 = icmp eq i32 %164, 0 %165 = call float @llvm.nvvm.fma.rn.ftz.f(float %.058, float %136, float noundef 0x3FE2788D00000000) #135 %166 = call float @llvm.fma.f32(float %.058, float %136, float noundef 0x3FE2788D00000000) %.059 = select i1 %.not67, float %166, float %165 %167 = fmul float %136, %.059 br label %__internal_lgammaf_pos.exit __internal_fmad.exit60.i: ; preds = %134 %168 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not1 = icmp eq i32 %168, 0 %169 = call float @llvm.nvvm.fma.rn.ftz.f(float noundef 0x3F6D6390C0000000, float %.02, float noundef 0xBF76690F00000000) #135 %170 = call float @llvm.fma.f32(float %.02, float noundef 0x3F6D6390C0000000, float noundef 0xBF76690F00000000) %.061 = select i1 %.not1, float %170, float %169 %171 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not2 = icmp eq i32 %171, 0 %172 = call float @llvm.nvvm.fma.rn.ftz.f(float %.061, float %.02, float noundef 0xBFA6D95DE0000000) #135 %173 = call float @llvm.fma.f32(float %.061, float %.02, float noundef 0xBFA6D95DE0000000) %.063 = select i1 %.not2, float %173, float %172 %174 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not3 = icmp eq i32 %174, 0 %175 = call float @llvm.nvvm.fma.rn.ftz.f(float %.063, float %.02, float noundef 0x3FC56AAAA0000000) #135 %176 = call float @llvm.fma.f32(float %.063, float %.02, float noundef 0x3FC56AAAA0000000) %.065 = select i1 %.not3, float %176, float %175 %177 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not4 = icmp eq i32 %177, 0 %178 = call float @llvm.nvvm.fma.rn.ftz.f(float %.065, float %.02, float noundef 0xBFA592D8E0000000) #135 %179 = call float @llvm.fma.f32(float %.065, float %.02, float noundef 0xBFA592D8E0000000) %.066 = select i1 %.not4, float %179, float %178 %180 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not5 = icmp eq i32 %180, 0 %181 = call float @llvm.nvvm.fma.rn.ftz.f(float %.066, float %.02, float noundef 0xBFE4FCDD60000000) #135 %182 = call float @llvm.fma.f32(float %.066, float %.02, float noundef 0xBFE4FCDD60000000) %.067 = select i1 %.not5, float %182, float %181 %183 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not6 = icmp eq i32 %183, 0 %184 = call float @llvm.nvvm.fma.rn.ftz.f(float %.067, float %.02, float noundef 0x3FE2788C60000000) #135 %185 = call float @llvm.fma.f32(float %.067, float %.02, float noundef 0x3FE2788C60000000) %.068 = select i1 %.not6, float %185, float %184 %186 = fmul float %.02, %.068 %187 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not7 = icmp eq i32 %187, 0 %188 = call float @llvm.nvvm.fma.rn.ftz.f(float %186, float %.02, float %.02) #135 %189 = call float @llvm.fma.f32(float %186, float %.02, float %.02) %.069 = select i1 %.not7, float %189, float %188 %190 = fcmp olt float %.069, 0x3810000000000000 %191 = fmul float %.069, 0x4160000000000000 %.071 = select i1 %190, float %191, float %.069 %i.i82.i.0 = select i1 %190, float -2.300000e+01, float 0.000000e+00 %192 = bitcast float %.071 to i32 %193 = add i32 %192, -1059760811 %194 = and i32 %193, -8388608 %195 = sub i32 %192, %194 %196 = bitcast i32 %195 to float %197 = sitofp i32 %194 to float %198 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not8 = icmp eq i32 %198, 0 %199 = call float @llvm.nvvm.fma.rn.ftz.f(float %197, float noundef 0x3E80000000000000, float noundef %i.i82.i.0) #135 %200 = call float @llvm.fma.f32(float %197, float noundef 0x3E80000000000000, float noundef %i.i82.i.0) %.077 = select i1 %.not8, float %200, float %199 %201 = fadd float %196, -1.000000e+00 %202 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not9 = icmp eq i32 %202, 0 %203 = call float @llvm.nvvm.fma.rn.ftz.f(float noundef 0xBFC0AA04E0000000, float %201, float noundef 0x3FC2073EC0000000) #135 %204 = call float @llvm.fma.f32(float %201, float noundef 0xBFC0AA04E0000000, float noundef 0x3FC2073EC0000000) %.078 = select i1 %.not9, float %204, float %203 %205 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not10 = icmp eq i32 %205, 0 %206 = call float @llvm.nvvm.fma.rn.ftz.f(float %.078, float %201, float noundef 0xBFBF19B980000000) #135 %207 = call float @llvm.fma.f32(float %.078, float %201, float noundef 0xBFBF19B980000000) %.079 = select i1 %.not10, float %207, float %206 %208 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not11 = icmp eq i32 %208, 0 %209 = call float @llvm.nvvm.fma.rn.ftz.f(float %.079, float %201, float noundef 0x3FC1E52AA0000000) #135 %210 = call float @llvm.fma.f32(float %.079, float %201, float noundef 0x3FC1E52AA0000000) %.080 = select i1 %.not11, float %210, float %209 %211 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not12 = icmp eq i32 %211, 0 %212 = call float @llvm.nvvm.fma.rn.ftz.f(float %.080, float %201, float noundef 0xBFC55B1720000000) #135 %213 = call float @llvm.fma.f32(float %.080, float %201, float noundef 0xBFC55B1720000000) %.081 = select i1 %.not12, float %213, float %212 %214 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not13 = icmp eq i32 %214, 0 %215 = call float @llvm.nvvm.fma.rn.ftz.f(float %.081, float %201, float noundef 0x3FC99DA160000000) #135 %216 = call float @llvm.fma.f32(float %.081, float %201, float noundef 0x3FC99DA160000000) %.083 = select i1 %.not13, float %216, float %215 %217 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not14 = icmp eq i32 %217, 0 %218 = call float @llvm.nvvm.fma.rn.ftz.f(float %.083, float %201, float noundef 0xBFCFFFE440000000) #135 %219 = call float @llvm.fma.f32(float %.083, float %201, float noundef 0xBFCFFFE440000000) %.084 = select i1 %.not14, float %219, float %218 %220 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not15 = icmp eq i32 %220, 0 %221 = call float @llvm.nvvm.fma.rn.ftz.f(float %.084, float %201, float noundef 0x3FD5554F00000000) #135 %222 = call float @llvm.fma.f32(float %.084, float %201, float noundef 0x3FD5554F00000000) %.085 = select i1 %.not15, float %222, float %221 %223 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not16 = icmp eq i32 %223, 0 %224 = call float @llvm.nvvm.fma.rn.ftz.f(float %.085, float %201, float noundef -5.000000e-01) #135 %225 = call float @llvm.fma.f32(float %.085, float %201, float noundef -5.000000e-01) %.076 = select i1 %.not16, float %225, float %224 %226 = fmul float %201, %.076 %227 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not17 = icmp eq i32 %227, 0 %228 = call float @llvm.nvvm.fma.rn.ftz.f(float %226, float %201, float %201) #135 %229 = call float @llvm.fma.f32(float %226, float %201, float %201) %.074 = select i1 %.not17, float %229, float %228 %230 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not18 = icmp eq i32 %230, 0 %231 = call float @llvm.nvvm.fma.rn.ftz.f(float %.077, float noundef 0x3FE62E4300000000, float %.074) #135 %232 = call float @llvm.fma.f32(float %.077, float noundef 0x3FE62E4300000000, float %.074) %.073 = select i1 %.not18, float %232, float %231 %233 = icmp ugt i32 %192, 2139095039 br i1 %233, label %__nv_fmaf_rn.exit.i95.i, label %__internal_accurate_logf.exit96.i __nv_fmaf_rn.exit.i95.i: ; preds = %__internal_fmad.exit60.i %234 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not57 = icmp eq i32 %234, 0 %235 = call float @llvm.nvvm.fma.rn.ftz.f(float %.071, float noundef 0x7FF0000000000000, float noundef 0x7FF0000000000000) #135 %236 = call float @llvm.fma.f32(float %.071, float noundef 0x7FF0000000000000, float noundef 0x7FF0000000000000) %.072 = select i1 %.not57, float %236, float %235 br label %__internal_accurate_logf.exit96.i __internal_accurate_logf.exit96.i: ; preds = %__nv_fmaf_rn.exit.i95.i, %__internal_fmad.exit60.i %r.i81.i.0 = phi float [ %.072, %__nv_fmaf_rn.exit.i95.i ], [ %.073, %__internal_fmad.exit60.i ] %237 = fcmp oeq float %.071, 0.000000e+00 %r.i81.i.1 = select i1 %237, float 0xFFF0000000000000, float %r.i81.i.0 %238 = fneg float %r.i81.i.1 br label %__internal_lgammaf_pos.exit __internal_lgammaf_pos.exit: ; preds = %__internal_fmad.exit22.i, %__internal_accurate_logf.exit96.i, %__internal_fmad.exit40.i, %__internal_accurate_logf.exit.i, %__internal_fmad.exit5.i %t.i.4 = phi float [ %t.i.0, %__internal_accurate_logf.exit.i ], [ %.038, %__internal_fmad.exit5.i ], [ %133, %__internal_fmad.exit22.i ], [ %167, %__internal_fmad.exit40.i ], [ %238, %__internal_accurate_logf.exit96.i ] %239 = fcmp ult float %a, 0.000000e+00 br i1 %239, label %__nv_fabsf.exit1, label %388 __nv_fabsf.exit1: ; preds = %__internal_lgammaf_pos.exit %240 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not19 = icmp eq i32 %240, 0 %.086 = select i1 %.not19, float %2, float %1 %241 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not20 = icmp eq i32 %241, 0 %242 = call float @llvm.nvvm.floor.ftz.f(float %.086) #135 %243 = call float @llvm.floor.f32(float %.086) %.087 = select i1 %.not20, float %243, float %242 %244 = fcmp oeq float %.086, %.087 br i1 %244, label %388, label %245 245: ; preds = %__nv_fabsf.exit1 %246 = fcmp olt float %.086, 0x3BFD83C940000000 br i1 %246, label %__nv_fmaf_rn.exit10.i, label %__internal_fmad.exit __nv_fmaf_rn.exit10.i: ; preds = %245 %247 = fcmp olt float %.086, 0x3810000000000000 %248 = fmul float %.086, 0x4160000000000000 %.089 = select i1 %247, float %248, float %.086 %i.i.0 = select i1 %247, float -2.300000e+01, float 0.000000e+00 %249 = bitcast float %.089 to i32 %250 = add i32 %249, -1059760811 %251 = and i32 %250, -8388608 %252 = sub i32 %249, %251 %253 = bitcast i32 %252 to float %254 = sitofp i32 %251 to float %255 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not45 = icmp eq i32 %255, 0 %256 = call float @llvm.nvvm.fma.rn.ftz.f(float %254, float noundef 0x3E80000000000000, float noundef %i.i.0) #135 %257 = call float @llvm.fma.f32(float %254, float noundef 0x3E80000000000000, float noundef %i.i.0) %.095 = select i1 %.not45, float %257, float %256 %258 = fadd float %253, -1.000000e+00 %259 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not46 = icmp eq i32 %259, 0 %260 = call float @llvm.nvvm.fma.rn.ftz.f(float noundef 0xBFC0AA04E0000000, float %258, float noundef 0x3FC2073EC0000000) #135 %261 = call float @llvm.fma.f32(float %258, float noundef 0xBFC0AA04E0000000, float noundef 0x3FC2073EC0000000) %.096 = select i1 %.not46, float %261, float %260 %262 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not47 = icmp eq i32 %262, 0 %263 = call float @llvm.nvvm.fma.rn.ftz.f(float %.096, float %258, float noundef 0xBFBF19B980000000) #135 %264 = call float @llvm.fma.f32(float %.096, float %258, float noundef 0xBFBF19B980000000) %.097 = select i1 %.not47, float %264, float %263 %265 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not48 = icmp eq i32 %265, 0 %266 = call float @llvm.nvvm.fma.rn.ftz.f(float %.097, float %258, float noundef 0x3FC1E52AA0000000) #135 %267 = call float @llvm.fma.f32(float %.097, float %258, float noundef 0x3FC1E52AA0000000) %.098 = select i1 %.not48, float %267, float %266 %268 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not49 = icmp eq i32 %268, 0 %269 = call float @llvm.nvvm.fma.rn.ftz.f(float %.098, float %258, float noundef 0xBFC55B1720000000) #135 %270 = call float @llvm.fma.f32(float %.098, float %258, float noundef 0xBFC55B1720000000) %.099 = select i1 %.not49, float %270, float %269 %271 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not50 = icmp eq i32 %271, 0 %272 = call float @llvm.nvvm.fma.rn.ftz.f(float %.099, float %258, float noundef 0x3FC99DA160000000) #135 %273 = call float @llvm.fma.f32(float %.099, float %258, float noundef 0x3FC99DA160000000) %.0101 = select i1 %.not50, float %273, float %272 %274 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not51 = icmp eq i32 %274, 0 %275 = call float @llvm.nvvm.fma.rn.ftz.f(float %.0101, float %258, float noundef 0xBFCFFFE440000000) #135 %276 = call float @llvm.fma.f32(float %.0101, float %258, float noundef 0xBFCFFFE440000000) %.0102 = select i1 %.not51, float %276, float %275 %277 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not52 = icmp eq i32 %277, 0 %278 = call float @llvm.nvvm.fma.rn.ftz.f(float %.0102, float %258, float noundef 0x3FD5554F00000000) #135 %279 = call float @llvm.fma.f32(float %.0102, float %258, float noundef 0x3FD5554F00000000) %.0103 = select i1 %.not52, float %279, float %278 %280 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not53 = icmp eq i32 %280, 0 %281 = call float @llvm.nvvm.fma.rn.ftz.f(float %.0103, float %258, float noundef -5.000000e-01) #135 %282 = call float @llvm.fma.f32(float %.0103, float %258, float noundef -5.000000e-01) %.094 = select i1 %.not53, float %282, float %281 %283 = fmul float %258, %.094 %284 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not54 = icmp eq i32 %284, 0 %285 = call float @llvm.nvvm.fma.rn.ftz.f(float %283, float %258, float %258) #135 %286 = call float @llvm.fma.f32(float %283, float %258, float %258) %.092 = select i1 %.not54, float %286, float %285 %287 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not55 = icmp eq i32 %287, 0 %288 = call float @llvm.nvvm.fma.rn.ftz.f(float %.095, float noundef 0x3FE62E4300000000, float %.092) #135 %289 = call float @llvm.fma.f32(float %.095, float noundef 0x3FE62E4300000000, float %.092) %.091 = select i1 %.not55, float %289, float %288 %290 = icmp ugt i32 %249, 2139095039 br i1 %290, label %__nv_fmaf_rn.exit.i, label %__internal_accurate_logf.exit __nv_fmaf_rn.exit.i: ; preds = %__nv_fmaf_rn.exit10.i %291 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not56 = icmp eq i32 %291, 0 %292 = call float @llvm.nvvm.fma.rn.ftz.f(float %.089, float noundef 0x7FF0000000000000, float noundef 0x7FF0000000000000) #135 %293 = call float @llvm.fma.f32(float %.089, float noundef 0x7FF0000000000000, float noundef 0x7FF0000000000000) %.090 = select i1 %.not56, float %293, float %292 br label %__internal_accurate_logf.exit __internal_accurate_logf.exit: ; preds = %__nv_fmaf_rn.exit.i, %__nv_fmaf_rn.exit10.i %r.i.0 = phi float [ %.090, %__nv_fmaf_rn.exit.i ], [ %.091, %__nv_fmaf_rn.exit10.i ] %294 = fcmp oeq float %.089, 0.000000e+00 %r.i.1 = select i1 %294, float 0xFFF0000000000000, float %r.i.0 %295 = fneg float %r.i.1 br label %388 __internal_fmad.exit: ; preds = %245 %296 = fmul float %.086, 2.000000e+00 %297 = call float @llvm.round.f32(float %296) %298 = fptosi float %297 to i32 %299 = fneg float %297 %300 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not21 = icmp eq i32 %300, 0 %301 = call float @llvm.nvvm.fma.rn.ftz.f(float %299, float noundef 5.000000e-01, float %.086) #135 %302 = call float @llvm.fma.f32(float %299, float noundef 5.000000e-01, float %.086) %.0104 = select i1 %.not21, float %302, float %301 %303 = fmul float %.0104, 0x400921FB60000000 %304 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not22 = icmp eq i32 %304, 0 %305 = call float @llvm.nvvm.mul.rn.ftz.f(float %303, float %303) #135 %306 = fmul float %303, %303 %.0100 = select i1 %.not22, float %306, float %305 %307 = and i32 %298, 1 %.not23 = icmp eq i32 %307, 0 %308 = select i1 %.not23, float %303, float 1.000000e+00 %309 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not24 = icmp eq i32 %309, 0 %310 = call float @llvm.nvvm.fma.rn.ftz.f(float %.0100, float %308, float noundef 0.000000e+00) #135 %311 = call float @llvm.fma.f32(float %.0100, float %308, float noundef 0.000000e+00) %.093 = select i1 %.not24, float %311, float %310 br i1 %.not23, label %__internal_fmad.exit2.i9, label %__internal_fmad.exit1.i8 __internal_fmad.exit1.i8: ; preds = %__internal_fmad.exit %312 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not44 = icmp eq i32 %312, 0 %313 = call float @llvm.nvvm.fma.rn.ftz.f(float noundef 0x3EF9758000000000, float %.0100, float noundef 0xBF56C0FDA0000000) #135 %314 = call float @llvm.fma.f32(float %.0100, float noundef 0x3EF9758000000000, float noundef 0xBF56C0FDA0000000) %.088 = select i1 %.not44, float %314, float %313 br label %__internal_fmad.exit2.i9 __internal_fmad.exit2.i9: ; preds = %__internal_fmad.exit, %__internal_fmad.exit1.i8 %315 = phi float [ 0xBFC5555500000000, %__internal_fmad.exit ], [ 0xBFDFFFFFE0000000, %__internal_fmad.exit1.i8 ] %316 = phi float [ 0x3F8110BC80000000, %__internal_fmad.exit ], [ 0x3FA5555760000000, %__internal_fmad.exit1.i8 ] %317 = phi float [ 0xBF29A82A60000000, %__internal_fmad.exit ], [ %.088, %__internal_fmad.exit1.i8 ] %318 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not25 = icmp eq i32 %318, 0 %319 = call float @llvm.nvvm.fma.rn.ftz.f(float %317, float %.0100, float noundef %316) #135 %320 = call float @llvm.fma.f32(float %317, float %.0100, float noundef %316) %.082 = select i1 %.not25, float %320, float %319 %321 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not26 = icmp eq i32 %321, 0 %322 = call float @llvm.nvvm.fma.rn.ftz.f(float %.082, float %.0100, float noundef %315) #135 %323 = call float @llvm.fma.f32(float %.082, float %.0100, float noundef %315) %.075 = select i1 %.not26, float %323, float %322 %324 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not27 = icmp eq i32 %324, 0 %325 = call float @llvm.nvvm.fma.rn.ftz.f(float %.075, float %.093, float %308) #135 %326 = call float @llvm.fma.f32(float %.075, float %.093, float %308) %.070 = select i1 %.not27, float %326, float %325 %327 = and i32 %298, 2 %.not28 = icmp eq i32 %327, 0 br i1 %.not28, label %__internal_sin_cos_kernel.exit, label %__internal_fmad.exit5.i10 __internal_fmad.exit5.i10: ; preds = %__internal_fmad.exit2.i9 %328 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not43 = icmp eq i32 %328, 0 %329 = call float @llvm.nvvm.fma.rn.ftz.f(float %.070, float noundef -1.000000e+00, float noundef 0.000000e+00) #135 %330 = call float @llvm.fma.f32(float %.070, float noundef -1.000000e+00, float noundef 0.000000e+00) %.064 = select i1 %.not43, float %330, float %329 br label %__internal_sin_cos_kernel.exit __internal_sin_cos_kernel.exit: ; preds = %__internal_fmad.exit5.i10, %__internal_fmad.exit2.i9 %z.i.0 = phi float [ %.064, %__internal_fmad.exit5.i10 ], [ %.070, %__internal_fmad.exit2.i9 ] %331 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not29 = icmp eq i32 %331, 0 %332 = call float @llvm.nvvm.fabs.ftz.f(float %z.i.0) #135 %333 = call float @llvm.fabs.f32(float %z.i.0) %.062 = select i1 %.not29, float %333, float %332 %334 = fmul float %.086, %.062 %335 = fcmp olt float %334, 0x3810000000000000 %336 = fmul float %334, 0x4160000000000000 %i.i21.0 = select i1 %335, float -2.300000e+01, float 0.000000e+00 %.060 = select i1 %335, float %336, float %334 %337 = bitcast float %.060 to i32 %338 = add i32 %337, -1059760811 %339 = and i32 %338, -8388608 %340 = sub i32 %337, %339 %341 = bitcast i32 %340 to float %342 = sitofp i32 %339 to float %343 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not30 = icmp eq i32 %343, 0 %344 = call float @llvm.nvvm.fma.rn.ftz.f(float %342, float noundef 0x3E80000000000000, float noundef %i.i21.0) #135 %345 = call float @llvm.fma.f32(float %342, float noundef 0x3E80000000000000, float noundef %i.i21.0) %.025 = select i1 %.not30, float %345, float %344 %346 = fadd float %341, -1.000000e+00 %347 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not31 = icmp eq i32 %347, 0 %348 = call float @llvm.nvvm.fma.rn.ftz.f(float noundef 0xBFC0AA04E0000000, float %346, float noundef 0x3FC2073EC0000000) #135 %349 = call float @llvm.fma.f32(float %346, float noundef 0xBFC0AA04E0000000, float noundef 0x3FC2073EC0000000) %.021 = select i1 %.not31, float %349, float %348 %350 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not32 = icmp eq i32 %350, 0 %351 = call float @llvm.nvvm.fma.rn.ftz.f(float %.021, float %346, float noundef 0xBFBF19B980000000) #135 %352 = call float @llvm.fma.f32(float %.021, float %346, float noundef 0xBFBF19B980000000) %.017 = select i1 %.not32, float %352, float %351 %353 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not33 = icmp eq i32 %353, 0 %354 = call float @llvm.nvvm.fma.rn.ftz.f(float %.017, float %346, float noundef 0x3FC1E52AA0000000) #135 %355 = call float @llvm.fma.f32(float %.017, float %346, float noundef 0x3FC1E52AA0000000) %.013 = select i1 %.not33, float %355, float %354 %356 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not34 = icmp eq i32 %356, 0 %357 = call float @llvm.nvvm.fma.rn.ftz.f(float %.013, float %346, float noundef 0xBFC55B1720000000) #135 %358 = call float @llvm.fma.f32(float %.013, float %346, float noundef 0xBFC55B1720000000) %.09 = select i1 %.not34, float %358, float %357 %359 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not35 = icmp eq i32 %359, 0 %360 = call float @llvm.nvvm.fma.rn.ftz.f(float %.09, float %346, float noundef 0x3FC99DA160000000) #135 %361 = call float @llvm.fma.f32(float %.09, float %346, float noundef 0x3FC99DA160000000) %.08 = select i1 %.not35, float %361, float %360 %362 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not36 = icmp eq i32 %362, 0 %363 = call float @llvm.nvvm.fma.rn.ftz.f(float %.08, float %346, float noundef 0xBFCFFFE440000000) #135 %364 = call float @llvm.fma.f32(float %.08, float %346, float noundef 0xBFCFFFE440000000) %.04 = select i1 %.not36, float %364, float %363 %365 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not37 = icmp eq i32 %365, 0 %366 = call float @llvm.nvvm.fma.rn.ftz.f(float %.04, float %346, float noundef 0x3FD5554F00000000) #135 %367 = call float @llvm.fma.f32(float %.04, float %346, float noundef 0x3FD5554F00000000) %.03 = select i1 %.not37, float %367, float %366 %368 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not38 = icmp eq i32 %368, 0 %369 = call float @llvm.nvvm.fma.rn.ftz.f(float %.03, float %346, float noundef -5.000000e-01) #135 %370 = call float @llvm.fma.f32(float %.03, float %346, float noundef -5.000000e-01) %.029 = select i1 %.not38, float %370, float %369 %371 = fmul float %346, %.029 %372 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not39 = icmp eq i32 %372, 0 %373 = call float @llvm.nvvm.fma.rn.ftz.f(float %371, float %346, float %346) #135 %374 = call float @llvm.fma.f32(float %371, float %346, float %346) %.034 = select i1 %.not39, float %374, float %373 %375 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not40 = icmp eq i32 %375, 0 %376 = call float @llvm.nvvm.fma.rn.ftz.f(float %.025, float noundef 0x3FE62E4300000000, float %.034) #135 %377 = call float @llvm.fma.f32(float %.025, float noundef 0x3FE62E4300000000, float %.034) %.040 = select i1 %.not40, float %377, float %376 %378 = icmp ugt i32 %337, 2139095039 br i1 %378, label %__nv_fmaf_rn.exit.i34, label %__internal_accurate_logf.exit35 __nv_fmaf_rn.exit.i34: ; preds = %__internal_sin_cos_kernel.exit %379 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not42 = icmp eq i32 %379, 0 %380 = call float @llvm.nvvm.fma.rn.ftz.f(float %.060, float noundef 0x7FF0000000000000, float noundef 0x7FF0000000000000) #135 %381 = call float @llvm.fma.f32(float %.060, float noundef 0x7FF0000000000000, float noundef 0x7FF0000000000000) %.052 = select i1 %.not42, float %381, float %380 br label %__internal_accurate_logf.exit35 __internal_accurate_logf.exit35: ; preds = %__nv_fmaf_rn.exit.i34, %__internal_sin_cos_kernel.exit %r.i20.0 = phi float [ %.052, %__nv_fmaf_rn.exit.i34 ], [ %.040, %__internal_sin_cos_kernel.exit ] %382 = fcmp oeq float %.060, 0.000000e+00 %r.i20.0.op = fsub float 0x3FF250D040000000, %r.i20.0 %383 = select i1 %382, float 0x7FF0000000000000, float %r.i20.0.op %384 = fneg float %t.i.4 %385 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not41 = icmp eq i32 %385, 0 %386 = call float @llvm.nvvm.fma.rn.ftz.f(float %383, float noundef 1.000000e+00, float %384) #135 %387 = fsub float %383, %t.i.4 %.0 = select i1 %.not41, float %387, float %386 br label %388 388: ; preds = %__nv_fabsf.exit1, %__internal_lgammaf_pos.exit, %__internal_accurate_logf.exit35, %__internal_accurate_logf.exit %.01 = phi float [ %295, %__internal_accurate_logf.exit ], [ %.0, %__internal_accurate_logf.exit35 ], [ %t.i.4, %__internal_lgammaf_pos.exit ], [ 0x7FF0000000000000, %__nv_fabsf.exit1 ] ret float %.01 } ; Function Attrs: noinline nounwind define dso_local float @__nv_ldexpf(float %a, i32 %b) local_unnamed_addr #54 { __nv_fabsf.exit: %0 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not = icmp eq i32 %0, 0 %1 = call float @llvm.nvvm.fabs.ftz.f(float %a) #135 %2 = call float @llvm.fabs.f32(float %a) %.01 = select i1 %.not, float %2, float %1 %3 = fcmp oeq float %.01, 0.000000e+00 %4 = fcmp oeq float %.01, 0x7FF0000000000000 %or.cond = or i1 %3, %4 %5 = icmp eq i32 %b, 0 %or.cond2 = select i1 %or.cond, i1 true, i1 %5 br i1 %or.cond2, label %6, label %9 6: ; preds = %__nv_fabsf.exit %7 = fcmp ogt float %.01, 0.000000e+00 %8 = select i1 %7, float -0.000000e+00, float %a %.0 = fadd float %8, %a br label %38 9: ; preds = %__nv_fabsf.exit %10 = call i32 @llvm.abs.i32(i32 %b, i1 noundef false) %11 = icmp slt i32 %10, 126 br i1 %11, label %12, label %16 12: ; preds = %9 %13 = sitofp i32 %b to float %14 = call float @llvm.nvvm.ex2.approx.ftz.f(float %13) #135 %15 = fmul float %14, %a br label %38 16: ; preds = %9 %17 = icmp ult i32 %10, 252 br i1 %17, label %18, label %27 18: ; preds = %16 %19 = sdiv i32 %b, 2 %20 = sub nsw i32 %b, %19 %21 = sitofp i32 %19 to float %22 = call float @llvm.nvvm.ex2.approx.ftz.f(float %21) #135 %23 = fmul float %22, %a %24 = sitofp i32 %20 to float %25 = call float @llvm.nvvm.ex2.approx.ftz.f(float %24) #135 %26 = fmul float %23, %25 br label %38 27: ; preds = %16 %28 = sdiv i32 %b, 4 %29 = sitofp i32 %28 to float %30 = call float @llvm.nvvm.ex2.approx.ftz.f(float %29) #135 %.neg = mul nsw i32 %28, -3 %31 = add i32 %.neg, %b %32 = fmul float %30, %a %33 = fmul float %30, %32 %34 = fmul float %30, %33 %35 = sitofp i32 %31 to float %36 = call float @llvm.nvvm.ex2.approx.ftz.f(float %35) #135 %37 = fmul float %36, %34 br label %38 38: ; preds = %12, %27, %18, %6 %.3 = phi float [ %.0, %6 ], [ %15, %12 ], [ %26, %18 ], [ %37, %27 ] ret float %.3 } ; Function Attrs: noinline nounwind define dso_local float @__nv_scalbnf(float %a, i32 %b) local_unnamed_addr #55 { __nv_fabsf.exit.i: %0 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not = icmp eq i32 %0, 0 %1 = call float @llvm.nvvm.fabs.ftz.f(float %a) #135 %2 = call float @llvm.fabs.f32(float %a) %.01 = select i1 %.not, float %2, float %1 %3 = fcmp oeq float %.01, 0.000000e+00 %4 = fcmp oeq float %.01, 0x7FF0000000000000 %or.cond = or i1 %3, %4 %5 = icmp eq i32 %b, 0 %or.cond2 = select i1 %or.cond, i1 true, i1 %5 br i1 %or.cond2, label %6, label %9 6: ; preds = %__nv_fabsf.exit.i %7 = fcmp ogt float %.01, 0.000000e+00 %8 = select i1 %7, float -0.000000e+00, float %a %.0 = fadd float %8, %a br label %__nv_ldexpf.exit 9: ; preds = %__nv_fabsf.exit.i %10 = call i32 @llvm.abs.i32(i32 %b, i1 noundef false) %11 = icmp slt i32 %10, 126 br i1 %11, label %12, label %16 12: ; preds = %9 %13 = sitofp i32 %b to float %14 = call float @llvm.nvvm.ex2.approx.ftz.f(float %13) #135 %15 = fmul float %14, %a br label %__nv_ldexpf.exit 16: ; preds = %9 %17 = icmp ult i32 %10, 252 br i1 %17, label %18, label %27 18: ; preds = %16 %19 = sdiv i32 %b, 2 %20 = sub nsw i32 %b, %19 %21 = sitofp i32 %19 to float %22 = call float @llvm.nvvm.ex2.approx.ftz.f(float %21) #135 %23 = fmul float %22, %a %24 = sitofp i32 %20 to float %25 = call float @llvm.nvvm.ex2.approx.ftz.f(float %24) #135 %26 = fmul float %23, %25 br label %__nv_ldexpf.exit 27: ; preds = %16 %28 = sdiv i32 %b, 4 %29 = sitofp i32 %28 to float %30 = call float @llvm.nvvm.ex2.approx.ftz.f(float %29) #135 %.neg = mul nsw i32 %28, -3 %31 = add i32 %.neg, %b %32 = fmul float %30, %a %33 = fmul float %30, %32 %34 = fmul float %30, %33 %35 = sitofp i32 %31 to float %36 = call float @llvm.nvvm.ex2.approx.ftz.f(float %35) #135 %37 = fmul float %36, %34 br label %__nv_ldexpf.exit __nv_ldexpf.exit: ; preds = %12, %27, %18, %6 %.3 = phi float [ %.0, %6 ], [ %15, %12 ], [ %26, %18 ], [ %37, %27 ] ret float %.3 } ; Function Attrs: noinline nounwind define dso_local float @__nv_frexpf(float %a, i32* nocapture nofree writeonly %b) local_unnamed_addr #56 { __nv_fabsf.exit: %0 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not = icmp eq i32 %0, 0 %1 = call float @llvm.nvvm.fabs.ftz.f(float %a) #135 %2 = call float @llvm.fabs.f32(float %a) %.01 = select i1 %.not, float %2, float %1 %3 = fcmp olt float %.01, 0x3810000000000000 %4 = fmul float %a, 0x4170000000000000 %.0 = select i1 %3, float %4, float %a %5 = bitcast float %.0 to i32 %6 = lshr i32 %5, 23 %7 = and i32 %6, 255 %8 = fcmp oeq float %.01, 0.000000e+00 %9 = icmp eq i32 %7, 255 %or.cond = select i1 %8, i1 true, i1 %9 br i1 %or.cond, label %10, label %12 10: ; preds = %__nv_fabsf.exit %11 = fadd float %.0, %.0 br label %18 12: ; preds = %__nv_fabsf.exit %13 = select i1 %3, i32 -150, i32 -126 %14 = add nsw i32 %7, %13 %15 = and i32 %5, -2139095041 %16 = or i32 %15, 1056964608 %17 = bitcast i32 %16 to float br label %18 18: ; preds = %12, %10 %.1 = phi float [ %11, %10 ], [ %17, %12 ] %expo.0 = phi i32 [ 0, %10 ], [ %14, %12 ] store i32 %expo.0, i32* %b, align 4, !noalias !219 ret float %.1 } ; Function Attrs: noinline nounwind define dso_local float @__nv_modff(float %a, float* nocapture nofree writeonly %b) local_unnamed_addr #57 { __nv_finitef.exit: %0 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not = icmp eq i32 %0, 0 %1 = call float @llvm.nvvm.fabs.ftz.f(float %a) #135 %2 = call float @llvm.fabs.f32(float %a) %.0 = select i1 %.not, float %2, float %1 %3 = fcmp olt float %.0, 0x7FF0000000000000 br i1 %3, label %4, label %__nv_isinff.exit 4: ; preds = %__nv_finitef.exit %5 = call float @llvm.trunc.f32(float %a) store float %5, float* %b, align 4, !noalias !219 %6 = fsub float %a, %5 %7 = bitcast float %6 to i32 %8 = bitcast float %a to i32 %9 = and i32 %8, -2147483648 %10 = or i32 %9, %7 %11 = bitcast i32 %10 to float br label %20 __nv_isinff.exit: ; preds = %__nv_finitef.exit %12 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not1 = icmp eq i32 %12, 0 %.01 = select i1 %.not1, float %2, float %1 %13 = fcmp oeq float %.01, 0x7FF0000000000000 br i1 %13, label %14, label %18 14: ; preds = %__nv_isinff.exit store float %a, float* %b, align 4, !noalias !219 %15 = bitcast float %a to i32 %16 = and i32 %15, -2147483648 %17 = bitcast i32 %16 to float br label %20 18: ; preds = %__nv_isinff.exit %19 = fadd float %a, %a store float %19, float* %b, align 4, !noalias !219 br label %20 20: ; preds = %14, %18, %4 %t.1 = phi float [ %11, %4 ], [ %17, %14 ], [ %19, %18 ] ret float %t.1 } ; Function Attrs: noinline nounwind define dso_local float @__nv_fmodf(float %x, float %y) local_unnamed_addr #58 { __nv_fabsf.exit: %0 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not = icmp eq i32 %0, 0 %1 = call float @llvm.nvvm.fabs.ftz.f(float %y) #135 %2 = call float @llvm.fabs.f32(float %y) %.0 = select i1 %.not, float %2, float %1 %3 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not2 = icmp eq i32 %3, 0 %4 = call float @llvm.nvvm.fabs.ftz.f(float %x) #135 %5 = call float @llvm.fabs.f32(float %x) %.01 = select i1 %.not2, float %5, float %4 %6 = fcmp olt float %.01, %.0 br i1 %6, label %__internal_fmodf_kernel.exit, label %7 7: ; preds = %__nv_fabsf.exit %8 = fmul float %.0, 0x4160000000000000 %9 = fcmp ugt float %.01, %8 br i1 %9, label %40, label %10 10: ; preds = %7 %11 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not10 = icmp eq i32 %11, 0 br i1 %.not10, label %14, label %12 12: ; preds = %10 %13 = call float @llvm.nvvm.div.approx.ftz.f(float %.01, float %.0) #135 br label %__nv_fast_fdividef.exit.i.i 14: ; preds = %10 %15 = call float @llvm.nvvm.div.approx.f(float %.01, float %.0) #135 br label %__nv_fast_fdividef.exit.i.i __nv_fast_fdividef.exit.i.i: ; preds = %14, %12 %.02 = phi float [ %13, %12 ], [ %15, %14 ] %16 = call float @llvm.trunc.f32(float %.02) %17 = fneg float %.0 %18 = call float @llvm.fma.f32(float %17, float %16, float %.01) %19 = bitcast float %18 to i32 %20 = bitcast float %.0 to i32 %.not11 = icmp ult i32 %19, %20 br i1 %.not11, label %__internal_fmodf_fastpath_quot.exit.i, label %21 21: ; preds = %__nv_fast_fdividef.exit.i.i %22 = icmp ugt i32 %19, -2147483648 br i1 %22, label %23, label %27 23: ; preds = %21 %24 = fadd float %16, -1.000000e+00 %25 = fcmp olt float %18, %17 %26 = fadd float %24, -1.000000e+00 %quotient.i.i.0 = select i1 %25, float %26, float %24 br label %__internal_fmodf_fastpath_quot.exit.i 27: ; preds = %21 %28 = fadd float %16, 1.000000e+00 %29 = fmul float %.0, 2.000000e+00 %30 = fcmp ult float %18, %29 br i1 %30, label %__internal_fmodf_fastpath_quot.exit.i, label %__nv_fmaf_rn.exit.i.i __nv_fmaf_rn.exit.i.i: ; preds = %27 %31 = fadd float %28, 1.000000e+00 %32 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not13 = icmp eq i32 %32, 0 %33 = call float @llvm.nvvm.fma.rn.ftz.f(float noundef -3.000000e+00, float %.0, float %18) #135 %34 = call float @llvm.fma.f32(float %.0, float noundef -3.000000e+00, float %18) %.03 = select i1 %.not13, float %34, float %33 %35 = fcmp oge float %.03, 0.000000e+00 %36 = fadd float %31, 1.000000e+00 %quotient.i.i.1 = select i1 %35, float %36, float %31 br label %__internal_fmodf_fastpath_quot.exit.i __internal_fmodf_fastpath_quot.exit.i: ; preds = %23, %__nv_fmaf_rn.exit.i.i, %27, %__nv_fast_fdividef.exit.i.i %quotient.i.i.4 = phi float [ %16, %__nv_fast_fdividef.exit.i.i ], [ %quotient.i.i.0, %23 ], [ %quotient.i.i.1, %__nv_fmaf_rn.exit.i.i ], [ %28, %27 ] %37 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not12 = icmp eq i32 %37, 0 %38 = call float @llvm.nvvm.fma.rn.ftz.f(float %17, float %quotient.i.i.4, float %.01) #135 %39 = call float @llvm.fma.f32(float %17, float %quotient.i.i.4, float %.01) %.04 = select i1 %.not12, float %39, float %38 br label %__internal_fmodf_kernel.exit 40: ; preds = %7 %41 = bitcast float %.01 to i32 %42 = bitcast float %8 to i32 %43 = and i32 %42, -8388608 %44 = and i32 %41, 8388607 %45 = or i32 %44, 1065353216 %46 = and i32 %42, 8388607 %47 = or i32 %46, 1065353216 %48 = bitcast i32 %45 to float %49 = bitcast i32 %47 to float %50 = call float asm "rcp.approx.ftz.f32 $0,$1;", "=f,f"(float %49) #137, !srcloc !225 %51 = add i32 %42, -192937984 %52 = and i32 %51, -8388608 %53 = sub i32 %41, %52 %54 = and i32 %53, -8388608 %.not17 = icmp eq i32 %54, 0 br i1 %.not17, label %__internal_fmodf_slowpath_mod.exit.i, label %__nv_fmaf_rn.exit4.i.i.lr.ph __nv_fmaf_rn.exit4.i.i.lr.ph: ; preds = %40 %55 = fneg float %49 br label %__nv_fmaf_rn.exit4.i.i __nv_fmaf_rn.exit4.i.i: ; preds = %__nv_fmaf_rn.exit4.i.i.lr.ph, %__nv_fmaf_rn.exit4.i.i %ux.i.i.016 = phi i32 [ %45, %__nv_fmaf_rn.exit4.i.i.lr.ph ], [ %79, %__nv_fmaf_rn.exit4.i.i ] %i.i.i.015 = phi i32 [ %54, %__nv_fmaf_rn.exit4.i.i.lr.ph ], [ %78, %__nv_fmaf_rn.exit4.i.i ] %56 = icmp ult i32 %i.i.i.015, 192937984 %min2 = select i1 %56, i32 %i.i.i.015, i32 192937984 %57 = add i32 %min2, %ux.i.i.016 %58 = bitcast i32 %57 to float %59 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not4 = icmp eq i32 %59, 0 %60 = call float @llvm.nvvm.fma.rn.ftz.f(float %58, float %50, float noundef -0.000000e+00) #135 %61 = fmul float %50, %58 %.010 = select i1 %.not4, float %61, float %60 %62 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not5 = icmp eq i32 %62, 0 %63 = call float @llvm.nvvm.fma.rn.ftz.f(float %55, float %.010, float %58) #135 %64 = call float @llvm.fma.f32(float %55, float %.010, float %58) %.011 = select i1 %.not5, float %64, float %63 %65 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not6 = icmp eq i32 %65, 0 %66 = call float @llvm.nvvm.fma.rn.ftz.f(float %.011, float %50, float %.010) #135 %67 = call float @llvm.fma.f32(float %.011, float %50, float %.010) %.012 = select i1 %.not6, float %67, float %66 %68 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not7 = icmp eq i32 %68, 0 %69 = call float @llvm.nvvm.fma.rn.ftz.f(float %55, float %.012, float %58) #135 %70 = call float @llvm.fma.f32(float %55, float %.012, float %58) %.09 = select i1 %.not7, float %70, float %69 %71 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not8 = icmp eq i32 %71, 0 %72 = call float @llvm.nvvm.fma.rz.ftz.f(float %.09, float %50, float %.012) #135 %73 = call float @llvm.nvvm.fma.rz.f(float %.09, float %50, float %.012) #135 %.08 = select i1 %.not8, float %73, float %72 %74 = call float @llvm.trunc.f32(float %.08) %75 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not9 = icmp eq i32 %75, 0 %76 = call float @llvm.nvvm.fma.rn.ftz.f(float %55, float %74, float %58) #135 %77 = call float @llvm.fma.f32(float %55, float %74, float %58) %.07 = select i1 %.not9, float %77, float %76 %78 = sub i32 %i.i.i.015, %min2 %79 = bitcast float %.07 to i32 %80 = icmp ne i32 %78, 0 %81 = icmp ne i32 %79, 0 %spec.select = select i1 %80, i1 %81, i1 false br i1 %spec.select, label %__nv_fmaf_rn.exit4.i.i, label %__internal_fmodf_slowpath_mod.exit.i __internal_fmodf_slowpath_mod.exit.i: ; preds = %__nv_fmaf_rn.exit4.i.i, %40 %.06.lcssa = phi float [ %48, %40 ], [ %.07, %__nv_fmaf_rn.exit4.i.i ] %82 = bitcast i32 %43 to float %83 = fcmp ule float %.0, 0.000000e+00 %84 = icmp ugt i32 %41, 2139095039 %or.cond = select i1 %83, i1 true, i1 %84 %85 = select i1 %or.cond, float 0x7FFFFFFFE0000000, float %82 %86 = fmul float %.06.lcssa, 0x3E80000000000000 %87 = fmul float %85, %86 br label %__internal_fmodf_kernel.exit __internal_fmodf_kernel.exit: ; preds = %__internal_fmodf_fastpath_quot.exit.i, %__internal_fmodf_slowpath_mod.exit.i, %__nv_fabsf.exit %ans.i.1 = phi float [ %.01, %__nv_fabsf.exit ], [ %.04, %__internal_fmodf_fastpath_quot.exit.i ], [ %87, %__internal_fmodf_slowpath_mod.exit.i ] %88 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not3 = icmp eq i32 %88, 0 %89 = call float @llvm.nvvm.fabs.ftz.f(float %ans.i.1) #135 %90 = call float @llvm.fabs.f32(float %ans.i.1) %.05 = select i1 %.not3, float %90, float %89 %91 = fcmp ugt float %.05, 0x7FF0000000000000 br i1 %91, label %98, label %92 92: ; preds = %__internal_fmodf_kernel.exit %93 = bitcast float %ans.i.1 to i32 %94 = bitcast float %x to i32 %95 = and i32 %94, -2147483648 %96 = or i32 %95, %93 %97 = bitcast i32 %96 to float br label %98 98: ; preds = %__internal_fmodf_kernel.exit, %92 %99 = phi float [ %97, %92 ], [ %ans.i.1, %__internal_fmodf_kernel.exit ] ret float %99 } ; Function Attrs: noinline nounwind define dso_local float @__nv_remainderf(float %x, float %y) local_unnamed_addr #59 { __nv_fabsf.exit: %0 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not = icmp eq i32 %0, 0 %1 = call float @llvm.nvvm.fabs.ftz.f(float %y) #135 %2 = call float @llvm.fabs.f32(float %y) %.01 = select i1 %.not, float %2, float %1 %3 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not6 = icmp eq i32 %3, 0 %4 = call float @llvm.nvvm.fabs.ftz.f(float %x) #135 %5 = call float @llvm.fabs.f32(float %x) %.02 = select i1 %.not6, float %5, float %4 %6 = fmul float %.02, 2.000000e+00 %7 = fcmp olt float %.02, %.01 br i1 %7, label %__internal_fmodf_kernel.exit, label %8 8: ; preds = %__nv_fabsf.exit %9 = fmul float %.01, 0x4160000000000000 %10 = fcmp ugt float %.02, %9 br i1 %10, label %43, label %11 11: ; preds = %8 %12 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not17 = icmp eq i32 %12, 0 br i1 %.not17, label %15, label %13 13: ; preds = %11 %14 = call float @llvm.nvvm.div.approx.ftz.f(float %.02, float %.01) #135 br label %__nv_fast_fdividef.exit.i.i 15: ; preds = %11 %16 = call float @llvm.nvvm.div.approx.f(float %.02, float %.01) #135 br label %__nv_fast_fdividef.exit.i.i __nv_fast_fdividef.exit.i.i: ; preds = %15, %13 %.04 = phi float [ %14, %13 ], [ %16, %15 ] %17 = call float @llvm.trunc.f32(float %.04) %18 = fneg float %.01 %19 = call float @llvm.fma.f32(float %18, float %17, float %.02) %20 = bitcast float %19 to i32 %21 = bitcast float %.01 to i32 %.not18 = icmp ult i32 %20, %21 br i1 %.not18, label %__internal_fmodf_fastpath_quot.exit.i, label %22 22: ; preds = %__nv_fast_fdividef.exit.i.i %23 = icmp ugt i32 %20, -2147483648 br i1 %23, label %24, label %28 24: ; preds = %22 %25 = fadd float %17, -1.000000e+00 %26 = fcmp olt float %19, %18 %27 = fadd float %25, -1.000000e+00 %quotient.i.i.0 = select i1 %26, float %27, float %25 br label %__internal_fmodf_fastpath_quot.exit.i 28: ; preds = %22 %29 = fadd float %17, 1.000000e+00 %30 = fmul float %.01, 2.000000e+00 %31 = fcmp ult float %19, %30 br i1 %31, label %__internal_fmodf_fastpath_quot.exit.i, label %__nv_fmaf_rn.exit.i.i __nv_fmaf_rn.exit.i.i: ; preds = %28 %32 = fadd float %29, 1.000000e+00 %33 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not20 = icmp eq i32 %33, 0 %34 = call float @llvm.nvvm.fma.rn.ftz.f(float noundef -3.000000e+00, float %.01, float %19) #135 %35 = call float @llvm.fma.f32(float %.01, float noundef -3.000000e+00, float %19) %.05 = select i1 %.not20, float %35, float %34 %36 = fcmp oge float %.05, 0.000000e+00 %37 = fadd float %32, 1.000000e+00 %quotient.i.i.1 = select i1 %36, float %37, float %32 br label %__internal_fmodf_fastpath_quot.exit.i __internal_fmodf_fastpath_quot.exit.i: ; preds = %24, %__nv_fmaf_rn.exit.i.i, %28, %__nv_fast_fdividef.exit.i.i %quotient.i.i.4 = phi float [ %17, %__nv_fast_fdividef.exit.i.i ], [ %quotient.i.i.0, %24 ], [ %quotient.i.i.1, %__nv_fmaf_rn.exit.i.i ], [ %29, %28 ] %38 = fptoui float %quotient.i.i.4 to i32 %39 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not19 = icmp eq i32 %39, 0 %40 = call float @llvm.nvvm.fma.rn.ftz.f(float %18, float %quotient.i.i.4, float %.02) #135 %41 = call float @llvm.fma.f32(float %18, float %quotient.i.i.4, float %.02) %.06 = select i1 %.not19, float %41, float %40 %42 = call float @llvm.fma.f32(float %41, float noundef 2.000000e+00, float noundef 0.000000e+00) br label %__internal_fmodf_kernel.exit 43: ; preds = %8 %44 = bitcast float %.02 to i32 %45 = bitcast float %9 to i32 %46 = and i32 %45, -8388608 %47 = and i32 %44, 8388607 %48 = or i32 %47, 1065353216 %49 = and i32 %45, 8388607 %50 = or i32 %49, 1065353216 %51 = bitcast i32 %48 to float %52 = bitcast i32 %50 to float %53 = call float asm "rcp.approx.ftz.f32 $0,$1;", "=f,f"(float %52) #137, !srcloc !225 %54 = add i32 %45, -192937984 %55 = and i32 %54, -8388608 %56 = sub i32 %44, %55 %57 = and i32 %56, -8388608 %.not26 = icmp eq i32 %57, 0 br i1 %.not26, label %__internal_fmodf_slowpath_mod.exit.i, label %__nv_fmaf_rn.exit4.i.i.lr.ph __nv_fmaf_rn.exit4.i.i.lr.ph: ; preds = %43 %58 = fneg float %52 br label %__nv_fmaf_rn.exit4.i.i __nv_fmaf_rn.exit4.i.i: ; preds = %__nv_fmaf_rn.exit4.i.i.lr.ph, %__nv_fmaf_rn.exit4.i.i %ux.i.i.023 = phi i32 [ %48, %__nv_fmaf_rn.exit4.i.i.lr.ph ], [ %82, %__nv_fmaf_rn.exit4.i.i ] %i.i.i.022 = phi i32 [ %57, %__nv_fmaf_rn.exit4.i.i.lr.ph ], [ %81, %__nv_fmaf_rn.exit4.i.i ] %quotient.i8.i.021 = phi i32 [ 0, %__nv_fmaf_rn.exit4.i.i.lr.ph ], [ %86, %__nv_fmaf_rn.exit4.i.i ] %59 = icmp ult i32 %i.i.i.022, 192937984 %min2 = select i1 %59, i32 %i.i.i.022, i32 192937984 %60 = add i32 %min2, %ux.i.i.023 %61 = bitcast i32 %60 to float %62 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not11 = icmp eq i32 %62, 0 %63 = call float @llvm.nvvm.fma.rn.ftz.f(float %61, float %53, float noundef -0.000000e+00) #135 %64 = fmul float %53, %61 %.013 = select i1 %.not11, float %64, float %63 %65 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not12 = icmp eq i32 %65, 0 %66 = call float @llvm.nvvm.fma.rn.ftz.f(float %58, float %.013, float %61) #135 %67 = call float @llvm.fma.f32(float %58, float %.013, float %61) %.014 = select i1 %.not12, float %67, float %66 %68 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not13 = icmp eq i32 %68, 0 %69 = call float @llvm.nvvm.fma.rn.ftz.f(float %.014, float %53, float %.013) #135 %70 = call float @llvm.fma.f32(float %.014, float %53, float %.013) %.015 = select i1 %.not13, float %70, float %69 %71 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not14 = icmp eq i32 %71, 0 %72 = call float @llvm.nvvm.fma.rn.ftz.f(float %58, float %.015, float %61) #135 %73 = call float @llvm.fma.f32(float %58, float %.015, float %61) %.012 = select i1 %.not14, float %73, float %72 %74 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not15 = icmp eq i32 %74, 0 %75 = call float @llvm.nvvm.fma.rz.ftz.f(float %.012, float %53, float %.015) #135 %76 = call float @llvm.nvvm.fma.rz.f(float %.012, float %53, float %.015) #135 %.011 = select i1 %.not15, float %76, float %75 %77 = call float @llvm.trunc.f32(float %.011) %78 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not16 = icmp eq i32 %78, 0 %79 = call float @llvm.nvvm.fma.rn.ftz.f(float %58, float %77, float %61) #135 %80 = call float @llvm.fma.f32(float %58, float %77, float %61) %.010 = select i1 %.not16, float %80, float %79 %81 = sub i32 %i.i.i.022, %min2 %82 = bitcast float %.010 to i32 %83 = lshr i32 %min2, 23 %84 = shl i32 %quotient.i8.i.021, %83 %85 = fptoui float %77 to i32 %86 = add i32 %84, %85 %87 = icmp ne i32 %81, 0 %88 = icmp ne i32 %82, 0 %spec.select = select i1 %87, i1 %88, i1 false br i1 %spec.select, label %__nv_fmaf_rn.exit4.i.i, label %__internal_fmodf_slowpath_mod.exit.i __internal_fmodf_slowpath_mod.exit.i: ; preds = %__nv_fmaf_rn.exit4.i.i, %43 %.09.lcssa = phi float [ %51, %43 ], [ %.010, %__nv_fmaf_rn.exit4.i.i ] %quotient.i8.i.0.lcssa = phi i32 [ 0, %43 ], [ %86, %__nv_fmaf_rn.exit4.i.i ] %i.i.i.0.lcssa = phi i32 [ 0, %43 ], [ %81, %__nv_fmaf_rn.exit4.i.i ] %89 = lshr i32 %i.i.i.0.lcssa, 23 %min.cond = icmp ult i32 %i.i.i.0.lcssa, 33554432 %min = select i1 %min.cond, i32 %89, i32 3 %90 = shl i32 %quotient.i8.i.0.lcssa, %min %91 = bitcast i32 %46 to float %92 = fcmp ule float %.01, 0.000000e+00 %93 = icmp ugt i32 %44, 2139095039 %or.cond = select i1 %92, i1 true, i1 %93 %94 = select i1 %or.cond, float 0x7FFFFFFFE0000000, float %91 %95 = fmul float %.09.lcssa, 0x3E80000000000000 %96 = fmul float %94, %95 %97 = fmul float %.09.lcssa, 0x3E90000000000000 %98 = fmul float %94, %97 br label %__internal_fmodf_kernel.exit __internal_fmodf_kernel.exit: ; preds = %__internal_fmodf_fastpath_quot.exit.i, %__internal_fmodf_slowpath_mod.exit.i, %__nv_fabsf.exit %ignore_quot.1 = phi i32 [ 0, %__nv_fabsf.exit ], [ %38, %__internal_fmodf_fastpath_quot.exit.i ], [ %90, %__internal_fmodf_slowpath_mod.exit.i ] %twoans.1 = phi float [ %6, %__nv_fabsf.exit ], [ %42, %__internal_fmodf_fastpath_quot.exit.i ], [ %98, %__internal_fmodf_slowpath_mod.exit.i ] %ans.i.1 = phi float [ %.02, %__nv_fabsf.exit ], [ %.06, %__internal_fmodf_fastpath_quot.exit.i ], [ %96, %__internal_fmodf_slowpath_mod.exit.i ] %99 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %100 = icmp eq i32 %99, 0 %101 = fmul float %ans.i.1, 2.000000e+00 %spec.select2 = select i1 %100, float %101, float %twoans.1 %102 = fcmp ogt float %spec.select2, %.01 br i1 %102, label %107, label %103 103: ; preds = %__internal_fmodf_kernel.exit %104 = fcmp oeq float %spec.select2, %.01 %105 = and i32 %ignore_quot.1, 1 %106 = icmp ne i32 %105, 0 %or.cond4 = select i1 %104, i1 %106, i1 false br i1 %or.cond4, label %107, label %__internal_remainderf_round_to_nearest_even.exit 107: ; preds = %103, %__internal_fmodf_kernel.exit %108 = fcmp olt float %ans.i.1, 0x3810000000000000 br i1 %108, label %109, label %115 109: ; preds = %107 %110 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not9 = icmp eq i32 %110, 0 br i1 %.not9, label %115, label %__internal_fmad.exit.i __internal_fmad.exit.i: ; preds = %109 %111 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not10 = icmp eq i32 %111, 0 %112 = call float @llvm.nvvm.fma.rn.ftz.f(float %.01, float noundef -2.000000e+00, float %spec.select2) #135 %113 = call float @llvm.fma.f32(float %.01, float noundef -2.000000e+00, float %spec.select2) %.03 = select i1 %.not10, float %113, float %112 %114 = fmul float %.03, 5.000000e-01 br label %__internal_remainderf_round_to_nearest_even.exit 115: ; preds = %109, %107 %116 = fsub float %ans.i.1, %.01 br label %__internal_remainderf_round_to_nearest_even.exit __internal_remainderf_round_to_nearest_even.exit: ; preds = %__internal_fmad.exit.i, %115, %103 %.1 = phi float [ %ans.i.1, %103 ], [ %114, %__internal_fmad.exit.i ], [ %116, %115 ] %117 = bitcast float %x to i32 %.not7 = icmp sgt i32 %117, -1 br i1 %.not7, label %123, label %__nv_isnanf.exit __nv_isnanf.exit: ; preds = %__internal_remainderf_round_to_nearest_even.exit %118 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not8 = icmp eq i32 %118, 0 %119 = call float @llvm.nvvm.fabs.ftz.f(float %.1) #135 %120 = call float @llvm.fabs.f32(float %.1) %.0 = select i1 %.not8, float %120, float %119 %121 = fcmp ole float %.0, 0x7FF0000000000000 %122 = fneg float %.1 %spec.select5 = select i1 %121, float %122, float %.1 br label %123 123: ; preds = %__nv_isnanf.exit, %__internal_remainderf_round_to_nearest_even.exit %ans.0 = phi float [ %.1, %__internal_remainderf_round_to_nearest_even.exit ], [ %spec.select5, %__nv_isnanf.exit ] ret float %ans.0 } ; Function Attrs: noinline nounwind define dso_local float @__nv_remquof(float %x, float %y, i32* nocapture nofree writeonly %quo) local_unnamed_addr #60 { __nv_fabsf.exit: %0 = bitcast float %x to i32 %1 = bitcast float %y to i32 %2 = xor i32 %1, %0 %.lobit = ashr i32 %2, 31 %3 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not = icmp eq i32 %3, 0 %4 = call float @llvm.nvvm.fabs.ftz.f(float %y) #135 %5 = call float @llvm.fabs.f32(float %y) %.05 = select i1 %.not, float %5, float %4 %6 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not6 = icmp eq i32 %6, 0 %7 = call float @llvm.nvvm.fabs.ftz.f(float %x) #135 %8 = call float @llvm.fabs.f32(float %x) %.06 = select i1 %.not6, float %8, float %7 %9 = fmul float %.06, 2.000000e+00 %10 = fcmp olt float %.06, %.05 br i1 %10, label %__internal_fmodf_kernel.exit, label %11 11: ; preds = %__nv_fabsf.exit %12 = fmul float %.05, 0x4160000000000000 %13 = fcmp ugt float %.06, %12 br i1 %13, label %46, label %14 14: ; preds = %11 %15 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not18 = icmp eq i32 %15, 0 br i1 %.not18, label %18, label %16 16: ; preds = %14 %17 = call float @llvm.nvvm.div.approx.ftz.f(float %.06, float %.05) #135 br label %__nv_fast_fdividef.exit.i.i 18: ; preds = %14 %19 = call float @llvm.nvvm.div.approx.f(float %.06, float %.05) #135 br label %__nv_fast_fdividef.exit.i.i __nv_fast_fdividef.exit.i.i: ; preds = %18, %16 %.08 = phi float [ %17, %16 ], [ %19, %18 ] %20 = call float @llvm.trunc.f32(float %.08) %21 = fneg float %.05 %22 = call float @llvm.fma.f32(float %21, float %20, float %.06) %23 = bitcast float %22 to i32 %24 = bitcast float %.05 to i32 %.not19 = icmp ult i32 %23, %24 br i1 %.not19, label %__internal_fmodf_fastpath_quot.exit.i, label %25 25: ; preds = %__nv_fast_fdividef.exit.i.i %26 = icmp ugt i32 %23, -2147483648 br i1 %26, label %27, label %31 27: ; preds = %25 %28 = fadd float %20, -1.000000e+00 %29 = fcmp olt float %22, %21 %30 = fadd float %28, -1.000000e+00 %quotient.i.i.0 = select i1 %29, float %30, float %28 br label %__internal_fmodf_fastpath_quot.exit.i 31: ; preds = %25 %32 = fadd float %20, 1.000000e+00 %33 = fmul float %.05, 2.000000e+00 %34 = fcmp ult float %22, %33 br i1 %34, label %__internal_fmodf_fastpath_quot.exit.i, label %__nv_fmaf_rn.exit.i.i __nv_fmaf_rn.exit.i.i: ; preds = %31 %35 = fadd float %32, 1.000000e+00 %36 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not21 = icmp eq i32 %36, 0 %37 = call float @llvm.nvvm.fma.rn.ftz.f(float noundef -3.000000e+00, float %.05, float %22) #135 %38 = call float @llvm.fma.f32(float %.05, float noundef -3.000000e+00, float %22) %.09 = select i1 %.not21, float %38, float %37 %39 = fcmp oge float %.09, 0.000000e+00 %40 = fadd float %35, 1.000000e+00 %quotient.i.i.1 = select i1 %39, float %40, float %35 br label %__internal_fmodf_fastpath_quot.exit.i __internal_fmodf_fastpath_quot.exit.i: ; preds = %27, %__nv_fmaf_rn.exit.i.i, %31, %__nv_fast_fdividef.exit.i.i %quotient.i.i.4 = phi float [ %20, %__nv_fast_fdividef.exit.i.i ], [ %quotient.i.i.0, %27 ], [ %quotient.i.i.1, %__nv_fmaf_rn.exit.i.i ], [ %32, %31 ] %41 = fptoui float %quotient.i.i.4 to i32 %42 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not20 = icmp eq i32 %42, 0 %43 = call float @llvm.nvvm.fma.rn.ftz.f(float %21, float %quotient.i.i.4, float %.06) #135 %44 = call float @llvm.fma.f32(float %21, float %quotient.i.i.4, float %.06) %.010 = select i1 %.not20, float %44, float %43 %45 = call float @llvm.fma.f32(float %44, float noundef 2.000000e+00, float noundef 0.000000e+00) br label %__internal_fmodf_kernel.exit 46: ; preds = %11 %47 = bitcast float %.06 to i32 %48 = bitcast float %12 to i32 %49 = and i32 %48, -8388608 %50 = and i32 %47, 8388607 %51 = or i32 %50, 1065353216 %52 = and i32 %48, 8388607 %53 = or i32 %52, 1065353216 %54 = bitcast i32 %51 to float %55 = bitcast i32 %53 to float %56 = call float asm "rcp.approx.ftz.f32 $0,$1;", "=f,f"(float %55) #137, !srcloc !225 %57 = add i32 %48, -192937984 %58 = and i32 %57, -8388608 %59 = sub i32 %47, %58 %60 = and i32 %59, -8388608 %.not27 = icmp eq i32 %60, 0 br i1 %.not27, label %__internal_fmodf_slowpath_mod.exit.i, label %__nv_fmaf_rn.exit4.i.i.lr.ph __nv_fmaf_rn.exit4.i.i.lr.ph: ; preds = %46 %61 = fneg float %55 br label %__nv_fmaf_rn.exit4.i.i __nv_fmaf_rn.exit4.i.i: ; preds = %__nv_fmaf_rn.exit4.i.i.lr.ph, %__nv_fmaf_rn.exit4.i.i %ux.i.i.024 = phi i32 [ %51, %__nv_fmaf_rn.exit4.i.i.lr.ph ], [ %85, %__nv_fmaf_rn.exit4.i.i ] %i.i.i.023 = phi i32 [ %60, %__nv_fmaf_rn.exit4.i.i.lr.ph ], [ %84, %__nv_fmaf_rn.exit4.i.i ] %quotient.i8.i.022 = phi i32 [ 0, %__nv_fmaf_rn.exit4.i.i.lr.ph ], [ %89, %__nv_fmaf_rn.exit4.i.i ] %62 = icmp ult i32 %i.i.i.023, 192937984 %min2 = select i1 %62, i32 %i.i.i.023, i32 192937984 %63 = add i32 %min2, %ux.i.i.024 %64 = bitcast i32 %63 to float %65 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not12 = icmp eq i32 %65, 0 %66 = call float @llvm.nvvm.fma.rn.ftz.f(float %64, float %56, float noundef -0.000000e+00) #135 %67 = fmul float %56, %64 %.012 = select i1 %.not12, float %67, float %66 %68 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not13 = icmp eq i32 %68, 0 %69 = call float @llvm.nvvm.fma.rn.ftz.f(float %61, float %.012, float %64) #135 %70 = call float @llvm.fma.f32(float %61, float %.012, float %64) %.011 = select i1 %.not13, float %70, float %69 %71 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not14 = icmp eq i32 %71, 0 %72 = call float @llvm.nvvm.fma.rn.ftz.f(float %.011, float %56, float %.012) #135 %73 = call float @llvm.fma.f32(float %.011, float %56, float %.012) %.07 = select i1 %.not14, float %73, float %72 %74 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not15 = icmp eq i32 %74, 0 %75 = call float @llvm.nvvm.fma.rn.ftz.f(float %61, float %.07, float %64) #135 %76 = call float @llvm.fma.f32(float %61, float %.07, float %64) %.014 = select i1 %.not15, float %76, float %75 %77 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not16 = icmp eq i32 %77, 0 %78 = call float @llvm.nvvm.fma.rz.ftz.f(float %.014, float %56, float %.07) #135 %79 = call float @llvm.nvvm.fma.rz.f(float %.014, float %56, float %.07) #135 %.016 = select i1 %.not16, float %79, float %78 %80 = call float @llvm.trunc.f32(float %.016) %81 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not17 = icmp eq i32 %81, 0 %82 = call float @llvm.nvvm.fma.rn.ftz.f(float %61, float %80, float %64) #135 %83 = call float @llvm.fma.f32(float %61, float %80, float %64) %.015 = select i1 %.not17, float %83, float %82 %84 = sub i32 %i.i.i.023, %min2 %85 = bitcast float %.015 to i32 %86 = lshr i32 %min2, 23 %87 = shl i32 %quotient.i8.i.022, %86 %88 = fptoui float %80 to i32 %89 = add i32 %87, %88 %90 = icmp ne i32 %84, 0 %91 = icmp ne i32 %85, 0 %spec.select = select i1 %90, i1 %91, i1 false br i1 %spec.select, label %__nv_fmaf_rn.exit4.i.i, label %__internal_fmodf_slowpath_mod.exit.i __internal_fmodf_slowpath_mod.exit.i: ; preds = %__nv_fmaf_rn.exit4.i.i, %46 %.013.lcssa = phi float [ %54, %46 ], [ %.015, %__nv_fmaf_rn.exit4.i.i ] %quotient.i8.i.0.lcssa = phi i32 [ 0, %46 ], [ %89, %__nv_fmaf_rn.exit4.i.i ] %i.i.i.0.lcssa = phi i32 [ 0, %46 ], [ %84, %__nv_fmaf_rn.exit4.i.i ] %92 = lshr i32 %i.i.i.0.lcssa, 23 %min.cond = icmp ult i32 %i.i.i.0.lcssa, 33554432 %min = select i1 %min.cond, i32 %92, i32 3 %93 = shl i32 %quotient.i8.i.0.lcssa, %min %94 = bitcast i32 %49 to float %95 = fcmp ule float %.05, 0.000000e+00 %96 = icmp ugt i32 %47, 2139095039 %or.cond = select i1 %95, i1 true, i1 %96 %97 = select i1 %or.cond, float 0x7FFFFFFFE0000000, float %94 %98 = fmul float %.013.lcssa, 0x3E80000000000000 %99 = fmul float %97, %98 %100 = fmul float %.013.lcssa, 0x3E90000000000000 %101 = fmul float %97, %100 br label %__internal_fmodf_kernel.exit __internal_fmodf_kernel.exit: ; preds = %__internal_fmodf_fastpath_quot.exit.i, %__internal_fmodf_slowpath_mod.exit.i, %__nv_fabsf.exit %quot.1 = phi i32 [ 0, %__nv_fabsf.exit ], [ %41, %__internal_fmodf_fastpath_quot.exit.i ], [ %93, %__internal_fmodf_slowpath_mod.exit.i ] %twoans.1 = phi float [ %9, %__nv_fabsf.exit ], [ %45, %__internal_fmodf_fastpath_quot.exit.i ], [ %101, %__internal_fmodf_slowpath_mod.exit.i ] %ans.i.1 = phi float [ %.06, %__nv_fabsf.exit ], [ %.010, %__internal_fmodf_fastpath_quot.exit.i ], [ %99, %__internal_fmodf_slowpath_mod.exit.i ] %102 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %103 = icmp eq i32 %102, 0 %104 = fmul float %ans.i.1, 2.000000e+00 %spec.select2 = select i1 %103, float %104, float %twoans.1 %105 = fcmp ogt float %spec.select2, %.05 br i1 %105, label %110, label %106 106: ; preds = %__internal_fmodf_kernel.exit %107 = fcmp oeq float %spec.select2, %.05 %108 = and i32 %quot.1, 1 %109 = icmp ne i32 %108, 0 %or.cond4 = select i1 %107, i1 %109, i1 false br i1 %or.cond4, label %110, label %__internal_remainderf_round_to_nearest_even.exit 110: ; preds = %106, %__internal_fmodf_kernel.exit %111 = add i32 %quot.1, 1 %112 = fcmp olt float %ans.i.1, 0x3810000000000000 br i1 %112, label %113, label %119 113: ; preds = %110 %114 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not10 = icmp eq i32 %114, 0 br i1 %.not10, label %119, label %__internal_fmad.exit.i __internal_fmad.exit.i: ; preds = %113 %115 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not11 = icmp eq i32 %115, 0 %116 = call float @llvm.nvvm.fma.rn.ftz.f(float %.05, float noundef -2.000000e+00, float %spec.select2) #135 %117 = call float @llvm.fma.f32(float %.05, float noundef -2.000000e+00, float %spec.select2) %.04 = select i1 %.not11, float %117, float %116 %118 = fmul float %.04, 5.000000e-01 br label %__internal_remainderf_round_to_nearest_even.exit 119: ; preds = %113, %110 %120 = fsub float %ans.i.1, %.05 br label %__internal_remainderf_round_to_nearest_even.exit __internal_remainderf_round_to_nearest_even.exit: ; preds = %__internal_fmad.exit.i, %119, %106 %quot.2 = phi i32 [ %quot.1, %106 ], [ %111, %119 ], [ %111, %__internal_fmad.exit.i ] %.1 = phi float [ %ans.i.1, %106 ], [ %120, %119 ], [ %118, %__internal_fmad.exit.i ] %.not7 = icmp sgt i32 %0, -1 br i1 %.not7, label %__nv_isnanf.exit, label %__nv_isnanf.exit3 __nv_isnanf.exit3: ; preds = %__internal_remainderf_round_to_nearest_even.exit %121 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not9 = icmp eq i32 %121, 0 %122 = call float @llvm.nvvm.fabs.ftz.f(float %.1) #135 %123 = call float @llvm.fabs.f32(float %.1) %.01 = select i1 %.not9, float %123, float %122 %124 = fcmp ole float %.01, 0x7FF0000000000000 %125 = fneg float %.1 %spec.select5 = select i1 %124, float %125, float %.1 br label %__nv_isnanf.exit __nv_isnanf.exit: ; preds = %__nv_isnanf.exit3, %__internal_remainderf_round_to_nearest_even.exit %ans.0 = phi float [ %.1, %__internal_remainderf_round_to_nearest_even.exit ], [ %spec.select5, %__nv_isnanf.exit3 ] %126 = and i32 %quot.2, 7 %127 = xor i32 %126, %.lobit %128 = sub nsw i32 %127, %.lobit %129 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not8 = icmp eq i32 %129, 0 %130 = call float @llvm.nvvm.fabs.ftz.f(float %ans.0) #135 %131 = call float @llvm.fabs.f32(float %ans.0) %.0 = select i1 %.not8, float %131, float %130 %132 = fcmp ugt float %.0, 0x7FF0000000000000 %133 = select i1 %132, i32 0, i32 %128 store i32 %133, i32* %quo, align 4, !noalias !219 ret float %ans.0 } ; Function Attrs: noinline nounwind define dso_local float @__nv_powif(float %a, i32 %b) local_unnamed_addr #61 { %1 = call i32 @llvm.abs.i32(i32 %b, i1 noundef false) br label %2 2: ; preds = %__nv_fmul_rn.exit, %0 %.01 = phi float [ %a, %0 ], [ %.02, %__nv_fmul_rn.exit ] %e.0 = phi i32 [ %1, %0 ], [ %13, %__nv_fmul_rn.exit ] %r.0 = phi float [ 1.000000e+00, %0 ], [ %r.1, %__nv_fmul_rn.exit ] %3 = and i32 %e.0, 1 %.not = icmp eq i32 %3, 0 br i1 %.not, label %7, label %__nv_fmul_rn.exit1 __nv_fmul_rn.exit1: ; preds = %2 %4 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not2 = icmp eq i32 %4, 0 %5 = call float @llvm.nvvm.mul.rn.ftz.f(float %r.0, float %.01) #135 %6 = fmul float %.01, %r.0 %.0 = select i1 %.not2, float %6, float %5 br label %7 7: ; preds = %__nv_fmul_rn.exit1, %2 %r.1 = phi float [ %.0, %__nv_fmul_rn.exit1 ], [ %r.0, %2 ] %8 = icmp ult i32 %e.0, 2 br i1 %8, label %9, label %__nv_fmul_rn.exit 9: ; preds = %7 %10 = icmp slt i32 %b, 0 %11 = fdiv float 1.000000e+00, %r.1 %12 = select i1 %10, float %11, float %r.1 ret float %12 __nv_fmul_rn.exit: ; preds = %7 %13 = lshr i32 %e.0, 1 %14 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not1 = icmp eq i32 %14, 0 %15 = call float @llvm.nvvm.mul.rn.ftz.f(float %.01, float %.01) #135 %16 = fmul float %.01, %.01 %.02 = select i1 %.not1, float %16, float %15 br label %2 } ; Function Attrs: nofree noinline nosync nounwind readnone define dso_local double @__nv_powi(double %a, i32 %b) local_unnamed_addr #62 { %1 = call i32 @llvm.abs.i32(i32 %b, i1 noundef false) %2 = and i32 %1, 1 %.not1 = icmp eq i32 %2, 0 %3 = select i1 %.not1, double 1.000000e+00, double %a %4 = icmp ult i32 %1, 2 br i1 %4, label %._crit_edge, label %.lr.ph ._crit_edge: ; preds = %.lr.ph, %0 %spec.select.lcssa = phi double [ %3, %0 ], [ %spec.select, %.lr.ph ] %5 = icmp slt i32 %b, 0 %6 = fdiv double 1.000000e+00, %spec.select.lcssa %7 = select i1 %5, double %6, double %spec.select.lcssa ret double %7 .lr.ph: ; preds = %0, %.lr.ph %spec.select4 = phi double [ %spec.select, %.lr.ph ], [ %3, %0 ] %e.03 = phi i32 [ %8, %.lr.ph ], [ %1, %0 ] %.02 = phi double [ %9, %.lr.ph ], [ %a, %0 ] %8 = lshr i32 %e.03, 1 %9 = fmul double %.02, %.02 %10 = and i32 %e.03, 2 %.not = icmp eq i32 %10, 0 %11 = select i1 %.not, double 1.000000e+00, double %9 %spec.select = fmul double %spec.select4, %11 %12 = icmp ult i32 %e.03, 4 br i1 %12, label %._crit_edge, label %.lr.ph } ; Function Attrs: noinline nounwind define dso_local float @__nv_powf(float %a, float %b) local_unnamed_addr #63 { __nv_fabsf.exit: %0 = fmul float %b, 5.000000e-01 %1 = call float @llvm.trunc.f32(float %0) #136 %2 = fmul float %1, 2.000000e+00 %3 = fsub float %b, %2 %4 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not = icmp eq i32 %4, 0 %5 = call float @llvm.nvvm.fabs.ftz.f(float %3) #135 %6 = call float @llvm.fabs.f32(float %3) %.010 = select i1 %.not, float %6, float %5 %7 = fcmp oeq float %.010, 1.000000e+00 %8 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not1 = icmp eq i32 %8, 0 %9 = call float @llvm.nvvm.fabs.ftz.f(float %a) #135 %10 = call float @llvm.fabs.f32(float %a) %.011 = select i1 %.not1, float %10, float %9 %11 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not2 = icmp eq i32 %11, 0 %12 = fcmp olt float %.011, 0x3810000000000000 %13 = fmul float %.011, 0x4170000000000000 %14 = select i1 %.not2, i1 %12, i1 false %.114 = select i1 %14, float %13, float %.011 %expo.i.i.1 = select i1 %14, float -2.400000e+01, float 0.000000e+00 %15 = bitcast float %.114 to i32 %16 = add i32 %15, -1060439283 %17 = and i32 %16, -8388608 %18 = sub i32 %15, %17 %19 = bitcast i32 %18 to float %20 = sitofp i32 %17 to float %21 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not3 = icmp eq i32 %21, 0 %22 = call float @llvm.nvvm.fma.rn.ftz.f(float %20, float noundef 0x3E80000000000000, float noundef %expo.i.i.1) #135 %23 = call float @llvm.fma.f32(float %20, float noundef 0x3E80000000000000, float noundef %expo.i.i.1) %.021 = select i1 %.not3, float %23, float %22 %24 = fadd float %19, -1.000000e+00 %25 = fadd float %19, 1.000000e+00 %26 = call float asm "rcp.approx.ftz.f32 $0,$1;", "=f,f"(float %25) #137, !srcloc !225 %27 = fmul float %24, 2.000000e+00 %28 = fmul float %26, %27 %29 = fmul float %28, %28 %30 = fsub float %24, %28 %31 = fmul float %30, 2.000000e+00 %32 = fneg float %28 %33 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not4 = icmp eq i32 %33, 0 %34 = call float @llvm.nvvm.fma.rn.ftz.f(float %32, float %24, float %31) #135 %35 = call float @llvm.fma.f32(float %32, float %24, float %31) %.022 = select i1 %.not4, float %35, float %34 %36 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not5 = icmp eq i32 %36, 0 %37 = call float @llvm.nvvm.mul.rn.ftz.f(float %26, float %.022) #135 %38 = fmul float %26, %.022 %.023 = select i1 %.not5, float %38, float %37 %39 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not6 = icmp eq i32 %39, 0 %40 = call float @llvm.nvvm.fma.rn.ftz.f(float noundef 0x3F45865C80000000, float %29, float noundef 0x3F6A5CFB60000000) #135 %41 = call float @llvm.fma.f32(float %29, float noundef 0x3F45865C80000000, float noundef 0x3F6A5CFB60000000) %.024 = select i1 %.not6, float %41, float %40 %42 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not7 = icmp eq i32 %42, 0 %43 = call float @llvm.nvvm.fma.rn.ftz.f(float %.024, float %29, float noundef 0x3F92776E60000000) #135 %44 = call float @llvm.fma.f32(float %.024, float %29, float noundef 0x3F92776E60000000) %.025 = select i1 %.not7, float %44, float %43 %45 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not8 = icmp eq i32 %45, 0 %46 = call float @llvm.nvvm.fma.rn.ftz.f(float %.025, float %29, float noundef 0x3FBEC709E0000000) #135 %47 = call float @llvm.fma.f32(float %.025, float %29, float noundef 0x3FBEC709E0000000) %.027 = select i1 %.not8, float %47, float %46 %48 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not9 = icmp eq i32 %48, 0 %49 = call float @llvm.nvvm.mul.rn.ftz.f(float %.027, float %29) #135 %50 = fmul float %29, %.027 %.028 = select i1 %.not9, float %50, float %49 %51 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not10 = icmp eq i32 %51, 0 %52 = call float @llvm.nvvm.fma.rn.ftz.f(float %28, float noundef 0x3FF7154760000000, float %.021) #135 %53 = call float @llvm.fma.f32(float %28, float noundef 0x3FF7154760000000, float %.021) %.029 = select i1 %.not10, float %53, float %52 %54 = fsub float %.021, %.029 %55 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not11 = icmp eq i32 %55, 0 %56 = call float @llvm.nvvm.fma.rn.ftz.f(float %28, float noundef 0x3FF7154760000000, float %54) #135 %57 = call float @llvm.fma.f32(float %28, float noundef 0x3FF7154760000000, float %54) %.030 = select i1 %.not11, float %57, float %56 %58 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not12 = icmp eq i32 %58, 0 %59 = call float @llvm.nvvm.fma.rn.ftz.f(float %.023, float noundef 0x3FF7154760000000, float %.030) #135 %60 = call float @llvm.fma.f32(float %.023, float noundef 0x3FF7154760000000, float %.030) %.031 = select i1 %.not12, float %60, float %59 %61 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not13 = icmp eq i32 %61, 0 %62 = call float @llvm.nvvm.fma.rn.ftz.f(float %28, float noundef 0x3E54ABC680000000, float %.031) #135 %63 = call float @llvm.fma.f32(float %28, float noundef 0x3E54ABC680000000, float %.031) %.032 = select i1 %.not13, float %63, float %62 %64 = fmul float %.028, 3.000000e+00 %65 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not14 = icmp eq i32 %65, 0 %66 = call float @llvm.nvvm.fma.rn.ftz.f(float %64, float %.023, float %.032) #135 %67 = call float @llvm.fma.f32(float %64, float %.023, float %.032) %.020 = select i1 %.not14, float %67, float %66 %68 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not15 = icmp eq i32 %68, 0 %69 = call float @llvm.nvvm.fma.rn.ftz.f(float %.028, float %28, float %.020) #135 %70 = call float @llvm.fma.f32(float %.028, float %28, float %.020) %.018 = select i1 %.not15, float %70, float %69 %71 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not16 = icmp eq i32 %71, 0 %72 = call float @llvm.nvvm.add.rn.ftz.f(float %.029, float %.018) #135 %73 = fadd float %.029, %.018 %.015 = select i1 %.not16, float %73, float %72 %74 = fneg float %.029 %75 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not17 = icmp eq i32 %75, 0 %76 = call float @llvm.nvvm.add.rn.ftz.f(float %.015, float %74) #135 %77 = fsub float %.015, %.029 %.016 = select i1 %.not17, float %77, float %76 %78 = fneg float %.016 %79 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not18 = icmp eq i32 %79, 0 %80 = call float @llvm.nvvm.add.rn.ftz.f(float %.018, float %78) #135 %81 = fsub float %.018, %.016 %.017 = select i1 %.not18, float %81, float %80 %82 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not19 = icmp eq i32 %82, 0 %83 = call float @llvm.nvvm.mul.rn.ftz.f(float %.015, float %b) #135 %84 = fmul float %.015, %b %.034 = select i1 %.not19, float %84, float %83 %85 = fneg float %.034 %86 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not20 = icmp eq i32 %86, 0 %87 = call float @llvm.nvvm.fma.rn.ftz.f(float %.015, float %b, float %85) #135 %88 = call float @llvm.fma.f32(float %.015, float %b, float %85) %.035 = select i1 %.not20, float %88, float %87 %89 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not21 = icmp eq i32 %89, 0 %90 = call float @llvm.nvvm.fma.rn.ftz.f(float %.017, float %b, float %.035) #135 %91 = call float @llvm.fma.f32(float %.017, float %b, float %.035) %.036 = select i1 %.not21, float %91, float %90 %92 = call float @llvm.round.f32(float %.034) %93 = fsub float %.034, %92 %94 = fadd float %93, %.036 %95 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not22 = icmp eq i32 %95, 0 %96 = call float @llvm.nvvm.fma.rn.ftz.f(float noundef 0x3F23F971C0000000, float %94, float noundef 0x3F55F0BDA0000000) #135 %97 = call float @llvm.fma.f32(float %94, float noundef 0x3F23F971C0000000, float noundef 0x3F55F0BDA0000000) %.026 = select i1 %.not22, float %97, float %96 %98 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not23 = icmp eq i32 %98, 0 %99 = call float @llvm.nvvm.fma.rn.ftz.f(float %.026, float %94, float noundef 0x3F83B30AC0000000) #135 %100 = call float @llvm.fma.f32(float %.026, float %94, float noundef 0x3F83B30AC0000000) %.019 = select i1 %.not23, float %100, float %99 %101 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not24 = icmp eq i32 %101, 0 %102 = call float @llvm.nvvm.fma.rn.ftz.f(float %.019, float %94, float noundef 0x3FAC6AF760000000) #135 %103 = call float @llvm.fma.f32(float %.019, float %94, float noundef 0x3FAC6AF760000000) %.012 = select i1 %.not24, float %103, float %102 %104 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not25 = icmp eq i32 %104, 0 %105 = call float @llvm.nvvm.fma.rn.ftz.f(float %.012, float %94, float noundef 0x3FCEBFBD80000000) #135 %106 = call float @llvm.fma.f32(float %.012, float %94, float noundef 0x3FCEBFBD80000000) %.09 = select i1 %.not25, float %106, float %105 %107 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not26 = icmp eq i32 %107, 0 %108 = call float @llvm.nvvm.fma.rn.ftz.f(float %.09, float %94, float noundef 0x3FE62E4300000000) #135 %109 = call float @llvm.fma.f32(float %.09, float %94, float noundef 0x3FE62E4300000000) %.02 = select i1 %.not26, float %109, float %108 %110 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not27 = icmp eq i32 %110, 0 %111 = call float @llvm.nvvm.fma.rn.ftz.f(float %.02, float %94, float noundef 1.000000e+00) #135 %112 = call float @llvm.fma.f32(float %.02, float %94, float noundef 1.000000e+00) %.033 = select i1 %.not27, float %112, float %111 %113 = fptosi float %92 to i32 %114 = fcmp ogt float %92, 0.000000e+00 %115 = select i1 %114, i32 0, i32 -2097152000 %116 = add nsw i32 %115, 2130706432 %117 = bitcast i32 %116 to float %118 = fmul float %.033, %117 %119 = shl i32 %113, 23 %120 = sub i32 %119, %115 %121 = bitcast i32 %120 to float %122 = fmul float %118, %121 %123 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not28 = icmp eq i32 %123, 0 %124 = call float @llvm.nvvm.fabs.ftz.f(float %.034) #135 %125 = call float @llvm.fabs.f32(float %.034) %.0 = select i1 %.not28, float %125, float %124 %126 = fcmp ogt float %.0, 1.520000e+02 %127 = fcmp olt float %.034, 0.000000e+00 %128 = select i1 %127, float 0.000000e+00, float 0x7FF0000000000000 %t.i.0 = select i1 %126, float %128, float %122 %129 = fcmp oeq float %a, 1.000000e+00 %130 = fcmp oeq float %b, 0.000000e+00 %or.cond = select i1 %129, i1 true, i1 %130 br i1 %or.cond, label %__internal_powf_special_cases.exit, label %__nv_isnanf.exit.i __nv_isnanf.exit.i: ; preds = %__nv_fabsf.exit %131 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not29 = icmp eq i32 %131, 0 %.03 = select i1 %.not29, float %10, float %9 %132 = fcmp ugt float %.03, 0x7FF0000000000000 br i1 %132, label %__nv_fadd_rn.exit.i, label %__nv_isnanf.exit2.i __nv_isnanf.exit2.i: ; preds = %__nv_isnanf.exit.i %133 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not30 = icmp eq i32 %133, 0 %134 = call float @llvm.nvvm.fabs.ftz.f(float %b) #135 %135 = call float @llvm.fabs.f32(float %b) %.04 = select i1 %.not30, float %135, float %134 %136 = fcmp ugt float %.04, 0x7FF0000000000000 br i1 %136, label %__nv_fadd_rn.exit.i, label %140 __nv_fadd_rn.exit.i: ; preds = %__nv_isnanf.exit2.i, %__nv_isnanf.exit.i %137 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not34 = icmp eq i32 %137, 0 %138 = call float @llvm.nvvm.add.rn.ftz.f(float %a, float %b) #135 %139 = fadd float %a, %b %.05 = select i1 %.not34, float %139, float %138 br label %__internal_powf_special_cases.exit 140: ; preds = %__nv_isnanf.exit2.i %141 = fcmp oeq float %a, 0.000000e+00 br i1 %141, label %144, label %__nv_isinff.exit.i __nv_isinff.exit.i: ; preds = %140 %142 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not31 = icmp eq i32 %142, 0 %.06 = select i1 %.not31, float %10, float %9 %143 = fcmp oeq float %.06, 0x7FF0000000000000 br i1 %143, label %144, label %151 144: ; preds = %__nv_isinff.exit.i, %140 %145 = fadd float %a, %a %146 = bitcast float %145 to i32 %147 = fcmp olt float %b, 0.000000e+00 %148 = xor i32 %146, 2139095040 %ti.i.0 = select i1 %147, i32 %148, i32 %146 %149 = and i32 %ti.i.0, 2147483647 %ti.i.1 = select i1 %7, i32 %ti.i.0, i32 %149 %150 = bitcast i32 %ti.i.1 to float br label %__internal_powf_special_cases.exit 151: ; preds = %__nv_isinff.exit.i %152 = fcmp oeq float %a, -1.000000e+00 br i1 %152, label %__nv_isinff.exit7.i, label %155 __nv_isinff.exit7.i: ; preds = %151 %153 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not33 = icmp eq i32 %153, 0 %.08 = select i1 %.not33, float %135, float %134 %154 = fcmp oeq float %.08, 0x7FF0000000000000 br i1 %154, label %__internal_powf_special_cases.exit, label %155 155: ; preds = %__nv_isinff.exit7.i, %151 %156 = fcmp olt float %a, 0.000000e+00 br i1 %156, label %__nv_floorf.exit.i, label %__internal_powf_special_cases.exit __nv_floorf.exit.i: ; preds = %155 %157 = fneg float %t.i.0 %spec.select = select i1 %7, float %157, float %t.i.0 %158 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not32 = icmp eq i32 %158, 0 %159 = call float @llvm.nvvm.floor.ftz.f(float %b) #135 %160 = call float @llvm.floor.f32(float %b) %.07 = select i1 %.not32, float %160, float %159 %161 = fcmp une float %.07, %b %.1 = select i1 %161, float 0x7FFFFFFFE0000000, float %spec.select br label %__internal_powf_special_cases.exit __internal_powf_special_cases.exit: ; preds = %__nv_fadd_rn.exit.i, %__nv_isinff.exit7.i, %__nv_floorf.exit.i, %155, %144, %__nv_fabsf.exit %.6 = phi float [ 1.000000e+00, %__nv_fabsf.exit ], [ %.05, %__nv_fadd_rn.exit.i ], [ %150, %144 ], [ 1.000000e+00, %__nv_isinff.exit7.i ], [ %.1, %__nv_floorf.exit.i ], [ %t.i.0, %155 ] ret float %.6 } ; Function Attrs: noinline nounwind define dso_local float @__nv_tgammaf(float %a) local_unnamed_addr #64 { __nv_fabsf.exit: %0 = fcmp olt float %a, 0.000000e+00 %1 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not = icmp eq i32 %1, 0 %2 = call float @llvm.nvvm.fabs.ftz.f(float %a) #135 %3 = call float @llvm.fabs.f32(float %a) %.0 = select i1 %.not, float %3, float %2 %4 = fcmp ult float %.0, 1.500000e+00 br i1 %4, label %__internal_fmad.exit.i1, label %__nv_fabsf.exit.i __nv_fabsf.exit.i: ; preds = %__nv_fabsf.exit %5 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not12 = icmp eq i32 %5, 0 %.03 = select i1 %.not12, float %3, float %2 %6 = fcmp ogt float %.03, 0x40448CCCC0000000 %x.i.0 = select i1 %6, float 0x40448CCCC0000000, float %a %7 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not13 = icmp eq i32 %7, 0 %8 = call float @llvm.nvvm.fabs.ftz.f(float %x.i.0) #135 %9 = call float @llvm.fabs.f32(float %x.i.0) %.04 = select i1 %.not13, float %9, float %8 %10 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not14 = icmp eq i32 %10, 0 %11 = fcmp olt float %.04, 0x3810000000000000 %12 = fmul float %.04, 0x4170000000000000 %13 = select i1 %.not14, i1 %11, i1 false %.1 = select i1 %13, float %12, float %.04 %expo.i.i.1 = select i1 %13, float -2.400000e+01, float 0.000000e+00 %14 = bitcast float %.1 to i32 %15 = add i32 %14, -1060439283 %16 = and i32 %15, -8388608 %17 = sub i32 %14, %16 %18 = bitcast i32 %17 to float %19 = sitofp i32 %16 to float %20 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not15 = icmp eq i32 %20, 0 %21 = call float @llvm.nvvm.fma.rn.ftz.f(float %19, float noundef 0x3E80000000000000, float noundef %expo.i.i.1) #135 %22 = call float @llvm.fma.f32(float %19, float noundef 0x3E80000000000000, float noundef %expo.i.i.1) %.013 = select i1 %.not15, float %22, float %21 %23 = fadd float %18, -1.000000e+00 %24 = fadd float %18, 1.000000e+00 %25 = call float asm "rcp.approx.ftz.f32 $0,$1;", "=f,f"(float %24) #137, !srcloc !225 %26 = fmul float %23, 2.000000e+00 %27 = fmul float %25, %26 %28 = fmul float %27, %27 %29 = fsub float %23, %27 %30 = fmul float %29, 2.000000e+00 %31 = fneg float %27 %32 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not16 = icmp eq i32 %32, 0 %33 = call float @llvm.nvvm.fma.rn.ftz.f(float %31, float %23, float %30) #135 %34 = call float @llvm.fma.f32(float %31, float %23, float %30) %.014 = select i1 %.not16, float %34, float %33 %35 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not17 = icmp eq i32 %35, 0 %36 = call float @llvm.nvvm.mul.rn.ftz.f(float %25, float %.014) #135 %37 = fmul float %25, %.014 %.015 = select i1 %.not17, float %37, float %36 %38 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not18 = icmp eq i32 %38, 0 %39 = call float @llvm.nvvm.fma.rn.ftz.f(float noundef 0x3F45865C80000000, float %28, float noundef 0x3F6A5CFB60000000) #135 %40 = call float @llvm.fma.f32(float %28, float noundef 0x3F45865C80000000, float noundef 0x3F6A5CFB60000000) %.016 = select i1 %.not18, float %40, float %39 %41 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not19 = icmp eq i32 %41, 0 %42 = call float @llvm.nvvm.fma.rn.ftz.f(float %.016, float %28, float noundef 0x3F92776E60000000) #135 %43 = call float @llvm.fma.f32(float %.016, float %28, float noundef 0x3F92776E60000000) %.017 = select i1 %.not19, float %43, float %42 %44 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not20 = icmp eq i32 %44, 0 %45 = call float @llvm.nvvm.fma.rn.ftz.f(float %.017, float %28, float noundef 0x3FBEC709E0000000) #135 %46 = call float @llvm.fma.f32(float %.017, float %28, float noundef 0x3FBEC709E0000000) %.018 = select i1 %.not20, float %46, float %45 %47 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not21 = icmp eq i32 %47, 0 %48 = call float @llvm.nvvm.mul.rn.ftz.f(float %.018, float %28) #135 %49 = fmul float %28, %.018 %.020 = select i1 %.not21, float %49, float %48 %50 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not22 = icmp eq i32 %50, 0 %51 = call float @llvm.nvvm.fma.rn.ftz.f(float %27, float noundef 0x3FF7154760000000, float %.013) #135 %52 = call float @llvm.fma.f32(float %27, float noundef 0x3FF7154760000000, float %.013) %.021 = select i1 %.not22, float %52, float %51 %53 = fsub float %.013, %.021 %54 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not23 = icmp eq i32 %54, 0 %55 = call float @llvm.nvvm.fma.rn.ftz.f(float %27, float noundef 0x3FF7154760000000, float %53) #135 %56 = call float @llvm.fma.f32(float %27, float noundef 0x3FF7154760000000, float %53) %.022 = select i1 %.not23, float %56, float %55 %57 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not24 = icmp eq i32 %57, 0 %58 = call float @llvm.nvvm.fma.rn.ftz.f(float %.015, float noundef 0x3FF7154760000000, float %.022) #135 %59 = call float @llvm.fma.f32(float %.015, float noundef 0x3FF7154760000000, float %.022) %.023 = select i1 %.not24, float %59, float %58 %60 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not25 = icmp eq i32 %60, 0 %61 = call float @llvm.nvvm.fma.rn.ftz.f(float %27, float noundef 0x3E54ABC680000000, float %.023) #135 %62 = call float @llvm.fma.f32(float %27, float noundef 0x3E54ABC680000000, float %.023) %.024 = select i1 %.not25, float %62, float %61 %63 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not26 = icmp eq i32 %63, 0 %64 = call float @llvm.nvvm.fma.rn.ftz.f(float %.020, float %27, float %.024) #135 %65 = call float @llvm.fma.f32(float %.020, float %27, float %.024) %.010 = select i1 %.not26, float %65, float %64 %66 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not27 = icmp eq i32 %66, 0 %67 = call float @llvm.nvvm.add.rn.ftz.f(float %.021, float %.010) #135 %68 = fadd float %.021, %.010 %.07 = select i1 %.not27, float %68, float %67 %69 = fneg float %.021 %70 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not28 = icmp eq i32 %70, 0 %71 = call float @llvm.nvvm.add.rn.ftz.f(float %.07, float %69) #135 %72 = fsub float %.07, %.021 %.08 = select i1 %.not28, float %72, float %71 %73 = fneg float %.08 %74 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not29 = icmp eq i32 %74, 0 %75 = call float @llvm.nvvm.add.rn.ftz.f(float %.010, float %73) #135 %76 = fsub float %.010, %.08 %.09 = select i1 %.not29, float %76, float %75 %77 = fadd float %.04, -5.000000e-01 %78 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not30 = icmp eq i32 %78, 0 %79 = call float @llvm.nvvm.mul.rn.ftz.f(float %.07, float %77) #135 %80 = fmul float %77, %.07 %.025 = select i1 %.not30, float %80, float %79 %81 = fneg float %.025 %82 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not31 = icmp eq i32 %82, 0 %83 = call float @llvm.nvvm.fma.rn.ftz.f(float %.07, float %77, float %81) #135 %84 = call float @llvm.fma.f32(float %.07, float %77, float %81) %.027 = select i1 %.not31, float %84, float %83 %85 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not32 = icmp eq i32 %85, 0 %86 = call float @llvm.nvvm.fma.rn.ftz.f(float %.09, float %77, float %.027) #135 %87 = call float @llvm.fma.f32(float %.09, float %77, float %.027) %.028 = select i1 %.not32, float %87, float %86 %88 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not33 = icmp eq i32 %88, 0 %89 = call float @llvm.nvvm.mul.rn.ftz.f(float noundef 0x3FF7154760000000, float %.04) #135 %90 = fmul float %.04, 0x3FF7154760000000 %.029 = select i1 %.not33, float %90, float %89 %91 = fneg float %.029 %92 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not34 = icmp eq i32 %92, 0 %93 = call float @llvm.nvvm.fma.rn.ftz.f(float noundef 0x3FF7154760000000, float %.04, float %91) #135 %94 = call float @llvm.fma.f32(float %.04, float noundef 0x3FF7154760000000, float %91) %.030 = select i1 %.not34, float %94, float %93 %95 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not35 = icmp eq i32 %95, 0 %96 = call float @llvm.nvvm.fma.rn.ftz.f(float noundef 0x3E54AE0C00000000, float %.04, float %.030) #135 %97 = call float @llvm.fma.f32(float %.04, float noundef 0x3E54AE0C00000000, float %.030) %.031 = select i1 %.not35, float %97, float %96 %98 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not36 = icmp eq i32 %98, 0 %99 = call float @llvm.nvvm.add.rn.ftz.f(float %.025, float %91) #135 %100 = fsub float %.025, %.029 %.032 = select i1 %.not36, float %100, float %99 %101 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not37 = icmp eq i32 %101, 0 %102 = call float @llvm.nvvm.add.rn.ftz.f(float %.032, float %.029) #135 %103 = fadd float %.029, %.032 %.034 = select i1 %.not37, float %103, float %102 %104 = fneg float %.034 %105 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not38 = icmp eq i32 %105, 0 %106 = call float @llvm.nvvm.add.rn.ftz.f(float %.032, float %104) #135 %107 = fsub float %.032, %.034 %.035 = select i1 %.not38, float %107, float %106 %108 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not39 = icmp eq i32 %108, 0 %109 = call float @llvm.nvvm.add.rn.ftz.f(float %.025, float %104) #135 %110 = fsub float %.025, %.034 %.036 = select i1 %.not39, float %110, float %109 %111 = fneg float %.035 %112 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not40 = icmp eq i32 %112, 0 %113 = call float @llvm.nvvm.add.rn.ftz.f(float %91, float %111) #135 %114 = fsub float %111, %.029 %.037 = select i1 %.not40, float %114, float %113 %115 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not41 = icmp eq i32 %115, 0 %116 = call float @llvm.nvvm.add.rn.ftz.f(float %.036, float %.037) #135 %117 = fadd float %.036, %.037 %.038 = select i1 %.not41, float %117, float %116 %118 = fsub float %.028, %.031 %119 = fadd float %118, %.038 br i1 %0, label %120, label %__nv_fmaf.exit2.i.i 120: ; preds = %__nv_fabsf.exit.i %121 = fneg float %.032 %122 = fneg float %119 %123 = fcmp ogt float %.04, 3.300000e+01 %124 = fsub float 4.800000e+01, %.032 %arg.i.0.0 = select i1 %123, float %124, float %121 br label %__nv_fmaf.exit2.i.i __nv_fmaf.exit2.i.i: ; preds = %120, %__nv_fabsf.exit.i %arg.i.0.1 = phi float [ %arg.i.0.0, %120 ], [ %.032, %__nv_fabsf.exit.i ] %arg.i.1.0 = phi float [ %122, %120 ], [ %119, %__nv_fabsf.exit.i ] %125 = call float @llvm.round.f32(float %arg.i.0.1) %126 = fsub float %arg.i.0.1, %125 %127 = fadd float %arg.i.1.0, %126 %128 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not42 = icmp eq i32 %128, 0 %129 = call float @llvm.nvvm.fma.rn.ftz.f(float noundef 0x3F23F971C0000000, float %127, float noundef 0x3F55F0BDA0000000) #135 %130 = call float @llvm.fma.f32(float %127, float noundef 0x3F23F971C0000000, float noundef 0x3F55F0BDA0000000) %.041 = select i1 %.not42, float %130, float %129 %131 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not43 = icmp eq i32 %131, 0 %132 = call float @llvm.nvvm.fma.rn.ftz.f(float %.041, float %127, float noundef 0x3F83B30AC0000000) #135 %133 = call float @llvm.fma.f32(float %.041, float %127, float noundef 0x3F83B30AC0000000) %.042 = select i1 %.not43, float %133, float %132 %134 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not44 = icmp eq i32 %134, 0 %135 = call float @llvm.nvvm.fma.rn.ftz.f(float %.042, float %127, float noundef 0x3FAC6AF760000000) #135 %136 = call float @llvm.fma.f32(float %.042, float %127, float noundef 0x3FAC6AF760000000) %.043 = select i1 %.not44, float %136, float %135 %137 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not45 = icmp eq i32 %137, 0 %138 = call float @llvm.nvvm.fma.rn.ftz.f(float %.043, float %127, float noundef 0x3FCEBFBD80000000) #135 %139 = call float @llvm.fma.f32(float %.043, float %127, float noundef 0x3FCEBFBD80000000) %.044 = select i1 %.not45, float %139, float %138 %140 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not46 = icmp eq i32 %140, 0 %141 = call float @llvm.nvvm.fma.rn.ftz.f(float %.044, float %127, float noundef 0x3FE62E4300000000) #135 %142 = call float @llvm.fma.f32(float %.044, float %127, float noundef 0x3FE62E4300000000) %.046 = select i1 %.not46, float %142, float %141 %143 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not47 = icmp eq i32 %143, 0 %144 = call float @llvm.nvvm.fma.rn.ftz.f(float %.046, float %127, float noundef 1.000000e+00) #135 %145 = call float @llvm.fma.f32(float %.046, float %127, float noundef 1.000000e+00) %.040 = select i1 %.not47, float %145, float %144 %146 = fptosi float %125 to i32 %147 = fcmp ogt float %125, 0.000000e+00 %148 = select i1 %147, i32 0, i32 -2097152000 %149 = add nsw i32 %148, 2130706432 %150 = bitcast i32 %149 to float %151 = fmul float %.040, %150 %152 = shl i32 %146, 23 %153 = sub i32 %152, %148 %154 = bitcast i32 %153 to float %155 = fmul float %151, %154 %156 = fmul float %155, 0x40040D9320000000 %157 = call float asm "rcp.approx.ftz.f32 $0,$1;", "=f,f"(float %.04) #137, !srcloc !225 %158 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not48 = icmp eq i32 %158, 0 %159 = call float @llvm.nvvm.fma.rn.ftz.f(float noundef 0x3F11EF2E20000000, float %157, float noundef 0xBF0A87DB00000000) #135 %160 = call float @llvm.fma.f32(float %157, float noundef 0x3F11EF2E20000000, float noundef 0xBF0A87DB00000000) %.047 = select i1 %.not48, float %160, float %159 %161 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not49 = icmp eq i32 %161, 0 %162 = call float @llvm.nvvm.fma.rn.ftz.f(float %.047, float %157, float noundef 0xBF3BB4D7C0000000) #135 %163 = call float @llvm.fma.f32(float %.047, float %157, float noundef 0xBF3BB4D7C0000000) %.048 = select i1 %.not49, float %163, float %162 %164 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not50 = icmp eq i32 %164, 0 %165 = call float @llvm.nvvm.fma.rn.ftz.f(float %.048, float %157, float noundef 0x3F504157C0000000) #135 %166 = call float @llvm.fma.f32(float %.048, float %157, float noundef 0x3F504157C0000000) %.049 = select i1 %.not50, float %166, float %165 %167 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not51 = icmp eq i32 %167, 0 %168 = call float @llvm.nvvm.fma.rn.ftz.f(float %.049, float %157, float noundef 0xBF32415FA0000000) #135 %169 = call float @llvm.fma.f32(float %.049, float %157, float noundef 0xBF32415FA0000000) %.050 = select i1 %.not51, float %169, float %168 %170 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not52 = icmp eq i32 %170, 0 %171 = call float @llvm.nvvm.fma.rn.ftz.f(float %.050, float %157, float noundef 0xBF65E9AC80000000) #135 %172 = call float @llvm.fma.f32(float %.050, float %157, float noundef 0xBF65E9AC80000000) %.051 = select i1 %.not52, float %172, float %171 %173 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not53 = icmp eq i32 %173, 0 %174 = call float @llvm.nvvm.fma.rn.ftz.f(float %.051, float %157, float noundef 0x3F6C70E640000000) #135 %175 = call float @llvm.fma.f32(float %.051, float %157, float noundef 0x3F6C70E640000000) %.053 = select i1 %.not53, float %175, float %174 %176 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not54 = icmp eq i32 %176, 0 %177 = call float @llvm.nvvm.fma.rn.ftz.f(float %.053, float %157, float noundef 0x3FB5555580000000) #135 %178 = call float @llvm.fma.f32(float %.053, float %157, float noundef 0x3FB5555580000000) %.054 = select i1 %.not54, float %178, float %177 br i1 %0, label %__internal_fmad.exit35.i, label %__internal_fmad.exit45.i __internal_fmad.exit35.i: ; preds = %__nv_fmaf.exit2.i.i %179 = fmul float %157, %.054 %180 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not56 = icmp eq i32 %180, 0 %181 = call float @llvm.nvvm.fma.rn.ftz.f(float %179, float %x.i.0, float %x.i.0) #135 %182 = call float @llvm.fma.f32(float %179, float %x.i.0, float %x.i.0) %.055 = select i1 %.not56, float %182, float %181 %183 = fadd float %.04, %.04 %184 = call float @llvm.round.f32(float %183) %185 = fptosi float %184 to i32 %186 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not57 = icmp eq i32 %186, 0 %187 = call float @llvm.nvvm.fma.rn.ftz.f(float %184, float noundef -5.000000e-01, float %.04) #135 %188 = call float @llvm.fma.f32(float %184, float noundef -5.000000e-01, float %.04) %.075 = select i1 %.not57, float %188, float %187 %189 = and i32 %185, 1 %190 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not58 = icmp eq i32 %190, 0 %191 = call float @llvm.nvvm.mul.rn.ftz.f(float %.075, float %.075) #135 %192 = fmul float %.075, %.075 %.056 = select i1 %.not58, float %192, float %191 %193 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([12 x i8], [12 x i8]* @.str.1, i32 0, i32 0)) #135 %194 = icmp sgt i32 %193, 820 br i1 %194, label %__internal_fmad.exit.i.i.i, label %__internal_fmad.exit9.i.i.i __internal_fmad.exit.i.i.i: ; preds = %__internal_fmad.exit35.i %195 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not72 = icmp eq i32 %195, 0 %196 = call float @llvm.nvvm.fma.rn.ftz.f(float noundef 0xBFE2F59920000000, float %.056, float noundef 0x400466B200000000) #135 %197 = call float @llvm.fma.f32(float %.056, float noundef 0xBFE2F59920000000, float noundef 0x400466B200000000) %.057 = select i1 %.not72, float %197, float %196 %198 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not73 = icmp eq i32 %198, 0 %199 = call float @llvm.nvvm.fma.rn.ftz.f(float noundef 0x3FCD09C240000000, float %.056, float noundef 0xBFF55A5C00000000) #135 %200 = call float @llvm.fma.f32(float %.056, float noundef 0x3FCD09C240000000, float noundef 0xBFF55A5C00000000) %.058 = select i1 %.not73, float %200, float %199 %201 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not74 = icmp eq i32 %201, 0 %202 = call float @llvm.nvvm.fma.rn.ftz.f(float %.057, float %.056, float noundef 0xC014ABBEC0000000) #135 %203 = call float @llvm.fma.f32(float %.057, float %.056, float noundef 0xC014ABBEC0000000) %.060 = select i1 %.not74, float %203, float %202 %204 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not75 = icmp eq i32 %204, 0 %205 = call float @llvm.nvvm.fma.rn.ftz.f(float %.058, float %.056, float noundef 0x40103C19E0000000) #135 %206 = call float @llvm.fma.f32(float %.058, float %.056, float noundef 0x40103C19E0000000) %.061 = select i1 %.not75, float %206, float %205 %207 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not76 = icmp eq i32 %207, 0 %208 = call float @llvm.nvvm.fma.rn.ftz.f(float %.056, float %.075, float noundef 0.000000e+00) #135 %209 = call float @llvm.fma.f32(float %.056, float %.075, float noundef 0.000000e+00) %.062 = select i1 %.not76, float %209, float %208 %210 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not77 = icmp eq i32 %210, 0 %211 = call float @llvm.nvvm.fma.rn.ftz.f(float %.061, float %.056, float noundef 0xC013BD3CC0000000) #135 %212 = call float @llvm.fma.f32(float %.061, float %.056, float noundef 0xC013BD3CC0000000) %.063 = select i1 %.not77, float %212, float %211 %213 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not78 = icmp eq i32 %213, 0 %214 = call float @llvm.nvvm.fma.rn.ftz.f(float %.060, float %.062, float noundef 0.000000e+00) #135 %215 = call float @llvm.fma.f32(float %.060, float %.062, float noundef 0.000000e+00) %.064 = select i1 %.not78, float %215, float %214 %216 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not79 = icmp eq i32 %216, 0 %217 = call float @llvm.nvvm.fma.rn.ftz.f(float %.063, float %.056, float noundef 1.000000e+00) #135 %218 = call float @llvm.fma.f32(float %.063, float %.056, float noundef 1.000000e+00) %.065 = select i1 %.not79, float %218, float %217 %219 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not80 = icmp eq i32 %219, 0 %220 = call float @llvm.nvvm.fma.rn.ftz.f(float noundef 0x400921FB60000000, float %.075, float %.064) #135 %221 = call float @llvm.fma.f32(float %.075, float noundef 0x400921FB60000000, float %.064) %.067 = select i1 %.not80, float %221, float %220 br label %__internal_tgammaf_sinpi.exit.i __internal_fmad.exit9.i.i.i: ; preds = %__internal_fmad.exit35.i %.not59 = icmp eq i32 %189, 0 %..075 = select i1 %.not59, float %.075, float 1.000000e+00 %222 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not60 = icmp eq i32 %222, 0 %223 = call float @llvm.nvvm.fma.rn.ftz.f(float %.056, float %..075, float noundef 0.000000e+00) #135 %224 = call float @llvm.fma.f32(float %.056, float %..075, float noundef 0.000000e+00) %.068 = select i1 %.not60, float %224, float %223 br i1 %.not59, label %__internal_fmad.exit11.i.i.i, label %__internal_fmad.exit10.i.i.i __internal_fmad.exit10.i.i.i: ; preds = %__internal_fmad.exit9.i.i.i %225 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not71 = icmp eq i32 %225, 0 %226 = call float @llvm.nvvm.fma.rn.ftz.f(float noundef 0x3FCD09C240000000, float %.056, float noundef 0xBFF55A5C00000000) #135 %227 = call float @llvm.fma.f32(float %.056, float noundef 0x3FCD09C240000000, float noundef 0xBFF55A5C00000000) %.069 = select i1 %.not71, float %227, float %226 br label %__internal_fmad.exit11.i.i.i __internal_fmad.exit11.i.i.i: ; preds = %__internal_fmad.exit9.i.i.i, %__internal_fmad.exit10.i.i.i %228 = phi float [ 0.000000e+00, %__internal_fmad.exit9.i.i.i ], [ 1.000000e+00, %__internal_fmad.exit10.i.i.i ] %229 = phi float [ 0xC014ABBEC0000000, %__internal_fmad.exit9.i.i.i ], [ 0xC013BD3CC0000000, %__internal_fmad.exit10.i.i.i ] %230 = phi float [ 0x400466B200000000, %__internal_fmad.exit9.i.i.i ], [ 0x40103C19E0000000, %__internal_fmad.exit10.i.i.i ] %231 = phi float [ 0xBFE2F59920000000, %__internal_fmad.exit9.i.i.i ], [ %.069, %__internal_fmad.exit10.i.i.i ] %232 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not61 = icmp eq i32 %232, 0 %233 = call float @llvm.nvvm.fma.rn.ftz.f(float %231, float %.056, float noundef %230) #135 %234 = call float @llvm.fma.f32(float %231, float %.056, float noundef %230) %.070 = select i1 %.not61, float %234, float %233 %235 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not62 = icmp eq i32 %235, 0 %236 = call float @llvm.nvvm.fma.rn.ftz.f(float %.070, float %.056, float noundef %229) #135 %237 = call float @llvm.fma.f32(float %.070, float %.056, float noundef %229) %.071 = select i1 %.not62, float %237, float %236 %238 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not63 = icmp eq i32 %238, 0 %239 = call float @llvm.nvvm.fma.rn.ftz.f(float %.071, float %.068, float noundef %228) #135 %240 = call float @llvm.fma.f32(float %.071, float %.068, float noundef %228) %.072 = select i1 %.not63, float %240, float %239 %241 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not64 = icmp eq i32 %241, 0 %242 = call float @llvm.nvvm.fma.rn.ftz.f(float noundef 0x400921FB60000000, float %.075, float %.072) #135 %243 = call float @llvm.fma.f32(float %.075, float noundef 0x400921FB60000000, float %.072) %.074 = select i1 %.not64, float %243, float %242 br label %__internal_tgammaf_sinpi.exit.i __internal_tgammaf_sinpi.exit.i: ; preds = %__internal_fmad.exit11.i.i.i, %__internal_fmad.exit.i.i.i %rc.i.i.i.0 = phi float [ %.065, %__internal_fmad.exit.i.i.i ], [ %.072, %__internal_fmad.exit11.i.i.i ] %rs.i.i.i.0 = phi float [ %.067, %__internal_fmad.exit.i.i.i ], [ %.074, %__internal_fmad.exit11.i.i.i ] %.not65 = icmp eq i32 %189, 0 %rc.i.i.i.0.rs.i.i.i.0 = select i1 %.not65, float %rs.i.i.i.0, float %rc.i.i.i.0 %244 = and i32 %185, 2 %.not66 = icmp eq i32 %244, 0 %245 = fsub float 0.000000e+00, %rc.i.i.i.0.rs.i.i.i.0 %246 = select i1 %.not66, float %rc.i.i.i.0.rs.i.i.i.0, float %245 %247 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not67 = icmp eq i32 %247, 0 %248 = call float @llvm.nvvm.mul.rn.ftz.f(float %.055, float %246) #135 %249 = fmul float %.055, %246 %.077 = select i1 %.not67, float %249, float %248 %250 = fneg float %.077 %251 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not68 = icmp eq i32 %251, 0 %252 = call float @llvm.nvvm.fma.rn.ftz.f(float %.055, float %246, float %250) #135 %253 = call float @llvm.fma.f32(float %.055, float %246, float %250) %.076 = select i1 %.not68, float %253, float %252 %254 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not69 = icmp eq i32 %254, 0 br i1 %.not69, label %257, label %255 255: ; preds = %__internal_tgammaf_sinpi.exit.i %256 = call float @llvm.nvvm.div.approx.ftz.f(float noundef 1.000000e+00, float %.077) #135 br label %__nv_fast_fdividef.exit.i 257: ; preds = %__internal_tgammaf_sinpi.exit.i %258 = call float @llvm.nvvm.div.approx.f(float noundef 1.000000e+00, float %.077) #135 br label %__nv_fast_fdividef.exit.i __nv_fast_fdividef.exit.i: ; preds = %257, %255 %.073 = phi float [ %256, %255 ], [ %258, %257 ] %259 = fneg float %.073 %260 = fmul float %.073, %259 %261 = fmul float %.076, %260 %262 = fmul float %156, %261 %263 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not70 = icmp eq i32 %263, 0 %264 = call float @llvm.nvvm.fma.rn.ftz.f(float %156, float %.073, float %262) #135 %265 = call float @llvm.fma.f32(float %156, float %.073, float %262) %.066 = select i1 %.not70, float %265, float %264 %266 = fmul float %.066, 5.000000e-01 %267 = fcmp ogt float %.04, 3.300000e+01 %268 = fmul float %266, 0x3CF0000000000000 %s.i.0 = select i1 %267, float %268, float %266 br label %__internal_tgammaf_stirling.exit __internal_fmad.exit45.i: ; preds = %__nv_fmaf.exit2.i.i %269 = fmul float %157, %.054 %270 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not55 = icmp eq i32 %270, 0 %271 = call float @llvm.nvvm.fma.rn.ftz.f(float %269, float %156, float %156) #135 %272 = call float @llvm.fma.f32(float %269, float %156, float %156) %.059 = select i1 %.not55, float %272, float %271 br label %__internal_tgammaf_stirling.exit __internal_fmad.exit.i1: ; preds = %__nv_fabsf.exit %273 = fcmp olt float %a, -5.000000e-01 %a. = select i1 %273, float %a, float 1.000000e+00 %274 = fcmp oeq float %a, 0.000000e+00 %275 = call float @llvm.round.f32(float %a) %276 = select i1 %274, float 0.000000e+00, float %275 %277 = fsub float %a, %276 %278 = fcmp ole float %a, 5.000000e-01 %279 = select i1 %278, float %277, float 1.000000e+00 %fy.0 = fmul float %a., %279 %280 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not1 = icmp eq i32 %280, 0 %281 = call float @llvm.nvvm.fma.rn.ftz.f(float noundef 0xBF5193ECC0000000, float %277, float noundef 0x3F7D207AE0000000) #135 %282 = call float @llvm.fma.f32(float %277, float noundef 0xBF5193ECC0000000, float noundef 0x3F7D207AE0000000) %.052 = select i1 %.not1, float %282, float %281 %283 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not2 = icmp eq i32 %283, 0 %284 = call float @llvm.nvvm.fma.rn.ftz.f(float %.052, float %277, float noundef 0xBF83C01600000000) #135 %285 = call float @llvm.fma.f32(float %.052, float %277, float noundef 0xBF83C01600000000) %.045 = select i1 %.not2, float %285, float %284 %286 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not3 = icmp eq i32 %286, 0 %287 = call float @llvm.nvvm.fma.rn.ftz.f(float %.045, float %277, float noundef 0xBFA598A440000000) #135 %288 = call float @llvm.fma.f32(float %.045, float %277, float noundef 0xBFA598A440000000) %.039 = select i1 %.not3, float %288, float %287 %289 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not4 = icmp eq i32 %289, 0 %290 = call float @llvm.nvvm.fma.rn.ftz.f(float %.039, float %277, float noundef 0x3FC5513660000000) #135 %291 = call float @llvm.fma.f32(float %.039, float %277, float noundef 0x3FC5513660000000) %.033 = select i1 %.not4, float %291, float %290 %292 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not5 = icmp eq i32 %292, 0 %293 = call float @llvm.nvvm.fma.rn.ftz.f(float %.033, float %277, float noundef 0xBFA58180A0000000) #135 %294 = call float @llvm.fma.f32(float %.033, float %277, float noundef 0xBFA58180A0000000) %.026 = select i1 %.not5, float %294, float %293 %295 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not6 = icmp eq i32 %295, 0 %296 = call float @llvm.nvvm.fma.rn.ftz.f(float %.026, float %277, float noundef 0xBFE4FCF440000000) #135 %297 = call float @llvm.fma.f32(float %.026, float %277, float noundef 0xBFE4FCF440000000) %.019 = select i1 %.not6, float %297, float %296 %298 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not7 = icmp eq i32 %298, 0 %299 = call float @llvm.nvvm.fma.rn.ftz.f(float %.019, float %277, float noundef 0x3FE2788D00000000) #135 %300 = call float @llvm.fma.f32(float %.019, float %277, float noundef 0x3FE2788D00000000) %.012 = select i1 %.not7, float %300, float %299 %301 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not8 = icmp eq i32 %301, 0 %302 = call float @llvm.nvvm.fma.rn.ftz.f(float %.012, float %fy.0, float noundef 0.000000e+00) #135 %303 = call float @llvm.fma.f32(float %.012, float %fy.0, float noundef 0.000000e+00) %.05 = select i1 %.not8, float %303, float %302 %304 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not9 = icmp eq i32 %304, 0 %305 = call float @llvm.nvvm.fma.rn.ftz.f(float %.05, float %277, float %fy.0) #135 %306 = call float @llvm.fma.f32(float %.05, float %277, float %fy.0) %.02 = select i1 %.not9, float %306, float %305 %307 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not10 = icmp eq i32 %307, 0 br i1 %.not10, label %310, label %308 308: ; preds = %__internal_fmad.exit.i1 %309 = call float @llvm.nvvm.div.approx.ftz.f(float noundef 1.000000e+00, float %.02) #135 br label %__internal_tgammaf_stirling.exit 310: ; preds = %__internal_fmad.exit.i1 %311 = call float @llvm.nvvm.div.approx.f(float noundef 1.000000e+00, float %.02) #135 br label %__internal_tgammaf_stirling.exit __internal_tgammaf_stirling.exit: ; preds = %308, %310, %__nv_fast_fdividef.exit.i, %__internal_fmad.exit45.i %s.0 = phi float [ %s.i.0, %__nv_fast_fdividef.exit.i ], [ %.059, %__internal_fmad.exit45.i ], [ %309, %308 ], [ %311, %310 ] br i1 %0, label %312, label %320 312: ; preds = %__internal_tgammaf_stirling.exit %313 = call float @llvm.trunc.f32(float %a) %314 = fcmp oeq float %313, %a br i1 %314, label %320, label %315 315: ; preds = %312 %316 = fcmp olt float %a, 0xC0448CCCC0000000 br i1 %316, label %317, label %320 317: ; preds = %315 %318 = fptosi float %a to i32 %319 = and i32 %318, 1 %.not11 = icmp eq i32 %319, 0 %spec.select = select i1 %.not11, float %s.0, float 0.000000e+00 br label %320 320: ; preds = %312, %317, %315, %__internal_tgammaf_stirling.exit %s.3 = phi float [ %s.0, %__internal_tgammaf_stirling.exit ], [ %s.0, %315 ], [ %spec.select, %317 ], [ 0x7FFFFFFFE0000000, %312 ] ret float %s.3 } ; Function Attrs: noinline nounwind define dso_local float @__nv_roundf(float %a) local_unnamed_addr #65 { __nv_fadd_rz.exit: %0 = bitcast float %a to i32 %1 = and i32 %0, -2147483648 %2 = or i32 %1, 1056964608 %3 = bitcast i32 %2 to float %4 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not = icmp eq i32 %4, 0 %5 = call float @llvm.nvvm.add.rz.ftz.f(float %a, float %3) #135 %6 = call float @llvm.nvvm.add.rz.f(float %a, float %3) #135 %.0 = select i1 %.not, float %6, float %5 %7 = call float @llvm.trunc.f32(float %.0) ret float %7 } ; Function Attrs: noinline nounwind define dso_local float @__nv_fdimf(float %a, float %b) local_unnamed_addr #66 { %1 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not = icmp eq i32 %1, 0 br i1 %.not, label %4, label %2 2: ; preds = %0 %3 = call float asm "sub.rn.ftz.f32 $0, $1, $2;", "=f,f,f"(float %a, float %b) #137, !srcloc !226 br label %__nv_fsub_rn.exit 4: ; preds = %0 %5 = call float asm "sub.rn.f32 $0, $1, $2;", "=f,f,f"(float %a, float %b) #137, !srcloc !227 br label %__nv_fsub_rn.exit __nv_fsub_rn.exit: ; preds = %4, %2 %res.i.0 = phi float [ %3, %2 ], [ %5, %4 ] %6 = fcmp ole float %a, %b %t.0 = select i1 %6, float 0.000000e+00, float %res.i.0 ret float %t.0 } ; Function Attrs: noinline nounwind define dso_local i32 @__nv_ilogbf(float %a) local_unnamed_addr #67 { __nv_fabsf.exit: %0 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not = icmp eq i32 %0, 0 %1 = call float @llvm.nvvm.fabs.ftz.f(float %a) #135 %2 = call float @llvm.fabs.f32(float %a) %.0 = select i1 %.not, float %2, float %1 %3 = bitcast float %.0 to i32 %4 = icmp ult i32 %3, 8388608 br i1 %4, label %5, label %9 5: ; preds = %__nv_fabsf.exit %6 = call i32 @llvm.ctlz.i32(i32 %3, i1 noundef false), !range !228 %7 = sub nuw nsw i32 -118, %6 %8 = icmp eq i32 %3, 0 %expo.0 = select i1 %8, i32 -2147483648, i32 %7 br label %14 9: ; preds = %__nv_fabsf.exit %10 = lshr i32 %3, 23 %11 = add nsw i32 %10, -127 %12 = icmp eq i32 %3, 2139095040 %spec.select = select i1 %12, i32 2147483647, i32 %11 %13 = icmp ugt i32 %3, 2139095040 %expo.2 = select i1 %13, i32 -2147483648, i32 %spec.select br label %14 14: ; preds = %9, %5 %expo.3 = phi i32 [ %expo.0, %5 ], [ %expo.2, %9 ] ret i32 %expo.3 } ; Function Attrs: noinline nounwind define dso_local float @__nv_logbf(float %a) local_unnamed_addr #68 { __nv_fabsf.exit: %0 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not = icmp eq i32 %0, 0 %1 = call float @llvm.nvvm.fabs.ftz.f(float %a) #135 %2 = call float @llvm.fabs.f32(float %a) %.0 = select i1 %.not, float %2, float %1 %3 = bitcast float %.0 to i32 %4 = icmp ult i32 %3, 8388608 br i1 %4, label %5, label %10 5: ; preds = %__nv_fabsf.exit %6 = call i32 @llvm.ctlz.i32(i32 %3, i1 noundef false), !range !228 %7 = sub nuw nsw i32 -118, %6 %8 = sitofp i32 %7 to float %9 = fcmp oeq float %a, 0.000000e+00 %res.0 = select i1 %9, float 0xFFF0000000000000, float %8 br label %16 10: ; preds = %__nv_fabsf.exit %11 = lshr i32 %3, 23 %12 = add nsw i32 %11, -127 %13 = sitofp i32 %12 to float %14 = icmp ugt i32 %3, 2139095039 %15 = fmul float %a, %a %spec.select = select i1 %14, float %15, float %13 br label %16 16: ; preds = %10, %5 %res.2 = phi float [ %res.0, %5 ], [ %spec.select, %10 ] ret float %res.2 } ; Function Attrs: argmemonly noinline nosync nounwind define internal fastcc double @__internal_trig_reduction_slowpathd(double %a, i32* noalias nocapture nofree noundef nonnull writeonly align 4 dereferenceable(4) %quadrant) unnamed_addr #69 { %result = alloca [5 x i64], align 8 %1 = call i32 @llvm.nvvm.d2i.hi(double %a) #135 %2 = and i32 %1, -2147483648 %3 = lshr i32 %1, 20 %4 = and i32 %3, 2047 %5 = icmp eq i32 %4, 2047 br i1 %5, label %82, label %6 6: ; preds = %0 %7 = add nsw i32 %4, -1024 %8 = bitcast double %a to i64 %9 = shl i64 %8, 11 %10 = or i64 %9, -9223372036854775808 %11 = lshr i32 %7, 6 %12 = sub nsw i32 15, %11 %13 = sub nsw i32 19, %11 %min.cond = icmp ult i32 %7, 128 %min = select i1 %min.cond, i32 18, i32 %13 %14 = icmp slt i32 %12, %min br i1 %14, label %.lr.ph, label %._crit_edge .lr.ph: ; preds = %6, %.lr.ph %q.06 = phi i32 [ %22, %.lr.ph ], [ %12, %6 ] %p.122.05 = phi i64 [ %19, %.lr.ph ], [ 0, %6 ] %15 = getelementptr inbounds [18 x i64], [18 x i64] addrspace(1)* @__cudart_i2opi_d, i32 0, i32 %q.06 %16 = load i64, i64 addrspace(1)* %15, align 8 %17 = call { i64, i64 } asm "{\0A\09.reg .u32 r0, r1, r2, r3, alo, ahi, blo, bhi, clo, chi;\0A\09mov.b64 {alo,ahi}, $2; \0A\09mov.b64 {blo,bhi}, $3; \0A\09mov.b64 {clo,chi}, $4; \0A\09mad.lo.cc.u32 r0, alo, blo, clo;\0A\09madc.hi.cc.u32 r1, alo, blo, chi;\0A\09madc.hi.u32 r2, alo, bhi, 0;\0A\09mad.lo.cc.u32 r1, alo, bhi, r1;\0A\09madc.hi.cc.u32 r2, ahi, blo, r2;\0A\09madc.hi.u32 r3, ahi, bhi, 0;\0A\09mad.lo.cc.u32 r1, ahi, blo, r1;\0A\09madc.lo.cc.u32 r2, ahi, bhi, r2;\0A\09addc.u32 r3, r3, 0; \0A\09mov.b64 $0, {r0,r1}; \0A\09mov.b64 $1, {r2,r3}; \0A\09}", "=l,=l,l,l,l"(i64 %16, i64 %10, i64 %p.122.05) #137, !srcloc !229 %18 = extractvalue { i64, i64 } %17, 0 %19 = extractvalue { i64, i64 } %17, 1 %20 = sub nsw i32 %q.06, %12 %21 = getelementptr inbounds [5 x i64], [5 x i64]* %result, i32 0, i32 %20 store i64 %18, i64* %21, align 8, !noalias !219 %22 = add nsw i32 %q.06, 1 %exitcond.not = icmp eq i32 %22, %min br i1 %exitcond.not, label %._crit_edge, label %.lr.ph, !llvm.loop !230 ._crit_edge: ; preds = %.lr.ph, %6 %p.122.0.lcssa = phi i64 [ 0, %6 ], [ %19, %.lr.ph ] %q.0.lcssa = phi i32 [ %12, %6 ], [ %min, %.lr.ph ] %23 = sub nsw i32 %q.0.lcssa, %12 %24 = getelementptr inbounds [5 x i64], [5 x i64]* %result, i32 0, i32 %23 store i64 %p.122.0.lcssa, i64* %24, align 8, !noalias !219 %25 = and i32 %3, 63 %26 = getelementptr inbounds [5 x i64], [5 x i64]* %result, i32 0, i32 2 %27 = load i64, i64* %26, align 8 %28 = getelementptr inbounds [5 x i64], [5 x i64]* %result, i32 0, i32 3 %29 = load i64, i64* %28, align 8 %.not = icmp eq i32 %25, 0 br i1 %.not, label %42, label %30 30: ; preds = %._crit_edge %31 = sub nuw nsw i32 64, %25 %32 = zext i32 %25 to i64 %33 = shl i64 %29, %32 %34 = zext i32 %31 to i64 %35 = lshr i64 %27, %34 %36 = or i64 %33, %35 %37 = shl i64 %27, %32 %38 = getelementptr inbounds [5 x i64], [5 x i64]* %result, i32 0, i32 1 %39 = load i64, i64* %38, align 8 %40 = lshr i64 %39, %34 %41 = or i64 %40, %37 br label %42 42: ; preds = %30, %._crit_edge %hi.0 = phi i64 [ %36, %30 ], [ %29, %._crit_edge ] %lo.0 = phi i64 [ %41, %30 ], [ %27, %._crit_edge ] %43 = lshr i64 %hi.0, 62 %44 = trunc i64 %43 to i32 %45 = call i64 @llvm.fshl.i64(i64 %hi.0, i64 %lo.0, i64 noundef 2) %46 = shl i64 %lo.0, 2 %47 = lshr i64 %45, 63 %48 = trunc i64 %47 to i32 %49 = add nuw nsw i32 %48, %44 %.not1 = icmp eq i32 %2, 0 %50 = sub nsw i32 0, %49 %spec.select = select i1 %.not1, i32 %49, i32 %50 store i32 %spec.select, i32* %quadrant, align 4, !noalias !219 %.not2 = icmp sgt i64 %45, -1 br i1 %.not2, label %56, label %51 51: ; preds = %42 %52 = call { i64, i64 } asm "{\0A\09.reg .u32 r0, r1, r2, r3, a0, a1, a2, a3, b0, b1, b2, b3;\0A\09mov.b64 {a0,a1}, $2;\0A\09mov.b64 {a2,a3}, $3;\0A\09mov.b64 {b0,b1}, $4;\0A\09mov.b64 {b2,b3}, $5;\0A\09sub.cc.u32 r0, a0, b0; \0A\09subc.cc.u32 r1, a1, b1; \0A\09subc.cc.u32 r2, a2, b2; \0A\09subc.u32 r3, a3, b3; \0A\09mov.b64 $0, {r0,r1};\0A\09mov.b64 $1, {r2,r3};\0A\09}", "=l,=l,l,l,l,l"(i64 0, i64 0, i64 %46, i64 %45) #137, !srcloc !231 %53 = extractvalue { i64, i64 } %52, 0 %54 = extractvalue { i64, i64 } %52, 1 %55 = xor i32 %2, -2147483648 br label %56 56: ; preds = %51, %42 %hi.1 = phi i64 [ %54, %51 ], [ %45, %42 ] %lo.1 = phi i64 [ %53, %51 ], [ %46, %42 ] %s.0 = phi i32 [ %55, %51 ], [ %2, %42 ] %ctlz = call i64 @llvm.ctlz.i64(i64 %hi.1, i1 noundef false), !range !232 %.not3 = icmp eq i64 %ctlz, 0 br i1 %.not3, label %62, label %57 57: ; preds = %56 %58 = shl i64 %hi.1, %ctlz %59 = sub nuw nsw i64 64, %ctlz %60 = lshr i64 %lo.1, %59 %61 = or i64 %60, %58 br label %62 62: ; preds = %57, %56 %hi.2 = phi i64 [ %61, %57 ], [ %hi.1, %56 ] %63 = call { i64, i64 } asm "{\0A\09.reg .u32 r0, r1, r2, r3, alo, ahi, blo, bhi;\0A\09mov.b64 {alo,ahi}, $2; \0A\09mov.b64 {blo,bhi}, $3; \0A\09mul.lo.u32 r0, alo, blo; \0A\09mul.hi.u32 r1, alo, blo; \0A\09mad.lo.cc.u32 r1, alo, bhi, r1;\0A\09madc.hi.u32 r2, alo, bhi, 0;\0A\09mad.lo.cc.u32 r1, ahi, blo, r1;\0A\09madc.hi.cc.u32 r2, ahi, blo, r2;\0A\09madc.hi.u32 r3, ahi, bhi, 0;\0A\09mad.lo.cc.u32 r2, ahi, bhi, r2;\0A\09addc.u32 r3, r3, 0; \0A\09mov.b64 $0, {r0,r1}; \0A\09mov.b64 $1, {r2,r3}; \0A\09}", "=l,=l,l,l"(i64 %hi.2, i64 -3958705157555305931) #137, !srcloc !233 %64 = extractvalue { i64, i64 } %63, 1 %65 = icmp sgt i64 %64, 0 br i1 %65, label %66, label %71 66: ; preds = %62 %67 = extractvalue { i64, i64 } %63, 0 %68 = call { i64, i64 } asm "{\0A\09.reg .u32 r0, r1, r2, r3, a0, a1, a2, a3, b0, b1, b2, b3;\0A\09mov.b64 {a0,a1}, $2;\0A\09mov.b64 {a2,a3}, $3;\0A\09mov.b64 {b0,b1}, $4;\0A\09mov.b64 {b2,b3}, $5;\0A\09add.cc.u32 r0, a0, b0; \0A\09addc.cc.u32 r1, a1, b1; \0A\09addc.cc.u32 r2, a2, b2; \0A\09addc.u32 r3, a3, b3; \0A\09mov.b64 $0, {r0,r1};\0A\09mov.b64 $1, {r2,r3};\0A\09}", "=l,=l,l,l,l,l"(i64 %67, i64 %64, i64 %67, i64 %64) #137, !srcloc !234 %69 = extractvalue { i64, i64 } %68, 1 %70 = add nuw nsw i64 %ctlz, 1 br label %71 71: ; preds = %66, %62 %hi.3 = phi i64 [ %69, %66 ], [ %64, %62 ] %e.0 = phi i64 [ %70, %66 ], [ %ctlz, %62 ] %72 = zext i32 %s.0 to i64 %73 = shl nuw i64 %72, 32 %.neg4 = mul nsw i64 %e.0, -4503599627370496 %74 = add nsw i64 %.neg4, 4602678819172646912 %75 = add i64 %hi.3, 1 %76 = lshr i64 %75, 10 %77 = add nuw nsw i64 %76, 1 %78 = lshr i64 %77, 1 %79 = add nuw nsw i64 %74, %78 %80 = or i64 %79, %73 %81 = bitcast i64 %80 to double br label %82 82: ; preds = %0, %71 %.0 = phi double [ %81, %71 ], [ %a, %0 ] ret double %.0 } ; Function Attrs: noinline nounwind define dso_local double @__nv_sin(double %a) local_unnamed_addr #70 { %q.i = alloca i32, align 4 %q.i.i = alloca i32, align 4 %1 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([12 x i8], [12 x i8]* @.str.1, i32 0, i32 0)) #135 %2 = icmp eq i32 %1, 350 br i1 %2, label %6, label %3 3: ; preds = %0 %4 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([12 x i8], [12 x i8]* @.str.1, i32 0, i32 0)) #135 %5 = icmp eq i32 %4, 370 br i1 %5, label %6, label %61 6: ; preds = %3, %0 %7 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([12 x i8], [12 x i8]* @.str.1, i32 0, i32 0)) #135 %8 = icmp eq i32 %7, 200 br i1 %8, label %15, label %9 9: ; preds = %6 %10 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([12 x i8], [12 x i8]* @.str.1, i32 0, i32 0)) #135 %11 = icmp eq i32 %10, 350 br i1 %11, label %15, label %12 12: ; preds = %9 %13 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([12 x i8], [12 x i8]* @.str.1, i32 0, i32 0)) #135 %14 = icmp eq i32 %13, 370 br i1 %14, label %15, label %18 15: ; preds = %12, %9, %6 %16 = call double @llvm.fabs.f64(double %a) %17 = fcmp oeq double %16, 0x7FF0000000000000 br label %__nv_isinfd.exit.i 18: ; preds = %12 %19 = call i32 @llvm.nvvm.d2i.lo(double %a) #135 %20 = call i32 @llvm.nvvm.d2i.hi(double %a) #135 %21 = and i32 %20, 2147483647 %22 = icmp eq i32 %21, 2146435072 %23 = icmp eq i32 %19, 0 %24 = select i1 %22, i1 %23, i1 false br label %__nv_isinfd.exit.i __nv_isinfd.exit.i: ; preds = %18, %15 %.02.in = phi i1 [ %17, %15 ], [ %24, %18 ] br i1 %.02.in, label %25, label %27 25: ; preds = %__nv_isinfd.exit.i %26 = fmul double %a, 0.000000e+00 br label %__internal_trig_reduction_kerneld.exit.i 27: ; preds = %__nv_isinfd.exit.i %28 = fmul double %a, 0x3FE45F306DC9C883 %29 = call i32 @llvm.nvvm.d2i.rn(double %28) #135 store i32 %29, i32* %q.i.i, align 4, !noalias !219 %30 = sitofp i32 %29 to double %31 = fneg double %30 %32 = call double @llvm.fma.f64(double %31, double noundef 0x3FF921FB54442D18, double %a) %33 = call double @llvm.fma.f64(double %31, double noundef 0x3C91A62633145C00, double %32) %34 = call double @llvm.fma.f64(double %31, double noundef 0x397B839A252049C0, double %33) %35 = call double @llvm.fabs.f64(double %a) %36 = fcmp ult double %35, 0x41E0000000000000 br i1 %36, label %__internal_trig_reduction_kerneld.exit.i, label %37 37: ; preds = %27 %38 = call fastcc double @__internal_trig_reduction_slowpathd(double %a, i32* noalias nocapture nofree noundef nonnull writeonly align 4 dereferenceable(4) %q.i.i) #135 %.pre3 = load i32, i32* %q.i.i, align 4 br label %__internal_trig_reduction_kerneld.exit.i __internal_trig_reduction_kerneld.exit.i: ; preds = %27, %37, %25 %i.i.0 = phi i32 [ 0, %25 ], [ %.pre3, %37 ], [ %29, %27 ] %.01 = phi double [ %26, %25 ], [ %38, %37 ], [ %34, %27 ] %39 = fmul double %.01, %.01 %40 = call double @llvm.fma.f64(double %39, double noundef 0xBDA8FF8320FD8164, double noundef 0x3E21EEA7C1EF8528) %41 = call double @llvm.fma.f64(double %40, double %39, double noundef 0xBE927E4F8E06E6D9) %42 = call double @llvm.fma.f64(double %41, double %39, double noundef 0x3EFA01A019DDBCE9) %43 = call double @llvm.fma.f64(double %42, double %39, double noundef 0xBF56C16C16C15D47) %44 = call double @llvm.fma.f64(double %43, double %39, double noundef 0x3FA5555555555551) %45 = call double @llvm.fma.f64(double %44, double %39, double noundef -5.000000e-01) %46 = call double @llvm.fma.f64(double %45, double %39, double noundef 1.000000e+00) %47 = call double @llvm.fma.f64(double %39, double noundef 0x3DE5DB65F9785EBA, double noundef 0xBE5AE5F12CB0D246) %48 = call double @llvm.fma.f64(double %47, double %39, double noundef 0x3EC71DE369ACE392) %49 = call double @llvm.fma.f64(double %48, double %39, double noundef 0xBF2A01A019DB62A1) %50 = call double @llvm.fma.f64(double %49, double %39, double noundef 0x3F81111111110818) %51 = call double @llvm.fma.f64(double %50, double %39, double noundef 0xBFC5555555555554) %52 = call double @llvm.fma.f64(double %51, double %39, double noundef 0.000000e+00) %53 = call double @llvm.fma.f64(double %52, double %.01, double %.01) %54 = and i32 %i.i.0, 1 %.not5 = icmp eq i32 %54, 0 %spec.select = select i1 %.not5, double %53, double %46 %55 = and i32 %i.i.0, 2 %.not6 = icmp eq i32 %55, 0 br i1 %.not6, label %__nv_sincos.exit, label %56 56: ; preds = %__internal_trig_reduction_kerneld.exit.i %57 = call i32 @llvm.nvvm.d2i.hi(double %spec.select) #135 %58 = call i32 @llvm.nvvm.d2i.lo(double %spec.select) #135 %59 = xor i32 %57, -2147483648 %60 = call double @llvm.nvvm.lohi.i2d(i32 %58, i32 %59) #135 br label %__nv_sincos.exit 61: ; preds = %3 %62 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([12 x i8], [12 x i8]* @.str.1, i32 0, i32 0)) #135 %63 = icmp eq i32 %62, 200 br i1 %63, label %70, label %64 64: ; preds = %61 %65 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([12 x i8], [12 x i8]* @.str.1, i32 0, i32 0)) #135 %66 = icmp eq i32 %65, 350 br i1 %66, label %70, label %67 67: ; preds = %64 %68 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([12 x i8], [12 x i8]* @.str.1, i32 0, i32 0)) #135 %69 = icmp eq i32 %68, 370 br i1 %69, label %70, label %73 70: ; preds = %67, %64, %61 %71 = call double @llvm.fabs.f64(double %a) %72 = fcmp oeq double %71, 0x7FF0000000000000 br label %__nv_isinfd.exit 73: ; preds = %67 %74 = call i32 @llvm.nvvm.d2i.lo(double %a) #135 %75 = call i32 @llvm.nvvm.d2i.hi(double %a) #135 %76 = and i32 %75, 2147483647 %77 = icmp eq i32 %76, 2146435072 %78 = icmp eq i32 %74, 0 %79 = select i1 %77, i1 %78, i1 false br label %__nv_isinfd.exit __nv_isinfd.exit: ; preds = %73, %70 %.03.in = phi i1 [ %72, %70 ], [ %79, %73 ] br i1 %.03.in, label %80, label %82 80: ; preds = %__nv_isinfd.exit %81 = fmul double %a, 0.000000e+00 br label %__internal_sin_cos_kerneld.exit 82: ; preds = %__nv_isinfd.exit %83 = fmul double %a, 0x3FE45F306DC9C883 %84 = call i32 @llvm.nvvm.d2i.rn(double %83) #135 store i32 %84, i32* %q.i, align 4, !noalias !219 %85 = sitofp i32 %84 to double %86 = fneg double %85 %87 = call double @llvm.fma.f64(double %86, double noundef 0x3FF921FB54442D18, double %a) %88 = call double @llvm.fma.f64(double %86, double noundef 0x3C91A62633145C00, double %87) %89 = call double @llvm.fma.f64(double %86, double noundef 0x397B839A252049C0, double %88) %90 = call double @llvm.fabs.f64(double %a) %91 = fcmp ult double %90, 0x41E0000000000000 br i1 %91, label %__internal_sin_cos_kerneld.exit, label %92 92: ; preds = %82 %93 = call fastcc double @__internal_trig_reduction_slowpathd(double %a, i32* noalias nocapture nofree noundef nonnull writeonly align 4 dereferenceable(4) %q.i) #135 %.pre = load i32, i32* %q.i, align 4 br label %__internal_sin_cos_kerneld.exit __internal_sin_cos_kerneld.exit: ; preds = %82, %92, %80 %i.0 = phi i32 [ 0, %80 ], [ %.pre, %92 ], [ %84, %82 ] %z.0 = phi double [ %81, %80 ], [ %93, %92 ], [ %89, %82 ] %94 = and i32 %i.0, 1 %95 = shl nuw nsw i32 %94, 3 %96 = getelementptr inbounds [16 x double], [16 x double] addrspace(1)* @__cudart_sin_cos_coeffs, i32 0, i32 %95 %97 = fmul double %z.0, %z.0 %.not = icmp eq i32 %94, 0 %98 = select i1 %.not, double 0x3DE5DB65F9785EBA, double 0xBDA8FF8320FD8164 %99 = getelementptr inbounds double, double addrspace(1)* %96, i32 1 %100 = load double, double addrspace(1)* %99, align 8 %101 = call double @llvm.fma.f64(double noundef %98, double %97, double %100) %102 = getelementptr inbounds double, double addrspace(1)* %96, i32 2 %103 = load double, double addrspace(1)* %102, align 8 %104 = call double @llvm.fma.f64(double %101, double %97, double %103) %105 = getelementptr inbounds double, double addrspace(1)* %96, i32 3 %106 = load double, double addrspace(1)* %105, align 8 %107 = call double @llvm.fma.f64(double %104, double %97, double %106) %108 = getelementptr inbounds double, double addrspace(1)* %96, i32 4 %109 = load double, double addrspace(1)* %108, align 8 %110 = call double @llvm.fma.f64(double %107, double %97, double %109) %111 = getelementptr inbounds double, double addrspace(1)* %96, i32 5 %112 = load double, double addrspace(1)* %111, align 8 %113 = call double @llvm.fma.f64(double %110, double %97, double %112) %114 = getelementptr inbounds double, double addrspace(1)* %96, i32 6 %115 = load double, double addrspace(1)* %114, align 8 %116 = call double @llvm.fma.f64(double %113, double %97, double %115) %117 = call double @llvm.fma.f64(double %116, double %z.0, double %z.0) %118 = call double @llvm.fma.f64(double %116, double %97, double noundef 1.000000e+00) %spec.select2 = select i1 %.not, double %117, double %118 %119 = and i32 %i.0, 2 %.not4 = icmp eq i32 %119, 0 %120 = call double @llvm.fma.f64(double %spec.select2, double noundef -1.000000e+00, double noundef 0.000000e+00) %.1 = select i1 %.not4, double %spec.select2, double %120 br label %__nv_sincos.exit __nv_sincos.exit: ; preds = %__internal_trig_reduction_kerneld.exit.i, %56, %__internal_sin_cos_kerneld.exit %.0 = phi double [ %.1, %__internal_sin_cos_kerneld.exit ], [ %60, %56 ], [ %spec.select, %__internal_trig_reduction_kerneld.exit.i ] ret double %.0 } ; Function Attrs: noinline nounwind define dso_local double @__nv_cos(double %a) local_unnamed_addr #71 { %q.i = alloca i32, align 4 %q.i.i = alloca i32, align 4 %1 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([12 x i8], [12 x i8]* @.str.1, i32 0, i32 0)) #135 %2 = icmp eq i32 %1, 350 br i1 %2, label %6, label %3 3: ; preds = %0 %4 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([12 x i8], [12 x i8]* @.str.1, i32 0, i32 0)) #135 %5 = icmp eq i32 %4, 370 br i1 %5, label %6, label %65 6: ; preds = %3, %0 %7 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([12 x i8], [12 x i8]* @.str.1, i32 0, i32 0)) #135 %8 = icmp eq i32 %7, 200 br i1 %8, label %15, label %9 9: ; preds = %6 %10 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([12 x i8], [12 x i8]* @.str.1, i32 0, i32 0)) #135 %11 = icmp eq i32 %10, 350 br i1 %11, label %15, label %12 12: ; preds = %9 %13 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([12 x i8], [12 x i8]* @.str.1, i32 0, i32 0)) #135 %14 = icmp eq i32 %13, 370 br i1 %14, label %15, label %18 15: ; preds = %12, %9, %6 %16 = call double @llvm.fabs.f64(double %a) %17 = fcmp oeq double %16, 0x7FF0000000000000 br label %__nv_isinfd.exit.i 18: ; preds = %12 %19 = call i32 @llvm.nvvm.d2i.lo(double %a) #135 %20 = call i32 @llvm.nvvm.d2i.hi(double %a) #135 %21 = and i32 %20, 2147483647 %22 = icmp eq i32 %21, 2146435072 %23 = icmp eq i32 %19, 0 %24 = select i1 %22, i1 %23, i1 false br label %__nv_isinfd.exit.i __nv_isinfd.exit.i: ; preds = %18, %15 %.02.in = phi i1 [ %17, %15 ], [ %24, %18 ] br i1 %.02.in, label %25, label %27 25: ; preds = %__nv_isinfd.exit.i %26 = fmul double %a, 0.000000e+00 br label %__internal_trig_reduction_kerneld.exit.i 27: ; preds = %__nv_isinfd.exit.i %28 = fmul double %a, 0x3FE45F306DC9C883 %29 = call i32 @llvm.nvvm.d2i.rn(double %28) #135 store i32 %29, i32* %q.i.i, align 4, !noalias !219 %30 = sitofp i32 %29 to double %31 = fneg double %30 %32 = call double @llvm.fma.f64(double %31, double noundef 0x3FF921FB54442D18, double %a) %33 = call double @llvm.fma.f64(double %31, double noundef 0x3C91A62633145C00, double %32) %34 = call double @llvm.fma.f64(double %31, double noundef 0x397B839A252049C0, double %33) %35 = call double @llvm.fabs.f64(double %a) %36 = fcmp ult double %35, 0x41E0000000000000 br i1 %36, label %__internal_trig_reduction_kerneld.exit.i, label %37 37: ; preds = %27 %38 = call fastcc double @__internal_trig_reduction_slowpathd(double %a, i32* noalias nocapture nofree noundef nonnull writeonly align 4 dereferenceable(4) %q.i.i) #135 %.pre3 = load i32, i32* %q.i.i, align 4 br label %__internal_trig_reduction_kerneld.exit.i __internal_trig_reduction_kerneld.exit.i: ; preds = %27, %37, %25 %i.i.0 = phi i32 [ 0, %25 ], [ %.pre3, %37 ], [ %29, %27 ] %.01 = phi double [ %26, %25 ], [ %38, %37 ], [ %34, %27 ] %39 = fmul double %.01, %.01 %40 = call double @llvm.fma.f64(double %39, double noundef 0xBDA8FF8320FD8164, double noundef 0x3E21EEA7C1EF8528) %41 = call double @llvm.fma.f64(double %40, double %39, double noundef 0xBE927E4F8E06E6D9) %42 = call double @llvm.fma.f64(double %41, double %39, double noundef 0x3EFA01A019DDBCE9) %43 = call double @llvm.fma.f64(double %42, double %39, double noundef 0xBF56C16C16C15D47) %44 = call double @llvm.fma.f64(double %43, double %39, double noundef 0x3FA5555555555551) %45 = call double @llvm.fma.f64(double %44, double %39, double noundef -5.000000e-01) %46 = call double @llvm.fma.f64(double %45, double %39, double noundef 1.000000e+00) %47 = call double @llvm.fma.f64(double %39, double noundef 0x3DE5DB65F9785EBA, double noundef 0xBE5AE5F12CB0D246) %48 = call double @llvm.fma.f64(double %47, double %39, double noundef 0x3EC71DE369ACE392) %49 = call double @llvm.fma.f64(double %48, double %39, double noundef 0xBF2A01A019DB62A1) %50 = call double @llvm.fma.f64(double %49, double %39, double noundef 0x3F81111111110818) %51 = call double @llvm.fma.f64(double %50, double %39, double noundef 0xBFC5555555555554) %52 = call double @llvm.fma.f64(double %51, double %39, double noundef 0.000000e+00) %53 = call double @llvm.fma.f64(double %52, double %.01, double %.01) %54 = call i32 @llvm.nvvm.d2i.hi(double %53) #135 %55 = call i32 @llvm.nvvm.d2i.lo(double %53) #135 %56 = xor i32 %54, -2147483648 %57 = call double @llvm.nvvm.lohi.i2d(i32 %55, i32 %56) #135 %58 = and i32 %i.i.0, 1 %.not5 = icmp eq i32 %58, 0 %spec.select1 = select i1 %.not5, double %46, double %57 %59 = and i32 %i.i.0, 2 %.not6 = icmp eq i32 %59, 0 br i1 %.not6, label %__nv_sincos.exit, label %60 60: ; preds = %__internal_trig_reduction_kerneld.exit.i %61 = call i32 @llvm.nvvm.d2i.hi(double %spec.select1) #135 %62 = call i32 @llvm.nvvm.d2i.lo(double %spec.select1) #135 %63 = xor i32 %61, -2147483648 %64 = call double @llvm.nvvm.lohi.i2d(i32 %62, i32 %63) #135 br label %__nv_sincos.exit 65: ; preds = %3 %66 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([12 x i8], [12 x i8]* @.str.1, i32 0, i32 0)) #135 %67 = icmp eq i32 %66, 200 br i1 %67, label %74, label %68 68: ; preds = %65 %69 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([12 x i8], [12 x i8]* @.str.1, i32 0, i32 0)) #135 %70 = icmp eq i32 %69, 350 br i1 %70, label %74, label %71 71: ; preds = %68 %72 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([12 x i8], [12 x i8]* @.str.1, i32 0, i32 0)) #135 %73 = icmp eq i32 %72, 370 br i1 %73, label %74, label %77 74: ; preds = %71, %68, %65 %75 = call double @llvm.fabs.f64(double %a) %76 = fcmp oeq double %75, 0x7FF0000000000000 br label %__nv_isinfd.exit 77: ; preds = %71 %78 = call i32 @llvm.nvvm.d2i.lo(double %a) #135 %79 = call i32 @llvm.nvvm.d2i.hi(double %a) #135 %80 = and i32 %79, 2147483647 %81 = icmp eq i32 %80, 2146435072 %82 = icmp eq i32 %78, 0 %83 = select i1 %81, i1 %82, i1 false br label %__nv_isinfd.exit __nv_isinfd.exit: ; preds = %77, %74 %.03.in = phi i1 [ %76, %74 ], [ %83, %77 ] br i1 %.03.in, label %84, label %86 84: ; preds = %__nv_isinfd.exit %85 = fmul double %a, 0.000000e+00 br label %__internal_sin_cos_kerneld.exit 86: ; preds = %__nv_isinfd.exit %87 = fmul double %a, 0x3FE45F306DC9C883 %88 = call i32 @llvm.nvvm.d2i.rn(double %87) #135 store i32 %88, i32* %q.i, align 4, !noalias !219 %89 = sitofp i32 %88 to double %90 = fneg double %89 %91 = call double @llvm.fma.f64(double %90, double noundef 0x3FF921FB54442D18, double %a) %92 = call double @llvm.fma.f64(double %90, double noundef 0x3C91A62633145C00, double %91) %93 = call double @llvm.fma.f64(double %90, double noundef 0x397B839A252049C0, double %92) %94 = call double @llvm.fabs.f64(double %a) %95 = fcmp ult double %94, 0x41E0000000000000 br i1 %95, label %__internal_sin_cos_kerneld.exit, label %96 96: ; preds = %86 %97 = call fastcc double @__internal_trig_reduction_slowpathd(double %a, i32* noalias nocapture nofree noundef nonnull writeonly align 4 dereferenceable(4) %q.i) #135 %.pre = load i32, i32* %q.i, align 4 br label %__internal_sin_cos_kerneld.exit __internal_sin_cos_kerneld.exit: ; preds = %86, %96, %84 %i.0 = phi i32 [ 0, %84 ], [ %.pre, %96 ], [ %88, %86 ] %z.0 = phi double [ %85, %84 ], [ %97, %96 ], [ %93, %86 ] %98 = add nsw i32 %i.0, 1 %99 = and i32 %98, 1 %100 = shl nuw nsw i32 %99, 3 %101 = getelementptr inbounds [16 x double], [16 x double] addrspace(1)* @__cudart_sin_cos_coeffs, i32 0, i32 %100 %102 = fmul double %z.0, %z.0 %.not = icmp eq i32 %99, 0 %103 = select i1 %.not, double 0x3DE5DB65F9785EBA, double 0xBDA8FF8320FD8164 %104 = getelementptr inbounds double, double addrspace(1)* %101, i32 1 %105 = load double, double addrspace(1)* %104, align 8 %106 = call double @llvm.fma.f64(double noundef %103, double %102, double %105) %107 = getelementptr inbounds double, double addrspace(1)* %101, i32 2 %108 = load double, double addrspace(1)* %107, align 8 %109 = call double @llvm.fma.f64(double %106, double %102, double %108) %110 = getelementptr inbounds double, double addrspace(1)* %101, i32 3 %111 = load double, double addrspace(1)* %110, align 8 %112 = call double @llvm.fma.f64(double %109, double %102, double %111) %113 = getelementptr inbounds double, double addrspace(1)* %101, i32 4 %114 = load double, double addrspace(1)* %113, align 8 %115 = call double @llvm.fma.f64(double %112, double %102, double %114) %116 = getelementptr inbounds double, double addrspace(1)* %101, i32 5 %117 = load double, double addrspace(1)* %116, align 8 %118 = call double @llvm.fma.f64(double %115, double %102, double %117) %119 = getelementptr inbounds double, double addrspace(1)* %101, i32 6 %120 = load double, double addrspace(1)* %119, align 8 %121 = call double @llvm.fma.f64(double %118, double %102, double %120) %122 = call double @llvm.fma.f64(double %121, double %z.0, double %z.0) %123 = call double @llvm.fma.f64(double %121, double %102, double noundef 1.000000e+00) %spec.select2 = select i1 %.not, double %122, double %123 %124 = and i32 %98, 2 %.not4 = icmp eq i32 %124, 0 %125 = call double @llvm.fma.f64(double %spec.select2, double noundef -1.000000e+00, double noundef 0.000000e+00) %.1 = select i1 %.not4, double %spec.select2, double %125 br label %__nv_sincos.exit __nv_sincos.exit: ; preds = %__internal_trig_reduction_kerneld.exit.i, %60, %__internal_sin_cos_kerneld.exit %.0 = phi double [ %.1, %__internal_sin_cos_kerneld.exit ], [ %64, %60 ], [ %spec.select1, %__internal_trig_reduction_kerneld.exit.i ] ret double %.0 } ; Function Attrs: noinline nounwind define dso_local double @__nv_tan(double %a) local_unnamed_addr #72 { %q.i = alloca i32, align 4 %1 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([12 x i8], [12 x i8]* @.str.1, i32 0, i32 0)) #135 %2 = icmp eq i32 %1, 200 br i1 %2, label %9, label %3 3: ; preds = %0 %4 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([12 x i8], [12 x i8]* @.str.1, i32 0, i32 0)) #135 %5 = icmp eq i32 %4, 350 br i1 %5, label %9, label %6 6: ; preds = %3 %7 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([12 x i8], [12 x i8]* @.str.1, i32 0, i32 0)) #135 %8 = icmp eq i32 %7, 370 br i1 %8, label %9, label %12 9: ; preds = %6, %3, %0 %10 = call double @llvm.fabs.f64(double %a) %11 = fcmp oeq double %10, 0x7FF0000000000000 br label %__nv_isinfd.exit 12: ; preds = %6 %13 = call i32 @llvm.nvvm.d2i.lo(double %a) #135 %14 = call i32 @llvm.nvvm.d2i.hi(double %a) #135 %15 = and i32 %14, 2147483647 %16 = icmp eq i32 %15, 2146435072 %17 = icmp eq i32 %13, 0 %18 = select i1 %16, i1 %17, i1 false br label %__nv_isinfd.exit __nv_isinfd.exit: ; preds = %12, %9 %.0.in = phi i1 [ %11, %9 ], [ %18, %12 ] br i1 %.0.in, label %19, label %21 19: ; preds = %__nv_isinfd.exit %20 = fmul double %a, 0.000000e+00 br label %__internal_trig_reduction_kerneld.exit 21: ; preds = %__nv_isinfd.exit %22 = fmul double %a, 0x3FE45F306DC9C883 %23 = call i32 @llvm.nvvm.d2i.rn(double %22) #135 store i32 %23, i32* %q.i, align 4, !noalias !219 %24 = sitofp i32 %23 to double %25 = fneg double %24 %26 = call double @llvm.fma.f64(double %25, double noundef 0x3FF921FB54442D18, double %a) %27 = call double @llvm.fma.f64(double %25, double noundef 0x3C91A62633145C00, double %26) %28 = call double @llvm.fma.f64(double %25, double noundef 0x397B839A252049C0, double %27) %29 = call double @llvm.fabs.f64(double %a) %30 = fcmp ult double %29, 0x41E0000000000000 br i1 %30, label %__internal_trig_reduction_kerneld.exit, label %31 31: ; preds = %21 %32 = call fastcc double @__internal_trig_reduction_slowpathd(double %a, i32* noalias nocapture nofree noundef nonnull writeonly align 4 dereferenceable(4) %q.i) #135 %.pre = load i32, i32* %q.i, align 4 br label %__internal_trig_reduction_kerneld.exit __internal_trig_reduction_kerneld.exit: ; preds = %21, %31, %19 %i.0 = phi i32 [ 0, %19 ], [ %.pre, %31 ], [ %23, %21 ] %z.0 = phi double [ %20, %19 ], [ %32, %31 ], [ %28, %21 ] %33 = and i32 %i.0, 1 %34 = fmul double %z.0, %z.0 %35 = call double @llvm.fma.f64(double %34, double noundef 0x3EE48DAC2799BCB9, double noundef 0xBEF9757C5B27EBB1) %36 = call double @llvm.fma.f64(double %35, double %34, double noundef 0x3F0980E90FD91E04) %37 = call double @llvm.fma.f64(double %36, double %34, double noundef 0xBEFAE2B0417D7E1D) %38 = call double @llvm.fma.f64(double %37, double %34, double noundef 0x3F119F5341BFBA57) %39 = call double @llvm.fma.f64(double %38, double %34, double noundef 0x3F15E791A00F6919) %40 = call double @llvm.fma.f64(double %39, double %34, double noundef 0x3F2FF2E7FADEC73A) %41 = call double @llvm.fma.f64(double %40, double %34, double noundef 0x3F434BC1B206DA62) %42 = call double @llvm.fma.f64(double %41, double %34, double noundef 0x3F57DB18EF2F83F9) %43 = call double @llvm.fma.f64(double %42, double %34, double noundef 0x3F6D6D2E7AE49FBC) %44 = call double @llvm.fma.f64(double %43, double %34, double noundef 0x3F8226E3A816A776) %45 = call double @llvm.fma.f64(double %44, double %34, double noundef 0x3F9664F485D25660) %46 = call double @llvm.fma.f64(double %45, double %34, double noundef 0x3FABA1BA1BABF31D) %47 = call double @llvm.fma.f64(double %46, double %34, double noundef 0x3FC11111111105D2) %48 = call double @llvm.fma.f64(double %47, double %34, double noundef 0x3FD555555555555E) %49 = fmul double %34, %48 %50 = call double @llvm.fma.f64(double %49, double %z.0, double %z.0) %.not = icmp eq i32 %33, 0 br i1 %.not, label %__internal_tan_kerneld.exit, label %51 51: ; preds = %__internal_trig_reduction_kerneld.exit %52 = fsub double %50, %z.0 %53 = fneg double %52 %54 = call double @llvm.fma.f64(double %49, double %z.0, double %53) %55 = call double @llvm.nvvm.rcp.approx.ftz.d(double %50) #135 %56 = fneg double %50 %57 = call double @llvm.fma.f64(double %56, double %55, double noundef 1.000000e+00) %58 = call double @llvm.fma.f64(double %57, double %57, double %57) %59 = call double @llvm.fma.f64(double %58, double %55, double %55) %60 = fneg double %59 %61 = call double @llvm.fma.f64(double %50, double %60, double noundef 1.000000e+00) %62 = call double @llvm.fma.f64(double %60, double %54, double %61) %63 = call double @llvm.fma.f64(double %62, double %60, double %60) br label %__internal_tan_kerneld.exit __internal_tan_kerneld.exit: ; preds = %51, %__internal_trig_reduction_kerneld.exit %q.i1.0 = phi double [ %63, %51 ], [ %50, %__internal_trig_reduction_kerneld.exit ] ret double %q.i1.0 } ; Function Attrs: nofree noinline nosync nounwind readnone willreturn define dso_local double @__nv_log(double %a) local_unnamed_addr #73 { %1 = call i32 @llvm.nvvm.d2i.hi(double %a) #138 %2 = call i32 @llvm.nvvm.d2i.lo(double %a) #138 %3 = icmp slt i32 %1, 1048576 br i1 %3, label %4, label %8 4: ; preds = %0 %5 = fmul double %a, 0x4350000000000000 %6 = call i32 @llvm.nvvm.d2i.hi(double %5) #138 %7 = call i32 @llvm.nvvm.d2i.lo(double %5) #138 br label %8 8: ; preds = %4, %0 %.0 = phi double [ %5, %4 ], [ %a, %0 ] %ihi.0 = phi i32 [ %6, %4 ], [ %1, %0 ] %ilo.0 = phi i32 [ %7, %4 ], [ %2, %0 ] %e.0 = phi i32 [ -1077, %4 ], [ -1023, %0 ] %9 = add i32 %ihi.0, -1 %10 = icmp ult i32 %9, 2146435071 br i1 %10, label %11, label %60 11: ; preds = %8 %12 = lshr i32 %ihi.0, 20 %13 = add nsw i32 %e.0, %12 %14 = and i32 %ihi.0, -2146435073 %15 = or i32 %14, 1072693248 %16 = call double @llvm.nvvm.lohi.i2d(i32 %ilo.0, i32 %15) #138 %17 = icmp sgt i32 %15, 1073127582 br i1 %17, label %18, label %24 18: ; preds = %11 %19 = call i32 @llvm.nvvm.d2i.lo(double %16) #138 %20 = call i32 @llvm.nvvm.d2i.hi(double %16) #138 %21 = add i32 %20, -1048576 %22 = call double @llvm.nvvm.lohi.i2d(i32 %19, i32 %21) #138 %23 = add nsw i32 %13, 1 br label %24 24: ; preds = %18, %11 %m.0 = phi double [ %22, %18 ], [ %16, %11 ] %e.1 = phi i32 [ %23, %18 ], [ %13, %11 ] %25 = fadd double %m.0, -1.000000e+00 %26 = fadd double %m.0, 1.000000e+00 %27 = call double @llvm.nvvm.rcp.approx.ftz.d(double %26) #138 %28 = fneg double %26 %29 = call double @llvm.fma.f64(double %28, double %27, double noundef 1.000000e+00) #136 %30 = call double @llvm.fma.f64(double %29, double %29, double %29) #136 %31 = call double @llvm.fma.f64(double %30, double %27, double %27) #136 %32 = fmul double %25, %31 %33 = fadd double %32, %32 %34 = fmul double %33, %33 %35 = call double @llvm.fma.f64(double %34, double noundef 0x3EB1380B3AE80F1E, double noundef 0x3ED0EE258B7A8B04) #136 %36 = call double @llvm.fma.f64(double %35, double %34, double noundef 0x3EF3B2669F02676F) #136 %37 = call double @llvm.fma.f64(double %36, double %34, double noundef 0x3F1745CBA9AB0956) #136 %38 = call double @llvm.fma.f64(double %37, double %34, double noundef 0x3F3C71C72D1B5154) #136 %39 = call double @llvm.fma.f64(double %38, double %34, double noundef 0x3F624924923BE72D) #136 %40 = call double @llvm.fma.f64(double %39, double %34, double noundef 0x3F8999999999A3C4) #136 %41 = call double @llvm.fma.f64(double %40, double %34, double noundef 0x3FB5555555555554) #136 %42 = fsub double %25, %33 %43 = fmul double %42, 2.000000e+00 %44 = fneg double %33 %45 = call double @llvm.fma.f64(double %44, double %25, double %43) #136 %46 = fmul double %31, %45 %47 = fmul double %34, %41 %48 = call double @llvm.fma.f64(double %47, double %33, double %46) #136 %49 = xor i32 %e.1, -2147483648 %50 = call double @llvm.nvvm.lohi.i2d(i32 %49, i32 noundef 1127219200) #138 %51 = call double @llvm.nvvm.lohi.i2d(i32 noundef -2147483648, i32 noundef 1127219200) #138 %52 = fsub double %50, %51 %53 = call double @llvm.fma.f64(double %52, double noundef 0x3FE62E42FEFA39EF, double %33) #136 %54 = fneg double %52 %55 = call double @llvm.fma.f64(double %54, double noundef 0x3FE62E42FEFA39EF, double %53) #136 %56 = fsub double %55, %33 %57 = fsub double %48, %56 %58 = call double @llvm.fma.f64(double %52, double noundef 0x3C7ABC9E3B39803F, double %57) #136 %59 = fadd double %53, %58 br label %65 60: ; preds = %8 %61 = call double @llvm.fma.f64(double %.0, double noundef 0x7FF0000000000000, double noundef 0x7FF0000000000000) #136 %62 = call i32 @llvm.nvvm.d2i.hi(double %.0) #138 %63 = bitcast i32 %62 to float %64 = fcmp oeq float %63, 0.000000e+00 %q.0 = select i1 %64, double 0xFFF0000000000000, double %61 br label %65 65: ; preds = %60, %24 %q.1 = phi double [ %59, %24 ], [ %q.0, %60 ] ret double %q.1 } ; Function Attrs: nofree noinline nosync nounwind readnone willreturn define dso_local double @__nv_log2(double %a) local_unnamed_addr #74 { %1 = call i32 @llvm.nvvm.d2i.hi(double %a) #138 %2 = call i32 @llvm.nvvm.d2i.lo(double %a) #138 %3 = icmp slt i32 %1, 1048576 br i1 %3, label %4, label %8 4: ; preds = %0 %5 = fmul double %a, 0x4350000000000000 %6 = call i32 @llvm.nvvm.d2i.hi(double %5) #138 %7 = call i32 @llvm.nvvm.d2i.lo(double %5) #138 br label %8 8: ; preds = %4, %0 %.0 = phi double [ %5, %4 ], [ %a, %0 ] %ihi.i.0 = phi i32 [ %6, %4 ], [ %1, %0 ] %ilo.i.0 = phi i32 [ %7, %4 ], [ %2, %0 ] %e.i.0 = phi i32 [ -1077, %4 ], [ -1023, %0 ] %9 = add i32 %ihi.i.0, -1 %10 = icmp ult i32 %9, 2146435071 br i1 %10, label %11, label %60 11: ; preds = %8 %12 = lshr i32 %ihi.i.0, 20 %13 = add nsw i32 %e.i.0, %12 %14 = and i32 %ihi.i.0, -2146435073 %15 = or i32 %14, 1072693248 %16 = call double @llvm.nvvm.lohi.i2d(i32 %ilo.i.0, i32 %15) #138 %17 = icmp sgt i32 %15, 1073127582 br i1 %17, label %18, label %24 18: ; preds = %11 %19 = call i32 @llvm.nvvm.d2i.lo(double %16) #138 %20 = call i32 @llvm.nvvm.d2i.hi(double %16) #138 %21 = add i32 %20, -1048576 %22 = call double @llvm.nvvm.lohi.i2d(i32 %19, i32 %21) #138 %23 = add nsw i32 %13, 1 br label %24 24: ; preds = %18, %11 %m.i.0 = phi double [ %22, %18 ], [ %16, %11 ] %e.i.1 = phi i32 [ %23, %18 ], [ %13, %11 ] %25 = fadd double %m.i.0, -1.000000e+00 %26 = fadd double %m.i.0, 1.000000e+00 %27 = call double @llvm.nvvm.rcp.approx.ftz.d(double %26) #138 %28 = fneg double %26 %29 = call double @llvm.fma.f64(double %28, double %27, double noundef 1.000000e+00) #136 %30 = call double @llvm.fma.f64(double %29, double %29, double %29) #136 %31 = call double @llvm.fma.f64(double %30, double %27, double %27) #136 %32 = fmul double %25, %31 %33 = fadd double %32, %32 %34 = fmul double %33, %33 %35 = call double @llvm.fma.f64(double %34, double noundef 0x3EB1380B3AE80F1E, double noundef 0x3ED0EE258B7A8B04) #136 %36 = call double @llvm.fma.f64(double %35, double %34, double noundef 0x3EF3B2669F02676F) #136 %37 = call double @llvm.fma.f64(double %36, double %34, double noundef 0x3F1745CBA9AB0956) #136 %38 = call double @llvm.fma.f64(double %37, double %34, double noundef 0x3F3C71C72D1B5154) #136 %39 = call double @llvm.fma.f64(double %38, double %34, double noundef 0x3F624924923BE72D) #136 %40 = call double @llvm.fma.f64(double %39, double %34, double noundef 0x3F8999999999A3C4) #136 %41 = call double @llvm.fma.f64(double %40, double %34, double noundef 0x3FB5555555555554) #136 %42 = fsub double %25, %33 %43 = fmul double %42, 2.000000e+00 %44 = fneg double %33 %45 = call double @llvm.fma.f64(double %44, double %25, double %43) #136 %46 = fmul double %31, %45 %47 = fmul double %34, %41 %48 = call double @llvm.fma.f64(double %47, double %33, double %46) #136 %49 = xor i32 %e.i.1, -2147483648 %50 = call double @llvm.nvvm.lohi.i2d(i32 %49, i32 noundef 1127219200) #138 %51 = call double @llvm.nvvm.lohi.i2d(i32 noundef -2147483648, i32 noundef 1127219200) #138 %52 = fsub double %50, %51 %53 = call double @llvm.fma.f64(double %52, double noundef 0x3FE62E42FEFA39EF, double %33) #136 %54 = fneg double %52 %55 = call double @llvm.fma.f64(double %54, double noundef 0x3FE62E42FEFA39EF, double %53) #136 %56 = fsub double %55, %33 %57 = fsub double %48, %56 %58 = call double @llvm.fma.f64(double %52, double noundef 0x3C7ABC9E3B39803F, double %57) #136 %59 = fadd double %53, %58 br label %__nv_log.exit 60: ; preds = %8 %61 = call double @llvm.fma.f64(double %.0, double noundef 0x7FF0000000000000, double noundef 0x7FF0000000000000) #136 %62 = call i32 @llvm.nvvm.d2i.hi(double %.0) #138 %63 = bitcast i32 %62 to float %64 = fcmp oeq float %63, 0.000000e+00 %q.i.0 = select i1 %64, double 0xFFF0000000000000, double %61 br label %__nv_log.exit __nv_log.exit: ; preds = %60, %24 %q.i.1 = phi double [ %59, %24 ], [ %q.i.0, %60 ] %65 = fmul double %q.i.1, 0x3C7777D0FFDA0D24 %66 = call double @llvm.fma.f64(double %q.i.1, double noundef 0x3FF71547652B82FE, double %65) #136 ret double %66 } ; Function Attrs: nofree noinline nosync nounwind readnone willreturn define dso_local double @__nv_log10(double %a) local_unnamed_addr #75 { %1 = call i32 @llvm.nvvm.d2i.hi(double %a) #138 %2 = call i32 @llvm.nvvm.d2i.lo(double %a) #138 %3 = icmp slt i32 %1, 1048576 br i1 %3, label %4, label %8 4: ; preds = %0 %5 = fmul double %a, 0x4350000000000000 %6 = call i32 @llvm.nvvm.d2i.hi(double %5) #138 %7 = call i32 @llvm.nvvm.d2i.lo(double %5) #138 br label %8 8: ; preds = %4, %0 %.0 = phi double [ %5, %4 ], [ %a, %0 ] %ihi.i.0 = phi i32 [ %6, %4 ], [ %1, %0 ] %ilo.i.0 = phi i32 [ %7, %4 ], [ %2, %0 ] %e.i.0 = phi i32 [ -1077, %4 ], [ -1023, %0 ] %9 = add i32 %ihi.i.0, -1 %10 = icmp ult i32 %9, 2146435071 br i1 %10, label %11, label %60 11: ; preds = %8 %12 = lshr i32 %ihi.i.0, 20 %13 = add nsw i32 %e.i.0, %12 %14 = and i32 %ihi.i.0, -2146435073 %15 = or i32 %14, 1072693248 %16 = call double @llvm.nvvm.lohi.i2d(i32 %ilo.i.0, i32 %15) #138 %17 = icmp sgt i32 %15, 1073127582 br i1 %17, label %18, label %24 18: ; preds = %11 %19 = call i32 @llvm.nvvm.d2i.lo(double %16) #138 %20 = call i32 @llvm.nvvm.d2i.hi(double %16) #138 %21 = add i32 %20, -1048576 %22 = call double @llvm.nvvm.lohi.i2d(i32 %19, i32 %21) #138 %23 = add nsw i32 %13, 1 br label %24 24: ; preds = %18, %11 %m.i.0 = phi double [ %22, %18 ], [ %16, %11 ] %e.i.1 = phi i32 [ %23, %18 ], [ %13, %11 ] %25 = fadd double %m.i.0, -1.000000e+00 %26 = fadd double %m.i.0, 1.000000e+00 %27 = call double @llvm.nvvm.rcp.approx.ftz.d(double %26) #138 %28 = fneg double %26 %29 = call double @llvm.fma.f64(double %28, double %27, double noundef 1.000000e+00) #136 %30 = call double @llvm.fma.f64(double %29, double %29, double %29) #136 %31 = call double @llvm.fma.f64(double %30, double %27, double %27) #136 %32 = fmul double %25, %31 %33 = fadd double %32, %32 %34 = fmul double %33, %33 %35 = call double @llvm.fma.f64(double %34, double noundef 0x3EB1380B3AE80F1E, double noundef 0x3ED0EE258B7A8B04) #136 %36 = call double @llvm.fma.f64(double %35, double %34, double noundef 0x3EF3B2669F02676F) #136 %37 = call double @llvm.fma.f64(double %36, double %34, double noundef 0x3F1745CBA9AB0956) #136 %38 = call double @llvm.fma.f64(double %37, double %34, double noundef 0x3F3C71C72D1B5154) #136 %39 = call double @llvm.fma.f64(double %38, double %34, double noundef 0x3F624924923BE72D) #136 %40 = call double @llvm.fma.f64(double %39, double %34, double noundef 0x3F8999999999A3C4) #136 %41 = call double @llvm.fma.f64(double %40, double %34, double noundef 0x3FB5555555555554) #136 %42 = fsub double %25, %33 %43 = fmul double %42, 2.000000e+00 %44 = fneg double %33 %45 = call double @llvm.fma.f64(double %44, double %25, double %43) #136 %46 = fmul double %31, %45 %47 = fmul double %34, %41 %48 = call double @llvm.fma.f64(double %47, double %33, double %46) #136 %49 = xor i32 %e.i.1, -2147483648 %50 = call double @llvm.nvvm.lohi.i2d(i32 %49, i32 noundef 1127219200) #138 %51 = call double @llvm.nvvm.lohi.i2d(i32 noundef -2147483648, i32 noundef 1127219200) #138 %52 = fsub double %50, %51 %53 = call double @llvm.fma.f64(double %52, double noundef 0x3FE62E42FEFA39EF, double %33) #136 %54 = fneg double %52 %55 = call double @llvm.fma.f64(double %54, double noundef 0x3FE62E42FEFA39EF, double %53) #136 %56 = fsub double %55, %33 %57 = fsub double %48, %56 %58 = call double @llvm.fma.f64(double %52, double noundef 0x3C7ABC9E3B39803F, double %57) #136 %59 = fadd double %53, %58 br label %__nv_log.exit 60: ; preds = %8 %61 = call double @llvm.fma.f64(double %.0, double noundef 0x7FF0000000000000, double noundef 0x7FF0000000000000) #136 %62 = call i32 @llvm.nvvm.d2i.hi(double %.0) #138 %63 = bitcast i32 %62 to float %64 = fcmp oeq float %63, 0.000000e+00 %q.i.0 = select i1 %64, double 0xFFF0000000000000, double %61 br label %__nv_log.exit __nv_log.exit: ; preds = %60, %24 %q.i.1 = phi double [ %59, %24 ], [ %q.i.0, %60 ] %65 = fmul double %q.i.1, 0x3C695355BAAAFAD3 %66 = call double @llvm.fma.f64(double %q.i.1, double noundef 0x3FDBCB7B1526E50E, double %65) #136 ret double %66 } ; Function Attrs: nofree noinline nosync nounwind readnone willreturn define dso_local double @__nv_log1p(double %a) local_unnamed_addr #76 { %1 = call i32 @llvm.nvvm.d2i.hi(double %a) #138 %2 = bitcast i32 %1 to float %3 = fcmp olt float %2, 0x3FFCAAAAA0000000 %4 = fcmp ogt float %2, 0xBFFB333320000000 %or.cond = and i1 %3, %4 br i1 %or.cond, label %5, label %22 5: ; preds = %0 %6 = fadd double %a, 2.000000e+00 %7 = fdiv double %a, %6 %8 = fneg double %a %9 = fmul double %7, %8 %10 = fadd double %9, %a %11 = fmul double %10, %10 %12 = call double @llvm.fma.f64(double %11, double noundef 0x3EB372FB2FBE14B5, double noundef 0x3ED087FFCEB2DC44) #136 %13 = call double @llvm.fma.f64(double %12, double %11, double noundef 0x3EF3B9FF890F468C) #136 %14 = call double @llvm.fma.f64(double %13, double %11, double noundef 0x3F17457EFD51BAF8) #136 %15 = call double @llvm.fma.f64(double %14, double %11, double noundef 0x3F3C71C8DE3CE825) #136 %16 = call double @llvm.fma.f64(double %15, double %11, double noundef 0x3F6249248FA4661F) #136 %17 = call double @llvm.fma.f64(double %16, double %11, double noundef 0x3F899999999D70C4) #136 %18 = call double @llvm.fma.f64(double %17, double %11, double noundef 0x3FB5555555555462) #136 %19 = fmul double %11, %18 %20 = call double @llvm.fma.f64(double %19, double %10, double %9) #136 %21 = fadd double %20, %a br label %__nv_log.exit 22: ; preds = %0 %23 = fadd double %a, 1.000000e+00 %24 = call i32 @llvm.nvvm.d2i.hi(double %23) #138 %25 = call i32 @llvm.nvvm.d2i.lo(double %23) #138 %26 = icmp slt i32 %24, 1048576 br i1 %26, label %27, label %31 27: ; preds = %22 %28 = fmul double %23, 0x4350000000000000 %29 = call i32 @llvm.nvvm.d2i.hi(double %28) #138 %30 = call i32 @llvm.nvvm.d2i.lo(double %28) #138 br label %31 31: ; preds = %27, %22 %.0 = phi double [ %28, %27 ], [ %23, %22 ] %ihi.i.0 = phi i32 [ %29, %27 ], [ %24, %22 ] %ilo.i.0 = phi i32 [ %30, %27 ], [ %25, %22 ] %e.i.0 = phi i32 [ -1077, %27 ], [ -1023, %22 ] %32 = add i32 %ihi.i.0, -1 %33 = icmp ult i32 %32, 2146435071 br i1 %33, label %34, label %83 34: ; preds = %31 %35 = lshr i32 %ihi.i.0, 20 %36 = add nsw i32 %e.i.0, %35 %37 = and i32 %ihi.i.0, -2146435073 %38 = or i32 %37, 1072693248 %39 = call double @llvm.nvvm.lohi.i2d(i32 %ilo.i.0, i32 %38) #138 %40 = icmp sgt i32 %38, 1073127582 br i1 %40, label %41, label %47 41: ; preds = %34 %42 = call i32 @llvm.nvvm.d2i.lo(double %39) #138 %43 = call i32 @llvm.nvvm.d2i.hi(double %39) #138 %44 = add i32 %43, -1048576 %45 = call double @llvm.nvvm.lohi.i2d(i32 %42, i32 %44) #138 %46 = add nsw i32 %36, 1 br label %47 47: ; preds = %41, %34 %m.i.0 = phi double [ %45, %41 ], [ %39, %34 ] %e.i.1 = phi i32 [ %46, %41 ], [ %36, %34 ] %48 = fadd double %m.i.0, -1.000000e+00 %49 = fadd double %m.i.0, 1.000000e+00 %50 = call double @llvm.nvvm.rcp.approx.ftz.d(double %49) #138 %51 = fneg double %49 %52 = call double @llvm.fma.f64(double %51, double %50, double noundef 1.000000e+00) #136 %53 = call double @llvm.fma.f64(double %52, double %52, double %52) #136 %54 = call double @llvm.fma.f64(double %53, double %50, double %50) #136 %55 = fmul double %48, %54 %56 = fadd double %55, %55 %57 = fmul double %56, %56 %58 = call double @llvm.fma.f64(double %57, double noundef 0x3EB1380B3AE80F1E, double noundef 0x3ED0EE258B7A8B04) #136 %59 = call double @llvm.fma.f64(double %58, double %57, double noundef 0x3EF3B2669F02676F) #136 %60 = call double @llvm.fma.f64(double %59, double %57, double noundef 0x3F1745CBA9AB0956) #136 %61 = call double @llvm.fma.f64(double %60, double %57, double noundef 0x3F3C71C72D1B5154) #136 %62 = call double @llvm.fma.f64(double %61, double %57, double noundef 0x3F624924923BE72D) #136 %63 = call double @llvm.fma.f64(double %62, double %57, double noundef 0x3F8999999999A3C4) #136 %64 = call double @llvm.fma.f64(double %63, double %57, double noundef 0x3FB5555555555554) #136 %65 = fsub double %48, %56 %66 = fmul double %65, 2.000000e+00 %67 = fneg double %56 %68 = call double @llvm.fma.f64(double %67, double %48, double %66) #136 %69 = fmul double %54, %68 %70 = fmul double %57, %64 %71 = call double @llvm.fma.f64(double %70, double %56, double %69) #136 %72 = xor i32 %e.i.1, -2147483648 %73 = call double @llvm.nvvm.lohi.i2d(i32 %72, i32 noundef 1127219200) #138 %74 = call double @llvm.nvvm.lohi.i2d(i32 noundef -2147483648, i32 noundef 1127219200) #138 %75 = fsub double %73, %74 %76 = call double @llvm.fma.f64(double %75, double noundef 0x3FE62E42FEFA39EF, double %56) #136 %77 = fneg double %75 %78 = call double @llvm.fma.f64(double %77, double noundef 0x3FE62E42FEFA39EF, double %76) #136 %79 = fsub double %78, %56 %80 = fsub double %71, %79 %81 = call double @llvm.fma.f64(double %75, double noundef 0x3C7ABC9E3B39803F, double %80) #136 %82 = fadd double %76, %81 br label %__nv_log.exit 83: ; preds = %31 %84 = call double @llvm.fma.f64(double %.0, double noundef 0x7FF0000000000000, double noundef 0x7FF0000000000000) #136 %85 = call i32 @llvm.nvvm.d2i.hi(double %.0) #138 %86 = bitcast i32 %85 to float %87 = fcmp oeq float %86, 0.000000e+00 %q.i.0 = select i1 %87, double 0xFFF0000000000000, double %84 br label %__nv_log.exit __nv_log.exit: ; preds = %47, %83, %5 %t.0 = phi double [ %21, %5 ], [ %82, %47 ], [ %q.i.0, %83 ] ret double %t.0 } ; Function Attrs: noinline nounwind define dso_local double @__nv_exp(double %a) local_unnamed_addr #77 { __internal_fast_icmp_abs_lt.exit3: %0 = call double @llvm.fma.f64(double %a, double noundef 0x3FF71547652B82FE, double noundef 0x4338000000000000) #136 %1 = call i32 @llvm.nvvm.d2i.lo(double %0) #138 %2 = fadd double %0, 0xC338000000000000 %3 = call double @llvm.fma.f64(double %2, double noundef 0xBFE62E42FEFA39EF, double %a) #136 %4 = call double @llvm.fma.f64(double %2, double noundef 0xBC7ABC9E3B39803F, double %3) #136 %5 = call double @llvm.fma.f64(double %4, double noundef 0x3E5ADE1569CE2BDF, double noundef 0x3E928AF3FCA213EA) #136 %6 = call double @llvm.fma.f64(double %5, double %4, double noundef 0x3EC71DEE62401315) #136 %7 = call double @llvm.fma.f64(double %6, double %4, double noundef 0x3EFA01997C89EB71) #136 %8 = call double @llvm.fma.f64(double %7, double %4, double noundef 0x3F2A01A014761F65) #136 %9 = call double @llvm.fma.f64(double %8, double %4, double noundef 0x3F56C16C1852B7AF) #136 %10 = call double @llvm.fma.f64(double %9, double %4, double noundef 0x3F81111111122322) #136 %11 = call double @llvm.fma.f64(double %10, double %4, double noundef 0x3FA55555555502A1) #136 %12 = call double @llvm.fma.f64(double %11, double %4, double noundef 0x3FC5555555555511) #136 %13 = call double @llvm.fma.f64(double %12, double %4, double noundef 0x3FE000000000000B) #136 %14 = call double @llvm.fma.f64(double %13, double %4, double noundef 1.000000e+00) #136 %15 = call double @llvm.fma.f64(double %14, double %4, double noundef 1.000000e+00) #136 %16 = call i32 @llvm.nvvm.d2i.lo(double %15) #138 %17 = call i32 @llvm.nvvm.d2i.hi(double %15) #138 %18 = shl i32 %1, 20 %19 = add i32 %17, %18 %20 = call double @llvm.nvvm.lohi.i2d(i32 %16, i32 %19) #138 %21 = call i32 @llvm.nvvm.d2i.hi(double %a) #138 %22 = bitcast i32 %21 to float %23 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not = icmp eq i32 %23, 0 %24 = call float @llvm.nvvm.fabs.ftz.f(float %22) #135 %25 = call float @llvm.fabs.f32(float %22) %.01 = select i1 %.not, float %25, float %24 %26 = fcmp olt float %.01, 0x4010C46560000000 br i1 %26, label %41, label %__internal_fast_icmp_abs_lt.exit __internal_fast_icmp_abs_lt.exit: ; preds = %__internal_fast_icmp_abs_lt.exit3 %27 = fcmp olt double %a, 0.000000e+00 %28 = fadd double %a, 0x7FF0000000000000 %z.0 = select i1 %27, double 0.000000e+00, double %28 %29 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not1 = icmp eq i32 %29, 0 %.0 = select i1 %.not1, float %25, float %24 %30 = fcmp olt float %.0, 0x4010E90000000000 br i1 %30, label %31, label %41 31: ; preds = %__internal_fast_icmp_abs_lt.exit %32 = sdiv i32 %1, 2 %33 = shl i32 %32, 20 %34 = add i32 %17, %33 %35 = call double @llvm.nvvm.lohi.i2d(i32 %16, i32 %34) #135 %36 = sub nsw i32 %1, %32 %37 = shl i32 %36, 20 %38 = add nsw i32 %37, 1072693248 %39 = call double @llvm.nvvm.lohi.i2d(i32 noundef 0, i32 %38) #135 %40 = fmul double %39, %35 br label %41 41: ; preds = %__internal_fast_icmp_abs_lt.exit, %31, %__internal_fast_icmp_abs_lt.exit3 %z.2 = phi double [ %20, %__internal_fast_icmp_abs_lt.exit3 ], [ %40, %31 ], [ %z.0, %__internal_fast_icmp_abs_lt.exit ] ret double %z.2 } ; Function Attrs: noinline nounwind define dso_local double @__nv_exp2(double %a) local_unnamed_addr #78 { __internal_fast_icmp_abs_lt.exit4: %0 = fadd double %a, 0x4338000000000000 %1 = fadd double %0, 0xC338000000000000 %2 = call i32 @llvm.nvvm.d2i.lo(double %0) #138 %3 = fsub double %a, %1 %4 = fmul double %3, 0x3C7ABC9E3B39803F %5 = call double @llvm.fma.f64(double %3, double noundef 0x3FE62E42FEFA39EF, double %4) #136 %6 = call double @llvm.fma.f64(double %5, double noundef 0x3E5ADE1569CE2BDF, double noundef 0x3E928AF3FCA213EA) #136 %7 = call double @llvm.fma.f64(double %6, double %5, double noundef 0x3EC71DEE62401315) #136 %8 = call double @llvm.fma.f64(double %7, double %5, double noundef 0x3EFA01997C89EB71) #136 %9 = call double @llvm.fma.f64(double %8, double %5, double noundef 0x3F2A01A014761F65) #136 %10 = call double @llvm.fma.f64(double %9, double %5, double noundef 0x3F56C16C1852B7AF) #136 %11 = call double @llvm.fma.f64(double %10, double %5, double noundef 0x3F81111111122322) #136 %12 = call double @llvm.fma.f64(double %11, double %5, double noundef 0x3FA55555555502A1) #136 %13 = call double @llvm.fma.f64(double %12, double %5, double noundef 0x3FC5555555555511) #136 %14 = call double @llvm.fma.f64(double %13, double %5, double noundef 0x3FE000000000000B) #136 %15 = call double @llvm.fma.f64(double %14, double %5, double noundef 1.000000e+00) #136 %16 = call double @llvm.fma.f64(double %15, double %5, double noundef 1.000000e+00) #136 %17 = call i32 @llvm.nvvm.d2i.lo(double %16) #138 %18 = call i32 @llvm.nvvm.d2i.hi(double %16) #138 %19 = shl i32 %2, 20 %20 = add i32 %18, %19 %21 = call double @llvm.nvvm.lohi.i2d(i32 %17, i32 %20) #138 %22 = call i32 @llvm.nvvm.d2i.hi(double %a) #138 %23 = bitcast i32 %22 to float %24 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not = icmp eq i32 %24, 0 %25 = call float @llvm.nvvm.fabs.ftz.f(float %23) #135 %26 = call float @llvm.fabs.f32(float %23) %.01 = select i1 %.not, float %26, float %25 %27 = fcmp olt float %.01, 0x4011FE0000000000 br i1 %27, label %45, label %__internal_fast_icmp_abs_lt.exit __internal_fast_icmp_abs_lt.exit: ; preds = %__internal_fast_icmp_abs_lt.exit4 %28 = icmp slt i32 %22, 0 %29 = select i1 %28, double 0.000000e+00, double 0x7FF0000000000000 %30 = call double @llvm.fabs.f64(double %a) %31 = fcmp ugt double %30, 0x7FF0000000000000 %32 = fadd double %a, %a %z.0 = select i1 %31, double %32, double %29 %33 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not1 = icmp eq i32 %33, 0 %.0 = select i1 %.not1, float %26, float %25 %34 = fcmp olt float %.0, 0x4012198000000000 br i1 %34, label %35, label %45 35: ; preds = %__internal_fast_icmp_abs_lt.exit %36 = sdiv i32 %2, 2 %37 = shl i32 %36, 20 %38 = add i32 %18, %37 %39 = call double @llvm.nvvm.lohi.i2d(i32 %17, i32 %38) #135 %40 = sub nsw i32 %2, %36 %41 = shl i32 %40, 20 %42 = add nsw i32 %41, 1072693248 %43 = call double @llvm.nvvm.lohi.i2d(i32 noundef 0, i32 %42) #135 %44 = fmul double %43, %39 br label %45 45: ; preds = %__internal_fast_icmp_abs_lt.exit, %35, %__internal_fast_icmp_abs_lt.exit4 %z.2 = phi double [ %21, %__internal_fast_icmp_abs_lt.exit4 ], [ %44, %35 ], [ %z.0, %__internal_fast_icmp_abs_lt.exit ] ret double %z.2 } ; Function Attrs: noinline nounwind define dso_local double @__nv_exp10(double %a) local_unnamed_addr #79 { __internal_fast_icmp_abs_lt.exit4: %0 = call double @llvm.fma.f64(double %a, double noundef 0x400A934F0979A371, double noundef 0x4338000000000000) #136 %1 = call i32 @llvm.nvvm.d2i.lo(double %0) #138 %2 = fadd double %0, 0xC338000000000000 %3 = call double @llvm.fma.f64(double %2, double noundef 0xBFD34413509F79FF, double %a) #136 %4 = call double @llvm.fma.f64(double %2, double noundef 0x3C49DC1DA994FD21, double %3) #136 %5 = fmul double %4, 0xBCAF48AD494EA3E9 %6 = call double @llvm.fma.f64(double %4, double noundef 0x40026BB1BBB55516, double %5) #136 %7 = call double @llvm.fma.f64(double %6, double noundef 0x3E5ADE1569CE2BDF, double noundef 0x3E928AF3FCA213EA) #136 %8 = call double @llvm.fma.f64(double %7, double %6, double noundef 0x3EC71DEE62401315) #136 %9 = call double @llvm.fma.f64(double %8, double %6, double noundef 0x3EFA01997C89EB71) #136 %10 = call double @llvm.fma.f64(double %9, double %6, double noundef 0x3F2A01A014761F65) #136 %11 = call double @llvm.fma.f64(double %10, double %6, double noundef 0x3F56C16C1852B7AF) #136 %12 = call double @llvm.fma.f64(double %11, double %6, double noundef 0x3F81111111122322) #136 %13 = call double @llvm.fma.f64(double %12, double %6, double noundef 0x3FA55555555502A1) #136 %14 = call double @llvm.fma.f64(double %13, double %6, double noundef 0x3FC5555555555511) #136 %15 = call double @llvm.fma.f64(double %14, double %6, double noundef 0x3FE000000000000B) #136 %16 = call double @llvm.fma.f64(double %15, double %6, double noundef 1.000000e+00) #136 %17 = call double @llvm.fma.f64(double %16, double %6, double noundef 1.000000e+00) #136 %18 = call i32 @llvm.nvvm.d2i.lo(double %17) #138 %19 = call i32 @llvm.nvvm.d2i.hi(double %17) #138 %20 = shl i32 %1, 20 %21 = add i32 %19, %20 %22 = call double @llvm.nvvm.lohi.i2d(i32 %18, i32 %21) #138 %23 = call i32 @llvm.nvvm.d2i.hi(double %a) #138 %24 = bitcast i32 %23 to float %25 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not = icmp eq i32 %25, 0 %26 = call float @llvm.nvvm.fabs.ftz.f(float %24) #135 %27 = call float @llvm.fabs.f32(float %24) %.01 = select i1 %.not, float %27, float %26 %28 = fcmp olt float %.01, 0x400E674E20000000 br i1 %28, label %46, label %__internal_fast_icmp_abs_lt.exit __internal_fast_icmp_abs_lt.exit: ; preds = %__internal_fast_icmp_abs_lt.exit4 %29 = icmp slt i32 %23, 0 %30 = select i1 %29, double 0.000000e+00, double 0x7FF0000000000000 %31 = call double @llvm.fabs.f64(double %a) %32 = fcmp ugt double %31, 0x7FF0000000000000 %33 = fadd double %a, %a %z.0 = select i1 %32, double %33, double %30 %34 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not1 = icmp eq i32 %34, 0 %.0 = select i1 %.not1, float %27, float %26 %35 = fcmp olt float %.0, 0x400E873700000000 br i1 %35, label %36, label %46 36: ; preds = %__internal_fast_icmp_abs_lt.exit %37 = sdiv i32 %1, 2 %38 = shl i32 %37, 20 %39 = add i32 %19, %38 %40 = call double @llvm.nvvm.lohi.i2d(i32 %18, i32 %39) #135 %41 = sub nsw i32 %1, %37 %42 = shl i32 %41, 20 %43 = add nsw i32 %42, 1072693248 %44 = call double @llvm.nvvm.lohi.i2d(i32 noundef 0, i32 %43) #135 %45 = fmul double %44, %40 br label %46 46: ; preds = %__internal_fast_icmp_abs_lt.exit, %36, %__internal_fast_icmp_abs_lt.exit4 %z.2 = phi double [ %22, %__internal_fast_icmp_abs_lt.exit4 ], [ %45, %36 ], [ %z.0, %__internal_fast_icmp_abs_lt.exit ] ret double %z.2 } ; Function Attrs: nofree noinline nosync nounwind readnone willreturn define dso_local double @__nv_expm1(double %a) local_unnamed_addr #80 { %1 = call i32 @llvm.nvvm.d2i.hi(double %a) #138 %2 = bitcast i32 %1 to float %3 = fcmp olt float %2, 0x4010C5C860000000 %4 = fcmp ogt float %2, 0xC009500000000000 %or.cond = and i1 %3, %4 br i1 %or.cond, label %__internal_expm1_scaled.exit, label %32 __internal_expm1_scaled.exit: ; preds = %0 %5 = call double @llvm.fma.f64(double %a, double noundef 0x3FF71547652B82FE, double noundef 0x4338000000000000) #136 %6 = call i32 @llvm.nvvm.d2i.lo(double %5) #138 %7 = fadd double %5, 0xC338000000000000 %8 = call double @llvm.fma.f64(double %7, double noundef 0xBFE62E42FEFA39EF, double %a) #136 %9 = call double @llvm.fma.f64(double %7, double noundef 0xBC7ABC9E3B39803F, double %8) #136 %10 = shl i32 %1, 1 %11 = icmp ult i32 %10, 2142496327 %spec.select = select i1 %11, double %a, double %9 %spec.select2 = select i1 %11, i32 0, i32 %6 %12 = call double @llvm.fma.f64(double %spec.select, double noundef 0x3E21F4076ACD15B6, double noundef 0x3E5AF86D8EBD13CD) #136 %13 = call double @llvm.fma.f64(double %12, double %spec.select, double noundef 0x3E927E5092BA033D) #136 %14 = call double @llvm.fma.f64(double %13, double %spec.select, double noundef 0x3EC71DDE6C5F9DA1) #136 %15 = call double @llvm.fma.f64(double %14, double %spec.select, double noundef 0x3EFA01A018D034E6) #136 %16 = call double @llvm.fma.f64(double %15, double %spec.select, double noundef 0x3F2A01A01B3B6940) #136 %17 = call double @llvm.fma.f64(double %16, double %spec.select, double noundef 0x3F56C16C16C1B5DD) #136 %18 = call double @llvm.fma.f64(double %17, double %spec.select, double noundef 0x3F8111111110F74D) #136 %19 = call double @llvm.fma.f64(double %18, double %spec.select, double noundef 0x3FA555555555554D) #136 %20 = call double @llvm.fma.f64(double %19, double %spec.select, double noundef 0x3FC5555555555557) #136 %21 = call double @llvm.fma.f64(double %20, double %spec.select, double noundef 5.000000e-01) #136 %22 = fmul double %spec.select, %21 %23 = call double @llvm.fma.f64(double %22, double %spec.select, double %spec.select) #136 %24 = icmp eq i32 %spec.select2, 1024 %spec.select2.op = shl i32 %spec.select2, 20 %spec.select2.op.op = add i32 %spec.select2.op, 1072693248 %25 = select i1 %24, i32 2145386496, i32 %spec.select2.op.op %26 = call double @llvm.nvvm.lohi.i2d(i32 noundef 0, i32 %25) #138 %27 = call double @llvm.nvvm.lohi.i2d(i32 noundef 0, i32 noundef 1072693248) #138 %28 = fsub double %26, %27 %29 = call double @llvm.fma.f64(double %23, double %26, double %28) #136 %30 = select i1 %24, double %29, double -0.000000e+00 %t.i.0 = fadd double %29, %30 %31 = icmp eq i32 %10, 0 %t.i.1 = select i1 %31, double %spec.select, double %t.i.0 br label %38 32: ; preds = %0 %33 = icmp slt i32 %1, 0 %34 = select i1 %33, double -1.000000e+00, double 0x7FF0000000000000 %35 = call double @llvm.fabs.f64(double %a) #136 %36 = fcmp ugt double %35, 0x7FF0000000000000 %37 = fadd double %a, %a %t.0 = select i1 %36, double %37, double %34 br label %38 38: ; preds = %32, %__internal_expm1_scaled.exit %t.1 = phi double [ %t.i.1, %__internal_expm1_scaled.exit ], [ %t.0, %32 ] ret double %t.1 } ; Function Attrs: nofree noinline nosync nounwind readnone willreturn define dso_local double @__nv_cosh(double %a) local_unnamed_addr #81 { %1 = call i32 @llvm.nvvm.d2i.hi(double %a) #138 %2 = and i32 %1, 2147483647 %3 = call i32 @llvm.nvvm.d2i.lo(double %a) #138 %4 = call double @llvm.nvvm.lohi.i2d(i32 %3, i32 %2) #138 %5 = call i32 @llvm.nvvm.d2i.hi(double %4) #138 %6 = icmp ult i32 %5, 1082536911 br i1 %6, label %7, label %36 7: ; preds = %0 %8 = call double @llvm.fma.f64(double %4, double noundef 0x3FF71547652B82FE, double noundef 0x4338000000000000) #136 %9 = call i32 @llvm.nvvm.d2i.lo(double %8) #138 %10 = fadd double %8, 0xC338000000000000 %11 = call double @llvm.fma.f64(double %10, double noundef 0xBFE62E42FEFA39EF, double %4) #136 %12 = call double @llvm.fma.f64(double %10, double noundef 0xBC7ABC9E3B39803F, double %11) #136 %13 = call double @llvm.fma.f64(double %12, double noundef 0x3E5ADE1569CE2BDF, double noundef 0x3E928AF3FCA213EA) #136 %14 = call double @llvm.fma.f64(double %13, double %12, double noundef 0x3EC71DEE62401315) #136 %15 = call double @llvm.fma.f64(double %14, double %12, double noundef 0x3EFA01997C89EB71) #136 %16 = call double @llvm.fma.f64(double %15, double %12, double noundef 0x3F2A01A014761F65) #136 %17 = call double @llvm.fma.f64(double %16, double %12, double noundef 0x3F56C16C1852B7AF) #136 %18 = call double @llvm.fma.f64(double %17, double %12, double noundef 0x3F81111111122322) #136 %19 = call double @llvm.fma.f64(double %18, double %12, double noundef 0x3FA55555555502A1) #136 %20 = call double @llvm.fma.f64(double %19, double %12, double noundef 0x3FC5555555555511) #136 %21 = call double @llvm.fma.f64(double %20, double %12, double noundef 0x3FE000000000000B) #136 %22 = call double @llvm.fma.f64(double %21, double %12, double noundef 1.000000e+00) #136 %23 = call double @llvm.fma.f64(double %22, double %12, double noundef 1.000000e+00) #136 %24 = call i32 @llvm.nvvm.d2i.lo(double %23) #138 %25 = call i32 @llvm.nvvm.d2i.hi(double %23) #138 %26 = shl i32 %9, 20 %27 = add i32 %26, -2097152 %28 = add i32 %27, %25 %29 = call double @llvm.nvvm.lohi.i2d(i32 %24, i32 %28) #138 %30 = call double @llvm.nvvm.rcp.approx.ftz.d(double %29) #138 %31 = fneg double %29 %32 = call double @llvm.fma.f64(double %31, double %30, double noundef 1.000000e+00) #136 %33 = call double @llvm.fma.f64(double %32, double %32, double %32) #136 %34 = call double @llvm.fma.f64(double %33, double %30, double %30) #136 %35 = call double @llvm.fma.f64(double %34, double noundef 6.250000e-02, double %29) #136 br label %38 36: ; preds = %0 %37 = fcmp ole double %a, 0x7FF0000000000000 %.0 = select i1 %37, double 0x7FF0000000000000, double %a br label %38 38: ; preds = %36, %7 %.1 = phi double [ %35, %7 ], [ %.0, %36 ] %39 = fadd double %.1, %.1 ret double %39 } ; Function Attrs: nofree noinline nosync nounwind readnone willreturn define dso_local double @__nv_sinh(double %a) local_unnamed_addr #82 { %1 = call i32 @llvm.nvvm.d2i.hi(double %a) #138 %2 = and i32 %1, 2147483647 %3 = call i32 @llvm.nvvm.d2i.lo(double %a) #138 %4 = call double @llvm.nvvm.lohi.i2d(i32 %3, i32 %2) #138 %5 = icmp ult i32 %2, 1072693248 br i1 %5, label %6, label %__internal_expm1_scaled.exit 6: ; preds = %0 %7 = fmul double %4, %4 %8 = call double @llvm.fma.f64(double %7, double noundef 0x3D6B4C75AB274C53, double noundef 0x3DE611A561D87DEF) #136 %9 = call double @llvm.fma.f64(double %8, double %7, double noundef 0x3E5AE64671B18F5C) #136 %10 = call double @llvm.fma.f64(double %9, double %7, double noundef 0x3EC71DE3A465B1E4) #136 %11 = call double @llvm.fma.f64(double %10, double %7, double noundef 0x3F2A01A01A02899D) #136 %12 = call double @llvm.fma.f64(double %11, double %7, double noundef 0x3F811111111110A6) #136 %13 = call double @llvm.fma.f64(double %12, double %7, double noundef 0x3FC5555555555556) #136 %14 = fmul double %7, %13 %15 = call double @llvm.fma.f64(double %14, double %4, double %4) #136 br label %49 __internal_expm1_scaled.exit: ; preds = %0 %16 = call i32 @llvm.nvvm.d2i.hi(double %4) #138 %17 = call double @llvm.fma.f64(double %4, double noundef 0x3FF71547652B82FE, double noundef 0x4338000000000000) #136 %18 = call i32 @llvm.nvvm.d2i.lo(double %17) #138 %19 = add nsw i32 %18, -1 %20 = fadd double %17, 0xC338000000000000 %21 = call double @llvm.fma.f64(double %20, double noundef 0xBFE62E42FEFA39EF, double %4) #136 %22 = call double @llvm.fma.f64(double %20, double noundef 0xBC7ABC9E3B39803F, double %21) #136 %23 = shl i32 %16, 1 %24 = icmp ult i32 %23, 2142496327 %spec.select = select i1 %24, double %4, double %22 %spec.select1 = select i1 %24, i32 0, i32 %19 %25 = call double @llvm.fma.f64(double %spec.select, double noundef 0x3E21F4076ACD15B6, double noundef 0x3E5AF86D8EBD13CD) #136 %26 = call double @llvm.fma.f64(double %25, double %spec.select, double noundef 0x3E927E5092BA033D) #136 %27 = call double @llvm.fma.f64(double %26, double %spec.select, double noundef 0x3EC71DDE6C5F9DA1) #136 %28 = call double @llvm.fma.f64(double %27, double %spec.select, double noundef 0x3EFA01A018D034E6) #136 %29 = call double @llvm.fma.f64(double %28, double %spec.select, double noundef 0x3F2A01A01B3B6940) #136 %30 = call double @llvm.fma.f64(double %29, double %spec.select, double noundef 0x3F56C16C16C1B5DD) #136 %31 = call double @llvm.fma.f64(double %30, double %spec.select, double noundef 0x3F8111111110F74D) #136 %32 = call double @llvm.fma.f64(double %31, double %spec.select, double noundef 0x3FA555555555554D) #136 %33 = call double @llvm.fma.f64(double %32, double %spec.select, double noundef 0x3FC5555555555557) #136 %34 = call double @llvm.fma.f64(double %33, double %spec.select, double noundef 5.000000e-01) #136 %35 = fmul double %spec.select, %34 %36 = call double @llvm.fma.f64(double %35, double %spec.select, double %spec.select) #136 %37 = icmp eq i32 %spec.select1, 1024 %spec.select1.op = shl i32 %spec.select1, 20 %spec.select1.op.op = add i32 %spec.select1.op, 1072693248 %38 = select i1 %37, i32 2145386496, i32 %spec.select1.op.op %39 = call double @llvm.nvvm.lohi.i2d(i32 noundef 0, i32 %38) #138 %40 = call double @llvm.nvvm.lohi.i2d(i32 noundef 0, i32 noundef 1071644672) #138 %41 = fsub double %39, %40 %42 = call double @llvm.fma.f64(double %36, double %39, double %41) #136 %43 = select i1 %37, double %42, double -0.000000e+00 %t.i.0 = fadd double %42, %43 %44 = icmp eq i32 %23, 0 %t.i.1 = select i1 %44, double %spec.select, double %t.i.0 %45 = call double @llvm.fma.f64(double %t.i.1, double noundef 2.000000e+00, double noundef 1.000000e+00) #136 %46 = fdiv double %t.i.1, %45 %47 = fadd double %t.i.1, %46 %48 = fcmp oge double %4, 0x408633CE8FB9F87E %z.0 = select i1 %48, double 0x7FF0000000000000, double %47 br label %49 49: ; preds = %__internal_expm1_scaled.exit, %6 %z.1 = phi double [ %15, %6 ], [ %z.0, %__internal_expm1_scaled.exit ] %50 = call i32 @llvm.nvvm.d2i.lo(double %z.1) #138 %51 = call i32 @llvm.nvvm.d2i.hi(double %z.1) #138 %52 = and i32 %1, -2147483648 %53 = or i32 %51, %52 %54 = call double @llvm.nvvm.lohi.i2d(i32 %50, i32 %53) #138 ret double %54 } ; Function Attrs: nofree noinline nosync nounwind readnone willreturn define dso_local double @__nv_tanh(double %a) local_unnamed_addr #83 { %1 = call i32 @llvm.nvvm.d2i.hi(double %a) #138 %2 = and i32 %1, 2147483647 %3 = call i32 @llvm.nvvm.d2i.lo(double %a) #138 %4 = call double @llvm.nvvm.lohi.i2d(i32 %3, i32 %2) #138 %5 = fcmp ult double %4, 0x3FE4F92224DD2F1A br i1 %5, label %43, label %__internal_mexpm1.exit __internal_mexpm1.exit: ; preds = %0 %6 = fmul double %4, 2.000000e+00 %7 = fptrunc double %6 to float %8 = fmul float %7, 0x3FF7154760000000 %9 = call float @llvm.round.f32(float %8) #136 %10 = fpext float %9 to double %11 = fneg double %10 %12 = call double @llvm.fma.f64(double %11, double noundef 0x3FE62E42FEFA39EF, double %6) #136 %13 = call double @llvm.fma.f64(double %12, double noundef 0x3E5AE904A4741B81, double noundef 0x3E928A27F89B6999) #136 %14 = call double @llvm.fma.f64(double %13, double %12, double noundef 0x3EC71DE715FF7E07) #136 %15 = call double @llvm.fma.f64(double %14, double %12, double noundef 0x3EFA019A6B0AC45A) #136 %16 = call double @llvm.fma.f64(double %15, double %12, double noundef 0x3F2A01A017EED94F) #136 %17 = call double @llvm.fma.f64(double %16, double %12, double noundef 0x3F56C16C17F2A71B) #136 %18 = call double @llvm.fma.f64(double %17, double %12, double noundef 0x3F811111111173C4) #136 %19 = call double @llvm.fma.f64(double %18, double %12, double noundef 0x3FA555555555211A) #136 %20 = call double @llvm.fma.f64(double %19, double %12, double noundef 0x3FC5555555555540) #136 %21 = call double @llvm.fma.f64(double %20, double %12, double noundef 0x3FE0000000000005) #136 %22 = fmul double %12, %21 %23 = call double @llvm.fma.f64(double %22, double %12, double %12) #136 %24 = call float @llvm.nvvm.ex2.approx.ftz.f(float %9) #138 %25 = fpext float %24 to double %26 = fsub double 1.000000e+00, %25 %27 = fneg double %23 %28 = call double @llvm.fma.f64(double %27, double %25, double %26) #136 %29 = fsub double 2.000000e+00, %28 %30 = call double @llvm.nvvm.rcp.approx.ftz.d(double %29) #138 %31 = fneg double %29 %32 = call double @llvm.fma.f64(double %31, double %30, double noundef 1.000000e+00) #136 %33 = call double @llvm.fma.f64(double %32, double %32, double %32) #136 %34 = call double @llvm.fma.f64(double %33, double %30, double %30) #136 %35 = fneg double %34 %36 = call double @llvm.fma.f64(double %35, double noundef 2.000000e+00, double noundef 1.000000e+00) #136 %37 = icmp ugt i32 %2, 1077088193 %r.0 = select i1 %37, double 1.000000e+00, double %36 %38 = call i32 @llvm.nvvm.d2i.lo(double %r.0) #138 %39 = call i32 @llvm.nvvm.d2i.hi(double %r.0) #138 %40 = and i32 %1, -2147483648 %41 = or i32 %39, %40 %42 = call double @llvm.nvvm.lohi.i2d(i32 %38, i32 %41) #138 br label %57 43: ; preds = %0 %44 = fmul double %a, %a %45 = call double @llvm.fma.f64(double %44, double noundef 0xBEF0BC46E2F5E964, double noundef 0x3F14359F420AFC3D) #136 %46 = call double @llvm.fma.f64(double %45, double %44, double noundef 0xBF2DF9F0728C5D84) #136 %47 = call double @llvm.fma.f64(double %46, double %44, double noundef 0x3F4337D1CEC4F033) #136 %48 = call double @llvm.fma.f64(double %47, double %44, double noundef 0xBF57D6E9674335B3) #136 %49 = call double @llvm.fma.f64(double %48, double %44, double noundef 0x3F6D6D000D7AAD3D) #136 %50 = call double @llvm.fma.f64(double %49, double %44, double noundef 0xBF8226E1F3CF1EF5) #136 %51 = call double @llvm.fma.f64(double %50, double %44, double noundef 0x3F9664F47EC0C8CF) #136 %52 = call double @llvm.fma.f64(double %51, double %44, double noundef 0xBFABA1BA1B80AB40) #136 %53 = call double @llvm.fma.f64(double %52, double %44, double noundef 0x3FC111111110FA4A) #136 %54 = call double @llvm.fma.f64(double %53, double %44, double noundef 0xBFD5555555555550) #136 %55 = call double @llvm.fma.f64(double %54, double %44, double noundef 0.000000e+00) #136 %56 = call double @llvm.fma.f64(double %55, double %a, double %a) #136 br label %57 57: ; preds = %43, %__internal_mexpm1.exit %r.1 = phi double [ %42, %__internal_mexpm1.exit ], [ %56, %43 ] ret double %r.1 } ; Function Attrs: nofree noinline nosync nounwind readnone willreturn define dso_local double @__nv_atan2(double %a, double %b) local_unnamed_addr #84 { %1 = call double @llvm.fabs.f64(double %b) #136 %2 = call double @llvm.fabs.f64(double %a) #136 %3 = fcmp oeq double %b, 0.000000e+00 %4 = fcmp oeq double %a, 0.000000e+00 %or.cond = select i1 %3, i1 %4, i1 false br i1 %or.cond, label %5, label %15 5: ; preds = %0 %6 = call i32 @llvm.nvvm.d2i.hi(double %b) #138 %7 = icmp slt i32 %6, 0 %8 = select i1 %7, double 0x400921FB54442D18, double 0.000000e+00 %9 = call i32 @llvm.nvvm.d2i.hi(double %a) #138 %10 = call i32 @llvm.nvvm.d2i.lo(double noundef %8) #138 %11 = call i32 @llvm.nvvm.d2i.hi(double noundef %8) #138 %12 = and i32 %9, -2147483648 %13 = or i32 %11, %12 %14 = call double @llvm.nvvm.lohi.i2d(i32 %10, i32 %13) #138 br label %66 15: ; preds = %0 %16 = fcmp oeq double %1, 0x7FF0000000000000 %17 = fcmp oeq double %2, 0x7FF0000000000000 %or.cond2 = select i1 %16, i1 %17, i1 false br i1 %or.cond2, label %18, label %28 18: ; preds = %15 %19 = call i32 @llvm.nvvm.d2i.hi(double %b) #138 %20 = icmp slt i32 %19, 0 %21 = select i1 %20, double 0x4002D97C7F3321D2, double 0x3FE921FB54442D18 %22 = call i32 @llvm.nvvm.d2i.hi(double %a) #138 %23 = call i32 @llvm.nvvm.d2i.lo(double noundef %21) #138 %24 = call i32 @llvm.nvvm.d2i.hi(double noundef %21) #138 %25 = and i32 %22, -2147483648 %26 = or i32 %24, %25 %27 = call double @llvm.nvvm.lohi.i2d(i32 %23, i32 %26) #138 br label %66 28: ; preds = %15 %29 = call double @llvm.maxnum.f64(double %2, double %1) #136 %30 = call double @llvm.minnum.f64(double %2, double %1) #136 %31 = fdiv double %30, %29 %32 = fmul double %31, %31 %33 = call double @llvm.fma.f64(double %32, double noundef 0xBEF53E1D2A25FF7E, double noundef 0x3F2D3B63DBB65B49) #136 %34 = call double @llvm.fma.f64(double %33, double %32, double noundef 0xBF5312788DDE082E) #136 %35 = call double @llvm.fma.f64(double %34, double %32, double noundef 0x3F6F9690C8249315) #136 %36 = call double @llvm.fma.f64(double %35, double %32, double noundef 0xBF82CF5AABC7CF0D) #136 %37 = call double @llvm.fma.f64(double %36, double %32, double noundef 0x3F9162B0B2A3BFDE) #136 %38 = call double @llvm.fma.f64(double %37, double %32, double noundef 0xBF9A7256FEB6FC6B) #136 %39 = call double @llvm.fma.f64(double %38, double %32, double noundef 0x3FA171560CE4A489) #136 %40 = call double @llvm.fma.f64(double %39, double %32, double noundef 0xBFA4F44D841450E4) #136 %41 = call double @llvm.fma.f64(double %40, double %32, double noundef 0x3FA7EE3D3F36BB95) #136 %42 = call double @llvm.fma.f64(double %41, double %32, double noundef 0xBFAAD32AE04A9FD1) #136 %43 = call double @llvm.fma.f64(double %42, double %32, double noundef 0x3FAE17813D66954F) #136 %44 = call double @llvm.fma.f64(double %43, double %32, double noundef 0xBFB11089CA9A5BCD) #136 %45 = call double @llvm.fma.f64(double %44, double %32, double noundef 0x3FB3B12B2DB51738) #136 %46 = call double @llvm.fma.f64(double %45, double %32, double noundef 0xBFB745D022F8DC5C) #136 %47 = call double @llvm.fma.f64(double %46, double %32, double noundef 0x3FBC71C709DFE927) #136 %48 = call double @llvm.fma.f64(double %47, double %32, double noundef 0xBFC2492491FA1744) #136 %49 = call double @llvm.fma.f64(double %48, double %32, double noundef 0x3FC99999999840D2) #136 %50 = call double @llvm.fma.f64(double %49, double %32, double noundef 0xBFD555555555544C) #136 %51 = fmul double %32, %50 %52 = call double @llvm.fma.f64(double %51, double %31, double %31) #136 %53 = fcmp ogt double %2, %1 %54 = fsub double 0x3FF921FB54442D18, %52 %t0.0 = select i1 %53, double %54, double %52 %55 = call i32 @llvm.nvvm.d2i.hi(double %b) #138 %56 = icmp slt i32 %55, 0 %57 = fsub double 0x400921FB54442D18, %t0.0 %t0.1 = select i1 %56, double %57, double %t0.0 %58 = call i32 @llvm.nvvm.d2i.hi(double %a) #138 %59 = call i32 @llvm.nvvm.d2i.lo(double %t0.1) #138 %60 = call i32 @llvm.nvvm.d2i.hi(double %t0.1) #138 %61 = and i32 %58, -2147483648 %62 = or i32 %60, %61 %63 = call double @llvm.nvvm.lohi.i2d(i32 %59, i32 %62) #138 %64 = fadd double %2, %1 %65 = fcmp ole double %64, 0x7FF0000000000000 %t0.2 = select i1 %65, double %63, double %64 br label %66 66: ; preds = %18, %28, %5 %t0.4 = phi double [ %14, %5 ], [ %27, %18 ], [ %t0.2, %28 ] ret double %t0.4 } ; Function Attrs: nofree noinline nosync nounwind readnone willreturn define dso_local double @__nv_atan(double %a) local_unnamed_addr #85 { %1 = call double @llvm.fabs.f64(double %a) #136 %2 = fcmp ogt double %1, 1.000000e+00 br i1 %2, label %3, label %10 3: ; preds = %0 %4 = call double @llvm.nvvm.rcp.approx.ftz.d(double %1) #138 %5 = fneg double %1 %6 = call double @llvm.fma.f64(double %5, double %4, double noundef 1.000000e+00) #136 %7 = call double @llvm.fma.f64(double %6, double %6, double %6) #136 %8 = call double @llvm.fma.f64(double %7, double %4, double %4) #136 %9 = fcmp oeq double %1, 0x7FF0000000000000 %t1.0 = select i1 %9, double 0.000000e+00, double %8 br label %10 10: ; preds = %3, %0 %t1.1 = phi double [ %t1.0, %3 ], [ %1, %0 ] %11 = fmul double %t1.1, %t1.1 %12 = call double @llvm.fma.f64(double %11, double noundef 0xBEF53E1D2A25FF7E, double noundef 0x3F2D3B63DBB65B49) #136 %13 = call double @llvm.fma.f64(double %12, double %11, double noundef 0xBF5312788DDE082E) #136 %14 = call double @llvm.fma.f64(double %13, double %11, double noundef 0x3F6F9690C8249315) #136 %15 = call double @llvm.fma.f64(double %14, double %11, double noundef 0xBF82CF5AABC7CF0D) #136 %16 = call double @llvm.fma.f64(double %15, double %11, double noundef 0x3F9162B0B2A3BFDE) #136 %17 = call double @llvm.fma.f64(double %16, double %11, double noundef 0xBF9A7256FEB6FC6B) #136 %18 = call double @llvm.fma.f64(double %17, double %11, double noundef 0x3FA171560CE4A489) #136 %19 = call double @llvm.fma.f64(double %18, double %11, double noundef 0xBFA4F44D841450E4) #136 %20 = call double @llvm.fma.f64(double %19, double %11, double noundef 0x3FA7EE3D3F36BB95) #136 %21 = call double @llvm.fma.f64(double %20, double %11, double noundef 0xBFAAD32AE04A9FD1) #136 %22 = call double @llvm.fma.f64(double %21, double %11, double noundef 0x3FAE17813D66954F) #136 %23 = call double @llvm.fma.f64(double %22, double %11, double noundef 0xBFB11089CA9A5BCD) #136 %24 = call double @llvm.fma.f64(double %23, double %11, double noundef 0x3FB3B12B2DB51738) #136 %25 = call double @llvm.fma.f64(double %24, double %11, double noundef 0xBFB745D022F8DC5C) #136 %26 = call double @llvm.fma.f64(double %25, double %11, double noundef 0x3FBC71C709DFE927) #136 %27 = call double @llvm.fma.f64(double %26, double %11, double noundef 0xBFC2492491FA1744) #136 %28 = call double @llvm.fma.f64(double %27, double %11, double noundef 0x3FC99999999840D2) #136 %29 = call double @llvm.fma.f64(double %28, double %11, double noundef 0xBFD555555555544C) #136 %30 = fmul double %11, %29 %31 = call double @llvm.fma.f64(double %30, double %t1.1, double %t1.1) #136 %32 = fsub double 0x3FF921FB54442D18, %31 %t1.2 = select i1 %2, double %32, double %31 %33 = call i32 @llvm.nvvm.d2i.hi(double %a) #138 %34 = call i32 @llvm.nvvm.d2i.lo(double %t1.2) #138 %35 = call i32 @llvm.nvvm.d2i.hi(double %t1.2) #138 %36 = and i32 %33, -2147483648 %37 = or i32 %35, %36 %38 = call double @llvm.nvvm.lohi.i2d(i32 %34, i32 %37) #138 ret double %38 } ; Function Attrs: noinline nounwind define dso_local double @__nv_asin(double %a) local_unnamed_addr #86 { __nv_fabsf.exit: %0 = call i32 @llvm.nvvm.d2i.hi(double %a) #138 %1 = bitcast i32 %0 to float %2 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not = icmp eq i32 %2, 0 %3 = call float @llvm.nvvm.fabs.ftz.f(float %1) #135 %4 = call float @llvm.fabs.f32(float %1) %.0 = select i1 %.not, float %4, float %3 %5 = fcmp olt float %.0, 0x3FFC4CCCC0000000 br i1 %5, label %6, label %22 6: ; preds = %__nv_fabsf.exit %7 = fmul double %a, %a %8 = call double @llvm.fma.f64(double %7, double noundef 0x3FB0066BDC1895E9, double noundef 0xBFB3823B180754AF) %9 = call double @llvm.fma.f64(double %8, double %7, double noundef 0x3FB11E52CC2F79AE) %10 = call double @llvm.fma.f64(double %9, double %7, double noundef 0xBF924EAF3526861B) %11 = call double @llvm.fma.f64(double %10, double %7, double noundef 0x3F91DF02A31E6CB7) %12 = call double @llvm.fma.f64(double %11, double %7, double noundef 0x3F847D18B0EEC6CC) %13 = call double @llvm.fma.f64(double %12, double %7, double noundef 0x3F8D0AF961BA53B0) %14 = call double @llvm.fma.f64(double %13, double %7, double noundef 0x3F91BF7734CF1C48) %15 = call double @llvm.fma.f64(double %14, double %7, double noundef 0x3F96E91483144EF7) %16 = call double @llvm.fma.f64(double %15, double %7, double noundef 0x3F9F1C6E0A4F9F81) %17 = call double @llvm.fma.f64(double %16, double %7, double noundef 0x3FA6DB6DC27FA92B) %18 = call double @llvm.fma.f64(double %17, double %7, double noundef 0x3FB333333320F91B) %19 = call double @llvm.fma.f64(double %18, double %7, double noundef 0x3FC5555555555F4D) %20 = fmul double %7, %19 %21 = call double @llvm.fma.f64(double %20, double %a, double %a) br label %65 22: ; preds = %__nv_fabsf.exit %23 = call double @llvm.fabs.f64(double %a) %24 = call double @llvm.fma.f64(double %23, double noundef -5.000000e-01, double noundef 5.000000e-01) %25 = call double asm "rsqrt.approx.ftz.f64 $0, $1;", "=d,d"(double %24) #137, !srcloc !235 %26 = call i32 @llvm.nvvm.d2i.lo(double %25) #135 %27 = call i32 @llvm.nvvm.d2i.hi(double %25) #135 %28 = add i32 %27, -1048576 %29 = call double @llvm.nvvm.lohi.i2d(i32 %26, i32 %28) #135 %30 = fmul double %24, %25 %31 = fneg double %30 %32 = call double @llvm.fma.f64(double %30, double %31, double %24) %33 = call double @llvm.fma.f64(double %32, double %29, double %30) %34 = fneg double %33 %35 = call double @llvm.fma.f64(double %25, double %34, double noundef 1.000000e+00) %36 = call double @llvm.fma.f64(double %35, double %29, double %29) %37 = call double @llvm.fma.f64(double %33, double %34, double %24) %38 = call double @llvm.fma.f64(double %37, double %36, double %33) %39 = call i32 @llvm.nvvm.d2i.hi(double %24) #135 %40 = icmp slt i32 %39, 0 %spec.select = select i1 %40, double 0xFFF8000000000000, double %38 %41 = fcmp one double %24, 0.000000e+00 %t0.1 = select i1 %41, double %spec.select, double %24 %42 = call double @llvm.fma.f64(double %24, double noundef 0x3FB0066BDC1895E9, double noundef 0xBFB3823B180754AF) %43 = call double @llvm.fma.f64(double %42, double %24, double noundef 0x3FB11E52CC2F79AE) %44 = call double @llvm.fma.f64(double %43, double %24, double noundef 0xBF924EAF3526861B) %45 = call double @llvm.fma.f64(double %44, double %24, double noundef 0x3F91DF02A31E6CB7) %46 = call double @llvm.fma.f64(double %45, double %24, double noundef 0x3F847D18B0EEC6CC) %47 = call double @llvm.fma.f64(double %46, double %24, double noundef 0x3F8D0AF961BA53B0) %48 = call double @llvm.fma.f64(double %47, double %24, double noundef 0x3F91BF7734CF1C48) %49 = call double @llvm.fma.f64(double %48, double %24, double noundef 0x3F96E91483144EF7) %50 = call double @llvm.fma.f64(double %49, double %24, double noundef 0x3F9F1C6E0A4F9F81) %51 = call double @llvm.fma.f64(double %50, double %24, double noundef 0x3FA6DB6DC27FA92B) %52 = call double @llvm.fma.f64(double %51, double %24, double noundef 0x3FB333333320F91B) %53 = call double @llvm.fma.f64(double %52, double %24, double noundef 0x3FC5555555555F4D) %54 = fmul double %24, %53 %55 = fmul double %t0.1, -2.000000e+00 %56 = call double @llvm.fma.f64(double %55, double %54, double noundef 0x3C91A62633145C07) %57 = fadd double %55, 0x3FE921FB54442D18 %58 = fadd double %57, %56 %59 = fadd double %58, 0x3FE921FB54442D18 %60 = call i32 @llvm.nvvm.d2i.lo(double %59) #135 %61 = call i32 @llvm.nvvm.d2i.hi(double %59) #135 %62 = and i32 %0, -2147483648 %63 = or i32 %61, %62 %64 = call double @llvm.nvvm.lohi.i2d(i32 %60, i32 %63) #135 br label %65 65: ; preds = %22, %6 %t1.0 = phi double [ %21, %6 ], [ %64, %22 ] ret double %t1.0 } ; Function Attrs: noinline nosync nounwind readnone define dso_local double @__nv_acos(double %a) local_unnamed_addr #87 { %1 = call i32 @llvm.nvvm.d2i.hi(double %a) #138 %2 = call double @llvm.fabs.f64(double %a) #136 %3 = call i32 @llvm.nvvm.d2i.hi(double %2) #138 %4 = icmp slt i32 %3, 1071801958 br i1 %4, label %5, label %28 5: ; preds = %0 %6 = fmul double %a, %a %7 = call double @llvm.fma.f64(double %6, double noundef 0x3FB0066BDC1895E9, double noundef 0xBFB3823B180754AF) #136 %8 = call double @llvm.fma.f64(double %7, double %6, double noundef 0x3FB11E52CC2F79AE) #136 %9 = call double @llvm.fma.f64(double %8, double %6, double noundef 0xBF924EAF3526861B) #136 %10 = call double @llvm.fma.f64(double %9, double %6, double noundef 0x3F91DF02A31E6CB7) #136 %11 = call double @llvm.fma.f64(double %10, double %6, double noundef 0x3F847D18B0EEC6CC) #136 %12 = call double @llvm.fma.f64(double %11, double %6, double noundef 0x3F8D0AF961BA53B0) #136 %13 = call double @llvm.fma.f64(double %12, double %6, double noundef 0x3F91BF7734CF1C48) #136 %14 = call double @llvm.fma.f64(double %13, double %6, double noundef 0x3F96E91483144EF7) #136 %15 = call double @llvm.fma.f64(double %14, double %6, double noundef 0x3F9F1C6E0A4F9F81) #136 %16 = call double @llvm.fma.f64(double %15, double %6, double noundef 0x3FA6DB6DC27FA92B) #136 %17 = call double @llvm.fma.f64(double %16, double %6, double noundef 0x3FB333333320F91B) #136 %18 = call double @llvm.fma.f64(double %17, double %6, double noundef 0x3FC5555555555F4D) #136 %19 = fmul double %6, %18 %20 = call double @llvm.fma.f64(double %19, double %2, double %2) #136 %21 = icmp slt i32 %1, 0 br i1 %21, label %22, label %25 22: ; preds = %5 %23 = fadd double %20, 0x3C91A62633145C07 %24 = fadd double %23, 0x3FF921FB54442D18 br label %73 25: ; preds = %5 %26 = fadd double %20, 0xBC91A62633145C07 %27 = fsub double 0x3FF921FB54442D18, %26 br label %73 28: ; preds = %0 %29 = fsub double 1.000000e+00, %2 %30 = call i32 @llvm.nvvm.d2i.lo(double %29) #138 %31 = call i32 @llvm.nvvm.d2i.hi(double %29) #138 %32 = add i32 %31, -1048576 %33 = call double @llvm.nvvm.lohi.i2d(i32 %30, i32 %32) #138 %34 = call double asm "rsqrt.approx.ftz.f64 $0, $1;", "=d,d"(double %33) #137, !srcloc !235 %35 = call i32 @llvm.nvvm.d2i.lo(double %34) #135 %36 = call i32 @llvm.nvvm.d2i.hi(double %34) #135 %37 = add i32 %36, -1048576 %38 = call double @llvm.nvvm.lohi.i2d(i32 %35, i32 %37) #135 %39 = fmul double %33, %34 %40 = fneg double %39 %41 = call double @llvm.fma.f64(double %39, double %40, double %33) %42 = call double @llvm.fma.f64(double %41, double %38, double %39) %43 = fneg double %42 %44 = call double @llvm.fma.f64(double %34, double %43, double noundef 1.000000e+00) %45 = call double @llvm.fma.f64(double %44, double %38, double %38) %46 = call double @llvm.fma.f64(double %42, double %43, double %33) %47 = call double @llvm.fma.f64(double %46, double %45, double %42) %48 = call i32 @llvm.nvvm.d2i.lo(double %47) #135 %49 = call i32 @llvm.nvvm.d2i.hi(double %47) #135 %50 = add i32 %49, 1048576 %51 = call double @llvm.nvvm.lohi.i2d(i32 %48, i32 %50) #135 %52 = call double @llvm.fma.f64(double %29, double noundef 0x3EC715B371155F70, double noundef 0xBEBAC2FE66FAAC4B) %53 = call double @llvm.fma.f64(double %52, double %29, double noundef 0x3ED9A9B88EFCD9B8) %54 = call double @llvm.fma.f64(double %53, double %29, double noundef 0x3EDD0F40A8A0C4C3) %55 = call double @llvm.fma.f64(double %54, double %29, double noundef 0x3EF46D4CFA9E0E1F) %56 = call double @llvm.fma.f64(double %55, double %29, double noundef 0x3F079C168D1E2422) %57 = call double @llvm.fma.f64(double %56, double %29, double noundef 0x3F1C9A88C3BCA540) %58 = call double @llvm.fma.f64(double %57, double %29, double noundef 0x3F31C4E64BD476DF) %59 = call double @llvm.fma.f64(double %58, double %29, double noundef 0x3F46E8BA60009C8F) %60 = call double @llvm.fma.f64(double %59, double %29, double noundef 0x3F5F1C71C62B05A2) %61 = call double @llvm.fma.f64(double %60, double %29, double noundef 0x3F76DB6DB6DC9F2C) %62 = call double @llvm.fma.f64(double %61, double %29, double noundef 0x3F9333333333329C) %63 = call double @llvm.fma.f64(double %62, double %29, double noundef 0x3FB5555555555555) %64 = icmp slt i32 %31, 1 %65 = fmul double %2, 0.000000e+00 %66 = fmul double %29, %63 %67 = call double @llvm.fma.f64(double %66, double %51, double %51) %t0.1 = select i1 %64, double %65, double %67 %68 = icmp slt i32 %31, 0 %69 = fmul double %t0.1, 0x7FF0000000000000 %t0.2 = select i1 %68, double %69, double %t0.1 %70 = icmp slt i32 %1, 0 %71 = fadd double %t0.2, 0xBCA1A62633145C07 %72 = fsub double 0x400921FB54442D18, %71 %t0.3 = select i1 %70, double %72, double %t0.2 br label %73 73: ; preds = %22, %25, %28 %t0.4 = phi double [ %t0.3, %28 ], [ %24, %22 ], [ %27, %25 ] ret double %t0.4 } ; Function Attrs: noinline nosync nounwind readnone define dso_local double @__nv_acosh(double %a) local_unnamed_addr #88 { %1 = fadd double %a, -1.000000e+00 %2 = call i32 @llvm.nvvm.d2i.hi(double %1) #138 %3 = icmp ugt i32 %2, 1127219199 br i1 %3, label %4, label %69 4: ; preds = %0 %5 = call i32 @llvm.nvvm.d2i.lo(double %1) #138 %6 = icmp slt i32 %2, 1048576 br i1 %6, label %7, label %11 7: ; preds = %4 %8 = fmul double %1, 0x4350000000000000 %9 = call i32 @llvm.nvvm.d2i.hi(double %8) #138 %10 = call i32 @llvm.nvvm.d2i.lo(double %8) #138 br label %11 11: ; preds = %7, %4 %.01 = phi double [ %8, %7 ], [ %1, %4 ] %ihi.i.0 = phi i32 [ %9, %7 ], [ %2, %4 ] %ilo.i.0 = phi i32 [ %10, %7 ], [ %5, %4 ] %e.i.0 = phi i32 [ -1077, %7 ], [ -1023, %4 ] %12 = add i32 %ihi.i.0, -1 %13 = icmp ult i32 %12, 2146435071 br i1 %13, label %14, label %63 14: ; preds = %11 %15 = lshr i32 %ihi.i.0, 20 %16 = add nsw i32 %e.i.0, %15 %17 = and i32 %ihi.i.0, -2146435073 %18 = or i32 %17, 1072693248 %19 = call double @llvm.nvvm.lohi.i2d(i32 %ilo.i.0, i32 %18) #138 %20 = icmp sgt i32 %18, 1073127582 br i1 %20, label %21, label %27 21: ; preds = %14 %22 = call i32 @llvm.nvvm.d2i.lo(double %19) #138 %23 = call i32 @llvm.nvvm.d2i.hi(double %19) #138 %24 = add i32 %23, -1048576 %25 = call double @llvm.nvvm.lohi.i2d(i32 %22, i32 %24) #138 %26 = add nsw i32 %16, 1 br label %27 27: ; preds = %21, %14 %m.i.0 = phi double [ %25, %21 ], [ %19, %14 ] %e.i.1 = phi i32 [ %26, %21 ], [ %16, %14 ] %28 = fadd double %m.i.0, -1.000000e+00 %29 = fadd double %m.i.0, 1.000000e+00 %30 = call double @llvm.nvvm.rcp.approx.ftz.d(double %29) #138 %31 = fneg double %29 %32 = call double @llvm.fma.f64(double %31, double %30, double noundef 1.000000e+00) #136 %33 = call double @llvm.fma.f64(double %32, double %32, double %32) #136 %34 = call double @llvm.fma.f64(double %33, double %30, double %30) #136 %35 = fmul double %28, %34 %36 = fadd double %35, %35 %37 = fmul double %36, %36 %38 = call double @llvm.fma.f64(double %37, double noundef 0x3EB1380B3AE80F1E, double noundef 0x3ED0EE258B7A8B04) #136 %39 = call double @llvm.fma.f64(double %38, double %37, double noundef 0x3EF3B2669F02676F) #136 %40 = call double @llvm.fma.f64(double %39, double %37, double noundef 0x3F1745CBA9AB0956) #136 %41 = call double @llvm.fma.f64(double %40, double %37, double noundef 0x3F3C71C72D1B5154) #136 %42 = call double @llvm.fma.f64(double %41, double %37, double noundef 0x3F624924923BE72D) #136 %43 = call double @llvm.fma.f64(double %42, double %37, double noundef 0x3F8999999999A3C4) #136 %44 = call double @llvm.fma.f64(double %43, double %37, double noundef 0x3FB5555555555554) #136 %45 = fsub double %28, %36 %46 = fmul double %45, 2.000000e+00 %47 = fneg double %36 %48 = call double @llvm.fma.f64(double %47, double %28, double %46) #136 %49 = fmul double %34, %48 %50 = fmul double %37, %44 %51 = call double @llvm.fma.f64(double %50, double %36, double %49) #136 %52 = xor i32 %e.i.1, -2147483648 %53 = call double @llvm.nvvm.lohi.i2d(i32 %52, i32 noundef 1127219200) #138 %54 = call double @llvm.nvvm.lohi.i2d(i32 noundef -2147483648, i32 noundef 1127219200) #138 %55 = fsub double %53, %54 %56 = call double @llvm.fma.f64(double %55, double noundef 0x3FE62E42FEFA39EF, double %36) #136 %57 = fneg double %55 %58 = call double @llvm.fma.f64(double %57, double noundef 0x3FE62E42FEFA39EF, double %56) #136 %59 = fsub double %58, %36 %60 = fsub double %51, %59 %61 = call double @llvm.fma.f64(double %55, double noundef 0x3C7ABC9E3B39803F, double %60) #136 %62 = fadd double %56, %61 br label %__nv_log.exit 63: ; preds = %11 %64 = call double @llvm.fma.f64(double %.01, double noundef 0x7FF0000000000000, double noundef 0x7FF0000000000000) #136 %65 = call i32 @llvm.nvvm.d2i.hi(double %.01) #138 %66 = bitcast i32 %65 to float %67 = fcmp oeq float %66, 0.000000e+00 %q.i.0 = select i1 %67, double 0xFFF0000000000000, double %64 br label %__nv_log.exit __nv_log.exit: ; preds = %63, %27 %q.i.1 = phi double [ %62, %27 ], [ %q.i.0, %63 ] %68 = fadd double %q.i.1, 0x3FE62E42FEFA39EF br label %174 69: ; preds = %0 %70 = call double @llvm.fma.f64(double %a, double %1, double %1) #136 %71 = call double asm "rsqrt.approx.ftz.f64 $0, $1;", "=d,d"(double %70) #137, !srcloc !235 %72 = call i32 @llvm.nvvm.d2i.lo(double %71) #135 %73 = call i32 @llvm.nvvm.d2i.hi(double %71) #135 %74 = add i32 %73, -1048576 %75 = call double @llvm.nvvm.lohi.i2d(i32 %72, i32 %74) #135 %76 = fmul double %70, %71 %77 = fneg double %76 %78 = call double @llvm.fma.f64(double %76, double %77, double %70) %79 = call double @llvm.fma.f64(double %78, double %75, double %76) %80 = fneg double %79 %81 = call double @llvm.fma.f64(double %71, double %80, double noundef 1.000000e+00) %82 = call double @llvm.fma.f64(double %81, double %75, double %75) %83 = call double @llvm.fma.f64(double %79, double %80, double %70) %84 = call double @llvm.fma.f64(double %83, double %82, double %79) %85 = fadd double %1, %84 %86 = call i32 @llvm.nvvm.d2i.hi(double %85) #135 %87 = bitcast i32 %86 to float %88 = fcmp olt float %87, 0x3FFCAAAAA0000000 %89 = fcmp ogt float %87, 0xBFFB333320000000 %or.cond2 = and i1 %88, %89 br i1 %or.cond2, label %90, label %107 90: ; preds = %69 %91 = fadd double %85, 2.000000e+00 %92 = fdiv double %85, %91 %93 = fneg double %85 %94 = fmul double %92, %93 %95 = fadd double %85, %94 %96 = fmul double %95, %95 %97 = call double @llvm.fma.f64(double %96, double noundef 0x3EB372FB2FBE14B5, double noundef 0x3ED087FFCEB2DC44) %98 = call double @llvm.fma.f64(double %97, double %96, double noundef 0x3EF3B9FF890F468C) %99 = call double @llvm.fma.f64(double %98, double %96, double noundef 0x3F17457EFD51BAF8) %100 = call double @llvm.fma.f64(double %99, double %96, double noundef 0x3F3C71C8DE3CE825) %101 = call double @llvm.fma.f64(double %100, double %96, double noundef 0x3F6249248FA4661F) %102 = call double @llvm.fma.f64(double %101, double %96, double noundef 0x3F899999999D70C4) %103 = call double @llvm.fma.f64(double %102, double %96, double noundef 0x3FB5555555555462) %104 = fmul double %96, %103 %105 = call double @llvm.fma.f64(double %104, double %95, double %94) %106 = fadd double %85, %105 br label %__nv_log1p.exit 107: ; preds = %69 %108 = fadd double %85, 1.000000e+00 %109 = call i32 @llvm.nvvm.d2i.hi(double %108) #135 %110 = call i32 @llvm.nvvm.d2i.lo(double %108) #135 %111 = icmp slt i32 %109, 1048576 br i1 %111, label %112, label %116 112: ; preds = %107 %113 = fmul double %108, 0x4350000000000000 %114 = call i32 @llvm.nvvm.d2i.hi(double %113) #135 %115 = call i32 @llvm.nvvm.d2i.lo(double %113) #135 br label %116 116: ; preds = %112, %107 %.0 = phi double [ %113, %112 ], [ %108, %107 ] %ihi.i.i.0 = phi i32 [ %114, %112 ], [ %109, %107 ] %ilo.i.i.0 = phi i32 [ %115, %112 ], [ %110, %107 ] %e.i.i.0 = phi i32 [ -1077, %112 ], [ -1023, %107 ] %117 = add i32 %ihi.i.i.0, -1 %118 = icmp ult i32 %117, 2146435071 br i1 %118, label %119, label %168 119: ; preds = %116 %120 = lshr i32 %ihi.i.i.0, 20 %121 = add nsw i32 %e.i.i.0, %120 %122 = and i32 %ihi.i.i.0, -2146435073 %123 = or i32 %122, 1072693248 %124 = call double @llvm.nvvm.lohi.i2d(i32 %ilo.i.i.0, i32 %123) #135 %125 = icmp sgt i32 %123, 1073127582 br i1 %125, label %126, label %132 126: ; preds = %119 %127 = call i32 @llvm.nvvm.d2i.lo(double %124) #135 %128 = call i32 @llvm.nvvm.d2i.hi(double %124) #135 %129 = add i32 %128, -1048576 %130 = call double @llvm.nvvm.lohi.i2d(i32 %127, i32 %129) #135 %131 = add nsw i32 %121, 1 br label %132 132: ; preds = %126, %119 %m.i.i.0 = phi double [ %130, %126 ], [ %124, %119 ] %e.i.i.1 = phi i32 [ %131, %126 ], [ %121, %119 ] %133 = fadd double %m.i.i.0, -1.000000e+00 %134 = fadd double %m.i.i.0, 1.000000e+00 %135 = call double @llvm.nvvm.rcp.approx.ftz.d(double %134) #135 %136 = fneg double %134 %137 = call double @llvm.fma.f64(double %136, double %135, double noundef 1.000000e+00) %138 = call double @llvm.fma.f64(double %137, double %137, double %137) %139 = call double @llvm.fma.f64(double %138, double %135, double %135) %140 = fmul double %133, %139 %141 = fadd double %140, %140 %142 = fmul double %141, %141 %143 = call double @llvm.fma.f64(double %142, double noundef 0x3EB1380B3AE80F1E, double noundef 0x3ED0EE258B7A8B04) %144 = call double @llvm.fma.f64(double %143, double %142, double noundef 0x3EF3B2669F02676F) %145 = call double @llvm.fma.f64(double %144, double %142, double noundef 0x3F1745CBA9AB0956) %146 = call double @llvm.fma.f64(double %145, double %142, double noundef 0x3F3C71C72D1B5154) %147 = call double @llvm.fma.f64(double %146, double %142, double noundef 0x3F624924923BE72D) %148 = call double @llvm.fma.f64(double %147, double %142, double noundef 0x3F8999999999A3C4) %149 = call double @llvm.fma.f64(double %148, double %142, double noundef 0x3FB5555555555554) %150 = fsub double %133, %141 %151 = fmul double %150, 2.000000e+00 %152 = fneg double %141 %153 = call double @llvm.fma.f64(double %152, double %133, double %151) %154 = fmul double %139, %153 %155 = fmul double %142, %149 %156 = call double @llvm.fma.f64(double %155, double %141, double %154) %157 = xor i32 %e.i.i.1, -2147483648 %158 = call double @llvm.nvvm.lohi.i2d(i32 %157, i32 noundef 1127219200) #135 %159 = call double @llvm.nvvm.lohi.i2d(i32 noundef -2147483648, i32 noundef 1127219200) #135 %160 = fsub double %158, %159 %161 = call double @llvm.fma.f64(double %160, double noundef 0x3FE62E42FEFA39EF, double %141) %162 = fneg double %160 %163 = call double @llvm.fma.f64(double %162, double noundef 0x3FE62E42FEFA39EF, double %161) %164 = fsub double %163, %141 %165 = fsub double %156, %164 %166 = call double @llvm.fma.f64(double %160, double noundef 0x3C7ABC9E3B39803F, double %165) %167 = fadd double %161, %166 br label %__nv_log1p.exit 168: ; preds = %116 %169 = call double @llvm.fma.f64(double %.0, double noundef 0x7FF0000000000000, double noundef 0x7FF0000000000000) %170 = call i32 @llvm.nvvm.d2i.hi(double %.0) #135 %171 = bitcast i32 %170 to float %172 = fcmp oeq float %171, 0.000000e+00 %q.i.i.0 = select i1 %172, double 0xFFF0000000000000, double %169 br label %__nv_log1p.exit __nv_log1p.exit: ; preds = %132, %168, %90 %t.i.0 = phi double [ %106, %90 ], [ %167, %132 ], [ %q.i.i.0, %168 ] %173 = icmp eq i32 %2, 0 %spec.select = select i1 %173, double %1, double %t.i.0 br label %174 174: ; preds = %__nv_log1p.exit, %__nv_log.exit %r.1 = phi double [ %68, %__nv_log.exit ], [ %spec.select, %__nv_log1p.exit ] ret double %r.1 } ; Function Attrs: noinline nosync nounwind readnone define dso_local double @__nv_asinh(double %a) local_unnamed_addr #89 { %1 = call i32 @llvm.nvvm.d2i.hi(double %a) #138 %2 = call i32 @llvm.nvvm.d2i.lo(double %a) #138 %3 = and i32 %1, 2147483647 %4 = call double @llvm.nvvm.lohi.i2d(i32 %2, i32 %3) #138 %5 = icmp ugt i32 %3, 1138753535 br i1 %5, label %6, label %72 6: ; preds = %0 %7 = call i32 @llvm.nvvm.d2i.hi(double %4) #138 %8 = call i32 @llvm.nvvm.d2i.lo(double %4) #138 %9 = icmp slt i32 %7, 1048576 br i1 %9, label %10, label %14 10: ; preds = %6 %11 = fmul double %4, 0x4350000000000000 %12 = call i32 @llvm.nvvm.d2i.hi(double %11) #138 %13 = call i32 @llvm.nvvm.d2i.lo(double %11) #138 br label %14 14: ; preds = %10, %6 %.01 = phi double [ %11, %10 ], [ %4, %6 ] %ihi.i.0 = phi i32 [ %12, %10 ], [ %7, %6 ] %ilo.i.0 = phi i32 [ %13, %10 ], [ %8, %6 ] %e.i.0 = phi i32 [ -1077, %10 ], [ -1023, %6 ] %15 = add i32 %ihi.i.0, -1 %16 = icmp ult i32 %15, 2146435071 br i1 %16, label %17, label %66 17: ; preds = %14 %18 = lshr i32 %ihi.i.0, 20 %19 = add nsw i32 %e.i.0, %18 %20 = and i32 %ihi.i.0, -2146435073 %21 = or i32 %20, 1072693248 %22 = call double @llvm.nvvm.lohi.i2d(i32 %ilo.i.0, i32 %21) #138 %23 = icmp sgt i32 %21, 1073127582 br i1 %23, label %24, label %30 24: ; preds = %17 %25 = call i32 @llvm.nvvm.d2i.lo(double %22) #138 %26 = call i32 @llvm.nvvm.d2i.hi(double %22) #138 %27 = add i32 %26, -1048576 %28 = call double @llvm.nvvm.lohi.i2d(i32 %25, i32 %27) #138 %29 = add nsw i32 %19, 1 br label %30 30: ; preds = %24, %17 %m.i.0 = phi double [ %28, %24 ], [ %22, %17 ] %e.i.1 = phi i32 [ %29, %24 ], [ %19, %17 ] %31 = fadd double %m.i.0, -1.000000e+00 %32 = fadd double %m.i.0, 1.000000e+00 %33 = call double @llvm.nvvm.rcp.approx.ftz.d(double %32) #138 %34 = fneg double %32 %35 = call double @llvm.fma.f64(double %34, double %33, double noundef 1.000000e+00) #136 %36 = call double @llvm.fma.f64(double %35, double %35, double %35) #136 %37 = call double @llvm.fma.f64(double %36, double %33, double %33) #136 %38 = fmul double %31, %37 %39 = fadd double %38, %38 %40 = fmul double %39, %39 %41 = call double @llvm.fma.f64(double %40, double noundef 0x3EB1380B3AE80F1E, double noundef 0x3ED0EE258B7A8B04) #136 %42 = call double @llvm.fma.f64(double %41, double %40, double noundef 0x3EF3B2669F02676F) #136 %43 = call double @llvm.fma.f64(double %42, double %40, double noundef 0x3F1745CBA9AB0956) #136 %44 = call double @llvm.fma.f64(double %43, double %40, double noundef 0x3F3C71C72D1B5154) #136 %45 = call double @llvm.fma.f64(double %44, double %40, double noundef 0x3F624924923BE72D) #136 %46 = call double @llvm.fma.f64(double %45, double %40, double noundef 0x3F8999999999A3C4) #136 %47 = call double @llvm.fma.f64(double %46, double %40, double noundef 0x3FB5555555555554) #136 %48 = fsub double %31, %39 %49 = fmul double %48, 2.000000e+00 %50 = fneg double %39 %51 = call double @llvm.fma.f64(double %50, double %31, double %49) #136 %52 = fmul double %37, %51 %53 = fmul double %40, %47 %54 = call double @llvm.fma.f64(double %53, double %39, double %52) #136 %55 = xor i32 %e.i.1, -2147483648 %56 = call double @llvm.nvvm.lohi.i2d(i32 %55, i32 noundef 1127219200) #138 %57 = call double @llvm.nvvm.lohi.i2d(i32 noundef -2147483648, i32 noundef 1127219200) #138 %58 = fsub double %56, %57 %59 = call double @llvm.fma.f64(double %58, double noundef 0x3FE62E42FEFA39EF, double %39) #136 %60 = fneg double %58 %61 = call double @llvm.fma.f64(double %60, double noundef 0x3FE62E42FEFA39EF, double %59) #136 %62 = fsub double %61, %39 %63 = fsub double %54, %62 %64 = call double @llvm.fma.f64(double %58, double noundef 0x3C7ABC9E3B39803F, double %63) #136 %65 = fadd double %59, %64 br label %__nv_log.exit 66: ; preds = %14 %67 = call double @llvm.fma.f64(double %.01, double noundef 0x7FF0000000000000, double noundef 0x7FF0000000000000) #136 %68 = call i32 @llvm.nvvm.d2i.hi(double %.01) #138 %69 = bitcast i32 %68 to float %70 = fcmp oeq float %69, 0.000000e+00 %q.i.0 = select i1 %70, double 0xFFF0000000000000, double %67 br label %__nv_log.exit __nv_log.exit: ; preds = %66, %30 %q.i.1 = phi double [ %65, %30 ], [ %q.i.0, %66 ] %71 = fadd double %q.i.1, 0x3FE62E42FEFA39EF br label %__nv_log1p.exit 72: ; preds = %0 %73 = fmul double %a, %a %74 = call double @llvm.fma.f64(double %a, double %a, double noundef 1.000000e+00) #136 %75 = call double asm "rsqrt.approx.ftz.f64 $0, $1;", "=d,d"(double %74) #137, !srcloc !235 %76 = call i32 @llvm.nvvm.d2i.lo(double %75) #135 %77 = call i32 @llvm.nvvm.d2i.hi(double %75) #135 %78 = add i32 %77, -1048576 %79 = call double @llvm.nvvm.lohi.i2d(i32 %76, i32 %78) #135 %80 = fmul double %74, %75 %81 = fneg double %80 %82 = call double @llvm.fma.f64(double %80, double %81, double %74) %83 = call double @llvm.fma.f64(double %82, double %79, double %80) %84 = fneg double %83 %85 = call double @llvm.fma.f64(double %75, double %84, double noundef 1.000000e+00) %86 = call double @llvm.fma.f64(double %85, double %79, double %79) %87 = call double @llvm.fma.f64(double %83, double %84, double %74) %88 = call double @llvm.fma.f64(double %87, double %86, double %83) %89 = fadd double %88, 1.000000e+00 %90 = fdiv double %73, %89 %91 = fadd double %4, %90 %92 = call i32 @llvm.nvvm.d2i.hi(double %91) #135 %93 = bitcast i32 %92 to float %94 = fcmp olt float %93, 0x3FFCAAAAA0000000 %95 = fcmp ogt float %93, 0xBFFB333320000000 %or.cond2 = and i1 %94, %95 br i1 %or.cond2, label %96, label %113 96: ; preds = %72 %97 = fadd double %91, 2.000000e+00 %98 = fdiv double %91, %97 %99 = fneg double %91 %100 = fmul double %98, %99 %101 = fadd double %91, %100 %102 = fmul double %101, %101 %103 = call double @llvm.fma.f64(double %102, double noundef 0x3EB372FB2FBE14B5, double noundef 0x3ED087FFCEB2DC44) %104 = call double @llvm.fma.f64(double %103, double %102, double noundef 0x3EF3B9FF890F468C) %105 = call double @llvm.fma.f64(double %104, double %102, double noundef 0x3F17457EFD51BAF8) %106 = call double @llvm.fma.f64(double %105, double %102, double noundef 0x3F3C71C8DE3CE825) %107 = call double @llvm.fma.f64(double %106, double %102, double noundef 0x3F6249248FA4661F) %108 = call double @llvm.fma.f64(double %107, double %102, double noundef 0x3F899999999D70C4) %109 = call double @llvm.fma.f64(double %108, double %102, double noundef 0x3FB5555555555462) %110 = fmul double %102, %109 %111 = call double @llvm.fma.f64(double %110, double %101, double %100) %112 = fadd double %91, %111 br label %__nv_log1p.exit 113: ; preds = %72 %114 = fadd double %91, 1.000000e+00 %115 = call i32 @llvm.nvvm.d2i.hi(double %114) #135 %116 = call i32 @llvm.nvvm.d2i.lo(double %114) #135 %117 = icmp slt i32 %115, 1048576 br i1 %117, label %118, label %122 118: ; preds = %113 %119 = fmul double %114, 0x4350000000000000 %120 = call i32 @llvm.nvvm.d2i.hi(double %119) #135 %121 = call i32 @llvm.nvvm.d2i.lo(double %119) #135 br label %122 122: ; preds = %118, %113 %.0 = phi double [ %119, %118 ], [ %114, %113 ] %ihi.i.i.0 = phi i32 [ %120, %118 ], [ %115, %113 ] %ilo.i.i.0 = phi i32 [ %121, %118 ], [ %116, %113 ] %e.i.i.0 = phi i32 [ -1077, %118 ], [ -1023, %113 ] %123 = add i32 %ihi.i.i.0, -1 %124 = icmp ult i32 %123, 2146435071 br i1 %124, label %125, label %174 125: ; preds = %122 %126 = lshr i32 %ihi.i.i.0, 20 %127 = add nsw i32 %e.i.i.0, %126 %128 = and i32 %ihi.i.i.0, -2146435073 %129 = or i32 %128, 1072693248 %130 = call double @llvm.nvvm.lohi.i2d(i32 %ilo.i.i.0, i32 %129) #135 %131 = icmp sgt i32 %129, 1073127582 br i1 %131, label %132, label %138 132: ; preds = %125 %133 = call i32 @llvm.nvvm.d2i.lo(double %130) #135 %134 = call i32 @llvm.nvvm.d2i.hi(double %130) #135 %135 = add i32 %134, -1048576 %136 = call double @llvm.nvvm.lohi.i2d(i32 %133, i32 %135) #135 %137 = add nsw i32 %127, 1 br label %138 138: ; preds = %132, %125 %m.i.i.0 = phi double [ %136, %132 ], [ %130, %125 ] %e.i.i.1 = phi i32 [ %137, %132 ], [ %127, %125 ] %139 = fadd double %m.i.i.0, -1.000000e+00 %140 = fadd double %m.i.i.0, 1.000000e+00 %141 = call double @llvm.nvvm.rcp.approx.ftz.d(double %140) #135 %142 = fneg double %140 %143 = call double @llvm.fma.f64(double %142, double %141, double noundef 1.000000e+00) %144 = call double @llvm.fma.f64(double %143, double %143, double %143) %145 = call double @llvm.fma.f64(double %144, double %141, double %141) %146 = fmul double %139, %145 %147 = fadd double %146, %146 %148 = fmul double %147, %147 %149 = call double @llvm.fma.f64(double %148, double noundef 0x3EB1380B3AE80F1E, double noundef 0x3ED0EE258B7A8B04) %150 = call double @llvm.fma.f64(double %149, double %148, double noundef 0x3EF3B2669F02676F) %151 = call double @llvm.fma.f64(double %150, double %148, double noundef 0x3F1745CBA9AB0956) %152 = call double @llvm.fma.f64(double %151, double %148, double noundef 0x3F3C71C72D1B5154) %153 = call double @llvm.fma.f64(double %152, double %148, double noundef 0x3F624924923BE72D) %154 = call double @llvm.fma.f64(double %153, double %148, double noundef 0x3F8999999999A3C4) %155 = call double @llvm.fma.f64(double %154, double %148, double noundef 0x3FB5555555555554) %156 = fsub double %139, %147 %157 = fmul double %156, 2.000000e+00 %158 = fneg double %147 %159 = call double @llvm.fma.f64(double %158, double %139, double %157) %160 = fmul double %145, %159 %161 = fmul double %148, %155 %162 = call double @llvm.fma.f64(double %161, double %147, double %160) %163 = xor i32 %e.i.i.1, -2147483648 %164 = call double @llvm.nvvm.lohi.i2d(i32 %163, i32 noundef 1127219200) #135 %165 = call double @llvm.nvvm.lohi.i2d(i32 noundef -2147483648, i32 noundef 1127219200) #135 %166 = fsub double %164, %165 %167 = call double @llvm.fma.f64(double %166, double noundef 0x3FE62E42FEFA39EF, double %147) %168 = fneg double %166 %169 = call double @llvm.fma.f64(double %168, double noundef 0x3FE62E42FEFA39EF, double %167) %170 = fsub double %169, %147 %171 = fsub double %162, %170 %172 = call double @llvm.fma.f64(double %166, double noundef 0x3C7ABC9E3B39803F, double %171) %173 = fadd double %167, %172 br label %__nv_log1p.exit 174: ; preds = %122 %175 = call double @llvm.fma.f64(double %.0, double noundef 0x7FF0000000000000, double noundef 0x7FF0000000000000) %176 = call i32 @llvm.nvvm.d2i.hi(double %.0) #135 %177 = bitcast i32 %176 to float %178 = fcmp oeq float %177, 0.000000e+00 %q.i.i.0 = select i1 %178, double 0xFFF0000000000000, double %175 br label %__nv_log1p.exit __nv_log1p.exit: ; preds = %96, %174, %138, %__nv_log.exit %t.0 = phi double [ %71, %__nv_log.exit ], [ %112, %96 ], [ %173, %138 ], [ %q.i.i.0, %174 ] %179 = call i32 @llvm.nvvm.d2i.lo(double %t.0) #135 %180 = call i32 @llvm.nvvm.d2i.hi(double %t.0) #135 %181 = and i32 %1, -2147483648 %182 = or i32 %180, %181 %183 = call double @llvm.nvvm.lohi.i2d(i32 %179, i32 %182) #135 ret double %183 } ; Function Attrs: nofree noinline nosync nounwind readnone willreturn define dso_local double @__nv_atanh(double %a) local_unnamed_addr #90 { %1 = call double @llvm.fabs.f64(double %a) #136 %2 = fmul double %1, 2.000000e+00 %3 = fsub double 1.000000e+00, %1 %4 = fdiv double %2, %3 %5 = call i32 @llvm.nvvm.d2i.hi(double %4) #138 %6 = bitcast i32 %5 to float %7 = fcmp olt float %6, 0x3FFCAAAAA0000000 %8 = fcmp ogt float %6, 0xBFFB333320000000 %or.cond = and i1 %7, %8 br i1 %or.cond, label %9, label %26 9: ; preds = %0 %10 = fadd double %4, 2.000000e+00 %11 = fdiv double %4, %10 %12 = fneg double %4 %13 = fmul double %11, %12 %14 = fadd double %4, %13 %15 = fmul double %14, %14 %16 = call double @llvm.fma.f64(double %15, double noundef 0x3EB372FB2FBE14B5, double noundef 0x3ED087FFCEB2DC44) #136 %17 = call double @llvm.fma.f64(double %16, double %15, double noundef 0x3EF3B9FF890F468C) #136 %18 = call double @llvm.fma.f64(double %17, double %15, double noundef 0x3F17457EFD51BAF8) #136 %19 = call double @llvm.fma.f64(double %18, double %15, double noundef 0x3F3C71C8DE3CE825) #136 %20 = call double @llvm.fma.f64(double %19, double %15, double noundef 0x3F6249248FA4661F) #136 %21 = call double @llvm.fma.f64(double %20, double %15, double noundef 0x3F899999999D70C4) #136 %22 = call double @llvm.fma.f64(double %21, double %15, double noundef 0x3FB5555555555462) #136 %23 = fmul double %15, %22 %24 = call double @llvm.fma.f64(double %23, double %14, double %13) #136 %25 = fadd double %4, %24 br label %__nv_log1p.exit 26: ; preds = %0 %27 = fadd double %4, 1.000000e+00 %28 = call i32 @llvm.nvvm.d2i.hi(double %27) #138 %29 = call i32 @llvm.nvvm.d2i.lo(double %27) #138 %30 = icmp slt i32 %28, 1048576 br i1 %30, label %31, label %35 31: ; preds = %26 %32 = fmul double %27, 0x4350000000000000 %33 = call i32 @llvm.nvvm.d2i.hi(double %32) #138 %34 = call i32 @llvm.nvvm.d2i.lo(double %32) #138 br label %35 35: ; preds = %31, %26 %.0 = phi double [ %32, %31 ], [ %27, %26 ] %ihi.i.i.0 = phi i32 [ %33, %31 ], [ %28, %26 ] %ilo.i.i.0 = phi i32 [ %34, %31 ], [ %29, %26 ] %e.i.i.0 = phi i32 [ -1077, %31 ], [ -1023, %26 ] %36 = add i32 %ihi.i.i.0, -1 %37 = icmp ult i32 %36, 2146435071 br i1 %37, label %38, label %87 38: ; preds = %35 %39 = lshr i32 %ihi.i.i.0, 20 %40 = add nsw i32 %e.i.i.0, %39 %41 = and i32 %ihi.i.i.0, -2146435073 %42 = or i32 %41, 1072693248 %43 = call double @llvm.nvvm.lohi.i2d(i32 %ilo.i.i.0, i32 %42) #138 %44 = icmp sgt i32 %42, 1073127582 br i1 %44, label %45, label %51 45: ; preds = %38 %46 = call i32 @llvm.nvvm.d2i.lo(double %43) #138 %47 = call i32 @llvm.nvvm.d2i.hi(double %43) #138 %48 = add i32 %47, -1048576 %49 = call double @llvm.nvvm.lohi.i2d(i32 %46, i32 %48) #138 %50 = add nsw i32 %40, 1 br label %51 51: ; preds = %45, %38 %m.i.i.0 = phi double [ %49, %45 ], [ %43, %38 ] %e.i.i.1 = phi i32 [ %50, %45 ], [ %40, %38 ] %52 = fadd double %m.i.i.0, -1.000000e+00 %53 = fadd double %m.i.i.0, 1.000000e+00 %54 = call double @llvm.nvvm.rcp.approx.ftz.d(double %53) #138 %55 = fneg double %53 %56 = call double @llvm.fma.f64(double %55, double %54, double noundef 1.000000e+00) #136 %57 = call double @llvm.fma.f64(double %56, double %56, double %56) #136 %58 = call double @llvm.fma.f64(double %57, double %54, double %54) #136 %59 = fmul double %52, %58 %60 = fadd double %59, %59 %61 = fmul double %60, %60 %62 = call double @llvm.fma.f64(double %61, double noundef 0x3EB1380B3AE80F1E, double noundef 0x3ED0EE258B7A8B04) #136 %63 = call double @llvm.fma.f64(double %62, double %61, double noundef 0x3EF3B2669F02676F) #136 %64 = call double @llvm.fma.f64(double %63, double %61, double noundef 0x3F1745CBA9AB0956) #136 %65 = call double @llvm.fma.f64(double %64, double %61, double noundef 0x3F3C71C72D1B5154) #136 %66 = call double @llvm.fma.f64(double %65, double %61, double noundef 0x3F624924923BE72D) #136 %67 = call double @llvm.fma.f64(double %66, double %61, double noundef 0x3F8999999999A3C4) #136 %68 = call double @llvm.fma.f64(double %67, double %61, double noundef 0x3FB5555555555554) #136 %69 = fsub double %52, %60 %70 = fmul double %69, 2.000000e+00 %71 = fneg double %60 %72 = call double @llvm.fma.f64(double %71, double %52, double %70) #136 %73 = fmul double %58, %72 %74 = fmul double %61, %68 %75 = call double @llvm.fma.f64(double %74, double %60, double %73) #136 %76 = xor i32 %e.i.i.1, -2147483648 %77 = call double @llvm.nvvm.lohi.i2d(i32 %76, i32 noundef 1127219200) #138 %78 = call double @llvm.nvvm.lohi.i2d(i32 noundef -2147483648, i32 noundef 1127219200) #138 %79 = fsub double %77, %78 %80 = call double @llvm.fma.f64(double %79, double noundef 0x3FE62E42FEFA39EF, double %60) #136 %81 = fneg double %79 %82 = call double @llvm.fma.f64(double %81, double noundef 0x3FE62E42FEFA39EF, double %80) #136 %83 = fsub double %82, %60 %84 = fsub double %75, %83 %85 = call double @llvm.fma.f64(double %79, double noundef 0x3C7ABC9E3B39803F, double %84) #136 %86 = fadd double %80, %85 br label %__nv_log1p.exit 87: ; preds = %35 %88 = call double @llvm.fma.f64(double %.0, double noundef 0x7FF0000000000000, double noundef 0x7FF0000000000000) #136 %89 = call i32 @llvm.nvvm.d2i.hi(double %.0) #138 %90 = bitcast i32 %89 to float %91 = fcmp oeq float %90, 0.000000e+00 %q.i.i.0 = select i1 %91, double 0xFFF0000000000000, double %88 br label %__nv_log1p.exit __nv_log1p.exit: ; preds = %51, %87, %9 %t.i.0 = phi double [ %25, %9 ], [ %86, %51 ], [ %q.i.i.0, %87 ] %92 = fmul double %t.i.0, 5.000000e-01 %93 = call i32 @llvm.nvvm.d2i.hi(double %a) #138 %94 = call i32 @llvm.nvvm.d2i.lo(double %92) #138 %95 = call i32 @llvm.nvvm.d2i.hi(double %92) #138 %96 = and i32 %93, -2147483648 %97 = or i32 %95, %96 %98 = call double @llvm.nvvm.lohi.i2d(i32 %94, i32 %97) #138 ret double %98 } ; Function Attrs: noinline nosync nounwind readnone define dso_local double @__nv_hypot(double %a, double %b) local_unnamed_addr #91 { %1 = call double @llvm.fabs.f64(double %a) #136 %2 = call double @llvm.fabs.f64(double %b) #136 %3 = bitcast double %2 to i64 %4 = bitcast double %1 to i64 %min.cond.not = icmp ugt i64 %3, %4 %min = select i1 %min.cond.not, i64 %4, i64 %3 %5 = bitcast i64 %min to double %max = select i1 %min.cond.not, i64 %3, i64 %4 %6 = bitcast i64 %max to double %7 = call i32 @llvm.nvvm.d2i.hi(double %6) #138 %8 = and i32 %7, -4194304 %9 = sub i32 2144337920, %8 %10 = call double @llvm.nvvm.lohi.i2d(i32 noundef 0, i32 %9) #138 %11 = fmul double %10, %5 %12 = fmul double %10, %6 %13 = fmul double %11, %11 %14 = call double @llvm.fma.f64(double %12, double %12, double %13) #136 %15 = call double @llvm.minnum.f64(double %14, double noundef 0x7FEFFFFFFFFFFFFF) #136 %16 = call double asm "rsqrt.approx.ftz.f64 $0, $1;", "=d,d"(double %15) #137, !srcloc !236 %17 = fneg double %16 %18 = fmul double %16, %17 %19 = call double @llvm.fma.f64(double %15, double %18, double noundef 1.000000e+00) %20 = call double @llvm.fma.f64(double %19, double noundef 3.750000e-01, double noundef 5.000000e-01) %21 = fmul double %16, %19 %22 = call double @llvm.fma.f64(double %20, double %21, double %16) %23 = fmul double %14, %22 %24 = or i32 %8, 1048576 %25 = call double @llvm.nvvm.lohi.i2d(i32 noundef 0, i32 %24) #135 %26 = fmul double %25, %23 %27 = fcmp oeq double %5, 0.000000e+00 %res.0 = select i1 %27, double %6, double %26 %28 = call i32 @llvm.nvvm.d2i.hi(double %5) #135 %29 = call i32 @llvm.nvvm.d2i.hi(double noundef 0x7FF0000000000000) #135 %.not = icmp ult i32 %28, %29 %res.1 = select i1 %.not, double %res.0, double %5 ret double %res.1 } ; Function Attrs: noinline nosync nounwind readnone define dso_local double @__nv_rhypot(double %a, double %b) local_unnamed_addr #92 { %1 = call double @llvm.fabs.f64(double %a) #136 %2 = call double @llvm.fabs.f64(double %b) #136 %3 = bitcast double %2 to i64 %4 = bitcast double %1 to i64 %min.cond.not = icmp ugt i64 %3, %4 %min = select i1 %min.cond.not, i64 %4, i64 %3 %5 = bitcast i64 %min to double %max = select i1 %min.cond.not, i64 %3, i64 %4 %6 = bitcast i64 %max to double %7 = call i32 @llvm.nvvm.d2i.hi(double %6) #138 %8 = and i32 %7, -4194304 %9 = sub i32 2144337920, %8 %10 = call double @llvm.nvvm.lohi.i2d(i32 noundef 0, i32 %9) #138 %11 = fmul double %10, %5 %12 = fmul double %10, %6 %13 = fmul double %11, %11 %14 = call double @llvm.fma.f64(double %12, double %12, double %13) #136 %15 = call double asm "rsqrt.approx.ftz.f64 $0, $1;", "=d,d"(double %14) #137, !srcloc !236 %16 = fneg double %15 %17 = fmul double %15, %16 %18 = call double @llvm.fma.f64(double %14, double %17, double noundef 1.000000e+00) %19 = call double @llvm.fma.f64(double %18, double noundef 3.750000e-01, double noundef 5.000000e-01) %20 = fmul double %15, %18 %21 = call double @llvm.fma.f64(double %19, double %20, double %15) %22 = fmul double %10, %21 %23 = call i32 @llvm.nvvm.d2i.hi(double %22) #135 %24 = call i32 @llvm.nvvm.d2i.hi(double noundef 0x7FF0000000000000) #135 %.not = icmp ult i32 %23, %24 br i1 %.not, label %33, label %25 25: ; preds = %0 %26 = call double @llvm.fabs.f64(double %6) %27 = fcmp ugt double %26, 0x7FF0000000000000 %28 = fadd double %6, %5 %29 = fcmp une double %6, 0x7FF0000000000000 %30 = select i1 %29, i32 %24, i32 0 %31 = call double @llvm.nvvm.lohi.i2d(i32 noundef 0, i32 %30) #135 %res.0 = select i1 %27, double %28, double %31 %32 = fcmp oeq double %5, 0x7FF0000000000000 %res.1 = select i1 %32, double 0.000000e+00, double %res.0 br label %33 33: ; preds = %25, %0 %res.2 = phi double [ %res.1, %25 ], [ %22, %0 ] ret double %res.2 } ; Function Attrs: noinline nosync nounwind readnone define dso_local double @__nv_norm3d(double %a, double %b, double %c) local_unnamed_addr #93 { %1 = call double @llvm.fabs.f64(double %a) #136 %2 = call double @llvm.fabs.f64(double %b) #136 %3 = call double @llvm.fabs.f64(double %c) #136 %4 = fadd double %1, %2 %5 = fadd double %4, %3 %6 = call double @llvm.minnum.f64(double %1, double %2) #136 %7 = call double @llvm.maxnum.f64(double %1, double %2) #136 %8 = call double @llvm.minnum.f64(double %7, double %3) #136 %9 = call double @llvm.maxnum.f64(double %7, double %3) #136 %10 = call i32 @llvm.nvvm.d2i.hi(double %9) #138 %11 = and i32 %10, -4194304 %12 = sub i32 2144337920, %11 %13 = call double @llvm.nvvm.lohi.i2d(i32 noundef 0, i32 %12) #138 %14 = fmul double %8, %13 %15 = fmul double %6, %13 %16 = fmul double %9, %13 %17 = fmul double %14, %14 %18 = call double @llvm.fma.f64(double %15, double %15, double %17) #136 %19 = call double @llvm.fma.f64(double %16, double %16, double %18) #136 %20 = call double @llvm.minnum.f64(double %19, double noundef 0x7FEFFFFFFFFFFFFF) #136 %21 = call double asm "rsqrt.approx.ftz.f64 $0, $1;", "=d,d"(double %20) #137, !srcloc !236 %22 = fneg double %21 %23 = fmul double %21, %22 %24 = call double @llvm.fma.f64(double %20, double %23, double noundef 1.000000e+00) %25 = call double @llvm.fma.f64(double %24, double noundef 3.750000e-01, double noundef 5.000000e-01) %26 = fmul double %21, %24 %27 = call double @llvm.fma.f64(double %25, double %26, double %21) %28 = fmul double %19, %27 %29 = or i32 %11, 1048576 %30 = call double @llvm.nvvm.lohi.i2d(i32 noundef 0, i32 %29) #135 %31 = fmul double %30, %28 %32 = fcmp ogt double %5, %9 %res.0 = select i1 %32, double %31, double %5 %33 = call i32 @llvm.nvvm.d2i.hi(double noundef 0x7FF0000000000000) #135 %.not = icmp ult i32 %10, %33 %res.1 = select i1 %.not, double %res.0, double %9 ret double %res.1 } ; Function Attrs: noinline nosync nounwind readnone define dso_local double @__nv_rnorm3d(double %a, double %b, double %c) local_unnamed_addr #94 { %1 = call double @llvm.fabs.f64(double %a) #136 %2 = call double @llvm.fabs.f64(double %b) #136 %3 = call double @llvm.fabs.f64(double %c) #136 %4 = fadd double %1, %2 %5 = fadd double %4, %3 %6 = call double @llvm.minnum.f64(double %1, double %2) #136 %7 = call double @llvm.maxnum.f64(double %1, double %2) #136 %8 = call double @llvm.minnum.f64(double %7, double %3) #136 %9 = call double @llvm.maxnum.f64(double %7, double %3) #136 %10 = call i32 @llvm.nvvm.d2i.hi(double %9) #138 %11 = and i32 %10, -4194304 %12 = sub i32 2144337920, %11 %13 = call double @llvm.nvvm.lohi.i2d(i32 noundef 0, i32 %12) #138 %14 = fmul double %8, %13 %15 = fmul double %6, %13 %16 = fmul double %9, %13 %17 = fmul double %14, %14 %18 = call double @llvm.fma.f64(double %15, double %15, double %17) #136 %19 = call double @llvm.fma.f64(double %16, double %16, double %18) #136 %20 = call double asm "rsqrt.approx.ftz.f64 $0, $1;", "=d,d"(double %19) #137, !srcloc !236 %21 = fneg double %20 %22 = fmul double %20, %21 %23 = call double @llvm.fma.f64(double %19, double %22, double noundef 1.000000e+00) %24 = call double @llvm.fma.f64(double %23, double noundef 3.750000e-01, double noundef 5.000000e-01) %25 = fmul double %20, %23 %26 = call double @llvm.fma.f64(double %24, double %25, double %20) %27 = fmul double %13, %26 %28 = fcmp ogt double %5, 0.000000e+00 %29 = fadd double %5, 0x7FF0000000000000 %res.0 = select i1 %28, double %27, double %29 %30 = fcmp oeq double %9, 0x7FF0000000000000 %res.1 = select i1 %30, double 0.000000e+00, double %res.0 ret double %res.1 } ; Function Attrs: noinline nosync nounwind readnone define dso_local double @__nv_norm4d(double %a, double %b, double %c, double %d) local_unnamed_addr #95 { %1 = call double @llvm.fabs.f64(double %a) #136 %2 = call double @llvm.fabs.f64(double %b) #136 %3 = call double @llvm.fabs.f64(double %c) #136 %4 = call double @llvm.fabs.f64(double %d) #136 %5 = fadd double %1, %2 %6 = fadd double %5, %3 %7 = fadd double %6, %4 %8 = call double @llvm.minnum.f64(double %1, double %2) #136 %9 = call double @llvm.maxnum.f64(double %1, double %2) #136 %10 = call double @llvm.minnum.f64(double %9, double %3) #136 %11 = call double @llvm.maxnum.f64(double %9, double %3) #136 %12 = call double @llvm.minnum.f64(double %11, double %4) #136 %13 = call double @llvm.maxnum.f64(double %11, double %4) #136 %14 = call i32 @llvm.nvvm.d2i.hi(double %13) #138 %15 = and i32 %14, -4194304 %16 = sub i32 2144337920, %15 %17 = call double @llvm.nvvm.lohi.i2d(i32 noundef 0, i32 %16) #138 %18 = fmul double %12, %17 %19 = fmul double %10, %17 %20 = fmul double %8, %17 %21 = fmul double %13, %17 %22 = fmul double %18, %18 %23 = call double @llvm.fma.f64(double %19, double %19, double %22) #136 %24 = call double @llvm.fma.f64(double %20, double %20, double %23) #136 %25 = call double @llvm.fma.f64(double %21, double %21, double %24) #136 %26 = call double @llvm.minnum.f64(double %25, double noundef 0x7FEFFFFFFFFFFFFF) #136 %27 = call double asm "rsqrt.approx.ftz.f64 $0, $1;", "=d,d"(double %26) #137, !srcloc !236 %28 = fneg double %27 %29 = fmul double %27, %28 %30 = call double @llvm.fma.f64(double %26, double %29, double noundef 1.000000e+00) %31 = call double @llvm.fma.f64(double %30, double noundef 3.750000e-01, double noundef 5.000000e-01) %32 = fmul double %27, %30 %33 = call double @llvm.fma.f64(double %31, double %32, double %27) %34 = fmul double %25, %33 %35 = or i32 %15, 1048576 %36 = call double @llvm.nvvm.lohi.i2d(i32 noundef 0, i32 %35) #135 %37 = fmul double %36, %34 %38 = fcmp ogt double %7, %13 %res.0 = select i1 %38, double %37, double %7 %39 = call i32 @llvm.nvvm.d2i.hi(double noundef 0x7FF0000000000000) #135 %.not = icmp ult i32 %14, %39 %res.1 = select i1 %.not, double %res.0, double %13 ret double %res.1 } ; Function Attrs: noinline nosync nounwind readnone define dso_local double @__nv_rnorm4d(double %a, double %b, double %c, double %d) local_unnamed_addr #96 { %1 = call double @llvm.fabs.f64(double %a) #136 %2 = call double @llvm.fabs.f64(double %b) #136 %3 = call double @llvm.fabs.f64(double %c) #136 %4 = call double @llvm.fabs.f64(double %d) #136 %5 = fadd double %1, %2 %6 = fadd double %5, %3 %7 = fadd double %6, %4 %8 = call double @llvm.minnum.f64(double %1, double %2) #136 %9 = call double @llvm.maxnum.f64(double %1, double %2) #136 %10 = call double @llvm.minnum.f64(double %9, double %3) #136 %11 = call double @llvm.maxnum.f64(double %9, double %3) #136 %12 = call double @llvm.minnum.f64(double %11, double %4) #136 %13 = call double @llvm.maxnum.f64(double %11, double %4) #136 %14 = call i32 @llvm.nvvm.d2i.hi(double %13) #138 %15 = and i32 %14, -4194304 %16 = sub i32 2144337920, %15 %17 = call double @llvm.nvvm.lohi.i2d(i32 noundef 0, i32 %16) #138 %18 = fmul double %12, %17 %19 = fmul double %10, %17 %20 = fmul double %8, %17 %21 = fmul double %13, %17 %22 = fmul double %18, %18 %23 = call double @llvm.fma.f64(double %19, double %19, double %22) #136 %24 = call double @llvm.fma.f64(double %20, double %20, double %23) #136 %25 = call double @llvm.fma.f64(double %21, double %21, double %24) #136 %26 = call double asm "rsqrt.approx.ftz.f64 $0, $1;", "=d,d"(double %25) #137, !srcloc !236 %27 = fneg double %26 %28 = fmul double %26, %27 %29 = call double @llvm.fma.f64(double %25, double %28, double noundef 1.000000e+00) %30 = call double @llvm.fma.f64(double %29, double noundef 3.750000e-01, double noundef 5.000000e-01) %31 = fmul double %26, %29 %32 = call double @llvm.fma.f64(double %30, double %31, double %26) %33 = fmul double %17, %32 %34 = fcmp ogt double %7, 0.000000e+00 %35 = fadd double %7, 0x7FF0000000000000 %res.0 = select i1 %34, double %33, double %35 %36 = fcmp oeq double %13, 0x7FF0000000000000 %res.1 = select i1 %36, double 0.000000e+00, double %res.0 ret double %res.1 } ; Function Attrs: argmemonly noinline nosync nounwind readonly define dso_local double @__nv_norm(i32 %dim, double* nocapture nofree noundef nonnull readonly align 8 dereferenceable(8) %t) local_unnamed_addr #97 { %1 = load double, double* %t, align 8 %2 = call double @llvm.fabs.f64(double %1) %3 = icmp sgt i32 %dim, 1 br i1 %3, label %.lr.ph7, label %._crit_edge8 .lr.ph7: ; preds = %0 %4 = add nsw i32 %dim, -1 %5 = add nsw i32 %dim, -2 %xtraiter12 = and i32 %4, 3 %6 = icmp ult i32 %5, 3 br i1 %6, label %._crit_edge8.unr-lcssa, label %.lr.ph7.new .lr.ph7.new: ; preds = %.lr.ph7 %unroll_iter15 = and i32 %4, -4 br label %7 7: ; preds = %7, %.lr.ph7.new %i.05 = phi i32 [ 1, %.lr.ph7.new ], [ %27, %7 ] %largest.04 = phi double [ %2, %.lr.ph7.new ], [ %26, %7 ] %niter16 = phi i32 [ 0, %.lr.ph7.new ], [ %niter16.next.3, %7 ] %8 = getelementptr inbounds double, double* %t, i32 %i.05 %9 = load double, double* %8, align 8 %10 = call double @llvm.fabs.f64(double %9) %11 = call double @llvm.maxnum.f64(double %10, double %largest.04) %12 = add nuw nsw i32 %i.05, 1 %13 = getelementptr inbounds double, double* %t, i32 %12 %14 = load double, double* %13, align 8 %15 = call double @llvm.fabs.f64(double %14) %16 = call double @llvm.maxnum.f64(double %15, double %11) %17 = add nuw nsw i32 %i.05, 2 %18 = getelementptr inbounds double, double* %t, i32 %17 %19 = load double, double* %18, align 8 %20 = call double @llvm.fabs.f64(double %19) %21 = call double @llvm.maxnum.f64(double %20, double %16) %22 = add nuw nsw i32 %i.05, 3 %23 = getelementptr inbounds double, double* %t, i32 %22 %24 = load double, double* %23, align 8 %25 = call double @llvm.fabs.f64(double %24) %26 = call double @llvm.maxnum.f64(double %25, double %21) %27 = add nuw nsw i32 %i.05, 4 %niter16.next.3 = add i32 %niter16, 4 %niter16.ncmp.3.not = icmp eq i32 %niter16.next.3, %unroll_iter15 br i1 %niter16.ncmp.3.not, label %._crit_edge8.unr-lcssa.loopexit, label %7 ._crit_edge8.unr-lcssa.loopexit: ; preds = %7 %28 = or i32 %unroll_iter15, 1 br label %._crit_edge8.unr-lcssa ._crit_edge8.unr-lcssa: ; preds = %._crit_edge8.unr-lcssa.loopexit, %.lr.ph7 %.lcssa.ph = phi double [ undef, %.lr.ph7 ], [ %26, %._crit_edge8.unr-lcssa.loopexit ] %i.05.unr = phi i32 [ 1, %.lr.ph7 ], [ %28, %._crit_edge8.unr-lcssa.loopexit ] %largest.04.unr = phi double [ %2, %.lr.ph7 ], [ %26, %._crit_edge8.unr-lcssa.loopexit ] %lcmp.mod13.not = icmp eq i32 %xtraiter12, 0 br i1 %lcmp.mod13.not, label %._crit_edge8, label %.epil.preheader11 .epil.preheader11: ; preds = %._crit_edge8.unr-lcssa, %.epil.preheader11 %i.05.epil = phi i32 [ %33, %.epil.preheader11 ], [ %i.05.unr, %._crit_edge8.unr-lcssa ] %largest.04.epil = phi double [ %32, %.epil.preheader11 ], [ %largest.04.unr, %._crit_edge8.unr-lcssa ] %epil.iter = phi i32 [ %epil.iter.next, %.epil.preheader11 ], [ 0, %._crit_edge8.unr-lcssa ] %29 = getelementptr inbounds double, double* %t, i32 %i.05.epil %30 = load double, double* %29, align 8 %31 = call double @llvm.fabs.f64(double %30) %32 = call double @llvm.maxnum.f64(double %31, double %largest.04.epil) %33 = add nuw nsw i32 %i.05.epil, 1 %epil.iter.next = add nuw nsw i32 %epil.iter, 1 %epil.iter.cmp.not = icmp eq i32 %epil.iter.next, %xtraiter12 br i1 %epil.iter.cmp.not, label %._crit_edge8, label %.epil.preheader11, !llvm.loop !237 ._crit_edge8: ; preds = %.epil.preheader11, %._crit_edge8.unr-lcssa, %0 %largest.0.lcssa = phi double [ %2, %0 ], [ %.lcssa.ph, %._crit_edge8.unr-lcssa ], [ %32, %.epil.preheader11 ] %34 = call i32 @llvm.nvvm.d2i.hi(double %largest.0.lcssa) #135 %35 = and i32 %34, -4194304 %36 = sub i32 2144337920, %35 %37 = call double @llvm.nvvm.lohi.i2d(i32 noundef 0, i32 %36) #135 %38 = fmul double %largest.0.lcssa, %37 %39 = icmp sgt i32 %dim, 0 br i1 %39, label %.lr.ph, label %._crit_edge .lr.ph: ; preds = %._crit_edge8 %xtraiter = and i32 %dim, 1 %40 = icmp eq i32 %dim, 1 br i1 %40, label %._crit_edge.unr-lcssa, label %.lr.ph.new .lr.ph.new: ; preds = %.lr.ph %unroll_iter = and i32 %dim, -2 br label %41 41: ; preds = %._crit_edge17, %.lr.ph.new %42 = phi double [ %1, %.lr.ph.new ], [ %.pre, %._crit_edge17 ] %j.03 = phi i32 [ 0, %.lr.ph.new ], [ %j.1.1, %._crit_edge17 ] %i.12 = phi i32 [ 0, %.lr.ph.new ], [ %58, %._crit_edge17 ] %res0.01 = phi double [ 0.000000e+00, %.lr.ph.new ], [ %res0.1.1, %._crit_edge17 ] %43 = call double @llvm.fabs.f64(double %42) %44 = fmul double %37, %43 %45 = fcmp une double %44, %38 %46 = icmp ne i32 %i.12, %j.03 %or.cond = select i1 %45, i1 true, i1 %46 %47 = call double @llvm.fma.f64(double %44, double %44, double %res0.01) %res0.1 = select i1 %or.cond, double %47, double %res0.01 %48 = zext i1 %or.cond to i32 %j.1 = add nuw nsw i32 %j.03, %48 %49 = or i32 %i.12, 1 %50 = getelementptr inbounds double, double* %t, i32 %49 %51 = load double, double* %50, align 8 %52 = call double @llvm.fabs.f64(double %51) %53 = fmul double %37, %52 %54 = fcmp une double %53, %38 %55 = icmp ne i32 %49, %j.1 %or.cond.1 = select i1 %54, i1 true, i1 %55 %56 = call double @llvm.fma.f64(double %53, double %53, double %res0.1) %res0.1.1 = select i1 %or.cond.1, double %56, double %res0.1 %57 = zext i1 %or.cond.1 to i32 %j.1.1 = add nuw nsw i32 %j.1, %57 %58 = add nuw nsw i32 %i.12, 2 %niter.ncmp.1.not = icmp eq i32 %58, %unroll_iter br i1 %niter.ncmp.1.not, label %._crit_edge.unr-lcssa, label %._crit_edge17 ._crit_edge17: ; preds = %41 %.phi.trans.insert = getelementptr inbounds double, double* %t, i32 %58 %.pre = load double, double* %.phi.trans.insert, align 8 br label %41 ._crit_edge.unr-lcssa: ; preds = %41, %.lr.ph %res0.1.lcssa.ph = phi double [ undef, %.lr.ph ], [ %res0.1.1, %41 ] %j.03.unr = phi i32 [ 0, %.lr.ph ], [ %j.1.1, %41 ] %i.12.unr = phi i32 [ 0, %.lr.ph ], [ %unroll_iter, %41 ] %res0.01.unr = phi double [ 0.000000e+00, %.lr.ph ], [ %res0.1.1, %41 ] %lcmp.mod.not = icmp eq i32 %xtraiter, 0 br i1 %lcmp.mod.not, label %._crit_edge, label %.epil.preheader .epil.preheader: ; preds = %._crit_edge.unr-lcssa %59 = getelementptr inbounds double, double* %t, i32 %i.12.unr %60 = load double, double* %59, align 8 %61 = call double @llvm.fabs.f64(double %60) %62 = fmul double %37, %61 %63 = fcmp une double %62, %38 %64 = icmp ne i32 %i.12.unr, %j.03.unr %or.cond.epil = select i1 %63, i1 true, i1 %64 %65 = call double @llvm.fma.f64(double %62, double %62, double %res0.01.unr) %res0.1.epil = select i1 %or.cond.epil, double %65, double %res0.01.unr br label %._crit_edge ._crit_edge: ; preds = %.epil.preheader, %._crit_edge.unr-lcssa, %._crit_edge8 %res0.0.lcssa = phi double [ 0.000000e+00, %._crit_edge8 ], [ %res0.1.lcssa.ph, %._crit_edge.unr-lcssa ], [ %res0.1.epil, %.epil.preheader ] %66 = call double @llvm.fma.f64(double %38, double %38, double %res0.0.lcssa) %67 = call double @llvm.minnum.f64(double %66, double noundef 0x7FEFFFFFFFFFFFFF) %68 = call double asm "rsqrt.approx.ftz.f64 $0, $1;", "=d,d"(double %67) #137, !srcloc !236 %69 = fneg double %68 %70 = fmul double %68, %69 %71 = call double @llvm.fma.f64(double %67, double %70, double noundef 1.000000e+00) %72 = fcmp oeq double %res0.0.lcssa, 0.000000e+00 br i1 %72, label %82, label %73 73: ; preds = %._crit_edge %74 = call double @llvm.fma.f64(double %71, double noundef 3.750000e-01, double noundef 5.000000e-01) %75 = fmul double %68, %71 %76 = call double @llvm.fma.f64(double %74, double %75, double %68) %77 = fmul double %66, %76 %78 = or i32 %35, 1048576 %79 = call double @llvm.nvvm.lohi.i2d(i32 noundef 0, i32 %78) #135 %80 = fmul double %79, %77 %81 = call i32 @llvm.nvvm.d2i.hi(double noundef 0x7FF0000000000000) #135 %.not = icmp ult i32 %34, %81 br i1 %.not, label %83, label %82 82: ; preds = %73, %._crit_edge br label %83 83: ; preds = %82, %73 %res.0 = phi double [ %largest.0.lcssa, %82 ], [ %80, %73 ] ret double %res.0 } ; Function Attrs: argmemonly nofree noinline nosync nounwind readonly define dso_local double @__nv_rnorm(i32 %dim, double* nocapture nofree noundef nonnull readonly align 8 dereferenceable(8) %t) local_unnamed_addr #98 { %1 = load double, double* %t, align 8 %2 = call double @llvm.fabs.f64(double %1) %3 = icmp sgt i32 %dim, 1 br i1 %3, label %.lr.ph7, label %._crit_edge8 .lr.ph7: ; preds = %0 %4 = add nsw i32 %dim, -1 %5 = add nsw i32 %dim, -2 %xtraiter12 = and i32 %4, 3 %6 = icmp ult i32 %5, 3 br i1 %6, label %._crit_edge8.unr-lcssa, label %.lr.ph7.new .lr.ph7.new: ; preds = %.lr.ph7 %unroll_iter15 = and i32 %4, -4 br label %7 7: ; preds = %7, %.lr.ph7.new %i.05 = phi i32 [ 1, %.lr.ph7.new ], [ %27, %7 ] %largest.04 = phi double [ %2, %.lr.ph7.new ], [ %26, %7 ] %niter16 = phi i32 [ 0, %.lr.ph7.new ], [ %niter16.next.3, %7 ] %8 = getelementptr inbounds double, double* %t, i32 %i.05 %9 = load double, double* %8, align 8 %10 = call double @llvm.fabs.f64(double %9) %11 = call double @llvm.maxnum.f64(double %10, double %largest.04) %12 = add nuw nsw i32 %i.05, 1 %13 = getelementptr inbounds double, double* %t, i32 %12 %14 = load double, double* %13, align 8 %15 = call double @llvm.fabs.f64(double %14) %16 = call double @llvm.maxnum.f64(double %15, double %11) %17 = add nuw nsw i32 %i.05, 2 %18 = getelementptr inbounds double, double* %t, i32 %17 %19 = load double, double* %18, align 8 %20 = call double @llvm.fabs.f64(double %19) %21 = call double @llvm.maxnum.f64(double %20, double %16) %22 = add nuw nsw i32 %i.05, 3 %23 = getelementptr inbounds double, double* %t, i32 %22 %24 = load double, double* %23, align 8 %25 = call double @llvm.fabs.f64(double %24) %26 = call double @llvm.maxnum.f64(double %25, double %21) %27 = add nuw nsw i32 %i.05, 4 %niter16.next.3 = add i32 %niter16, 4 %niter16.ncmp.3.not = icmp eq i32 %niter16.next.3, %unroll_iter15 br i1 %niter16.ncmp.3.not, label %._crit_edge8.unr-lcssa.loopexit, label %7 ._crit_edge8.unr-lcssa.loopexit: ; preds = %7 %28 = or i32 %unroll_iter15, 1 br label %._crit_edge8.unr-lcssa ._crit_edge8.unr-lcssa: ; preds = %._crit_edge8.unr-lcssa.loopexit, %.lr.ph7 %.lcssa.ph = phi double [ undef, %.lr.ph7 ], [ %26, %._crit_edge8.unr-lcssa.loopexit ] %i.05.unr = phi i32 [ 1, %.lr.ph7 ], [ %28, %._crit_edge8.unr-lcssa.loopexit ] %largest.04.unr = phi double [ %2, %.lr.ph7 ], [ %26, %._crit_edge8.unr-lcssa.loopexit ] %lcmp.mod13.not = icmp eq i32 %xtraiter12, 0 br i1 %lcmp.mod13.not, label %._crit_edge8, label %.epil.preheader11 .epil.preheader11: ; preds = %._crit_edge8.unr-lcssa, %.epil.preheader11 %i.05.epil = phi i32 [ %33, %.epil.preheader11 ], [ %i.05.unr, %._crit_edge8.unr-lcssa ] %largest.04.epil = phi double [ %32, %.epil.preheader11 ], [ %largest.04.unr, %._crit_edge8.unr-lcssa ] %epil.iter = phi i32 [ %epil.iter.next, %.epil.preheader11 ], [ 0, %._crit_edge8.unr-lcssa ] %29 = getelementptr inbounds double, double* %t, i32 %i.05.epil %30 = load double, double* %29, align 8 %31 = call double @llvm.fabs.f64(double %30) %32 = call double @llvm.maxnum.f64(double %31, double %largest.04.epil) %33 = add nuw nsw i32 %i.05.epil, 1 %epil.iter.next = add nuw nsw i32 %epil.iter, 1 %epil.iter.cmp.not = icmp eq i32 %epil.iter.next, %xtraiter12 br i1 %epil.iter.cmp.not, label %._crit_edge8, label %.epil.preheader11, !llvm.loop !239 ._crit_edge8: ; preds = %.epil.preheader11, %._crit_edge8.unr-lcssa, %0 %largest.0.lcssa = phi double [ %2, %0 ], [ %.lcssa.ph, %._crit_edge8.unr-lcssa ], [ %32, %.epil.preheader11 ] %34 = call i32 @llvm.nvvm.d2i.hi(double %largest.0.lcssa) #135 %35 = and i32 %34, -4194304 %36 = sub i32 2144337920, %35 %37 = call double @llvm.nvvm.lohi.i2d(i32 noundef 0, i32 %36) #135 %38 = fmul double %largest.0.lcssa, %37 %39 = icmp sgt i32 %dim, 0 br i1 %39, label %.lr.ph, label %._crit_edge .lr.ph: ; preds = %._crit_edge8 %xtraiter = and i32 %dim, 1 %40 = icmp eq i32 %dim, 1 br i1 %40, label %._crit_edge.unr-lcssa, label %.lr.ph.new .lr.ph.new: ; preds = %.lr.ph %unroll_iter = and i32 %dim, -2 br label %41 41: ; preds = %._crit_edge17, %.lr.ph.new %42 = phi double [ %1, %.lr.ph.new ], [ %.pre, %._crit_edge17 ] %j.03 = phi i32 [ 0, %.lr.ph.new ], [ %j.1.1, %._crit_edge17 ] %i.12 = phi i32 [ 0, %.lr.ph.new ], [ %58, %._crit_edge17 ] %res0.01 = phi double [ 0.000000e+00, %.lr.ph.new ], [ %res0.1.1, %._crit_edge17 ] %43 = call double @llvm.fabs.f64(double %42) %44 = fmul double %37, %43 %45 = fcmp une double %44, %38 %46 = icmp ne i32 %i.12, %j.03 %or.cond = select i1 %45, i1 true, i1 %46 %47 = call double @llvm.fma.f64(double %44, double %44, double %res0.01) %res0.1 = select i1 %or.cond, double %47, double %res0.01 %48 = zext i1 %or.cond to i32 %j.1 = add nuw nsw i32 %j.03, %48 %49 = or i32 %i.12, 1 %50 = getelementptr inbounds double, double* %t, i32 %49 %51 = load double, double* %50, align 8 %52 = call double @llvm.fabs.f64(double %51) %53 = fmul double %37, %52 %54 = fcmp une double %53, %38 %55 = icmp ne i32 %49, %j.1 %or.cond.1 = select i1 %54, i1 true, i1 %55 %56 = call double @llvm.fma.f64(double %53, double %53, double %res0.1) %res0.1.1 = select i1 %or.cond.1, double %56, double %res0.1 %57 = zext i1 %or.cond.1 to i32 %j.1.1 = add nuw nsw i32 %j.1, %57 %58 = add nuw nsw i32 %i.12, 2 %niter.ncmp.1.not = icmp eq i32 %58, %unroll_iter br i1 %niter.ncmp.1.not, label %._crit_edge.unr-lcssa, label %._crit_edge17 ._crit_edge17: ; preds = %41 %.phi.trans.insert = getelementptr inbounds double, double* %t, i32 %58 %.pre = load double, double* %.phi.trans.insert, align 8 br label %41 ._crit_edge.unr-lcssa: ; preds = %41, %.lr.ph %res0.1.lcssa.ph = phi double [ undef, %.lr.ph ], [ %res0.1.1, %41 ] %j.03.unr = phi i32 [ 0, %.lr.ph ], [ %j.1.1, %41 ] %i.12.unr = phi i32 [ 0, %.lr.ph ], [ %unroll_iter, %41 ] %res0.01.unr = phi double [ 0.000000e+00, %.lr.ph ], [ %res0.1.1, %41 ] %lcmp.mod.not = icmp eq i32 %xtraiter, 0 br i1 %lcmp.mod.not, label %._crit_edge, label %.epil.preheader .epil.preheader: ; preds = %._crit_edge.unr-lcssa %59 = getelementptr inbounds double, double* %t, i32 %i.12.unr %60 = load double, double* %59, align 8 %61 = call double @llvm.fabs.f64(double %60) %62 = fmul double %37, %61 %63 = fcmp une double %62, %38 %64 = icmp ne i32 %i.12.unr, %j.03.unr %or.cond.epil = select i1 %63, i1 true, i1 %64 %65 = call double @llvm.fma.f64(double %62, double %62, double %res0.01.unr) %res0.1.epil = select i1 %or.cond.epil, double %65, double %res0.01.unr br label %._crit_edge ._crit_edge: ; preds = %.epil.preheader, %._crit_edge.unr-lcssa, %._crit_edge8 %res0.0.lcssa = phi double [ 0.000000e+00, %._crit_edge8 ], [ %res0.1.lcssa.ph, %._crit_edge.unr-lcssa ], [ %res0.1.epil, %.epil.preheader ] %66 = call double @llvm.fma.f64(double %38, double %38, double %res0.0.lcssa) %67 = call double @llvm.nvvm.rsqrt.approx.d(double %66) #135 %68 = fmul double %37, %67 %69 = fcmp oeq double %largest.0.lcssa, 0x7FF0000000000000 %res.0 = select i1 %69, double 0.000000e+00, double %68 ret double %res.0 } ; Function Attrs: noinline nounwind define dso_local double @__nv_cbrt(double %a) local_unnamed_addr #99 { %1 = call i32 @llvm.nvvm.d2i.lo(double %a) #138 %2 = call i32 @llvm.nvvm.d2i.hi(double %a) #138 %3 = and i32 %2, 2147483647 %4 = fcmp une double %a, 0.000000e+00 %5 = icmp ult i32 %3, 2146435072 %or.cond = select i1 %4, i1 %5, i1 false br i1 %or.cond, label %__nv_float2int_rn.exit, label %50 __nv_float2int_rn.exit: ; preds = %0 %6 = icmp ult i32 %3, 1048576 %7 = call double @llvm.nvvm.lohi.i2d(i32 %1, i32 %3) #138 %8 = fmul double %7, 0x4350000000000000 %9 = call i32 @llvm.nvvm.d2i.lo(double %8) #138 %10 = call i32 @llvm.nvvm.d2i.hi(double %8) #138 %ilo.0 = select i1 %6, i32 %9, i32 %1 %ihi.0 = select i1 %6, i32 %10, i32 %3 %denorm.0.neg = select i1 %6, i32 4078, i32 1048576 %expo.0 = lshr i32 %ihi.0, 20 %11 = add nsw i32 %expo.0, -1022 %12 = sitofp i32 %11 to float %13 = fmul float %12, 0x3FD5555560000000 %14 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not = icmp eq i32 %14, 0 %15 = call i32 @llvm.nvvm.f2i.rn.ftz(float %13) #135 %16 = call i32 @llvm.nvvm.f2i.rn(float %13) #135 %.0 = select i1 %.not, i32 %16, i32 %15 %.neg = mul i32 %.0, -3145728 %17 = add i32 %.neg, %ihi.0 %18 = call double @llvm.nvvm.lohi.i2d(i32 %ilo.0, i32 %17) #135 %19 = fptrunc double %18 to float %20 = call float @llvm.nvvm.lg2.approx.ftz.f(float %19) #135 %21 = fmul float %20, 0x3FD5555560000000 %22 = call float @llvm.nvvm.ex2.approx.ftz.f(float %21) #135 %23 = fpext float %22 to double %24 = fmul double %23, %23 %25 = call i32 @llvm.nvvm.d2i.lo(double %24) #135 %26 = call i32 @llvm.nvvm.d2i.hi(double %24) #135 %27 = add i32 %26, 1048576 %28 = call double @llvm.nvvm.lohi.i2d(i32 %25, i32 %27) #135 %29 = call double @llvm.fma.f64(double %28, double %23, double %18) %30 = call double @llvm.nvvm.rcp.approx.ftz.d(double %29) #135 %31 = fneg double %29 %32 = call double @llvm.fma.f64(double %31, double %30, double noundef 1.000000e+00) %33 = call double @llvm.fma.f64(double %32, double %32, double %32) %34 = call double @llvm.fma.f64(double %33, double %30, double %30) %35 = fneg double %23 %36 = call double @llvm.fma.f64(double %24, double %35, double %18) %37 = fmul double %36, %34 %38 = call double @llvm.fma.f64(double %23, double %37, double %23) %39 = call i32 @llvm.nvvm.d2i.lo(double %38) #135 %40 = call i32 @llvm.nvvm.d2i.hi(double %38) #135 %41 = add i32 %.0, %denorm.0.neg %42 = shl i32 %41, 20 %43 = add nsw i32 %40, %42 %44 = call double @llvm.nvvm.lohi.i2d(i32 %39, i32 %43) #135 %45 = call i32 @llvm.nvvm.d2i.lo(double %44) #135 %46 = call i32 @llvm.nvvm.d2i.hi(double %44) #135 %47 = and i32 %2, -2147483648 %48 = or i32 %46, %47 %49 = call double @llvm.nvvm.lohi.i2d(i32 %45, i32 %48) #135 br label %52 50: ; preds = %0 %51 = fadd double %a, %a br label %52 52: ; preds = %50, %__nv_float2int_rn.exit %t.0 = phi double [ %49, %__nv_float2int_rn.exit ], [ %51, %50 ] ret double %t.0 } ; Function Attrs: noinline nounwind define dso_local double @__nv_rcbrt(double %a) local_unnamed_addr #100 { %1 = call i32 @llvm.nvvm.d2i.lo(double %a) #138 %2 = call i32 @llvm.nvvm.d2i.hi(double %a) #138 %3 = and i32 %2, 2147483647 %4 = fcmp une double %a, 0.000000e+00 %5 = icmp ult i32 %3, 2146435072 %or.cond = select i1 %4, i1 %5, i1 false br i1 %or.cond, label %__nv_float2int_rn.exit, label %43 __nv_float2int_rn.exit: ; preds = %0 %6 = icmp ult i32 %3, 1048576 %7 = call double @llvm.nvvm.lohi.i2d(i32 %1, i32 %3) #138 %8 = fmul double %7, 0x4350000000000000 %9 = call i32 @llvm.nvvm.d2i.lo(double %8) #138 %10 = call i32 @llvm.nvvm.d2i.hi(double %8) #138 %ilo.0 = select i1 %6, i32 %9, i32 %1 %ihi.0 = select i1 %6, i32 %10, i32 %3 %denorm.0.neg.neg = select i1 %6, i32 18, i32 1048576 %expo.0 = lshr i32 %ihi.0, 20 %11 = add nsw i32 %expo.0, -1022 %12 = sitofp i32 %11 to float %13 = fmul float %12, 0x3FD5555560000000 %14 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not = icmp eq i32 %14, 0 %15 = call i32 @llvm.nvvm.f2i.rn.ftz(float %13) #135 %16 = call i32 @llvm.nvvm.f2i.rn(float %13) #135 %.0 = select i1 %.not, i32 %16, i32 %15 %.neg = mul i32 %.0, -3145728 %17 = add i32 %.neg, %ihi.0 %18 = call double @llvm.nvvm.lohi.i2d(i32 %ilo.0, i32 %17) #135 %19 = fptrunc double %18 to float %20 = call float @llvm.nvvm.lg2.approx.ftz.f(float %19) #135 %21 = fmul float %20, 0xBFD5555560000000 %22 = call float @llvm.nvvm.ex2.approx.ftz.f(float %21) #135 %23 = fpext float %22 to double %24 = fmul double %23, %23 %25 = fmul double %18, %23 %26 = fneg double %25 %27 = call double @llvm.fma.f64(double %24, double %26, double noundef 1.000000e+00) %28 = call double @llvm.fma.f64(double %18, double %23, double %26) %29 = fneg double %28 %30 = call double @llvm.fma.f64(double %24, double %29, double %27) %31 = fneg double %24 %32 = call double @llvm.fma.f64(double %23, double %23, double %31) %33 = fneg double %32 %34 = call double @llvm.fma.f64(double %25, double %33, double %30) %35 = call double @llvm.fma.f64(double %34, double noundef 0x3FCC71C71C71C71C, double noundef 0x3FD5555555555555) %36 = fmul double %34, %23 %37 = call double @llvm.fma.f64(double %35, double %36, double %23) %38 = call i32 @llvm.nvvm.d2i.lo(double %37) #135 %39 = call i32 @llvm.nvvm.d2i.hi(double %37) #135 %.neg1 = sub i32 %denorm.0.neg.neg, %.0 %40 = shl i32 %.neg1, 20 %41 = add nsw i32 %39, %40 %42 = call double @llvm.nvvm.lohi.i2d(i32 %38, i32 %41) #135 br label %49 43: ; preds = %0 %44 = xor i32 %3, 2146435072 %45 = call double @llvm.nvvm.lohi.i2d(i32 %1, i32 %44) #135 %46 = call double @llvm.fabs.f64(double %a) %47 = fcmp ugt double %46, 0x7FF0000000000000 %48 = fadd double %a, %a %spec.select = select i1 %47, double %48, double %45 br label %49 49: ; preds = %43, %__nv_float2int_rn.exit %t.1 = phi double [ %42, %__nv_float2int_rn.exit ], [ %spec.select, %43 ] %50 = call i32 @llvm.nvvm.d2i.lo(double %t.1) #135 %51 = call i32 @llvm.nvvm.d2i.hi(double %t.1) #135 %52 = and i32 %2, -2147483648 %53 = or i32 %51, %52 %54 = call double @llvm.nvvm.lohi.i2d(i32 %50, i32 %53) #135 ret double %54 } ; Function Attrs: noinline nounwind define dso_local double @__nv_pow(double %a, double %b) local_unnamed_addr #101 { %1 = call i32 @llvm.nvvm.d2i.hi(double %a) #138 %2 = call i32 @llvm.nvvm.d2i.hi(double %b) #138 %3 = lshr i32 %2, 20 %4 = and i32 %3, 2047 %5 = add nsw i32 %4, -1012 %6 = bitcast double %b to i64 %7 = zext i32 %5 to i64 %8 = shl i64 %6, %7 %9 = icmp eq i64 %8, -9223372036854775808 %10 = zext i1 %9 to i32 %11 = call double @llvm.fabs.f64(double %a) #136 %12 = call fastcc double @__internal_accurate_pow(double %11, double %b) #135 %13 = icmp slt i32 %1, 0 %14 = fcmp oeq double %a, 0.000000e+00 br i1 %14, label %15, label %21 15: ; preds = %0 %16 = call double @llvm.fabs.f64(double %b) %17 = fcmp oeq double %16, 5.000000e-01 %bIsOddInteger.0 = select i1 %17, i32 0, i32 %10 %.not = icmp eq i32 %bIsOddInteger.0, 0 %thi.0 = select i1 %.not, i32 0, i32 %1 %18 = icmp slt i32 %2, 0 %19 = or i32 %thi.0, 2146435072 %thi.1 = select i1 %18, i32 %19, i32 %thi.0 %20 = call double @llvm.nvvm.lohi.i2d(i32 noundef 0, i32 %thi.1) #135 br label %28 21: ; preds = %0 %or.cond = select i1 %13, i1 %9, i1 false %22 = call i32 @llvm.nvvm.d2i.lo(double %12) #135 %23 = call i32 @llvm.nvvm.d2i.hi(double %12) #135 %24 = xor i32 %23, -2147483648 %25 = call double @llvm.nvvm.lohi.i2d(i32 %22, i32 %24) #135 %t.0 = select i1 %or.cond, double %25, double %12 %26 = call double @llvm.trunc.f64(double %b) %27 = fcmp une double %26, %b %or.cond2 = select i1 %13, i1 %27, i1 false %t.1 = select i1 %or.cond2, double 0xFFF8000000000000, double %t.0 br label %28 28: ; preds = %21, %15 %t.2 = phi double [ %20, %15 ], [ %t.1, %21 ] %bIsOddInteger.1 = phi i32 [ %bIsOddInteger.0, %15 ], [ %10, %21 ] %29 = fadd double %a, %b %30 = call i32 @llvm.nvvm.d2i.hi(double %29) #135 %31 = and i32 %30, 2146435072 %32 = icmp eq i32 %31, 2146435072 br i1 %32, label %33, label %84 33: ; preds = %28 %34 = fcmp ugt double %11, 0x7FF0000000000000 br i1 %34, label %84, label %35 35: ; preds = %33 %36 = call double @llvm.fabs.f64(double %b) %37 = fcmp ugt double %36, 0x7FF0000000000000 br i1 %37, label %84, label %38 38: ; preds = %35 %39 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([12 x i8], [12 x i8]* @.str.1, i32 0, i32 0)) #135 %40 = icmp eq i32 %39, 200 br i1 %40, label %47, label %41 41: ; preds = %38 %42 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([12 x i8], [12 x i8]* @.str.1, i32 0, i32 0)) #135 %43 = icmp eq i32 %42, 350 br i1 %43, label %47, label %44 44: ; preds = %41 %45 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([12 x i8], [12 x i8]* @.str.1, i32 0, i32 0)) #135 %46 = icmp eq i32 %45, 370 br i1 %46, label %47, label %49 47: ; preds = %44, %41, %38 %48 = fcmp oeq double %36, 0x7FF0000000000000 br label %__nv_isinfd.exit4 49: ; preds = %44 %50 = call i32 @llvm.nvvm.d2i.lo(double %b) #135 %51 = and i32 %2, 2147483647 %52 = icmp eq i32 %51, 2146435072 %53 = icmp eq i32 %50, 0 %54 = select i1 %52, i1 %53, i1 false br label %__nv_isinfd.exit4 __nv_isinfd.exit4: ; preds = %49, %47 %.01.in = phi i1 [ %48, %47 ], [ %54, %49 ] br i1 %.01.in, label %55, label %61 55: ; preds = %__nv_isinfd.exit4 %56 = fcmp ogt double %11, 1.000000e+00 %thi.2 = select i1 %56, i32 2146435072, i32 0 %57 = icmp slt i32 %2, 0 %58 = xor i32 %thi.2, 2146435072 %thi.3 = select i1 %57, i32 %58, i32 %thi.2 %59 = fcmp oeq double %a, -1.000000e+00 %thi.4 = select i1 %59, i32 1072693248, i32 %thi.3 %60 = call double @llvm.nvvm.lohi.i2d(i32 noundef 0, i32 %thi.4) #135 br label %84 61: ; preds = %__nv_isinfd.exit4 %62 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([12 x i8], [12 x i8]* @.str.1, i32 0, i32 0)) #135 %63 = icmp eq i32 %62, 200 br i1 %63, label %70, label %64 64: ; preds = %61 %65 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([12 x i8], [12 x i8]* @.str.1, i32 0, i32 0)) #135 %66 = icmp eq i32 %65, 350 br i1 %66, label %70, label %67 67: ; preds = %64 %68 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([12 x i8], [12 x i8]* @.str.1, i32 0, i32 0)) #135 %69 = icmp eq i32 %68, 370 br i1 %69, label %70, label %72 70: ; preds = %67, %64, %61 %71 = fcmp oeq double %11, 0x7FF0000000000000 br label %__nv_isinfd.exit 72: ; preds = %67 %73 = call i32 @llvm.nvvm.d2i.lo(double %a) #135 %74 = and i32 %1, 2147483647 %75 = icmp eq i32 %74, 2146435072 %76 = icmp eq i32 %73, 0 %77 = select i1 %75, i1 %76, i1 false br label %__nv_isinfd.exit __nv_isinfd.exit: ; preds = %72, %70 %.0.in = phi i1 [ %71, %70 ], [ %77, %72 ] br i1 %.0.in, label %78, label %84 78: ; preds = %__nv_isinfd.exit %.inv = icmp slt i32 %2, 0 %spec.select = select i1 %.inv, i32 0, i32 2146435072 %79 = icmp ne i32 %bIsOddInteger.1, 0 %or.cond3 = select i1 %13, i1 %79, i1 false %80 = and i32 %2, 2147483647 %81 = icmp ne i32 %80, 1071644672 %or.cond5 = select i1 %or.cond3, i1 %81, i1 false %82 = or i32 %spec.select, -2147483648 %thi.6 = select i1 %or.cond5, i32 %82, i32 %spec.select %83 = call double @llvm.nvvm.lohi.i2d(i32 noundef 0, i32 %thi.6) #135 br label %84 84: ; preds = %33, %35, %__nv_isinfd.exit, %78, %55, %28 %t.6 = phi double [ %t.2, %28 ], [ %60, %55 ], [ %83, %78 ], [ %t.2, %__nv_isinfd.exit ], [ %29, %35 ], [ %29, %33 ] %85 = fcmp oeq double %a, 1.000000e+00 %86 = fcmp oeq double %b, 0.000000e+00 %or.cond6 = select i1 %85, i1 true, i1 %86 %t.7 = select i1 %or.cond6, double 1.000000e+00, double %t.6 ret double %t.7 } ; Function Attrs: noinline nounwind define internal fastcc double @__internal_accurate_pow(double %a, double %b) unnamed_addr #102 { %1 = call i32 @llvm.nvvm.d2i.hi(double %a) #138 %2 = call i32 @llvm.nvvm.d2i.lo(double %a) #138 %3 = lshr i32 %1, 20 %4 = icmp ult i32 %1, 1048576 br i1 %4, label %5, label %11 5: ; preds = %0 %6 = fmul double %a, 0x4350000000000000 %7 = call i32 @llvm.nvvm.d2i.hi(double %6) #138 %8 = call i32 @llvm.nvvm.d2i.lo(double %6) #138 %9 = lshr i32 %7, 20 %10 = add nsw i32 %9, -54 br label %11 11: ; preds = %5, %0 %ilo.i.0 = phi i32 [ %8, %5 ], [ %2, %0 ] %ihi.i.0 = phi i32 [ %7, %5 ], [ %1, %0 ] %expo.i.0 = phi i32 [ %10, %5 ], [ %3, %0 ] %12 = add nsw i32 %expo.i.0, -1023 %13 = and i32 %ihi.i.0, -2146435073 %14 = or i32 %13, 1072693248 %15 = call double @llvm.nvvm.lohi.i2d(i32 %ilo.i.0, i32 %14) #138 %16 = icmp ugt i32 %14, 1073127582 br i1 %16, label %17, label %__internal_log_ext_prec.exit 17: ; preds = %11 %18 = call i32 @llvm.nvvm.d2i.lo(double %15) #138 %19 = call i32 @llvm.nvvm.d2i.hi(double %15) #138 %20 = add i32 %19, -1048576 %21 = call double @llvm.nvvm.lohi.i2d(i32 %18, i32 %20) #138 %22 = add nsw i32 %expo.i.0, -1022 br label %__internal_log_ext_prec.exit __internal_log_ext_prec.exit: ; preds = %17, %11 %m.i.0 = phi double [ %21, %17 ], [ %15, %11 ] %expo.i.1 = phi i32 [ %22, %17 ], [ %12, %11 ] %23 = fadd double %m.i.0, -1.000000e+00 %24 = fadd double %m.i.0, 1.000000e+00 %25 = call double @llvm.nvvm.rcp.approx.ftz.d(double %24) #138 %26 = fneg double %24 %27 = call double @llvm.fma.f64(double %26, double %25, double noundef 1.000000e+00) #136 %28 = call double @llvm.fma.f64(double %27, double %27, double %27) #136 %29 = call double @llvm.fma.f64(double %28, double %25, double %25) #136 %30 = fmul double %23, %29 %31 = fadd double %30, %30 %32 = fmul double %31, %31 %33 = call double @llvm.fma.f64(double %32, double noundef 0x3EB0F5FF7D2CAFE2, double noundef 0x3ED0F5D241AD3B5A) #136 %34 = call double @llvm.fma.f64(double %33, double %32, double noundef 0x3EF3B20A75488A3F) #136 %35 = call double @llvm.fma.f64(double %34, double %32, double noundef 0x3F1745CDE4FAECD5) #136 %36 = call double @llvm.fma.f64(double %35, double %32, double noundef 0x3F3C71C7258A578B) #136 %37 = call double @llvm.fma.f64(double %36, double %32, double noundef 0x3F6249249242B910) #136 %38 = call double @llvm.fma.f64(double %37, double %32, double noundef 0x3F89999999999DFB) #136 %39 = fmul double %32, %38 %40 = fsub double %23, %31 %41 = fmul double %40, 2.000000e+00 %42 = fneg double %31 %43 = call double @llvm.fma.f64(double %42, double %23, double %41) #136 %44 = fmul double %29, %43 %45 = fadd double %39, 0x3FB5555555555555 %46 = fsub double 0x3FB5555555555555, %45 %47 = fadd double %39, %46 %48 = fadd double %47, 0.000000e+00 %49 = fadd double %48, 0xBC46A4CB00B9E7B0 %50 = fadd double %45, %49 %51 = fsub double %45, %50 %52 = fadd double %49, %51 %53 = fneg double %32 %54 = call double @llvm.fma.f64(double %31, double %31, double %53) #136 %55 = call i32 @llvm.nvvm.d2i.lo(double %44) #138 %56 = call i32 @llvm.nvvm.d2i.hi(double %44) #138 %57 = add i32 %56, 1048576 %58 = call double @llvm.nvvm.lohi.i2d(i32 %55, i32 %57) #138 %59 = call double @llvm.fma.f64(double %31, double %58, double %54) #136 %60 = fmul double %31, %32 %61 = fneg double %60 %62 = call double @llvm.fma.f64(double %32, double %31, double %61) #136 %63 = call double @llvm.fma.f64(double %32, double %44, double %62) #136 %64 = call double @llvm.fma.f64(double %59, double %31, double %63) #136 %65 = fmul double %60, %50 %66 = fneg double %65 %67 = call double @llvm.fma.f64(double %50, double %60, double %66) #136 %68 = call double @llvm.fma.f64(double %50, double %64, double %67) #136 %69 = call double @llvm.fma.f64(double %52, double %60, double %68) #136 %70 = fadd double %65, %69 %71 = fsub double %65, %70 %72 = fadd double %69, %71 %73 = fadd double %31, %70 %74 = fsub double %31, %73 %75 = fadd double %70, %74 %76 = fadd double %72, %75 %77 = fadd double %44, %76 %78 = fadd double %73, %77 %79 = fsub double %73, %78 %80 = fadd double %77, %79 %81 = xor i32 %expo.i.1, -2147483648 %82 = call double @llvm.nvvm.lohi.i2d(i32 %81, i32 noundef 1127219200) #138 %83 = call double @llvm.nvvm.lohi.i2d(i32 noundef -2147483648, i32 noundef 1127219200) #138 %84 = fsub double %82, %83 %85 = call double @llvm.fma.f64(double %84, double noundef 0x3FE62E42FEFA39EF, double %78) #136 %86 = fneg double %84 %87 = call double @llvm.fma.f64(double %86, double noundef 0x3FE62E42FEFA39EF, double %85) #136 %88 = fsub double %87, %78 %89 = fsub double %80, %88 %90 = call double @llvm.fma.f64(double %84, double noundef 0x3C7ABC9E3B39803F, double %89) #136 %91 = fadd double %85, %90 %92 = fsub double %85, %91 %93 = fadd double %90, %92 %94 = call i32 @llvm.nvvm.d2i.hi(double %b) #138 %95 = call i32 @llvm.nvvm.d2i.lo(double %b) #138 %96 = shl i32 %94, 1 %97 = icmp ugt i32 %96, -33554433 %98 = and i32 %94, -15728641 %spec.select = select i1 %97, i32 %98, i32 %94 %99 = call double @llvm.nvvm.lohi.i2d(i32 %95, i32 %spec.select) #138 %100 = fmul double %99, %91 %101 = fneg double %100 %102 = call double @llvm.fma.f64(double %91, double %99, double %101) #136 %103 = call double @llvm.fma.f64(double %93, double %99, double %102) #136 %104 = fadd double %100, %103 %105 = call double @llvm.fma.f64(double %104, double noundef 0x3FF71547652B82FE, double noundef 0x4338000000000000) #136 %106 = call i32 @llvm.nvvm.d2i.lo(double %105) #138 %107 = fadd double %105, 0xC338000000000000 %108 = call double @llvm.fma.f64(double %107, double noundef 0xBFE62E42FEFA39EF, double %104) #136 %109 = call double @llvm.fma.f64(double %107, double noundef 0xBC7ABC9E3B39803F, double %108) #136 %110 = call double @llvm.fma.f64(double %109, double noundef 0x3E5ADE1569CE2BDF, double noundef 0x3E928AF3FCA213EA) #136 %111 = call double @llvm.fma.f64(double %110, double %109, double noundef 0x3EC71DEE62401315) #136 %112 = call double @llvm.fma.f64(double %111, double %109, double noundef 0x3EFA01997C89EB71) #136 %113 = call double @llvm.fma.f64(double %112, double %109, double noundef 0x3F2A01A014761F65) #136 %114 = call double @llvm.fma.f64(double %113, double %109, double noundef 0x3F56C16C1852B7AF) #136 %115 = call double @llvm.fma.f64(double %114, double %109, double noundef 0x3F81111111122322) #136 %116 = call double @llvm.fma.f64(double %115, double %109, double noundef 0x3FA55555555502A1) #136 %117 = call double @llvm.fma.f64(double %116, double %109, double noundef 0x3FC5555555555511) #136 %118 = call double @llvm.fma.f64(double %117, double %109, double noundef 0x3FE000000000000B) #136 %119 = call double @llvm.fma.f64(double %118, double %109, double noundef 1.000000e+00) #136 %120 = call double @llvm.fma.f64(double %119, double %109, double noundef 1.000000e+00) #136 %121 = call i32 @llvm.nvvm.d2i.lo(double %120) #138 %122 = call i32 @llvm.nvvm.d2i.hi(double %120) #138 %123 = shl i32 %106, 20 %124 = add i32 %122, %123 %125 = call double @llvm.nvvm.lohi.i2d(i32 %121, i32 %124) #138 %126 = call i32 @llvm.nvvm.d2i.hi(double %104) #138 %127 = bitcast i32 %126 to float %128 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not = icmp eq i32 %128, 0 %129 = call float @llvm.nvvm.fabs.ftz.f(float %127) #135 %130 = call float @llvm.fabs.f32(float %127) %.02 = select i1 %.not, float %130, float %129 %131 = fcmp olt float %.02, 0x4010C46560000000 br i1 %131, label %__nv_exp.exit, label %__internal_fast_icmp_abs_lt.exit.i __internal_fast_icmp_abs_lt.exit.i: ; preds = %__internal_log_ext_prec.exit %132 = fcmp olt double %104, 0.000000e+00 %133 = fadd double %104, 0x7FF0000000000000 %z.i.0 = select i1 %132, double 0.000000e+00, double %133 %134 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not2 = icmp eq i32 %134, 0 %.01 = select i1 %.not2, float %130, float %129 %135 = fcmp olt float %.01, 0x4010E90000000000 br i1 %135, label %136, label %__nv_exp.exit 136: ; preds = %__internal_fast_icmp_abs_lt.exit.i %137 = sdiv i32 %106, 2 %138 = shl i32 %137, 20 %139 = add i32 %122, %138 %140 = call double @llvm.nvvm.lohi.i2d(i32 %121, i32 %139) #135 %141 = sub nsw i32 %106, %137 %142 = shl i32 %141, 20 %143 = add nsw i32 %142, 1072693248 %144 = call double @llvm.nvvm.lohi.i2d(i32 noundef 0, i32 %143) #135 %145 = fmul double %144, %140 br label %__nv_exp.exit __nv_exp.exit: ; preds = %__internal_fast_icmp_abs_lt.exit.i, %136, %__internal_log_ext_prec.exit %z.i.2 = phi double [ %125, %__internal_log_ext_prec.exit ], [ %145, %136 ], [ %z.i.0, %__internal_fast_icmp_abs_lt.exit.i ] %146 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([12 x i8], [12 x i8]* @.str.1, i32 0, i32 0)) #135 %147 = icmp eq i32 %146, 200 br i1 %147, label %154, label %148 148: ; preds = %__nv_exp.exit %149 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([12 x i8], [12 x i8]* @.str.1, i32 0, i32 0)) #135 %150 = icmp eq i32 %149, 350 br i1 %150, label %154, label %151 151: ; preds = %148 %152 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([12 x i8], [12 x i8]* @.str.1, i32 0, i32 0)) #135 %153 = icmp eq i32 %152, 370 br i1 %153, label %154, label %157 154: ; preds = %151, %148, %__nv_exp.exit %155 = call double @llvm.fabs.f64(double %z.i.2) %156 = fcmp oeq double %155, 0x7FF0000000000000 br label %__nv_isinfd.exit 157: ; preds = %151 %158 = call i32 @llvm.nvvm.d2i.lo(double %z.i.2) #135 %159 = call i32 @llvm.nvvm.d2i.hi(double %z.i.2) #135 %160 = and i32 %159, 2147483647 %161 = icmp eq i32 %160, 2146435072 %162 = icmp eq i32 %158, 0 %163 = select i1 %161, i1 %162, i1 false br label %__nv_isinfd.exit __nv_isinfd.exit: ; preds = %157, %154 %.0.in = phi i1 [ %156, %154 ], [ %163, %157 ] %164 = fsub double %100, %104 %165 = fadd double %103, %164 %166 = call double @llvm.fma.f64(double %z.i.2, double %165, double %z.i.2) %spec.select1 = select i1 %.0.in, double %z.i.2, double %166 ret double %spec.select1 } ; Function Attrs: noinline nounwind define dso_local double @__nv_j0(double %a) local_unnamed_addr #103 { %q.i.i.i = alloca i32, align 4 %q.i.i.i.i = alloca i32, align 4 %q.i.i = alloca i32, align 4 %1 = call double @llvm.fabs.f64(double %a) #136 %2 = fcmp ugt double %1, 0x400FB319F277BBE5 br i1 %2, label %23, label %3 3: ; preds = %0 %4 = fadd double %1, 0xC0033D152E971B40 %5 = fadd double %4, 0x3CA0F539D7DA258E %6 = call double @llvm.fma.f64(double %5, double noundef 0xBCC0D18564C48C61, double noundef 0xBCFCF8F9A8C294BC) #136 %7 = call double @llvm.fma.f64(double %6, double %5, double noundef 0x3D3FAB983CAE498B) #136 %8 = call double @llvm.fma.f64(double %7, double %5, double noundef 0x3D7CD7C018579B88) #136 %9 = call double @llvm.fma.f64(double %8, double %5, double noundef 0xBDBBDD2342D64FDD) #136 %10 = call double @llvm.fma.f64(double %9, double %5, double noundef 0xBDF5C2D9416B1E2B) #136 %11 = call double @llvm.fma.f64(double %10, double %5, double noundef 0x3E32951D73174DD5) #136 %12 = call double @llvm.fma.f64(double %11, double %5, double noundef 0x3E67FF99802CAEB5) #136 %13 = call double @llvm.fma.f64(double %12, double %5, double noundef 0xBEA1CCE305C4C9F7) #136 %14 = call double @llvm.fma.f64(double %13, double %5, double noundef 0xBED232C77E29E1BB) #136 %15 = call double @llvm.fma.f64(double %14, double %5, double noundef 0x3F06ED3B9F0EF757) #136 %16 = call double @llvm.fma.f64(double %15, double %5, double noundef 0x3F315382BA096A62) #136 %17 = call double @llvm.fma.f64(double %16, double %5, double noundef 0xBF61F992590D1AE4) #136 %18 = call double @llvm.fma.f64(double %17, double %5, double noundef 0xBF81BB1CBE1A465F) #136 %19 = call double @llvm.fma.f64(double %18, double %5, double noundef 0x3FACFAE864368D84) #136 %20 = call double @llvm.fma.f64(double %19, double %5, double noundef 0x3FBBA1DEEA0294A3) #136 %21 = call double @llvm.fma.f64(double %20, double %5, double noundef 0xBFE09CDB36551280) #136 %22 = fmul double %5, %21 br label %254 23: ; preds = %0 %24 = fcmp ugt double %1, 0x401C58FD1A62F5EC br i1 %24, label %45, label %25 25: ; preds = %23 %26 = fadd double %1, 0xC016148F5B2C2E45 %27 = fadd double %26, 0xBC975054CD60A517 %28 = call double @llvm.fma.f64(double %27, double noundef 0x3CBCB0A8F126B343, double noundef 0x3CF83FD1F333EB61) #136 %29 = call double @llvm.fma.f64(double %28, double %27, double noundef 0xBD4100E33E3FB413) #136 %30 = call double @llvm.fma.f64(double %29, double %27, double noundef 0xBD7846076D004627) #136 %31 = call double @llvm.fma.f64(double %30, double %27, double noundef 0x3DBE2F1D4F90720D) #136 %32 = call double @llvm.fma.f64(double %31, double %27, double noundef 0x3DF1D03B1E4A119B) #136 %33 = call double @llvm.fma.f64(double %32, double %27, double noundef 0xBE341D72B1B3BCE9) #136 %34 = call double @llvm.fma.f64(double %33, double %27, double noundef 0xBE62DA37CE2A9EF8) #136 %35 = call double @llvm.fma.f64(double %34, double %27, double noundef 0x3EA32E6D9974F763) #136 %36 = call double @llvm.fma.f64(double %35, double %27, double noundef 0x3ECAD77D744A1879) #136 %37 = call double @llvm.fma.f64(double %36, double %27, double noundef 0xBF0863F481A37337) #136 %38 = call double @llvm.fma.f64(double %37, double %27, double noundef 0xBF26F641F418F0F4) #136 %39 = call double @llvm.fma.f64(double %38, double %27, double noundef 0x3F627E31FE9A969E) #136 %40 = call double @llvm.fma.f64(double %39, double %27, double noundef 0x3F72F7FFE9025628) #136 %41 = call double @llvm.fma.f64(double %40, double %27, double noundef 0xBFAB2150CB41E8BF) #136 %42 = call double @llvm.fma.f64(double %41, double %27, double noundef 0xBF9F8F72E7A848DE) #136 %43 = call double @llvm.fma.f64(double %42, double %27, double noundef 0x3FD5C6E60A097823) #136 %44 = fmul double %27, %43 br label %254 45: ; preds = %23 %46 = fcmp ugt double %1, 0x402471FCB6A7A8C0 br i1 %46, label %67, label %47 47: ; preds = %45 %48 = fadd double %1, 0xC0214EB56CCCDECA %49 = fadd double %48, 0x3CB51970714C7C25 %50 = call double @llvm.fma.f64(double %49, double noundef 0xBCBDB7FFCF659E24, double noundef 0xBCF4B3A71AAAC629) #136 %51 = call double @llvm.fma.f64(double %50, double %49, double noundef 0x3D417EC150ECDCE7) #136 %52 = call double @llvm.fma.f64(double %51, double %49, double noundef 0x3D7438F5EA1D10B2) #136 %53 = call double @llvm.fma.f64(double %52, double %49, double noundef 0xBDBEDAE7EC2C9E87) #136 %54 = call double @llvm.fma.f64(double %53, double %49, double noundef 0xBDECADD2C4B91F58) #136 %55 = call double @llvm.fma.f64(double %54, double %49, double noundef 0x3E34582C8EE12204) #136 %56 = call double @llvm.fma.f64(double %55, double %49, double noundef 0x3E5CEDA451DD20F8) #136 %57 = call double @llvm.fma.f64(double %56, double %49, double noundef 0xBEA30E8CC3165E2F) #136 %58 = call double @llvm.fma.f64(double %57, double %49, double noundef 0xBEC3324842BB1A2E) #136 %59 = call double @llvm.fma.f64(double %58, double %49, double noundef 0x3F07800BC54FBDDB) #136 %60 = call double @llvm.fma.f64(double %59, double %49, double noundef 0x3F1D79605276949A) #136 %61 = call double @llvm.fma.f64(double %60, double %49, double noundef 0xBF60E0D60385A629) #136 %62 = call double @llvm.fma.f64(double %61, double %49, double noundef 0xBF648E63600D82F3) #136 %63 = call double @llvm.fma.f64(double %62, double %49, double noundef 0x3FA68B984EC6493A) #136 %64 = call double @llvm.fma.f64(double %63, double %49, double noundef 0x3F900F7FCF183E0B) #136 %65 = call double @llvm.fma.f64(double %64, double %49, double noundef 0xBFD15F7977A772D4) #136 %66 = fmul double %49, %65 br label %254 67: ; preds = %45 %68 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([12 x i8], [12 x i8]* @.str.1, i32 0, i32 0)) #135 %69 = icmp eq i32 %68, 200 br i1 %69, label %76, label %70 70: ; preds = %67 %71 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([12 x i8], [12 x i8]* @.str.1, i32 0, i32 0)) #135 %72 = icmp eq i32 %71, 350 br i1 %72, label %76, label %73 73: ; preds = %70 %74 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([12 x i8], [12 x i8]* @.str.1, i32 0, i32 0)) #135 %75 = icmp eq i32 %74, 370 br i1 %75, label %76, label %78 76: ; preds = %73, %70, %67 %77 = fcmp oeq double %1, 0x7FF0000000000000 br label %__nv_isinfd.exit 78: ; preds = %73 %79 = call i32 @llvm.nvvm.d2i.lo(double %1) #135 %80 = call i32 @llvm.nvvm.d2i.hi(double %1) #135 %81 = and i32 %80, 2147483647 %82 = icmp eq i32 %81, 2146435072 %83 = icmp eq i32 %79, 0 %84 = select i1 %82, i1 %83, i1 false br label %__nv_isinfd.exit __nv_isinfd.exit: ; preds = %78, %76 %.05.in = phi i1 [ %77, %76 ], [ %84, %78 ] br i1 %.05.in, label %254, label %85 85: ; preds = %__nv_isinfd.exit %86 = call double @llvm.nvvm.rcp.approx.ftz.d(double %1) #135 %87 = fneg double %1 %88 = call double @llvm.fma.f64(double %87, double %86, double noundef 1.000000e+00) %89 = call double @llvm.fma.f64(double %88, double %88, double %88) %90 = call double @llvm.fma.f64(double %89, double %86, double %86) %91 = fmul double %90, %90 %92 = call double @llvm.fma.f64(double %91, double noundef 0xC0D115CB8C11A9DC, double noundef 0x409927467A655012) %93 = call double @llvm.fma.f64(double %92, double %91, double noundef 0xC05751787E247BD4) %94 = call double @llvm.fma.f64(double %93, double %91, double noundef 0x401704C4E5FC36B2) %95 = call double @llvm.fma.f64(double %94, double %91, double noundef 0xBFE15B747A2FD531) %96 = call double @llvm.fma.f64(double %95, double %91, double noundef 0x3FBA7FEACF6CB79B) %97 = call double @llvm.fma.f64(double %96, double %91, double noundef 0xBFAFFFFFEDDCF548) %98 = call double @llvm.fma.f64(double %97, double %91, double noundef 0x3FEFFFFFFFFFC9E5) %99 = call double @llvm.fma.f64(double %91, double noundef 0xC14602FE1C34685E, double noundef 0x410ECD4523B12B84) %100 = call double @llvm.fma.f64(double %99, double %91, double noundef 0xC0C7A2FC1972F05A) %101 = call double @llvm.fma.f64(double %100, double %91, double noundef 0x407EBA131F7E5BEB) %102 = call double @llvm.fma.f64(double %101, double %91, double noundef 0xC0373B92E6E7CC7D) %103 = call double @llvm.fma.f64(double %102, double %91, double noundef 0x3FFA31BEE63A2F08) %104 = call double @llvm.fma.f64(double %103, double %91, double noundef 0xBFCAD320104D5D05) %105 = call double @llvm.fma.f64(double %104, double %91, double noundef 0x3FB0AAAA9C76D07E) %106 = call double @llvm.fma.f64(double %105, double %91, double noundef 0xBFBFFFFFFFFDACEC) %107 = call double @llvm.fma.f64(double %106, double %90, double %1) %108 = call double @llvm.nvvm.rsqrt.approx.d(double %1) #135 %109 = fmul double %108, 0x3FE9884533D43651 %110 = fmul double %109, %98 %111 = fmul double %107, 0x3FE45F306DC9C883 %112 = call i32 @llvm.nvvm.d2i.rn(double %111) #135 store i32 %112, i32* %q.i.i, align 4, !noalias !219 %113 = sitofp i32 %112 to double %114 = fneg double %113 %115 = call double @llvm.fma.f64(double %114, double noundef 0x3FF921FB54442D18, double %107) %116 = call double @llvm.fma.f64(double %114, double noundef 0x3C91A62633145C00, double %115) %117 = call double @llvm.fma.f64(double %114, double noundef 0x397B839A252049C0, double %116) %118 = call double @llvm.fabs.f64(double %107) %119 = fcmp ult double %118, 0x41E0000000000000 br i1 %119, label %__internal_trig_reduction_kerneld.exit.i, label %120 120: ; preds = %85 %121 = call fastcc double @__internal_trig_reduction_slowpathd(double %107, i32* noalias nocapture nofree noundef nonnull writeonly align 4 dereferenceable(4) %q.i.i) #135 %.pre = load i32, i32* %q.i.i, align 4 br label %__internal_trig_reduction_kerneld.exit.i __internal_trig_reduction_kerneld.exit.i: ; preds = %120, %85 %122 = phi i32 [ %.pre, %120 ], [ %112, %85 ] %t.i.i.0 = phi double [ %121, %120 ], [ %117, %85 ] %123 = and i32 %122, 3 %124 = uitofp i32 %123 to double %125 = fadd double %t.i.i.0, 0xBFE921FB54442D18 %126 = fmul double %124, 0x3FF921FB54442D18 %127 = fadd double %125, %126 %128 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([12 x i8], [12 x i8]* @.str.1, i32 0, i32 0)) #135 %129 = icmp eq i32 %128, 350 br i1 %129, label %133, label %130 130: ; preds = %__internal_trig_reduction_kerneld.exit.i %131 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([12 x i8], [12 x i8]* @.str.1, i32 0, i32 0)) #135 %132 = icmp eq i32 %131, 370 br i1 %132, label %133, label %192 133: ; preds = %130, %__internal_trig_reduction_kerneld.exit.i %134 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([12 x i8], [12 x i8]* @.str.1, i32 0, i32 0)) #135 %135 = icmp eq i32 %134, 200 br i1 %135, label %142, label %136 136: ; preds = %133 %137 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([12 x i8], [12 x i8]* @.str.1, i32 0, i32 0)) #135 %138 = icmp eq i32 %137, 350 br i1 %138, label %142, label %139 139: ; preds = %136 %140 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([12 x i8], [12 x i8]* @.str.1, i32 0, i32 0)) #135 %141 = icmp eq i32 %140, 370 br i1 %141, label %142, label %145 142: ; preds = %139, %136, %133 %143 = call double @llvm.fabs.f64(double %127) %144 = fcmp oeq double %143, 0x7FF0000000000000 br label %__nv_isinfd.exit.i.i.i 145: ; preds = %139 %146 = call i32 @llvm.nvvm.d2i.lo(double %127) #135 %147 = call i32 @llvm.nvvm.d2i.hi(double %127) #135 %148 = and i32 %147, 2147483647 %149 = icmp eq i32 %148, 2146435072 %150 = icmp eq i32 %146, 0 %151 = select i1 %149, i1 %150, i1 false br label %__nv_isinfd.exit.i.i.i __nv_isinfd.exit.i.i.i: ; preds = %145, %142 %.02.in = phi i1 [ %144, %142 ], [ %151, %145 ] br i1 %.02.in, label %152, label %154 152: ; preds = %__nv_isinfd.exit.i.i.i %153 = fmul double %127, 0.000000e+00 br label %__internal_trig_reduction_kerneld.exit.i.i.i 154: ; preds = %__nv_isinfd.exit.i.i.i %155 = fmul double %127, 0x3FE45F306DC9C883 %156 = call i32 @llvm.nvvm.d2i.rn(double %155) #135 store i32 %156, i32* %q.i.i.i.i, align 4, !noalias !219 %157 = sitofp i32 %156 to double %158 = fneg double %157 %159 = call double @llvm.fma.f64(double %158, double noundef 0x3FF921FB54442D18, double %127) %160 = call double @llvm.fma.f64(double %158, double noundef 0x3C91A62633145C00, double %159) %161 = call double @llvm.fma.f64(double %158, double noundef 0x397B839A252049C0, double %160) %162 = call double @llvm.fabs.f64(double %127) %163 = fcmp ult double %162, 0x41E0000000000000 br i1 %163, label %__internal_trig_reduction_kerneld.exit.i.i.i, label %164 164: ; preds = %154 %165 = call fastcc double @__internal_trig_reduction_slowpathd(double %127, i32* noalias nocapture nofree noundef nonnull writeonly align 4 dereferenceable(4) %q.i.i.i.i) #135 %.pre4 = load i32, i32* %q.i.i.i.i, align 4 br label %__internal_trig_reduction_kerneld.exit.i.i.i __internal_trig_reduction_kerneld.exit.i.i.i: ; preds = %154, %164, %152 %i.i.i.i.0 = phi i32 [ 0, %152 ], [ %.pre4, %164 ], [ %156, %154 ] %.01 = phi double [ %153, %152 ], [ %165, %164 ], [ %161, %154 ] %166 = fmul double %.01, %.01 %167 = call double @llvm.fma.f64(double %166, double noundef 0xBDA8FF8320FD8164, double noundef 0x3E21EEA7C1EF8528) %168 = call double @llvm.fma.f64(double %167, double %166, double noundef 0xBE927E4F8E06E6D9) %169 = call double @llvm.fma.f64(double %168, double %166, double noundef 0x3EFA01A019DDBCE9) %170 = call double @llvm.fma.f64(double %169, double %166, double noundef 0xBF56C16C16C15D47) %171 = call double @llvm.fma.f64(double %170, double %166, double noundef 0x3FA5555555555551) %172 = call double @llvm.fma.f64(double %171, double %166, double noundef -5.000000e-01) %173 = call double @llvm.fma.f64(double %172, double %166, double noundef 1.000000e+00) %174 = call double @llvm.fma.f64(double %166, double noundef 0x3DE5DB65F9785EBA, double noundef 0xBE5AE5F12CB0D246) %175 = call double @llvm.fma.f64(double %174, double %166, double noundef 0x3EC71DE369ACE392) %176 = call double @llvm.fma.f64(double %175, double %166, double noundef 0xBF2A01A019DB62A1) %177 = call double @llvm.fma.f64(double %176, double %166, double noundef 0x3F81111111110818) %178 = call double @llvm.fma.f64(double %177, double %166, double noundef 0xBFC5555555555554) %179 = call double @llvm.fma.f64(double %178, double %166, double noundef 0.000000e+00) %180 = call double @llvm.fma.f64(double %179, double %.01, double %.01) %181 = call i32 @llvm.nvvm.d2i.hi(double %180) #135 %182 = call i32 @llvm.nvvm.d2i.lo(double %180) #135 %183 = xor i32 %181, -2147483648 %184 = call double @llvm.nvvm.lohi.i2d(i32 %182, i32 %183) #135 %185 = and i32 %i.i.i.i.0, 1 %.not6 = icmp eq i32 %185, 0 %spec.select1 = select i1 %.not6, double %173, double %184 %186 = and i32 %i.i.i.i.0, 2 %.not7 = icmp eq i32 %186, 0 br i1 %.not7, label %__internal_cos_offset.exit, label %187 187: ; preds = %__internal_trig_reduction_kerneld.exit.i.i.i %188 = call i32 @llvm.nvvm.d2i.hi(double %spec.select1) #135 %189 = call i32 @llvm.nvvm.d2i.lo(double %spec.select1) #135 %190 = xor i32 %188, -2147483648 %191 = call double @llvm.nvvm.lohi.i2d(i32 %189, i32 %190) #135 br label %__internal_cos_offset.exit 192: ; preds = %130 %193 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([12 x i8], [12 x i8]* @.str.1, i32 0, i32 0)) #135 %194 = icmp eq i32 %193, 200 br i1 %194, label %201, label %195 195: ; preds = %192 %196 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([12 x i8], [12 x i8]* @.str.1, i32 0, i32 0)) #135 %197 = icmp eq i32 %196, 350 br i1 %197, label %201, label %198 198: ; preds = %195 %199 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([12 x i8], [12 x i8]* @.str.1, i32 0, i32 0)) #135 %200 = icmp eq i32 %199, 370 br i1 %200, label %201, label %204 201: ; preds = %198, %195, %192 %202 = call double @llvm.fabs.f64(double %127) %203 = fcmp oeq double %202, 0x7FF0000000000000 br label %__nv_isinfd.exit.i.i 204: ; preds = %198 %205 = call i32 @llvm.nvvm.d2i.lo(double %127) #135 %206 = call i32 @llvm.nvvm.d2i.hi(double %127) #135 %207 = and i32 %206, 2147483647 %208 = icmp eq i32 %207, 2146435072 %209 = icmp eq i32 %205, 0 %210 = select i1 %208, i1 %209, i1 false br label %__nv_isinfd.exit.i.i __nv_isinfd.exit.i.i: ; preds = %204, %201 %.03.in = phi i1 [ %203, %201 ], [ %210, %204 ] br i1 %.03.in, label %211, label %213 211: ; preds = %__nv_isinfd.exit.i.i %212 = fmul double %127, 0.000000e+00 br label %__internal_sin_cos_kerneld.exit.i.i 213: ; preds = %__nv_isinfd.exit.i.i %214 = fmul double %127, 0x3FE45F306DC9C883 %215 = call i32 @llvm.nvvm.d2i.rn(double %214) #135 store i32 %215, i32* %q.i.i.i, align 4, !noalias !219 %216 = sitofp i32 %215 to double %217 = fneg double %216 %218 = call double @llvm.fma.f64(double %217, double noundef 0x3FF921FB54442D18, double %127) %219 = call double @llvm.fma.f64(double %217, double noundef 0x3C91A62633145C00, double %218) %220 = call double @llvm.fma.f64(double %217, double noundef 0x397B839A252049C0, double %219) %221 = call double @llvm.fabs.f64(double %127) %222 = fcmp ult double %221, 0x41E0000000000000 br i1 %222, label %__internal_sin_cos_kerneld.exit.i.i, label %223 223: ; preds = %213 %224 = call fastcc double @__internal_trig_reduction_slowpathd(double %127, i32* noalias nocapture nofree noundef nonnull writeonly align 4 dereferenceable(4) %q.i.i.i) #135 %.pre3 = load i32, i32* %q.i.i.i, align 4 br label %__internal_sin_cos_kerneld.exit.i.i __internal_sin_cos_kerneld.exit.i.i: ; preds = %213, %223, %211 %i.i.i.0 = phi i32 [ 0, %211 ], [ %.pre3, %223 ], [ %215, %213 ] %z.i.i.0 = phi double [ %212, %211 ], [ %224, %223 ], [ %220, %213 ] %225 = add nsw i32 %i.i.i.0, 1 %226 = and i32 %225, 1 %227 = shl nuw nsw i32 %226, 3 %228 = getelementptr inbounds [16 x double], [16 x double] addrspace(1)* @__cudart_sin_cos_coeffs, i32 0, i32 %227 %229 = fmul double %z.i.i.0, %z.i.i.0 %.not = icmp eq i32 %226, 0 %230 = select i1 %.not, double 0x3DE5DB65F9785EBA, double 0xBDA8FF8320FD8164 %231 = getelementptr inbounds double, double addrspace(1)* %228, i32 1 %232 = load double, double addrspace(1)* %231, align 8 %233 = call double @llvm.fma.f64(double noundef %230, double %229, double %232) %234 = getelementptr inbounds double, double addrspace(1)* %228, i32 2 %235 = load double, double addrspace(1)* %234, align 8 %236 = call double @llvm.fma.f64(double %233, double %229, double %235) %237 = getelementptr inbounds double, double addrspace(1)* %228, i32 3 %238 = load double, double addrspace(1)* %237, align 8 %239 = call double @llvm.fma.f64(double %236, double %229, double %238) %240 = getelementptr inbounds double, double addrspace(1)* %228, i32 4 %241 = load double, double addrspace(1)* %240, align 8 %242 = call double @llvm.fma.f64(double %239, double %229, double %241) %243 = getelementptr inbounds double, double addrspace(1)* %228, i32 5 %244 = load double, double addrspace(1)* %243, align 8 %245 = call double @llvm.fma.f64(double %242, double %229, double %244) %246 = getelementptr inbounds double, double addrspace(1)* %228, i32 6 %247 = load double, double addrspace(1)* %246, align 8 %248 = call double @llvm.fma.f64(double %245, double %229, double %247) %249 = call double @llvm.fma.f64(double %248, double %z.i.i.0, double %z.i.i.0) %250 = call double @llvm.fma.f64(double %248, double %229, double noundef 1.000000e+00) %spec.select2 = select i1 %.not, double %249, double %250 %251 = and i32 %225, 2 %.not5 = icmp eq i32 %251, 0 %252 = call double @llvm.fma.f64(double %spec.select2, double noundef -1.000000e+00, double noundef 0.000000e+00) %.1 = select i1 %.not5, double %spec.select2, double %252 br label %__internal_cos_offset.exit __internal_cos_offset.exit: ; preds = %__internal_trig_reduction_kerneld.exit.i.i.i, %187, %__internal_sin_cos_kerneld.exit.i.i %.0 = phi double [ %.1, %__internal_sin_cos_kerneld.exit.i.i ], [ %191, %187 ], [ %spec.select1, %__internal_trig_reduction_kerneld.exit.i.i.i ] %253 = fmul double %110, %.0 br label %254 254: ; preds = %25, %__internal_cos_offset.exit, %__nv_isinfd.exit, %47, %3 %r.3 = phi double [ %22, %3 ], [ %44, %25 ], [ %66, %47 ], [ %253, %__internal_cos_offset.exit ], [ 0.000000e+00, %__nv_isinfd.exit ] ret double %r.3 } ; Function Attrs: noinline nounwind define dso_local double @__nv_j1(double %a) local_unnamed_addr #104 { %q.i.i.i = alloca i32, align 4 %q.i.i.i.i = alloca i32, align 4 %q.i.i = alloca i32, align 4 %1 = call double @llvm.fabs.f64(double %a) #136 %2 = fcmp ugt double %1, 0x400353AABAD7B784 br i1 %2, label %20, label %3 3: ; preds = %0 %4 = call double @llvm.fma.f64(double %1, double noundef 0x3D020E4ADCDE2AD3, double noundef 0xBD4DD167A0DC3F55) #136 %5 = call double @llvm.fma.f64(double %4, double %1, double noundef 0x3D5503F5A491E487) #136 %6 = call double @llvm.fma.f64(double %5, double %1, double noundef 0x3DC1F29940C2403A) #136 %7 = call double @llvm.fma.f64(double %6, double %1, double noundef 0x3D84CF9302EACDEF) #136 %8 = call double @llvm.fma.f64(double %7, double %1, double noundef 0xBE384A53DBBCA436) #136 %9 = call double @llvm.fma.f64(double %8, double %1, double noundef 0x3D9779BEE4F63BCC) #136 %10 = call double @llvm.fma.f64(double %9, double %1, double noundef 0x3EA6C160E414F3F0) #136 %11 = call double @llvm.fma.f64(double %10, double %1, double noundef 0x3D8F3D2F12430699) #136 %12 = call double @llvm.fma.f64(double %11, double %1, double noundef 0xBF0C71C72C0CED04) #136 %13 = call double @llvm.fma.f64(double %12, double %1, double noundef 0x3D659BCA506F1128) #136 %14 = call double @llvm.fma.f64(double %13, double %1, double noundef 0x3F65555555506982) #136 %15 = call double @llvm.fma.f64(double %14, double %1, double noundef 0x3D15BA0B425F1BFB) #136 %16 = call double @llvm.fma.f64(double %15, double %1, double noundef 0xBFB0000000000065) #136 %17 = call double @llvm.fma.f64(double %16, double %1, double noundef 0x3C8729A7253FB679) #136 %18 = call double @llvm.fma.f64(double %17, double %1, double noundef 5.000000e-01) #136 %19 = fmul double %1, %18 br label %250 20: ; preds = %0 %21 = fcmp ugt double %1, 0x4015B1D0574614EA br i1 %21, label %41, label %22 22: ; preds = %20 %23 = fadd double %1, 0xC00EA75575AF6F09 %24 = fadd double %23, 0x3CA60155A9D1B256 %25 = call double @llvm.fma.f64(double %24, double noundef 0xBCF8D3CDBB60175E, double noundef 0x3D41011A1DF02DAD) #136 %26 = call double @llvm.fma.f64(double %25, double %24, double noundef 0x3D76013AC1E5E222) #136 %27 = call double @llvm.fma.f64(double %26, double %24, double noundef 0xBDBEC315D96D5F03) #136 %28 = call double @llvm.fma.f64(double %27, double %24, double noundef 0xBDF03BE1B4B57207) #136 %29 = call double @llvm.fma.f64(double %28, double %24, double noundef 0x3E345695F8B660F7) #136 %30 = call double @llvm.fma.f64(double %29, double %24, double noundef 0x3E617069FCFCFFF4) #136 %31 = call double @llvm.fma.f64(double %30, double %24, double noundef 0xBEA33825C36745EB) #136 %32 = call double @llvm.fma.f64(double %31, double %24, double noundef 0xBEC9799D4F90931B) #136 %33 = call double @llvm.fma.f64(double %32, double %24, double noundef 0x3F083A06E2F7DF13) #136 %34 = call double @llvm.fma.f64(double %33, double %24, double noundef 0x3F26E4C2D53A7CF6) #136 %35 = call double @llvm.fma.f64(double %34, double %24, double noundef 0xBF624B3409957B1C) #136 %36 = call double @llvm.fma.f64(double %35, double %24, double noundef 0xBF7537544C3325DF) #136 %37 = call double @llvm.fma.f64(double %36, double %24, double noundef 0x3FAB589D1DA138E2) #136 %38 = call double @llvm.fma.f64(double %37, double %24, double noundef 0x3FAAE8A39F51AD13) #136 %39 = call double @llvm.fma.f64(double %38, double %24, double noundef 0xBFD9C6CF582CBF7F) #136 %40 = fmul double %24, %39 br label %250 41: ; preds = %20 %42 = fcmp ugt double %1, 0x40213065E54C1AA9 br i1 %42, label %62, label %43 43: ; preds = %41 %44 = fadd double %1, 0xC01C0FF5F3B47250 %45 = fadd double %44, 0x3C9B226D9D243827 %46 = call double @llvm.fma.f64(double %45, double noundef 0x3CF3EB867515FAD6, double noundef 0xBD40E8363DB649A9) #136 %47 = call double @llvm.fma.f64(double %46, double %45, double noundef 0xBD73B7DD4A6608FB) #136 %48 = call double @llvm.fma.f64(double %47, double %45, double noundef 0x3DBEC5E01482C750) #136 %49 = call double @llvm.fma.f64(double %48, double %45, double noundef 0x3DEC62BB9E882103) #136 %50 = call double @llvm.fma.f64(double %49, double %45, double noundef 0xBE34462EED732A23) #136 %51 = call double @llvm.fma.f64(double %50, double %45, double noundef 0xBE5D48DCAD7DC59B) #136 %52 = call double @llvm.fma.f64(double %51, double %45, double noundef 0x3EA3026DF29167E9) #136 %53 = call double @llvm.fma.f64(double %52, double %45, double noundef 0x3EC4255B0119666C) #136 %54 = call double @llvm.fma.f64(double %53, double %45, double noundef 0xBF0796A751B32693) #136 %55 = call double @llvm.fma.f64(double %54, double %45, double noundef 0xBF207358BBDBA284) #136 %56 = call double @llvm.fma.f64(double %55, double %45, double noundef 0x3F613FBC7D6927B1) #136 %57 = call double @llvm.fma.f64(double %56, double %45, double noundef 0x3F69A4B292E3DD75) #136 %58 = call double @llvm.fma.f64(double %57, double %45, double noundef 0xBFA80C83BDEEE4FB) #136 %59 = call double @llvm.fma.f64(double %58, double %45, double noundef 0xBF95E70DC60362BF) #136 %60 = call double @llvm.fma.f64(double %59, double %45, double noundef 0x3FD33518B3874E8A) #136 %61 = fmul double %45, %60 br label %250 62: ; preds = %41 %63 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([12 x i8], [12 x i8]* @.str.1, i32 0, i32 0)) #135 %64 = icmp eq i32 %63, 200 br i1 %64, label %71, label %65 65: ; preds = %62 %66 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([12 x i8], [12 x i8]* @.str.1, i32 0, i32 0)) #135 %67 = icmp eq i32 %66, 350 br i1 %67, label %71, label %68 68: ; preds = %65 %69 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([12 x i8], [12 x i8]* @.str.1, i32 0, i32 0)) #135 %70 = icmp eq i32 %69, 370 br i1 %70, label %71, label %73 71: ; preds = %68, %65, %62 %72 = fcmp oeq double %1, 0x7FF0000000000000 br label %__nv_isinfd.exit 73: ; preds = %68 %74 = call i32 @llvm.nvvm.d2i.lo(double %1) #135 %75 = call i32 @llvm.nvvm.d2i.hi(double %1) #135 %76 = and i32 %75, 2147483647 %77 = icmp eq i32 %76, 2146435072 %78 = icmp eq i32 %74, 0 %79 = select i1 %77, i1 %78, i1 false br label %__nv_isinfd.exit __nv_isinfd.exit: ; preds = %73, %71 %.05.in = phi i1 [ %72, %71 ], [ %79, %73 ] br i1 %.05.in, label %250, label %80 80: ; preds = %__nv_isinfd.exit %81 = call double @llvm.nvvm.rcp.approx.ftz.d(double %1) #135 %82 = fneg double %1 %83 = call double @llvm.fma.f64(double %82, double %81, double noundef 1.000000e+00) %84 = call double @llvm.fma.f64(double %83, double %83, double %83) %85 = call double @llvm.fma.f64(double %84, double %81, double %81) %86 = fmul double %85, %85 %87 = call double @llvm.fma.f64(double %86, double noundef 0x40CD02EA3F2F6751, double noundef 0xC099C06322A3F8BE) %88 = call double @llvm.fma.f64(double %87, double %86, double noundef 0x405B89354DA77324) %89 = call double @llvm.fma.f64(double %88, double %86, double noundef 0xC01E352294653188) %90 = call double @llvm.fma.f64(double %89, double %86, double noundef 0x3FE9BC7DB16BD7A7) %91 = call double @llvm.fma.f64(double %90, double %86, double noundef 0xBFC8BFE1C3A4F741) %92 = call double @llvm.fma.f64(double %91, double %86, double noundef 0x3FC7FFFFF0D00BE2) %93 = call double @llvm.fma.f64(double %92, double %86, double noundef 0x3FF00000000068CC) %94 = call double @llvm.fma.f64(double %86, double noundef 0xC18DA26B212FDC9A, double noundef 0x415A30AC6857BEE0) %95 = call double @llvm.fma.f64(double %94, double %86, double noundef 0xC11764222AD7C910) %96 = call double @llvm.fma.f64(double %95, double %86, double noundef 0x40CEB02E0C306857) %97 = call double @llvm.fma.f64(double %96, double %86, double noundef 0xC08351859FA2B23B) %98 = call double @llvm.fma.f64(double %97, double %86, double noundef 0x403E65A07AF51F42) %99 = call double @llvm.fma.f64(double %98, double %86, double noundef 0xC002F2B817F77A57) %100 = call double @llvm.fma.f64(double %99, double %86, double noundef 0x3FD7BCC34DA069FD) %101 = call double @llvm.fma.f64(double %100, double %86, double noundef 0xBFC4FFFFF8A44463) %102 = call double @llvm.fma.f64(double %101, double %86, double noundef 0x3FD7FFFFFFFF5CD7) %103 = call double @llvm.fma.f64(double %102, double %85, double %1) %104 = call double @llvm.nvvm.rsqrt.approx.d(double %1) #135 %105 = fmul double %104, 0x3FE9884533D43651 %106 = fmul double %105, %93 %107 = fmul double %103, 0x3FE45F306DC9C883 %108 = call i32 @llvm.nvvm.d2i.rn(double %107) #135 store i32 %108, i32* %q.i.i, align 4, !noalias !219 %109 = sitofp i32 %108 to double %110 = fneg double %109 %111 = call double @llvm.fma.f64(double %110, double noundef 0x3FF921FB54442D18, double %103) %112 = call double @llvm.fma.f64(double %110, double noundef 0x3C91A62633145C00, double %111) %113 = call double @llvm.fma.f64(double %110, double noundef 0x397B839A252049C0, double %112) %114 = call double @llvm.fabs.f64(double %103) %115 = fcmp ult double %114, 0x41E0000000000000 br i1 %115, label %__internal_trig_reduction_kerneld.exit.i, label %116 116: ; preds = %80 %117 = call fastcc double @__internal_trig_reduction_slowpathd(double %103, i32* noalias nocapture nofree noundef nonnull writeonly align 4 dereferenceable(4) %q.i.i) #135 %.pre = load i32, i32* %q.i.i, align 4 br label %__internal_trig_reduction_kerneld.exit.i __internal_trig_reduction_kerneld.exit.i: ; preds = %116, %80 %118 = phi i32 [ %.pre, %116 ], [ %108, %80 ] %t.i.i.0 = phi double [ %117, %116 ], [ %113, %80 ] %119 = and i32 %118, 3 %120 = uitofp i32 %119 to double %121 = fadd double %t.i.i.0, 0xC002D97C7F3321D2 %122 = fmul double %120, 0x3FF921FB54442D18 %123 = fadd double %121, %122 %124 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([12 x i8], [12 x i8]* @.str.1, i32 0, i32 0)) #135 %125 = icmp eq i32 %124, 350 br i1 %125, label %129, label %126 126: ; preds = %__internal_trig_reduction_kerneld.exit.i %127 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([12 x i8], [12 x i8]* @.str.1, i32 0, i32 0)) #135 %128 = icmp eq i32 %127, 370 br i1 %128, label %129, label %188 129: ; preds = %126, %__internal_trig_reduction_kerneld.exit.i %130 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([12 x i8], [12 x i8]* @.str.1, i32 0, i32 0)) #135 %131 = icmp eq i32 %130, 200 br i1 %131, label %138, label %132 132: ; preds = %129 %133 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([12 x i8], [12 x i8]* @.str.1, i32 0, i32 0)) #135 %134 = icmp eq i32 %133, 350 br i1 %134, label %138, label %135 135: ; preds = %132 %136 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([12 x i8], [12 x i8]* @.str.1, i32 0, i32 0)) #135 %137 = icmp eq i32 %136, 370 br i1 %137, label %138, label %141 138: ; preds = %135, %132, %129 %139 = call double @llvm.fabs.f64(double %123) %140 = fcmp oeq double %139, 0x7FF0000000000000 br label %__nv_isinfd.exit.i.i.i 141: ; preds = %135 %142 = call i32 @llvm.nvvm.d2i.lo(double %123) #135 %143 = call i32 @llvm.nvvm.d2i.hi(double %123) #135 %144 = and i32 %143, 2147483647 %145 = icmp eq i32 %144, 2146435072 %146 = icmp eq i32 %142, 0 %147 = select i1 %145, i1 %146, i1 false br label %__nv_isinfd.exit.i.i.i __nv_isinfd.exit.i.i.i: ; preds = %141, %138 %.02.in = phi i1 [ %140, %138 ], [ %147, %141 ] br i1 %.02.in, label %148, label %150 148: ; preds = %__nv_isinfd.exit.i.i.i %149 = fmul double %123, 0.000000e+00 br label %__internal_trig_reduction_kerneld.exit.i.i.i 150: ; preds = %__nv_isinfd.exit.i.i.i %151 = fmul double %123, 0x3FE45F306DC9C883 %152 = call i32 @llvm.nvvm.d2i.rn(double %151) #135 store i32 %152, i32* %q.i.i.i.i, align 4, !noalias !219 %153 = sitofp i32 %152 to double %154 = fneg double %153 %155 = call double @llvm.fma.f64(double %154, double noundef 0x3FF921FB54442D18, double %123) %156 = call double @llvm.fma.f64(double %154, double noundef 0x3C91A62633145C00, double %155) %157 = call double @llvm.fma.f64(double %154, double noundef 0x397B839A252049C0, double %156) %158 = call double @llvm.fabs.f64(double %123) %159 = fcmp ult double %158, 0x41E0000000000000 br i1 %159, label %__internal_trig_reduction_kerneld.exit.i.i.i, label %160 160: ; preds = %150 %161 = call fastcc double @__internal_trig_reduction_slowpathd(double %123, i32* noalias nocapture nofree noundef nonnull writeonly align 4 dereferenceable(4) %q.i.i.i.i) #135 %.pre4 = load i32, i32* %q.i.i.i.i, align 4 br label %__internal_trig_reduction_kerneld.exit.i.i.i __internal_trig_reduction_kerneld.exit.i.i.i: ; preds = %150, %160, %148 %i.i.i.i.0 = phi i32 [ 0, %148 ], [ %.pre4, %160 ], [ %152, %150 ] %.01 = phi double [ %149, %148 ], [ %161, %160 ], [ %157, %150 ] %162 = fmul double %.01, %.01 %163 = call double @llvm.fma.f64(double %162, double noundef 0xBDA8FF8320FD8164, double noundef 0x3E21EEA7C1EF8528) %164 = call double @llvm.fma.f64(double %163, double %162, double noundef 0xBE927E4F8E06E6D9) %165 = call double @llvm.fma.f64(double %164, double %162, double noundef 0x3EFA01A019DDBCE9) %166 = call double @llvm.fma.f64(double %165, double %162, double noundef 0xBF56C16C16C15D47) %167 = call double @llvm.fma.f64(double %166, double %162, double noundef 0x3FA5555555555551) %168 = call double @llvm.fma.f64(double %167, double %162, double noundef -5.000000e-01) %169 = call double @llvm.fma.f64(double %168, double %162, double noundef 1.000000e+00) %170 = call double @llvm.fma.f64(double %162, double noundef 0x3DE5DB65F9785EBA, double noundef 0xBE5AE5F12CB0D246) %171 = call double @llvm.fma.f64(double %170, double %162, double noundef 0x3EC71DE369ACE392) %172 = call double @llvm.fma.f64(double %171, double %162, double noundef 0xBF2A01A019DB62A1) %173 = call double @llvm.fma.f64(double %172, double %162, double noundef 0x3F81111111110818) %174 = call double @llvm.fma.f64(double %173, double %162, double noundef 0xBFC5555555555554) %175 = call double @llvm.fma.f64(double %174, double %162, double noundef 0.000000e+00) %176 = call double @llvm.fma.f64(double %175, double %.01, double %.01) %177 = call i32 @llvm.nvvm.d2i.hi(double %176) #135 %178 = call i32 @llvm.nvvm.d2i.lo(double %176) #135 %179 = xor i32 %177, -2147483648 %180 = call double @llvm.nvvm.lohi.i2d(i32 %178, i32 %179) #135 %181 = and i32 %i.i.i.i.0, 1 %.not6 = icmp eq i32 %181, 0 %spec.select1 = select i1 %.not6, double %169, double %180 %182 = and i32 %i.i.i.i.0, 2 %.not7 = icmp eq i32 %182, 0 br i1 %.not7, label %__internal_cos_offset.exit, label %183 183: ; preds = %__internal_trig_reduction_kerneld.exit.i.i.i %184 = call i32 @llvm.nvvm.d2i.hi(double %spec.select1) #135 %185 = call i32 @llvm.nvvm.d2i.lo(double %spec.select1) #135 %186 = xor i32 %184, -2147483648 %187 = call double @llvm.nvvm.lohi.i2d(i32 %185, i32 %186) #135 br label %__internal_cos_offset.exit 188: ; preds = %126 %189 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([12 x i8], [12 x i8]* @.str.1, i32 0, i32 0)) #135 %190 = icmp eq i32 %189, 200 br i1 %190, label %197, label %191 191: ; preds = %188 %192 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([12 x i8], [12 x i8]* @.str.1, i32 0, i32 0)) #135 %193 = icmp eq i32 %192, 350 br i1 %193, label %197, label %194 194: ; preds = %191 %195 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([12 x i8], [12 x i8]* @.str.1, i32 0, i32 0)) #135 %196 = icmp eq i32 %195, 370 br i1 %196, label %197, label %200 197: ; preds = %194, %191, %188 %198 = call double @llvm.fabs.f64(double %123) %199 = fcmp oeq double %198, 0x7FF0000000000000 br label %__nv_isinfd.exit.i.i 200: ; preds = %194 %201 = call i32 @llvm.nvvm.d2i.lo(double %123) #135 %202 = call i32 @llvm.nvvm.d2i.hi(double %123) #135 %203 = and i32 %202, 2147483647 %204 = icmp eq i32 %203, 2146435072 %205 = icmp eq i32 %201, 0 %206 = select i1 %204, i1 %205, i1 false br label %__nv_isinfd.exit.i.i __nv_isinfd.exit.i.i: ; preds = %200, %197 %.03.in = phi i1 [ %199, %197 ], [ %206, %200 ] br i1 %.03.in, label %207, label %209 207: ; preds = %__nv_isinfd.exit.i.i %208 = fmul double %123, 0.000000e+00 br label %__internal_sin_cos_kerneld.exit.i.i 209: ; preds = %__nv_isinfd.exit.i.i %210 = fmul double %123, 0x3FE45F306DC9C883 %211 = call i32 @llvm.nvvm.d2i.rn(double %210) #135 store i32 %211, i32* %q.i.i.i, align 4, !noalias !219 %212 = sitofp i32 %211 to double %213 = fneg double %212 %214 = call double @llvm.fma.f64(double %213, double noundef 0x3FF921FB54442D18, double %123) %215 = call double @llvm.fma.f64(double %213, double noundef 0x3C91A62633145C00, double %214) %216 = call double @llvm.fma.f64(double %213, double noundef 0x397B839A252049C0, double %215) %217 = call double @llvm.fabs.f64(double %123) %218 = fcmp ult double %217, 0x41E0000000000000 br i1 %218, label %__internal_sin_cos_kerneld.exit.i.i, label %219 219: ; preds = %209 %220 = call fastcc double @__internal_trig_reduction_slowpathd(double %123, i32* noalias nocapture nofree noundef nonnull writeonly align 4 dereferenceable(4) %q.i.i.i) #135 %.pre3 = load i32, i32* %q.i.i.i, align 4 br label %__internal_sin_cos_kerneld.exit.i.i __internal_sin_cos_kerneld.exit.i.i: ; preds = %209, %219, %207 %i.i.i.0 = phi i32 [ 0, %207 ], [ %.pre3, %219 ], [ %211, %209 ] %z.i.i.0 = phi double [ %208, %207 ], [ %220, %219 ], [ %216, %209 ] %221 = add nsw i32 %i.i.i.0, 1 %222 = and i32 %221, 1 %223 = shl nuw nsw i32 %222, 3 %224 = getelementptr inbounds [16 x double], [16 x double] addrspace(1)* @__cudart_sin_cos_coeffs, i32 0, i32 %223 %225 = fmul double %z.i.i.0, %z.i.i.0 %.not = icmp eq i32 %222, 0 %226 = select i1 %.not, double 0x3DE5DB65F9785EBA, double 0xBDA8FF8320FD8164 %227 = getelementptr inbounds double, double addrspace(1)* %224, i32 1 %228 = load double, double addrspace(1)* %227, align 8 %229 = call double @llvm.fma.f64(double noundef %226, double %225, double %228) %230 = getelementptr inbounds double, double addrspace(1)* %224, i32 2 %231 = load double, double addrspace(1)* %230, align 8 %232 = call double @llvm.fma.f64(double %229, double %225, double %231) %233 = getelementptr inbounds double, double addrspace(1)* %224, i32 3 %234 = load double, double addrspace(1)* %233, align 8 %235 = call double @llvm.fma.f64(double %232, double %225, double %234) %236 = getelementptr inbounds double, double addrspace(1)* %224, i32 4 %237 = load double, double addrspace(1)* %236, align 8 %238 = call double @llvm.fma.f64(double %235, double %225, double %237) %239 = getelementptr inbounds double, double addrspace(1)* %224, i32 5 %240 = load double, double addrspace(1)* %239, align 8 %241 = call double @llvm.fma.f64(double %238, double %225, double %240) %242 = getelementptr inbounds double, double addrspace(1)* %224, i32 6 %243 = load double, double addrspace(1)* %242, align 8 %244 = call double @llvm.fma.f64(double %241, double %225, double %243) %245 = call double @llvm.fma.f64(double %244, double %z.i.i.0, double %z.i.i.0) %246 = call double @llvm.fma.f64(double %244, double %225, double noundef 1.000000e+00) %spec.select2 = select i1 %.not, double %245, double %246 %247 = and i32 %221, 2 %.not5 = icmp eq i32 %247, 0 %248 = call double @llvm.fma.f64(double %spec.select2, double noundef -1.000000e+00, double noundef 0.000000e+00) %.1 = select i1 %.not5, double %spec.select2, double %248 br label %__internal_cos_offset.exit __internal_cos_offset.exit: ; preds = %__internal_trig_reduction_kerneld.exit.i.i.i, %183, %__internal_sin_cos_kerneld.exit.i.i %.0 = phi double [ %.1, %__internal_sin_cos_kerneld.exit.i.i ], [ %187, %183 ], [ %spec.select1, %__internal_trig_reduction_kerneld.exit.i.i.i ] %249 = fmul double %106, %.0 br label %250 250: ; preds = %22, %__internal_cos_offset.exit, %__nv_isinfd.exit, %43, %3 %r.3 = phi double [ %19, %3 ], [ %40, %22 ], [ %61, %43 ], [ %249, %__internal_cos_offset.exit ], [ 0.000000e+00, %__nv_isinfd.exit ] %251 = fcmp olt double %a, 0.000000e+00 %252 = fneg double %r.3 %r.4 = select i1 %251, double %252, double %r.3 %253 = fcmp olt double %1, 1.000000e-30 %254 = fmul double %a, 5.000000e-01 %r.5 = select i1 %253, double %254, double %r.4 ret double %r.5 } ; Function Attrs: noinline nounwind define dso_local double @__nv_y0(double %a) local_unnamed_addr #105 { %q.i.i.i.i9 = alloca i32, align 4 %q.i.i.i.i.i = alloca i32, align 4 %q.i.i.i20 = alloca i32, align 4 %q.i.i.i = alloca i32, align 4 %q.i.i.i.i = alloca i32, align 4 %q.i.i = alloca i32, align 4 %1 = call double @llvm.fabs.f64(double %a) #136 %2 = fcmp ugt double %1, 0x3FE97F4A8F9D3F28 br i1 %2, label %333, label %3 3: ; preds = %0 %4 = fmul double %a, %a %5 = call double @llvm.fma.f64(double %4, double noundef 0x3C8EFBD0A1B77C65, double noundef 0xBD13098C51C18514) #136 %6 = call double @llvm.fma.f64(double %5, double %4, double noundef 0x3D923102D2F5F2F5) #136 %7 = call double @llvm.fma.f64(double %6, double %4, double noundef 0xBE0A5F2DEE7D526E) #136 %8 = call double @llvm.fma.f64(double %7, double %4, double noundef 0x3E7BB77E758B38AF) #136 %9 = call double @llvm.fma.f64(double %8, double %4, double noundef 0xBEE3D1A206EC4F36) #136 %10 = call double @llvm.fma.f64(double %9, double %4, double noundef 0x3F4183DCD3ED6294) #136 %11 = call double @llvm.fma.f64(double %10, double %4, double noundef 0xBF903921CF04F123) #136 %12 = call double @llvm.fma.f64(double %11, double %4, double noundef 0x3FC5DB69D7753176) #136 %13 = fadd double %4, 0xBFDBA96740000000 %14 = fadd double %13, 0x3E15A30C80000000 %15 = fmul double %14, %12 %16 = call i32 @llvm.nvvm.d2i.hi(double %1) #138 %17 = call i32 @llvm.nvvm.d2i.lo(double %1) #138 %18 = icmp slt i32 %16, 1048576 br i1 %18, label %19, label %23 19: ; preds = %3 %20 = fmul double %1, 0x4350000000000000 %21 = call i32 @llvm.nvvm.d2i.hi(double %20) #138 %22 = call i32 @llvm.nvvm.d2i.lo(double %20) #138 br label %23 23: ; preds = %19, %3 %.05 = phi double [ %20, %19 ], [ %1, %3 ] %ihi.i.0 = phi i32 [ %21, %19 ], [ %16, %3 ] %ilo.i.0 = phi i32 [ %22, %19 ], [ %17, %3 ] %e.i.0 = phi i32 [ -1077, %19 ], [ -1023, %3 ] %24 = add i32 %ihi.i.0, -1 %25 = icmp ult i32 %24, 2146435071 br i1 %25, label %26, label %75 26: ; preds = %23 %27 = lshr i32 %ihi.i.0, 20 %28 = add nsw i32 %e.i.0, %27 %29 = and i32 %ihi.i.0, -2146435073 %30 = or i32 %29, 1072693248 %31 = call double @llvm.nvvm.lohi.i2d(i32 %ilo.i.0, i32 %30) #138 %32 = icmp sgt i32 %30, 1073127582 br i1 %32, label %33, label %39 33: ; preds = %26 %34 = call i32 @llvm.nvvm.d2i.lo(double %31) #138 %35 = call i32 @llvm.nvvm.d2i.hi(double %31) #138 %36 = add i32 %35, -1048576 %37 = call double @llvm.nvvm.lohi.i2d(i32 %34, i32 %36) #138 %38 = add nsw i32 %28, 1 br label %39 39: ; preds = %33, %26 %m.i.0 = phi double [ %37, %33 ], [ %31, %26 ] %e.i.1 = phi i32 [ %38, %33 ], [ %28, %26 ] %40 = fadd double %m.i.0, -1.000000e+00 %41 = fadd double %m.i.0, 1.000000e+00 %42 = call double @llvm.nvvm.rcp.approx.ftz.d(double %41) #138 %43 = fneg double %41 %44 = call double @llvm.fma.f64(double %43, double %42, double noundef 1.000000e+00) #136 %45 = call double @llvm.fma.f64(double %44, double %44, double %44) #136 %46 = call double @llvm.fma.f64(double %45, double %42, double %42) #136 %47 = fmul double %40, %46 %48 = fadd double %47, %47 %49 = fmul double %48, %48 %50 = call double @llvm.fma.f64(double %49, double noundef 0x3EB1380B3AE80F1E, double noundef 0x3ED0EE258B7A8B04) #136 %51 = call double @llvm.fma.f64(double %50, double %49, double noundef 0x3EF3B2669F02676F) #136 %52 = call double @llvm.fma.f64(double %51, double %49, double noundef 0x3F1745CBA9AB0956) #136 %53 = call double @llvm.fma.f64(double %52, double %49, double noundef 0x3F3C71C72D1B5154) #136 %54 = call double @llvm.fma.f64(double %53, double %49, double noundef 0x3F624924923BE72D) #136 %55 = call double @llvm.fma.f64(double %54, double %49, double noundef 0x3F8999999999A3C4) #136 %56 = call double @llvm.fma.f64(double %55, double %49, double noundef 0x3FB5555555555554) #136 %57 = fsub double %40, %48 %58 = fmul double %57, 2.000000e+00 %59 = fneg double %48 %60 = call double @llvm.fma.f64(double %59, double %40, double %58) #136 %61 = fmul double %46, %60 %62 = fmul double %49, %56 %63 = call double @llvm.fma.f64(double %62, double %48, double %61) #136 %64 = xor i32 %e.i.1, -2147483648 %65 = call double @llvm.nvvm.lohi.i2d(i32 %64, i32 noundef 1127219200) #138 %66 = call double @llvm.nvvm.lohi.i2d(i32 noundef -2147483648, i32 noundef 1127219200) #138 %67 = fsub double %65, %66 %68 = call double @llvm.fma.f64(double %67, double noundef 0x3FE62E42FEFA39EF, double %48) #136 %69 = fneg double %67 %70 = call double @llvm.fma.f64(double %69, double noundef 0x3FE62E42FEFA39EF, double %68) #136 %71 = fsub double %70, %48 %72 = fsub double %63, %71 %73 = call double @llvm.fma.f64(double %67, double noundef 0x3C7ABC9E3B39803F, double %72) #136 %74 = fadd double %68, %73 br label %__nv_log.exit 75: ; preds = %23 %76 = call double @llvm.fma.f64(double %.05, double noundef 0x7FF0000000000000, double noundef 0x7FF0000000000000) #136 %77 = call i32 @llvm.nvvm.d2i.hi(double %.05) #138 %78 = bitcast i32 %77 to float %79 = fcmp oeq float %78, 0.000000e+00 %q.i3.0 = select i1 %79, double 0xFFF0000000000000, double %76 br label %__nv_log.exit __nv_log.exit: ; preds = %75, %39 %q.i3.1 = phi double [ %74, %39 ], [ %q.i3.0, %75 ] %80 = fmul double %q.i3.1, 0x3FE45F306DC9C883 %81 = fcmp ugt double %1, 0x400FB319F277BBE5 br i1 %81, label %102, label %82 82: ; preds = %__nv_log.exit %83 = fadd double %1, 0xC0033D152E971B40 %84 = fadd double %83, 0x3CA0F539D7DA258E %85 = call double @llvm.fma.f64(double %84, double noundef 0xBCC0D18564C48C61, double noundef 0xBCFCF8F9A8C294BC) #136 %86 = call double @llvm.fma.f64(double %85, double %84, double noundef 0x3D3FAB983CAE498B) #136 %87 = call double @llvm.fma.f64(double %86, double %84, double noundef 0x3D7CD7C018579B88) #136 %88 = call double @llvm.fma.f64(double %87, double %84, double noundef 0xBDBBDD2342D64FDD) #136 %89 = call double @llvm.fma.f64(double %88, double %84, double noundef 0xBDF5C2D9416B1E2B) #136 %90 = call double @llvm.fma.f64(double %89, double %84, double noundef 0x3E32951D73174DD5) #136 %91 = call double @llvm.fma.f64(double %90, double %84, double noundef 0x3E67FF99802CAEB5) #136 %92 = call double @llvm.fma.f64(double %91, double %84, double noundef 0xBEA1CCE305C4C9F7) #136 %93 = call double @llvm.fma.f64(double %92, double %84, double noundef 0xBED232C77E29E1BB) #136 %94 = call double @llvm.fma.f64(double %93, double %84, double noundef 0x3F06ED3B9F0EF757) #136 %95 = call double @llvm.fma.f64(double %94, double %84, double noundef 0x3F315382BA096A62) #136 %96 = call double @llvm.fma.f64(double %95, double %84, double noundef 0xBF61F992590D1AE4) #136 %97 = call double @llvm.fma.f64(double %96, double %84, double noundef 0xBF81BB1CBE1A465F) #136 %98 = call double @llvm.fma.f64(double %97, double %84, double noundef 0x3FACFAE864368D84) #136 %99 = call double @llvm.fma.f64(double %98, double %84, double noundef 0x3FBBA1DEEA0294A3) #136 %100 = call double @llvm.fma.f64(double %99, double %84, double noundef 0xBFE09CDB36551280) #136 %101 = fmul double %84, %100 br label %__nv_j0.exit 102: ; preds = %__nv_log.exit %103 = fcmp ugt double %1, 0x401C58FD1A62F5EC br i1 %103, label %124, label %104 104: ; preds = %102 %105 = fadd double %1, 0xC016148F5B2C2E45 %106 = fadd double %105, 0xBC975054CD60A517 %107 = call double @llvm.fma.f64(double %106, double noundef 0x3CBCB0A8F126B343, double noundef 0x3CF83FD1F333EB61) #136 %108 = call double @llvm.fma.f64(double %107, double %106, double noundef 0xBD4100E33E3FB413) #136 %109 = call double @llvm.fma.f64(double %108, double %106, double noundef 0xBD7846076D004627) #136 %110 = call double @llvm.fma.f64(double %109, double %106, double noundef 0x3DBE2F1D4F90720D) #136 %111 = call double @llvm.fma.f64(double %110, double %106, double noundef 0x3DF1D03B1E4A119B) #136 %112 = call double @llvm.fma.f64(double %111, double %106, double noundef 0xBE341D72B1B3BCE9) #136 %113 = call double @llvm.fma.f64(double %112, double %106, double noundef 0xBE62DA37CE2A9EF8) #136 %114 = call double @llvm.fma.f64(double %113, double %106, double noundef 0x3EA32E6D9974F763) #136 %115 = call double @llvm.fma.f64(double %114, double %106, double noundef 0x3ECAD77D744A1879) #136 %116 = call double @llvm.fma.f64(double %115, double %106, double noundef 0xBF0863F481A37337) #136 %117 = call double @llvm.fma.f64(double %116, double %106, double noundef 0xBF26F641F418F0F4) #136 %118 = call double @llvm.fma.f64(double %117, double %106, double noundef 0x3F627E31FE9A969E) #136 %119 = call double @llvm.fma.f64(double %118, double %106, double noundef 0x3F72F7FFE9025628) #136 %120 = call double @llvm.fma.f64(double %119, double %106, double noundef 0xBFAB2150CB41E8BF) #136 %121 = call double @llvm.fma.f64(double %120, double %106, double noundef 0xBF9F8F72E7A848DE) #136 %122 = call double @llvm.fma.f64(double %121, double %106, double noundef 0x3FD5C6E60A097823) #136 %123 = fmul double %106, %122 br label %__nv_j0.exit 124: ; preds = %102 %125 = fcmp ugt double %1, 0x402471FCB6A7A8C0 br i1 %125, label %146, label %126 126: ; preds = %124 %127 = fadd double %1, 0xC0214EB56CCCDECA %128 = fadd double %127, 0x3CB51970714C7C25 %129 = call double @llvm.fma.f64(double %128, double noundef 0xBCBDB7FFCF659E24, double noundef 0xBCF4B3A71AAAC629) #136 %130 = call double @llvm.fma.f64(double %129, double %128, double noundef 0x3D417EC150ECDCE7) #136 %131 = call double @llvm.fma.f64(double %130, double %128, double noundef 0x3D7438F5EA1D10B2) #136 %132 = call double @llvm.fma.f64(double %131, double %128, double noundef 0xBDBEDAE7EC2C9E87) #136 %133 = call double @llvm.fma.f64(double %132, double %128, double noundef 0xBDECADD2C4B91F58) #136 %134 = call double @llvm.fma.f64(double %133, double %128, double noundef 0x3E34582C8EE12204) #136 %135 = call double @llvm.fma.f64(double %134, double %128, double noundef 0x3E5CEDA451DD20F8) #136 %136 = call double @llvm.fma.f64(double %135, double %128, double noundef 0xBEA30E8CC3165E2F) #136 %137 = call double @llvm.fma.f64(double %136, double %128, double noundef 0xBEC3324842BB1A2E) #136 %138 = call double @llvm.fma.f64(double %137, double %128, double noundef 0x3F07800BC54FBDDB) #136 %139 = call double @llvm.fma.f64(double %138, double %128, double noundef 0x3F1D79605276949A) #136 %140 = call double @llvm.fma.f64(double %139, double %128, double noundef 0xBF60E0D60385A629) #136 %141 = call double @llvm.fma.f64(double %140, double %128, double noundef 0xBF648E63600D82F3) #136 %142 = call double @llvm.fma.f64(double %141, double %128, double noundef 0x3FA68B984EC6493A) #136 %143 = call double @llvm.fma.f64(double %142, double %128, double noundef 0x3F900F7FCF183E0B) #136 %144 = call double @llvm.fma.f64(double %143, double %128, double noundef 0xBFD15F7977A772D4) #136 %145 = fmul double %128, %144 br label %__nv_j0.exit 146: ; preds = %124 %147 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([12 x i8], [12 x i8]* @.str.1, i32 0, i32 0)) #135 %148 = icmp eq i32 %147, 200 br i1 %148, label %155, label %149 149: ; preds = %146 %150 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([12 x i8], [12 x i8]* @.str.1, i32 0, i32 0)) #135 %151 = icmp eq i32 %150, 350 br i1 %151, label %155, label %152 152: ; preds = %149 %153 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([12 x i8], [12 x i8]* @.str.1, i32 0, i32 0)) #135 %154 = icmp eq i32 %153, 370 br i1 %154, label %155, label %157 155: ; preds = %152, %149, %146 %156 = fcmp oeq double %1, 0x7FF0000000000000 br label %__nv_isinfd.exit.i 157: ; preds = %152 %158 = and i32 %16, 2147483647 %159 = icmp eq i32 %158, 2146435072 %160 = icmp eq i32 %17, 0 %161 = select i1 %159, i1 %160, i1 false br label %__nv_isinfd.exit.i __nv_isinfd.exit.i: ; preds = %157, %155 %.012.in = phi i1 [ %156, %155 ], [ %161, %157 ] br i1 %.012.in, label %__nv_j0.exit, label %162 162: ; preds = %__nv_isinfd.exit.i %163 = call double @llvm.nvvm.rcp.approx.ftz.d(double %1) #135 %164 = fneg double %1 %165 = call double @llvm.fma.f64(double %164, double %163, double noundef 1.000000e+00) %166 = call double @llvm.fma.f64(double %165, double %165, double %165) %167 = call double @llvm.fma.f64(double %166, double %163, double %163) %168 = fmul double %167, %167 %169 = call double @llvm.fma.f64(double %168, double noundef 0xC0D115CB8C11A9DC, double noundef 0x409927467A655012) %170 = call double @llvm.fma.f64(double %169, double %168, double noundef 0xC05751787E247BD4) %171 = call double @llvm.fma.f64(double %170, double %168, double noundef 0x401704C4E5FC36B2) %172 = call double @llvm.fma.f64(double %171, double %168, double noundef 0xBFE15B747A2FD531) %173 = call double @llvm.fma.f64(double %172, double %168, double noundef 0x3FBA7FEACF6CB79B) %174 = call double @llvm.fma.f64(double %173, double %168, double noundef 0xBFAFFFFFEDDCF548) %175 = call double @llvm.fma.f64(double %174, double %168, double noundef 0x3FEFFFFFFFFFC9E5) %176 = call double @llvm.fma.f64(double %168, double noundef 0xC14602FE1C34685E, double noundef 0x410ECD4523B12B84) %177 = call double @llvm.fma.f64(double %176, double %168, double noundef 0xC0C7A2FC1972F05A) %178 = call double @llvm.fma.f64(double %177, double %168, double noundef 0x407EBA131F7E5BEB) %179 = call double @llvm.fma.f64(double %178, double %168, double noundef 0xC0373B92E6E7CC7D) %180 = call double @llvm.fma.f64(double %179, double %168, double noundef 0x3FFA31BEE63A2F08) %181 = call double @llvm.fma.f64(double %180, double %168, double noundef 0xBFCAD320104D5D05) %182 = call double @llvm.fma.f64(double %181, double %168, double noundef 0x3FB0AAAA9C76D07E) %183 = call double @llvm.fma.f64(double %182, double %168, double noundef 0xBFBFFFFFFFFDACEC) %184 = call double @llvm.fma.f64(double %183, double %167, double %1) %185 = call double @llvm.nvvm.rsqrt.approx.d(double %1) #135 %186 = fmul double %185, 0x3FE9884533D43651 %187 = fmul double %186, %175 %188 = fmul double %184, 0x3FE45F306DC9C883 %189 = call i32 @llvm.nvvm.d2i.rn(double %188) #135 store i32 %189, i32* %q.i.i.i20, align 4, !noalias !219 %190 = sitofp i32 %189 to double %191 = fneg double %190 %192 = call double @llvm.fma.f64(double %191, double noundef 0x3FF921FB54442D18, double %184) %193 = call double @llvm.fma.f64(double %191, double noundef 0x3C91A62633145C00, double %192) %194 = call double @llvm.fma.f64(double %191, double noundef 0x397B839A252049C0, double %193) %195 = call double @llvm.fabs.f64(double %184) %196 = fcmp ult double %195, 0x41E0000000000000 br i1 %196, label %__internal_trig_reduction_kerneld.exit.i.i25, label %197 197: ; preds = %162 %198 = call fastcc double @__internal_trig_reduction_slowpathd(double %184, i32* noalias nocapture nofree noundef nonnull writeonly align 4 dereferenceable(4) %q.i.i.i20) #135 %.pre8 = load i32, i32* %q.i.i.i20, align 4 br label %__internal_trig_reduction_kerneld.exit.i.i25 __internal_trig_reduction_kerneld.exit.i.i25: ; preds = %197, %162 %199 = phi i32 [ %.pre8, %197 ], [ %189, %162 ] %t.i.i.i19.0 = phi double [ %198, %197 ], [ %194, %162 ] %200 = and i32 %199, 3 %201 = uitofp i32 %200 to double %202 = fadd double %t.i.i.i19.0, 0xBFE921FB54442D18 %203 = fmul double %201, 0x3FF921FB54442D18 %204 = fadd double %202, %203 %205 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([12 x i8], [12 x i8]* @.str.1, i32 0, i32 0)) #135 %206 = icmp eq i32 %205, 350 br i1 %206, label %210, label %207 207: ; preds = %__internal_trig_reduction_kerneld.exit.i.i25 %208 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([12 x i8], [12 x i8]* @.str.1, i32 0, i32 0)) #135 %209 = icmp eq i32 %208, 370 br i1 %209, label %210, label %269 210: ; preds = %207, %__internal_trig_reduction_kerneld.exit.i.i25 %211 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([12 x i8], [12 x i8]* @.str.1, i32 0, i32 0)) #135 %212 = icmp eq i32 %211, 200 br i1 %212, label %219, label %213 213: ; preds = %210 %214 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([12 x i8], [12 x i8]* @.str.1, i32 0, i32 0)) #135 %215 = icmp eq i32 %214, 350 br i1 %215, label %219, label %216 216: ; preds = %213 %217 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([12 x i8], [12 x i8]* @.str.1, i32 0, i32 0)) #135 %218 = icmp eq i32 %217, 370 br i1 %218, label %219, label %222 219: ; preds = %216, %213, %210 %220 = call double @llvm.fabs.f64(double %204) %221 = fcmp oeq double %220, 0x7FF0000000000000 br label %__nv_isinfd.exit.i.i.i.i 222: ; preds = %216 %223 = call i32 @llvm.nvvm.d2i.lo(double %204) #135 %224 = call i32 @llvm.nvvm.d2i.hi(double %204) #135 %225 = and i32 %224, 2147483647 %226 = icmp eq i32 %225, 2146435072 %227 = icmp eq i32 %223, 0 %228 = select i1 %226, i1 %227, i1 false br label %__nv_isinfd.exit.i.i.i.i __nv_isinfd.exit.i.i.i.i: ; preds = %222, %219 %.08.in = phi i1 [ %221, %219 ], [ %228, %222 ] br i1 %.08.in, label %229, label %231 229: ; preds = %__nv_isinfd.exit.i.i.i.i %230 = fmul double %204, 0.000000e+00 br label %__internal_trig_reduction_kerneld.exit.i.i.i.i 231: ; preds = %__nv_isinfd.exit.i.i.i.i %232 = fmul double %204, 0x3FE45F306DC9C883 %233 = call i32 @llvm.nvvm.d2i.rn(double %232) #135 store i32 %233, i32* %q.i.i.i.i.i, align 4, !noalias !219 %234 = sitofp i32 %233 to double %235 = fneg double %234 %236 = call double @llvm.fma.f64(double %235, double noundef 0x3FF921FB54442D18, double %204) %237 = call double @llvm.fma.f64(double %235, double noundef 0x3C91A62633145C00, double %236) %238 = call double @llvm.fma.f64(double %235, double noundef 0x397B839A252049C0, double %237) %239 = call double @llvm.fabs.f64(double %204) %240 = fcmp ult double %239, 0x41E0000000000000 br i1 %240, label %__internal_trig_reduction_kerneld.exit.i.i.i.i, label %241 241: ; preds = %231 %242 = call fastcc double @__internal_trig_reduction_slowpathd(double %204, i32* noalias nocapture nofree noundef nonnull writeonly align 4 dereferenceable(4) %q.i.i.i.i.i) #135 %.pre10 = load i32, i32* %q.i.i.i.i.i, align 4 br label %__internal_trig_reduction_kerneld.exit.i.i.i.i __internal_trig_reduction_kerneld.exit.i.i.i.i: ; preds = %231, %241, %229 %i.i.i.i.i.0 = phi i32 [ 0, %229 ], [ %.pre10, %241 ], [ %233, %231 ] %.07 = phi double [ %230, %229 ], [ %242, %241 ], [ %238, %231 ] %243 = fmul double %.07, %.07 %244 = call double @llvm.fma.f64(double %243, double noundef 0xBDA8FF8320FD8164, double noundef 0x3E21EEA7C1EF8528) %245 = call double @llvm.fma.f64(double %244, double %243, double noundef 0xBE927E4F8E06E6D9) %246 = call double @llvm.fma.f64(double %245, double %243, double noundef 0x3EFA01A019DDBCE9) %247 = call double @llvm.fma.f64(double %246, double %243, double noundef 0xBF56C16C16C15D47) %248 = call double @llvm.fma.f64(double %247, double %243, double noundef 0x3FA5555555555551) %249 = call double @llvm.fma.f64(double %248, double %243, double noundef -5.000000e-01) %250 = call double @llvm.fma.f64(double %249, double %243, double noundef 1.000000e+00) %251 = call double @llvm.fma.f64(double %243, double noundef 0x3DE5DB65F9785EBA, double noundef 0xBE5AE5F12CB0D246) %252 = call double @llvm.fma.f64(double %251, double %243, double noundef 0x3EC71DE369ACE392) %253 = call double @llvm.fma.f64(double %252, double %243, double noundef 0xBF2A01A019DB62A1) %254 = call double @llvm.fma.f64(double %253, double %243, double noundef 0x3F81111111110818) %255 = call double @llvm.fma.f64(double %254, double %243, double noundef 0xBFC5555555555554) %256 = call double @llvm.fma.f64(double %255, double %243, double noundef 0.000000e+00) %257 = call double @llvm.fma.f64(double %256, double %.07, double %.07) %258 = call i32 @llvm.nvvm.d2i.hi(double %257) #135 %259 = call i32 @llvm.nvvm.d2i.lo(double %257) #135 %260 = xor i32 %258, -2147483648 %261 = call double @llvm.nvvm.lohi.i2d(i32 %259, i32 %260) #135 %262 = and i32 %i.i.i.i.i.0, 1 %.not16 = icmp eq i32 %262, 0 %spec.select1 = select i1 %.not16, double %250, double %261 %263 = and i32 %i.i.i.i.i.0, 2 %.not17 = icmp eq i32 %263, 0 br i1 %.not17, label %__internal_cos_offset.exit.i, label %264 264: ; preds = %__internal_trig_reduction_kerneld.exit.i.i.i.i %265 = call i32 @llvm.nvvm.d2i.hi(double %spec.select1) #135 %266 = call i32 @llvm.nvvm.d2i.lo(double %spec.select1) #135 %267 = xor i32 %265, -2147483648 %268 = call double @llvm.nvvm.lohi.i2d(i32 %266, i32 %267) #135 br label %__internal_cos_offset.exit.i 269: ; preds = %207 %270 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([12 x i8], [12 x i8]* @.str.1, i32 0, i32 0)) #135 %271 = icmp eq i32 %270, 200 br i1 %271, label %278, label %272 272: ; preds = %269 %273 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([12 x i8], [12 x i8]* @.str.1, i32 0, i32 0)) #135 %274 = icmp eq i32 %273, 350 br i1 %274, label %278, label %275 275: ; preds = %272 %276 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([12 x i8], [12 x i8]* @.str.1, i32 0, i32 0)) #135 %277 = icmp eq i32 %276, 370 br i1 %277, label %278, label %281 278: ; preds = %275, %272, %269 %279 = call double @llvm.fabs.f64(double %204) %280 = fcmp oeq double %279, 0x7FF0000000000000 br label %__nv_isinfd.exit.i.i.i26 281: ; preds = %275 %282 = call i32 @llvm.nvvm.d2i.lo(double %204) #135 %283 = call i32 @llvm.nvvm.d2i.hi(double %204) #135 %284 = and i32 %283, 2147483647 %285 = icmp eq i32 %284, 2146435072 %286 = icmp eq i32 %282, 0 %287 = select i1 %285, i1 %286, i1 false br label %__nv_isinfd.exit.i.i.i26 __nv_isinfd.exit.i.i.i26: ; preds = %281, %278 %.09.in = phi i1 [ %280, %278 ], [ %287, %281 ] br i1 %.09.in, label %288, label %290 288: ; preds = %__nv_isinfd.exit.i.i.i26 %289 = fmul double %204, 0.000000e+00 br label %__internal_sin_cos_kerneld.exit.i.i.i 290: ; preds = %__nv_isinfd.exit.i.i.i26 %291 = fmul double %204, 0x3FE45F306DC9C883 %292 = call i32 @llvm.nvvm.d2i.rn(double %291) #135 store i32 %292, i32* %q.i.i.i.i9, align 4, !noalias !219 %293 = sitofp i32 %292 to double %294 = fneg double %293 %295 = call double @llvm.fma.f64(double %294, double noundef 0x3FF921FB54442D18, double %204) %296 = call double @llvm.fma.f64(double %294, double noundef 0x3C91A62633145C00, double %295) %297 = call double @llvm.fma.f64(double %294, double noundef 0x397B839A252049C0, double %296) %298 = call double @llvm.fabs.f64(double %204) %299 = fcmp ult double %298, 0x41E0000000000000 br i1 %299, label %__internal_sin_cos_kerneld.exit.i.i.i, label %300 300: ; preds = %290 %301 = call fastcc double @__internal_trig_reduction_slowpathd(double %204, i32* noalias nocapture nofree noundef nonnull writeonly align 4 dereferenceable(4) %q.i.i.i.i9) #135 %.pre9 = load i32, i32* %q.i.i.i.i9, align 4 br label %__internal_sin_cos_kerneld.exit.i.i.i __internal_sin_cos_kerneld.exit.i.i.i: ; preds = %290, %300, %288 %i.i.i.i17.0 = phi i32 [ 0, %288 ], [ %.pre9, %300 ], [ %292, %290 ] %z.i.i.i16.0 = phi double [ %289, %288 ], [ %301, %300 ], [ %297, %290 ] %302 = add nsw i32 %i.i.i.i17.0, 1 %303 = and i32 %302, 1 %304 = shl nuw nsw i32 %303, 3 %305 = getelementptr inbounds [16 x double], [16 x double] addrspace(1)* @__cudart_sin_cos_coeffs, i32 0, i32 %304 %306 = fmul double %z.i.i.i16.0, %z.i.i.i16.0 %.not14 = icmp eq i32 %303, 0 %307 = select i1 %.not14, double 0x3DE5DB65F9785EBA, double 0xBDA8FF8320FD8164 %308 = getelementptr inbounds double, double addrspace(1)* %305, i32 1 %309 = load double, double addrspace(1)* %308, align 8 %310 = call double @llvm.fma.f64(double noundef %307, double %306, double %309) %311 = getelementptr inbounds double, double addrspace(1)* %305, i32 2 %312 = load double, double addrspace(1)* %311, align 8 %313 = call double @llvm.fma.f64(double %310, double %306, double %312) %314 = getelementptr inbounds double, double addrspace(1)* %305, i32 3 %315 = load double, double addrspace(1)* %314, align 8 %316 = call double @llvm.fma.f64(double %313, double %306, double %315) %317 = getelementptr inbounds double, double addrspace(1)* %305, i32 4 %318 = load double, double addrspace(1)* %317, align 8 %319 = call double @llvm.fma.f64(double %316, double %306, double %318) %320 = getelementptr inbounds double, double addrspace(1)* %305, i32 5 %321 = load double, double addrspace(1)* %320, align 8 %322 = call double @llvm.fma.f64(double %319, double %306, double %321) %323 = getelementptr inbounds double, double addrspace(1)* %305, i32 6 %324 = load double, double addrspace(1)* %323, align 8 %325 = call double @llvm.fma.f64(double %322, double %306, double %324) %326 = call double @llvm.fma.f64(double %325, double %z.i.i.i16.0, double %z.i.i.i16.0) %327 = call double @llvm.fma.f64(double %325, double %306, double noundef 1.000000e+00) %spec.select2 = select i1 %.not14, double %326, double %327 %328 = and i32 %302, 2 %.not15 = icmp eq i32 %328, 0 %329 = call double @llvm.fma.f64(double %spec.select2, double noundef -1.000000e+00, double noundef 0.000000e+00) %.111 = select i1 %.not15, double %spec.select2, double %329 br label %__internal_cos_offset.exit.i __internal_cos_offset.exit.i: ; preds = %__internal_trig_reduction_kerneld.exit.i.i.i.i, %264, %__internal_sin_cos_kerneld.exit.i.i.i %.06 = phi double [ %.111, %__internal_sin_cos_kerneld.exit.i.i.i ], [ %268, %264 ], [ %spec.select1, %__internal_trig_reduction_kerneld.exit.i.i.i.i ] %330 = fmul double %187, %.06 br label %__nv_j0.exit __nv_j0.exit: ; preds = %104, %__internal_cos_offset.exit.i, %__nv_isinfd.exit.i, %126, %82 %r.i.3 = phi double [ %101, %82 ], [ %123, %104 ], [ %145, %126 ], [ %330, %__internal_cos_offset.exit.i ], [ 0.000000e+00, %__nv_isinfd.exit.i ] %331 = fmul double %80, %r.i.3 %332 = fadd double %15, %331 br label %600 333: ; preds = %0 %334 = fcmp ugt double %1, 0x4000347C4AB37B18 br i1 %334, label %362, label %335 335: ; preds = %333 %336 = fadd double %1, 0xBFEC982EB8D417EA %337 = fadd double %336, 0xBC7EA9D270347F83 %338 = call double @llvm.fma.f64(double %337, double noundef 0xBF01630132D75FC3, double noundef 0x3F3D054B05D3C52D) %339 = call double @llvm.fma.f64(double %338, double %337, double noundef 0xBF66DAC0B314B2E5) %340 = call double @llvm.fma.f64(double %339, double %337, double noundef 0x3F86A5D1DE76263F) %341 = call double @llvm.fma.f64(double %340, double %337, double noundef 0xBF9FD16652824592) %342 = call double @llvm.fma.f64(double %341, double %337, double noundef 0x3FB0F69A9CC79FBD) %343 = call double @llvm.fma.f64(double %342, double %337, double noundef 0xBFBCCE40EF15583E) %344 = call double @llvm.fma.f64(double %343, double %337, double noundef 0x3FC446B11780E4FC) %345 = call double @llvm.fma.f64(double %344, double %337, double noundef 0xBFC89AE7E19621F7) %346 = call double @llvm.fma.f64(double %345, double %337, double noundef 0x3FCACBA1B38EF7B8) %347 = call double @llvm.fma.f64(double %346, double %337, double noundef 0xBFCB4166A03BBFA5) %348 = call double @llvm.fma.f64(double %347, double %337, double noundef 0x3FCACCA4D5D4889A) %349 = call double @llvm.fma.f64(double %348, double %337, double noundef 0xBFCA1455932B9392) %350 = call double @llvm.fma.f64(double %349, double %337, double noundef 0x3FC96D8DB8D844EC) %351 = call double @llvm.fma.f64(double %350, double %337, double noundef 0xBFC8F7FB77522EDF) %352 = call double @llvm.fma.f64(double %351, double %337, double noundef 0x3FC8C0926ABC9AB0) %353 = call double @llvm.fma.f64(double %352, double %337, double noundef 0xBFC8D35B8FEA468C) %354 = call double @llvm.fma.f64(double %353, double %337, double noundef 0x3FC9424B8A0C8F94) %355 = call double @llvm.fma.f64(double %354, double %337, double noundef 0xBFCA396A7F3403EF) %356 = call double @llvm.fma.f64(double %355, double %337, double noundef 0x3FCC068086C37055) %357 = call double @llvm.fma.f64(double %356, double %337, double noundef 0xBFCCF18E6A4C5C4E) %358 = call double @llvm.fma.f64(double %357, double %337, double noundef 0x3FCC3B1338AF4239) %359 = call double @llvm.fma.f64(double %358, double %337, double noundef 0xBFDF7E38A46D70DB) %360 = call double @llvm.fma.f64(double %359, double %337, double noundef 0x3FEC24371844B88A) %361 = fmul double %337, %360 br label %600 362: ; preds = %333 %363 = fcmp ugt double %1, 0x40161663B5D9A628 br i1 %363, label %391, label %364 364: ; preds = %362 %365 = fadd double %1, 0xC00FA9534D98569C %366 = fadd double %365, 0x3C9F06AE7804384E %367 = call double @llvm.fma.f64(double %366, double noundef 0xBCDAEA62AC8BDA68, double noundef 0xBCD2434958151AC7) %368 = call double @llvm.fma.f64(double %367, double %366, double noundef 0x3D11C24A40D33FE1) %369 = call double @llvm.fma.f64(double %368, double %366, double noundef 0x3D237CD62FA08CA4) %370 = call double @llvm.fma.f64(double %369, double %366, double noundef 0xBD43902E0298C52A) %371 = call double @llvm.fma.f64(double %370, double %366, double noundef 0xBD1DDAAD11CAB40F) %372 = call double @llvm.fma.f64(double %371, double %366, double noundef 0xBD5209D9F06D7DE4) %373 = call double @llvm.fma.f64(double %372, double %366, double noundef 0x3D8BB9F464468E1A) %374 = call double @llvm.fma.f64(double %373, double %366, double noundef 0xBDA8F67B07D1B440) %375 = call double @llvm.fma.f64(double %374, double %366, double noundef 0x3DC7C8D60F9EAECF) %376 = call double @llvm.fma.f64(double %375, double %366, double noundef 0xBDE9703405B49A8D) %377 = call double @llvm.fma.f64(double %376, double %366, double noundef 0x3E0A6B64E76417E4) %378 = call double @llvm.fma.f64(double %377, double %366, double noundef 0xBE2F6B5AFB2F1359) %379 = call double @llvm.fma.f64(double %378, double %366, double noundef 0x3E54526B71C21EC1) %380 = call double @llvm.fma.f64(double %379, double %366, double noundef 0xBE5776DBCBBC8E1D) %381 = call double @llvm.fma.f64(double %380, double %366, double noundef 0xBE93B211FC2DF90E) %382 = call double @llvm.fma.f64(double %381, double %366, double noundef 0xBED486372E8562DC) %383 = call double @llvm.fma.f64(double %382, double %366, double noundef 0x3F0AB2C1FBC3A254) %384 = call double @llvm.fma.f64(double %383, double %366, double noundef 0x3F299827653353B8) %385 = call double @llvm.fma.f64(double %384, double %366, double noundef 0xBF61E32BC4ED7084) %386 = call double @llvm.fma.f64(double %385, double %366, double noundef 0xBF7C116FDC599A09) %387 = call double @llvm.fma.f64(double %386, double %366, double noundef 0x3FADF6D59BF50C77) %388 = call double @llvm.fma.f64(double %387, double %366, double noundef 0x3FAA09C92903680B) %389 = call double @llvm.fma.f64(double %388, double %366, double noundef 0xBFD9C34256A12A0B) %390 = fmul double %366, %389 br label %600 391: ; preds = %362 %392 = fcmp ugt double %1, 0x40214EF30C0C06ED br i1 %392, label %412, label %393 393: ; preds = %391 %394 = fadd double %1, 0xC01C581DC4E72103 %395 = fadd double %394, 0x3C99774A495F56CF %396 = call double @llvm.fma.f64(double %395, double noundef 0x3CF1CB3ABA718B8E, double noundef 0xBD3F443BB4F53D75) %397 = call double @llvm.fma.f64(double %396, double %395, double noundef 0xBD770F737BD6A786) %398 = call double @llvm.fma.f64(double %397, double %395, double noundef 0x3DBF0E9A20459E14) %399 = call double @llvm.fma.f64(double %398, double %395, double noundef 0x3DEFA6B137D5E108) %400 = call double @llvm.fma.f64(double %399, double %395, double noundef 0xBE344296729FB7FA) %401 = call double @llvm.fma.f64(double %400, double %395, double noundef 0xBE60A2813A80DFAA) %402 = call double @llvm.fma.f64(double %401, double %395, double noundef 0x3EA34AA737A83EB4) %403 = call double @llvm.fma.f64(double %402, double %395, double noundef 0x3EC6A9227332D03C) %404 = call double @llvm.fma.f64(double %403, double %395, double noundef 0xBF08177E4F93C81E) %405 = call double @llvm.fma.f64(double %404, double %395, double noundef 0xBF226DD71E391775) %406 = call double @llvm.fma.f64(double %405, double %395, double noundef 0x3F61D35E85FD7B22) %407 = call double @llvm.fma.f64(double %406, double %395, double noundef 0x3F6B2F14A955285C) %408 = call double @llvm.fma.f64(double %407, double %395, double noundef 0xBFA8969C64CBF388) %409 = call double @llvm.fma.f64(double %408, double %395, double noundef 0xBF95AEF611FC4D5A) %410 = call double @llvm.fma.f64(double %409, double %395, double noundef 0x3FD334CCA0697A5A) %411 = fmul double %395, %410 br label %600 412: ; preds = %391 %413 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([12 x i8], [12 x i8]* @.str.1, i32 0, i32 0)) #135 %414 = icmp eq i32 %413, 200 br i1 %414, label %421, label %415 415: ; preds = %412 %416 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([12 x i8], [12 x i8]* @.str.1, i32 0, i32 0)) #135 %417 = icmp eq i32 %416, 350 br i1 %417, label %421, label %418 418: ; preds = %415 %419 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([12 x i8], [12 x i8]* @.str.1, i32 0, i32 0)) #135 %420 = icmp eq i32 %419, 370 br i1 %420, label %421, label %423 421: ; preds = %418, %415, %412 %422 = fcmp oeq double %1, 0x7FF0000000000000 br label %__nv_isinfd.exit 423: ; preds = %418 %424 = call i32 @llvm.nvvm.d2i.lo(double %1) #135 %425 = call i32 @llvm.nvvm.d2i.hi(double %1) #135 %426 = and i32 %425, 2147483647 %427 = icmp eq i32 %426, 2146435072 %428 = icmp eq i32 %424, 0 %429 = select i1 %427, i1 %428, i1 false br label %__nv_isinfd.exit __nv_isinfd.exit: ; preds = %423, %421 %.013.in = phi i1 [ %422, %421 ], [ %429, %423 ] br i1 %.013.in, label %600, label %430 430: ; preds = %__nv_isinfd.exit %431 = call double @llvm.nvvm.rcp.approx.ftz.d(double %1) #135 %432 = fneg double %1 %433 = call double @llvm.fma.f64(double %432, double %431, double noundef 1.000000e+00) %434 = call double @llvm.fma.f64(double %433, double %433, double %433) %435 = call double @llvm.fma.f64(double %434, double %431, double %431) %436 = fmul double %435, %435 %437 = call double @llvm.fma.f64(double %436, double noundef 0xC0C5E91E6AC3AD03, double noundef 0x4093F56A049CDDE7) %438 = call double @llvm.fma.f64(double %437, double %436, double noundef 0xC05572D39DFB8433) %439 = call double @llvm.fma.f64(double %438, double %436, double noundef 0x4016A6041CAA59E5) %440 = call double @llvm.fma.f64(double %439, double %436, double noundef 0xBFE155E3A0493880) %441 = call double @llvm.fma.f64(double %440, double %436, double noundef 0x3FBA7FB92F417F7F) %442 = call double @llvm.fma.f64(double %441, double %436, double noundef 0xBFAFFFFFB12E32F5) %443 = call double @llvm.fma.f64(double %442, double %436, double noundef 0x3FEFFFFFFFFECED5) %444 = call double @llvm.fma.f64(double %436, double noundef 0x418A86A64BE101DC, double noundef 0xC15709C79AAC5813) %445 = call double @llvm.fma.f64(double %444, double %436, double noundef 0x41142A31C980A287) %446 = call double @llvm.fma.f64(double %445, double %436, double noundef 0xC0C9CBE68930485D) %447 = call double @llvm.fma.f64(double %446, double %436, double noundef 0x407F583E14E8A4E8) %448 = call double @llvm.fma.f64(double %447, double %436, double noundef 0xC0374A629C650680) %449 = call double @llvm.fma.f64(double %448, double %436, double noundef 0x3FFA32A7AF17FAE9) %450 = call double @llvm.fma.f64(double %449, double %436, double noundef 0xBFCAD32497785CD6) %451 = call double @llvm.fma.f64(double %450, double %436, double noundef 0x3FB0AAAA9FB75F7B) %452 = call double @llvm.fma.f64(double %451, double %436, double noundef 0xBFBFFFFFFFFE320F) %453 = call double @llvm.fma.f64(double %452, double %435, double %1) %454 = call double @llvm.nvvm.rsqrt.approx.d(double %1) #135 %455 = fmul double %454, 0x3FE9884533D43651 %456 = fmul double %455, %443 %457 = fmul double %453, 0x3FE45F306DC9C883 %458 = call i32 @llvm.nvvm.d2i.rn(double %457) #135 store i32 %458, i32* %q.i.i, align 4, !noalias !219 %459 = sitofp i32 %458 to double %460 = fneg double %459 %461 = call double @llvm.fma.f64(double %460, double noundef 0x3FF921FB54442D18, double %453) %462 = call double @llvm.fma.f64(double %460, double noundef 0x3C91A62633145C00, double %461) %463 = call double @llvm.fma.f64(double %460, double noundef 0x397B839A252049C0, double %462) %464 = call double @llvm.fabs.f64(double %453) %465 = fcmp ult double %464, 0x41E0000000000000 br i1 %465, label %__internal_trig_reduction_kerneld.exit.i, label %466 466: ; preds = %430 %467 = call fastcc double @__internal_trig_reduction_slowpathd(double %453, i32* noalias nocapture nofree noundef nonnull writeonly align 4 dereferenceable(4) %q.i.i) #135 %.pre = load i32, i32* %q.i.i, align 4 br label %__internal_trig_reduction_kerneld.exit.i __internal_trig_reduction_kerneld.exit.i: ; preds = %466, %430 %468 = phi i32 [ %.pre, %466 ], [ %458, %430 ] %t.i.i.0 = phi double [ %467, %466 ], [ %463, %430 ] %469 = and i32 %468, 3 %470 = uitofp i32 %469 to double %471 = fadd double %t.i.i.0, 0xC002D97C7F3321D2 %472 = fmul double %470, 0x3FF921FB54442D18 %473 = fadd double %471, %472 %474 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([12 x i8], [12 x i8]* @.str.1, i32 0, i32 0)) #135 %475 = icmp eq i32 %474, 350 br i1 %475, label %479, label %476 476: ; preds = %__internal_trig_reduction_kerneld.exit.i %477 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([12 x i8], [12 x i8]* @.str.1, i32 0, i32 0)) #135 %478 = icmp eq i32 %477, 370 br i1 %478, label %479, label %538 479: ; preds = %476, %__internal_trig_reduction_kerneld.exit.i %480 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([12 x i8], [12 x i8]* @.str.1, i32 0, i32 0)) #135 %481 = icmp eq i32 %480, 200 br i1 %481, label %488, label %482 482: ; preds = %479 %483 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([12 x i8], [12 x i8]* @.str.1, i32 0, i32 0)) #135 %484 = icmp eq i32 %483, 350 br i1 %484, label %488, label %485 485: ; preds = %482 %486 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([12 x i8], [12 x i8]* @.str.1, i32 0, i32 0)) #135 %487 = icmp eq i32 %486, 370 br i1 %487, label %488, label %491 488: ; preds = %485, %482, %479 %489 = call double @llvm.fabs.f64(double %473) %490 = fcmp oeq double %489, 0x7FF0000000000000 br label %__nv_isinfd.exit.i.i.i 491: ; preds = %485 %492 = call i32 @llvm.nvvm.d2i.lo(double %473) #135 %493 = call i32 @llvm.nvvm.d2i.hi(double %473) #135 %494 = and i32 %493, 2147483647 %495 = icmp eq i32 %494, 2146435072 %496 = icmp eq i32 %492, 0 %497 = select i1 %495, i1 %496, i1 false br label %__nv_isinfd.exit.i.i.i __nv_isinfd.exit.i.i.i: ; preds = %491, %488 %.02.in = phi i1 [ %490, %488 ], [ %497, %491 ] br i1 %.02.in, label %498, label %500 498: ; preds = %__nv_isinfd.exit.i.i.i %499 = fmul double %473, 0.000000e+00 br label %__internal_trig_reduction_kerneld.exit.i.i.i 500: ; preds = %__nv_isinfd.exit.i.i.i %501 = fmul double %473, 0x3FE45F306DC9C883 %502 = call i32 @llvm.nvvm.d2i.rn(double %501) #135 store i32 %502, i32* %q.i.i.i.i, align 4, !noalias !219 %503 = sitofp i32 %502 to double %504 = fneg double %503 %505 = call double @llvm.fma.f64(double %504, double noundef 0x3FF921FB54442D18, double %473) %506 = call double @llvm.fma.f64(double %504, double noundef 0x3C91A62633145C00, double %505) %507 = call double @llvm.fma.f64(double %504, double noundef 0x397B839A252049C0, double %506) %508 = call double @llvm.fabs.f64(double %473) %509 = fcmp ult double %508, 0x41E0000000000000 br i1 %509, label %__internal_trig_reduction_kerneld.exit.i.i.i, label %510 510: ; preds = %500 %511 = call fastcc double @__internal_trig_reduction_slowpathd(double %473, i32* noalias nocapture nofree noundef nonnull writeonly align 4 dereferenceable(4) %q.i.i.i.i) #135 %.pre7 = load i32, i32* %q.i.i.i.i, align 4 br label %__internal_trig_reduction_kerneld.exit.i.i.i __internal_trig_reduction_kerneld.exit.i.i.i: ; preds = %500, %510, %498 %i.i.i.i.0 = phi i32 [ 0, %498 ], [ %.pre7, %510 ], [ %502, %500 ] %.01 = phi double [ %499, %498 ], [ %511, %510 ], [ %507, %500 ] %512 = fmul double %.01, %.01 %513 = call double @llvm.fma.f64(double %512, double noundef 0xBDA8FF8320FD8164, double noundef 0x3E21EEA7C1EF8528) %514 = call double @llvm.fma.f64(double %513, double %512, double noundef 0xBE927E4F8E06E6D9) %515 = call double @llvm.fma.f64(double %514, double %512, double noundef 0x3EFA01A019DDBCE9) %516 = call double @llvm.fma.f64(double %515, double %512, double noundef 0xBF56C16C16C15D47) %517 = call double @llvm.fma.f64(double %516, double %512, double noundef 0x3FA5555555555551) %518 = call double @llvm.fma.f64(double %517, double %512, double noundef -5.000000e-01) %519 = call double @llvm.fma.f64(double %518, double %512, double noundef 1.000000e+00) %520 = call double @llvm.fma.f64(double %512, double noundef 0x3DE5DB65F9785EBA, double noundef 0xBE5AE5F12CB0D246) %521 = call double @llvm.fma.f64(double %520, double %512, double noundef 0x3EC71DE369ACE392) %522 = call double @llvm.fma.f64(double %521, double %512, double noundef 0xBF2A01A019DB62A1) %523 = call double @llvm.fma.f64(double %522, double %512, double noundef 0x3F81111111110818) %524 = call double @llvm.fma.f64(double %523, double %512, double noundef 0xBFC5555555555554) %525 = call double @llvm.fma.f64(double %524, double %512, double noundef 0.000000e+00) %526 = call double @llvm.fma.f64(double %525, double %.01, double %.01) %527 = call i32 @llvm.nvvm.d2i.hi(double %526) #135 %528 = call i32 @llvm.nvvm.d2i.lo(double %526) #135 %529 = xor i32 %527, -2147483648 %530 = call double @llvm.nvvm.lohi.i2d(i32 %528, i32 %529) #135 %531 = and i32 %i.i.i.i.0, 1 %.not12 = icmp eq i32 %531, 0 %spec.select4 = select i1 %.not12, double %519, double %530 %532 = and i32 %i.i.i.i.0, 2 %.not13 = icmp eq i32 %532, 0 br i1 %.not13, label %__internal_cos_offset.exit, label %533 533: ; preds = %__internal_trig_reduction_kerneld.exit.i.i.i %534 = call i32 @llvm.nvvm.d2i.hi(double %spec.select4) #135 %535 = call i32 @llvm.nvvm.d2i.lo(double %spec.select4) #135 %536 = xor i32 %534, -2147483648 %537 = call double @llvm.nvvm.lohi.i2d(i32 %535, i32 %536) #135 br label %__internal_cos_offset.exit 538: ; preds = %476 %539 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([12 x i8], [12 x i8]* @.str.1, i32 0, i32 0)) #135 %540 = icmp eq i32 %539, 200 br i1 %540, label %547, label %541 541: ; preds = %538 %542 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([12 x i8], [12 x i8]* @.str.1, i32 0, i32 0)) #135 %543 = icmp eq i32 %542, 350 br i1 %543, label %547, label %544 544: ; preds = %541 %545 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([12 x i8], [12 x i8]* @.str.1, i32 0, i32 0)) #135 %546 = icmp eq i32 %545, 370 br i1 %546, label %547, label %550 547: ; preds = %544, %541, %538 %548 = call double @llvm.fabs.f64(double %473) %549 = fcmp oeq double %548, 0x7FF0000000000000 br label %__nv_isinfd.exit.i.i 550: ; preds = %544 %551 = call i32 @llvm.nvvm.d2i.lo(double %473) #135 %552 = call i32 @llvm.nvvm.d2i.hi(double %473) #135 %553 = and i32 %552, 2147483647 %554 = icmp eq i32 %553, 2146435072 %555 = icmp eq i32 %551, 0 %556 = select i1 %554, i1 %555, i1 false br label %__nv_isinfd.exit.i.i __nv_isinfd.exit.i.i: ; preds = %550, %547 %.03.in = phi i1 [ %549, %547 ], [ %556, %550 ] br i1 %.03.in, label %557, label %559 557: ; preds = %__nv_isinfd.exit.i.i %558 = fmul double %473, 0.000000e+00 br label %__internal_sin_cos_kerneld.exit.i.i 559: ; preds = %__nv_isinfd.exit.i.i %560 = fmul double %473, 0x3FE45F306DC9C883 %561 = call i32 @llvm.nvvm.d2i.rn(double %560) #135 store i32 %561, i32* %q.i.i.i, align 4, !noalias !219 %562 = sitofp i32 %561 to double %563 = fneg double %562 %564 = call double @llvm.fma.f64(double %563, double noundef 0x3FF921FB54442D18, double %473) %565 = call double @llvm.fma.f64(double %563, double noundef 0x3C91A62633145C00, double %564) %566 = call double @llvm.fma.f64(double %563, double noundef 0x397B839A252049C0, double %565) %567 = call double @llvm.fabs.f64(double %473) %568 = fcmp ult double %567, 0x41E0000000000000 br i1 %568, label %__internal_sin_cos_kerneld.exit.i.i, label %569 569: ; preds = %559 %570 = call fastcc double @__internal_trig_reduction_slowpathd(double %473, i32* noalias nocapture nofree noundef nonnull writeonly align 4 dereferenceable(4) %q.i.i.i) #135 %.pre6 = load i32, i32* %q.i.i.i, align 4 br label %__internal_sin_cos_kerneld.exit.i.i __internal_sin_cos_kerneld.exit.i.i: ; preds = %559, %569, %557 %i.i.i.0 = phi i32 [ 0, %557 ], [ %.pre6, %569 ], [ %561, %559 ] %z.i.i.0 = phi double [ %558, %557 ], [ %570, %569 ], [ %566, %559 ] %571 = add nsw i32 %i.i.i.0, 1 %572 = and i32 %571, 1 %573 = shl nuw nsw i32 %572, 3 %574 = getelementptr inbounds [16 x double], [16 x double] addrspace(1)* @__cudart_sin_cos_coeffs, i32 0, i32 %573 %575 = fmul double %z.i.i.0, %z.i.i.0 %.not = icmp eq i32 %572, 0 %576 = select i1 %.not, double 0x3DE5DB65F9785EBA, double 0xBDA8FF8320FD8164 %577 = getelementptr inbounds double, double addrspace(1)* %574, i32 1 %578 = load double, double addrspace(1)* %577, align 8 %579 = call double @llvm.fma.f64(double noundef %576, double %575, double %578) %580 = getelementptr inbounds double, double addrspace(1)* %574, i32 2 %581 = load double, double addrspace(1)* %580, align 8 %582 = call double @llvm.fma.f64(double %579, double %575, double %581) %583 = getelementptr inbounds double, double addrspace(1)* %574, i32 3 %584 = load double, double addrspace(1)* %583, align 8 %585 = call double @llvm.fma.f64(double %582, double %575, double %584) %586 = getelementptr inbounds double, double addrspace(1)* %574, i32 4 %587 = load double, double addrspace(1)* %586, align 8 %588 = call double @llvm.fma.f64(double %585, double %575, double %587) %589 = getelementptr inbounds double, double addrspace(1)* %574, i32 5 %590 = load double, double addrspace(1)* %589, align 8 %591 = call double @llvm.fma.f64(double %588, double %575, double %590) %592 = getelementptr inbounds double, double addrspace(1)* %574, i32 6 %593 = load double, double addrspace(1)* %592, align 8 %594 = call double @llvm.fma.f64(double %591, double %575, double %593) %595 = call double @llvm.fma.f64(double %594, double %z.i.i.0, double %z.i.i.0) %596 = call double @llvm.fma.f64(double %594, double %575, double noundef 1.000000e+00) %spec.select5 = select i1 %.not, double %595, double %596 %597 = and i32 %571, 2 %.not11 = icmp eq i32 %597, 0 %598 = call double @llvm.fma.f64(double %spec.select5, double noundef -1.000000e+00, double noundef 0.000000e+00) %.1 = select i1 %.not11, double %spec.select5, double %598 br label %__internal_cos_offset.exit __internal_cos_offset.exit: ; preds = %__internal_trig_reduction_kerneld.exit.i.i.i, %533, %__internal_sin_cos_kerneld.exit.i.i %.0 = phi double [ %.1, %__internal_sin_cos_kerneld.exit.i.i ], [ %537, %533 ], [ %spec.select4, %__internal_trig_reduction_kerneld.exit.i.i.i ] %599 = fmul double %456, %.0 br label %600 600: ; preds = %335, %393, %__nv_isinfd.exit, %__internal_cos_offset.exit, %364, %__nv_j0.exit %r.4 = phi double [ %332, %__nv_j0.exit ], [ %361, %335 ], [ %390, %364 ], [ %411, %393 ], [ %599, %__internal_cos_offset.exit ], [ 0.000000e+00, %__nv_isinfd.exit ] %601 = fcmp olt double %a, 0.000000e+00 %r.5 = select i1 %601, double 0xFFF8000000000000, double %r.4 ret double %r.5 } ; Function Attrs: noinline nounwind define dso_local double @__nv_y1(double %a) local_unnamed_addr #106 { %q.i.i.i.i5 = alloca i32, align 4 %q.i.i.i.i.i = alloca i32, align 4 %q.i.i.i16 = alloca i32, align 4 %q.i.i.i = alloca i32, align 4 %q.i.i.i.i = alloca i32, align 4 %q.i.i = alloca i32, align 4 %1 = call double @llvm.fabs.f64(double %a) #136 %2 = fcmp olt double %1, 0x730D67819E8D2 br i1 %2, label %3, label %5 3: ; preds = %0 %4 = fdiv double 0xBFE45F306DC9C883, %1 br label %600 5: ; preds = %0 %6 = fcmp ugt double %1, 0x3FF4C6F208132576 br i1 %6, label %336, label %7 7: ; preds = %5 %8 = fmul double %a, %a %9 = call double @llvm.fma.f64(double %8, double noundef 0x3D5249F90687428C, double noundef 0xBDCF0B5B1FB7B95E) #136 %10 = call double @llvm.fma.f64(double %9, double %8, double noundef 0x3E432E589311FA14) #136 %11 = call double @llvm.fma.f64(double %10, double %8, double noundef 0xBEB0A780AA4A92E9) #136 %12 = call double @llvm.fma.f64(double %11, double %8, double noundef 0x3F12C7DBFFCAEC2B) #136 %13 = call double @llvm.fma.f64(double %12, double %8, double noundef 0xBF6835B97894BA4A) #136 %14 = call double @llvm.fma.f64(double %13, double %8, double noundef 0x3FABD3975C75B4A3) #136 %15 = call double @llvm.fma.f64(double %14, double %8, double noundef 0xBFC91866143CBC8A) #136 %16 = fmul double %1, %15 %17 = fcmp ugt double %1, 0x400353AABAD7B784 br i1 %17, label %35, label %18 18: ; preds = %7 %19 = call double @llvm.fma.f64(double %1, double noundef 0x3D020E4ADCDE2AD3, double noundef 0xBD4DD167A0DC3F55) #136 %20 = call double @llvm.fma.f64(double %19, double %1, double noundef 0x3D5503F5A491E487) #136 %21 = call double @llvm.fma.f64(double %20, double %1, double noundef 0x3DC1F29940C2403A) #136 %22 = call double @llvm.fma.f64(double %21, double %1, double noundef 0x3D84CF9302EACDEF) #136 %23 = call double @llvm.fma.f64(double %22, double %1, double noundef 0xBE384A53DBBCA436) #136 %24 = call double @llvm.fma.f64(double %23, double %1, double noundef 0x3D9779BEE4F63BCC) #136 %25 = call double @llvm.fma.f64(double %24, double %1, double noundef 0x3EA6C160E414F3F0) #136 %26 = call double @llvm.fma.f64(double %25, double %1, double noundef 0x3D8F3D2F12430699) #136 %27 = call double @llvm.fma.f64(double %26, double %1, double noundef 0xBF0C71C72C0CED04) #136 %28 = call double @llvm.fma.f64(double %27, double %1, double noundef 0x3D659BCA506F1128) #136 %29 = call double @llvm.fma.f64(double %28, double %1, double noundef 0x3F65555555506982) #136 %30 = call double @llvm.fma.f64(double %29, double %1, double noundef 0x3D15BA0B425F1BFB) #136 %31 = call double @llvm.fma.f64(double %30, double %1, double noundef 0xBFB0000000000065) #136 %32 = call double @llvm.fma.f64(double %31, double %1, double noundef 0x3C8729A7253FB679) #136 %33 = call double @llvm.fma.f64(double %32, double %1, double noundef 5.000000e-01) #136 %34 = fmul double %1, %33 br label %__nv_j1.exit 35: ; preds = %7 %36 = fcmp ugt double %1, 0x4015B1D0574614EA br i1 %36, label %56, label %37 37: ; preds = %35 %38 = fadd double %1, 0xC00EA75575AF6F09 %39 = fadd double %38, 0x3CA60155A9D1B256 %40 = call double @llvm.fma.f64(double %39, double noundef 0xBCF8D3CDBB60175E, double noundef 0x3D41011A1DF02DAD) #136 %41 = call double @llvm.fma.f64(double %40, double %39, double noundef 0x3D76013AC1E5E222) #136 %42 = call double @llvm.fma.f64(double %41, double %39, double noundef 0xBDBEC315D96D5F03) #136 %43 = call double @llvm.fma.f64(double %42, double %39, double noundef 0xBDF03BE1B4B57207) #136 %44 = call double @llvm.fma.f64(double %43, double %39, double noundef 0x3E345695F8B660F7) #136 %45 = call double @llvm.fma.f64(double %44, double %39, double noundef 0x3E617069FCFCFFF4) #136 %46 = call double @llvm.fma.f64(double %45, double %39, double noundef 0xBEA33825C36745EB) #136 %47 = call double @llvm.fma.f64(double %46, double %39, double noundef 0xBEC9799D4F90931B) #136 %48 = call double @llvm.fma.f64(double %47, double %39, double noundef 0x3F083A06E2F7DF13) #136 %49 = call double @llvm.fma.f64(double %48, double %39, double noundef 0x3F26E4C2D53A7CF6) #136 %50 = call double @llvm.fma.f64(double %49, double %39, double noundef 0xBF624B3409957B1C) #136 %51 = call double @llvm.fma.f64(double %50, double %39, double noundef 0xBF7537544C3325DF) #136 %52 = call double @llvm.fma.f64(double %51, double %39, double noundef 0x3FAB589D1DA138E2) #136 %53 = call double @llvm.fma.f64(double %52, double %39, double noundef 0x3FAAE8A39F51AD13) #136 %54 = call double @llvm.fma.f64(double %53, double %39, double noundef 0xBFD9C6CF582CBF7F) #136 %55 = fmul double %39, %54 br label %__nv_j1.exit 56: ; preds = %35 %57 = fcmp ugt double %1, 0x40213065E54C1AA9 br i1 %57, label %77, label %58 58: ; preds = %56 %59 = fadd double %1, 0xC01C0FF5F3B47250 %60 = fadd double %59, 0x3C9B226D9D243827 %61 = call double @llvm.fma.f64(double %60, double noundef 0x3CF3EB867515FAD6, double noundef 0xBD40E8363DB649A9) #136 %62 = call double @llvm.fma.f64(double %61, double %60, double noundef 0xBD73B7DD4A6608FB) #136 %63 = call double @llvm.fma.f64(double %62, double %60, double noundef 0x3DBEC5E01482C750) #136 %64 = call double @llvm.fma.f64(double %63, double %60, double noundef 0x3DEC62BB9E882103) #136 %65 = call double @llvm.fma.f64(double %64, double %60, double noundef 0xBE34462EED732A23) #136 %66 = call double @llvm.fma.f64(double %65, double %60, double noundef 0xBE5D48DCAD7DC59B) #136 %67 = call double @llvm.fma.f64(double %66, double %60, double noundef 0x3EA3026DF29167E9) #136 %68 = call double @llvm.fma.f64(double %67, double %60, double noundef 0x3EC4255B0119666C) #136 %69 = call double @llvm.fma.f64(double %68, double %60, double noundef 0xBF0796A751B32693) #136 %70 = call double @llvm.fma.f64(double %69, double %60, double noundef 0xBF207358BBDBA284) #136 %71 = call double @llvm.fma.f64(double %70, double %60, double noundef 0x3F613FBC7D6927B1) #136 %72 = call double @llvm.fma.f64(double %71, double %60, double noundef 0x3F69A4B292E3DD75) #136 %73 = call double @llvm.fma.f64(double %72, double %60, double noundef 0xBFA80C83BDEEE4FB) #136 %74 = call double @llvm.fma.f64(double %73, double %60, double noundef 0xBF95E70DC60362BF) #136 %75 = call double @llvm.fma.f64(double %74, double %60, double noundef 0x3FD33518B3874E8A) #136 %76 = fmul double %60, %75 br label %__nv_j1.exit 77: ; preds = %56 %78 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([12 x i8], [12 x i8]* @.str.1, i32 0, i32 0)) #135 %79 = icmp eq i32 %78, 200 br i1 %79, label %86, label %80 80: ; preds = %77 %81 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([12 x i8], [12 x i8]* @.str.1, i32 0, i32 0)) #135 %82 = icmp eq i32 %81, 350 br i1 %82, label %86, label %83 83: ; preds = %80 %84 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([12 x i8], [12 x i8]* @.str.1, i32 0, i32 0)) #135 %85 = icmp eq i32 %84, 370 br i1 %85, label %86, label %88 86: ; preds = %83, %80, %77 %87 = fcmp oeq double %1, 0x7FF0000000000000 br label %__nv_isinfd.exit.i 88: ; preds = %83 %89 = call i32 @llvm.nvvm.d2i.lo(double %1) #135 %90 = call i32 @llvm.nvvm.d2i.hi(double %1) #135 %91 = and i32 %90, 2147483647 %92 = icmp eq i32 %91, 2146435072 %93 = icmp eq i32 %89, 0 %94 = select i1 %92, i1 %93, i1 false br label %__nv_isinfd.exit.i __nv_isinfd.exit.i: ; preds = %88, %86 %.011.in = phi i1 [ %87, %86 ], [ %94, %88 ] br i1 %.011.in, label %__nv_j1.exit, label %95 95: ; preds = %__nv_isinfd.exit.i %96 = call double @llvm.nvvm.rcp.approx.ftz.d(double %1) #135 %97 = fneg double %1 %98 = call double @llvm.fma.f64(double %97, double %96, double noundef 1.000000e+00) %99 = call double @llvm.fma.f64(double %98, double %98, double %98) %100 = call double @llvm.fma.f64(double %99, double %96, double %96) %101 = fmul double %100, %100 %102 = call double @llvm.fma.f64(double %101, double noundef 0x40CD02EA3F2F6751, double noundef 0xC099C06322A3F8BE) %103 = call double @llvm.fma.f64(double %102, double %101, double noundef 0x405B89354DA77324) %104 = call double @llvm.fma.f64(double %103, double %101, double noundef 0xC01E352294653188) %105 = call double @llvm.fma.f64(double %104, double %101, double noundef 0x3FE9BC7DB16BD7A7) %106 = call double @llvm.fma.f64(double %105, double %101, double noundef 0xBFC8BFE1C3A4F741) %107 = call double @llvm.fma.f64(double %106, double %101, double noundef 0x3FC7FFFFF0D00BE2) %108 = call double @llvm.fma.f64(double %107, double %101, double noundef 0x3FF00000000068CC) %109 = call double @llvm.fma.f64(double %101, double noundef 0xC18DA26B212FDC9A, double noundef 0x415A30AC6857BEE0) %110 = call double @llvm.fma.f64(double %109, double %101, double noundef 0xC11764222AD7C910) %111 = call double @llvm.fma.f64(double %110, double %101, double noundef 0x40CEB02E0C306857) %112 = call double @llvm.fma.f64(double %111, double %101, double noundef 0xC08351859FA2B23B) %113 = call double @llvm.fma.f64(double %112, double %101, double noundef 0x403E65A07AF51F42) %114 = call double @llvm.fma.f64(double %113, double %101, double noundef 0xC002F2B817F77A57) %115 = call double @llvm.fma.f64(double %114, double %101, double noundef 0x3FD7BCC34DA069FD) %116 = call double @llvm.fma.f64(double %115, double %101, double noundef 0xBFC4FFFFF8A44463) %117 = call double @llvm.fma.f64(double %116, double %101, double noundef 0x3FD7FFFFFFFF5CD7) %118 = call double @llvm.fma.f64(double %117, double %100, double %1) %119 = call double @llvm.nvvm.rsqrt.approx.d(double %1) #135 %120 = fmul double %119, 0x3FE9884533D43651 %121 = fmul double %120, %108 %122 = fmul double %118, 0x3FE45F306DC9C883 %123 = call i32 @llvm.nvvm.d2i.rn(double %122) #135 store i32 %123, i32* %q.i.i.i16, align 4, !noalias !219 %124 = sitofp i32 %123 to double %125 = fneg double %124 %126 = call double @llvm.fma.f64(double %125, double noundef 0x3FF921FB54442D18, double %118) %127 = call double @llvm.fma.f64(double %125, double noundef 0x3C91A62633145C00, double %126) %128 = call double @llvm.fma.f64(double %125, double noundef 0x397B839A252049C0, double %127) %129 = call double @llvm.fabs.f64(double %118) %130 = fcmp ult double %129, 0x41E0000000000000 br i1 %130, label %__internal_trig_reduction_kerneld.exit.i.i20, label %131 131: ; preds = %95 %132 = call fastcc double @__internal_trig_reduction_slowpathd(double %118, i32* noalias nocapture nofree noundef nonnull writeonly align 4 dereferenceable(4) %q.i.i.i16) #135 %.pre8 = load i32, i32* %q.i.i.i16, align 4 br label %__internal_trig_reduction_kerneld.exit.i.i20 __internal_trig_reduction_kerneld.exit.i.i20: ; preds = %131, %95 %133 = phi i32 [ %.pre8, %131 ], [ %123, %95 ] %t.i.i.i15.0 = phi double [ %132, %131 ], [ %128, %95 ] %134 = and i32 %133, 3 %135 = uitofp i32 %134 to double %136 = fadd double %t.i.i.i15.0, 0xC002D97C7F3321D2 %137 = fmul double %135, 0x3FF921FB54442D18 %138 = fadd double %136, %137 %139 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([12 x i8], [12 x i8]* @.str.1, i32 0, i32 0)) #135 %140 = icmp eq i32 %139, 350 br i1 %140, label %144, label %141 141: ; preds = %__internal_trig_reduction_kerneld.exit.i.i20 %142 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([12 x i8], [12 x i8]* @.str.1, i32 0, i32 0)) #135 %143 = icmp eq i32 %142, 370 br i1 %143, label %144, label %203 144: ; preds = %141, %__internal_trig_reduction_kerneld.exit.i.i20 %145 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([12 x i8], [12 x i8]* @.str.1, i32 0, i32 0)) #135 %146 = icmp eq i32 %145, 200 br i1 %146, label %153, label %147 147: ; preds = %144 %148 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([12 x i8], [12 x i8]* @.str.1, i32 0, i32 0)) #135 %149 = icmp eq i32 %148, 350 br i1 %149, label %153, label %150 150: ; preds = %147 %151 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([12 x i8], [12 x i8]* @.str.1, i32 0, i32 0)) #135 %152 = icmp eq i32 %151, 370 br i1 %152, label %153, label %156 153: ; preds = %150, %147, %144 %154 = call double @llvm.fabs.f64(double %138) %155 = fcmp oeq double %154, 0x7FF0000000000000 br label %__nv_isinfd.exit.i.i.i.i 156: ; preds = %150 %157 = call i32 @llvm.nvvm.d2i.lo(double %138) #135 %158 = call i32 @llvm.nvvm.d2i.hi(double %138) #135 %159 = and i32 %158, 2147483647 %160 = icmp eq i32 %159, 2146435072 %161 = icmp eq i32 %157, 0 %162 = select i1 %160, i1 %161, i1 false br label %__nv_isinfd.exit.i.i.i.i __nv_isinfd.exit.i.i.i.i: ; preds = %156, %153 %.07.in = phi i1 [ %155, %153 ], [ %162, %156 ] br i1 %.07.in, label %163, label %165 163: ; preds = %__nv_isinfd.exit.i.i.i.i %164 = fmul double %138, 0.000000e+00 br label %__internal_trig_reduction_kerneld.exit.i.i.i.i 165: ; preds = %__nv_isinfd.exit.i.i.i.i %166 = fmul double %138, 0x3FE45F306DC9C883 %167 = call i32 @llvm.nvvm.d2i.rn(double %166) #135 store i32 %167, i32* %q.i.i.i.i.i, align 4, !noalias !219 %168 = sitofp i32 %167 to double %169 = fneg double %168 %170 = call double @llvm.fma.f64(double %169, double noundef 0x3FF921FB54442D18, double %138) %171 = call double @llvm.fma.f64(double %169, double noundef 0x3C91A62633145C00, double %170) %172 = call double @llvm.fma.f64(double %169, double noundef 0x397B839A252049C0, double %171) %173 = call double @llvm.fabs.f64(double %138) %174 = fcmp ult double %173, 0x41E0000000000000 br i1 %174, label %__internal_trig_reduction_kerneld.exit.i.i.i.i, label %175 175: ; preds = %165 %176 = call fastcc double @__internal_trig_reduction_slowpathd(double %138, i32* noalias nocapture nofree noundef nonnull writeonly align 4 dereferenceable(4) %q.i.i.i.i.i) #135 %.pre10 = load i32, i32* %q.i.i.i.i.i, align 4 br label %__internal_trig_reduction_kerneld.exit.i.i.i.i __internal_trig_reduction_kerneld.exit.i.i.i.i: ; preds = %165, %175, %163 %i.i.i.i.i.0 = phi i32 [ 0, %163 ], [ %.pre10, %175 ], [ %167, %165 ] %.06 = phi double [ %164, %163 ], [ %176, %175 ], [ %172, %165 ] %177 = fmul double %.06, %.06 %178 = call double @llvm.fma.f64(double %177, double noundef 0xBDA8FF8320FD8164, double noundef 0x3E21EEA7C1EF8528) %179 = call double @llvm.fma.f64(double %178, double %177, double noundef 0xBE927E4F8E06E6D9) %180 = call double @llvm.fma.f64(double %179, double %177, double noundef 0x3EFA01A019DDBCE9) %181 = call double @llvm.fma.f64(double %180, double %177, double noundef 0xBF56C16C16C15D47) %182 = call double @llvm.fma.f64(double %181, double %177, double noundef 0x3FA5555555555551) %183 = call double @llvm.fma.f64(double %182, double %177, double noundef -5.000000e-01) %184 = call double @llvm.fma.f64(double %183, double %177, double noundef 1.000000e+00) %185 = call double @llvm.fma.f64(double %177, double noundef 0x3DE5DB65F9785EBA, double noundef 0xBE5AE5F12CB0D246) %186 = call double @llvm.fma.f64(double %185, double %177, double noundef 0x3EC71DE369ACE392) %187 = call double @llvm.fma.f64(double %186, double %177, double noundef 0xBF2A01A019DB62A1) %188 = call double @llvm.fma.f64(double %187, double %177, double noundef 0x3F81111111110818) %189 = call double @llvm.fma.f64(double %188, double %177, double noundef 0xBFC5555555555554) %190 = call double @llvm.fma.f64(double %189, double %177, double noundef 0.000000e+00) %191 = call double @llvm.fma.f64(double %190, double %.06, double %.06) %192 = call i32 @llvm.nvvm.d2i.hi(double %191) #135 %193 = call i32 @llvm.nvvm.d2i.lo(double %191) #135 %194 = xor i32 %192, -2147483648 %195 = call double @llvm.nvvm.lohi.i2d(i32 %193, i32 %194) #135 %196 = and i32 %i.i.i.i.i.0, 1 %.not16 = icmp eq i32 %196, 0 %spec.select1 = select i1 %.not16, double %184, double %195 %197 = and i32 %i.i.i.i.i.0, 2 %.not17 = icmp eq i32 %197, 0 br i1 %.not17, label %__internal_cos_offset.exit.i, label %198 198: ; preds = %__internal_trig_reduction_kerneld.exit.i.i.i.i %199 = call i32 @llvm.nvvm.d2i.hi(double %spec.select1) #135 %200 = call i32 @llvm.nvvm.d2i.lo(double %spec.select1) #135 %201 = xor i32 %199, -2147483648 %202 = call double @llvm.nvvm.lohi.i2d(i32 %200, i32 %201) #135 br label %__internal_cos_offset.exit.i 203: ; preds = %141 %204 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([12 x i8], [12 x i8]* @.str.1, i32 0, i32 0)) #135 %205 = icmp eq i32 %204, 200 br i1 %205, label %212, label %206 206: ; preds = %203 %207 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([12 x i8], [12 x i8]* @.str.1, i32 0, i32 0)) #135 %208 = icmp eq i32 %207, 350 br i1 %208, label %212, label %209 209: ; preds = %206 %210 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([12 x i8], [12 x i8]* @.str.1, i32 0, i32 0)) #135 %211 = icmp eq i32 %210, 370 br i1 %211, label %212, label %215 212: ; preds = %209, %206, %203 %213 = call double @llvm.fabs.f64(double %138) %214 = fcmp oeq double %213, 0x7FF0000000000000 br label %__nv_isinfd.exit.i.i.i21 215: ; preds = %209 %216 = call i32 @llvm.nvvm.d2i.lo(double %138) #135 %217 = call i32 @llvm.nvvm.d2i.hi(double %138) #135 %218 = and i32 %217, 2147483647 %219 = icmp eq i32 %218, 2146435072 %220 = icmp eq i32 %216, 0 %221 = select i1 %219, i1 %220, i1 false br label %__nv_isinfd.exit.i.i.i21 __nv_isinfd.exit.i.i.i21: ; preds = %215, %212 %.08.in = phi i1 [ %214, %212 ], [ %221, %215 ] br i1 %.08.in, label %222, label %224 222: ; preds = %__nv_isinfd.exit.i.i.i21 %223 = fmul double %138, 0.000000e+00 br label %__internal_sin_cos_kerneld.exit.i.i.i 224: ; preds = %__nv_isinfd.exit.i.i.i21 %225 = fmul double %138, 0x3FE45F306DC9C883 %226 = call i32 @llvm.nvvm.d2i.rn(double %225) #135 store i32 %226, i32* %q.i.i.i.i5, align 4, !noalias !219 %227 = sitofp i32 %226 to double %228 = fneg double %227 %229 = call double @llvm.fma.f64(double %228, double noundef 0x3FF921FB54442D18, double %138) %230 = call double @llvm.fma.f64(double %228, double noundef 0x3C91A62633145C00, double %229) %231 = call double @llvm.fma.f64(double %228, double noundef 0x397B839A252049C0, double %230) %232 = call double @llvm.fabs.f64(double %138) %233 = fcmp ult double %232, 0x41E0000000000000 br i1 %233, label %__internal_sin_cos_kerneld.exit.i.i.i, label %234 234: ; preds = %224 %235 = call fastcc double @__internal_trig_reduction_slowpathd(double %138, i32* noalias nocapture nofree noundef nonnull writeonly align 4 dereferenceable(4) %q.i.i.i.i5) #135 %.pre9 = load i32, i32* %q.i.i.i.i5, align 4 br label %__internal_sin_cos_kerneld.exit.i.i.i __internal_sin_cos_kerneld.exit.i.i.i: ; preds = %224, %234, %222 %i.i.i.i13.0 = phi i32 [ 0, %222 ], [ %.pre9, %234 ], [ %226, %224 ] %z.i.i.i12.0 = phi double [ %223, %222 ], [ %235, %234 ], [ %231, %224 ] %236 = add nsw i32 %i.i.i.i13.0, 1 %237 = and i32 %236, 1 %238 = shl nuw nsw i32 %237, 3 %239 = getelementptr inbounds [16 x double], [16 x double] addrspace(1)* @__cudart_sin_cos_coeffs, i32 0, i32 %238 %240 = fmul double %z.i.i.i12.0, %z.i.i.i12.0 %.not14 = icmp eq i32 %237, 0 %241 = select i1 %.not14, double 0x3DE5DB65F9785EBA, double 0xBDA8FF8320FD8164 %242 = getelementptr inbounds double, double addrspace(1)* %239, i32 1 %243 = load double, double addrspace(1)* %242, align 8 %244 = call double @llvm.fma.f64(double noundef %241, double %240, double %243) %245 = getelementptr inbounds double, double addrspace(1)* %239, i32 2 %246 = load double, double addrspace(1)* %245, align 8 %247 = call double @llvm.fma.f64(double %244, double %240, double %246) %248 = getelementptr inbounds double, double addrspace(1)* %239, i32 3 %249 = load double, double addrspace(1)* %248, align 8 %250 = call double @llvm.fma.f64(double %247, double %240, double %249) %251 = getelementptr inbounds double, double addrspace(1)* %239, i32 4 %252 = load double, double addrspace(1)* %251, align 8 %253 = call double @llvm.fma.f64(double %250, double %240, double %252) %254 = getelementptr inbounds double, double addrspace(1)* %239, i32 5 %255 = load double, double addrspace(1)* %254, align 8 %256 = call double @llvm.fma.f64(double %253, double %240, double %255) %257 = getelementptr inbounds double, double addrspace(1)* %239, i32 6 %258 = load double, double addrspace(1)* %257, align 8 %259 = call double @llvm.fma.f64(double %256, double %240, double %258) %260 = call double @llvm.fma.f64(double %259, double %z.i.i.i12.0, double %z.i.i.i12.0) %261 = call double @llvm.fma.f64(double %259, double %240, double noundef 1.000000e+00) %spec.select2 = select i1 %.not14, double %260, double %261 %262 = and i32 %236, 2 %.not15 = icmp eq i32 %262, 0 %263 = call double @llvm.fma.f64(double %spec.select2, double noundef -1.000000e+00, double noundef 0.000000e+00) %.110 = select i1 %.not15, double %spec.select2, double %263 br label %__internal_cos_offset.exit.i __internal_cos_offset.exit.i: ; preds = %__internal_trig_reduction_kerneld.exit.i.i.i.i, %198, %__internal_sin_cos_kerneld.exit.i.i.i %.05 = phi double [ %.110, %__internal_sin_cos_kerneld.exit.i.i.i ], [ %202, %198 ], [ %spec.select1, %__internal_trig_reduction_kerneld.exit.i.i.i.i ] %264 = fmul double %121, %.05 br label %__nv_j1.exit __nv_j1.exit: ; preds = %37, %__internal_cos_offset.exit.i, %__nv_isinfd.exit.i, %58, %18 %r.i.3 = phi double [ %34, %18 ], [ %55, %37 ], [ %76, %58 ], [ %264, %__internal_cos_offset.exit.i ], [ 0.000000e+00, %__nv_isinfd.exit.i ] %265 = fcmp olt double %1, 1.000000e-30 %266 = fmul double %1, 5.000000e-01 %r.i.5 = select i1 %265, double %266, double %r.i.3 %267 = call i32 @llvm.nvvm.d2i.hi(double %1) #135 %268 = call i32 @llvm.nvvm.d2i.lo(double %1) #135 %269 = icmp slt i32 %267, 1048576 br i1 %269, label %270, label %274 270: ; preds = %__nv_j1.exit %271 = fmul double %1, 0x4350000000000000 %272 = call i32 @llvm.nvvm.d2i.hi(double %271) #135 %273 = call i32 @llvm.nvvm.d2i.lo(double %271) #135 br label %274 274: ; preds = %270, %__nv_j1.exit %.012 = phi double [ %271, %270 ], [ %1, %__nv_j1.exit ] %ihi.i.0 = phi i32 [ %272, %270 ], [ %267, %__nv_j1.exit ] %ilo.i.0 = phi i32 [ %273, %270 ], [ %268, %__nv_j1.exit ] %e.i.0 = phi i32 [ -1077, %270 ], [ -1023, %__nv_j1.exit ] %275 = add i32 %ihi.i.0, -1 %276 = icmp ult i32 %275, 2146435071 br i1 %276, label %277, label %326 277: ; preds = %274 %278 = lshr i32 %ihi.i.0, 20 %279 = add nsw i32 %e.i.0, %278 %280 = and i32 %ihi.i.0, -2146435073 %281 = or i32 %280, 1072693248 %282 = call double @llvm.nvvm.lohi.i2d(i32 %ilo.i.0, i32 %281) #135 %283 = icmp sgt i32 %281, 1073127582 br i1 %283, label %284, label %290 284: ; preds = %277 %285 = call i32 @llvm.nvvm.d2i.lo(double %282) #135 %286 = call i32 @llvm.nvvm.d2i.hi(double %282) #135 %287 = add i32 %286, -1048576 %288 = call double @llvm.nvvm.lohi.i2d(i32 %285, i32 %287) #135 %289 = add nsw i32 %279, 1 br label %290 290: ; preds = %284, %277 %m.i.0 = phi double [ %288, %284 ], [ %282, %277 ] %e.i.1 = phi i32 [ %289, %284 ], [ %279, %277 ] %291 = fadd double %m.i.0, -1.000000e+00 %292 = fadd double %m.i.0, 1.000000e+00 %293 = call double @llvm.nvvm.rcp.approx.ftz.d(double %292) #135 %294 = fneg double %292 %295 = call double @llvm.fma.f64(double %294, double %293, double noundef 1.000000e+00) %296 = call double @llvm.fma.f64(double %295, double %295, double %295) %297 = call double @llvm.fma.f64(double %296, double %293, double %293) %298 = fmul double %291, %297 %299 = fadd double %298, %298 %300 = fmul double %299, %299 %301 = call double @llvm.fma.f64(double %300, double noundef 0x3EB1380B3AE80F1E, double noundef 0x3ED0EE258B7A8B04) %302 = call double @llvm.fma.f64(double %301, double %300, double noundef 0x3EF3B2669F02676F) %303 = call double @llvm.fma.f64(double %302, double %300, double noundef 0x3F1745CBA9AB0956) %304 = call double @llvm.fma.f64(double %303, double %300, double noundef 0x3F3C71C72D1B5154) %305 = call double @llvm.fma.f64(double %304, double %300, double noundef 0x3F624924923BE72D) %306 = call double @llvm.fma.f64(double %305, double %300, double noundef 0x3F8999999999A3C4) %307 = call double @llvm.fma.f64(double %306, double %300, double noundef 0x3FB5555555555554) %308 = fsub double %291, %299 %309 = fmul double %308, 2.000000e+00 %310 = fneg double %299 %311 = call double @llvm.fma.f64(double %310, double %291, double %309) %312 = fmul double %297, %311 %313 = fmul double %300, %307 %314 = call double @llvm.fma.f64(double %313, double %299, double %312) %315 = xor i32 %e.i.1, -2147483648 %316 = call double @llvm.nvvm.lohi.i2d(i32 %315, i32 noundef 1127219200) #135 %317 = call double @llvm.nvvm.lohi.i2d(i32 noundef -2147483648, i32 noundef 1127219200) #135 %318 = fsub double %316, %317 %319 = call double @llvm.fma.f64(double %318, double noundef 0x3FE62E42FEFA39EF, double %299) %320 = fneg double %318 %321 = call double @llvm.fma.f64(double %320, double noundef 0x3FE62E42FEFA39EF, double %319) %322 = fsub double %321, %299 %323 = fsub double %314, %322 %324 = call double @llvm.fma.f64(double %318, double noundef 0x3C7ABC9E3B39803F, double %323) %325 = fadd double %319, %324 br label %__nv_log.exit 326: ; preds = %274 %327 = call double @llvm.fma.f64(double %.012, double noundef 0x7FF0000000000000, double noundef 0x7FF0000000000000) %328 = call i32 @llvm.nvvm.d2i.hi(double %.012) #135 %329 = bitcast i32 %328 to float %330 = fcmp oeq float %329, 0.000000e+00 %q.i28.0 = select i1 %330, double 0xFFF0000000000000, double %327 br label %__nv_log.exit __nv_log.exit: ; preds = %326, %290 %q.i28.1 = phi double [ %325, %290 ], [ %q.i28.0, %326 ] %331 = fmul double %r.i.5, %q.i28.1 %332 = fdiv double 1.000000e+00, %1 %333 = fsub double %331, %332 %334 = fmul double %333, 0x3FE45F306DC9C883 %335 = fadd double %16, %334 br label %600 336: ; preds = %5 %337 = fcmp ugt double %1, 0x4009B510EC2ADC83 br i1 %337, label %365, label %338 338: ; preds = %336 %339 = fadd double %1, 0xC00193BED4DFF243 %340 = fadd double %339, 0x3C8BD1E50D219BFD %341 = call double @llvm.fma.f64(double %340, double noundef 0xBE2B87B0BE2AA150, double noundef 0x3E4833AAE4D8B975) %342 = call double @llvm.fma.f64(double %341, double %340, double noundef 0xBE44E279B423E68F) %343 = call double @llvm.fma.f64(double %342, double %340, double noundef 0x3E129DC6A747EB4F) %344 = call double @llvm.fma.f64(double %343, double %340, double noundef 0xBE61D15534496CD8) %345 = call double @llvm.fma.f64(double %344, double %340, double noundef 0x3E7EEC8D48FECE00) %346 = call double @llvm.fma.f64(double %345, double %340, double noundef 0xBE8D1180AF70A134) %347 = call double @llvm.fma.f64(double %346, double %340, double noundef 0x3E9C8386A0EA1388) %348 = call double @llvm.fma.f64(double %347, double %340, double noundef 0xBEB01A014E7F3250) %349 = call double @llvm.fma.f64(double %348, double %340, double noundef 0x3EC1FB752010A320) %350 = call double @llvm.fma.f64(double %349, double %340, double noundef 0xBED3AA0AFF4E332B) %351 = call double @llvm.fma.f64(double %350, double %340, double noundef 0x3EE584A6C77F6700) %352 = call double @llvm.fma.f64(double %351, double %340, double noundef 0xBEF794C520FC2EBB) %353 = call double @llvm.fma.f64(double %352, double %340, double noundef 0x3F09D18D2D35CC71) %354 = call double @llvm.fma.f64(double %353, double %340, double noundef 0xBF1C3FB7315C4599) %355 = call double @llvm.fma.f64(double %354, double %340, double noundef 0x3F2EEA7ADECCE927) %356 = call double @llvm.fma.f64(double %355, double %340, double noundef 0xBF40B2D85257446F) %357 = call double @llvm.fma.f64(double %356, double %340, double noundef 0x3F517AB4B1FE5D5B) %358 = call double @llvm.fma.f64(double %357, double %340, double noundef 0xBF65429DC6516C0D) %359 = call double @llvm.fma.f64(double %358, double %340, double noundef 0x3F7E671C7D0B090B) %360 = call double @llvm.fma.f64(double %359, double %340, double noundef 0xBF73A6DEC36FB27C) %361 = call double @llvm.fma.f64(double %360, double %340, double noundef 0xBFA0D2AF4E931FD1) %362 = call double @llvm.fma.f64(double %361, double %340, double noundef 0xBFBE56F82217B964) %363 = call double @llvm.fma.f64(double %362, double %340, double noundef 0x3FE0AA48442F014B) %364 = fmul double %340, %363 br label %600 365: ; preds = %336 %366 = fcmp ugt double %1, 0x401C0D26D5A541CB br i1 %366, label %391, label %367 367: ; preds = %365 %368 = fadd double %1, 0xC015B7FE4E87B02E %369 = fadd double %368, 0xBCBDFE7BAC228E8C %370 = call double @llvm.fma.f64(double %369, double noundef 0x3CBA3C76069F1D8C, double noundef 0x3CC69A30996793E2) %371 = call double @llvm.fma.f64(double %370, double %369, double noundef 0xBCDDD8432FE756E7) %372 = call double @llvm.fma.f64(double %371, double %369, double noundef 0xBD143158EEE220F7) %373 = call double @llvm.fma.f64(double %372, double %369, double noundef 0x3D28D44491230F5A) %374 = call double @llvm.fma.f64(double %373, double %369, double noundef 0xBD438842EAF4EDBC) %375 = call double @llvm.fma.f64(double %374, double %369, double noundef 0x3D74958DAFBFAF5A) %376 = call double @llvm.fma.f64(double %375, double %369, double noundef 0xBD9449A60E664848) %377 = call double @llvm.fma.f64(double %376, double %369, double noundef 0x3D838BC8CD594A76) %378 = call double @llvm.fma.f64(double %377, double %369, double noundef 0xBDFA798002141323) %379 = call double @llvm.fma.f64(double %378, double %369, double noundef 0x3E380B4198956AAA) %380 = call double @llvm.fma.f64(double %379, double %369, double noundef 0x3E5B62B5F21BACD4) %381 = call double @llvm.fma.f64(double %380, double %369, double noundef 0xBEA255E729FB6AAE) %382 = call double @llvm.fma.f64(double %381, double %369, double noundef 0xBEC80618F6BAE5AA) %383 = call double @llvm.fma.f64(double %382, double %369, double noundef 0x3F085B940F8E8D36) %384 = call double @llvm.fma.f64(double %383, double %369, double noundef 0x3F2337C7E10E14E8) %385 = call double @llvm.fma.f64(double %384, double %369, double noundef 0xBF61BE6DB99332CA) %386 = call double @llvm.fma.f64(double %385, double %369, double noundef 0xBF710A329E2BE9B8) %387 = call double @llvm.fma.f64(double %386, double %369, double noundef 0x3FAA15D92DFE3FCF) %388 = call double @llvm.fma.f64(double %387, double %369, double noundef 0x3FA00B9F8571C9BE) %389 = call double @llvm.fma.f64(double %388, double %369, double noundef 0xBFD5C7C556F0C19A) %390 = fmul double %369, %389 br label %600 391: ; preds = %365 %392 = fcmp ugt double %1, 0x4022585C739ACDDD br i1 %392, label %412, label %393 393: ; preds = %391 %394 = fadd double %1, 0xC0213127AE6169B4 %395 = fadd double %394, 0xBCB479CC068D9046 %396 = call double @llvm.fma.f64(double %395, double noundef 0x3CB09CCC22945996, double noundef 0xBD43515F67644276) %397 = call double @llvm.fma.f64(double %396, double %395, double noundef 0xBD72C5B978E9F5C7) %398 = call double @llvm.fma.f64(double %397, double %395, double noundef 0x3DBEC1151613913C) %399 = call double @llvm.fma.f64(double %398, double %395, double noundef 0x3DE9E38D13C4A824) %400 = call double @llvm.fma.f64(double %399, double %395, double noundef 0xBE341E75E1088EB5) %401 = call double @llvm.fma.f64(double %400, double %395, double noundef 0xBE5A384EBB13CFE1) %402 = call double @llvm.fma.f64(double %401, double %395, double noundef 0x3EA2BECB27F8C8F8) %403 = call double @llvm.fma.f64(double %402, double %395, double noundef 0x3EC176E72B989FD8) %404 = call double @llvm.fma.f64(double %403, double %395, double noundef 0xBF06F7BAB102F822) %405 = call double @llvm.fma.f64(double %404, double %395, double noundef 0xBF1B50D7E1D278E1) %406 = call double @llvm.fma.f64(double %405, double %395, double noundef 0x3F607A678D60004F) %407 = call double @llvm.fma.f64(double %406, double %395, double noundef 0x3F63CED2A2E69115) %408 = call double @llvm.fma.f64(double %407, double %395, double noundef 0xBFA6395DFE49FCD4) %409 = call double @llvm.fma.f64(double %408, double %395, double noundef 0xBF902B3933CF21B1) %410 = call double @llvm.fma.f64(double %409, double %395, double noundef 0x3FD15F993FCEAB5C) %411 = fmul double %395, %410 br label %600 412: ; preds = %391 %413 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([12 x i8], [12 x i8]* @.str.1, i32 0, i32 0)) #135 %414 = icmp eq i32 %413, 200 br i1 %414, label %421, label %415 415: ; preds = %412 %416 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([12 x i8], [12 x i8]* @.str.1, i32 0, i32 0)) #135 %417 = icmp eq i32 %416, 350 br i1 %417, label %421, label %418 418: ; preds = %415 %419 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([12 x i8], [12 x i8]* @.str.1, i32 0, i32 0)) #135 %420 = icmp eq i32 %419, 370 br i1 %420, label %421, label %423 421: ; preds = %418, %415, %412 %422 = fcmp oeq double %1, 0x7FF0000000000000 br label %__nv_isinfd.exit 423: ; preds = %418 %424 = call i32 @llvm.nvvm.d2i.lo(double %1) #135 %425 = call i32 @llvm.nvvm.d2i.hi(double %1) #135 %426 = and i32 %425, 2147483647 %427 = icmp eq i32 %426, 2146435072 %428 = icmp eq i32 %424, 0 %429 = select i1 %427, i1 %428, i1 false br label %__nv_isinfd.exit __nv_isinfd.exit: ; preds = %423, %421 %.013.in = phi i1 [ %422, %421 ], [ %429, %423 ] br i1 %.013.in, label %600, label %430 430: ; preds = %__nv_isinfd.exit %431 = call double @llvm.nvvm.rcp.approx.ftz.d(double %1) #135 %432 = fneg double %1 %433 = call double @llvm.fma.f64(double %432, double %431, double noundef 1.000000e+00) %434 = call double @llvm.fma.f64(double %433, double %433, double %433) %435 = call double @llvm.fma.f64(double %434, double %431, double %431) %436 = fmul double %435, %435 %437 = call double @llvm.fma.f64(double %436, double noundef 0x40D13DB326ECEBFE, double noundef 0xC09C26E89385D5B1) %438 = call double @llvm.fma.f64(double %437, double %436, double noundef 0x405C6AB923C6F55E) %439 = call double @llvm.fma.f64(double %438, double %436, double noundef 0xC01E61EAF3BD2FA1) %440 = call double @llvm.fma.f64(double %439, double %436, double noundef 0x3FE9BF15D9B97DD1) %441 = call double @llvm.fma.f64(double %440, double %436, double noundef 0xBFC8BFECF93D7D19) %442 = call double @llvm.fma.f64(double %441, double %436, double noundef 0x3FC7FFFFF756AA6C) %443 = call double @llvm.fma.f64(double %442, double %436, double noundef 0x3FF0000000003646) %444 = call double @llvm.fma.f64(double %436, double noundef 0xC1943281A050209C, double noundef 0x416024E99BA46E7B) %445 = call double @llvm.fma.f64(double %444, double %436, double noundef 0xC11A6875D7DFBD65) %446 = call double @llvm.fma.f64(double %445, double %436, double noundef 0x40D032C041790233) %447 = call double @llvm.fma.f64(double %446, double %436, double noundef 0xC0839F895BC22946) %448 = call double @llvm.fma.f64(double %447, double %436, double noundef 0x403E77CC78ECD2D8) %449 = call double @llvm.fma.f64(double %448, double %436, double noundef 0xC002F368D0117BE9) %450 = call double @llvm.fma.f64(double %449, double %436, double noundef 0x3FD7BCC786009A25) %451 = call double @llvm.fma.f64(double %450, double %436, double noundef 0xBFC4FFFFFC51BC7A) %452 = call double @llvm.fma.f64(double %451, double %436, double noundef 0x3FD7FFFFFFFFB5EA) %453 = call double @llvm.fma.f64(double %452, double %435, double %1) %454 = call double @llvm.nvvm.rsqrt.approx.d(double %1) #135 %455 = fmul double %454, 0x3FE9884533D43651 %456 = fmul double %455, %443 %457 = fmul double %453, 0x3FE45F306DC9C883 %458 = call i32 @llvm.nvvm.d2i.rn(double %457) #135 store i32 %458, i32* %q.i.i, align 4, !noalias !219 %459 = sitofp i32 %458 to double %460 = fneg double %459 %461 = call double @llvm.fma.f64(double %460, double noundef 0x3FF921FB54442D18, double %453) %462 = call double @llvm.fma.f64(double %460, double noundef 0x3C91A62633145C00, double %461) %463 = call double @llvm.fma.f64(double %460, double noundef 0x397B839A252049C0, double %462) %464 = call double @llvm.fabs.f64(double %453) %465 = fcmp ult double %464, 0x41E0000000000000 br i1 %465, label %__internal_trig_reduction_kerneld.exit.i, label %466 466: ; preds = %430 %467 = call fastcc double @__internal_trig_reduction_slowpathd(double %453, i32* noalias nocapture nofree noundef nonnull writeonly align 4 dereferenceable(4) %q.i.i) #135 %.pre = load i32, i32* %q.i.i, align 4 br label %__internal_trig_reduction_kerneld.exit.i __internal_trig_reduction_kerneld.exit.i: ; preds = %466, %430 %468 = phi i32 [ %.pre, %466 ], [ %458, %430 ] %t.i.i.0 = phi double [ %467, %466 ], [ %463, %430 ] %469 = and i32 %468, 3 %470 = uitofp i32 %469 to double %471 = fadd double %t.i.i.0, 0xC00F6A7A2955385E %472 = fmul double %470, 0x3FF921FB54442D18 %473 = fadd double %471, %472 %474 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([12 x i8], [12 x i8]* @.str.1, i32 0, i32 0)) #135 %475 = icmp eq i32 %474, 350 br i1 %475, label %479, label %476 476: ; preds = %__internal_trig_reduction_kerneld.exit.i %477 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([12 x i8], [12 x i8]* @.str.1, i32 0, i32 0)) #135 %478 = icmp eq i32 %477, 370 br i1 %478, label %479, label %538 479: ; preds = %476, %__internal_trig_reduction_kerneld.exit.i %480 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([12 x i8], [12 x i8]* @.str.1, i32 0, i32 0)) #135 %481 = icmp eq i32 %480, 200 br i1 %481, label %488, label %482 482: ; preds = %479 %483 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([12 x i8], [12 x i8]* @.str.1, i32 0, i32 0)) #135 %484 = icmp eq i32 %483, 350 br i1 %484, label %488, label %485 485: ; preds = %482 %486 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([12 x i8], [12 x i8]* @.str.1, i32 0, i32 0)) #135 %487 = icmp eq i32 %486, 370 br i1 %487, label %488, label %491 488: ; preds = %485, %482, %479 %489 = call double @llvm.fabs.f64(double %473) %490 = fcmp oeq double %489, 0x7FF0000000000000 br label %__nv_isinfd.exit.i.i.i 491: ; preds = %485 %492 = call i32 @llvm.nvvm.d2i.lo(double %473) #135 %493 = call i32 @llvm.nvvm.d2i.hi(double %473) #135 %494 = and i32 %493, 2147483647 %495 = icmp eq i32 %494, 2146435072 %496 = icmp eq i32 %492, 0 %497 = select i1 %495, i1 %496, i1 false br label %__nv_isinfd.exit.i.i.i __nv_isinfd.exit.i.i.i: ; preds = %491, %488 %.02.in = phi i1 [ %490, %488 ], [ %497, %491 ] br i1 %.02.in, label %498, label %500 498: ; preds = %__nv_isinfd.exit.i.i.i %499 = fmul double %473, 0.000000e+00 br label %__internal_trig_reduction_kerneld.exit.i.i.i 500: ; preds = %__nv_isinfd.exit.i.i.i %501 = fmul double %473, 0x3FE45F306DC9C883 %502 = call i32 @llvm.nvvm.d2i.rn(double %501) #135 store i32 %502, i32* %q.i.i.i.i, align 4, !noalias !219 %503 = sitofp i32 %502 to double %504 = fneg double %503 %505 = call double @llvm.fma.f64(double %504, double noundef 0x3FF921FB54442D18, double %473) %506 = call double @llvm.fma.f64(double %504, double noundef 0x3C91A62633145C00, double %505) %507 = call double @llvm.fma.f64(double %504, double noundef 0x397B839A252049C0, double %506) %508 = call double @llvm.fabs.f64(double %473) %509 = fcmp ult double %508, 0x41E0000000000000 br i1 %509, label %__internal_trig_reduction_kerneld.exit.i.i.i, label %510 510: ; preds = %500 %511 = call fastcc double @__internal_trig_reduction_slowpathd(double %473, i32* noalias nocapture nofree noundef nonnull writeonly align 4 dereferenceable(4) %q.i.i.i.i) #135 %.pre7 = load i32, i32* %q.i.i.i.i, align 4 br label %__internal_trig_reduction_kerneld.exit.i.i.i __internal_trig_reduction_kerneld.exit.i.i.i: ; preds = %500, %510, %498 %i.i.i.i.0 = phi i32 [ 0, %498 ], [ %.pre7, %510 ], [ %502, %500 ] %.01 = phi double [ %499, %498 ], [ %511, %510 ], [ %507, %500 ] %512 = fmul double %.01, %.01 %513 = call double @llvm.fma.f64(double %512, double noundef 0xBDA8FF8320FD8164, double noundef 0x3E21EEA7C1EF8528) %514 = call double @llvm.fma.f64(double %513, double %512, double noundef 0xBE927E4F8E06E6D9) %515 = call double @llvm.fma.f64(double %514, double %512, double noundef 0x3EFA01A019DDBCE9) %516 = call double @llvm.fma.f64(double %515, double %512, double noundef 0xBF56C16C16C15D47) %517 = call double @llvm.fma.f64(double %516, double %512, double noundef 0x3FA5555555555551) %518 = call double @llvm.fma.f64(double %517, double %512, double noundef -5.000000e-01) %519 = call double @llvm.fma.f64(double %518, double %512, double noundef 1.000000e+00) %520 = call double @llvm.fma.f64(double %512, double noundef 0x3DE5DB65F9785EBA, double noundef 0xBE5AE5F12CB0D246) %521 = call double @llvm.fma.f64(double %520, double %512, double noundef 0x3EC71DE369ACE392) %522 = call double @llvm.fma.f64(double %521, double %512, double noundef 0xBF2A01A019DB62A1) %523 = call double @llvm.fma.f64(double %522, double %512, double noundef 0x3F81111111110818) %524 = call double @llvm.fma.f64(double %523, double %512, double noundef 0xBFC5555555555554) %525 = call double @llvm.fma.f64(double %524, double %512, double noundef 0.000000e+00) %526 = call double @llvm.fma.f64(double %525, double %.01, double %.01) %527 = call i32 @llvm.nvvm.d2i.hi(double %526) #135 %528 = call i32 @llvm.nvvm.d2i.lo(double %526) #135 %529 = xor i32 %527, -2147483648 %530 = call double @llvm.nvvm.lohi.i2d(i32 %528, i32 %529) #135 %531 = and i32 %i.i.i.i.0, 1 %.not12 = icmp eq i32 %531, 0 %spec.select4 = select i1 %.not12, double %519, double %530 %532 = and i32 %i.i.i.i.0, 2 %.not13 = icmp eq i32 %532, 0 br i1 %.not13, label %__internal_cos_offset.exit, label %533 533: ; preds = %__internal_trig_reduction_kerneld.exit.i.i.i %534 = call i32 @llvm.nvvm.d2i.hi(double %spec.select4) #135 %535 = call i32 @llvm.nvvm.d2i.lo(double %spec.select4) #135 %536 = xor i32 %534, -2147483648 %537 = call double @llvm.nvvm.lohi.i2d(i32 %535, i32 %536) #135 br label %__internal_cos_offset.exit 538: ; preds = %476 %539 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([12 x i8], [12 x i8]* @.str.1, i32 0, i32 0)) #135 %540 = icmp eq i32 %539, 200 br i1 %540, label %547, label %541 541: ; preds = %538 %542 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([12 x i8], [12 x i8]* @.str.1, i32 0, i32 0)) #135 %543 = icmp eq i32 %542, 350 br i1 %543, label %547, label %544 544: ; preds = %541 %545 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([12 x i8], [12 x i8]* @.str.1, i32 0, i32 0)) #135 %546 = icmp eq i32 %545, 370 br i1 %546, label %547, label %550 547: ; preds = %544, %541, %538 %548 = call double @llvm.fabs.f64(double %473) %549 = fcmp oeq double %548, 0x7FF0000000000000 br label %__nv_isinfd.exit.i.i 550: ; preds = %544 %551 = call i32 @llvm.nvvm.d2i.lo(double %473) #135 %552 = call i32 @llvm.nvvm.d2i.hi(double %473) #135 %553 = and i32 %552, 2147483647 %554 = icmp eq i32 %553, 2146435072 %555 = icmp eq i32 %551, 0 %556 = select i1 %554, i1 %555, i1 false br label %__nv_isinfd.exit.i.i __nv_isinfd.exit.i.i: ; preds = %550, %547 %.03.in = phi i1 [ %549, %547 ], [ %556, %550 ] br i1 %.03.in, label %557, label %559 557: ; preds = %__nv_isinfd.exit.i.i %558 = fmul double %473, 0.000000e+00 br label %__internal_sin_cos_kerneld.exit.i.i 559: ; preds = %__nv_isinfd.exit.i.i %560 = fmul double %473, 0x3FE45F306DC9C883 %561 = call i32 @llvm.nvvm.d2i.rn(double %560) #135 store i32 %561, i32* %q.i.i.i, align 4, !noalias !219 %562 = sitofp i32 %561 to double %563 = fneg double %562 %564 = call double @llvm.fma.f64(double %563, double noundef 0x3FF921FB54442D18, double %473) %565 = call double @llvm.fma.f64(double %563, double noundef 0x3C91A62633145C00, double %564) %566 = call double @llvm.fma.f64(double %563, double noundef 0x397B839A252049C0, double %565) %567 = call double @llvm.fabs.f64(double %473) %568 = fcmp ult double %567, 0x41E0000000000000 br i1 %568, label %__internal_sin_cos_kerneld.exit.i.i, label %569 569: ; preds = %559 %570 = call fastcc double @__internal_trig_reduction_slowpathd(double %473, i32* noalias nocapture nofree noundef nonnull writeonly align 4 dereferenceable(4) %q.i.i.i) #135 %.pre6 = load i32, i32* %q.i.i.i, align 4 br label %__internal_sin_cos_kerneld.exit.i.i __internal_sin_cos_kerneld.exit.i.i: ; preds = %559, %569, %557 %i.i.i.0 = phi i32 [ 0, %557 ], [ %.pre6, %569 ], [ %561, %559 ] %z.i.i.0 = phi double [ %558, %557 ], [ %570, %569 ], [ %566, %559 ] %571 = add nsw i32 %i.i.i.0, 1 %572 = and i32 %571, 1 %573 = shl nuw nsw i32 %572, 3 %574 = getelementptr inbounds [16 x double], [16 x double] addrspace(1)* @__cudart_sin_cos_coeffs, i32 0, i32 %573 %575 = fmul double %z.i.i.0, %z.i.i.0 %.not = icmp eq i32 %572, 0 %576 = select i1 %.not, double 0x3DE5DB65F9785EBA, double 0xBDA8FF8320FD8164 %577 = getelementptr inbounds double, double addrspace(1)* %574, i32 1 %578 = load double, double addrspace(1)* %577, align 8 %579 = call double @llvm.fma.f64(double noundef %576, double %575, double %578) %580 = getelementptr inbounds double, double addrspace(1)* %574, i32 2 %581 = load double, double addrspace(1)* %580, align 8 %582 = call double @llvm.fma.f64(double %579, double %575, double %581) %583 = getelementptr inbounds double, double addrspace(1)* %574, i32 3 %584 = load double, double addrspace(1)* %583, align 8 %585 = call double @llvm.fma.f64(double %582, double %575, double %584) %586 = getelementptr inbounds double, double addrspace(1)* %574, i32 4 %587 = load double, double addrspace(1)* %586, align 8 %588 = call double @llvm.fma.f64(double %585, double %575, double %587) %589 = getelementptr inbounds double, double addrspace(1)* %574, i32 5 %590 = load double, double addrspace(1)* %589, align 8 %591 = call double @llvm.fma.f64(double %588, double %575, double %590) %592 = getelementptr inbounds double, double addrspace(1)* %574, i32 6 %593 = load double, double addrspace(1)* %592, align 8 %594 = call double @llvm.fma.f64(double %591, double %575, double %593) %595 = call double @llvm.fma.f64(double %594, double %z.i.i.0, double %z.i.i.0) %596 = call double @llvm.fma.f64(double %594, double %575, double noundef 1.000000e+00) %spec.select5 = select i1 %.not, double %595, double %596 %597 = and i32 %571, 2 %.not11 = icmp eq i32 %597, 0 %598 = call double @llvm.fma.f64(double %spec.select5, double noundef -1.000000e+00, double noundef 0.000000e+00) %.1 = select i1 %.not11, double %spec.select5, double %598 br label %__internal_cos_offset.exit __internal_cos_offset.exit: ; preds = %__internal_trig_reduction_kerneld.exit.i.i.i, %533, %__internal_sin_cos_kerneld.exit.i.i %.0 = phi double [ %.1, %__internal_sin_cos_kerneld.exit.i.i ], [ %537, %533 ], [ %spec.select4, %__internal_trig_reduction_kerneld.exit.i.i.i ] %599 = fmul double %456, %.0 br label %600 600: ; preds = %__nv_log.exit, %367, %__internal_cos_offset.exit, %__nv_isinfd.exit, %393, %338, %3 %r.5 = phi double [ %4, %3 ], [ %335, %__nv_log.exit ], [ %364, %338 ], [ %390, %367 ], [ %411, %393 ], [ %599, %__internal_cos_offset.exit ], [ 0.000000e+00, %__nv_isinfd.exit ] %601 = fcmp ugt double %a, 0.000000e+00 %602 = fcmp oeq double %a, 0.000000e+00 %r.6 = select i1 %602, double 0xFFF0000000000000, double 0xFFF8000000000000 %r.7 = select i1 %601, double %r.5, double %r.6 ret double %r.7 } ; Function Attrs: noinline nounwind define dso_local double @__nv_yn(i32 %n, double %a) local_unnamed_addr #107 { %q.i.i.i.i5.i304 = alloca i32, align 4 %q.i.i.i.i.i.i320 = alloca i32, align 4 %q.i.i.i16.i334 = alloca i32, align 4 %q.i.i.i.i351 = alloca i32, align 4 %q.i.i.i.i.i367 = alloca i32, align 4 %q.i.i.i381 = alloca i32, align 4 %q.i.i.i.i9.i133 = alloca i32, align 4 %q.i.i.i.i.i.i149 = alloca i32, align 4 %q.i.i.i20.i163 = alloca i32, align 4 %q.i.i.i.i202 = alloca i32, align 4 %q.i.i.i.i.i218 = alloca i32, align 4 %q.i.i.i232 = alloca i32, align 4 %q.i.i.i.i9.i = alloca i32, align 4 %q.i.i.i.i.i.i20 = alloca i32, align 4 %q.i.i.i20.i = alloca i32, align 4 %q.i.i.i.i58 = alloca i32, align 4 %q.i.i.i.i.i74 = alloca i32, align 4 %q.i.i.i88 = alloca i32, align 4 %q.i.i.i.i5.i = alloca i32, align 4 %q.i.i.i.i.i.i = alloca i32, align 4 %q.i.i.i16.i = alloca i32, align 4 %q.i.i.i.i = alloca i32, align 4 %q.i.i.i.i.i = alloca i32, align 4 %q.i.i.i = alloca i32, align 4 %1 = call double @llvm.fabs.f64(double %a) %2 = fcmp olt double %1, 0x730D67819E8D2 br i1 %2, label %3, label %5 3: ; preds = %0 %4 = fdiv double 0xBFE45F306DC9C883, %1 br label %__nv_y1.exit 5: ; preds = %0 %6 = fcmp ugt double %1, 0x3FF4C6F208132576 br i1 %6, label %336, label %7 7: ; preds = %5 %8 = fmul double %a, %a %9 = call double @llvm.fma.f64(double %8, double noundef 0x3D5249F90687428C, double noundef 0xBDCF0B5B1FB7B95E) %10 = call double @llvm.fma.f64(double %9, double %8, double noundef 0x3E432E589311FA14) %11 = call double @llvm.fma.f64(double %10, double %8, double noundef 0xBEB0A780AA4A92E9) %12 = call double @llvm.fma.f64(double %11, double %8, double noundef 0x3F12C7DBFFCAEC2B) %13 = call double @llvm.fma.f64(double %12, double %8, double noundef 0xBF6835B97894BA4A) %14 = call double @llvm.fma.f64(double %13, double %8, double noundef 0x3FABD3975C75B4A3) %15 = call double @llvm.fma.f64(double %14, double %8, double noundef 0xBFC91866143CBC8A) %16 = fmul double %1, %15 %17 = fcmp ugt double %1, 0x400353AABAD7B784 br i1 %17, label %35, label %18 18: ; preds = %7 %19 = call double @llvm.fma.f64(double %1, double noundef 0x3D020E4ADCDE2AD3, double noundef 0xBD4DD167A0DC3F55) %20 = call double @llvm.fma.f64(double %19, double %1, double noundef 0x3D5503F5A491E487) %21 = call double @llvm.fma.f64(double %20, double %1, double noundef 0x3DC1F29940C2403A) %22 = call double @llvm.fma.f64(double %21, double %1, double noundef 0x3D84CF9302EACDEF) %23 = call double @llvm.fma.f64(double %22, double %1, double noundef 0xBE384A53DBBCA436) %24 = call double @llvm.fma.f64(double %23, double %1, double noundef 0x3D9779BEE4F63BCC) %25 = call double @llvm.fma.f64(double %24, double %1, double noundef 0x3EA6C160E414F3F0) %26 = call double @llvm.fma.f64(double %25, double %1, double noundef 0x3D8F3D2F12430699) %27 = call double @llvm.fma.f64(double %26, double %1, double noundef 0xBF0C71C72C0CED04) %28 = call double @llvm.fma.f64(double %27, double %1, double noundef 0x3D659BCA506F1128) %29 = call double @llvm.fma.f64(double %28, double %1, double noundef 0x3F65555555506982) %30 = call double @llvm.fma.f64(double %29, double %1, double noundef 0x3D15BA0B425F1BFB) %31 = call double @llvm.fma.f64(double %30, double %1, double noundef 0xBFB0000000000065) %32 = call double @llvm.fma.f64(double %31, double %1, double noundef 0x3C8729A7253FB679) %33 = call double @llvm.fma.f64(double %32, double %1, double noundef 5.000000e-01) %34 = fmul double %1, %33 br label %__nv_j1.exit.i 35: ; preds = %7 %36 = fcmp ugt double %1, 0x4015B1D0574614EA br i1 %36, label %56, label %37 37: ; preds = %35 %38 = fadd double %1, 0xC00EA75575AF6F09 %39 = fadd double %38, 0x3CA60155A9D1B256 %40 = call double @llvm.fma.f64(double %39, double noundef 0xBCF8D3CDBB60175E, double noundef 0x3D41011A1DF02DAD) %41 = call double @llvm.fma.f64(double %40, double %39, double noundef 0x3D76013AC1E5E222) %42 = call double @llvm.fma.f64(double %41, double %39, double noundef 0xBDBEC315D96D5F03) %43 = call double @llvm.fma.f64(double %42, double %39, double noundef 0xBDF03BE1B4B57207) %44 = call double @llvm.fma.f64(double %43, double %39, double noundef 0x3E345695F8B660F7) %45 = call double @llvm.fma.f64(double %44, double %39, double noundef 0x3E617069FCFCFFF4) %46 = call double @llvm.fma.f64(double %45, double %39, double noundef 0xBEA33825C36745EB) %47 = call double @llvm.fma.f64(double %46, double %39, double noundef 0xBEC9799D4F90931B) %48 = call double @llvm.fma.f64(double %47, double %39, double noundef 0x3F083A06E2F7DF13) %49 = call double @llvm.fma.f64(double %48, double %39, double noundef 0x3F26E4C2D53A7CF6) %50 = call double @llvm.fma.f64(double %49, double %39, double noundef 0xBF624B3409957B1C) %51 = call double @llvm.fma.f64(double %50, double %39, double noundef 0xBF7537544C3325DF) %52 = call double @llvm.fma.f64(double %51, double %39, double noundef 0x3FAB589D1DA138E2) %53 = call double @llvm.fma.f64(double %52, double %39, double noundef 0x3FAAE8A39F51AD13) %54 = call double @llvm.fma.f64(double %53, double %39, double noundef 0xBFD9C6CF582CBF7F) %55 = fmul double %39, %54 br label %__nv_j1.exit.i 56: ; preds = %35 %57 = fcmp ugt double %1, 0x40213065E54C1AA9 br i1 %57, label %77, label %58 58: ; preds = %56 %59 = fadd double %1, 0xC01C0FF5F3B47250 %60 = fadd double %59, 0x3C9B226D9D243827 %61 = call double @llvm.fma.f64(double %60, double noundef 0x3CF3EB867515FAD6, double noundef 0xBD40E8363DB649A9) %62 = call double @llvm.fma.f64(double %61, double %60, double noundef 0xBD73B7DD4A6608FB) %63 = call double @llvm.fma.f64(double %62, double %60, double noundef 0x3DBEC5E01482C750) %64 = call double @llvm.fma.f64(double %63, double %60, double noundef 0x3DEC62BB9E882103) %65 = call double @llvm.fma.f64(double %64, double %60, double noundef 0xBE34462EED732A23) %66 = call double @llvm.fma.f64(double %65, double %60, double noundef 0xBE5D48DCAD7DC59B) %67 = call double @llvm.fma.f64(double %66, double %60, double noundef 0x3EA3026DF29167E9) %68 = call double @llvm.fma.f64(double %67, double %60, double noundef 0x3EC4255B0119666C) %69 = call double @llvm.fma.f64(double %68, double %60, double noundef 0xBF0796A751B32693) %70 = call double @llvm.fma.f64(double %69, double %60, double noundef 0xBF207358BBDBA284) %71 = call double @llvm.fma.f64(double %70, double %60, double noundef 0x3F613FBC7D6927B1) %72 = call double @llvm.fma.f64(double %71, double %60, double noundef 0x3F69A4B292E3DD75) %73 = call double @llvm.fma.f64(double %72, double %60, double noundef 0xBFA80C83BDEEE4FB) %74 = call double @llvm.fma.f64(double %73, double %60, double noundef 0xBF95E70DC60362BF) %75 = call double @llvm.fma.f64(double %74, double %60, double noundef 0x3FD33518B3874E8A) %76 = fmul double %60, %75 br label %__nv_j1.exit.i 77: ; preds = %56 %78 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([12 x i8], [12 x i8]* @.str.1, i32 0, i32 0)) #135 %79 = icmp eq i32 %78, 200 br i1 %79, label %86, label %80 80: ; preds = %77 %81 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([12 x i8], [12 x i8]* @.str.1, i32 0, i32 0)) #135 %82 = icmp eq i32 %81, 350 br i1 %82, label %86, label %83 83: ; preds = %80 %84 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([12 x i8], [12 x i8]* @.str.1, i32 0, i32 0)) #135 %85 = icmp eq i32 %84, 370 br i1 %85, label %86, label %88 86: ; preds = %83, %80, %77 %87 = fcmp oeq double %1, 0x7FF0000000000000 br label %__nv_isinfd.exit.i.i 88: ; preds = %83 %89 = call i32 @llvm.nvvm.d2i.lo(double %1) #135 %90 = call i32 @llvm.nvvm.d2i.hi(double %1) #135 %91 = and i32 %90, 2147483647 %92 = icmp eq i32 %91, 2146435072 %93 = icmp eq i32 %89, 0 %94 = select i1 %92, i1 %93, i1 false br label %__nv_isinfd.exit.i.i __nv_isinfd.exit.i.i: ; preds = %88, %86 %.012.in = phi i1 [ %87, %86 ], [ %94, %88 ] br i1 %.012.in, label %__nv_j1.exit.i, label %95 95: ; preds = %__nv_isinfd.exit.i.i %96 = call double @llvm.nvvm.rcp.approx.ftz.d(double %1) #135 %97 = fneg double %1 %98 = call double @llvm.fma.f64(double %97, double %96, double noundef 1.000000e+00) %99 = call double @llvm.fma.f64(double %98, double %98, double %98) %100 = call double @llvm.fma.f64(double %99, double %96, double %96) %101 = fmul double %100, %100 %102 = call double @llvm.fma.f64(double %101, double noundef 0x40CD02EA3F2F6751, double noundef 0xC099C06322A3F8BE) %103 = call double @llvm.fma.f64(double %102, double %101, double noundef 0x405B89354DA77324) %104 = call double @llvm.fma.f64(double %103, double %101, double noundef 0xC01E352294653188) %105 = call double @llvm.fma.f64(double %104, double %101, double noundef 0x3FE9BC7DB16BD7A7) %106 = call double @llvm.fma.f64(double %105, double %101, double noundef 0xBFC8BFE1C3A4F741) %107 = call double @llvm.fma.f64(double %106, double %101, double noundef 0x3FC7FFFFF0D00BE2) %108 = call double @llvm.fma.f64(double %107, double %101, double noundef 0x3FF00000000068CC) %109 = call double @llvm.fma.f64(double %101, double noundef 0xC18DA26B212FDC9A, double noundef 0x415A30AC6857BEE0) %110 = call double @llvm.fma.f64(double %109, double %101, double noundef 0xC11764222AD7C910) %111 = call double @llvm.fma.f64(double %110, double %101, double noundef 0x40CEB02E0C306857) %112 = call double @llvm.fma.f64(double %111, double %101, double noundef 0xC08351859FA2B23B) %113 = call double @llvm.fma.f64(double %112, double %101, double noundef 0x403E65A07AF51F42) %114 = call double @llvm.fma.f64(double %113, double %101, double noundef 0xC002F2B817F77A57) %115 = call double @llvm.fma.f64(double %114, double %101, double noundef 0x3FD7BCC34DA069FD) %116 = call double @llvm.fma.f64(double %115, double %101, double noundef 0xBFC4FFFFF8A44463) %117 = call double @llvm.fma.f64(double %116, double %101, double noundef 0x3FD7FFFFFFFF5CD7) %118 = call double @llvm.fma.f64(double %117, double %100, double %1) %119 = call double @llvm.nvvm.rsqrt.approx.d(double %1) #135 %120 = fmul double %119, 0x3FE9884533D43651 %121 = fmul double %120, %108 %122 = fmul double %118, 0x3FE45F306DC9C883 %123 = call i32 @llvm.nvvm.d2i.rn(double %122) #135 store i32 %123, i32* %q.i.i.i16.i, align 4, !noalias !219 %124 = sitofp i32 %123 to double %125 = fneg double %124 %126 = call double @llvm.fma.f64(double %125, double noundef 0x3FF921FB54442D18, double %118) %127 = call double @llvm.fma.f64(double %125, double noundef 0x3C91A62633145C00, double %126) %128 = call double @llvm.fma.f64(double %125, double noundef 0x397B839A252049C0, double %127) %129 = call double @llvm.fabs.f64(double %118) %130 = fcmp ult double %129, 0x41E0000000000000 br i1 %130, label %__internal_trig_reduction_kerneld.exit.i.i20.i, label %131 131: ; preds = %95 %132 = call fastcc double @__internal_trig_reduction_slowpathd(double %118, i32* noalias nocapture nofree noundef nonnull writeonly align 4 dereferenceable(4) %q.i.i.i16.i) #135 %.pre29 = load i32, i32* %q.i.i.i16.i, align 4 br label %__internal_trig_reduction_kerneld.exit.i.i20.i __internal_trig_reduction_kerneld.exit.i.i20.i: ; preds = %131, %95 %133 = phi i32 [ %.pre29, %131 ], [ %123, %95 ] %t.i.i.i15.i.0 = phi double [ %132, %131 ], [ %128, %95 ] %134 = and i32 %133, 3 %135 = uitofp i32 %134 to double %136 = fadd double %t.i.i.i15.i.0, 0xC002D97C7F3321D2 %137 = fmul double %135, 0x3FF921FB54442D18 %138 = fadd double %136, %137 %139 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([12 x i8], [12 x i8]* @.str.1, i32 0, i32 0)) #135 %140 = icmp eq i32 %139, 350 br i1 %140, label %144, label %141 141: ; preds = %__internal_trig_reduction_kerneld.exit.i.i20.i %142 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([12 x i8], [12 x i8]* @.str.1, i32 0, i32 0)) #135 %143 = icmp eq i32 %142, 370 br i1 %143, label %144, label %203 144: ; preds = %141, %__internal_trig_reduction_kerneld.exit.i.i20.i %145 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([12 x i8], [12 x i8]* @.str.1, i32 0, i32 0)) #135 %146 = icmp eq i32 %145, 200 br i1 %146, label %153, label %147 147: ; preds = %144 %148 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([12 x i8], [12 x i8]* @.str.1, i32 0, i32 0)) #135 %149 = icmp eq i32 %148, 350 br i1 %149, label %153, label %150 150: ; preds = %147 %151 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([12 x i8], [12 x i8]* @.str.1, i32 0, i32 0)) #135 %152 = icmp eq i32 %151, 370 br i1 %152, label %153, label %156 153: ; preds = %150, %147, %144 %154 = call double @llvm.fabs.f64(double %138) %155 = fcmp oeq double %154, 0x7FF0000000000000 br label %__nv_isinfd.exit.i.i.i.i.i 156: ; preds = %150 %157 = call i32 @llvm.nvvm.d2i.lo(double %138) #135 %158 = call i32 @llvm.nvvm.d2i.hi(double %138) #135 %159 = and i32 %158, 2147483647 %160 = icmp eq i32 %159, 2146435072 %161 = icmp eq i32 %157, 0 %162 = select i1 %160, i1 %161, i1 false br label %__nv_isinfd.exit.i.i.i.i.i __nv_isinfd.exit.i.i.i.i.i: ; preds = %156, %153 %.08.in = phi i1 [ %155, %153 ], [ %162, %156 ] br i1 %.08.in, label %163, label %165 163: ; preds = %__nv_isinfd.exit.i.i.i.i.i %164 = fmul double %138, 0.000000e+00 br label %__internal_trig_reduction_kerneld.exit.i.i.i.i.i 165: ; preds = %__nv_isinfd.exit.i.i.i.i.i %166 = fmul double %138, 0x3FE45F306DC9C883 %167 = call i32 @llvm.nvvm.d2i.rn(double %166) #135 store i32 %167, i32* %q.i.i.i.i.i.i, align 4, !noalias !219 %168 = sitofp i32 %167 to double %169 = fneg double %168 %170 = call double @llvm.fma.f64(double %169, double noundef 0x3FF921FB54442D18, double %138) %171 = call double @llvm.fma.f64(double %169, double noundef 0x3C91A62633145C00, double %170) %172 = call double @llvm.fma.f64(double %169, double noundef 0x397B839A252049C0, double %171) %173 = call double @llvm.fabs.f64(double %138) %174 = fcmp ult double %173, 0x41E0000000000000 br i1 %174, label %__internal_trig_reduction_kerneld.exit.i.i.i.i.i, label %175 175: ; preds = %165 %176 = call fastcc double @__internal_trig_reduction_slowpathd(double %138, i32* noalias nocapture nofree noundef nonnull writeonly align 4 dereferenceable(4) %q.i.i.i.i.i.i) #135 %.pre31 = load i32, i32* %q.i.i.i.i.i.i, align 4 br label %__internal_trig_reduction_kerneld.exit.i.i.i.i.i __internal_trig_reduction_kerneld.exit.i.i.i.i.i: ; preds = %165, %175, %163 %i.i.i.i.i.i.0 = phi i32 [ 0, %163 ], [ %.pre31, %175 ], [ %167, %165 ] %.07 = phi double [ %164, %163 ], [ %176, %175 ], [ %172, %165 ] %177 = fmul double %.07, %.07 %178 = call double @llvm.fma.f64(double %177, double noundef 0xBDA8FF8320FD8164, double noundef 0x3E21EEA7C1EF8528) %179 = call double @llvm.fma.f64(double %178, double %177, double noundef 0xBE927E4F8E06E6D9) %180 = call double @llvm.fma.f64(double %179, double %177, double noundef 0x3EFA01A019DDBCE9) %181 = call double @llvm.fma.f64(double %180, double %177, double noundef 0xBF56C16C16C15D47) %182 = call double @llvm.fma.f64(double %181, double %177, double noundef 0x3FA5555555555551) %183 = call double @llvm.fma.f64(double %182, double %177, double noundef -5.000000e-01) %184 = call double @llvm.fma.f64(double %183, double %177, double noundef 1.000000e+00) %185 = call double @llvm.fma.f64(double %177, double noundef 0x3DE5DB65F9785EBA, double noundef 0xBE5AE5F12CB0D246) %186 = call double @llvm.fma.f64(double %185, double %177, double noundef 0x3EC71DE369ACE392) %187 = call double @llvm.fma.f64(double %186, double %177, double noundef 0xBF2A01A019DB62A1) %188 = call double @llvm.fma.f64(double %187, double %177, double noundef 0x3F81111111110818) %189 = call double @llvm.fma.f64(double %188, double %177, double noundef 0xBFC5555555555554) %190 = call double @llvm.fma.f64(double %189, double %177, double noundef 0.000000e+00) %191 = call double @llvm.fma.f64(double %190, double %.07, double %.07) %192 = call i32 @llvm.nvvm.d2i.hi(double %191) #135 %193 = call i32 @llvm.nvvm.d2i.lo(double %191) #135 %194 = xor i32 %192, -2147483648 %195 = call double @llvm.nvvm.lohi.i2d(i32 %193, i32 %194) #135 %196 = and i32 %i.i.i.i.i.i.0, 1 %.not79 = icmp eq i32 %196, 0 %spec.select1 = select i1 %.not79, double %184, double %195 %197 = and i32 %i.i.i.i.i.i.0, 2 %.not80 = icmp eq i32 %197, 0 br i1 %.not80, label %__internal_cos_offset.exit.i.i, label %198 198: ; preds = %__internal_trig_reduction_kerneld.exit.i.i.i.i.i %199 = call i32 @llvm.nvvm.d2i.hi(double %spec.select1) #135 %200 = call i32 @llvm.nvvm.d2i.lo(double %spec.select1) #135 %201 = xor i32 %199, -2147483648 %202 = call double @llvm.nvvm.lohi.i2d(i32 %200, i32 %201) #135 br label %__internal_cos_offset.exit.i.i 203: ; preds = %141 %204 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([12 x i8], [12 x i8]* @.str.1, i32 0, i32 0)) #135 %205 = icmp eq i32 %204, 200 br i1 %205, label %212, label %206 206: ; preds = %203 %207 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([12 x i8], [12 x i8]* @.str.1, i32 0, i32 0)) #135 %208 = icmp eq i32 %207, 350 br i1 %208, label %212, label %209 209: ; preds = %206 %210 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([12 x i8], [12 x i8]* @.str.1, i32 0, i32 0)) #135 %211 = icmp eq i32 %210, 370 br i1 %211, label %212, label %215 212: ; preds = %209, %206, %203 %213 = call double @llvm.fabs.f64(double %138) %214 = fcmp oeq double %213, 0x7FF0000000000000 br label %__nv_isinfd.exit.i.i.i21.i 215: ; preds = %209 %216 = call i32 @llvm.nvvm.d2i.lo(double %138) #135 %217 = call i32 @llvm.nvvm.d2i.hi(double %138) #135 %218 = and i32 %217, 2147483647 %219 = icmp eq i32 %218, 2146435072 %220 = icmp eq i32 %216, 0 %221 = select i1 %219, i1 %220, i1 false br label %__nv_isinfd.exit.i.i.i21.i __nv_isinfd.exit.i.i.i21.i: ; preds = %215, %212 %.09.in = phi i1 [ %214, %212 ], [ %221, %215 ] br i1 %.09.in, label %222, label %224 222: ; preds = %__nv_isinfd.exit.i.i.i21.i %223 = fmul double %138, 0.000000e+00 br label %__internal_sin_cos_kerneld.exit.i.i.i.i 224: ; preds = %__nv_isinfd.exit.i.i.i21.i %225 = fmul double %138, 0x3FE45F306DC9C883 %226 = call i32 @llvm.nvvm.d2i.rn(double %225) #135 store i32 %226, i32* %q.i.i.i.i5.i, align 4, !noalias !219 %227 = sitofp i32 %226 to double %228 = fneg double %227 %229 = call double @llvm.fma.f64(double %228, double noundef 0x3FF921FB54442D18, double %138) %230 = call double @llvm.fma.f64(double %228, double noundef 0x3C91A62633145C00, double %229) %231 = call double @llvm.fma.f64(double %228, double noundef 0x397B839A252049C0, double %230) %232 = call double @llvm.fabs.f64(double %138) %233 = fcmp ult double %232, 0x41E0000000000000 br i1 %233, label %__internal_sin_cos_kerneld.exit.i.i.i.i, label %234 234: ; preds = %224 %235 = call fastcc double @__internal_trig_reduction_slowpathd(double %138, i32* noalias nocapture nofree noundef nonnull writeonly align 4 dereferenceable(4) %q.i.i.i.i5.i) #135 %.pre30 = load i32, i32* %q.i.i.i.i5.i, align 4 br label %__internal_sin_cos_kerneld.exit.i.i.i.i __internal_sin_cos_kerneld.exit.i.i.i.i: ; preds = %224, %234, %222 %i.i.i.i13.i.0 = phi i32 [ 0, %222 ], [ %.pre30, %234 ], [ %226, %224 ] %z.i.i.i12.i.0 = phi double [ %223, %222 ], [ %235, %234 ], [ %231, %224 ] %236 = add nsw i32 %i.i.i.i13.i.0, 1 %237 = and i32 %236, 1 %238 = shl nuw nsw i32 %237, 3 %239 = getelementptr inbounds [16 x double], [16 x double] addrspace(1)* @__cudart_sin_cos_coeffs, i32 0, i32 %238 %240 = fmul double %z.i.i.i12.i.0, %z.i.i.i12.i.0 %.not77 = icmp eq i32 %237, 0 %241 = select i1 %.not77, double 0x3DE5DB65F9785EBA, double 0xBDA8FF8320FD8164 %242 = getelementptr inbounds double, double addrspace(1)* %239, i32 1 %243 = load double, double addrspace(1)* %242, align 8 %244 = call double @llvm.fma.f64(double noundef %241, double %240, double %243) %245 = getelementptr inbounds double, double addrspace(1)* %239, i32 2 %246 = load double, double addrspace(1)* %245, align 8 %247 = call double @llvm.fma.f64(double %244, double %240, double %246) %248 = getelementptr inbounds double, double addrspace(1)* %239, i32 3 %249 = load double, double addrspace(1)* %248, align 8 %250 = call double @llvm.fma.f64(double %247, double %240, double %249) %251 = getelementptr inbounds double, double addrspace(1)* %239, i32 4 %252 = load double, double addrspace(1)* %251, align 8 %253 = call double @llvm.fma.f64(double %250, double %240, double %252) %254 = getelementptr inbounds double, double addrspace(1)* %239, i32 5 %255 = load double, double addrspace(1)* %254, align 8 %256 = call double @llvm.fma.f64(double %253, double %240, double %255) %257 = getelementptr inbounds double, double addrspace(1)* %239, i32 6 %258 = load double, double addrspace(1)* %257, align 8 %259 = call double @llvm.fma.f64(double %256, double %240, double %258) %260 = call double @llvm.fma.f64(double %259, double %z.i.i.i12.i.0, double %z.i.i.i12.i.0) %261 = call double @llvm.fma.f64(double %259, double %240, double noundef 1.000000e+00) %spec.select2 = select i1 %.not77, double %260, double %261 %262 = and i32 %236, 2 %.not78 = icmp eq i32 %262, 0 %263 = call double @llvm.fma.f64(double %spec.select2, double noundef -1.000000e+00, double noundef 0.000000e+00) %.111 = select i1 %.not78, double %spec.select2, double %263 br label %__internal_cos_offset.exit.i.i __internal_cos_offset.exit.i.i: ; preds = %__internal_trig_reduction_kerneld.exit.i.i.i.i.i, %198, %__internal_sin_cos_kerneld.exit.i.i.i.i %.06 = phi double [ %.111, %__internal_sin_cos_kerneld.exit.i.i.i.i ], [ %202, %198 ], [ %spec.select1, %__internal_trig_reduction_kerneld.exit.i.i.i.i.i ] %264 = fmul double %121, %.06 br label %__nv_j1.exit.i __nv_j1.exit.i: ; preds = %37, %__internal_cos_offset.exit.i.i, %__nv_isinfd.exit.i.i, %58, %18 %r.i.i.3 = phi double [ %34, %18 ], [ %55, %37 ], [ %76, %58 ], [ %264, %__internal_cos_offset.exit.i.i ], [ 0.000000e+00, %__nv_isinfd.exit.i.i ] %265 = fcmp olt double %1, 1.000000e-30 %266 = fmul double %1, 5.000000e-01 %r.i.i.5 = select i1 %265, double %266, double %r.i.i.3 %267 = call i32 @llvm.nvvm.d2i.hi(double %1) #135 %268 = call i32 @llvm.nvvm.d2i.lo(double %1) #135 %269 = icmp slt i32 %267, 1048576 br i1 %269, label %270, label %274 270: ; preds = %__nv_j1.exit.i %271 = fmul double %1, 0x4350000000000000 %272 = call i32 @llvm.nvvm.d2i.hi(double %271) #135 %273 = call i32 @llvm.nvvm.d2i.lo(double %271) #135 br label %274 274: ; preds = %270, %__nv_j1.exit.i %.013 = phi double [ %271, %270 ], [ %1, %__nv_j1.exit.i ] %ihi.i.i.0 = phi i32 [ %272, %270 ], [ %267, %__nv_j1.exit.i ] %ilo.i.i.0 = phi i32 [ %273, %270 ], [ %268, %__nv_j1.exit.i ] %e.i.i.0 = phi i32 [ -1077, %270 ], [ -1023, %__nv_j1.exit.i ] %275 = add i32 %ihi.i.i.0, -1 %276 = icmp ult i32 %275, 2146435071 br i1 %276, label %277, label %326 277: ; preds = %274 %278 = lshr i32 %ihi.i.i.0, 20 %279 = add nsw i32 %e.i.i.0, %278 %280 = and i32 %ihi.i.i.0, -2146435073 %281 = or i32 %280, 1072693248 %282 = call double @llvm.nvvm.lohi.i2d(i32 %ilo.i.i.0, i32 %281) #135 %283 = icmp sgt i32 %281, 1073127582 br i1 %283, label %284, label %290 284: ; preds = %277 %285 = call i32 @llvm.nvvm.d2i.lo(double %282) #135 %286 = call i32 @llvm.nvvm.d2i.hi(double %282) #135 %287 = add i32 %286, -1048576 %288 = call double @llvm.nvvm.lohi.i2d(i32 %285, i32 %287) #135 %289 = add nsw i32 %279, 1 br label %290 290: ; preds = %284, %277 %m.i.i.0 = phi double [ %288, %284 ], [ %282, %277 ] %e.i.i.1 = phi i32 [ %289, %284 ], [ %279, %277 ] %291 = fadd double %m.i.i.0, -1.000000e+00 %292 = fadd double %m.i.i.0, 1.000000e+00 %293 = call double @llvm.nvvm.rcp.approx.ftz.d(double %292) #135 %294 = fneg double %292 %295 = call double @llvm.fma.f64(double %294, double %293, double noundef 1.000000e+00) %296 = call double @llvm.fma.f64(double %295, double %295, double %295) %297 = call double @llvm.fma.f64(double %296, double %293, double %293) %298 = fmul double %291, %297 %299 = fadd double %298, %298 %300 = fmul double %299, %299 %301 = call double @llvm.fma.f64(double %300, double noundef 0x3EB1380B3AE80F1E, double noundef 0x3ED0EE258B7A8B04) %302 = call double @llvm.fma.f64(double %301, double %300, double noundef 0x3EF3B2669F02676F) %303 = call double @llvm.fma.f64(double %302, double %300, double noundef 0x3F1745CBA9AB0956) %304 = call double @llvm.fma.f64(double %303, double %300, double noundef 0x3F3C71C72D1B5154) %305 = call double @llvm.fma.f64(double %304, double %300, double noundef 0x3F624924923BE72D) %306 = call double @llvm.fma.f64(double %305, double %300, double noundef 0x3F8999999999A3C4) %307 = call double @llvm.fma.f64(double %306, double %300, double noundef 0x3FB5555555555554) %308 = fsub double %291, %299 %309 = fmul double %308, 2.000000e+00 %310 = fneg double %299 %311 = call double @llvm.fma.f64(double %310, double %291, double %309) %312 = fmul double %297, %311 %313 = fmul double %300, %307 %314 = call double @llvm.fma.f64(double %313, double %299, double %312) %315 = xor i32 %e.i.i.1, -2147483648 %316 = call double @llvm.nvvm.lohi.i2d(i32 %315, i32 noundef 1127219200) #135 %317 = call double @llvm.nvvm.lohi.i2d(i32 noundef -2147483648, i32 noundef 1127219200) #135 %318 = fsub double %316, %317 %319 = call double @llvm.fma.f64(double %318, double noundef 0x3FE62E42FEFA39EF, double %299) %320 = fneg double %318 %321 = call double @llvm.fma.f64(double %320, double noundef 0x3FE62E42FEFA39EF, double %319) %322 = fsub double %321, %299 %323 = fsub double %314, %322 %324 = call double @llvm.fma.f64(double %318, double noundef 0x3C7ABC9E3B39803F, double %323) %325 = fadd double %319, %324 br label %__nv_log.exit.i 326: ; preds = %274 %327 = call double @llvm.fma.f64(double %.013, double noundef 0x7FF0000000000000, double noundef 0x7FF0000000000000) %328 = call i32 @llvm.nvvm.d2i.hi(double %.013) #135 %329 = bitcast i32 %328 to float %330 = fcmp oeq float %329, 0.000000e+00 %q.i28.i.0 = select i1 %330, double 0xFFF0000000000000, double %327 br label %__nv_log.exit.i __nv_log.exit.i: ; preds = %326, %290 %q.i28.i.1 = phi double [ %325, %290 ], [ %q.i28.i.0, %326 ] %331 = fmul double %r.i.i.5, %q.i28.i.1 %332 = fdiv double 1.000000e+00, %1 %333 = fsub double %331, %332 %334 = fmul double %333, 0x3FE45F306DC9C883 %335 = fadd double %16, %334 br label %__nv_y1.exit 336: ; preds = %5 %337 = fcmp ugt double %1, 0x4009B510EC2ADC83 br i1 %337, label %365, label %338 338: ; preds = %336 %339 = fadd double %1, 0xC00193BED4DFF243 %340 = fadd double %339, 0x3C8BD1E50D219BFD %341 = call double @llvm.fma.f64(double %340, double noundef 0xBE2B87B0BE2AA150, double noundef 0x3E4833AAE4D8B975) %342 = call double @llvm.fma.f64(double %341, double %340, double noundef 0xBE44E279B423E68F) %343 = call double @llvm.fma.f64(double %342, double %340, double noundef 0x3E129DC6A747EB4F) %344 = call double @llvm.fma.f64(double %343, double %340, double noundef 0xBE61D15534496CD8) %345 = call double @llvm.fma.f64(double %344, double %340, double noundef 0x3E7EEC8D48FECE00) %346 = call double @llvm.fma.f64(double %345, double %340, double noundef 0xBE8D1180AF70A134) %347 = call double @llvm.fma.f64(double %346, double %340, double noundef 0x3E9C8386A0EA1388) %348 = call double @llvm.fma.f64(double %347, double %340, double noundef 0xBEB01A014E7F3250) %349 = call double @llvm.fma.f64(double %348, double %340, double noundef 0x3EC1FB752010A320) %350 = call double @llvm.fma.f64(double %349, double %340, double noundef 0xBED3AA0AFF4E332B) %351 = call double @llvm.fma.f64(double %350, double %340, double noundef 0x3EE584A6C77F6700) %352 = call double @llvm.fma.f64(double %351, double %340, double noundef 0xBEF794C520FC2EBB) %353 = call double @llvm.fma.f64(double %352, double %340, double noundef 0x3F09D18D2D35CC71) %354 = call double @llvm.fma.f64(double %353, double %340, double noundef 0xBF1C3FB7315C4599) %355 = call double @llvm.fma.f64(double %354, double %340, double noundef 0x3F2EEA7ADECCE927) %356 = call double @llvm.fma.f64(double %355, double %340, double noundef 0xBF40B2D85257446F) %357 = call double @llvm.fma.f64(double %356, double %340, double noundef 0x3F517AB4B1FE5D5B) %358 = call double @llvm.fma.f64(double %357, double %340, double noundef 0xBF65429DC6516C0D) %359 = call double @llvm.fma.f64(double %358, double %340, double noundef 0x3F7E671C7D0B090B) %360 = call double @llvm.fma.f64(double %359, double %340, double noundef 0xBF73A6DEC36FB27C) %361 = call double @llvm.fma.f64(double %360, double %340, double noundef 0xBFA0D2AF4E931FD1) %362 = call double @llvm.fma.f64(double %361, double %340, double noundef 0xBFBE56F82217B964) %363 = call double @llvm.fma.f64(double %362, double %340, double noundef 0x3FE0AA48442F014B) %364 = fmul double %340, %363 br label %__nv_y1.exit 365: ; preds = %336 %366 = fcmp ugt double %1, 0x401C0D26D5A541CB br i1 %366, label %391, label %367 367: ; preds = %365 %368 = fadd double %1, 0xC015B7FE4E87B02E %369 = fadd double %368, 0xBCBDFE7BAC228E8C %370 = call double @llvm.fma.f64(double %369, double noundef 0x3CBA3C76069F1D8C, double noundef 0x3CC69A30996793E2) %371 = call double @llvm.fma.f64(double %370, double %369, double noundef 0xBCDDD8432FE756E7) %372 = call double @llvm.fma.f64(double %371, double %369, double noundef 0xBD143158EEE220F7) %373 = call double @llvm.fma.f64(double %372, double %369, double noundef 0x3D28D44491230F5A) %374 = call double @llvm.fma.f64(double %373, double %369, double noundef 0xBD438842EAF4EDBC) %375 = call double @llvm.fma.f64(double %374, double %369, double noundef 0x3D74958DAFBFAF5A) %376 = call double @llvm.fma.f64(double %375, double %369, double noundef 0xBD9449A60E664848) %377 = call double @llvm.fma.f64(double %376, double %369, double noundef 0x3D838BC8CD594A76) %378 = call double @llvm.fma.f64(double %377, double %369, double noundef 0xBDFA798002141323) %379 = call double @llvm.fma.f64(double %378, double %369, double noundef 0x3E380B4198956AAA) %380 = call double @llvm.fma.f64(double %379, double %369, double noundef 0x3E5B62B5F21BACD4) %381 = call double @llvm.fma.f64(double %380, double %369, double noundef 0xBEA255E729FB6AAE) %382 = call double @llvm.fma.f64(double %381, double %369, double noundef 0xBEC80618F6BAE5AA) %383 = call double @llvm.fma.f64(double %382, double %369, double noundef 0x3F085B940F8E8D36) %384 = call double @llvm.fma.f64(double %383, double %369, double noundef 0x3F2337C7E10E14E8) %385 = call double @llvm.fma.f64(double %384, double %369, double noundef 0xBF61BE6DB99332CA) %386 = call double @llvm.fma.f64(double %385, double %369, double noundef 0xBF710A329E2BE9B8) %387 = call double @llvm.fma.f64(double %386, double %369, double noundef 0x3FAA15D92DFE3FCF) %388 = call double @llvm.fma.f64(double %387, double %369, double noundef 0x3FA00B9F8571C9BE) %389 = call double @llvm.fma.f64(double %388, double %369, double noundef 0xBFD5C7C556F0C19A) %390 = fmul double %369, %389 br label %__nv_y1.exit 391: ; preds = %365 %392 = fcmp ugt double %1, 0x4022585C739ACDDD br i1 %392, label %412, label %393 393: ; preds = %391 %394 = fadd double %1, 0xC0213127AE6169B4 %395 = fadd double %394, 0xBCB479CC068D9046 %396 = call double @llvm.fma.f64(double %395, double noundef 0x3CB09CCC22945996, double noundef 0xBD43515F67644276) %397 = call double @llvm.fma.f64(double %396, double %395, double noundef 0xBD72C5B978E9F5C7) %398 = call double @llvm.fma.f64(double %397, double %395, double noundef 0x3DBEC1151613913C) %399 = call double @llvm.fma.f64(double %398, double %395, double noundef 0x3DE9E38D13C4A824) %400 = call double @llvm.fma.f64(double %399, double %395, double noundef 0xBE341E75E1088EB5) %401 = call double @llvm.fma.f64(double %400, double %395, double noundef 0xBE5A384EBB13CFE1) %402 = call double @llvm.fma.f64(double %401, double %395, double noundef 0x3EA2BECB27F8C8F8) %403 = call double @llvm.fma.f64(double %402, double %395, double noundef 0x3EC176E72B989FD8) %404 = call double @llvm.fma.f64(double %403, double %395, double noundef 0xBF06F7BAB102F822) %405 = call double @llvm.fma.f64(double %404, double %395, double noundef 0xBF1B50D7E1D278E1) %406 = call double @llvm.fma.f64(double %405, double %395, double noundef 0x3F607A678D60004F) %407 = call double @llvm.fma.f64(double %406, double %395, double noundef 0x3F63CED2A2E69115) %408 = call double @llvm.fma.f64(double %407, double %395, double noundef 0xBFA6395DFE49FCD4) %409 = call double @llvm.fma.f64(double %408, double %395, double noundef 0xBF902B3933CF21B1) %410 = call double @llvm.fma.f64(double %409, double %395, double noundef 0x3FD15F993FCEAB5C) %411 = fmul double %395, %410 br label %__nv_y1.exit 412: ; preds = %391 %413 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([12 x i8], [12 x i8]* @.str.1, i32 0, i32 0)) #135 %414 = icmp eq i32 %413, 200 br i1 %414, label %421, label %415 415: ; preds = %412 %416 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([12 x i8], [12 x i8]* @.str.1, i32 0, i32 0)) #135 %417 = icmp eq i32 %416, 350 br i1 %417, label %421, label %418 418: ; preds = %415 %419 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([12 x i8], [12 x i8]* @.str.1, i32 0, i32 0)) #135 %420 = icmp eq i32 %419, 370 br i1 %420, label %421, label %423 421: ; preds = %418, %415, %412 %422 = fcmp oeq double %1, 0x7FF0000000000000 br label %__nv_isinfd.exit.i 423: ; preds = %418 %424 = call i32 @llvm.nvvm.d2i.lo(double %1) #135 %425 = call i32 @llvm.nvvm.d2i.hi(double %1) #135 %426 = and i32 %425, 2147483647 %427 = icmp eq i32 %426, 2146435072 %428 = icmp eq i32 %424, 0 %429 = select i1 %427, i1 %428, i1 false br label %__nv_isinfd.exit.i __nv_isinfd.exit.i: ; preds = %423, %421 %.014.in = phi i1 [ %422, %421 ], [ %429, %423 ] br i1 %.014.in, label %__nv_y1.exit, label %430 430: ; preds = %__nv_isinfd.exit.i %431 = call double @llvm.nvvm.rcp.approx.ftz.d(double %1) #135 %432 = fneg double %1 %433 = call double @llvm.fma.f64(double %432, double %431, double noundef 1.000000e+00) %434 = call double @llvm.fma.f64(double %433, double %433, double %433) %435 = call double @llvm.fma.f64(double %434, double %431, double %431) %436 = fmul double %435, %435 %437 = call double @llvm.fma.f64(double %436, double noundef 0x40D13DB326ECEBFE, double noundef 0xC09C26E89385D5B1) %438 = call double @llvm.fma.f64(double %437, double %436, double noundef 0x405C6AB923C6F55E) %439 = call double @llvm.fma.f64(double %438, double %436, double noundef 0xC01E61EAF3BD2FA1) %440 = call double @llvm.fma.f64(double %439, double %436, double noundef 0x3FE9BF15D9B97DD1) %441 = call double @llvm.fma.f64(double %440, double %436, double noundef 0xBFC8BFECF93D7D19) %442 = call double @llvm.fma.f64(double %441, double %436, double noundef 0x3FC7FFFFF756AA6C) %443 = call double @llvm.fma.f64(double %442, double %436, double noundef 0x3FF0000000003646) %444 = call double @llvm.fma.f64(double %436, double noundef 0xC1943281A050209C, double noundef 0x416024E99BA46E7B) %445 = call double @llvm.fma.f64(double %444, double %436, double noundef 0xC11A6875D7DFBD65) %446 = call double @llvm.fma.f64(double %445, double %436, double noundef 0x40D032C041790233) %447 = call double @llvm.fma.f64(double %446, double %436, double noundef 0xC0839F895BC22946) %448 = call double @llvm.fma.f64(double %447, double %436, double noundef 0x403E77CC78ECD2D8) %449 = call double @llvm.fma.f64(double %448, double %436, double noundef 0xC002F368D0117BE9) %450 = call double @llvm.fma.f64(double %449, double %436, double noundef 0x3FD7BCC786009A25) %451 = call double @llvm.fma.f64(double %450, double %436, double noundef 0xBFC4FFFFFC51BC7A) %452 = call double @llvm.fma.f64(double %451, double %436, double noundef 0x3FD7FFFFFFFFB5EA) %453 = call double @llvm.fma.f64(double %452, double %435, double %1) %454 = call double @llvm.nvvm.rsqrt.approx.d(double %1) #135 %455 = fmul double %454, 0x3FE9884533D43651 %456 = fmul double %455, %443 %457 = fmul double %453, 0x3FE45F306DC9C883 %458 = call i32 @llvm.nvvm.d2i.rn(double %457) #135 store i32 %458, i32* %q.i.i.i, align 4, !noalias !219 %459 = sitofp i32 %458 to double %460 = fneg double %459 %461 = call double @llvm.fma.f64(double %460, double noundef 0x3FF921FB54442D18, double %453) %462 = call double @llvm.fma.f64(double %460, double noundef 0x3C91A62633145C00, double %461) %463 = call double @llvm.fma.f64(double %460, double noundef 0x397B839A252049C0, double %462) %464 = call double @llvm.fabs.f64(double %453) %465 = fcmp ult double %464, 0x41E0000000000000 br i1 %465, label %__internal_trig_reduction_kerneld.exit.i.i, label %466 466: ; preds = %430 %467 = call fastcc double @__internal_trig_reduction_slowpathd(double %453, i32* noalias nocapture nofree noundef nonnull writeonly align 4 dereferenceable(4) %q.i.i.i) #135 %.pre = load i32, i32* %q.i.i.i, align 4 br label %__internal_trig_reduction_kerneld.exit.i.i __internal_trig_reduction_kerneld.exit.i.i: ; preds = %466, %430 %468 = phi i32 [ %.pre, %466 ], [ %458, %430 ] %t.i.i.i.0 = phi double [ %467, %466 ], [ %463, %430 ] %469 = and i32 %468, 3 %470 = uitofp i32 %469 to double %471 = fadd double %t.i.i.i.0, 0xC00F6A7A2955385E %472 = fmul double %470, 0x3FF921FB54442D18 %473 = fadd double %471, %472 %474 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([12 x i8], [12 x i8]* @.str.1, i32 0, i32 0)) #135 %475 = icmp eq i32 %474, 350 br i1 %475, label %479, label %476 476: ; preds = %__internal_trig_reduction_kerneld.exit.i.i %477 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([12 x i8], [12 x i8]* @.str.1, i32 0, i32 0)) #135 %478 = icmp eq i32 %477, 370 br i1 %478, label %479, label %538 479: ; preds = %476, %__internal_trig_reduction_kerneld.exit.i.i %480 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([12 x i8], [12 x i8]* @.str.1, i32 0, i32 0)) #135 %481 = icmp eq i32 %480, 200 br i1 %481, label %488, label %482 482: ; preds = %479 %483 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([12 x i8], [12 x i8]* @.str.1, i32 0, i32 0)) #135 %484 = icmp eq i32 %483, 350 br i1 %484, label %488, label %485 485: ; preds = %482 %486 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([12 x i8], [12 x i8]* @.str.1, i32 0, i32 0)) #135 %487 = icmp eq i32 %486, 370 br i1 %487, label %488, label %491 488: ; preds = %485, %482, %479 %489 = call double @llvm.fabs.f64(double %473) %490 = fcmp oeq double %489, 0x7FF0000000000000 br label %__nv_isinfd.exit.i.i.i.i 491: ; preds = %485 %492 = call i32 @llvm.nvvm.d2i.lo(double %473) #135 %493 = call i32 @llvm.nvvm.d2i.hi(double %473) #135 %494 = and i32 %493, 2147483647 %495 = icmp eq i32 %494, 2146435072 %496 = icmp eq i32 %492, 0 %497 = select i1 %495, i1 %496, i1 false br label %__nv_isinfd.exit.i.i.i.i __nv_isinfd.exit.i.i.i.i: ; preds = %491, %488 %.03.in = phi i1 [ %490, %488 ], [ %497, %491 ] br i1 %.03.in, label %498, label %500 498: ; preds = %__nv_isinfd.exit.i.i.i.i %499 = fmul double %473, 0.000000e+00 br label %__internal_trig_reduction_kerneld.exit.i.i.i.i 500: ; preds = %__nv_isinfd.exit.i.i.i.i %501 = fmul double %473, 0x3FE45F306DC9C883 %502 = call i32 @llvm.nvvm.d2i.rn(double %501) #135 store i32 %502, i32* %q.i.i.i.i.i, align 4, !noalias !219 %503 = sitofp i32 %502 to double %504 = fneg double %503 %505 = call double @llvm.fma.f64(double %504, double noundef 0x3FF921FB54442D18, double %473) %506 = call double @llvm.fma.f64(double %504, double noundef 0x3C91A62633145C00, double %505) %507 = call double @llvm.fma.f64(double %504, double noundef 0x397B839A252049C0, double %506) %508 = call double @llvm.fabs.f64(double %473) %509 = fcmp ult double %508, 0x41E0000000000000 br i1 %509, label %__internal_trig_reduction_kerneld.exit.i.i.i.i, label %510 510: ; preds = %500 %511 = call fastcc double @__internal_trig_reduction_slowpathd(double %473, i32* noalias nocapture nofree noundef nonnull writeonly align 4 dereferenceable(4) %q.i.i.i.i.i) #135 %.pre28 = load i32, i32* %q.i.i.i.i.i, align 4 br label %__internal_trig_reduction_kerneld.exit.i.i.i.i __internal_trig_reduction_kerneld.exit.i.i.i.i: ; preds = %500, %510, %498 %i.i.i.i.i.0 = phi i32 [ 0, %498 ], [ %.pre28, %510 ], [ %502, %500 ] %.02 = phi double [ %499, %498 ], [ %511, %510 ], [ %507, %500 ] %512 = fmul double %.02, %.02 %513 = call double @llvm.fma.f64(double %512, double noundef 0xBDA8FF8320FD8164, double noundef 0x3E21EEA7C1EF8528) %514 = call double @llvm.fma.f64(double %513, double %512, double noundef 0xBE927E4F8E06E6D9) %515 = call double @llvm.fma.f64(double %514, double %512, double noundef 0x3EFA01A019DDBCE9) %516 = call double @llvm.fma.f64(double %515, double %512, double noundef 0xBF56C16C16C15D47) %517 = call double @llvm.fma.f64(double %516, double %512, double noundef 0x3FA5555555555551) %518 = call double @llvm.fma.f64(double %517, double %512, double noundef -5.000000e-01) %519 = call double @llvm.fma.f64(double %518, double %512, double noundef 1.000000e+00) %520 = call double @llvm.fma.f64(double %512, double noundef 0x3DE5DB65F9785EBA, double noundef 0xBE5AE5F12CB0D246) %521 = call double @llvm.fma.f64(double %520, double %512, double noundef 0x3EC71DE369ACE392) %522 = call double @llvm.fma.f64(double %521, double %512, double noundef 0xBF2A01A019DB62A1) %523 = call double @llvm.fma.f64(double %522, double %512, double noundef 0x3F81111111110818) %524 = call double @llvm.fma.f64(double %523, double %512, double noundef 0xBFC5555555555554) %525 = call double @llvm.fma.f64(double %524, double %512, double noundef 0.000000e+00) %526 = call double @llvm.fma.f64(double %525, double %.02, double %.02) %527 = call i32 @llvm.nvvm.d2i.hi(double %526) #135 %528 = call i32 @llvm.nvvm.d2i.lo(double %526) #135 %529 = xor i32 %527, -2147483648 %530 = call double @llvm.nvvm.lohi.i2d(i32 %528, i32 %529) #135 %531 = and i32 %i.i.i.i.i.0, 1 %.not75 = icmp eq i32 %531, 0 %spec.select4 = select i1 %.not75, double %519, double %530 %532 = and i32 %i.i.i.i.i.0, 2 %.not76 = icmp eq i32 %532, 0 br i1 %.not76, label %__internal_cos_offset.exit.i, label %533 533: ; preds = %__internal_trig_reduction_kerneld.exit.i.i.i.i %534 = call i32 @llvm.nvvm.d2i.hi(double %spec.select4) #135 %535 = call i32 @llvm.nvvm.d2i.lo(double %spec.select4) #135 %536 = xor i32 %534, -2147483648 %537 = call double @llvm.nvvm.lohi.i2d(i32 %535, i32 %536) #135 br label %__internal_cos_offset.exit.i 538: ; preds = %476 %539 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([12 x i8], [12 x i8]* @.str.1, i32 0, i32 0)) #135 %540 = icmp eq i32 %539, 200 br i1 %540, label %547, label %541 541: ; preds = %538 %542 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([12 x i8], [12 x i8]* @.str.1, i32 0, i32 0)) #135 %543 = icmp eq i32 %542, 350 br i1 %543, label %547, label %544 544: ; preds = %541 %545 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([12 x i8], [12 x i8]* @.str.1, i32 0, i32 0)) #135 %546 = icmp eq i32 %545, 370 br i1 %546, label %547, label %550 547: ; preds = %544, %541, %538 %548 = call double @llvm.fabs.f64(double %473) %549 = fcmp oeq double %548, 0x7FF0000000000000 br label %__nv_isinfd.exit.i.i.i 550: ; preds = %544 %551 = call i32 @llvm.nvvm.d2i.lo(double %473) #135 %552 = call i32 @llvm.nvvm.d2i.hi(double %473) #135 %553 = and i32 %552, 2147483647 %554 = icmp eq i32 %553, 2146435072 %555 = icmp eq i32 %551, 0 %556 = select i1 %554, i1 %555, i1 false br label %__nv_isinfd.exit.i.i.i __nv_isinfd.exit.i.i.i: ; preds = %550, %547 %.04.in = phi i1 [ %549, %547 ], [ %556, %550 ] br i1 %.04.in, label %557, label %559 557: ; preds = %__nv_isinfd.exit.i.i.i %558 = fmul double %473, 0.000000e+00 br label %__internal_sin_cos_kerneld.exit.i.i.i 559: ; preds = %__nv_isinfd.exit.i.i.i %560 = fmul double %473, 0x3FE45F306DC9C883 %561 = call i32 @llvm.nvvm.d2i.rn(double %560) #135 store i32 %561, i32* %q.i.i.i.i, align 4, !noalias !219 %562 = sitofp i32 %561 to double %563 = fneg double %562 %564 = call double @llvm.fma.f64(double %563, double noundef 0x3FF921FB54442D18, double %473) %565 = call double @llvm.fma.f64(double %563, double noundef 0x3C91A62633145C00, double %564) %566 = call double @llvm.fma.f64(double %563, double noundef 0x397B839A252049C0, double %565) %567 = call double @llvm.fabs.f64(double %473) %568 = fcmp ult double %567, 0x41E0000000000000 br i1 %568, label %__internal_sin_cos_kerneld.exit.i.i.i, label %569 569: ; preds = %559 %570 = call fastcc double @__internal_trig_reduction_slowpathd(double %473, i32* noalias nocapture nofree noundef nonnull writeonly align 4 dereferenceable(4) %q.i.i.i.i) #135 %.pre27 = load i32, i32* %q.i.i.i.i, align 4 br label %__internal_sin_cos_kerneld.exit.i.i.i __internal_sin_cos_kerneld.exit.i.i.i: ; preds = %559, %569, %557 %i.i.i.i.0 = phi i32 [ 0, %557 ], [ %.pre27, %569 ], [ %561, %559 ] %z.i.i.i.0 = phi double [ %558, %557 ], [ %570, %569 ], [ %566, %559 ] %571 = add nsw i32 %i.i.i.i.0, 1 %572 = and i32 %571, 1 %573 = shl nuw nsw i32 %572, 3 %574 = getelementptr inbounds [16 x double], [16 x double] addrspace(1)* @__cudart_sin_cos_coeffs, i32 0, i32 %573 %575 = fmul double %z.i.i.i.0, %z.i.i.i.0 %.not = icmp eq i32 %572, 0 %576 = select i1 %.not, double 0x3DE5DB65F9785EBA, double 0xBDA8FF8320FD8164 %577 = getelementptr inbounds double, double addrspace(1)* %574, i32 1 %578 = load double, double addrspace(1)* %577, align 8 %579 = call double @llvm.fma.f64(double noundef %576, double %575, double %578) %580 = getelementptr inbounds double, double addrspace(1)* %574, i32 2 %581 = load double, double addrspace(1)* %580, align 8 %582 = call double @llvm.fma.f64(double %579, double %575, double %581) %583 = getelementptr inbounds double, double addrspace(1)* %574, i32 3 %584 = load double, double addrspace(1)* %583, align 8 %585 = call double @llvm.fma.f64(double %582, double %575, double %584) %586 = getelementptr inbounds double, double addrspace(1)* %574, i32 4 %587 = load double, double addrspace(1)* %586, align 8 %588 = call double @llvm.fma.f64(double %585, double %575, double %587) %589 = getelementptr inbounds double, double addrspace(1)* %574, i32 5 %590 = load double, double addrspace(1)* %589, align 8 %591 = call double @llvm.fma.f64(double %588, double %575, double %590) %592 = getelementptr inbounds double, double addrspace(1)* %574, i32 6 %593 = load double, double addrspace(1)* %592, align 8 %594 = call double @llvm.fma.f64(double %591, double %575, double %593) %595 = call double @llvm.fma.f64(double %594, double %z.i.i.i.0, double %z.i.i.i.0) %596 = call double @llvm.fma.f64(double %594, double %575, double noundef 1.000000e+00) %spec.select5 = select i1 %.not, double %595, double %596 %597 = and i32 %571, 2 %.not50 = icmp eq i32 %597, 0 %598 = call double @llvm.fma.f64(double %spec.select5, double noundef -1.000000e+00, double noundef 0.000000e+00) %.1 = select i1 %.not50, double %spec.select5, double %598 br label %__internal_cos_offset.exit.i __internal_cos_offset.exit.i: ; preds = %__internal_trig_reduction_kerneld.exit.i.i.i.i, %533, %__internal_sin_cos_kerneld.exit.i.i.i %.01 = phi double [ %.1, %__internal_sin_cos_kerneld.exit.i.i.i ], [ %537, %533 ], [ %spec.select4, %__internal_trig_reduction_kerneld.exit.i.i.i.i ] %599 = fmul double %456, %.01 br label %__nv_y1.exit __nv_y1.exit: ; preds = %__nv_log.exit.i, %367, %__internal_cos_offset.exit.i, %__nv_isinfd.exit.i, %393, %338, %3 %r.i.5 = phi double [ %4, %3 ], [ %335, %__nv_log.exit.i ], [ %364, %338 ], [ %390, %367 ], [ %411, %393 ], [ %599, %__internal_cos_offset.exit.i ], [ 0.000000e+00, %__nv_isinfd.exit.i ] %600 = fcmp ole double %a, 0.000000e+00 %601 = fcmp oeq double %a, 0.000000e+00 %r.i.6 = select i1 %601, double 0xFFF0000000000000, double 0xFFF8000000000000 %r.i.7 = select i1 %600, double %r.i.6, double %r.i.5 %602 = fcmp ole double %1, 0x3FE97F4A8F9D3F28 br i1 %602, label %603, label %933 603: ; preds = %__nv_y1.exit %604 = fmul double %a, %a %605 = call double @llvm.fma.f64(double %604, double noundef 0x3C8EFBD0A1B77C65, double noundef 0xBD13098C51C18514) %606 = call double @llvm.fma.f64(double %605, double %604, double noundef 0x3D923102D2F5F2F5) %607 = call double @llvm.fma.f64(double %606, double %604, double noundef 0xBE0A5F2DEE7D526E) %608 = call double @llvm.fma.f64(double %607, double %604, double noundef 0x3E7BB77E758B38AF) %609 = call double @llvm.fma.f64(double %608, double %604, double noundef 0xBEE3D1A206EC4F36) %610 = call double @llvm.fma.f64(double %609, double %604, double noundef 0x3F4183DCD3ED6294) %611 = call double @llvm.fma.f64(double %610, double %604, double noundef 0xBF903921CF04F123) %612 = call double @llvm.fma.f64(double %611, double %604, double noundef 0x3FC5DB69D7753176) %613 = fadd double %604, 0xBFDBA96740000000 %614 = fadd double %613, 0x3E15A30C80000000 %615 = fmul double %614, %612 %616 = call i32 @llvm.nvvm.d2i.hi(double %1) #135 %617 = call i32 @llvm.nvvm.d2i.lo(double %1) #135 %618 = icmp slt i32 %616, 1048576 br i1 %618, label %619, label %623 619: ; preds = %603 %620 = fmul double %1, 0x4350000000000000 %621 = call i32 @llvm.nvvm.d2i.hi(double %620) #135 %622 = call i32 @llvm.nvvm.d2i.lo(double %620) #135 br label %623 623: ; preds = %619, %603 %.021 = phi double [ %620, %619 ], [ %1, %603 ] %ihi.i.i50.0 = phi i32 [ %621, %619 ], [ %616, %603 ] %ilo.i.i51.0 = phi i32 [ %622, %619 ], [ %617, %603 ] %e.i.i52.0 = phi i32 [ -1077, %619 ], [ -1023, %603 ] %624 = add i32 %ihi.i.i50.0, -1 %625 = icmp ult i32 %624, 2146435071 br i1 %625, label %626, label %675 626: ; preds = %623 %627 = lshr i32 %ihi.i.i50.0, 20 %628 = add nsw i32 %e.i.i52.0, %627 %629 = and i32 %ihi.i.i50.0, -2146435073 %630 = or i32 %629, 1072693248 %631 = call double @llvm.nvvm.lohi.i2d(i32 %ilo.i.i51.0, i32 %630) #135 %632 = icmp sgt i32 %630, 1073127582 br i1 %632, label %633, label %639 633: ; preds = %626 %634 = call i32 @llvm.nvvm.d2i.lo(double %631) #135 %635 = call i32 @llvm.nvvm.d2i.hi(double %631) #135 %636 = add i32 %635, -1048576 %637 = call double @llvm.nvvm.lohi.i2d(i32 %634, i32 %636) #135 %638 = add nsw i32 %628, 1 br label %639 639: ; preds = %633, %626 %m.i.i42.0 = phi double [ %637, %633 ], [ %631, %626 ] %e.i.i52.1 = phi i32 [ %638, %633 ], [ %628, %626 ] %640 = fadd double %m.i.i42.0, -1.000000e+00 %641 = fadd double %m.i.i42.0, 1.000000e+00 %642 = call double @llvm.nvvm.rcp.approx.ftz.d(double %641) #135 %643 = fneg double %641 %644 = call double @llvm.fma.f64(double %643, double %642, double noundef 1.000000e+00) %645 = call double @llvm.fma.f64(double %644, double %644, double %644) %646 = call double @llvm.fma.f64(double %645, double %642, double %642) %647 = fmul double %640, %646 %648 = fadd double %647, %647 %649 = fmul double %648, %648 %650 = call double @llvm.fma.f64(double %649, double noundef 0x3EB1380B3AE80F1E, double noundef 0x3ED0EE258B7A8B04) %651 = call double @llvm.fma.f64(double %650, double %649, double noundef 0x3EF3B2669F02676F) %652 = call double @llvm.fma.f64(double %651, double %649, double noundef 0x3F1745CBA9AB0956) %653 = call double @llvm.fma.f64(double %652, double %649, double noundef 0x3F3C71C72D1B5154) %654 = call double @llvm.fma.f64(double %653, double %649, double noundef 0x3F624924923BE72D) %655 = call double @llvm.fma.f64(double %654, double %649, double noundef 0x3F8999999999A3C4) %656 = call double @llvm.fma.f64(double %655, double %649, double noundef 0x3FB5555555555554) %657 = fsub double %640, %648 %658 = fmul double %657, 2.000000e+00 %659 = fneg double %648 %660 = call double @llvm.fma.f64(double %659, double %640, double %658) %661 = fmul double %646, %660 %662 = fmul double %649, %656 %663 = call double @llvm.fma.f64(double %662, double %648, double %661) %664 = xor i32 %e.i.i52.1, -2147483648 %665 = call double @llvm.nvvm.lohi.i2d(i32 %664, i32 noundef 1127219200) #135 %666 = call double @llvm.nvvm.lohi.i2d(i32 noundef -2147483648, i32 noundef 1127219200) #135 %667 = fsub double %665, %666 %668 = call double @llvm.fma.f64(double %667, double noundef 0x3FE62E42FEFA39EF, double %648) %669 = fneg double %667 %670 = call double @llvm.fma.f64(double %669, double noundef 0x3FE62E42FEFA39EF, double %668) %671 = fsub double %670, %648 %672 = fsub double %663, %671 %673 = call double @llvm.fma.f64(double %667, double noundef 0x3C7ABC9E3B39803F, double %672) %674 = fadd double %668, %673 br label %__nv_log.exit.i102 675: ; preds = %623 %676 = call double @llvm.fma.f64(double %.021, double noundef 0x7FF0000000000000, double noundef 0x7FF0000000000000) %677 = call i32 @llvm.nvvm.d2i.hi(double %.021) #135 %678 = bitcast i32 %677 to float %679 = fcmp oeq float %678, 0.000000e+00 %q.i3.i.0 = select i1 %679, double 0xFFF0000000000000, double %676 br label %__nv_log.exit.i102 __nv_log.exit.i102: ; preds = %675, %639 %q.i3.i.1 = phi double [ %674, %639 ], [ %q.i3.i.0, %675 ] %680 = fmul double %q.i3.i.1, 0x3FE45F306DC9C883 %681 = fcmp ugt double %1, 0x400FB319F277BBE5 br i1 %681, label %702, label %682 682: ; preds = %__nv_log.exit.i102 %683 = fadd double %1, 0xC0033D152E971B40 %684 = fadd double %683, 0x3CA0F539D7DA258E %685 = call double @llvm.fma.f64(double %684, double noundef 0xBCC0D18564C48C61, double noundef 0xBCFCF8F9A8C294BC) %686 = call double @llvm.fma.f64(double %685, double %684, double noundef 0x3D3FAB983CAE498B) %687 = call double @llvm.fma.f64(double %686, double %684, double noundef 0x3D7CD7C018579B88) %688 = call double @llvm.fma.f64(double %687, double %684, double noundef 0xBDBBDD2342D64FDD) %689 = call double @llvm.fma.f64(double %688, double %684, double noundef 0xBDF5C2D9416B1E2B) %690 = call double @llvm.fma.f64(double %689, double %684, double noundef 0x3E32951D73174DD5) %691 = call double @llvm.fma.f64(double %690, double %684, double noundef 0x3E67FF99802CAEB5) %692 = call double @llvm.fma.f64(double %691, double %684, double noundef 0xBEA1CCE305C4C9F7) %693 = call double @llvm.fma.f64(double %692, double %684, double noundef 0xBED232C77E29E1BB) %694 = call double @llvm.fma.f64(double %693, double %684, double noundef 0x3F06ED3B9F0EF757) %695 = call double @llvm.fma.f64(double %694, double %684, double noundef 0x3F315382BA096A62) %696 = call double @llvm.fma.f64(double %695, double %684, double noundef 0xBF61F992590D1AE4) %697 = call double @llvm.fma.f64(double %696, double %684, double noundef 0xBF81BB1CBE1A465F) %698 = call double @llvm.fma.f64(double %697, double %684, double noundef 0x3FACFAE864368D84) %699 = call double @llvm.fma.f64(double %698, double %684, double noundef 0x3FBBA1DEEA0294A3) %700 = call double @llvm.fma.f64(double %699, double %684, double noundef 0xBFE09CDB36551280) %701 = fmul double %684, %700 br label %__nv_j0.exit.i 702: ; preds = %__nv_log.exit.i102 %703 = fcmp ugt double %1, 0x401C58FD1A62F5EC br i1 %703, label %724, label %704 704: ; preds = %702 %705 = fadd double %1, 0xC016148F5B2C2E45 %706 = fadd double %705, 0xBC975054CD60A517 %707 = call double @llvm.fma.f64(double %706, double noundef 0x3CBCB0A8F126B343, double noundef 0x3CF83FD1F333EB61) %708 = call double @llvm.fma.f64(double %707, double %706, double noundef 0xBD4100E33E3FB413) %709 = call double @llvm.fma.f64(double %708, double %706, double noundef 0xBD7846076D004627) %710 = call double @llvm.fma.f64(double %709, double %706, double noundef 0x3DBE2F1D4F90720D) %711 = call double @llvm.fma.f64(double %710, double %706, double noundef 0x3DF1D03B1E4A119B) %712 = call double @llvm.fma.f64(double %711, double %706, double noundef 0xBE341D72B1B3BCE9) %713 = call double @llvm.fma.f64(double %712, double %706, double noundef 0xBE62DA37CE2A9EF8) %714 = call double @llvm.fma.f64(double %713, double %706, double noundef 0x3EA32E6D9974F763) %715 = call double @llvm.fma.f64(double %714, double %706, double noundef 0x3ECAD77D744A1879) %716 = call double @llvm.fma.f64(double %715, double %706, double noundef 0xBF0863F481A37337) %717 = call double @llvm.fma.f64(double %716, double %706, double noundef 0xBF26F641F418F0F4) %718 = call double @llvm.fma.f64(double %717, double %706, double noundef 0x3F627E31FE9A969E) %719 = call double @llvm.fma.f64(double %718, double %706, double noundef 0x3F72F7FFE9025628) %720 = call double @llvm.fma.f64(double %719, double %706, double noundef 0xBFAB2150CB41E8BF) %721 = call double @llvm.fma.f64(double %720, double %706, double noundef 0xBF9F8F72E7A848DE) %722 = call double @llvm.fma.f64(double %721, double %706, double noundef 0x3FD5C6E60A097823) %723 = fmul double %706, %722 br label %__nv_j0.exit.i 724: ; preds = %702 %725 = fcmp ugt double %1, 0x402471FCB6A7A8C0 br i1 %725, label %746, label %726 726: ; preds = %724 %727 = fadd double %1, 0xC0214EB56CCCDECA %728 = fadd double %727, 0x3CB51970714C7C25 %729 = call double @llvm.fma.f64(double %728, double noundef 0xBCBDB7FFCF659E24, double noundef 0xBCF4B3A71AAAC629) %730 = call double @llvm.fma.f64(double %729, double %728, double noundef 0x3D417EC150ECDCE7) %731 = call double @llvm.fma.f64(double %730, double %728, double noundef 0x3D7438F5EA1D10B2) %732 = call double @llvm.fma.f64(double %731, double %728, double noundef 0xBDBEDAE7EC2C9E87) %733 = call double @llvm.fma.f64(double %732, double %728, double noundef 0xBDECADD2C4B91F58) %734 = call double @llvm.fma.f64(double %733, double %728, double noundef 0x3E34582C8EE12204) %735 = call double @llvm.fma.f64(double %734, double %728, double noundef 0x3E5CEDA451DD20F8) %736 = call double @llvm.fma.f64(double %735, double %728, double noundef 0xBEA30E8CC3165E2F) %737 = call double @llvm.fma.f64(double %736, double %728, double noundef 0xBEC3324842BB1A2E) %738 = call double @llvm.fma.f64(double %737, double %728, double noundef 0x3F07800BC54FBDDB) %739 = call double @llvm.fma.f64(double %738, double %728, double noundef 0x3F1D79605276949A) %740 = call double @llvm.fma.f64(double %739, double %728, double noundef 0xBF60E0D60385A629) %741 = call double @llvm.fma.f64(double %740, double %728, double noundef 0xBF648E63600D82F3) %742 = call double @llvm.fma.f64(double %741, double %728, double noundef 0x3FA68B984EC6493A) %743 = call double @llvm.fma.f64(double %742, double %728, double noundef 0x3F900F7FCF183E0B) %744 = call double @llvm.fma.f64(double %743, double %728, double noundef 0xBFD15F7977A772D4) %745 = fmul double %728, %744 br label %__nv_j0.exit.i 746: ; preds = %724 %747 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([12 x i8], [12 x i8]* @.str.1, i32 0, i32 0)) #135 %748 = icmp eq i32 %747, 200 br i1 %748, label %755, label %749 749: ; preds = %746 %750 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([12 x i8], [12 x i8]* @.str.1, i32 0, i32 0)) #135 %751 = icmp eq i32 %750, 350 br i1 %751, label %755, label %752 752: ; preds = %749 %753 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([12 x i8], [12 x i8]* @.str.1, i32 0, i32 0)) #135 %754 = icmp eq i32 %753, 370 br i1 %754, label %755, label %757 755: ; preds = %752, %749, %746 %756 = fcmp oeq double %1, 0x7FF0000000000000 br label %__nv_isinfd.exit.i.i103 757: ; preds = %752 %758 = and i32 %616, 2147483647 %759 = icmp eq i32 %758, 2146435072 %760 = icmp eq i32 %617, 0 %761 = select i1 %759, i1 %760, i1 false br label %__nv_isinfd.exit.i.i103 __nv_isinfd.exit.i.i103: ; preds = %757, %755 %.028.in = phi i1 [ %756, %755 ], [ %761, %757 ] br i1 %.028.in, label %__nv_j0.exit.i, label %762 762: ; preds = %__nv_isinfd.exit.i.i103 %763 = call double @llvm.nvvm.rcp.approx.ftz.d(double %1) #135 %764 = fneg double %1 %765 = call double @llvm.fma.f64(double %764, double %763, double noundef 1.000000e+00) %766 = call double @llvm.fma.f64(double %765, double %765, double %765) %767 = call double @llvm.fma.f64(double %766, double %763, double %763) %768 = fmul double %767, %767 %769 = call double @llvm.fma.f64(double %768, double noundef 0xC0D115CB8C11A9DC, double noundef 0x409927467A655012) %770 = call double @llvm.fma.f64(double %769, double %768, double noundef 0xC05751787E247BD4) %771 = call double @llvm.fma.f64(double %770, double %768, double noundef 0x401704C4E5FC36B2) %772 = call double @llvm.fma.f64(double %771, double %768, double noundef 0xBFE15B747A2FD531) %773 = call double @llvm.fma.f64(double %772, double %768, double noundef 0x3FBA7FEACF6CB79B) %774 = call double @llvm.fma.f64(double %773, double %768, double noundef 0xBFAFFFFFEDDCF548) %775 = call double @llvm.fma.f64(double %774, double %768, double noundef 0x3FEFFFFFFFFFC9E5) %776 = call double @llvm.fma.f64(double %768, double noundef 0xC14602FE1C34685E, double noundef 0x410ECD4523B12B84) %777 = call double @llvm.fma.f64(double %776, double %768, double noundef 0xC0C7A2FC1972F05A) %778 = call double @llvm.fma.f64(double %777, double %768, double noundef 0x407EBA131F7E5BEB) %779 = call double @llvm.fma.f64(double %778, double %768, double noundef 0xC0373B92E6E7CC7D) %780 = call double @llvm.fma.f64(double %779, double %768, double noundef 0x3FFA31BEE63A2F08) %781 = call double @llvm.fma.f64(double %780, double %768, double noundef 0xBFCAD320104D5D05) %782 = call double @llvm.fma.f64(double %781, double %768, double noundef 0x3FB0AAAA9C76D07E) %783 = call double @llvm.fma.f64(double %782, double %768, double noundef 0xBFBFFFFFFFFDACEC) %784 = call double @llvm.fma.f64(double %783, double %767, double %1) %785 = call double @llvm.nvvm.rsqrt.approx.d(double %1) #135 %786 = fmul double %785, 0x3FE9884533D43651 %787 = fmul double %786, %775 %788 = fmul double %784, 0x3FE45F306DC9C883 %789 = call i32 @llvm.nvvm.d2i.rn(double %788) #135 store i32 %789, i32* %q.i.i.i20.i, align 4, !noalias !219 %790 = sitofp i32 %789 to double %791 = fneg double %790 %792 = call double @llvm.fma.f64(double %791, double noundef 0x3FF921FB54442D18, double %784) %793 = call double @llvm.fma.f64(double %791, double noundef 0x3C91A62633145C00, double %792) %794 = call double @llvm.fma.f64(double %791, double noundef 0x397B839A252049C0, double %793) %795 = call double @llvm.fabs.f64(double %784) %796 = fcmp ult double %795, 0x41E0000000000000 br i1 %796, label %__internal_trig_reduction_kerneld.exit.i.i25.i, label %797 797: ; preds = %762 %798 = call fastcc double @__internal_trig_reduction_slowpathd(double %784, i32* noalias nocapture nofree noundef nonnull writeonly align 4 dereferenceable(4) %q.i.i.i20.i) #135 %.pre35 = load i32, i32* %q.i.i.i20.i, align 4 br label %__internal_trig_reduction_kerneld.exit.i.i25.i __internal_trig_reduction_kerneld.exit.i.i25.i: ; preds = %797, %762 %799 = phi i32 [ %.pre35, %797 ], [ %789, %762 ] %t.i.i.i19.i.0 = phi double [ %798, %797 ], [ %794, %762 ] %800 = and i32 %799, 3 %801 = uitofp i32 %800 to double %802 = fadd double %t.i.i.i19.i.0, 0xBFE921FB54442D18 %803 = fmul double %801, 0x3FF921FB54442D18 %804 = fadd double %802, %803 %805 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([12 x i8], [12 x i8]* @.str.1, i32 0, i32 0)) #135 %806 = icmp eq i32 %805, 350 br i1 %806, label %810, label %807 807: ; preds = %__internal_trig_reduction_kerneld.exit.i.i25.i %808 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([12 x i8], [12 x i8]* @.str.1, i32 0, i32 0)) #135 %809 = icmp eq i32 %808, 370 br i1 %809, label %810, label %869 810: ; preds = %807, %__internal_trig_reduction_kerneld.exit.i.i25.i %811 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([12 x i8], [12 x i8]* @.str.1, i32 0, i32 0)) #135 %812 = icmp eq i32 %811, 200 br i1 %812, label %819, label %813 813: ; preds = %810 %814 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([12 x i8], [12 x i8]* @.str.1, i32 0, i32 0)) #135 %815 = icmp eq i32 %814, 350 br i1 %815, label %819, label %816 816: ; preds = %813 %817 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([12 x i8], [12 x i8]* @.str.1, i32 0, i32 0)) #135 %818 = icmp eq i32 %817, 370 br i1 %818, label %819, label %822 819: ; preds = %816, %813, %810 %820 = call double @llvm.fabs.f64(double %804) %821 = fcmp oeq double %820, 0x7FF0000000000000 br label %__nv_isinfd.exit.i.i.i.i.i104 822: ; preds = %816 %823 = call i32 @llvm.nvvm.d2i.lo(double %804) #135 %824 = call i32 @llvm.nvvm.d2i.hi(double %804) #135 %825 = and i32 %824, 2147483647 %826 = icmp eq i32 %825, 2146435072 %827 = icmp eq i32 %823, 0 %828 = select i1 %826, i1 %827, i1 false br label %__nv_isinfd.exit.i.i.i.i.i104 __nv_isinfd.exit.i.i.i.i.i104: ; preds = %822, %819 %.024.in = phi i1 [ %821, %819 ], [ %828, %822 ] br i1 %.024.in, label %829, label %831 829: ; preds = %__nv_isinfd.exit.i.i.i.i.i104 %830 = fmul double %804, 0.000000e+00 br label %__internal_trig_reduction_kerneld.exit.i.i.i.i.i105 831: ; preds = %__nv_isinfd.exit.i.i.i.i.i104 %832 = fmul double %804, 0x3FE45F306DC9C883 %833 = call i32 @llvm.nvvm.d2i.rn(double %832) #135 store i32 %833, i32* %q.i.i.i.i.i.i20, align 4, !noalias !219 %834 = sitofp i32 %833 to double %835 = fneg double %834 %836 = call double @llvm.fma.f64(double %835, double noundef 0x3FF921FB54442D18, double %804) %837 = call double @llvm.fma.f64(double %835, double noundef 0x3C91A62633145C00, double %836) %838 = call double @llvm.fma.f64(double %835, double noundef 0x397B839A252049C0, double %837) %839 = call double @llvm.fabs.f64(double %804) %840 = fcmp ult double %839, 0x41E0000000000000 br i1 %840, label %__internal_trig_reduction_kerneld.exit.i.i.i.i.i105, label %841 841: ; preds = %831 %842 = call fastcc double @__internal_trig_reduction_slowpathd(double %804, i32* noalias nocapture nofree noundef nonnull writeonly align 4 dereferenceable(4) %q.i.i.i.i.i.i20) #135 %.pre37 = load i32, i32* %q.i.i.i.i.i.i20, align 4 br label %__internal_trig_reduction_kerneld.exit.i.i.i.i.i105 __internal_trig_reduction_kerneld.exit.i.i.i.i.i105: ; preds = %831, %841, %829 %i.i.i.i.i.i26.0 = phi i32 [ 0, %829 ], [ %.pre37, %841 ], [ %833, %831 ] %.023 = phi double [ %830, %829 ], [ %842, %841 ], [ %838, %831 ] %843 = fmul double %.023, %.023 %844 = call double @llvm.fma.f64(double %843, double noundef 0xBDA8FF8320FD8164, double noundef 0x3E21EEA7C1EF8528) %845 = call double @llvm.fma.f64(double %844, double %843, double noundef 0xBE927E4F8E06E6D9) %846 = call double @llvm.fma.f64(double %845, double %843, double noundef 0x3EFA01A019DDBCE9) %847 = call double @llvm.fma.f64(double %846, double %843, double noundef 0xBF56C16C16C15D47) %848 = call double @llvm.fma.f64(double %847, double %843, double noundef 0x3FA5555555555551) %849 = call double @llvm.fma.f64(double %848, double %843, double noundef -5.000000e-01) %850 = call double @llvm.fma.f64(double %849, double %843, double noundef 1.000000e+00) %851 = call double @llvm.fma.f64(double %843, double noundef 0x3DE5DB65F9785EBA, double noundef 0xBE5AE5F12CB0D246) %852 = call double @llvm.fma.f64(double %851, double %843, double noundef 0x3EC71DE369ACE392) %853 = call double @llvm.fma.f64(double %852, double %843, double noundef 0xBF2A01A019DB62A1) %854 = call double @llvm.fma.f64(double %853, double %843, double noundef 0x3F81111111110818) %855 = call double @llvm.fma.f64(double %854, double %843, double noundef 0xBFC5555555555554) %856 = call double @llvm.fma.f64(double %855, double %843, double noundef 0.000000e+00) %857 = call double @llvm.fma.f64(double %856, double %.023, double %.023) %858 = call i32 @llvm.nvvm.d2i.hi(double %857) #135 %859 = call i32 @llvm.nvvm.d2i.lo(double %857) #135 %860 = xor i32 %858, -2147483648 %861 = call double @llvm.nvvm.lohi.i2d(i32 %859, i32 %860) #135 %862 = and i32 %i.i.i.i.i.i26.0, 1 %.not73 = icmp eq i32 %862, 0 %spec.select8 = select i1 %.not73, double %850, double %861 %863 = and i32 %i.i.i.i.i.i26.0, 2 %.not74 = icmp eq i32 %863, 0 br i1 %.not74, label %__internal_cos_offset.exit.i.i108, label %864 864: ; preds = %__internal_trig_reduction_kerneld.exit.i.i.i.i.i105 %865 = call i32 @llvm.nvvm.d2i.hi(double %spec.select8) #135 %866 = call i32 @llvm.nvvm.d2i.lo(double %spec.select8) #135 %867 = xor i32 %865, -2147483648 %868 = call double @llvm.nvvm.lohi.i2d(i32 %866, i32 %867) #135 br label %__internal_cos_offset.exit.i.i108 869: ; preds = %807 %870 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([12 x i8], [12 x i8]* @.str.1, i32 0, i32 0)) #135 %871 = icmp eq i32 %870, 200 br i1 %871, label %878, label %872 872: ; preds = %869 %873 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([12 x i8], [12 x i8]* @.str.1, i32 0, i32 0)) #135 %874 = icmp eq i32 %873, 350 br i1 %874, label %878, label %875 875: ; preds = %872 %876 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([12 x i8], [12 x i8]* @.str.1, i32 0, i32 0)) #135 %877 = icmp eq i32 %876, 370 br i1 %877, label %878, label %881 878: ; preds = %875, %872, %869 %879 = call double @llvm.fabs.f64(double %804) %880 = fcmp oeq double %879, 0x7FF0000000000000 br label %__nv_isinfd.exit.i.i.i26.i 881: ; preds = %875 %882 = call i32 @llvm.nvvm.d2i.lo(double %804) #135 %883 = call i32 @llvm.nvvm.d2i.hi(double %804) #135 %884 = and i32 %883, 2147483647 %885 = icmp eq i32 %884, 2146435072 %886 = icmp eq i32 %882, 0 %887 = select i1 %885, i1 %886, i1 false br label %__nv_isinfd.exit.i.i.i26.i __nv_isinfd.exit.i.i.i26.i: ; preds = %881, %878 %.025.in = phi i1 [ %880, %878 ], [ %887, %881 ] br i1 %.025.in, label %888, label %890 888: ; preds = %__nv_isinfd.exit.i.i.i26.i %889 = fmul double %804, 0.000000e+00 br label %__internal_sin_cos_kerneld.exit.i.i.i.i107 890: ; preds = %__nv_isinfd.exit.i.i.i26.i %891 = fmul double %804, 0x3FE45F306DC9C883 %892 = call i32 @llvm.nvvm.d2i.rn(double %891) #135 store i32 %892, i32* %q.i.i.i.i9.i, align 4, !noalias !219 %893 = sitofp i32 %892 to double %894 = fneg double %893 %895 = call double @llvm.fma.f64(double %894, double noundef 0x3FF921FB54442D18, double %804) %896 = call double @llvm.fma.f64(double %894, double noundef 0x3C91A62633145C00, double %895) %897 = call double @llvm.fma.f64(double %894, double noundef 0x397B839A252049C0, double %896) %898 = call double @llvm.fabs.f64(double %804) %899 = fcmp ult double %898, 0x41E0000000000000 br i1 %899, label %__internal_sin_cos_kerneld.exit.i.i.i.i107, label %900 900: ; preds = %890 %901 = call fastcc double @__internal_trig_reduction_slowpathd(double %804, i32* noalias nocapture nofree noundef nonnull writeonly align 4 dereferenceable(4) %q.i.i.i.i9.i) #135 %.pre36 = load i32, i32* %q.i.i.i.i9.i, align 4 br label %__internal_sin_cos_kerneld.exit.i.i.i.i107 __internal_sin_cos_kerneld.exit.i.i.i.i107: ; preds = %890, %900, %888 %i.i.i.i17.i.0 = phi i32 [ 0, %888 ], [ %.pre36, %900 ], [ %892, %890 ] %z.i.i.i16.i.0 = phi double [ %889, %888 ], [ %901, %900 ], [ %897, %890 ] %902 = add nsw i32 %i.i.i.i17.i.0, 1 %903 = and i32 %902, 1 %904 = shl nuw nsw i32 %903, 3 %905 = getelementptr inbounds [16 x double], [16 x double] addrspace(1)* @__cudart_sin_cos_coeffs, i32 0, i32 %904 %906 = fmul double %z.i.i.i16.i.0, %z.i.i.i16.i.0 %.not71 = icmp eq i32 %903, 0 %907 = select i1 %.not71, double 0x3DE5DB65F9785EBA, double 0xBDA8FF8320FD8164 %908 = getelementptr inbounds double, double addrspace(1)* %905, i32 1 %909 = load double, double addrspace(1)* %908, align 8 %910 = call double @llvm.fma.f64(double noundef %907, double %906, double %909) %911 = getelementptr inbounds double, double addrspace(1)* %905, i32 2 %912 = load double, double addrspace(1)* %911, align 8 %913 = call double @llvm.fma.f64(double %910, double %906, double %912) %914 = getelementptr inbounds double, double addrspace(1)* %905, i32 3 %915 = load double, double addrspace(1)* %914, align 8 %916 = call double @llvm.fma.f64(double %913, double %906, double %915) %917 = getelementptr inbounds double, double addrspace(1)* %905, i32 4 %918 = load double, double addrspace(1)* %917, align 8 %919 = call double @llvm.fma.f64(double %916, double %906, double %918) %920 = getelementptr inbounds double, double addrspace(1)* %905, i32 5 %921 = load double, double addrspace(1)* %920, align 8 %922 = call double @llvm.fma.f64(double %919, double %906, double %921) %923 = getelementptr inbounds double, double addrspace(1)* %905, i32 6 %924 = load double, double addrspace(1)* %923, align 8 %925 = call double @llvm.fma.f64(double %922, double %906, double %924) %926 = call double @llvm.fma.f64(double %925, double %z.i.i.i16.i.0, double %z.i.i.i16.i.0) %927 = call double @llvm.fma.f64(double %925, double %906, double noundef 1.000000e+00) %spec.select9 = select i1 %.not71, double %926, double %927 %928 = and i32 %902, 2 %.not72 = icmp eq i32 %928, 0 %929 = call double @llvm.fma.f64(double %spec.select9, double noundef -1.000000e+00, double noundef 0.000000e+00) %.127 = select i1 %.not72, double %spec.select9, double %929 br label %__internal_cos_offset.exit.i.i108 __internal_cos_offset.exit.i.i108: ; preds = %__internal_trig_reduction_kerneld.exit.i.i.i.i.i105, %864, %__internal_sin_cos_kerneld.exit.i.i.i.i107 %.022 = phi double [ %.127, %__internal_sin_cos_kerneld.exit.i.i.i.i107 ], [ %868, %864 ], [ %spec.select8, %__internal_trig_reduction_kerneld.exit.i.i.i.i.i105 ] %930 = fmul double %787, %.022 br label %__nv_j0.exit.i __nv_j0.exit.i: ; preds = %704, %__internal_cos_offset.exit.i.i108, %__nv_isinfd.exit.i.i103, %726, %682 %r.i.i29.3 = phi double [ %701, %682 ], [ %723, %704 ], [ %745, %726 ], [ %930, %__internal_cos_offset.exit.i.i108 ], [ 0.000000e+00, %__nv_isinfd.exit.i.i103 ] %931 = fmul double %680, %r.i.i29.3 %932 = fadd double %615, %931 br label %__nv_y0.exit 933: ; preds = %__nv_y1.exit %934 = fcmp ugt double %1, 0x4000347C4AB37B18 br i1 %934, label %962, label %935 935: ; preds = %933 %936 = fadd double %1, 0xBFEC982EB8D417EA %937 = fadd double %936, 0xBC7EA9D270347F83 %938 = call double @llvm.fma.f64(double %937, double noundef 0xBF01630132D75FC3, double noundef 0x3F3D054B05D3C52D) %939 = call double @llvm.fma.f64(double %938, double %937, double noundef 0xBF66DAC0B314B2E5) %940 = call double @llvm.fma.f64(double %939, double %937, double noundef 0x3F86A5D1DE76263F) %941 = call double @llvm.fma.f64(double %940, double %937, double noundef 0xBF9FD16652824592) %942 = call double @llvm.fma.f64(double %941, double %937, double noundef 0x3FB0F69A9CC79FBD) %943 = call double @llvm.fma.f64(double %942, double %937, double noundef 0xBFBCCE40EF15583E) %944 = call double @llvm.fma.f64(double %943, double %937, double noundef 0x3FC446B11780E4FC) %945 = call double @llvm.fma.f64(double %944, double %937, double noundef 0xBFC89AE7E19621F7) %946 = call double @llvm.fma.f64(double %945, double %937, double noundef 0x3FCACBA1B38EF7B8) %947 = call double @llvm.fma.f64(double %946, double %937, double noundef 0xBFCB4166A03BBFA5) %948 = call double @llvm.fma.f64(double %947, double %937, double noundef 0x3FCACCA4D5D4889A) %949 = call double @llvm.fma.f64(double %948, double %937, double noundef 0xBFCA1455932B9392) %950 = call double @llvm.fma.f64(double %949, double %937, double noundef 0x3FC96D8DB8D844EC) %951 = call double @llvm.fma.f64(double %950, double %937, double noundef 0xBFC8F7FB77522EDF) %952 = call double @llvm.fma.f64(double %951, double %937, double noundef 0x3FC8C0926ABC9AB0) %953 = call double @llvm.fma.f64(double %952, double %937, double noundef 0xBFC8D35B8FEA468C) %954 = call double @llvm.fma.f64(double %953, double %937, double noundef 0x3FC9424B8A0C8F94) %955 = call double @llvm.fma.f64(double %954, double %937, double noundef 0xBFCA396A7F3403EF) %956 = call double @llvm.fma.f64(double %955, double %937, double noundef 0x3FCC068086C37055) %957 = call double @llvm.fma.f64(double %956, double %937, double noundef 0xBFCCF18E6A4C5C4E) %958 = call double @llvm.fma.f64(double %957, double %937, double noundef 0x3FCC3B1338AF4239) %959 = call double @llvm.fma.f64(double %958, double %937, double noundef 0xBFDF7E38A46D70DB) %960 = call double @llvm.fma.f64(double %959, double %937, double noundef 0x3FEC24371844B88A) %961 = fmul double %937, %960 br label %__nv_y0.exit 962: ; preds = %933 %963 = fcmp ugt double %1, 0x40161663B5D9A628 br i1 %963, label %991, label %964 964: ; preds = %962 %965 = fadd double %1, 0xC00FA9534D98569C %966 = fadd double %965, 0x3C9F06AE7804384E %967 = call double @llvm.fma.f64(double %966, double noundef 0xBCDAEA62AC8BDA68, double noundef 0xBCD2434958151AC7) %968 = call double @llvm.fma.f64(double %967, double %966, double noundef 0x3D11C24A40D33FE1) %969 = call double @llvm.fma.f64(double %968, double %966, double noundef 0x3D237CD62FA08CA4) %970 = call double @llvm.fma.f64(double %969, double %966, double noundef 0xBD43902E0298C52A) %971 = call double @llvm.fma.f64(double %970, double %966, double noundef 0xBD1DDAAD11CAB40F) %972 = call double @llvm.fma.f64(double %971, double %966, double noundef 0xBD5209D9F06D7DE4) %973 = call double @llvm.fma.f64(double %972, double %966, double noundef 0x3D8BB9F464468E1A) %974 = call double @llvm.fma.f64(double %973, double %966, double noundef 0xBDA8F67B07D1B440) %975 = call double @llvm.fma.f64(double %974, double %966, double noundef 0x3DC7C8D60F9EAECF) %976 = call double @llvm.fma.f64(double %975, double %966, double noundef 0xBDE9703405B49A8D) %977 = call double @llvm.fma.f64(double %976, double %966, double noundef 0x3E0A6B64E76417E4) %978 = call double @llvm.fma.f64(double %977, double %966, double noundef 0xBE2F6B5AFB2F1359) %979 = call double @llvm.fma.f64(double %978, double %966, double noundef 0x3E54526B71C21EC1) %980 = call double @llvm.fma.f64(double %979, double %966, double noundef 0xBE5776DBCBBC8E1D) %981 = call double @llvm.fma.f64(double %980, double %966, double noundef 0xBE93B211FC2DF90E) %982 = call double @llvm.fma.f64(double %981, double %966, double noundef 0xBED486372E8562DC) %983 = call double @llvm.fma.f64(double %982, double %966, double noundef 0x3F0AB2C1FBC3A254) %984 = call double @llvm.fma.f64(double %983, double %966, double noundef 0x3F299827653353B8) %985 = call double @llvm.fma.f64(double %984, double %966, double noundef 0xBF61E32BC4ED7084) %986 = call double @llvm.fma.f64(double %985, double %966, double noundef 0xBF7C116FDC599A09) %987 = call double @llvm.fma.f64(double %986, double %966, double noundef 0x3FADF6D59BF50C77) %988 = call double @llvm.fma.f64(double %987, double %966, double noundef 0x3FAA09C92903680B) %989 = call double @llvm.fma.f64(double %988, double %966, double noundef 0xBFD9C34256A12A0B) %990 = fmul double %966, %989 br label %__nv_y0.exit 991: ; preds = %962 %992 = fcmp ugt double %1, 0x40214EF30C0C06ED br i1 %992, label %1012, label %993 993: ; preds = %991 %994 = fadd double %1, 0xC01C581DC4E72103 %995 = fadd double %994, 0x3C99774A495F56CF %996 = call double @llvm.fma.f64(double %995, double noundef 0x3CF1CB3ABA718B8E, double noundef 0xBD3F443BB4F53D75) %997 = call double @llvm.fma.f64(double %996, double %995, double noundef 0xBD770F737BD6A786) %998 = call double @llvm.fma.f64(double %997, double %995, double noundef 0x3DBF0E9A20459E14) %999 = call double @llvm.fma.f64(double %998, double %995, double noundef 0x3DEFA6B137D5E108) %1000 = call double @llvm.fma.f64(double %999, double %995, double noundef 0xBE344296729FB7FA) %1001 = call double @llvm.fma.f64(double %1000, double %995, double noundef 0xBE60A2813A80DFAA) %1002 = call double @llvm.fma.f64(double %1001, double %995, double noundef 0x3EA34AA737A83EB4) %1003 = call double @llvm.fma.f64(double %1002, double %995, double noundef 0x3EC6A9227332D03C) %1004 = call double @llvm.fma.f64(double %1003, double %995, double noundef 0xBF08177E4F93C81E) %1005 = call double @llvm.fma.f64(double %1004, double %995, double noundef 0xBF226DD71E391775) %1006 = call double @llvm.fma.f64(double %1005, double %995, double noundef 0x3F61D35E85FD7B22) %1007 = call double @llvm.fma.f64(double %1006, double %995, double noundef 0x3F6B2F14A955285C) %1008 = call double @llvm.fma.f64(double %1007, double %995, double noundef 0xBFA8969C64CBF388) %1009 = call double @llvm.fma.f64(double %1008, double %995, double noundef 0xBF95AEF611FC4D5A) %1010 = call double @llvm.fma.f64(double %1009, double %995, double noundef 0x3FD334CCA0697A5A) %1011 = fmul double %995, %1010 br label %__nv_y0.exit 1012: ; preds = %991 %1013 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([12 x i8], [12 x i8]* @.str.1, i32 0, i32 0)) #135 %1014 = icmp eq i32 %1013, 200 br i1 %1014, label %1021, label %1015 1015: ; preds = %1012 %1016 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([12 x i8], [12 x i8]* @.str.1, i32 0, i32 0)) #135 %1017 = icmp eq i32 %1016, 350 br i1 %1017, label %1021, label %1018 1018: ; preds = %1015 %1019 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([12 x i8], [12 x i8]* @.str.1, i32 0, i32 0)) #135 %1020 = icmp eq i32 %1019, 370 br i1 %1020, label %1021, label %1023 1021: ; preds = %1018, %1015, %1012 %1022 = fcmp oeq double %1, 0x7FF0000000000000 br label %__nv_isinfd.exit.i109 1023: ; preds = %1018 %1024 = call i32 @llvm.nvvm.d2i.lo(double %1) #135 %1025 = call i32 @llvm.nvvm.d2i.hi(double %1) #135 %1026 = and i32 %1025, 2147483647 %1027 = icmp eq i32 %1026, 2146435072 %1028 = icmp eq i32 %1024, 0 %1029 = select i1 %1027, i1 %1028, i1 false br label %__nv_isinfd.exit.i109 __nv_isinfd.exit.i109: ; preds = %1023, %1021 %.029.in = phi i1 [ %1022, %1021 ], [ %1029, %1023 ] br i1 %.029.in, label %__nv_y0.exit, label %1030 1030: ; preds = %__nv_isinfd.exit.i109 %1031 = call double @llvm.nvvm.rcp.approx.ftz.d(double %1) #135 %1032 = fneg double %1 %1033 = call double @llvm.fma.f64(double %1032, double %1031, double noundef 1.000000e+00) %1034 = call double @llvm.fma.f64(double %1033, double %1033, double %1033) %1035 = call double @llvm.fma.f64(double %1034, double %1031, double %1031) %1036 = fmul double %1035, %1035 %1037 = call double @llvm.fma.f64(double %1036, double noundef 0xC0C5E91E6AC3AD03, double noundef 0x4093F56A049CDDE7) %1038 = call double @llvm.fma.f64(double %1037, double %1036, double noundef 0xC05572D39DFB8433) %1039 = call double @llvm.fma.f64(double %1038, double %1036, double noundef 0x4016A6041CAA59E5) %1040 = call double @llvm.fma.f64(double %1039, double %1036, double noundef 0xBFE155E3A0493880) %1041 = call double @llvm.fma.f64(double %1040, double %1036, double noundef 0x3FBA7FB92F417F7F) %1042 = call double @llvm.fma.f64(double %1041, double %1036, double noundef 0xBFAFFFFFB12E32F5) %1043 = call double @llvm.fma.f64(double %1042, double %1036, double noundef 0x3FEFFFFFFFFECED5) %1044 = call double @llvm.fma.f64(double %1036, double noundef 0x418A86A64BE101DC, double noundef 0xC15709C79AAC5813) %1045 = call double @llvm.fma.f64(double %1044, double %1036, double noundef 0x41142A31C980A287) %1046 = call double @llvm.fma.f64(double %1045, double %1036, double noundef 0xC0C9CBE68930485D) %1047 = call double @llvm.fma.f64(double %1046, double %1036, double noundef 0x407F583E14E8A4E8) %1048 = call double @llvm.fma.f64(double %1047, double %1036, double noundef 0xC0374A629C650680) %1049 = call double @llvm.fma.f64(double %1048, double %1036, double noundef 0x3FFA32A7AF17FAE9) %1050 = call double @llvm.fma.f64(double %1049, double %1036, double noundef 0xBFCAD32497785CD6) %1051 = call double @llvm.fma.f64(double %1050, double %1036, double noundef 0x3FB0AAAA9FB75F7B) %1052 = call double @llvm.fma.f64(double %1051, double %1036, double noundef 0xBFBFFFFFFFFE320F) %1053 = call double @llvm.fma.f64(double %1052, double %1035, double %1) %1054 = call double @llvm.nvvm.rsqrt.approx.d(double %1) #135 %1055 = fmul double %1054, 0x3FE9884533D43651 %1056 = fmul double %1055, %1043 %1057 = fmul double %1053, 0x3FE45F306DC9C883 %1058 = call i32 @llvm.nvvm.d2i.rn(double %1057) #135 store i32 %1058, i32* %q.i.i.i88, align 4, !noalias !219 %1059 = sitofp i32 %1058 to double %1060 = fneg double %1059 %1061 = call double @llvm.fma.f64(double %1060, double noundef 0x3FF921FB54442D18, double %1053) %1062 = call double @llvm.fma.f64(double %1060, double noundef 0x3C91A62633145C00, double %1061) %1063 = call double @llvm.fma.f64(double %1060, double noundef 0x397B839A252049C0, double %1062) %1064 = call double @llvm.fabs.f64(double %1053) %1065 = fcmp ult double %1064, 0x41E0000000000000 br i1 %1065, label %__internal_trig_reduction_kerneld.exit.i.i110, label %1066 1066: ; preds = %1030 %1067 = call fastcc double @__internal_trig_reduction_slowpathd(double %1053, i32* noalias nocapture nofree noundef nonnull writeonly align 4 dereferenceable(4) %q.i.i.i88) #135 %.pre32 = load i32, i32* %q.i.i.i88, align 4 br label %__internal_trig_reduction_kerneld.exit.i.i110 __internal_trig_reduction_kerneld.exit.i.i110: ; preds = %1066, %1030 %1068 = phi i32 [ %.pre32, %1066 ], [ %1058, %1030 ] %t.i.i.i87.0 = phi double [ %1067, %1066 ], [ %1063, %1030 ] %1069 = and i32 %1068, 3 %1070 = uitofp i32 %1069 to double %1071 = fadd double %t.i.i.i87.0, 0xC002D97C7F3321D2 %1072 = fmul double %1070, 0x3FF921FB54442D18 %1073 = fadd double %1071, %1072 %1074 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([12 x i8], [12 x i8]* @.str.1, i32 0, i32 0)) #135 %1075 = icmp eq i32 %1074, 350 br i1 %1075, label %1079, label %1076 1076: ; preds = %__internal_trig_reduction_kerneld.exit.i.i110 %1077 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([12 x i8], [12 x i8]* @.str.1, i32 0, i32 0)) #135 %1078 = icmp eq i32 %1077, 370 br i1 %1078, label %1079, label %1138 1079: ; preds = %1076, %__internal_trig_reduction_kerneld.exit.i.i110 %1080 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([12 x i8], [12 x i8]* @.str.1, i32 0, i32 0)) #135 %1081 = icmp eq i32 %1080, 200 br i1 %1081, label %1088, label %1082 1082: ; preds = %1079 %1083 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([12 x i8], [12 x i8]* @.str.1, i32 0, i32 0)) #135 %1084 = icmp eq i32 %1083, 350 br i1 %1084, label %1088, label %1085 1085: ; preds = %1082 %1086 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([12 x i8], [12 x i8]* @.str.1, i32 0, i32 0)) #135 %1087 = icmp eq i32 %1086, 370 br i1 %1087, label %1088, label %1091 1088: ; preds = %1085, %1082, %1079 %1089 = call double @llvm.fabs.f64(double %1073) %1090 = fcmp oeq double %1089, 0x7FF0000000000000 br label %__nv_isinfd.exit.i.i.i.i111 1091: ; preds = %1085 %1092 = call i32 @llvm.nvvm.d2i.lo(double %1073) #135 %1093 = call i32 @llvm.nvvm.d2i.hi(double %1073) #135 %1094 = and i32 %1093, 2147483647 %1095 = icmp eq i32 %1094, 2146435072 %1096 = icmp eq i32 %1092, 0 %1097 = select i1 %1095, i1 %1096, i1 false br label %__nv_isinfd.exit.i.i.i.i111 __nv_isinfd.exit.i.i.i.i111: ; preds = %1091, %1088 %.017.in = phi i1 [ %1090, %1088 ], [ %1097, %1091 ] br i1 %.017.in, label %1098, label %1100 1098: ; preds = %__nv_isinfd.exit.i.i.i.i111 %1099 = fmul double %1073, 0.000000e+00 br label %__internal_trig_reduction_kerneld.exit.i.i.i.i112 1100: ; preds = %__nv_isinfd.exit.i.i.i.i111 %1101 = fmul double %1073, 0x3FE45F306DC9C883 %1102 = call i32 @llvm.nvvm.d2i.rn(double %1101) #135 store i32 %1102, i32* %q.i.i.i.i.i74, align 4, !noalias !219 %1103 = sitofp i32 %1102 to double %1104 = fneg double %1103 %1105 = call double @llvm.fma.f64(double %1104, double noundef 0x3FF921FB54442D18, double %1073) %1106 = call double @llvm.fma.f64(double %1104, double noundef 0x3C91A62633145C00, double %1105) %1107 = call double @llvm.fma.f64(double %1104, double noundef 0x397B839A252049C0, double %1106) %1108 = call double @llvm.fabs.f64(double %1073) %1109 = fcmp ult double %1108, 0x41E0000000000000 br i1 %1109, label %__internal_trig_reduction_kerneld.exit.i.i.i.i112, label %1110 1110: ; preds = %1100 %1111 = call fastcc double @__internal_trig_reduction_slowpathd(double %1073, i32* noalias nocapture nofree noundef nonnull writeonly align 4 dereferenceable(4) %q.i.i.i.i.i74) #135 %.pre34 = load i32, i32* %q.i.i.i.i.i74, align 4 br label %__internal_trig_reduction_kerneld.exit.i.i.i.i112 __internal_trig_reduction_kerneld.exit.i.i.i.i112: ; preds = %1100, %1110, %1098 %i.i.i.i.i81.0 = phi i32 [ 0, %1098 ], [ %.pre34, %1110 ], [ %1102, %1100 ] %.016 = phi double [ %1099, %1098 ], [ %1111, %1110 ], [ %1107, %1100 ] %1112 = fmul double %.016, %.016 %1113 = call double @llvm.fma.f64(double %1112, double noundef 0xBDA8FF8320FD8164, double noundef 0x3E21EEA7C1EF8528) %1114 = call double @llvm.fma.f64(double %1113, double %1112, double noundef 0xBE927E4F8E06E6D9) %1115 = call double @llvm.fma.f64(double %1114, double %1112, double noundef 0x3EFA01A019DDBCE9) %1116 = call double @llvm.fma.f64(double %1115, double %1112, double noundef 0xBF56C16C16C15D47) %1117 = call double @llvm.fma.f64(double %1116, double %1112, double noundef 0x3FA5555555555551) %1118 = call double @llvm.fma.f64(double %1117, double %1112, double noundef -5.000000e-01) %1119 = call double @llvm.fma.f64(double %1118, double %1112, double noundef 1.000000e+00) %1120 = call double @llvm.fma.f64(double %1112, double noundef 0x3DE5DB65F9785EBA, double noundef 0xBE5AE5F12CB0D246) %1121 = call double @llvm.fma.f64(double %1120, double %1112, double noundef 0x3EC71DE369ACE392) %1122 = call double @llvm.fma.f64(double %1121, double %1112, double noundef 0xBF2A01A019DB62A1) %1123 = call double @llvm.fma.f64(double %1122, double %1112, double noundef 0x3F81111111110818) %1124 = call double @llvm.fma.f64(double %1123, double %1112, double noundef 0xBFC5555555555554) %1125 = call double @llvm.fma.f64(double %1124, double %1112, double noundef 0.000000e+00) %1126 = call double @llvm.fma.f64(double %1125, double %.016, double %.016) %1127 = call i32 @llvm.nvvm.d2i.hi(double %1126) #135 %1128 = call i32 @llvm.nvvm.d2i.lo(double %1126) #135 %1129 = xor i32 %1127, -2147483648 %1130 = call double @llvm.nvvm.lohi.i2d(i32 %1128, i32 %1129) #135 %1131 = and i32 %i.i.i.i.i81.0, 1 %.not69 = icmp eq i32 %1131, 0 %spec.select11 = select i1 %.not69, double %1119, double %1130 %1132 = and i32 %i.i.i.i.i81.0, 2 %.not70 = icmp eq i32 %1132, 0 br i1 %.not70, label %__internal_cos_offset.exit.i117, label %1133 1133: ; preds = %__internal_trig_reduction_kerneld.exit.i.i.i.i112 %1134 = call i32 @llvm.nvvm.d2i.hi(double %spec.select11) #135 %1135 = call i32 @llvm.nvvm.d2i.lo(double %spec.select11) #135 %1136 = xor i32 %1134, -2147483648 %1137 = call double @llvm.nvvm.lohi.i2d(i32 %1135, i32 %1136) #135 br label %__internal_cos_offset.exit.i117 1138: ; preds = %1076 %1139 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([12 x i8], [12 x i8]* @.str.1, i32 0, i32 0)) #135 %1140 = icmp eq i32 %1139, 200 br i1 %1140, label %1147, label %1141 1141: ; preds = %1138 %1142 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([12 x i8], [12 x i8]* @.str.1, i32 0, i32 0)) #135 %1143 = icmp eq i32 %1142, 350 br i1 %1143, label %1147, label %1144 1144: ; preds = %1141 %1145 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([12 x i8], [12 x i8]* @.str.1, i32 0, i32 0)) #135 %1146 = icmp eq i32 %1145, 370 br i1 %1146, label %1147, label %1150 1147: ; preds = %1144, %1141, %1138 %1148 = call double @llvm.fabs.f64(double %1073) %1149 = fcmp oeq double %1148, 0x7FF0000000000000 br label %__nv_isinfd.exit.i.i.i114 1150: ; preds = %1144 %1151 = call i32 @llvm.nvvm.d2i.lo(double %1073) #135 %1152 = call i32 @llvm.nvvm.d2i.hi(double %1073) #135 %1153 = and i32 %1152, 2147483647 %1154 = icmp eq i32 %1153, 2146435072 %1155 = icmp eq i32 %1151, 0 %1156 = select i1 %1154, i1 %1155, i1 false br label %__nv_isinfd.exit.i.i.i114 __nv_isinfd.exit.i.i.i114: ; preds = %1150, %1147 %.018.in = phi i1 [ %1149, %1147 ], [ %1156, %1150 ] br i1 %.018.in, label %1157, label %1159 1157: ; preds = %__nv_isinfd.exit.i.i.i114 %1158 = fmul double %1073, 0.000000e+00 br label %__internal_sin_cos_kerneld.exit.i.i.i116 1159: ; preds = %__nv_isinfd.exit.i.i.i114 %1160 = fmul double %1073, 0x3FE45F306DC9C883 %1161 = call i32 @llvm.nvvm.d2i.rn(double %1160) #135 store i32 %1161, i32* %q.i.i.i.i58, align 4, !noalias !219 %1162 = sitofp i32 %1161 to double %1163 = fneg double %1162 %1164 = call double @llvm.fma.f64(double %1163, double noundef 0x3FF921FB54442D18, double %1073) %1165 = call double @llvm.fma.f64(double %1163, double noundef 0x3C91A62633145C00, double %1164) %1166 = call double @llvm.fma.f64(double %1163, double noundef 0x397B839A252049C0, double %1165) %1167 = call double @llvm.fabs.f64(double %1073) %1168 = fcmp ult double %1167, 0x41E0000000000000 br i1 %1168, label %__internal_sin_cos_kerneld.exit.i.i.i116, label %1169 1169: ; preds = %1159 %1170 = call fastcc double @__internal_trig_reduction_slowpathd(double %1073, i32* noalias nocapture nofree noundef nonnull writeonly align 4 dereferenceable(4) %q.i.i.i.i58) #135 %.pre33 = load i32, i32* %q.i.i.i.i58, align 4 br label %__internal_sin_cos_kerneld.exit.i.i.i116 __internal_sin_cos_kerneld.exit.i.i.i116: ; preds = %1159, %1169, %1157 %i.i.i.i85.0 = phi i32 [ 0, %1157 ], [ %.pre33, %1169 ], [ %1161, %1159 ] %z.i.i.i84.0 = phi double [ %1158, %1157 ], [ %1170, %1169 ], [ %1166, %1159 ] %1171 = add nsw i32 %i.i.i.i85.0, 1 %1172 = and i32 %1171, 1 %1173 = shl nuw nsw i32 %1172, 3 %1174 = getelementptr inbounds [16 x double], [16 x double] addrspace(1)* @__cudart_sin_cos_coeffs, i32 0, i32 %1173 %1175 = fmul double %z.i.i.i84.0, %z.i.i.i84.0 %.not51 = icmp eq i32 %1172, 0 %1176 = select i1 %.not51, double 0x3DE5DB65F9785EBA, double 0xBDA8FF8320FD8164 %1177 = getelementptr inbounds double, double addrspace(1)* %1174, i32 1 %1178 = load double, double addrspace(1)* %1177, align 8 %1179 = call double @llvm.fma.f64(double noundef %1176, double %1175, double %1178) %1180 = getelementptr inbounds double, double addrspace(1)* %1174, i32 2 %1181 = load double, double addrspace(1)* %1180, align 8 %1182 = call double @llvm.fma.f64(double %1179, double %1175, double %1181) %1183 = getelementptr inbounds double, double addrspace(1)* %1174, i32 3 %1184 = load double, double addrspace(1)* %1183, align 8 %1185 = call double @llvm.fma.f64(double %1182, double %1175, double %1184) %1186 = getelementptr inbounds double, double addrspace(1)* %1174, i32 4 %1187 = load double, double addrspace(1)* %1186, align 8 %1188 = call double @llvm.fma.f64(double %1185, double %1175, double %1187) %1189 = getelementptr inbounds double, double addrspace(1)* %1174, i32 5 %1190 = load double, double addrspace(1)* %1189, align 8 %1191 = call double @llvm.fma.f64(double %1188, double %1175, double %1190) %1192 = getelementptr inbounds double, double addrspace(1)* %1174, i32 6 %1193 = load double, double addrspace(1)* %1192, align 8 %1194 = call double @llvm.fma.f64(double %1191, double %1175, double %1193) %1195 = call double @llvm.fma.f64(double %1194, double %z.i.i.i84.0, double %z.i.i.i84.0) %1196 = call double @llvm.fma.f64(double %1194, double %1175, double noundef 1.000000e+00) %spec.select12 = select i1 %.not51, double %1195, double %1196 %1197 = and i32 %1171, 2 %.not52 = icmp eq i32 %1197, 0 %1198 = call double @llvm.fma.f64(double %spec.select12, double noundef -1.000000e+00, double noundef 0.000000e+00) %.120 = select i1 %.not52, double %spec.select12, double %1198 br label %__internal_cos_offset.exit.i117 __internal_cos_offset.exit.i117: ; preds = %__internal_trig_reduction_kerneld.exit.i.i.i.i112, %1133, %__internal_sin_cos_kerneld.exit.i.i.i116 %.015 = phi double [ %.120, %__internal_sin_cos_kerneld.exit.i.i.i116 ], [ %1137, %1133 ], [ %spec.select11, %__internal_trig_reduction_kerneld.exit.i.i.i.i112 ] %1199 = fmul double %1056, %.015 br label %__nv_y0.exit __nv_y0.exit: ; preds = %935, %993, %__nv_isinfd.exit.i109, %__internal_cos_offset.exit.i117, %964, %__nv_j0.exit.i %r.i95.4 = phi double [ %932, %__nv_j0.exit.i ], [ %961, %935 ], [ %990, %964 ], [ %1011, %993 ], [ %1199, %__internal_cos_offset.exit.i117 ], [ 0.000000e+00, %__nv_isinfd.exit.i109 ] %1200 = fcmp olt double %a, 0.000000e+00 %r.i95.5 = select i1 %1200, double 0xFFF8000000000000, double %r.i95.4 switch i32 %n, label %2399 [ i32 0, label %1201 i32 1, label %1799 ] 1201: ; preds = %__nv_y0.exit br i1 %602, label %1202, label %1532 1202: ; preds = %1201 %1203 = fmul double %a, %a %1204 = call double @llvm.fma.f64(double %1203, double noundef 0x3C8EFBD0A1B77C65, double noundef 0xBD13098C51C18514) %1205 = call double @llvm.fma.f64(double %1204, double %1203, double noundef 0x3D923102D2F5F2F5) %1206 = call double @llvm.fma.f64(double %1205, double %1203, double noundef 0xBE0A5F2DEE7D526E) %1207 = call double @llvm.fma.f64(double %1206, double %1203, double noundef 0x3E7BB77E758B38AF) %1208 = call double @llvm.fma.f64(double %1207, double %1203, double noundef 0xBEE3D1A206EC4F36) %1209 = call double @llvm.fma.f64(double %1208, double %1203, double noundef 0x3F4183DCD3ED6294) %1210 = call double @llvm.fma.f64(double %1209, double %1203, double noundef 0xBF903921CF04F123) %1211 = call double @llvm.fma.f64(double %1210, double %1203, double noundef 0x3FC5DB69D7753176) %1212 = fadd double %1203, 0xBFDBA96740000000 %1213 = fadd double %1212, 0x3E15A30C80000000 %1214 = fmul double %1213, %1211 %1215 = call i32 @llvm.nvvm.d2i.hi(double %1) #135 %1216 = call i32 @llvm.nvvm.d2i.lo(double %1) #135 %1217 = icmp slt i32 %1215, 1048576 br i1 %1217, label %1218, label %1222 1218: ; preds = %1202 %1219 = fmul double %1, 0x4350000000000000 %1220 = call i32 @llvm.nvvm.d2i.hi(double %1219) #135 %1221 = call i32 @llvm.nvvm.d2i.lo(double %1219) #135 br label %1222 1222: ; preds = %1218, %1202 %.036 = phi double [ %1219, %1218 ], [ %1, %1202 ] %ihi.i.i194.0 = phi i32 [ %1220, %1218 ], [ %1215, %1202 ] %ilo.i.i195.0 = phi i32 [ %1221, %1218 ], [ %1216, %1202 ] %e.i.i196.0 = phi i32 [ -1077, %1218 ], [ -1023, %1202 ] %1223 = add i32 %ihi.i.i194.0, -1 %1224 = icmp ult i32 %1223, 2146435071 br i1 %1224, label %1225, label %1274 1225: ; preds = %1222 %1226 = lshr i32 %ihi.i.i194.0, 20 %1227 = add nsw i32 %e.i.i196.0, %1226 %1228 = and i32 %ihi.i.i194.0, -2146435073 %1229 = or i32 %1228, 1072693248 %1230 = call double @llvm.nvvm.lohi.i2d(i32 %ilo.i.i195.0, i32 %1229) #135 %1231 = icmp sgt i32 %1229, 1073127582 br i1 %1231, label %1232, label %1238 1232: ; preds = %1225 %1233 = call i32 @llvm.nvvm.d2i.lo(double %1230) #135 %1234 = call i32 @llvm.nvvm.d2i.hi(double %1230) #135 %1235 = add i32 %1234, -1048576 %1236 = call double @llvm.nvvm.lohi.i2d(i32 %1233, i32 %1235) #135 %1237 = add nsw i32 %1227, 1 br label %1238 1238: ; preds = %1232, %1225 %m.i.i184.0 = phi double [ %1236, %1232 ], [ %1230, %1225 ] %e.i.i196.1 = phi i32 [ %1237, %1232 ], [ %1227, %1225 ] %1239 = fadd double %m.i.i184.0, -1.000000e+00 %1240 = fadd double %m.i.i184.0, 1.000000e+00 %1241 = call double @llvm.nvvm.rcp.approx.ftz.d(double %1240) #135 %1242 = fneg double %1240 %1243 = call double @llvm.fma.f64(double %1242, double %1241, double noundef 1.000000e+00) %1244 = call double @llvm.fma.f64(double %1243, double %1243, double %1243) %1245 = call double @llvm.fma.f64(double %1244, double %1241, double %1241) %1246 = fmul double %1239, %1245 %1247 = fadd double %1246, %1246 %1248 = fmul double %1247, %1247 %1249 = call double @llvm.fma.f64(double %1248, double noundef 0x3EB1380B3AE80F1E, double noundef 0x3ED0EE258B7A8B04) %1250 = call double @llvm.fma.f64(double %1249, double %1248, double noundef 0x3EF3B2669F02676F) %1251 = call double @llvm.fma.f64(double %1250, double %1248, double noundef 0x3F1745CBA9AB0956) %1252 = call double @llvm.fma.f64(double %1251, double %1248, double noundef 0x3F3C71C72D1B5154) %1253 = call double @llvm.fma.f64(double %1252, double %1248, double noundef 0x3F624924923BE72D) %1254 = call double @llvm.fma.f64(double %1253, double %1248, double noundef 0x3F8999999999A3C4) %1255 = call double @llvm.fma.f64(double %1254, double %1248, double noundef 0x3FB5555555555554) %1256 = fsub double %1239, %1247 %1257 = fmul double %1256, 2.000000e+00 %1258 = fneg double %1247 %1259 = call double @llvm.fma.f64(double %1258, double %1239, double %1257) %1260 = fmul double %1245, %1259 %1261 = fmul double %1248, %1255 %1262 = call double @llvm.fma.f64(double %1261, double %1247, double %1260) %1263 = xor i32 %e.i.i196.1, -2147483648 %1264 = call double @llvm.nvvm.lohi.i2d(i32 %1263, i32 noundef 1127219200) #135 %1265 = call double @llvm.nvvm.lohi.i2d(i32 noundef -2147483648, i32 noundef 1127219200) #135 %1266 = fsub double %1264, %1265 %1267 = call double @llvm.fma.f64(double %1266, double noundef 0x3FE62E42FEFA39EF, double %1247) %1268 = fneg double %1266 %1269 = call double @llvm.fma.f64(double %1268, double noundef 0x3FE62E42FEFA39EF, double %1267) %1270 = fsub double %1269, %1247 %1271 = fsub double %1262, %1270 %1272 = call double @llvm.fma.f64(double %1266, double noundef 0x3C7ABC9E3B39803F, double %1271) %1273 = fadd double %1267, %1272 br label %__nv_log.exit.i246 1274: ; preds = %1222 %1275 = call double @llvm.fma.f64(double %.036, double noundef 0x7FF0000000000000, double noundef 0x7FF0000000000000) %1276 = call i32 @llvm.nvvm.d2i.hi(double %.036) #135 %1277 = bitcast i32 %1276 to float %1278 = fcmp oeq float %1277, 0.000000e+00 %q.i3.i190.0 = select i1 %1278, double 0xFFF0000000000000, double %1275 br label %__nv_log.exit.i246 __nv_log.exit.i246: ; preds = %1274, %1238 %q.i3.i190.1 = phi double [ %1273, %1238 ], [ %q.i3.i190.0, %1274 ] %1279 = fmul double %q.i3.i190.1, 0x3FE45F306DC9C883 %1280 = fcmp ugt double %1, 0x400FB319F277BBE5 br i1 %1280, label %1301, label %1281 1281: ; preds = %__nv_log.exit.i246 %1282 = fadd double %1, 0xC0033D152E971B40 %1283 = fadd double %1282, 0x3CA0F539D7DA258E %1284 = call double @llvm.fma.f64(double %1283, double noundef 0xBCC0D18564C48C61, double noundef 0xBCFCF8F9A8C294BC) %1285 = call double @llvm.fma.f64(double %1284, double %1283, double noundef 0x3D3FAB983CAE498B) %1286 = call double @llvm.fma.f64(double %1285, double %1283, double noundef 0x3D7CD7C018579B88) %1287 = call double @llvm.fma.f64(double %1286, double %1283, double noundef 0xBDBBDD2342D64FDD) %1288 = call double @llvm.fma.f64(double %1287, double %1283, double noundef 0xBDF5C2D9416B1E2B) %1289 = call double @llvm.fma.f64(double %1288, double %1283, double noundef 0x3E32951D73174DD5) %1290 = call double @llvm.fma.f64(double %1289, double %1283, double noundef 0x3E67FF99802CAEB5) %1291 = call double @llvm.fma.f64(double %1290, double %1283, double noundef 0xBEA1CCE305C4C9F7) %1292 = call double @llvm.fma.f64(double %1291, double %1283, double noundef 0xBED232C77E29E1BB) %1293 = call double @llvm.fma.f64(double %1292, double %1283, double noundef 0x3F06ED3B9F0EF757) %1294 = call double @llvm.fma.f64(double %1293, double %1283, double noundef 0x3F315382BA096A62) %1295 = call double @llvm.fma.f64(double %1294, double %1283, double noundef 0xBF61F992590D1AE4) %1296 = call double @llvm.fma.f64(double %1295, double %1283, double noundef 0xBF81BB1CBE1A465F) %1297 = call double @llvm.fma.f64(double %1296, double %1283, double noundef 0x3FACFAE864368D84) %1298 = call double @llvm.fma.f64(double %1297, double %1283, double noundef 0x3FBBA1DEEA0294A3) %1299 = call double @llvm.fma.f64(double %1298, double %1283, double noundef 0xBFE09CDB36551280) %1300 = fmul double %1283, %1299 br label %__nv_j0.exit.i256 1301: ; preds = %__nv_log.exit.i246 %1302 = fcmp ugt double %1, 0x401C58FD1A62F5EC br i1 %1302, label %1323, label %1303 1303: ; preds = %1301 %1304 = fadd double %1, 0xC016148F5B2C2E45 %1305 = fadd double %1304, 0xBC975054CD60A517 %1306 = call double @llvm.fma.f64(double %1305, double noundef 0x3CBCB0A8F126B343, double noundef 0x3CF83FD1F333EB61) %1307 = call double @llvm.fma.f64(double %1306, double %1305, double noundef 0xBD4100E33E3FB413) %1308 = call double @llvm.fma.f64(double %1307, double %1305, double noundef 0xBD7846076D004627) %1309 = call double @llvm.fma.f64(double %1308, double %1305, double noundef 0x3DBE2F1D4F90720D) %1310 = call double @llvm.fma.f64(double %1309, double %1305, double noundef 0x3DF1D03B1E4A119B) %1311 = call double @llvm.fma.f64(double %1310, double %1305, double noundef 0xBE341D72B1B3BCE9) %1312 = call double @llvm.fma.f64(double %1311, double %1305, double noundef 0xBE62DA37CE2A9EF8) %1313 = call double @llvm.fma.f64(double %1312, double %1305, double noundef 0x3EA32E6D9974F763) %1314 = call double @llvm.fma.f64(double %1313, double %1305, double noundef 0x3ECAD77D744A1879) %1315 = call double @llvm.fma.f64(double %1314, double %1305, double noundef 0xBF0863F481A37337) %1316 = call double @llvm.fma.f64(double %1315, double %1305, double noundef 0xBF26F641F418F0F4) %1317 = call double @llvm.fma.f64(double %1316, double %1305, double noundef 0x3F627E31FE9A969E) %1318 = call double @llvm.fma.f64(double %1317, double %1305, double noundef 0x3F72F7FFE9025628) %1319 = call double @llvm.fma.f64(double %1318, double %1305, double noundef 0xBFAB2150CB41E8BF) %1320 = call double @llvm.fma.f64(double %1319, double %1305, double noundef 0xBF9F8F72E7A848DE) %1321 = call double @llvm.fma.f64(double %1320, double %1305, double noundef 0x3FD5C6E60A097823) %1322 = fmul double %1305, %1321 br label %__nv_j0.exit.i256 1323: ; preds = %1301 %1324 = fcmp ugt double %1, 0x402471FCB6A7A8C0 br i1 %1324, label %1345, label %1325 1325: ; preds = %1323 %1326 = fadd double %1, 0xC0214EB56CCCDECA %1327 = fadd double %1326, 0x3CB51970714C7C25 %1328 = call double @llvm.fma.f64(double %1327, double noundef 0xBCBDB7FFCF659E24, double noundef 0xBCF4B3A71AAAC629) %1329 = call double @llvm.fma.f64(double %1328, double %1327, double noundef 0x3D417EC150ECDCE7) %1330 = call double @llvm.fma.f64(double %1329, double %1327, double noundef 0x3D7438F5EA1D10B2) %1331 = call double @llvm.fma.f64(double %1330, double %1327, double noundef 0xBDBEDAE7EC2C9E87) %1332 = call double @llvm.fma.f64(double %1331, double %1327, double noundef 0xBDECADD2C4B91F58) %1333 = call double @llvm.fma.f64(double %1332, double %1327, double noundef 0x3E34582C8EE12204) %1334 = call double @llvm.fma.f64(double %1333, double %1327, double noundef 0x3E5CEDA451DD20F8) %1335 = call double @llvm.fma.f64(double %1334, double %1327, double noundef 0xBEA30E8CC3165E2F) %1336 = call double @llvm.fma.f64(double %1335, double %1327, double noundef 0xBEC3324842BB1A2E) %1337 = call double @llvm.fma.f64(double %1336, double %1327, double noundef 0x3F07800BC54FBDDB) %1338 = call double @llvm.fma.f64(double %1337, double %1327, double noundef 0x3F1D79605276949A) %1339 = call double @llvm.fma.f64(double %1338, double %1327, double noundef 0xBF60E0D60385A629) %1340 = call double @llvm.fma.f64(double %1339, double %1327, double noundef 0xBF648E63600D82F3) %1341 = call double @llvm.fma.f64(double %1340, double %1327, double noundef 0x3FA68B984EC6493A) %1342 = call double @llvm.fma.f64(double %1341, double %1327, double noundef 0x3F900F7FCF183E0B) %1343 = call double @llvm.fma.f64(double %1342, double %1327, double noundef 0xBFD15F7977A772D4) %1344 = fmul double %1327, %1343 br label %__nv_j0.exit.i256 1345: ; preds = %1323 %1346 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([12 x i8], [12 x i8]* @.str.1, i32 0, i32 0)) #135 %1347 = icmp eq i32 %1346, 200 br i1 %1347, label %1354, label %1348 1348: ; preds = %1345 %1349 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([12 x i8], [12 x i8]* @.str.1, i32 0, i32 0)) #135 %1350 = icmp eq i32 %1349, 350 br i1 %1350, label %1354, label %1351 1351: ; preds = %1348 %1352 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([12 x i8], [12 x i8]* @.str.1, i32 0, i32 0)) #135 %1353 = icmp eq i32 %1352, 370 br i1 %1353, label %1354, label %1356 1354: ; preds = %1351, %1348, %1345 %1355 = fcmp oeq double %1, 0x7FF0000000000000 br label %__nv_isinfd.exit.i.i247 1356: ; preds = %1351 %1357 = and i32 %1215, 2147483647 %1358 = icmp eq i32 %1357, 2146435072 %1359 = icmp eq i32 %1216, 0 %1360 = select i1 %1358, i1 %1359, i1 false br label %__nv_isinfd.exit.i.i247 __nv_isinfd.exit.i.i247: ; preds = %1356, %1354 %.043.in = phi i1 [ %1355, %1354 ], [ %1360, %1356 ] br i1 %.043.in, label %__nv_j0.exit.i256, label %1361 1361: ; preds = %__nv_isinfd.exit.i.i247 %1362 = call double @llvm.nvvm.rcp.approx.ftz.d(double %1) #135 %1363 = fneg double %1 %1364 = call double @llvm.fma.f64(double %1363, double %1362, double noundef 1.000000e+00) %1365 = call double @llvm.fma.f64(double %1364, double %1364, double %1364) %1366 = call double @llvm.fma.f64(double %1365, double %1362, double %1362) %1367 = fmul double %1366, %1366 %1368 = call double @llvm.fma.f64(double %1367, double noundef 0xC0D115CB8C11A9DC, double noundef 0x409927467A655012) %1369 = call double @llvm.fma.f64(double %1368, double %1367, double noundef 0xC05751787E247BD4) %1370 = call double @llvm.fma.f64(double %1369, double %1367, double noundef 0x401704C4E5FC36B2) %1371 = call double @llvm.fma.f64(double %1370, double %1367, double noundef 0xBFE15B747A2FD531) %1372 = call double @llvm.fma.f64(double %1371, double %1367, double noundef 0x3FBA7FEACF6CB79B) %1373 = call double @llvm.fma.f64(double %1372, double %1367, double noundef 0xBFAFFFFFEDDCF548) %1374 = call double @llvm.fma.f64(double %1373, double %1367, double noundef 0x3FEFFFFFFFFFC9E5) %1375 = call double @llvm.fma.f64(double %1367, double noundef 0xC14602FE1C34685E, double noundef 0x410ECD4523B12B84) %1376 = call double @llvm.fma.f64(double %1375, double %1367, double noundef 0xC0C7A2FC1972F05A) %1377 = call double @llvm.fma.f64(double %1376, double %1367, double noundef 0x407EBA131F7E5BEB) %1378 = call double @llvm.fma.f64(double %1377, double %1367, double noundef 0xC0373B92E6E7CC7D) %1379 = call double @llvm.fma.f64(double %1378, double %1367, double noundef 0x3FFA31BEE63A2F08) %1380 = call double @llvm.fma.f64(double %1379, double %1367, double noundef 0xBFCAD320104D5D05) %1381 = call double @llvm.fma.f64(double %1380, double %1367, double noundef 0x3FB0AAAA9C76D07E) %1382 = call double @llvm.fma.f64(double %1381, double %1367, double noundef 0xBFBFFFFFFFFDACEC) %1383 = call double @llvm.fma.f64(double %1382, double %1366, double %1) %1384 = call double @llvm.nvvm.rsqrt.approx.d(double %1) #135 %1385 = fmul double %1384, 0x3FE9884533D43651 %1386 = fmul double %1385, %1374 %1387 = fmul double %1383, 0x3FE45F306DC9C883 %1388 = call i32 @llvm.nvvm.d2i.rn(double %1387) #135 store i32 %1388, i32* %q.i.i.i20.i163, align 4, !noalias !219 %1389 = sitofp i32 %1388 to double %1390 = fneg double %1389 %1391 = call double @llvm.fma.f64(double %1390, double noundef 0x3FF921FB54442D18, double %1383) %1392 = call double @llvm.fma.f64(double %1390, double noundef 0x3C91A62633145C00, double %1391) %1393 = call double @llvm.fma.f64(double %1390, double noundef 0x397B839A252049C0, double %1392) %1394 = call double @llvm.fabs.f64(double %1383) %1395 = fcmp ult double %1394, 0x41E0000000000000 br i1 %1395, label %__internal_trig_reduction_kerneld.exit.i.i25.i248, label %1396 1396: ; preds = %1361 %1397 = call fastcc double @__internal_trig_reduction_slowpathd(double %1383, i32* noalias nocapture nofree noundef nonnull writeonly align 4 dereferenceable(4) %q.i.i.i20.i163) #135 %.pre47 = load i32, i32* %q.i.i.i20.i163, align 4 br label %__internal_trig_reduction_kerneld.exit.i.i25.i248 __internal_trig_reduction_kerneld.exit.i.i25.i248: ; preds = %1396, %1361 %1398 = phi i32 [ %.pre47, %1396 ], [ %1388, %1361 ] %t.i.i.i19.i162.0 = phi double [ %1397, %1396 ], [ %1393, %1361 ] %1399 = and i32 %1398, 3 %1400 = uitofp i32 %1399 to double %1401 = fadd double %t.i.i.i19.i162.0, 0xBFE921FB54442D18 %1402 = fmul double %1400, 0x3FF921FB54442D18 %1403 = fadd double %1401, %1402 %1404 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([12 x i8], [12 x i8]* @.str.1, i32 0, i32 0)) #135 %1405 = icmp eq i32 %1404, 350 br i1 %1405, label %1409, label %1406 1406: ; preds = %__internal_trig_reduction_kerneld.exit.i.i25.i248 %1407 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([12 x i8], [12 x i8]* @.str.1, i32 0, i32 0)) #135 %1408 = icmp eq i32 %1407, 370 br i1 %1408, label %1409, label %1468 1409: ; preds = %1406, %__internal_trig_reduction_kerneld.exit.i.i25.i248 %1410 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([12 x i8], [12 x i8]* @.str.1, i32 0, i32 0)) #135 %1411 = icmp eq i32 %1410, 200 br i1 %1411, label %1418, label %1412 1412: ; preds = %1409 %1413 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([12 x i8], [12 x i8]* @.str.1, i32 0, i32 0)) #135 %1414 = icmp eq i32 %1413, 350 br i1 %1414, label %1418, label %1415 1415: ; preds = %1412 %1416 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([12 x i8], [12 x i8]* @.str.1, i32 0, i32 0)) #135 %1417 = icmp eq i32 %1416, 370 br i1 %1417, label %1418, label %1421 1418: ; preds = %1415, %1412, %1409 %1419 = call double @llvm.fabs.f64(double %1403) %1420 = fcmp oeq double %1419, 0x7FF0000000000000 br label %__nv_isinfd.exit.i.i.i.i.i249 1421: ; preds = %1415 %1422 = call i32 @llvm.nvvm.d2i.lo(double %1403) #135 %1423 = call i32 @llvm.nvvm.d2i.hi(double %1403) #135 %1424 = and i32 %1423, 2147483647 %1425 = icmp eq i32 %1424, 2146435072 %1426 = icmp eq i32 %1422, 0 %1427 = select i1 %1425, i1 %1426, i1 false br label %__nv_isinfd.exit.i.i.i.i.i249 __nv_isinfd.exit.i.i.i.i.i249: ; preds = %1421, %1418 %.039.in = phi i1 [ %1420, %1418 ], [ %1427, %1421 ] br i1 %.039.in, label %1428, label %1430 1428: ; preds = %__nv_isinfd.exit.i.i.i.i.i249 %1429 = fmul double %1403, 0.000000e+00 br label %__internal_trig_reduction_kerneld.exit.i.i.i.i.i250 1430: ; preds = %__nv_isinfd.exit.i.i.i.i.i249 %1431 = fmul double %1403, 0x3FE45F306DC9C883 %1432 = call i32 @llvm.nvvm.d2i.rn(double %1431) #135 store i32 %1432, i32* %q.i.i.i.i.i.i149, align 4, !noalias !219 %1433 = sitofp i32 %1432 to double %1434 = fneg double %1433 %1435 = call double @llvm.fma.f64(double %1434, double noundef 0x3FF921FB54442D18, double %1403) %1436 = call double @llvm.fma.f64(double %1434, double noundef 0x3C91A62633145C00, double %1435) %1437 = call double @llvm.fma.f64(double %1434, double noundef 0x397B839A252049C0, double %1436) %1438 = call double @llvm.fabs.f64(double %1403) %1439 = fcmp ult double %1438, 0x41E0000000000000 br i1 %1439, label %__internal_trig_reduction_kerneld.exit.i.i.i.i.i250, label %1440 1440: ; preds = %1430 %1441 = call fastcc double @__internal_trig_reduction_slowpathd(double %1403, i32* noalias nocapture nofree noundef nonnull writeonly align 4 dereferenceable(4) %q.i.i.i.i.i.i149) #135 %.pre49 = load i32, i32* %q.i.i.i.i.i.i149, align 4 br label %__internal_trig_reduction_kerneld.exit.i.i.i.i.i250 __internal_trig_reduction_kerneld.exit.i.i.i.i.i250: ; preds = %1430, %1440, %1428 %i.i.i.i.i.i156.0 = phi i32 [ 0, %1428 ], [ %.pre49, %1440 ], [ %1432, %1430 ] %.038 = phi double [ %1429, %1428 ], [ %1441, %1440 ], [ %1437, %1430 ] %1442 = fmul double %.038, %.038 %1443 = call double @llvm.fma.f64(double %1442, double noundef 0xBDA8FF8320FD8164, double noundef 0x3E21EEA7C1EF8528) %1444 = call double @llvm.fma.f64(double %1443, double %1442, double noundef 0xBE927E4F8E06E6D9) %1445 = call double @llvm.fma.f64(double %1444, double %1442, double noundef 0x3EFA01A019DDBCE9) %1446 = call double @llvm.fma.f64(double %1445, double %1442, double noundef 0xBF56C16C16C15D47) %1447 = call double @llvm.fma.f64(double %1446, double %1442, double noundef 0x3FA5555555555551) %1448 = call double @llvm.fma.f64(double %1447, double %1442, double noundef -5.000000e-01) %1449 = call double @llvm.fma.f64(double %1448, double %1442, double noundef 1.000000e+00) %1450 = call double @llvm.fma.f64(double %1442, double noundef 0x3DE5DB65F9785EBA, double noundef 0xBE5AE5F12CB0D246) %1451 = call double @llvm.fma.f64(double %1450, double %1442, double noundef 0x3EC71DE369ACE392) %1452 = call double @llvm.fma.f64(double %1451, double %1442, double noundef 0xBF2A01A019DB62A1) %1453 = call double @llvm.fma.f64(double %1452, double %1442, double noundef 0x3F81111111110818) %1454 = call double @llvm.fma.f64(double %1453, double %1442, double noundef 0xBFC5555555555554) %1455 = call double @llvm.fma.f64(double %1454, double %1442, double noundef 0.000000e+00) %1456 = call double @llvm.fma.f64(double %1455, double %.038, double %.038) %1457 = call i32 @llvm.nvvm.d2i.hi(double %1456) #135 %1458 = call i32 @llvm.nvvm.d2i.lo(double %1456) #135 %1459 = xor i32 %1457, -2147483648 %1460 = call double @llvm.nvvm.lohi.i2d(i32 %1458, i32 %1459) #135 %1461 = and i32 %i.i.i.i.i.i156.0, 1 %.not67 = icmp eq i32 %1461, 0 %spec.select15 = select i1 %.not67, double %1449, double %1460 %1462 = and i32 %i.i.i.i.i.i156.0, 2 %.not68 = icmp eq i32 %1462, 0 br i1 %.not68, label %__internal_cos_offset.exit.i.i255, label %1463 1463: ; preds = %__internal_trig_reduction_kerneld.exit.i.i.i.i.i250 %1464 = call i32 @llvm.nvvm.d2i.hi(double %spec.select15) #135 %1465 = call i32 @llvm.nvvm.d2i.lo(double %spec.select15) #135 %1466 = xor i32 %1464, -2147483648 %1467 = call double @llvm.nvvm.lohi.i2d(i32 %1465, i32 %1466) #135 br label %__internal_cos_offset.exit.i.i255 1468: ; preds = %1406 %1469 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([12 x i8], [12 x i8]* @.str.1, i32 0, i32 0)) #135 %1470 = icmp eq i32 %1469, 200 br i1 %1470, label %1477, label %1471 1471: ; preds = %1468 %1472 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([12 x i8], [12 x i8]* @.str.1, i32 0, i32 0)) #135 %1473 = icmp eq i32 %1472, 350 br i1 %1473, label %1477, label %1474 1474: ; preds = %1471 %1475 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([12 x i8], [12 x i8]* @.str.1, i32 0, i32 0)) #135 %1476 = icmp eq i32 %1475, 370 br i1 %1476, label %1477, label %1480 1477: ; preds = %1474, %1471, %1468 %1478 = call double @llvm.fabs.f64(double %1403) %1479 = fcmp oeq double %1478, 0x7FF0000000000000 br label %__nv_isinfd.exit.i.i.i26.i252 1480: ; preds = %1474 %1481 = call i32 @llvm.nvvm.d2i.lo(double %1403) #135 %1482 = call i32 @llvm.nvvm.d2i.hi(double %1403) #135 %1483 = and i32 %1482, 2147483647 %1484 = icmp eq i32 %1483, 2146435072 %1485 = icmp eq i32 %1481, 0 %1486 = select i1 %1484, i1 %1485, i1 false br label %__nv_isinfd.exit.i.i.i26.i252 __nv_isinfd.exit.i.i.i26.i252: ; preds = %1480, %1477 %.040.in = phi i1 [ %1479, %1477 ], [ %1486, %1480 ] br i1 %.040.in, label %1487, label %1489 1487: ; preds = %__nv_isinfd.exit.i.i.i26.i252 %1488 = fmul double %1403, 0.000000e+00 br label %__internal_sin_cos_kerneld.exit.i.i.i.i254 1489: ; preds = %__nv_isinfd.exit.i.i.i26.i252 %1490 = fmul double %1403, 0x3FE45F306DC9C883 %1491 = call i32 @llvm.nvvm.d2i.rn(double %1490) #135 store i32 %1491, i32* %q.i.i.i.i9.i133, align 4, !noalias !219 %1492 = sitofp i32 %1491 to double %1493 = fneg double %1492 %1494 = call double @llvm.fma.f64(double %1493, double noundef 0x3FF921FB54442D18, double %1403) %1495 = call double @llvm.fma.f64(double %1493, double noundef 0x3C91A62633145C00, double %1494) %1496 = call double @llvm.fma.f64(double %1493, double noundef 0x397B839A252049C0, double %1495) %1497 = call double @llvm.fabs.f64(double %1403) %1498 = fcmp ult double %1497, 0x41E0000000000000 br i1 %1498, label %__internal_sin_cos_kerneld.exit.i.i.i.i254, label %1499 1499: ; preds = %1489 %1500 = call fastcc double @__internal_trig_reduction_slowpathd(double %1403, i32* noalias nocapture nofree noundef nonnull writeonly align 4 dereferenceable(4) %q.i.i.i.i9.i133) #135 %.pre48 = load i32, i32* %q.i.i.i.i9.i133, align 4 br label %__internal_sin_cos_kerneld.exit.i.i.i.i254 __internal_sin_cos_kerneld.exit.i.i.i.i254: ; preds = %1489, %1499, %1487 %i.i.i.i17.i160.0 = phi i32 [ 0, %1487 ], [ %.pre48, %1499 ], [ %1491, %1489 ] %z.i.i.i16.i159.0 = phi double [ %1488, %1487 ], [ %1500, %1499 ], [ %1496, %1489 ] %1501 = add nsw i32 %i.i.i.i17.i160.0, 1 %1502 = and i32 %1501, 1 %1503 = shl nuw nsw i32 %1502, 3 %1504 = getelementptr inbounds [16 x double], [16 x double] addrspace(1)* @__cudart_sin_cos_coeffs, i32 0, i32 %1503 %1505 = fmul double %z.i.i.i16.i159.0, %z.i.i.i16.i159.0 %.not65 = icmp eq i32 %1502, 0 %1506 = select i1 %.not65, double 0x3DE5DB65F9785EBA, double 0xBDA8FF8320FD8164 %1507 = getelementptr inbounds double, double addrspace(1)* %1504, i32 1 %1508 = load double, double addrspace(1)* %1507, align 8 %1509 = call double @llvm.fma.f64(double noundef %1506, double %1505, double %1508) %1510 = getelementptr inbounds double, double addrspace(1)* %1504, i32 2 %1511 = load double, double addrspace(1)* %1510, align 8 %1512 = call double @llvm.fma.f64(double %1509, double %1505, double %1511) %1513 = getelementptr inbounds double, double addrspace(1)* %1504, i32 3 %1514 = load double, double addrspace(1)* %1513, align 8 %1515 = call double @llvm.fma.f64(double %1512, double %1505, double %1514) %1516 = getelementptr inbounds double, double addrspace(1)* %1504, i32 4 %1517 = load double, double addrspace(1)* %1516, align 8 %1518 = call double @llvm.fma.f64(double %1515, double %1505, double %1517) %1519 = getelementptr inbounds double, double addrspace(1)* %1504, i32 5 %1520 = load double, double addrspace(1)* %1519, align 8 %1521 = call double @llvm.fma.f64(double %1518, double %1505, double %1520) %1522 = getelementptr inbounds double, double addrspace(1)* %1504, i32 6 %1523 = load double, double addrspace(1)* %1522, align 8 %1524 = call double @llvm.fma.f64(double %1521, double %1505, double %1523) %1525 = call double @llvm.fma.f64(double %1524, double %z.i.i.i16.i159.0, double %z.i.i.i16.i159.0) %1526 = call double @llvm.fma.f64(double %1524, double %1505, double noundef 1.000000e+00) %spec.select16 = select i1 %.not65, double %1525, double %1526 %1527 = and i32 %1501, 2 %.not66 = icmp eq i32 %1527, 0 %1528 = call double @llvm.fma.f64(double %spec.select16, double noundef -1.000000e+00, double noundef 0.000000e+00) %.142 = select i1 %.not66, double %spec.select16, double %1528 br label %__internal_cos_offset.exit.i.i255 __internal_cos_offset.exit.i.i255: ; preds = %__internal_trig_reduction_kerneld.exit.i.i.i.i.i250, %1463, %__internal_sin_cos_kerneld.exit.i.i.i.i254 %.037 = phi double [ %.142, %__internal_sin_cos_kerneld.exit.i.i.i.i254 ], [ %1467, %1463 ], [ %spec.select15, %__internal_trig_reduction_kerneld.exit.i.i.i.i.i250 ] %1529 = fmul double %1386, %.037 br label %__nv_j0.exit.i256 __nv_j0.exit.i256: ; preds = %1303, %__internal_cos_offset.exit.i.i255, %__nv_isinfd.exit.i.i247, %1325, %1281 %r.i.i169.3 = phi double [ %1300, %1281 ], [ %1322, %1303 ], [ %1344, %1325 ], [ %1529, %__internal_cos_offset.exit.i.i255 ], [ 0.000000e+00, %__nv_isinfd.exit.i.i247 ] %1530 = fmul double %1279, %r.i.i169.3 %1531 = fadd double %1214, %1530 br label %__nv_y0.exit266 1532: ; preds = %1201 %1533 = fcmp ugt double %1, 0x4000347C4AB37B18 br i1 %1533, label %1561, label %1534 1534: ; preds = %1532 %1535 = fadd double %1, 0xBFEC982EB8D417EA %1536 = fadd double %1535, 0xBC7EA9D270347F83 %1537 = call double @llvm.fma.f64(double %1536, double noundef 0xBF01630132D75FC3, double noundef 0x3F3D054B05D3C52D) %1538 = call double @llvm.fma.f64(double %1537, double %1536, double noundef 0xBF66DAC0B314B2E5) %1539 = call double @llvm.fma.f64(double %1538, double %1536, double noundef 0x3F86A5D1DE76263F) %1540 = call double @llvm.fma.f64(double %1539, double %1536, double noundef 0xBF9FD16652824592) %1541 = call double @llvm.fma.f64(double %1540, double %1536, double noundef 0x3FB0F69A9CC79FBD) %1542 = call double @llvm.fma.f64(double %1541, double %1536, double noundef 0xBFBCCE40EF15583E) %1543 = call double @llvm.fma.f64(double %1542, double %1536, double noundef 0x3FC446B11780E4FC) %1544 = call double @llvm.fma.f64(double %1543, double %1536, double noundef 0xBFC89AE7E19621F7) %1545 = call double @llvm.fma.f64(double %1544, double %1536, double noundef 0x3FCACBA1B38EF7B8) %1546 = call double @llvm.fma.f64(double %1545, double %1536, double noundef 0xBFCB4166A03BBFA5) %1547 = call double @llvm.fma.f64(double %1546, double %1536, double noundef 0x3FCACCA4D5D4889A) %1548 = call double @llvm.fma.f64(double %1547, double %1536, double noundef 0xBFCA1455932B9392) %1549 = call double @llvm.fma.f64(double %1548, double %1536, double noundef 0x3FC96D8DB8D844EC) %1550 = call double @llvm.fma.f64(double %1549, double %1536, double noundef 0xBFC8F7FB77522EDF) %1551 = call double @llvm.fma.f64(double %1550, double %1536, double noundef 0x3FC8C0926ABC9AB0) %1552 = call double @llvm.fma.f64(double %1551, double %1536, double noundef 0xBFC8D35B8FEA468C) %1553 = call double @llvm.fma.f64(double %1552, double %1536, double noundef 0x3FC9424B8A0C8F94) %1554 = call double @llvm.fma.f64(double %1553, double %1536, double noundef 0xBFCA396A7F3403EF) %1555 = call double @llvm.fma.f64(double %1554, double %1536, double noundef 0x3FCC068086C37055) %1556 = call double @llvm.fma.f64(double %1555, double %1536, double noundef 0xBFCCF18E6A4C5C4E) %1557 = call double @llvm.fma.f64(double %1556, double %1536, double noundef 0x3FCC3B1338AF4239) %1558 = call double @llvm.fma.f64(double %1557, double %1536, double noundef 0xBFDF7E38A46D70DB) %1559 = call double @llvm.fma.f64(double %1558, double %1536, double noundef 0x3FEC24371844B88A) %1560 = fmul double %1536, %1559 br label %__nv_y0.exit266 1561: ; preds = %1532 %1562 = fcmp ugt double %1, 0x40161663B5D9A628 br i1 %1562, label %1590, label %1563 1563: ; preds = %1561 %1564 = fadd double %1, 0xC00FA9534D98569C %1565 = fadd double %1564, 0x3C9F06AE7804384E %1566 = call double @llvm.fma.f64(double %1565, double noundef 0xBCDAEA62AC8BDA68, double noundef 0xBCD2434958151AC7) %1567 = call double @llvm.fma.f64(double %1566, double %1565, double noundef 0x3D11C24A40D33FE1) %1568 = call double @llvm.fma.f64(double %1567, double %1565, double noundef 0x3D237CD62FA08CA4) %1569 = call double @llvm.fma.f64(double %1568, double %1565, double noundef 0xBD43902E0298C52A) %1570 = call double @llvm.fma.f64(double %1569, double %1565, double noundef 0xBD1DDAAD11CAB40F) %1571 = call double @llvm.fma.f64(double %1570, double %1565, double noundef 0xBD5209D9F06D7DE4) %1572 = call double @llvm.fma.f64(double %1571, double %1565, double noundef 0x3D8BB9F464468E1A) %1573 = call double @llvm.fma.f64(double %1572, double %1565, double noundef 0xBDA8F67B07D1B440) %1574 = call double @llvm.fma.f64(double %1573, double %1565, double noundef 0x3DC7C8D60F9EAECF) %1575 = call double @llvm.fma.f64(double %1574, double %1565, double noundef 0xBDE9703405B49A8D) %1576 = call double @llvm.fma.f64(double %1575, double %1565, double noundef 0x3E0A6B64E76417E4) %1577 = call double @llvm.fma.f64(double %1576, double %1565, double noundef 0xBE2F6B5AFB2F1359) %1578 = call double @llvm.fma.f64(double %1577, double %1565, double noundef 0x3E54526B71C21EC1) %1579 = call double @llvm.fma.f64(double %1578, double %1565, double noundef 0xBE5776DBCBBC8E1D) %1580 = call double @llvm.fma.f64(double %1579, double %1565, double noundef 0xBE93B211FC2DF90E) %1581 = call double @llvm.fma.f64(double %1580, double %1565, double noundef 0xBED486372E8562DC) %1582 = call double @llvm.fma.f64(double %1581, double %1565, double noundef 0x3F0AB2C1FBC3A254) %1583 = call double @llvm.fma.f64(double %1582, double %1565, double noundef 0x3F299827653353B8) %1584 = call double @llvm.fma.f64(double %1583, double %1565, double noundef 0xBF61E32BC4ED7084) %1585 = call double @llvm.fma.f64(double %1584, double %1565, double noundef 0xBF7C116FDC599A09) %1586 = call double @llvm.fma.f64(double %1585, double %1565, double noundef 0x3FADF6D59BF50C77) %1587 = call double @llvm.fma.f64(double %1586, double %1565, double noundef 0x3FAA09C92903680B) %1588 = call double @llvm.fma.f64(double %1587, double %1565, double noundef 0xBFD9C34256A12A0B) %1589 = fmul double %1565, %1588 br label %__nv_y0.exit266 1590: ; preds = %1561 %1591 = fcmp ugt double %1, 0x40214EF30C0C06ED br i1 %1591, label %1611, label %1592 1592: ; preds = %1590 %1593 = fadd double %1, 0xC01C581DC4E72103 %1594 = fadd double %1593, 0x3C99774A495F56CF %1595 = call double @llvm.fma.f64(double %1594, double noundef 0x3CF1CB3ABA718B8E, double noundef 0xBD3F443BB4F53D75) %1596 = call double @llvm.fma.f64(double %1595, double %1594, double noundef 0xBD770F737BD6A786) %1597 = call double @llvm.fma.f64(double %1596, double %1594, double noundef 0x3DBF0E9A20459E14) %1598 = call double @llvm.fma.f64(double %1597, double %1594, double noundef 0x3DEFA6B137D5E108) %1599 = call double @llvm.fma.f64(double %1598, double %1594, double noundef 0xBE344296729FB7FA) %1600 = call double @llvm.fma.f64(double %1599, double %1594, double noundef 0xBE60A2813A80DFAA) %1601 = call double @llvm.fma.f64(double %1600, double %1594, double noundef 0x3EA34AA737A83EB4) %1602 = call double @llvm.fma.f64(double %1601, double %1594, double noundef 0x3EC6A9227332D03C) %1603 = call double @llvm.fma.f64(double %1602, double %1594, double noundef 0xBF08177E4F93C81E) %1604 = call double @llvm.fma.f64(double %1603, double %1594, double noundef 0xBF226DD71E391775) %1605 = call double @llvm.fma.f64(double %1604, double %1594, double noundef 0x3F61D35E85FD7B22) %1606 = call double @llvm.fma.f64(double %1605, double %1594, double noundef 0x3F6B2F14A955285C) %1607 = call double @llvm.fma.f64(double %1606, double %1594, double noundef 0xBFA8969C64CBF388) %1608 = call double @llvm.fma.f64(double %1607, double %1594, double noundef 0xBF95AEF611FC4D5A) %1609 = call double @llvm.fma.f64(double %1608, double %1594, double noundef 0x3FD334CCA0697A5A) %1610 = fmul double %1594, %1609 br label %__nv_y0.exit266 1611: ; preds = %1590 %1612 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([12 x i8], [12 x i8]* @.str.1, i32 0, i32 0)) #135 %1613 = icmp eq i32 %1612, 200 br i1 %1613, label %1620, label %1614 1614: ; preds = %1611 %1615 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([12 x i8], [12 x i8]* @.str.1, i32 0, i32 0)) #135 %1616 = icmp eq i32 %1615, 350 br i1 %1616, label %1620, label %1617 1617: ; preds = %1614 %1618 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([12 x i8], [12 x i8]* @.str.1, i32 0, i32 0)) #135 %1619 = icmp eq i32 %1618, 370 br i1 %1619, label %1620, label %1622 1620: ; preds = %1617, %1614, %1611 %1621 = fcmp oeq double %1, 0x7FF0000000000000 br label %__nv_isinfd.exit.i257 1622: ; preds = %1617 %1623 = call i32 @llvm.nvvm.d2i.lo(double %1) #135 %1624 = call i32 @llvm.nvvm.d2i.hi(double %1) #135 %1625 = and i32 %1624, 2147483647 %1626 = icmp eq i32 %1625, 2146435072 %1627 = icmp eq i32 %1623, 0 %1628 = select i1 %1626, i1 %1627, i1 false br label %__nv_isinfd.exit.i257 __nv_isinfd.exit.i257: ; preds = %1622, %1620 %.044.in = phi i1 [ %1621, %1620 ], [ %1628, %1622 ] br i1 %.044.in, label %__nv_y0.exit266, label %1629 1629: ; preds = %__nv_isinfd.exit.i257 %1630 = call double @llvm.nvvm.rcp.approx.ftz.d(double %1) #135 %1631 = fneg double %1 %1632 = call double @llvm.fma.f64(double %1631, double %1630, double noundef 1.000000e+00) %1633 = call double @llvm.fma.f64(double %1632, double %1632, double %1632) %1634 = call double @llvm.fma.f64(double %1633, double %1630, double %1630) %1635 = fmul double %1634, %1634 %1636 = call double @llvm.fma.f64(double %1635, double noundef 0xC0C5E91E6AC3AD03, double noundef 0x4093F56A049CDDE7) %1637 = call double @llvm.fma.f64(double %1636, double %1635, double noundef 0xC05572D39DFB8433) %1638 = call double @llvm.fma.f64(double %1637, double %1635, double noundef 0x4016A6041CAA59E5) %1639 = call double @llvm.fma.f64(double %1638, double %1635, double noundef 0xBFE155E3A0493880) %1640 = call double @llvm.fma.f64(double %1639, double %1635, double noundef 0x3FBA7FB92F417F7F) %1641 = call double @llvm.fma.f64(double %1640, double %1635, double noundef 0xBFAFFFFFB12E32F5) %1642 = call double @llvm.fma.f64(double %1641, double %1635, double noundef 0x3FEFFFFFFFFECED5) %1643 = call double @llvm.fma.f64(double %1635, double noundef 0x418A86A64BE101DC, double noundef 0xC15709C79AAC5813) %1644 = call double @llvm.fma.f64(double %1643, double %1635, double noundef 0x41142A31C980A287) %1645 = call double @llvm.fma.f64(double %1644, double %1635, double noundef 0xC0C9CBE68930485D) %1646 = call double @llvm.fma.f64(double %1645, double %1635, double noundef 0x407F583E14E8A4E8) %1647 = call double @llvm.fma.f64(double %1646, double %1635, double noundef 0xC0374A629C650680) %1648 = call double @llvm.fma.f64(double %1647, double %1635, double noundef 0x3FFA32A7AF17FAE9) %1649 = call double @llvm.fma.f64(double %1648, double %1635, double noundef 0xBFCAD32497785CD6) %1650 = call double @llvm.fma.f64(double %1649, double %1635, double noundef 0x3FB0AAAA9FB75F7B) %1651 = call double @llvm.fma.f64(double %1650, double %1635, double noundef 0xBFBFFFFFFFFE320F) %1652 = call double @llvm.fma.f64(double %1651, double %1634, double %1) %1653 = call double @llvm.nvvm.rsqrt.approx.d(double %1) #135 %1654 = fmul double %1653, 0x3FE9884533D43651 %1655 = fmul double %1654, %1642 %1656 = fmul double %1652, 0x3FE45F306DC9C883 %1657 = call i32 @llvm.nvvm.d2i.rn(double %1656) #135 store i32 %1657, i32* %q.i.i.i232, align 4, !noalias !219 %1658 = sitofp i32 %1657 to double %1659 = fneg double %1658 %1660 = call double @llvm.fma.f64(double %1659, double noundef 0x3FF921FB54442D18, double %1652) %1661 = call double @llvm.fma.f64(double %1659, double noundef 0x3C91A62633145C00, double %1660) %1662 = call double @llvm.fma.f64(double %1659, double noundef 0x397B839A252049C0, double %1661) %1663 = call double @llvm.fabs.f64(double %1652) %1664 = fcmp ult double %1663, 0x41E0000000000000 br i1 %1664, label %__internal_trig_reduction_kerneld.exit.i.i258, label %1665 1665: ; preds = %1629 %1666 = call fastcc double @__internal_trig_reduction_slowpathd(double %1652, i32* noalias nocapture nofree noundef nonnull writeonly align 4 dereferenceable(4) %q.i.i.i232) #135 %.pre44 = load i32, i32* %q.i.i.i232, align 4 br label %__internal_trig_reduction_kerneld.exit.i.i258 __internal_trig_reduction_kerneld.exit.i.i258: ; preds = %1665, %1629 %1667 = phi i32 [ %.pre44, %1665 ], [ %1657, %1629 ] %t.i.i.i231.0 = phi double [ %1666, %1665 ], [ %1662, %1629 ] %1668 = and i32 %1667, 3 %1669 = uitofp i32 %1668 to double %1670 = fadd double %t.i.i.i231.0, 0xC002D97C7F3321D2 %1671 = fmul double %1669, 0x3FF921FB54442D18 %1672 = fadd double %1670, %1671 %1673 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([12 x i8], [12 x i8]* @.str.1, i32 0, i32 0)) #135 %1674 = icmp eq i32 %1673, 350 br i1 %1674, label %1678, label %1675 1675: ; preds = %__internal_trig_reduction_kerneld.exit.i.i258 %1676 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([12 x i8], [12 x i8]* @.str.1, i32 0, i32 0)) #135 %1677 = icmp eq i32 %1676, 370 br i1 %1677, label %1678, label %1737 1678: ; preds = %1675, %__internal_trig_reduction_kerneld.exit.i.i258 %1679 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([12 x i8], [12 x i8]* @.str.1, i32 0, i32 0)) #135 %1680 = icmp eq i32 %1679, 200 br i1 %1680, label %1687, label %1681 1681: ; preds = %1678 %1682 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([12 x i8], [12 x i8]* @.str.1, i32 0, i32 0)) #135 %1683 = icmp eq i32 %1682, 350 br i1 %1683, label %1687, label %1684 1684: ; preds = %1681 %1685 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([12 x i8], [12 x i8]* @.str.1, i32 0, i32 0)) #135 %1686 = icmp eq i32 %1685, 370 br i1 %1686, label %1687, label %1690 1687: ; preds = %1684, %1681, %1678 %1688 = call double @llvm.fabs.f64(double %1672) %1689 = fcmp oeq double %1688, 0x7FF0000000000000 br label %__nv_isinfd.exit.i.i.i.i259 1690: ; preds = %1684 %1691 = call i32 @llvm.nvvm.d2i.lo(double %1672) #135 %1692 = call i32 @llvm.nvvm.d2i.hi(double %1672) #135 %1693 = and i32 %1692, 2147483647 %1694 = icmp eq i32 %1693, 2146435072 %1695 = icmp eq i32 %1691, 0 %1696 = select i1 %1694, i1 %1695, i1 false br label %__nv_isinfd.exit.i.i.i.i259 __nv_isinfd.exit.i.i.i.i259: ; preds = %1690, %1687 %.032.in = phi i1 [ %1689, %1687 ], [ %1696, %1690 ] br i1 %.032.in, label %1697, label %1699 1697: ; preds = %__nv_isinfd.exit.i.i.i.i259 %1698 = fmul double %1672, 0.000000e+00 br label %__internal_trig_reduction_kerneld.exit.i.i.i.i260 1699: ; preds = %__nv_isinfd.exit.i.i.i.i259 %1700 = fmul double %1672, 0x3FE45F306DC9C883 %1701 = call i32 @llvm.nvvm.d2i.rn(double %1700) #135 store i32 %1701, i32* %q.i.i.i.i.i218, align 4, !noalias !219 %1702 = sitofp i32 %1701 to double %1703 = fneg double %1702 %1704 = call double @llvm.fma.f64(double %1703, double noundef 0x3FF921FB54442D18, double %1672) %1705 = call double @llvm.fma.f64(double %1703, double noundef 0x3C91A62633145C00, double %1704) %1706 = call double @llvm.fma.f64(double %1703, double noundef 0x397B839A252049C0, double %1705) %1707 = call double @llvm.fabs.f64(double %1672) %1708 = fcmp ult double %1707, 0x41E0000000000000 br i1 %1708, label %__internal_trig_reduction_kerneld.exit.i.i.i.i260, label %1709 1709: ; preds = %1699 %1710 = call fastcc double @__internal_trig_reduction_slowpathd(double %1672, i32* noalias nocapture nofree noundef nonnull writeonly align 4 dereferenceable(4) %q.i.i.i.i.i218) #135 %.pre46 = load i32, i32* %q.i.i.i.i.i218, align 4 br label %__internal_trig_reduction_kerneld.exit.i.i.i.i260 __internal_trig_reduction_kerneld.exit.i.i.i.i260: ; preds = %1699, %1709, %1697 %i.i.i.i.i225.0 = phi i32 [ 0, %1697 ], [ %.pre46, %1709 ], [ %1701, %1699 ] %.031 = phi double [ %1698, %1697 ], [ %1710, %1709 ], [ %1706, %1699 ] %1711 = fmul double %.031, %.031 %1712 = call double @llvm.fma.f64(double %1711, double noundef 0xBDA8FF8320FD8164, double noundef 0x3E21EEA7C1EF8528) %1713 = call double @llvm.fma.f64(double %1712, double %1711, double noundef 0xBE927E4F8E06E6D9) %1714 = call double @llvm.fma.f64(double %1713, double %1711, double noundef 0x3EFA01A019DDBCE9) %1715 = call double @llvm.fma.f64(double %1714, double %1711, double noundef 0xBF56C16C16C15D47) %1716 = call double @llvm.fma.f64(double %1715, double %1711, double noundef 0x3FA5555555555551) %1717 = call double @llvm.fma.f64(double %1716, double %1711, double noundef -5.000000e-01) %1718 = call double @llvm.fma.f64(double %1717, double %1711, double noundef 1.000000e+00) %1719 = call double @llvm.fma.f64(double %1711, double noundef 0x3DE5DB65F9785EBA, double noundef 0xBE5AE5F12CB0D246) %1720 = call double @llvm.fma.f64(double %1719, double %1711, double noundef 0x3EC71DE369ACE392) %1721 = call double @llvm.fma.f64(double %1720, double %1711, double noundef 0xBF2A01A019DB62A1) %1722 = call double @llvm.fma.f64(double %1721, double %1711, double noundef 0x3F81111111110818) %1723 = call double @llvm.fma.f64(double %1722, double %1711, double noundef 0xBFC5555555555554) %1724 = call double @llvm.fma.f64(double %1723, double %1711, double noundef 0.000000e+00) %1725 = call double @llvm.fma.f64(double %1724, double %.031, double %.031) %1726 = call i32 @llvm.nvvm.d2i.hi(double %1725) #135 %1727 = call i32 @llvm.nvvm.d2i.lo(double %1725) #135 %1728 = xor i32 %1726, -2147483648 %1729 = call double @llvm.nvvm.lohi.i2d(i32 %1727, i32 %1728) #135 %1730 = and i32 %i.i.i.i.i225.0, 1 %.not63 = icmp eq i32 %1730, 0 %spec.select18 = select i1 %.not63, double %1718, double %1729 %1731 = and i32 %i.i.i.i.i225.0, 2 %.not64 = icmp eq i32 %1731, 0 br i1 %.not64, label %__internal_cos_offset.exit.i265, label %1732 1732: ; preds = %__internal_trig_reduction_kerneld.exit.i.i.i.i260 %1733 = call i32 @llvm.nvvm.d2i.hi(double %spec.select18) #135 %1734 = call i32 @llvm.nvvm.d2i.lo(double %spec.select18) #135 %1735 = xor i32 %1733, -2147483648 %1736 = call double @llvm.nvvm.lohi.i2d(i32 %1734, i32 %1735) #135 br label %__internal_cos_offset.exit.i265 1737: ; preds = %1675 %1738 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([12 x i8], [12 x i8]* @.str.1, i32 0, i32 0)) #135 %1739 = icmp eq i32 %1738, 200 br i1 %1739, label %1746, label %1740 1740: ; preds = %1737 %1741 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([12 x i8], [12 x i8]* @.str.1, i32 0, i32 0)) #135 %1742 = icmp eq i32 %1741, 350 br i1 %1742, label %1746, label %1743 1743: ; preds = %1740 %1744 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([12 x i8], [12 x i8]* @.str.1, i32 0, i32 0)) #135 %1745 = icmp eq i32 %1744, 370 br i1 %1745, label %1746, label %1749 1746: ; preds = %1743, %1740, %1737 %1747 = call double @llvm.fabs.f64(double %1672) %1748 = fcmp oeq double %1747, 0x7FF0000000000000 br label %__nv_isinfd.exit.i.i.i262 1749: ; preds = %1743 %1750 = call i32 @llvm.nvvm.d2i.lo(double %1672) #135 %1751 = call i32 @llvm.nvvm.d2i.hi(double %1672) #135 %1752 = and i32 %1751, 2147483647 %1753 = icmp eq i32 %1752, 2146435072 %1754 = icmp eq i32 %1750, 0 %1755 = select i1 %1753, i1 %1754, i1 false br label %__nv_isinfd.exit.i.i.i262 __nv_isinfd.exit.i.i.i262: ; preds = %1749, %1746 %.033.in = phi i1 [ %1748, %1746 ], [ %1755, %1749 ] br i1 %.033.in, label %1756, label %1758 1756: ; preds = %__nv_isinfd.exit.i.i.i262 %1757 = fmul double %1672, 0.000000e+00 br label %__internal_sin_cos_kerneld.exit.i.i.i264 1758: ; preds = %__nv_isinfd.exit.i.i.i262 %1759 = fmul double %1672, 0x3FE45F306DC9C883 %1760 = call i32 @llvm.nvvm.d2i.rn(double %1759) #135 store i32 %1760, i32* %q.i.i.i.i202, align 4, !noalias !219 %1761 = sitofp i32 %1760 to double %1762 = fneg double %1761 %1763 = call double @llvm.fma.f64(double %1762, double noundef 0x3FF921FB54442D18, double %1672) %1764 = call double @llvm.fma.f64(double %1762, double noundef 0x3C91A62633145C00, double %1763) %1765 = call double @llvm.fma.f64(double %1762, double noundef 0x397B839A252049C0, double %1764) %1766 = call double @llvm.fabs.f64(double %1672) %1767 = fcmp ult double %1766, 0x41E0000000000000 br i1 %1767, label %__internal_sin_cos_kerneld.exit.i.i.i264, label %1768 1768: ; preds = %1758 %1769 = call fastcc double @__internal_trig_reduction_slowpathd(double %1672, i32* noalias nocapture nofree noundef nonnull writeonly align 4 dereferenceable(4) %q.i.i.i.i202) #135 %.pre45 = load i32, i32* %q.i.i.i.i202, align 4 br label %__internal_sin_cos_kerneld.exit.i.i.i264 __internal_sin_cos_kerneld.exit.i.i.i264: ; preds = %1758, %1768, %1756 %i.i.i.i229.0 = phi i32 [ 0, %1756 ], [ %.pre45, %1768 ], [ %1760, %1758 ] %z.i.i.i228.0 = phi double [ %1757, %1756 ], [ %1769, %1768 ], [ %1765, %1758 ] %1770 = add nsw i32 %i.i.i.i229.0, 1 %1771 = and i32 %1770, 1 %1772 = shl nuw nsw i32 %1771, 3 %1773 = getelementptr inbounds [16 x double], [16 x double] addrspace(1)* @__cudart_sin_cos_coeffs, i32 0, i32 %1772 %1774 = fmul double %z.i.i.i228.0, %z.i.i.i228.0 %.not61 = icmp eq i32 %1771, 0 %1775 = select i1 %.not61, double 0x3DE5DB65F9785EBA, double 0xBDA8FF8320FD8164 %1776 = getelementptr inbounds double, double addrspace(1)* %1773, i32 1 %1777 = load double, double addrspace(1)* %1776, align 8 %1778 = call double @llvm.fma.f64(double noundef %1775, double %1774, double %1777) %1779 = getelementptr inbounds double, double addrspace(1)* %1773, i32 2 %1780 = load double, double addrspace(1)* %1779, align 8 %1781 = call double @llvm.fma.f64(double %1778, double %1774, double %1780) %1782 = getelementptr inbounds double, double addrspace(1)* %1773, i32 3 %1783 = load double, double addrspace(1)* %1782, align 8 %1784 = call double @llvm.fma.f64(double %1781, double %1774, double %1783) %1785 = getelementptr inbounds double, double addrspace(1)* %1773, i32 4 %1786 = load double, double addrspace(1)* %1785, align 8 %1787 = call double @llvm.fma.f64(double %1784, double %1774, double %1786) %1788 = getelementptr inbounds double, double addrspace(1)* %1773, i32 5 %1789 = load double, double addrspace(1)* %1788, align 8 %1790 = call double @llvm.fma.f64(double %1787, double %1774, double %1789) %1791 = getelementptr inbounds double, double addrspace(1)* %1773, i32 6 %1792 = load double, double addrspace(1)* %1791, align 8 %1793 = call double @llvm.fma.f64(double %1790, double %1774, double %1792) %1794 = call double @llvm.fma.f64(double %1793, double %z.i.i.i228.0, double %z.i.i.i228.0) %1795 = call double @llvm.fma.f64(double %1793, double %1774, double noundef 1.000000e+00) %spec.select19 = select i1 %.not61, double %1794, double %1795 %1796 = and i32 %1770, 2 %.not62 = icmp eq i32 %1796, 0 %1797 = call double @llvm.fma.f64(double %spec.select19, double noundef -1.000000e+00, double noundef 0.000000e+00) %.135 = select i1 %.not62, double %spec.select19, double %1797 br label %__internal_cos_offset.exit.i265 __internal_cos_offset.exit.i265: ; preds = %__internal_trig_reduction_kerneld.exit.i.i.i.i260, %1732, %__internal_sin_cos_kerneld.exit.i.i.i264 %.030 = phi double [ %.135, %__internal_sin_cos_kerneld.exit.i.i.i264 ], [ %1736, %1732 ], [ %spec.select18, %__internal_trig_reduction_kerneld.exit.i.i.i.i260 ] %1798 = fmul double %1655, %.030 br label %__nv_y0.exit266 __nv_y0.exit266: ; preds = %1534, %1592, %__nv_isinfd.exit.i257, %__internal_cos_offset.exit.i265, %1563, %__nv_j0.exit.i256 %r.i239.4 = phi double [ %1531, %__nv_j0.exit.i256 ], [ %1560, %1534 ], [ %1589, %1563 ], [ %1610, %1592 ], [ %1798, %__internal_cos_offset.exit.i265 ], [ 0.000000e+00, %__nv_isinfd.exit.i257 ] %r.i239.5 = select i1 %1200, double 0xFFF8000000000000, double %r.i239.4 br label %__nv_y1.exit416 1799: ; preds = %__nv_y0.exit br i1 %2, label %1800, label %1802 1800: ; preds = %1799 %1801 = fdiv double 0xBFE45F306DC9C883, %1 br label %2397 1802: ; preds = %1799 %1803 = fcmp ugt double %1, 0x3FF4C6F208132576 br i1 %1803, label %2133, label %1804 1804: ; preds = %1802 %1805 = fmul double %a, %a %1806 = call double @llvm.fma.f64(double %1805, double noundef 0x3D5249F90687428C, double noundef 0xBDCF0B5B1FB7B95E) %1807 = call double @llvm.fma.f64(double %1806, double %1805, double noundef 0x3E432E589311FA14) %1808 = call double @llvm.fma.f64(double %1807, double %1805, double noundef 0xBEB0A780AA4A92E9) %1809 = call double @llvm.fma.f64(double %1808, double %1805, double noundef 0x3F12C7DBFFCAEC2B) %1810 = call double @llvm.fma.f64(double %1809, double %1805, double noundef 0xBF6835B97894BA4A) %1811 = call double @llvm.fma.f64(double %1810, double %1805, double noundef 0x3FABD3975C75B4A3) %1812 = call double @llvm.fma.f64(double %1811, double %1805, double noundef 0xBFC91866143CBC8A) %1813 = fmul double %1, %1812 %1814 = fcmp ugt double %1, 0x400353AABAD7B784 br i1 %1814, label %1832, label %1815 1815: ; preds = %1804 %1816 = call double @llvm.fma.f64(double %1, double noundef 0x3D020E4ADCDE2AD3, double noundef 0xBD4DD167A0DC3F55) %1817 = call double @llvm.fma.f64(double %1816, double %1, double noundef 0x3D5503F5A491E487) %1818 = call double @llvm.fma.f64(double %1817, double %1, double noundef 0x3DC1F29940C2403A) %1819 = call double @llvm.fma.f64(double %1818, double %1, double noundef 0x3D84CF9302EACDEF) %1820 = call double @llvm.fma.f64(double %1819, double %1, double noundef 0xBE384A53DBBCA436) %1821 = call double @llvm.fma.f64(double %1820, double %1, double noundef 0x3D9779BEE4F63BCC) %1822 = call double @llvm.fma.f64(double %1821, double %1, double noundef 0x3EA6C160E414F3F0) %1823 = call double @llvm.fma.f64(double %1822, double %1, double noundef 0x3D8F3D2F12430699) %1824 = call double @llvm.fma.f64(double %1823, double %1, double noundef 0xBF0C71C72C0CED04) %1825 = call double @llvm.fma.f64(double %1824, double %1, double noundef 0x3D659BCA506F1128) %1826 = call double @llvm.fma.f64(double %1825, double %1, double noundef 0x3F65555555506982) %1827 = call double @llvm.fma.f64(double %1826, double %1, double noundef 0x3D15BA0B425F1BFB) %1828 = call double @llvm.fma.f64(double %1827, double %1, double noundef 0xBFB0000000000065) %1829 = call double @llvm.fma.f64(double %1828, double %1, double noundef 0x3C8729A7253FB679) %1830 = call double @llvm.fma.f64(double %1829, double %1, double noundef 5.000000e-01) %1831 = fmul double %1, %1830 br label %__nv_j1.exit.i405 1832: ; preds = %1804 %1833 = fcmp ugt double %1, 0x4015B1D0574614EA br i1 %1833, label %1853, label %1834 1834: ; preds = %1832 %1835 = fadd double %1, 0xC00EA75575AF6F09 %1836 = fadd double %1835, 0x3CA60155A9D1B256 %1837 = call double @llvm.fma.f64(double %1836, double noundef 0xBCF8D3CDBB60175E, double noundef 0x3D41011A1DF02DAD) %1838 = call double @llvm.fma.f64(double %1837, double %1836, double noundef 0x3D76013AC1E5E222) %1839 = call double @llvm.fma.f64(double %1838, double %1836, double noundef 0xBDBEC315D96D5F03) %1840 = call double @llvm.fma.f64(double %1839, double %1836, double noundef 0xBDF03BE1B4B57207) %1841 = call double @llvm.fma.f64(double %1840, double %1836, double noundef 0x3E345695F8B660F7) %1842 = call double @llvm.fma.f64(double %1841, double %1836, double noundef 0x3E617069FCFCFFF4) %1843 = call double @llvm.fma.f64(double %1842, double %1836, double noundef 0xBEA33825C36745EB) %1844 = call double @llvm.fma.f64(double %1843, double %1836, double noundef 0xBEC9799D4F90931B) %1845 = call double @llvm.fma.f64(double %1844, double %1836, double noundef 0x3F083A06E2F7DF13) %1846 = call double @llvm.fma.f64(double %1845, double %1836, double noundef 0x3F26E4C2D53A7CF6) %1847 = call double @llvm.fma.f64(double %1846, double %1836, double noundef 0xBF624B3409957B1C) %1848 = call double @llvm.fma.f64(double %1847, double %1836, double noundef 0xBF7537544C3325DF) %1849 = call double @llvm.fma.f64(double %1848, double %1836, double noundef 0x3FAB589D1DA138E2) %1850 = call double @llvm.fma.f64(double %1849, double %1836, double noundef 0x3FAAE8A39F51AD13) %1851 = call double @llvm.fma.f64(double %1850, double %1836, double noundef 0xBFD9C6CF582CBF7F) %1852 = fmul double %1836, %1851 br label %__nv_j1.exit.i405 1853: ; preds = %1832 %1854 = fcmp ugt double %1, 0x40213065E54C1AA9 br i1 %1854, label %1874, label %1855 1855: ; preds = %1853 %1856 = fadd double %1, 0xC01C0FF5F3B47250 %1857 = fadd double %1856, 0x3C9B226D9D243827 %1858 = call double @llvm.fma.f64(double %1857, double noundef 0x3CF3EB867515FAD6, double noundef 0xBD40E8363DB649A9) %1859 = call double @llvm.fma.f64(double %1858, double %1857, double noundef 0xBD73B7DD4A6608FB) %1860 = call double @llvm.fma.f64(double %1859, double %1857, double noundef 0x3DBEC5E01482C750) %1861 = call double @llvm.fma.f64(double %1860, double %1857, double noundef 0x3DEC62BB9E882103) %1862 = call double @llvm.fma.f64(double %1861, double %1857, double noundef 0xBE34462EED732A23) %1863 = call double @llvm.fma.f64(double %1862, double %1857, double noundef 0xBE5D48DCAD7DC59B) %1864 = call double @llvm.fma.f64(double %1863, double %1857, double noundef 0x3EA3026DF29167E9) %1865 = call double @llvm.fma.f64(double %1864, double %1857, double noundef 0x3EC4255B0119666C) %1866 = call double @llvm.fma.f64(double %1865, double %1857, double noundef 0xBF0796A751B32693) %1867 = call double @llvm.fma.f64(double %1866, double %1857, double noundef 0xBF207358BBDBA284) %1868 = call double @llvm.fma.f64(double %1867, double %1857, double noundef 0x3F613FBC7D6927B1) %1869 = call double @llvm.fma.f64(double %1868, double %1857, double noundef 0x3F69A4B292E3DD75) %1870 = call double @llvm.fma.f64(double %1869, double %1857, double noundef 0xBFA80C83BDEEE4FB) %1871 = call double @llvm.fma.f64(double %1870, double %1857, double noundef 0xBF95E70DC60362BF) %1872 = call double @llvm.fma.f64(double %1871, double %1857, double noundef 0x3FD33518B3874E8A) %1873 = fmul double %1857, %1872 br label %__nv_j1.exit.i405 1874: ; preds = %1853 %1875 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([12 x i8], [12 x i8]* @.str.1, i32 0, i32 0)) #135 %1876 = icmp eq i32 %1875, 200 br i1 %1876, label %1883, label %1877 1877: ; preds = %1874 %1878 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([12 x i8], [12 x i8]* @.str.1, i32 0, i32 0)) #135 %1879 = icmp eq i32 %1878, 350 br i1 %1879, label %1883, label %1880 1880: ; preds = %1877 %1881 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([12 x i8], [12 x i8]* @.str.1, i32 0, i32 0)) #135 %1882 = icmp eq i32 %1881, 370 br i1 %1882, label %1883, label %1885 1883: ; preds = %1880, %1877, %1874 %1884 = fcmp oeq double %1, 0x7FF0000000000000 br label %__nv_isinfd.exit.i.i396 1885: ; preds = %1880 %1886 = call i32 @llvm.nvvm.d2i.lo(double %1) #135 %1887 = call i32 @llvm.nvvm.d2i.hi(double %1) #135 %1888 = and i32 %1887, 2147483647 %1889 = icmp eq i32 %1888, 2146435072 %1890 = icmp eq i32 %1886, 0 %1891 = select i1 %1889, i1 %1890, i1 false br label %__nv_isinfd.exit.i.i396 __nv_isinfd.exit.i.i396: ; preds = %1885, %1883 %.058.in = phi i1 [ %1884, %1883 ], [ %1891, %1885 ] br i1 %.058.in, label %__nv_j1.exit.i405, label %1892 1892: ; preds = %__nv_isinfd.exit.i.i396 %1893 = call double @llvm.nvvm.rcp.approx.ftz.d(double %1) #135 %1894 = fneg double %1 %1895 = call double @llvm.fma.f64(double %1894, double %1893, double noundef 1.000000e+00) %1896 = call double @llvm.fma.f64(double %1895, double %1895, double %1895) %1897 = call double @llvm.fma.f64(double %1896, double %1893, double %1893) %1898 = fmul double %1897, %1897 %1899 = call double @llvm.fma.f64(double %1898, double noundef 0x40CD02EA3F2F6751, double noundef 0xC099C06322A3F8BE) %1900 = call double @llvm.fma.f64(double %1899, double %1898, double noundef 0x405B89354DA77324) %1901 = call double @llvm.fma.f64(double %1900, double %1898, double noundef 0xC01E352294653188) %1902 = call double @llvm.fma.f64(double %1901, double %1898, double noundef 0x3FE9BC7DB16BD7A7) %1903 = call double @llvm.fma.f64(double %1902, double %1898, double noundef 0xBFC8BFE1C3A4F741) %1904 = call double @llvm.fma.f64(double %1903, double %1898, double noundef 0x3FC7FFFFF0D00BE2) %1905 = call double @llvm.fma.f64(double %1904, double %1898, double noundef 0x3FF00000000068CC) %1906 = call double @llvm.fma.f64(double %1898, double noundef 0xC18DA26B212FDC9A, double noundef 0x415A30AC6857BEE0) %1907 = call double @llvm.fma.f64(double %1906, double %1898, double noundef 0xC11764222AD7C910) %1908 = call double @llvm.fma.f64(double %1907, double %1898, double noundef 0x40CEB02E0C306857) %1909 = call double @llvm.fma.f64(double %1908, double %1898, double noundef 0xC08351859FA2B23B) %1910 = call double @llvm.fma.f64(double %1909, double %1898, double noundef 0x403E65A07AF51F42) %1911 = call double @llvm.fma.f64(double %1910, double %1898, double noundef 0xC002F2B817F77A57) %1912 = call double @llvm.fma.f64(double %1911, double %1898, double noundef 0x3FD7BCC34DA069FD) %1913 = call double @llvm.fma.f64(double %1912, double %1898, double noundef 0xBFC4FFFFF8A44463) %1914 = call double @llvm.fma.f64(double %1913, double %1898, double noundef 0x3FD7FFFFFFFF5CD7) %1915 = call double @llvm.fma.f64(double %1914, double %1897, double %1) %1916 = call double @llvm.nvvm.rsqrt.approx.d(double %1) #135 %1917 = fmul double %1916, 0x3FE9884533D43651 %1918 = fmul double %1917, %1905 %1919 = fmul double %1915, 0x3FE45F306DC9C883 %1920 = call i32 @llvm.nvvm.d2i.rn(double %1919) #135 store i32 %1920, i32* %q.i.i.i16.i334, align 4, !noalias !219 %1921 = sitofp i32 %1920 to double %1922 = fneg double %1921 %1923 = call double @llvm.fma.f64(double %1922, double noundef 0x3FF921FB54442D18, double %1915) %1924 = call double @llvm.fma.f64(double %1922, double noundef 0x3C91A62633145C00, double %1923) %1925 = call double @llvm.fma.f64(double %1922, double noundef 0x397B839A252049C0, double %1924) %1926 = call double @llvm.fabs.f64(double %1915) %1927 = fcmp ult double %1926, 0x41E0000000000000 br i1 %1927, label %__internal_trig_reduction_kerneld.exit.i.i20.i397, label %1928 1928: ; preds = %1892 %1929 = call fastcc double @__internal_trig_reduction_slowpathd(double %1915, i32* noalias nocapture nofree noundef nonnull writeonly align 4 dereferenceable(4) %q.i.i.i16.i334) #135 %.pre41 = load i32, i32* %q.i.i.i16.i334, align 4 br label %__internal_trig_reduction_kerneld.exit.i.i20.i397 __internal_trig_reduction_kerneld.exit.i.i20.i397: ; preds = %1928, %1892 %1930 = phi i32 [ %.pre41, %1928 ], [ %1920, %1892 ] %t.i.i.i15.i333.0 = phi double [ %1929, %1928 ], [ %1925, %1892 ] %1931 = and i32 %1930, 3 %1932 = uitofp i32 %1931 to double %1933 = fadd double %t.i.i.i15.i333.0, 0xC002D97C7F3321D2 %1934 = fmul double %1932, 0x3FF921FB54442D18 %1935 = fadd double %1933, %1934 %1936 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([12 x i8], [12 x i8]* @.str.1, i32 0, i32 0)) #135 %1937 = icmp eq i32 %1936, 350 br i1 %1937, label %1941, label %1938 1938: ; preds = %__internal_trig_reduction_kerneld.exit.i.i20.i397 %1939 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([12 x i8], [12 x i8]* @.str.1, i32 0, i32 0)) #135 %1940 = icmp eq i32 %1939, 370 br i1 %1940, label %1941, label %2000 1941: ; preds = %1938, %__internal_trig_reduction_kerneld.exit.i.i20.i397 %1942 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([12 x i8], [12 x i8]* @.str.1, i32 0, i32 0)) #135 %1943 = icmp eq i32 %1942, 200 br i1 %1943, label %1950, label %1944 1944: ; preds = %1941 %1945 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([12 x i8], [12 x i8]* @.str.1, i32 0, i32 0)) #135 %1946 = icmp eq i32 %1945, 350 br i1 %1946, label %1950, label %1947 1947: ; preds = %1944 %1948 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([12 x i8], [12 x i8]* @.str.1, i32 0, i32 0)) #135 %1949 = icmp eq i32 %1948, 370 br i1 %1949, label %1950, label %1953 1950: ; preds = %1947, %1944, %1941 %1951 = call double @llvm.fabs.f64(double %1935) %1952 = fcmp oeq double %1951, 0x7FF0000000000000 br label %__nv_isinfd.exit.i.i.i.i.i398 1953: ; preds = %1947 %1954 = call i32 @llvm.nvvm.d2i.lo(double %1935) #135 %1955 = call i32 @llvm.nvvm.d2i.hi(double %1935) #135 %1956 = and i32 %1955, 2147483647 %1957 = icmp eq i32 %1956, 2146435072 %1958 = icmp eq i32 %1954, 0 %1959 = select i1 %1957, i1 %1958, i1 false br label %__nv_isinfd.exit.i.i.i.i.i398 __nv_isinfd.exit.i.i.i.i.i398: ; preds = %1953, %1950 %.054.in = phi i1 [ %1952, %1950 ], [ %1959, %1953 ] br i1 %.054.in, label %1960, label %1962 1960: ; preds = %__nv_isinfd.exit.i.i.i.i.i398 %1961 = fmul double %1935, 0.000000e+00 br label %__internal_trig_reduction_kerneld.exit.i.i.i.i.i399 1962: ; preds = %__nv_isinfd.exit.i.i.i.i.i398 %1963 = fmul double %1935, 0x3FE45F306DC9C883 %1964 = call i32 @llvm.nvvm.d2i.rn(double %1963) #135 store i32 %1964, i32* %q.i.i.i.i.i.i320, align 4, !noalias !219 %1965 = sitofp i32 %1964 to double %1966 = fneg double %1965 %1967 = call double @llvm.fma.f64(double %1966, double noundef 0x3FF921FB54442D18, double %1935) %1968 = call double @llvm.fma.f64(double %1966, double noundef 0x3C91A62633145C00, double %1967) %1969 = call double @llvm.fma.f64(double %1966, double noundef 0x397B839A252049C0, double %1968) %1970 = call double @llvm.fabs.f64(double %1935) %1971 = fcmp ult double %1970, 0x41E0000000000000 br i1 %1971, label %__internal_trig_reduction_kerneld.exit.i.i.i.i.i399, label %1972 1972: ; preds = %1962 %1973 = call fastcc double @__internal_trig_reduction_slowpathd(double %1935, i32* noalias nocapture nofree noundef nonnull writeonly align 4 dereferenceable(4) %q.i.i.i.i.i.i320) #135 %.pre43 = load i32, i32* %q.i.i.i.i.i.i320, align 4 br label %__internal_trig_reduction_kerneld.exit.i.i.i.i.i399 __internal_trig_reduction_kerneld.exit.i.i.i.i.i399: ; preds = %1962, %1972, %1960 %i.i.i.i.i.i327.0 = phi i32 [ 0, %1960 ], [ %.pre43, %1972 ], [ %1964, %1962 ] %.053 = phi double [ %1961, %1960 ], [ %1973, %1972 ], [ %1969, %1962 ] %1974 = fmul double %.053, %.053 %1975 = call double @llvm.fma.f64(double %1974, double noundef 0xBDA8FF8320FD8164, double noundef 0x3E21EEA7C1EF8528) %1976 = call double @llvm.fma.f64(double %1975, double %1974, double noundef 0xBE927E4F8E06E6D9) %1977 = call double @llvm.fma.f64(double %1976, double %1974, double noundef 0x3EFA01A019DDBCE9) %1978 = call double @llvm.fma.f64(double %1977, double %1974, double noundef 0xBF56C16C16C15D47) %1979 = call double @llvm.fma.f64(double %1978, double %1974, double noundef 0x3FA5555555555551) %1980 = call double @llvm.fma.f64(double %1979, double %1974, double noundef -5.000000e-01) %1981 = call double @llvm.fma.f64(double %1980, double %1974, double noundef 1.000000e+00) %1982 = call double @llvm.fma.f64(double %1974, double noundef 0x3DE5DB65F9785EBA, double noundef 0xBE5AE5F12CB0D246) %1983 = call double @llvm.fma.f64(double %1982, double %1974, double noundef 0x3EC71DE369ACE392) %1984 = call double @llvm.fma.f64(double %1983, double %1974, double noundef 0xBF2A01A019DB62A1) %1985 = call double @llvm.fma.f64(double %1984, double %1974, double noundef 0x3F81111111110818) %1986 = call double @llvm.fma.f64(double %1985, double %1974, double noundef 0xBFC5555555555554) %1987 = call double @llvm.fma.f64(double %1986, double %1974, double noundef 0.000000e+00) %1988 = call double @llvm.fma.f64(double %1987, double %.053, double %.053) %1989 = call i32 @llvm.nvvm.d2i.hi(double %1988) #135 %1990 = call i32 @llvm.nvvm.d2i.lo(double %1988) #135 %1991 = xor i32 %1989, -2147483648 %1992 = call double @llvm.nvvm.lohi.i2d(i32 %1990, i32 %1991) #135 %1993 = and i32 %i.i.i.i.i.i327.0, 1 %.not59 = icmp eq i32 %1993, 0 %spec.select21 = select i1 %.not59, double %1981, double %1992 %1994 = and i32 %i.i.i.i.i.i327.0, 2 %.not60 = icmp eq i32 %1994, 0 br i1 %.not60, label %__internal_cos_offset.exit.i.i404, label %1995 1995: ; preds = %__internal_trig_reduction_kerneld.exit.i.i.i.i.i399 %1996 = call i32 @llvm.nvvm.d2i.hi(double %spec.select21) #135 %1997 = call i32 @llvm.nvvm.d2i.lo(double %spec.select21) #135 %1998 = xor i32 %1996, -2147483648 %1999 = call double @llvm.nvvm.lohi.i2d(i32 %1997, i32 %1998) #135 br label %__internal_cos_offset.exit.i.i404 2000: ; preds = %1938 %2001 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([12 x i8], [12 x i8]* @.str.1, i32 0, i32 0)) #135 %2002 = icmp eq i32 %2001, 200 br i1 %2002, label %2009, label %2003 2003: ; preds = %2000 %2004 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([12 x i8], [12 x i8]* @.str.1, i32 0, i32 0)) #135 %2005 = icmp eq i32 %2004, 350 br i1 %2005, label %2009, label %2006 2006: ; preds = %2003 %2007 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([12 x i8], [12 x i8]* @.str.1, i32 0, i32 0)) #135 %2008 = icmp eq i32 %2007, 370 br i1 %2008, label %2009, label %2012 2009: ; preds = %2006, %2003, %2000 %2010 = call double @llvm.fabs.f64(double %1935) %2011 = fcmp oeq double %2010, 0x7FF0000000000000 br label %__nv_isinfd.exit.i.i.i21.i401 2012: ; preds = %2006 %2013 = call i32 @llvm.nvvm.d2i.lo(double %1935) #135 %2014 = call i32 @llvm.nvvm.d2i.hi(double %1935) #135 %2015 = and i32 %2014, 2147483647 %2016 = icmp eq i32 %2015, 2146435072 %2017 = icmp eq i32 %2013, 0 %2018 = select i1 %2016, i1 %2017, i1 false br label %__nv_isinfd.exit.i.i.i21.i401 __nv_isinfd.exit.i.i.i21.i401: ; preds = %2012, %2009 %.055.in = phi i1 [ %2011, %2009 ], [ %2018, %2012 ] br i1 %.055.in, label %2019, label %2021 2019: ; preds = %__nv_isinfd.exit.i.i.i21.i401 %2020 = fmul double %1935, 0.000000e+00 br label %__internal_sin_cos_kerneld.exit.i.i.i.i403 2021: ; preds = %__nv_isinfd.exit.i.i.i21.i401 %2022 = fmul double %1935, 0x3FE45F306DC9C883 %2023 = call i32 @llvm.nvvm.d2i.rn(double %2022) #135 store i32 %2023, i32* %q.i.i.i.i5.i304, align 4, !noalias !219 %2024 = sitofp i32 %2023 to double %2025 = fneg double %2024 %2026 = call double @llvm.fma.f64(double %2025, double noundef 0x3FF921FB54442D18, double %1935) %2027 = call double @llvm.fma.f64(double %2025, double noundef 0x3C91A62633145C00, double %2026) %2028 = call double @llvm.fma.f64(double %2025, double noundef 0x397B839A252049C0, double %2027) %2029 = call double @llvm.fabs.f64(double %1935) %2030 = fcmp ult double %2029, 0x41E0000000000000 br i1 %2030, label %__internal_sin_cos_kerneld.exit.i.i.i.i403, label %2031 2031: ; preds = %2021 %2032 = call fastcc double @__internal_trig_reduction_slowpathd(double %1935, i32* noalias nocapture nofree noundef nonnull writeonly align 4 dereferenceable(4) %q.i.i.i.i5.i304) #135 %.pre42 = load i32, i32* %q.i.i.i.i5.i304, align 4 br label %__internal_sin_cos_kerneld.exit.i.i.i.i403 __internal_sin_cos_kerneld.exit.i.i.i.i403: ; preds = %2021, %2031, %2019 %i.i.i.i13.i331.0 = phi i32 [ 0, %2019 ], [ %.pre42, %2031 ], [ %2023, %2021 ] %z.i.i.i12.i330.0 = phi double [ %2020, %2019 ], [ %2032, %2031 ], [ %2028, %2021 ] %2033 = add nsw i32 %i.i.i.i13.i331.0, 1 %2034 = and i32 %2033, 1 %2035 = shl nuw nsw i32 %2034, 3 %2036 = getelementptr inbounds [16 x double], [16 x double] addrspace(1)* @__cudart_sin_cos_coeffs, i32 0, i32 %2035 %2037 = fmul double %z.i.i.i12.i330.0, %z.i.i.i12.i330.0 %.not57 = icmp eq i32 %2034, 0 %2038 = select i1 %.not57, double 0x3DE5DB65F9785EBA, double 0xBDA8FF8320FD8164 %2039 = getelementptr inbounds double, double addrspace(1)* %2036, i32 1 %2040 = load double, double addrspace(1)* %2039, align 8 %2041 = call double @llvm.fma.f64(double noundef %2038, double %2037, double %2040) %2042 = getelementptr inbounds double, double addrspace(1)* %2036, i32 2 %2043 = load double, double addrspace(1)* %2042, align 8 %2044 = call double @llvm.fma.f64(double %2041, double %2037, double %2043) %2045 = getelementptr inbounds double, double addrspace(1)* %2036, i32 3 %2046 = load double, double addrspace(1)* %2045, align 8 %2047 = call double @llvm.fma.f64(double %2044, double %2037, double %2046) %2048 = getelementptr inbounds double, double addrspace(1)* %2036, i32 4 %2049 = load double, double addrspace(1)* %2048, align 8 %2050 = call double @llvm.fma.f64(double %2047, double %2037, double %2049) %2051 = getelementptr inbounds double, double addrspace(1)* %2036, i32 5 %2052 = load double, double addrspace(1)* %2051, align 8 %2053 = call double @llvm.fma.f64(double %2050, double %2037, double %2052) %2054 = getelementptr inbounds double, double addrspace(1)* %2036, i32 6 %2055 = load double, double addrspace(1)* %2054, align 8 %2056 = call double @llvm.fma.f64(double %2053, double %2037, double %2055) %2057 = call double @llvm.fma.f64(double %2056, double %z.i.i.i12.i330.0, double %z.i.i.i12.i330.0) %2058 = call double @llvm.fma.f64(double %2056, double %2037, double noundef 1.000000e+00) %spec.select22 = select i1 %.not57, double %2057, double %2058 %2059 = and i32 %2033, 2 %.not58 = icmp eq i32 %2059, 0 %2060 = call double @llvm.fma.f64(double %spec.select22, double noundef -1.000000e+00, double noundef 0.000000e+00) %.157 = select i1 %.not58, double %spec.select22, double %2060 br label %__internal_cos_offset.exit.i.i404 __internal_cos_offset.exit.i.i404: ; preds = %__internal_trig_reduction_kerneld.exit.i.i.i.i.i399, %1995, %__internal_sin_cos_kerneld.exit.i.i.i.i403 %.051 = phi double [ %.157, %__internal_sin_cos_kerneld.exit.i.i.i.i403 ], [ %1999, %1995 ], [ %spec.select21, %__internal_trig_reduction_kerneld.exit.i.i.i.i.i399 ] %2061 = fmul double %1918, %.051 br label %__nv_j1.exit.i405 __nv_j1.exit.i405: ; preds = %1834, %__internal_cos_offset.exit.i.i404, %__nv_isinfd.exit.i.i396, %1855, %1815 %r.i.i340.3 = phi double [ %1831, %1815 ], [ %1852, %1834 ], [ %1873, %1855 ], [ %2061, %__internal_cos_offset.exit.i.i404 ], [ 0.000000e+00, %__nv_isinfd.exit.i.i396 ] %2062 = fcmp olt double %1, 1.000000e-30 %2063 = fmul double %1, 5.000000e-01 %r.i.i340.5 = select i1 %2062, double %2063, double %r.i.i340.3 %2064 = call i32 @llvm.nvvm.d2i.hi(double %1) #135 %2065 = call i32 @llvm.nvvm.d2i.lo(double %1) #135 %2066 = icmp slt i32 %2064, 1048576 br i1 %2066, label %2067, label %2071 2067: ; preds = %__nv_j1.exit.i405 %2068 = fmul double %1, 0x4350000000000000 %2069 = call i32 @llvm.nvvm.d2i.hi(double %2068) #135 %2070 = call i32 @llvm.nvvm.d2i.lo(double %2068) #135 br label %2071 2071: ; preds = %2067, %__nv_j1.exit.i405 %.059 = phi double [ %2068, %2067 ], [ %1, %__nv_j1.exit.i405 ] %ihi.i.i291.0 = phi i32 [ %2069, %2067 ], [ %2064, %__nv_j1.exit.i405 ] %ilo.i.i292.0 = phi i32 [ %2070, %2067 ], [ %2065, %__nv_j1.exit.i405 ] %e.i.i293.0 = phi i32 [ -1077, %2067 ], [ -1023, %__nv_j1.exit.i405 ] %2072 = add i32 %ihi.i.i291.0, -1 %2073 = icmp ult i32 %2072, 2146435071 br i1 %2073, label %2074, label %2123 2074: ; preds = %2071 %2075 = lshr i32 %ihi.i.i291.0, 20 %2076 = add nsw i32 %e.i.i293.0, %2075 %2077 = and i32 %ihi.i.i291.0, -2146435073 %2078 = or i32 %2077, 1072693248 %2079 = call double @llvm.nvvm.lohi.i2d(i32 %ilo.i.i292.0, i32 %2078) #135 %2080 = icmp sgt i32 %2078, 1073127582 br i1 %2080, label %2081, label %2087 2081: ; preds = %2074 %2082 = call i32 @llvm.nvvm.d2i.lo(double %2079) #135 %2083 = call i32 @llvm.nvvm.d2i.hi(double %2079) #135 %2084 = add i32 %2083, -1048576 %2085 = call double @llvm.nvvm.lohi.i2d(i32 %2082, i32 %2084) #135 %2086 = add nsw i32 %2076, 1 br label %2087 2087: ; preds = %2081, %2074 %m.i.i281.0 = phi double [ %2085, %2081 ], [ %2079, %2074 ] %e.i.i293.1 = phi i32 [ %2086, %2081 ], [ %2076, %2074 ] %2088 = fadd double %m.i.i281.0, -1.000000e+00 %2089 = fadd double %m.i.i281.0, 1.000000e+00 %2090 = call double @llvm.nvvm.rcp.approx.ftz.d(double %2089) #135 %2091 = fneg double %2089 %2092 = call double @llvm.fma.f64(double %2091, double %2090, double noundef 1.000000e+00) %2093 = call double @llvm.fma.f64(double %2092, double %2092, double %2092) %2094 = call double @llvm.fma.f64(double %2093, double %2090, double %2090) %2095 = fmul double %2088, %2094 %2096 = fadd double %2095, %2095 %2097 = fmul double %2096, %2096 %2098 = call double @llvm.fma.f64(double %2097, double noundef 0x3EB1380B3AE80F1E, double noundef 0x3ED0EE258B7A8B04) %2099 = call double @llvm.fma.f64(double %2098, double %2097, double noundef 0x3EF3B2669F02676F) %2100 = call double @llvm.fma.f64(double %2099, double %2097, double noundef 0x3F1745CBA9AB0956) %2101 = call double @llvm.fma.f64(double %2100, double %2097, double noundef 0x3F3C71C72D1B5154) %2102 = call double @llvm.fma.f64(double %2101, double %2097, double noundef 0x3F624924923BE72D) %2103 = call double @llvm.fma.f64(double %2102, double %2097, double noundef 0x3F8999999999A3C4) %2104 = call double @llvm.fma.f64(double %2103, double %2097, double noundef 0x3FB5555555555554) %2105 = fsub double %2088, %2096 %2106 = fmul double %2105, 2.000000e+00 %2107 = fneg double %2096 %2108 = call double @llvm.fma.f64(double %2107, double %2088, double %2106) %2109 = fmul double %2094, %2108 %2110 = fmul double %2097, %2104 %2111 = call double @llvm.fma.f64(double %2110, double %2096, double %2109) %2112 = xor i32 %e.i.i293.1, -2147483648 %2113 = call double @llvm.nvvm.lohi.i2d(i32 %2112, i32 noundef 1127219200) #135 %2114 = call double @llvm.nvvm.lohi.i2d(i32 noundef -2147483648, i32 noundef 1127219200) #135 %2115 = fsub double %2113, %2114 %2116 = call double @llvm.fma.f64(double %2115, double noundef 0x3FE62E42FEFA39EF, double %2096) %2117 = fneg double %2115 %2118 = call double @llvm.fma.f64(double %2117, double noundef 0x3FE62E42FEFA39EF, double %2116) %2119 = fsub double %2118, %2096 %2120 = fsub double %2111, %2119 %2121 = call double @llvm.fma.f64(double %2115, double noundef 0x3C7ABC9E3B39803F, double %2120) %2122 = fadd double %2116, %2121 br label %__nv_log.exit.i406 2123: ; preds = %2071 %2124 = call double @llvm.fma.f64(double %.059, double noundef 0x7FF0000000000000, double noundef 0x7FF0000000000000) %2125 = call i32 @llvm.nvvm.d2i.hi(double %.059) #135 %2126 = bitcast i32 %2125 to float %2127 = fcmp oeq float %2126, 0.000000e+00 %q.i28.i287.0 = select i1 %2127, double 0xFFF0000000000000, double %2124 br label %__nv_log.exit.i406 __nv_log.exit.i406: ; preds = %2123, %2087 %q.i28.i287.1 = phi double [ %2122, %2087 ], [ %q.i28.i287.0, %2123 ] %2128 = fmul double %r.i.i340.5, %q.i28.i287.1 %2129 = fdiv double 1.000000e+00, %1 %2130 = fsub double %2128, %2129 %2131 = fmul double %2130, 0x3FE45F306DC9C883 %2132 = fadd double %1813, %2131 br label %2397 2133: ; preds = %1802 %2134 = fcmp ugt double %1, 0x4009B510EC2ADC83 br i1 %2134, label %2162, label %2135 2135: ; preds = %2133 %2136 = fadd double %1, 0xC00193BED4DFF243 %2137 = fadd double %2136, 0x3C8BD1E50D219BFD %2138 = call double @llvm.fma.f64(double %2137, double noundef 0xBE2B87B0BE2AA150, double noundef 0x3E4833AAE4D8B975) %2139 = call double @llvm.fma.f64(double %2138, double %2137, double noundef 0xBE44E279B423E68F) %2140 = call double @llvm.fma.f64(double %2139, double %2137, double noundef 0x3E129DC6A747EB4F) %2141 = call double @llvm.fma.f64(double %2140, double %2137, double noundef 0xBE61D15534496CD8) %2142 = call double @llvm.fma.f64(double %2141, double %2137, double noundef 0x3E7EEC8D48FECE00) %2143 = call double @llvm.fma.f64(double %2142, double %2137, double noundef 0xBE8D1180AF70A134) %2144 = call double @llvm.fma.f64(double %2143, double %2137, double noundef 0x3E9C8386A0EA1388) %2145 = call double @llvm.fma.f64(double %2144, double %2137, double noundef 0xBEB01A014E7F3250) %2146 = call double @llvm.fma.f64(double %2145, double %2137, double noundef 0x3EC1FB752010A320) %2147 = call double @llvm.fma.f64(double %2146, double %2137, double noundef 0xBED3AA0AFF4E332B) %2148 = call double @llvm.fma.f64(double %2147, double %2137, double noundef 0x3EE584A6C77F6700) %2149 = call double @llvm.fma.f64(double %2148, double %2137, double noundef 0xBEF794C520FC2EBB) %2150 = call double @llvm.fma.f64(double %2149, double %2137, double noundef 0x3F09D18D2D35CC71) %2151 = call double @llvm.fma.f64(double %2150, double %2137, double noundef 0xBF1C3FB7315C4599) %2152 = call double @llvm.fma.f64(double %2151, double %2137, double noundef 0x3F2EEA7ADECCE927) %2153 = call double @llvm.fma.f64(double %2152, double %2137, double noundef 0xBF40B2D85257446F) %2154 = call double @llvm.fma.f64(double %2153, double %2137, double noundef 0x3F517AB4B1FE5D5B) %2155 = call double @llvm.fma.f64(double %2154, double %2137, double noundef 0xBF65429DC6516C0D) %2156 = call double @llvm.fma.f64(double %2155, double %2137, double noundef 0x3F7E671C7D0B090B) %2157 = call double @llvm.fma.f64(double %2156, double %2137, double noundef 0xBF73A6DEC36FB27C) %2158 = call double @llvm.fma.f64(double %2157, double %2137, double noundef 0xBFA0D2AF4E931FD1) %2159 = call double @llvm.fma.f64(double %2158, double %2137, double noundef 0xBFBE56F82217B964) %2160 = call double @llvm.fma.f64(double %2159, double %2137, double noundef 0x3FE0AA48442F014B) %2161 = fmul double %2137, %2160 br label %2397 2162: ; preds = %2133 %2163 = fcmp ugt double %1, 0x401C0D26D5A541CB br i1 %2163, label %2188, label %2164 2164: ; preds = %2162 %2165 = fadd double %1, 0xC015B7FE4E87B02E %2166 = fadd double %2165, 0xBCBDFE7BAC228E8C %2167 = call double @llvm.fma.f64(double %2166, double noundef 0x3CBA3C76069F1D8C, double noundef 0x3CC69A30996793E2) %2168 = call double @llvm.fma.f64(double %2167, double %2166, double noundef 0xBCDDD8432FE756E7) %2169 = call double @llvm.fma.f64(double %2168, double %2166, double noundef 0xBD143158EEE220F7) %2170 = call double @llvm.fma.f64(double %2169, double %2166, double noundef 0x3D28D44491230F5A) %2171 = call double @llvm.fma.f64(double %2170, double %2166, double noundef 0xBD438842EAF4EDBC) %2172 = call double @llvm.fma.f64(double %2171, double %2166, double noundef 0x3D74958DAFBFAF5A) %2173 = call double @llvm.fma.f64(double %2172, double %2166, double noundef 0xBD9449A60E664848) %2174 = call double @llvm.fma.f64(double %2173, double %2166, double noundef 0x3D838BC8CD594A76) %2175 = call double @llvm.fma.f64(double %2174, double %2166, double noundef 0xBDFA798002141323) %2176 = call double @llvm.fma.f64(double %2175, double %2166, double noundef 0x3E380B4198956AAA) %2177 = call double @llvm.fma.f64(double %2176, double %2166, double noundef 0x3E5B62B5F21BACD4) %2178 = call double @llvm.fma.f64(double %2177, double %2166, double noundef 0xBEA255E729FB6AAE) %2179 = call double @llvm.fma.f64(double %2178, double %2166, double noundef 0xBEC80618F6BAE5AA) %2180 = call double @llvm.fma.f64(double %2179, double %2166, double noundef 0x3F085B940F8E8D36) %2181 = call double @llvm.fma.f64(double %2180, double %2166, double noundef 0x3F2337C7E10E14E8) %2182 = call double @llvm.fma.f64(double %2181, double %2166, double noundef 0xBF61BE6DB99332CA) %2183 = call double @llvm.fma.f64(double %2182, double %2166, double noundef 0xBF710A329E2BE9B8) %2184 = call double @llvm.fma.f64(double %2183, double %2166, double noundef 0x3FAA15D92DFE3FCF) %2185 = call double @llvm.fma.f64(double %2184, double %2166, double noundef 0x3FA00B9F8571C9BE) %2186 = call double @llvm.fma.f64(double %2185, double %2166, double noundef 0xBFD5C7C556F0C19A) %2187 = fmul double %2166, %2186 br label %2397 2188: ; preds = %2162 %2189 = fcmp ugt double %1, 0x4022585C739ACDDD br i1 %2189, label %2209, label %2190 2190: ; preds = %2188 %2191 = fadd double %1, 0xC0213127AE6169B4 %2192 = fadd double %2191, 0xBCB479CC068D9046 %2193 = call double @llvm.fma.f64(double %2192, double noundef 0x3CB09CCC22945996, double noundef 0xBD43515F67644276) %2194 = call double @llvm.fma.f64(double %2193, double %2192, double noundef 0xBD72C5B978E9F5C7) %2195 = call double @llvm.fma.f64(double %2194, double %2192, double noundef 0x3DBEC1151613913C) %2196 = call double @llvm.fma.f64(double %2195, double %2192, double noundef 0x3DE9E38D13C4A824) %2197 = call double @llvm.fma.f64(double %2196, double %2192, double noundef 0xBE341E75E1088EB5) %2198 = call double @llvm.fma.f64(double %2197, double %2192, double noundef 0xBE5A384EBB13CFE1) %2199 = call double @llvm.fma.f64(double %2198, double %2192, double noundef 0x3EA2BECB27F8C8F8) %2200 = call double @llvm.fma.f64(double %2199, double %2192, double noundef 0x3EC176E72B989FD8) %2201 = call double @llvm.fma.f64(double %2200, double %2192, double noundef 0xBF06F7BAB102F822) %2202 = call double @llvm.fma.f64(double %2201, double %2192, double noundef 0xBF1B50D7E1D278E1) %2203 = call double @llvm.fma.f64(double %2202, double %2192, double noundef 0x3F607A678D60004F) %2204 = call double @llvm.fma.f64(double %2203, double %2192, double noundef 0x3F63CED2A2E69115) %2205 = call double @llvm.fma.f64(double %2204, double %2192, double noundef 0xBFA6395DFE49FCD4) %2206 = call double @llvm.fma.f64(double %2205, double %2192, double noundef 0xBF902B3933CF21B1) %2207 = call double @llvm.fma.f64(double %2206, double %2192, double noundef 0x3FD15F993FCEAB5C) %2208 = fmul double %2192, %2207 br label %2397 2209: ; preds = %2188 %2210 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([12 x i8], [12 x i8]* @.str.1, i32 0, i32 0)) #135 %2211 = icmp eq i32 %2210, 200 br i1 %2211, label %2218, label %2212 2212: ; preds = %2209 %2213 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([12 x i8], [12 x i8]* @.str.1, i32 0, i32 0)) #135 %2214 = icmp eq i32 %2213, 350 br i1 %2214, label %2218, label %2215 2215: ; preds = %2212 %2216 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([12 x i8], [12 x i8]* @.str.1, i32 0, i32 0)) #135 %2217 = icmp eq i32 %2216, 370 br i1 %2217, label %2218, label %2220 2218: ; preds = %2215, %2212, %2209 %2219 = fcmp oeq double %1, 0x7FF0000000000000 br label %__nv_isinfd.exit.i407 2220: ; preds = %2215 %2221 = call i32 @llvm.nvvm.d2i.lo(double %1) #135 %2222 = call i32 @llvm.nvvm.d2i.hi(double %1) #135 %2223 = and i32 %2222, 2147483647 %2224 = icmp eq i32 %2223, 2146435072 %2225 = icmp eq i32 %2221, 0 %2226 = select i1 %2224, i1 %2225, i1 false br label %__nv_isinfd.exit.i407 __nv_isinfd.exit.i407: ; preds = %2220, %2218 %.052.in = phi i1 [ %2219, %2218 ], [ %2226, %2220 ] br i1 %.052.in, label %2397, label %2227 2227: ; preds = %__nv_isinfd.exit.i407 %2228 = call double @llvm.nvvm.rcp.approx.ftz.d(double %1) #135 %2229 = fneg double %1 %2230 = call double @llvm.fma.f64(double %2229, double %2228, double noundef 1.000000e+00) %2231 = call double @llvm.fma.f64(double %2230, double %2230, double %2230) %2232 = call double @llvm.fma.f64(double %2231, double %2228, double %2228) %2233 = fmul double %2232, %2232 %2234 = call double @llvm.fma.f64(double %2233, double noundef 0x40D13DB326ECEBFE, double noundef 0xC09C26E89385D5B1) %2235 = call double @llvm.fma.f64(double %2234, double %2233, double noundef 0x405C6AB923C6F55E) %2236 = call double @llvm.fma.f64(double %2235, double %2233, double noundef 0xC01E61EAF3BD2FA1) %2237 = call double @llvm.fma.f64(double %2236, double %2233, double noundef 0x3FE9BF15D9B97DD1) %2238 = call double @llvm.fma.f64(double %2237, double %2233, double noundef 0xBFC8BFECF93D7D19) %2239 = call double @llvm.fma.f64(double %2238, double %2233, double noundef 0x3FC7FFFFF756AA6C) %2240 = call double @llvm.fma.f64(double %2239, double %2233, double noundef 0x3FF0000000003646) %2241 = call double @llvm.fma.f64(double %2233, double noundef 0xC1943281A050209C, double noundef 0x416024E99BA46E7B) %2242 = call double @llvm.fma.f64(double %2241, double %2233, double noundef 0xC11A6875D7DFBD65) %2243 = call double @llvm.fma.f64(double %2242, double %2233, double noundef 0x40D032C041790233) %2244 = call double @llvm.fma.f64(double %2243, double %2233, double noundef 0xC0839F895BC22946) %2245 = call double @llvm.fma.f64(double %2244, double %2233, double noundef 0x403E77CC78ECD2D8) %2246 = call double @llvm.fma.f64(double %2245, double %2233, double noundef 0xC002F368D0117BE9) %2247 = call double @llvm.fma.f64(double %2246, double %2233, double noundef 0x3FD7BCC786009A25) %2248 = call double @llvm.fma.f64(double %2247, double %2233, double noundef 0xBFC4FFFFFC51BC7A) %2249 = call double @llvm.fma.f64(double %2248, double %2233, double noundef 0x3FD7FFFFFFFFB5EA) %2250 = call double @llvm.fma.f64(double %2249, double %2232, double %1) %2251 = call double @llvm.nvvm.rsqrt.approx.d(double %1) #135 %2252 = fmul double %2251, 0x3FE9884533D43651 %2253 = fmul double %2252, %2240 %2254 = fmul double %2250, 0x3FE45F306DC9C883 %2255 = call i32 @llvm.nvvm.d2i.rn(double %2254) #135 store i32 %2255, i32* %q.i.i.i381, align 4, !noalias !219 %2256 = sitofp i32 %2255 to double %2257 = fneg double %2256 %2258 = call double @llvm.fma.f64(double %2257, double noundef 0x3FF921FB54442D18, double %2250) %2259 = call double @llvm.fma.f64(double %2257, double noundef 0x3C91A62633145C00, double %2258) %2260 = call double @llvm.fma.f64(double %2257, double noundef 0x397B839A252049C0, double %2259) %2261 = call double @llvm.fabs.f64(double %2250) %2262 = fcmp ult double %2261, 0x41E0000000000000 br i1 %2262, label %__internal_trig_reduction_kerneld.exit.i.i408, label %2263 2263: ; preds = %2227 %2264 = call fastcc double @__internal_trig_reduction_slowpathd(double %2250, i32* noalias nocapture nofree noundef nonnull writeonly align 4 dereferenceable(4) %q.i.i.i381) #135 %.pre38 = load i32, i32* %q.i.i.i381, align 4 br label %__internal_trig_reduction_kerneld.exit.i.i408 __internal_trig_reduction_kerneld.exit.i.i408: ; preds = %2263, %2227 %2265 = phi i32 [ %.pre38, %2263 ], [ %2255, %2227 ] %t.i.i.i380.0 = phi double [ %2264, %2263 ], [ %2260, %2227 ] %2266 = and i32 %2265, 3 %2267 = uitofp i32 %2266 to double %2268 = fadd double %t.i.i.i380.0, 0xC00F6A7A2955385E %2269 = fmul double %2267, 0x3FF921FB54442D18 %2270 = fadd double %2268, %2269 %2271 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([12 x i8], [12 x i8]* @.str.1, i32 0, i32 0)) #135 %2272 = icmp eq i32 %2271, 350 br i1 %2272, label %2276, label %2273 2273: ; preds = %__internal_trig_reduction_kerneld.exit.i.i408 %2274 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([12 x i8], [12 x i8]* @.str.1, i32 0, i32 0)) #135 %2275 = icmp eq i32 %2274, 370 br i1 %2275, label %2276, label %2335 2276: ; preds = %2273, %__internal_trig_reduction_kerneld.exit.i.i408 %2277 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([12 x i8], [12 x i8]* @.str.1, i32 0, i32 0)) #135 %2278 = icmp eq i32 %2277, 200 br i1 %2278, label %2285, label %2279 2279: ; preds = %2276 %2280 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([12 x i8], [12 x i8]* @.str.1, i32 0, i32 0)) #135 %2281 = icmp eq i32 %2280, 350 br i1 %2281, label %2285, label %2282 2282: ; preds = %2279 %2283 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([12 x i8], [12 x i8]* @.str.1, i32 0, i32 0)) #135 %2284 = icmp eq i32 %2283, 370 br i1 %2284, label %2285, label %2288 2285: ; preds = %2282, %2279, %2276 %2286 = call double @llvm.fabs.f64(double %2270) %2287 = fcmp oeq double %2286, 0x7FF0000000000000 br label %__nv_isinfd.exit.i.i.i.i409 2288: ; preds = %2282 %2289 = call i32 @llvm.nvvm.d2i.lo(double %2270) #135 %2290 = call i32 @llvm.nvvm.d2i.hi(double %2270) #135 %2291 = and i32 %2290, 2147483647 %2292 = icmp eq i32 %2291, 2146435072 %2293 = icmp eq i32 %2289, 0 %2294 = select i1 %2292, i1 %2293, i1 false br label %__nv_isinfd.exit.i.i.i.i409 __nv_isinfd.exit.i.i.i.i409: ; preds = %2288, %2285 %.047.in = phi i1 [ %2287, %2285 ], [ %2294, %2288 ] br i1 %.047.in, label %2295, label %2297 2295: ; preds = %__nv_isinfd.exit.i.i.i.i409 %2296 = fmul double %2270, 0.000000e+00 br label %__internal_trig_reduction_kerneld.exit.i.i.i.i410 2297: ; preds = %__nv_isinfd.exit.i.i.i.i409 %2298 = fmul double %2270, 0x3FE45F306DC9C883 %2299 = call i32 @llvm.nvvm.d2i.rn(double %2298) #135 store i32 %2299, i32* %q.i.i.i.i.i367, align 4, !noalias !219 %2300 = sitofp i32 %2299 to double %2301 = fneg double %2300 %2302 = call double @llvm.fma.f64(double %2301, double noundef 0x3FF921FB54442D18, double %2270) %2303 = call double @llvm.fma.f64(double %2301, double noundef 0x3C91A62633145C00, double %2302) %2304 = call double @llvm.fma.f64(double %2301, double noundef 0x397B839A252049C0, double %2303) %2305 = call double @llvm.fabs.f64(double %2270) %2306 = fcmp ult double %2305, 0x41E0000000000000 br i1 %2306, label %__internal_trig_reduction_kerneld.exit.i.i.i.i410, label %2307 2307: ; preds = %2297 %2308 = call fastcc double @__internal_trig_reduction_slowpathd(double %2270, i32* noalias nocapture nofree noundef nonnull writeonly align 4 dereferenceable(4) %q.i.i.i.i.i367) #135 %.pre40 = load i32, i32* %q.i.i.i.i.i367, align 4 br label %__internal_trig_reduction_kerneld.exit.i.i.i.i410 __internal_trig_reduction_kerneld.exit.i.i.i.i410: ; preds = %2297, %2307, %2295 %i.i.i.i.i374.0 = phi i32 [ 0, %2295 ], [ %.pre40, %2307 ], [ %2299, %2297 ] %.046 = phi double [ %2296, %2295 ], [ %2308, %2307 ], [ %2304, %2297 ] %2309 = fmul double %.046, %.046 %2310 = call double @llvm.fma.f64(double %2309, double noundef 0xBDA8FF8320FD8164, double noundef 0x3E21EEA7C1EF8528) %2311 = call double @llvm.fma.f64(double %2310, double %2309, double noundef 0xBE927E4F8E06E6D9) %2312 = call double @llvm.fma.f64(double %2311, double %2309, double noundef 0x3EFA01A019DDBCE9) %2313 = call double @llvm.fma.f64(double %2312, double %2309, double noundef 0xBF56C16C16C15D47) %2314 = call double @llvm.fma.f64(double %2313, double %2309, double noundef 0x3FA5555555555551) %2315 = call double @llvm.fma.f64(double %2314, double %2309, double noundef -5.000000e-01) %2316 = call double @llvm.fma.f64(double %2315, double %2309, double noundef 1.000000e+00) %2317 = call double @llvm.fma.f64(double %2309, double noundef 0x3DE5DB65F9785EBA, double noundef 0xBE5AE5F12CB0D246) %2318 = call double @llvm.fma.f64(double %2317, double %2309, double noundef 0x3EC71DE369ACE392) %2319 = call double @llvm.fma.f64(double %2318, double %2309, double noundef 0xBF2A01A019DB62A1) %2320 = call double @llvm.fma.f64(double %2319, double %2309, double noundef 0x3F81111111110818) %2321 = call double @llvm.fma.f64(double %2320, double %2309, double noundef 0xBFC5555555555554) %2322 = call double @llvm.fma.f64(double %2321, double %2309, double noundef 0.000000e+00) %2323 = call double @llvm.fma.f64(double %2322, double %.046, double %.046) %2324 = call i32 @llvm.nvvm.d2i.hi(double %2323) #135 %2325 = call i32 @llvm.nvvm.d2i.lo(double %2323) #135 %2326 = xor i32 %2324, -2147483648 %2327 = call double @llvm.nvvm.lohi.i2d(i32 %2325, i32 %2326) #135 %2328 = and i32 %i.i.i.i.i374.0, 1 %.not55 = icmp eq i32 %2328, 0 %spec.select25 = select i1 %.not55, double %2316, double %2327 %2329 = and i32 %i.i.i.i.i374.0, 2 %.not56 = icmp eq i32 %2329, 0 br i1 %.not56, label %__internal_cos_offset.exit.i415, label %2330 2330: ; preds = %__internal_trig_reduction_kerneld.exit.i.i.i.i410 %2331 = call i32 @llvm.nvvm.d2i.hi(double %spec.select25) #135 %2332 = call i32 @llvm.nvvm.d2i.lo(double %spec.select25) #135 %2333 = xor i32 %2331, -2147483648 %2334 = call double @llvm.nvvm.lohi.i2d(i32 %2332, i32 %2333) #135 br label %__internal_cos_offset.exit.i415 2335: ; preds = %2273 %2336 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([12 x i8], [12 x i8]* @.str.1, i32 0, i32 0)) #135 %2337 = icmp eq i32 %2336, 200 br i1 %2337, label %2344, label %2338 2338: ; preds = %2335 %2339 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([12 x i8], [12 x i8]* @.str.1, i32 0, i32 0)) #135 %2340 = icmp eq i32 %2339, 350 br i1 %2340, label %2344, label %2341 2341: ; preds = %2338 %2342 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([12 x i8], [12 x i8]* @.str.1, i32 0, i32 0)) #135 %2343 = icmp eq i32 %2342, 370 br i1 %2343, label %2344, label %2347 2344: ; preds = %2341, %2338, %2335 %2345 = call double @llvm.fabs.f64(double %2270) %2346 = fcmp oeq double %2345, 0x7FF0000000000000 br label %__nv_isinfd.exit.i.i.i412 2347: ; preds = %2341 %2348 = call i32 @llvm.nvvm.d2i.lo(double %2270) #135 %2349 = call i32 @llvm.nvvm.d2i.hi(double %2270) #135 %2350 = and i32 %2349, 2147483647 %2351 = icmp eq i32 %2350, 2146435072 %2352 = icmp eq i32 %2348, 0 %2353 = select i1 %2351, i1 %2352, i1 false br label %__nv_isinfd.exit.i.i.i412 __nv_isinfd.exit.i.i.i412: ; preds = %2347, %2344 %.048.in = phi i1 [ %2346, %2344 ], [ %2353, %2347 ] br i1 %.048.in, label %2354, label %2356 2354: ; preds = %__nv_isinfd.exit.i.i.i412 %2355 = fmul double %2270, 0.000000e+00 br label %__internal_sin_cos_kerneld.exit.i.i.i414 2356: ; preds = %__nv_isinfd.exit.i.i.i412 %2357 = fmul double %2270, 0x3FE45F306DC9C883 %2358 = call i32 @llvm.nvvm.d2i.rn(double %2357) #135 store i32 %2358, i32* %q.i.i.i.i351, align 4, !noalias !219 %2359 = sitofp i32 %2358 to double %2360 = fneg double %2359 %2361 = call double @llvm.fma.f64(double %2360, double noundef 0x3FF921FB54442D18, double %2270) %2362 = call double @llvm.fma.f64(double %2360, double noundef 0x3C91A62633145C00, double %2361) %2363 = call double @llvm.fma.f64(double %2360, double noundef 0x397B839A252049C0, double %2362) %2364 = call double @llvm.fabs.f64(double %2270) %2365 = fcmp ult double %2364, 0x41E0000000000000 br i1 %2365, label %__internal_sin_cos_kerneld.exit.i.i.i414, label %2366 2366: ; preds = %2356 %2367 = call fastcc double @__internal_trig_reduction_slowpathd(double %2270, i32* noalias nocapture nofree noundef nonnull writeonly align 4 dereferenceable(4) %q.i.i.i.i351) #135 %.pre39 = load i32, i32* %q.i.i.i.i351, align 4 br label %__internal_sin_cos_kerneld.exit.i.i.i414 __internal_sin_cos_kerneld.exit.i.i.i414: ; preds = %2356, %2366, %2354 %i.i.i.i378.0 = phi i32 [ 0, %2354 ], [ %.pre39, %2366 ], [ %2358, %2356 ] %z.i.i.i377.0 = phi double [ %2355, %2354 ], [ %2367, %2366 ], [ %2363, %2356 ] %2368 = add nsw i32 %i.i.i.i378.0, 1 %2369 = and i32 %2368, 1 %2370 = shl nuw nsw i32 %2369, 3 %2371 = getelementptr inbounds [16 x double], [16 x double] addrspace(1)* @__cudart_sin_cos_coeffs, i32 0, i32 %2370 %2372 = fmul double %z.i.i.i377.0, %z.i.i.i377.0 %.not53 = icmp eq i32 %2369, 0 %2373 = select i1 %.not53, double 0x3DE5DB65F9785EBA, double 0xBDA8FF8320FD8164 %2374 = getelementptr inbounds double, double addrspace(1)* %2371, i32 1 %2375 = load double, double addrspace(1)* %2374, align 8 %2376 = call double @llvm.fma.f64(double noundef %2373, double %2372, double %2375) %2377 = getelementptr inbounds double, double addrspace(1)* %2371, i32 2 %2378 = load double, double addrspace(1)* %2377, align 8 %2379 = call double @llvm.fma.f64(double %2376, double %2372, double %2378) %2380 = getelementptr inbounds double, double addrspace(1)* %2371, i32 3 %2381 = load double, double addrspace(1)* %2380, align 8 %2382 = call double @llvm.fma.f64(double %2379, double %2372, double %2381) %2383 = getelementptr inbounds double, double addrspace(1)* %2371, i32 4 %2384 = load double, double addrspace(1)* %2383, align 8 %2385 = call double @llvm.fma.f64(double %2382, double %2372, double %2384) %2386 = getelementptr inbounds double, double addrspace(1)* %2371, i32 5 %2387 = load double, double addrspace(1)* %2386, align 8 %2388 = call double @llvm.fma.f64(double %2385, double %2372, double %2387) %2389 = getelementptr inbounds double, double addrspace(1)* %2371, i32 6 %2390 = load double, double addrspace(1)* %2389, align 8 %2391 = call double @llvm.fma.f64(double %2388, double %2372, double %2390) %2392 = call double @llvm.fma.f64(double %2391, double %z.i.i.i377.0, double %z.i.i.i377.0) %2393 = call double @llvm.fma.f64(double %2391, double %2372, double noundef 1.000000e+00) %spec.select26 = select i1 %.not53, double %2392, double %2393 %2394 = and i32 %2368, 2 %.not54 = icmp eq i32 %2394, 0 %2395 = call double @llvm.fma.f64(double %spec.select26, double noundef -1.000000e+00, double noundef 0.000000e+00) %.150 = select i1 %.not54, double %spec.select26, double %2395 br label %__internal_cos_offset.exit.i415 __internal_cos_offset.exit.i415: ; preds = %__internal_trig_reduction_kerneld.exit.i.i.i.i410, %2330, %__internal_sin_cos_kerneld.exit.i.i.i414 %.045 = phi double [ %.150, %__internal_sin_cos_kerneld.exit.i.i.i414 ], [ %2334, %2330 ], [ %spec.select25, %__internal_trig_reduction_kerneld.exit.i.i.i.i410 ] %2396 = fmul double %2253, %.045 br label %2397 2397: ; preds = %__nv_log.exit.i406, %2164, %__internal_cos_offset.exit.i415, %__nv_isinfd.exit.i407, %2190, %2135, %1800 %r.i389.5 = phi double [ %1801, %1800 ], [ %2132, %__nv_log.exit.i406 ], [ %2161, %2135 ], [ %2187, %2164 ], [ %2208, %2190 ], [ %2396, %__internal_cos_offset.exit.i415 ], [ 0.000000e+00, %__nv_isinfd.exit.i407 ] br i1 %600, label %2398, label %__nv_y1.exit416 2398: ; preds = %2397 br label %__nv_y1.exit416 2399: ; preds = %__nv_y0.exit %2400 = icmp slt i32 %n, 0 %2401 = fcmp ult double %a, 0.000000e+00 %or.cond = select i1 %2400, i1 true, i1 %2401 br i1 %or.cond, label %__nv_y1.exit416, label %2402 2402: ; preds = %2399 br i1 %2, label %2403, label %.lr.ph 2403: ; preds = %2402 %2404 = fdiv double 0xBFE45F306DC9C883, %a br label %__nv_y1.exit416 .lr.ph: ; preds = %2402 %2405 = fdiv double 2.000000e+00, %a %2406 = add nsw i32 %n, -1 %2407 = add nsw i32 %n, -2 %xtraiter = and i32 %2406, 3 %2408 = icmp ult i32 %2407, 3 br i1 %2408, label %._crit_edge.unr-lcssa, label %.lr.ph.new .lr.ph.new: ; preds = %.lr.ph %unroll_iter = and i32 %2406, -4 br label %2409 2409: ; preds = %2409, %.lr.ph.new %i.083 = phi i32 [ 1, %.lr.ph.new ], [ %2429, %2409 ] %yim1.082 = phi double [ %r.i95.5, %.lr.ph.new ], [ %2423, %2409 ] %yi.081 = phi double [ %r.i.7, %.lr.ph.new ], [ %2428, %2409 ] %niter = phi i32 [ 0, %.lr.ph.new ], [ %niter.next.3, %2409 ] %2410 = sitofp i32 %i.083 to double %2411 = fmul double %2405, %2410 %2412 = fneg double %yim1.082 %2413 = call double @llvm.fma.f64(double %2411, double %yi.081, double %2412) %2414 = add nuw nsw i32 %i.083, 1 %2415 = sitofp i32 %2414 to double %2416 = fmul double %2405, %2415 %2417 = fneg double %yi.081 %2418 = call double @llvm.fma.f64(double %2416, double %2413, double %2417) %2419 = add nuw nsw i32 %i.083, 2 %2420 = sitofp i32 %2419 to double %2421 = fmul double %2405, %2420 %2422 = fneg double %2413 %2423 = call double @llvm.fma.f64(double %2421, double %2418, double %2422) %2424 = add nuw nsw i32 %i.083, 3 %2425 = sitofp i32 %2424 to double %2426 = fmul double %2405, %2425 %2427 = fneg double %2418 %2428 = call double @llvm.fma.f64(double %2426, double %2423, double %2427) %2429 = add nuw nsw i32 %i.083, 4 %niter.next.3 = add i32 %niter, 4 %niter.ncmp.3.not = icmp eq i32 %niter.next.3, %unroll_iter br i1 %niter.ncmp.3.not, label %._crit_edge.unr-lcssa.loopexit, label %2409 ._crit_edge.unr-lcssa.loopexit: ; preds = %2409 %2430 = or i32 %unroll_iter, 1 br label %._crit_edge.unr-lcssa ._crit_edge.unr-lcssa: ; preds = %._crit_edge.unr-lcssa.loopexit, %.lr.ph %.lcssa.ph = phi double [ undef, %.lr.ph ], [ %2428, %._crit_edge.unr-lcssa.loopexit ] %i.083.unr = phi i32 [ 1, %.lr.ph ], [ %2430, %._crit_edge.unr-lcssa.loopexit ] %yim1.082.unr = phi double [ %r.i95.5, %.lr.ph ], [ %2423, %._crit_edge.unr-lcssa.loopexit ] %yi.081.unr = phi double [ %r.i.7, %.lr.ph ], [ %2428, %._crit_edge.unr-lcssa.loopexit ] %lcmp.mod.not = icmp eq i32 %xtraiter, 0 br i1 %lcmp.mod.not, label %._crit_edge, label %.epil.preheader .epil.preheader: ; preds = %._crit_edge.unr-lcssa, %.epil.preheader %i.083.epil = phi i32 [ %2435, %.epil.preheader ], [ %i.083.unr, %._crit_edge.unr-lcssa ] %yim1.082.epil = phi double [ %yi.081.epil, %.epil.preheader ], [ %yim1.082.unr, %._crit_edge.unr-lcssa ] %yi.081.epil = phi double [ %2434, %.epil.preheader ], [ %yi.081.unr, %._crit_edge.unr-lcssa ] %epil.iter = phi i32 [ %epil.iter.next, %.epil.preheader ], [ 0, %._crit_edge.unr-lcssa ] %2431 = sitofp i32 %i.083.epil to double %2432 = fmul double %2405, %2431 %2433 = fneg double %yim1.082.epil %2434 = call double @llvm.fma.f64(double %2432, double %yi.081.epil, double %2433) %2435 = add nuw nsw i32 %i.083.epil, 1 %epil.iter.next = add nuw nsw i32 %epil.iter, 1 %epil.iter.cmp.not = icmp eq i32 %epil.iter.next, %xtraiter br i1 %epil.iter.cmp.not, label %._crit_edge, label %.epil.preheader, !llvm.loop !240 ._crit_edge: ; preds = %.epil.preheader, %._crit_edge.unr-lcssa %yip1.0.lcssa = phi double [ %.lcssa.ph, %._crit_edge.unr-lcssa ], [ %2434, %.epil.preheader ] %2436 = call double @llvm.fabs.f64(double %yip1.0.lcssa) %2437 = fcmp ugt double %2436, 0x7FF0000000000000 br i1 %2437, label %2438, label %__nv_y1.exit416 2438: ; preds = %._crit_edge br label %__nv_y1.exit416 __nv_y1.exit416: ; preds = %2399, %._crit_edge, %2397, %2398, %2438, %2403, %__nv_y0.exit266 %.0 = phi double [ %r.i239.5, %__nv_y0.exit266 ], [ %2404, %2403 ], [ 0xFFF0000000000000, %2438 ], [ %r.i.6, %2398 ], [ %r.i389.5, %2397 ], [ %yip1.0.lcssa, %._crit_edge ], [ 0xFFF8000000000000, %2399 ] ret double %.0 } ; Function Attrs: noinline nounwind define dso_local double @__nv_jn(i32 %n, double %a) local_unnamed_addr #108 { %q.i.i.i.i137 = alloca i32, align 4 %q.i.i.i.i.i153 = alloca i32, align 4 %q.i.i.i167 = alloca i32, align 4 %q.i.i.i.i75 = alloca i32, align 4 %q.i.i.i.i.i91 = alloca i32, align 4 %q.i.i.i105 = alloca i32, align 4 %q.i.i.i.i14 = alloca i32, align 4 %q.i.i.i.i.i30 = alloca i32, align 4 %q.i.i.i44 = alloca i32, align 4 %q.i.i.i.i = alloca i32, align 4 %q.i.i.i.i.i = alloca i32, align 4 %q.i.i.i = alloca i32, align 4 switch i32 %n, label %509 [ i32 0, label %1 i32 1, label %255 ] 1: ; preds = %0 %2 = call double @llvm.fabs.f64(double %a) %3 = fcmp ugt double %2, 0x400FB319F277BBE5 br i1 %3, label %24, label %4 4: ; preds = %1 %5 = fadd double %2, 0xC0033D152E971B40 %6 = fadd double %5, 0x3CA0F539D7DA258E %7 = call double @llvm.fma.f64(double %6, double noundef 0xBCC0D18564C48C61, double noundef 0xBCFCF8F9A8C294BC) %8 = call double @llvm.fma.f64(double %7, double %6, double noundef 0x3D3FAB983CAE498B) %9 = call double @llvm.fma.f64(double %8, double %6, double noundef 0x3D7CD7C018579B88) %10 = call double @llvm.fma.f64(double %9, double %6, double noundef 0xBDBBDD2342D64FDD) %11 = call double @llvm.fma.f64(double %10, double %6, double noundef 0xBDF5C2D9416B1E2B) %12 = call double @llvm.fma.f64(double %11, double %6, double noundef 0x3E32951D73174DD5) %13 = call double @llvm.fma.f64(double %12, double %6, double noundef 0x3E67FF99802CAEB5) %14 = call double @llvm.fma.f64(double %13, double %6, double noundef 0xBEA1CCE305C4C9F7) %15 = call double @llvm.fma.f64(double %14, double %6, double noundef 0xBED232C77E29E1BB) %16 = call double @llvm.fma.f64(double %15, double %6, double noundef 0x3F06ED3B9F0EF757) %17 = call double @llvm.fma.f64(double %16, double %6, double noundef 0x3F315382BA096A62) %18 = call double @llvm.fma.f64(double %17, double %6, double noundef 0xBF61F992590D1AE4) %19 = call double @llvm.fma.f64(double %18, double %6, double noundef 0xBF81BB1CBE1A465F) %20 = call double @llvm.fma.f64(double %19, double %6, double noundef 0x3FACFAE864368D84) %21 = call double @llvm.fma.f64(double %20, double %6, double noundef 0x3FBBA1DEEA0294A3) %22 = call double @llvm.fma.f64(double %21, double %6, double noundef 0xBFE09CDB36551280) %23 = fmul double %6, %22 br label %__nv_j0.exit 24: ; preds = %1 %25 = fcmp ugt double %2, 0x401C58FD1A62F5EC br i1 %25, label %46, label %26 26: ; preds = %24 %27 = fadd double %2, 0xC016148F5B2C2E45 %28 = fadd double %27, 0xBC975054CD60A517 %29 = call double @llvm.fma.f64(double %28, double noundef 0x3CBCB0A8F126B343, double noundef 0x3CF83FD1F333EB61) %30 = call double @llvm.fma.f64(double %29, double %28, double noundef 0xBD4100E33E3FB413) %31 = call double @llvm.fma.f64(double %30, double %28, double noundef 0xBD7846076D004627) %32 = call double @llvm.fma.f64(double %31, double %28, double noundef 0x3DBE2F1D4F90720D) %33 = call double @llvm.fma.f64(double %32, double %28, double noundef 0x3DF1D03B1E4A119B) %34 = call double @llvm.fma.f64(double %33, double %28, double noundef 0xBE341D72B1B3BCE9) %35 = call double @llvm.fma.f64(double %34, double %28, double noundef 0xBE62DA37CE2A9EF8) %36 = call double @llvm.fma.f64(double %35, double %28, double noundef 0x3EA32E6D9974F763) %37 = call double @llvm.fma.f64(double %36, double %28, double noundef 0x3ECAD77D744A1879) %38 = call double @llvm.fma.f64(double %37, double %28, double noundef 0xBF0863F481A37337) %39 = call double @llvm.fma.f64(double %38, double %28, double noundef 0xBF26F641F418F0F4) %40 = call double @llvm.fma.f64(double %39, double %28, double noundef 0x3F627E31FE9A969E) %41 = call double @llvm.fma.f64(double %40, double %28, double noundef 0x3F72F7FFE9025628) %42 = call double @llvm.fma.f64(double %41, double %28, double noundef 0xBFAB2150CB41E8BF) %43 = call double @llvm.fma.f64(double %42, double %28, double noundef 0xBF9F8F72E7A848DE) %44 = call double @llvm.fma.f64(double %43, double %28, double noundef 0x3FD5C6E60A097823) %45 = fmul double %28, %44 br label %__nv_j0.exit 46: ; preds = %24 %47 = fcmp ugt double %2, 0x402471FCB6A7A8C0 br i1 %47, label %68, label %48 48: ; preds = %46 %49 = fadd double %2, 0xC0214EB56CCCDECA %50 = fadd double %49, 0x3CB51970714C7C25 %51 = call double @llvm.fma.f64(double %50, double noundef 0xBCBDB7FFCF659E24, double noundef 0xBCF4B3A71AAAC629) %52 = call double @llvm.fma.f64(double %51, double %50, double noundef 0x3D417EC150ECDCE7) %53 = call double @llvm.fma.f64(double %52, double %50, double noundef 0x3D7438F5EA1D10B2) %54 = call double @llvm.fma.f64(double %53, double %50, double noundef 0xBDBEDAE7EC2C9E87) %55 = call double @llvm.fma.f64(double %54, double %50, double noundef 0xBDECADD2C4B91F58) %56 = call double @llvm.fma.f64(double %55, double %50, double noundef 0x3E34582C8EE12204) %57 = call double @llvm.fma.f64(double %56, double %50, double noundef 0x3E5CEDA451DD20F8) %58 = call double @llvm.fma.f64(double %57, double %50, double noundef 0xBEA30E8CC3165E2F) %59 = call double @llvm.fma.f64(double %58, double %50, double noundef 0xBEC3324842BB1A2E) %60 = call double @llvm.fma.f64(double %59, double %50, double noundef 0x3F07800BC54FBDDB) %61 = call double @llvm.fma.f64(double %60, double %50, double noundef 0x3F1D79605276949A) %62 = call double @llvm.fma.f64(double %61, double %50, double noundef 0xBF60E0D60385A629) %63 = call double @llvm.fma.f64(double %62, double %50, double noundef 0xBF648E63600D82F3) %64 = call double @llvm.fma.f64(double %63, double %50, double noundef 0x3FA68B984EC6493A) %65 = call double @llvm.fma.f64(double %64, double %50, double noundef 0x3F900F7FCF183E0B) %66 = call double @llvm.fma.f64(double %65, double %50, double noundef 0xBFD15F7977A772D4) %67 = fmul double %50, %66 br label %__nv_j0.exit 68: ; preds = %46 %69 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([12 x i8], [12 x i8]* @.str.1, i32 0, i32 0)) #135 %70 = icmp eq i32 %69, 200 br i1 %70, label %77, label %71 71: ; preds = %68 %72 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([12 x i8], [12 x i8]* @.str.1, i32 0, i32 0)) #135 %73 = icmp eq i32 %72, 350 br i1 %73, label %77, label %74 74: ; preds = %71 %75 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([12 x i8], [12 x i8]* @.str.1, i32 0, i32 0)) #135 %76 = icmp eq i32 %75, 370 br i1 %76, label %77, label %79 77: ; preds = %74, %71, %68 %78 = fcmp oeq double %2, 0x7FF0000000000000 br label %__nv_isinfd.exit.i 79: ; preds = %74 %80 = call i32 @llvm.nvvm.d2i.lo(double %2) #135 %81 = call i32 @llvm.nvvm.d2i.hi(double %2) #135 %82 = and i32 %81, 2147483647 %83 = icmp eq i32 %82, 2146435072 %84 = icmp eq i32 %80, 0 %85 = select i1 %83, i1 %84, i1 false br label %__nv_isinfd.exit.i __nv_isinfd.exit.i: ; preds = %79, %77 %.07.in = phi i1 [ %78, %77 ], [ %85, %79 ] br i1 %.07.in, label %__nv_j0.exit, label %86 86: ; preds = %__nv_isinfd.exit.i %87 = call double @llvm.nvvm.rcp.approx.ftz.d(double %2) #135 %88 = fneg double %2 %89 = call double @llvm.fma.f64(double %88, double %87, double noundef 1.000000e+00) %90 = call double @llvm.fma.f64(double %89, double %89, double %89) %91 = call double @llvm.fma.f64(double %90, double %87, double %87) %92 = fmul double %91, %91 %93 = call double @llvm.fma.f64(double %92, double noundef 0xC0D115CB8C11A9DC, double noundef 0x409927467A655012) %94 = call double @llvm.fma.f64(double %93, double %92, double noundef 0xC05751787E247BD4) %95 = call double @llvm.fma.f64(double %94, double %92, double noundef 0x401704C4E5FC36B2) %96 = call double @llvm.fma.f64(double %95, double %92, double noundef 0xBFE15B747A2FD531) %97 = call double @llvm.fma.f64(double %96, double %92, double noundef 0x3FBA7FEACF6CB79B) %98 = call double @llvm.fma.f64(double %97, double %92, double noundef 0xBFAFFFFFEDDCF548) %99 = call double @llvm.fma.f64(double %98, double %92, double noundef 0x3FEFFFFFFFFFC9E5) %100 = call double @llvm.fma.f64(double %92, double noundef 0xC14602FE1C34685E, double noundef 0x410ECD4523B12B84) %101 = call double @llvm.fma.f64(double %100, double %92, double noundef 0xC0C7A2FC1972F05A) %102 = call double @llvm.fma.f64(double %101, double %92, double noundef 0x407EBA131F7E5BEB) %103 = call double @llvm.fma.f64(double %102, double %92, double noundef 0xC0373B92E6E7CC7D) %104 = call double @llvm.fma.f64(double %103, double %92, double noundef 0x3FFA31BEE63A2F08) %105 = call double @llvm.fma.f64(double %104, double %92, double noundef 0xBFCAD320104D5D05) %106 = call double @llvm.fma.f64(double %105, double %92, double noundef 0x3FB0AAAA9C76D07E) %107 = call double @llvm.fma.f64(double %106, double %92, double noundef 0xBFBFFFFFFFFDACEC) %108 = call double @llvm.fma.f64(double %107, double %91, double %2) %109 = call double @llvm.nvvm.rsqrt.approx.d(double %2) #135 %110 = fmul double %109, 0x3FE9884533D43651 %111 = fmul double %110, %99 %112 = fmul double %108, 0x3FE45F306DC9C883 %113 = call i32 @llvm.nvvm.d2i.rn(double %112) #135 store i32 %113, i32* %q.i.i.i, align 4, !noalias !219 %114 = sitofp i32 %113 to double %115 = fneg double %114 %116 = call double @llvm.fma.f64(double %115, double noundef 0x3FF921FB54442D18, double %108) %117 = call double @llvm.fma.f64(double %115, double noundef 0x3C91A62633145C00, double %116) %118 = call double @llvm.fma.f64(double %115, double noundef 0x397B839A252049C0, double %117) %119 = call double @llvm.fabs.f64(double %108) %120 = fcmp ult double %119, 0x41E0000000000000 br i1 %120, label %__internal_trig_reduction_kerneld.exit.i.i, label %121 121: ; preds = %86 %122 = call fastcc double @__internal_trig_reduction_slowpathd(double %108, i32* noalias nocapture nofree noundef nonnull writeonly align 4 dereferenceable(4) %q.i.i.i) #135 %.pre15 = load i32, i32* %q.i.i.i, align 4 br label %__internal_trig_reduction_kerneld.exit.i.i __internal_trig_reduction_kerneld.exit.i.i: ; preds = %121, %86 %123 = phi i32 [ %.pre15, %121 ], [ %113, %86 ] %t.i.i.i.0 = phi double [ %122, %121 ], [ %118, %86 ] %124 = and i32 %123, 3 %125 = uitofp i32 %124 to double %126 = fadd double %t.i.i.i.0, 0xBFE921FB54442D18 %127 = fmul double %125, 0x3FF921FB54442D18 %128 = fadd double %126, %127 %129 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([12 x i8], [12 x i8]* @.str.1, i32 0, i32 0)) #135 %130 = icmp eq i32 %129, 350 br i1 %130, label %134, label %131 131: ; preds = %__internal_trig_reduction_kerneld.exit.i.i %132 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([12 x i8], [12 x i8]* @.str.1, i32 0, i32 0)) #135 %133 = icmp eq i32 %132, 370 br i1 %133, label %134, label %193 134: ; preds = %131, %__internal_trig_reduction_kerneld.exit.i.i %135 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([12 x i8], [12 x i8]* @.str.1, i32 0, i32 0)) #135 %136 = icmp eq i32 %135, 200 br i1 %136, label %143, label %137 137: ; preds = %134 %138 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([12 x i8], [12 x i8]* @.str.1, i32 0, i32 0)) #135 %139 = icmp eq i32 %138, 350 br i1 %139, label %143, label %140 140: ; preds = %137 %141 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([12 x i8], [12 x i8]* @.str.1, i32 0, i32 0)) #135 %142 = icmp eq i32 %141, 370 br i1 %142, label %143, label %146 143: ; preds = %140, %137, %134 %144 = call double @llvm.fabs.f64(double %128) %145 = fcmp oeq double %144, 0x7FF0000000000000 br label %__nv_isinfd.exit.i.i.i.i 146: ; preds = %140 %147 = call i32 @llvm.nvvm.d2i.lo(double %128) #135 %148 = call i32 @llvm.nvvm.d2i.hi(double %128) #135 %149 = and i32 %148, 2147483647 %150 = icmp eq i32 %149, 2146435072 %151 = icmp eq i32 %147, 0 %152 = select i1 %150, i1 %151, i1 false br label %__nv_isinfd.exit.i.i.i.i __nv_isinfd.exit.i.i.i.i: ; preds = %146, %143 %.04.in = phi i1 [ %145, %143 ], [ %152, %146 ] br i1 %.04.in, label %153, label %155 153: ; preds = %__nv_isinfd.exit.i.i.i.i %154 = fmul double %128, 0.000000e+00 br label %__internal_trig_reduction_kerneld.exit.i.i.i.i 155: ; preds = %__nv_isinfd.exit.i.i.i.i %156 = fmul double %128, 0x3FE45F306DC9C883 %157 = call i32 @llvm.nvvm.d2i.rn(double %156) #135 store i32 %157, i32* %q.i.i.i.i.i, align 4, !noalias !219 %158 = sitofp i32 %157 to double %159 = fneg double %158 %160 = call double @llvm.fma.f64(double %159, double noundef 0x3FF921FB54442D18, double %128) %161 = call double @llvm.fma.f64(double %159, double noundef 0x3C91A62633145C00, double %160) %162 = call double @llvm.fma.f64(double %159, double noundef 0x397B839A252049C0, double %161) %163 = call double @llvm.fabs.f64(double %128) %164 = fcmp ult double %163, 0x41E0000000000000 br i1 %164, label %__internal_trig_reduction_kerneld.exit.i.i.i.i, label %165 165: ; preds = %155 %166 = call fastcc double @__internal_trig_reduction_slowpathd(double %128, i32* noalias nocapture nofree noundef nonnull writeonly align 4 dereferenceable(4) %q.i.i.i.i.i) #135 %.pre17 = load i32, i32* %q.i.i.i.i.i, align 4 br label %__internal_trig_reduction_kerneld.exit.i.i.i.i __internal_trig_reduction_kerneld.exit.i.i.i.i: ; preds = %155, %165, %153 %i.i.i.i.i.0 = phi i32 [ 0, %153 ], [ %.pre17, %165 ], [ %157, %155 ] %.03 = phi double [ %154, %153 ], [ %166, %165 ], [ %162, %155 ] %167 = fmul double %.03, %.03 %168 = call double @llvm.fma.f64(double %167, double noundef 0xBDA8FF8320FD8164, double noundef 0x3E21EEA7C1EF8528) %169 = call double @llvm.fma.f64(double %168, double %167, double noundef 0xBE927E4F8E06E6D9) %170 = call double @llvm.fma.f64(double %169, double %167, double noundef 0x3EFA01A019DDBCE9) %171 = call double @llvm.fma.f64(double %170, double %167, double noundef 0xBF56C16C16C15D47) %172 = call double @llvm.fma.f64(double %171, double %167, double noundef 0x3FA5555555555551) %173 = call double @llvm.fma.f64(double %172, double %167, double noundef -5.000000e-01) %174 = call double @llvm.fma.f64(double %173, double %167, double noundef 1.000000e+00) %175 = call double @llvm.fma.f64(double %167, double noundef 0x3DE5DB65F9785EBA, double noundef 0xBE5AE5F12CB0D246) %176 = call double @llvm.fma.f64(double %175, double %167, double noundef 0x3EC71DE369ACE392) %177 = call double @llvm.fma.f64(double %176, double %167, double noundef 0xBF2A01A019DB62A1) %178 = call double @llvm.fma.f64(double %177, double %167, double noundef 0x3F81111111110818) %179 = call double @llvm.fma.f64(double %178, double %167, double noundef 0xBFC5555555555554) %180 = call double @llvm.fma.f64(double %179, double %167, double noundef 0.000000e+00) %181 = call double @llvm.fma.f64(double %180, double %.03, double %.03) %182 = call i32 @llvm.nvvm.d2i.hi(double %181) #135 %183 = call i32 @llvm.nvvm.d2i.lo(double %181) #135 %184 = xor i32 %182, -2147483648 %185 = call double @llvm.nvvm.lohi.i2d(i32 %183, i32 %184) #135 %186 = and i32 %i.i.i.i.i.0, 1 %.not29 = icmp eq i32 %186, 0 %spec.select1 = select i1 %.not29, double %174, double %185 %187 = and i32 %i.i.i.i.i.0, 2 %.not30 = icmp eq i32 %187, 0 br i1 %.not30, label %__internal_cos_offset.exit.i, label %188 188: ; preds = %__internal_trig_reduction_kerneld.exit.i.i.i.i %189 = call i32 @llvm.nvvm.d2i.hi(double %spec.select1) #135 %190 = call i32 @llvm.nvvm.d2i.lo(double %spec.select1) #135 %191 = xor i32 %189, -2147483648 %192 = call double @llvm.nvvm.lohi.i2d(i32 %190, i32 %191) #135 br label %__internal_cos_offset.exit.i 193: ; preds = %131 %194 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([12 x i8], [12 x i8]* @.str.1, i32 0, i32 0)) #135 %195 = icmp eq i32 %194, 200 br i1 %195, label %202, label %196 196: ; preds = %193 %197 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([12 x i8], [12 x i8]* @.str.1, i32 0, i32 0)) #135 %198 = icmp eq i32 %197, 350 br i1 %198, label %202, label %199 199: ; preds = %196 %200 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([12 x i8], [12 x i8]* @.str.1, i32 0, i32 0)) #135 %201 = icmp eq i32 %200, 370 br i1 %201, label %202, label %205 202: ; preds = %199, %196, %193 %203 = call double @llvm.fabs.f64(double %128) %204 = fcmp oeq double %203, 0x7FF0000000000000 br label %__nv_isinfd.exit.i.i.i 205: ; preds = %199 %206 = call i32 @llvm.nvvm.d2i.lo(double %128) #135 %207 = call i32 @llvm.nvvm.d2i.hi(double %128) #135 %208 = and i32 %207, 2147483647 %209 = icmp eq i32 %208, 2146435072 %210 = icmp eq i32 %206, 0 %211 = select i1 %209, i1 %210, i1 false br label %__nv_isinfd.exit.i.i.i __nv_isinfd.exit.i.i.i: ; preds = %205, %202 %.05.in = phi i1 [ %204, %202 ], [ %211, %205 ] br i1 %.05.in, label %212, label %214 212: ; preds = %__nv_isinfd.exit.i.i.i %213 = fmul double %128, 0.000000e+00 br label %__internal_sin_cos_kerneld.exit.i.i.i 214: ; preds = %__nv_isinfd.exit.i.i.i %215 = fmul double %128, 0x3FE45F306DC9C883 %216 = call i32 @llvm.nvvm.d2i.rn(double %215) #135 store i32 %216, i32* %q.i.i.i.i, align 4, !noalias !219 %217 = sitofp i32 %216 to double %218 = fneg double %217 %219 = call double @llvm.fma.f64(double %218, double noundef 0x3FF921FB54442D18, double %128) %220 = call double @llvm.fma.f64(double %218, double noundef 0x3C91A62633145C00, double %219) %221 = call double @llvm.fma.f64(double %218, double noundef 0x397B839A252049C0, double %220) %222 = call double @llvm.fabs.f64(double %128) %223 = fcmp ult double %222, 0x41E0000000000000 br i1 %223, label %__internal_sin_cos_kerneld.exit.i.i.i, label %224 224: ; preds = %214 %225 = call fastcc double @__internal_trig_reduction_slowpathd(double %128, i32* noalias nocapture nofree noundef nonnull writeonly align 4 dereferenceable(4) %q.i.i.i.i) #135 %.pre16 = load i32, i32* %q.i.i.i.i, align 4 br label %__internal_sin_cos_kerneld.exit.i.i.i __internal_sin_cos_kerneld.exit.i.i.i: ; preds = %214, %224, %212 %i.i.i.i.0 = phi i32 [ 0, %212 ], [ %.pre16, %224 ], [ %216, %214 ] %z.i.i.i.0 = phi double [ %213, %212 ], [ %225, %224 ], [ %221, %214 ] %226 = add nsw i32 %i.i.i.i.0, 1 %227 = and i32 %226, 1 %228 = shl nuw nsw i32 %227, 3 %229 = getelementptr inbounds [16 x double], [16 x double] addrspace(1)* @__cudart_sin_cos_coeffs, i32 0, i32 %228 %230 = fmul double %z.i.i.i.0, %z.i.i.i.0 %.not27 = icmp eq i32 %227, 0 %231 = select i1 %.not27, double 0x3DE5DB65F9785EBA, double 0xBDA8FF8320FD8164 %232 = getelementptr inbounds double, double addrspace(1)* %229, i32 1 %233 = load double, double addrspace(1)* %232, align 8 %234 = call double @llvm.fma.f64(double noundef %231, double %230, double %233) %235 = getelementptr inbounds double, double addrspace(1)* %229, i32 2 %236 = load double, double addrspace(1)* %235, align 8 %237 = call double @llvm.fma.f64(double %234, double %230, double %236) %238 = getelementptr inbounds double, double addrspace(1)* %229, i32 3 %239 = load double, double addrspace(1)* %238, align 8 %240 = call double @llvm.fma.f64(double %237, double %230, double %239) %241 = getelementptr inbounds double, double addrspace(1)* %229, i32 4 %242 = load double, double addrspace(1)* %241, align 8 %243 = call double @llvm.fma.f64(double %240, double %230, double %242) %244 = getelementptr inbounds double, double addrspace(1)* %229, i32 5 %245 = load double, double addrspace(1)* %244, align 8 %246 = call double @llvm.fma.f64(double %243, double %230, double %245) %247 = getelementptr inbounds double, double addrspace(1)* %229, i32 6 %248 = load double, double addrspace(1)* %247, align 8 %249 = call double @llvm.fma.f64(double %246, double %230, double %248) %250 = call double @llvm.fma.f64(double %249, double %z.i.i.i.0, double %z.i.i.i.0) %251 = call double @llvm.fma.f64(double %249, double %230, double noundef 1.000000e+00) %spec.select2 = select i1 %.not27, double %250, double %251 %252 = and i32 %226, 2 %.not28 = icmp eq i32 %252, 0 %253 = call double @llvm.fma.f64(double %spec.select2, double noundef -1.000000e+00, double noundef 0.000000e+00) %.1 = select i1 %.not28, double %spec.select2, double %253 br label %__internal_cos_offset.exit.i __internal_cos_offset.exit.i: ; preds = %__internal_trig_reduction_kerneld.exit.i.i.i.i, %188, %__internal_sin_cos_kerneld.exit.i.i.i %.02 = phi double [ %.1, %__internal_sin_cos_kerneld.exit.i.i.i ], [ %192, %188 ], [ %spec.select1, %__internal_trig_reduction_kerneld.exit.i.i.i.i ] %254 = fmul double %111, %.02 br label %__nv_j0.exit 255: ; preds = %0 %256 = call double @llvm.fabs.f64(double %a) %257 = fcmp ugt double %256, 0x400353AABAD7B784 br i1 %257, label %275, label %258 258: ; preds = %255 %259 = call double @llvm.fma.f64(double %256, double noundef 0x3D020E4ADCDE2AD3, double noundef 0xBD4DD167A0DC3F55) %260 = call double @llvm.fma.f64(double %259, double %256, double noundef 0x3D5503F5A491E487) %261 = call double @llvm.fma.f64(double %260, double %256, double noundef 0x3DC1F29940C2403A) %262 = call double @llvm.fma.f64(double %261, double %256, double noundef 0x3D84CF9302EACDEF) %263 = call double @llvm.fma.f64(double %262, double %256, double noundef 0xBE384A53DBBCA436) %264 = call double @llvm.fma.f64(double %263, double %256, double noundef 0x3D9779BEE4F63BCC) %265 = call double @llvm.fma.f64(double %264, double %256, double noundef 0x3EA6C160E414F3F0) %266 = call double @llvm.fma.f64(double %265, double %256, double noundef 0x3D8F3D2F12430699) %267 = call double @llvm.fma.f64(double %266, double %256, double noundef 0xBF0C71C72C0CED04) %268 = call double @llvm.fma.f64(double %267, double %256, double noundef 0x3D659BCA506F1128) %269 = call double @llvm.fma.f64(double %268, double %256, double noundef 0x3F65555555506982) %270 = call double @llvm.fma.f64(double %269, double %256, double noundef 0x3D15BA0B425F1BFB) %271 = call double @llvm.fma.f64(double %270, double %256, double noundef 0xBFB0000000000065) %272 = call double @llvm.fma.f64(double %271, double %256, double noundef 0x3C8729A7253FB679) %273 = call double @llvm.fma.f64(double %272, double %256, double noundef 5.000000e-01) %274 = fmul double %256, %273 br label %__nv_j1.exit 275: ; preds = %255 %276 = fcmp ugt double %256, 0x4015B1D0574614EA br i1 %276, label %296, label %277 277: ; preds = %275 %278 = fadd double %256, 0xC00EA75575AF6F09 %279 = fadd double %278, 0x3CA60155A9D1B256 %280 = call double @llvm.fma.f64(double %279, double noundef 0xBCF8D3CDBB60175E, double noundef 0x3D41011A1DF02DAD) %281 = call double @llvm.fma.f64(double %280, double %279, double noundef 0x3D76013AC1E5E222) %282 = call double @llvm.fma.f64(double %281, double %279, double noundef 0xBDBEC315D96D5F03) %283 = call double @llvm.fma.f64(double %282, double %279, double noundef 0xBDF03BE1B4B57207) %284 = call double @llvm.fma.f64(double %283, double %279, double noundef 0x3E345695F8B660F7) %285 = call double @llvm.fma.f64(double %284, double %279, double noundef 0x3E617069FCFCFFF4) %286 = call double @llvm.fma.f64(double %285, double %279, double noundef 0xBEA33825C36745EB) %287 = call double @llvm.fma.f64(double %286, double %279, double noundef 0xBEC9799D4F90931B) %288 = call double @llvm.fma.f64(double %287, double %279, double noundef 0x3F083A06E2F7DF13) %289 = call double @llvm.fma.f64(double %288, double %279, double noundef 0x3F26E4C2D53A7CF6) %290 = call double @llvm.fma.f64(double %289, double %279, double noundef 0xBF624B3409957B1C) %291 = call double @llvm.fma.f64(double %290, double %279, double noundef 0xBF7537544C3325DF) %292 = call double @llvm.fma.f64(double %291, double %279, double noundef 0x3FAB589D1DA138E2) %293 = call double @llvm.fma.f64(double %292, double %279, double noundef 0x3FAAE8A39F51AD13) %294 = call double @llvm.fma.f64(double %293, double %279, double noundef 0xBFD9C6CF582CBF7F) %295 = fmul double %279, %294 br label %__nv_j1.exit 296: ; preds = %275 %297 = fcmp ugt double %256, 0x40213065E54C1AA9 br i1 %297, label %317, label %298 298: ; preds = %296 %299 = fadd double %256, 0xC01C0FF5F3B47250 %300 = fadd double %299, 0x3C9B226D9D243827 %301 = call double @llvm.fma.f64(double %300, double noundef 0x3CF3EB867515FAD6, double noundef 0xBD40E8363DB649A9) %302 = call double @llvm.fma.f64(double %301, double %300, double noundef 0xBD73B7DD4A6608FB) %303 = call double @llvm.fma.f64(double %302, double %300, double noundef 0x3DBEC5E01482C750) %304 = call double @llvm.fma.f64(double %303, double %300, double noundef 0x3DEC62BB9E882103) %305 = call double @llvm.fma.f64(double %304, double %300, double noundef 0xBE34462EED732A23) %306 = call double @llvm.fma.f64(double %305, double %300, double noundef 0xBE5D48DCAD7DC59B) %307 = call double @llvm.fma.f64(double %306, double %300, double noundef 0x3EA3026DF29167E9) %308 = call double @llvm.fma.f64(double %307, double %300, double noundef 0x3EC4255B0119666C) %309 = call double @llvm.fma.f64(double %308, double %300, double noundef 0xBF0796A751B32693) %310 = call double @llvm.fma.f64(double %309, double %300, double noundef 0xBF207358BBDBA284) %311 = call double @llvm.fma.f64(double %310, double %300, double noundef 0x3F613FBC7D6927B1) %312 = call double @llvm.fma.f64(double %311, double %300, double noundef 0x3F69A4B292E3DD75) %313 = call double @llvm.fma.f64(double %312, double %300, double noundef 0xBFA80C83BDEEE4FB) %314 = call double @llvm.fma.f64(double %313, double %300, double noundef 0xBF95E70DC60362BF) %315 = call double @llvm.fma.f64(double %314, double %300, double noundef 0x3FD33518B3874E8A) %316 = fmul double %300, %315 br label %__nv_j1.exit 317: ; preds = %296 %318 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([12 x i8], [12 x i8]* @.str.1, i32 0, i32 0)) #135 %319 = icmp eq i32 %318, 200 br i1 %319, label %326, label %320 320: ; preds = %317 %321 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([12 x i8], [12 x i8]* @.str.1, i32 0, i32 0)) #135 %322 = icmp eq i32 %321, 350 br i1 %322, label %326, label %323 323: ; preds = %320 %324 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([12 x i8], [12 x i8]* @.str.1, i32 0, i32 0)) #135 %325 = icmp eq i32 %324, 370 br i1 %325, label %326, label %328 326: ; preds = %323, %320, %317 %327 = fcmp oeq double %256, 0x7FF0000000000000 br label %__nv_isinfd.exit.i56 328: ; preds = %323 %329 = call i32 @llvm.nvvm.d2i.lo(double %256) #135 %330 = call i32 @llvm.nvvm.d2i.hi(double %256) #135 %331 = and i32 %330, 2147483647 %332 = icmp eq i32 %331, 2146435072 %333 = icmp eq i32 %329, 0 %334 = select i1 %332, i1 %333, i1 false br label %__nv_isinfd.exit.i56 __nv_isinfd.exit.i56: ; preds = %328, %326 %.014.in = phi i1 [ %327, %326 ], [ %334, %328 ] br i1 %.014.in, label %__nv_j1.exit, label %335 335: ; preds = %__nv_isinfd.exit.i56 %336 = call double @llvm.nvvm.rcp.approx.ftz.d(double %256) #135 %337 = fneg double %256 %338 = call double @llvm.fma.f64(double %337, double %336, double noundef 1.000000e+00) %339 = call double @llvm.fma.f64(double %338, double %338, double %338) %340 = call double @llvm.fma.f64(double %339, double %336, double %336) %341 = fmul double %340, %340 %342 = call double @llvm.fma.f64(double %341, double noundef 0x40CD02EA3F2F6751, double noundef 0xC099C06322A3F8BE) %343 = call double @llvm.fma.f64(double %342, double %341, double noundef 0x405B89354DA77324) %344 = call double @llvm.fma.f64(double %343, double %341, double noundef 0xC01E352294653188) %345 = call double @llvm.fma.f64(double %344, double %341, double noundef 0x3FE9BC7DB16BD7A7) %346 = call double @llvm.fma.f64(double %345, double %341, double noundef 0xBFC8BFE1C3A4F741) %347 = call double @llvm.fma.f64(double %346, double %341, double noundef 0x3FC7FFFFF0D00BE2) %348 = call double @llvm.fma.f64(double %347, double %341, double noundef 0x3FF00000000068CC) %349 = call double @llvm.fma.f64(double %341, double noundef 0xC18DA26B212FDC9A, double noundef 0x415A30AC6857BEE0) %350 = call double @llvm.fma.f64(double %349, double %341, double noundef 0xC11764222AD7C910) %351 = call double @llvm.fma.f64(double %350, double %341, double noundef 0x40CEB02E0C306857) %352 = call double @llvm.fma.f64(double %351, double %341, double noundef 0xC08351859FA2B23B) %353 = call double @llvm.fma.f64(double %352, double %341, double noundef 0x403E65A07AF51F42) %354 = call double @llvm.fma.f64(double %353, double %341, double noundef 0xC002F2B817F77A57) %355 = call double @llvm.fma.f64(double %354, double %341, double noundef 0x3FD7BCC34DA069FD) %356 = call double @llvm.fma.f64(double %355, double %341, double noundef 0xBFC4FFFFF8A44463) %357 = call double @llvm.fma.f64(double %356, double %341, double noundef 0x3FD7FFFFFFFF5CD7) %358 = call double @llvm.fma.f64(double %357, double %340, double %256) %359 = call double @llvm.nvvm.rsqrt.approx.d(double %256) #135 %360 = fmul double %359, 0x3FE9884533D43651 %361 = fmul double %360, %348 %362 = fmul double %358, 0x3FE45F306DC9C883 %363 = call i32 @llvm.nvvm.d2i.rn(double %362) #135 store i32 %363, i32* %q.i.i.i44, align 4, !noalias !219 %364 = sitofp i32 %363 to double %365 = fneg double %364 %366 = call double @llvm.fma.f64(double %365, double noundef 0x3FF921FB54442D18, double %358) %367 = call double @llvm.fma.f64(double %365, double noundef 0x3C91A62633145C00, double %366) %368 = call double @llvm.fma.f64(double %365, double noundef 0x397B839A252049C0, double %367) %369 = call double @llvm.fabs.f64(double %358) %370 = fcmp ult double %369, 0x41E0000000000000 br i1 %370, label %__internal_trig_reduction_kerneld.exit.i.i57, label %371 371: ; preds = %335 %372 = call fastcc double @__internal_trig_reduction_slowpathd(double %358, i32* noalias nocapture nofree noundef nonnull writeonly align 4 dereferenceable(4) %q.i.i.i44) #135 %.pre = load i32, i32* %q.i.i.i44, align 4 br label %__internal_trig_reduction_kerneld.exit.i.i57 __internal_trig_reduction_kerneld.exit.i.i57: ; preds = %371, %335 %373 = phi i32 [ %.pre, %371 ], [ %363, %335 ] %t.i.i.i43.0 = phi double [ %372, %371 ], [ %368, %335 ] %374 = and i32 %373, 3 %375 = uitofp i32 %374 to double %376 = fadd double %t.i.i.i43.0, 0xC002D97C7F3321D2 %377 = fmul double %375, 0x3FF921FB54442D18 %378 = fadd double %376, %377 %379 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([12 x i8], [12 x i8]* @.str.1, i32 0, i32 0)) #135 %380 = icmp eq i32 %379, 350 br i1 %380, label %384, label %381 381: ; preds = %__internal_trig_reduction_kerneld.exit.i.i57 %382 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([12 x i8], [12 x i8]* @.str.1, i32 0, i32 0)) #135 %383 = icmp eq i32 %382, 370 br i1 %383, label %384, label %443 384: ; preds = %381, %__internal_trig_reduction_kerneld.exit.i.i57 %385 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([12 x i8], [12 x i8]* @.str.1, i32 0, i32 0)) #135 %386 = icmp eq i32 %385, 200 br i1 %386, label %393, label %387 387: ; preds = %384 %388 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([12 x i8], [12 x i8]* @.str.1, i32 0, i32 0)) #135 %389 = icmp eq i32 %388, 350 br i1 %389, label %393, label %390 390: ; preds = %387 %391 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([12 x i8], [12 x i8]* @.str.1, i32 0, i32 0)) #135 %392 = icmp eq i32 %391, 370 br i1 %392, label %393, label %396 393: ; preds = %390, %387, %384 %394 = call double @llvm.fabs.f64(double %378) %395 = fcmp oeq double %394, 0x7FF0000000000000 br label %__nv_isinfd.exit.i.i.i.i58 396: ; preds = %390 %397 = call i32 @llvm.nvvm.d2i.lo(double %378) #135 %398 = call i32 @llvm.nvvm.d2i.hi(double %378) #135 %399 = and i32 %398, 2147483647 %400 = icmp eq i32 %399, 2146435072 %401 = icmp eq i32 %397, 0 %402 = select i1 %400, i1 %401, i1 false br label %__nv_isinfd.exit.i.i.i.i58 __nv_isinfd.exit.i.i.i.i58: ; preds = %396, %393 %.010.in = phi i1 [ %395, %393 ], [ %402, %396 ] br i1 %.010.in, label %403, label %405 403: ; preds = %__nv_isinfd.exit.i.i.i.i58 %404 = fmul double %378, 0.000000e+00 br label %__internal_trig_reduction_kerneld.exit.i.i.i.i59 405: ; preds = %__nv_isinfd.exit.i.i.i.i58 %406 = fmul double %378, 0x3FE45F306DC9C883 %407 = call i32 @llvm.nvvm.d2i.rn(double %406) #135 store i32 %407, i32* %q.i.i.i.i.i30, align 4, !noalias !219 %408 = sitofp i32 %407 to double %409 = fneg double %408 %410 = call double @llvm.fma.f64(double %409, double noundef 0x3FF921FB54442D18, double %378) %411 = call double @llvm.fma.f64(double %409, double noundef 0x3C91A62633145C00, double %410) %412 = call double @llvm.fma.f64(double %409, double noundef 0x397B839A252049C0, double %411) %413 = call double @llvm.fabs.f64(double %378) %414 = fcmp ult double %413, 0x41E0000000000000 br i1 %414, label %__internal_trig_reduction_kerneld.exit.i.i.i.i59, label %415 415: ; preds = %405 %416 = call fastcc double @__internal_trig_reduction_slowpathd(double %378, i32* noalias nocapture nofree noundef nonnull writeonly align 4 dereferenceable(4) %q.i.i.i.i.i30) #135 %.pre14 = load i32, i32* %q.i.i.i.i.i30, align 4 br label %__internal_trig_reduction_kerneld.exit.i.i.i.i59 __internal_trig_reduction_kerneld.exit.i.i.i.i59: ; preds = %405, %415, %403 %i.i.i.i.i37.0 = phi i32 [ 0, %403 ], [ %.pre14, %415 ], [ %407, %405 ] %.09 = phi double [ %404, %403 ], [ %416, %415 ], [ %412, %405 ] %417 = fmul double %.09, %.09 %418 = call double @llvm.fma.f64(double %417, double noundef 0xBDA8FF8320FD8164, double noundef 0x3E21EEA7C1EF8528) %419 = call double @llvm.fma.f64(double %418, double %417, double noundef 0xBE927E4F8E06E6D9) %420 = call double @llvm.fma.f64(double %419, double %417, double noundef 0x3EFA01A019DDBCE9) %421 = call double @llvm.fma.f64(double %420, double %417, double noundef 0xBF56C16C16C15D47) %422 = call double @llvm.fma.f64(double %421, double %417, double noundef 0x3FA5555555555551) %423 = call double @llvm.fma.f64(double %422, double %417, double noundef -5.000000e-01) %424 = call double @llvm.fma.f64(double %423, double %417, double noundef 1.000000e+00) %425 = call double @llvm.fma.f64(double %417, double noundef 0x3DE5DB65F9785EBA, double noundef 0xBE5AE5F12CB0D246) %426 = call double @llvm.fma.f64(double %425, double %417, double noundef 0x3EC71DE369ACE392) %427 = call double @llvm.fma.f64(double %426, double %417, double noundef 0xBF2A01A019DB62A1) %428 = call double @llvm.fma.f64(double %427, double %417, double noundef 0x3F81111111110818) %429 = call double @llvm.fma.f64(double %428, double %417, double noundef 0xBFC5555555555554) %430 = call double @llvm.fma.f64(double %429, double %417, double noundef 0.000000e+00) %431 = call double @llvm.fma.f64(double %430, double %.09, double %.09) %432 = call i32 @llvm.nvvm.d2i.hi(double %431) #135 %433 = call i32 @llvm.nvvm.d2i.lo(double %431) #135 %434 = xor i32 %432, -2147483648 %435 = call double @llvm.nvvm.lohi.i2d(i32 %433, i32 %434) #135 %436 = and i32 %i.i.i.i.i37.0, 1 %.not25 = icmp eq i32 %436, 0 %spec.select4 = select i1 %.not25, double %424, double %435 %437 = and i32 %i.i.i.i.i37.0, 2 %.not26 = icmp eq i32 %437, 0 br i1 %.not26, label %__internal_cos_offset.exit.i64, label %438 438: ; preds = %__internal_trig_reduction_kerneld.exit.i.i.i.i59 %439 = call i32 @llvm.nvvm.d2i.hi(double %spec.select4) #135 %440 = call i32 @llvm.nvvm.d2i.lo(double %spec.select4) #135 %441 = xor i32 %439, -2147483648 %442 = call double @llvm.nvvm.lohi.i2d(i32 %440, i32 %441) #135 br label %__internal_cos_offset.exit.i64 443: ; preds = %381 %444 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([12 x i8], [12 x i8]* @.str.1, i32 0, i32 0)) #135 %445 = icmp eq i32 %444, 200 br i1 %445, label %452, label %446 446: ; preds = %443 %447 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([12 x i8], [12 x i8]* @.str.1, i32 0, i32 0)) #135 %448 = icmp eq i32 %447, 350 br i1 %448, label %452, label %449 449: ; preds = %446 %450 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([12 x i8], [12 x i8]* @.str.1, i32 0, i32 0)) #135 %451 = icmp eq i32 %450, 370 br i1 %451, label %452, label %455 452: ; preds = %449, %446, %443 %453 = call double @llvm.fabs.f64(double %378) %454 = fcmp oeq double %453, 0x7FF0000000000000 br label %__nv_isinfd.exit.i.i.i61 455: ; preds = %449 %456 = call i32 @llvm.nvvm.d2i.lo(double %378) #135 %457 = call i32 @llvm.nvvm.d2i.hi(double %378) #135 %458 = and i32 %457, 2147483647 %459 = icmp eq i32 %458, 2146435072 %460 = icmp eq i32 %456, 0 %461 = select i1 %459, i1 %460, i1 false br label %__nv_isinfd.exit.i.i.i61 __nv_isinfd.exit.i.i.i61: ; preds = %455, %452 %.011.in = phi i1 [ %454, %452 ], [ %461, %455 ] br i1 %.011.in, label %462, label %464 462: ; preds = %__nv_isinfd.exit.i.i.i61 %463 = fmul double %378, 0.000000e+00 br label %__internal_sin_cos_kerneld.exit.i.i.i63 464: ; preds = %__nv_isinfd.exit.i.i.i61 %465 = fmul double %378, 0x3FE45F306DC9C883 %466 = call i32 @llvm.nvvm.d2i.rn(double %465) #135 store i32 %466, i32* %q.i.i.i.i14, align 4, !noalias !219 %467 = sitofp i32 %466 to double %468 = fneg double %467 %469 = call double @llvm.fma.f64(double %468, double noundef 0x3FF921FB54442D18, double %378) %470 = call double @llvm.fma.f64(double %468, double noundef 0x3C91A62633145C00, double %469) %471 = call double @llvm.fma.f64(double %468, double noundef 0x397B839A252049C0, double %470) %472 = call double @llvm.fabs.f64(double %378) %473 = fcmp ult double %472, 0x41E0000000000000 br i1 %473, label %__internal_sin_cos_kerneld.exit.i.i.i63, label %474 474: ; preds = %464 %475 = call fastcc double @__internal_trig_reduction_slowpathd(double %378, i32* noalias nocapture nofree noundef nonnull writeonly align 4 dereferenceable(4) %q.i.i.i.i14) #135 %.pre13 = load i32, i32* %q.i.i.i.i14, align 4 br label %__internal_sin_cos_kerneld.exit.i.i.i63 __internal_sin_cos_kerneld.exit.i.i.i63: ; preds = %464, %474, %462 %i.i.i.i41.0 = phi i32 [ 0, %462 ], [ %.pre13, %474 ], [ %466, %464 ] %z.i.i.i40.0 = phi double [ %463, %462 ], [ %475, %474 ], [ %471, %464 ] %476 = add nsw i32 %i.i.i.i41.0, 1 %477 = and i32 %476, 1 %478 = shl nuw nsw i32 %477, 3 %479 = getelementptr inbounds [16 x double], [16 x double] addrspace(1)* @__cudart_sin_cos_coeffs, i32 0, i32 %478 %480 = fmul double %z.i.i.i40.0, %z.i.i.i40.0 %.not = icmp eq i32 %477, 0 %481 = select i1 %.not, double 0x3DE5DB65F9785EBA, double 0xBDA8FF8320FD8164 %482 = getelementptr inbounds double, double addrspace(1)* %479, i32 1 %483 = load double, double addrspace(1)* %482, align 8 %484 = call double @llvm.fma.f64(double noundef %481, double %480, double %483) %485 = getelementptr inbounds double, double addrspace(1)* %479, i32 2 %486 = load double, double addrspace(1)* %485, align 8 %487 = call double @llvm.fma.f64(double %484, double %480, double %486) %488 = getelementptr inbounds double, double addrspace(1)* %479, i32 3 %489 = load double, double addrspace(1)* %488, align 8 %490 = call double @llvm.fma.f64(double %487, double %480, double %489) %491 = getelementptr inbounds double, double addrspace(1)* %479, i32 4 %492 = load double, double addrspace(1)* %491, align 8 %493 = call double @llvm.fma.f64(double %490, double %480, double %492) %494 = getelementptr inbounds double, double addrspace(1)* %479, i32 5 %495 = load double, double addrspace(1)* %494, align 8 %496 = call double @llvm.fma.f64(double %493, double %480, double %495) %497 = getelementptr inbounds double, double addrspace(1)* %479, i32 6 %498 = load double, double addrspace(1)* %497, align 8 %499 = call double @llvm.fma.f64(double %496, double %480, double %498) %500 = call double @llvm.fma.f64(double %499, double %z.i.i.i40.0, double %z.i.i.i40.0) %501 = call double @llvm.fma.f64(double %499, double %480, double noundef 1.000000e+00) %spec.select5 = select i1 %.not, double %500, double %501 %502 = and i32 %476, 2 %.not24 = icmp eq i32 %502, 0 %503 = call double @llvm.fma.f64(double %spec.select5, double noundef -1.000000e+00, double noundef 0.000000e+00) %.113 = select i1 %.not24, double %spec.select5, double %503 br label %__internal_cos_offset.exit.i64 __internal_cos_offset.exit.i64: ; preds = %__internal_trig_reduction_kerneld.exit.i.i.i.i59, %438, %__internal_sin_cos_kerneld.exit.i.i.i63 %.08 = phi double [ %.113, %__internal_sin_cos_kerneld.exit.i.i.i63 ], [ %442, %438 ], [ %spec.select4, %__internal_trig_reduction_kerneld.exit.i.i.i.i59 ] %504 = fmul double %361, %.08 br label %__nv_j1.exit __nv_j1.exit: ; preds = %277, %__internal_cos_offset.exit.i64, %__nv_isinfd.exit.i56, %298, %258 %r.i50.3 = phi double [ %274, %258 ], [ %295, %277 ], [ %316, %298 ], [ %504, %__internal_cos_offset.exit.i64 ], [ 0.000000e+00, %__nv_isinfd.exit.i56 ] %505 = fcmp olt double %a, 0.000000e+00 %506 = fneg double %r.i50.3 %r.i50.4 = select i1 %505, double %506, double %r.i50.3 %507 = fcmp olt double %256, 1.000000e-30 %508 = fmul double %a, 5.000000e-01 %r.i50.5 = select i1 %507, double %508, double %r.i50.4 br label %__nv_j0.exit 509: ; preds = %0 %510 = icmp slt i32 %n, 0 br i1 %510, label %__nv_j0.exit, label %511 511: ; preds = %509 %512 = call double @llvm.fabs.f64(double %a) %513 = sitofp i32 %n to double %514 = fadd double %513, -1.000000e+00 %515 = fcmp ogt double %512, %514 br i1 %515, label %516, label %1046 516: ; preds = %511 %517 = fdiv double 2.000000e+00, %a %518 = fcmp ugt double %512, 0x400353AABAD7B784 br i1 %518, label %536, label %519 519: ; preds = %516 %520 = call double @llvm.fma.f64(double %512, double noundef 0x3D020E4ADCDE2AD3, double noundef 0xBD4DD167A0DC3F55) %521 = call double @llvm.fma.f64(double %520, double %512, double noundef 0x3D5503F5A491E487) %522 = call double @llvm.fma.f64(double %521, double %512, double noundef 0x3DC1F29940C2403A) %523 = call double @llvm.fma.f64(double %522, double %512, double noundef 0x3D84CF9302EACDEF) %524 = call double @llvm.fma.f64(double %523, double %512, double noundef 0xBE384A53DBBCA436) %525 = call double @llvm.fma.f64(double %524, double %512, double noundef 0x3D9779BEE4F63BCC) %526 = call double @llvm.fma.f64(double %525, double %512, double noundef 0x3EA6C160E414F3F0) %527 = call double @llvm.fma.f64(double %526, double %512, double noundef 0x3D8F3D2F12430699) %528 = call double @llvm.fma.f64(double %527, double %512, double noundef 0xBF0C71C72C0CED04) %529 = call double @llvm.fma.f64(double %528, double %512, double noundef 0x3D659BCA506F1128) %530 = call double @llvm.fma.f64(double %529, double %512, double noundef 0x3F65555555506982) %531 = call double @llvm.fma.f64(double %530, double %512, double noundef 0x3D15BA0B425F1BFB) %532 = call double @llvm.fma.f64(double %531, double %512, double noundef 0xBFB0000000000065) %533 = call double @llvm.fma.f64(double %532, double %512, double noundef 0x3C8729A7253FB679) %534 = call double @llvm.fma.f64(double %533, double %512, double noundef 5.000000e-01) %535 = fmul double %512, %534 br label %__nv_j1.exit126 536: ; preds = %516 %537 = fcmp ugt double %512, 0x4015B1D0574614EA br i1 %537, label %557, label %538 538: ; preds = %536 %539 = fadd double %512, 0xC00EA75575AF6F09 %540 = fadd double %539, 0x3CA60155A9D1B256 %541 = call double @llvm.fma.f64(double %540, double noundef 0xBCF8D3CDBB60175E, double noundef 0x3D41011A1DF02DAD) %542 = call double @llvm.fma.f64(double %541, double %540, double noundef 0x3D76013AC1E5E222) %543 = call double @llvm.fma.f64(double %542, double %540, double noundef 0xBDBEC315D96D5F03) %544 = call double @llvm.fma.f64(double %543, double %540, double noundef 0xBDF03BE1B4B57207) %545 = call double @llvm.fma.f64(double %544, double %540, double noundef 0x3E345695F8B660F7) %546 = call double @llvm.fma.f64(double %545, double %540, double noundef 0x3E617069FCFCFFF4) %547 = call double @llvm.fma.f64(double %546, double %540, double noundef 0xBEA33825C36745EB) %548 = call double @llvm.fma.f64(double %547, double %540, double noundef 0xBEC9799D4F90931B) %549 = call double @llvm.fma.f64(double %548, double %540, double noundef 0x3F083A06E2F7DF13) %550 = call double @llvm.fma.f64(double %549, double %540, double noundef 0x3F26E4C2D53A7CF6) %551 = call double @llvm.fma.f64(double %550, double %540, double noundef 0xBF624B3409957B1C) %552 = call double @llvm.fma.f64(double %551, double %540, double noundef 0xBF7537544C3325DF) %553 = call double @llvm.fma.f64(double %552, double %540, double noundef 0x3FAB589D1DA138E2) %554 = call double @llvm.fma.f64(double %553, double %540, double noundef 0x3FAAE8A39F51AD13) %555 = call double @llvm.fma.f64(double %554, double %540, double noundef 0xBFD9C6CF582CBF7F) %556 = fmul double %540, %555 br label %__nv_j1.exit126 557: ; preds = %536 %558 = fcmp ugt double %512, 0x40213065E54C1AA9 br i1 %558, label %578, label %559 559: ; preds = %557 %560 = fadd double %512, 0xC01C0FF5F3B47250 %561 = fadd double %560, 0x3C9B226D9D243827 %562 = call double @llvm.fma.f64(double %561, double noundef 0x3CF3EB867515FAD6, double noundef 0xBD40E8363DB649A9) %563 = call double @llvm.fma.f64(double %562, double %561, double noundef 0xBD73B7DD4A6608FB) %564 = call double @llvm.fma.f64(double %563, double %561, double noundef 0x3DBEC5E01482C750) %565 = call double @llvm.fma.f64(double %564, double %561, double noundef 0x3DEC62BB9E882103) %566 = call double @llvm.fma.f64(double %565, double %561, double noundef 0xBE34462EED732A23) %567 = call double @llvm.fma.f64(double %566, double %561, double noundef 0xBE5D48DCAD7DC59B) %568 = call double @llvm.fma.f64(double %567, double %561, double noundef 0x3EA3026DF29167E9) %569 = call double @llvm.fma.f64(double %568, double %561, double noundef 0x3EC4255B0119666C) %570 = call double @llvm.fma.f64(double %569, double %561, double noundef 0xBF0796A751B32693) %571 = call double @llvm.fma.f64(double %570, double %561, double noundef 0xBF207358BBDBA284) %572 = call double @llvm.fma.f64(double %571, double %561, double noundef 0x3F613FBC7D6927B1) %573 = call double @llvm.fma.f64(double %572, double %561, double noundef 0x3F69A4B292E3DD75) %574 = call double @llvm.fma.f64(double %573, double %561, double noundef 0xBFA80C83BDEEE4FB) %575 = call double @llvm.fma.f64(double %574, double %561, double noundef 0xBF95E70DC60362BF) %576 = call double @llvm.fma.f64(double %575, double %561, double noundef 0x3FD33518B3874E8A) %577 = fmul double %561, %576 br label %__nv_j1.exit126 578: ; preds = %557 %579 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([12 x i8], [12 x i8]* @.str.1, i32 0, i32 0)) #135 %580 = icmp eq i32 %579, 200 br i1 %580, label %587, label %581 581: ; preds = %578 %582 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([12 x i8], [12 x i8]* @.str.1, i32 0, i32 0)) #135 %583 = icmp eq i32 %582, 350 br i1 %583, label %587, label %584 584: ; preds = %581 %585 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([12 x i8], [12 x i8]* @.str.1, i32 0, i32 0)) #135 %586 = icmp eq i32 %585, 370 br i1 %586, label %587, label %589 587: ; preds = %584, %581, %578 %588 = fcmp oeq double %512, 0x7FF0000000000000 br label %__nv_isinfd.exit.i117 589: ; preds = %584 %590 = call i32 @llvm.nvvm.d2i.lo(double %512) #135 %591 = call i32 @llvm.nvvm.d2i.hi(double %512) #135 %592 = and i32 %591, 2147483647 %593 = icmp eq i32 %592, 2146435072 %594 = icmp eq i32 %590, 0 %595 = select i1 %593, i1 %594, i1 false br label %__nv_isinfd.exit.i117 __nv_isinfd.exit.i117: ; preds = %589, %587 %.021.in = phi i1 [ %588, %587 ], [ %595, %589 ] br i1 %.021.in, label %__nv_j1.exit126, label %596 596: ; preds = %__nv_isinfd.exit.i117 %597 = call double @llvm.nvvm.rcp.approx.ftz.d(double %512) #135 %598 = fneg double %512 %599 = call double @llvm.fma.f64(double %598, double %597, double noundef 1.000000e+00) %600 = call double @llvm.fma.f64(double %599, double %599, double %599) %601 = call double @llvm.fma.f64(double %600, double %597, double %597) %602 = fmul double %601, %601 %603 = call double @llvm.fma.f64(double %602, double noundef 0x40CD02EA3F2F6751, double noundef 0xC099C06322A3F8BE) %604 = call double @llvm.fma.f64(double %603, double %602, double noundef 0x405B89354DA77324) %605 = call double @llvm.fma.f64(double %604, double %602, double noundef 0xC01E352294653188) %606 = call double @llvm.fma.f64(double %605, double %602, double noundef 0x3FE9BC7DB16BD7A7) %607 = call double @llvm.fma.f64(double %606, double %602, double noundef 0xBFC8BFE1C3A4F741) %608 = call double @llvm.fma.f64(double %607, double %602, double noundef 0x3FC7FFFFF0D00BE2) %609 = call double @llvm.fma.f64(double %608, double %602, double noundef 0x3FF00000000068CC) %610 = call double @llvm.fma.f64(double %602, double noundef 0xC18DA26B212FDC9A, double noundef 0x415A30AC6857BEE0) %611 = call double @llvm.fma.f64(double %610, double %602, double noundef 0xC11764222AD7C910) %612 = call double @llvm.fma.f64(double %611, double %602, double noundef 0x40CEB02E0C306857) %613 = call double @llvm.fma.f64(double %612, double %602, double noundef 0xC08351859FA2B23B) %614 = call double @llvm.fma.f64(double %613, double %602, double noundef 0x403E65A07AF51F42) %615 = call double @llvm.fma.f64(double %614, double %602, double noundef 0xC002F2B817F77A57) %616 = call double @llvm.fma.f64(double %615, double %602, double noundef 0x3FD7BCC34DA069FD) %617 = call double @llvm.fma.f64(double %616, double %602, double noundef 0xBFC4FFFFF8A44463) %618 = call double @llvm.fma.f64(double %617, double %602, double noundef 0x3FD7FFFFFFFF5CD7) %619 = call double @llvm.fma.f64(double %618, double %601, double %512) %620 = call double @llvm.nvvm.rsqrt.approx.d(double %512) #135 %621 = fmul double %620, 0x3FE9884533D43651 %622 = fmul double %621, %609 %623 = fmul double %619, 0x3FE45F306DC9C883 %624 = call i32 @llvm.nvvm.d2i.rn(double %623) #135 store i32 %624, i32* %q.i.i.i105, align 4, !noalias !219 %625 = sitofp i32 %624 to double %626 = fneg double %625 %627 = call double @llvm.fma.f64(double %626, double noundef 0x3FF921FB54442D18, double %619) %628 = call double @llvm.fma.f64(double %626, double noundef 0x3C91A62633145C00, double %627) %629 = call double @llvm.fma.f64(double %626, double noundef 0x397B839A252049C0, double %628) %630 = call double @llvm.fabs.f64(double %619) %631 = fcmp ult double %630, 0x41E0000000000000 br i1 %631, label %__internal_trig_reduction_kerneld.exit.i.i118, label %632 632: ; preds = %596 %633 = call fastcc double @__internal_trig_reduction_slowpathd(double %619, i32* noalias nocapture nofree noundef nonnull writeonly align 4 dereferenceable(4) %q.i.i.i105) #135 %.pre18 = load i32, i32* %q.i.i.i105, align 4 br label %__internal_trig_reduction_kerneld.exit.i.i118 __internal_trig_reduction_kerneld.exit.i.i118: ; preds = %632, %596 %634 = phi i32 [ %.pre18, %632 ], [ %624, %596 ] %t.i.i.i104.0 = phi double [ %633, %632 ], [ %629, %596 ] %635 = and i32 %634, 3 %636 = uitofp i32 %635 to double %637 = fadd double %t.i.i.i104.0, 0xC002D97C7F3321D2 %638 = fmul double %636, 0x3FF921FB54442D18 %639 = fadd double %637, %638 %640 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([12 x i8], [12 x i8]* @.str.1, i32 0, i32 0)) #135 %641 = icmp eq i32 %640, 350 br i1 %641, label %645, label %642 642: ; preds = %__internal_trig_reduction_kerneld.exit.i.i118 %643 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([12 x i8], [12 x i8]* @.str.1, i32 0, i32 0)) #135 %644 = icmp eq i32 %643, 370 br i1 %644, label %645, label %704 645: ; preds = %642, %__internal_trig_reduction_kerneld.exit.i.i118 %646 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([12 x i8], [12 x i8]* @.str.1, i32 0, i32 0)) #135 %647 = icmp eq i32 %646, 200 br i1 %647, label %654, label %648 648: ; preds = %645 %649 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([12 x i8], [12 x i8]* @.str.1, i32 0, i32 0)) #135 %650 = icmp eq i32 %649, 350 br i1 %650, label %654, label %651 651: ; preds = %648 %652 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([12 x i8], [12 x i8]* @.str.1, i32 0, i32 0)) #135 %653 = icmp eq i32 %652, 370 br i1 %653, label %654, label %657 654: ; preds = %651, %648, %645 %655 = call double @llvm.fabs.f64(double %639) %656 = fcmp oeq double %655, 0x7FF0000000000000 br label %__nv_isinfd.exit.i.i.i.i119 657: ; preds = %651 %658 = call i32 @llvm.nvvm.d2i.lo(double %639) #135 %659 = call i32 @llvm.nvvm.d2i.hi(double %639) #135 %660 = and i32 %659, 2147483647 %661 = icmp eq i32 %660, 2146435072 %662 = icmp eq i32 %658, 0 %663 = select i1 %661, i1 %662, i1 false br label %__nv_isinfd.exit.i.i.i.i119 __nv_isinfd.exit.i.i.i.i119: ; preds = %657, %654 %.017.in = phi i1 [ %656, %654 ], [ %663, %657 ] br i1 %.017.in, label %664, label %666 664: ; preds = %__nv_isinfd.exit.i.i.i.i119 %665 = fmul double %639, 0.000000e+00 br label %__internal_trig_reduction_kerneld.exit.i.i.i.i120 666: ; preds = %__nv_isinfd.exit.i.i.i.i119 %667 = fmul double %639, 0x3FE45F306DC9C883 %668 = call i32 @llvm.nvvm.d2i.rn(double %667) #135 store i32 %668, i32* %q.i.i.i.i.i91, align 4, !noalias !219 %669 = sitofp i32 %668 to double %670 = fneg double %669 %671 = call double @llvm.fma.f64(double %670, double noundef 0x3FF921FB54442D18, double %639) %672 = call double @llvm.fma.f64(double %670, double noundef 0x3C91A62633145C00, double %671) %673 = call double @llvm.fma.f64(double %670, double noundef 0x397B839A252049C0, double %672) %674 = call double @llvm.fabs.f64(double %639) %675 = fcmp ult double %674, 0x41E0000000000000 br i1 %675, label %__internal_trig_reduction_kerneld.exit.i.i.i.i120, label %676 676: ; preds = %666 %677 = call fastcc double @__internal_trig_reduction_slowpathd(double %639, i32* noalias nocapture nofree noundef nonnull writeonly align 4 dereferenceable(4) %q.i.i.i.i.i91) #135 %.pre20 = load i32, i32* %q.i.i.i.i.i91, align 4 br label %__internal_trig_reduction_kerneld.exit.i.i.i.i120 __internal_trig_reduction_kerneld.exit.i.i.i.i120: ; preds = %666, %676, %664 %i.i.i.i.i98.0 = phi i32 [ 0, %664 ], [ %.pre20, %676 ], [ %668, %666 ] %.016 = phi double [ %665, %664 ], [ %677, %676 ], [ %673, %666 ] %678 = fmul double %.016, %.016 %679 = call double @llvm.fma.f64(double %678, double noundef 0xBDA8FF8320FD8164, double noundef 0x3E21EEA7C1EF8528) %680 = call double @llvm.fma.f64(double %679, double %678, double noundef 0xBE927E4F8E06E6D9) %681 = call double @llvm.fma.f64(double %680, double %678, double noundef 0x3EFA01A019DDBCE9) %682 = call double @llvm.fma.f64(double %681, double %678, double noundef 0xBF56C16C16C15D47) %683 = call double @llvm.fma.f64(double %682, double %678, double noundef 0x3FA5555555555551) %684 = call double @llvm.fma.f64(double %683, double %678, double noundef -5.000000e-01) %685 = call double @llvm.fma.f64(double %684, double %678, double noundef 1.000000e+00) %686 = call double @llvm.fma.f64(double %678, double noundef 0x3DE5DB65F9785EBA, double noundef 0xBE5AE5F12CB0D246) %687 = call double @llvm.fma.f64(double %686, double %678, double noundef 0x3EC71DE369ACE392) %688 = call double @llvm.fma.f64(double %687, double %678, double noundef 0xBF2A01A019DB62A1) %689 = call double @llvm.fma.f64(double %688, double %678, double noundef 0x3F81111111110818) %690 = call double @llvm.fma.f64(double %689, double %678, double noundef 0xBFC5555555555554) %691 = call double @llvm.fma.f64(double %690, double %678, double noundef 0.000000e+00) %692 = call double @llvm.fma.f64(double %691, double %.016, double %.016) %693 = call i32 @llvm.nvvm.d2i.hi(double %692) #135 %694 = call i32 @llvm.nvvm.d2i.lo(double %692) #135 %695 = xor i32 %693, -2147483648 %696 = call double @llvm.nvvm.lohi.i2d(i32 %694, i32 %695) #135 %697 = and i32 %i.i.i.i.i98.0, 1 %.not39 = icmp eq i32 %697, 0 %spec.select7 = select i1 %.not39, double %685, double %696 %698 = and i32 %i.i.i.i.i98.0, 2 %.not40 = icmp eq i32 %698, 0 br i1 %.not40, label %__internal_cos_offset.exit.i125, label %699 699: ; preds = %__internal_trig_reduction_kerneld.exit.i.i.i.i120 %700 = call i32 @llvm.nvvm.d2i.hi(double %spec.select7) #135 %701 = call i32 @llvm.nvvm.d2i.lo(double %spec.select7) #135 %702 = xor i32 %700, -2147483648 %703 = call double @llvm.nvvm.lohi.i2d(i32 %701, i32 %702) #135 br label %__internal_cos_offset.exit.i125 704: ; preds = %642 %705 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([12 x i8], [12 x i8]* @.str.1, i32 0, i32 0)) #135 %706 = icmp eq i32 %705, 200 br i1 %706, label %713, label %707 707: ; preds = %704 %708 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([12 x i8], [12 x i8]* @.str.1, i32 0, i32 0)) #135 %709 = icmp eq i32 %708, 350 br i1 %709, label %713, label %710 710: ; preds = %707 %711 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([12 x i8], [12 x i8]* @.str.1, i32 0, i32 0)) #135 %712 = icmp eq i32 %711, 370 br i1 %712, label %713, label %716 713: ; preds = %710, %707, %704 %714 = call double @llvm.fabs.f64(double %639) %715 = fcmp oeq double %714, 0x7FF0000000000000 br label %__nv_isinfd.exit.i.i.i122 716: ; preds = %710 %717 = call i32 @llvm.nvvm.d2i.lo(double %639) #135 %718 = call i32 @llvm.nvvm.d2i.hi(double %639) #135 %719 = and i32 %718, 2147483647 %720 = icmp eq i32 %719, 2146435072 %721 = icmp eq i32 %717, 0 %722 = select i1 %720, i1 %721, i1 false br label %__nv_isinfd.exit.i.i.i122 __nv_isinfd.exit.i.i.i122: ; preds = %716, %713 %.018.in = phi i1 [ %715, %713 ], [ %722, %716 ] br i1 %.018.in, label %723, label %725 723: ; preds = %__nv_isinfd.exit.i.i.i122 %724 = fmul double %639, 0.000000e+00 br label %__internal_sin_cos_kerneld.exit.i.i.i124 725: ; preds = %__nv_isinfd.exit.i.i.i122 %726 = fmul double %639, 0x3FE45F306DC9C883 %727 = call i32 @llvm.nvvm.d2i.rn(double %726) #135 store i32 %727, i32* %q.i.i.i.i75, align 4, !noalias !219 %728 = sitofp i32 %727 to double %729 = fneg double %728 %730 = call double @llvm.fma.f64(double %729, double noundef 0x3FF921FB54442D18, double %639) %731 = call double @llvm.fma.f64(double %729, double noundef 0x3C91A62633145C00, double %730) %732 = call double @llvm.fma.f64(double %729, double noundef 0x397B839A252049C0, double %731) %733 = call double @llvm.fabs.f64(double %639) %734 = fcmp ult double %733, 0x41E0000000000000 br i1 %734, label %__internal_sin_cos_kerneld.exit.i.i.i124, label %735 735: ; preds = %725 %736 = call fastcc double @__internal_trig_reduction_slowpathd(double %639, i32* noalias nocapture nofree noundef nonnull writeonly align 4 dereferenceable(4) %q.i.i.i.i75) #135 %.pre19 = load i32, i32* %q.i.i.i.i75, align 4 br label %__internal_sin_cos_kerneld.exit.i.i.i124 __internal_sin_cos_kerneld.exit.i.i.i124: ; preds = %725, %735, %723 %i.i.i.i102.0 = phi i32 [ 0, %723 ], [ %.pre19, %735 ], [ %727, %725 ] %z.i.i.i101.0 = phi double [ %724, %723 ], [ %736, %735 ], [ %732, %725 ] %737 = add nsw i32 %i.i.i.i102.0, 1 %738 = and i32 %737, 1 %739 = shl nuw nsw i32 %738, 3 %740 = getelementptr inbounds [16 x double], [16 x double] addrspace(1)* @__cudart_sin_cos_coeffs, i32 0, i32 %739 %741 = fmul double %z.i.i.i101.0, %z.i.i.i101.0 %.not33 = icmp eq i32 %738, 0 %742 = select i1 %.not33, double 0x3DE5DB65F9785EBA, double 0xBDA8FF8320FD8164 %743 = getelementptr inbounds double, double addrspace(1)* %740, i32 1 %744 = load double, double addrspace(1)* %743, align 8 %745 = call double @llvm.fma.f64(double noundef %742, double %741, double %744) %746 = getelementptr inbounds double, double addrspace(1)* %740, i32 2 %747 = load double, double addrspace(1)* %746, align 8 %748 = call double @llvm.fma.f64(double %745, double %741, double %747) %749 = getelementptr inbounds double, double addrspace(1)* %740, i32 3 %750 = load double, double addrspace(1)* %749, align 8 %751 = call double @llvm.fma.f64(double %748, double %741, double %750) %752 = getelementptr inbounds double, double addrspace(1)* %740, i32 4 %753 = load double, double addrspace(1)* %752, align 8 %754 = call double @llvm.fma.f64(double %751, double %741, double %753) %755 = getelementptr inbounds double, double addrspace(1)* %740, i32 5 %756 = load double, double addrspace(1)* %755, align 8 %757 = call double @llvm.fma.f64(double %754, double %741, double %756) %758 = getelementptr inbounds double, double addrspace(1)* %740, i32 6 %759 = load double, double addrspace(1)* %758, align 8 %760 = call double @llvm.fma.f64(double %757, double %741, double %759) %761 = call double @llvm.fma.f64(double %760, double %z.i.i.i101.0, double %z.i.i.i101.0) %762 = call double @llvm.fma.f64(double %760, double %741, double noundef 1.000000e+00) %spec.select8 = select i1 %.not33, double %761, double %762 %763 = and i32 %737, 2 %.not34 = icmp eq i32 %763, 0 %764 = call double @llvm.fma.f64(double %spec.select8, double noundef -1.000000e+00, double noundef 0.000000e+00) %.120 = select i1 %.not34, double %spec.select8, double %764 br label %__internal_cos_offset.exit.i125 __internal_cos_offset.exit.i125: ; preds = %__internal_trig_reduction_kerneld.exit.i.i.i.i120, %699, %__internal_sin_cos_kerneld.exit.i.i.i124 %.015 = phi double [ %.120, %__internal_sin_cos_kerneld.exit.i.i.i124 ], [ %703, %699 ], [ %spec.select7, %__internal_trig_reduction_kerneld.exit.i.i.i.i120 ] %765 = fmul double %622, %.015 br label %__nv_j1.exit126 __nv_j1.exit126: ; preds = %538, %__internal_cos_offset.exit.i125, %__nv_isinfd.exit.i117, %559, %519 %r.i111.3 = phi double [ %535, %519 ], [ %556, %538 ], [ %577, %559 ], [ %765, %__internal_cos_offset.exit.i125 ], [ 0.000000e+00, %__nv_isinfd.exit.i117 ] %766 = fcmp olt double %a, 0.000000e+00 %767 = fneg double %r.i111.3 %r.i111.4 = select i1 %766, double %767, double %r.i111.3 %768 = fcmp olt double %512, 1.000000e-30 %769 = fmul double %a, 5.000000e-01 %r.i111.5 = select i1 %768, double %769, double %r.i111.4 %770 = fcmp ugt double %512, 0x400FB319F277BBE5 br i1 %770, label %791, label %771 771: ; preds = %__nv_j1.exit126 %772 = fadd double %512, 0xC0033D152E971B40 %773 = fadd double %772, 0x3CA0F539D7DA258E %774 = call double @llvm.fma.f64(double %773, double noundef 0xBCC0D18564C48C61, double noundef 0xBCFCF8F9A8C294BC) %775 = call double @llvm.fma.f64(double %774, double %773, double noundef 0x3D3FAB983CAE498B) %776 = call double @llvm.fma.f64(double %775, double %773, double noundef 0x3D7CD7C018579B88) %777 = call double @llvm.fma.f64(double %776, double %773, double noundef 0xBDBBDD2342D64FDD) %778 = call double @llvm.fma.f64(double %777, double %773, double noundef 0xBDF5C2D9416B1E2B) %779 = call double @llvm.fma.f64(double %778, double %773, double noundef 0x3E32951D73174DD5) %780 = call double @llvm.fma.f64(double %779, double %773, double noundef 0x3E67FF99802CAEB5) %781 = call double @llvm.fma.f64(double %780, double %773, double noundef 0xBEA1CCE305C4C9F7) %782 = call double @llvm.fma.f64(double %781, double %773, double noundef 0xBED232C77E29E1BB) %783 = call double @llvm.fma.f64(double %782, double %773, double noundef 0x3F06ED3B9F0EF757) %784 = call double @llvm.fma.f64(double %783, double %773, double noundef 0x3F315382BA096A62) %785 = call double @llvm.fma.f64(double %784, double %773, double noundef 0xBF61F992590D1AE4) %786 = call double @llvm.fma.f64(double %785, double %773, double noundef 0xBF81BB1CBE1A465F) %787 = call double @llvm.fma.f64(double %786, double %773, double noundef 0x3FACFAE864368D84) %788 = call double @llvm.fma.f64(double %787, double %773, double noundef 0x3FBBA1DEEA0294A3) %789 = call double @llvm.fma.f64(double %788, double %773, double noundef 0xBFE09CDB36551280) %790 = fmul double %773, %789 br label %.lr.ph 791: ; preds = %__nv_j1.exit126 %792 = fcmp ugt double %512, 0x401C58FD1A62F5EC br i1 %792, label %813, label %793 793: ; preds = %791 %794 = fadd double %512, 0xC016148F5B2C2E45 %795 = fadd double %794, 0xBC975054CD60A517 %796 = call double @llvm.fma.f64(double %795, double noundef 0x3CBCB0A8F126B343, double noundef 0x3CF83FD1F333EB61) %797 = call double @llvm.fma.f64(double %796, double %795, double noundef 0xBD4100E33E3FB413) %798 = call double @llvm.fma.f64(double %797, double %795, double noundef 0xBD7846076D004627) %799 = call double @llvm.fma.f64(double %798, double %795, double noundef 0x3DBE2F1D4F90720D) %800 = call double @llvm.fma.f64(double %799, double %795, double noundef 0x3DF1D03B1E4A119B) %801 = call double @llvm.fma.f64(double %800, double %795, double noundef 0xBE341D72B1B3BCE9) %802 = call double @llvm.fma.f64(double %801, double %795, double noundef 0xBE62DA37CE2A9EF8) %803 = call double @llvm.fma.f64(double %802, double %795, double noundef 0x3EA32E6D9974F763) %804 = call double @llvm.fma.f64(double %803, double %795, double noundef 0x3ECAD77D744A1879) %805 = call double @llvm.fma.f64(double %804, double %795, double noundef 0xBF0863F481A37337) %806 = call double @llvm.fma.f64(double %805, double %795, double noundef 0xBF26F641F418F0F4) %807 = call double @llvm.fma.f64(double %806, double %795, double noundef 0x3F627E31FE9A969E) %808 = call double @llvm.fma.f64(double %807, double %795, double noundef 0x3F72F7FFE9025628) %809 = call double @llvm.fma.f64(double %808, double %795, double noundef 0xBFAB2150CB41E8BF) %810 = call double @llvm.fma.f64(double %809, double %795, double noundef 0xBF9F8F72E7A848DE) %811 = call double @llvm.fma.f64(double %810, double %795, double noundef 0x3FD5C6E60A097823) %812 = fmul double %795, %811 br label %.lr.ph 813: ; preds = %791 %814 = fcmp ugt double %512, 0x402471FCB6A7A8C0 br i1 %814, label %835, label %815 815: ; preds = %813 %816 = fadd double %512, 0xC0214EB56CCCDECA %817 = fadd double %816, 0x3CB51970714C7C25 %818 = call double @llvm.fma.f64(double %817, double noundef 0xBCBDB7FFCF659E24, double noundef 0xBCF4B3A71AAAC629) %819 = call double @llvm.fma.f64(double %818, double %817, double noundef 0x3D417EC150ECDCE7) %820 = call double @llvm.fma.f64(double %819, double %817, double noundef 0x3D7438F5EA1D10B2) %821 = call double @llvm.fma.f64(double %820, double %817, double noundef 0xBDBEDAE7EC2C9E87) %822 = call double @llvm.fma.f64(double %821, double %817, double noundef 0xBDECADD2C4B91F58) %823 = call double @llvm.fma.f64(double %822, double %817, double noundef 0x3E34582C8EE12204) %824 = call double @llvm.fma.f64(double %823, double %817, double noundef 0x3E5CEDA451DD20F8) %825 = call double @llvm.fma.f64(double %824, double %817, double noundef 0xBEA30E8CC3165E2F) %826 = call double @llvm.fma.f64(double %825, double %817, double noundef 0xBEC3324842BB1A2E) %827 = call double @llvm.fma.f64(double %826, double %817, double noundef 0x3F07800BC54FBDDB) %828 = call double @llvm.fma.f64(double %827, double %817, double noundef 0x3F1D79605276949A) %829 = call double @llvm.fma.f64(double %828, double %817, double noundef 0xBF60E0D60385A629) %830 = call double @llvm.fma.f64(double %829, double %817, double noundef 0xBF648E63600D82F3) %831 = call double @llvm.fma.f64(double %830, double %817, double noundef 0x3FA68B984EC6493A) %832 = call double @llvm.fma.f64(double %831, double %817, double noundef 0x3F900F7FCF183E0B) %833 = call double @llvm.fma.f64(double %832, double %817, double noundef 0xBFD15F7977A772D4) %834 = fmul double %817, %833 br label %.lr.ph 835: ; preds = %813 %836 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([12 x i8], [12 x i8]* @.str.1, i32 0, i32 0)) #135 %837 = icmp eq i32 %836, 200 br i1 %837, label %844, label %838 838: ; preds = %835 %839 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([12 x i8], [12 x i8]* @.str.1, i32 0, i32 0)) #135 %840 = icmp eq i32 %839, 350 br i1 %840, label %844, label %841 841: ; preds = %838 %842 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([12 x i8], [12 x i8]* @.str.1, i32 0, i32 0)) #135 %843 = icmp eq i32 %842, 370 br i1 %843, label %844, label %846 844: ; preds = %841, %838, %835 %845 = fcmp oeq double %512, 0x7FF0000000000000 br label %__nv_isinfd.exit.i179 846: ; preds = %841 %847 = call i32 @llvm.nvvm.d2i.lo(double %512) #135 %848 = call i32 @llvm.nvvm.d2i.hi(double %512) #135 %849 = and i32 %848, 2147483647 %850 = icmp eq i32 %849, 2146435072 %851 = icmp eq i32 %847, 0 %852 = select i1 %850, i1 %851, i1 false br label %__nv_isinfd.exit.i179 __nv_isinfd.exit.i179: ; preds = %846, %844 %.028.in = phi i1 [ %845, %844 ], [ %852, %846 ] br i1 %.028.in, label %.lr.ph, label %853 853: ; preds = %__nv_isinfd.exit.i179 %854 = call double @llvm.nvvm.rcp.approx.ftz.d(double %512) #135 %855 = fneg double %512 %856 = call double @llvm.fma.f64(double %855, double %854, double noundef 1.000000e+00) %857 = call double @llvm.fma.f64(double %856, double %856, double %856) %858 = call double @llvm.fma.f64(double %857, double %854, double %854) %859 = fmul double %858, %858 %860 = call double @llvm.fma.f64(double %859, double noundef 0xC0D115CB8C11A9DC, double noundef 0x409927467A655012) %861 = call double @llvm.fma.f64(double %860, double %859, double noundef 0xC05751787E247BD4) %862 = call double @llvm.fma.f64(double %861, double %859, double noundef 0x401704C4E5FC36B2) %863 = call double @llvm.fma.f64(double %862, double %859, double noundef 0xBFE15B747A2FD531) %864 = call double @llvm.fma.f64(double %863, double %859, double noundef 0x3FBA7FEACF6CB79B) %865 = call double @llvm.fma.f64(double %864, double %859, double noundef 0xBFAFFFFFEDDCF548) %866 = call double @llvm.fma.f64(double %865, double %859, double noundef 0x3FEFFFFFFFFFC9E5) %867 = call double @llvm.fma.f64(double %859, double noundef 0xC14602FE1C34685E, double noundef 0x410ECD4523B12B84) %868 = call double @llvm.fma.f64(double %867, double %859, double noundef 0xC0C7A2FC1972F05A) %869 = call double @llvm.fma.f64(double %868, double %859, double noundef 0x407EBA131F7E5BEB) %870 = call double @llvm.fma.f64(double %869, double %859, double noundef 0xC0373B92E6E7CC7D) %871 = call double @llvm.fma.f64(double %870, double %859, double noundef 0x3FFA31BEE63A2F08) %872 = call double @llvm.fma.f64(double %871, double %859, double noundef 0xBFCAD320104D5D05) %873 = call double @llvm.fma.f64(double %872, double %859, double noundef 0x3FB0AAAA9C76D07E) %874 = call double @llvm.fma.f64(double %873, double %859, double noundef 0xBFBFFFFFFFFDACEC) %875 = call double @llvm.fma.f64(double %874, double %858, double %512) %876 = call double @llvm.nvvm.rsqrt.approx.d(double %512) #135 %877 = fmul double %876, 0x3FE9884533D43651 %878 = fmul double %877, %866 %879 = fmul double %875, 0x3FE45F306DC9C883 %880 = call i32 @llvm.nvvm.d2i.rn(double %879) #135 store i32 %880, i32* %q.i.i.i167, align 4, !noalias !219 %881 = sitofp i32 %880 to double %882 = fneg double %881 %883 = call double @llvm.fma.f64(double %882, double noundef 0x3FF921FB54442D18, double %875) %884 = call double @llvm.fma.f64(double %882, double noundef 0x3C91A62633145C00, double %883) %885 = call double @llvm.fma.f64(double %882, double noundef 0x397B839A252049C0, double %884) %886 = call double @llvm.fabs.f64(double %875) %887 = fcmp ult double %886, 0x41E0000000000000 br i1 %887, label %__internal_trig_reduction_kerneld.exit.i.i180, label %888 888: ; preds = %853 %889 = call fastcc double @__internal_trig_reduction_slowpathd(double %875, i32* noalias nocapture nofree noundef nonnull writeonly align 4 dereferenceable(4) %q.i.i.i167) #135 %.pre21 = load i32, i32* %q.i.i.i167, align 4 br label %__internal_trig_reduction_kerneld.exit.i.i180 __internal_trig_reduction_kerneld.exit.i.i180: ; preds = %888, %853 %890 = phi i32 [ %.pre21, %888 ], [ %880, %853 ] %t.i.i.i166.0 = phi double [ %889, %888 ], [ %885, %853 ] %891 = and i32 %890, 3 %892 = uitofp i32 %891 to double %893 = fadd double %t.i.i.i166.0, 0xBFE921FB54442D18 %894 = fmul double %892, 0x3FF921FB54442D18 %895 = fadd double %893, %894 %896 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([12 x i8], [12 x i8]* @.str.1, i32 0, i32 0)) #135 %897 = icmp eq i32 %896, 350 br i1 %897, label %901, label %898 898: ; preds = %__internal_trig_reduction_kerneld.exit.i.i180 %899 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([12 x i8], [12 x i8]* @.str.1, i32 0, i32 0)) #135 %900 = icmp eq i32 %899, 370 br i1 %900, label %901, label %960 901: ; preds = %898, %__internal_trig_reduction_kerneld.exit.i.i180 %902 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([12 x i8], [12 x i8]* @.str.1, i32 0, i32 0)) #135 %903 = icmp eq i32 %902, 200 br i1 %903, label %910, label %904 904: ; preds = %901 %905 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([12 x i8], [12 x i8]* @.str.1, i32 0, i32 0)) #135 %906 = icmp eq i32 %905, 350 br i1 %906, label %910, label %907 907: ; preds = %904 %908 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([12 x i8], [12 x i8]* @.str.1, i32 0, i32 0)) #135 %909 = icmp eq i32 %908, 370 br i1 %909, label %910, label %913 910: ; preds = %907, %904, %901 %911 = call double @llvm.fabs.f64(double %895) %912 = fcmp oeq double %911, 0x7FF0000000000000 br label %__nv_isinfd.exit.i.i.i.i181 913: ; preds = %907 %914 = call i32 @llvm.nvvm.d2i.lo(double %895) #135 %915 = call i32 @llvm.nvvm.d2i.hi(double %895) #135 %916 = and i32 %915, 2147483647 %917 = icmp eq i32 %916, 2146435072 %918 = icmp eq i32 %914, 0 %919 = select i1 %917, i1 %918, i1 false br label %__nv_isinfd.exit.i.i.i.i181 __nv_isinfd.exit.i.i.i.i181: ; preds = %913, %910 %.024.in = phi i1 [ %912, %910 ], [ %919, %913 ] br i1 %.024.in, label %920, label %922 920: ; preds = %__nv_isinfd.exit.i.i.i.i181 %921 = fmul double %895, 0.000000e+00 br label %__internal_trig_reduction_kerneld.exit.i.i.i.i182 922: ; preds = %__nv_isinfd.exit.i.i.i.i181 %923 = fmul double %895, 0x3FE45F306DC9C883 %924 = call i32 @llvm.nvvm.d2i.rn(double %923) #135 store i32 %924, i32* %q.i.i.i.i.i153, align 4, !noalias !219 %925 = sitofp i32 %924 to double %926 = fneg double %925 %927 = call double @llvm.fma.f64(double %926, double noundef 0x3FF921FB54442D18, double %895) %928 = call double @llvm.fma.f64(double %926, double noundef 0x3C91A62633145C00, double %927) %929 = call double @llvm.fma.f64(double %926, double noundef 0x397B839A252049C0, double %928) %930 = call double @llvm.fabs.f64(double %895) %931 = fcmp ult double %930, 0x41E0000000000000 br i1 %931, label %__internal_trig_reduction_kerneld.exit.i.i.i.i182, label %932 932: ; preds = %922 %933 = call fastcc double @__internal_trig_reduction_slowpathd(double %895, i32* noalias nocapture nofree noundef nonnull writeonly align 4 dereferenceable(4) %q.i.i.i.i.i153) #135 %.pre23 = load i32, i32* %q.i.i.i.i.i153, align 4 br label %__internal_trig_reduction_kerneld.exit.i.i.i.i182 __internal_trig_reduction_kerneld.exit.i.i.i.i182: ; preds = %922, %932, %920 %i.i.i.i.i160.0 = phi i32 [ 0, %920 ], [ %.pre23, %932 ], [ %924, %922 ] %.023 = phi double [ %921, %920 ], [ %933, %932 ], [ %929, %922 ] %934 = fmul double %.023, %.023 %935 = call double @llvm.fma.f64(double %934, double noundef 0xBDA8FF8320FD8164, double noundef 0x3E21EEA7C1EF8528) %936 = call double @llvm.fma.f64(double %935, double %934, double noundef 0xBE927E4F8E06E6D9) %937 = call double @llvm.fma.f64(double %936, double %934, double noundef 0x3EFA01A019DDBCE9) %938 = call double @llvm.fma.f64(double %937, double %934, double noundef 0xBF56C16C16C15D47) %939 = call double @llvm.fma.f64(double %938, double %934, double noundef 0x3FA5555555555551) %940 = call double @llvm.fma.f64(double %939, double %934, double noundef -5.000000e-01) %941 = call double @llvm.fma.f64(double %940, double %934, double noundef 1.000000e+00) %942 = call double @llvm.fma.f64(double %934, double noundef 0x3DE5DB65F9785EBA, double noundef 0xBE5AE5F12CB0D246) %943 = call double @llvm.fma.f64(double %942, double %934, double noundef 0x3EC71DE369ACE392) %944 = call double @llvm.fma.f64(double %943, double %934, double noundef 0xBF2A01A019DB62A1) %945 = call double @llvm.fma.f64(double %944, double %934, double noundef 0x3F81111111110818) %946 = call double @llvm.fma.f64(double %945, double %934, double noundef 0xBFC5555555555554) %947 = call double @llvm.fma.f64(double %946, double %934, double noundef 0.000000e+00) %948 = call double @llvm.fma.f64(double %947, double %.023, double %.023) %949 = call i32 @llvm.nvvm.d2i.hi(double %948) #135 %950 = call i32 @llvm.nvvm.d2i.lo(double %948) #135 %951 = xor i32 %949, -2147483648 %952 = call double @llvm.nvvm.lohi.i2d(i32 %950, i32 %951) #135 %953 = and i32 %i.i.i.i.i160.0, 1 %.not37 = icmp eq i32 %953, 0 %spec.select10 = select i1 %.not37, double %941, double %952 %954 = and i32 %i.i.i.i.i160.0, 2 %.not38 = icmp eq i32 %954, 0 br i1 %.not38, label %__internal_cos_offset.exit.i187, label %955 955: ; preds = %__internal_trig_reduction_kerneld.exit.i.i.i.i182 %956 = call i32 @llvm.nvvm.d2i.hi(double %spec.select10) #135 %957 = call i32 @llvm.nvvm.d2i.lo(double %spec.select10) #135 %958 = xor i32 %956, -2147483648 %959 = call double @llvm.nvvm.lohi.i2d(i32 %957, i32 %958) #135 br label %__internal_cos_offset.exit.i187 960: ; preds = %898 %961 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([12 x i8], [12 x i8]* @.str.1, i32 0, i32 0)) #135 %962 = icmp eq i32 %961, 200 br i1 %962, label %969, label %963 963: ; preds = %960 %964 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([12 x i8], [12 x i8]* @.str.1, i32 0, i32 0)) #135 %965 = icmp eq i32 %964, 350 br i1 %965, label %969, label %966 966: ; preds = %963 %967 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([12 x i8], [12 x i8]* @.str.1, i32 0, i32 0)) #135 %968 = icmp eq i32 %967, 370 br i1 %968, label %969, label %972 969: ; preds = %966, %963, %960 %970 = call double @llvm.fabs.f64(double %895) %971 = fcmp oeq double %970, 0x7FF0000000000000 br label %__nv_isinfd.exit.i.i.i184 972: ; preds = %966 %973 = call i32 @llvm.nvvm.d2i.lo(double %895) #135 %974 = call i32 @llvm.nvvm.d2i.hi(double %895) #135 %975 = and i32 %974, 2147483647 %976 = icmp eq i32 %975, 2146435072 %977 = icmp eq i32 %973, 0 %978 = select i1 %976, i1 %977, i1 false br label %__nv_isinfd.exit.i.i.i184 __nv_isinfd.exit.i.i.i184: ; preds = %972, %969 %.025.in = phi i1 [ %971, %969 ], [ %978, %972 ] br i1 %.025.in, label %979, label %981 979: ; preds = %__nv_isinfd.exit.i.i.i184 %980 = fmul double %895, 0.000000e+00 br label %__internal_sin_cos_kerneld.exit.i.i.i186 981: ; preds = %__nv_isinfd.exit.i.i.i184 %982 = fmul double %895, 0x3FE45F306DC9C883 %983 = call i32 @llvm.nvvm.d2i.rn(double %982) #135 store i32 %983, i32* %q.i.i.i.i137, align 4, !noalias !219 %984 = sitofp i32 %983 to double %985 = fneg double %984 %986 = call double @llvm.fma.f64(double %985, double noundef 0x3FF921FB54442D18, double %895) %987 = call double @llvm.fma.f64(double %985, double noundef 0x3C91A62633145C00, double %986) %988 = call double @llvm.fma.f64(double %985, double noundef 0x397B839A252049C0, double %987) %989 = call double @llvm.fabs.f64(double %895) %990 = fcmp ult double %989, 0x41E0000000000000 br i1 %990, label %__internal_sin_cos_kerneld.exit.i.i.i186, label %991 991: ; preds = %981 %992 = call fastcc double @__internal_trig_reduction_slowpathd(double %895, i32* noalias nocapture nofree noundef nonnull writeonly align 4 dereferenceable(4) %q.i.i.i.i137) #135 %.pre22 = load i32, i32* %q.i.i.i.i137, align 4 br label %__internal_sin_cos_kerneld.exit.i.i.i186 __internal_sin_cos_kerneld.exit.i.i.i186: ; preds = %981, %991, %979 %i.i.i.i164.0 = phi i32 [ 0, %979 ], [ %.pre22, %991 ], [ %983, %981 ] %z.i.i.i163.0 = phi double [ %980, %979 ], [ %992, %991 ], [ %988, %981 ] %993 = add nsw i32 %i.i.i.i164.0, 1 %994 = and i32 %993, 1 %995 = shl nuw nsw i32 %994, 3 %996 = getelementptr inbounds [16 x double], [16 x double] addrspace(1)* @__cudart_sin_cos_coeffs, i32 0, i32 %995 %997 = fmul double %z.i.i.i163.0, %z.i.i.i163.0 %.not35 = icmp eq i32 %994, 0 %998 = select i1 %.not35, double 0x3DE5DB65F9785EBA, double 0xBDA8FF8320FD8164 %999 = getelementptr inbounds double, double addrspace(1)* %996, i32 1 %1000 = load double, double addrspace(1)* %999, align 8 %1001 = call double @llvm.fma.f64(double noundef %998, double %997, double %1000) %1002 = getelementptr inbounds double, double addrspace(1)* %996, i32 2 %1003 = load double, double addrspace(1)* %1002, align 8 %1004 = call double @llvm.fma.f64(double %1001, double %997, double %1003) %1005 = getelementptr inbounds double, double addrspace(1)* %996, i32 3 %1006 = load double, double addrspace(1)* %1005, align 8 %1007 = call double @llvm.fma.f64(double %1004, double %997, double %1006) %1008 = getelementptr inbounds double, double addrspace(1)* %996, i32 4 %1009 = load double, double addrspace(1)* %1008, align 8 %1010 = call double @llvm.fma.f64(double %1007, double %997, double %1009) %1011 = getelementptr inbounds double, double addrspace(1)* %996, i32 5 %1012 = load double, double addrspace(1)* %1011, align 8 %1013 = call double @llvm.fma.f64(double %1010, double %997, double %1012) %1014 = getelementptr inbounds double, double addrspace(1)* %996, i32 6 %1015 = load double, double addrspace(1)* %1014, align 8 %1016 = call double @llvm.fma.f64(double %1013, double %997, double %1015) %1017 = call double @llvm.fma.f64(double %1016, double %z.i.i.i163.0, double %z.i.i.i163.0) %1018 = call double @llvm.fma.f64(double %1016, double %997, double noundef 1.000000e+00) %spec.select11 = select i1 %.not35, double %1017, double %1018 %1019 = and i32 %993, 2 %.not36 = icmp eq i32 %1019, 0 %1020 = call double @llvm.fma.f64(double %spec.select11, double noundef -1.000000e+00, double noundef 0.000000e+00) %.127 = select i1 %.not36, double %spec.select11, double %1020 br label %__internal_cos_offset.exit.i187 __internal_cos_offset.exit.i187: ; preds = %__internal_trig_reduction_kerneld.exit.i.i.i.i182, %955, %__internal_sin_cos_kerneld.exit.i.i.i186 %.022 = phi double [ %.127, %__internal_sin_cos_kerneld.exit.i.i.i186 ], [ %959, %955 ], [ %spec.select10, %__internal_trig_reduction_kerneld.exit.i.i.i.i182 ] %1021 = fmul double %878, %.022 br label %.lr.ph .lr.ph: ; preds = %771, %815, %__nv_isinfd.exit.i179, %__internal_cos_offset.exit.i187, %793 %r.i173.3 = phi double [ %790, %771 ], [ %812, %793 ], [ %834, %815 ], [ %1021, %__internal_cos_offset.exit.i187 ], [ 0.000000e+00, %__nv_isinfd.exit.i179 ] %1022 = add nsw i32 %n, -1 %1023 = add nsw i32 %n, -2 %xtraiter = and i32 %1022, 3 %1024 = icmp ult i32 %1023, 3 br i1 %1024, label %.__nv_j0.exit.loopexit_crit_edge.unr-lcssa, label %.lr.ph.new .lr.ph.new: ; preds = %.lr.ph %unroll_iter = and i32 %1022, -4 br label %1025 1025: ; preds = %1025, %.lr.ph.new %jim1.043 = phi double [ %r.i173.3, %.lr.ph.new ], [ %1039, %1025 ] %ji.042 = phi double [ %r.i111.5, %.lr.ph.new ], [ %1044, %1025 ] %i.041 = phi i32 [ 1, %.lr.ph.new ], [ %1045, %1025 ] %niter = phi i32 [ 0, %.lr.ph.new ], [ %niter.next.3, %1025 ] %1026 = sitofp i32 %i.041 to double %1027 = fmul double %517, %1026 %1028 = fneg double %jim1.043 %1029 = call double @llvm.fma.f64(double %1027, double %ji.042, double %1028) %1030 = add nuw nsw i32 %i.041, 1 %1031 = sitofp i32 %1030 to double %1032 = fmul double %517, %1031 %1033 = fneg double %ji.042 %1034 = call double @llvm.fma.f64(double %1032, double %1029, double %1033) %1035 = add nuw nsw i32 %i.041, 2 %1036 = sitofp i32 %1035 to double %1037 = fmul double %517, %1036 %1038 = fneg double %1029 %1039 = call double @llvm.fma.f64(double %1037, double %1034, double %1038) %1040 = add nuw nsw i32 %i.041, 3 %1041 = sitofp i32 %1040 to double %1042 = fmul double %517, %1041 %1043 = fneg double %1034 %1044 = call double @llvm.fma.f64(double %1042, double %1039, double %1043) %1045 = add nuw nsw i32 %i.041, 4 %niter.next.3 = add i32 %niter, 4 %niter.ncmp.3.not = icmp eq i32 %niter.next.3, %unroll_iter br i1 %niter.ncmp.3.not, label %.__nv_j0.exit.loopexit_crit_edge.unr-lcssa.loopexit, label %1025 1046: ; preds = %511 %1047 = fdiv double 2.000000e+00, %a %1048 = mul nsw i32 %n, 60 %1049 = sitofp i32 %1048 to double %1050 = call double @llvm.sqrt.f64(double %1049) %1051 = fptosi double %1050 to i32 %1052 = add nsw i32 %1051, %n %1053 = and i32 %1052, -2 %1054 = icmp sgt i32 %1053, 0 br i1 %1054, label %__nv_fabsf.exit, label %__nv_j0.exit __nv_fabsf.exit: ; preds = %1046, %1070 %ji1.048 = phi double [ %jim12.0, %1070 ], [ 1.000000e+00, %1046 ] %i.147 = phi i32 [ %1071, %1070 ], [ %1053, %1046 ] %sum.046 = phi double [ %sum.2, %1070 ], [ 0.000000e+00, %1046 ] %lambda.045 = phi double [ %spec.select12, %1070 ], [ 0.000000e+00, %1046 ] %jip1.144 = phi double [ %jip1.2, %1070 ], [ 0.000000e+00, %1046 ] %1055 = sitofp i32 %i.147 to double %1056 = fmul double %1047, %1055 %1057 = fneg double %jip1.144 %1058 = call double @llvm.fma.f64(double %1056, double %ji1.048, double %1057) %1059 = fptrunc double %1058 to float %1060 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not31 = icmp eq i32 %1060, 0 %1061 = call float @llvm.nvvm.fabs.ftz.f(float %1059) #135 %1062 = call float @llvm.fabs.f32(float %1059) %.0 = select i1 %.not31, float %1062, float %1061 %1063 = fpext float %.0 to double %1064 = fcmp ogt double %1063, 1.000000e+15 br i1 %1064, label %1065, label %1070 1065: ; preds = %__nv_fabsf.exit %1066 = fmul double %1058, 1.000000e-15 %1067 = fmul double %ji1.048, 1.000000e-15 %1068 = fmul double %lambda.045, 1.000000e-15 %1069 = fmul double %sum.046, 1.000000e-15 br label %1070 1070: ; preds = %1065, %__nv_fabsf.exit %jip1.2 = phi double [ %1067, %1065 ], [ %ji1.048, %__nv_fabsf.exit ] %lambda.1 = phi double [ %1068, %1065 ], [ %lambda.045, %__nv_fabsf.exit ] %sum.1 = phi double [ %1069, %1065 ], [ %sum.046, %__nv_fabsf.exit ] %jim12.0 = phi double [ %1066, %1065 ], [ %1058, %__nv_fabsf.exit ] %1071 = add nsw i32 %i.147, -1 %1072 = icmp eq i32 %1071, %n %spec.select12 = select i1 %1072, double %jim12.0, double %lambda.1 %1073 = and i32 %i.147, 1 %.not32 = icmp eq i32 %1073, 0 %1074 = fmul double %jim12.0, 2.000000e+00 %1075 = select i1 %.not32, double -0.000000e+00, double %1074 %sum.2 = fadd double %sum.1, %1075 %1076 = icmp ugt i32 %i.147, 1 br i1 %1076, label %__nv_fabsf.exit, label %._crit_edge ._crit_edge: ; preds = %1070 %1077 = fsub double %sum.2, %jim12.0 %1078 = fdiv double %spec.select12, %1077 br label %__nv_j0.exit .__nv_j0.exit.loopexit_crit_edge.unr-lcssa.loopexit: ; preds = %1025 %1079 = or i32 %unroll_iter, 1 br label %.__nv_j0.exit.loopexit_crit_edge.unr-lcssa .__nv_j0.exit.loopexit_crit_edge.unr-lcssa: ; preds = %.__nv_j0.exit.loopexit_crit_edge.unr-lcssa.loopexit, %.lr.ph %.lcssa.ph = phi double [ undef, %.lr.ph ], [ %1044, %.__nv_j0.exit.loopexit_crit_edge.unr-lcssa.loopexit ] %jim1.043.unr = phi double [ %r.i173.3, %.lr.ph ], [ %1039, %.__nv_j0.exit.loopexit_crit_edge.unr-lcssa.loopexit ] %ji.042.unr = phi double [ %r.i111.5, %.lr.ph ], [ %1044, %.__nv_j0.exit.loopexit_crit_edge.unr-lcssa.loopexit ] %i.041.unr = phi i32 [ 1, %.lr.ph ], [ %1079, %.__nv_j0.exit.loopexit_crit_edge.unr-lcssa.loopexit ] %lcmp.mod.not = icmp eq i32 %xtraiter, 0 br i1 %lcmp.mod.not, label %__nv_j0.exit, label %.epil.preheader .epil.preheader: ; preds = %.__nv_j0.exit.loopexit_crit_edge.unr-lcssa, %.epil.preheader %jim1.043.epil = phi double [ %ji.042.epil, %.epil.preheader ], [ %jim1.043.unr, %.__nv_j0.exit.loopexit_crit_edge.unr-lcssa ] %ji.042.epil = phi double [ %1083, %.epil.preheader ], [ %ji.042.unr, %.__nv_j0.exit.loopexit_crit_edge.unr-lcssa ] %i.041.epil = phi i32 [ %1084, %.epil.preheader ], [ %i.041.unr, %.__nv_j0.exit.loopexit_crit_edge.unr-lcssa ] %epil.iter = phi i32 [ %epil.iter.next, %.epil.preheader ], [ 0, %.__nv_j0.exit.loopexit_crit_edge.unr-lcssa ] %1080 = sitofp i32 %i.041.epil to double %1081 = fmul double %517, %1080 %1082 = fneg double %jim1.043.epil %1083 = call double @llvm.fma.f64(double %1081, double %ji.042.epil, double %1082) %1084 = add nuw nsw i32 %i.041.epil, 1 %epil.iter.next = add nuw nsw i32 %epil.iter, 1 %epil.iter.cmp.not = icmp eq i32 %epil.iter.next, %xtraiter br i1 %epil.iter.cmp.not, label %__nv_j0.exit, label %.epil.preheader, !llvm.loop !241 __nv_j0.exit: ; preds = %.epil.preheader, %.__nv_j0.exit.loopexit_crit_edge.unr-lcssa, %1046, %._crit_edge, %509, %4, %48, %__nv_isinfd.exit.i, %__internal_cos_offset.exit.i, %26, %__nv_j1.exit %.01 = phi double [ %r.i50.5, %__nv_j1.exit ], [ %23, %4 ], [ %45, %26 ], [ %67, %48 ], [ %254, %__internal_cos_offset.exit.i ], [ 0.000000e+00, %__nv_isinfd.exit.i ], [ 0xFFF8000000000000, %509 ], [ %1078, %._crit_edge ], [ -0.000000e+00, %1046 ], [ %.lcssa.ph, %.__nv_j0.exit.loopexit_crit_edge.unr-lcssa ], [ %1083, %.epil.preheader ] ret double %.01 } ; Function Attrs: nofree noinline nosync nounwind readnone willreturn define dso_local double @__nv_erf(double %a) local_unnamed_addr #109 { __internal_mexpm1.exit: %0 = call double @llvm.fabs.f64(double %a) #136 %1 = call double @llvm.fma.f64(double %0, double noundef 0xBCF0679AFBA6F279, double noundef 0x3D47088FDB46FA5F) #136 %2 = call double @llvm.fma.f64(double %1, double %0, double noundef 0xBD8DF9F9B976A9B2) #136 %3 = call double @llvm.fma.f64(double %2, double %0, double noundef 0x3DC7F1F5590CC332) #136 %4 = call double @llvm.fma.f64(double %3, double %0, double noundef 0xBDFA28A3CD2D56C4) #136 %5 = call double @llvm.fma.f64(double %4, double %0, double noundef 0x3E2485EE67835925) #136 %6 = call double @llvm.fma.f64(double %5, double %0, double noundef 0xBE476DB45919F583) #136 %7 = call double @llvm.fma.f64(double %6, double %0, double noundef 0x3E62D698D98C8D71) #136 %8 = call double @llvm.fma.f64(double %7, double %0, double noundef 0xBE720A2C7155D5C6) #136 %9 = call double @llvm.fma.f64(double %8, double %0, double noundef 0xBE41D29B37CA1397) #136 %10 = call double @llvm.fma.f64(double %9, double %0, double noundef 0x3EA2EF6CC0F67A49) #136 %11 = call double @llvm.fma.f64(double %10, double %0, double noundef 0xBEC102B892333B6F) #136 %12 = call double @llvm.fma.f64(double %11, double %0, double noundef 0x3ECA30375BA9A84E) #136 %13 = call double @llvm.fma.f64(double %12, double %0, double noundef 0x3ECAAD18DEDEA43E) #136 %14 = call double @llvm.fma.f64(double %13, double %0, double noundef 0xBEFF05355BC5B225) #136 %15 = call double @llvm.fma.f64(double %14, double %0, double noundef 0x3F10E37A3108BC8B) #136 %16 = call double @llvm.fma.f64(double %15, double %0, double noundef 0x3EFB292D828E5CB2) #136 %17 = call double @llvm.fma.f64(double %16, double %0, double noundef 0xBF4356626EBF9BFA) #136 %18 = call double @llvm.fma.f64(double %17, double %0, double noundef 0x3F5BCA68F73D6AFC) #136 %19 = call double @llvm.fma.f64(double %18, double %0, double noundef 0xBF2B6B69EBBC280B) #136 %20 = call double @llvm.fma.f64(double %19, double %0, double noundef 0xBF9396685912A453) #136 %21 = call double @llvm.fma.f64(double %20, double %0, double noundef 0x3FBA4F4E2A1ABEF8) #136 %22 = call double @llvm.fma.f64(double %21, double %0, double noundef 0x3FE45F306DC9C8BB) #136 %23 = call double @llvm.fma.f64(double %22, double %0, double noundef 0x3FC06EBA8214DB69) #136 %24 = call double @llvm.fma.f64(double %23, double %0, double %0) #136 %25 = fsub double %0, %24 %26 = call double @llvm.fma.f64(double %23, double %0, double %25) #136 %27 = fneg double %24 %28 = fneg double %26 %29 = fptrunc double %27 to float %30 = fmul float %29, 0x3FF7154760000000 %31 = call float @llvm.round.f32(float %30) #136 %32 = fpext float %31 to double %33 = fneg double %32 %34 = call double @llvm.fma.f64(double %33, double noundef 0x3FE62E42FEFA39EF, double %27) #136 %35 = call double @llvm.fma.f64(double %34, double noundef 0x3E5AE904A4741B81, double noundef 0x3E928A27F89B6999) #136 %36 = call double @llvm.fma.f64(double %35, double %34, double noundef 0x3EC71DE715FF7E07) #136 %37 = call double @llvm.fma.f64(double %36, double %34, double noundef 0x3EFA019A6B0AC45A) #136 %38 = call double @llvm.fma.f64(double %37, double %34, double noundef 0x3F2A01A017EED94F) #136 %39 = call double @llvm.fma.f64(double %38, double %34, double noundef 0x3F56C16C17F2A71B) #136 %40 = call double @llvm.fma.f64(double %39, double %34, double noundef 0x3F811111111173C4) #136 %41 = call double @llvm.fma.f64(double %40, double %34, double noundef 0x3FA555555555211A) #136 %42 = call double @llvm.fma.f64(double %41, double %34, double noundef 0x3FC5555555555540) #136 %43 = call double @llvm.fma.f64(double %42, double %34, double noundef 0x3FE0000000000005) #136 %44 = fmul double %34, %43 %45 = call double @llvm.fma.f64(double %44, double %34, double %28) #136 %46 = fadd double %34, %45 %47 = call float @llvm.nvvm.ex2.approx.ftz.f(float %31) #138 %48 = fpext float %47 to double %49 = fsub double 1.000000e+00, %48 %50 = fneg double %46 %51 = call double @llvm.fma.f64(double %50, double %48, double %49) #136 %52 = fcmp oge double %0, 0x4017AFB48DC96626 %poly.0 = select i1 %52, double 1.000000e+00, double %51 %53 = call i32 @llvm.nvvm.d2i.hi(double %a) #138 %54 = call i32 @llvm.nvvm.d2i.lo(double %poly.0) #138 %55 = call i32 @llvm.nvvm.d2i.hi(double %poly.0) #138 %56 = and i32 %53, -2147483648 %57 = or i32 %55, %56 %58 = call double @llvm.nvvm.lohi.i2d(i32 %54, i32 %57) #138 ret double %58 } ; Function Attrs: noinline nounwind define dso_local double @__nv_erfinv(double %a) local_unnamed_addr #110 { __internal_fast_icmp_abs_lt.exit: %0 = call i32 @llvm.nvvm.d2i.hi(double %a) #138 %1 = bitcast i32 %0 to float %2 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not = icmp eq i32 %2, 0 %3 = call float @llvm.nvvm.fabs.ftz.f(float %1) #135 %4 = call float @llvm.fabs.f32(float %1) %.0 = select i1 %.not, float %4, float %3 %5 = fcmp olt float %.0, 1.875000e+00 br i1 %5, label %6, label %115 6: ; preds = %__internal_fast_icmp_abs_lt.exit %7 = fneg double %a %8 = call double @llvm.fma.f64(double %a, double %7, double noundef 1.000000e+00) %9 = call i32 @llvm.nvvm.d2i.hi(double %8) #135 %10 = call i32 @llvm.nvvm.d2i.lo(double %8) #135 %11 = lshr i32 %9, 20 %12 = and i32 %11, 2046 %13 = add nuw i32 %12, 2147482626 %14 = call double @llvm.nvvm.lohi.i2d(i32 %13, i32 noundef 1127219200) #135 %15 = call double @llvm.nvvm.lohi.i2d(i32 noundef -2147483648, i32 noundef 1127219200) #135 %16 = fsub double %14, %15 %17 = and i32 %9, -2145386497 %18 = or i32 %17, 1071644672 %19 = call double @llvm.nvvm.lohi.i2d(i32 %10, i32 %18) #135 %20 = fadd double %19, -1.000000e+00 %21 = fadd double %19, 1.000000e+00 %22 = call double @llvm.nvvm.rcp.approx.ftz.d(double %21) #135 %23 = fneg double %21 %24 = call double @llvm.fma.f64(double %23, double %22, double noundef 1.000000e+00) %25 = call double @llvm.fma.f64(double %24, double %24, double %24) %26 = call double @llvm.fma.f64(double %25, double %22, double %22) %27 = fmul double %20, %26 %28 = call double @llvm.fma.f64(double %27, double noundef -2.000000e+00, double %20) %29 = fneg double %27 %30 = call double @llvm.fma.f64(double %29, double %20, double %28) %31 = call double @llvm.fma.f64(double %30, double %26, double %27) %32 = fmul double %31, %31 %33 = call double @llvm.fma.f64(double %32, double noundef 0x3FB5C5C218C775C9, double noundef 0x3FA55CF59CDC5D89) %34 = call double @llvm.fma.f64(double %33, double %32, double noundef 0x3FAEFD18CF6EBB9C) %35 = call double @llvm.fma.f64(double %34, double %32, double noundef 0x3FB10682EDCB8D1B) %36 = call double @llvm.fma.f64(double %35, double %32, double noundef 0x3FB3B1DD3AC7FC96) %37 = call double @llvm.fma.f64(double %36, double %32, double noundef 0x3FB745CB459B54A6) %38 = call double @llvm.fma.f64(double %37, double %32, double noundef 0x3FBC71C741A0669F) %39 = call double @llvm.fma.f64(double %38, double %32, double noundef 0x3FC249249209112E) %40 = call double @llvm.fma.f64(double %39, double %32, double noundef 0x3FC99999999A06C1) %41 = call double @llvm.fma.f64(double %40, double %32, double noundef 0x3FD5555555555535) %42 = fmul double %32, %41 %43 = call double @llvm.fma.f64(double %42, double %31, double %31) %44 = fadd double %43, %43 %45 = call double @llvm.fma.f64(double %16, double noundef 0x3FE62E42FEFA39EF, double %44) %46 = call i32 @llvm.nvvm.d2i.hi(double %45) #135 %47 = icmp ult i32 %46, -1072103424 br i1 %47, label %48, label %72 48: ; preds = %6 %49 = fsub double -3.125000e+00, %45 %50 = call double @llvm.fma.f64(double %49, double noundef 0xBBB135D2E746E627, double noundef 0xBC08DDF93324D327) %51 = call double @llvm.fma.f64(double %50, double %49, double noundef 0x3C37B83EEF0B7C9F) %52 = call double @llvm.fma.f64(double %51, double %49, double noundef 0x3C69BA72CD589B91) %53 = call double @llvm.fma.f64(double %52, double %49, double noundef 0xBCA33689090A6B96) %54 = call double @llvm.fma.f64(double %53, double %49, double noundef 0x3C782E11898132E0) %55 = call double @llvm.fma.f64(double %54, double %49, double noundef 0x3CFDE4ACFD9E26BA) %56 = call double @llvm.fma.f64(double %55, double %49, double noundef 0xBD26D33EED66C487) %57 = call double @llvm.fma.f64(double %56, double %49, double noundef 0xBD36F2167040D8E2) %58 = call double @llvm.fma.f64(double %57, double %49, double noundef 0x3D872A22C2D77E20) %59 = call double @llvm.fma.f64(double %58, double %49, double noundef 0xBDAC8859C4E5C0AF) %60 = call double @llvm.fma.f64(double %59, double %49, double noundef 0xBDCDC583D118A561) %61 = call double @llvm.fma.f64(double %60, double %49, double noundef 0x3E120F47CCF46B3C) %62 = call double @llvm.fma.f64(double %61, double %49, double noundef 0xBE31A9E38DC84D60) %63 = call double @llvm.fma.f64(double %62, double %49, double noundef 0xBE5F36CD6D3D46A9) %64 = call double @llvm.fma.f64(double %63, double %49, double noundef 0x3E9C6B4F5D03B787) %65 = call double @llvm.fma.f64(double %64, double %49, double noundef 0xBEB6E8A5434AE8A2) %66 = call double @llvm.fma.f64(double %65, double %49, double noundef 0xBEED1D1F7B8736F6) %67 = call double @llvm.fma.f64(double %66, double %49, double noundef 0x3F2879C2A212F024) %68 = call double @llvm.fma.f64(double %67, double %49, double noundef 0xBF4845769484FCA8) %69 = call double @llvm.fma.f64(double %68, double %49, double noundef 0xBF78B6C33114F909) %70 = call double @llvm.fma.f64(double %69, double %49, double noundef 0x3FCEBD80D9B13E28) %71 = call double @llvm.fma.f64(double %70, double %49, double noundef 0x3FFA755E7C99AE86) br label %120 72: ; preds = %6 %73 = fneg double %45 %74 = call double @llvm.sqrt.f64(double %73) %75 = call i32 @llvm.nvvm.d2i.hi(double %74) #135 %76 = icmp slt i32 %75, 1074790400 br i1 %76, label %77, label %97 77: ; preds = %72 %78 = fadd double %74, -3.250000e+00 %79 = call double @llvm.fma.f64(double %78, double noundef 0x3E23040F87DBD932, double noundef 0x3E785CBE52878635) %80 = call double @llvm.fma.f64(double %79, double %78, double noundef 0xBE92777453DD3955) %81 = call double @llvm.fma.f64(double %80, double %78, double noundef 0x3E5395ABCD554C6C) %82 = call double @llvm.fma.f64(double %81, double %78, double noundef 0x3EB936388A3790AD) %83 = call double @llvm.fma.f64(double %82, double %78, double noundef 0xBED0D5DB812B5083) %84 = call double @llvm.fma.f64(double %83, double %78, double noundef 0x3EC8860CD5D652F6) %85 = call double @llvm.fma.f64(double %84, double %78, double noundef 0x3EEA29A0CACDFB23) %86 = call double @llvm.fma.f64(double %85, double %78, double noundef 0xBF08CEF1F80281F2) %87 = call double @llvm.fma.f64(double %86, double %78, double noundef 0x3F11E684D0B9188A) %88 = call double @llvm.fma.f64(double %87, double %78, double noundef 0x3EF932CD54C8A222) %89 = call double @llvm.fma.f64(double %88, double %78, double noundef 0xBF37448A89EF8AA3) %90 = call double @llvm.fma.f64(double %89, double %78, double noundef 0x3F4F3CC55AD40C25) %91 = call double @llvm.fma.f64(double %90, double %78, double noundef 0xBF5BA924132F38B1) %92 = call double @llvm.fma.f64(double %91, double %78, double noundef 0x3F6468EECA533CF8) %93 = call double @llvm.fma.f64(double %92, double %78, double noundef 0xBF6EBADABB891BBD) %94 = call double @llvm.fma.f64(double %93, double %78, double noundef 0x3F75FFCFE5B76AFC) %95 = call double @llvm.fma.f64(double %94, double %78, double noundef 0x3FF0158A6D641D39) %96 = call double @llvm.fma.f64(double %95, double %78, double noundef 0x4008ABCC380D5A48) br label %120 97: ; preds = %72 %98 = fadd double %74, -5.000000e+00 %99 = call double @llvm.fma.f64(double %98, double noundef 0xBDBDCEC3A7785389, double noundef 0xBDF18FEEC0E38727) %100 = call double @llvm.fma.f64(double %99, double %98, double noundef 0x3E19E6BF2DDA45E3) %101 = call double @llvm.fma.f64(double %100, double %98, double noundef 0xBE30468FB24E2F5F) %102 = call double @llvm.fma.f64(double %101, double %98, double noundef 0x3E405AC6A8FBA182) %103 = call double @llvm.fma.f64(double %102, double %98, double noundef 0xBE50102E495FB9C0) %104 = call double @llvm.fma.f64(double %103, double %98, double noundef 0x3E5F4C20E1334AF8) %105 = call double @llvm.fma.f64(double %104, double %98, double noundef 0xBE722D220FDF9C3E) %106 = call double @llvm.fma.f64(double %105, double %98, double noundef 0x3E8EBC8BB824CB54) %107 = call double @llvm.fma.f64(double %106, double %98, double noundef 0xBEB0A8D40EA372CC) %108 = call double @llvm.fma.f64(double %107, double %98, double noundef 0x3ED2FBD29D093D2B) %109 = call double @llvm.fma.f64(double %108, double %98, double noundef 0xBEF4A3497E1E0FAC) %110 = call double @llvm.fma.f64(double %109, double %98, double noundef 0x3F13EBF4EB00938F) %111 = call double @llvm.fma.f64(double %110, double %98, double noundef 0xBF2C2F36A8FC5D53) %112 = call double @llvm.fma.f64(double %111, double %98, double noundef 0xBF222EA5DF04047C) %113 = call double @llvm.fma.f64(double %112, double %98, double noundef 0x3FF02A30D1FBA0DC) %114 = call double @llvm.fma.f64(double %113, double %98, double noundef 0x4013664DDD1AD7FB) br label %120 115: ; preds = %__internal_fast_icmp_abs_lt.exit %116 = call double @llvm.fabs.f64(double %a) %117 = fcmp ugt double %116, 0x7FF0000000000000 br i1 %117, label %120, label %118 118: ; preds = %115 %119 = fcmp oeq double %116, 1.000000e+00 %r.2 = select i1 %119, double 0x7FF0000000000000, double 0xFFF8000000000000 br label %120 120: ; preds = %118, %115, %48, %97, %77 %r.4 = phi double [ %71, %48 ], [ %96, %77 ], [ %114, %97 ], [ %r.2, %118 ], [ %a, %115 ] %121 = fmul double %r.4, %a ret double %121 } ; Function Attrs: noinline nosync nounwind readnone define dso_local double @__nv_erfcinv(double %a) local_unnamed_addr #111 { %1 = fsub double 2.000000e+00, %a %2 = fcmp oge double %a, 0x3F4FA4D2AD8F904D %3 = fcmp ole double %a, 0x3FFFFC0B65AA4E0E %or.cond = and i1 %2, %3 br i1 %or.cond, label %4, label %68 4: ; preds = %0 %5 = fneg double %a %6 = fmul double %1, %a %7 = call i32 @llvm.nvvm.d2i.hi(double %6) #138 %8 = call i32 @llvm.nvvm.d2i.lo(double %6) #138 %9 = lshr i32 %7, 20 %10 = and i32 %9, 2046 %11 = add nuw i32 %10, 2147482626 %12 = call double @llvm.nvvm.lohi.i2d(i32 %11, i32 noundef 1127219200) #138 %13 = call double @llvm.nvvm.lohi.i2d(i32 noundef -2147483648, i32 noundef 1127219200) #138 %14 = fsub double %12, %13 %15 = and i32 %7, -2145386497 %16 = or i32 %15, 1071644672 %17 = call double @llvm.nvvm.lohi.i2d(i32 %8, i32 %16) #138 %18 = fadd double %17, -1.000000e+00 %19 = fadd double %17, 1.000000e+00 %20 = call double @llvm.nvvm.rcp.approx.ftz.d(double %19) #138 %21 = fneg double %19 %22 = call double @llvm.fma.f64(double %21, double %20, double noundef 1.000000e+00) #136 %23 = call double @llvm.fma.f64(double %22, double %22, double %22) #136 %24 = call double @llvm.fma.f64(double %23, double %20, double %20) #136 %25 = fmul double %18, %24 %26 = call double @llvm.fma.f64(double %25, double noundef -2.000000e+00, double %18) #136 %27 = fneg double %25 %28 = call double @llvm.fma.f64(double %27, double %18, double %26) #136 %29 = call double @llvm.fma.f64(double %28, double %24, double %25) #136 %30 = fmul double %29, %29 %31 = call double @llvm.fma.f64(double %30, double noundef 0x3FB5C5C218C775C9, double noundef 0x3FA55CF59CDC5D89) #136 %32 = call double @llvm.fma.f64(double %31, double %30, double noundef 0x3FAEFD18CF6EBB9C) #136 %33 = call double @llvm.fma.f64(double %32, double %30, double noundef 0x3FB10682EDCB8D1B) #136 %34 = call double @llvm.fma.f64(double %33, double %30, double noundef 0x3FB3B1DD3AC7FC96) #136 %35 = call double @llvm.fma.f64(double %34, double %30, double noundef 0x3FB745CB459B54A6) #136 %36 = call double @llvm.fma.f64(double %35, double %30, double noundef 0x3FBC71C741A0669F) #136 %37 = call double @llvm.fma.f64(double %36, double %30, double noundef 0x3FC249249209112E) #136 %38 = call double @llvm.fma.f64(double %37, double %30, double noundef 0x3FC99999999A06C1) #136 %39 = call double @llvm.fma.f64(double %38, double %30, double noundef 0x3FD5555555555535) #136 %40 = fmul double %30, %39 %41 = call double @llvm.fma.f64(double %40, double %29, double %29) #136 %42 = fadd double %41, %41 %43 = call double @llvm.fma.f64(double %14, double noundef 0x3FE62E42FEFA39EF, double %42) #136 %44 = fsub double -3.125000e+00, %43 %45 = call double @llvm.fma.f64(double %44, double noundef 0xBBB135D2E746E627, double noundef 0xBC08DDF93324D327) #136 %46 = call double @llvm.fma.f64(double %45, double %44, double noundef 0x3C37B83EEF0B7C9F) #136 %47 = call double @llvm.fma.f64(double %46, double %44, double noundef 0x3C69BA72CD589B91) #136 %48 = call double @llvm.fma.f64(double %47, double %44, double noundef 0xBCA33689090A6B96) #136 %49 = call double @llvm.fma.f64(double %48, double %44, double noundef 0x3C782E11898132E0) #136 %50 = call double @llvm.fma.f64(double %49, double %44, double noundef 0x3CFDE4ACFD9E26BA) #136 %51 = call double @llvm.fma.f64(double %50, double %44, double noundef 0xBD26D33EED66C487) #136 %52 = call double @llvm.fma.f64(double %51, double %44, double noundef 0xBD36F2167040D8E2) #136 %53 = call double @llvm.fma.f64(double %52, double %44, double noundef 0x3D872A22C2D77E20) #136 %54 = call double @llvm.fma.f64(double %53, double %44, double noundef 0xBDAC8859C4E5C0AF) #136 %55 = call double @llvm.fma.f64(double %54, double %44, double noundef 0xBDCDC583D118A561) #136 %56 = call double @llvm.fma.f64(double %55, double %44, double noundef 0x3E120F47CCF46B3C) #136 %57 = call double @llvm.fma.f64(double %56, double %44, double noundef 0xBE31A9E38DC84D60) #136 %58 = call double @llvm.fma.f64(double %57, double %44, double noundef 0xBE5F36CD6D3D46A9) #136 %59 = call double @llvm.fma.f64(double %58, double %44, double noundef 0x3E9C6B4F5D03B787) #136 %60 = call double @llvm.fma.f64(double %59, double %44, double noundef 0xBEB6E8A5434AE8A2) #136 %61 = call double @llvm.fma.f64(double %60, double %44, double noundef 0xBEED1D1F7B8736F6) #136 %62 = call double @llvm.fma.f64(double %61, double %44, double noundef 0x3F2879C2A212F024) #136 %63 = call double @llvm.fma.f64(double %62, double %44, double noundef 0xBF4845769484FCA8) #136 %64 = call double @llvm.fma.f64(double %63, double %44, double noundef 0xBF78B6C33114F909) #136 %65 = call double @llvm.fma.f64(double %64, double %44, double noundef 0x3FCEBD80D9B13E28) #136 %66 = call double @llvm.fma.f64(double %65, double %44, double noundef 0x3FFA755E7C99AE86) #136 %67 = call double @llvm.fma.f64(double %66, double %5, double %66) #136 br label %215 68: ; preds = %0 %69 = call i32 @llvm.nvvm.d2i.hi(double %a) #138 %70 = icmp sgt i32 %69, 1072693247 %spec.select = select i1 %70, double %1, double %a %71 = call i32 @llvm.nvvm.d2i.hi(double %spec.select) #138 %72 = bitcast i32 %71 to float %73 = fcmp ult float %72, 0x3D657FE5E0000000 br i1 %73, label %136, label %74 74: ; preds = %68 %75 = call i32 @llvm.nvvm.d2i.lo(double %spec.select) #138 %76 = lshr i32 %71, 20 %77 = and i32 %76, 2046 %78 = add nuw i32 %77, 2147482626 %79 = call double @llvm.nvvm.lohi.i2d(i32 %78, i32 noundef 1127219200) #138 %80 = call double @llvm.nvvm.lohi.i2d(i32 noundef -2147483648, i32 noundef 1127219200) #138 %81 = fsub double %79, %80 %82 = and i32 %71, -2145386497 %83 = or i32 %82, 1071644672 %84 = call double @llvm.nvvm.lohi.i2d(i32 %75, i32 %83) #138 %85 = fadd double %84, -1.000000e+00 %86 = fadd double %84, 1.000000e+00 %87 = call double @llvm.nvvm.rcp.approx.ftz.d(double %86) #138 %88 = fneg double %86 %89 = call double @llvm.fma.f64(double %88, double %87, double noundef 1.000000e+00) #136 %90 = call double @llvm.fma.f64(double %89, double %89, double %89) #136 %91 = call double @llvm.fma.f64(double %90, double %87, double %87) #136 %92 = fmul double %85, %91 %93 = call double @llvm.fma.f64(double %92, double noundef -2.000000e+00, double %85) #136 %94 = fneg double %92 %95 = call double @llvm.fma.f64(double %94, double %85, double %93) #136 %96 = call double @llvm.fma.f64(double %95, double %91, double %92) #136 %97 = fmul double %96, %96 %98 = call double @llvm.fma.f64(double %97, double noundef 0x3FB5C5C218C775C9, double noundef 0x3FA55CF59CDC5D89) #136 %99 = call double @llvm.fma.f64(double %98, double %97, double noundef 0x3FAEFD18CF6EBB9C) #136 %100 = call double @llvm.fma.f64(double %99, double %97, double noundef 0x3FB10682EDCB8D1B) #136 %101 = call double @llvm.fma.f64(double %100, double %97, double noundef 0x3FB3B1DD3AC7FC96) #136 %102 = call double @llvm.fma.f64(double %101, double %97, double noundef 0x3FB745CB459B54A6) #136 %103 = call double @llvm.fma.f64(double %102, double %97, double noundef 0x3FBC71C741A0669F) #136 %104 = call double @llvm.fma.f64(double %103, double %97, double noundef 0x3FC249249209112E) #136 %105 = call double @llvm.fma.f64(double %104, double %97, double noundef 0x3FC99999999A06C1) #136 %106 = call double @llvm.fma.f64(double %105, double %97, double noundef 0x3FD5555555555535) #136 %107 = fmul double %97, %106 %108 = call double @llvm.fma.f64(double %107, double %96, double %96) #136 %109 = fadd double %108, %108 %110 = call double @llvm.fma.f64(double %81, double noundef 0x3FE62E42FEFA39EF, double %109) #136 %111 = fneg double %110 %112 = call double asm "rsqrt.approx.ftz.f64 $0, $1;", "=d,d"(double %111) #137, !srcloc !236 %113 = fneg double %112 %114 = fmul double %112, %113 %115 = call double @llvm.fma.f64(double %111, double %114, double noundef 1.000000e+00) %116 = call double @llvm.fma.f64(double %115, double noundef 3.750000e-01, double noundef 5.000000e-01) %117 = fmul double %112, %115 %118 = call double @llvm.fma.f64(double %116, double %117, double %112) %119 = call double @llvm.fma.f64(double %118, double noundef 0x3FEBE9222591AFAB, double noundef 0x4000A0E7333839AA) %120 = call double @llvm.fma.f64(double %119, double %118, double noundef 0x4008768CF7E57D5C) %121 = call double @llvm.fma.f64(double %120, double %118, double noundef 0x400B77E7E28DA583) %122 = call double @llvm.fma.f64(double %121, double %118, double noundef 0x3FF34F26A4F99CF9) %123 = call double @llvm.fma.f64(double %122, double %118, double noundef 0x3FC1F674ADB019ED) %124 = call double @llvm.fma.f64(double %123, double %118, double noundef 0x3F75DDAE9506431D) %125 = call double @llvm.fma.f64(double %124, double %118, double noundef 0x3F0ADA49AA32489C) %126 = fadd double %118, 0x4001E90FF51C2197 %127 = call double @llvm.fma.f64(double %126, double %118, double noundef 0x40111EA3A7CF3820) %128 = call double @llvm.fma.f64(double %127, double %118, double noundef 0x4011A0E4A4749594) %129 = call double @llvm.fma.f64(double %128, double %118, double noundef 0x400D4E977D38C14D) %130 = call double @llvm.fma.f64(double %129, double %118, double noundef 0x3FF37FD567EC0D5F) %131 = call double @llvm.fma.f64(double %130, double %118, double noundef 0x3FC1FB9D7F676033) %132 = call double @llvm.fma.f64(double %131, double %118, double noundef 0x3F75DDCDF98946E4) %133 = call double @llvm.fma.f64(double %132, double %118, double noundef 0x3F0ADA42D79D8DBB) %134 = fmul double %118, %133 %135 = fdiv double %125, %134 br label %213 136: ; preds = %68 %137 = call i32 @llvm.nvvm.d2i.lo(double %spec.select) #135 %138 = icmp slt i32 %71, 1048576 br i1 %138, label %139, label %143 139: ; preds = %136 %140 = fmul double %spec.select, 0x4350000000000000 %141 = call i32 @llvm.nvvm.d2i.hi(double %140) #135 %142 = call i32 @llvm.nvvm.d2i.lo(double %140) #135 br label %143 143: ; preds = %139, %136 %.0 = phi double [ %140, %139 ], [ %spec.select, %136 ] %ihi.i.0 = phi i32 [ %141, %139 ], [ %71, %136 ] %ilo.i.0 = phi i32 [ %142, %139 ], [ %137, %136 ] %e.i.0 = phi i32 [ -1077, %139 ], [ -1023, %136 ] %144 = add i32 %ihi.i.0, -1 %145 = icmp ult i32 %144, 2146435071 br i1 %145, label %146, label %195 146: ; preds = %143 %147 = lshr i32 %ihi.i.0, 20 %148 = add nsw i32 %e.i.0, %147 %149 = and i32 %ihi.i.0, -2146435073 %150 = or i32 %149, 1072693248 %151 = call double @llvm.nvvm.lohi.i2d(i32 %ilo.i.0, i32 %150) #135 %152 = icmp sgt i32 %150, 1073127582 br i1 %152, label %153, label %159 153: ; preds = %146 %154 = call i32 @llvm.nvvm.d2i.lo(double %151) #135 %155 = call i32 @llvm.nvvm.d2i.hi(double %151) #135 %156 = add i32 %155, -1048576 %157 = call double @llvm.nvvm.lohi.i2d(i32 %154, i32 %156) #135 %158 = add nsw i32 %148, 1 br label %159 159: ; preds = %153, %146 %m.i.0 = phi double [ %157, %153 ], [ %151, %146 ] %e.i.1 = phi i32 [ %158, %153 ], [ %148, %146 ] %160 = fadd double %m.i.0, -1.000000e+00 %161 = fadd double %m.i.0, 1.000000e+00 %162 = call double @llvm.nvvm.rcp.approx.ftz.d(double %161) #135 %163 = fneg double %161 %164 = call double @llvm.fma.f64(double %163, double %162, double noundef 1.000000e+00) %165 = call double @llvm.fma.f64(double %164, double %164, double %164) %166 = call double @llvm.fma.f64(double %165, double %162, double %162) %167 = fmul double %160, %166 %168 = fadd double %167, %167 %169 = fmul double %168, %168 %170 = call double @llvm.fma.f64(double %169, double noundef 0x3EB1380B3AE80F1E, double noundef 0x3ED0EE258B7A8B04) %171 = call double @llvm.fma.f64(double %170, double %169, double noundef 0x3EF3B2669F02676F) %172 = call double @llvm.fma.f64(double %171, double %169, double noundef 0x3F1745CBA9AB0956) %173 = call double @llvm.fma.f64(double %172, double %169, double noundef 0x3F3C71C72D1B5154) %174 = call double @llvm.fma.f64(double %173, double %169, double noundef 0x3F624924923BE72D) %175 = call double @llvm.fma.f64(double %174, double %169, double noundef 0x3F8999999999A3C4) %176 = call double @llvm.fma.f64(double %175, double %169, double noundef 0x3FB5555555555554) %177 = fsub double %160, %168 %178 = fmul double %177, 2.000000e+00 %179 = fneg double %168 %180 = call double @llvm.fma.f64(double %179, double %160, double %178) %181 = fmul double %166, %180 %182 = fmul double %169, %176 %183 = call double @llvm.fma.f64(double %182, double %168, double %181) %184 = xor i32 %e.i.1, -2147483648 %185 = call double @llvm.nvvm.lohi.i2d(i32 %184, i32 noundef 1127219200) #135 %186 = call double @llvm.nvvm.lohi.i2d(i32 noundef -2147483648, i32 noundef 1127219200) #135 %187 = fsub double %185, %186 %188 = call double @llvm.fma.f64(double %187, double noundef 0x3FE62E42FEFA39EF, double %168) %189 = fneg double %187 %190 = call double @llvm.fma.f64(double %189, double noundef 0x3FE62E42FEFA39EF, double %188) %191 = fsub double %190, %168 %192 = fsub double %183, %191 %193 = call double @llvm.fma.f64(double %187, double noundef 0x3C7ABC9E3B39803F, double %192) %194 = fadd double %188, %193 br label %__nv_log.exit 195: ; preds = %143 %196 = call double @llvm.fma.f64(double %.0, double noundef 0x7FF0000000000000, double noundef 0x7FF0000000000000) %197 = call i32 @llvm.nvvm.d2i.hi(double %.0) #135 %198 = bitcast i32 %197 to float %199 = fcmp oeq float %198, 0.000000e+00 %q.i.0 = select i1 %199, double 0xFFF0000000000000, double %196 br label %__nv_log.exit __nv_log.exit: ; preds = %195, %159 %q.i.1 = phi double [ %194, %159 ], [ %q.i.0, %195 ] %200 = fneg double %q.i.1 %201 = call double @llvm.nvvm.rsqrt.approx.d(double %200) #135 %202 = call double @llvm.fma.f64(double %201, double noundef 0x3FE8E2101C71B0BF, double noundef 0x3FFA2013964E259C) %203 = call double @llvm.fma.f64(double %202, double %201, double noundef 0x3FDABFE90921BE68) %204 = call double @llvm.fma.f64(double %203, double %201, double noundef 0x3F97E41314DE00D4) %205 = call double @llvm.fma.f64(double %204, double %201, double noundef 0x3F311BD487102E94) %206 = fadd double %201, 0x3FF59895C30BAA54 %207 = call double @llvm.fma.f64(double %206, double %201, double noundef 0x3FFAE8E5956A143F) %208 = call double @llvm.fma.f64(double %207, double %201, double noundef 0x3FDACCE85FF7383D) %209 = call double @llvm.fma.f64(double %208, double %201, double noundef 0x3F97E43B6CAC34FE) %210 = call double @llvm.fma.f64(double %209, double %201, double noundef 0x3F311BD08289EB12) %211 = fmul double %201, %210 %212 = fdiv double %205, %211 br label %213 213: ; preds = %__nv_log.exit, %74 %t.0 = phi double [ %135, %74 ], [ %212, %__nv_log.exit ] %214 = fneg double %t.0 %spec.select2 = select i1 %70, double %214, double %t.0 br label %215 215: ; preds = %213, %4 %t.2 = phi double [ %67, %4 ], [ %spec.select2, %213 ] ret double %t.2 } ; Function Attrs: noinline nosync nounwind readnone define dso_local double @__nv_normcdfinv(double %a) local_unnamed_addr #112 { %1 = fadd double %a, %a %2 = fsub double 2.000000e+00, %1 %3 = fcmp oge double %1, 0x3F4FA4D2AD8F904D %4 = fcmp ole double %1, 0x3FFFFC0B65AA4E0E %or.cond = and i1 %3, %4 br i1 %or.cond, label %5, label %69 5: ; preds = %0 %6 = fneg double %1 %7 = fmul double %1, %2 %8 = call i32 @llvm.nvvm.d2i.hi(double %7) #138 %9 = call i32 @llvm.nvvm.d2i.lo(double %7) #138 %10 = lshr i32 %8, 20 %11 = and i32 %10, 2046 %12 = add nuw i32 %11, 2147482626 %13 = call double @llvm.nvvm.lohi.i2d(i32 %12, i32 noundef 1127219200) #138 %14 = call double @llvm.nvvm.lohi.i2d(i32 noundef -2147483648, i32 noundef 1127219200) #138 %15 = fsub double %13, %14 %16 = and i32 %8, -2145386497 %17 = or i32 %16, 1071644672 %18 = call double @llvm.nvvm.lohi.i2d(i32 %9, i32 %17) #138 %19 = fadd double %18, -1.000000e+00 %20 = fadd double %18, 1.000000e+00 %21 = call double @llvm.nvvm.rcp.approx.ftz.d(double %20) #138 %22 = fneg double %20 %23 = call double @llvm.fma.f64(double %22, double %21, double noundef 1.000000e+00) #136 %24 = call double @llvm.fma.f64(double %23, double %23, double %23) #136 %25 = call double @llvm.fma.f64(double %24, double %21, double %21) #136 %26 = fmul double %19, %25 %27 = call double @llvm.fma.f64(double %26, double noundef -2.000000e+00, double %19) #136 %28 = fneg double %26 %29 = call double @llvm.fma.f64(double %28, double %19, double %27) #136 %30 = call double @llvm.fma.f64(double %29, double %25, double %26) #136 %31 = fmul double %30, %30 %32 = call double @llvm.fma.f64(double %31, double noundef 0x3FB5C5C218C775C9, double noundef 0x3FA55CF59CDC5D89) #136 %33 = call double @llvm.fma.f64(double %32, double %31, double noundef 0x3FAEFD18CF6EBB9C) #136 %34 = call double @llvm.fma.f64(double %33, double %31, double noundef 0x3FB10682EDCB8D1B) #136 %35 = call double @llvm.fma.f64(double %34, double %31, double noundef 0x3FB3B1DD3AC7FC96) #136 %36 = call double @llvm.fma.f64(double %35, double %31, double noundef 0x3FB745CB459B54A6) #136 %37 = call double @llvm.fma.f64(double %36, double %31, double noundef 0x3FBC71C741A0669F) #136 %38 = call double @llvm.fma.f64(double %37, double %31, double noundef 0x3FC249249209112E) #136 %39 = call double @llvm.fma.f64(double %38, double %31, double noundef 0x3FC99999999A06C1) #136 %40 = call double @llvm.fma.f64(double %39, double %31, double noundef 0x3FD5555555555535) #136 %41 = fmul double %31, %40 %42 = call double @llvm.fma.f64(double %41, double %30, double %30) #136 %43 = fadd double %42, %42 %44 = call double @llvm.fma.f64(double %15, double noundef 0x3FE62E42FEFA39EF, double %43) #136 %45 = fsub double -3.125000e+00, %44 %46 = call double @llvm.fma.f64(double %45, double noundef 0xBBB135D2E746E627, double noundef 0xBC08DDF93324D327) #136 %47 = call double @llvm.fma.f64(double %46, double %45, double noundef 0x3C37B83EEF0B7C9F) #136 %48 = call double @llvm.fma.f64(double %47, double %45, double noundef 0x3C69BA72CD589B91) #136 %49 = call double @llvm.fma.f64(double %48, double %45, double noundef 0xBCA33689090A6B96) #136 %50 = call double @llvm.fma.f64(double %49, double %45, double noundef 0x3C782E11898132E0) #136 %51 = call double @llvm.fma.f64(double %50, double %45, double noundef 0x3CFDE4ACFD9E26BA) #136 %52 = call double @llvm.fma.f64(double %51, double %45, double noundef 0xBD26D33EED66C487) #136 %53 = call double @llvm.fma.f64(double %52, double %45, double noundef 0xBD36F2167040D8E2) #136 %54 = call double @llvm.fma.f64(double %53, double %45, double noundef 0x3D872A22C2D77E20) #136 %55 = call double @llvm.fma.f64(double %54, double %45, double noundef 0xBDAC8859C4E5C0AF) #136 %56 = call double @llvm.fma.f64(double %55, double %45, double noundef 0xBDCDC583D118A561) #136 %57 = call double @llvm.fma.f64(double %56, double %45, double noundef 0x3E120F47CCF46B3C) #136 %58 = call double @llvm.fma.f64(double %57, double %45, double noundef 0xBE31A9E38DC84D60) #136 %59 = call double @llvm.fma.f64(double %58, double %45, double noundef 0xBE5F36CD6D3D46A9) #136 %60 = call double @llvm.fma.f64(double %59, double %45, double noundef 0x3E9C6B4F5D03B787) #136 %61 = call double @llvm.fma.f64(double %60, double %45, double noundef 0xBEB6E8A5434AE8A2) #136 %62 = call double @llvm.fma.f64(double %61, double %45, double noundef 0xBEED1D1F7B8736F6) #136 %63 = call double @llvm.fma.f64(double %62, double %45, double noundef 0x3F2879C2A212F024) #136 %64 = call double @llvm.fma.f64(double %63, double %45, double noundef 0xBF4845769484FCA8) #136 %65 = call double @llvm.fma.f64(double %64, double %45, double noundef 0xBF78B6C33114F909) #136 %66 = call double @llvm.fma.f64(double %65, double %45, double noundef 0x3FCEBD80D9B13E28) #136 %67 = call double @llvm.fma.f64(double %66, double %45, double noundef 0x3FFA755E7C99AE86) #136 %68 = call double @llvm.fma.f64(double %67, double %6, double %67) #136 br label %__nv_erfcinv.exit 69: ; preds = %0 %70 = call i32 @llvm.nvvm.d2i.hi(double %1) #138 %71 = icmp sgt i32 %70, 1072693247 %spec.select = select i1 %71, double %2, double %1 %72 = call i32 @llvm.nvvm.d2i.hi(double %spec.select) #138 %73 = bitcast i32 %72 to float %74 = fcmp ult float %73, 0x3D657FE5E0000000 br i1 %74, label %137, label %75 75: ; preds = %69 %76 = call i32 @llvm.nvvm.d2i.lo(double %spec.select) #138 %77 = lshr i32 %72, 20 %78 = and i32 %77, 2046 %79 = add nuw i32 %78, 2147482626 %80 = call double @llvm.nvvm.lohi.i2d(i32 %79, i32 noundef 1127219200) #138 %81 = call double @llvm.nvvm.lohi.i2d(i32 noundef -2147483648, i32 noundef 1127219200) #138 %82 = fsub double %80, %81 %83 = and i32 %72, -2145386497 %84 = or i32 %83, 1071644672 %85 = call double @llvm.nvvm.lohi.i2d(i32 %76, i32 %84) #138 %86 = fadd double %85, -1.000000e+00 %87 = fadd double %85, 1.000000e+00 %88 = call double @llvm.nvvm.rcp.approx.ftz.d(double %87) #138 %89 = fneg double %87 %90 = call double @llvm.fma.f64(double %89, double %88, double noundef 1.000000e+00) #136 %91 = call double @llvm.fma.f64(double %90, double %90, double %90) #136 %92 = call double @llvm.fma.f64(double %91, double %88, double %88) #136 %93 = fmul double %86, %92 %94 = call double @llvm.fma.f64(double %93, double noundef -2.000000e+00, double %86) #136 %95 = fneg double %93 %96 = call double @llvm.fma.f64(double %95, double %86, double %94) #136 %97 = call double @llvm.fma.f64(double %96, double %92, double %93) #136 %98 = fmul double %97, %97 %99 = call double @llvm.fma.f64(double %98, double noundef 0x3FB5C5C218C775C9, double noundef 0x3FA55CF59CDC5D89) #136 %100 = call double @llvm.fma.f64(double %99, double %98, double noundef 0x3FAEFD18CF6EBB9C) #136 %101 = call double @llvm.fma.f64(double %100, double %98, double noundef 0x3FB10682EDCB8D1B) #136 %102 = call double @llvm.fma.f64(double %101, double %98, double noundef 0x3FB3B1DD3AC7FC96) #136 %103 = call double @llvm.fma.f64(double %102, double %98, double noundef 0x3FB745CB459B54A6) #136 %104 = call double @llvm.fma.f64(double %103, double %98, double noundef 0x3FBC71C741A0669F) #136 %105 = call double @llvm.fma.f64(double %104, double %98, double noundef 0x3FC249249209112E) #136 %106 = call double @llvm.fma.f64(double %105, double %98, double noundef 0x3FC99999999A06C1) #136 %107 = call double @llvm.fma.f64(double %106, double %98, double noundef 0x3FD5555555555535) #136 %108 = fmul double %98, %107 %109 = call double @llvm.fma.f64(double %108, double %97, double %97) #136 %110 = fadd double %109, %109 %111 = call double @llvm.fma.f64(double %82, double noundef 0x3FE62E42FEFA39EF, double %110) #136 %112 = fneg double %111 %113 = call double asm "rsqrt.approx.ftz.f64 $0, $1;", "=d,d"(double %112) #137, !srcloc !236 %114 = fneg double %113 %115 = fmul double %113, %114 %116 = call double @llvm.fma.f64(double %112, double %115, double noundef 1.000000e+00) %117 = call double @llvm.fma.f64(double %116, double noundef 3.750000e-01, double noundef 5.000000e-01) %118 = fmul double %113, %116 %119 = call double @llvm.fma.f64(double %117, double %118, double %113) %120 = call double @llvm.fma.f64(double %119, double noundef 0x3FEBE9222591AFAB, double noundef 0x4000A0E7333839AA) %121 = call double @llvm.fma.f64(double %120, double %119, double noundef 0x4008768CF7E57D5C) %122 = call double @llvm.fma.f64(double %121, double %119, double noundef 0x400B77E7E28DA583) %123 = call double @llvm.fma.f64(double %122, double %119, double noundef 0x3FF34F26A4F99CF9) %124 = call double @llvm.fma.f64(double %123, double %119, double noundef 0x3FC1F674ADB019ED) %125 = call double @llvm.fma.f64(double %124, double %119, double noundef 0x3F75DDAE9506431D) %126 = call double @llvm.fma.f64(double %125, double %119, double noundef 0x3F0ADA49AA32489C) %127 = fadd double %119, 0x4001E90FF51C2197 %128 = call double @llvm.fma.f64(double %127, double %119, double noundef 0x40111EA3A7CF3820) %129 = call double @llvm.fma.f64(double %128, double %119, double noundef 0x4011A0E4A4749594) %130 = call double @llvm.fma.f64(double %129, double %119, double noundef 0x400D4E977D38C14D) %131 = call double @llvm.fma.f64(double %130, double %119, double noundef 0x3FF37FD567EC0D5F) %132 = call double @llvm.fma.f64(double %131, double %119, double noundef 0x3FC1FB9D7F676033) %133 = call double @llvm.fma.f64(double %132, double %119, double noundef 0x3F75DDCDF98946E4) %134 = call double @llvm.fma.f64(double %133, double %119, double noundef 0x3F0ADA42D79D8DBB) %135 = fmul double %119, %134 %136 = fdiv double %126, %135 br label %214 137: ; preds = %69 %138 = call i32 @llvm.nvvm.d2i.lo(double %spec.select) #135 %139 = icmp slt i32 %72, 1048576 br i1 %139, label %140, label %144 140: ; preds = %137 %141 = fmul double %spec.select, 0x4350000000000000 %142 = call i32 @llvm.nvvm.d2i.hi(double %141) #135 %143 = call i32 @llvm.nvvm.d2i.lo(double %141) #135 br label %144 144: ; preds = %140, %137 %.0 = phi double [ %141, %140 ], [ %spec.select, %137 ] %ihi.i.i.0 = phi i32 [ %142, %140 ], [ %72, %137 ] %ilo.i.i.0 = phi i32 [ %143, %140 ], [ %138, %137 ] %e.i.i.0 = phi i32 [ -1077, %140 ], [ -1023, %137 ] %145 = add i32 %ihi.i.i.0, -1 %146 = icmp ult i32 %145, 2146435071 br i1 %146, label %147, label %196 147: ; preds = %144 %148 = lshr i32 %ihi.i.i.0, 20 %149 = add nsw i32 %e.i.i.0, %148 %150 = and i32 %ihi.i.i.0, -2146435073 %151 = or i32 %150, 1072693248 %152 = call double @llvm.nvvm.lohi.i2d(i32 %ilo.i.i.0, i32 %151) #135 %153 = icmp sgt i32 %151, 1073127582 br i1 %153, label %154, label %160 154: ; preds = %147 %155 = call i32 @llvm.nvvm.d2i.lo(double %152) #135 %156 = call i32 @llvm.nvvm.d2i.hi(double %152) #135 %157 = add i32 %156, -1048576 %158 = call double @llvm.nvvm.lohi.i2d(i32 %155, i32 %157) #135 %159 = add nsw i32 %149, 1 br label %160 160: ; preds = %154, %147 %m.i.i.0 = phi double [ %158, %154 ], [ %152, %147 ] %e.i.i.1 = phi i32 [ %159, %154 ], [ %149, %147 ] %161 = fadd double %m.i.i.0, -1.000000e+00 %162 = fadd double %m.i.i.0, 1.000000e+00 %163 = call double @llvm.nvvm.rcp.approx.ftz.d(double %162) #135 %164 = fneg double %162 %165 = call double @llvm.fma.f64(double %164, double %163, double noundef 1.000000e+00) %166 = call double @llvm.fma.f64(double %165, double %165, double %165) %167 = call double @llvm.fma.f64(double %166, double %163, double %163) %168 = fmul double %161, %167 %169 = fadd double %168, %168 %170 = fmul double %169, %169 %171 = call double @llvm.fma.f64(double %170, double noundef 0x3EB1380B3AE80F1E, double noundef 0x3ED0EE258B7A8B04) %172 = call double @llvm.fma.f64(double %171, double %170, double noundef 0x3EF3B2669F02676F) %173 = call double @llvm.fma.f64(double %172, double %170, double noundef 0x3F1745CBA9AB0956) %174 = call double @llvm.fma.f64(double %173, double %170, double noundef 0x3F3C71C72D1B5154) %175 = call double @llvm.fma.f64(double %174, double %170, double noundef 0x3F624924923BE72D) %176 = call double @llvm.fma.f64(double %175, double %170, double noundef 0x3F8999999999A3C4) %177 = call double @llvm.fma.f64(double %176, double %170, double noundef 0x3FB5555555555554) %178 = fsub double %161, %169 %179 = fmul double %178, 2.000000e+00 %180 = fneg double %169 %181 = call double @llvm.fma.f64(double %180, double %161, double %179) %182 = fmul double %167, %181 %183 = fmul double %170, %177 %184 = call double @llvm.fma.f64(double %183, double %169, double %182) %185 = xor i32 %e.i.i.1, -2147483648 %186 = call double @llvm.nvvm.lohi.i2d(i32 %185, i32 noundef 1127219200) #135 %187 = call double @llvm.nvvm.lohi.i2d(i32 noundef -2147483648, i32 noundef 1127219200) #135 %188 = fsub double %186, %187 %189 = call double @llvm.fma.f64(double %188, double noundef 0x3FE62E42FEFA39EF, double %169) %190 = fneg double %188 %191 = call double @llvm.fma.f64(double %190, double noundef 0x3FE62E42FEFA39EF, double %189) %192 = fsub double %191, %169 %193 = fsub double %184, %192 %194 = call double @llvm.fma.f64(double %188, double noundef 0x3C7ABC9E3B39803F, double %193) %195 = fadd double %189, %194 br label %__nv_log.exit.i 196: ; preds = %144 %197 = call double @llvm.fma.f64(double %.0, double noundef 0x7FF0000000000000, double noundef 0x7FF0000000000000) %198 = call i32 @llvm.nvvm.d2i.hi(double %.0) #135 %199 = bitcast i32 %198 to float %200 = fcmp oeq float %199, 0.000000e+00 %q.i.i.0 = select i1 %200, double 0xFFF0000000000000, double %197 br label %__nv_log.exit.i __nv_log.exit.i: ; preds = %196, %160 %q.i.i.1 = phi double [ %195, %160 ], [ %q.i.i.0, %196 ] %201 = fneg double %q.i.i.1 %202 = call double @llvm.nvvm.rsqrt.approx.d(double %201) #135 %203 = call double @llvm.fma.f64(double %202, double noundef 0x3FE8E2101C71B0BF, double noundef 0x3FFA2013964E259C) %204 = call double @llvm.fma.f64(double %203, double %202, double noundef 0x3FDABFE90921BE68) %205 = call double @llvm.fma.f64(double %204, double %202, double noundef 0x3F97E41314DE00D4) %206 = call double @llvm.fma.f64(double %205, double %202, double noundef 0x3F311BD487102E94) %207 = fadd double %202, 0x3FF59895C30BAA54 %208 = call double @llvm.fma.f64(double %207, double %202, double noundef 0x3FFAE8E5956A143F) %209 = call double @llvm.fma.f64(double %208, double %202, double noundef 0x3FDACCE85FF7383D) %210 = call double @llvm.fma.f64(double %209, double %202, double noundef 0x3F97E43B6CAC34FE) %211 = call double @llvm.fma.f64(double %210, double %202, double noundef 0x3F311BD08289EB12) %212 = fmul double %202, %211 %213 = fdiv double %206, %212 br label %214 214: ; preds = %__nv_log.exit.i, %75 %t.i.0 = phi double [ %136, %75 ], [ %213, %__nv_log.exit.i ] %215 = fneg double %t.i.0 %spec.select2 = select i1 %71, double %215, double %t.i.0 br label %__nv_erfcinv.exit __nv_erfcinv.exit: ; preds = %214, %5 %t.i.2 = phi double [ %68, %5 ], [ %spec.select2, %214 ] %216 = fmul double %t.i.2, 0xBCA21165F626CDD5 %217 = call double @llvm.fma.f64(double %t.i.2, double noundef 0xBFF6A09E667F3BCC, double %216) %218 = fadd double %217, 0.000000e+00 ret double %218 } ; Function Attrs: nofree noinline nosync nounwind readnone willreturn define dso_local double @__nv_erfc(double %a) local_unnamed_addr #113 { %1 = call i32 @llvm.nvvm.d2i.hi(double %a) #138 %2 = and i32 %1, 2147483647 %3 = call i32 @llvm.nvvm.d2i.lo(double %a) #138 %4 = icmp ult i32 %2, 2146435072 br i1 %4, label %5, label %90 5: ; preds = %0 %6 = call double @llvm.nvvm.lohi.i2d(i32 %3, i32 %2) #138 %7 = fadd double %6, -4.000000e+00 %8 = fadd double %6, 4.000000e+00 %9 = call double @llvm.nvvm.rcp.approx.ftz.d(double %8) #138 %10 = fneg double %8 %11 = call double @llvm.fma.f64(double %10, double %9, double noundef 1.000000e+00) #136 %12 = call double @llvm.fma.f64(double %11, double %11, double %11) #136 %13 = call double @llvm.fma.f64(double %12, double %9, double %9) #136 %14 = fmul double %7, %13 %15 = fadd double %14, 1.000000e+00 %16 = call double @llvm.fma.f64(double %15, double noundef -4.000000e+00, double %6) #136 %17 = fneg double %14 %18 = call double @llvm.fma.f64(double %17, double %6, double %16) #136 %19 = call double @llvm.fma.f64(double %13, double %18, double %14) #136 %20 = call double @llvm.fma.f64(double %19, double noundef 0xBDF8774AD4E0BFD7, double noundef 0xBE44E1C6FD03D328) #136 %21 = call double @llvm.fma.f64(double %20, double %19, double noundef 0xBE4330149F7A56B6) #136 %22 = call double @llvm.fma.f64(double %21, double %19, double noundef 0x3E7BEDDED8376273) #136 %23 = call double @llvm.fma.f64(double %22, double %19, double noundef 0x3E6F9254C3ABF22B) #136 %24 = call double @llvm.fma.f64(double %23, double %19, double noundef 0xBEAB9068C2148CF0) #136 %25 = call double @llvm.fma.f64(double %24, double %19, double noundef 0x3E94C6454DB34009) #136 %26 = call double @llvm.fma.f64(double %25, double %19, double noundef 0x3ED7F1C378F2311D) #136 %27 = call double @llvm.fma.f64(double %26, double %19, double noundef 0xBEE78E051C6D5C58) #136 %28 = call double @llvm.fma.f64(double %27, double %19, double noundef 0xBEF995B4EAD14A90) #136 %29 = call double @llvm.fma.f64(double %28, double %19, double noundef 0x3F23BE27CF0A29B2) #136 %30 = call double @llvm.fma.f64(double %29, double %19, double noundef 0xBF2A1DEF3E81672E) #136 %31 = call double @llvm.fma.f64(double %30, double %19, double noundef 0xBF48D4ABE68C1713) #136 %32 = call double @llvm.fma.f64(double %31, double %19, double noundef 0x3F749C67210DD6B4) #136 %33 = call double @llvm.fma.f64(double %32, double %19, double noundef 0xBF9096238568E357) #136 %34 = call double @llvm.fma.f64(double %33, double %19, double noundef 0x3FA3079EDF8C2DC9) #136 %35 = call double @llvm.fma.f64(double %34, double %19, double noundef 0xBFB0FB06DFF601FC) #136 %36 = call double @llvm.fma.f64(double %35, double %19, double noundef 0x3FB7FEE004DFBCDC) #136 %37 = call double @llvm.fma.f64(double %36, double %19, double noundef 0xBFB9DDB23C3DB8C6) #136 %38 = call double @llvm.fma.f64(double %37, double %19, double noundef 0x3FB16ECEFCFA5FDA) #136 %39 = call double @llvm.fma.f64(double %38, double %19, double noundef 0x3F8F7F5DF66FB6D6) #136 %40 = call double @llvm.fma.f64(double %39, double %19, double noundef 0xBFC1DF1AD154A29D) #136 %41 = call double @llvm.fma.f64(double %40, double %19, double noundef 0x3FF3BA5916E9FD7F) #136 %42 = call double @llvm.fma.f64(double %6, double noundef 2.000000e+00, double noundef 1.000000e+00) #136 %43 = call double @llvm.nvvm.rcp.approx.ftz.d(double %42) #138 %44 = fneg double %42 %45 = call double @llvm.fma.f64(double %44, double %43, double noundef 1.000000e+00) #136 %46 = call double @llvm.fma.f64(double %45, double %45, double %45) #136 %47 = call double @llvm.fma.f64(double %46, double %43, double %43) #136 %48 = fmul double %47, %41 %49 = fmul double %48, -2.000000e+00 %50 = call double @llvm.fma.f64(double %6, double %49, double %41) #136 %51 = fsub double %50, %48 %52 = call double @llvm.fma.f64(double %51, double %47, double %48) #136 %53 = fneg double %6 %54 = fmul double %6, %53 %55 = call double @llvm.fma.f64(double %54, double noundef 0x3FF71547652B82FE, double noundef 0x4338000000000000) #136 %56 = call i32 @llvm.nvvm.d2i.lo(double %55) #138 %57 = fadd double %55, 0xC338000000000000 %58 = call double @llvm.fma.f64(double %57, double noundef 0xBFE62E42FEFA39EF, double %54) #136 %59 = call double @llvm.fma.f64(double %57, double noundef 0xBC7ABC9E3B39803F, double %58) #136 %60 = call double @llvm.fma.f64(double %59, double noundef 0x3E5ADE1569CE2BDF, double noundef 0x3E928AF3FCA213EA) #136 %61 = call double @llvm.fma.f64(double %60, double %59, double noundef 0x3EC71DEE62401315) #136 %62 = call double @llvm.fma.f64(double %61, double %59, double noundef 0x3EFA01997C89EB71) #136 %63 = call double @llvm.fma.f64(double %62, double %59, double noundef 0x3F2A01A014761F65) #136 %64 = call double @llvm.fma.f64(double %63, double %59, double noundef 0x3F56C16C1852B7AF) #136 %65 = call double @llvm.fma.f64(double %64, double %59, double noundef 0x3F81111111122322) #136 %66 = call double @llvm.fma.f64(double %65, double %59, double noundef 0x3FA55555555502A1) #136 %67 = call double @llvm.fma.f64(double %66, double %59, double noundef 0x3FC5555555555511) #136 %68 = call double @llvm.fma.f64(double %67, double %59, double noundef 0x3FE000000000000B) #136 %69 = call double @llvm.fma.f64(double %68, double %59, double noundef 1.000000e+00) #136 %70 = call double @llvm.fma.f64(double %69, double %59, double noundef 1.000000e+00) #136 %71 = sdiv i32 %56, 2 %72 = call i32 @llvm.nvvm.d2i.lo(double %70) #138 %73 = call i32 @llvm.nvvm.d2i.hi(double %70) #138 %74 = shl i32 %71, 20 %75 = add i32 %73, %74 %76 = call double @llvm.nvvm.lohi.i2d(i32 %72, i32 %75) #138 %77 = sub nsw i32 %56, %71 %78 = shl i32 %77, 20 %79 = add nsw i32 %78, 1072693248 %80 = call double @llvm.nvvm.lohi.i2d(i32 noundef 0, i32 %79) #138 %81 = fmul double %80, %76 %82 = fneg double %54 %83 = call double @llvm.fma.f64(double %53, double %6, double %82) #136 %84 = call double @llvm.fma.f64(double %81, double %83, double %81) #136 %85 = fmul double %84, %52 %86 = icmp ugt i32 %2, 1077624832 %spec.select = select i1 %86, double 0.000000e+00, double %85 %87 = icmp slt i32 %1, 0 %88 = fsub double 2.000000e+00, %spec.select %89 = select i1 %87, double %88, double %spec.select br label %96 90: ; preds = %0 %91 = icmp eq i32 %2, 2146435072 %92 = icmp eq i32 %3, 0 %or.cond = select i1 %91, i1 %92, i1 false %93 = icmp slt i32 %1, 0 %94 = select i1 %93, double 2.000000e+00, double 0.000000e+00 %95 = fadd double %a, %a %t1.1 = select i1 %or.cond, double %94, double %95 br label %96 96: ; preds = %90, %5 %t1.2 = phi double [ %89, %5 ], [ %t1.1, %90 ] ret double %t1.2 } ; Function Attrs: noinline nounwind define dso_local double @__nv_erfcx(double %a) local_unnamed_addr #114 { __internal_fast_icmp_abs_lt.exit: %0 = call i32 @llvm.nvvm.d2i.hi(double %a) #138 %1 = bitcast i32 %0 to float %2 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not = icmp eq i32 %2, 0 %3 = call float @llvm.nvvm.fabs.ftz.f(float %1) #135 %4 = call float @llvm.fabs.f32(float %1) %.02 = select i1 %.not, float %4, float %3 %5 = fcmp olt float %.02, 3.000000e+00 br i1 %5, label %6, label %56 6: ; preds = %__internal_fast_icmp_abs_lt.exit %7 = call i32 @llvm.nvvm.d2i.lo(double %a) #135 %8 = and i32 %0, 2147483647 %9 = call double @llvm.nvvm.lohi.i2d(i32 %7, i32 %8) #135 %10 = fadd double %9, -4.000000e+00 %11 = fadd double %9, 4.000000e+00 %12 = call double @llvm.nvvm.rcp.approx.ftz.d(double %11) #135 %13 = fneg double %11 %14 = call double @llvm.fma.f64(double %13, double %12, double noundef 1.000000e+00) %15 = call double @llvm.fma.f64(double %14, double %14, double %14) %16 = call double @llvm.fma.f64(double %15, double %12, double %12) %17 = fmul double %10, %16 %18 = fadd double %17, 1.000000e+00 %19 = call double @llvm.fma.f64(double %18, double noundef -4.000000e+00, double %9) %20 = fneg double %17 %21 = call double @llvm.fma.f64(double %20, double %9, double %19) %22 = call double @llvm.fma.f64(double %16, double %21, double %17) %23 = call double @llvm.fma.f64(double %22, double noundef 0xBDF8774AD4E0BFD7, double noundef 0xBE44E1C6FD03D328) %24 = call double @llvm.fma.f64(double %23, double %22, double noundef 0xBE4330149F7A56B6) %25 = call double @llvm.fma.f64(double %24, double %22, double noundef 0x3E7BEDDED8376273) %26 = call double @llvm.fma.f64(double %25, double %22, double noundef 0x3E6F9254C3ABF22B) %27 = call double @llvm.fma.f64(double %26, double %22, double noundef 0xBEAB9068C2148CF0) %28 = call double @llvm.fma.f64(double %27, double %22, double noundef 0x3E94C6454DB34009) %29 = call double @llvm.fma.f64(double %28, double %22, double noundef 0x3ED7F1C378F2311D) %30 = call double @llvm.fma.f64(double %29, double %22, double noundef 0xBEE78E051C6D5C58) %31 = call double @llvm.fma.f64(double %30, double %22, double noundef 0xBEF995B4EAD14A90) %32 = call double @llvm.fma.f64(double %31, double %22, double noundef 0x3F23BE27CF0A29B2) %33 = call double @llvm.fma.f64(double %32, double %22, double noundef 0xBF2A1DEF3E81672E) %34 = call double @llvm.fma.f64(double %33, double %22, double noundef 0xBF48D4ABE68C1713) %35 = call double @llvm.fma.f64(double %34, double %22, double noundef 0x3F749C67210DD6B4) %36 = call double @llvm.fma.f64(double %35, double %22, double noundef 0xBF9096238568E357) %37 = call double @llvm.fma.f64(double %36, double %22, double noundef 0x3FA3079EDF8C2DC9) %38 = call double @llvm.fma.f64(double %37, double %22, double noundef 0xBFB0FB06DFF601FC) %39 = call double @llvm.fma.f64(double %38, double %22, double noundef 0x3FB7FEE004DFBCDC) %40 = call double @llvm.fma.f64(double %39, double %22, double noundef 0xBFB9DDB23C3DB8C6) %41 = call double @llvm.fma.f64(double %40, double %22, double noundef 0x3FB16ECEFCFA5FDA) %42 = call double @llvm.fma.f64(double %41, double %22, double noundef 0x3F8F7F5DF66FB6D6) %43 = call double @llvm.fma.f64(double %42, double %22, double noundef 0xBFC1DF1AD154A29D) %44 = call double @llvm.fma.f64(double %43, double %22, double noundef 0x3FF3BA5916E9FD7F) %45 = call double @llvm.fma.f64(double %9, double noundef 2.000000e+00, double noundef 1.000000e+00) %46 = call double @llvm.nvvm.rcp.approx.ftz.d(double %45) #135 %47 = fneg double %45 %48 = call double @llvm.fma.f64(double %47, double %46, double noundef 1.000000e+00) %49 = call double @llvm.fma.f64(double %48, double %48, double %48) %50 = call double @llvm.fma.f64(double %49, double %46, double %46) %51 = fmul double %50, %44 %52 = fmul double %51, -2.000000e+00 %53 = call double @llvm.fma.f64(double %9, double %52, double %44) %54 = fsub double %53, %51 %55 = call double @llvm.fma.f64(double %54, double %50, double %51) br label %66 56: ; preds = %__internal_fast_icmp_abs_lt.exit %57 = fdiv double 1.000000e+00, %a %58 = fmul double %57, %57 %59 = call double @llvm.fma.f64(double %58, double noundef 0xC03D880000000000, double noundef 6.562500e+00) %60 = call double @llvm.fma.f64(double %59, double %58, double noundef -1.875000e+00) %61 = call double @llvm.fma.f64(double %60, double %58, double noundef 7.500000e-01) %62 = call double @llvm.fma.f64(double %61, double %58, double noundef -5.000000e-01) %63 = call double @llvm.fma.f64(double %62, double %58, double noundef 1.000000e+00) %64 = fmul double %57, 0x3FE20DD750429B6D %65 = fmul double %64, %63 br label %66 66: ; preds = %56, %6 %t1.0 = phi double [ %55, %6 ], [ %65, %56 ] %67 = icmp slt i32 %0, 0 br i1 %67, label %__internal_fast_icmp_abs_lt.exit3.i, label %115 __internal_fast_icmp_abs_lt.exit3.i: ; preds = %66 %68 = fmul double %a, %a %69 = fneg double %68 %70 = call double @llvm.fma.f64(double %a, double %a, double %69) %71 = call double @llvm.fma.f64(double %68, double noundef 0x3FF71547652B82FE, double noundef 0x4338000000000000) %72 = call i32 @llvm.nvvm.d2i.lo(double %71) #135 %73 = fadd double %71, 0xC338000000000000 %74 = call double @llvm.fma.f64(double %73, double noundef 0xBFE62E42FEFA39EF, double %68) %75 = call double @llvm.fma.f64(double %73, double noundef 0xBC7ABC9E3B39803F, double %74) %76 = call double @llvm.fma.f64(double %75, double noundef 0x3E5ADE1569CE2BDF, double noundef 0x3E928AF3FCA213EA) %77 = call double @llvm.fma.f64(double %76, double %75, double noundef 0x3EC71DEE62401315) %78 = call double @llvm.fma.f64(double %77, double %75, double noundef 0x3EFA01997C89EB71) %79 = call double @llvm.fma.f64(double %78, double %75, double noundef 0x3F2A01A014761F65) %80 = call double @llvm.fma.f64(double %79, double %75, double noundef 0x3F56C16C1852B7AF) %81 = call double @llvm.fma.f64(double %80, double %75, double noundef 0x3F81111111122322) %82 = call double @llvm.fma.f64(double %81, double %75, double noundef 0x3FA55555555502A1) %83 = call double @llvm.fma.f64(double %82, double %75, double noundef 0x3FC5555555555511) %84 = call double @llvm.fma.f64(double %83, double %75, double noundef 0x3FE000000000000B) %85 = call double @llvm.fma.f64(double %84, double %75, double noundef 1.000000e+00) %86 = call double @llvm.fma.f64(double %85, double %75, double noundef 1.000000e+00) %87 = call i32 @llvm.nvvm.d2i.lo(double %86) #135 %88 = call i32 @llvm.nvvm.d2i.hi(double %86) #135 %89 = shl i32 %72, 20 %90 = add i32 %88, %89 %91 = call double @llvm.nvvm.lohi.i2d(i32 %87, i32 %90) #135 %92 = call i32 @llvm.nvvm.d2i.hi(double %68) #135 %93 = bitcast i32 %92 to float %94 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not1 = icmp eq i32 %94, 0 %95 = call float @llvm.nvvm.fabs.ftz.f(float %93) #135 %96 = call float @llvm.fabs.f32(float %93) %.01 = select i1 %.not1, float %96, float %95 %97 = fcmp olt float %.01, 0x4010C46560000000 br i1 %97, label %__nv_exp.exit, label %__internal_fast_icmp_abs_lt.exit.i __internal_fast_icmp_abs_lt.exit.i: ; preds = %__internal_fast_icmp_abs_lt.exit3.i %98 = fadd double %68, 0x7FF0000000000000 %99 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not2 = icmp eq i32 %99, 0 %.0 = select i1 %.not2, float %96, float %95 %100 = fcmp olt float %.0, 0x4010E90000000000 br i1 %100, label %101, label %__nv_exp.exit 101: ; preds = %__internal_fast_icmp_abs_lt.exit.i %102 = sdiv i32 %72, 2 %103 = shl i32 %102, 20 %104 = add i32 %88, %103 %105 = call double @llvm.nvvm.lohi.i2d(i32 %87, i32 %104) #135 %106 = sub nsw i32 %72, %102 %107 = shl i32 %106, 20 %108 = add nsw i32 %107, 1072693248 %109 = call double @llvm.nvvm.lohi.i2d(i32 noundef 0, i32 %108) #135 %110 = fmul double %109, %105 br label %__nv_exp.exit __nv_exp.exit: ; preds = %__internal_fast_icmp_abs_lt.exit.i, %101, %__internal_fast_icmp_abs_lt.exit3.i %z.i.2 = phi double [ %91, %__internal_fast_icmp_abs_lt.exit3.i ], [ %110, %101 ], [ %98, %__internal_fast_icmp_abs_lt.exit.i ] %111 = fadd double %z.i.2, %z.i.2 %112 = call double @llvm.fma.f64(double %111, double %70, double %111) %113 = fsub double %112, %t1.0 %114 = fcmp oeq double %111, 0x7FF0000000000000 %t1.1 = select i1 %114, double %111, double %113 br label %115 115: ; preds = %__nv_exp.exit, %66 %t1.2 = phi double [ %t1.1, %__nv_exp.exit ], [ %t1.0, %66 ] ret double %t1.2 } ; Function Attrs: nofree noinline nosync nounwind readnone willreturn define dso_local double @__nv_normcdf(double %a) local_unnamed_addr #115 { %1 = call double @llvm.fabs.f64(double %a) #136 %2 = fcmp ogt double %1, 3.850000e+01 br i1 %2, label %3, label %11 3: ; preds = %0 %4 = call i32 @llvm.nvvm.d2i.hi(double %a) #138 %5 = call i32 @llvm.nvvm.d2i.lo(double noundef 3.850000e+01) #138 %6 = call i32 @llvm.nvvm.d2i.hi(double noundef 3.850000e+01) #138 %7 = and i32 %4, -2147483648 %8 = and i32 %6, 2147483647 %9 = or i32 %7, %8 %10 = call double @llvm.nvvm.lohi.i2d(i32 %5, i32 %9) #138 br label %11 11: ; preds = %3, %0 %.0 = phi double [ %10, %3 ], [ %a, %0 ] %12 = fmul double %.0, 0xBFE6A09E667F3BCD %13 = fneg double %12 %14 = call double @llvm.fma.f64(double %.0, double noundef 0xBFE6A09E667F3BCD, double %13) #136 %15 = call double @llvm.fma.f64(double %.0, double noundef 0x3C8BDD3413B26456, double %14) #136 %16 = fadd double %12, %15 %17 = call i32 @llvm.nvvm.d2i.hi(double %16) #138 %18 = and i32 %17, 2147483647 %19 = call i32 @llvm.nvvm.d2i.lo(double %16) #138 %20 = icmp ult i32 %18, 2146435072 br i1 %20, label %21, label %106 21: ; preds = %11 %22 = call double @llvm.nvvm.lohi.i2d(i32 %19, i32 %18) #138 %23 = fadd double %22, -4.000000e+00 %24 = fadd double %22, 4.000000e+00 %25 = call double @llvm.nvvm.rcp.approx.ftz.d(double %24) #138 %26 = fneg double %24 %27 = call double @llvm.fma.f64(double %26, double %25, double noundef 1.000000e+00) #136 %28 = call double @llvm.fma.f64(double %27, double %27, double %27) #136 %29 = call double @llvm.fma.f64(double %28, double %25, double %25) #136 %30 = fmul double %23, %29 %31 = fadd double %30, 1.000000e+00 %32 = call double @llvm.fma.f64(double %31, double noundef -4.000000e+00, double %22) #136 %33 = fneg double %30 %34 = call double @llvm.fma.f64(double %33, double %22, double %32) #136 %35 = call double @llvm.fma.f64(double %29, double %34, double %30) #136 %36 = call double @llvm.fma.f64(double %35, double noundef 0xBDF8774AD4E0BFD7, double noundef 0xBE44E1C6FD03D328) #136 %37 = call double @llvm.fma.f64(double %36, double %35, double noundef 0xBE4330149F7A56B6) #136 %38 = call double @llvm.fma.f64(double %37, double %35, double noundef 0x3E7BEDDED8376273) #136 %39 = call double @llvm.fma.f64(double %38, double %35, double noundef 0x3E6F9254C3ABF22B) #136 %40 = call double @llvm.fma.f64(double %39, double %35, double noundef 0xBEAB9068C2148CF0) #136 %41 = call double @llvm.fma.f64(double %40, double %35, double noundef 0x3E94C6454DB34009) #136 %42 = call double @llvm.fma.f64(double %41, double %35, double noundef 0x3ED7F1C378F2311D) #136 %43 = call double @llvm.fma.f64(double %42, double %35, double noundef 0xBEE78E051C6D5C58) #136 %44 = call double @llvm.fma.f64(double %43, double %35, double noundef 0xBEF995B4EAD14A90) #136 %45 = call double @llvm.fma.f64(double %44, double %35, double noundef 0x3F23BE27CF0A29B2) #136 %46 = call double @llvm.fma.f64(double %45, double %35, double noundef 0xBF2A1DEF3E81672E) #136 %47 = call double @llvm.fma.f64(double %46, double %35, double noundef 0xBF48D4ABE68C1713) #136 %48 = call double @llvm.fma.f64(double %47, double %35, double noundef 0x3F749C67210DD6B4) #136 %49 = call double @llvm.fma.f64(double %48, double %35, double noundef 0xBF9096238568E357) #136 %50 = call double @llvm.fma.f64(double %49, double %35, double noundef 0x3FA3079EDF8C2DC9) #136 %51 = call double @llvm.fma.f64(double %50, double %35, double noundef 0xBFB0FB06DFF601FC) #136 %52 = call double @llvm.fma.f64(double %51, double %35, double noundef 0x3FB7FEE004DFBCDC) #136 %53 = call double @llvm.fma.f64(double %52, double %35, double noundef 0xBFB9DDB23C3DB8C6) #136 %54 = call double @llvm.fma.f64(double %53, double %35, double noundef 0x3FB16ECEFCFA5FDA) #136 %55 = call double @llvm.fma.f64(double %54, double %35, double noundef 0x3F8F7F5DF66FB6D6) #136 %56 = call double @llvm.fma.f64(double %55, double %35, double noundef 0xBFC1DF1AD154A29D) #136 %57 = call double @llvm.fma.f64(double %56, double %35, double noundef 0x3FF3BA5916E9FD7F) #136 %58 = call double @llvm.fma.f64(double %22, double noundef 2.000000e+00, double noundef 1.000000e+00) #136 %59 = call double @llvm.nvvm.rcp.approx.ftz.d(double %58) #138 %60 = fneg double %58 %61 = call double @llvm.fma.f64(double %60, double %59, double noundef 1.000000e+00) #136 %62 = call double @llvm.fma.f64(double %61, double %61, double %61) #136 %63 = call double @llvm.fma.f64(double %62, double %59, double %59) #136 %64 = fmul double %63, %57 %65 = fmul double %64, -2.000000e+00 %66 = call double @llvm.fma.f64(double %22, double %65, double %57) #136 %67 = fsub double %66, %64 %68 = call double @llvm.fma.f64(double %67, double %63, double %64) #136 %69 = fneg double %22 %70 = fmul double %22, %69 %71 = call double @llvm.fma.f64(double %70, double noundef 0x3FF71547652B82FE, double noundef 0x4338000000000000) #136 %72 = call i32 @llvm.nvvm.d2i.lo(double %71) #138 %73 = fadd double %71, 0xC338000000000000 %74 = call double @llvm.fma.f64(double %73, double noundef 0xBFE62E42FEFA39EF, double %70) #136 %75 = call double @llvm.fma.f64(double %73, double noundef 0xBC7ABC9E3B39803F, double %74) #136 %76 = call double @llvm.fma.f64(double %75, double noundef 0x3E5ADE1569CE2BDF, double noundef 0x3E928AF3FCA213EA) #136 %77 = call double @llvm.fma.f64(double %76, double %75, double noundef 0x3EC71DEE62401315) #136 %78 = call double @llvm.fma.f64(double %77, double %75, double noundef 0x3EFA01997C89EB71) #136 %79 = call double @llvm.fma.f64(double %78, double %75, double noundef 0x3F2A01A014761F65) #136 %80 = call double @llvm.fma.f64(double %79, double %75, double noundef 0x3F56C16C1852B7AF) #136 %81 = call double @llvm.fma.f64(double %80, double %75, double noundef 0x3F81111111122322) #136 %82 = call double @llvm.fma.f64(double %81, double %75, double noundef 0x3FA55555555502A1) #136 %83 = call double @llvm.fma.f64(double %82, double %75, double noundef 0x3FC5555555555511) #136 %84 = call double @llvm.fma.f64(double %83, double %75, double noundef 0x3FE000000000000B) #136 %85 = call double @llvm.fma.f64(double %84, double %75, double noundef 1.000000e+00) #136 %86 = call double @llvm.fma.f64(double %85, double %75, double noundef 1.000000e+00) #136 %87 = sdiv i32 %72, 2 %88 = call i32 @llvm.nvvm.d2i.lo(double %86) #138 %89 = call i32 @llvm.nvvm.d2i.hi(double %86) #138 %90 = shl i32 %87, 20 %91 = add i32 %89, %90 %92 = call double @llvm.nvvm.lohi.i2d(i32 %88, i32 %91) #138 %93 = sub nsw i32 %72, %87 %94 = shl i32 %93, 20 %95 = add nsw i32 %94, 1072693248 %96 = call double @llvm.nvvm.lohi.i2d(i32 noundef 0, i32 %95) #138 %97 = fmul double %96, %92 %98 = fneg double %70 %99 = call double @llvm.fma.f64(double %69, double %22, double %98) #136 %100 = call double @llvm.fma.f64(double %97, double %99, double %97) #136 %101 = fmul double %100, %68 %102 = icmp ugt i32 %18, 1077624832 %spec.select = select i1 %102, double 0.000000e+00, double %101 %103 = icmp slt i32 %17, 0 %104 = fsub double 2.000000e+00, %spec.select %105 = select i1 %103, double %104, double %spec.select br label %__nv_erfc.exit 106: ; preds = %11 %107 = icmp eq i32 %18, 2146435072 %108 = icmp eq i32 %19, 0 %or.cond = select i1 %107, i1 %108, i1 false %109 = icmp slt i32 %17, 0 %110 = select i1 %109, double 2.000000e+00, double 0.000000e+00 %111 = fadd double %16, %16 %t1.i.1 = select i1 %or.cond, double %110, double %111 br label %__nv_erfc.exit __nv_erfc.exit: ; preds = %106, %21 %t1.i.2 = phi double [ %105, %21 ], [ %t1.i.1, %106 ] %112 = call i32 @llvm.nvvm.d2i.hi(double %.0) #138 %113 = icmp ugt i32 %112, -1074790400 br i1 %113, label %114, label %120 114: ; preds = %__nv_erfc.exit %115 = fsub double %12, %16 %116 = fadd double %15, %115 %117 = fmul double %16, -2.000000e+00 %118 = fmul double %117, %t1.i.2 %119 = call double @llvm.fma.f64(double %118, double %116, double %t1.i.2) #136 br label %120 120: ; preds = %114, %__nv_erfc.exit %z.0 = phi double [ %119, %114 ], [ %t1.i.2, %__nv_erfc.exit ] %121 = fmul double %z.0, 5.000000e-01 ret double %121 } ; Function Attrs: noinline nounwind define dso_local double @__nv_tgamma(double %a) local_unnamed_addr #116 { %1 = call i32 @llvm.nvvm.d2i.hi(double %a) #138 %2 = bitcast i32 %1 to float %3 = fcmp ult double %a, 0.000000e+00 br i1 %3, label %208, label %4 4: ; preds = %0 %5 = fcmp olt float %2, 2.250000e+00 br i1 %5, label %6, label %36 6: ; preds = %4 %7 = fcmp oge float %2, 2.187500e+00 %8 = fadd double %a, -1.000000e+00 %s.0 = select i1 %7, double %8, double 1.000000e+00 %t.0 = select i1 %7, double %8, double %a %9 = fcmp oge float %2, 2.062500e+00 %10 = fneg double %s.0 %11 = call double @llvm.fma.f64(double %t.0, double %s.0, double %10) #136 %12 = fadd double %t.0, -1.000000e+00 %s.1 = select i1 %9, double %11, double %s.0 %t.1 = select i1 %9, double %12, double %t.0 %13 = fcmp oge float %2, 1.937500e+00 %14 = fneg double %s.1 %15 = call double @llvm.fma.f64(double %t.1, double %s.1, double %14) #136 %16 = fadd double %t.1, -1.000000e+00 %s.2 = select i1 %13, double %15, double %s.1 %t.2 = select i1 %13, double %16, double %t.1 %17 = fcmp oge float %2, 1.750000e+00 %18 = fadd double %t.2, -1.000000e+00 %t.3 = select i1 %17, double %18, double %t.2 %19 = call double @llvm.fma.f64(double %t.3, double noundef 0x3E381B4960FCF5C9, double noundef 0xBE8AF7049AE8A594) #136 %20 = call double @llvm.fma.f64(double %19, double %t.3, double noundef 0x3EB301D46D4B22F5) #136 %21 = call double @llvm.fma.f64(double %20, double %t.3, double noundef 0xBEB50272AEED0FC4) #136 %22 = call double @llvm.fma.f64(double %21, double %t.3, double noundef 0xBEF51CE1A40516F8) #136 %23 = call double @llvm.fma.f64(double %22, double %t.3, double noundef 0x3F20C8AA7419084C) #136 %24 = call double @llvm.fma.f64(double %23, double %t.3, double noundef 0xBF2C3650196BAD8A) #136 %25 = call double @llvm.fma.f64(double %24, double %t.3, double noundef 0xBF531711365A3E26) #136 %26 = call double @llvm.fma.f64(double %25, double %t.3, double noundef 0x3F7D919C52A7DF35) #136 %27 = call double @llvm.fma.f64(double %26, double %t.3, double noundef 0xBF83B4AF28386F4D) #136 %28 = call double @llvm.fma.f64(double %27, double %t.3, double noundef 0xBFA59AF103C37B4D) #136 %29 = call double @llvm.fma.f64(double %28, double %t.3, double noundef 0x3FC5512320B439EF) #136 %30 = call double @llvm.fma.f64(double %29, double %t.3, double noundef 0xBFA5815E8FA26F4F) #136 %31 = call double @llvm.fma.f64(double %30, double %t.3, double noundef 0xBFE4FCF4026AFA2B) #136 %32 = call double @llvm.fma.f64(double %31, double %t.3, double noundef 0x3FE2788CFC6FB619) #136 %33 = call double @llvm.fma.f64(double %32, double %t.3, double noundef 1.000000e+00) #136 %34 = select i1 %17, double 1.000000e+00, double %a %t.4 = fmul double %34, %33 %35 = fdiv double %s.2, %t.4 br label %403 36: ; preds = %4 %37 = call i32 @llvm.nvvm.d2i.lo(double %a) #138 %38 = lshr i32 %1, 20 %39 = icmp ult i32 %1, 1048576 br i1 %39, label %40, label %46 40: ; preds = %36 %41 = fmul double %a, 0x4350000000000000 %42 = call i32 @llvm.nvvm.d2i.hi(double %41) #138 %43 = call i32 @llvm.nvvm.d2i.lo(double %41) #138 %44 = lshr i32 %42, 20 %45 = add nsw i32 %44, -54 br label %46 46: ; preds = %40, %36 %ilo.i.i26.0 = phi i32 [ %43, %40 ], [ %37, %36 ] %ihi.i.i27.0 = phi i32 [ %42, %40 ], [ %1, %36 ] %expo.i.i.0 = phi i32 [ %45, %40 ], [ %38, %36 ] %47 = add nsw i32 %expo.i.i.0, -1023 %48 = and i32 %ihi.i.i27.0, -2146435073 %49 = or i32 %48, 1072693248 %50 = call double @llvm.nvvm.lohi.i2d(i32 %ilo.i.i26.0, i32 %49) #138 %51 = icmp ugt i32 %49, 1073127582 br i1 %51, label %52, label %__internal_log_ext_prec.exit.i 52: ; preds = %46 %53 = call i32 @llvm.nvvm.d2i.lo(double %50) #138 %54 = call i32 @llvm.nvvm.d2i.hi(double %50) #138 %55 = add i32 %54, -1048576 %56 = call double @llvm.nvvm.lohi.i2d(i32 %53, i32 %55) #138 %57 = add nsw i32 %expo.i.i.0, -1022 br label %__internal_log_ext_prec.exit.i __internal_log_ext_prec.exit.i: ; preds = %52, %46 %m.i.i.0 = phi double [ %56, %52 ], [ %50, %46 ] %expo.i.i.1 = phi i32 [ %57, %52 ], [ %47, %46 ] %58 = fadd double %m.i.i.0, -1.000000e+00 %59 = fadd double %m.i.i.0, 1.000000e+00 %60 = call double @llvm.nvvm.rcp.approx.ftz.d(double %59) #138 %61 = fneg double %59 %62 = call double @llvm.fma.f64(double %61, double %60, double noundef 1.000000e+00) #136 %63 = call double @llvm.fma.f64(double %62, double %62, double %62) #136 %64 = call double @llvm.fma.f64(double %63, double %60, double %60) #136 %65 = fmul double %58, %64 %66 = fadd double %65, %65 %67 = fmul double %66, %66 %68 = call double @llvm.fma.f64(double %67, double noundef 0x3EB0F5FF7D2CAFE2, double noundef 0x3ED0F5D241AD3B5A) #136 %69 = call double @llvm.fma.f64(double %68, double %67, double noundef 0x3EF3B20A75488A3F) #136 %70 = call double @llvm.fma.f64(double %69, double %67, double noundef 0x3F1745CDE4FAECD5) #136 %71 = call double @llvm.fma.f64(double %70, double %67, double noundef 0x3F3C71C7258A578B) #136 %72 = call double @llvm.fma.f64(double %71, double %67, double noundef 0x3F6249249242B910) #136 %73 = call double @llvm.fma.f64(double %72, double %67, double noundef 0x3F89999999999DFB) #136 %74 = fmul double %67, %73 %75 = fsub double %58, %66 %76 = fmul double %75, 2.000000e+00 %77 = fneg double %66 %78 = call double @llvm.fma.f64(double %77, double %58, double %76) #136 %79 = fmul double %64, %78 %80 = fadd double %74, 0x3FB5555555555555 %81 = fsub double 0x3FB5555555555555, %80 %82 = fadd double %74, %81 %83 = fadd double %82, 0.000000e+00 %84 = fadd double %83, 0xBC46A4CB00B9E7B0 %85 = fadd double %80, %84 %86 = fsub double %80, %85 %87 = fadd double %84, %86 %88 = fneg double %67 %89 = call double @llvm.fma.f64(double %66, double %66, double %88) #136 %90 = call i32 @llvm.nvvm.d2i.lo(double %79) #138 %91 = call i32 @llvm.nvvm.d2i.hi(double %79) #138 %92 = add i32 %91, 1048576 %93 = call double @llvm.nvvm.lohi.i2d(i32 %90, i32 %92) #138 %94 = call double @llvm.fma.f64(double %66, double %93, double %89) #136 %95 = fmul double %66, %67 %96 = fneg double %95 %97 = call double @llvm.fma.f64(double %67, double %66, double %96) #136 %98 = call double @llvm.fma.f64(double %67, double %79, double %97) #136 %99 = call double @llvm.fma.f64(double %94, double %66, double %98) #136 %100 = fmul double %95, %85 %101 = fneg double %100 %102 = call double @llvm.fma.f64(double %85, double %95, double %101) #136 %103 = call double @llvm.fma.f64(double %85, double %99, double %102) #136 %104 = call double @llvm.fma.f64(double %87, double %95, double %103) #136 %105 = fadd double %100, %104 %106 = fsub double %100, %105 %107 = fadd double %104, %106 %108 = fadd double %66, %105 %109 = fsub double %66, %108 %110 = fadd double %105, %109 %111 = fadd double %107, %110 %112 = fadd double %79, %111 %113 = fadd double %108, %112 %114 = fsub double %108, %113 %115 = fadd double %112, %114 %116 = xor i32 %expo.i.i.1, -2147483648 %117 = call double @llvm.nvvm.lohi.i2d(i32 %116, i32 noundef 1127219200) #138 %118 = call double @llvm.nvvm.lohi.i2d(i32 noundef -2147483648, i32 noundef 1127219200) #138 %119 = fsub double %117, %118 %120 = call double @llvm.fma.f64(double %119, double noundef 0x3FE62E42FEFA39EF, double %113) #136 %121 = fneg double %119 %122 = call double @llvm.fma.f64(double %121, double noundef 0x3FE62E42FEFA39EF, double %120) #136 %123 = fsub double %122, %113 %124 = fsub double %115, %123 %125 = call double @llvm.fma.f64(double %119, double noundef 0x3C7ABC9E3B39803F, double %124) #136 %126 = fadd double %120, %125 %127 = fsub double %120, %126 %128 = fadd double %125, %127 %129 = fadd double %a, -5.000000e-01 %130 = fmul double %129, %126 %131 = fneg double %130 %132 = call double @llvm.fma.f64(double %126, double %129, double %131) #136 %133 = call double @llvm.fma.f64(double %128, double %129, double %132) #136 %134 = fadd double %130, %133 %135 = fsub double %130, %134 %136 = fadd double %133, %135 %137 = fsub double %134, %a %138 = fsub double %134, %137 %139 = fsub double %138, %a %140 = fadd double %136, %139 %141 = fadd double %137, %140 %142 = fsub double %137, %141 %143 = fadd double %140, %142 %144 = call double @llvm.fma.f64(double %141, double noundef 0x3FF71547652B82FE, double noundef 0x4338000000000000) #136 %145 = call i32 @llvm.nvvm.d2i.lo(double %144) #138 %146 = fadd double %144, 0xC338000000000000 %147 = call double @llvm.fma.f64(double %146, double noundef 0xBFE62E42FEFA39EF, double %141) #136 %148 = call double @llvm.fma.f64(double %146, double noundef 0xBC7ABC9E3B39803F, double %147) #136 %149 = call double @llvm.fma.f64(double %148, double noundef 0x3E5ADE1569CE2BDF, double noundef 0x3E928AF3FCA213EA) #136 %150 = call double @llvm.fma.f64(double %149, double %148, double noundef 0x3EC71DEE62401315) #136 %151 = call double @llvm.fma.f64(double %150, double %148, double noundef 0x3EFA01997C89EB71) #136 %152 = call double @llvm.fma.f64(double %151, double %148, double noundef 0x3F2A01A014761F65) #136 %153 = call double @llvm.fma.f64(double %152, double %148, double noundef 0x3F56C16C1852B7AF) #136 %154 = call double @llvm.fma.f64(double %153, double %148, double noundef 0x3F81111111122322) #136 %155 = call double @llvm.fma.f64(double %154, double %148, double noundef 0x3FA55555555502A1) #136 %156 = call double @llvm.fma.f64(double %155, double %148, double noundef 0x3FC5555555555511) #136 %157 = call double @llvm.fma.f64(double %156, double %148, double noundef 0x3FE000000000000B) #136 %158 = call double @llvm.fma.f64(double %157, double %148, double noundef 1.000000e+00) #136 %159 = call double @llvm.fma.f64(double %158, double %148, double noundef 1.000000e+00) #136 %160 = call i32 @llvm.nvvm.d2i.lo(double %159) #138 %161 = call i32 @llvm.nvvm.d2i.hi(double %159) #138 %162 = shl i32 %145, 20 %163 = add i32 %161, %162 %164 = call double @llvm.nvvm.lohi.i2d(i32 %160, i32 %163) #138 %165 = call i32 @llvm.nvvm.d2i.hi(double %141) #138 %166 = bitcast i32 %165 to float %167 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not5 = icmp eq i32 %167, 0 %168 = call float @llvm.nvvm.fabs.ftz.f(float %166) #135 %169 = call float @llvm.fabs.f32(float %166) %.05 = select i1 %.not5, float %169, float %168 %170 = fcmp olt float %.05, 0x4010C46560000000 br i1 %170, label %__nv_exp.exit.i, label %__internal_fast_icmp_abs_lt.exit.i.i __internal_fast_icmp_abs_lt.exit.i.i: ; preds = %__internal_log_ext_prec.exit.i %171 = fcmp olt double %141, 0.000000e+00 %172 = fadd double %141, 0x7FF0000000000000 %z.i5.i.0 = select i1 %171, double 0.000000e+00, double %172 %173 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #135 %.not6 = icmp eq i32 %173, 0 %.04 = select i1 %.not6, float %169, float %168 %174 = fcmp olt float %.04, 0x4010E90000000000 br i1 %174, label %175, label %__nv_exp.exit.i 175: ; preds = %__internal_fast_icmp_abs_lt.exit.i.i %176 = sdiv i32 %145, 2 %177 = shl i32 %176, 20 %178 = add i32 %161, %177 %179 = call double @llvm.nvvm.lohi.i2d(i32 %160, i32 %178) #135 %180 = sub nsw i32 %145, %176 %181 = shl i32 %180, 20 %182 = add nsw i32 %181, 1072693248 %183 = call double @llvm.nvvm.lohi.i2d(i32 noundef 0, i32 %182) #135 %184 = fmul double %183, %179 br label %__nv_exp.exit.i __nv_exp.exit.i: ; preds = %__internal_fast_icmp_abs_lt.exit.i.i, %175, %__internal_log_ext_prec.exit.i %z.i5.i.2 = phi double [ %164, %__internal_log_ext_prec.exit.i ], [ %184, %175 ], [ %z.i5.i.0, %__internal_fast_icmp_abs_lt.exit.i.i ] %185 = call double @llvm.fma.f64(double %143, double %z.i5.i.2, double %z.i5.i.2) %186 = fmul double %185, 0xBCAA6A0D6F814637 %187 = call double @llvm.fma.f64(double %185, double noundef 0x40040D931FF62706, double %186) %188 = call double @llvm.nvvm.rcp.approx.ftz.d(double %a) #135 %189 = fneg double %a %190 = call double @llvm.fma.f64(double %189, double %188, double noundef 1.000000e+00) %191 = call double @llvm.fma.f64(double %190, double %190, double %190) %192 = call double @llvm.fma.f64(double %191, double %188, double %188) %193 = call double @llvm.fma.f64(double %192, double noundef 0xBF64BEE47C38A637, double noundef 0x3F73C25DA81303D5) %194 = call double @llvm.fma.f64(double %193, double %192, double noundef 0xBF6B7C37A96CFC72) %195 = call double @llvm.fma.f64(double %194, double %192, double noundef 0x3F35A85ABDE1E324) %196 = call double @llvm.fma.f64(double %195, double %192, double noundef 0x3F4A8B28F07B3F05) %197 = call double @llvm.fma.f64(double %196, double %192, double noundef 0xBF0A15D1D45A282F) %198 = call double @llvm.fma.f64(double %197, double %192, double noundef 0xBF4367D3468CB5BE) %199 = call double @llvm.fma.f64(double %198, double %192, double noundef 0x3F12471B0E9F1005) %200 = call double @llvm.fma.f64(double %199, double %192, double noundef 0x3F49B1004744D5C4) %201 = call double @llvm.fma.f64(double %200, double %192, double noundef 0xBF2E13CE69AB4B7F) %202 = call double @llvm.fma.f64(double %201, double %192, double noundef 0xBF65F7268ECF8A01) %203 = call double @llvm.fma.f64(double %202, double %192, double noundef 0x3F6C71C71C71ACE0) %204 = call double @llvm.fma.f64(double %203, double %192, double noundef 0x3FB5555555555556) %205 = fmul double %192, %204 %206 = call double @llvm.fma.f64(double %205, double %187, double %187) %207 = fcmp oge double %a, 0x406573FAE561F648 %r.i.0 = select i1 %207, double 0x7FF0000000000000, double %206 br label %403 208: ; preds = %0 %209 = fcmp olt double %a, 0.000000e+00 br i1 %209, label %210, label %401 210: ; preds = %208 %211 = call double @llvm.trunc.f64(double %a) %212 = fcmp oeq double %211, %a br i1 %212, label %403, label %213 213: ; preds = %210 %214 = fcmp ogt float %2, -2.250000e+00 br i1 %214, label %215, label %245 215: ; preds = %213 %216 = fcmp ole float %2, -2.187500e+00 %217 = call double @llvm.fma.f64(double %a, double %a, double %a) %218 = fadd double %a, 1.000000e+00 %s.4 = select i1 %216, double %217, double %a %t.5 = select i1 %216, double %218, double %a %219 = fcmp ole float %2, -2.062500e+00 %220 = call double @llvm.fma.f64(double %t.5, double %s.4, double %s.4) %221 = fadd double %t.5, 1.000000e+00 %s.5 = select i1 %219, double %220, double %s.4 %t.6 = select i1 %219, double %221, double %t.5 %222 = fcmp ole float %2, -1.937500e+00 %223 = call double @llvm.fma.f64(double %t.6, double %s.5, double %s.5) %224 = fadd double %t.6, 1.000000e+00 %s.6 = select i1 %222, double %223, double %s.5 %t.7 = select i1 %222, double %224, double %t.6 %225 = fcmp ole float %2, -1.750000e+00 %226 = call double @llvm.fma.f64(double %t.7, double %s.6, double %s.6) %227 = fadd double %t.7, 1.000000e+00 %s.7 = select i1 %225, double %226, double %s.6 %t.8 = select i1 %225, double %227, double %t.7 %228 = call double @llvm.fma.f64(double %t.8, double noundef 0x3E381B4960FCF5C9, double noundef 0xBE8AF7049AE8A594) %229 = call double @llvm.fma.f64(double %228, double %t.8, double noundef 0x3EB301D46D4B22F5) %230 = call double @llvm.fma.f64(double %229, double %t.8, double noundef 0xBEB50272AEED0FC4) %231 = call double @llvm.fma.f64(double %230, double %t.8, double noundef 0xBEF51CE1A40516F8) %232 = call double @llvm.fma.f64(double %231, double %t.8, double noundef 0x3F20C8AA7419084C) %233 = call double @llvm.fma.f64(double %232, double %t.8, double noundef 0xBF2C3650196BAD8A) %234 = call double @llvm.fma.f64(double %233, double %t.8, double noundef 0xBF531711365A3E26) %235 = call double @llvm.fma.f64(double %234, double %t.8, double noundef 0x3F7D919C52A7DF35) %236 = call double @llvm.fma.f64(double %235, double %t.8, double noundef 0xBF83B4AF28386F4D) %237 = call double @llvm.fma.f64(double %236, double %t.8, double noundef 0xBFA59AF103C37B4D) %238 = call double @llvm.fma.f64(double %237, double %t.8, double noundef 0x3FC5512320B439EF) %239 = call double @llvm.fma.f64(double %238, double %t.8, double noundef 0xBFA5815E8FA26F4F) %240 = call double @llvm.fma.f64(double %239, double %t.8, double noundef 0xBFE4FCF4026AFA2B) %241 = call double @llvm.fma.f64(double %240, double %t.8, double noundef 0x3FE2788CFC6FB619) %242 = call double @llvm.fma.f64(double %241, double %t.8, double noundef 1.000000e+00) %243 = fmul double %s.7, %242 %244 = fdiv double 1.000000e+00, %243 br label %403 245: ; preds = %213 %246 = fcmp ogt float %2, 0xC00CE40000000000 br i1 %246, label %247, label %393 247: ; preds = %245 %248 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([12 x i8], [12 x i8]* @.str.1, i32 0, i32 0)) #135 %249 = icmp eq i32 %248, 350 br i1 %249, label %__nv_sincospi.exit.i, label %250 250: ; preds = %247 %251 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([12 x i8], [12 x i8]* @.str.1, i32 0, i32 0)) #135 %252 = icmp eq i32 %251, 370 br i1 %252, label %__nv_sincospi.exit.i, label %__internal_sin_cos_kerneld.exit.i __nv_sincospi.exit.i: ; preds = %250, %247 %253 = shl i32 %1, 1 %254 = icmp ugt i32 %253, -2038431744 %255 = fmul double %a, 0.000000e+00 %spec.select = select i1 %254, double %255, double %a %256 = call i32 @llvm.nvvm.d2i.lo(double %spec.select) #135 %257 = call i32 @llvm.nvvm.d2i.hi(double %spec.select) #135 %258 = add i32 %257, 1048576 %259 = call double @llvm.nvvm.lohi.i2d(i32 %256, i32 %258) #135 %260 = call double @llvm.round.f64(double %259) %261 = fptosi double %260 to i64 %262 = trunc i64 %261 to i32 %263 = fneg double %260 %264 = call double @llvm.fma.f64(double %263, double noundef 5.000000e-01, double %spec.select) %265 = fmul double %264, 0x3CA1A62633145C07 %266 = call double @llvm.fma.f64(double %264, double noundef 0x400921FB54442D18, double %265) %267 = fmul double %266, %266 %268 = call double @llvm.fma.f64(double %267, double noundef 0xBDA8FF8320FD8164, double noundef 0x3E21EEA7C1EF8528) %269 = call double @llvm.fma.f64(double %268, double %267, double noundef 0xBE927E4F8E06E6D9) %270 = call double @llvm.fma.f64(double %269, double %267, double noundef 0x3EFA01A019DDBCE9) %271 = call double @llvm.fma.f64(double %270, double %267, double noundef 0xBF56C16C16C15D47) %272 = call double @llvm.fma.f64(double %271, double %267, double noundef 0x3FA5555555555551) %273 = call double @llvm.fma.f64(double %272, double %267, double noundef -5.000000e-01) %274 = call double @llvm.fma.f64(double %273, double %267, double noundef 1.000000e+00) %275 = call double @llvm.fma.f64(double %267, double noundef 0x3DE5DB65F9785EBA, double noundef 0xBE5AE5F12CB0D246) %276 = call double @llvm.fma.f64(double %275, double %267, double noundef 0x3EC71DE369ACE392) %277 = call double @llvm.fma.f64(double %276, double %267, double noundef 0xBF2A01A019DB62A1) %278 = call double @llvm.fma.f64(double %277, double %267, double noundef 0x3F81111111110818) %279 = call double @llvm.fma.f64(double %278, double %267, double noundef 0xBFC5555555555554) %280 = call double @llvm.fma.f64(double %279, double %267, double noundef 0.000000e+00) %281 = call double @llvm.fma.f64(double %280, double %266, double %266) %282 = and i32 %262, 1 %.not3 = icmp eq i32 %282, 0 %s.i.i.0 = select i1 %.not3, double %281, double %274 %283 = and i32 %262, 2 %.not4 = icmp eq i32 %283, 0 %284 = call i32 @llvm.nvvm.d2i.hi(double %s.i.i.0) #135 %285 = call i32 @llvm.nvvm.d2i.lo(double %s.i.i.0) #135 %286 = xor i32 %284, -2147483648 %287 = call double @llvm.nvvm.lohi.i2d(i32 %285, i32 %286) #135 %s.i.i.1 = select i1 %.not4, double %s.i.i.0, double %287 %288 = call double @llvm.trunc.f64(double %spec.select) %289 = fcmp oeq double %spec.select, %288 %290 = fmul double %spec.select, 0.000000e+00 %s.i.i.2 = select i1 %289, double %290, double %s.i.i.1 br label %__nv_sinpi.exit __internal_sin_cos_kerneld.exit.i: ; preds = %250 %291 = call i32 @llvm.nvvm.d2i.lo(double %a) #135 %292 = add i32 %1, 1048576 %293 = call double @llvm.nvvm.lohi.i2d(i32 %291, i32 %292) #135 %294 = call double @llvm.round.f64(double %293) %295 = fptosi double %294 to i64 %296 = trunc i64 %295 to i32 %297 = fneg double %294 %298 = call double @llvm.fma.f64(double %297, double noundef 5.000000e-01, double %a) %299 = fmul double %298, 0x3CA1A62633145C07 %300 = call double @llvm.fma.f64(double %298, double noundef 0x400921FB54442D18, double %299) %301 = and i32 %296, 1 %302 = shl nuw nsw i32 %301, 3 %303 = getelementptr inbounds [16 x double], [16 x double] addrspace(1)* @__cudart_sin_cos_coeffs, i32 0, i32 %302 %304 = fmul double %300, %300 %.not = icmp eq i32 %301, 0 %305 = select i1 %.not, double 0x3DE5DB65F9785EBA, double 0xBDA8FF8320FD8164 %306 = getelementptr inbounds double, double addrspace(1)* %303, i32 1 %307 = load double, double addrspace(1)* %306, align 8 %308 = call double @llvm.fma.f64(double noundef %305, double %304, double %307) %309 = getelementptr inbounds double, double addrspace(1)* %303, i32 2 %310 = load double, double addrspace(1)* %309, align 8 %311 = call double @llvm.fma.f64(double %308, double %304, double %310) %312 = getelementptr inbounds double, double addrspace(1)* %303, i32 3 %313 = load double, double addrspace(1)* %312, align 8 %314 = call double @llvm.fma.f64(double %311, double %304, double %313) %315 = getelementptr inbounds double, double addrspace(1)* %303, i32 4 %316 = load double, double addrspace(1)* %315, align 8 %317 = call double @llvm.fma.f64(double %314, double %304, double %316) %318 = getelementptr inbounds double, double addrspace(1)* %303, i32 5 %319 = load double, double addrspace(1)* %318, align 8 %320 = call double @llvm.fma.f64(double %317, double %304, double %319) %321 = getelementptr inbounds double, double addrspace(1)* %303, i32 6 %322 = load double, double addrspace(1)* %321, align 8 %323 = call double @llvm.fma.f64(double %320, double %304, double %322) %324 = call double @llvm.fma.f64(double %323, double %300, double %300) %325 = call double @llvm.fma.f64(double %323, double %304, double noundef 1.000000e+00) %spec.select1 = select i1 %.not, double %324, double %325 %326 = and i32 %296, 2 %.not2 = icmp eq i32 %326, 0 %327 = call double @llvm.fma.f64(double %spec.select1, double noundef -1.000000e+00, double noundef 0.000000e+00) %.1 = select i1 %.not2, double %spec.select1, double %327 br label %__nv_sinpi.exit __nv_sinpi.exit: ; preds = %__internal_sin_cos_kerneld.exit.i, %__nv_sincospi.exit.i %.01 = phi double [ %s.i.i.2, %__nv_sincospi.exit.i ], [ %.1, %__internal_sin_cos_kerneld.exit.i ] %328 = call double @llvm.fabs.f64(double %a) %329 = call double @llvm.nvvm.rcp.approx.ftz.d(double %328) #135 %330 = fneg double %328 %331 = call double @llvm.fma.f64(double %330, double %329, double noundef 1.000000e+00) %332 = call double @llvm.fma.f64(double %331, double %331, double %331) %333 = call double @llvm.fma.f64(double %332, double %329, double %329) %334 = call double @llvm.fma.f64(double %333, double noundef 0xBF64BEE47C38A637, double noundef 0x3F73C25DA81303D5) %335 = call double @llvm.fma.f64(double %334, double %333, double noundef 0xBF6B7C37A96CFC72) %336 = call double @llvm.fma.f64(double %335, double %333, double noundef 0x3F35A85ABDE1E324) %337 = call double @llvm.fma.f64(double %336, double %333, double noundef 0x3F4A8B28F07B3F05) %338 = call double @llvm.fma.f64(double %337, double %333, double noundef 0xBF0A15D1D45A282F) %339 = call double @llvm.fma.f64(double %338, double %333, double noundef 0xBF4367D3468CB5BE) %340 = call double @llvm.fma.f64(double %339, double %333, double noundef 0x3F12471B0E9F1005) %341 = call double @llvm.fma.f64(double %340, double %333, double noundef 0x3F49B1004744D5C4) %342 = call double @llvm.fma.f64(double %341, double %333, double noundef 0xBF2E13CE69AB4B7F) %343 = call double @llvm.fma.f64(double %342, double %333, double noundef 0xBF65F7268ECF8A01) %344 = call double @llvm.fma.f64(double %343, double %333, double noundef 0x3F6C71C71C71ACE0) %345 = call double @llvm.fma.f64(double %344, double %333, double noundef 0x3FB5555555555556) %346 = fmul double %333, %345 %347 = call double @llvm.fma.f64(double %346, double %.01, double %.01) %348 = fmul double %328, %347 %349 = call double @llvm.fma.f64(double %328, double noundef 0x3FF71547652B82FE, double noundef 0x4338000000000000) %350 = call i32 @llvm.nvvm.d2i.lo(double %349) #135 %351 = fadd double %349, 0xC338000000000000 %352 = call double @llvm.fma.f64(double %351, double noundef 0xBFE62E42FEFA39EF, double %328) %353 = call double @llvm.fma.f64(double %351, double noundef 0xBC7ABC9E3B39803F, double %352) %354 = call double @llvm.fma.f64(double %353, double noundef 0x3E5ADE1569CE2BDF, double noundef 0x3E928AF3FCA213EA) %355 = call double @llvm.fma.f64(double %354, double %353, double noundef 0x3EC71DEE62401315) %356 = call double @llvm.fma.f64(double %355, double %353, double noundef 0x3EFA01997C89EB71) %357 = call double @llvm.fma.f64(double %356, double %353, double noundef 0x3F2A01A014761F65) %358 = call double @llvm.fma.f64(double %357, double %353, double noundef 0x3F56C16C1852B7AF) %359 = call double @llvm.fma.f64(double %358, double %353, double noundef 0x3F81111111122322) %360 = call double @llvm.fma.f64(double %359, double %353, double noundef 0x3FA55555555502A1) %361 = call double @llvm.fma.f64(double %360, double %353, double noundef 0x3FC5555555555511) %362 = call double @llvm.fma.f64(double %361, double %353, double noundef 0x3FE000000000000B) %363 = call double @llvm.fma.f64(double %362, double %353, double noundef 1.000000e+00) %364 = call double @llvm.fma.f64(double %363, double %353, double noundef 1.000000e+00) %365 = call i32 @llvm.abs.i32(i32 %350, i1 noundef false) %366 = icmp slt i32 %365, 1023 br i1 %366, label %367, label %370 367: ; preds = %__nv_sinpi.exit %368 = shl i32 %350, 20 %369 = add i32 %368, 1072693248 br label %__internal_exp_kernel.exit 370: ; preds = %__nv_sinpi.exit %371 = add nsw i32 %350, 2046 %372 = shl i32 %371, 19 %373 = and i32 %372, -1048576 %374 = shl i32 %371, 20 %375 = sub i32 %374, %373 %376 = call double @llvm.nvvm.lohi.i2d(i32 noundef 0, i32 %373) #135 %377 = fmul double %376, %364 br label %__internal_exp_kernel.exit __internal_exp_kernel.exit: ; preds = %370, %367 %.0 = phi double [ %364, %367 ], [ %377, %370 ] %k.i.i.0 = phi i32 [ %369, %367 ], [ %375, %370 ] %378 = call double @llvm.nvvm.lohi.i2d(i32 noundef 0, i32 %k.i.i.0) #135 %379 = fmul double %.0, %378 %380 = fmul double %379, 0xBC9A6A0D6F814637 %381 = call double @llvm.fma.f64(double %379, double noundef 0x3FF40D931FF62706, double %380) %382 = fdiv double %381, %348 %383 = fadd double %328, -5.000000e-01 %384 = fcmp ole float %2, 0xC00C3C8000000000 %385 = call i32 @llvm.nvvm.d2i.lo(double %383) #135 %386 = call i32 @llvm.nvvm.d2i.hi(double %383) #135 %387 = add i32 %386, -1048576 %388 = call double @llvm.nvvm.lohi.i2d(i32 %385, i32 %387) #135 %t.9 = select i1 %384, double %388, double %383 %389 = fneg double %t.9 %390 = call fastcc double @__internal_accurate_pow(double %328, double %389) #135 %391 = select i1 %384, double %390, double 1.000000e+00 %s.8 = fmul double %391, %382 %392 = fmul double %390, %s.8 br label %403 393: ; preds = %245 %394 = call double @llvm.floor.f64(double %a) %395 = fmul double %394, 5.000000e-01 %396 = call double @llvm.floor.f64(double %395) %397 = fmul double %396, 2.000000e+00 %398 = fsub double %394, %397 %399 = fcmp oeq double %398, 1.000000e+00 %400 = select i1 %399, double -0.000000e+00, double 0.000000e+00 br label %403 401: ; preds = %208 %402 = fadd double %a, %a br label %403 403: ; preds = %210, %401, %215, %393, %__internal_exp_kernel.exit, %6, %__nv_exp.exit.i %s.13 = phi double [ %35, %6 ], [ %r.i.0, %__nv_exp.exit.i ], [ %402, %401 ], [ %244, %215 ], [ %392, %__internal_exp_kernel.exit ], [ %400, %393 ], [ 0xFFF8000000000000, %210 ] ret double %s.13 } ; Function Attrs: noinline nounwind define dso_local double @__nv_lgamma(double %a) local_unnamed_addr #117 { %1 = call double @llvm.fabs.f64(double %a) #136 %2 = fcmp ugt double %1, 0x7FF0000000000000 br i1 %2, label %162, label %3 3: ; preds = %0 %4 = call fastcc double @__internal_lgamma_pos(double %1) #139 %5 = call i32 @llvm.nvvm.d2i.hi(double %a) #138 %6 = icmp slt i32 %5, 0 br i1 %6, label %7, label %164 7: ; preds = %3 %8 = call double @llvm.trunc.f64(double %1) #136 %9 = fcmp oeq double %1, %8 br i1 %9, label %164, label %10 10: ; preds = %7 %11 = call i32 @llvm.nvvm.d2i.hi(double %1) #138 %12 = icmp slt i32 %11, 1006632960 br i1 %12, label %96, label %13 13: ; preds = %10 %14 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([12 x i8], [12 x i8]* @.str.1, i32 0, i32 0)) #135 %15 = icmp eq i32 %14, 350 br i1 %15, label %__nv_sincospi.exit.i, label %16 16: ; preds = %13 %17 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([12 x i8], [12 x i8]* @.str.1, i32 0, i32 0)) #135 %18 = icmp eq i32 %17, 370 br i1 %18, label %__nv_sincospi.exit.i, label %__internal_sin_cos_kerneld.exit.i __nv_sincospi.exit.i: ; preds = %16, %13 %19 = icmp ugt i32 %11, 1128267776 %20 = fmul double %1, 0.000000e+00 %spec.select = select i1 %19, double %20, double %1 %21 = call i32 @llvm.nvvm.d2i.lo(double %spec.select) #135 %22 = call i32 @llvm.nvvm.d2i.hi(double %spec.select) #135 %23 = add i32 %22, 1048576 %24 = call double @llvm.nvvm.lohi.i2d(i32 %21, i32 %23) #135 %25 = call double @llvm.round.f64(double %24) %26 = fptosi double %25 to i64 %27 = trunc i64 %26 to i32 %28 = fneg double %25 %29 = call double @llvm.fma.f64(double %28, double noundef 5.000000e-01, double %spec.select) %30 = fmul double %29, 0x3CA1A62633145C07 %31 = call double @llvm.fma.f64(double %29, double noundef 0x400921FB54442D18, double %30) %32 = fmul double %31, %31 %33 = call double @llvm.fma.f64(double %32, double noundef 0xBDA8FF8320FD8164, double noundef 0x3E21EEA7C1EF8528) %34 = call double @llvm.fma.f64(double %33, double %32, double noundef 0xBE927E4F8E06E6D9) %35 = call double @llvm.fma.f64(double %34, double %32, double noundef 0x3EFA01A019DDBCE9) %36 = call double @llvm.fma.f64(double %35, double %32, double noundef 0xBF56C16C16C15D47) %37 = call double @llvm.fma.f64(double %36, double %32, double noundef 0x3FA5555555555551) %38 = call double @llvm.fma.f64(double %37, double %32, double noundef -5.000000e-01) %39 = call double @llvm.fma.f64(double %38, double %32, double noundef 1.000000e+00) %40 = call double @llvm.fma.f64(double %32, double noundef 0x3DE5DB65F9785EBA, double noundef 0xBE5AE5F12CB0D246) %41 = call double @llvm.fma.f64(double %40, double %32, double noundef 0x3EC71DE369ACE392) %42 = call double @llvm.fma.f64(double %41, double %32, double noundef 0xBF2A01A019DB62A1) %43 = call double @llvm.fma.f64(double %42, double %32, double noundef 0x3F81111111110818) %44 = call double @llvm.fma.f64(double %43, double %32, double noundef 0xBFC5555555555554) %45 = call double @llvm.fma.f64(double %44, double %32, double noundef 0.000000e+00) %46 = call double @llvm.fma.f64(double %45, double %31, double %31) %47 = and i32 %27, 1 %.not3 = icmp eq i32 %47, 0 %s.i.i.0 = select i1 %.not3, double %46, double %39 %48 = and i32 %27, 2 %.not4 = icmp eq i32 %48, 0 %49 = call i32 @llvm.nvvm.d2i.hi(double %s.i.i.0) #135 %50 = call i32 @llvm.nvvm.d2i.lo(double %s.i.i.0) #135 %51 = xor i32 %49, -2147483648 %52 = call double @llvm.nvvm.lohi.i2d(i32 %50, i32 %51) #135 %s.i.i.1 = select i1 %.not4, double %s.i.i.0, double %52 %53 = call double @llvm.trunc.f64(double %spec.select) %54 = fcmp oeq double %spec.select, %53 %55 = fmul double %spec.select, 0.000000e+00 %s.i.i.2 = select i1 %54, double %55, double %s.i.i.1 br label %__nv_sinpi.exit __internal_sin_cos_kerneld.exit.i: ; preds = %16 %56 = call i32 @llvm.nvvm.d2i.lo(double %1) #135 %57 = add nuw i32 %11, 1048576 %58 = call double @llvm.nvvm.lohi.i2d(i32 %56, i32 %57) #135 %59 = call double @llvm.round.f64(double %58) %60 = fptosi double %59 to i64 %61 = trunc i64 %60 to i32 %62 = fneg double %59 %63 = call double @llvm.fma.f64(double %62, double noundef 5.000000e-01, double %1) %64 = fmul double %63, 0x3CA1A62633145C07 %65 = call double @llvm.fma.f64(double %63, double noundef 0x400921FB54442D18, double %64) %66 = and i32 %61, 1 %67 = shl nuw nsw i32 %66, 3 %68 = getelementptr inbounds [16 x double], [16 x double] addrspace(1)* @__cudart_sin_cos_coeffs, i32 0, i32 %67 %69 = fmul double %65, %65 %.not = icmp eq i32 %66, 0 %70 = select i1 %.not, double 0x3DE5DB65F9785EBA, double 0xBDA8FF8320FD8164 %71 = getelementptr inbounds double, double addrspace(1)* %68, i32 1 %72 = load double, double addrspace(1)* %71, align 8 %73 = call double @llvm.fma.f64(double noundef %70, double %69, double %72) %74 = getelementptr inbounds double, double addrspace(1)* %68, i32 2 %75 = load double, double addrspace(1)* %74, align 8 %76 = call double @llvm.fma.f64(double %73, double %69, double %75) %77 = getelementptr inbounds double, double addrspace(1)* %68, i32 3 %78 = load double, double addrspace(1)* %77, align 8 %79 = call double @llvm.fma.f64(double %76, double %69, double %78) %80 = getelementptr inbounds double, double addrspace(1)* %68, i32 4 %81 = load double, double addrspace(1)* %80, align 8 %82 = call double @llvm.fma.f64(double %79, double %69, double %81) %83 = getelementptr inbounds double, double addrspace(1)* %68, i32 5 %84 = load double, double addrspace(1)* %83, align 8 %85 = call double @llvm.fma.f64(double %82, double %69, double %84) %86 = getelementptr inbounds double, double addrspace(1)* %68, i32 6 %87 = load double, double addrspace(1)* %86, align 8 %88 = call double @llvm.fma.f64(double %85, double %69, double %87) %89 = call double @llvm.fma.f64(double %88, double %65, double %65) %90 = call double @llvm.fma.f64(double %88, double %69, double noundef 1.000000e+00) %spec.select1 = select i1 %.not, double %89, double %90 %91 = and i32 %61, 2 %.not2 = icmp eq i32 %91, 0 %92 = call double @llvm.fma.f64(double %spec.select1, double noundef -1.000000e+00, double noundef 0.000000e+00) %.1 = select i1 %.not2, double %spec.select1, double %92 br label %__nv_sinpi.exit __nv_sinpi.exit: ; preds = %__internal_sin_cos_kerneld.exit.i, %__nv_sincospi.exit.i %.01 = phi double [ %s.i.i.2, %__nv_sincospi.exit.i ], [ %.1, %__internal_sin_cos_kerneld.exit.i ] %93 = fmul double %.01, %a %94 = call double @llvm.fabs.f64(double %93) %95 = fdiv double 0x400921FB54442D18, %94 %.pre = call i32 @llvm.nvvm.d2i.hi(double %95) #135 br label %96 96: ; preds = %10, %__nv_sinpi.exit %.pre-phi = phi i32 [ %11, %10 ], [ %.pre, %__nv_sinpi.exit ] %u.0 = phi double [ %1, %10 ], [ %95, %__nv_sinpi.exit ] %97 = call i32 @llvm.nvvm.d2i.lo(double %u.0) #135 %98 = icmp slt i32 %.pre-phi, 1048576 br i1 %98, label %99, label %103 99: ; preds = %96 %100 = fmul double %u.0, 0x4350000000000000 %101 = call i32 @llvm.nvvm.d2i.hi(double %100) #135 %102 = call i32 @llvm.nvvm.d2i.lo(double %100) #135 br label %103 103: ; preds = %99, %96 %.0 = phi double [ %100, %99 ], [ %u.0, %96 ] %ihi.i.0 = phi i32 [ %101, %99 ], [ %.pre-phi, %96 ] %ilo.i.0 = phi i32 [ %102, %99 ], [ %97, %96 ] %e.i.0 = phi i32 [ -1077, %99 ], [ -1023, %96 ] %104 = add i32 %ihi.i.0, -1 %105 = icmp ult i32 %104, 2146435071 br i1 %105, label %106, label %155 106: ; preds = %103 %107 = lshr i32 %ihi.i.0, 20 %108 = add nsw i32 %e.i.0, %107 %109 = and i32 %ihi.i.0, -2146435073 %110 = or i32 %109, 1072693248 %111 = call double @llvm.nvvm.lohi.i2d(i32 %ilo.i.0, i32 %110) #135 %112 = icmp sgt i32 %110, 1073127582 br i1 %112, label %113, label %119 113: ; preds = %106 %114 = call i32 @llvm.nvvm.d2i.lo(double %111) #135 %115 = call i32 @llvm.nvvm.d2i.hi(double %111) #135 %116 = add i32 %115, -1048576 %117 = call double @llvm.nvvm.lohi.i2d(i32 %114, i32 %116) #135 %118 = add nsw i32 %108, 1 br label %119 119: ; preds = %113, %106 %m.i.0 = phi double [ %117, %113 ], [ %111, %106 ] %e.i.1 = phi i32 [ %118, %113 ], [ %108, %106 ] %120 = fadd double %m.i.0, -1.000000e+00 %121 = fadd double %m.i.0, 1.000000e+00 %122 = call double @llvm.nvvm.rcp.approx.ftz.d(double %121) #135 %123 = fneg double %121 %124 = call double @llvm.fma.f64(double %123, double %122, double noundef 1.000000e+00) %125 = call double @llvm.fma.f64(double %124, double %124, double %124) %126 = call double @llvm.fma.f64(double %125, double %122, double %122) %127 = fmul double %120, %126 %128 = fadd double %127, %127 %129 = fmul double %128, %128 %130 = call double @llvm.fma.f64(double %129, double noundef 0x3EB1380B3AE80F1E, double noundef 0x3ED0EE258B7A8B04) %131 = call double @llvm.fma.f64(double %130, double %129, double noundef 0x3EF3B2669F02676F) %132 = call double @llvm.fma.f64(double %131, double %129, double noundef 0x3F1745CBA9AB0956) %133 = call double @llvm.fma.f64(double %132, double %129, double noundef 0x3F3C71C72D1B5154) %134 = call double @llvm.fma.f64(double %133, double %129, double noundef 0x3F624924923BE72D) %135 = call double @llvm.fma.f64(double %134, double %129, double noundef 0x3F8999999999A3C4) %136 = call double @llvm.fma.f64(double %135, double %129, double noundef 0x3FB5555555555554) %137 = fsub double %120, %128 %138 = fmul double %137, 2.000000e+00 %139 = fneg double %128 %140 = call double @llvm.fma.f64(double %139, double %120, double %138) %141 = fmul double %126, %140 %142 = fmul double %129, %136 %143 = call double @llvm.fma.f64(double %142, double %128, double %141) %144 = xor i32 %e.i.1, -2147483648 %145 = call double @llvm.nvvm.lohi.i2d(i32 %144, i32 noundef 1127219200) #135 %146 = call double @llvm.nvvm.lohi.i2d(i32 noundef -2147483648, i32 noundef 1127219200) #135 %147 = fsub double %145, %146 %148 = call double @llvm.fma.f64(double %147, double noundef 0x3FE62E42FEFA39EF, double %128) %149 = fneg double %147 %150 = call double @llvm.fma.f64(double %149, double noundef 0x3FE62E42FEFA39EF, double %148) %151 = fsub double %150, %128 %152 = fsub double %143, %151 %153 = call double @llvm.fma.f64(double %147, double noundef 0x3C7ABC9E3B39803F, double %152) %154 = fadd double %148, %153 br label %__nv_log.exit 155: ; preds = %103 %156 = call double @llvm.fma.f64(double %.0, double noundef 0x7FF0000000000000, double noundef 0x7FF0000000000000) %157 = call i32 @llvm.nvvm.d2i.hi(double %.0) #135 %158 = bitcast i32 %157 to float %159 = fcmp oeq float %158, 0.000000e+00 %q.i.0 = select i1 %159, double 0xFFF0000000000000, double %156 br label %__nv_log.exit __nv_log.exit: ; preds = %155, %119 %q.i.1 = phi double [ %154, %119 ], [ %q.i.0, %155 ] %160 = fneg double %q.i.1 %161 = fsub double %q.i.1, %4 %t.0 = select i1 %12, double %160, double %161 br label %164 162: ; preds = %0 %163 = fadd double %a, %a br label %164 164: ; preds = %7, %3, %__nv_log.exit, %162 %t.3 = phi double [ %163, %162 ], [ %4, %3 ], [ %t.0, %__nv_log.exit ], [ 0x7FF0000000000000, %7 ] ret double %t.3 } ; Function Attrs: nofree noinline nosync nounwind readnone willreturn define internal fastcc double @__internal_lgamma_pos(double %a) unnamed_addr #118 { %1 = call i32 @llvm.nvvm.d2i.hi(double %a) #138 %2 = icmp sgt i32 %1, 1074266111 br i1 %2, label %3, label %101 3: ; preds = %0 %4 = icmp ugt i32 %1, 1075838975 br i1 %4, label %5, label %83 5: ; preds = %3 %6 = call double @llvm.nvvm.rcp.approx.ftz.d(double %a) #138 %7 = fneg double %a %8 = call double @llvm.fma.f64(double %7, double %6, double noundef 1.000000e+00) #136 %9 = call double @llvm.fma.f64(double %8, double %8, double %8) #136 %10 = call double @llvm.fma.f64(double %9, double %6, double %6) #136 %11 = fmul double %10, %10 %12 = call double @llvm.fma.f64(double %11, double noundef 0xBF5AC321034783F9, double noundef 0x3F4B68B992738FBF) #136 %13 = call double @llvm.fma.f64(double %12, double %11, double noundef 0xBF4380D01E4F7B8C) #136 %14 = call double @llvm.fma.f64(double %13, double %11, double noundef 0x3F4A019FA29F7264) #136 %15 = call double @llvm.fma.f64(double %14, double %11, double noundef 0xBF66C16C16B2ACEC) #136 %16 = call double @llvm.fma.f64(double %15, double %11, double noundef 0x3FB5555555555545) #136 %17 = call double @llvm.fma.f64(double %16, double %10, double noundef 0x3FED67F1C864BEAE) #136 %18 = add nsw i32 %1, -1 %19 = icmp ult i32 %18, 2146435071 br i1 %19, label %20, label %70 20: ; preds = %5 %21 = call i32 @llvm.nvvm.d2i.lo(double %a) #138 %22 = lshr i32 %1, 20 %23 = add nsw i32 %22, -1023 %24 = and i32 %1, -2146435073 %25 = or i32 %24, 1072693248 %26 = call double @llvm.nvvm.lohi.i2d(i32 %21, i32 %25) #138 %27 = icmp sgt i32 %25, 1073127582 br i1 %27, label %28, label %34 28: ; preds = %20 %29 = call i32 @llvm.nvvm.d2i.lo(double %26) #138 %30 = call i32 @llvm.nvvm.d2i.hi(double %26) #138 %31 = add i32 %30, -1048576 %32 = call double @llvm.nvvm.lohi.i2d(i32 %29, i32 %31) #138 %33 = add nsw i32 %22, -1022 br label %34 34: ; preds = %28, %20 %m.i10.0 = phi double [ %32, %28 ], [ %26, %20 ] %e.i22.1 = phi i32 [ %33, %28 ], [ %23, %20 ] %35 = fadd double %m.i10.0, -1.000000e+00 %36 = fadd double %m.i10.0, 1.000000e+00 %37 = call double @llvm.nvvm.rcp.approx.ftz.d(double %36) #138 %38 = fneg double %36 %39 = call double @llvm.fma.f64(double %38, double %37, double noundef 1.000000e+00) #136 %40 = call double @llvm.fma.f64(double %39, double %39, double %39) #136 %41 = call double @llvm.fma.f64(double %40, double %37, double %37) #136 %42 = fmul double %35, %41 %43 = fadd double %42, %42 %44 = fmul double %43, %43 %45 = call double @llvm.fma.f64(double %44, double noundef 0x3EB1380B3AE80F1E, double noundef 0x3ED0EE258B7A8B04) #136 %46 = call double @llvm.fma.f64(double %45, double %44, double noundef 0x3EF3B2669F02676F) #136 %47 = call double @llvm.fma.f64(double %46, double %44, double noundef 0x3F1745CBA9AB0956) #136 %48 = call double @llvm.fma.f64(double %47, double %44, double noundef 0x3F3C71C72D1B5154) #136 %49 = call double @llvm.fma.f64(double %48, double %44, double noundef 0x3F624924923BE72D) #136 %50 = call double @llvm.fma.f64(double %49, double %44, double noundef 0x3F8999999999A3C4) #136 %51 = call double @llvm.fma.f64(double %50, double %44, double noundef 0x3FB5555555555554) #136 %52 = fsub double %35, %43 %53 = fmul double %52, 2.000000e+00 %54 = fneg double %43 %55 = call double @llvm.fma.f64(double %54, double %35, double %53) #136 %56 = fmul double %41, %55 %57 = fmul double %44, %51 %58 = call double @llvm.fma.f64(double %57, double %43, double %56) #136 %59 = xor i32 %e.i22.1, -2147483648 %60 = call double @llvm.nvvm.lohi.i2d(i32 %59, i32 noundef 1127219200) #138 %61 = call double @llvm.nvvm.lohi.i2d(i32 noundef -2147483648, i32 noundef 1127219200) #138 %62 = fsub double %60, %61 %63 = call double @llvm.fma.f64(double %62, double noundef 0x3FE62E42FEFA39EF, double %43) #136 %64 = fneg double %62 %65 = call double @llvm.fma.f64(double %64, double noundef 0x3FE62E42FEFA39EF, double %63) #136 %66 = fsub double %65, %43 %67 = fsub double %58, %66 %68 = call double @llvm.fma.f64(double %62, double noundef 0x3C7ABC9E3B39803F, double %67) #136 %69 = fadd double %63, %68 br label %__nv_log.exit23 70: ; preds = %5 %71 = call double @llvm.fma.f64(double %a, double noundef 0x7FF0000000000000, double noundef 0x7FF0000000000000) #136 %72 = bitcast i32 %1 to float %73 = fcmp oeq float %72, 0.000000e+00 %q.i16.0 = select i1 %73, double 0xFFF0000000000000, double %71 br label %__nv_log.exit23 __nv_log.exit23: ; preds = %70, %34 %q.i16.1 = phi double [ %69, %34 ], [ %q.i16.0, %70 ] %74 = call i32 @llvm.nvvm.d2i.lo(double %q.i16.1) #138 %75 = call i32 @llvm.nvvm.d2i.hi(double %q.i16.1) #138 %76 = add i32 %75, -1048576 %77 = call double @llvm.nvvm.lohi.i2d(i32 %74, i32 %76) #138 %78 = fadd double %a, -5.000000e-01 %79 = call double @llvm.fma.f64(double %77, double %78, double %17) #136 %80 = call double @llvm.fma.f64(double %77, double %78, double %7) #136 %81 = fadd double %80, %79 %82 = fcmp oeq double %a, 0x7FF0000000000000 %t.0 = select i1 %82, double %a, double %81 br label %232 83: ; preds = %3 %84 = fadd double %a, -3.000000e+00 %85 = call double @llvm.fma.f64(double %84, double noundef 0xC0AF7040BB18FB05, double noundef 0xC1122B7730207EF3) #136 %86 = call double @llvm.fma.f64(double %85, double %84, double noundef 0xC1585A0DB81DE7D0) #136 %87 = call double @llvm.fma.f64(double %86, double %84, double noundef 0xC18A992B8BA94677) #136 %88 = call double @llvm.fma.f64(double %87, double %84, double noundef 0xC1AAC5CB6957CC20) #136 %89 = call double @llvm.fma.f64(double %88, double %84, double noundef 0xC1BC0E2B308774BE) #136 %90 = call double @llvm.fma.f64(double %89, double %84, double noundef 0xC1C6BA13DCAE7F67) #136 %91 = call double @llvm.fma.f64(double %90, double %84, double noundef 0xC1CCF33B9C3D120C) #136 %92 = fadd double %84, 0xC08FF62E0BE189FE %93 = call double @llvm.fma.f64(double %92, double %84, double noundef 0xC10074FACE10C93F) #136 %94 = call double @llvm.fma.f64(double %93, double %84, double noundef 0xC151B662F8D75791) #136 %95 = call double @llvm.fma.f64(double %94, double %84, double noundef 0xC18EE64AB4D207F7) #136 %96 = call double @llvm.fma.f64(double %95, double %84, double noundef 0xC1B9051687C9951A) #136 %97 = call double @llvm.fma.f64(double %96, double %84, double noundef 0xC1D2B866BF0B853D) #136 %98 = call double @llvm.fma.f64(double %97, double %84, double noundef 0xC1D4E2130E9DC133) #136 %99 = fdiv double %91, %98 %100 = fadd double %84, %99 br label %232 101: ; preds = %0 %102 = icmp sgt i32 %1, 1073217535 br i1 %102, label %103, label %125 103: ; preds = %101 %104 = fadd double %a, -2.000000e+00 %105 = call double @llvm.fma.f64(double %104, double noundef 0x3E452636124338B3, double noundef 0xBE71FA71D78C0EE2) #136 %106 = call double @llvm.fma.f64(double %105, double %104, double noundef 0x3E8D111F31E61306) #136 %107 = call double @llvm.fma.f64(double %106, double %104, double noundef 0xBEA0502BBE1B2706) #136 %108 = call double @llvm.fma.f64(double %107, double %104, double noundef 0x3EB06850B2970292) #136 %109 = call double @llvm.fma.f64(double %108, double %104, double noundef 0xBEC108474875033D) #136 %110 = call double @llvm.fma.f64(double %109, double %104, double noundef 0x3ED24ACCC62909DC) #136 %111 = call double @llvm.fma.f64(double %110, double %104, double noundef 0xBEE3CB25209E63BE) #136 %112 = call double @llvm.fma.f64(double %111, double %104, double noundef 0x3EF581CBBC8CDC7B) #136 %113 = call double @llvm.fma.f64(double %112, double %104, double noundef 0xBF078E04B85C7597) #136 %114 = call double @llvm.fma.f64(double %113, double %104, double noundef 0x3F1A12730CF45051) #136 %115 = call double @llvm.fma.f64(double %114, double %104, double noundef 0xBF2D3FD354062012) #136 %116 = call double @llvm.fma.f64(double %115, double %104, double noundef 0x3F40B36B0B4DE323) #136 %117 = call double @llvm.fma.f64(double %116, double %104, double noundef 0xBF538AC5C6D0317A) #136 %118 = call double @llvm.fma.f64(double %117, double %104, double noundef 0x3F67ADD6EAAB19FC) #136 %119 = call double @llvm.fma.f64(double %118, double %104, double noundef 0xBF7E404FC20E4D5B) #136 %120 = call double @llvm.fma.f64(double %119, double %104, double noundef 0x3F951322AC7DA390) #136 %121 = call double @llvm.fma.f64(double %120, double %104, double noundef 0xBFB13E001A5578A3) #136 %122 = call double @llvm.fma.f64(double %121, double %104, double noundef 0x3FD4A34CC4A60FA3) #136 %123 = call double @llvm.fma.f64(double %122, double %104, double noundef 0x3FDB0EE6072093CF) #136 %124 = fmul double %104, %123 br label %232 125: ; preds = %101 %126 = icmp sgt i32 %1, 1072064101 br i1 %126, label %127, label %151 127: ; preds = %125 %128 = fsub double 1.000000e+00, %a %129 = call double @llvm.fma.f64(double %128, double noundef 0x3F881F6D2A4C4310, double noundef 0x3FA3EB504359EB88) #136 %130 = call double @llvm.fma.f64(double %129, double %128, double noundef 0x3FAE35D8DEB06317) #136 %131 = call double @llvm.fma.f64(double %130, double %128, double noundef 0x3FAED469A8B6ECCE) #136 %132 = call double @llvm.fma.f64(double %131, double %128, double noundef 0x3FACC1B1C357BEFE) #136 %133 = call double @llvm.fma.f64(double %132, double %128, double noundef 0x3FAD7154DB67F79F) #136 %134 = call double @llvm.fma.f64(double %133, double %128, double noundef 0x3FAFCC622CF2F7BB) #136 %135 = call double @llvm.fma.f64(double %134, double %128, double noundef 0x3FB11747A4D1CC43) #136 %136 = call double @llvm.fma.f64(double %135, double %128, double noundef 0x3FB24CE16A21B8AC) #136 %137 = call double @llvm.fma.f64(double %136, double %128, double noundef 0x3FB3B1C21A7BCB00) #136 %138 = call double @llvm.fma.f64(double %137, double %128, double noundef 0x3FB556723452ED57) #136 %139 = call double @llvm.fma.f64(double %138, double %128, double noundef 0x3FB748C00891544F) #136 %140 = call double @llvm.fma.f64(double %139, double %128, double noundef 0x3FB9A0207808CF40) #136 %141 = call double @llvm.fma.f64(double %140, double %128, double noundef 0x3FBC80673B8AE26B) #136 %142 = call double @llvm.fma.f64(double %141, double %128, double noundef 0x3FC010B364B7E555) #136 %143 = call double @llvm.fma.f64(double %142, double %128, double noundef 0x3FC2703A1D239658) #136 %144 = call double @llvm.fma.f64(double %143, double %128, double noundef 0x3FC5B40CB1137E6E) #136 %145 = call double @llvm.fma.f64(double %144, double %128, double noundef 0x3FCA8B9C17AC4F03) #136 %146 = call double @llvm.fma.f64(double %145, double %128, double noundef 0x3FD151322AC7CB52) #136 %147 = call double @llvm.fma.f64(double %146, double %128, double noundef 0x3FD9A4D55BEAB1D4) #136 %148 = call double @llvm.fma.f64(double %147, double %128, double noundef 0x3FEA51A6625307D6) #136 %149 = call double @llvm.fma.f64(double %148, double %128, double noundef 0x3FE2788CFC6FB619) #136 %150 = fmul double %128, %149 br label %232 151: ; preds = %125 %152 = call double @llvm.fma.f64(double %a, double noundef 0xBE7844988BFE6590, double noundef 0x3EA7B77CEB0625E8) #136 %153 = call double @llvm.fma.f64(double %152, double %a, double noundef 0xBE998C69C8710CC4) #136 %154 = call double @llvm.fma.f64(double %153, double %a, double noundef 0xBEF6527A5A11CF6E) #136 %155 = call double @llvm.fma.f64(double %154, double %a, double noundef 0x3F20EC2950B1B5DE) #136 %156 = call double @llvm.fma.f64(double %155, double %a, double noundef 0xBF2C4D80C24BA278) #136 %157 = call double @llvm.fma.f64(double %156, double %a, double noundef 0xBF5315B4E8CC0D09) #136 %158 = call double @llvm.fma.f64(double %157, double %a, double noundef 0x3F7D917F15D50020) #136 %159 = call double @llvm.fma.f64(double %158, double %a, double noundef 0xBF83B4ABB41CB6FA) #136 %160 = call double @llvm.fma.f64(double %159, double %a, double noundef 0xBFA59AF1275B7120) #136 %161 = call double @llvm.fma.f64(double %160, double %a, double noundef 0x3FC5512321A168A0) #136 %162 = call double @llvm.fma.f64(double %161, double %a, double noundef 0xBFA5815E8FDCE74C) #136 %163 = call double @llvm.fma.f64(double %162, double %a, double noundef 0xBFE4FCF4026ADD1A) #136 %164 = call double @llvm.fma.f64(double %163, double %a, double noundef 0x3FE2788CFC6FB5C8) #136 %165 = fmul double %164, %a %166 = call double @llvm.fma.f64(double %165, double %a, double %a) #136 %167 = call i32 @llvm.nvvm.d2i.hi(double %166) #138 %168 = call i32 @llvm.nvvm.d2i.lo(double %166) #138 %169 = icmp slt i32 %167, 1048576 br i1 %169, label %170, label %174 170: ; preds = %151 %171 = fmul double %166, 0x4350000000000000 %172 = call i32 @llvm.nvvm.d2i.hi(double %171) #138 %173 = call i32 @llvm.nvvm.d2i.lo(double %171) #138 br label %174 174: ; preds = %170, %151 %.0 = phi double [ %171, %170 ], [ %166, %151 ] %ihi.i.0 = phi i32 [ %172, %170 ], [ %167, %151 ] %ilo.i.0 = phi i32 [ %173, %170 ], [ %168, %151 ] %e.i.0 = phi i32 [ -1077, %170 ], [ -1023, %151 ] %175 = add i32 %ihi.i.0, -1 %176 = icmp ult i32 %175, 2146435071 br i1 %176, label %177, label %226 177: ; preds = %174 %178 = lshr i32 %ihi.i.0, 20 %179 = add nsw i32 %e.i.0, %178 %180 = and i32 %ihi.i.0, -2146435073 %181 = or i32 %180, 1072693248 %182 = call double @llvm.nvvm.lohi.i2d(i32 %ilo.i.0, i32 %181) #138 %183 = icmp sgt i32 %181, 1073127582 br i1 %183, label %184, label %190 184: ; preds = %177 %185 = call i32 @llvm.nvvm.d2i.lo(double %182) #138 %186 = call i32 @llvm.nvvm.d2i.hi(double %182) #138 %187 = add i32 %186, -1048576 %188 = call double @llvm.nvvm.lohi.i2d(i32 %185, i32 %187) #138 %189 = add nsw i32 %179, 1 br label %190 190: ; preds = %184, %177 %m.i.0 = phi double [ %188, %184 ], [ %182, %177 ] %e.i.1 = phi i32 [ %189, %184 ], [ %179, %177 ] %191 = fadd double %m.i.0, -1.000000e+00 %192 = fadd double %m.i.0, 1.000000e+00 %193 = call double @llvm.nvvm.rcp.approx.ftz.d(double %192) #138 %194 = fneg double %192 %195 = call double @llvm.fma.f64(double %194, double %193, double noundef 1.000000e+00) #136 %196 = call double @llvm.fma.f64(double %195, double %195, double %195) #136 %197 = call double @llvm.fma.f64(double %196, double %193, double %193) #136 %198 = fmul double %191, %197 %199 = fadd double %198, %198 %200 = fmul double %199, %199 %201 = call double @llvm.fma.f64(double %200, double noundef 0x3EB1380B3AE80F1E, double noundef 0x3ED0EE258B7A8B04) #136 %202 = call double @llvm.fma.f64(double %201, double %200, double noundef 0x3EF3B2669F02676F) #136 %203 = call double @llvm.fma.f64(double %202, double %200, double noundef 0x3F1745CBA9AB0956) #136 %204 = call double @llvm.fma.f64(double %203, double %200, double noundef 0x3F3C71C72D1B5154) #136 %205 = call double @llvm.fma.f64(double %204, double %200, double noundef 0x3F624924923BE72D) #136 %206 = call double @llvm.fma.f64(double %205, double %200, double noundef 0x3F8999999999A3C4) #136 %207 = call double @llvm.fma.f64(double %206, double %200, double noundef 0x3FB5555555555554) #136 %208 = fsub double %191, %199 %209 = fmul double %208, 2.000000e+00 %210 = fneg double %199 %211 = call double @llvm.fma.f64(double %210, double %191, double %209) #136 %212 = fmul double %197, %211 %213 = fmul double %200, %207 %214 = call double @llvm.fma.f64(double %213, double %199, double %212) #136 %215 = xor i32 %e.i.1, -2147483648 %216 = call double @llvm.nvvm.lohi.i2d(i32 %215, i32 noundef 1127219200) #138 %217 = call double @llvm.nvvm.lohi.i2d(i32 noundef -2147483648, i32 noundef 1127219200) #138 %218 = fsub double %216, %217 %219 = call double @llvm.fma.f64(double %218, double noundef 0x3FE62E42FEFA39EF, double %199) #136 %220 = fneg double %218 %221 = call double @llvm.fma.f64(double %220, double noundef 0x3FE62E42FEFA39EF, double %219) #136 %222 = fsub double %221, %199 %223 = fsub double %214, %222 %224 = call double @llvm.fma.f64(double %218, double noundef 0x3C7ABC9E3B39803F, double %223) #136 %225 = fadd double %219, %224 br label %__nv_log.exit 226: ; preds = %174 %227 = call double @llvm.fma.f64(double %.0, double noundef 0x7FF0000000000000, double noundef 0x7FF0000000000000) #136 %228 = call i32 @llvm.nvvm.d2i.hi(double %.0) #138 %229 = bitcast i32 %228 to float %230 = fcmp oeq float %229, 0.000000e+00 %q.i.0 = select i1 %230, double 0xFFF0000000000000, double %227 br label %__nv_log.exit __nv_log.exit: ; preds = %226, %190 %q.i.1 = phi double [ %225, %190 ], [ %q.i.0, %226 ] %231 = fneg double %q.i.1 br label %232 232: ; preds = %103, %__nv_log.exit, %127, %__nv_log.exit23, %83 %t.4 = phi double [ %t.0, %__nv_log.exit23 ], [ %100, %83 ], [ %124, %103 ], [ %150, %127 ], [ %231, %__nv_log.exit ] ret double %t.4 } ; Function Attrs: nofree noinline nosync nounwind readnone willreturn define dso_local double @__nv_ldexp(double %a, i32 %b) local_unnamed_addr #119 { %1 = call double @llvm.fabs.f64(double %a) #136 %2 = icmp slt i32 %b, 2200 %min = select i1 %2, i32 %b, i32 2200 %max.cond.inv = icmp sgt i32 %min, -2200 %max = select i1 %max.cond.inv, i32 %min, i32 -2200 %3 = fcmp oeq double %a, 0.000000e+00 %4 = fcmp oeq double %1, 0x7FF0000000000000 %or.cond = or i1 %3, %4 %5 = icmp eq i32 %max, 0 %or.cond2 = select i1 %or.cond, i1 true, i1 %5 br i1 %or.cond2, label %6, label %9 6: ; preds = %0 %7 = fcmp one double %a, 0.000000e+00 %8 = select i1 %7, double -0.000000e+00, double %a %.0 = fadd double %8, %a br label %43 9: ; preds = %0 %10 = call i32 @llvm.abs.i32(i32 %max, i1 noundef true) #136 %11 = icmp ult i32 %10, 1022 br i1 %11, label %12, label %17 12: ; preds = %9 %13 = shl i32 %max, 20 %14 = add i32 %13, 1072693248 %15 = call double @llvm.nvvm.lohi.i2d(i32 noundef 0, i32 %14) #138 %16 = fmul double %15, %a br label %43 17: ; preds = %9 %18 = icmp ult i32 %10, 2044 br i1 %18, label %19, label %30 19: ; preds = %17 %.lhs.trunc = trunc i32 %max to i16 %20 = sdiv i16 %.lhs.trunc, 2 %.sext = sext i16 %20 to i32 %21 = shl nsw i32 %.sext, 20 %22 = add i32 %21, 1072693248 %23 = call double @llvm.nvvm.lohi.i2d(i32 noundef 0, i32 %22) #138 %24 = fmul double %23, %a %25 = sub nsw i32 %max, %.sext %26 = shl i32 %25, 20 %27 = add i32 %26, 1072693248 %28 = call double @llvm.nvvm.lohi.i2d(i32 noundef 0, i32 %27) #138 %29 = fmul double %24, %28 br label %43 30: ; preds = %17 %.lhs.trunc3 = trunc i32 %max to i16 %31 = sdiv i16 %.lhs.trunc3, 4 %.sext4 = sext i16 %31 to i32 %32 = shl nsw i32 %.sext4, 20 %33 = add nsw i32 %32, 1072693248 %34 = call double @llvm.nvvm.lohi.i2d(i32 noundef 0, i32 %33) #138 %35 = fmul double %34, %a %36 = fmul double %34, %35 %37 = fmul double %34, %36 %.neg = mul nsw i32 %.sext4, -3 %38 = add nsw i32 %.neg, %max %39 = shl i32 %38, 20 %40 = add i32 %39, 1072693248 %41 = call double @llvm.nvvm.lohi.i2d(i32 noundef 0, i32 %40) #138 %42 = fmul double %41, %37 br label %43 43: ; preds = %12, %30, %19, %6 %.3 = phi double [ %.0, %6 ], [ %16, %12 ], [ %29, %19 ], [ %42, %30 ] ret double %.3 } ; Function Attrs: nofree noinline nosync nounwind readnone willreturn define dso_local double @__nv_scalbn(double %a, i32 %b) local_unnamed_addr #120 { %1 = call double @llvm.fabs.f64(double %a) #136 %2 = icmp slt i32 %b, 2200 %min = select i1 %2, i32 %b, i32 2200 %max.cond.inv = icmp sgt i32 %min, -2200 %max = select i1 %max.cond.inv, i32 %min, i32 -2200 %3 = fcmp oeq double %a, 0.000000e+00 %4 = fcmp oeq double %1, 0x7FF0000000000000 %or.cond = or i1 %3, %4 %5 = icmp eq i32 %max, 0 %or.cond2 = select i1 %or.cond, i1 true, i1 %5 br i1 %or.cond2, label %6, label %9 6: ; preds = %0 %7 = fcmp one double %a, 0.000000e+00 %8 = select i1 %7, double -0.000000e+00, double %a %.0 = fadd double %8, %a br label %__nv_ldexp.exit 9: ; preds = %0 %10 = call i32 @llvm.abs.i32(i32 %max, i1 noundef true) #136 %11 = icmp ult i32 %10, 1022 br i1 %11, label %12, label %17 12: ; preds = %9 %13 = shl i32 %max, 20 %14 = add i32 %13, 1072693248 %15 = call double @llvm.nvvm.lohi.i2d(i32 noundef 0, i32 %14) #138 %16 = fmul double %15, %a br label %__nv_ldexp.exit 17: ; preds = %9 %18 = icmp ult i32 %10, 2044 br i1 %18, label %19, label %30 19: ; preds = %17 %.lhs.trunc = trunc i32 %max to i16 %20 = sdiv i16 %.lhs.trunc, 2 %.sext = sext i16 %20 to i32 %21 = shl nsw i32 %.sext, 20 %22 = add i32 %21, 1072693248 %23 = call double @llvm.nvvm.lohi.i2d(i32 noundef 0, i32 %22) #138 %24 = fmul double %23, %a %25 = sub nsw i32 %max, %.sext %26 = shl i32 %25, 20 %27 = add i32 %26, 1072693248 %28 = call double @llvm.nvvm.lohi.i2d(i32 noundef 0, i32 %27) #138 %29 = fmul double %24, %28 br label %__nv_ldexp.exit 30: ; preds = %17 %.lhs.trunc3 = trunc i32 %max to i16 %31 = sdiv i16 %.lhs.trunc3, 4 %.sext4 = sext i16 %31 to i32 %32 = shl nsw i32 %.sext4, 20 %33 = add nsw i32 %32, 1072693248 %34 = call double @llvm.nvvm.lohi.i2d(i32 noundef 0, i32 %33) #138 %35 = fmul double %34, %a %36 = fmul double %34, %35 %37 = fmul double %34, %36 %.neg = mul nsw i32 %.sext4, -3 %38 = add nsw i32 %.neg, %max %39 = shl i32 %38, 20 %40 = add i32 %39, 1072693248 %41 = call double @llvm.nvvm.lohi.i2d(i32 noundef 0, i32 %40) #138 %42 = fmul double %41, %37 br label %__nv_ldexp.exit __nv_ldexp.exit: ; preds = %12, %30, %19, %6 %.3 = phi double [ %.0, %6 ], [ %16, %12 ], [ %29, %19 ], [ %42, %30 ] ret double %.3 } ; Function Attrs: argmemonly nofree noinline nosync nounwind willreturn writeonly define dso_local double @__nv_frexp(double %a, i32* nocapture nofree nonnull writeonly align 4 dereferenceable(4) %b) local_unnamed_addr #121 { %1 = call i32 @llvm.nvvm.d2i.hi(double %a) #138 %2 = and i32 %1, 2146435072 %3 = icmp eq i32 %2, 0 %4 = fmul double %a, 0x4350000000000000 %5 = call i32 @llvm.nvvm.d2i.hi(double %4) #138 %6 = and i32 %5, 2146435072 %7 = add nsw i32 %6, -56623104 %.0 = select i1 %3, double %4, double %a %expo.0 = select i1 %3, i32 %7, i32 %2 %8 = fcmp oeq double %.0, 0.000000e+00 %9 = icmp eq i32 %expo.0, 2146435072 %or.cond = select i1 %8, i1 true, i1 %9 br i1 %or.cond, label %10, label %12 10: ; preds = %0 %11 = fadd double %.0, %.0 br label %19 12: ; preds = %0 %13 = bitcast double %.0 to i64 %14 = and i64 %13, -9218868437227405313 %15 = or i64 %14, 4602678819172646912 %16 = bitcast i64 %15 to double %17 = add nsw i32 %expo.0, -1071644672 %18 = ashr exact i32 %17, 20 br label %19 19: ; preds = %12, %10 %.1 = phi double [ %11, %10 ], [ %16, %12 ] %expo.1 = phi i32 [ 0, %10 ], [ %18, %12 ] store i32 %expo.1, i32* %b, align 4, !noalias !219 ret double %.1 } ; Function Attrs: noinline nounwind define dso_local double @__nv_modf(double %a, double* nocapture nofree writeonly %b) local_unnamed_addr #122 { %1 = call i32 @llvm.nvvm.d2i.hi(double %a) #138 %2 = and i32 %1, 2146435072 %.not = icmp eq i32 %2, 2146435072 br i1 %.not, label %11, label %3 3: ; preds = %0 %4 = call double @llvm.trunc.f64(double %a) #136 store double %4, double* %b, align 8, !noalias !219 %5 = fsub double %a, %4 %6 = call i32 @llvm.nvvm.d2i.lo(double %5) #138 %7 = call i32 @llvm.nvvm.d2i.hi(double %5) #138 %8 = and i32 %1, -2147483648 %9 = or i32 %7, %8 %10 = call double @llvm.nvvm.lohi.i2d(i32 %6, i32 %9) #138 br label %37 11: ; preds = %0 %12 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([12 x i8], [12 x i8]* @.str.1, i32 0, i32 0)) #135 %13 = icmp eq i32 %12, 200 br i1 %13, label %20, label %14 14: ; preds = %11 %15 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([12 x i8], [12 x i8]* @.str.1, i32 0, i32 0)) #135 %16 = icmp eq i32 %15, 350 br i1 %16, label %20, label %17 17: ; preds = %14 %18 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([12 x i8], [12 x i8]* @.str.1, i32 0, i32 0)) #135 %19 = icmp eq i32 %18, 370 br i1 %19, label %20, label %23 20: ; preds = %17, %14, %11 %21 = call double @llvm.fabs.f64(double %a) %22 = fcmp oeq double %21, 0x7FF0000000000000 br label %__nv_isinfd.exit 23: ; preds = %17 %24 = call i32 @llvm.nvvm.d2i.lo(double %a) #135 %25 = and i32 %1, 2147483647 %26 = icmp eq i32 %25, 2146435072 %27 = icmp eq i32 %24, 0 %28 = select i1 %26, i1 %27, i1 false br label %__nv_isinfd.exit __nv_isinfd.exit: ; preds = %23, %20 %.01.in = phi i1 [ %22, %20 ], [ %28, %23 ] br i1 %.01.in, label %29, label %35 29: ; preds = %__nv_isinfd.exit store double %a, double* %b, align 8, !noalias !219 %30 = call i32 @llvm.nvvm.d2i.lo(double noundef 0.000000e+00) #135 %31 = call i32 @llvm.nvvm.d2i.hi(double noundef 0.000000e+00) #135 %32 = and i32 %1, -2147483648 %33 = or i32 %32, %31 %34 = call double @llvm.nvvm.lohi.i2d(i32 %30, i32 %33) #135 br label %37 35: ; preds = %__nv_isinfd.exit %36 = fadd double %a, %a store double %36, double* %b, align 8, !noalias !219 br label %37 37: ; preds = %29, %35, %3 %.1 = phi double [ %10, %3 ], [ %34, %29 ], [ %36, %35 ] ret double %.1 } ; Function Attrs: noinline nounwind define dso_local double @__nv_fmod(double %a, double %b) local_unnamed_addr #123 { %1 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([12 x i8], [12 x i8]* @.str.1, i32 0, i32 0)) #135 %2 = icmp eq i32 %1, 200 br i1 %2, label %9, label %3 3: ; preds = %0 %4 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([12 x i8], [12 x i8]* @.str.1, i32 0, i32 0)) #135 %5 = icmp eq i32 %4, 350 br i1 %5, label %9, label %6 6: ; preds = %3 %7 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([12 x i8], [12 x i8]* @.str.1, i32 0, i32 0)) #135 %8 = icmp eq i32 %7, 370 br i1 %8, label %9, label %60 9: ; preds = %6, %3, %0 %10 = call i32 @llvm.nvvm.d2i.hi(double %a) #135 %11 = and i32 %10, 2147483647 %12 = call i32 @llvm.nvvm.d2i.lo(double %a) #135 %13 = call i32 @llvm.nvvm.d2i.hi(double %b) #135 %14 = and i32 %13, 2147483647 %15 = call i32 @llvm.nvvm.d2i.lo(double %b) #135 %16 = call double @llvm.nvvm.lohi.i2d(i32 %12, i32 %11) #135 %17 = call double @llvm.nvvm.lohi.i2d(i32 %15, i32 %14) #135 %18 = icmp ugt i32 %11, 2146435071 %19 = icmp ugt i32 %14, 2146435071 %or.cond = select i1 %18, i1 true, i1 %19 br i1 %or.cond, label %20, label %27 20: ; preds = %9 %21 = fcmp ole double %16, 0x7FF0000000000000 %22 = fcmp ole double %17, 0x7FF0000000000000 %or.cond2 = select i1 %21, i1 %22, i1 false br i1 %or.cond2, label %25, label %23 23: ; preds = %20 %24 = fadd double %a, %b br label %146 25: ; preds = %20 %26 = fcmp oeq double %16, 0x7FF0000000000000 %.01 = select i1 %26, double 0xFFF8000000000000, double %a br label %146 27: ; preds = %9 %28 = fcmp oeq double %17, 0.000000e+00 br i1 %28, label %146, label %29 29: ; preds = %27 %30 = fcmp ult double %16, %17 br i1 %30, label %146, label %31 31: ; preds = %29 %32 = call i32 @llvm.nvvm.d2i.hi(double %17) #135 %33 = icmp slt i32 %32, 1048576 br i1 %33, label %.preheader, label %41 .preheader: ; preds = %31 %34 = fcmp olt double %17, %16 br i1 %34, label %.lr.ph9, label %._crit_edge10 .lr.ph9: ; preds = %.preheader, %.lr.ph9 %t.08 = phi double [ %35, %.lr.ph9 ], [ %17, %.preheader ] %35 = fadd double %t.08, %t.08 %36 = fcmp olt double %35, %16 %37 = call i32 @llvm.nvvm.d2i.hi(double %35) #135 %38 = icmp slt i32 %37, 1048576 %39 = select i1 %36, i1 %38, i1 false br i1 %39, label %.lr.ph9, label %._crit_edge10 ._crit_edge10: ; preds = %.lr.ph9, %.preheader %t.0.lcssa = phi double [ %17, %.preheader ], [ %35, %.lr.ph9 ] %.lcssa = phi i32 [ %32, %.preheader ], [ %37, %.lr.ph9 ] %40 = call i32 @llvm.nvvm.d2i.lo(double %t.0.lcssa) #135 br label %41 41: ; preds = %._crit_edge10, %31 %bhi.0 = phi i32 [ %.lcssa, %._crit_edge10 ], [ %14, %31 ] %blo.0 = phi i32 [ %40, %._crit_edge10 ], [ %15, %31 ] %scaled_b.0 = phi double [ %t.0.lcssa, %._crit_edge10 ], [ 0.000000e+00, %31 ] %42 = call i32 @llvm.nvvm.d2i.hi(double %16) #135 %43 = icmp sgt i32 %42, 1048575 %44 = and i32 %bhi.0, 1048575 %45 = and i32 %10, 2146435072 %46 = or i32 %44, %45 %47 = call double @llvm.nvvm.lohi.i2d(i32 %blo.0, i32 %46) #135 %scaled_b.1 = select i1 %43, double %47, double %scaled_b.0 %48 = fcmp ogt double %scaled_b.1, %16 %49 = fmul double %scaled_b.1, 5.000000e-01 %scaled_b.2 = select i1 %48, double %49, double %scaled_b.1 %50 = fcmp ult double %scaled_b.2, %17 br i1 %50, label %55, label %.lr.ph .lr.ph: ; preds = %41, %.lr.ph %scaled_b.37 = phi double [ %53, %.lr.ph ], [ %scaled_b.2, %41 ] %.26 = phi double [ %.3, %.lr.ph ], [ %16, %41 ] %51 = fcmp oge double %.26, %scaled_b.37 %52 = select i1 %51, double %scaled_b.37, double 0.000000e+00 %.3 = fsub double %.26, %52 %53 = fmul double %scaled_b.37, 5.000000e-01 %54 = fcmp ult double %53, %17 br i1 %54, label %._crit_edge, label %.lr.ph ._crit_edge: ; preds = %.lr.ph %.pre = call i32 @llvm.nvvm.d2i.hi(double %.3) #135 br label %55 55: ; preds = %._crit_edge, %41 %.pre-phi = phi i32 [ %.pre, %._crit_edge ], [ %42, %41 ] %.2.lcssa = phi double [ %.3, %._crit_edge ], [ %16, %41 ] %56 = call i32 @llvm.nvvm.d2i.lo(double %.2.lcssa) #135 %57 = and i32 %10, -2147483648 %58 = or i32 %.pre-phi, %57 %59 = call double @llvm.nvvm.lohi.i2d(i32 %56, i32 %58) #135 br label %146 60: ; preds = %6 %61 = call i32 @llvm.nvvm.d2i.hi(double %a) #135 %62 = and i32 %61, 2147483647 %63 = call i32 @llvm.nvvm.d2i.lo(double %a) #135 %64 = call i32 @llvm.nvvm.d2i.hi(double %b) #135 %65 = and i32 %64, 2147483647 %66 = call i32 @llvm.nvvm.d2i.lo(double %b) #135 %67 = call double @llvm.nvvm.lohi.i2d(i32 %63, i32 %62) #135 %68 = call double @llvm.nvvm.lohi.i2d(i32 %66, i32 %65) #135 %69 = icmp ugt i32 %62, 2146435071 %70 = icmp ugt i32 %65, 2146435071 %or.cond3 = select i1 %69, i1 true, i1 %70 br i1 %or.cond3, label %71, label %78 71: ; preds = %60 %72 = fcmp ole double %67, 0x7FF0000000000000 %73 = fcmp ole double %68, 0x7FF0000000000000 %or.cond5 = select i1 %72, i1 %73, i1 false br i1 %or.cond5, label %76, label %74 74: ; preds = %71 %75 = fadd double %a, %b br label %146 76: ; preds = %71 %77 = fcmp oeq double %67, 0x7FF0000000000000 %.7 = select i1 %77, double 0xFFF8000000000000, double %a br label %146 78: ; preds = %60 %79 = fcmp oeq double %68, 0.000000e+00 br i1 %79, label %146, label %80 80: ; preds = %78 %81 = fcmp ult double %67, %68 br i1 %81, label %146, label %82 82: ; preds = %80 %83 = call i32 @llvm.nvvm.d2i.hi(double %67) #135 %84 = lshr i32 %83, 20 %85 = call i32 @llvm.nvvm.d2i.hi(double %68) #135 %86 = lshr i32 %85, 20 %87 = icmp ult i32 %83, 1048576 br i1 %87, label %88, label %94 88: ; preds = %82 %89 = fmul double %67, 0x4350000000000000 %90 = call i32 @llvm.nvvm.d2i.hi(double %89) #135 %91 = lshr i32 %90, 20 %92 = add nsw i32 %84, -54 %93 = add nsw i32 %92, %91 br label %94 94: ; preds = %88, %82 %.9 = phi double [ %89, %88 ], [ %67, %82 ] %expoa.0 = phi i32 [ %93, %88 ], [ %84, %82 ] %95 = icmp ult i32 %85, 1048576 br i1 %95, label %96, label %102 96: ; preds = %94 %97 = fmul double %68, 0x4350000000000000 %98 = call i32 @llvm.nvvm.d2i.hi(double %97) #135 %99 = lshr i32 %98, 20 %100 = add nsw i32 %86, -54 %101 = add nsw i32 %100, %99 br label %102 102: ; preds = %96, %94 %.0 = phi double [ %97, %96 ], [ %68, %94 ] %expob.0 = phi i32 [ %101, %96 ], [ %86, %94 ] %103 = bitcast double %.9 to i64 %104 = bitcast double %.0 to i64 %105 = and i64 %103, 4503599627370495 %106 = or i64 %105, 4503599627370496 %107 = and i64 %104, 4503599627370495 %108 = or i64 %107, 4503599627370496 %109 = sub nsw i32 %expoa.0, %expob.0 br label %110 110: ; preds = %110, %102 %ia.0 = phi i64 [ %106, %102 ], [ %115, %110 ] %expob.1 = phi i32 [ %109, %102 ], [ %116, %110 ] %111 = sub i64 %ia.0, %108 %112 = bitcast i64 %111 to double %113 = call i32 @llvm.nvvm.d2i.hi(double %112) #135 %114 = icmp slt i32 %113, 0 %spec.select = select i1 %114, i64 %ia.0, i64 %111 %115 = shl i64 %spec.select, 1 %116 = add nsw i32 %expob.1, -1 %117 = icmp sgt i32 %expob.1, 0 br i1 %117, label %110, label %118 118: ; preds = %110 %119 = and i64 %spec.select, 9223372036854775807 %.not = icmp eq i64 %119, 0 br i1 %.not, label %139, label %120 120: ; preds = %118 %121 = bitcast i64 %119 to double %122 = fmul double %121, 0x4350000000000000 %123 = call i32 @llvm.nvvm.d2i.hi(double %122) #135 %124 = lshr i32 %123, 20 %125 = sub nsw i32 55, %124 %126 = sub nsw i32 %expob.0, %125 %127 = zext i32 %125 to i64 %128 = shl i64 %119, %127 %129 = icmp slt i32 %126, 1 br i1 %129, label %130, label %134 130: ; preds = %120 %131 = sub nsw i32 1, %126 %132 = zext i32 %131 to i64 %133 = lshr i64 %128, %132 br label %139 134: ; preds = %120 %135 = add nuw nsw i32 %126, 4095 %136 = zext i32 %135 to i64 %137 = shl i64 %136, 52 %138 = add i64 %137, %128 br label %139 139: ; preds = %130, %134, %118 %ia.3 = phi i64 [ 0, %118 ], [ %133, %130 ], [ %138, %134 ] %140 = bitcast i64 %ia.3 to double %141 = call i32 @llvm.nvvm.d2i.lo(double %140) #135 %142 = call i32 @llvm.nvvm.d2i.hi(double %140) #135 %143 = and i32 %61, -2147483648 %144 = or i32 %142, %143 %145 = call double @llvm.nvvm.lohi.i2d(i32 %141, i32 %144) #135 br label %146 146: ; preds = %78, %27, %76, %74, %139, %80, %25, %23, %55, %29 %.02 = phi double [ %.01, %25 ], [ %24, %23 ], [ %59, %55 ], [ %a, %29 ], [ %.7, %76 ], [ %75, %74 ], [ %145, %139 ], [ %a, %80 ], [ 0xFFF8000000000000, %27 ], [ 0xFFF8000000000000, %78 ] ret double %.02 } ; Function Attrs: noinline nounwind define dso_local double @__nv_remainder(double %a, double %b) local_unnamed_addr #124 { %1 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([12 x i8], [12 x i8]* @.str.1, i32 0, i32 0)) #135 %2 = icmp eq i32 %1, 200 br i1 %2, label %9, label %3 3: ; preds = %0 %4 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([12 x i8], [12 x i8]* @.str.1, i32 0, i32 0)) #135 %5 = icmp eq i32 %4, 350 br i1 %5, label %9, label %6 6: ; preds = %3 %7 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([12 x i8], [12 x i8]* @.str.1, i32 0, i32 0)) #135 %8 = icmp eq i32 %7, 370 br i1 %8, label %9, label %70 9: ; preds = %6, %3, %0 %10 = call i32 @llvm.nvvm.d2i.hi(double %a) #135 %11 = and i32 %10, 2147483647 %12 = call i32 @llvm.nvvm.d2i.lo(double %a) #135 %13 = call i32 @llvm.nvvm.d2i.hi(double %b) #135 %14 = and i32 %13, 2147483647 %15 = call i32 @llvm.nvvm.d2i.lo(double %b) #135 %16 = call double @llvm.nvvm.lohi.i2d(i32 %12, i32 %11) #135 %17 = call double @llvm.nvvm.lohi.i2d(i32 %15, i32 %14) #135 %18 = icmp ugt i32 %11, 2146435071 %19 = icmp ugt i32 %14, 2146435071 %or.cond = select i1 %18, i1 true, i1 %19 br i1 %or.cond, label %20, label %27 20: ; preds = %9 %21 = fcmp ole double %16, 0x7FF0000000000000 %22 = fcmp ole double %17, 0x7FF0000000000000 %or.cond2 = select i1 %21, i1 %22, i1 false br i1 %or.cond2, label %25, label %23 23: ; preds = %20 %24 = fadd double %a, %b br label %165 25: ; preds = %20 %26 = fcmp oeq double %16, 0x7FF0000000000000 %.0 = select i1 %26, double 0xFFF8000000000000, double %a br label %165 27: ; preds = %9 %28 = fcmp oeq double %17, 0.000000e+00 br i1 %28, label %165, label %29 29: ; preds = %27 %30 = fcmp ult double %16, %17 br i1 %30, label %56, label %31 31: ; preds = %29 %32 = call i32 @llvm.nvvm.d2i.hi(double %17) #135 %33 = icmp slt i32 %32, 1048576 br i1 %33, label %.preheader, label %41 .preheader: ; preds = %31 %34 = fcmp olt double %17, %16 br i1 %34, label %.lr.ph16, label %._crit_edge17 .lr.ph16: ; preds = %.preheader, %.lr.ph16 %t.015 = phi double [ %35, %.lr.ph16 ], [ %17, %.preheader ] %35 = fadd double %t.015, %t.015 %36 = fcmp olt double %35, %16 %37 = call i32 @llvm.nvvm.d2i.hi(double %35) #135 %38 = icmp slt i32 %37, 1048576 %39 = select i1 %36, i1 %38, i1 false br i1 %39, label %.lr.ph16, label %._crit_edge17 ._crit_edge17: ; preds = %.lr.ph16, %.preheader %t.0.lcssa = phi double [ %17, %.preheader ], [ %35, %.lr.ph16 ] %.lcssa = phi i32 [ %32, %.preheader ], [ %37, %.lr.ph16 ] %40 = call i32 @llvm.nvvm.d2i.lo(double %t.0.lcssa) #135 br label %41 41: ; preds = %._crit_edge17, %31 %bhi.0 = phi i32 [ %.lcssa, %._crit_edge17 ], [ %14, %31 ] %blo.0 = phi i32 [ %40, %._crit_edge17 ], [ %15, %31 ] %scaled_b.0 = phi double [ %t.0.lcssa, %._crit_edge17 ], [ 0.000000e+00, %31 ] %42 = call i32 @llvm.nvvm.d2i.hi(double %16) #135 %43 = icmp sgt i32 %42, 1048575 %44 = and i32 %bhi.0, 1048575 %45 = and i32 %10, 2146435072 %46 = or i32 %44, %45 %47 = call double @llvm.nvvm.lohi.i2d(i32 %blo.0, i32 %46) #135 %scaled_b.1 = select i1 %43, double %47, double %scaled_b.0 %48 = fcmp ogt double %scaled_b.1, %16 %49 = fmul double %scaled_b.1, 5.000000e-01 %scaled_b.2 = select i1 %48, double %49, double %scaled_b.1 %50 = fcmp ult double %scaled_b.2, %17 br i1 %50, label %56, label %.lr.ph .lr.ph: ; preds = %41, %.lr.ph %scaled_b.312 = phi double [ %53, %.lr.ph ], [ %scaled_b.2, %41 ] %.211 = phi double [ %.3, %.lr.ph ], [ %16, %41 ] %51 = fcmp oge double %.211, %scaled_b.312 %52 = select i1 %51, double %scaled_b.312, double 0.000000e+00 %.3 = fsub double %.211, %52 %53 = fmul double %scaled_b.312, 5.000000e-01 %54 = fcmp ult double %53, %17 br i1 %54, label %._crit_edge, label %.lr.ph ._crit_edge: ; preds = %.lr.ph %55 = zext i1 %51 to i32 br label %56 56: ; preds = %41, %._crit_edge, %29 %.4 = phi double [ %16, %29 ], [ %.3, %._crit_edge ], [ %16, %41 ] %quot.0 = phi i32 [ 0, %29 ], [ %55, %._crit_edge ], [ 0, %41 ] %57 = fadd double %.4, %.4 %58 = fcmp ogt double %57, %17 br i1 %58, label %62, label %59 59: ; preds = %56 %60 = fcmp oeq double %57, %17 %61 = icmp ne i32 %quot.0, 0 %or.cond4 = select i1 %60, i1 %61, i1 false br i1 %or.cond4, label %62, label %64 62: ; preds = %59, %56 %63 = fsub double %.4, %17 br label %64 64: ; preds = %62, %59 %.5 = phi double [ %63, %62 ], [ %.4, %59 ] %65 = call i32 @llvm.nvvm.d2i.hi(double %.5) #135 %66 = call i32 @llvm.nvvm.d2i.lo(double %.5) #135 %67 = and i32 %10, -2147483648 %68 = xor i32 %65, %67 %69 = call double @llvm.nvvm.lohi.i2d(i32 %66, i32 %68) #135 br label %165 70: ; preds = %6 %71 = call i32 @llvm.nvvm.d2i.hi(double %a) #135 %72 = and i32 %71, 2147483647 %73 = call i32 @llvm.nvvm.d2i.lo(double %a) #135 %74 = call i32 @llvm.nvvm.d2i.hi(double %b) #135 %75 = and i32 %74, 2147483647 %76 = call i32 @llvm.nvvm.d2i.lo(double %b) #135 %77 = call double @llvm.nvvm.lohi.i2d(i32 %73, i32 %72) #135 %78 = call double @llvm.nvvm.lohi.i2d(i32 %76, i32 %75) #135 %79 = icmp ugt i32 %72, 2146435071 %80 = icmp ugt i32 %75, 2146435071 %or.cond5 = select i1 %79, i1 true, i1 %80 br i1 %or.cond5, label %81, label %88 81: ; preds = %70 %82 = fcmp ole double %77, 0x7FF0000000000000 %83 = fcmp ole double %78, 0x7FF0000000000000 %or.cond7 = select i1 %82, i1 %83, i1 false br i1 %or.cond7, label %86, label %84 84: ; preds = %81 %85 = fadd double %a, %b br label %165 86: ; preds = %81 %87 = fcmp oeq double %77, 0x7FF0000000000000 %.8 = select i1 %87, double 0xFFF8000000000000, double %a br label %165 88: ; preds = %70 %89 = fcmp oeq double %78, 0.000000e+00 br i1 %89, label %165, label %90 90: ; preds = %88 %91 = fcmp ult double %77, %78 br i1 %91, label %151, label %92 92: ; preds = %90 %93 = call i32 @llvm.nvvm.d2i.hi(double %77) #135 %94 = lshr i32 %93, 20 %95 = call i32 @llvm.nvvm.d2i.hi(double %78) #135 %96 = lshr i32 %95, 20 %97 = icmp ult i32 %93, 1048576 br i1 %97, label %98, label %104 98: ; preds = %92 %99 = fmul double %77, 0x4350000000000000 %100 = call i32 @llvm.nvvm.d2i.hi(double %99) #135 %101 = lshr i32 %100, 20 %102 = add nsw i32 %94, -54 %103 = add nsw i32 %102, %101 br label %104 104: ; preds = %98, %92 %.10 = phi double [ %99, %98 ], [ %77, %92 ] %expoa.0 = phi i32 [ %103, %98 ], [ %94, %92 ] %105 = icmp ult i32 %95, 1048576 br i1 %105, label %106, label %112 106: ; preds = %104 %107 = fmul double %78, 0x4350000000000000 %108 = call i32 @llvm.nvvm.d2i.hi(double %107) #135 %109 = lshr i32 %108, 20 %110 = add nsw i32 %96, -54 %111 = add nsw i32 %110, %109 br label %112 112: ; preds = %106, %104 %t7.0 = phi double [ %107, %106 ], [ %78, %104 ] %expob.0 = phi i32 [ %111, %106 ], [ %96, %104 ] %113 = bitcast double %.10 to i64 %114 = bitcast double %t7.0 to i64 %115 = and i64 %113, 4503599627370495 %116 = or i64 %115, 4503599627370496 %117 = and i64 %114, 4503599627370495 %118 = or i64 %117, 4503599627370496 %119 = sub nsw i32 %expoa.0, %expob.0 br label %120 120: ; preds = %120, %112 %ia.0 = phi i64 [ %116, %112 ], [ %125, %120 ] %expob.1 = phi i32 [ %119, %112 ], [ %126, %120 ] %121 = sub i64 %ia.0, %118 %122 = bitcast i64 %121 to double %123 = call i32 @llvm.nvvm.d2i.hi(double %122) #135 %124 = and i32 %123, -2147483648 %.not = icmp eq i32 %124, 0 %spec.select = select i1 %.not, i64 %121, i64 %ia.0 %125 = shl i64 %spec.select, 1 %126 = add nsw i32 %expob.1, -1 %127 = icmp sgt i32 %expob.1, 0 br i1 %127, label %120, label %128 128: ; preds = %120 %129 = and i64 %spec.select, 9223372036854775807 %.not9 = icmp eq i64 %129, 0 br i1 %.not9, label %149, label %130 130: ; preds = %128 %131 = bitcast i64 %129 to double %132 = fmul double %131, 0x4350000000000000 %133 = call i32 @llvm.nvvm.d2i.hi(double %132) #135 %134 = lshr i32 %133, 20 %135 = sub nsw i32 55, %134 %136 = sub nsw i32 %expob.0, %135 %137 = zext i32 %135 to i64 %138 = shl i64 %129, %137 %139 = icmp slt i32 %136, 1 br i1 %139, label %140, label %144 140: ; preds = %130 %141 = sub nsw i32 1, %136 %142 = zext i32 %141 to i64 %143 = lshr i64 %138, %142 br label %149 144: ; preds = %130 %145 = add nuw nsw i32 %136, 4095 %146 = zext i32 %145 to i64 %147 = shl i64 %146, 52 %148 = add i64 %147, %138 br label %149 149: ; preds = %140, %144, %128 %ia.3 = phi i64 [ 0, %128 ], [ %143, %140 ], [ %148, %144 ] %150 = bitcast i64 %ia.3 to double br label %151 151: ; preds = %149, %90 %.11 = phi double [ %150, %149 ], [ %77, %90 ] %nquot0.0 = phi i32 [ %124, %149 ], [ 1, %90 ] %152 = fadd double %.11, %.11 %153 = fcmp ogt double %152, %78 br i1 %153, label %157, label %154 154: ; preds = %151 %155 = fcmp une double %152, %78 %156 = icmp ne i32 %nquot0.0, 0 %or.cond8 = select i1 %155, i1 true, i1 %156 br i1 %or.cond8, label %159, label %157 157: ; preds = %154, %151 %158 = fsub double %.11, %78 br label %159 159: ; preds = %157, %154 %.12 = phi double [ %158, %157 ], [ %.11, %154 ] %160 = and i32 %71, -2147483648 %161 = call i32 @llvm.nvvm.d2i.hi(double %.12) #135 %162 = xor i32 %161, %160 %163 = call i32 @llvm.nvvm.d2i.lo(double %.12) #135 %164 = call double @llvm.nvvm.lohi.i2d(i32 %163, i32 %162) #135 br label %165 165: ; preds = %88, %27, %86, %84, %159, %25, %23, %64 %.01 = phi double [ %.0, %25 ], [ %24, %23 ], [ %69, %64 ], [ %.8, %86 ], [ %85, %84 ], [ %164, %159 ], [ 0xFFF8000000000000, %27 ], [ 0xFFF8000000000000, %88 ] ret double %.01 } ; Function Attrs: noinline nounwind define dso_local double @__nv_remquo(double %a, double %b, i32* nocapture nofree writeonly %c) local_unnamed_addr #125 { %1 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([12 x i8], [12 x i8]* @.str.1, i32 0, i32 0)) #135 %2 = icmp eq i32 %1, 200 br i1 %2, label %9, label %3 3: ; preds = %0 %4 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([12 x i8], [12 x i8]* @.str.1, i32 0, i32 0)) #135 %5 = icmp eq i32 %4, 350 br i1 %5, label %9, label %6 6: ; preds = %3 %7 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([12 x i8], [12 x i8]* @.str.1, i32 0, i32 0)) #135 %8 = icmp eq i32 %7, 370 br i1 %8, label %9, label %77 9: ; preds = %6, %3, %0 %10 = call i32 @llvm.nvvm.d2i.hi(double %a) #135 %11 = call i32 @llvm.nvvm.d2i.hi(double %b) #135 %12 = xor i32 %11, %10 %.lobit.neg11 = ashr i32 %12, 31 %13 = and i32 %10, 2147483647 %14 = call i32 @llvm.nvvm.d2i.lo(double %a) #135 %15 = and i32 %11, 2147483647 %16 = call i32 @llvm.nvvm.d2i.lo(double %b) #135 %17 = call double @llvm.nvvm.lohi.i2d(i32 %14, i32 %13) #135 %18 = call double @llvm.nvvm.lohi.i2d(i32 %16, i32 %15) #135 %19 = icmp ugt i32 %13, 2146435071 %20 = icmp ugt i32 %15, 2146435071 %or.cond = select i1 %19, i1 true, i1 %20 br i1 %or.cond, label %21, label %28 21: ; preds = %9 %22 = fcmp ole double %17, 0x7FF0000000000000 %23 = fcmp ole double %18, 0x7FF0000000000000 %or.cond2 = select i1 %22, i1 %23, i1 false br i1 %or.cond2, label %26, label %24 24: ; preds = %21 %25 = fadd double %a, %b br label %178 26: ; preds = %21 %27 = fcmp oeq double %17, 0x7FF0000000000000 %.0 = select i1 %27, double 0xFFF8000000000000, double %a br label %178 28: ; preds = %9 %29 = fcmp oeq double %18, 0.000000e+00 br i1 %29, label %178, label %30 30: ; preds = %28 %31 = fcmp ult double %17, %18 br i1 %31, label %58, label %32 32: ; preds = %30 %33 = call i32 @llvm.nvvm.d2i.hi(double %18) #135 %34 = icmp slt i32 %33, 1048576 br i1 %34, label %.preheader, label %42 .preheader: ; preds = %32 %35 = fcmp olt double %18, %17 br i1 %35, label %.lr.ph18, label %._crit_edge19 .lr.ph18: ; preds = %.preheader, %.lr.ph18 %t.017 = phi double [ %36, %.lr.ph18 ], [ %18, %.preheader ] %36 = fadd double %t.017, %t.017 %37 = fcmp olt double %36, %17 %38 = call i32 @llvm.nvvm.d2i.hi(double %36) #135 %39 = icmp slt i32 %38, 1048576 %40 = select i1 %37, i1 %39, i1 false br i1 %40, label %.lr.ph18, label %._crit_edge19 ._crit_edge19: ; preds = %.lr.ph18, %.preheader %t.0.lcssa = phi double [ %18, %.preheader ], [ %36, %.lr.ph18 ] %.lcssa = phi i32 [ %33, %.preheader ], [ %38, %.lr.ph18 ] %41 = call i32 @llvm.nvvm.d2i.lo(double %t.0.lcssa) #135 br label %42 42: ; preds = %._crit_edge19, %32 %bhi.0 = phi i32 [ %.lcssa, %._crit_edge19 ], [ %15, %32 ] %blo.0 = phi i32 [ %41, %._crit_edge19 ], [ %16, %32 ] %scaled_b.0 = phi double [ %t.0.lcssa, %._crit_edge19 ], [ 0.000000e+00, %32 ] %43 = call i32 @llvm.nvvm.d2i.hi(double %17) #135 %44 = icmp sgt i32 %43, 1048575 %45 = and i32 %bhi.0, 1048575 %46 = and i32 %10, 2146435072 %47 = or i32 %45, %46 %48 = call double @llvm.nvvm.lohi.i2d(i32 %blo.0, i32 %47) #135 %scaled_b.1 = select i1 %44, double %48, double %scaled_b.0 %49 = fcmp ogt double %scaled_b.1, %17 %50 = fmul double %scaled_b.1, 5.000000e-01 %scaled_b.2 = select i1 %49, double %50, double %scaled_b.1 %51 = fcmp ult double %scaled_b.2, %18 br i1 %51, label %58, label %.lr.ph .lr.ph: ; preds = %42, %.lr.ph %nquot.015 = phi i32 [ %nquot.1, %.lr.ph ], [ -1, %42 ] %scaled_b.314 = phi double [ %56, %.lr.ph ], [ %scaled_b.2, %42 ] %.213 = phi double [ %.3, %.lr.ph ], [ %17, %42 ] %52 = shl i32 %nquot.015, 1 %53 = fcmp oge double %.213, %scaled_b.314 %54 = select i1 %53, double %scaled_b.314, double 0.000000e+00 %.3 = fsub double %.213, %54 %not. = xor i1 %53, true %55 = zext i1 %not. to i32 %nquot.1 = or i32 %52, %55 %56 = fmul double %scaled_b.314, 5.000000e-01 %57 = fcmp ult double %56, %18 br i1 %57, label %._crit_edge, label %.lr.ph ._crit_edge: ; preds = %.lr.ph %phi.bo22 = xor i32 %nquot.1, -1 br label %58 58: ; preds = %42, %._crit_edge, %30 %.4 = phi double [ %17, %30 ], [ %.3, %._crit_edge ], [ %17, %42 ] %quot.0 = phi i32 [ 0, %30 ], [ %phi.bo22, %._crit_edge ], [ 0, %42 ] %59 = fadd double %.4, %.4 %60 = fcmp ogt double %59, %18 br i1 %60, label %65, label %61 61: ; preds = %58 %62 = fcmp oeq double %59, %18 %63 = and i32 %quot.0, 1 %64 = icmp ne i32 %63, 0 %or.cond4 = select i1 %62, i1 %64, i1 false br i1 %or.cond4, label %65, label %68 65: ; preds = %61, %58 %66 = add i32 %quot.0, 1 %67 = fsub double %.4, %18 br label %68 68: ; preds = %65, %61 %.5 = phi double [ %67, %65 ], [ %.4, %61 ] %quot.1 = phi i32 [ %66, %65 ], [ %quot.0, %61 ] %69 = call i32 @llvm.nvvm.d2i.hi(double %.5) #135 %70 = call i32 @llvm.nvvm.d2i.lo(double %.5) #135 %71 = and i32 %10, -2147483648 %72 = xor i32 %69, %71 %73 = call double @llvm.nvvm.lohi.i2d(i32 %70, i32 %72) #135 %74 = and i32 %quot.1, 7 %75 = xor i32 %74, %.lobit.neg11 %76 = sub nsw i32 %75, %.lobit.neg11 br label %178 77: ; preds = %6 %78 = call i32 @llvm.nvvm.d2i.hi(double %a) #135 %79 = call i32 @llvm.nvvm.d2i.hi(double %b) #135 %80 = xor i32 %79, %78 %.lobit.neg = ashr i32 %80, 31 %81 = and i32 %78, 2147483647 %82 = call i32 @llvm.nvvm.d2i.lo(double %a) #135 %83 = and i32 %79, 2147483647 %84 = call i32 @llvm.nvvm.d2i.lo(double %b) #135 %85 = call double @llvm.nvvm.lohi.i2d(i32 %82, i32 %81) #135 %86 = call double @llvm.nvvm.lohi.i2d(i32 %84, i32 %83) #135 %87 = icmp ugt i32 %81, 2146435071 %88 = icmp ugt i32 %83, 2146435071 %or.cond5 = select i1 %87, i1 true, i1 %88 br i1 %or.cond5, label %89, label %96 89: ; preds = %77 %90 = fcmp ole double %85, 0x7FF0000000000000 %91 = fcmp ole double %86, 0x7FF0000000000000 %or.cond7 = select i1 %90, i1 %91, i1 false br i1 %or.cond7, label %94, label %92 92: ; preds = %89 %93 = fadd double %a, %b br label %178 94: ; preds = %89 %95 = fcmp oeq double %85, 0x7FF0000000000000 %.8 = select i1 %95, double 0xFFF8000000000000, double %a br label %178 96: ; preds = %77 %97 = fcmp oeq double %86, 0.000000e+00 br i1 %97, label %178, label %98 98: ; preds = %96 %99 = fcmp ult double %85, %86 br i1 %99, label %159, label %100 100: ; preds = %98 %101 = call i32 @llvm.nvvm.d2i.hi(double %85) #135 %102 = lshr i32 %101, 20 %103 = call i32 @llvm.nvvm.d2i.hi(double %86) #135 %104 = lshr i32 %103, 20 %105 = icmp ult i32 %101, 1048576 br i1 %105, label %106, label %112 106: ; preds = %100 %107 = fmul double %85, 0x4350000000000000 %108 = call i32 @llvm.nvvm.d2i.hi(double %107) #135 %109 = lshr i32 %108, 20 %110 = add nsw i32 %102, -54 %111 = add nsw i32 %110, %109 br label %112 112: ; preds = %106, %100 %.10 = phi double [ %107, %106 ], [ %85, %100 ] %expoa.0 = phi i32 [ %111, %106 ], [ %102, %100 ] %113 = icmp ult i32 %103, 1048576 br i1 %113, label %114, label %120 114: ; preds = %112 %115 = fmul double %86, 0x4350000000000000 %116 = call i32 @llvm.nvvm.d2i.hi(double %115) #135 %117 = lshr i32 %116, 20 %118 = add nsw i32 %104, -54 %119 = add nsw i32 %118, %117 br label %120 120: ; preds = %114, %112 %t10.0 = phi double [ %115, %114 ], [ %86, %112 ] %expob.0 = phi i32 [ %119, %114 ], [ %104, %112 ] %121 = bitcast double %.10 to i64 %122 = bitcast double %t10.0 to i64 %123 = and i64 %121, 4503599627370495 %124 = or i64 %123, 4503599627370496 %125 = and i64 %122, 4503599627370495 %126 = or i64 %125, 4503599627370496 %127 = sub nsw i32 %expoa.0, %expob.0 br label %128 128: ; preds = %128, %120 %nquot4.0 = phi i32 [ -1, %120 ], [ %133, %128 ] %ia.0 = phi i64 [ %124, %120 ], [ %132, %128 ] %expob.1 = phi i32 [ %127, %120 ], [ %134, %128 ] %129 = sub i64 %ia.0, %126 %130 = bitcast i64 %129 to double %131 = call i32 @llvm.nvvm.d2i.hi(double %130) #135 %.not10 = icmp slt i32 %131, 0 %spec.select = select i1 %.not10, i64 %ia.0, i64 %129 %132 = shl i64 %spec.select, 1 %133 = call i32 @llvm.fshl.i32(i32 %nquot4.0, i32 %131, i32 noundef 1) %134 = add nsw i32 %expob.1, -1 %135 = icmp sgt i32 %expob.1, 0 br i1 %135, label %128, label %136 136: ; preds = %128 %137 = and i64 %spec.select, 9223372036854775807 %.not = icmp eq i64 %137, 0 br i1 %.not, label %157, label %138 138: ; preds = %136 %139 = bitcast i64 %137 to double %140 = fmul double %139, 0x4350000000000000 %141 = call i32 @llvm.nvvm.d2i.hi(double %140) #135 %142 = lshr i32 %141, 20 %143 = sub nsw i32 55, %142 %144 = sub nsw i32 %expob.0, %143 %145 = zext i32 %143 to i64 %146 = shl i64 %137, %145 %147 = icmp slt i32 %144, 1 br i1 %147, label %148, label %152 148: ; preds = %138 %149 = sub nsw i32 1, %144 %150 = zext i32 %149 to i64 %151 = lshr i64 %146, %150 br label %157 152: ; preds = %138 %153 = add nuw nsw i32 %144, 4095 %154 = zext i32 %153 to i64 %155 = shl i64 %154, 52 %156 = add i64 %155, %146 br label %157 157: ; preds = %148, %152, %136 %ia.3 = phi i64 [ 0, %136 ], [ %151, %148 ], [ %156, %152 ] %158 = bitcast i64 %ia.3 to double %phi.bo = xor i32 %133, -1 br label %159 159: ; preds = %157, %98 %.11 = phi double [ %158, %157 ], [ %85, %98 ] %nquot4.1 = phi i32 [ %phi.bo, %157 ], [ 0, %98 ] %160 = fadd double %.11, %.11 %161 = fcmp ogt double %160, %86 br i1 %161, label %166, label %162 162: ; preds = %159 %163 = fcmp oeq double %160, %86 %164 = and i32 %nquot4.1, 1 %165 = icmp ne i32 %164, 0 %or.cond9 = select i1 %163, i1 %165, i1 false br i1 %or.cond9, label %166, label %169 166: ; preds = %162, %159 %167 = add i32 %nquot4.1, 1 %168 = fsub double %.11, %86 br label %169 169: ; preds = %166, %162 %.12 = phi double [ %168, %166 ], [ %.11, %162 ] %quot3.0 = phi i32 [ %167, %166 ], [ %nquot4.1, %162 ] %170 = and i32 %78, -2147483648 %171 = call i32 @llvm.nvvm.d2i.hi(double %.12) #135 %172 = xor i32 %171, %170 %173 = call i32 @llvm.nvvm.d2i.lo(double %.12) #135 %174 = call double @llvm.nvvm.lohi.i2d(i32 %173, i32 %172) #135 %175 = and i32 %quot3.0, 7 %176 = xor i32 %175, %.lobit.neg %177 = sub nsw i32 %176, %.lobit.neg br label %178 178: ; preds = %94, %92, %169, %96, %26, %24, %68, %28 %storemerge = phi i32 [ 0, %26 ], [ 0, %24 ], [ %76, %68 ], [ 0, %28 ], [ 0, %94 ], [ 0, %92 ], [ %177, %169 ], [ 0, %96 ] %.01 = phi double [ %.0, %26 ], [ %25, %24 ], [ %73, %68 ], [ 0xFFF8000000000000, %28 ], [ %.8, %94 ], [ %93, %92 ], [ %174, %169 ], [ 0xFFF8000000000000, %96 ] store i32 %storemerge, i32* %c, align 4, !noalias !219 ret double %.01 } ; Function Attrs: nofree noinline nosync nounwind readnone willreturn define dso_local double @__nv_round(double %a) local_unnamed_addr #126 { %1 = call i32 @llvm.nvvm.d2i.hi(double %a) #138 %2 = call i32 @llvm.nvvm.d2i.lo(double noundef 5.000000e-01) #138 %3 = call i32 @llvm.nvvm.d2i.hi(double noundef 5.000000e-01) #138 %4 = and i32 %1, -2147483648 %5 = or i32 %4, %3 %6 = call double @llvm.nvvm.lohi.i2d(i32 %2, i32 %5) #138 %7 = call double @llvm.nvvm.add.rz.d(double %a, double %6) #138 %8 = call double @llvm.trunc.f64(double %7) #136 ret double %8 } ; Function Attrs: noinline nounwind define dso_local i32 @__nv_ilogb(double %a) local_unnamed_addr #127 { %1 = call double @llvm.fabs.f64(double %a) #136 %2 = fcmp ugt double %1, 0x7FF0000000000000 br i1 %2, label %36, label %3 3: ; preds = %0 %4 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([12 x i8], [12 x i8]* @.str.1, i32 0, i32 0)) #135 %5 = icmp eq i32 %4, 200 br i1 %5, label %12, label %6 6: ; preds = %3 %7 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([12 x i8], [12 x i8]* @.str.1, i32 0, i32 0)) #135 %8 = icmp eq i32 %7, 350 br i1 %8, label %12, label %9 9: ; preds = %6 %10 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([12 x i8], [12 x i8]* @.str.1, i32 0, i32 0)) #135 %11 = icmp eq i32 %10, 370 br i1 %11, label %12, label %14 12: ; preds = %9, %6, %3 %13 = fcmp oeq double %1, 0x7FF0000000000000 br label %__nv_isinfd.exit 14: ; preds = %9 %15 = call i32 @llvm.nvvm.d2i.lo(double %a) #135 %16 = call i32 @llvm.nvvm.d2i.hi(double %a) #135 %17 = and i32 %16, 2147483647 %18 = icmp eq i32 %17, 2146435072 %19 = icmp eq i32 %15, 0 %20 = select i1 %18, i1 %19, i1 false br label %__nv_isinfd.exit __nv_isinfd.exit: ; preds = %14, %12 %.01.in = phi i1 [ %13, %12 ], [ %20, %14 ] br i1 %.01.in, label %36, label %21 21: ; preds = %__nv_isinfd.exit %22 = fcmp oeq double %a, 0.000000e+00 br i1 %22, label %36, label %23 23: ; preds = %21 %24 = call i32 @llvm.nvvm.d2i.hi(double %1) #135 %25 = icmp ugt i32 %24, 1048575 br i1 %25, label %26, label %29 26: ; preds = %23 %27 = lshr i32 %24, 20 %28 = add nsw i32 %27, -1023 br label %36 29: ; preds = %23 %30 = zext i32 %24 to i64 %31 = shl nuw nsw i64 %30, 32 %32 = call i32 @llvm.nvvm.d2i.lo(double %1) #135 %33 = zext i32 %32 to i64 %34 = or i64 %31, %33 %ctlz = call i64 @llvm.ctlz.i64(i64 %34, i1 noundef false), !range !232 %ctlz.trunc = trunc i64 %ctlz to i32 %35 = sub nuw nsw i32 -1011, %ctlz.trunc br label %36 36: ; preds = %21, %__nv_isinfd.exit, %0, %29, %26 %.0 = phi i32 [ %28, %26 ], [ %35, %29 ], [ -2147483648, %0 ], [ 2147483647, %__nv_isinfd.exit ], [ -2147483648, %21 ] ret i32 %.0 } ; Function Attrs: nofree noinline nosync nounwind readnone willreturn define dso_local double @__nv_logb(double %a) local_unnamed_addr #128 { %1 = call double @llvm.fabs.f64(double %a) #136 %2 = fcmp ugt double %1, 0x7FF0000000000000 br i1 %2, label %3, label %5 3: ; preds = %0 %4 = fadd double %a, %a br label %24 5: ; preds = %0 %6 = fcmp oeq double %1, 0x7FF0000000000000 br i1 %6, label %24, label %7 7: ; preds = %5 %8 = fcmp oeq double %a, 0.000000e+00 br i1 %8, label %24, label %9 9: ; preds = %7 %10 = call i32 @llvm.nvvm.d2i.hi(double %1) #138 %11 = icmp ugt i32 %10, 1048575 br i1 %11, label %12, label %16 12: ; preds = %9 %13 = lshr i32 %10, 20 %14 = add nsw i32 %13, -1023 %15 = sitofp i32 %14 to double br label %24 16: ; preds = %9 %17 = zext i32 %10 to i64 %18 = shl nuw nsw i64 %17, 32 %19 = call i32 @llvm.nvvm.d2i.lo(double %1) #138 %20 = zext i32 %19 to i64 %21 = or i64 %18, %20 %ctlz = call i64 @llvm.ctlz.i64(i64 %21, i1 noundef false) #136, !range !232 %ctlz.trunc = trunc i64 %ctlz to i32 %22 = sub nuw nsw i32 -1011, %ctlz.trunc %23 = sitofp i32 %22 to double br label %24 24: ; preds = %7, %5, %16, %12, %3 %.0 = phi double [ %4, %3 ], [ %15, %12 ], [ %23, %16 ], [ 0x7FF0000000000000, %5 ], [ 0xFFF0000000000000, %7 ] ret double %.0 } ; Function Attrs: noinline nosync nounwind readnone define dso_local double @__nv_fdim(double %a, double %b) local_unnamed_addr #129 { %1 = call double asm "sub.rn.f64 $0, $1, $2;", "=d,d,d"(double %a, double %b) #137, !srcloc !242 %2 = fcmp ole double %a, %b %t.0 = select i1 %2, double 0.000000e+00, double %1 ret double %t.0 } ; Function Attrs: argmemonly nofree nosync nounwind willreturn declare void @llvm.lifetime.start.p0i8(i64 immarg, i8* nocapture) #130 ; Function Attrs: argmemonly nofree nosync nounwind willreturn declare void @llvm.lifetime.end.p0i8(i64 immarg, i8* nocapture) #130 define void @julia_kernel__3671_inner17({ i8 addrspace(1)*, i64, [2 x i64], i64 } %0, { i8 addrspace(1)*, i64, [1 x i64], i64 } %1, { i8 addrspace(1)*, i64, [1 x i64], i64 } %2, { i8 addrspace(1)*, i64, [1 x i64], i64 } %3) local_unnamed_addr #131 !dbg !243 { entry: %4 = alloca [1 x [3 x float]], align 4 %5 = alloca [1 x [3 x float]], align 4 %6 = alloca [1 x [3 x double]], align 8 %.fca.2.0.extract19 = extractvalue { i8 addrspace(1)*, i64, [2 x i64], i64 } %0, 2, 0, !dbg !244 %.fca.3.extract4 = extractvalue { i8 addrspace(1)*, i64, [1 x i64], i64 } %2, 3, !dbg !244 %7 = bitcast [1 x [3 x float]]* %4 to i8* call void @llvm.lifetime.start.p0i8(i64 noundef 12, i8* noundef nonnull align 4 dereferenceable(12) %7) #140 %8 = bitcast [1 x [3 x float]]* %5 to i8* call void @llvm.lifetime.start.p0i8(i64 noundef 12, i8* noundef nonnull align 4 dereferenceable(12) %8) #140 %9 = bitcast [1 x [3 x double]]* %6 to i8* call void @llvm.lifetime.start.p0i8(i64 noundef 24, i8* noundef nonnull align 8 dereferenceable(24) %9) #140 %10 = call {}*** @julia.get_pgcstack() %11 = call i32 @llvm.nvvm.read.ptx.sreg.ctaid.x(), !dbg !245, !range !259 %12 = zext i32 %11 to i64, !dbg !260 %13 = call i32 @llvm.nvvm.read.ptx.sreg.ntid.x(), !dbg !264, !range !271 %14 = zext i32 %13 to i64, !dbg !272 %15 = mul nuw nsw i64 %12, %14, !dbg !276 %16 = call i32 @llvm.nvvm.read.ptx.sreg.tid.x(), !dbg !278, !range !285 %17 = add nuw nsw i32 %16, 1, !dbg !286 %18 = zext i32 %17 to i64, !dbg !288 %19 = add nuw nsw i64 %15, %18, !dbg !290 %.not = icmp sgt i64 %19, %.fca.3.extract4, !dbg !292 br i1 %.not, label %julia_kernel__3671_inner.exit, label %L30.i, !dbg !295 L30.i: ; preds = %entry %.fca.0.extract = extractvalue { i8 addrspace(1)*, i64, [1 x i64], i64 } %3, 0, !dbg !244 %.fca.0.extract1 = extractvalue { i8 addrspace(1)*, i64, [1 x i64], i64 } %2, 0, !dbg !244 %.fca.0.extract9 = extractvalue { i8 addrspace(1)*, i64, [1 x i64], i64 } %1, 0, !dbg !244 %.fca.0.extract17 = extractvalue { i8 addrspace(1)*, i64, [2 x i64], i64 } %0, 0, !dbg !244 %20 = bitcast i8 addrspace(1)* %.fca.0.extract1 to i32 addrspace(1)*, !dbg !296 %21 = trunc i64 %19 to i32, !dbg !296 %22 = add i32 %21, -1, !dbg !296 %23 = getelementptr inbounds i32, i32 addrspace(1)* %20, i32 %22, !dbg !296 %24 = load i32, i32 addrspace(1)* %23, align 4, !dbg !296, !tbaa !312 %25 = bitcast i8 addrspace(1)* %.fca.0.extract to i32 addrspace(1)*, !dbg !296 %26 = getelementptr inbounds i32, i32 addrspace(1)* %25, i32 %22, !dbg !296 %27 = load i32, i32 addrspace(1)* %26, align 4, !dbg !296, !tbaa !312 %28 = add i32 %24, -1, !dbg !315 %29 = bitcast i8 addrspace(1)* %.fca.0.extract9 to [1 x [3 x float]] addrspace(1)*, !dbg !324 %.unpack.elt = getelementptr inbounds [1 x [3 x float]], [1 x [3 x float]] addrspace(1)* %29, i32 %28, i32 0, i32 0, !dbg !324 %.unpack.unpack = load float, float addrspace(1)* %.unpack.elt, align 4, !dbg !324, !tbaa !312 %.unpack.elt34 = getelementptr inbounds [1 x [3 x float]], [1 x [3 x float]] addrspace(1)* %29, i32 %28, i32 0, i32 1, !dbg !324 %.unpack.unpack35 = load float, float addrspace(1)* %.unpack.elt34, align 4, !dbg !324, !tbaa !312 %.unpack.elt36 = getelementptr inbounds [1 x [3 x float]], [1 x [3 x float]] addrspace(1)* %29, i32 %28, i32 0, i32 2, !dbg !324 %.unpack.unpack37 = load float, float addrspace(1)* %.unpack.elt36, align 4, !dbg !324, !tbaa !312 %.fca.0.0.gep29 = getelementptr inbounds [1 x [3 x float]], [1 x [3 x float]]* %4, i32 0, i32 0, i32 0, !dbg !324 store float %.unpack.unpack, float* %.fca.0.0.gep29, align 4, !dbg !324, !noalias !219 %.fca.0.1.gep31 = getelementptr inbounds [1 x [3 x float]], [1 x [3 x float]]* %4, i32 0, i32 0, i32 1, !dbg !324 store float %.unpack.unpack35, float* %.fca.0.1.gep31, align 4, !dbg !324, !noalias !219 %.fca.0.2.gep33 = getelementptr inbounds [1 x [3 x float]], [1 x [3 x float]]* %4, i32 0, i32 0, i32 2, !dbg !324 store float %.unpack.unpack37, float* %.fca.0.2.gep33, align 4, !dbg !324, !noalias !219 %30 = add i32 %27, -1, !dbg !315 %.unpack.elt39 = getelementptr inbounds [1 x [3 x float]], [1 x [3 x float]] addrspace(1)* %29, i32 %30, i32 0, i32 0, !dbg !324 %.unpack.unpack40 = load float, float addrspace(1)* %.unpack.elt39, align 4, !dbg !324, !tbaa !312 %.unpack.elt41 = getelementptr inbounds [1 x [3 x float]], [1 x [3 x float]] addrspace(1)* %29, i32 %30, i32 0, i32 1, !dbg !324 %.unpack.unpack42 = load float, float addrspace(1)* %.unpack.elt41, align 4, !dbg !324, !tbaa !312 %.unpack.elt43 = getelementptr inbounds [1 x [3 x float]], [1 x [3 x float]] addrspace(1)* %29, i32 %30, i32 0, i32 2, !dbg !324 %.unpack.unpack44 = load float, float addrspace(1)* %.unpack.elt43, align 4, !dbg !324, !tbaa !312 %.fca.0.0.gep = getelementptr inbounds [1 x [3 x float]], [1 x [3 x float]]* %5, i32 0, i32 0, i32 0, !dbg !324 store float %.unpack.unpack40, float* %.fca.0.0.gep, align 4, !dbg !324, !noalias !219 %.fca.0.1.gep = getelementptr inbounds [1 x [3 x float]], [1 x [3 x float]]* %5, i32 0, i32 0, i32 1, !dbg !324 store float %.unpack.unpack42, float* %.fca.0.1.gep, align 4, !dbg !324, !noalias !219 %.fca.0.2.gep = getelementptr inbounds [1 x [3 x float]], [1 x [3 x float]]* %5, i32 0, i32 0, i32 2, !dbg !324 store float %.unpack.unpack44, float* %.fca.0.2.gep, align 4, !dbg !324, !noalias !219 %31 = addrspacecast [1 x [3 x float]]* %4 to [1 x [3 x float]] addrspace(11)*, !dbg !325 %32 = addrspacecast [1 x [3 x float]]* %5 to [1 x [3 x float]] addrspace(11)*, !dbg !325 call fastcc void @julia_force_3701([1 x [3 x double]]* noalias nocapture nofree noundef nonnull writeonly sret([1 x [3 x double]]) align 8 dereferenceable(24) %6, [1 x [3 x float]] addrspace(11)* nocapture nofree noundef nonnull readonly align 4 dereferenceable(12) %31, [1 x [3 x float]] addrspace(11)* nocapture nofree noundef nonnull readonly align 4 dereferenceable(12) %32) #141, !dbg !325 %33 = icmp sgt i64 %.fca.2.0.extract19, 0, !dbg !326 %34 = select i1 %33, i64 %.fca.2.0.extract19, i64 0, !dbg !326 %35 = sext i32 %24 to i64, !dbg !347 %36 = add nsw i64 %35, -1, !dbg !355 %37 = mul i64 %36, %34, !dbg !357 %38 = bitcast i8 addrspace(1)* %.fca.0.extract17 to double addrspace(1)*, !dbg !358 %39 = trunc i64 %37 to i32, !dbg !358 %40 = getelementptr inbounds double, double addrspace(1)* %38, i32 %39, !dbg !358 %41 = load double, double addrspace(1)* %40, align 8, !dbg !358, !tbaa !312 %42 = getelementptr inbounds [1 x [3 x double]], [1 x [3 x double]]* %6, i32 0, i32 0, i32 0, !dbg !365 %43 = load double, double* %42, align 8, !dbg !369, !tbaa !371, !alias.scope !373, !noalias !374 %44 = fadd double %41, %43, !dbg !369 store double %44, double addrspace(1)* %40, align 8, !dbg !375, !tbaa !312, !noalias !219 br label %julia_kernel__3671_inner.exit, !dbg !388 julia_kernel__3671_inner.exit: ; preds = %entry, %L30.i call void @llvm.lifetime.end.p0i8(i64 noundef 12, i8* noundef nonnull %7), !dbg !389 call void @llvm.lifetime.end.p0i8(i64 noundef 12, i8* noundef nonnull %8), !dbg !389 call void @llvm.lifetime.end.p0i8(i64 noundef 24, i8* noundef nonnull align 8 dereferenceable(24) %9), !dbg !389 ret void, !dbg !244 } ; Function Attrs: nofree nosync nounwind readnone speculatable willreturn declare float @llvm.fabs.f32(float) #132 ; Function Attrs: nofree nosync nounwind readnone speculatable willreturn declare float @llvm.maxnum.f32(float, float) #132 ; Function Attrs: nofree nosync nounwind readnone speculatable willreturn declare float @llvm.sqrt.f32(float) #132 ; Function Attrs: nofree nosync nounwind readnone speculatable willreturn declare double @llvm.sqrt.f64(double) #132 ; Function Attrs: nofree nosync nounwind readnone speculatable willreturn declare float @llvm.fma.f32(float, float, float) #132 ; Function Attrs: nofree nosync nounwind readnone speculatable willreturn declare i32 @llvm.fshl.i32(i32, i32, i32) #132 ; Function Attrs: nofree nosync nounwind readnone speculatable willreturn declare float @llvm.trunc.f32(float) #132 ; Function Attrs: nofree nosync nounwind readnone speculatable willreturn declare float @llvm.minnum.f32(float, float) #132 ; Function Attrs: nofree nosync nounwind readnone speculatable willreturn declare float @llvm.round.f32(float) #132 ; Function Attrs: nofree nosync nounwind readnone speculatable willreturn declare float @llvm.floor.f32(float) #132 ; Function Attrs: nofree nosync nounwind readnone speculatable willreturn declare i32 @llvm.abs.i32(i32, i1 immarg) #132 ; Function Attrs: nofree nosync nounwind readnone speculatable willreturn declare i64 @llvm.fshl.i64(i64, i64, i64) #132 ; Function Attrs: nofree nosync nounwind readnone speculatable willreturn declare double @llvm.fma.f64(double, double, double) #132 ; Function Attrs: nofree nosync nounwind readnone speculatable willreturn declare double @llvm.fabs.f64(double) #132 ; Function Attrs: nofree nosync nounwind readnone speculatable willreturn declare double @llvm.maxnum.f64(double, double) #132 ; Function Attrs: nofree nosync nounwind readnone speculatable willreturn declare double @llvm.minnum.f64(double, double) #132 ; Function Attrs: nofree nosync nounwind readnone speculatable willreturn declare double @llvm.trunc.f64(double) #132 ; Function Attrs: nofree nosync nounwind readnone speculatable willreturn declare double @llvm.floor.f64(double) #132 ; Function Attrs: nofree nosync nounwind readnone speculatable willreturn declare double @llvm.round.f64(double) #132 ; Function Attrs: mustprogress willreturn define void @preprocess_julia_kernel__3671_inner17({ i8 addrspace(1)*, i64, [2 x i64], i64 } %0, { i8 addrspace(1)*, i64, [1 x i64], i64 } %1, { i8 addrspace(1)*, i64, [1 x i64], i64 } %2, { i8 addrspace(1)*, i64, [1 x i64], i64 } %3) local_unnamed_addr #133 !dbg !390 { entry: %4 = alloca [1 x [3 x float]], align 4 %5 = alloca [1 x [3 x float]], align 4 %6 = alloca [1 x [3 x double]], align 8 %.fca.2.0.extract19 = extractvalue { i8 addrspace(1)*, i64, [2 x i64], i64 } %0, 2, 0, !dbg !391 %.fca.3.extract4 = extractvalue { i8 addrspace(1)*, i64, [1 x i64], i64 } %2, 3, !dbg !391 %7 = bitcast [1 x [3 x float]]* %4 to i8* call void @llvm.lifetime.start.p0i8(i64 noundef 12, i8* noundef nonnull align 4 dereferenceable(12) %7) #142 %8 = bitcast [1 x [3 x float]]* %5 to i8* call void @llvm.lifetime.start.p0i8(i64 noundef 12, i8* noundef nonnull align 4 dereferenceable(12) %8) #142 %9 = bitcast [1 x [3 x double]]* %6 to i8* call void @llvm.lifetime.start.p0i8(i64 noundef 24, i8* noundef nonnull align 8 dereferenceable(24) %9) #142 %10 = call {}*** @julia.get_pgcstack() #142 %11 = call i32 @llvm.nvvm.read.ptx.sreg.ctaid.x() #142, !dbg !392, !range !259 %12 = zext i32 %11 to i64, !dbg !399 %13 = call i32 @llvm.nvvm.read.ptx.sreg.ntid.x() #142, !dbg !401, !range !271 %14 = zext i32 %13 to i64, !dbg !406 %15 = mul nuw nsw i64 %12, %14, !dbg !408 %16 = call i32 @llvm.nvvm.read.ptx.sreg.tid.x() #142, !dbg !410, !range !285 %17 = add nuw nsw i32 %16, 1, !dbg !415 %18 = zext i32 %17 to i64, !dbg !416 %19 = add nuw nsw i64 %15, %18, !dbg !418 %.not = icmp sgt i64 %19, %.fca.3.extract4, !dbg !420 br i1 %.not, label %julia_kernel__3671_inner.exit, label %L30.i, !dbg !422 L30.i: ; preds = %entry %.fca.0.extract = extractvalue { i8 addrspace(1)*, i64, [1 x i64], i64 } %3, 0, !dbg !391 %.fca.0.extract1 = extractvalue { i8 addrspace(1)*, i64, [1 x i64], i64 } %2, 0, !dbg !391 %.fca.0.extract9 = extractvalue { i8 addrspace(1)*, i64, [1 x i64], i64 } %1, 0, !dbg !391 %.fca.0.extract17 = extractvalue { i8 addrspace(1)*, i64, [2 x i64], i64 } %0, 0, !dbg !391 %20 = bitcast i8 addrspace(1)* %.fca.0.extract1 to i32 addrspace(1)*, !dbg !423 %21 = trunc i64 %19 to i32, !dbg !423 %22 = add i32 %21, -1, !dbg !423 %23 = getelementptr inbounds i32, i32 addrspace(1)* %20, i32 %22, !dbg !423 %24 = load i32, i32 addrspace(1)* %23, align 4, !dbg !423, !tbaa !312 %25 = bitcast i8 addrspace(1)* %.fca.0.extract to i32 addrspace(1)*, !dbg !423 %26 = getelementptr inbounds i32, i32 addrspace(1)* %25, i32 %22, !dbg !423 %27 = load i32, i32 addrspace(1)* %26, align 4, !dbg !423, !tbaa !312 %28 = add i32 %24, -1, !dbg !431 %29 = bitcast i8 addrspace(1)* %.fca.0.extract9 to [1 x [3 x float]] addrspace(1)*, !dbg !440 %.unpack.elt = getelementptr inbounds [1 x [3 x float]], [1 x [3 x float]] addrspace(1)* %29, i32 %28, i32 0, i32 0, !dbg !440 %.unpack.unpack = load float, float addrspace(1)* %.unpack.elt, align 4, !dbg !440, !tbaa !312 %.unpack.elt34 = getelementptr inbounds [1 x [3 x float]], [1 x [3 x float]] addrspace(1)* %29, i32 %28, i32 0, i32 1, !dbg !440 %.unpack.unpack35 = load float, float addrspace(1)* %.unpack.elt34, align 4, !dbg !440, !tbaa !312 %.unpack.elt36 = getelementptr inbounds [1 x [3 x float]], [1 x [3 x float]] addrspace(1)* %29, i32 %28, i32 0, i32 2, !dbg !440 %.unpack.unpack37 = load float, float addrspace(1)* %.unpack.elt36, align 4, !dbg !440, !tbaa !312 %.fca.0.0.gep29 = getelementptr inbounds [1 x [3 x float]], [1 x [3 x float]]* %4, i32 0, i32 0, i32 0, !dbg !440 store float %.unpack.unpack, float* %.fca.0.0.gep29, align 4, !dbg !440, !noalias !441 %.fca.0.1.gep31 = getelementptr inbounds [1 x [3 x float]], [1 x [3 x float]]* %4, i32 0, i32 0, i32 1, !dbg !440 store float %.unpack.unpack35, float* %.fca.0.1.gep31, align 4, !dbg !440, !noalias !441 %.fca.0.2.gep33 = getelementptr inbounds [1 x [3 x float]], [1 x [3 x float]]* %4, i32 0, i32 0, i32 2, !dbg !440 store float %.unpack.unpack37, float* %.fca.0.2.gep33, align 4, !dbg !440, !noalias !441 %30 = add i32 %27, -1, !dbg !431 %.unpack.elt39 = getelementptr inbounds [1 x [3 x float]], [1 x [3 x float]] addrspace(1)* %29, i32 %30, i32 0, i32 0, !dbg !440 %.unpack.unpack40 = load float, float addrspace(1)* %.unpack.elt39, align 4, !dbg !440, !tbaa !312 %.unpack.elt41 = getelementptr inbounds [1 x [3 x float]], [1 x [3 x float]] addrspace(1)* %29, i32 %30, i32 0, i32 1, !dbg !440 %.unpack.unpack42 = load float, float addrspace(1)* %.unpack.elt41, align 4, !dbg !440, !tbaa !312 %.unpack.elt43 = getelementptr inbounds [1 x [3 x float]], [1 x [3 x float]] addrspace(1)* %29, i32 %30, i32 0, i32 2, !dbg !440 %.unpack.unpack44 = load float, float addrspace(1)* %.unpack.elt43, align 4, !dbg !440, !tbaa !312 %.fca.0.0.gep = getelementptr inbounds [1 x [3 x float]], [1 x [3 x float]]* %5, i32 0, i32 0, i32 0, !dbg !440 store float %.unpack.unpack40, float* %.fca.0.0.gep, align 4, !dbg !440, !noalias !441 %.fca.0.1.gep = getelementptr inbounds [1 x [3 x float]], [1 x [3 x float]]* %5, i32 0, i32 0, i32 1, !dbg !440 store float %.unpack.unpack42, float* %.fca.0.1.gep, align 4, !dbg !440, !noalias !441 %.fca.0.2.gep = getelementptr inbounds [1 x [3 x float]], [1 x [3 x float]]* %5, i32 0, i32 0, i32 2, !dbg !440 store float %.unpack.unpack44, float* %.fca.0.2.gep, align 4, !dbg !440, !noalias !441 %31 = addrspacecast [1 x [3 x float]]* %4 to [1 x [3 x float]] addrspace(11)*, !dbg !444 %32 = addrspacecast [1 x [3 x float]]* %5 to [1 x [3 x float]] addrspace(11)*, !dbg !444 call fastcc void @julia_force_3701([1 x [3 x double]]* noalias nocapture nofree noundef nonnull writeonly sret([1 x [3 x double]]) align 8 dereferenceable(24) %6, [1 x [3 x float]] addrspace(11)* nocapture nofree noundef nonnull readonly align 4 dereferenceable(12) %31, [1 x [3 x float]] addrspace(11)* nocapture nofree noundef nonnull readonly align 4 dereferenceable(12) %32) #143, !dbg !444 %33 = icmp sgt i64 %.fca.2.0.extract19, 0, !dbg !445 %34 = select i1 %33, i64 %.fca.2.0.extract19, i64 0, !dbg !445 %35 = sext i32 %24 to i64, !dbg !456 %36 = add nsw i64 %35, -1, !dbg !462 %37 = mul i64 %36, %34, !dbg !464 %38 = bitcast i8 addrspace(1)* %.fca.0.extract17 to double addrspace(1)*, !dbg !465 %39 = trunc i64 %37 to i32, !dbg !465 %40 = getelementptr inbounds double, double addrspace(1)* %38, i32 %39, !dbg !465 %41 = load double, double addrspace(1)* %40, align 8, !dbg !465, !tbaa !312 %42 = getelementptr inbounds [1 x [3 x double]], [1 x [3 x double]]* %6, i32 0, i32 0, i32 0, !dbg !472 %43 = load double, double* %42, align 8, !dbg !474, !tbaa !371, !alias.scope !373, !noalias !374 %44 = fadd double %41, %43, !dbg !474 store double %44, double addrspace(1)* %40, align 8, !dbg !475, !tbaa !312, !noalias !441 br label %julia_kernel__3671_inner.exit, !dbg !483 julia_kernel__3671_inner.exit: ; preds = %L30.i, %entry call void @llvm.lifetime.end.p0i8(i64 noundef 12, i8* noundef nonnull %7) #142, !dbg !484 call void @llvm.lifetime.end.p0i8(i64 noundef 12, i8* noundef nonnull %8) #142, !dbg !484 call void @llvm.lifetime.end.p0i8(i64 noundef 24, i8* noundef nonnull align 8 dereferenceable(24) %9) #142, !dbg !484 ret void, !dbg !391 } ; Function Attrs: mustprogress willreturn define internal void @diffejulia_kernel__3671_inner17({ i8 addrspace(1)*, i64, [2 x i64], i64 } %0, { i8 addrspace(1)*, i64, [2 x i64], i64 } %"'", { i8 addrspace(1)*, i64, [1 x i64], i64 } %1, { i8 addrspace(1)*, i64, [1 x i64], i64 } %"'1", { i8 addrspace(1)*, i64, [1 x i64], i64 } %2, { i8 addrspace(1)*, i64, [1 x i64], i64 } %3) local_unnamed_addr #133 !dbg !485 { entry: %"'ipa13" = alloca [1 x [3 x float]], align 4 store [1 x [3 x float]] zeroinitializer, [1 x [3 x float]]* %"'ipa13", align 4 %4 = alloca [1 x [3 x float]], align 4 %"'ipa16" = alloca [1 x [3 x float]], align 4 store [1 x [3 x float]] zeroinitializer, [1 x [3 x float]]* %"'ipa16", align 4 %5 = alloca [1 x [3 x float]], align 4 %"'ipa" = alloca [1 x [3 x double]], align 8 store [1 x [3 x double]] zeroinitializer, [1 x [3 x double]]* %"'ipa", align 8 %6 = alloca [1 x [3 x double]], align 8 %.fca.2.0.extract19 = extractvalue { i8 addrspace(1)*, i64, [2 x i64], i64 } %0, 2, 0, !dbg !486 %.fca.3.extract4 = extractvalue { i8 addrspace(1)*, i64, [1 x i64], i64 } %2, 3, !dbg !486 %_replacementA3 = phi i8* %_replacementA2 = phi i8* %_replacementA = phi i8* %7 = call {}*** @julia.get_pgcstack() #142 %8 = call i32 @llvm.nvvm.read.ptx.sreg.ctaid.x() #142, !dbg !487, !range !259 %9 = zext i32 %8 to i64, !dbg !494 %10 = call i32 @llvm.nvvm.read.ptx.sreg.ntid.x() #142, !dbg !496, !range !271 %11 = zext i32 %10 to i64, !dbg !501 %12 = mul nuw nsw i64 %9, %11, !dbg !503 %13 = call i32 @llvm.nvvm.read.ptx.sreg.tid.x() #142, !dbg !505, !range !285 %14 = add nuw nsw i32 %13, 1, !dbg !510 %15 = zext i32 %14 to i64, !dbg !511 %16 = add nuw nsw i64 %12, %15, !dbg !513 %.not = icmp sgt i64 %16, %.fca.3.extract4, !dbg !515 br i1 %.not, label %julia_kernel__3671_inner.exit, label %L30.i, !dbg !517 L30.i: ; preds = %entry %.fca.0.extract = extractvalue { i8 addrspace(1)*, i64, [1 x i64], i64 } %3, 0, !dbg !486 %.fca.0.extract1 = extractvalue { i8 addrspace(1)*, i64, [1 x i64], i64 } %2, 0, !dbg !486 %.fca.0.extract9 = extractvalue { i8 addrspace(1)*, i64, [1 x i64], i64 } %1, 0, !dbg !486 %".fca.0.extract17'ipev" = extractvalue { i8 addrspace(1)*, i64, [2 x i64], i64 } %"'", 0, !dbg !486 %.fca.0.extract17 = extractvalue { i8 addrspace(1)*, i64, [2 x i64], i64 } %0, 0, !dbg !486 %17 = bitcast i8 addrspace(1)* %.fca.0.extract1 to i32 addrspace(1)*, !dbg !518 %18 = trunc i64 %16 to i32, !dbg !518 %19 = add i32 %18, -1, !dbg !518 %20 = getelementptr inbounds i32, i32 addrspace(1)* %17, i32 %19, !dbg !518 %21 = load i32, i32 addrspace(1)* %20, align 4, !dbg !518, !tbaa !312 %22 = bitcast i8 addrspace(1)* %.fca.0.extract to i32 addrspace(1)*, !dbg !518 %23 = getelementptr inbounds i32, i32 addrspace(1)* %22, i32 %19, !dbg !518 %24 = load i32, i32 addrspace(1)* %23, align 4, !dbg !518, !tbaa !312 %25 = add i32 %21, -1, !dbg !526 %26 = bitcast i8 addrspace(1)* %.fca.0.extract9 to [1 x [3 x float]] addrspace(1)*, !dbg !535 %.unpack.elt = getelementptr inbounds [1 x [3 x float]], [1 x [3 x float]] addrspace(1)* %26, i32 %25, i32 0, i32 0, !dbg !535 %.unpack.unpack = load float, float addrspace(1)* %.unpack.elt, align 4, !dbg !535, !tbaa !312 %.unpack.elt34 = getelementptr inbounds [1 x [3 x float]], [1 x [3 x float]] addrspace(1)* %26, i32 %25, i32 0, i32 1, !dbg !535 %.unpack.unpack35 = load float, float addrspace(1)* %.unpack.elt34, align 4, !dbg !535, !tbaa !312 %.unpack.elt36 = getelementptr inbounds [1 x [3 x float]], [1 x [3 x float]] addrspace(1)* %26, i32 %25, i32 0, i32 2, !dbg !535 %.unpack.unpack37 = load float, float addrspace(1)* %.unpack.elt36, align 4, !dbg !535, !tbaa !312 %.fca.0.0.gep29 = getelementptr inbounds [1 x [3 x float]], [1 x [3 x float]]* %4, i32 0, i32 0, i32 0, !dbg !535 store float %.unpack.unpack, float* %.fca.0.0.gep29, align 4, !dbg !535, !noalias !536 store i32 %21, i32* %_cache, align 4, !dbg !535, !tbaa !312, !invariant.group !539 %.fca.0.1.gep31 = getelementptr inbounds [1 x [3 x float]], [1 x [3 x float]]* %4, i32 0, i32 0, i32 1, !dbg !535 store float %.unpack.unpack35, float* %.fca.0.1.gep31, align 4, !dbg !535, !noalias !536 %.fca.0.2.gep33 = getelementptr inbounds [1 x [3 x float]], [1 x [3 x float]]* %4, i32 0, i32 0, i32 2, !dbg !535 store float %.unpack.unpack37, float* %.fca.0.2.gep33, align 4, !dbg !535, !noalias !536 %27 = add i32 %24, -1, !dbg !526 %.unpack.elt39 = getelementptr inbounds [1 x [3 x float]], [1 x [3 x float]] addrspace(1)* %26, i32 %27, i32 0, i32 0, !dbg !535 %.unpack.unpack40 = load float, float addrspace(1)* %.unpack.elt39, align 4, !dbg !535, !tbaa !312 %.unpack.elt41 = getelementptr inbounds [1 x [3 x float]], [1 x [3 x float]] addrspace(1)* %26, i32 %27, i32 0, i32 1, !dbg !535 %.unpack.unpack42 = load float, float addrspace(1)* %.unpack.elt41, align 4, !dbg !535, !tbaa !312 %.unpack.elt43 = getelementptr inbounds [1 x [3 x float]], [1 x [3 x float]] addrspace(1)* %26, i32 %27, i32 0, i32 2, !dbg !535 %.unpack.unpack44 = load float, float addrspace(1)* %.unpack.elt43, align 4, !dbg !535, !tbaa !312 %.fca.0.0.gep = getelementptr inbounds [1 x [3 x float]], [1 x [3 x float]]* %5, i32 0, i32 0, i32 0, !dbg !535 store float %.unpack.unpack40, float* %.fca.0.0.gep, align 4, !dbg !535, !noalias !536 %.fca.0.1.gep = getelementptr inbounds [1 x [3 x float]], [1 x [3 x float]]* %5, i32 0, i32 0, i32 1, !dbg !535 store float %.unpack.unpack42, float* %.fca.0.1.gep, align 4, !dbg !535, !noalias !536 %.fca.0.2.gep = getelementptr inbounds [1 x [3 x float]], [1 x [3 x float]]* %5, i32 0, i32 0, i32 2, !dbg !535 store float %.unpack.unpack44, float* %.fca.0.2.gep, align 4, !dbg !535, !noalias !536 %"'ipc14" = addrspacecast [1 x [3 x float]]* %"'ipa13" to [1 x [3 x float]] addrspace(11)*, !dbg !540 %28 = addrspacecast [1 x [3 x float]]* %4 to [1 x [3 x float]] addrspace(11)*, !dbg !540 %"'ipc17" = addrspacecast [1 x [3 x float]]* %"'ipa16" to [1 x [3 x float]] addrspace(11)*, !dbg !540 %29 = addrspacecast [1 x [3 x float]]* %5 to [1 x [3 x float]] addrspace(11)*, !dbg !540 call fastcc void @julia_force_3701([1 x [3 x double]]* noalias nocapture nofree noundef nonnull writeonly sret([1 x [3 x double]]) align 8 dereferenceable(24) %6, [1 x [3 x float]] addrspace(11)* nocapture nofree noundef nonnull readonly align 4 dereferenceable(12) %28, [1 x [3 x float]] addrspace(11)* nocapture nofree noundef nonnull readonly align 4 dereferenceable(12) %29) #143, !dbg !540 %30 = icmp sgt i64 %.fca.2.0.extract19, 0, !dbg !541 %31 = select i1 %30, i64 %.fca.2.0.extract19, i64 0, !dbg !541 %32 = sext i32 %21 to i64, !dbg !552 %33 = add nsw i64 %32, -1, !dbg !558 %34 = mul i64 %33, %31, !dbg !560 %"'ipc" = bitcast i8 addrspace(1)* %".fca.0.extract17'ipev" to double addrspace(1)*, !dbg !561 %35 = bitcast i8 addrspace(1)* %.fca.0.extract17 to double addrspace(1)*, !dbg !561 %36 = trunc i64 %34 to i32, !dbg !561 %"'ipg" = getelementptr inbounds double, double addrspace(1)* %"'ipc", i32 %36, !dbg !561 %37 = getelementptr inbounds double, double addrspace(1)* %35, i32 %36, !dbg !561 %38 = load double, double addrspace(1)* %37, align 8, !dbg !561, !tbaa !312, !alias.scope !568, !noalias !571 %"'ipg11" = getelementptr inbounds [1 x [3 x double]], [1 x [3 x double]]* %"'ipa", i32 0, i32 0, i32 0, !dbg !573 %39 = getelementptr inbounds [1 x [3 x double]], [1 x [3 x double]]* %6, i32 0, i32 0, i32 0, !dbg !573 %40 = load double, double* %39, align 8, !dbg !575, !tbaa !371, !alias.scope !576, !noalias !579 %41 = fadd double %38, %40, !dbg !575 store double %41, double addrspace(1)* %37, align 8, !dbg !581, !tbaa !312, !alias.scope !568, !noalias !589 br label %julia_kernel__3671_inner.exit, !dbg !590 julia_kernel__3671_inner.exit: ; preds = %L30.i, %entry call void @llvm.lifetime.end.p0i8(i64 noundef 12, i8* noundef nonnull %_replacementA3) #142, !dbg !591 call void @llvm.lifetime.end.p0i8(i64 noundef 12, i8* noundef nonnull %_replacementA2) #142, !dbg !591 call void @llvm.lifetime.end.p0i8(i64 noundef 24, i8* noundef nonnull align 8 dereferenceable(24) %_replacementA) #142, !dbg !591 br label %invertjulia_kernel__3671_inner.exit, !dbg !486 allocsForInversion: ; No predecessors! %_cache = alloca i32, align 4 %"'de" = alloca double, align 8 %42 = getelementptr double, double* %"'de", i64 0 store double 0.000000e+00, double* %42, align 8 %"'de9" = alloca double, align 8 %43 = getelementptr double, double* %"'de9", i64 0 store double 0.000000e+00, double* %43, align 8 %"'de10" = alloca double, align 8 %44 = getelementptr double, double* %"'de10", i64 0 store double 0.000000e+00, double* %44, align 8 invertentry: ; No predecessors! ret void invertL30.i: ; No predecessors! %".fca.0.extract17'ipev_unwrap" = extractvalue { i8 addrspace(1)*, i64, [2 x i64], i64 } %"'", 0 %"'ipc_unwrap" = bitcast i8 addrspace(1)* %".fca.0.extract17'ipev_unwrap" to double addrspace(1)* %45 = load i32, i32* %_cache, align 4, !dbg !518, !tbaa !312, !invariant.group !539 %_unwrap = sext i32 %45 to i64 %_unwrap4 = add nsw i64 %_unwrap, -1 %_unwrap5 = icmp sgt i64 %.fca.2.0.extract19, 0 %_unwrap6 = select i1 %_unwrap5, i64 %.fca.2.0.extract19, i64 0 %_unwrap7 = mul i64 %_unwrap4, %_unwrap6 %_unwrap8 = trunc i64 %_unwrap7 to i32 %"'ipg_unwrap" = getelementptr inbounds double, double addrspace(1)* %"'ipc_unwrap", i32 %_unwrap8 %46 = load double, double addrspace(1)* %"'ipg_unwrap", align 8, !tbaa !312, !alias.scope !571, !noalias !592 store double 0.000000e+00, double addrspace(1)* %"'ipg_unwrap", align 8, !dbg !581, !tbaa !312, !alias.scope !571, !noalias !592 %47 = load double, double* %"'de", align 8 %48 = fadd fast double %47, %46 store double %48, double* %"'de", align 8 %49 = load double, double* %"'de", align 8 store double 0.000000e+00, double* %"'de", align 8 %50 = load double, double* %"'de9", align 8 %51 = fadd fast double %50, %49 store double %51, double* %"'de9", align 8 %52 = load double, double* %"'de10", align 8 %53 = fadd fast double %52, %49 store double %53, double* %"'de10", align 8 %54 = load double, double* %"'de10", align 8 store double 0.000000e+00, double* %"'de10", align 8 %"'ipg11_unwrap" = getelementptr inbounds [1 x [3 x double]], [1 x [3 x double]]* %"'ipa", i32 0, i32 0, i32 0 %55 = load double, double* %"'ipg11_unwrap", align 8, !dbg !575, !tbaa !371, !alias.scope !593, !noalias !594 %56 = fadd fast double %55, %54 store double %56, double* %"'ipg11_unwrap", align 8, !dbg !575, !tbaa !371, !alias.scope !593, !noalias !594 %57 = load double, double* %"'de9", align 8 store double 0.000000e+00, double* %"'de9", align 8 %58 = atomicrmw fadd double addrspace(1)* %"'ipg_unwrap", double %57 monotonic, align 8 %_unwrap12 = addrspacecast [1 x [3 x float]]* %4 to [1 x [3 x float]] addrspace(11)* %"'ipc14_unwrap" = addrspacecast [1 x [3 x float]]* %"'ipa13" to [1 x [3 x float]] addrspace(11)* %_unwrap15 = addrspacecast [1 x [3 x float]]* %5 to [1 x [3 x float]] addrspace(11)* %"'ipc17_unwrap" = addrspacecast [1 x [3 x float]]* %"'ipa16" to [1 x [3 x float]] addrspace(11)* invertjulia_kernel__3671_inner.exit: ; preds = %julia_kernel__3671_inner.exit } ; Function Attrs: mustprogress willreturn define internal fastcc void @preprocess_julia_force_3701([1 x [3 x double]]* noalias nocapture nofree noundef nonnull writeonly sret([1 x [3 x double]]) align 8 dereferenceable(24) %0, [1 x [3 x float]] addrspace(11)* nocapture nofree noundef nonnull readonly align 4 dereferenceable(12) %1, [1 x [3 x float]] addrspace(11)* nocapture nofree noundef nonnull readonly align 4 dereferenceable(12) %2) unnamed_addr #134 !dbg !595 { top: %3 = call {}*** @julia.get_pgcstack() #142 %4 = getelementptr inbounds [1 x [3 x float]], [1 x [3 x float]] addrspace(11)* %2, i32 0, i32 0, i32 0, !dbg !596 %5 = getelementptr inbounds [1 x [3 x float]], [1 x [3 x float]] addrspace(11)* %1, i32 0, i32 0, i32 0, !dbg !596 %6 = load float, float addrspace(11)* %4, align 4, !dbg !603, !tbaa !67, !invariant.load !11, !alias.scope !71, !noalias !74 %7 = load float, float addrspace(11)* %5, align 4, !dbg !603, !tbaa !67, !invariant.load !11, !alias.scope !71, !noalias !74 %8 = fsub float %6, %7, !dbg !603 %9 = getelementptr inbounds [1 x [3 x float]], [1 x [3 x float]] addrspace(11)* %2, i32 0, i32 0, i32 1, !dbg !596 %10 = getelementptr inbounds [1 x [3 x float]], [1 x [3 x float]] addrspace(11)* %1, i32 0, i32 0, i32 1, !dbg !596 %11 = load float, float addrspace(11)* %9, align 4, !dbg !603, !tbaa !67, !invariant.load !11, !alias.scope !71, !noalias !74 %12 = load float, float addrspace(11)* %10, align 4, !dbg !603, !tbaa !67, !invariant.load !11, !alias.scope !71, !noalias !74 %13 = fsub float %11, %12, !dbg !603 %14 = getelementptr inbounds [1 x [3 x float]], [1 x [3 x float]] addrspace(11)* %2, i32 0, i32 0, i32 2, !dbg !596 %15 = getelementptr inbounds [1 x [3 x float]], [1 x [3 x float]] addrspace(11)* %1, i32 0, i32 0, i32 2, !dbg !596 %16 = load float, float addrspace(11)* %14, align 4, !dbg !603, !tbaa !67, !invariant.load !11, !alias.scope !71, !noalias !74 %17 = load float, float addrspace(11)* %15, align 4, !dbg !603, !tbaa !67, !invariant.load !11, !alias.scope !71, !noalias !74 %18 = fsub float %16, %17, !dbg !603 %19 = fmul float %8, %8, !dbg !604 %20 = fmul float %13, %13, !dbg !604 %21 = fadd float %19, %20, !dbg !611 %22 = fmul float %18, %18, !dbg !604 %23 = fadd float %21, %22, !dbg !611 %24 = call float @__nv_sqrtf(float %23) #144, !dbg !612 %25 = fcmp ule float %24, 0.000000e+00, !dbg !613 br i1 %25, label %L32, label %L25, !dbg !614 L25: ; preds = %top %26 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #144, !dbg !615 %.not = icmp eq i32 %26, 0, !dbg !615 %27 = call float @llvm.nvvm.fabs.ftz.f(float %24) #144, !dbg !615 %28 = call float @llvm.fabs.f32(float %24) #142, !dbg !615 %.0.i = select i1 %.not, float %28, float %27, !dbg !615 %29 = fcmp uge float %.0.i, 0x7FF0000000000000, !dbg !615 br i1 %29, label %L32, label %L79, !dbg !614 L32: ; preds = %L25, %top %30 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #144, !dbg !616 %.not49 = icmp eq i32 %30, 0, !dbg !616 %31 = call float @llvm.nvvm.fabs.ftz.f(float %8) #144, !dbg !616 %32 = call float @llvm.fabs.f32(float %8) #142, !dbg !616 %.0.i20 = select i1 %.not49, float %32, float %31, !dbg !616 %33 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #144, !dbg !622 %.not50 = icmp eq i32 %33, 0, !dbg !622 %34 = call float @llvm.nvvm.fabs.ftz.f(float %13) #144, !dbg !622 %35 = call float @llvm.fabs.f32(float %13) #142, !dbg !622 %.0.i36 = select i1 %.not50, float %35, float %34, !dbg !622 %36 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #144, !dbg !625 %.not51 = icmp eq i32 %36, 0, !dbg !625 %37 = call float @llvm.nvvm.fmax.ftz.f(float %.0.i20, float %.0.i36) #144, !dbg !625 %38 = call float @llvm.maxnum.f32(float %.0.i20, float %.0.i36) #142, !dbg !625 %.0.i38 = select i1 %.not51, float %38, float %37, !dbg !625 %39 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #144, !dbg !622 %.not50.1 = icmp eq i32 %39, 0, !dbg !622 %40 = call float @llvm.nvvm.fabs.ftz.f(float %18) #144, !dbg !622 %41 = call float @llvm.fabs.f32(float %18) #142, !dbg !622 %.0.i36.1 = select i1 %.not50.1, float %41, float %40, !dbg !622 %42 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #144, !dbg !625 %.not51.1 = icmp eq i32 %42, 0, !dbg !625 %43 = call float @llvm.nvvm.fmax.ftz.f(float %.0.i38, float %.0.i36.1) #144, !dbg !625 %44 = call float @llvm.maxnum.f32(float %.0.i38, float %.0.i36.1) #142, !dbg !625 %.0.i38.1 = select i1 %.not51.1, float %44, float %43, !dbg !625 %45 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #144, !dbg !626 %.not53 = icmp eq i32 %45, 0, !dbg !626 %46 = call float @llvm.nvvm.fabs.ftz.f(float %.0.i38.1) #144, !dbg !626 %47 = call float @llvm.fabs.f32(float %.0.i38.1) #142, !dbg !626 %.0.i21 = select i1 %.not53, float %47, float %46, !dbg !626 %48 = fcmp olt float %.0.i21, 0x7FF0000000000000, !dbg !626 br i1 %48, label %L60, label %L79, !dbg !627 L60: ; preds = %L32 %49 = fcmp une float %.0.i38.1, 0.000000e+00, !dbg !628 br i1 %49, label %L64, label %L62, !dbg !630 L62: ; preds = %L60 %50 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #144, !dbg !631 %.not54 = icmp eq i32 %50, 0, !dbg !631 %51 = call float @llvm.nvvm.fabs.ftz.f(float noundef 0.000000e+00) #144, !dbg !631 %.0.i23 = select i1 %.not54, float 0.000000e+00, float %51, !dbg !631 br label %L79, !dbg !635 L64: ; preds = %L60 %52 = fdiv float %8, %.0.i38.1, !dbg !637 %53 = fmul float %52, %52, !dbg !639 %54 = fdiv float %13, %.0.i38.1, !dbg !637 %55 = fmul float %54, %54, !dbg !639 %56 = fadd float %53, %55, !dbg !642 %57 = fdiv float %18, %.0.i38.1, !dbg !637 %58 = fmul float %57, %57, !dbg !639 %59 = fadd float %58, %56, !dbg !642 %60 = call float @__nv_sqrtf(float %59) #144, !dbg !643 %61 = fmul float %.0.i38.1, %60, !dbg !644 br label %L79, !dbg !635 L79: ; preds = %L64, %L62, %L32, %L25 %value_phi = phi float [ %24, %L25 ], [ %.0.i23, %L62 ], [ %61, %L64 ], [ %.0.i38.1, %L32 ] %62 = call float @__nv_sqrtf(float %23) #144, !dbg !645 %63 = fcmp ule float %62, 0.000000e+00, !dbg !651 br i1 %63, label %L96, label %L89, !dbg !652 L89: ; preds = %L79 %64 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #144, !dbg !653 %.not42 = icmp eq i32 %64, 0, !dbg !653 %65 = call float @llvm.nvvm.fabs.ftz.f(float %62) #144, !dbg !653 %66 = call float @llvm.fabs.f32(float %62) #142, !dbg !653 %.0.i25 = select i1 %.not42, float %66, float %65, !dbg !653 %67 = fcmp uge float %.0.i25, 0x7FF0000000000000, !dbg !653 br i1 %67, label %L96, label %L143, !dbg !652 L96: ; preds = %L89, %L79 %68 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #144, !dbg !654 %.not43 = icmp eq i32 %68, 0, !dbg !654 %69 = call float @llvm.nvvm.fabs.ftz.f(float %8) #144, !dbg !654 %70 = call float @llvm.fabs.f32(float %8) #142, !dbg !654 %.0.i27 = select i1 %.not43, float %70, float %69, !dbg !654 %71 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #144, !dbg !660 %.not44 = icmp eq i32 %71, 0, !dbg !660 %72 = call float @llvm.nvvm.fabs.ftz.f(float %13) #144, !dbg !660 %73 = call float @llvm.fabs.f32(float %13) #142, !dbg !660 %.0.i33 = select i1 %.not44, float %73, float %72, !dbg !660 %74 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #144, !dbg !663 %.not45 = icmp eq i32 %74, 0, !dbg !663 %75 = call float @llvm.nvvm.fmax.ftz.f(float %.0.i27, float %.0.i33) #144, !dbg !663 %76 = call float @llvm.maxnum.f32(float %.0.i27, float %.0.i33) #142, !dbg !663 %.0.i35 = select i1 %.not45, float %76, float %75, !dbg !663 %77 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #144, !dbg !660 %.not44.1 = icmp eq i32 %77, 0, !dbg !660 %78 = call float @llvm.nvvm.fabs.ftz.f(float %18) #144, !dbg !660 %79 = call float @llvm.fabs.f32(float %18) #142, !dbg !660 %.0.i33.1 = select i1 %.not44.1, float %79, float %78, !dbg !660 %80 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #144, !dbg !663 %.not45.1 = icmp eq i32 %80, 0, !dbg !663 %81 = call float @llvm.nvvm.fmax.ftz.f(float %.0.i35, float %.0.i33.1) #144, !dbg !663 %82 = call float @llvm.maxnum.f32(float %.0.i35, float %.0.i33.1) #142, !dbg !663 %.0.i35.1 = select i1 %.not45.1, float %82, float %81, !dbg !663 %83 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #144, !dbg !664 %.not47 = icmp eq i32 %83, 0, !dbg !664 %84 = call float @llvm.nvvm.fabs.ftz.f(float %.0.i35.1) #144, !dbg !664 %85 = call float @llvm.fabs.f32(float %.0.i35.1) #142, !dbg !664 %.0.i29 = select i1 %.not47, float %85, float %84, !dbg !664 %86 = fcmp olt float %.0.i29, 0x7FF0000000000000, !dbg !664 br i1 %86, label %L124, label %L143, !dbg !665 L124: ; preds = %L96 %87 = fcmp une float %.0.i35.1, 0.000000e+00, !dbg !666 br i1 %87, label %L128, label %L126, !dbg !668 L126: ; preds = %L124 %88 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #144, !dbg !669 %.not48 = icmp eq i32 %88, 0, !dbg !669 %89 = call float @llvm.nvvm.fabs.ftz.f(float noundef 0.000000e+00) #144, !dbg !669 %.0.i31 = select i1 %.not48, float 0.000000e+00, float %89, !dbg !669 br label %L143, !dbg !673 L128: ; preds = %L124 %90 = fdiv float %8, %.0.i35.1, !dbg !675 %91 = fmul float %90, %90, !dbg !677 %92 = fdiv float %13, %.0.i35.1, !dbg !675 %93 = fmul float %92, %92, !dbg !677 %94 = fadd float %91, %93, !dbg !680 %95 = fdiv float %18, %.0.i35.1, !dbg !675 %96 = fmul float %95, %95, !dbg !677 %97 = fadd float %96, %94, !dbg !680 %98 = call float @__nv_sqrtf(float %97) #144, !dbg !681 %99 = fmul float %.0.i35.1, %98, !dbg !682 br label %L143, !dbg !673 L143: ; preds = %L128, %L126, %L96, %L89 %value_phi1 = phi float [ %62, %L89 ], [ %.0.i31, %L126 ], [ %99, %L128 ], [ %.0.i35.1, %L96 ] %100 = fpext float %value_phi to double, !dbg !683 %101 = fadd double %100, -1.000000e+00, !dbg !688 %102 = fdiv float 1.000000e+00, %value_phi1, !dbg !689 %103 = fmul float %8, %102, !dbg !691 %104 = fpext float %103 to double, !dbg !697 %105 = fmul double %101, %104, !dbg !707 %.sroa.0.0..sroa_idx = getelementptr inbounds [1 x [3 x double]], [1 x [3 x double]]* %0, i32 0, i32 0, i32 0, !dbg !708 store double %105, double* %.sroa.0.0..sroa_idx, align 8, !dbg !708, !noalias !709 ret void, !dbg !708 } ; Function Attrs: mustprogress willreturn define internal fastcc { {} addrspace(10)* } @fakeaugmented_julia_force_3701([1 x [3 x double]]* noalias nocapture nofree noundef nonnull writeonly sret([1 x [3 x double]]) align 8 dereferenceable(24) "enzyme_sret" %0, [1 x [3 x double]]* nocapture "enzyme_sret" %"'", [1 x [3 x float]] addrspace(11)* nocapture nofree noundef nonnull readonly align 4 dereferenceable(12) %1, [1 x [3 x float]] addrspace(11)* nocapture %"'1", [1 x [3 x float]] addrspace(11)* nocapture nofree noundef nonnull readonly align 4 dereferenceable(12) %2, [1 x [3 x float]] addrspace(11)* nocapture %"'2") unnamed_addr #134 !dbg !712 { top: %3 = call {}*** @julia.get_pgcstack() #142 %4 = getelementptr inbounds [1 x [3 x float]], [1 x [3 x float]] addrspace(11)* %2, i32 0, i32 0, i32 0, !dbg !713 %5 = getelementptr inbounds [1 x [3 x float]], [1 x [3 x float]] addrspace(11)* %1, i32 0, i32 0, i32 0, !dbg !713 %6 = load float, float addrspace(11)* %4, align 4, !dbg !720, !tbaa !67, !invariant.load !11, !alias.scope !721, !noalias !724 %7 = load float, float addrspace(11)* %5, align 4, !dbg !720, !tbaa !67, !invariant.load !11, !alias.scope !726, !noalias !729 %8 = fsub float %6, %7, !dbg !720 %9 = getelementptr inbounds [1 x [3 x float]], [1 x [3 x float]] addrspace(11)* %2, i32 0, i32 0, i32 1, !dbg !713 %10 = getelementptr inbounds [1 x [3 x float]], [1 x [3 x float]] addrspace(11)* %1, i32 0, i32 0, i32 1, !dbg !713 %11 = load float, float addrspace(11)* %9, align 4, !dbg !720, !tbaa !67, !invariant.load !11, !alias.scope !721, !noalias !724 %12 = load float, float addrspace(11)* %10, align 4, !dbg !720, !tbaa !67, !invariant.load !11, !alias.scope !726, !noalias !729 %13 = fsub float %11, %12, !dbg !720 %14 = getelementptr inbounds [1 x [3 x float]], [1 x [3 x float]] addrspace(11)* %2, i32 0, i32 0, i32 2, !dbg !713 %15 = getelementptr inbounds [1 x [3 x float]], [1 x [3 x float]] addrspace(11)* %1, i32 0, i32 0, i32 2, !dbg !713 %16 = load float, float addrspace(11)* %14, align 4, !dbg !720, !tbaa !67, !invariant.load !11, !alias.scope !721, !noalias !724 %17 = load float, float addrspace(11)* %15, align 4, !dbg !720, !tbaa !67, !invariant.load !11, !alias.scope !726, !noalias !729 %18 = fsub float %16, %17, !dbg !720 %19 = fmul float %8, %8, !dbg !731 %20 = fmul float %13, %13, !dbg !731 %21 = fadd float %19, %20, !dbg !738 %22 = fmul float %18, %18, !dbg !731 %23 = fadd float %21, %22, !dbg !738 %24 = call float @__nv_sqrtf(float %23) #144, !dbg !739 %25 = fcmp ule float %24, 0.000000e+00, !dbg !740 br i1 %25, label %L32, label %L25, !dbg !741 L25: ; preds = %top %26 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #144, !dbg !742 %.not = icmp eq i32 %26, 0, !dbg !742 %27 = call float @llvm.nvvm.fabs.ftz.f(float %24) #144, !dbg !742 %28 = call float @llvm.fabs.f32(float %24) #142, !dbg !742 %.0.i = select i1 %.not, float %28, float %27, !dbg !742 %29 = fcmp uge float %.0.i, 0x7FF0000000000000, !dbg !742 br i1 %29, label %L32, label %L79, !dbg !741 L32: ; preds = %L25, %top %30 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #144, !dbg !743 %"'ip_phi" = phi i32 , !dbg !743 %.not49 = icmp eq i32 %30, 0, !dbg !743 %31 = call float @llvm.nvvm.fabs.ftz.f(float %8) #144, !dbg !743 %32 = call float @llvm.fabs.f32(float %8) #142, !dbg !743 %.0.i20 = select i1 %.not49, float %32, float %31, !dbg !743 %33 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #144, !dbg !749 %"'ip_phi3" = phi i32 , !dbg !749 %.not50 = icmp eq i32 %33, 0, !dbg !749 %34 = call float @llvm.nvvm.fabs.ftz.f(float %13) #144, !dbg !749 %35 = call float @llvm.fabs.f32(float %13) #142, !dbg !749 %.0.i36 = select i1 %.not50, float %35, float %34, !dbg !749 %36 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #144, !dbg !752 %"'ip_phi4" = phi i32 , !dbg !752 %.not51 = icmp eq i32 %36, 0, !dbg !752 %37 = call float @llvm.nvvm.fmax.ftz.f(float %.0.i20, float %.0.i36) #144, !dbg !752 %38 = call float @llvm.maxnum.f32(float %.0.i20, float %.0.i36) #142, !dbg !752 %.0.i38 = select i1 %.not51, float %38, float %37, !dbg !752 %39 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #144, !dbg !749 %"'ip_phi5" = phi i32 , !dbg !749 %.not50.1 = icmp eq i32 %39, 0, !dbg !749 %40 = call float @llvm.nvvm.fabs.ftz.f(float %18) #144, !dbg !749 %41 = call float @llvm.fabs.f32(float %18) #142, !dbg !749 %.0.i36.1 = select i1 %.not50.1, float %41, float %40, !dbg !749 %42 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #144, !dbg !752 %"'ip_phi6" = phi i32 , !dbg !752 %.not51.1 = icmp eq i32 %42, 0, !dbg !752 %43 = call float @llvm.nvvm.fmax.ftz.f(float %.0.i38, float %.0.i36.1) #144, !dbg !752 %44 = call float @llvm.maxnum.f32(float %.0.i38, float %.0.i36.1) #142, !dbg !752 %.0.i38.1 = select i1 %.not51.1, float %44, float %43, !dbg !752 %45 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #144, !dbg !753 %.not53 = icmp eq i32 %45, 0, !dbg !753 %46 = call float @llvm.nvvm.fabs.ftz.f(float %.0.i38.1) #144, !dbg !753 %47 = call float @llvm.fabs.f32(float %.0.i38.1) #142, !dbg !753 %.0.i21 = select i1 %.not53, float %47, float %46, !dbg !753 %48 = fcmp olt float %.0.i21, 0x7FF0000000000000, !dbg !753 br i1 %48, label %L60, label %L79, !dbg !754 L60: ; preds = %L32 %49 = fcmp une float %.0.i38.1, 0.000000e+00, !dbg !755 br i1 %49, label %L64, label %L62, !dbg !757 L62: ; preds = %L60 %50 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #144, !dbg !758 %"'ip_phi7" = phi i32 , !dbg !758 %.not54 = icmp eq i32 %50, 0, !dbg !758 %51 = call float @llvm.nvvm.fabs.ftz.f(float noundef 0.000000e+00) #144, !dbg !758 %.0.i23 = select i1 %.not54, float 0.000000e+00, float %51, !dbg !758 br label %L79, !dbg !762 L64: ; preds = %L60 %52 = fdiv float %8, %.0.i38.1, !dbg !764 %53 = fmul float %52, %52, !dbg !766 %54 = fdiv float %13, %.0.i38.1, !dbg !764 %55 = fmul float %54, %54, !dbg !766 %56 = fadd float %53, %55, !dbg !769 %57 = fdiv float %18, %.0.i38.1, !dbg !764 %58 = fmul float %57, %57, !dbg !766 %59 = fadd float %58, %56, !dbg !769 %60 = call float @__nv_sqrtf(float %59) #144, !dbg !770 %61 = fmul float %.0.i38.1, %60, !dbg !771 br label %L79, !dbg !762 L79: ; preds = %L64, %L62, %L32, %L25 %value_phi = phi float [ %24, %L25 ], [ %.0.i23, %L62 ], [ %61, %L64 ], [ %.0.i38.1, %L32 ] %62 = call float @__nv_sqrtf(float %23) #144, !dbg !772 %63 = fcmp ule float %62, 0.000000e+00, !dbg !778 br i1 %63, label %L96, label %L89, !dbg !779 L89: ; preds = %L79 %64 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #144, !dbg !780 %.not42 = icmp eq i32 %64, 0, !dbg !780 %65 = call float @llvm.nvvm.fabs.ftz.f(float %62) #144, !dbg !780 %66 = call float @llvm.fabs.f32(float %62) #142, !dbg !780 %.0.i25 = select i1 %.not42, float %66, float %65, !dbg !780 %67 = fcmp uge float %.0.i25, 0x7FF0000000000000, !dbg !780 br i1 %67, label %L96, label %L143, !dbg !779 L96: ; preds = %L89, %L79 %68 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #144, !dbg !781 %"'ip_phi8" = phi i32 , !dbg !781 %.not43 = icmp eq i32 %68, 0, !dbg !781 %69 = call float @llvm.nvvm.fabs.ftz.f(float %8) #144, !dbg !781 %70 = call float @llvm.fabs.f32(float %8) #142, !dbg !781 %.0.i27 = select i1 %.not43, float %70, float %69, !dbg !781 %71 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #144, !dbg !787 %"'ip_phi9" = phi i32 , !dbg !787 %.not44 = icmp eq i32 %71, 0, !dbg !787 %72 = call float @llvm.nvvm.fabs.ftz.f(float %13) #144, !dbg !787 %73 = call float @llvm.fabs.f32(float %13) #142, !dbg !787 %.0.i33 = select i1 %.not44, float %73, float %72, !dbg !787 %74 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #144, !dbg !790 %"'ip_phi10" = phi i32 , !dbg !790 %.not45 = icmp eq i32 %74, 0, !dbg !790 %75 = call float @llvm.nvvm.fmax.ftz.f(float %.0.i27, float %.0.i33) #144, !dbg !790 %76 = call float @llvm.maxnum.f32(float %.0.i27, float %.0.i33) #142, !dbg !790 %.0.i35 = select i1 %.not45, float %76, float %75, !dbg !790 %77 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #144, !dbg !787 %"'ip_phi11" = phi i32 , !dbg !787 %.not44.1 = icmp eq i32 %77, 0, !dbg !787 %78 = call float @llvm.nvvm.fabs.ftz.f(float %18) #144, !dbg !787 %79 = call float @llvm.fabs.f32(float %18) #142, !dbg !787 %.0.i33.1 = select i1 %.not44.1, float %79, float %78, !dbg !787 %80 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #144, !dbg !790 %"'ip_phi12" = phi i32 , !dbg !790 %.not45.1 = icmp eq i32 %80, 0, !dbg !790 %81 = call float @llvm.nvvm.fmax.ftz.f(float %.0.i35, float %.0.i33.1) #144, !dbg !790 %82 = call float @llvm.maxnum.f32(float %.0.i35, float %.0.i33.1) #142, !dbg !790 %.0.i35.1 = select i1 %.not45.1, float %82, float %81, !dbg !790 %83 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #144, !dbg !791 %.not47 = icmp eq i32 %83, 0, !dbg !791 %84 = call float @llvm.nvvm.fabs.ftz.f(float %.0.i35.1) #144, !dbg !791 %85 = call float @llvm.fabs.f32(float %.0.i35.1) #142, !dbg !791 %.0.i29 = select i1 %.not47, float %85, float %84, !dbg !791 %86 = fcmp olt float %.0.i29, 0x7FF0000000000000, !dbg !791 br i1 %86, label %L124, label %L143, !dbg !792 L124: ; preds = %L96 %87 = fcmp une float %.0.i35.1, 0.000000e+00, !dbg !793 br i1 %87, label %L128, label %L126, !dbg !795 L126: ; preds = %L124 %88 = call i32 @__nvvm_reflect(i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) #144, !dbg !796 %"'ip_phi13" = phi i32 , !dbg !796 %.not48 = icmp eq i32 %88, 0, !dbg !796 %89 = call float @llvm.nvvm.fabs.ftz.f(float noundef 0.000000e+00) #144, !dbg !796 %.0.i31 = select i1 %.not48, float 0.000000e+00, float %89, !dbg !796 br label %L143, !dbg !800 L128: ; preds = %L124 %90 = fdiv float %8, %.0.i35.1, !dbg !802 %91 = fmul float %90, %90, !dbg !804 %92 = fdiv float %13, %.0.i35.1, !dbg !802 %93 = fmul float %92, %92, !dbg !804 %94 = fadd float %91, %93, !dbg !807 %95 = fdiv float %18, %.0.i35.1, !dbg !802 %96 = fmul float %95, %95, !dbg !804 %97 = fadd float %96, %94, !dbg !807 %98 = call float @__nv_sqrtf(float %97) #144, !dbg !808 %99 = fmul float %.0.i35.1, %98, !dbg !809 br label %L143, !dbg !800 L143: ; preds = %L128, %L126, %L96, %L89 %value_phi1 = phi float [ %62, %L89 ], [ %.0.i31, %L126 ], [ %99, %L128 ], [ %.0.i35.1, %L96 ] %100 = fpext float %value_phi to double, !dbg !810 %101 = fadd double %100, -1.000000e+00, !dbg !815 %102 = fdiv float 1.000000e+00, %value_phi1, !dbg !816 %103 = fmul float %8, %102, !dbg !818 %104 = fpext float %103 to double, !dbg !824 %105 = fmul double %101, %104, !dbg !834 %.sroa.0.0..sroa_idx = getelementptr inbounds [1 x [3 x double]], [1 x [3 x double]]* %0, i32 0, i32 0, i32 0, !dbg !835 store double %105, double* %.sroa.0.0..sroa_idx, align 8, !dbg !835, !noalias !836 ret { {} addrspace(10)* } undef, !dbg !835 allocsForInversion: ; No predecessors! } attributes #0 = { nofree readnone "enzyme_inactive" "enzyme_shouldrecompute" "enzymejl_world"="33509" } attributes #1 = { "enzymejl_mi"="140021451715248" "enzymejl_rt"="140027492362832" "enzymejl_world"="33509" "frame-pointer"="all" "probe-stack"="inline-asm" } attributes #2 = { nounwind readnone speculatable "enzymejl_world"="33509" } attributes #3 = { nofree nosync nounwind readnone speculatable willreturn "enzymejl_world"="33509" } attributes #4 = { "disable-tail-calls"="false" "enzymejl_world"="33509" "frame-pointer"="all" "less-precise-fpmad"="false" "no-infs-fp-math"="false" "no-nans-fp-math"="false" "stack-protector-buffer-size"="8" "unsafe-fp-math"="false" "use-soft-float"="false" } attributes #5 = { nofree nosync nounwind readnone willreturn "enzymejl_world"="33509" } attributes #6 = { noinline nounwind "disable-tail-calls"="false" "enzyme_math"="exp2f" "enzymejl_world"="33509" "frame-pointer"="all" "implements"="llvm.exp2.f32" "implements2"="exp2f" "less-precise-fpmad"="false" "no-infs-fp-math"="false" "no-nans-fp-math"="false" "stack-protector-buffer-size"="8" "unsafe-fp-math"="false" "use-soft-float"="false" } attributes #7 = { noinline nounwind "disable-tail-calls"="false" "enzyme_math"="sqrtf" "enzymejl_world"="33509" "frame-pointer"="all" "implements"="llvm.sqrt.f32" "implements2"="sqrtf" "less-precise-fpmad"="false" "no-infs-fp-math"="false" "no-nans-fp-math"="false" "stack-protector-buffer-size"="8" "unsafe-fp-math"="false" "use-soft-float"="false" } attributes #8 = { nofree noinline nosync nounwind readnone willreturn "disable-tail-calls"="false" "enzyme_math"="sqrt" "enzymejl_world"="33509" "frame-pointer"="all" "implements"="llvm.sqrt.f64" "implements2"="sqrt" "less-precise-fpmad"="false" "no-infs-fp-math"="false" "no-nans-fp-math"="false" "stack-protector-buffer-size"="8" "unsafe-fp-math"="false" "use-soft-float"="false" } attributes #9 = { noinline nounwind "disable-tail-calls"="false" "enzyme_math"="isinff" "enzymejl_world"="33509" "frame-pointer"="all" "implements"="llvm.isinf.f32" "implements2"="isinff" "less-precise-fpmad"="false" "no-infs-fp-math"="false" "no-nans-fp-math"="false" "stack-protector-buffer-size"="8" "unsafe-fp-math"="false" "use-soft-float"="false" } attributes #10 = { noinline nounwind "disable-tail-calls"="false" "enzyme_math"="sinf" "enzymejl_world"="33509" "frame-pointer"="all" "implements"="llvm.sin.f32" "implements2"="sinf" "less-precise-fpmad"="false" "no-infs-fp-math"="false" "no-nans-fp-math"="false" "stack-protector-buffer-size"="8" "unsafe-fp-math"="false" "use-soft-float"="false" } attributes #11 = { noinline nounwind "disable-tail-calls"="false" "enzyme_math"="cosf" "enzymejl_world"="33509" "frame-pointer"="all" "implements"="llvm.cos.f32" "implements2"="cosf" "less-precise-fpmad"="false" "no-infs-fp-math"="false" "no-nans-fp-math"="false" "stack-protector-buffer-size"="8" "unsafe-fp-math"="false" "use-soft-float"="false" } attributes #12 = { noinline nounwind "disable-tail-calls"="false" "enzyme_math"="tanf" "enzymejl_world"="33509" "frame-pointer"="all" "implements"="llvm.tan.f32" "implements2"="tanf" "less-precise-fpmad"="false" "no-infs-fp-math"="false" "no-nans-fp-math"="false" "stack-protector-buffer-size"="8" "unsafe-fp-math"="false" "use-soft-float"="false" } attributes #13 = { noinline nounwind "disable-tail-calls"="false" "enzyme_math"="log2f" "enzymejl_world"="33509" "frame-pointer"="all" "implements"="llvm.log2.f32" "implements2"="log2f" "less-precise-fpmad"="false" "no-infs-fp-math"="false" "no-nans-fp-math"="false" "stack-protector-buffer-size"="8" "unsafe-fp-math"="false" "use-soft-float"="false" } attributes #14 = { noinline nounwind "disable-tail-calls"="false" "enzyme_math"="expf" "enzymejl_world"="33509" "frame-pointer"="all" "implements"="llvm.exp.f32" "implements2"="expf" "less-precise-fpmad"="false" "no-infs-fp-math"="false" "no-nans-fp-math"="false" "stack-protector-buffer-size"="8" "unsafe-fp-math"="false" "use-soft-float"="false" } attributes #15 = { noinline nounwind "disable-tail-calls"="false" "enzyme_math"="exp10f" "enzymejl_world"="33509" "frame-pointer"="all" "implements"="llvm.exp10.f32" "implements2"="exp10f" "less-precise-fpmad"="false" "no-infs-fp-math"="false" "no-nans-fp-math"="false" "stack-protector-buffer-size"="8" "unsafe-fp-math"="false" "use-soft-float"="false" } attributes #16 = { noinline nounwind "disable-tail-calls"="false" "enzyme_math"="coshf" "enzymejl_world"="33509" "frame-pointer"="all" "implements"="llvm.cosh.f32" "implements2"="coshf" "less-precise-fpmad"="false" "no-infs-fp-math"="false" "no-nans-fp-math"="false" "stack-protector-buffer-size"="8" "unsafe-fp-math"="false" "use-soft-float"="false" } attributes #17 = { noinline nounwind "disable-tail-calls"="false" "enzyme_math"="sinhf" "enzymejl_world"="33509" "frame-pointer"="all" "implements"="llvm.sinh.f32" "implements2"="sinhf" "less-precise-fpmad"="false" "no-infs-fp-math"="false" "no-nans-fp-math"="false" "stack-protector-buffer-size"="8" "unsafe-fp-math"="false" "use-soft-float"="false" } attributes #18 = { noinline nounwind "disable-tail-calls"="false" "enzyme_math"="tanhf" "enzymejl_world"="33509" "frame-pointer"="all" "implements"="llvm.tanh.f32" "implements2"="tanhf" "less-precise-fpmad"="false" "no-infs-fp-math"="false" "no-nans-fp-math"="false" "stack-protector-buffer-size"="8" "unsafe-fp-math"="false" "use-soft-float"="false" } attributes #19 = { noinline nounwind "disable-tail-calls"="false" "enzyme_math"="atan2f" "enzymejl_world"="33509" "frame-pointer"="all" "implements"="llvm.atan2.f32" "implements2"="atan2f" "less-precise-fpmad"="false" "no-infs-fp-math"="false" "no-nans-fp-math"="false" "stack-protector-buffer-size"="8" "unsafe-fp-math"="false" "use-soft-float"="false" } attributes #20 = { noinline nounwind "disable-tail-calls"="false" "enzyme_math"="atanf" "enzymejl_world"="33509" "frame-pointer"="all" "implements"="llvm.atan.f32" "implements2"="atanf" "less-precise-fpmad"="false" "no-infs-fp-math"="false" "no-nans-fp-math"="false" "stack-protector-buffer-size"="8" "unsafe-fp-math"="false" "use-soft-float"="false" } attributes #21 = { noinline nounwind "disable-tail-calls"="false" "enzyme_math"="asinf" "enzymejl_world"="33509" "frame-pointer"="all" "implements"="llvm.asin.f32" "implements2"="asinf" "less-precise-fpmad"="false" "no-infs-fp-math"="false" "no-nans-fp-math"="false" "stack-protector-buffer-size"="8" "unsafe-fp-math"="false" "use-soft-float"="false" } attributes #22 = { noinline nounwind "disable-tail-calls"="false" "enzyme_math"="acosf" "enzymejl_world"="33509" "frame-pointer"="all" "implements"="llvm.acos.f32" "implements2"="acosf" "less-precise-fpmad"="false" "no-infs-fp-math"="false" "no-nans-fp-math"="false" "stack-protector-buffer-size"="8" "unsafe-fp-math"="false" "use-soft-float"="false" } attributes #23 = { noinline nounwind "disable-tail-calls"="false" "enzyme_math"="logf" "enzymejl_world"="33509" "frame-pointer"="all" "implements"="llvm.log.f32" "implements2"="logf" "less-precise-fpmad"="false" "no-infs-fp-math"="false" "no-nans-fp-math"="false" "stack-protector-buffer-size"="8" "unsafe-fp-math"="false" "use-soft-float"="false" } attributes #24 = { noinline nounwind "disable-tail-calls"="false" "enzyme_math"="log10f" "enzymejl_world"="33509" "frame-pointer"="all" "implements"="llvm.log10.f32" "implements2"="log10f" "less-precise-fpmad"="false" "no-infs-fp-math"="false" "no-nans-fp-math"="false" "stack-protector-buffer-size"="8" "unsafe-fp-math"="false" "use-soft-float"="false" } attributes #25 = { noinline nounwind "disable-tail-calls"="false" "enzyme_math"="log1pf" "enzymejl_world"="33509" "frame-pointer"="all" "implements"="llvm.log1p.f32" "implements2"="log1pf" "less-precise-fpmad"="false" "no-infs-fp-math"="false" "no-nans-fp-math"="false" "stack-protector-buffer-size"="8" "unsafe-fp-math"="false" "use-soft-float"="false" } attributes #26 = { noinline nounwind "disable-tail-calls"="false" "enzyme_math"="acoshf" "enzymejl_world"="33509" "frame-pointer"="all" "implements"="llvm.acosh.f32" "implements2"="acoshf" "less-precise-fpmad"="false" "no-infs-fp-math"="false" "no-nans-fp-math"="false" "stack-protector-buffer-size"="8" "unsafe-fp-math"="false" "use-soft-float"="false" } attributes #27 = { noinline nounwind "disable-tail-calls"="false" "enzyme_math"="asinhf" "enzymejl_world"="33509" "frame-pointer"="all" "implements"="llvm.asinh.f32" "implements2"="asinhf" "less-precise-fpmad"="false" "no-infs-fp-math"="false" "no-nans-fp-math"="false" "stack-protector-buffer-size"="8" "unsafe-fp-math"="false" "use-soft-float"="false" } attributes #28 = { noinline nounwind "disable-tail-calls"="false" "enzyme_math"="atanhf" "enzymejl_world"="33509" "frame-pointer"="all" "implements"="llvm.atanh.f32" "implements2"="atanhf" "less-precise-fpmad"="false" "no-infs-fp-math"="false" "no-nans-fp-math"="false" "stack-protector-buffer-size"="8" "unsafe-fp-math"="false" "use-soft-float"="false" } attributes #29 = { noinline nounwind "disable-tail-calls"="false" "enzyme_math"="expm1f" "enzymejl_world"="33509" "frame-pointer"="all" "implements"="llvm.expm1.f32" "implements2"="expm1f" "less-precise-fpmad"="false" "no-infs-fp-math"="false" "no-nans-fp-math"="false" "stack-protector-buffer-size"="8" "unsafe-fp-math"="false" "use-soft-float"="false" } attributes #30 = { noinline nounwind "disable-tail-calls"="false" "enzyme_math"="hypotf" "enzymejl_world"="33509" "frame-pointer"="all" "implements"="llvm.hypot.f32" "implements2"="hypotf" "less-precise-fpmad"="false" "no-infs-fp-math"="false" "no-nans-fp-math"="false" "stack-protector-buffer-size"="8" "unsafe-fp-math"="false" "use-soft-float"="false" } attributes #31 = { noinline nounwind "disable-tail-calls"="false" "enzyme_math"="rhypotf" "enzymejl_world"="33509" "frame-pointer"="all" "implements"="llvm.rhypot.f32" "implements2"="rhypotf" "less-precise-fpmad"="false" "no-infs-fp-math"="false" "no-nans-fp-math"="false" "stack-protector-buffer-size"="8" "unsafe-fp-math"="false" "use-soft-float"="false" } attributes #32 = { noinline nounwind "disable-tail-calls"="false" "enzyme_math"="norm3df" "enzymejl_world"="33509" "frame-pointer"="all" "implements"="llvm.norm3d.f32" "implements2"="norm3df" "less-precise-fpmad"="false" "no-infs-fp-math"="false" "no-nans-fp-math"="false" "stack-protector-buffer-size"="8" "unsafe-fp-math"="false" "use-soft-float"="false" } attributes #33 = { noinline nounwind "disable-tail-calls"="false" "enzyme_math"="rnorm3df" "enzymejl_world"="33509" "frame-pointer"="all" "implements"="llvm.rnorm3d.f32" "implements2"="rnorm3df" "less-precise-fpmad"="false" "no-infs-fp-math"="false" "no-nans-fp-math"="false" "stack-protector-buffer-size"="8" "unsafe-fp-math"="false" "use-soft-float"="false" } attributes #34 = { noinline nounwind "disable-tail-calls"="false" "enzyme_math"="norm4df" "enzymejl_world"="33509" "frame-pointer"="all" "implements"="llvm.norm4d.f32" "implements2"="norm4df" "less-precise-fpmad"="false" "no-infs-fp-math"="false" "no-nans-fp-math"="false" "stack-protector-buffer-size"="8" "unsafe-fp-math"="false" "use-soft-float"="false" } attributes #35 = { noinline nounwind "disable-tail-calls"="false" "enzyme_math"="rnorm4df" "enzymejl_world"="33509" "frame-pointer"="all" "implements"="llvm.rnorm4d.f32" "implements2"="rnorm4df" "less-precise-fpmad"="false" "no-infs-fp-math"="false" "no-nans-fp-math"="false" "stack-protector-buffer-size"="8" "unsafe-fp-math"="false" "use-soft-float"="false" } attributes #36 = { noinline nounwind "disable-tail-calls"="false" "enzyme_math"="normf" "enzymejl_world"="33509" "frame-pointer"="all" "implements"="llvm.norm.f32" "implements2"="normf" "less-precise-fpmad"="false" "no-infs-fp-math"="false" "no-nans-fp-math"="false" "stack-protector-buffer-size"="8" "unsafe-fp-math"="false" "use-soft-float"="false" } attributes #37 = { noinline nounwind "disable-tail-calls"="false" "enzyme_math"="rnormf" "enzymejl_world"="33509" "frame-pointer"="all" "implements"="llvm.rnorm.f32" "implements2"="rnormf" "less-precise-fpmad"="false" "no-infs-fp-math"="false" "no-nans-fp-math"="false" "stack-protector-buffer-size"="8" "unsafe-fp-math"="false" "use-soft-float"="false" } attributes #38 = { noinline nounwind "disable-tail-calls"="false" "enzyme_math"="cbrtf" "enzymejl_world"="33509" "frame-pointer"="all" "implements"="llvm.cbrt.f32" "implements2"="cbrtf" "less-precise-fpmad"="false" "no-infs-fp-math"="false" "no-nans-fp-math"="false" "stack-protector-buffer-size"="8" "unsafe-fp-math"="false" "use-soft-float"="false" } attributes #39 = { noinline nounwind "disable-tail-calls"="false" "enzyme_math"="rcbrtf" "enzymejl_world"="33509" "frame-pointer"="all" "implements"="llvm.rcbrt.f32" "implements2"="rcbrtf" "less-precise-fpmad"="false" "no-infs-fp-math"="false" "no-nans-fp-math"="false" "stack-protector-buffer-size"="8" "unsafe-fp-math"="false" "use-soft-float"="false" } attributes #40 = { noinline nounwind "disable-tail-calls"="false" "enzyme_math"="j0f" "enzymejl_world"="33509" "frame-pointer"="all" "implements"="llvm.j0.f32" "implements2"="j0f" "less-precise-fpmad"="false" "no-infs-fp-math"="false" "no-nans-fp-math"="false" "stack-protector-buffer-size"="8" "unsafe-fp-math"="false" "use-soft-float"="false" } attributes #41 = { noinline nounwind "disable-tail-calls"="false" "enzyme_math"="j1f" "enzymejl_world"="33509" "frame-pointer"="all" "implements"="llvm.j1.f32" "implements2"="j1f" "less-precise-fpmad"="false" "no-infs-fp-math"="false" "no-nans-fp-math"="false" "stack-protector-buffer-size"="8" "unsafe-fp-math"="false" "use-soft-float"="false" } attributes #42 = { noinline nounwind "disable-tail-calls"="false" "enzyme_math"="y0f" "enzymejl_world"="33509" "frame-pointer"="all" "implements"="llvm.y0.f32" "implements2"="y0f" "less-precise-fpmad"="false" "no-infs-fp-math"="false" "no-nans-fp-math"="false" "stack-protector-buffer-size"="8" "unsafe-fp-math"="false" "use-soft-float"="false" } attributes #43 = { noinline nounwind "disable-tail-calls"="false" "enzyme_math"="y1f" "enzymejl_world"="33509" "frame-pointer"="all" "implements"="llvm.y1.f32" "implements2"="y1f" "less-precise-fpmad"="false" "no-infs-fp-math"="false" "no-nans-fp-math"="false" "stack-protector-buffer-size"="8" "unsafe-fp-math"="false" "use-soft-float"="false" } attributes #44 = { noinline nounwind "disable-tail-calls"="false" "enzyme_math"="ynf" "enzymejl_world"="33509" "frame-pointer"="all" "implements"="llvm.yn.f32" "implements2"="ynf" "less-precise-fpmad"="false" "no-infs-fp-math"="false" "no-nans-fp-math"="false" "stack-protector-buffer-size"="8" "unsafe-fp-math"="false" "use-soft-float"="false" } attributes #45 = { noinline nounwind "disable-tail-calls"="false" "enzyme_math"="jnf" "enzymejl_world"="33509" "frame-pointer"="all" "implements"="llvm.jn.f32" "implements2"="jnf" "less-precise-fpmad"="false" "no-infs-fp-math"="false" "no-nans-fp-math"="false" "stack-protector-buffer-size"="8" "unsafe-fp-math"="false" "use-soft-float"="false" } attributes #46 = { noinline nounwind "disable-tail-calls"="false" "enzyme_math"="erff" "enzymejl_world"="33509" "frame-pointer"="all" "implements"="llvm.erf.f32" "implements2"="erff" "less-precise-fpmad"="false" "no-infs-fp-math"="false" "no-nans-fp-math"="false" "stack-protector-buffer-size"="8" "unsafe-fp-math"="false" "use-soft-float"="false" } attributes #47 = { noinline nounwind "disable-tail-calls"="false" "enzyme_math"="erfinvf" "enzymejl_world"="33509" "frame-pointer"="all" "implements"="llvm.erfinv.f32" "implements2"="erfinvf" "less-precise-fpmad"="false" "no-infs-fp-math"="false" "no-nans-fp-math"="false" "stack-protector-buffer-size"="8" "unsafe-fp-math"="false" "use-soft-float"="false" } attributes #48 = { noinline nounwind "disable-tail-calls"="false" "enzyme_math"="erfcf" "enzymejl_world"="33509" "frame-pointer"="all" "implements"="llvm.erfc.f32" "implements2"="erfcf" "less-precise-fpmad"="false" "no-infs-fp-math"="false" "no-nans-fp-math"="false" "stack-protector-buffer-size"="8" "unsafe-fp-math"="false" "use-soft-float"="false" } attributes #49 = { noinline nounwind "disable-tail-calls"="false" "enzyme_math"="erfcxf" "enzymejl_world"="33509" "frame-pointer"="all" "implements"="llvm.erfcx.f32" "implements2"="erfcxf" "less-precise-fpmad"="false" "no-infs-fp-math"="false" "no-nans-fp-math"="false" "stack-protector-buffer-size"="8" "unsafe-fp-math"="false" "use-soft-float"="false" } attributes #50 = { noinline nounwind "disable-tail-calls"="false" "enzyme_math"="erfcinvf" "enzymejl_world"="33509" "frame-pointer"="all" "implements"="llvm.erfcinv.f32" "implements2"="erfcinvf" "less-precise-fpmad"="false" "no-infs-fp-math"="false" "no-nans-fp-math"="false" "stack-protector-buffer-size"="8" "unsafe-fp-math"="false" "use-soft-float"="false" } attributes #51 = { noinline nounwind "disable-tail-calls"="false" "enzyme_math"="normcdfinvf" "enzymejl_world"="33509" "frame-pointer"="all" "implements"="llvm.normcdfinv.f32" "implements2"="normcdfinvf" "less-precise-fpmad"="false" "no-infs-fp-math"="false" "no-nans-fp-math"="false" "stack-protector-buffer-size"="8" "unsafe-fp-math"="false" "use-soft-float"="false" } attributes #52 = { noinline nounwind "disable-tail-calls"="false" "enzyme_math"="normcdff" "enzymejl_world"="33509" "frame-pointer"="all" "implements"="llvm.normcdf.f32" "implements2"="normcdff" "less-precise-fpmad"="false" "no-infs-fp-math"="false" "no-nans-fp-math"="false" "stack-protector-buffer-size"="8" "unsafe-fp-math"="false" "use-soft-float"="false" } attributes #53 = { noinline nounwind "disable-tail-calls"="false" "enzyme_math"="lgammaf" "enzymejl_world"="33509" "frame-pointer"="all" "implements"="llvm.lgamma.f32" "implements2"="lgammaf" "less-precise-fpmad"="false" "no-infs-fp-math"="false" "no-nans-fp-math"="false" "stack-protector-buffer-size"="8" "unsafe-fp-math"="false" "use-soft-float"="false" } attributes #54 = { noinline nounwind "disable-tail-calls"="false" "enzyme_math"="ldexpf" "enzymejl_world"="33509" "frame-pointer"="all" "implements"="llvm.ldexp.f32" "implements2"="ldexpf" "less-precise-fpmad"="false" "no-infs-fp-math"="false" "no-nans-fp-math"="false" "stack-protector-buffer-size"="8" "unsafe-fp-math"="false" "use-soft-float"="false" } attributes #55 = { noinline nounwind "disable-tail-calls"="false" "enzyme_math"="scalbnf" "enzymejl_world"="33509" "frame-pointer"="all" "implements"="llvm.scalbn.f32" "implements2"="scalbnf" "less-precise-fpmad"="false" "no-infs-fp-math"="false" "no-nans-fp-math"="false" "stack-protector-buffer-size"="8" "unsafe-fp-math"="false" "use-soft-float"="false" } attributes #56 = { noinline nounwind "disable-tail-calls"="false" "enzyme_math"="frexpf" "enzymejl_world"="33509" "frame-pointer"="all" "implements"="llvm.frexp.f32" "implements2"="frexpf" "less-precise-fpmad"="false" "no-infs-fp-math"="false" "no-nans-fp-math"="false" "stack-protector-buffer-size"="8" "unsafe-fp-math"="false" "use-soft-float"="false" } attributes #57 = { noinline nounwind "disable-tail-calls"="false" "enzyme_math"="modff" "enzymejl_world"="33509" "frame-pointer"="all" "implements"="llvm.modf.f32" "implements2"="modff" "less-precise-fpmad"="false" "no-infs-fp-math"="false" "no-nans-fp-math"="false" "stack-protector-buffer-size"="8" "unsafe-fp-math"="false" "use-soft-float"="false" } attributes #58 = { noinline nounwind "disable-tail-calls"="false" "enzyme_math"="fmodf" "enzymejl_world"="33509" "frame-pointer"="all" "implements"="llvm.fmod.f32" "implements2"="fmodf" "less-precise-fpmad"="false" "no-infs-fp-math"="false" "no-nans-fp-math"="false" "stack-protector-buffer-size"="8" "unsafe-fp-math"="false" "use-soft-float"="false" } attributes #59 = { noinline nounwind "disable-tail-calls"="false" "enzyme_math"="remainderf" "enzymejl_world"="33509" "frame-pointer"="all" "implements"="llvm.remainder.f32" "implements2"="remainderf" "less-precise-fpmad"="false" "no-infs-fp-math"="false" "no-nans-fp-math"="false" "stack-protector-buffer-size"="8" "unsafe-fp-math"="false" "use-soft-float"="false" } attributes #60 = { noinline nounwind "disable-tail-calls"="false" "enzyme_math"="remquof" "enzymejl_world"="33509" "frame-pointer"="all" "implements"="llvm.remquo.f32" "implements2"="remquof" "less-precise-fpmad"="false" "no-infs-fp-math"="false" "no-nans-fp-math"="false" "stack-protector-buffer-size"="8" "unsafe-fp-math"="false" "use-soft-float"="false" } attributes #61 = { noinline nounwind "disable-tail-calls"="false" "enzyme_math"="powif" "enzymejl_world"="33509" "frame-pointer"="all" "implements"="llvm.powi.f32" "implements2"="powif" "less-precise-fpmad"="false" "no-infs-fp-math"="false" "no-nans-fp-math"="false" "stack-protector-buffer-size"="8" "unsafe-fp-math"="false" "use-soft-float"="false" } attributes #62 = { nofree noinline nosync nounwind readnone "disable-tail-calls"="false" "enzyme_math"="powi" "enzymejl_world"="33509" "frame-pointer"="all" "implements"="llvm.powi.f64" "implements2"="powi" "less-precise-fpmad"="false" "no-infs-fp-math"="false" "no-nans-fp-math"="false" "stack-protector-buffer-size"="8" "unsafe-fp-math"="false" "use-soft-float"="false" } attributes #63 = { noinline nounwind "disable-tail-calls"="false" "enzyme_math"="powf" "enzymejl_world"="33509" "frame-pointer"="all" "implements"="llvm.pow.f32" "implements2"="powf" "less-precise-fpmad"="false" "no-infs-fp-math"="false" "no-nans-fp-math"="false" "stack-protector-buffer-size"="8" "unsafe-fp-math"="false" "use-soft-float"="false" } attributes #64 = { noinline nounwind "disable-tail-calls"="false" "enzyme_math"="tgammaf" "enzymejl_world"="33509" "frame-pointer"="all" "implements"="llvm.tgamma.f32" "implements2"="tgammaf" "less-precise-fpmad"="false" "no-infs-fp-math"="false" "no-nans-fp-math"="false" "stack-protector-buffer-size"="8" "unsafe-fp-math"="false" "use-soft-float"="false" } attributes #65 = { noinline nounwind "disable-tail-calls"="false" "enzyme_math"="roundf" "enzymejl_world"="33509" "frame-pointer"="all" "implements"="llvm.round.f32" "implements2"="roundf" "less-precise-fpmad"="false" "no-infs-fp-math"="false" "no-nans-fp-math"="false" "stack-protector-buffer-size"="8" "unsafe-fp-math"="false" "use-soft-float"="false" } attributes #66 = { noinline nounwind "disable-tail-calls"="false" "enzyme_math"="fdimf" "enzymejl_world"="33509" "frame-pointer"="all" "implements"="llvm.fdim.f32" "implements2"="fdimf" "less-precise-fpmad"="false" "no-infs-fp-math"="false" "no-nans-fp-math"="false" "stack-protector-buffer-size"="8" "unsafe-fp-math"="false" "use-soft-float"="false" } attributes #67 = { noinline nounwind "disable-tail-calls"="false" "enzyme_math"="ilogbf" "enzymejl_world"="33509" "frame-pointer"="all" "implements"="llvm.ilogb.f32" "implements2"="ilogbf" "less-precise-fpmad"="false" "no-infs-fp-math"="false" "no-nans-fp-math"="false" "stack-protector-buffer-size"="8" "unsafe-fp-math"="false" "use-soft-float"="false" } attributes #68 = { noinline nounwind "disable-tail-calls"="false" "enzyme_math"="logbf" "enzymejl_world"="33509" "frame-pointer"="all" "implements"="llvm.logb.f32" "implements2"="logbf" "less-precise-fpmad"="false" "no-infs-fp-math"="false" "no-nans-fp-math"="false" "stack-protector-buffer-size"="8" "unsafe-fp-math"="false" "use-soft-float"="false" } attributes #69 = { argmemonly noinline nosync nounwind "disable-tail-calls"="false" "enzymejl_world"="33509" "frame-pointer"="all" "less-precise-fpmad"="false" "no-infs-fp-math"="false" "no-nans-fp-math"="false" "stack-protector-buffer-size"="8" "unsafe-fp-math"="false" "use-soft-float"="false" } attributes #70 = { noinline nounwind "disable-tail-calls"="false" "enzyme_math"="sin" "enzymejl_world"="33509" "frame-pointer"="all" "implements"="llvm.sin.f64" "implements2"="sin" "less-precise-fpmad"="false" "no-infs-fp-math"="false" "no-nans-fp-math"="false" "stack-protector-buffer-size"="8" "unsafe-fp-math"="false" "use-soft-float"="false" } attributes #71 = { noinline nounwind "disable-tail-calls"="false" "enzyme_math"="cos" "enzymejl_world"="33509" "frame-pointer"="all" "implements"="llvm.cos.f64" "implements2"="cos" "less-precise-fpmad"="false" "no-infs-fp-math"="false" "no-nans-fp-math"="false" "stack-protector-buffer-size"="8" "unsafe-fp-math"="false" "use-soft-float"="false" } attributes #72 = { noinline nounwind "disable-tail-calls"="false" "enzyme_math"="tan" "enzymejl_world"="33509" "frame-pointer"="all" "implements"="llvm.tan.f64" "implements2"="tan" "less-precise-fpmad"="false" "no-infs-fp-math"="false" "no-nans-fp-math"="false" "stack-protector-buffer-size"="8" "unsafe-fp-math"="false" "use-soft-float"="false" } attributes #73 = { nofree noinline nosync nounwind readnone willreturn "disable-tail-calls"="false" "enzyme_math"="log" "enzymejl_world"="33509" "frame-pointer"="all" "implements"="llvm.log.f64" "implements2"="log" "less-precise-fpmad"="false" "no-infs-fp-math"="false" "no-nans-fp-math"="false" "stack-protector-buffer-size"="8" "unsafe-fp-math"="false" "use-soft-float"="false" } attributes #74 = { nofree noinline nosync nounwind readnone willreturn "disable-tail-calls"="false" "enzyme_math"="log2" "enzymejl_world"="33509" "frame-pointer"="all" "implements"="llvm.log2.f64" "implements2"="log2" "less-precise-fpmad"="false" "no-infs-fp-math"="false" "no-nans-fp-math"="false" "stack-protector-buffer-size"="8" "unsafe-fp-math"="false" "use-soft-float"="false" } attributes #75 = { nofree noinline nosync nounwind readnone willreturn "disable-tail-calls"="false" "enzyme_math"="log10" "enzymejl_world"="33509" "frame-pointer"="all" "implements"="llvm.log10.f64" "implements2"="log10" "less-precise-fpmad"="false" "no-infs-fp-math"="false" "no-nans-fp-math"="false" "stack-protector-buffer-size"="8" "unsafe-fp-math"="false" "use-soft-float"="false" } attributes #76 = { nofree noinline nosync nounwind readnone willreturn "disable-tail-calls"="false" "enzyme_math"="log1p" "enzymejl_world"="33509" "frame-pointer"="all" "implements"="llvm.log1p.f64" "implements2"="log1p" "less-precise-fpmad"="false" "no-infs-fp-math"="false" "no-nans-fp-math"="false" "stack-protector-buffer-size"="8" "unsafe-fp-math"="false" "use-soft-float"="false" } attributes #77 = { noinline nounwind "disable-tail-calls"="false" "enzyme_math"="exp" "enzymejl_world"="33509" "frame-pointer"="all" "implements"="llvm.exp.f64" "implements2"="exp" "less-precise-fpmad"="false" "no-infs-fp-math"="false" "no-nans-fp-math"="false" "stack-protector-buffer-size"="8" "unsafe-fp-math"="false" "use-soft-float"="false" } attributes #78 = { noinline nounwind "disable-tail-calls"="false" "enzyme_math"="exp2" "enzymejl_world"="33509" "frame-pointer"="all" "implements"="llvm.exp2.f64" "implements2"="exp2" "less-precise-fpmad"="false" "no-infs-fp-math"="false" "no-nans-fp-math"="false" "stack-protector-buffer-size"="8" "unsafe-fp-math"="false" "use-soft-float"="false" } attributes #79 = { noinline nounwind "disable-tail-calls"="false" "enzyme_math"="exp10" "enzymejl_world"="33509" "frame-pointer"="all" "implements"="llvm.exp10.f64" "implements2"="exp10" "less-precise-fpmad"="false" "no-infs-fp-math"="false" "no-nans-fp-math"="false" "stack-protector-buffer-size"="8" "unsafe-fp-math"="false" "use-soft-float"="false" } attributes #80 = { nofree noinline nosync nounwind readnone willreturn "disable-tail-calls"="false" "enzyme_math"="expm1" "enzymejl_world"="33509" "frame-pointer"="all" "implements"="llvm.expm1.f64" "implements2"="expm1" "less-precise-fpmad"="false" "no-infs-fp-math"="false" "no-nans-fp-math"="false" "stack-protector-buffer-size"="8" "unsafe-fp-math"="false" "use-soft-float"="false" } attributes #81 = { nofree noinline nosync nounwind readnone willreturn "disable-tail-calls"="false" "enzyme_math"="cosh" "enzymejl_world"="33509" "frame-pointer"="all" "implements"="llvm.cosh.f64" "implements2"="cosh" "less-precise-fpmad"="false" "no-infs-fp-math"="false" "no-nans-fp-math"="false" "stack-protector-buffer-size"="8" "unsafe-fp-math"="false" "use-soft-float"="false" } attributes #82 = { nofree noinline nosync nounwind readnone willreturn "disable-tail-calls"="false" "enzyme_math"="sinh" "enzymejl_world"="33509" "frame-pointer"="all" "implements"="llvm.sinh.f64" "implements2"="sinh" "less-precise-fpmad"="false" "no-infs-fp-math"="false" "no-nans-fp-math"="false" "stack-protector-buffer-size"="8" "unsafe-fp-math"="false" "use-soft-float"="false" } attributes #83 = { nofree noinline nosync nounwind readnone willreturn "disable-tail-calls"="false" "enzyme_math"="tanh" "enzymejl_world"="33509" "frame-pointer"="all" "implements"="llvm.tanh.f64" "implements2"="tanh" "less-precise-fpmad"="false" "no-infs-fp-math"="false" "no-nans-fp-math"="false" "stack-protector-buffer-size"="8" "unsafe-fp-math"="false" "use-soft-float"="false" } attributes #84 = { nofree noinline nosync nounwind readnone willreturn "disable-tail-calls"="false" "enzyme_math"="atan2" "enzymejl_world"="33509" "frame-pointer"="all" "implements"="llvm.atan2.f64" "implements2"="atan2" "less-precise-fpmad"="false" "no-infs-fp-math"="false" "no-nans-fp-math"="false" "stack-protector-buffer-size"="8" "unsafe-fp-math"="false" "use-soft-float"="false" } attributes #85 = { nofree noinline nosync nounwind readnone willreturn "disable-tail-calls"="false" "enzyme_math"="atan" "enzymejl_world"="33509" "frame-pointer"="all" "implements"="llvm.atan.f64" "implements2"="atan" "less-precise-fpmad"="false" "no-infs-fp-math"="false" "no-nans-fp-math"="false" "stack-protector-buffer-size"="8" "unsafe-fp-math"="false" "use-soft-float"="false" } attributes #86 = { noinline nounwind "disable-tail-calls"="false" "enzyme_math"="asin" "enzymejl_world"="33509" "frame-pointer"="all" "implements"="llvm.asin.f64" "implements2"="asin" "less-precise-fpmad"="false" "no-infs-fp-math"="false" "no-nans-fp-math"="false" "stack-protector-buffer-size"="8" "unsafe-fp-math"="false" "use-soft-float"="false" } attributes #87 = { noinline nosync nounwind readnone "disable-tail-calls"="false" "enzyme_math"="acos" "enzymejl_world"="33509" "frame-pointer"="all" "implements"="llvm.acos.f64" "implements2"="acos" "less-precise-fpmad"="false" "no-infs-fp-math"="false" "no-nans-fp-math"="false" "stack-protector-buffer-size"="8" "unsafe-fp-math"="false" "use-soft-float"="false" } attributes #88 = { noinline nosync nounwind readnone "disable-tail-calls"="false" "enzyme_math"="acosh" "enzymejl_world"="33509" "frame-pointer"="all" "implements"="llvm.acosh.f64" "implements2"="acosh" "less-precise-fpmad"="false" "no-infs-fp-math"="false" "no-nans-fp-math"="false" "stack-protector-buffer-size"="8" "unsafe-fp-math"="false" "use-soft-float"="false" } attributes #89 = { noinline nosync nounwind readnone "disable-tail-calls"="false" "enzyme_math"="asinh" "enzymejl_world"="33509" "frame-pointer"="all" "implements"="llvm.asinh.f64" "implements2"="asinh" "less-precise-fpmad"="false" "no-infs-fp-math"="false" "no-nans-fp-math"="false" "stack-protector-buffer-size"="8" "unsafe-fp-math"="false" "use-soft-float"="false" } attributes #90 = { nofree noinline nosync nounwind readnone willreturn "disable-tail-calls"="false" "enzyme_math"="atanh" "enzymejl_world"="33509" "frame-pointer"="all" "implements"="llvm.atanh.f64" "implements2"="atanh" "less-precise-fpmad"="false" "no-infs-fp-math"="false" "no-nans-fp-math"="false" "stack-protector-buffer-size"="8" "unsafe-fp-math"="false" "use-soft-float"="false" } attributes #91 = { noinline nosync nounwind readnone "disable-tail-calls"="false" "enzyme_math"="hypot" "enzymejl_world"="33509" "frame-pointer"="all" "implements"="llvm.hypot.f64" "implements2"="hypot" "less-precise-fpmad"="false" "no-infs-fp-math"="false" "no-nans-fp-math"="false" "stack-protector-buffer-size"="8" "unsafe-fp-math"="false" "use-soft-float"="false" } attributes #92 = { noinline nosync nounwind readnone "disable-tail-calls"="false" "enzyme_math"="rhypot" "enzymejl_world"="33509" "frame-pointer"="all" "implements"="llvm.rhypot.f64" "implements2"="rhypot" "less-precise-fpmad"="false" "no-infs-fp-math"="false" "no-nans-fp-math"="false" "stack-protector-buffer-size"="8" "unsafe-fp-math"="false" "use-soft-float"="false" } attributes #93 = { noinline nosync nounwind readnone "disable-tail-calls"="false" "enzyme_math"="norm3d" "enzymejl_world"="33509" "frame-pointer"="all" "implements"="llvm.norm3d.f64" "implements2"="norm3d" "less-precise-fpmad"="false" "no-infs-fp-math"="false" "no-nans-fp-math"="false" "stack-protector-buffer-size"="8" "unsafe-fp-math"="false" "use-soft-float"="false" } attributes #94 = { noinline nosync nounwind readnone "disable-tail-calls"="false" "enzyme_math"="rnorm3d" "enzymejl_world"="33509" "frame-pointer"="all" "implements"="llvm.rnorm3d.f64" "implements2"="rnorm3d" "less-precise-fpmad"="false" "no-infs-fp-math"="false" "no-nans-fp-math"="false" "stack-protector-buffer-size"="8" "unsafe-fp-math"="false" "use-soft-float"="false" } attributes #95 = { noinline nosync nounwind readnone "disable-tail-calls"="false" "enzyme_math"="norm4d" "enzymejl_world"="33509" "frame-pointer"="all" "implements"="llvm.norm4d.f64" "implements2"="norm4d" "less-precise-fpmad"="false" "no-infs-fp-math"="false" "no-nans-fp-math"="false" "stack-protector-buffer-size"="8" "unsafe-fp-math"="false" "use-soft-float"="false" } attributes #96 = { noinline nosync nounwind readnone "disable-tail-calls"="false" "enzyme_math"="rnorm4d" "enzymejl_world"="33509" "frame-pointer"="all" "implements"="llvm.rnorm4d.f64" "implements2"="rnorm4d" "less-precise-fpmad"="false" "no-infs-fp-math"="false" "no-nans-fp-math"="false" "stack-protector-buffer-size"="8" "unsafe-fp-math"="false" "use-soft-float"="false" } attributes #97 = { argmemonly noinline nosync nounwind readonly "disable-tail-calls"="false" "enzyme_math"="norm" "enzymejl_world"="33509" "frame-pointer"="all" "implements"="llvm.norm.f64" "implements2"="norm" "less-precise-fpmad"="false" "no-infs-fp-math"="false" "no-nans-fp-math"="false" "stack-protector-buffer-size"="8" "unsafe-fp-math"="false" "use-soft-float"="false" } attributes #98 = { argmemonly nofree noinline nosync nounwind readonly "disable-tail-calls"="false" "enzyme_math"="rnorm" "enzymejl_world"="33509" "frame-pointer"="all" "implements"="llvm.rnorm.f64" "implements2"="rnorm" "less-precise-fpmad"="false" "no-infs-fp-math"="false" "no-nans-fp-math"="false" "stack-protector-buffer-size"="8" "unsafe-fp-math"="false" "use-soft-float"="false" } attributes #99 = { noinline nounwind "disable-tail-calls"="false" "enzyme_math"="cbrt" "enzymejl_world"="33509" "frame-pointer"="all" "implements"="llvm.cbrt.f64" "implements2"="cbrt" "less-precise-fpmad"="false" "no-infs-fp-math"="false" "no-nans-fp-math"="false" "stack-protector-buffer-size"="8" "unsafe-fp-math"="false" "use-soft-float"="false" } attributes #100 = { noinline nounwind "disable-tail-calls"="false" "enzyme_math"="rcbrt" "enzymejl_world"="33509" "frame-pointer"="all" "implements"="llvm.rcbrt.f64" "implements2"="rcbrt" "less-precise-fpmad"="false" "no-infs-fp-math"="false" "no-nans-fp-math"="false" "stack-protector-buffer-size"="8" "unsafe-fp-math"="false" "use-soft-float"="false" } attributes #101 = { noinline nounwind "disable-tail-calls"="false" "enzyme_math"="pow" "enzymejl_world"="33509" "frame-pointer"="all" "implements"="llvm.pow.f64" "implements2"="pow" "less-precise-fpmad"="false" "no-infs-fp-math"="false" "no-nans-fp-math"="false" "stack-protector-buffer-size"="8" "unsafe-fp-math"="false" "use-soft-float"="false" } attributes #102 = { noinline nounwind "disable-tail-calls"="false" "enzymejl_world"="33509" "frame-pointer"="all" "less-precise-fpmad"="false" "no-infs-fp-math"="false" "no-nans-fp-math"="false" "stack-protector-buffer-size"="8" "unsafe-fp-math"="false" "use-soft-float"="false" } attributes #103 = { noinline nounwind "disable-tail-calls"="false" "enzyme_math"="j0" "enzymejl_world"="33509" "frame-pointer"="all" "implements"="llvm.j0.f64" "implements2"="j0" "less-precise-fpmad"="false" "no-infs-fp-math"="false" "no-nans-fp-math"="false" "stack-protector-buffer-size"="8" "unsafe-fp-math"="false" "use-soft-float"="false" } attributes #104 = { noinline nounwind "disable-tail-calls"="false" "enzyme_math"="j1" "enzymejl_world"="33509" "frame-pointer"="all" "implements"="llvm.j1.f64" "implements2"="j1" "less-precise-fpmad"="false" "no-infs-fp-math"="false" "no-nans-fp-math"="false" "stack-protector-buffer-size"="8" "unsafe-fp-math"="false" "use-soft-float"="false" } attributes #105 = { noinline nounwind "disable-tail-calls"="false" "enzyme_math"="y0" "enzymejl_world"="33509" "frame-pointer"="all" "implements"="llvm.y0.f64" "implements2"="y0" "less-precise-fpmad"="false" "no-infs-fp-math"="false" "no-nans-fp-math"="false" "stack-protector-buffer-size"="8" "unsafe-fp-math"="false" "use-soft-float"="false" } attributes #106 = { noinline nounwind "disable-tail-calls"="false" "enzyme_math"="y1" "enzymejl_world"="33509" "frame-pointer"="all" "implements"="llvm.y1.f64" "implements2"="y1" "less-precise-fpmad"="false" "no-infs-fp-math"="false" "no-nans-fp-math"="false" "stack-protector-buffer-size"="8" "unsafe-fp-math"="false" "use-soft-float"="false" } attributes #107 = { noinline nounwind "disable-tail-calls"="false" "enzyme_math"="yn" "enzymejl_world"="33509" "frame-pointer"="all" "implements"="llvm.yn.f64" "implements2"="yn" "less-precise-fpmad"="false" "no-infs-fp-math"="false" "no-nans-fp-math"="false" "stack-protector-buffer-size"="8" "unsafe-fp-math"="false" "use-soft-float"="false" } attributes #108 = { noinline nounwind "disable-tail-calls"="false" "enzyme_math"="jn" "enzymejl_world"="33509" "frame-pointer"="all" "implements"="llvm.jn.f64" "implements2"="jn" "less-precise-fpmad"="false" "no-infs-fp-math"="false" "no-nans-fp-math"="false" "stack-protector-buffer-size"="8" "unsafe-fp-math"="false" "use-soft-float"="false" } attributes #109 = { nofree noinline nosync nounwind readnone willreturn "disable-tail-calls"="false" "enzyme_math"="erf" "enzymejl_world"="33509" "frame-pointer"="all" "implements"="llvm.erf.f64" "implements2"="erf" "less-precise-fpmad"="false" "no-infs-fp-math"="false" "no-nans-fp-math"="false" "stack-protector-buffer-size"="8" "unsafe-fp-math"="false" "use-soft-float"="false" } attributes #110 = { noinline nounwind "disable-tail-calls"="false" "enzyme_math"="erfinv" "enzymejl_world"="33509" "frame-pointer"="all" "implements"="llvm.erfinv.f64" "implements2"="erfinv" "less-precise-fpmad"="false" "no-infs-fp-math"="false" "no-nans-fp-math"="false" "stack-protector-buffer-size"="8" "unsafe-fp-math"="false" "use-soft-float"="false" } attributes #111 = { noinline nosync nounwind readnone "disable-tail-calls"="false" "enzyme_math"="erfcinv" "enzymejl_world"="33509" "frame-pointer"="all" "implements"="llvm.erfcinv.f64" "implements2"="erfcinv" "less-precise-fpmad"="false" "no-infs-fp-math"="false" "no-nans-fp-math"="false" "stack-protector-buffer-size"="8" "unsafe-fp-math"="false" "use-soft-float"="false" } attributes #112 = { noinline nosync nounwind readnone "disable-tail-calls"="false" "enzyme_math"="normcdfinv" "enzymejl_world"="33509" "frame-pointer"="all" "implements"="llvm.normcdfinv.f64" "implements2"="normcdfinv" "less-precise-fpmad"="false" "no-infs-fp-math"="false" "no-nans-fp-math"="false" "stack-protector-buffer-size"="8" "unsafe-fp-math"="false" "use-soft-float"="false" } attributes #113 = { nofree noinline nosync nounwind readnone willreturn "disable-tail-calls"="false" "enzyme_math"="erfc" "enzymejl_world"="33509" "frame-pointer"="all" "implements"="llvm.erfc.f64" "implements2"="erfc" "less-precise-fpmad"="false" "no-infs-fp-math"="false" "no-nans-fp-math"="false" "stack-protector-buffer-size"="8" "unsafe-fp-math"="false" "use-soft-float"="false" } attributes #114 = { noinline nounwind "disable-tail-calls"="false" "enzyme_math"="erfcx" "enzymejl_world"="33509" "frame-pointer"="all" "implements"="llvm.erfcx.f64" "implements2"="erfcx" "less-precise-fpmad"="false" "no-infs-fp-math"="false" "no-nans-fp-math"="false" "stack-protector-buffer-size"="8" "unsafe-fp-math"="false" "use-soft-float"="false" } attributes #115 = { nofree noinline nosync nounwind readnone willreturn "disable-tail-calls"="false" "enzyme_math"="normcdf" "enzymejl_world"="33509" "frame-pointer"="all" "implements"="llvm.normcdf.f64" "implements2"="normcdf" "less-precise-fpmad"="false" "no-infs-fp-math"="false" "no-nans-fp-math"="false" "stack-protector-buffer-size"="8" "unsafe-fp-math"="false" "use-soft-float"="false" } attributes #116 = { noinline nounwind "disable-tail-calls"="false" "enzyme_math"="tgamma" "enzymejl_world"="33509" "frame-pointer"="all" "implements"="llvm.tgamma.f64" "implements2"="tgamma" "less-precise-fpmad"="false" "no-infs-fp-math"="false" "no-nans-fp-math"="false" "stack-protector-buffer-size"="8" "unsafe-fp-math"="false" "use-soft-float"="false" } attributes #117 = { noinline nounwind "disable-tail-calls"="false" "enzyme_math"="lgamma" "enzymejl_world"="33509" "frame-pointer"="all" "implements"="llvm.lgamma.f64" "implements2"="lgamma" "less-precise-fpmad"="false" "no-infs-fp-math"="false" "no-nans-fp-math"="false" "stack-protector-buffer-size"="8" "unsafe-fp-math"="false" "use-soft-float"="false" } attributes #118 = { nofree noinline nosync nounwind readnone willreturn "disable-tail-calls"="false" "enzymejl_world"="33509" "frame-pointer"="all" "less-precise-fpmad"="false" "no-infs-fp-math"="false" "no-nans-fp-math"="false" "stack-protector-buffer-size"="8" "unsafe-fp-math"="false" "use-soft-float"="false" } attributes #119 = { nofree noinline nosync nounwind readnone willreturn "disable-tail-calls"="false" "enzyme_math"="ldexp" "enzymejl_world"="33509" "frame-pointer"="all" "implements"="llvm.ldexp.f64" "implements2"="ldexp" "less-precise-fpmad"="false" "no-infs-fp-math"="false" "no-nans-fp-math"="false" "stack-protector-buffer-size"="8" "unsafe-fp-math"="false" "use-soft-float"="false" } attributes #120 = { nofree noinline nosync nounwind readnone willreturn "disable-tail-calls"="false" "enzyme_math"="scalbn" "enzymejl_world"="33509" "frame-pointer"="all" "implements"="llvm.scalbn.f64" "implements2"="scalbn" "less-precise-fpmad"="false" "no-infs-fp-math"="false" "no-nans-fp-math"="false" "stack-protector-buffer-size"="8" "unsafe-fp-math"="false" "use-soft-float"="false" } attributes #121 = { argmemonly nofree noinline nosync nounwind willreturn writeonly "disable-tail-calls"="false" "enzyme_math"="frexp" "enzymejl_world"="33509" "frame-pointer"="all" "implements"="llvm.frexp.f64" "implements2"="frexp" "less-precise-fpmad"="false" "no-infs-fp-math"="false" "no-nans-fp-math"="false" "stack-protector-buffer-size"="8" "unsafe-fp-math"="false" "use-soft-float"="false" } attributes #122 = { noinline nounwind "disable-tail-calls"="false" "enzyme_math"="modf" "enzymejl_world"="33509" "frame-pointer"="all" "implements"="llvm.modf.f64" "implements2"="modf" "less-precise-fpmad"="false" "no-infs-fp-math"="false" "no-nans-fp-math"="false" "stack-protector-buffer-size"="8" "unsafe-fp-math"="false" "use-soft-float"="false" } attributes #123 = { noinline nounwind "disable-tail-calls"="false" "enzyme_math"="fmod" "enzymejl_world"="33509" "frame-pointer"="all" "implements"="llvm.fmod.f64" "implements2"="fmod" "less-precise-fpmad"="false" "no-infs-fp-math"="false" "no-nans-fp-math"="false" "stack-protector-buffer-size"="8" "unsafe-fp-math"="false" "use-soft-float"="false" } attributes #124 = { noinline nounwind "disable-tail-calls"="false" "enzyme_math"="remainder" "enzymejl_world"="33509" "frame-pointer"="all" "implements"="llvm.remainder.f64" "implements2"="remainder" "less-precise-fpmad"="false" "no-infs-fp-math"="false" "no-nans-fp-math"="false" "stack-protector-buffer-size"="8" "unsafe-fp-math"="false" "use-soft-float"="false" } attributes #125 = { noinline nounwind "disable-tail-calls"="false" "enzyme_math"="remquo" "enzymejl_world"="33509" "frame-pointer"="all" "implements"="llvm.remquo.f64" "implements2"="remquo" "less-precise-fpmad"="false" "no-infs-fp-math"="false" "no-nans-fp-math"="false" "stack-protector-buffer-size"="8" "unsafe-fp-math"="false" "use-soft-float"="false" } attributes #126 = { nofree noinline nosync nounwind readnone willreturn "disable-tail-calls"="false" "enzyme_math"="round" "enzymejl_world"="33509" "frame-pointer"="all" "implements"="llvm.round.f64" "implements2"="round" "less-precise-fpmad"="false" "no-infs-fp-math"="false" "no-nans-fp-math"="false" "stack-protector-buffer-size"="8" "unsafe-fp-math"="false" "use-soft-float"="false" } attributes #127 = { noinline nounwind "disable-tail-calls"="false" "enzyme_math"="ilogb" "enzymejl_world"="33509" "frame-pointer"="all" "implements"="llvm.ilogb.f64" "implements2"="ilogb" "less-precise-fpmad"="false" "no-infs-fp-math"="false" "no-nans-fp-math"="false" "stack-protector-buffer-size"="8" "unsafe-fp-math"="false" "use-soft-float"="false" } attributes #128 = { nofree noinline nosync nounwind readnone willreturn "disable-tail-calls"="false" "enzyme_math"="logb" "enzymejl_world"="33509" "frame-pointer"="all" "implements"="llvm.logb.f64" "implements2"="logb" "less-precise-fpmad"="false" "no-infs-fp-math"="false" "no-nans-fp-math"="false" "stack-protector-buffer-size"="8" "unsafe-fp-math"="false" "use-soft-float"="false" } attributes #129 = { noinline nosync nounwind readnone "disable-tail-calls"="false" "enzyme_math"="fdim" "enzymejl_world"="33509" "frame-pointer"="all" "implements"="llvm.fdim.f64" "implements2"="fdim" "less-precise-fpmad"="false" "no-infs-fp-math"="false" "no-nans-fp-math"="false" "stack-protector-buffer-size"="8" "unsafe-fp-math"="false" "use-soft-float"="false" } attributes #130 = { argmemonly nofree nosync nounwind willreturn "enzymejl_world"="33509" } attributes #131 = { "enzymejl_mi"="140024551613600" "enzymejl_rt"="140027390054048" "enzymejl_world"="33509" "probe-stack"="inline-asm" } attributes #132 = { nofree nosync nounwind readnone speculatable willreturn } attributes #133 = { mustprogress willreturn "enzymejl_mi"="140024551613600" "enzymejl_rt"="140027390054048" "enzymejl_world"="33509" "probe-stack"="inline-asm" } attributes #134 = { mustprogress willreturn "enzymejl_mi"="140021451715248" "enzymejl_rt"="140027492362832" "enzymejl_world"="33509" "frame-pointer"="all" "probe-stack"="inline-asm" } attributes #135 = { nounwind } attributes #136 = { readnone willreturn } attributes #137 = { nounwind readnone } attributes #138 = { nounwind readnone willreturn } attributes #139 = { nofree nosync nounwind readnone willreturn } attributes #140 = { willreturn } attributes #141 = { "frame-pointer"="all" "probe-stack"="inline-asm" } attributes #142 = { mustprogress willreturn } attributes #143 = { mustprogress willreturn "frame-pointer"="all" "probe-stack"="inline-asm" } attributes #144 = { mustprogress nounwind willreturn } !llvm.module.flags = !{!0, !1} !llvm.dbg.cu = !{!2, !4, !6, !7, !8, !9, !12, !13, !14, !16, !17, !18, !19, !20, !21, !22, !23, !24, !25, !26, !27, !28, !29, !30, !31, !32, !33, !34, !35, !36, !37, !38, !39, !41} !llvm.ident = !{!42} !nvvmir.version = !{!43} !nvvm-reflect-ftz = !{!44} !0 = !{i32 2, !"Dwarf Version", i32 4} !1 = !{i32 2, !"Debug Info Version", i32 3} !2 = distinct !DICompileUnit(language: DW_LANG_Julia, file: !3, producer: "julia", isOptimized: true, runtimeVersion: 0, emissionKind: LineTablesOnly, nameTableKind: None) !3 = !DIFile(filename: "/home/jgreener/.julia/dev/CUDA/src/device/quirks.jl", directory: ".") !4 = distinct !DICompileUnit(language: DW_LANG_Julia, file: !5, producer: "julia", isOptimized: true, runtimeVersion: 0, emissionKind: LineTablesOnly, nameTableKind: None) !5 = !DIFile(filename: "/home/jgreener/dms/molly_dev/enzyme_err23.jl", directory: ".") !6 = distinct !DICompileUnit(language: DW_LANG_Julia, file: !3, producer: "julia", isOptimized: true, runtimeVersion: 0, emissionKind: LineTablesOnly, nameTableKind: None) !7 = distinct !DICompileUnit(language: DW_LANG_Julia, file: !3, producer: "julia", isOptimized: true, runtimeVersion: 0, emissionKind: LineTablesOnly, nameTableKind: None) !8 = distinct !DICompileUnit(language: DW_LANG_Julia, file: !5, producer: "julia", isOptimized: true, runtimeVersion: 0, emissionKind: LineTablesOnly, nameTableKind: None) !9 = distinct !DICompileUnit(language: DW_LANG_Julia, file: !10, producer: "julia", isOptimized: true, runtimeVersion: 0, emissionKind: LineTablesOnly, enums: !11, nameTableKind: None) !10 = !DIFile(filename: "/home/jgreener/.julia/packages/GPUCompiler/cy24l/src/runtime.jl", directory: ".") !11 = !{} !12 = distinct !DICompileUnit(language: DW_LANG_Julia, file: !10, producer: "julia", isOptimized: true, runtimeVersion: 0, emissionKind: LineTablesOnly, enums: !11, nameTableKind: None) !13 = distinct !DICompileUnit(language: DW_LANG_Julia, file: !10, producer: "julia", isOptimized: true, runtimeVersion: 0, emissionKind: LineTablesOnly, enums: !11, nameTableKind: None) !14 = distinct !DICompileUnit(language: DW_LANG_Julia, file: !15, producer: "julia", isOptimized: true, runtimeVersion: 0, emissionKind: LineTablesOnly, enums: !11, nameTableKind: None) !15 = !DIFile(filename: "/home/jgreener/.julia/dev/CUDA/src/device/runtime.jl", directory: ".") !16 = distinct !DICompileUnit(language: DW_LANG_Julia, file: !10, producer: "julia", isOptimized: true, runtimeVersion: 0, emissionKind: LineTablesOnly, enums: !11, nameTableKind: None) !17 = distinct !DICompileUnit(language: DW_LANG_Julia, file: !10, producer: "julia", isOptimized: true, runtimeVersion: 0, emissionKind: LineTablesOnly, enums: !11, nameTableKind: None) !18 = distinct !DICompileUnit(language: DW_LANG_Julia, file: !15, producer: "julia", isOptimized: true, runtimeVersion: 0, emissionKind: LineTablesOnly, enums: !11, nameTableKind: None) !19 = distinct !DICompileUnit(language: DW_LANG_Julia, file: !10, producer: "julia", isOptimized: true, runtimeVersion: 0, emissionKind: LineTablesOnly, enums: !11, nameTableKind: None) !20 = distinct !DICompileUnit(language: DW_LANG_Julia, file: !10, producer: "julia", isOptimized: true, runtimeVersion: 0, emissionKind: LineTablesOnly, enums: !11, nameTableKind: None) !21 = distinct !DICompileUnit(language: DW_LANG_Julia, file: !15, producer: "julia", isOptimized: true, runtimeVersion: 0, emissionKind: LineTablesOnly, enums: !11, nameTableKind: None) !22 = distinct !DICompileUnit(language: DW_LANG_Julia, file: !10, producer: "julia", isOptimized: true, runtimeVersion: 0, emissionKind: LineTablesOnly, enums: !11, nameTableKind: None) !23 = distinct !DICompileUnit(language: DW_LANG_Julia, file: !15, producer: "julia", isOptimized: true, runtimeVersion: 0, emissionKind: LineTablesOnly, enums: !11, nameTableKind: None) !24 = distinct !DICompileUnit(language: DW_LANG_Julia, file: !10, producer: "julia", isOptimized: true, runtimeVersion: 0, emissionKind: LineTablesOnly, enums: !11, nameTableKind: None) !25 = distinct !DICompileUnit(language: DW_LANG_Julia, file: !10, producer: "julia", isOptimized: true, runtimeVersion: 0, emissionKind: LineTablesOnly, enums: !11, nameTableKind: None) !26 = distinct !DICompileUnit(language: DW_LANG_Julia, file: !10, producer: "julia", isOptimized: true, runtimeVersion: 0, emissionKind: LineTablesOnly, enums: !11, nameTableKind: None) !27 = distinct !DICompileUnit(language: DW_LANG_Julia, file: !10, producer: "julia", isOptimized: true, runtimeVersion: 0, emissionKind: LineTablesOnly, enums: !11, nameTableKind: None) !28 = distinct !DICompileUnit(language: DW_LANG_Julia, file: !10, producer: "julia", isOptimized: true, runtimeVersion: 0, emissionKind: LineTablesOnly, enums: !11, nameTableKind: None) !29 = distinct !DICompileUnit(language: DW_LANG_Julia, file: !10, producer: "julia", isOptimized: true, runtimeVersion: 0, emissionKind: LineTablesOnly, enums: !11, nameTableKind: None) !30 = distinct !DICompileUnit(language: DW_LANG_Julia, file: !10, producer: "julia", isOptimized: true, runtimeVersion: 0, emissionKind: LineTablesOnly, enums: !11, nameTableKind: None) !31 = distinct !DICompileUnit(language: DW_LANG_Julia, file: !10, producer: "julia", isOptimized: true, runtimeVersion: 0, emissionKind: LineTablesOnly, enums: !11, nameTableKind: None) !32 = distinct !DICompileUnit(language: DW_LANG_Julia, file: !10, producer: "julia", isOptimized: true, runtimeVersion: 0, emissionKind: LineTablesOnly, enums: !11, nameTableKind: None) !33 = distinct !DICompileUnit(language: DW_LANG_Julia, file: !10, producer: "julia", isOptimized: true, runtimeVersion: 0, emissionKind: LineTablesOnly, enums: !11, nameTableKind: None) !34 = distinct !DICompileUnit(language: DW_LANG_Julia, file: !10, producer: "julia", isOptimized: true, runtimeVersion: 0, emissionKind: LineTablesOnly, enums: !11, nameTableKind: None) !35 = distinct !DICompileUnit(language: DW_LANG_Julia, file: !10, producer: "julia", isOptimized: true, runtimeVersion: 0, emissionKind: LineTablesOnly, enums: !11, nameTableKind: None) !36 = distinct !DICompileUnit(language: DW_LANG_Julia, file: !10, producer: "julia", isOptimized: true, runtimeVersion: 0, emissionKind: LineTablesOnly, enums: !11, nameTableKind: None) !37 = distinct !DICompileUnit(language: DW_LANG_Julia, file: !10, producer: "julia", isOptimized: true, runtimeVersion: 0, emissionKind: LineTablesOnly, enums: !11, nameTableKind: None) !38 = distinct !DICompileUnit(language: DW_LANG_Julia, file: !10, producer: "julia", isOptimized: true, runtimeVersion: 0, emissionKind: LineTablesOnly, enums: !11, nameTableKind: None) !39 = distinct !DICompileUnit(language: DW_LANG_Julia, file: !40, producer: "julia", isOptimized: true, runtimeVersion: 0, emissionKind: LineTablesOnly, enums: !11, nameTableKind: None) !40 = !DIFile(filename: "/home/jgreener/.julia/dev/CUDA/src/device/intrinsics/memory_dynamic.jl", directory: ".") !41 = distinct !DICompileUnit(language: DW_LANG_Julia, file: !15, producer: "julia", isOptimized: true, runtimeVersion: 0, emissionKind: LineTablesOnly, enums: !11, nameTableKind: None) !42 = !{!"clang version 3.8.0 (tags/RELEASE_380/final)"} !43 = !{i32 2, i32 0} !44 = !{i32 1} !45 = distinct !DISubprogram(name: "force", linkageName: "julia_force_3701", scope: null, file: !5, line: 6, type: !46, scopeLine: 6, spFlags: DISPFlagDefinition | DISPFlagOptimized, unit: !4, retainedNodes: !11) !46 = !DISubroutineType(types: !11) !47 = !DILocation(line: 29, scope: !48, inlinedAt: !50) !48 = distinct !DISubprogram(name: "getindex;", linkageName: "getindex", scope: !49, file: !49, type: !46, spFlags: DISPFlagDefinition | DISPFlagOptimized, unit: !4, retainedNodes: !11) !49 = !DIFile(filename: "tuple.jl", directory: ".") !50 = !DILocation(line: 62, scope: !51, inlinedAt: !53) !51 = distinct !DISubprogram(name: "getindex;", linkageName: "getindex", scope: !52, file: !52, type: !46, spFlags: DISPFlagDefinition | DISPFlagOptimized, unit: !4, retainedNodes: !11) !52 = !DIFile(filename: "/home/jgreener/.julia/packages/StaticArrays/J9itA/src/SArray.jl", directory: ".") !53 = !DILocation(line: 75, scope: !54, inlinedAt: !56) !54 = distinct !DISubprogram(name: "macro expansion;", linkageName: "macro expansion", scope: !55, file: !55, type: !46, spFlags: DISPFlagDefinition | DISPFlagOptimized, unit: !4, retainedNodes: !11) !55 = !DIFile(filename: "/home/jgreener/.julia/packages/StaticArrays/J9itA/src/mapreduce.jl", directory: ".") !56 = !DILocation(line: 40, scope: !57, inlinedAt: !58) !57 = distinct !DISubprogram(name: "_map;", linkageName: "_map", scope: !55, file: !55, type: !46, spFlags: DISPFlagDefinition | DISPFlagOptimized, unit: !4, retainedNodes: !11) !58 = !DILocation(line: 37, scope: !59, inlinedAt: !60) !59 = distinct !DISubprogram(name: "map;", linkageName: "map", scope: !55, file: !55, type: !46, spFlags: DISPFlagDefinition | DISPFlagOptimized, unit: !4, retainedNodes: !11) !60 = !DILocation(line: 16, scope: !61, inlinedAt: !63) !61 = distinct !DISubprogram(name: "-;", linkageName: "-", scope: !62, file: !62, type: !46, spFlags: DISPFlagDefinition | DISPFlagOptimized, unit: !4, retainedNodes: !11) !62 = !DIFile(filename: "/home/jgreener/.julia/packages/StaticArrays/J9itA/src/linalg.jl", directory: ".") !63 = !DILocation(line: 7, scope: !45) !64 = !DILocation(line: 409, scope: !65, inlinedAt: !53) !65 = distinct !DISubprogram(name: "-;", linkageName: "-", scope: !66, file: !66, type: !46, spFlags: DISPFlagDefinition | DISPFlagOptimized, unit: !4, retainedNodes: !11) !66 = !DIFile(filename: "float.jl", directory: ".") !67 = !{!68, !68, i64 0, i64 1} !68 = !{!"jtbaa_const", !69, i64 0} !69 = !{!"jtbaa", !70, i64 0} !70 = !{!"jtbaa"} !71 = !{!72} !72 = !{!"jnoalias_const", !73} !73 = !{!"jnoalias"} !74 = !{!75, !76, !77, !78} !75 = !{!"jnoalias_gcframe", !73} !76 = !{!"jnoalias_stack", !73} !77 = !{!"jnoalias_data", !73} !78 = !{!"jnoalias_typemd", !73} !79 = !DILocation(line: 410, scope: !80, inlinedAt: !81) !80 = distinct !DISubprogram(name: "*;", linkageName: "*", scope: !66, file: !66, type: !46, spFlags: DISPFlagDefinition | DISPFlagOptimized, unit: !4, retainedNodes: !11) !81 = !DILocation(line: 189, scope: !82, inlinedAt: !84) !82 = distinct !DISubprogram(name: "abs2;", linkageName: "abs2", scope: !83, file: !83, type: !46, spFlags: DISPFlagDefinition | DISPFlagOptimized, unit: !4, retainedNodes: !11) !83 = !DIFile(filename: "number.jl", directory: ".") !84 = !DILocation(line: 459, scope: !85, inlinedAt: !87) !85 = distinct !DISubprogram(name: "norm_sqr;", linkageName: "norm_sqr", scope: !86, file: !86, type: !46, spFlags: DISPFlagDefinition | DISPFlagOptimized, unit: !4, retainedNodes: !11) !86 = !DIFile(filename: "/cache/build/default-amdci4-0/julialang/julia-release-1-dot-9/usr/share/julia/stdlib/v1.9/LinearAlgebra/src/generic.jl", directory: ".") !87 = !DILocation(line: 267, scope: !88, inlinedAt: !89) !88 = distinct !DISubprogram(name: "macro expansion;", linkageName: "macro expansion", scope: !62, file: !62, type: !46, spFlags: DISPFlagDefinition | DISPFlagOptimized, unit: !4, retainedNodes: !11) !89 = !DILocation(line: 257, scope: !90, inlinedAt: !91) !90 = distinct !DISubprogram(name: "_norm;", linkageName: "_norm", scope: !62, file: !62, type: !46, spFlags: DISPFlagDefinition | DISPFlagOptimized, unit: !4, retainedNodes: !11) !91 = !DILocation(line: 256, scope: !92, inlinedAt: !93) !92 = distinct !DISubprogram(name: "norm;", linkageName: "norm", scope: !62, file: !62, type: !46, spFlags: DISPFlagDefinition | DISPFlagOptimized, unit: !4, retainedNodes: !11) !93 = !DILocation(line: 8, scope: !45) !94 = !DILocation(line: 408, scope: !95, inlinedAt: !87) !95 = distinct !DISubprogram(name: "+;", linkageName: "+", scope: !66, file: !66, type: !46, spFlags: DISPFlagDefinition | DISPFlagOptimized, unit: !4, retainedNodes: !11) !96 = !DILocation(line: 223, scope: !97, inlinedAt: !87) !97 = distinct !DISubprogram(name: "#sqrt;", linkageName: "#sqrt", scope: !98, file: !98, type: !46, spFlags: DISPFlagDefinition | DISPFlagOptimized, unit: !4, retainedNodes: !11) !98 = !DIFile(filename: "/home/jgreener/.julia/dev/CUDA/src/device/intrinsics/math.jl", directory: ".") !99 = !DILocation(line: 535, scope: !100, inlinedAt: !101) !100 = distinct !DISubprogram(name: "<;", linkageName: "<", scope: !66, file: !66, type: !46, spFlags: DISPFlagDefinition | DISPFlagOptimized, unit: !4, retainedNodes: !11) !101 = !DILocation(line: 269, scope: !88, inlinedAt: !89) !102 = !DILocation(line: 189, scope: !103, inlinedAt: !101) !103 = distinct !DISubprogram(name: "#isfinite;", linkageName: "#isfinite", scope: !98, file: !98, type: !46, spFlags: DISPFlagDefinition | DISPFlagOptimized, unit: !4, retainedNodes: !11) !104 = !DILocation(line: 215, scope: !105, inlinedAt: !106) !105 = distinct !DISubprogram(name: "#abs;", linkageName: "#abs", scope: !98, file: !98, type: !46, spFlags: DISPFlagDefinition | DISPFlagOptimized, unit: !4, retainedNodes: !11) !106 = !DILocation(line: 228, scope: !107, inlinedAt: !108) !107 = distinct !DISubprogram(name: "maxabs_nested;", linkageName: "maxabs_nested", scope: !62, file: !62, type: !46, spFlags: DISPFlagDefinition | DISPFlagOptimized, unit: !4, retainedNodes: !11) !108 = !DILocation(line: 232, scope: !107, inlinedAt: !109) !109 = !DILocation(line: 248, scope: !88, inlinedAt: !110) !110 = !DILocation(line: 240, scope: !111, inlinedAt: !112) !111 = distinct !DISubprogram(name: "_norm_scaled;", linkageName: "_norm_scaled", scope: !62, file: !62, type: !46, spFlags: DISPFlagDefinition | DISPFlagOptimized, unit: !4, retainedNodes: !11) !112 = !DILocation(line: 270, scope: !88, inlinedAt: !89) !113 = !DILocation(line: 215, scope: !105, inlinedAt: !114) !114 = !DILocation(line: 228, scope: !107, inlinedAt: !115) !115 = !DILocation(line: 234, scope: !107, inlinedAt: !109) !116 = !DILocation(line: 292, scope: !117, inlinedAt: !115) !117 = distinct !DISubprogram(name: "#max;", linkageName: "#max", scope: !98, file: !98, type: !46, spFlags: DISPFlagDefinition | DISPFlagOptimized, unit: !4, retainedNodes: !11) !118 = !DILocation(line: 189, scope: !103, inlinedAt: !119) !119 = !DILocation(line: 249, scope: !88, inlinedAt: !110) !120 = !DILocation(line: 533, scope: !121, inlinedAt: !122) !121 = distinct !DISubprogram(name: "==;", linkageName: "==", scope: !66, file: !66, type: !46, spFlags: DISPFlagDefinition | DISPFlagOptimized, unit: !4, retainedNodes: !11) !122 = !DILocation(line: 42, scope: !123, inlinedAt: !124) !123 = distinct !DISubprogram(name: "iszero;", linkageName: "iszero", scope: !83, file: !83, type: !46, spFlags: DISPFlagDefinition | DISPFlagOptimized, unit: !4, retainedNodes: !11) !124 = !DILocation(line: 251, scope: !88, inlinedAt: !110) !125 = !DILocation(line: 215, scope: !105, inlinedAt: !126) !126 = !DILocation(line: 639, scope: !127, inlinedAt: !128) !127 = distinct !DISubprogram(name: "norm;", linkageName: "norm", scope: !86, file: !86, type: !46, spFlags: DISPFlagDefinition | DISPFlagOptimized, unit: !4, retainedNodes: !11) !128 = !DILocation(line: 639, scope: !127, inlinedAt: !129) !129 = !DILocation(line: 222, scope: !130, inlinedAt: !124) !130 = distinct !DISubprogram(name: "_init_zero;", linkageName: "_init_zero", scope: !62, file: !62, type: !46, spFlags: DISPFlagDefinition | DISPFlagOptimized, unit: !4, retainedNodes: !11) !131 = !DILocation(line: 891, scope: !132, inlinedAt: !134) !132 = distinct !DISubprogram(name: "iterate;", linkageName: "iterate", scope: !133, file: !133, type: !46, spFlags: DISPFlagDefinition | DISPFlagOptimized, unit: !4, retainedNodes: !11) !133 = !DIFile(filename: "range.jl", directory: ".") !134 = !DILocation(line: 235, scope: !107, inlinedAt: !109) !135 = !DILocation(line: 411, scope: !136, inlinedAt: !137) !136 = distinct !DISubprogram(name: "/;", linkageName: "/", scope: !66, file: !66, type: !46, spFlags: DISPFlagDefinition | DISPFlagOptimized, unit: !4, retainedNodes: !11) !137 = !DILocation(line: 252, scope: !88, inlinedAt: !110) !138 = !DILocation(line: 410, scope: !80, inlinedAt: !139) !139 = !DILocation(line: 189, scope: !82, inlinedAt: !140) !140 = !DILocation(line: 459, scope: !85, inlinedAt: !137) !141 = !DILocation(line: 408, scope: !95, inlinedAt: !137) !142 = !DILocation(line: 223, scope: !97, inlinedAt: !137) !143 = !DILocation(line: 410, scope: !80, inlinedAt: !137) !144 = !DILocation(line: 223, scope: !97, inlinedAt: !145) !145 = !DILocation(line: 267, scope: !88, inlinedAt: !146) !146 = !DILocation(line: 257, scope: !90, inlinedAt: !147) !147 = !DILocation(line: 256, scope: !92, inlinedAt: !148) !148 = !DILocation(line: 327, scope: !149, inlinedAt: !150) !149 = distinct !DISubprogram(name: "normalize;", linkageName: "normalize", scope: !62, file: !62, type: !46, spFlags: DISPFlagDefinition | DISPFlagOptimized, unit: !4, retainedNodes: !11) !150 = !DILocation(line: 9, scope: !45) !151 = !DILocation(line: 535, scope: !100, inlinedAt: !152) !152 = !DILocation(line: 269, scope: !88, inlinedAt: !146) !153 = !DILocation(line: 189, scope: !103, inlinedAt: !152) !154 = !DILocation(line: 215, scope: !105, inlinedAt: !155) !155 = !DILocation(line: 228, scope: !107, inlinedAt: !156) !156 = !DILocation(line: 232, scope: !107, inlinedAt: !157) !157 = !DILocation(line: 248, scope: !88, inlinedAt: !158) !158 = !DILocation(line: 240, scope: !111, inlinedAt: !159) !159 = !DILocation(line: 270, scope: !88, inlinedAt: !146) !160 = !DILocation(line: 215, scope: !105, inlinedAt: !161) !161 = !DILocation(line: 228, scope: !107, inlinedAt: !162) !162 = !DILocation(line: 234, scope: !107, inlinedAt: !157) !163 = !DILocation(line: 292, scope: !117, inlinedAt: !162) !164 = !DILocation(line: 189, scope: !103, inlinedAt: !165) !165 = !DILocation(line: 249, scope: !88, inlinedAt: !158) !166 = !DILocation(line: 533, scope: !121, inlinedAt: !167) !167 = !DILocation(line: 42, scope: !123, inlinedAt: !168) !168 = !DILocation(line: 251, scope: !88, inlinedAt: !158) !169 = !DILocation(line: 215, scope: !105, inlinedAt: !170) !170 = !DILocation(line: 639, scope: !127, inlinedAt: !171) !171 = !DILocation(line: 639, scope: !127, inlinedAt: !172) !172 = !DILocation(line: 222, scope: !130, inlinedAt: !168) !173 = !DILocation(line: 891, scope: !132, inlinedAt: !174) !174 = !DILocation(line: 235, scope: !107, inlinedAt: !157) !175 = !DILocation(line: 411, scope: !136, inlinedAt: !176) !176 = !DILocation(line: 252, scope: !88, inlinedAt: !158) !177 = !DILocation(line: 410, scope: !80, inlinedAt: !178) !178 = !DILocation(line: 189, scope: !82, inlinedAt: !179) !179 = !DILocation(line: 459, scope: !85, inlinedAt: !176) !180 = !DILocation(line: 408, scope: !95, inlinedAt: !176) !181 = !DILocation(line: 223, scope: !97, inlinedAt: !176) !182 = !DILocation(line: 410, scope: !80, inlinedAt: !176) !183 = !DILocation(line: 261, scope: !184, inlinedAt: !185) !184 = distinct !DISubprogram(name: "Float64;", linkageName: "Float64", scope: !66, file: !66, type: !46, spFlags: DISPFlagDefinition | DISPFlagOptimized, unit: !4, retainedNodes: !11) !185 = !DILocation(line: 7, scope: !186, inlinedAt: !187) !186 = distinct !DISubprogram(name: "convert;", linkageName: "convert", scope: !83, file: !83, type: !46, spFlags: DISPFlagDefinition | DISPFlagOptimized, unit: !4, retainedNodes: !11) !187 = !DILocation(line: 358, scope: !188, inlinedAt: !190) !188 = distinct !DISubprogram(name: "_promote;", linkageName: "_promote", scope: !189, file: !189, type: !46, spFlags: DISPFlagDefinition | DISPFlagOptimized, unit: !4, retainedNodes: !11) !189 = !DIFile(filename: "promotion.jl", directory: ".") !190 = !DILocation(line: 381, scope: !191, inlinedAt: !192) !191 = distinct !DISubprogram(name: "promote;", linkageName: "promote", scope: !189, file: !189, type: !46, spFlags: DISPFlagDefinition | DISPFlagOptimized, unit: !4, retainedNodes: !11) !192 = !DILocation(line: 412, scope: !193, inlinedAt: !93) !193 = distinct !DISubprogram(name: "-;", linkageName: "-", scope: !189, file: !189, type: !46, spFlags: DISPFlagDefinition | DISPFlagOptimized, unit: !4, retainedNodes: !11) !194 = !DILocation(line: 409, scope: !65, inlinedAt: !192) !195 = !DILocation(line: 411, scope: !136, inlinedAt: !196) !196 = !DILocation(line: 255, scope: !197, inlinedAt: !148) !197 = distinct !DISubprogram(name: "inv;", linkageName: "inv", scope: !83, file: !83, type: !46, spFlags: DISPFlagDefinition | DISPFlagOptimized, unit: !4, retainedNodes: !11) !198 = !DILocation(line: 410, scope: !80, inlinedAt: !199) !199 = !DILocation(line: 21, scope: !200, inlinedAt: !201) !200 = distinct !DISubprogram(name: "#265;", linkageName: "#265", scope: !62, file: !62, type: !46, spFlags: DISPFlagDefinition | DISPFlagOptimized, unit: !4, retainedNodes: !11) !201 = !DILocation(line: 75, scope: !54, inlinedAt: !202) !202 = !DILocation(line: 40, scope: !57, inlinedAt: !203) !203 = !DILocation(line: 31, scope: !59, inlinedAt: !204) !204 = !DILocation(line: 21, scope: !205, inlinedAt: !148) !205 = distinct !DISubprogram(name: "*;", linkageName: "*", scope: !62, file: !62, type: !46, spFlags: DISPFlagDefinition | DISPFlagOptimized, unit: !4, retainedNodes: !11) !206 = !DILocation(line: 261, scope: !184, inlinedAt: !207) !207 = !DILocation(line: 7, scope: !186, inlinedAt: !208) !208 = !DILocation(line: 358, scope: !188, inlinedAt: !209) !209 = !DILocation(line: 381, scope: !191, inlinedAt: !210) !210 = !DILocation(line: 411, scope: !211, inlinedAt: !212) !211 = distinct !DISubprogram(name: "*;", linkageName: "*", scope: !189, file: !189, type: !46, spFlags: DISPFlagDefinition | DISPFlagOptimized, unit: !4, retainedNodes: !11) !212 = !DILocation(line: 21, scope: !200, inlinedAt: !213) !213 = !DILocation(line: 75, scope: !54, inlinedAt: !214) !214 = !DILocation(line: 40, scope: !57, inlinedAt: !215) !215 = !DILocation(line: 31, scope: !59, inlinedAt: !216) !216 = !DILocation(line: 21, scope: !205, inlinedAt: !150) !217 = !DILocation(line: 410, scope: !80, inlinedAt: !210) !218 = !DILocation(line: 10, scope: !45) !219 = !{!220} !220 = distinct !{!220, !221, !"na_addr13"} !221 = distinct !{!221, !"addr13"} !222 = !{i32 32878, i32 32882, i32 32927, i32 32972} !223 = distinct !{!223, !224} !224 = !{!"llvm.loop.unroll.count", i32 1} !225 = !{i32 21046} !226 = !{i32 9032} !227 = !{i32 9109} !228 = !{i32 0, i32 33} !229 = !{i32 156190, i32 156194, i32 156263, i32 156311, i32 156359, i32 156407, i32 156455, i32 156503, i32 156551, i32 156599, i32 156647, i32 156695, i32 156743, i32 156791, i32 156839, i32 156887, i32 156935} !230 = distinct !{!230, !224} !231 = !{i32 153924, i32 153928, i32 153999, i32 154041, i32 154083, i32 154125, i32 154167, i32 154209, i32 154251, i32 154293, i32 154335, i32 154377, i32 154419} !232 = !{i64 0, i64 65} !233 = !{i32 154965, i32 154969, i32 155028, i32 155075, i32 155122, i32 155169, i32 155216, i32 155263, i32 155310, i32 155357, i32 155404, i32 155451, i32 155498, i32 155545, i32 155592, i32 155639} !234 = !{i32 152726, i32 152730, i32 152801, i32 152843, i32 152885, i32 152927, i32 152969, i32 153011, i32 153053, i32 153095, i32 153137, i32 153179, i32 153221} !235 = !{i32 150120} !236 = !{i32 149741} !237 = distinct !{!237, !238} !238 = !{!"llvm.loop.unroll.disable"} !239 = distinct !{!239, !238} !240 = distinct !{!240, !238} !241 = distinct !{!241, !238} !242 = !{i32 285845} !243 = distinct !DISubprogram(name: "kernel!", linkageName: "julia_kernel!_3671", scope: null, file: !5, line: 13, type: !46, scopeLine: 13, spFlags: DISPFlagDefinition | DISPFlagOptimized, unit: !8, retainedNodes: !11) !244 = !DILocation(line: 0, scope: !243) !245 = !DILocation(line: 40, scope: !246, inlinedAt: !248) !246 = distinct !DISubprogram(name: "macro expansion;", linkageName: "macro expansion", scope: !247, file: !247, type: !46, spFlags: DISPFlagDefinition | DISPFlagOptimized, unit: !8, retainedNodes: !11) !247 = !DIFile(filename: "/home/jgreener/.julia/packages/LLVM/bsdku/src/interop/base.jl", directory: ".") !248 = distinct !DILocation(line: 6, scope: !249, inlinedAt: !251) !249 = distinct !DISubprogram(name: "macro expansion;", linkageName: "macro expansion", scope: !250, file: !250, type: !46, spFlags: DISPFlagDefinition | DISPFlagOptimized, unit: !8, retainedNodes: !11) !250 = !DIFile(filename: "/home/jgreener/.julia/dev/CUDA/src/device/intrinsics/indexing.jl", directory: ".") !251 = distinct !DILocation(line: 6, scope: !252, inlinedAt: !253) !252 = distinct !DISubprogram(name: "_index;", linkageName: "_index", scope: !250, file: !250, type: !46, spFlags: DISPFlagDefinition | DISPFlagOptimized, unit: !8, retainedNodes: !11) !253 = distinct !DILocation(line: 56, scope: !254, inlinedAt: !255) !254 = distinct !DISubprogram(name: "blockIdx_x;", linkageName: "blockIdx_x", scope: !250, file: !250, type: !46, spFlags: DISPFlagDefinition | DISPFlagOptimized, unit: !8, retainedNodes: !11) !255 = distinct !DILocation(line: 78, scope: !256, inlinedAt: !257) !256 = distinct !DISubprogram(name: "#blockIdx;", linkageName: "#blockIdx", scope: !250, file: !250, type: !46, spFlags: DISPFlagDefinition | DISPFlagOptimized, unit: !8, retainedNodes: !11) !257 = distinct !DILocation(line: 14, scope: !243, inlinedAt: !258) !258 = distinct !DILocation(line: 0, scope: !243) !259 = !{i32 0, i32 2147483646} !260 = !DILocation(line: 86, scope: !261, inlinedAt: !263) !261 = distinct !DISubprogram(name: "-;", linkageName: "-", scope: !262, file: !262, type: !46, spFlags: DISPFlagDefinition | DISPFlagOptimized, unit: !8, retainedNodes: !11) !262 = !DIFile(filename: "int.jl", directory: ".") !263 = distinct !DILocation(line: 1042, scope: !261, inlinedAt: !257) !264 = !DILocation(line: 40, scope: !246, inlinedAt: !265) !265 = distinct !DILocation(line: 6, scope: !249, inlinedAt: !266) !266 = distinct !DILocation(line: 6, scope: !252, inlinedAt: !267) !267 = distinct !DILocation(line: 51, scope: !268, inlinedAt: !269) !268 = distinct !DISubprogram(name: "blockDim_x;", linkageName: "blockDim_x", scope: !250, file: !250, type: !46, spFlags: DISPFlagDefinition | DISPFlagOptimized, unit: !8, retainedNodes: !11) !269 = distinct !DILocation(line: 85, scope: !270, inlinedAt: !257) !270 = distinct !DISubprogram(name: "#blockDim;", linkageName: "#blockDim", scope: !250, file: !250, type: !46, spFlags: DISPFlagDefinition | DISPFlagOptimized, unit: !8, retainedNodes: !11) !271 = !{i32 1, i32 1024} !272 = !DILocation(line: 523, scope: !273, inlinedAt: !274) !273 = distinct !DISubprogram(name: "rem;", linkageName: "rem", scope: !262, file: !262, type: !46, spFlags: DISPFlagDefinition | DISPFlagOptimized, unit: !8, retainedNodes: !11) !274 = distinct !DILocation(line: 1040, scope: !275, inlinedAt: !257) !275 = distinct !DISubprogram(name: "*;", linkageName: "*", scope: !262, file: !262, type: !46, spFlags: DISPFlagDefinition | DISPFlagOptimized, unit: !8, retainedNodes: !11) !276 = !DILocation(line: 88, scope: !275, inlinedAt: !277) !277 = distinct !DILocation(line: 1042, scope: !275, inlinedAt: !257) !278 = !DILocation(line: 40, scope: !246, inlinedAt: !279) !279 = distinct !DILocation(line: 6, scope: !249, inlinedAt: !280) !280 = distinct !DILocation(line: 6, scope: !252, inlinedAt: !281) !281 = distinct !DILocation(line: 46, scope: !282, inlinedAt: !283) !282 = distinct !DISubprogram(name: "threadIdx_x;", linkageName: "threadIdx_x", scope: !250, file: !250, type: !46, spFlags: DISPFlagDefinition | DISPFlagOptimized, unit: !8, retainedNodes: !11) !283 = distinct !DILocation(line: 92, scope: !284, inlinedAt: !257) !284 = distinct !DISubprogram(name: "#threadIdx;", linkageName: "#threadIdx", scope: !250, file: !250, type: !46, spFlags: DISPFlagDefinition | DISPFlagOptimized, unit: !8, retainedNodes: !11) !285 = !{i32 0, i32 1023} !286 = !DILocation(line: 87, scope: !287, inlinedAt: !281) !287 = distinct !DISubprogram(name: "+;", linkageName: "+", scope: !262, file: !262, type: !46, spFlags: DISPFlagDefinition | DISPFlagOptimized, unit: !8, retainedNodes: !11) !288 = !DILocation(line: 523, scope: !273, inlinedAt: !289) !289 = distinct !DILocation(line: 1040, scope: !287, inlinedAt: !257) !290 = !DILocation(line: 87, scope: !287, inlinedAt: !291) !291 = distinct !DILocation(line: 1042, scope: !287, inlinedAt: !257) !292 = !DILocation(line: 488, scope: !293, inlinedAt: !294) !293 = distinct !DISubprogram(name: "<=;", linkageName: "<=", scope: !262, file: !262, type: !46, spFlags: DISPFlagDefinition | DISPFlagOptimized, unit: !8, retainedNodes: !11) !294 = distinct !DILocation(line: 15, scope: !243, inlinedAt: !258) !295 = !DILocation(line: 15, scope: !243, inlinedAt: !258) !296 = !DILocation(line: 40, scope: !246, inlinedAt: !297) !297 = distinct !DILocation(line: 9, scope: !298, inlinedAt: !300) !298 = distinct !DISubprogram(name: "macro expansion;", linkageName: "macro expansion", scope: !299, file: !299, type: !46, spFlags: DISPFlagDefinition | DISPFlagOptimized, unit: !8, retainedNodes: !11) !299 = !DIFile(filename: "/home/jgreener/.julia/packages/LLVM/bsdku/src/interop/pointer.jl", directory: ".") !300 = distinct !DILocation(line: 9, scope: !301, inlinedAt: !302) !301 = distinct !DISubprogram(name: "pointerref;", linkageName: "pointerref", scope: !299, file: !299, type: !46, spFlags: DISPFlagDefinition | DISPFlagOptimized, unit: !8, retainedNodes: !11) !302 = distinct !DILocation(line: 85, scope: !303, inlinedAt: !304) !303 = distinct !DISubprogram(name: "unsafe_load;", linkageName: "unsafe_load", scope: !299, file: !299, type: !46, spFlags: DISPFlagDefinition | DISPFlagOptimized, unit: !8, retainedNodes: !11) !304 = distinct !DILocation(line: 91, scope: !305, inlinedAt: !307) !305 = distinct !DISubprogram(name: "arrayref_bits;", linkageName: "arrayref_bits", scope: !306, file: !306, type: !46, spFlags: DISPFlagDefinition | DISPFlagOptimized, unit: !8, retainedNodes: !11) !306 = !DIFile(filename: "/home/jgreener/.julia/dev/CUDA/src/device/array.jl", directory: ".") !307 = distinct !DILocation(line: 85, scope: !308, inlinedAt: !309) !308 = distinct !DISubprogram(name: "#arrayref;", linkageName: "#arrayref", scope: !306, file: !306, type: !46, spFlags: DISPFlagDefinition | DISPFlagOptimized, unit: !8, retainedNodes: !11) !309 = distinct !DILocation(line: 164, scope: !310, inlinedAt: !311) !310 = distinct !DISubprogram(name: "getindex;", linkageName: "getindex", scope: !306, file: !306, type: !46, spFlags: DISPFlagDefinition | DISPFlagOptimized, unit: !8, retainedNodes: !11) !311 = distinct !DILocation(line: 16, scope: !243, inlinedAt: !258) !312 = !{!313, !313, i64 0, i64 0} !313 = !{!"custom_tbaa_addrspace(1)", !314, i64 0} !314 = !{!"custom_tbaa"} !315 = !DILocation(line: 86, scope: !261, inlinedAt: !316) !316 = distinct !DILocation(line: 40, scope: !246, inlinedAt: !317) !317 = distinct !DILocation(line: 9, scope: !298, inlinedAt: !318) !318 = distinct !DILocation(line: 9, scope: !301, inlinedAt: !319) !319 = distinct !DILocation(line: 85, scope: !303, inlinedAt: !320) !320 = distinct !DILocation(line: 91, scope: !305, inlinedAt: !321) !321 = distinct !DILocation(line: 85, scope: !308, inlinedAt: !322) !322 = distinct !DILocation(line: 164, scope: !310, inlinedAt: !323) !323 = distinct !DILocation(line: 17, scope: !243, inlinedAt: !258) !324 = !DILocation(line: 40, scope: !246, inlinedAt: !317) !325 = !DILocation(line: 17, scope: !243, inlinedAt: !258) !326 = !DILocation(line: 575, scope: !327, inlinedAt: !329) !327 = distinct !DISubprogram(name: "ifelse;", linkageName: "ifelse", scope: !328, file: !328, type: !46, spFlags: DISPFlagDefinition | DISPFlagOptimized, unit: !8, retainedNodes: !11) !328 = !DIFile(filename: "essentials.jl", directory: ".") !329 = distinct !DILocation(line: 510, scope: !330, inlinedAt: !331) !330 = distinct !DISubprogram(name: "max;", linkageName: "max", scope: !189, file: !189, type: !46, spFlags: DISPFlagDefinition | DISPFlagOptimized, unit: !8, retainedNodes: !11) !331 = distinct !DILocation(line: 444, scope: !332, inlinedAt: !333) !332 = distinct !DISubprogram(name: "OneTo;", linkageName: "OneTo", scope: !133, file: !133, type: !46, spFlags: DISPFlagDefinition | DISPFlagOptimized, unit: !8, retainedNodes: !11) !333 = distinct !DILocation(line: 457, scope: !332, inlinedAt: !334) !334 = distinct !DILocation(line: 459, scope: !335, inlinedAt: !336) !335 = distinct !DISubprogram(name: "oneto;", linkageName: "oneto", scope: !133, file: !133, type: !46, spFlags: DISPFlagDefinition | DISPFlagOptimized, unit: !8, retainedNodes: !11) !336 = distinct !DILocation(line: 274, scope: !337, inlinedAt: !338) !337 = distinct !DISubprogram(name: "map;", linkageName: "map", scope: !49, file: !49, type: !46, spFlags: DISPFlagDefinition | DISPFlagOptimized, unit: !8, retainedNodes: !11) !338 = distinct !DILocation(line: 98, scope: !339, inlinedAt: !341) !339 = distinct !DISubprogram(name: "axes;", linkageName: "axes", scope: !340, file: !340, type: !46, spFlags: DISPFlagDefinition | DISPFlagOptimized, unit: !8, retainedNodes: !11) !340 = !DIFile(filename: "abstractarray.jl", directory: ".") !341 = distinct !DILocation(line: 2933, scope: !342, inlinedAt: !343) !342 = distinct !DISubprogram(name: "_sub2ind;", linkageName: "_sub2ind", scope: !340, file: !340, type: !46, spFlags: DISPFlagDefinition | DISPFlagOptimized, unit: !8, retainedNodes: !11) !343 = distinct !DILocation(line: 1333, scope: !344, inlinedAt: !345) !344 = distinct !DISubprogram(name: "_to_linear_index;", linkageName: "_to_linear_index", scope: !340, file: !340, type: !46, spFlags: DISPFlagDefinition | DISPFlagOptimized, unit: !8, retainedNodes: !11) !345 = distinct !DILocation(line: 176, scope: !310, inlinedAt: !346) !346 = distinct !DILocation(line: 18, scope: !243, inlinedAt: !258) !347 = !DILocation(line: 523, scope: !273, inlinedAt: !348) !348 = distinct !DILocation(line: 1040, scope: !261, inlinedAt: !349) !349 = distinct !DILocation(line: 2972, scope: !350, inlinedAt: !351) !350 = distinct !DISubprogram(name: "offsetin;", linkageName: "offsetin", scope: !340, file: !340, type: !46, spFlags: DISPFlagDefinition | DISPFlagOptimized, unit: !8, retainedNodes: !11) !351 = distinct !DILocation(line: 2965, scope: !352, inlinedAt: !353) !352 = distinct !DISubprogram(name: "_sub2ind_recurse;", linkageName: "_sub2ind_recurse", scope: !340, file: !340, type: !46, spFlags: DISPFlagDefinition | DISPFlagOptimized, unit: !8, retainedNodes: !11) !353 = distinct !DILocation(line: 2965, scope: !352, inlinedAt: !354) !354 = distinct !DILocation(line: 2949, scope: !342, inlinedAt: !341) !355 = !DILocation(line: 86, scope: !261, inlinedAt: !356) !356 = distinct !DILocation(line: 1042, scope: !261, inlinedAt: !349) !357 = !DILocation(line: 88, scope: !275, inlinedAt: !351) !358 = !DILocation(line: 40, scope: !246, inlinedAt: !359) !359 = distinct !DILocation(line: 9, scope: !298, inlinedAt: !360) !360 = distinct !DILocation(line: 9, scope: !301, inlinedAt: !361) !361 = distinct !DILocation(line: 85, scope: !303, inlinedAt: !362) !362 = distinct !DILocation(line: 91, scope: !305, inlinedAt: !363) !363 = distinct !DILocation(line: 85, scope: !308, inlinedAt: !364) !364 = distinct !DILocation(line: 164, scope: !310, inlinedAt: !345) !365 = !DILocation(line: 29, scope: !366, inlinedAt: !367) !366 = distinct !DISubprogram(name: "getindex;", linkageName: "getindex", scope: !49, file: !49, type: !46, spFlags: DISPFlagDefinition | DISPFlagOptimized, unit: !8, retainedNodes: !11) !367 = distinct !DILocation(line: 62, scope: !368, inlinedAt: !346) !368 = distinct !DISubprogram(name: "getindex;", linkageName: "getindex", scope: !52, file: !52, type: !46, spFlags: DISPFlagDefinition | DISPFlagOptimized, unit: !8, retainedNodes: !11) !369 = !DILocation(line: 408, scope: !370, inlinedAt: !346) !370 = distinct !DISubprogram(name: "+;", linkageName: "+", scope: !66, file: !66, type: !46, spFlags: DISPFlagDefinition | DISPFlagOptimized, unit: !8, retainedNodes: !11) !371 = !{!372, !372, i64 0} !372 = !{!"jtbaa_stack", !69, i64 0} !373 = !{!76} !374 = !{!75, !77, !78, !72} !375 = !DILocation(line: 40, scope: !246, inlinedAt: !376) !376 = distinct !DILocation(line: 46, scope: !298, inlinedAt: !377) !377 = distinct !DILocation(line: 46, scope: !378, inlinedAt: !379) !378 = distinct !DISubprogram(name: "pointerset;", linkageName: "pointerset", scope: !299, file: !299, type: !46, spFlags: DISPFlagDefinition | DISPFlagOptimized, unit: !8, retainedNodes: !11) !379 = distinct !DILocation(line: 88, scope: !380, inlinedAt: !381) !380 = distinct !DISubprogram(name: "unsafe_store!;", linkageName: "unsafe_store!", scope: !299, file: !299, type: !46, spFlags: DISPFlagDefinition | DISPFlagOptimized, unit: !8, retainedNodes: !11) !381 = distinct !DILocation(line: 134, scope: !382, inlinedAt: !383) !382 = distinct !DISubprogram(name: "arrayset_bits;", linkageName: "arrayset_bits", scope: !306, file: !306, type: !46, spFlags: DISPFlagDefinition | DISPFlagOptimized, unit: !8, retainedNodes: !11) !383 = distinct !DILocation(line: 127, scope: !384, inlinedAt: !385) !384 = distinct !DISubprogram(name: "#arrayset;", linkageName: "#arrayset", scope: !306, file: !306, type: !46, spFlags: DISPFlagDefinition | DISPFlagOptimized, unit: !8, retainedNodes: !11) !385 = distinct !DILocation(line: 166, scope: !386, inlinedAt: !387) !386 = distinct !DISubprogram(name: "setindex!;", linkageName: "setindex!", scope: !306, file: !306, type: !46, spFlags: DISPFlagDefinition | DISPFlagOptimized, unit: !8, retainedNodes: !11) !387 = distinct !DILocation(line: 179, scope: !386, inlinedAt: !346) !388 = !DILocation(line: 18, scope: !243, inlinedAt: !258) !389 = !DILocation(line: 20, scope: !243, inlinedAt: !258) !390 = distinct !DISubprogram(name: "kernel!", linkageName: "julia_kernel!_3671", scope: null, file: !5, line: 13, type: !46, scopeLine: 13, spFlags: DISPFlagDefinition | DISPFlagOptimized, unit: !8, retainedNodes: !11) !391 = !DILocation(line: 0, scope: !390) !392 = !DILocation(line: 40, scope: !246, inlinedAt: !393) !393 = distinct !DILocation(line: 6, scope: !249, inlinedAt: !394) !394 = distinct !DILocation(line: 6, scope: !252, inlinedAt: !395) !395 = distinct !DILocation(line: 56, scope: !254, inlinedAt: !396) !396 = distinct !DILocation(line: 78, scope: !256, inlinedAt: !397) !397 = distinct !DILocation(line: 14, scope: !390, inlinedAt: !398) !398 = distinct !DILocation(line: 0, scope: !390) !399 = !DILocation(line: 86, scope: !261, inlinedAt: !400) !400 = distinct !DILocation(line: 1042, scope: !261, inlinedAt: !397) !401 = !DILocation(line: 40, scope: !246, inlinedAt: !402) !402 = distinct !DILocation(line: 6, scope: !249, inlinedAt: !403) !403 = distinct !DILocation(line: 6, scope: !252, inlinedAt: !404) !404 = distinct !DILocation(line: 51, scope: !268, inlinedAt: !405) !405 = distinct !DILocation(line: 85, scope: !270, inlinedAt: !397) !406 = !DILocation(line: 523, scope: !273, inlinedAt: !407) !407 = distinct !DILocation(line: 1040, scope: !275, inlinedAt: !397) !408 = !DILocation(line: 88, scope: !275, inlinedAt: !409) !409 = distinct !DILocation(line: 1042, scope: !275, inlinedAt: !397) !410 = !DILocation(line: 40, scope: !246, inlinedAt: !411) !411 = distinct !DILocation(line: 6, scope: !249, inlinedAt: !412) !412 = distinct !DILocation(line: 6, scope: !252, inlinedAt: !413) !413 = distinct !DILocation(line: 46, scope: !282, inlinedAt: !414) !414 = distinct !DILocation(line: 92, scope: !284, inlinedAt: !397) !415 = !DILocation(line: 87, scope: !287, inlinedAt: !413) !416 = !DILocation(line: 523, scope: !273, inlinedAt: !417) !417 = distinct !DILocation(line: 1040, scope: !287, inlinedAt: !397) !418 = !DILocation(line: 87, scope: !287, inlinedAt: !419) !419 = distinct !DILocation(line: 1042, scope: !287, inlinedAt: !397) !420 = !DILocation(line: 488, scope: !293, inlinedAt: !421) !421 = distinct !DILocation(line: 15, scope: !390, inlinedAt: !398) !422 = !DILocation(line: 15, scope: !390, inlinedAt: !398) !423 = !DILocation(line: 40, scope: !246, inlinedAt: !424) !424 = distinct !DILocation(line: 9, scope: !298, inlinedAt: !425) !425 = distinct !DILocation(line: 9, scope: !301, inlinedAt: !426) !426 = distinct !DILocation(line: 85, scope: !303, inlinedAt: !427) !427 = distinct !DILocation(line: 91, scope: !305, inlinedAt: !428) !428 = distinct !DILocation(line: 85, scope: !308, inlinedAt: !429) !429 = distinct !DILocation(line: 164, scope: !310, inlinedAt: !430) !430 = distinct !DILocation(line: 16, scope: !390, inlinedAt: !398) !431 = !DILocation(line: 86, scope: !261, inlinedAt: !432) !432 = distinct !DILocation(line: 40, scope: !246, inlinedAt: !433) !433 = distinct !DILocation(line: 9, scope: !298, inlinedAt: !434) !434 = distinct !DILocation(line: 9, scope: !301, inlinedAt: !435) !435 = distinct !DILocation(line: 85, scope: !303, inlinedAt: !436) !436 = distinct !DILocation(line: 91, scope: !305, inlinedAt: !437) !437 = distinct !DILocation(line: 85, scope: !308, inlinedAt: !438) !438 = distinct !DILocation(line: 164, scope: !310, inlinedAt: !439) !439 = distinct !DILocation(line: 17, scope: !390, inlinedAt: !398) !440 = !DILocation(line: 40, scope: !246, inlinedAt: !433) !441 = !{!442} !442 = distinct !{!442, !443, !"na_addr13"} !443 = distinct !{!443, !"addr13"} !444 = !DILocation(line: 17, scope: !390, inlinedAt: !398) !445 = !DILocation(line: 575, scope: !327, inlinedAt: !446) !446 = distinct !DILocation(line: 510, scope: !330, inlinedAt: !447) !447 = distinct !DILocation(line: 444, scope: !332, inlinedAt: !448) !448 = distinct !DILocation(line: 457, scope: !332, inlinedAt: !449) !449 = distinct !DILocation(line: 459, scope: !335, inlinedAt: !450) !450 = distinct !DILocation(line: 274, scope: !337, inlinedAt: !451) !451 = distinct !DILocation(line: 98, scope: !339, inlinedAt: !452) !452 = distinct !DILocation(line: 2933, scope: !342, inlinedAt: !453) !453 = distinct !DILocation(line: 1333, scope: !344, inlinedAt: !454) !454 = distinct !DILocation(line: 176, scope: !310, inlinedAt: !455) !455 = distinct !DILocation(line: 18, scope: !390, inlinedAt: !398) !456 = !DILocation(line: 523, scope: !273, inlinedAt: !457) !457 = distinct !DILocation(line: 1040, scope: !261, inlinedAt: !458) !458 = distinct !DILocation(line: 2972, scope: !350, inlinedAt: !459) !459 = distinct !DILocation(line: 2965, scope: !352, inlinedAt: !460) !460 = distinct !DILocation(line: 2965, scope: !352, inlinedAt: !461) !461 = distinct !DILocation(line: 2949, scope: !342, inlinedAt: !452) !462 = !DILocation(line: 86, scope: !261, inlinedAt: !463) !463 = distinct !DILocation(line: 1042, scope: !261, inlinedAt: !458) !464 = !DILocation(line: 88, scope: !275, inlinedAt: !459) !465 = !DILocation(line: 40, scope: !246, inlinedAt: !466) !466 = distinct !DILocation(line: 9, scope: !298, inlinedAt: !467) !467 = distinct !DILocation(line: 9, scope: !301, inlinedAt: !468) !468 = distinct !DILocation(line: 85, scope: !303, inlinedAt: !469) !469 = distinct !DILocation(line: 91, scope: !305, inlinedAt: !470) !470 = distinct !DILocation(line: 85, scope: !308, inlinedAt: !471) !471 = distinct !DILocation(line: 164, scope: !310, inlinedAt: !454) !472 = !DILocation(line: 29, scope: !366, inlinedAt: !473) !473 = distinct !DILocation(line: 62, scope: !368, inlinedAt: !455) !474 = !DILocation(line: 408, scope: !370, inlinedAt: !455) !475 = !DILocation(line: 40, scope: !246, inlinedAt: !476) !476 = distinct !DILocation(line: 46, scope: !298, inlinedAt: !477) !477 = distinct !DILocation(line: 46, scope: !378, inlinedAt: !478) !478 = distinct !DILocation(line: 88, scope: !380, inlinedAt: !479) !479 = distinct !DILocation(line: 134, scope: !382, inlinedAt: !480) !480 = distinct !DILocation(line: 127, scope: !384, inlinedAt: !481) !481 = distinct !DILocation(line: 166, scope: !386, inlinedAt: !482) !482 = distinct !DILocation(line: 179, scope: !386, inlinedAt: !455) !483 = !DILocation(line: 18, scope: !390, inlinedAt: !398) !484 = !DILocation(line: 20, scope: !390, inlinedAt: !398) !485 = distinct !DISubprogram(name: "kernel!", linkageName: "julia_kernel!_3671", scope: null, file: !5, line: 13, type: !46, scopeLine: 13, spFlags: DISPFlagDefinition | DISPFlagOptimized, unit: !8, retainedNodes: !11) !486 = !DILocation(line: 0, scope: !485) !487 = !DILocation(line: 40, scope: !246, inlinedAt: !488) !488 = distinct !DILocation(line: 6, scope: !249, inlinedAt: !489) !489 = distinct !DILocation(line: 6, scope: !252, inlinedAt: !490) !490 = distinct !DILocation(line: 56, scope: !254, inlinedAt: !491) !491 = distinct !DILocation(line: 78, scope: !256, inlinedAt: !492) !492 = distinct !DILocation(line: 14, scope: !485, inlinedAt: !493) !493 = distinct !DILocation(line: 0, scope: !485) !494 = !DILocation(line: 86, scope: !261, inlinedAt: !495) !495 = distinct !DILocation(line: 1042, scope: !261, inlinedAt: !492) !496 = !DILocation(line: 40, scope: !246, inlinedAt: !497) !497 = distinct !DILocation(line: 6, scope: !249, inlinedAt: !498) !498 = distinct !DILocation(line: 6, scope: !252, inlinedAt: !499) !499 = distinct !DILocation(line: 51, scope: !268, inlinedAt: !500) !500 = distinct !DILocation(line: 85, scope: !270, inlinedAt: !492) !501 = !DILocation(line: 523, scope: !273, inlinedAt: !502) !502 = distinct !DILocation(line: 1040, scope: !275, inlinedAt: !492) !503 = !DILocation(line: 88, scope: !275, inlinedAt: !504) !504 = distinct !DILocation(line: 1042, scope: !275, inlinedAt: !492) !505 = !DILocation(line: 40, scope: !246, inlinedAt: !506) !506 = distinct !DILocation(line: 6, scope: !249, inlinedAt: !507) !507 = distinct !DILocation(line: 6, scope: !252, inlinedAt: !508) !508 = distinct !DILocation(line: 46, scope: !282, inlinedAt: !509) !509 = distinct !DILocation(line: 92, scope: !284, inlinedAt: !492) !510 = !DILocation(line: 87, scope: !287, inlinedAt: !508) !511 = !DILocation(line: 523, scope: !273, inlinedAt: !512) !512 = distinct !DILocation(line: 1040, scope: !287, inlinedAt: !492) !513 = !DILocation(line: 87, scope: !287, inlinedAt: !514) !514 = distinct !DILocation(line: 1042, scope: !287, inlinedAt: !492) !515 = !DILocation(line: 488, scope: !293, inlinedAt: !516) !516 = distinct !DILocation(line: 15, scope: !485, inlinedAt: !493) !517 = !DILocation(line: 15, scope: !485, inlinedAt: !493) !518 = !DILocation(line: 40, scope: !246, inlinedAt: !519) !519 = distinct !DILocation(line: 9, scope: !298, inlinedAt: !520) !520 = distinct !DILocation(line: 9, scope: !301, inlinedAt: !521) !521 = distinct !DILocation(line: 85, scope: !303, inlinedAt: !522) !522 = distinct !DILocation(line: 91, scope: !305, inlinedAt: !523) !523 = distinct !DILocation(line: 85, scope: !308, inlinedAt: !524) !524 = distinct !DILocation(line: 164, scope: !310, inlinedAt: !525) !525 = distinct !DILocation(line: 16, scope: !485, inlinedAt: !493) !526 = !DILocation(line: 86, scope: !261, inlinedAt: !527) !527 = distinct !DILocation(line: 40, scope: !246, inlinedAt: !528) !528 = distinct !DILocation(line: 9, scope: !298, inlinedAt: !529) !529 = distinct !DILocation(line: 9, scope: !301, inlinedAt: !530) !530 = distinct !DILocation(line: 85, scope: !303, inlinedAt: !531) !531 = distinct !DILocation(line: 91, scope: !305, inlinedAt: !532) !532 = distinct !DILocation(line: 85, scope: !308, inlinedAt: !533) !533 = distinct !DILocation(line: 164, scope: !310, inlinedAt: !534) !534 = distinct !DILocation(line: 17, scope: !485, inlinedAt: !493) !535 = !DILocation(line: 40, scope: !246, inlinedAt: !528) !536 = !{!537} !537 = distinct !{!537, !538, !"na_addr13"} !538 = distinct !{!538, !"addr13"} !539 = distinct !{} !540 = !DILocation(line: 17, scope: !485, inlinedAt: !493) !541 = !DILocation(line: 575, scope: !327, inlinedAt: !542) !542 = distinct !DILocation(line: 510, scope: !330, inlinedAt: !543) !543 = distinct !DILocation(line: 444, scope: !332, inlinedAt: !544) !544 = distinct !DILocation(line: 457, scope: !332, inlinedAt: !545) !545 = distinct !DILocation(line: 459, scope: !335, inlinedAt: !546) !546 = distinct !DILocation(line: 274, scope: !337, inlinedAt: !547) !547 = distinct !DILocation(line: 98, scope: !339, inlinedAt: !548) !548 = distinct !DILocation(line: 2933, scope: !342, inlinedAt: !549) !549 = distinct !DILocation(line: 1333, scope: !344, inlinedAt: !550) !550 = distinct !DILocation(line: 176, scope: !310, inlinedAt: !551) !551 = distinct !DILocation(line: 18, scope: !485, inlinedAt: !493) !552 = !DILocation(line: 523, scope: !273, inlinedAt: !553) !553 = distinct !DILocation(line: 1040, scope: !261, inlinedAt: !554) !554 = distinct !DILocation(line: 2972, scope: !350, inlinedAt: !555) !555 = distinct !DILocation(line: 2965, scope: !352, inlinedAt: !556) !556 = distinct !DILocation(line: 2965, scope: !352, inlinedAt: !557) !557 = distinct !DILocation(line: 2949, scope: !342, inlinedAt: !548) !558 = !DILocation(line: 86, scope: !261, inlinedAt: !559) !559 = distinct !DILocation(line: 1042, scope: !261, inlinedAt: !554) !560 = !DILocation(line: 88, scope: !275, inlinedAt: !555) !561 = !DILocation(line: 40, scope: !246, inlinedAt: !562) !562 = distinct !DILocation(line: 9, scope: !298, inlinedAt: !563) !563 = distinct !DILocation(line: 9, scope: !301, inlinedAt: !564) !564 = distinct !DILocation(line: 85, scope: !303, inlinedAt: !565) !565 = distinct !DILocation(line: 91, scope: !305, inlinedAt: !566) !566 = distinct !DILocation(line: 85, scope: !308, inlinedAt: !567) !567 = distinct !DILocation(line: 164, scope: !310, inlinedAt: !550) !568 = !{!569} !569 = distinct !{!569, !570, !"primal"} !570 = distinct !{!570, !" diff: %.fca.0.extract17"} !571 = !{!572} !572 = distinct !{!572, !570, !"shadow_0"} !573 = !DILocation(line: 29, scope: !366, inlinedAt: !574) !574 = distinct !DILocation(line: 62, scope: !368, inlinedAt: !551) !575 = !DILocation(line: 408, scope: !370, inlinedAt: !551) !576 = !{!577, !76} !577 = distinct !{!577, !578, !"primal"} !578 = distinct !{!578, !" diff: %"} !579 = !{!580, !75, !77, !78, !72} !580 = distinct !{!580, !578, !"shadow_0"} !581 = !DILocation(line: 40, scope: !246, inlinedAt: !582) !582 = distinct !DILocation(line: 46, scope: !298, inlinedAt: !583) !583 = distinct !DILocation(line: 46, scope: !378, inlinedAt: !584) !584 = distinct !DILocation(line: 88, scope: !380, inlinedAt: !585) !585 = distinct !DILocation(line: 134, scope: !382, inlinedAt: !586) !586 = distinct !DILocation(line: 127, scope: !384, inlinedAt: !587) !587 = distinct !DILocation(line: 166, scope: !386, inlinedAt: !588) !588 = distinct !DILocation(line: 179, scope: !386, inlinedAt: !551) !589 = !{!572, !442} !590 = !DILocation(line: 18, scope: !485, inlinedAt: !493) !591 = !DILocation(line: 20, scope: !485, inlinedAt: !493) !592 = !{!569, !442} !593 = !{!580, !76} !594 = !{!577, !75, !77, !78, !72} !595 = distinct !DISubprogram(name: "force", linkageName: "julia_force_3701", scope: null, file: !5, line: 6, type: !46, scopeLine: 6, spFlags: DISPFlagDefinition | DISPFlagOptimized, unit: !4, retainedNodes: !11) !596 = !DILocation(line: 29, scope: !48, inlinedAt: !597) !597 = !DILocation(line: 62, scope: !51, inlinedAt: !598) !598 = !DILocation(line: 75, scope: !54, inlinedAt: !599) !599 = !DILocation(line: 40, scope: !57, inlinedAt: !600) !600 = !DILocation(line: 37, scope: !59, inlinedAt: !601) !601 = !DILocation(line: 16, scope: !61, inlinedAt: !602) !602 = !DILocation(line: 7, scope: !595) !603 = !DILocation(line: 409, scope: !65, inlinedAt: !598) !604 = !DILocation(line: 410, scope: !80, inlinedAt: !605) !605 = !DILocation(line: 189, scope: !82, inlinedAt: !606) !606 = !DILocation(line: 459, scope: !85, inlinedAt: !607) !607 = !DILocation(line: 267, scope: !88, inlinedAt: !608) !608 = !DILocation(line: 257, scope: !90, inlinedAt: !609) !609 = !DILocation(line: 256, scope: !92, inlinedAt: !610) !610 = !DILocation(line: 8, scope: !595) !611 = !DILocation(line: 408, scope: !95, inlinedAt: !607) !612 = !DILocation(line: 223, scope: !97, inlinedAt: !607) !613 = !DILocation(line: 535, scope: !100, inlinedAt: !614) !614 = !DILocation(line: 269, scope: !88, inlinedAt: !608) !615 = !DILocation(line: 189, scope: !103, inlinedAt: !614) !616 = !DILocation(line: 215, scope: !105, inlinedAt: !617) !617 = !DILocation(line: 228, scope: !107, inlinedAt: !618) !618 = !DILocation(line: 232, scope: !107, inlinedAt: !619) !619 = !DILocation(line: 248, scope: !88, inlinedAt: !620) !620 = !DILocation(line: 240, scope: !111, inlinedAt: !621) !621 = !DILocation(line: 270, scope: !88, inlinedAt: !608) !622 = !DILocation(line: 215, scope: !105, inlinedAt: !623) !623 = !DILocation(line: 228, scope: !107, inlinedAt: !624) !624 = !DILocation(line: 234, scope: !107, inlinedAt: !619) !625 = !DILocation(line: 292, scope: !117, inlinedAt: !624) !626 = !DILocation(line: 189, scope: !103, inlinedAt: !627) !627 = !DILocation(line: 249, scope: !88, inlinedAt: !620) !628 = !DILocation(line: 533, scope: !121, inlinedAt: !629) !629 = !DILocation(line: 42, scope: !123, inlinedAt: !630) !630 = !DILocation(line: 251, scope: !88, inlinedAt: !620) !631 = !DILocation(line: 215, scope: !105, inlinedAt: !632) !632 = !DILocation(line: 639, scope: !127, inlinedAt: !633) !633 = !DILocation(line: 639, scope: !127, inlinedAt: !634) !634 = !DILocation(line: 222, scope: !130, inlinedAt: !630) !635 = !DILocation(line: 891, scope: !132, inlinedAt: !636) !636 = !DILocation(line: 235, scope: !107, inlinedAt: !619) !637 = !DILocation(line: 411, scope: !136, inlinedAt: !638) !638 = !DILocation(line: 252, scope: !88, inlinedAt: !620) !639 = !DILocation(line: 410, scope: !80, inlinedAt: !640) !640 = !DILocation(line: 189, scope: !82, inlinedAt: !641) !641 = !DILocation(line: 459, scope: !85, inlinedAt: !638) !642 = !DILocation(line: 408, scope: !95, inlinedAt: !638) !643 = !DILocation(line: 223, scope: !97, inlinedAt: !638) !644 = !DILocation(line: 410, scope: !80, inlinedAt: !638) !645 = !DILocation(line: 223, scope: !97, inlinedAt: !646) !646 = !DILocation(line: 267, scope: !88, inlinedAt: !647) !647 = !DILocation(line: 257, scope: !90, inlinedAt: !648) !648 = !DILocation(line: 256, scope: !92, inlinedAt: !649) !649 = !DILocation(line: 327, scope: !149, inlinedAt: !650) !650 = !DILocation(line: 9, scope: !595) !651 = !DILocation(line: 535, scope: !100, inlinedAt: !652) !652 = !DILocation(line: 269, scope: !88, inlinedAt: !647) !653 = !DILocation(line: 189, scope: !103, inlinedAt: !652) !654 = !DILocation(line: 215, scope: !105, inlinedAt: !655) !655 = !DILocation(line: 228, scope: !107, inlinedAt: !656) !656 = !DILocation(line: 232, scope: !107, inlinedAt: !657) !657 = !DILocation(line: 248, scope: !88, inlinedAt: !658) !658 = !DILocation(line: 240, scope: !111, inlinedAt: !659) !659 = !DILocation(line: 270, scope: !88, inlinedAt: !647) !660 = !DILocation(line: 215, scope: !105, inlinedAt: !661) !661 = !DILocation(line: 228, scope: !107, inlinedAt: !662) !662 = !DILocation(line: 234, scope: !107, inlinedAt: !657) !663 = !DILocation(line: 292, scope: !117, inlinedAt: !662) !664 = !DILocation(line: 189, scope: !103, inlinedAt: !665) !665 = !DILocation(line: 249, scope: !88, inlinedAt: !658) !666 = !DILocation(line: 533, scope: !121, inlinedAt: !667) !667 = !DILocation(line: 42, scope: !123, inlinedAt: !668) !668 = !DILocation(line: 251, scope: !88, inlinedAt: !658) !669 = !DILocation(line: 215, scope: !105, inlinedAt: !670) !670 = !DILocation(line: 639, scope: !127, inlinedAt: !671) !671 = !DILocation(line: 639, scope: !127, inlinedAt: !672) !672 = !DILocation(line: 222, scope: !130, inlinedAt: !668) !673 = !DILocation(line: 891, scope: !132, inlinedAt: !674) !674 = !DILocation(line: 235, scope: !107, inlinedAt: !657) !675 = !DILocation(line: 411, scope: !136, inlinedAt: !676) !676 = !DILocation(line: 252, scope: !88, inlinedAt: !658) !677 = !DILocation(line: 410, scope: !80, inlinedAt: !678) !678 = !DILocation(line: 189, scope: !82, inlinedAt: !679) !679 = !DILocation(line: 459, scope: !85, inlinedAt: !676) !680 = !DILocation(line: 408, scope: !95, inlinedAt: !676) !681 = !DILocation(line: 223, scope: !97, inlinedAt: !676) !682 = !DILocation(line: 410, scope: !80, inlinedAt: !676) !683 = !DILocation(line: 261, scope: !184, inlinedAt: !684) !684 = !DILocation(line: 7, scope: !186, inlinedAt: !685) !685 = !DILocation(line: 358, scope: !188, inlinedAt: !686) !686 = !DILocation(line: 381, scope: !191, inlinedAt: !687) !687 = !DILocation(line: 412, scope: !193, inlinedAt: !610) !688 = !DILocation(line: 409, scope: !65, inlinedAt: !687) !689 = !DILocation(line: 411, scope: !136, inlinedAt: !690) !690 = !DILocation(line: 255, scope: !197, inlinedAt: !649) !691 = !DILocation(line: 410, scope: !80, inlinedAt: !692) !692 = !DILocation(line: 21, scope: !200, inlinedAt: !693) !693 = !DILocation(line: 75, scope: !54, inlinedAt: !694) !694 = !DILocation(line: 40, scope: !57, inlinedAt: !695) !695 = !DILocation(line: 31, scope: !59, inlinedAt: !696) !696 = !DILocation(line: 21, scope: !205, inlinedAt: !649) !697 = !DILocation(line: 261, scope: !184, inlinedAt: !698) !698 = !DILocation(line: 7, scope: !186, inlinedAt: !699) !699 = !DILocation(line: 358, scope: !188, inlinedAt: !700) !700 = !DILocation(line: 381, scope: !191, inlinedAt: !701) !701 = !DILocation(line: 411, scope: !211, inlinedAt: !702) !702 = !DILocation(line: 21, scope: !200, inlinedAt: !703) !703 = !DILocation(line: 75, scope: !54, inlinedAt: !704) !704 = !DILocation(line: 40, scope: !57, inlinedAt: !705) !705 = !DILocation(line: 31, scope: !59, inlinedAt: !706) !706 = !DILocation(line: 21, scope: !205, inlinedAt: !650) !707 = !DILocation(line: 410, scope: !80, inlinedAt: !701) !708 = !DILocation(line: 10, scope: !595) !709 = !{!710} !710 = distinct !{!710, !711, !"na_addr13"} !711 = distinct !{!711, !"addr13"} !712 = distinct !DISubprogram(name: "force", linkageName: "julia_force_3701", scope: null, file: !5, line: 6, type: !46, scopeLine: 6, spFlags: DISPFlagDefinition | DISPFlagOptimized, unit: !4, retainedNodes: !11) !713 = !DILocation(line: 29, scope: !48, inlinedAt: !714) !714 = !DILocation(line: 62, scope: !51, inlinedAt: !715) !715 = !DILocation(line: 75, scope: !54, inlinedAt: !716) !716 = !DILocation(line: 40, scope: !57, inlinedAt: !717) !717 = !DILocation(line: 37, scope: !59, inlinedAt: !718) !718 = !DILocation(line: 16, scope: !61, inlinedAt: !719) !719 = !DILocation(line: 7, scope: !712) !720 = !DILocation(line: 409, scope: !65, inlinedAt: !715) !721 = !{!722, !72} !722 = distinct !{!722, !723, !"primal"} !723 = distinct !{!723, !" diff: %"} !724 = !{!725, !75, !76, !77, !78} !725 = distinct !{!725, !723, !"shadow_0"} !726 = !{!727, !72} !727 = distinct !{!727, !728, !"primal"} !728 = distinct !{!728, !" diff: %"} !729 = !{!730, !75, !76, !77, !78} !730 = distinct !{!730, !728, !"shadow_0"} !731 = !DILocation(line: 410, scope: !80, inlinedAt: !732) !732 = !DILocation(line: 189, scope: !82, inlinedAt: !733) !733 = !DILocation(line: 459, scope: !85, inlinedAt: !734) !734 = !DILocation(line: 267, scope: !88, inlinedAt: !735) !735 = !DILocation(line: 257, scope: !90, inlinedAt: !736) !736 = !DILocation(line: 256, scope: !92, inlinedAt: !737) !737 = !DILocation(line: 8, scope: !712) !738 = !DILocation(line: 408, scope: !95, inlinedAt: !734) !739 = !DILocation(line: 223, scope: !97, inlinedAt: !734) !740 = !DILocation(line: 535, scope: !100, inlinedAt: !741) !741 = !DILocation(line: 269, scope: !88, inlinedAt: !735) !742 = !DILocation(line: 189, scope: !103, inlinedAt: !741) !743 = !DILocation(line: 215, scope: !105, inlinedAt: !744) !744 = !DILocation(line: 228, scope: !107, inlinedAt: !745) !745 = !DILocation(line: 232, scope: !107, inlinedAt: !746) !746 = !DILocation(line: 248, scope: !88, inlinedAt: !747) !747 = !DILocation(line: 240, scope: !111, inlinedAt: !748) !748 = !DILocation(line: 270, scope: !88, inlinedAt: !735) !749 = !DILocation(line: 215, scope: !105, inlinedAt: !750) !750 = !DILocation(line: 228, scope: !107, inlinedAt: !751) !751 = !DILocation(line: 234, scope: !107, inlinedAt: !746) !752 = !DILocation(line: 292, scope: !117, inlinedAt: !751) !753 = !DILocation(line: 189, scope: !103, inlinedAt: !754) !754 = !DILocation(line: 249, scope: !88, inlinedAt: !747) !755 = !DILocation(line: 533, scope: !121, inlinedAt: !756) !756 = !DILocation(line: 42, scope: !123, inlinedAt: !757) !757 = !DILocation(line: 251, scope: !88, inlinedAt: !747) !758 = !DILocation(line: 215, scope: !105, inlinedAt: !759) !759 = !DILocation(line: 639, scope: !127, inlinedAt: !760) !760 = !DILocation(line: 639, scope: !127, inlinedAt: !761) !761 = !DILocation(line: 222, scope: !130, inlinedAt: !757) !762 = !DILocation(line: 891, scope: !132, inlinedAt: !763) !763 = !DILocation(line: 235, scope: !107, inlinedAt: !746) !764 = !DILocation(line: 411, scope: !136, inlinedAt: !765) !765 = !DILocation(line: 252, scope: !88, inlinedAt: !747) !766 = !DILocation(line: 410, scope: !80, inlinedAt: !767) !767 = !DILocation(line: 189, scope: !82, inlinedAt: !768) !768 = !DILocation(line: 459, scope: !85, inlinedAt: !765) !769 = !DILocation(line: 408, scope: !95, inlinedAt: !765) !770 = !DILocation(line: 223, scope: !97, inlinedAt: !765) !771 = !DILocation(line: 410, scope: !80, inlinedAt: !765) !772 = !DILocation(line: 223, scope: !97, inlinedAt: !773) !773 = !DILocation(line: 267, scope: !88, inlinedAt: !774) !774 = !DILocation(line: 257, scope: !90, inlinedAt: !775) !775 = !DILocation(line: 256, scope: !92, inlinedAt: !776) !776 = !DILocation(line: 327, scope: !149, inlinedAt: !777) !777 = !DILocation(line: 9, scope: !712) !778 = !DILocation(line: 535, scope: !100, inlinedAt: !779) !779 = !DILocation(line: 269, scope: !88, inlinedAt: !774) !780 = !DILocation(line: 189, scope: !103, inlinedAt: !779) !781 = !DILocation(line: 215, scope: !105, inlinedAt: !782) !782 = !DILocation(line: 228, scope: !107, inlinedAt: !783) !783 = !DILocation(line: 232, scope: !107, inlinedAt: !784) !784 = !DILocation(line: 248, scope: !88, inlinedAt: !785) !785 = !DILocation(line: 240, scope: !111, inlinedAt: !786) !786 = !DILocation(line: 270, scope: !88, inlinedAt: !774) !787 = !DILocation(line: 215, scope: !105, inlinedAt: !788) !788 = !DILocation(line: 228, scope: !107, inlinedAt: !789) !789 = !DILocation(line: 234, scope: !107, inlinedAt: !784) !790 = !DILocation(line: 292, scope: !117, inlinedAt: !789) !791 = !DILocation(line: 189, scope: !103, inlinedAt: !792) !792 = !DILocation(line: 249, scope: !88, inlinedAt: !785) !793 = !DILocation(line: 533, scope: !121, inlinedAt: !794) !794 = !DILocation(line: 42, scope: !123, inlinedAt: !795) !795 = !DILocation(line: 251, scope: !88, inlinedAt: !785) !796 = !DILocation(line: 215, scope: !105, inlinedAt: !797) !797 = !DILocation(line: 639, scope: !127, inlinedAt: !798) !798 = !DILocation(line: 639, scope: !127, inlinedAt: !799) !799 = !DILocation(line: 222, scope: !130, inlinedAt: !795) !800 = !DILocation(line: 891, scope: !132, inlinedAt: !801) !801 = !DILocation(line: 235, scope: !107, inlinedAt: !784) !802 = !DILocation(line: 411, scope: !136, inlinedAt: !803) !803 = !DILocation(line: 252, scope: !88, inlinedAt: !785) !804 = !DILocation(line: 410, scope: !80, inlinedAt: !805) !805 = !DILocation(line: 189, scope: !82, inlinedAt: !806) !806 = !DILocation(line: 459, scope: !85, inlinedAt: !803) !807 = !DILocation(line: 408, scope: !95, inlinedAt: !803) !808 = !DILocation(line: 223, scope: !97, inlinedAt: !803) !809 = !DILocation(line: 410, scope: !80, inlinedAt: !803) !810 = !DILocation(line: 261, scope: !184, inlinedAt: !811) !811 = !DILocation(line: 7, scope: !186, inlinedAt: !812) !812 = !DILocation(line: 358, scope: !188, inlinedAt: !813) !813 = !DILocation(line: 381, scope: !191, inlinedAt: !814) !814 = !DILocation(line: 412, scope: !193, inlinedAt: !737) !815 = !DILocation(line: 409, scope: !65, inlinedAt: !814) !816 = !DILocation(line: 411, scope: !136, inlinedAt: !817) !817 = !DILocation(line: 255, scope: !197, inlinedAt: !776) !818 = !DILocation(line: 410, scope: !80, inlinedAt: !819) !819 = !DILocation(line: 21, scope: !200, inlinedAt: !820) !820 = !DILocation(line: 75, scope: !54, inlinedAt: !821) !821 = !DILocation(line: 40, scope: !57, inlinedAt: !822) !822 = !DILocation(line: 31, scope: !59, inlinedAt: !823) !823 = !DILocation(line: 21, scope: !205, inlinedAt: !776) !824 = !DILocation(line: 261, scope: !184, inlinedAt: !825) !825 = !DILocation(line: 7, scope: !186, inlinedAt: !826) !826 = !DILocation(line: 358, scope: !188, inlinedAt: !827) !827 = !DILocation(line: 381, scope: !191, inlinedAt: !828) !828 = !DILocation(line: 411, scope: !211, inlinedAt: !829) !829 = !DILocation(line: 21, scope: !200, inlinedAt: !830) !830 = !DILocation(line: 75, scope: !54, inlinedAt: !831) !831 = !DILocation(line: 40, scope: !57, inlinedAt: !832) !832 = !DILocation(line: 31, scope: !59, inlinedAt: !833) !833 = !DILocation(line: 21, scope: !205, inlinedAt: !777) !834 = !DILocation(line: 410, scope: !80, inlinedAt: !828) !835 = !DILocation(line: 10, scope: !712) !836 = !{!837} !837 = distinct !{!837, !838, !"na_addr13"} !838 = distinct !{!838, !"addr13"} No augmented forward pass found for __nvvm_reflect declare i32 @__nvvm_reflect(i8*) local_unnamed_addr #4 Stacktrace: [1] julia_error(cstr::Cstring, val::Ptr{LLVM.API.LLVMOpaqueValue}, errtype::Enzyme.API.ErrorType, data::Ptr{Nothing}, data2::Ptr{LLVM.API.LLVMOpaqueValue}) @ Enzyme.Compiler ~/.julia/dev/Enzyme/src/compiler.jl:5853 [2] EnzymeCreatePrimalAndGradient(logic::Enzyme.Logic, todiff::LLVM.Function, retType::Enzyme.API.CDIFFE_TYPE, constant_args::Vector{Enzyme.API.CDIFFE_TYPE}, TA::Enzyme.TypeAnalysis, returnValue::Bool, dretUsed::Bool, mode::Enzyme.API.CDerivativeMode, width::Int64, additionalArg::Ptr{Nothing}, forceAnonymousTape::Bool, typeInfo::Enzyme.FnTypeInfo, uncacheable_args::Vector{Bool}, augmented::Ptr{Nothing}, atomicAdd::Bool) @ Enzyme.API ~/.julia/dev/Enzyme/src/api.jl:128 [3] enzyme!(job::GPUCompiler.CompilerJob{Enzyme.Compiler.EnzymeTarget, Enzyme.Compiler.EnzymeCompilerParams}, mod::LLVM.Module, primalf::LLVM.Function, TT::Type, mode::Enzyme.API.CDerivativeMode, width::Int64, parallel::Bool, actualRetType::Type, wrap::Bool, modifiedBetween::NTuple{5, Bool}, returnPrimal::Bool, jlrules::Vector{String}, expectedTapeType::Type) @ Enzyme.Compiler ~/.julia/dev/Enzyme/src/compiler.jl:7682 [4] codegen(output::Symbol, job::GPUCompiler.CompilerJob{Enzyme.Compiler.EnzymeTarget, Enzyme.Compiler.EnzymeCompilerParams}; libraries::Bool, deferred_codegen::Bool, optimize::Bool, ctx::LLVM.ThreadSafeContext, strip::Bool, validate::Bool, only_entry::Bool, parent_job::GPUCompiler.CompilerJob{GPUCompiler.PTXCompilerTarget, CUDA.CUDACompilerParams}) @ Enzyme.Compiler ~/.julia/dev/Enzyme/src/compiler.jl:9038 [5] codegen @ ~/.julia/dev/Enzyme/src/compiler.jl:8646 [inlined] [6] (::GPUCompiler.var"#117#120"{LLVM.ThreadSafeContext, GPUCompiler.CompilerJob{GPUCompiler.PTXCompilerTarget, CUDA.CUDACompilerParams}, GPUCompiler.CompilerJob{Enzyme.Compiler.EnzymeTarget, Enzyme.Compiler.EnzymeCompilerParams}})() @ GPUCompiler ~/.julia/packages/GPUCompiler/cy24l/src/driver.jl:289 [7] get!(default::GPUCompiler.var"#117#120"{LLVM.ThreadSafeContext, GPUCompiler.CompilerJob{GPUCompiler.PTXCompilerTarget, CUDA.CUDACompilerParams}, GPUCompiler.CompilerJob{Enzyme.Compiler.EnzymeTarget, Enzyme.Compiler.EnzymeCompilerParams}}, h::Dict{GPUCompiler.CompilerJob, String}, key::GPUCompiler.CompilerJob{Enzyme.Compiler.EnzymeTarget, Enzyme.Compiler.EnzymeCompilerParams}) @ Base ./dict.jl:468 [8] macro expansion @ ~/.julia/packages/GPUCompiler/cy24l/src/driver.jl:288 [inlined] [9] emit_llvm(job::GPUCompiler.CompilerJob; libraries::Bool, deferred_codegen::Bool, optimize::Bool, cleanup::Bool, only_entry::Bool, validate::Bool, ctx::LLVM.ThreadSafeContext) @ GPUCompiler ~/.julia/packages/GPUCompiler/cy24l/src/utils.jl:89 [10] emit_llvm @ ~/.julia/packages/GPUCompiler/cy24l/src/utils.jl:83 [inlined] [11] codegen(output::Symbol, job::GPUCompiler.CompilerJob; libraries::Bool, deferred_codegen::Bool, optimize::Bool, cleanup::Bool, strip::Bool, validate::Bool, only_entry::Bool, parent_job::Nothing, ctx::LLVM.ThreadSafeContext) @ GPUCompiler ~/.julia/packages/GPUCompiler/cy24l/src/driver.jl:120 [12] compile(target::Symbol, job::GPUCompiler.CompilerJob; libraries::Bool, deferred_codegen::Bool, optimize::Bool, cleanup::Bool, strip::Bool, validate::Bool, only_entry::Bool, ctx::LLVM.ThreadSafeContext) @ GPUCompiler ~/.julia/packages/GPUCompiler/cy24l/src/driver.jl:90 [13] compile @ ~/.julia/packages/GPUCompiler/cy24l/src/driver.jl:81 [inlined] [14] compile(job::GPUCompiler.CompilerJob, ctx::LLVM.ThreadSafeContext) @ CUDA ~/.julia/dev/CUDA/src/compiler/compilation.jl:105 [15] #201 @ ~/.julia/dev/CUDA/src/compiler/compilation.jl:100 [inlined] [16] LLVM.ThreadSafeContext(f::CUDA.var"#201#202"{GPUCompiler.CompilerJob{GPUCompiler.PTXCompilerTarget, CUDA.CUDACompilerParams}}) @ LLVM ~/.julia/packages/LLVM/bsdku/src/executionengine/ts_module.jl:14 [17] JuliaContext @ ~/.julia/packages/GPUCompiler/cy24l/src/driver.jl:35 [inlined] [18] compile @ ~/.julia/dev/CUDA/src/compiler/compilation.jl:99 [inlined] [19] actual_compilation(cache::Dict{UInt64, Any}, key::UInt64, cfg::GPUCompiler.CompilerConfig{GPUCompiler.PTXCompilerTarget, CUDA.CUDACompilerParams}, ft::Type, tt::Type, compiler::typeof(CUDA.compile), linker::typeof(CUDA.link)) @ GPUCompiler ~/.julia/packages/GPUCompiler/cy24l/src/cache.jl:53 [20] cached_compilation(cache::Dict{UInt64, Any}, cfg::GPUCompiler.CompilerConfig{GPUCompiler.PTXCompilerTarget, CUDA.CUDACompilerParams}, ft::Type, tt::Type, compiler::Function, linker::Function) @ GPUCompiler ~/.julia/packages/GPUCompiler/cy24l/src/cache.jl:37 [21] macro expansion @ ~/.julia/dev/CUDA/src/compiler/execution.jl:310 [inlined] [22] macro expansion @ ./lock.jl:267 [inlined] [23] cufunction(f::typeof(grad_kernel!), tt::Type{Tuple{CuDeviceMatrix{Float64, 1}, CuDeviceMatrix{Float64, 1}, CuDeviceVector{SVector{3, Float32}, 1}, CuDeviceVector{SVector{3, Float32}, 1}, CuDeviceVector{Int32, 1}, CuDeviceVector{Int32, 1}}}; kwargs::Base.Pairs{Symbol, Union{}, Tuple{}, NamedTuple{(), Tuple{}}}) @ CUDA ~/.julia/dev/CUDA/src/compiler/execution.jl:306 [24] cufunction(f::typeof(grad_kernel!), tt::Type{Tuple{CuDeviceMatrix{Float64, 1}, CuDeviceMatrix{Float64, 1}, CuDeviceVector{SVector{3, Float32}, 1}, CuDeviceVector{SVector{3, Float32}, 1}, CuDeviceVector{Int32, 1}, CuDeviceVector{Int32, 1}}}) @ CUDA ~/.julia/dev/CUDA/src/compiler/execution.jl:303 [25] macro expansion @ ~/.julia/dev/CUDA/src/compiler/execution.jl:104 [inlined] [26] top-level scope @ ~/.julia/dev/CUDA/src/utilities.jl:25