integer(16) N,C
integer(16),allocatable::x(:),v(:),ccx(:),ccv(:),OA2(:),OB2(:)
integer(16) i
integer(16) ans
read*,N,C
allocate(x(N),v(0:N),ccx(N),ccv(0:N))
v(0)=0
do i=1,N
  read*,x(i),v(i)
  v(i)=v(i)+v(i-1)
end do
ccv(0)=0
do i=1,N
  ccx(i)=C-x(N-i+1)
  ccv(i)=V(N)-V(N-i+1-1)
end do

allocate(OA2(0:N),OB2(0:N))
OA2(0)=0
do i=1,N
  OA2(i)=max(OA2(i-1),v(i)-x(i)*2)
end do

OB2(0)=0
do i=1,N
  OB2(i)=max(OB2(i-1),ccv(i)-ccx(i)*2)
end do

ans=0
do i=1,N
  ans=max(ans,ccv(i)-ccx(i)+OA2(N-i))
end do
do i=1,N
  ans=max(ans,v(i)-x(i)+OB2(N-i))
end do

print"(i0)",ans
end
; ModuleID = 'FIRModule'
source_filename = "FIRModule"
target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128"
target triple = "x86_64-pc-linux-gnu"

@_QFEccv.0 = internal unnamed_addr global ptr null
@_QFEccv.7 = internal unnamed_addr global i64 1
@_QFEccx.0 = internal unnamed_addr global ptr null
@_QFEoa2 = internal unnamed_addr global { ptr, i64, i32, i8, i8, i8, i8, [1 x [3 x i64]] } { ptr null, i64 ptrtoint (ptr getelementptr (i128, ptr null, i32 1) to i64), i32 20180515, i8 1, i8 11, i8 2, i8 0, [1 x [3 x i64]] [[3 x i64] [i64 1, i64 0, i64 ptrtoint (ptr getelementptr (i128, ptr null, i32 1) to i64)]] }
@_QFEob2 = internal unnamed_addr global { ptr, i64, i32, i8, i8, i8, i8, [1 x [3 x i64]] } { ptr null, i64 ptrtoint (ptr getelementptr (i128, ptr null, i32 1) to i64), i32 20180515, i8 1, i8 11, i8 2, i8 0, [1 x [3 x i64]] [[3 x i64] [i64 1, i64 0, i64 ptrtoint (ptr getelementptr (i128, ptr null, i32 1) to i64)]] }
@_QFEv.0 = internal unnamed_addr global ptr null
@_QFEv.7 = internal unnamed_addr global i64 1
@_QFEx.0 = internal unnamed_addr global ptr null
@_QQcl.89ec123f68ddbf97c084977dc5dcb888 = linkonce constant [73 x i8] c"/home/ubuntu/Downloads/TheStack_IR/Collated/Fortran/Source_6066/source.f\00"
@_QQcl.28693029 = linkonce constant [4 x i8] c"(i0)"
@_QQEnvironmentDefaults = local_unnamed_addr constant ptr null

; Function Attrs: mustprogress nofree nounwind willreturn allockind("alloc,uninitialized") allocsize(0) memory(inaccessiblemem: readwrite)
declare noalias noundef ptr @malloc(i64 noundef) local_unnamed_addr #0

define void @_QQmain() local_unnamed_addr {
  %1 = alloca i128, align 8
  %2 = alloca i128, align 8
  %3 = tail call ptr @_FortranAioBeginExternalListInput(i32 -1, ptr nonnull @_QQcl.89ec123f68ddbf97c084977dc5dcb888, i32 5)
  %4 = call i1 @_FortranAioInputInteger(ptr %3, ptr nonnull %2, i32 16)
  %5 = call i1 @_FortranAioInputInteger(ptr %3, ptr nonnull %1, i32 16)
  %6 = call i32 @_FortranAioEndIoStatement(ptr %3)
  %7 = load i128, ptr %2, align 8, !tbaa !3
  %8 = trunc i128 %7 to i64
  %9 = call i64 @llvm.smax.i64(i64 %8, i64 0)
  %10 = shl i64 %9, 4
  %11 = call ptr @malloc(i64 %10)
  store ptr %11, ptr @_QFEx.0, align 8, !tbaa !7
  %12 = add i64 %8, 1
  %13 = call i64 @llvm.smax.i64(i64 %12, i64 0)
  %14 = shl i64 %13, 4
  %15 = call ptr @malloc(i64 %14)
  %16 = icmp ugt i64 %8, 9223372036854775806
  %.neg = sext i1 %16 to i64
  %17 = zext i1 %16 to i64
  store ptr %15, ptr @_QFEv.0, align 8, !tbaa !7
  store i64 %17, ptr @_QFEv.7, align 8, !tbaa !7
  %18 = call ptr @malloc(i64 %10)
  store ptr %18, ptr @_QFEccx.0, align 8, !tbaa !7
  %19 = call ptr @malloc(i64 %14)
  store ptr %19, ptr @_QFEccv.0, align 8, !tbaa !7
  store i64 %17, ptr @_QFEccv.7, align 8, !tbaa !7
  %20 = getelementptr i128, ptr %15, i64 %.neg
  store i128 0, ptr %20, align 8, !tbaa !3
  %21 = icmp sgt i64 %8, 0
  br i1 %21, label %.lr.ph, label %._crit_edge

.lr.ph:                                           ; preds = %0, %.lr.ph
  %22 = phi i64 [ %39, %.lr.ph ], [ 1, %0 ]
  %23 = call ptr @_FortranAioBeginExternalListInput(i32 -1, ptr nonnull @_QQcl.89ec123f68ddbf97c084977dc5dcb888, i32 9)
  %.unpack984 = load ptr, ptr @_QFEx.0, align 8, !tbaa !7
  %24 = add i64 %22, -1
  %25 = getelementptr i128, ptr %.unpack984, i64 %24
  %26 = call i1 @_FortranAioInputInteger(ptr %23, ptr %25, i32 16)
  %.unpack996 = load ptr, ptr @_QFEv.0, align 8, !tbaa !7
  %.unpack1003.unpack.unpack = load i64, ptr @_QFEv.7, align 8, !tbaa !7
  %27 = sub i64 %22, %.unpack1003.unpack.unpack
  %28 = getelementptr i128, ptr %.unpack996, i64 %27
  %29 = call i1 @_FortranAioInputInteger(ptr %23, ptr %28, i32 16)
  %30 = call i32 @_FortranAioEndIoStatement(ptr %23)
  %.unpack1008 = load ptr, ptr @_QFEv.0, align 8, !tbaa !7
  %.unpack1015.unpack.unpack = load i64, ptr @_QFEv.7, align 8, !tbaa !7
  %31 = sub i64 %22, %.unpack1015.unpack.unpack
  %32 = getelementptr i128, ptr %.unpack1008, i64 %31
  %33 = load i128, ptr %32, align 8, !tbaa !3
  %34 = xor i64 %.unpack1015.unpack.unpack, -1
  %35 = add i64 %22, %34
  %36 = getelementptr i128, ptr %.unpack1008, i64 %35
  %37 = load i128, ptr %36, align 8, !tbaa !3
  %38 = add i128 %37, %33
  store i128 %38, ptr %32, align 8, !tbaa !3
  %39 = add nuw i64 %22, 1
  %exitcond.not = icmp eq i64 %22, %8
  br i1 %exitcond.not, label %._crit_edge.loopexit, label %.lr.ph

._crit_edge.loopexit:                             ; preds = %.lr.ph
  %.unpack738.pre = load ptr, ptr @_QFEccv.0, align 8, !tbaa !7
  %.unpack745.unpack.unpack.pre = load i64, ptr @_QFEccv.7, align 8, !tbaa !7
  br label %._crit_edge

._crit_edge:                                      ; preds = %._crit_edge.loopexit, %0
  %.unpack799.unpack.unpack = phi i64 [ %.unpack1015.unpack.unpack, %._crit_edge.loopexit ], [ %17, %0 ]
  %.unpack792 = phi ptr [ %.unpack1008, %._crit_edge.loopexit ], [ %15, %0 ]
  %.unpack745.unpack.unpack = phi i64 [ %.unpack745.unpack.unpack.pre, %._crit_edge.loopexit ], [ %17, %0 ]
  %.unpack738 = phi ptr [ %.unpack738.pre, %._crit_edge.loopexit ], [ %19, %0 ]
  %40 = sub i64 0, %.unpack745.unpack.unpack
  %41 = getelementptr i128, ptr %.unpack738, i64 %40
  store i128 0, ptr %41, align 8, !tbaa !3
  %42 = load i128, ptr %2, align 8, !tbaa !3
  %43 = trunc i128 %42 to i64
  %44 = icmp sgt i64 %43, 0
  br i1 %44, label %.lr.ph1025, label %._crit_edge1026

.lr.ph1025:                                       ; preds = %._crit_edge
  %.unpack936 = load ptr, ptr @_QFEx.0, align 8, !tbaa !7
  %.unpack948 = load ptr, ptr @_QFEccx.0, align 8, !tbaa !7
  br label %45

45:                                               ; preds = %.lr.ph1025, %45
  %46 = phi i64 [ %43, %.lr.ph1025 ], [ %72, %45 ]
  %47 = phi i128 [ 1, %.lr.ph1025 ], [ %71, %45 ]
  %48 = load i128, ptr %1, align 8, !tbaa !3
  %49 = load i128, ptr %2, align 8, !tbaa !3
  %50 = sub i128 %49, %47
  %51 = trunc i128 %50 to i64
  %52 = getelementptr i128, ptr %.unpack936, i64 %51
  %53 = load i128, ptr %52, align 8, !tbaa !3
  %54 = sub i128 %48, %53
  %55 = trunc i128 %47 to i64
  %56 = add i64 %55, -1
  %57 = getelementptr i128, ptr %.unpack948, i64 %56
  store i128 %54, ptr %57, align 8, !tbaa !3
  %58 = load i128, ptr %2, align 8, !tbaa !3
  %59 = trunc i128 %58 to i64
  %60 = sub i64 %59, %.unpack799.unpack.unpack
  %61 = getelementptr i128, ptr %.unpack792, i64 %60
  %62 = load i128, ptr %61, align 8, !tbaa !3
  %63 = sub i128 %58, %47
  %64 = trunc i128 %63 to i64
  %65 = sub i64 %64, %.unpack799.unpack.unpack
  %66 = getelementptr i128, ptr %.unpack792, i64 %65
  %67 = load i128, ptr %66, align 8, !tbaa !3
  %68 = sub i128 %62, %67
  %69 = sub i64 %55, %.unpack745.unpack.unpack
  %70 = getelementptr i128, ptr %.unpack738, i64 %69
  store i128 %68, ptr %70, align 8, !tbaa !3
  %71 = add nuw nsw i128 %47, 1
  %72 = add nsw i64 %46, -1
  %73 = icmp ugt i64 %46, 1
  br i1 %73, label %45, label %._crit_edge1026.loopexit

._crit_edge1026.loopexit:                         ; preds = %45
  %.pre = load i128, ptr %2, align 8, !tbaa !3
  %.pre1045 = trunc i128 %.pre to i64
  br label %._crit_edge1026

._crit_edge1026:                                  ; preds = %._crit_edge1026.loopexit, %._crit_edge
  %.pre-phi = phi i64 [ %.pre1045, %._crit_edge1026.loopexit ], [ %43, %._crit_edge ]
  %74 = phi i128 [ %.pre, %._crit_edge1026.loopexit ], [ %42, %._crit_edge ]
  %75 = add i64 %.pre-phi, 1
  %76 = call i64 @llvm.smax.i64(i64 %75, i64 0)
  %77 = shl i64 %76, 4
  %78 = call ptr @malloc(i64 %77)
  %79 = icmp ugt i64 %.pre-phi, 9223372036854775806
  %.neg1020 = sext i1 %79 to i64
  %80 = zext i1 %79 to i64
  store ptr %78, ptr @_QFEoa2, align 16, !tbaa !7
  store i64 16, ptr getelementptr inbounds ({ ptr, i64, i32, i8, i8, i8, i8, [1 x [3 x i64]] }, ptr @_QFEoa2, i64 0, i32 1), align 8, !tbaa !7
  store i32 20180515, ptr getelementptr inbounds ({ ptr, i64, i32, i8, i8, i8, i8, [1 x [3 x i64]] }, ptr @_QFEoa2, i64 0, i32 2), align 16, !tbaa !7
  store i8 1, ptr getelementptr inbounds ({ ptr, i64, i32, i8, i8, i8, i8, [1 x [3 x i64]] }, ptr @_QFEoa2, i64 0, i32 3), align 4, !tbaa !7
  store i8 11, ptr getelementptr inbounds ({ ptr, i64, i32, i8, i8, i8, i8, [1 x [3 x i64]] }, ptr @_QFEoa2, i64 0, i32 4), align 1, !tbaa !7
  store i8 2, ptr getelementptr inbounds ({ ptr, i64, i32, i8, i8, i8, i8, [1 x [3 x i64]] }, ptr @_QFEoa2, i64 0, i32 5), align 2, !tbaa !7
  store i8 0, ptr getelementptr inbounds ({ ptr, i64, i32, i8, i8, i8, i8, [1 x [3 x i64]] }, ptr @_QFEoa2, i64 0, i32 6), align 1, !tbaa !7
  store i64 %80, ptr getelementptr inbounds ({ ptr, i64, i32, i8, i8, i8, i8, [1 x [3 x i64]] }, ptr @_QFEoa2, i64 0, i32 7), align 8, !tbaa !7
  store i64 %76, ptr getelementptr inbounds ({ ptr, i64, i32, i8, i8, i8, i8, [1 x [3 x i64]] }, ptr @_QFEoa2, i64 0, i32 7, i64 0, i64 1), align 16, !tbaa !7
  store i64 16, ptr getelementptr inbounds ({ ptr, i64, i32, i8, i8, i8, i8, [1 x [3 x i64]] }, ptr @_QFEoa2, i64 0, i32 7, i64 0, i64 2), align 8, !tbaa !7
  %81 = call ptr @malloc(i64 %77)
  store ptr %81, ptr @_QFEob2, align 16, !tbaa !7
  store i64 16, ptr getelementptr inbounds ({ ptr, i64, i32, i8, i8, i8, i8, [1 x [3 x i64]] }, ptr @_QFEob2, i64 0, i32 1), align 8, !tbaa !7
  store i32 20180515, ptr getelementptr inbounds ({ ptr, i64, i32, i8, i8, i8, i8, [1 x [3 x i64]] }, ptr @_QFEob2, i64 0, i32 2), align 16, !tbaa !7
  store i8 1, ptr getelementptr inbounds ({ ptr, i64, i32, i8, i8, i8, i8, [1 x [3 x i64]] }, ptr @_QFEob2, i64 0, i32 3), align 4, !tbaa !7
  store i8 11, ptr getelementptr inbounds ({ ptr, i64, i32, i8, i8, i8, i8, [1 x [3 x i64]] }, ptr @_QFEob2, i64 0, i32 4), align 1, !tbaa !7
  store i8 2, ptr getelementptr inbounds ({ ptr, i64, i32, i8, i8, i8, i8, [1 x [3 x i64]] }, ptr @_QFEob2, i64 0, i32 5), align 2, !tbaa !7
  store i8 0, ptr getelementptr inbounds ({ ptr, i64, i32, i8, i8, i8, i8, [1 x [3 x i64]] }, ptr @_QFEob2, i64 0, i32 6), align 1, !tbaa !7
  store i64 %80, ptr getelementptr inbounds ({ ptr, i64, i32, i8, i8, i8, i8, [1 x [3 x i64]] }, ptr @_QFEob2, i64 0, i32 7), align 8, !tbaa !7
  store i64 %76, ptr getelementptr inbounds ({ ptr, i64, i32, i8, i8, i8, i8, [1 x [3 x i64]] }, ptr @_QFEob2, i64 0, i32 7, i64 0, i64 1), align 16, !tbaa !7
  store i64 16, ptr getelementptr inbounds ({ ptr, i64, i32, i8, i8, i8, i8, [1 x [3 x i64]] }, ptr @_QFEob2, i64 0, i32 7, i64 0, i64 2), align 8, !tbaa !7
  %82 = getelementptr i128, ptr %78, i64 %.neg1020
  store i128 0, ptr %82, align 8, !tbaa !3
  %83 = icmp sgt i64 %.pre-phi, 0
  br i1 %83, label %.lr.ph1028, label %._crit_edge1029.thread

._crit_edge1029.thread:                           ; preds = %._crit_edge1026
  %84 = getelementptr i128, ptr %81, i64 %.neg1020
  store i128 0, ptr %84, align 8, !tbaa !3
  br label %._crit_edge1036

.lr.ph1028:                                       ; preds = %._crit_edge1026
  %.unpack924 = load ptr, ptr @_QFEx.0, align 8, !tbaa !7
  %85 = select i1 %79, i64 -16, i64 0
  %uglygep1049 = getelementptr i8, ptr %78, i64 %85
  %load_initial1050 = load i128, ptr %uglygep1049, align 8
  br label %86

86:                                               ; preds = %.lr.ph1028, %86
  %store_forwarded1051 = phi i128 [ %load_initial1050, %.lr.ph1028 ], [ %96, %86 ]
  %87 = phi i64 [ 1, %.lr.ph1028 ], [ %99, %86 ]
  %88 = sub i64 %87, %.unpack799.unpack.unpack
  %89 = getelementptr i128, ptr %.unpack792, i64 %88
  %90 = load i128, ptr %89, align 8, !tbaa !3
  %91 = add i64 %87, -1
  %92 = getelementptr i128, ptr %.unpack924, i64 %91
  %93 = load i128, ptr %92, align 8, !tbaa !3
  %94 = shl i128 %93, 1
  %95 = sub i128 %90, %94
  %96 = call i128 @llvm.smax.i128(i128 %store_forwarded1051, i128 %95)
  %97 = sub i64 %87, %80
  %98 = getelementptr i128, ptr %78, i64 %97
  store i128 %96, ptr %98, align 8, !tbaa !3
  %99 = add nuw i64 %87, 1
  %exitcond1039.not = icmp eq i64 %87, %.pre-phi
  br i1 %exitcond1039.not, label %._crit_edge1029, label %86

._crit_edge1029:                                  ; preds = %86
  %100 = getelementptr i128, ptr %81, i64 %.neg1020
  store i128 0, ptr %100, align 8, !tbaa !3
  br i1 %83, label %.lr.ph1031, label %._crit_edge1036

.lr.ph1031:                                       ; preds = %._crit_edge1029
  %.unpack888 = load ptr, ptr @_QFEccx.0, align 8, !tbaa !7
  %101 = select i1 %79, i64 -16, i64 0
  %uglygep = getelementptr i8, ptr %81, i64 %101
  %load_initial = load i128, ptr %uglygep, align 8
  br label %102

.preheader1023:                                   ; preds = %102
  br i1 %83, label %.lr.ph1033, label %._crit_edge1036

.lr.ph1033:                                       ; preds = %.preheader1023
  %.unpack840 = load ptr, ptr @_QFEccx.0, align 8, !tbaa !7
  br label %116

102:                                              ; preds = %.lr.ph1031, %102
  %store_forwarded = phi i128 [ %load_initial, %.lr.ph1031 ], [ %112, %102 ]
  %103 = phi i64 [ 1, %.lr.ph1031 ], [ %115, %102 ]
  %104 = sub i64 %103, %.unpack745.unpack.unpack
  %105 = getelementptr i128, ptr %.unpack738, i64 %104
  %106 = load i128, ptr %105, align 8, !tbaa !3
  %107 = add i64 %103, -1
  %108 = getelementptr i128, ptr %.unpack888, i64 %107
  %109 = load i128, ptr %108, align 8, !tbaa !3
  %110 = shl i128 %109, 1
  %111 = sub i128 %106, %110
  %112 = call i128 @llvm.smax.i128(i128 %store_forwarded, i128 %111)
  %113 = sub i64 %103, %80
  %114 = getelementptr i128, ptr %81, i64 %113
  store i128 %112, ptr %114, align 8, !tbaa !3
  %115 = add nuw i64 %103, 1
  %exitcond1040.not = icmp eq i64 %103, %.pre-phi
  br i1 %exitcond1040.not, label %.preheader1023, label %102

.preheader:                                       ; preds = %116
  br i1 %83, label %.lr.ph1035, label %._crit_edge1036

.lr.ph1035:                                       ; preds = %.preheader
  %.unpack804 = load ptr, ptr @_QFEx.0, align 8, !tbaa !7
  br label %137

116:                                              ; preds = %.lr.ph1033, %116
  %117 = phi i64 [ %.pre-phi, %.lr.ph1033 ], [ %135, %116 ]
  %118 = phi i128 [ 1, %.lr.ph1033 ], [ %134, %116 ]
  %.01032 = phi i128 [ 0, %.lr.ph1033 ], [ %133, %116 ]
  %119 = trunc i128 %118 to i64
  %120 = sub i64 %119, %.unpack745.unpack.unpack
  %121 = getelementptr i128, ptr %.unpack738, i64 %120
  %122 = load i128, ptr %121, align 8, !tbaa !3
  %123 = add i64 %119, -1
  %124 = getelementptr i128, ptr %.unpack840, i64 %123
  %125 = load i128, ptr %124, align 8, !tbaa !3
  %126 = sub i128 %122, %125
  %127 = sub i128 %74, %118
  %128 = trunc i128 %127 to i64
  %129 = sub i64 %128, %80
  %130 = getelementptr i128, ptr %78, i64 %129
  %131 = load i128, ptr %130, align 8, !tbaa !3
  %132 = add i128 %126, %131
  %133 = call i128 @llvm.smax.i128(i128 %.01032, i128 %132)
  %134 = add nuw nsw i128 %118, 1
  %135 = add nsw i64 %117, -1
  %136 = icmp ugt i64 %117, 1
  br i1 %136, label %116, label %.preheader

137:                                              ; preds = %.lr.ph1035, %137
  %138 = phi i64 [ %.pre-phi, %.lr.ph1035 ], [ %156, %137 ]
  %139 = phi i128 [ 1, %.lr.ph1035 ], [ %155, %137 ]
  %.11034 = phi i128 [ %133, %.lr.ph1035 ], [ %154, %137 ]
  %140 = trunc i128 %139 to i64
  %141 = sub i64 %140, %.unpack799.unpack.unpack
  %142 = getelementptr i128, ptr %.unpack792, i64 %141
  %143 = load i128, ptr %142, align 8, !tbaa !3
  %144 = add i64 %140, -1
  %145 = getelementptr i128, ptr %.unpack804, i64 %144
  %146 = load i128, ptr %145, align 8, !tbaa !3
  %147 = sub i128 %143, %146
  %148 = sub i128 %74, %139
  %149 = trunc i128 %148 to i64
  %150 = sub i64 %149, %80
  %151 = getelementptr i128, ptr %81, i64 %150
  %152 = load i128, ptr %151, align 8, !tbaa !3
  %153 = add i128 %147, %152
  %154 = call i128 @llvm.smax.i128(i128 %.11034, i128 %153)
  %155 = add nuw nsw i128 %139, 1
  %156 = add nsw i64 %138, -1
  %157 = icmp ugt i64 %138, 1
  br i1 %157, label %137, label %._crit_edge1036

._crit_edge1036:                                  ; preds = %137, %._crit_edge1029, %._crit_edge1029.thread, %.preheader1023, %.preheader
  %.1.lcssa = phi i128 [ %133, %.preheader ], [ 0, %.preheader1023 ], [ 0, %._crit_edge1029.thread ], [ 0, %._crit_edge1029 ], [ %154, %137 ]
  %158 = call ptr @_FortranAioBeginExternalFormattedOutput(ptr nonnull @_QQcl.28693029, i64 4, ptr null, i32 -1, ptr nonnull @_QQcl.89ec123f68ddbf97c084977dc5dcb888, i32 37)
  %159 = call i1 @_FortranAioOutputInteger128(ptr %158, i128 %.1.lcssa)
  %160 = call i32 @_FortranAioEndIoStatement(ptr %158)
  ret void
}

declare ptr @_FortranAioBeginExternalListInput(i32, ptr, i32) local_unnamed_addr

declare i1 @_FortranAioInputInteger(ptr, ptr, i32) local_unnamed_addr

declare i32 @_FortranAioEndIoStatement(ptr) local_unnamed_addr

declare ptr @_FortranAioBeginExternalFormattedOutput(ptr, i64, ptr, i32, ptr, i32) local_unnamed_addr

declare i1 @_FortranAioOutputInteger128(ptr, i128) local_unnamed_addr

; Function Attrs: nocallback nofree nosync nounwind speculatable willreturn memory(none)
declare i64 @llvm.smax.i64(i64, i64) #1

; Function Attrs: nocallback nofree nosync nounwind speculatable willreturn memory(none)
declare i128 @llvm.smax.i128(i128, i128) #1

attributes #0 = { mustprogress nofree nounwind willreturn allockind("alloc,uninitialized") allocsize(0) memory(inaccessiblemem: readwrite) "alloc-family"="malloc" }
attributes #1 = { nocallback nofree nosync nounwind speculatable willreturn memory(none) }

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

!0 = !{i32 2, !"Debug Info Version", i32 3}
!1 = !{i32 8, !"PIC Level", i32 2}
!2 = !{i32 7, !"PIE Level", i32 2}
!3 = !{!4, !4, i64 0}
!4 = !{!"any data access", !5, i64 0}
!5 = !{!"any access", !6, i64 0}
!6 = !{!"Flang Type TBAA Root"}
!7 = !{!8, !8, i64 0}
!8 = !{!"descriptor member", !5, i64 0}
