Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- ; ModuleID = '<stdin>'
- source_filename = "neweigen.cpp"
- target datalayout = "e-m:e-i64:64-f80:128-n8:16:32:64-S128"
- target triple = "x86_64-unknown-linux-gnu"
- %"class.Eigen::Matrix" = type { %"class.Eigen::PlainObjectBase" }
- %"class.Eigen::PlainObjectBase" = type { %"class.Eigen::DenseStorage" }
- %"class.Eigen::DenseStorage" = type { %"struct.Eigen::internal::plain_array" }
- %"struct.Eigen::internal::plain_array" = type { [4000 x double] }
- %"class.Eigen::Matrix.2" = type { %"class.Eigen::PlainObjectBase.3" }
- %"class.Eigen::PlainObjectBase.3" = type { %"class.Eigen::DenseStorage.10" }
- %"class.Eigen::DenseStorage.10" = type { %"struct.Eigen::internal::plain_array.11" }
- %"struct.Eigen::internal::plain_array.11" = type { [100 x double] }
- %"class.Eigen::Matrix.12" = type { %"class.Eigen::PlainObjectBase.13" }
- %"class.Eigen::PlainObjectBase.13" = type { %"class.Eigen::DenseStorage.20" }
- %"class.Eigen::DenseStorage.20" = type { %"struct.Eigen::internal::plain_array.21" }
- %"struct.Eigen::internal::plain_array.21" = type { [40 x double] }
- %"class.Eigen::Transpose" = type { %"class.Eigen::Matrix.12"* }
- %"class.Eigen::Transpose.82" = type { %"class.Eigen::Matrix"* }
- %"class.Eigen::Transpose.89" = type { %"class.Eigen::Matrix.2"* }
- %"class.Eigen::Matrix.26" = type { %"class.Eigen::PlainObjectBase.27" }
- %"class.Eigen::PlainObjectBase.27" = type { %"class.Eigen::DenseStorage.34" }
- %"class.Eigen::DenseStorage.34" = type { %"struct.Eigen::internal::plain_array.35" }
- %"struct.Eigen::internal::plain_array.35" = type { [100 x double] }
- %"class.Eigen::Matrix.36" = type { %"class.Eigen::PlainObjectBase.37" }
- %"class.Eigen::PlainObjectBase.37" = type { %"class.Eigen::DenseStorage.44" }
- %"class.Eigen::DenseStorage.44" = type { %"struct.Eigen::internal::plain_array.45" }
- %"struct.Eigen::internal::plain_array.45" = type { [40 x double] }
- %"class.Eigen::internal::const_blas_data_mapper" = type { %"class.Eigen::internal::blas_data_mapper" }
- %"class.Eigen::internal::const_blas_data_mapper.96" = type { %"class.Eigen::internal::blas_data_mapper.97" }
- $_ZN5Eigen8internal19gemv_dense_selectorILi2ELi1ELb1EE3runINS_9TransposeIKNS_6MatrixIdLi100ELi40ELi0ELi100ELi40EEEEENS4_IKNS5_IdLi1ELi100ELi1ELi1ELi100EEEEENS4_INS5_IdLi1ELi40ELi1ELi1ELi40EEEEEEEvRKT_RKT0_RT1_RKNSK_6ScalarE = comdat any
- $_ZN5Eigen8internal29general_matrix_vector_productIldNS0_22const_blas_data_mapperIdlLi1EEELi1ELb0EdNS2_IdlLi0EEELb0ELi0EE3runEllRKS3_RKS4_Pdld = comdat any
- ; Function Attrs: nounwind uwtable
- define dso_local void @_Z6matvecRKN5Eigen6MatrixIdLi100ELi40ELi0ELi100ELi40EEERKNS0_IdLi1ELi100ELi1ELi1ELi100EEERNS0_IdLi1ELi40ELi1ELi1ELi40EEE(%"class.Eigen::Matrix"* noalias dereferenceable(32000) %W, %"class.Eigen::Matrix.2"* noalias dereferenceable(800) %B, %"class.Eigen::Matrix.12"* noalias nocapture dereferenceable(320) %foo) #0 {
- entry:
- %destT.i.i.i.i.i.i.i.i.i.i.i.i.i = alloca %"class.Eigen::Transpose", align 8
- %ref.tmp.i.i.i.i.i.i.i.i.i.i.i.i.i = alloca %"class.Eigen::Transpose.82", align 8
- %ref.tmp1.i.i.i.i.i.i.i.i.i.i.i.i.i = alloca %"class.Eigen::Transpose.89", align 8
- %ref.tmp.i.i.i.i.i.i.i.i.i.i = alloca double, align 8
- %tmp.i.i.i.i = alloca %"class.Eigen::Matrix.12", align 8
- store double 1.000000e+00, double* %ref.tmp.i.i.i.i.i.i.i.i.i.i, align 8, !tbaa !2
- %6 = bitcast %"class.Eigen::Transpose"* %destT.i.i.i.i.i.i.i.i.i.i.i.i.i to %"class.Eigen::PlainObjectBase.13"**
- store %"class.Eigen::PlainObjectBase.13"* %3, %"class.Eigen::PlainObjectBase.13"** %6, align 8, !tbaa !6
- call void @_ZN5Eigen8internal19gemv_dense_selectorILi2ELi1ELb1EE3runINS_9TransposeIKNS_6MatrixIdLi100ELi40ELi0ELi100ELi40EEEEENS4_IKNS5_IdLi1ELi100ELi1ELi1ELi100EEEEENS4_INS5_IdLi1ELi40ELi1ELi1ELi40EEEEEEEvRKT_RKT0_RT1_RKNSK_6ScalarE(%"class.Eigen::Transpose.82"* nonnull dereferenceable(8) %ref.tmp.i.i.i.i.i.i.i.i.i.i.i.i.i, %"class.Eigen::Transpose.89"* nonnull dereferenceable(8) %ref.tmp1.i.i.i.i.i.i.i.i.i.i.i.i.i, %"class.Eigen::Transpose"* nonnull dereferenceable(8) %destT.i.i.i.i.i.i.i.i.i.i.i.i.i, double* nonnull dereferenceable(8) %ref.tmp.i.i.i.i.i.i.i.i.i.i) #3
- ret void
- }
- ; Function Attrs: nounwind
- ; Function Attrs: argmemonly nounwind
- ; Function Attrs: argmemonly nounwind
- ; Function Attrs: nounwind uwtable
- define dso_local void @_Z12deriv_matvecRKN5Eigen6MatrixIdLi100ELi40ELi0ELi100ELi40EEERS1_RKNS0_IdLi1ELi100ELi1ELi1ELi100EEES7_RNS0_IdLi1ELi40ELi1ELi1ELi40EEES9_(%"class.Eigen::Matrix"* noalias dereferenceable(32000) %W, %"class.Eigen::Matrix"* noalias dereferenceable(32000) %Wp, %"class.Eigen::Matrix.2"* noalias dereferenceable(800) %B, %"class.Eigen::Matrix.2"* noalias dereferenceable(800) %Bp, %"class.Eigen::Matrix.12"* noalias dereferenceable(320) %foo, %"class.Eigen::Matrix.12"* noalias dereferenceable(320) %foop) local_unnamed_addr #0 {
- entry:
- %destT.i.i.i.i.i.i.i.i.i.i.i.i.i.i = alloca %"class.Eigen::Transpose", align 8
- %ref.tmp.i.i.i.i.i.i.i.i.i.i.i.i.i.i = alloca %"class.Eigen::Transpose.82", align 8
- %ref.tmp1.i.i.i.i.i.i.i.i.i.i.i.i.i.i = alloca %"class.Eigen::Transpose.89", align 8
- %ref.tmp.i.i.i.i.i.i.i.i.i.i.i = alloca double, align 8
- %tmp.i.i.i.i.i = alloca %"class.Eigen::Matrix.12", align 8
- %"ref.tmp.i.i.i.i.i.i.i.i.i.i'ip.i" = alloca double, align 8
- %"destT.i.i.i.i.i.i.i.i.i.i.i.i.i'ip.i" = alloca %"class.Eigen::Transpose", align 8
- %"ref.tmp1.i.i.i.i.i.i.i.i.i.i.i.i.i'ip.i" = alloca %"class.Eigen::Transpose.89", align 8
- %"ref.tmp.i.i.i.i.i.i.i.i.i.i.i.i.i'ip.i" = alloca %"class.Eigen::Transpose.82", align 8
- %"tmp.i.i.i.i'ip.sroa.0.i" = alloca [40 x double]
- %"tmp.i.i.i.i'ip.sroa.0.0..sroa_cast14.i" = bitcast [40 x double]* %"tmp.i.i.i.i'ip.sroa.0.i" to i8*
- store double 1.000000e+00, double* %ref.tmp.i.i.i.i.i.i.i.i.i.i.i, align 8, !tbaa !2, !noalias !8
- %15 = bitcast %"class.Eigen::Transpose"* %destT.i.i.i.i.i.i.i.i.i.i.i.i.i.i to %"class.Eigen::PlainObjectBase.13"**
- store %"class.Eigen::PlainObjectBase.13"* %12, %"class.Eigen::PlainObjectBase.13"** %15, align 8, !tbaa !6, !noalias !8
- call void @_ZN5Eigen8internal19gemv_dense_selectorILi2ELi1ELb1EE3runINS_9TransposeIKNS_6MatrixIdLi100ELi40ELi0ELi100ELi40EEEEENS4_IKNS5_IdLi1ELi100ELi1ELi1ELi100EEEEENS4_INS5_IdLi1ELi40ELi1ELi1ELi40EEEEEEEvRKT_RKT0_RT1_RKNSK_6ScalarE(%"class.Eigen::Transpose.82"* nonnull dereferenceable(8) %ref.tmp.i.i.i.i.i.i.i.i.i.i.i.i.i.i, %"class.Eigen::Transpose.89"* nonnull dereferenceable(8) %ref.tmp1.i.i.i.i.i.i.i.i.i.i.i.i.i.i, %"class.Eigen::Transpose"* nonnull dereferenceable(8) %destT.i.i.i.i.i.i.i.i.i.i.i.i.i.i, double* nonnull dereferenceable(8) %ref.tmp.i.i.i.i.i.i.i.i.i.i.i) #3, !noalias !13
- %"tmp.i.i.i.i'ip.sroa.0.0.dst1.i.i.i.i'ip.sroa_cast.i" = bitcast %"class.Eigen::Matrix.12"* %foop to i8*
- %21 = call {} @diffe_ZN5Eigen8internal19gemv_dense_selectorILi2ELi1ELb1EE3runINS_9TransposeIKNS_6MatrixIdLi100ELi40ELi0ELi100ELi40EEEEENS4_IKNS5_IdLi1ELi100ELi1ELi1ELi100EEEEENS4_INS5_IdLi1ELi40ELi1ELi1ELi40EEEEEEEvRKT_RKT0_RT1_RKNSK_6ScalarE(%"class.Eigen::Transpose.82"* nonnull %ref.tmp.i.i.i.i.i.i.i.i.i.i.i.i.i.i, %"class.Eigen::Transpose.82"* nonnull %"ref.tmp.i.i.i.i.i.i.i.i.i.i.i.i.i'ip.i", %"class.Eigen::Transpose.89"* nonnull %ref.tmp1.i.i.i.i.i.i.i.i.i.i.i.i.i.i, %"class.Eigen::Transpose.89"* nonnull %"ref.tmp1.i.i.i.i.i.i.i.i.i.i.i.i.i'ip.i", %"class.Eigen::Transpose"* nonnull %destT.i.i.i.i.i.i.i.i.i.i.i.i.i.i, %"class.Eigen::Transpose"* nonnull %"destT.i.i.i.i.i.i.i.i.i.i.i.i.i'ip.i", double* nonnull %ref.tmp.i.i.i.i.i.i.i.i.i.i.i, double* nonnull %"ref.tmp.i.i.i.i.i.i.i.i.i.i'ip.i") #3, !noalias !13
- %"'ip2.i" = bitcast %"class.Eigen::Transpose.89"* %"ref.tmp1.i.i.i.i.i.i.i.i.i.i.i.i.i'ip.i" to i64*
- store double 0.000000e+00, double* %"ref.tmp.i.i.i.i.i.i.i.i.i.i'ip.i", !noalias !8
- ret void
- }
- ; Function Attrs: nounwind
- declare double @"llvm.autodiff.p0f_isVoidp0s_class.Eigen::Matrixsp0s_class.Eigen::Matrix.2sp0s_class.Eigen::Matrix.12sf"(void (%"class.Eigen::Matrix"*, %"class.Eigen::Matrix.2"*, %"class.Eigen::Matrix.12"*)*, ...) #3
- ; Function Attrs: norecurse nounwind uwtable
- entry:
- %destT.i.i.i.i.i.i.i.i.i.i.i.i.i.i = alloca %"class.Eigen::Transpose", align 8
- %ref.tmp.i.i.i.i.i.i.i.i.i.i.i.i.i.i = alloca %"class.Eigen::Transpose.82", align 8
- %ref.tmp1.i.i.i.i.i.i.i.i.i.i.i.i.i.i = alloca %"class.Eigen::Transpose.89", align 8
- %ref.tmp.i.i.i.i.i.i.i.i.i.i.i = alloca double, align 8
- %tmp.i.i.i.i.i = alloca %"class.Eigen::Matrix.12", align 8
- %"ref.tmp.i.i.i.i.i.i.i.i.i.i'ip.i" = alloca double, align 8
- %"destT.i.i.i.i.i.i.i.i.i.i.i.i.i'ip.i" = alloca %"class.Eigen::Transpose", align 8
- %"ref.tmp1.i.i.i.i.i.i.i.i.i.i.i.i.i'ip.i" = alloca %"class.Eigen::Transpose.89", align 8
- %"ref.tmp.i.i.i.i.i.i.i.i.i.i.i.i.i'ip.i" = alloca %"class.Eigen::Transpose.82", align 8
- %"tmp.i.i.i.i'ip.sroa.0.i" = alloca [40 x double]
- %W = alloca %"class.Eigen::Matrix", align 8
- %Wp = alloca %"class.Eigen::Matrix", align 8
- %B = alloca %"class.Eigen::Matrix.26", align 8
- %Bp = alloca %"class.Eigen::Matrix.26", align 8
- %foo = alloca %"class.Eigen::Matrix.36", align 8
- %foop = alloca %"class.Eigen::Matrix.36", align 8
- for.body.i.i.i.i.i.i.i.i94: ; preds = %for.body.i.i.i.i.i.i.i.i94, %entry
- for.body.i.i.i.i.i.i.i.i86: ; preds = %for.body.i.i.i.i.i.i.i.i94, %for.body.i.i.i.i.i.i.i.i86
- for.body.i.i.i.i.i.i.i.i78: ; preds = %for.body.i.i.i.i.i.i.i.i86, %for.body.i.i.i.i.i.i.i.i78
- for.body.i.i.i.i.i.i.i.i71.preheader: ; preds = %for.body.i.i.i.i.i.i.i.i78
- br label %for.body.i.i.i.i.i.i.i.i
- for.body.i.i.i.i.i.i.i.i: ; preds = %for.body.i.i.i.i.i.i.i.i, %for.body.i.i.i.i.i.i.i.i71.preheader
- br i1 %exitcond.i.i.i.i.i.i.i.i, label %_ZN5Eigen6MatrixIdLi40ELi1ELi0ELi40ELi1EEaSINS_14CwiseNullaryOpINS_8internal18scalar_constant_opIdEES1_EEEERS1_RKNS_9DenseBaseIT_EE.exit, label %for.body.i.i.i.i.i.i.i.i
- _ZN5Eigen6MatrixIdLi40ELi1ELi0ELi40ELi1EEaSINS_14CwiseNullaryOpINS_8internal18scalar_constant_opIdEES1_EEEERS1_RKNS_9DenseBaseIT_EE.exit: ; preds = %for.body.i.i.i.i.i.i.i.i
- %10 = bitcast %"class.Eigen::Matrix.26"* %B to %"class.Eigen::Matrix.2"*
- %11 = bitcast %"class.Eigen::Matrix.26"* %Bp to %"class.Eigen::Matrix.2"*
- %12 = bitcast %"class.Eigen::Matrix.36"* %foo to %"class.Eigen::Matrix.12"*
- %13 = bitcast %"class.Eigen::Matrix.36"* %foop to %"class.Eigen::Matrix.12"*
- %"tmp.i.i.i.i'ip.sroa.0.0..sroa_cast14.i" = bitcast [40 x double]* %"tmp.i.i.i.i'ip.sroa.0.i" to i8*
- store double 1.000000e+00, double* %ref.tmp.i.i.i.i.i.i.i.i.i.i.i, align 8, !tbaa !2, !noalias !15
- %29 = bitcast %"class.Eigen::Transpose"* %destT.i.i.i.i.i.i.i.i.i.i.i.i.i.i to %"class.Eigen::PlainObjectBase.13"**
- store %"class.Eigen::PlainObjectBase.13"* %26, %"class.Eigen::PlainObjectBase.13"** %29, align 8, !tbaa !6, !noalias !15
- call void @_ZN5Eigen8internal19gemv_dense_selectorILi2ELi1ELb1EE3runINS_9TransposeIKNS_6MatrixIdLi100ELi40ELi0ELi100ELi40EEEEENS4_IKNS5_IdLi1ELi100ELi1ELi1ELi100EEEEENS4_INS5_IdLi1ELi40ELi1ELi1ELi40EEEEEEEvRKT_RKT0_RT1_RKNSK_6ScalarE(%"class.Eigen::Transpose.82"* nonnull dereferenceable(8) %ref.tmp.i.i.i.i.i.i.i.i.i.i.i.i.i.i, %"class.Eigen::Transpose.89"* nonnull dereferenceable(8) %ref.tmp1.i.i.i.i.i.i.i.i.i.i.i.i.i.i, %"class.Eigen::Transpose"* nonnull dereferenceable(8) %destT.i.i.i.i.i.i.i.i.i.i.i.i.i.i, double* nonnull dereferenceable(8) %ref.tmp.i.i.i.i.i.i.i.i.i.i.i) #3, !noalias !20
- %"tmp.i.i.i.i'ip.sroa.0.0.dst1.i.i.i.i'ip.sroa_cast.i" = bitcast %"class.Eigen::Matrix.12"* %13 to i8*
- %35 = call {} @diffe_ZN5Eigen8internal19gemv_dense_selectorILi2ELi1ELb1EE3runINS_9TransposeIKNS_6MatrixIdLi100ELi40ELi0ELi100ELi40EEEEENS4_IKNS5_IdLi1ELi100ELi1ELi1ELi100EEEEENS4_INS5_IdLi1ELi40ELi1ELi1ELi40EEEEEEEvRKT_RKT0_RT1_RKNSK_6ScalarE.2(%"class.Eigen::Transpose.82"* nonnull %ref.tmp.i.i.i.i.i.i.i.i.i.i.i.i.i.i, %"class.Eigen::Transpose.82"* nonnull %"ref.tmp.i.i.i.i.i.i.i.i.i.i.i.i.i'ip.i", %"class.Eigen::Transpose.89"* nonnull %ref.tmp1.i.i.i.i.i.i.i.i.i.i.i.i.i.i, %"class.Eigen::Transpose.89"* nonnull %"ref.tmp1.i.i.i.i.i.i.i.i.i.i.i.i.i'ip.i", %"class.Eigen::Transpose"* nonnull %destT.i.i.i.i.i.i.i.i.i.i.i.i.i.i, %"class.Eigen::Transpose"* nonnull %"destT.i.i.i.i.i.i.i.i.i.i.i.i.i'ip.i", double* nonnull %ref.tmp.i.i.i.i.i.i.i.i.i.i.i, double* nonnull %"ref.tmp.i.i.i.i.i.i.i.i.i.i'ip.i") #3, !noalias !20
- %"'ip2.i" = bitcast %"class.Eigen::Transpose.89"* %"ref.tmp1.i.i.i.i.i.i.i.i.i.i.i.i.i'ip.i" to i64*
- store double 0.000000e+00, double* %"ref.tmp.i.i.i.i.i.i.i.i.i.i'ip.i", !noalias !15
- br label %_ZN5Eigen15DenseCoeffsBaseINS_6MatrixIdLi100ELi1ELi0ELi100ELi1EEELi1EEclEl.exit
- _ZN5Eigen15DenseCoeffsBaseINS_6MatrixIdLi100ELi1ELi0ELi100ELi1EEELi1EEclEl.exit: ; preds = %_ZN5Eigen15DenseCoeffsBaseINS_6MatrixIdLi100ELi1ELi0ELi100ELi1EEELi1EEclEl.exit, %_ZN5Eigen6MatrixIdLi40ELi1ELi0ELi40ELi1EEaSINS_14CwiseNullaryOpINS_8internal18scalar_constant_opIdEES1_EEEERS1_RKNS_9DenseBaseIT_EE.exit
- %indvars.iv120 = phi i64 [ 0, %_ZN5Eigen6MatrixIdLi40ELi1ELi0ELi40ELi1EEaSINS_14CwiseNullaryOpINS_8internal18scalar_constant_opIdEES1_EEEERS1_RKNS_9DenseBaseIT_EE.exit ], [ %indvars.iv.next121, %_ZN5Eigen15DenseCoeffsBaseINS_6MatrixIdLi100ELi1ELi0ELi100ELi1EEELi1EEclEl.exit ]
- br i1 %exitcond122, label %for.body32.preheader, label %_ZN5Eigen15DenseCoeffsBaseINS_6MatrixIdLi100ELi1ELi0ELi100ELi1EEELi1EEclEl.exit
- for.body32.preheader: ; preds = %_ZN5Eigen15DenseCoeffsBaseINS_6MatrixIdLi100ELi1ELi0ELi100ELi1EEELi1EEclEl.exit, %for.cond.cleanup31
- %indvars.iv118 = phi i64 [ %indvars.iv.next119, %for.cond.cleanup31 ], [ 0, %_ZN5Eigen15DenseCoeffsBaseINS_6MatrixIdLi100ELi1ELi0ELi100ELi1EEELi1EEclEl.exit ]
- br label %for.body32
- for.cond.cleanup26: ; preds = %for.cond.cleanup31
- for.cond.cleanup31: ; preds = %for.body32
- for.body32: ; preds = %for.body32, %for.body32.preheader
- %45 = load double, double* %arrayidx.i.i.i, align 8, !tbaa !2
- }
- ; Function Attrs: nounwind uwtable
- define linkonce_odr dso_local void @_ZN5Eigen8internal19gemv_dense_selectorILi2ELi1ELb1EE3runINS_9TransposeIKNS_6MatrixIdLi100ELi40ELi0ELi100ELi40EEEEENS4_IKNS5_IdLi1ELi100ELi1ELi1ELi100EEEEENS4_INS5_IdLi1ELi40ELi1ELi1ELi40EEEEEEEvRKT_RKT0_RT1_RKNSK_6ScalarE(%"class.Eigen::Transpose.82"* dereferenceable(8) %lhs, %"class.Eigen::Transpose.89"* dereferenceable(8) %rhs, %"class.Eigen::Transpose"* dereferenceable(8) %dest, double* dereferenceable(8) %alpha) local_unnamed_addr #0 comdat align 2 {
- entry:
- %ref.tmp = alloca %"class.Eigen::internal::const_blas_data_mapper", align 8
- %ref.tmp35 = alloca %"class.Eigen::internal::const_blas_data_mapper.96", align 8
- %0 = load %"class.Eigen::Matrix"*, %"class.Eigen::Matrix"** %m_matrix.i.i, align 8, !tbaa !22
- %2 = load double, double* %alpha, align 8, !tbaa !2
- %cmp = icmp eq %"class.Eigen::Matrix.2"* %1, null
- cond.end: ; preds = %entry
- %3 = alloca [100 x double], align 16
- br label %_ZN5Eigen8internal28aligned_stack_memory_handlerIdED2Ev.exit
- _ZN5Eigen8internal28aligned_stack_memory_handlerIdED2Ev.exit: ; preds = %cond.end, %entry
- store double* %cond20, double** %m_data.i.i, align 8, !tbaa !30
- %6 = load %"class.Eigen::Matrix.12"*, %"class.Eigen::Matrix.12"** %m_matrix.i.i46, align 8, !tbaa !33
- call void @_ZN5Eigen8internal29general_matrix_vector_productIldNS0_22const_blas_data_mapperIdlLi1EEELi1ELb0EdNS2_IdlLi0EEELb0ELi0EE3runEllRKS3_RKS4_Pdld(i64 40, i64 100, %"class.Eigen::internal::const_blas_data_mapper"* nonnull dereferenceable(16) %ref.tmp, %"class.Eigen::internal::const_blas_data_mapper.96"* nonnull dereferenceable(16) %ref.tmp35, double* %arraydecay.i.i.i, i64 1, double %2)
- ret void
- }
- ; Function Attrs: noinline nounwind uwtable
- define linkonce_odr dso_local void @_ZN5Eigen8internal29general_matrix_vector_productIldNS0_22const_blas_data_mapperIdlLi1EEELi1ELb0EdNS2_IdlLi0EEELb0ELi0EE3runEllRKS3_RKS4_Pdld(i64 %rows, i64 %cols, %"class.Eigen::internal::const_blas_data_mapper"* dereferenceable(16) %lhs, %"class.Eigen::internal::const_blas_data_mapper.96"* dereferenceable(16) %rhs, double* %res, i64 %resIncr, double %alpha) local_unnamed_addr #5 comdat align 2 {
- entry:
- lor.lhs.false: ; preds = %entry
- if.then: ; preds = %lor.lhs.false, %entry
- br label %if.end
- if.end: ; preds = %if.then, %lor.lhs.false
- for.body.lr.ph: ; preds = %if.end
- for.body.us: ; preds = %for.body.lr.ph, %for.cond30.for.cond.cleanup32_crit_edge.us
- %i.0397.us = phi i64 [ %add69.us, %for.cond30.for.cond.cleanup32_crit_edge.us ], [ 0, %for.body.lr.ph ]
- br label %for.body33.us
- for.body33.us: ; preds = %for.body33.us, %for.body.us
- %tmp3.0390.us = phi double [ 0.000000e+00, %for.body.us ], [ %add49.us, %for.body33.us ]
- %tmp2.0389.us = phi double [ 0.000000e+00, %for.body.us ], [ %add45.us, %for.body33.us ]
- %tmp1.0388.us = phi double [ 0.000000e+00, %for.body.us ], [ %add41.us, %for.body33.us ]
- %tmp0.0387.us = phi double [ 0.000000e+00, %for.body.us ], [ %add37.us, %for.body33.us ]
- for.cond30.for.cond.cleanup32_crit_edge.us: ; preds = %for.body33.us
- %mul50.us = fmul fast double %add37.us, %alpha
- %12 = load double, double* %arrayidx.us, align 8, !tbaa !2
- %add52.us = fadd fast double %12, %mul50.us
- store double %add52.us, double* %arrayidx.us, align 8, !tbaa !2
- %mul53.us = fmul fast double %add41.us, %alpha
- %13 = load double, double* %arrayidx56.us, align 8, !tbaa !2
- %add57.us = fadd fast double %13, %mul53.us
- store double %add57.us, double* %arrayidx56.us, align 8, !tbaa !2
- %mul58.us = fmul fast double %add45.us, %alpha
- %14 = load double, double* %arrayidx61.us, align 8, !tbaa !2
- %add62.us = fadd fast double %14, %mul58.us
- store double %add62.us, double* %arrayidx61.us, align 8, !tbaa !2
- %mul63.us = fmul fast double %add49.us, %alpha
- %15 = load double, double* %arrayidx66.us, align 8, !tbaa !2
- %add67.us = fadd fast double %15, %mul63.us
- store double %add67.us, double* %arrayidx66.us, align 8, !tbaa !2
- for.cond72.preheader: ; preds = %for.cond30.for.cond.cleanup32_crit_edge.us, %for.body.lr.ph, %if.end
- for.body75.lr.ph: ; preds = %for.cond72.preheader
- %17 = load double*, double** %m_data.i, align 8
- for.body75.us: ; preds = %for.body75.lr.ph, %for.cond.cleanup138.us
- %.pre407.pn = load double, double* %.pre407.pn.in, align 8, !tbaa !2
- %ptmp0.2.us = fmul fast double %.pre407.pn, %.pre406
- for.cond.cleanup138.us: ; preds = %for.body139.us, %for.body75.us
- %tmp076.2.lcssa.us = phi double [ %ptmp0.2.us, %for.body75.us ], [ %add144.us, %for.body139.us ]
- %mul148.us = fmul fast double %tmp076.2.lcssa.us, %alpha
- %18 = load double, double* %arrayidx150.us, align 8, !tbaa !2
- %add151.us = fadd fast double %18, %mul148.us
- store double %add151.us, double* %arrayidx150.us, align 8, !tbaa !2
- for.body139.us: ; preds = %for.body75.us, %for.body139.us
- %tmp076.2381.us = phi double [ %add144.us, %for.body139.us ], [ %ptmp0.2.us, %for.body75.us ]
- %20 = load double, double* %arrayidx.i.us, align 8, !tbaa !2
- %mul.i.i.us = fmul fast double %20, %19
- %add144.us = fadd fast double %mul.i.i.us, %tmp076.2381.us
- for.body75: ; preds = %for.body75.lr.ph, %for.cond.cleanup138
- for.cond.cleanup138: ; preds = %for.body139, %for.body75
- %tmp076.2.lcssa = phi double [ 0.000000e+00, %for.body75 ], [ %add144, %for.body139 ]
- %mul148 = fmul fast double %tmp076.2.lcssa, %alpha
- %21 = load double, double* %arrayidx150, align 8, !tbaa !2
- %add151 = fadd fast double %21, %mul148
- store double %add151, double* %arrayidx150, align 8, !tbaa !2
- for.body139: ; preds = %for.body75, %for.body139
- %tmp076.2381 = phi double [ %add144, %for.body139 ], [ 0.000000e+00, %for.body75 ]
- %23 = load double, double* %arrayidx.i, align 8, !tbaa !2
- %mul.i.i = fmul fast double %23, %22
- %add144 = fadd fast double %mul.i.i, %tmp076.2381
- do.end: ; preds = %for.cond.cleanup138, %for.cond.cleanup138.us, %for.cond72.preheader
- ret void
- }
- ; Function Attrs: argmemonly nounwind
- ; Function Attrs: nounwind
- ; Function Attrs: argmemonly nounwind
- ; Function Attrs: nounwind uwtable
- define internal {} @diffe_ZN5Eigen8internal19gemv_dense_selectorILi2ELi1ELb1EE3runINS_9TransposeIKNS_6MatrixIdLi100ELi40ELi0ELi100ELi40EEEEENS4_IKNS5_IdLi1ELi100ELi1ELi1ELi100EEEEENS4_INS5_IdLi1ELi40ELi1ELi1ELi40EEEEEEEvRKT_RKT0_RT1_RKNSK_6ScalarE(%"class.Eigen::Transpose.82"* dereferenceable(8) %lhs, %"class.Eigen::Transpose.82"* %"lhs'", %"class.Eigen::Transpose.89"* dereferenceable(8) %rhs, %"class.Eigen::Transpose.89"* %"rhs'", %"class.Eigen::Transpose"* dereferenceable(8) %dest, %"class.Eigen::Transpose"* %"dest'", double* dereferenceable(8) %alpha, double* %"alpha'") local_unnamed_addr #0 align 2 {
- entry:
- %ref.tmp = alloca %"class.Eigen::internal::const_blas_data_mapper", align 8
- %ref.tmp35 = alloca %"class.Eigen::internal::const_blas_data_mapper.96", align 8
- %"ref.tmp35'ip" = alloca %"class.Eigen::internal::const_blas_data_mapper.96", align 8
- %"ref.tmp'ip" = alloca %"class.Eigen::internal::const_blas_data_mapper", align 8
- %2 = load %"class.Eigen::Matrix"*, %"class.Eigen::Matrix"** %m_matrix.i.i, align 8, !tbaa !22
- %4 = load double, double* %alpha, align 8, !tbaa !2
- %cmp = icmp eq %"class.Eigen::Matrix.2"* %3, null
- cond.end: ; preds = %entry
- %5 = alloca [100 x double], align 16
- br label %_ZN5Eigen8internal28aligned_stack_memory_handlerIdED2Ev.exit
- _ZN5Eigen8internal28aligned_stack_memory_handlerIdED2Ev.exit: ; preds = %cond.end, %entry
- store double* %cond20, double** %m_data.i.i, align 8, !tbaa !30
- %8 = load %"class.Eigen::Matrix.12"*, %"class.Eigen::Matrix.12"** %m_matrix.i.i46, align 8, !tbaa !33
- call void @_ZN5Eigen8internal29general_matrix_vector_productIldNS0_22const_blas_data_mapperIdlLi1EEELi1ELb0EdNS2_IdlLi0EEELb0ELi0EE3runEllRKS3_RKS4_Pdld(i64 40, i64 100, %"class.Eigen::internal::const_blas_data_mapper"* nonnull dereferenceable(16) %ref.tmp, %"class.Eigen::internal::const_blas_data_mapper.96"* nonnull dereferenceable(16) %ref.tmp35, double* %arraydecay.i.i.i, i64 1, double %4)
- %"'ip" = load %"class.Eigen::Matrix.12"*, %"class.Eigen::Matrix.12"** %"m_matrix.i.i46'ip", align 8
- %9 = call { double } @diffe_ZN5Eigen8internal29general_matrix_vector_productIldNS0_22const_blas_data_mapperIdlLi1EEELi1ELb0EdNS2_IdlLi0EEELb0ELi0EE3runEllRKS3_RKS4_Pdld(i64 40, i64 100, %"class.Eigen::internal::const_blas_data_mapper"* nonnull %ref.tmp, %"class.Eigen::internal::const_blas_data_mapper"* nonnull %"ref.tmp'ip", %"class.Eigen::internal::const_blas_data_mapper.96"* nonnull %ref.tmp35, %"class.Eigen::internal::const_blas_data_mapper.96"* nonnull %"ref.tmp35'ip", double* %arraydecay.i.i.i, double* %"arraydecay.i.i.i'ip", i64 1, double %4)
- ret {} undef
- }
- ; Function Attrs: noinline nounwind uwtable
- define internal { double } @diffe_ZN5Eigen8internal29general_matrix_vector_productIldNS0_22const_blas_data_mapperIdlLi1EEELi1ELb0EdNS2_IdlLi0EEELb0ELi0EE3runEllRKS3_RKS4_Pdld(i64 %rows, i64 %cols, %"class.Eigen::internal::const_blas_data_mapper"* dereferenceable(16) %lhs, %"class.Eigen::internal::const_blas_data_mapper"* %"lhs'", %"class.Eigen::internal::const_blas_data_mapper.96"* dereferenceable(16) %rhs, %"class.Eigen::internal::const_blas_data_mapper.96"* %"rhs'", double* %res, double* %"res'", i64 %resIncr, double %alpha) local_unnamed_addr #5 align 2 {
- entry:
- lor.lhs.false: ; preds = %entry
- if.then: ; preds = %lor.lhs.false, %entry
- br label %if.end
- if.end: ; preds = %if.then, %lor.lhs.false
- for.body.lr.ph: ; preds = %if.end
- for.body.us.preheader: ; preds = %for.body.lr.ph
- br label %for.body.us
- for.body.us: ; preds = %for.cond30.for.cond.cleanup32_crit_edge.us, %for.body.us.preheader
- %indvar = phi i64 [ 0, %for.body.us.preheader ], [ %indvar.next, %for.cond30.for.cond.cleanup32_crit_edge.us ]
- br label %for.body33.us
- for.body33.us: ; preds = %for.body33.us, %for.body.us
- %tmp3.0390.us = phi double [ 0.000000e+00, %for.body.us ], [ %add49.us, %for.body33.us ]
- %tmp2.0389.us = phi double [ 0.000000e+00, %for.body.us ], [ %add45.us, %for.body33.us ]
- %tmp1.0388.us = phi double [ 0.000000e+00, %for.body.us ], [ %add41.us, %for.body33.us ]
- %tmp0.0387.us = phi double [ 0.000000e+00, %for.body.us ], [ %add37.us, %for.body33.us ]
- store double %17, double* %20
- store double %21, double* %22
- store double %add37.us, double* %23
- store double %24, double* %25
- store double %add41.us, double* %26
- store double %27, double* %28
- store double %add45.us, double* %29
- store double %30, double* %31
- store double %add49.us, double* %32
- for.cond30.for.cond.cleanup32_crit_edge.us: ; preds = %for.body33.us
- %mul50.us = fmul fast double %add37.us, %alpha
- %33 = load double, double* %arrayidx.us, align 8, !tbaa !2
- %add52.us = fadd fast double %33, %mul50.us
- store double %add52.us, double* %arrayidx.us, align 8, !tbaa !2
- %mul53.us = fmul fast double %add41.us, %alpha
- %34 = load double, double* %arrayidx56.us, align 8, !tbaa !2
- %add57.us = fadd fast double %34, %mul53.us
- store double %add57.us, double* %arrayidx56.us, align 8, !tbaa !2
- %mul58.us = fmul fast double %add45.us, %alpha
- %35 = load double, double* %arrayidx61.us, align 8, !tbaa !2
- %add62.us = fadd fast double %35, %mul58.us
- store double %add62.us, double* %arrayidx61.us, align 8, !tbaa !2
- %mul63.us = fmul fast double %add49.us, %alpha
- %36 = load double, double* %arrayidx66.us, align 8, !tbaa !2
- %add67.us = fadd fast double %36, %mul63.us
- store double %add67.us, double* %arrayidx66.us, align 8, !tbaa !2
- for.cond72.preheader: ; preds = %for.cond30.for.cond.cleanup32_crit_edge.us, %for.body.lr.ph, %if.end
- %add49.us_mdyncache.0 = phi double* [ undef, %for.body.lr.ph ], [ undef, %if.end ], [ %add49.us_malloccache, %for.cond30.for.cond.cleanup32_crit_edge.us ]
- %add45.us_mdyncache.0 = phi double* [ undef, %for.body.lr.ph ], [ undef, %if.end ], [ %add45.us_malloccache, %for.cond30.for.cond.cleanup32_crit_edge.us ]
- %add41.us_mdyncache.0 = phi double* [ undef, %for.body.lr.ph ], [ undef, %if.end ], [ %add41.us_malloccache, %for.cond30.for.cond.cleanup32_crit_edge.us ]
- %add37.us_mdyncache.0 = phi double* [ undef, %for.body.lr.ph ], [ undef, %if.end ], [ %add37.us_malloccache, %for.cond30.for.cond.cleanup32_crit_edge.us ]
- %_mdyncache85.0 = phi double* [ undef, %for.body.lr.ph ], [ undef, %if.end ], [ %_malloccache84, %for.cond30.for.cond.cleanup32_crit_edge.us ]
- %_mdyncache90.0 = phi double* [ undef, %for.body.lr.ph ], [ undef, %if.end ], [ %_malloccache89, %for.cond30.for.cond.cleanup32_crit_edge.us ]
- %_mdyncache103.0 = phi double* [ undef, %for.body.lr.ph ], [ undef, %if.end ], [ %_malloccache102, %for.cond30.for.cond.cleanup32_crit_edge.us ]
- %_mdyncache115.0 = phi double* [ undef, %for.body.lr.ph ], [ undef, %if.end ], [ %_malloccache114, %for.cond30.for.cond.cleanup32_crit_edge.us ]
- %_mdyncache127.0 = phi double* [ undef, %for.body.lr.ph ], [ undef, %if.end ], [ %_malloccache126, %for.cond30.for.cond.cleanup32_crit_edge.us ]
- %37 = phi i8 [ 1, %for.body.lr.ph ], [ 2, %if.end ], [ 0, %for.cond30.for.cond.cleanup32_crit_edge.us ]
- for.body75.lr.ph: ; preds = %for.cond72.preheader
- %39 = load double*, double** %m_data.i, align 8
- for.body75.preheader: ; preds = %for.body75.lr.ph
- br label %for.body75
- for.body75.us.preheader: ; preds = %for.body75.lr.ph
- br label %for.body75.us
- for.body75.us: ; preds = %for.cond.cleanup138.us, %for.body75.us.preheader
- store double %.pre406, double* %48
- %.pre407.pn = load double, double* %.pre407.pn.in, align 8, !tbaa !2
- store double %.pre407.pn, double* %49
- %ptmp0.2.us = fmul fast double %.pre407.pn, %.pre406
- for.cond.cleanup138.us: ; preds = %for.body139.us, %for.body75.us
- %tmp076.2.lcssa.us = phi double [ %ptmp0.2.us, %for.body75.us ], [ %add144.us, %for.body139.us ]
- store double %tmp076.2.lcssa.us, double* %50
- %mul148.us = fmul fast double %tmp076.2.lcssa.us, %alpha
- %51 = load double, double* %arrayidx150.us, align 8, !tbaa !2
- %add151.us = fadd fast double %51, %mul148.us
- store double %add151.us, double* %arrayidx150.us, align 8, !tbaa !2
- for.body139.us: ; preds = %for.body75.us, %for.body139.us
- %tmp076.2381.us = phi double [ %add144.us, %for.body139.us ], [ %ptmp0.2.us, %for.body75.us ]
- store double %52, double* %55
- %56 = load double, double* %arrayidx.i.us, align 8, !tbaa !2
- store double %56, double* %57
- %mul.i.i.us = fmul fast double %56, %52
- %add144.us = fadd fast double %mul.i.i.us, %tmp076.2381.us
- for.body75: ; preds = %for.cond.cleanup138, %for.body75.preheader
- for.cond.cleanup138: ; preds = %for.body139, %for.body75
- %tmp076.2.lcssa = phi double [ 0.000000e+00, %for.body75 ], [ %add144, %for.body139 ]
- store double %tmp076.2.lcssa, double* %60
- %mul148 = fmul fast double %tmp076.2.lcssa, %alpha
- %61 = load double, double* %arrayidx150, align 8, !tbaa !2
- %add151 = fadd fast double %61, %mul148
- store double %add151, double* %arrayidx150, align 8, !tbaa !2
- for.body139: ; preds = %for.body75, %for.body139
- %tmp076.2381 = phi double [ %add144, %for.body139 ], [ 0.000000e+00, %for.body75 ]
- store double %62, double* %65
- %66 = load double, double* %arrayidx.i, align 8, !tbaa !2
- store double %66, double* %67
- %mul.i.i = fmul fast double %66, %62
- %add144 = fadd fast double %mul.i.i, %tmp076.2381
- invertif.end: ; preds = %invertfor.cond72.preheader, %invertfor.body.us.preheader
- %"alpha'de.0" = phi double [ %"alpha'de.3", %invertfor.cond72.preheader ], [ %146, %invertfor.body.us.preheader ]
- %68 = insertvalue { double } undef, double %"alpha'de.0", 0
- ret { double } %68
- invertfor.body.us.preheader: ; preds = %invertfor.body.us
- br label %invertif.end
- invertfor.body.us: ; preds = %invertfor.body33.us
- br i1 %83, label %invertfor.cond30.for.cond.cleanup32_crit_edge.us, label %invertfor.body.us.preheader
- invertfor.body33.us: ; preds = %invertfor.cond30.for.cond.cleanup32_crit_edge.us, %invertfor.body33.us
- %"j.0391.us'phi" = phi i64 [ %147, %invertfor.cond30.for.cond.cleanup32_crit_edge.us ], [ %84, %invertfor.body33.us ]
- %87 = load double, double* %86
- %diffe86 = fmul fast double %125, %87
- %89 = load double, double* %88
- %diffe91 = fmul fast double %125, %89
- %"arrayidx.i300.us'ip" = getelementptr double, double* %"arrayidx.i.i316.us'ip", i64 %"j.0391.us'phi"
- %92 = load double, double* %"arrayidx.i300.us'ip"
- %93 = fadd fast double %92, %diffe86
- store double %93, double* %"arrayidx.i300.us'ip"
- %diffe99 = fmul fast double %132, %87
- %95 = load double, double* %94
- %diffe104 = fmul fast double %132, %95
- %96 = fadd fast double %diffe91, %diffe104
- %"arrayidx.i303.us'ip" = getelementptr double, double* %"arrayidx.i.i320.us'ip", i64 %"j.0391.us'phi"
- %99 = load double, double* %"arrayidx.i303.us'ip"
- %100 = fadd fast double %99, %diffe99
- store double %100, double* %"arrayidx.i303.us'ip"
- %diffe111 = fmul fast double %139, %87
- %102 = load double, double* %101
- %diffe116 = fmul fast double %139, %102
- %103 = fadd fast double %96, %diffe116
- %"arrayidx.i306.us'ip" = getelementptr double, double* %"arrayidx.i.i324.us'ip", i64 %"j.0391.us'phi"
- %106 = load double, double* %"arrayidx.i306.us'ip"
- %107 = fadd fast double %106, %diffe111
- store double %107, double* %"arrayidx.i306.us'ip"
- %diffe123 = fmul fast double %145, %87
- %109 = load double, double* %108
- %diffe128 = fmul fast double %145, %109
- %110 = fadd fast double %103, %diffe128
- %"arrayidx.i309.us'ip" = getelementptr double, double* %"arrayidx.i.i328.us'ip", i64 %"j.0391.us'phi"
- %113 = load double, double* %"arrayidx.i309.us'ip"
- %114 = fadd fast double %113, %diffe123
- store double %114, double* %"arrayidx.i309.us'ip"
- %115 = load double, double* %"arrayidx.i312.us'ip"
- %116 = fadd fast double %115, %110
- store double %116, double* %"arrayidx.i312.us'ip"
- invertfor.cond30.for.cond.cleanup32_crit_edge.us: ; preds = %invertfor.cond72.preheader.loopexit, %invertfor.body.us
- %"alpha'de.2" = phi double [ %"alpha'de.3", %invertfor.cond72.preheader.loopexit ], [ %146, %invertfor.body.us ]
- %"add49.us'de.1" = phi double [ 0.000000e+00, %invertfor.cond72.preheader.loopexit ], [ 0.000000e+00, %invertfor.body.us ]
- %"add45.us'de.1" = phi double [ 0.000000e+00, %invertfor.cond72.preheader.loopexit ], [ 0.000000e+00, %invertfor.body.us ]
- %"add41.us'de.1" = phi double [ 0.000000e+00, %invertfor.cond72.preheader.loopexit ], [ 0.000000e+00, %invertfor.body.us ]
- %"add37.us'de.1" = phi double [ 0.000000e+00, %invertfor.cond72.preheader.loopexit ], [ 0.000000e+00, %invertfor.body.us ]
- %121 = load double, double* %"arrayidx66.us'ip"
- store double %121, double* %"arrayidx66.us'ip"
- %diffeadd49.us = fmul fast double %121, %alpha
- %124 = load double, double* %123
- %diffealpha63 = fmul fast double %121, %124
- %125 = fadd fast double %"add49.us'de.1", %diffeadd49.us
- %126 = fadd fast double %"alpha'de.2", %diffealpha63
- %129 = load double, double* %"arrayidx61.us'ip"
- store double %129, double* %"arrayidx61.us'ip"
- %diffeadd45.us = fmul fast double %129, %alpha
- %131 = load double, double* %130
- %diffealpha69 = fmul fast double %129, %131
- %132 = fadd fast double %"add45.us'de.1", %diffeadd45.us
- %133 = fadd fast double %126, %diffealpha69
- %136 = load double, double* %"arrayidx56.us'ip"
- store double %136, double* %"arrayidx56.us'ip"
- %diffeadd41.us = fmul fast double %136, %alpha
- %138 = load double, double* %137
- %diffealpha75 = fmul fast double %136, %138
- %139 = fadd fast double %"add41.us'de.1", %diffeadd41.us
- %140 = fadd fast double %133, %diffealpha75
- %142 = load double, double* %"arrayidx.us'ip"
- store double %142, double* %"arrayidx.us'ip"
- %diffeadd37.us = fmul fast double %142, %alpha
- %144 = load double, double* %143
- %diffealpha81 = fmul fast double %142, %144
- %145 = fadd fast double %"add37.us'de.1", %diffeadd37.us
- %146 = fadd fast double %140, %diffealpha81
- br label %invertfor.body33.us
- invertfor.cond72.preheader.loopexit: ; preds = %invertfor.cond72.preheader
- br label %invertfor.cond30.for.cond.cleanup32_crit_edge.us
- invertfor.cond72.preheader: ; preds = %invertfor.body75.preheader, %invertfor.body75.us.preheader, %invertdo.end
- %"alpha'de.3" = phi double [ 0.000000e+00, %invertdo.end ], [ %180, %invertfor.body75.us.preheader ], [ %208, %invertfor.body75.preheader ]
- invertfor.body75.preheader: ; preds = %invertfor.body75
- br label %invertfor.cond72.preheader
- invertfor.body75.us.preheader: ; preds = %invertfor.body75.us
- br label %invertfor.cond72.preheader
- invertfor.body75.us: ; preds = %invertfor.body139.us, %invertfor.cond.cleanup138.us
- %"mul.i.i.us'de.0" = phi double [ %"mul.i.i.us'de.1", %invertfor.cond.cleanup138.us ], [ 0.000000e+00, %invertfor.body139.us ]
- %"tmp076.2381.us'de.0" = phi double [ %"tmp076.2381.us'de.1", %invertfor.cond.cleanup138.us ], [ 0.000000e+00, %invertfor.body139.us ]
- %"'de32.0" = phi double [ %"'de32.1", %invertfor.cond.cleanup138.us ], [ 0.000000e+00, %invertfor.body139.us ]
- %"'de33.0" = phi double [ %"'de33.1", %invertfor.cond.cleanup138.us ], [ 0.000000e+00, %invertfor.body139.us ]
- %"ptmp0.2.us'de.0" = phi double [ %diffetmp076.2.lcssa.us, %invertfor.cond.cleanup138.us ], [ %184, %invertfor.body139.us ]
- %163 = load double, double* %162
- %diffe.pre407.pn = fmul fast double %"ptmp0.2.us'de.0", %163
- %165 = load double, double* %164
- %diffe.pre406 = fmul fast double %"ptmp0.2.us'de.0", %165
- %"'ip52" = load double*, double** %"m_data.i'ip51", align 8
- %166 = load double, double* %".pre407.pn.in'ip"
- %167 = fadd fast double %166, %diffe.pre407.pn
- store double %167, double* %".pre407.pn.in'ip"
- %"add.ptr.i287.us'ip" = getelementptr double, double* %"arrayidx.i.i297.us'ip56", i64 %alignedStart.0
- %170 = load double, double* %"add.ptr.i287.us'ip"
- %171 = fadd fast double %170, %diffe.pre406
- store double %171, double* %"add.ptr.i287.us'ip"
- invertfor.cond.cleanup138.us.loopexit: ; preds = %invertfor.cond.cleanup138.us
- br label %invertfor.body139.us
- invertfor.cond.cleanup138.us: ; preds = %invertdo.end.loopexit, %invertfor.body75.us
- %"alpha'de.5" = phi double [ 0.000000e+00, %invertdo.end.loopexit ], [ %180, %invertfor.body75.us ]
- %"mul.i.i.us'de.1" = phi double [ 0.000000e+00, %invertdo.end.loopexit ], [ %"mul.i.i.us'de.0", %invertfor.body75.us ]
- %"tmp076.2381.us'de.1" = phi double [ 0.000000e+00, %invertdo.end.loopexit ], [ %"tmp076.2381.us'de.0", %invertfor.body75.us ]
- %"'de32.1" = phi double [ 0.000000e+00, %invertdo.end.loopexit ], [ %"'de32.0", %invertfor.body75.us ]
- %"'de33.1" = phi double [ 0.000000e+00, %invertdo.end.loopexit ], [ %"'de33.0", %invertfor.body75.us ]
- %177 = load double, double* %"arrayidx150.us'ip"
- store double %177, double* %"arrayidx150.us'ip"
- %diffetmp076.2.lcssa.us = fmul fast double %177, %alpha
- %179 = load double, double* %178
- %diffealpha46 = fmul fast double %177, %179
- %180 = fadd fast double %"alpha'de.5", %diffealpha46
- invertfor.body139.us: ; preds = %invertfor.body139.us, %invertfor.cond.cleanup138.us.loopexit
- %"add144.us'de.2" = phi double [ %diffetmp076.2.lcssa.us, %invertfor.cond.cleanup138.us.loopexit ], [ %184, %invertfor.body139.us ]
- %"mul.i.i.us'de.2" = phi double [ %"mul.i.i.us'de.1", %invertfor.cond.cleanup138.us.loopexit ], [ 0.000000e+00, %invertfor.body139.us ]
- %"tmp076.2381.us'de.2" = phi double [ %"tmp076.2381.us'de.1", %invertfor.cond.cleanup138.us.loopexit ], [ 0.000000e+00, %invertfor.body139.us ]
- %"'de32.2" = phi double [ %"'de32.1", %invertfor.cond.cleanup138.us.loopexit ], [ 0.000000e+00, %invertfor.body139.us ]
- %"'de33.2" = phi double [ %"'de33.1", %invertfor.cond.cleanup138.us.loopexit ], [ 0.000000e+00, %invertfor.body139.us ]
- %"j135.0382.us'phi" = phi i64 [ %173, %invertfor.cond.cleanup138.us.loopexit ], [ %182, %invertfor.body139.us ]
- %183 = fadd fast double %"mul.i.i.us'de.2", %"add144.us'de.2"
- %184 = fadd fast double %"tmp076.2381.us'de.2", %"add144.us'de.2"
- %188 = load double, double* %187
- %diffe26 = fmul fast double %183, %188
- %190 = load double, double* %189
- %diffe31 = fmul fast double %183, %190
- %191 = fadd fast double %"'de32.2", %diffe26
- %192 = fadd fast double %"'de33.2", %diffe31
- %"'ip35" = load double*, double** %"m_data.i'ip34", align 8
- %193 = load double, double* %"arrayidx.i.us'ip"
- %194 = fadd fast double %193, %191
- store double %194, double* %"arrayidx.i.us'ip"
- %"arrayidx.i275.us'ip" = getelementptr double, double* %"arrayidx.i.i297.us'ip", i64 %"j135.0382.us'phi"
- %197 = load double, double* %"arrayidx.i275.us'ip"
- %198 = fadd fast double %197, %192
- store double %198, double* %"arrayidx.i275.us'ip"
- invertfor.body75: ; preds = %invertfor.body139, %invertfor.cond.cleanup138
- %"'de.0" = phi double [ %"'de.1", %invertfor.cond.cleanup138 ], [ 0.000000e+00, %invertfor.body139 ]
- %"'de11.0" = phi double [ %"'de11.1", %invertfor.cond.cleanup138 ], [ 0.000000e+00, %invertfor.body139 ]
- %"tmp076.2381'de.0" = phi double [ %"tmp076.2381'de.1", %invertfor.cond.cleanup138 ], [ 0.000000e+00, %invertfor.body139 ]
- %"mul.i.i'de.0" = phi double [ %"mul.i.i'de.1", %invertfor.cond.cleanup138 ], [ 0.000000e+00, %invertfor.body139 ]
- invertfor.cond.cleanup138.loopexit: ; preds = %invertfor.cond.cleanup138
- br label %invertfor.body139
- invertfor.cond.cleanup138: ; preds = %invertdo.end.loopexit1, %invertfor.body75
- %"'de.1" = phi double [ 0.000000e+00, %invertdo.end.loopexit1 ], [ %"'de.0", %invertfor.body75 ]
- %"'de11.1" = phi double [ 0.000000e+00, %invertdo.end.loopexit1 ], [ %"'de11.0", %invertfor.body75 ]
- %"alpha'de.6" = phi double [ 0.000000e+00, %invertdo.end.loopexit1 ], [ %208, %invertfor.body75 ]
- %"tmp076.2381'de.1" = phi double [ 0.000000e+00, %invertdo.end.loopexit1 ], [ %"tmp076.2381'de.0", %invertfor.body75 ]
- %"mul.i.i'de.1" = phi double [ 0.000000e+00, %invertdo.end.loopexit1 ], [ %"mul.i.i'de.0", %invertfor.body75 ]
- %205 = load double, double* %"arrayidx150'ip"
- store double %205, double* %"arrayidx150'ip"
- %diffetmp076.2.lcssa = fmul fast double %205, %alpha
- %207 = load double, double* %206
- %diffealpha = fmul fast double %205, %207
- %208 = fadd fast double %"alpha'de.6", %diffealpha
- invertfor.body139: ; preds = %invertfor.body139, %invertfor.cond.cleanup138.loopexit
- %"'de.2" = phi double [ %"'de.1", %invertfor.cond.cleanup138.loopexit ], [ 0.000000e+00, %invertfor.body139 ]
- %"'de11.2" = phi double [ %"'de11.1", %invertfor.cond.cleanup138.loopexit ], [ 0.000000e+00, %invertfor.body139 ]
- %"tmp076.2381'de.2" = phi double [ %"tmp076.2381'de.1", %invertfor.cond.cleanup138.loopexit ], [ 0.000000e+00, %invertfor.body139 ]
- %"mul.i.i'de.2" = phi double [ %"mul.i.i'de.1", %invertfor.cond.cleanup138.loopexit ], [ 0.000000e+00, %invertfor.body139 ]
- %"add144'de.2" = phi double [ %diffetmp076.2.lcssa, %invertfor.cond.cleanup138.loopexit ], [ %212, %invertfor.body139 ]
- %"j135.0382'phi" = phi i64 [ %201, %invertfor.cond.cleanup138.loopexit ], [ %210, %invertfor.body139 ]
- %211 = fadd fast double %"mul.i.i'de.2", %"add144'de.2"
- %212 = fadd fast double %"tmp076.2381'de.2", %"add144'de.2"
- %216 = load double, double* %215
- %diffe = fmul fast double %211, %216
- %218 = load double, double* %217
- %diffe10 = fmul fast double %211, %218
- %219 = fadd fast double %"'de.2", %diffe
- %220 = fadd fast double %"'de11.2", %diffe10
- %"'ip" = load double*, double** %"m_data.i'ip", align 8
- %221 = load double, double* %"arrayidx.i'ip"
- %222 = fadd fast double %221, %219
- store double %222, double* %"arrayidx.i'ip"
- %225 = load double, double* %"arrayidx.i275'ip"
- %226 = fadd fast double %225, %220
- store double %226, double* %"arrayidx.i275'ip"
- invertdo.end.loopexit: ; preds = %invertdo.end
- br label %invertfor.cond.cleanup138.us
- invertdo.end.loopexit1: ; preds = %invertdo.end
- br label %invertfor.cond.cleanup138
- invertdo.end: ; preds = %for.cond.cleanup138, %for.cond.cleanup138.us, %for.cond72.preheader
- %_mdyncache.0 = phi double* [ undef, %for.cond72.preheader ], [ undef, %for.cond.cleanup138.us ], [ %_malloccache24, %for.cond.cleanup138 ]
- %_mdyncache9.0 = phi double* [ undef, %for.cond72.preheader ], [ undef, %for.cond.cleanup138.us ], [ %_malloccache29, %for.cond.cleanup138 ]
- %tmp076.2.lcssa_mdyncache.0 = phi double* [ undef, %for.cond72.preheader ], [ undef, %for.cond.cleanup138.us ], [ %tmp076.2.lcssa.us_malloccache, %for.cond.cleanup138 ]
- %_mdyncache25.0 = phi double* [ undef, %for.cond72.preheader ], [ %_malloccache24, %for.cond.cleanup138.us ], [ undef, %for.cond.cleanup138 ]
- %_mdyncache30.0 = phi double* [ undef, %for.cond72.preheader ], [ %_malloccache29, %for.cond.cleanup138.us ], [ undef, %for.cond.cleanup138 ]
- %tmp076.2.lcssa.us_mdyncache.0 = phi double* [ undef, %for.cond72.preheader ], [ %tmp076.2.lcssa.us_malloccache, %for.cond.cleanup138.us ], [ undef, %for.cond.cleanup138 ]
- %.pre406_mdyncache.0 = phi double* [ undef, %for.cond72.preheader ], [ %.pre406_malloccache, %for.cond.cleanup138.us ], [ undef, %for.cond.cleanup138 ]
- %.pre407.pn_mdyncache.0 = phi double* [ undef, %for.cond72.preheader ], [ %.pre407.pn_malloccache, %for.cond.cleanup138.us ], [ undef, %for.cond.cleanup138 ]
- %232 = phi i8 [ 2, %for.cond72.preheader ], [ 1, %for.cond.cleanup138.us ], [ 0, %for.cond.cleanup138 ]
- ]
- }
- ; Function Attrs: nounwind uwtable
- define internal {} @diffe_ZN5Eigen8internal19gemv_dense_selectorILi2ELi1ELb1EE3runINS_9TransposeIKNS_6MatrixIdLi100ELi40ELi0ELi100ELi40EEEEENS4_IKNS5_IdLi1ELi100ELi1ELi1ELi100EEEEENS4_INS5_IdLi1ELi40ELi1ELi1ELi40EEEEEEEvRKT_RKT0_RT1_RKNSK_6ScalarE.2(%"class.Eigen::Transpose.82"* dereferenceable(8) %lhs, %"class.Eigen::Transpose.82"* %"lhs'", %"class.Eigen::Transpose.89"* dereferenceable(8) %rhs, %"class.Eigen::Transpose.89"* %"rhs'", %"class.Eigen::Transpose"* dereferenceable(8) %dest, %"class.Eigen::Transpose"* %"dest'", double* dereferenceable(8) %alpha, double* %"alpha'") local_unnamed_addr #0 align 2 {
- entry:
- %ref.tmp = alloca %"class.Eigen::internal::const_blas_data_mapper", align 8
- %ref.tmp35 = alloca %"class.Eigen::internal::const_blas_data_mapper.96", align 8
- %"ref.tmp35'ip" = alloca %"class.Eigen::internal::const_blas_data_mapper.96", align 8
- %"ref.tmp'ip" = alloca %"class.Eigen::internal::const_blas_data_mapper", align 8
- %2 = load %"class.Eigen::Matrix"*, %"class.Eigen::Matrix"** %m_matrix.i.i, align 8, !tbaa !22
- %4 = load double, double* %alpha, align 8, !tbaa !2
- %cmp = icmp eq %"class.Eigen::Matrix.2"* %3, null
- cond.end: ; preds = %entry
- %5 = alloca [100 x double], align 16
- br label %_ZN5Eigen8internal28aligned_stack_memory_handlerIdED2Ev.exit
- _ZN5Eigen8internal28aligned_stack_memory_handlerIdED2Ev.exit: ; preds = %cond.end, %entry
- store double* %cond20, double** %m_data.i.i, align 8, !tbaa !30
- %8 = load %"class.Eigen::Matrix.12"*, %"class.Eigen::Matrix.12"** %m_matrix.i.i46, align 8, !tbaa !33
- call void @_ZN5Eigen8internal29general_matrix_vector_productIldNS0_22const_blas_data_mapperIdlLi1EEELi1ELb0EdNS2_IdlLi0EEELb0ELi0EE3runEllRKS3_RKS4_Pdld(i64 40, i64 100, %"class.Eigen::internal::const_blas_data_mapper"* nonnull dereferenceable(16) %ref.tmp, %"class.Eigen::internal::const_blas_data_mapper.96"* nonnull dereferenceable(16) %ref.tmp35, double* %arraydecay.i.i.i, i64 1, double %4)
- %"'ip" = load %"class.Eigen::Matrix.12"*, %"class.Eigen::Matrix.12"** %"m_matrix.i.i46'ip", align 8
- %9 = call { double } @diffe_ZN5Eigen8internal29general_matrix_vector_productIldNS0_22const_blas_data_mapperIdlLi1EEELi1ELb0EdNS2_IdlLi0EEELb0ELi0EE3runEllRKS3_RKS4_Pdld.3(i64 40, i64 100, %"class.Eigen::internal::const_blas_data_mapper"* nonnull %ref.tmp, %"class.Eigen::internal::const_blas_data_mapper"* nonnull %"ref.tmp'ip", %"class.Eigen::internal::const_blas_data_mapper.96"* nonnull %ref.tmp35, %"class.Eigen::internal::const_blas_data_mapper.96"* nonnull %"ref.tmp35'ip", double* %arraydecay.i.i.i, double* %"arraydecay.i.i.i'ip", i64 1, double %4)
- ret {} undef
- }
- ; Function Attrs: noinline nounwind uwtable
- define internal { double } @diffe_ZN5Eigen8internal29general_matrix_vector_productIldNS0_22const_blas_data_mapperIdlLi1EEELi1ELb0EdNS2_IdlLi0EEELb0ELi0EE3runEllRKS3_RKS4_Pdld.3(i64 %rows, i64 %cols, %"class.Eigen::internal::const_blas_data_mapper"* dereferenceable(16) %lhs, %"class.Eigen::internal::const_blas_data_mapper"* %"lhs'", %"class.Eigen::internal::const_blas_data_mapper.96"* dereferenceable(16) %rhs, %"class.Eigen::internal::const_blas_data_mapper.96"* %"rhs'", double* %res, double* %"res'", i64 %resIncr, double %alpha) local_unnamed_addr #5 align 2 {
- entry:
- lor.lhs.false: ; preds = %entry
- if.then: ; preds = %lor.lhs.false, %entry
- br label %if.end
- if.end: ; preds = %if.then, %lor.lhs.false
- for.body.lr.ph: ; preds = %if.end
- for.body.us.preheader: ; preds = %for.body.lr.ph
- br label %for.body.us
- for.body.us: ; preds = %for.cond30.for.cond.cleanup32_crit_edge.us, %for.body.us.preheader
- %indvar = phi i64 [ 0, %for.body.us.preheader ], [ %indvar.next, %for.cond30.for.cond.cleanup32_crit_edge.us ]
- br label %for.body33.us
- for.body33.us: ; preds = %for.body33.us, %for.body.us
- %tmp3.0390.us = phi double [ 0.000000e+00, %for.body.us ], [ %add49.us, %for.body33.us ]
- %tmp2.0389.us = phi double [ 0.000000e+00, %for.body.us ], [ %add45.us, %for.body33.us ]
- %tmp1.0388.us = phi double [ 0.000000e+00, %for.body.us ], [ %add41.us, %for.body33.us ]
- %tmp0.0387.us = phi double [ 0.000000e+00, %for.body.us ], [ %add37.us, %for.body33.us ]
- store double %17, double* %20
- store double %21, double* %22
- store double %add37.us, double* %23
- store double %24, double* %25
- store double %add41.us, double* %26
- store double %27, double* %28
- store double %add45.us, double* %29
- store double %30, double* %31
- store double %add49.us, double* %32
- for.cond30.for.cond.cleanup32_crit_edge.us: ; preds = %for.body33.us
- %mul50.us = fmul fast double %add37.us, %alpha
- %33 = load double, double* %arrayidx.us, align 8, !tbaa !2
- %add52.us = fadd fast double %33, %mul50.us
- store double %add52.us, double* %arrayidx.us, align 8, !tbaa !2
- %mul53.us = fmul fast double %add41.us, %alpha
- %34 = load double, double* %arrayidx56.us, align 8, !tbaa !2
- %add57.us = fadd fast double %34, %mul53.us
- store double %add57.us, double* %arrayidx56.us, align 8, !tbaa !2
- %mul58.us = fmul fast double %add45.us, %alpha
- %35 = load double, double* %arrayidx61.us, align 8, !tbaa !2
- %add62.us = fadd fast double %35, %mul58.us
- store double %add62.us, double* %arrayidx61.us, align 8, !tbaa !2
- %mul63.us = fmul fast double %add49.us, %alpha
- %36 = load double, double* %arrayidx66.us, align 8, !tbaa !2
- %add67.us = fadd fast double %36, %mul63.us
- store double %add67.us, double* %arrayidx66.us, align 8, !tbaa !2
- for.cond72.preheader: ; preds = %for.cond30.for.cond.cleanup32_crit_edge.us, %for.body.lr.ph, %if.end
- %add49.us_mdyncache.0 = phi double* [ undef, %for.body.lr.ph ], [ undef, %if.end ], [ %add49.us_malloccache, %for.cond30.for.cond.cleanup32_crit_edge.us ]
- %add45.us_mdyncache.0 = phi double* [ undef, %for.body.lr.ph ], [ undef, %if.end ], [ %add45.us_malloccache, %for.cond30.for.cond.cleanup32_crit_edge.us ]
- %add41.us_mdyncache.0 = phi double* [ undef, %for.body.lr.ph ], [ undef, %if.end ], [ %add41.us_malloccache, %for.cond30.for.cond.cleanup32_crit_edge.us ]
- %add37.us_mdyncache.0 = phi double* [ undef, %for.body.lr.ph ], [ undef, %if.end ], [ %add37.us_malloccache, %for.cond30.for.cond.cleanup32_crit_edge.us ]
- %_mdyncache85.0 = phi double* [ undef, %for.body.lr.ph ], [ undef, %if.end ], [ %_malloccache84, %for.cond30.for.cond.cleanup32_crit_edge.us ]
- %_mdyncache90.0 = phi double* [ undef, %for.body.lr.ph ], [ undef, %if.end ], [ %_malloccache89, %for.cond30.for.cond.cleanup32_crit_edge.us ]
- %_mdyncache103.0 = phi double* [ undef, %for.body.lr.ph ], [ undef, %if.end ], [ %_malloccache102, %for.cond30.for.cond.cleanup32_crit_edge.us ]
- %_mdyncache115.0 = phi double* [ undef, %for.body.lr.ph ], [ undef, %if.end ], [ %_malloccache114, %for.cond30.for.cond.cleanup32_crit_edge.us ]
- %_mdyncache127.0 = phi double* [ undef, %for.body.lr.ph ], [ undef, %if.end ], [ %_malloccache126, %for.cond30.for.cond.cleanup32_crit_edge.us ]
- %37 = phi i8 [ 1, %for.body.lr.ph ], [ 2, %if.end ], [ 0, %for.cond30.for.cond.cleanup32_crit_edge.us ]
- for.body75.lr.ph: ; preds = %for.cond72.preheader
- %39 = load double*, double** %m_data.i, align 8
- for.body75.preheader: ; preds = %for.body75.lr.ph
- br label %for.body75
- for.body75.us.preheader: ; preds = %for.body75.lr.ph
- br label %for.body75.us
- for.body75.us: ; preds = %for.cond.cleanup138.us, %for.body75.us.preheader
- store double %.pre406, double* %48
- %.pre407.pn = load double, double* %.pre407.pn.in, align 8, !tbaa !2
- store double %.pre407.pn, double* %49
- %ptmp0.2.us = fmul fast double %.pre407.pn, %.pre406
- for.cond.cleanup138.us: ; preds = %for.body139.us, %for.body75.us
- %tmp076.2.lcssa.us = phi double [ %ptmp0.2.us, %for.body75.us ], [ %add144.us, %for.body139.us ]
- store double %tmp076.2.lcssa.us, double* %50
- %mul148.us = fmul fast double %tmp076.2.lcssa.us, %alpha
- %51 = load double, double* %arrayidx150.us, align 8, !tbaa !2
- %add151.us = fadd fast double %51, %mul148.us
- store double %add151.us, double* %arrayidx150.us, align 8, !tbaa !2
- for.body139.us: ; preds = %for.body75.us, %for.body139.us
- %tmp076.2381.us = phi double [ %add144.us, %for.body139.us ], [ %ptmp0.2.us, %for.body75.us ]
- store double %52, double* %55
- %56 = load double, double* %arrayidx.i.us, align 8, !tbaa !2
- store double %56, double* %57
- %mul.i.i.us = fmul fast double %56, %52
- %add144.us = fadd fast double %mul.i.i.us, %tmp076.2381.us
- for.body75: ; preds = %for.cond.cleanup138, %for.body75.preheader
- for.cond.cleanup138: ; preds = %for.body139, %for.body75
- %tmp076.2.lcssa = phi double [ 0.000000e+00, %for.body75 ], [ %add144, %for.body139 ]
- store double %tmp076.2.lcssa, double* %60
- %mul148 = fmul fast double %tmp076.2.lcssa, %alpha
- %61 = load double, double* %arrayidx150, align 8, !tbaa !2
- %add151 = fadd fast double %61, %mul148
- store double %add151, double* %arrayidx150, align 8, !tbaa !2
- for.body139: ; preds = %for.body75, %for.body139
- %tmp076.2381 = phi double [ %add144, %for.body139 ], [ 0.000000e+00, %for.body75 ]
- store double %62, double* %65
- %66 = load double, double* %arrayidx.i, align 8, !tbaa !2
- store double %66, double* %67
- %mul.i.i = fmul fast double %66, %62
- %add144 = fadd fast double %mul.i.i, %tmp076.2381
- invertif.end: ; preds = %invertfor.cond72.preheader, %invertfor.body.us.preheader
- %"alpha'de.0" = phi double [ %"alpha'de.3", %invertfor.cond72.preheader ], [ %146, %invertfor.body.us.preheader ]
- %68 = insertvalue { double } undef, double %"alpha'de.0", 0
- ret { double } %68
- invertfor.body.us.preheader: ; preds = %invertfor.body.us
- br label %invertif.end
- invertfor.body.us: ; preds = %invertfor.body33.us
- br i1 %83, label %invertfor.cond30.for.cond.cleanup32_crit_edge.us, label %invertfor.body.us.preheader
- invertfor.body33.us: ; preds = %invertfor.cond30.for.cond.cleanup32_crit_edge.us, %invertfor.body33.us
- %"j.0391.us'phi" = phi i64 [ %147, %invertfor.cond30.for.cond.cleanup32_crit_edge.us ], [ %84, %invertfor.body33.us ]
- %87 = load double, double* %86
- %diffe86 = fmul fast double %125, %87
- %89 = load double, double* %88
- %diffe91 = fmul fast double %125, %89
- %"arrayidx.i300.us'ip" = getelementptr double, double* %"arrayidx.i.i316.us'ip", i64 %"j.0391.us'phi"
- %92 = load double, double* %"arrayidx.i300.us'ip"
- %93 = fadd fast double %92, %diffe86
- store double %93, double* %"arrayidx.i300.us'ip"
- %diffe99 = fmul fast double %132, %87
- %95 = load double, double* %94
- %diffe104 = fmul fast double %132, %95
- %96 = fadd fast double %diffe91, %diffe104
- %"arrayidx.i303.us'ip" = getelementptr double, double* %"arrayidx.i.i320.us'ip", i64 %"j.0391.us'phi"
- %99 = load double, double* %"arrayidx.i303.us'ip"
- %100 = fadd fast double %99, %diffe99
- store double %100, double* %"arrayidx.i303.us'ip"
- %diffe111 = fmul fast double %139, %87
- %102 = load double, double* %101
- %diffe116 = fmul fast double %139, %102
- %103 = fadd fast double %96, %diffe116
- %"arrayidx.i306.us'ip" = getelementptr double, double* %"arrayidx.i.i324.us'ip", i64 %"j.0391.us'phi"
- %106 = load double, double* %"arrayidx.i306.us'ip"
- %107 = fadd fast double %106, %diffe111
- store double %107, double* %"arrayidx.i306.us'ip"
- %diffe123 = fmul fast double %145, %87
- %109 = load double, double* %108
- %diffe128 = fmul fast double %145, %109
- %110 = fadd fast double %103, %diffe128
- %"arrayidx.i309.us'ip" = getelementptr double, double* %"arrayidx.i.i328.us'ip", i64 %"j.0391.us'phi"
- %113 = load double, double* %"arrayidx.i309.us'ip"
- %114 = fadd fast double %113, %diffe123
- store double %114, double* %"arrayidx.i309.us'ip"
- %115 = load double, double* %"arrayidx.i312.us'ip"
- %116 = fadd fast double %115, %110
- store double %116, double* %"arrayidx.i312.us'ip"
- invertfor.cond30.for.cond.cleanup32_crit_edge.us: ; preds = %invertfor.cond72.preheader.loopexit, %invertfor.body.us
- %"alpha'de.2" = phi double [ %"alpha'de.3", %invertfor.cond72.preheader.loopexit ], [ %146, %invertfor.body.us ]
- %"add49.us'de.1" = phi double [ 0.000000e+00, %invertfor.cond72.preheader.loopexit ], [ 0.000000e+00, %invertfor.body.us ]
- %"add45.us'de.1" = phi double [ 0.000000e+00, %invertfor.cond72.preheader.loopexit ], [ 0.000000e+00, %invertfor.body.us ]
- %"add41.us'de.1" = phi double [ 0.000000e+00, %invertfor.cond72.preheader.loopexit ], [ 0.000000e+00, %invertfor.body.us ]
- %"add37.us'de.1" = phi double [ 0.000000e+00, %invertfor.cond72.preheader.loopexit ], [ 0.000000e+00, %invertfor.body.us ]
- %121 = load double, double* %"arrayidx66.us'ip"
- store double %121, double* %"arrayidx66.us'ip"
- %diffeadd49.us = fmul fast double %121, %alpha
- %124 = load double, double* %123
- %diffealpha63 = fmul fast double %121, %124
- %125 = fadd fast double %"add49.us'de.1", %diffeadd49.us
- %126 = fadd fast double %"alpha'de.2", %diffealpha63
- %129 = load double, double* %"arrayidx61.us'ip"
- store double %129, double* %"arrayidx61.us'ip"
- %diffeadd45.us = fmul fast double %129, %alpha
- %131 = load double, double* %130
- %diffealpha69 = fmul fast double %129, %131
- %132 = fadd fast double %"add45.us'de.1", %diffeadd45.us
- %133 = fadd fast double %126, %diffealpha69
- %136 = load double, double* %"arrayidx56.us'ip"
- store double %136, double* %"arrayidx56.us'ip"
- %diffeadd41.us = fmul fast double %136, %alpha
- %138 = load double, double* %137
- %diffealpha75 = fmul fast double %136, %138
- %139 = fadd fast double %"add41.us'de.1", %diffeadd41.us
- %140 = fadd fast double %133, %diffealpha75
- %142 = load double, double* %"arrayidx.us'ip"
- store double %142, double* %"arrayidx.us'ip"
- %diffeadd37.us = fmul fast double %142, %alpha
- %144 = load double, double* %143
- %diffealpha81 = fmul fast double %142, %144
- %145 = fadd fast double %"add37.us'de.1", %diffeadd37.us
- %146 = fadd fast double %140, %diffealpha81
- br label %invertfor.body33.us
- invertfor.cond72.preheader.loopexit: ; preds = %invertfor.cond72.preheader
- br label %invertfor.cond30.for.cond.cleanup32_crit_edge.us
- invertfor.cond72.preheader: ; preds = %invertfor.body75.preheader, %invertfor.body75.us.preheader, %invertdo.end
- %"alpha'de.3" = phi double [ 0.000000e+00, %invertdo.end ], [ %180, %invertfor.body75.us.preheader ], [ %208, %invertfor.body75.preheader ]
- invertfor.body75.preheader: ; preds = %invertfor.body75
- br label %invertfor.cond72.preheader
- invertfor.body75.us.preheader: ; preds = %invertfor.body75.us
- br label %invertfor.cond72.preheader
- invertfor.body75.us: ; preds = %invertfor.body139.us, %invertfor.cond.cleanup138.us
- %"mul.i.i.us'de.0" = phi double [ %"mul.i.i.us'de.1", %invertfor.cond.cleanup138.us ], [ 0.000000e+00, %invertfor.body139.us ]
- %"tmp076.2381.us'de.0" = phi double [ %"tmp076.2381.us'de.1", %invertfor.cond.cleanup138.us ], [ 0.000000e+00, %invertfor.body139.us ]
- %"'de32.0" = phi double [ %"'de32.1", %invertfor.cond.cleanup138.us ], [ 0.000000e+00, %invertfor.body139.us ]
- %"'de33.0" = phi double [ %"'de33.1", %invertfor.cond.cleanup138.us ], [ 0.000000e+00, %invertfor.body139.us ]
- %"ptmp0.2.us'de.0" = phi double [ %diffetmp076.2.lcssa.us, %invertfor.cond.cleanup138.us ], [ %184, %invertfor.body139.us ]
- %163 = load double, double* %162
- %diffe.pre407.pn = fmul fast double %"ptmp0.2.us'de.0", %163
- %165 = load double, double* %164
- %diffe.pre406 = fmul fast double %"ptmp0.2.us'de.0", %165
- %"'ip52" = load double*, double** %"m_data.i'ip51", align 8
- %166 = load double, double* %".pre407.pn.in'ip"
- %167 = fadd fast double %166, %diffe.pre407.pn
- store double %167, double* %".pre407.pn.in'ip"
- %"add.ptr.i287.us'ip" = getelementptr double, double* %"arrayidx.i.i297.us'ip56", i64 %alignedStart.0
- %170 = load double, double* %"add.ptr.i287.us'ip"
- %171 = fadd fast double %170, %diffe.pre406
- store double %171, double* %"add.ptr.i287.us'ip"
- invertfor.cond.cleanup138.us.loopexit: ; preds = %invertfor.cond.cleanup138.us
- br label %invertfor.body139.us
- invertfor.cond.cleanup138.us: ; preds = %invertdo.end.loopexit, %invertfor.body75.us
- %"alpha'de.5" = phi double [ 0.000000e+00, %invertdo.end.loopexit ], [ %180, %invertfor.body75.us ]
- %"mul.i.i.us'de.1" = phi double [ 0.000000e+00, %invertdo.end.loopexit ], [ %"mul.i.i.us'de.0", %invertfor.body75.us ]
- %"tmp076.2381.us'de.1" = phi double [ 0.000000e+00, %invertdo.end.loopexit ], [ %"tmp076.2381.us'de.0", %invertfor.body75.us ]
- %"'de32.1" = phi double [ 0.000000e+00, %invertdo.end.loopexit ], [ %"'de32.0", %invertfor.body75.us ]
- %"'de33.1" = phi double [ 0.000000e+00, %invertdo.end.loopexit ], [ %"'de33.0", %invertfor.body75.us ]
- %177 = load double, double* %"arrayidx150.us'ip"
- store double %177, double* %"arrayidx150.us'ip"
- %diffetmp076.2.lcssa.us = fmul fast double %177, %alpha
- %179 = load double, double* %178
- %diffealpha46 = fmul fast double %177, %179
- %180 = fadd fast double %"alpha'de.5", %diffealpha46
- invertfor.body139.us: ; preds = %invertfor.body139.us, %invertfor.cond.cleanup138.us.loopexit
- %"add144.us'de.2" = phi double [ %diffetmp076.2.lcssa.us, %invertfor.cond.cleanup138.us.loopexit ], [ %184, %invertfor.body139.us ]
- %"mul.i.i.us'de.2" = phi double [ %"mul.i.i.us'de.1", %invertfor.cond.cleanup138.us.loopexit ], [ 0.000000e+00, %invertfor.body139.us ]
- %"tmp076.2381.us'de.2" = phi double [ %"tmp076.2381.us'de.1", %invertfor.cond.cleanup138.us.loopexit ], [ 0.000000e+00, %invertfor.body139.us ]
- %"'de32.2" = phi double [ %"'de32.1", %invertfor.cond.cleanup138.us.loopexit ], [ 0.000000e+00, %invertfor.body139.us ]
- %"'de33.2" = phi double [ %"'de33.1", %invertfor.cond.cleanup138.us.loopexit ], [ 0.000000e+00, %invertfor.body139.us ]
- %"j135.0382.us'phi" = phi i64 [ %173, %invertfor.cond.cleanup138.us.loopexit ], [ %182, %invertfor.body139.us ]
- %183 = fadd fast double %"mul.i.i.us'de.2", %"add144.us'de.2"
- %184 = fadd fast double %"tmp076.2381.us'de.2", %"add144.us'de.2"
- %188 = load double, double* %187
- %diffe26 = fmul fast double %183, %188
- %190 = load double, double* %189
- %diffe31 = fmul fast double %183, %190
- %191 = fadd fast double %"'de32.2", %diffe26
- %192 = fadd fast double %"'de33.2", %diffe31
- %"'ip35" = load double*, double** %"m_data.i'ip34", align 8
- %193 = load double, double* %"arrayidx.i.us'ip"
- %194 = fadd fast double %193, %191
- store double %194, double* %"arrayidx.i.us'ip"
- %"arrayidx.i275.us'ip" = getelementptr double, double* %"arrayidx.i.i297.us'ip", i64 %"j135.0382.us'phi"
- %197 = load double, double* %"arrayidx.i275.us'ip"
- %198 = fadd fast double %197, %192
- store double %198, double* %"arrayidx.i275.us'ip"
- invertfor.body75: ; preds = %invertfor.body139, %invertfor.cond.cleanup138
- %"'de.0" = phi double [ %"'de.1", %invertfor.cond.cleanup138 ], [ 0.000000e+00, %invertfor.body139 ]
- %"'de11.0" = phi double [ %"'de11.1", %invertfor.cond.cleanup138 ], [ 0.000000e+00, %invertfor.body139 ]
- %"tmp076.2381'de.0" = phi double [ %"tmp076.2381'de.1", %invertfor.cond.cleanup138 ], [ 0.000000e+00, %invertfor.body139 ]
- %"mul.i.i'de.0" = phi double [ %"mul.i.i'de.1", %invertfor.cond.cleanup138 ], [ 0.000000e+00, %invertfor.body139 ]
- invertfor.cond.cleanup138.loopexit: ; preds = %invertfor.cond.cleanup138
- br label %invertfor.body139
- invertfor.cond.cleanup138: ; preds = %invertdo.end.loopexit1, %invertfor.body75
- %"'de.1" = phi double [ 0.000000e+00, %invertdo.end.loopexit1 ], [ %"'de.0", %invertfor.body75 ]
- %"'de11.1" = phi double [ 0.000000e+00, %invertdo.end.loopexit1 ], [ %"'de11.0", %invertfor.body75 ]
- %"alpha'de.6" = phi double [ 0.000000e+00, %invertdo.end.loopexit1 ], [ %208, %invertfor.body75 ]
- %"tmp076.2381'de.1" = phi double [ 0.000000e+00, %invertdo.end.loopexit1 ], [ %"tmp076.2381'de.0", %invertfor.body75 ]
- %"mul.i.i'de.1" = phi double [ 0.000000e+00, %invertdo.end.loopexit1 ], [ %"mul.i.i'de.0", %invertfor.body75 ]
- %205 = load double, double* %"arrayidx150'ip"
- store double %205, double* %"arrayidx150'ip"
- %diffetmp076.2.lcssa = fmul fast double %205, %alpha
- %207 = load double, double* %206
- %diffealpha = fmul fast double %205, %207
- %208 = fadd fast double %"alpha'de.6", %diffealpha
- invertfor.body139: ; preds = %invertfor.body139, %invertfor.cond.cleanup138.loopexit
- %"'de.2" = phi double [ %"'de.1", %invertfor.cond.cleanup138.loopexit ], [ 0.000000e+00, %invertfor.body139 ]
- %"'de11.2" = phi double [ %"'de11.1", %invertfor.cond.cleanup138.loopexit ], [ 0.000000e+00, %invertfor.body139 ]
- %"tmp076.2381'de.2" = phi double [ %"tmp076.2381'de.1", %invertfor.cond.cleanup138.loopexit ], [ 0.000000e+00, %invertfor.body139 ]
- %"mul.i.i'de.2" = phi double [ %"mul.i.i'de.1", %invertfor.cond.cleanup138.loopexit ], [ 0.000000e+00, %invertfor.body139 ]
- %"add144'de.2" = phi double [ %diffetmp076.2.lcssa, %invertfor.cond.cleanup138.loopexit ], [ %212, %invertfor.body139 ]
- %"j135.0382'phi" = phi i64 [ %201, %invertfor.cond.cleanup138.loopexit ], [ %210, %invertfor.body139 ]
- %211 = fadd fast double %"mul.i.i'de.2", %"add144'de.2"
- %212 = fadd fast double %"tmp076.2381'de.2", %"add144'de.2"
- %216 = load double, double* %215
- %diffe = fmul fast double %211, %216
- %218 = load double, double* %217
- %diffe10 = fmul fast double %211, %218
- %219 = fadd fast double %"'de.2", %diffe
- %220 = fadd fast double %"'de11.2", %diffe10
- %"'ip" = load double*, double** %"m_data.i'ip", align 8
- %221 = load double, double* %"arrayidx.i'ip"
- %222 = fadd fast double %221, %219
- store double %222, double* %"arrayidx.i'ip"
- %225 = load double, double* %"arrayidx.i275'ip"
- %226 = fadd fast double %225, %220
- store double %226, double* %"arrayidx.i275'ip"
- invertdo.end.loopexit: ; preds = %invertdo.end
- br label %invertfor.cond.cleanup138.us
- invertdo.end.loopexit1: ; preds = %invertdo.end
- br label %invertfor.cond.cleanup138
- invertdo.end: ; preds = %for.cond.cleanup138, %for.cond.cleanup138.us, %for.cond72.preheader
- %_mdyncache.0 = phi double* [ undef, %for.cond72.preheader ], [ undef, %for.cond.cleanup138.us ], [ %_malloccache24, %for.cond.cleanup138 ]
- %_mdyncache9.0 = phi double* [ undef, %for.cond72.preheader ], [ undef, %for.cond.cleanup138.us ], [ %_malloccache29, %for.cond.cleanup138 ]
- %tmp076.2.lcssa_mdyncache.0 = phi double* [ undef, %for.cond72.preheader ], [ undef, %for.cond.cleanup138.us ], [ %tmp076.2.lcssa.us_malloccache, %for.cond.cleanup138 ]
- %_mdyncache25.0 = phi double* [ undef, %for.cond72.preheader ], [ %_malloccache24, %for.cond.cleanup138.us ], [ undef, %for.cond.cleanup138 ]
- %_mdyncache30.0 = phi double* [ undef, %for.cond72.preheader ], [ %_malloccache29, %for.cond.cleanup138.us ], [ undef, %for.cond.cleanup138 ]
- %tmp076.2.lcssa.us_mdyncache.0 = phi double* [ undef, %for.cond72.preheader ], [ %tmp076.2.lcssa.us_malloccache, %for.cond.cleanup138.us ], [ undef, %for.cond.cleanup138 ]
- %.pre406_mdyncache.0 = phi double* [ undef, %for.cond72.preheader ], [ %.pre406_malloccache, %for.cond.cleanup138.us ], [ undef, %for.cond.cleanup138 ]
- %.pre407.pn_mdyncache.0 = phi double* [ undef, %for.cond72.preheader ], [ %.pre407.pn_malloccache, %for.cond.cleanup138.us ], [ undef, %for.cond.cleanup138 ]
- %232 = phi i8 [ 2, %for.cond72.preheader ], [ 1, %for.cond.cleanup138.us ], [ 0, %for.cond.cleanup138 ]
- ]
- }
- attributes #0 = { nounwind uwtable "correctly-rounded-divide-sqrt-fp-math"="false" "disable-tail-calls"="false" "less-precise-fpmad"="false" "no-frame-pointer-elim"="false" "no-infs-fp-math"="true" "no-jump-tables"="false" "no-nans-fp-math"="true" "no-signed-zeros-fp-math"="true" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+fxsr,+mmx,+sse,+sse2,+x87" "unsafe-fp-math"="true" "use-soft-float"="false" }
- attributes #1 = { nounwind "correctly-rounded-divide-sqrt-fp-math"="false" "disable-tail-calls"="false" "less-precise-fpmad"="false" "no-frame-pointer-elim"="false" "no-infs-fp-math"="true" "no-nans-fp-math"="true" "no-signed-zeros-fp-math"="true" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+fxsr,+mmx,+sse,+sse2,+x87" "unsafe-fp-math"="true" "use-soft-float"="false" }
- attributes #2 = { argmemonly nounwind }
- attributes #3 = { nounwind }
- attributes #4 = { norecurse nounwind uwtable "correctly-rounded-divide-sqrt-fp-math"="false" "disable-tail-calls"="false" "less-precise-fpmad"="false" "no-frame-pointer-elim"="false" "no-infs-fp-math"="true" "no-jump-tables"="false" "no-nans-fp-math"="true" "no-signed-zeros-fp-math"="true" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+fxsr,+mmx,+sse,+sse2,+x87" "unsafe-fp-math"="true" "use-soft-float"="false" }
- attributes #5 = { noinline nounwind uwtable "correctly-rounded-divide-sqrt-fp-math"="false" "disable-tail-calls"="false" "less-precise-fpmad"="false" "no-frame-pointer-elim"="false" "no-infs-fp-math"="true" "no-jump-tables"="false" "no-nans-fp-math"="true" "no-signed-zeros-fp-math"="true" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+fxsr,+mmx,+sse,+sse2,+x87" "unsafe-fp-math"="true" "use-soft-float"="false" }
- !llvm.module.flags = !{!0}
- !llvm.ident = !{!1}
- !1 = !{!"clang version 7.1.0 "}
- !5 = !{!"Simple C++ TBAA"}
- !8 = !{!9, !11, !12}
- !9 = distinct !{!9, !10, !"diffe_Z6matvecRKN5Eigen6MatrixIdLi100ELi40ELi0ELi100ELi40EEERKNS0_IdLi1ELi100ELi1ELi1ELi100EEERNS0_IdLi1ELi40ELi1ELi1ELi40EEE: %W"}
- !10 = distinct !{!10, !"diffe_Z6matvecRKN5Eigen6MatrixIdLi100ELi40ELi0ELi100ELi40EEERKNS0_IdLi1ELi100ELi1ELi1ELi100EEERNS0_IdLi1ELi40ELi1ELi1ELi40EEE"}
- !11 = distinct !{!11, !10, !"diffe_Z6matvecRKN5Eigen6MatrixIdLi100ELi40ELi0ELi100ELi40EEERKNS0_IdLi1ELi100ELi1ELi1ELi100EEERNS0_IdLi1ELi40ELi1ELi1ELi40EEE: %B"}
- !12 = distinct !{!12, !10, !"diffe_Z6matvecRKN5Eigen6MatrixIdLi100ELi40ELi0ELi100ELi40EEERKNS0_IdLi1ELi100ELi1ELi1ELi100EEERNS0_IdLi1ELi40ELi1ELi1ELi40EEE: %foo"}
- !13 = !{!12}
- !14 = !{!9, !11}
- !15 = !{!16, !18, !19}
- !16 = distinct !{!16, !17, !"diffe_Z6matvecRKN5Eigen6MatrixIdLi100ELi40ELi0ELi100ELi40EEERKNS0_IdLi1ELi100ELi1ELi1ELi100EEERNS0_IdLi1ELi40ELi1ELi1ELi40EEE.1: %W"}
- !17 = distinct !{!17, !"diffe_Z6matvecRKN5Eigen6MatrixIdLi100ELi40ELi0ELi100ELi40EEERKNS0_IdLi1ELi100ELi1ELi1ELi100EEERNS0_IdLi1ELi40ELi1ELi1ELi40EEE.1"}
- !18 = distinct !{!18, !17, !"diffe_Z6matvecRKN5Eigen6MatrixIdLi100ELi40ELi0ELi100ELi40EEERKNS0_IdLi1ELi100ELi1ELi1ELi100EEERNS0_IdLi1ELi40ELi1ELi1ELi40EEE.1: %B"}
- !19 = distinct !{!19, !17, !"diffe_Z6matvecRKN5Eigen6MatrixIdLi100ELi40ELi0ELi100ELi40EEERKNS0_IdLi1ELi100ELi1ELi1ELi100EEERNS0_IdLi1ELi40ELi1ELi1ELi40EEE.1: %foo"}
- !20 = !{!19}
- !21 = !{!16, !18}
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement