diff --git a/llvm/lib/CodeGen/TypePromotion.cpp b/llvm/lib/CodeGen/TypePromotion.cpp --- a/llvm/lib/CodeGen/TypePromotion.cpp +++ b/llvm/lib/CodeGen/TypePromotion.cpp @@ -847,8 +847,7 @@ // Iterate through, and add to, a tree of operands and users in the use-def. while (!WorkList.empty()) { - Value *V = WorkList.back(); - WorkList.pop_back(); + Value *V = WorkList.pop_back_val(); if (CurrentVisited.count(V)) continue; @@ -917,7 +916,7 @@ ++ToPromote; } - // DAG optimisations should be able to handle these cases better, especially + // DAG optimizations should be able to handle these cases better, especially // for function arguments. if (ToPromote < 2 || (Blocks.size() == 1 && (NonFreeArgs > SafeWrap.size()))) return false; @@ -932,6 +931,9 @@ } bool TypePromotion::runOnFunction(Function &F) { + AllVisited.clear(); + SafeToPromote.clear(); + SafeWrap.clear(); if (skipFunction(F) || DisablePromotion) return false; diff --git a/llvm/test/CodeGen/ARM/non-deterministic-type-promotion.ll b/llvm/test/CodeGen/ARM/non-deterministic-type-promotion.ll new file mode 100644 --- /dev/null +++ b/llvm/test/CodeGen/ARM/non-deterministic-type-promotion.ll @@ -0,0 +1,1595 @@ +; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py +; RUN: llc -O2 -o - %s | FileCheck %s +; CHECK-LABEL: Svm_SetNoCmpBandMulti: +; CHECK: mov r9, #0 +; CHECK: mov r11, #0 +; CHECK: add r11, r11, #1 +; CHECK: uxtb r9, r11 +; CHECK: cmp r9, r0 +; CHECK: ldr r7, [sp, #60] +; CHECK: str r0, [r1, r9, lsl #3]! +; CHECK: str r7, [r1, #4] +; CHECK: str r7, [sp, #52] +; CHECK: str r0, [r7], #4 +; CHECK: add r2, r7, r2 +; CHECK: uxtb r11, r1 +; CHECK: cmp r11, r0 +; CHECK-NOT: movw r0, #65535 +; CHECK-NOT: tst r8, r0 +; CHECK: cmp r8, #0 +; CHECK-NOT:orr r8, r8, r0 +; CHECK: uxth r0, r0 +; CHECK-NEXT: orrs r8, r8, r0 +; CHECK-NOT: movw r0, #65535 +; CHECK-NOT: tst r8, r0 +target datalayout = "e-m:e-p:32:32-Fi8-i64:64-v128:64:128-a:0:32-n32-S64" +target triple = "armv7-arm-none-eabi" + +%struct.SVM_ADR_ST = type { i32, i32 } +%struct.SVM_BLK_ST = type { i32, i32 } + +@gSvmUblWr = external dso_local local_unnamed_addr global %struct.SVM_ADR_ST*, align 4 +@gSvmBatBufSize = external dso_local local_unnamed_addr global i32, align 4 +@gSvmSmpHdd = external dso_local local_unnamed_addr global i8*, align 4 +@gSvmBatOft = external dso_local local_unnamed_addr global i32, align 4 +@gSvmBatBuf = external dso_local local_unnamed_addr global %struct.SVM_ADR_ST, align 4 +@gSvmTopHdd = external dso_local local_unnamed_addr global i8*, align 4 +@gSvmBlockAddressTableWr = external dso_local local_unnamed_addr global i8*, align 4 +@gSvmBatInfo = external dso_local local_unnamed_addr global i32, align 4 +@gSvmDebugCmpBandCnt = external dso_local local_unnamed_addr global i32, align 4 +@gSvmDebugNoCmpBandCnt = external dso_local local_unnamed_addr global i32, align 4 + +define hidden arm_aapcs_vfpcc zeroext i16 @Svm_SetCmpBandMulti(i8** nocapture readonly %pSrcAry, i32 %Line, i16 zeroext %HBlockNum, i16 zeroext %BufNum, i8 zeroext %ColorNum, i32** nocapture readonly %pRatAry, %struct.SVM_ADR_ST* %pBatTop, i32 %fNoCmpRat) local_unnamed_addr #0 !dbg !23 { +entry: + %pUblWr = alloca %struct.SVM_ADR_ST*, align 4 + %NowTop = alloca i64, align 8 + %tmpcast = bitcast i64* %NowTop to %struct.SVM_ADR_ST* + %BlkTop = alloca i64, align 8 + %tmpcast404 = bitcast i64* %BlkTop to %struct.SVM_ADR_ST* + %fMemCpy = alloca i32, align 4 + call void @llvm.dbg.value(metadata i8** %pSrcAry, metadata !37, metadata !DIExpression()), !dbg !67 + call void @llvm.dbg.value(metadata i32 %Line, metadata !38, metadata !DIExpression()), !dbg !67 + call void @llvm.dbg.value(metadata i16 %HBlockNum, metadata !39, metadata !DIExpression()), !dbg !67 + call void @llvm.dbg.value(metadata i16 %BufNum, metadata !40, metadata !DIExpression()), !dbg !67 + call void @llvm.dbg.value(metadata i8 %ColorNum, metadata !41, metadata !DIExpression()), !dbg !67 + call void @llvm.dbg.value(metadata i32** %pRatAry, metadata !42, metadata !DIExpression()), !dbg !67 + call void @llvm.dbg.value(metadata %struct.SVM_ADR_ST* %pBatTop, metadata !43, metadata !DIExpression()), !dbg !67 + call void @llvm.dbg.value(metadata i32 %fNoCmpRat, metadata !44, metadata !DIExpression()), !dbg !67 + %0 = bitcast %struct.SVM_ADR_ST** %pUblWr to i8*, !dbg !68 + call void @llvm.lifetime.start.p0i8(i64 4, i8* nonnull %0) #4, !dbg !68 + %1 = bitcast i64* %NowTop to i8*, !dbg !69 + call void @llvm.lifetime.start.p0i8(i64 8, i8* nonnull %1) #4, !dbg !69 + call void @llvm.dbg.declare(metadata %struct.SVM_ADR_ST* %tmpcast, metadata !62, metadata !DIExpression()), !dbg !70 + %2 = bitcast i64* %BlkTop to i8*, !dbg !71 + call void @llvm.lifetime.start.p0i8(i64 8, i8* nonnull %2) #4, !dbg !71 + call void @llvm.dbg.declare(metadata %struct.SVM_ADR_ST* %tmpcast404, metadata !63, metadata !DIExpression()), !dbg !72 + %3 = bitcast i32* %fMemCpy to i8*, !dbg !73 + call void @llvm.lifetime.start.p0i8(i64 4, i8* nonnull %3) #4, !dbg !73 + call void @llvm.dbg.value(metadata i16 0, metadata !45, metadata !DIExpression()), !dbg !67 + call arm_aapcs_vfpcc void @Svm_InitAdr(%struct.SVM_ADR_ST* nonnull %tmpcast404) #4, !dbg !74 + call arm_aapcs_vfpcc void @Svm_InitAdr(%struct.SVM_ADR_ST* nonnull %tmpcast) #4, !dbg !75 + %4 = load i32, i32* bitcast (%struct.SVM_ADR_ST** @gSvmUblWr to i32*), align 4, !dbg !76, !tbaa !77 + call void @llvm.dbg.value(metadata %struct.SVM_ADR_ST* undef, metadata !54, metadata !DIExpression()), !dbg !67 + %5 = bitcast %struct.SVM_ADR_ST** %pUblWr to i32*, !dbg !81 + store i32 %4, i32* %5, align 4, !dbg !81, !tbaa !77 + call void @llvm.dbg.value(metadata i32 0, metadata !64, metadata !DIExpression()), !dbg !67 + store i32 0, i32* %fMemCpy, align 4, !dbg !82, !tbaa !83 + call void @llvm.dbg.value(metadata i8 0, metadata !46, metadata !DIExpression()), !dbg !67 + call void @llvm.dbg.value(metadata i16 0, metadata !45, metadata !DIExpression()), !dbg !67 + %conv1 = zext i16 %HBlockNum to i32, !dbg !85 + %cmp484 = icmp eq i16 %HBlockNum, 0, !dbg !88 + %.pre14 = zext i16 %BufNum to i32, !dbg !67 + %.pre15 = mul i32 %.pre14, %Line, !dbg !67 + %.pre16 = zext i8 %ColorNum to i32, !dbg !67 + %.pre17 = mul i32 %.pre15, %.pre16, !dbg !67 + br i1 %cmp484, label %if.then273, label %for.body.lr.ph, !dbg !89 + +for.body.lr.ph: + %mul6 = shl i32 %.pre17, 3, !dbg !90 + %add = or i32 %mul6, 4, !dbg !90 + %add14 = add i32 %mul6, 72, !dbg !90 + %add34 = add i32 %add14, %add, !dbg !90 + %Adr = getelementptr inbounds %struct.SVM_ADR_ST, %struct.SVM_ADR_ST* %tmpcast, i32 0, i32 1, !dbg !92 + %add45 = add i32 %mul6, 63, !dbg !92 + %cmp66474 = icmp eq i8 %ColorNum, 0, !dbg !95 + %cmp72456 = icmp eq i16 %BufNum, 0, !dbg !98 + %cmp77441 = icmp eq i32 %Line, 0, !dbg !102 + %Sct = bitcast i64* %NowTop to i32*, !dbg !106 + %Sct118 = bitcast i64* %BlkTop to i32*, !dbg !106 + %6 = bitcast i32* %Adr to i8**, !dbg !111 + %Adr226 = getelementptr inbounds %struct.SVM_ADR_ST, %struct.SVM_ADR_ST* %tmpcast404, i32 0, i32 1, !dbg !90 + %7 = bitcast i32* %Adr226 to i32**, !dbg !90 + br label %for.body, !dbg !89 + +for.body: + %conv486 = phi i32 [ 0, %for.body.lr.ph ], [ %conv, %for.inc264 ] + %BlkCnt.0485 = phi i8 [ 0, %for.body.lr.ph ], [ %inc265, %for.inc264 ] + call void @llvm.dbg.value(metadata i8 %BlkCnt.0485, metadata !46, metadata !DIExpression()), !dbg !67 + call void @llvm.dbg.value(metadata %struct.SVM_ADR_ST* undef, metadata !53, metadata !DIExpression()), !dbg !67 + call void @llvm.dbg.value(metadata i32 undef, metadata !60, metadata !DIExpression(DW_OP_plus_uconst, 32, DW_OP_stack_value)), !dbg !67 + %8 = load i32*, i32** %pRatAry, align 4, !dbg !113, !tbaa !77 + %mul18 = shl nuw nsw i32 %conv486, 1, !dbg !114 + %add19 = or i32 %mul18, 1, !dbg !115 + %arrayidx20 = getelementptr inbounds i32, i32* %8, i32 %add19, !dbg !113 + %9 = bitcast i32* %arrayidx20 to i8*, !dbg !116 + call void @llvm.dbg.value(metadata i8* %9, metadata !56, metadata !DIExpression()), !dbg !67 + %10 = load i8, i8* %9, align 1, !dbg !117, !tbaa !118 + %conv22 = zext i8 %10 to i32, !dbg !117 + %shl = shl nuw i32 %conv22, 24, !dbg !119 + %arrayidx23 = getelementptr inbounds i8, i8* %9, i32 1, !dbg !120 + %11 = load i8, i8* %arrayidx23, align 1, !dbg !120, !tbaa !118 + %conv24 = zext i8 %11 to i32, !dbg !120 + %shl25 = shl nuw nsw i32 %conv24, 16, !dbg !121 + %add26 = or i32 %shl25, %shl, !dbg !122 + %arrayidx27 = getelementptr inbounds i8, i8* %9, i32 2, !dbg !123 + %12 = load i8, i8* %arrayidx27, align 1, !dbg !123, !tbaa !118 + %conv28 = zext i8 %12 to i32, !dbg !123 + %shl29 = shl nuw nsw i32 %conv28, 8, !dbg !124 + %add30 = or i32 %add26, %shl29, !dbg !125 + %arrayidx31 = getelementptr inbounds i8, i8* %9, i32 3, !dbg !126 + %13 = load i8, i8* %arrayidx31, align 1, !dbg !126, !tbaa !118 + %conv32 = zext i8 %13 to i32, !dbg !126 + %add33 = or i32 %add30, %conv32, !dbg !127 + %add35 = add i32 %add34, %add33, !dbg !128 + call void @llvm.dbg.value(metadata i32 %add35, metadata !60, metadata !DIExpression()), !dbg !67 + call void @llvm.dbg.value(metadata %struct.SVM_ADR_ST** %pUblWr, metadata !54, metadata !DIExpression(DW_OP_deref)), !dbg !67 + call void @llvm.dbg.value(metadata i32* %fMemCpy, metadata !64, metadata !DIExpression(DW_OP_deref)), !dbg !67 + %call = call arm_aapcs_vfpcc zeroext i16 @Svm_ChkSimpleTopBuf(i32 %add35, %struct.SVM_ADR_ST* nonnull %tmpcast, %struct.SVM_ADR_ST** nonnull %pUblWr, i32* nonnull %fMemCpy) #4, !dbg !129 + call void @llvm.dbg.value(metadata i16 %call, metadata !45, metadata !DIExpression()), !dbg !67 + %cmp37 = icmp eq i16 %call, 0, !dbg !130 + br i1 %cmp37, label %if.then, label %if.else280, !dbg !131 + +if.then: + %arrayidx = getelementptr inbounds %struct.SVM_ADR_ST, %struct.SVM_ADR_ST* %pBatTop, i32 %conv486, !dbg !132 + call void @llvm.dbg.value(metadata %struct.SVM_ADR_ST* %arrayidx, metadata !53, metadata !DIExpression()), !dbg !67 + call void @llvm.dbg.value(metadata %struct.SVM_ADR_ST* %arrayidx, metadata !53, metadata !DIExpression(DW_OP_plus_uconst, 8, DW_OP_stack_value)), !dbg !67 + %14 = bitcast %struct.SVM_ADR_ST* %arrayidx to i64*, !dbg !133 + %15 = load i64, i64* %NowTop, align 8, !dbg !133 + store i64 %15, i64* %14, align 4, !dbg !133 + store i64 %15, i64* %BlkTop, align 8, !dbg !134 + %16 = load i32, i32* %Adr, align 4, !dbg !135, !tbaa !136 + %add39 = add i32 %16, 4, !dbg !138 + call void @llvm.dbg.value(metadata i32 %add39, metadata !51, metadata !DIExpression()), !dbg !67 + call void @llvm.dbg.value(metadata i32 undef, metadata !55, metadata !DIExpression()), !dbg !67 + %add46 = add i32 %add39, %add45, !dbg !139 + %shr = and i32 %add46, -64, !dbg !140 + call void @llvm.dbg.value(metadata i32 %shr, metadata !55, metadata !DIExpression()), !dbg !67 + %17 = inttoptr i32 %16 to i32*, !dbg !141 + call void @llvm.dbg.value(metadata i32* %17, metadata !50, metadata !DIExpression()), !dbg !67 + %sub = sub i32 %shr, %16, !dbg !142 + store i32 %sub, i32* %17, align 4, !dbg !143, !tbaa !83 + call void @llvm.dbg.value(metadata i32 undef, metadata !58, metadata !DIExpression()), !dbg !67 + %add57 = add i32 %shr, %add45, !dbg !144 + %shr58 = and i32 %add57, -64, !dbg !145 + call void @llvm.dbg.value(metadata i32 %shr58, metadata !58, metadata !DIExpression()), !dbg !67 + call void @llvm.dbg.value(metadata i32 %shr58, metadata !59, metadata !DIExpression()), !dbg !67 + call void @llvm.dbg.value(metadata i32 %shr58, metadata !65, metadata !DIExpression()), !dbg !67 + call void @llvm.dbg.value(metadata i32 %shr, metadata !57, metadata !DIExpression()), !dbg !67 + %18 = load i32, i32* %Adr, align 4, !dbg !146, !tbaa !136 + %19 = load i32, i32* @gSvmBatBufSize, align 4, !dbg !147, !tbaa !83 + %sub61405 = add i32 %19, %18, !dbg !147 + %sub62 = sub i32 %sub61405, %shr58, !dbg !147 + store i32 %sub62, i32* @gSvmBatBufSize, align 4, !dbg !147, !tbaa !83 + call void @llvm.dbg.value(metadata i8 0, metadata !47, metadata !DIExpression()), !dbg !67 + call void @llvm.dbg.value(metadata i16 0, metadata !45, metadata !DIExpression()), !dbg !67 + call void @llvm.dbg.value(metadata i32 %shr58, metadata !65, metadata !DIExpression()), !dbg !67 + call void @llvm.dbg.value(metadata i32 %shr58, metadata !58, metadata !DIExpression()), !dbg !67 + call void @llvm.dbg.value(metadata i32 %shr, metadata !57, metadata !DIExpression()), !dbg !67 + call void @llvm.dbg.value(metadata i32 %add39, metadata !51, metadata !DIExpression()), !dbg !67 + br i1 %cmp66474, label %if.end225, label %for.cond69.preheader.preheader, !dbg !148 + +for.cond69.preheader.preheader: + %20 = inttoptr i32 %shr58 to i8*, !dbg !149 + call void @llvm.dbg.value(metadata i8* %20, metadata !58, metadata !DIExpression()), !dbg !67 + call void @llvm.dbg.value(metadata i8* %20, metadata !59, metadata !DIExpression()), !dbg !67 + call void @llvm.dbg.value(metadata i8* %20, metadata !58, metadata !DIExpression()), !dbg !67 + %21 = inttoptr i32 %shr to i8*, !dbg !150 + call void @llvm.dbg.value(metadata i8* %21, metadata !55, metadata !DIExpression()), !dbg !67 + call void @llvm.dbg.value(metadata i8* %21, metadata !57, metadata !DIExpression()), !dbg !67 + call void @llvm.dbg.value(metadata i8* %21, metadata !57, metadata !DIExpression()), !dbg !67 + %22 = inttoptr i32 %add39 to %struct.SVM_BLK_ST*, !dbg !151 + call void @llvm.dbg.value(metadata %struct.SVM_BLK_ST* %22, metadata !51, metadata !DIExpression()), !dbg !67 + call void @llvm.dbg.value(metadata %struct.SVM_BLK_ST* %22, metadata !51, metadata !DIExpression()), !dbg !67 + br label %for.cond69.preheader, !dbg !148 + +for.cond69.preheader: + %indvars.iv = phi i32 [ 0, %for.cond69.preheader.preheader ], [ %indvars.iv.next, %for.inc217 ] + %Ret.1480 = phi i16 [ 0, %for.cond69.preheader.preheader ], [ %Ret.7, %for.inc217 ] + %MinAdr.1479 = phi i32 [ %shr58, %for.cond69.preheader.preheader ], [ %MinAdr.5, %for.inc217 ] + %pDataTop.0478 = phi i8* [ %20, %for.cond69.preheader.preheader ], [ %pDataTop.5, %for.inc217 ] + %pOutRat8.0477 = phi i8* [ %21, %for.cond69.preheader.preheader ], [ %pOutRat8.3, %for.inc217 ] + %pCtrTable.0475 = phi %struct.SVM_BLK_ST* [ %22, %for.cond69.preheader.preheader ], [ %pCtrTable.3, %for.inc217 ] + call void @llvm.dbg.value(metadata i16 %Ret.1480, metadata !45, metadata !DIExpression()), !dbg !67 + call void @llvm.dbg.value(metadata i32 %MinAdr.1479, metadata !65, metadata !DIExpression()), !dbg !67 + call void @llvm.dbg.value(metadata i8* %pDataTop.0478, metadata !58, metadata !DIExpression()), !dbg !67 + call void @llvm.dbg.value(metadata i8* %pOutRat8.0477, metadata !57, metadata !DIExpression()), !dbg !67 + call void @llvm.dbg.value(metadata i32 %indvars.iv, metadata !47, metadata !DIExpression()), !dbg !67 + call void @llvm.dbg.value(metadata %struct.SVM_BLK_ST* %pCtrTable.0475, metadata !51, metadata !DIExpression()), !dbg !67 + call void @llvm.dbg.value(metadata i16 %Ret.1480, metadata !45, metadata !DIExpression()), !dbg !67 + call void @llvm.dbg.value(metadata i32 %MinAdr.1479, metadata !65, metadata !DIExpression()), !dbg !67 + call void @llvm.dbg.value(metadata i8* %pDataTop.0478, metadata !58, metadata !DIExpression()), !dbg !67 + call void @llvm.dbg.value(metadata i8* %pOutRat8.0477, metadata !57, metadata !DIExpression()), !dbg !67 + call void @llvm.dbg.value(metadata %struct.SVM_BLK_ST* %pCtrTable.0475, metadata !51, metadata !DIExpression()), !dbg !67 + call void @llvm.dbg.value(metadata i8 0, metadata !49, metadata !DIExpression()), !dbg !67 + br i1 %cmp72456, label %for.inc217, label %for.cond75.preheader.lr.ph, !dbg !152 + +for.cond75.preheader.lr.ph: + %mul81 = mul i32 %indvars.iv, %Line, !dbg !153 + br label %for.cond75.preheader, !dbg !152 + +for.cond69: + %MinAdr.3.lcssa507 = phi i32 [ %MinAdr.2461, %for.end ], [ %spec.select, %if.then153 ] + %pDataTop.2.lcssa505 = phi i8* [ %pDataTop.1460, %for.end ], [ %add.ptr, %if.then153 ] + %pOutRat8.2.lcssa503 = phi i8* [ %pOutRat8.1459, %for.end ], [ %incdec.ptr201, %if.then153 ] + %pCtrTable.2.lcssa501 = phi %struct.SVM_BLK_ST* [ %pCtrTable.1458, %for.end ], [ %incdec.ptr156, %if.then153 ] + %inc215509 = add i8 %BufCnt.0457, 1, !dbg !154 + call void @llvm.dbg.value(metadata i16 0, metadata !45, metadata !DIExpression()), !dbg !67 + call void @llvm.dbg.value(metadata i32 %MinAdr.2461, metadata !65, metadata !DIExpression()), !dbg !67 + call void @llvm.dbg.value(metadata i8* %pDataTop.1460, metadata !58, metadata !DIExpression()), !dbg !67 + call void @llvm.dbg.value(metadata i8* %pOutRat8.1459, metadata !57, metadata !DIExpression()), !dbg !67 + call void @llvm.dbg.value(metadata %struct.SVM_BLK_ST* %pCtrTable.1458, metadata !51, metadata !DIExpression()), !dbg !67 + call void @llvm.dbg.value(metadata i8 %BufCnt.0457, metadata !49, metadata !DIExpression(DW_OP_plus_uconst, 1, DW_OP_stack_value)), !dbg !67 + %conv70 = zext i8 %inc215509 to i32, !dbg !155 + %cmp72 = icmp ult i32 %conv70, %.pre14, !dbg !156 + br i1 %cmp72, label %for.cond75.preheader, label %for.inc217, !dbg !152, !llvm.loop !157 + +for.cond75.preheader: + %conv70463 = phi i32 [ 0, %for.cond75.preheader.lr.ph ], [ %conv70, %for.cond69 ] + %Ret.2462 = phi i16 [ %Ret.1480, %for.cond75.preheader.lr.ph ], [ 0, %for.cond69 ] + %MinAdr.2461 = phi i32 [ %MinAdr.1479, %for.cond75.preheader.lr.ph ], [ %MinAdr.3.lcssa507, %for.cond69 ] + %pDataTop.1460 = phi i8* [ %pDataTop.0478, %for.cond75.preheader.lr.ph ], [ %pDataTop.2.lcssa505, %for.cond69 ] + %pOutRat8.1459 = phi i8* [ %pOutRat8.0477, %for.cond75.preheader.lr.ph ], [ %pOutRat8.2.lcssa503, %for.cond69 ] + %pCtrTable.1458 = phi %struct.SVM_BLK_ST* [ %pCtrTable.0475, %for.cond75.preheader.lr.ph ], [ %pCtrTable.2.lcssa501, %for.cond69 ] + %BufCnt.0457 = phi i8 [ 0, %for.cond75.preheader.lr.ph ], [ %inc215509, %for.cond69 ] + call void @llvm.dbg.value(metadata i16 %Ret.2462, metadata !45, metadata !DIExpression()), !dbg !67 + call void @llvm.dbg.value(metadata i32 %MinAdr.2461, metadata !65, metadata !DIExpression()), !dbg !67 + call void @llvm.dbg.value(metadata i8* %pDataTop.1460, metadata !58, metadata !DIExpression()), !dbg !67 + call void @llvm.dbg.value(metadata i8* %pOutRat8.1459, metadata !57, metadata !DIExpression()), !dbg !67 + call void @llvm.dbg.value(metadata %struct.SVM_BLK_ST* %pCtrTable.1458, metadata !51, metadata !DIExpression()), !dbg !67 + call void @llvm.dbg.value(metadata i8 %BufCnt.0457, metadata !49, metadata !DIExpression()), !dbg !67 + call void @llvm.dbg.value(metadata i16 %Ret.2462, metadata !45, metadata !DIExpression()), !dbg !67 + call void @llvm.dbg.value(metadata i32 %MinAdr.2461, metadata !65, metadata !DIExpression()), !dbg !67 + call void @llvm.dbg.value(metadata i8* %pDataTop.1460, metadata !58, metadata !DIExpression()), !dbg !67 + call void @llvm.dbg.value(metadata i8* %pOutRat8.1459, metadata !57, metadata !DIExpression()), !dbg !67 + call void @llvm.dbg.value(metadata i8 0, metadata !48, metadata !DIExpression()), !dbg !67 + call void @llvm.dbg.value(metadata %struct.SVM_BLK_ST* %pCtrTable.1458, metadata !51, metadata !DIExpression()), !dbg !67 + br i1 %cmp77441, label %for.end, label %for.body79.lr.ph, !dbg !159 + +for.body79.lr.ph: + %arrayidx91 = getelementptr inbounds i32*, i32** %pRatAry, i32 %conv70463, !dbg !153 + %arrayidx176 = getelementptr inbounds i8*, i8** %pSrcAry, i32 %conv70463, !dbg !160 + %.pre = load i32, i32* @gSvmBatBufSize, align 4, !dbg !163, !tbaa !83 + br label %for.body79, !dbg !159 + +for.body79: + %23 = phi i32 [ %.pre, %for.body79.lr.ph ], [ %sub206, %if.then153 ], !dbg !163 + %conv76451 = phi i32 [ 0, %for.body79.lr.ph ], [ %conv76, %if.then153 ] + %Ret.3450 = phi i16 [ %Ret.2462, %for.body79.lr.ph ], [ 0, %if.then153 ] + %MinAdr.3448 = phi i32 [ %MinAdr.2461, %for.body79.lr.ph ], [ %spec.select, %if.then153 ] + %pDataTop.2447 = phi i8* [ %pDataTop.1460, %for.body79.lr.ph ], [ %add.ptr, %if.then153 ] + %pOutRat8.2445 = phi i8* [ %pOutRat8.1459, %for.body79.lr.ph ], [ %incdec.ptr201, %if.then153 ] + %RasCnt.0444 = phi i8 [ 0, %for.body79.lr.ph ], [ %inc, %if.then153 ] + %pCtrTable.2442 = phi %struct.SVM_BLK_ST* [ %pCtrTable.1458, %for.body79.lr.ph ], [ %incdec.ptr156, %if.then153 ] + call void @llvm.dbg.value(metadata i16 %Ret.3450, metadata !45, metadata !DIExpression()), !dbg !67 + call void @llvm.dbg.value(metadata i32 %MinAdr.3448, metadata !65, metadata !DIExpression()), !dbg !67 + call void @llvm.dbg.value(metadata i8* %pDataTop.2447, metadata !58, metadata !DIExpression()), !dbg !67 + call void @llvm.dbg.value(metadata i8* %pOutRat8.2445, metadata !57, metadata !DIExpression()), !dbg !67 + call void @llvm.dbg.value(metadata i8 %RasCnt.0444, metadata !48, metadata !DIExpression()), !dbg !67 + call void @llvm.dbg.value(metadata %struct.SVM_BLK_ST* %pCtrTable.2442, metadata !51, metadata !DIExpression()), !dbg !67 + %mul83406 = add i32 %conv76451, %mul81, !dbg !164 + %add87 = mul i32 %mul83406, %conv1, !dbg !164 + %add89 = add i32 %add87, %conv486, !dbg !165 + call void @llvm.dbg.value(metadata i32 %add89, metadata !66, metadata !DIExpression()), !dbg !67 + %24 = load i32*, i32** %arrayidx91, align 4, !dbg !166, !tbaa !77 + %mul92 = shl i32 %add89, 1, !dbg !167 + %add93 = or i32 %mul92, 1, !dbg !168 + %arrayidx94 = getelementptr inbounds i32, i32* %24, i32 %add93, !dbg !166 + %25 = bitcast i32* %arrayidx94 to i8*, !dbg !169 + call void @llvm.dbg.value(metadata i8* %25, metadata !56, metadata !DIExpression()), !dbg !67 + %26 = load i8, i8* %25, align 1, !dbg !170, !tbaa !118 + %conv96 = zext i8 %26 to i32, !dbg !170 + %shl97 = shl nuw i32 %conv96, 24, !dbg !171 + %arrayidx98 = getelementptr inbounds i8, i8* %25, i32 1, !dbg !172 + %27 = load i8, i8* %arrayidx98, align 1, !dbg !172, !tbaa !118 + %conv99 = zext i8 %27 to i32, !dbg !172 + %shl100 = shl nuw nsw i32 %conv99, 16, !dbg !173 + %add101 = or i32 %shl100, %shl97, !dbg !174 + %arrayidx102 = getelementptr inbounds i8, i8* %25, i32 2, !dbg !175 + %28 = load i8, i8* %arrayidx102, align 1, !dbg !175, !tbaa !118 + %conv103 = zext i8 %28 to i32, !dbg !175 + %shl104 = shl nuw nsw i32 %conv103, 8, !dbg !176 + %add105 = or i32 %add101, %shl104, !dbg !177 + %arrayidx106 = getelementptr inbounds i8, i8* %25, i32 3, !dbg !178 + %29 = load i8, i8* %arrayidx106, align 1, !dbg !178, !tbaa !118 + %conv107 = zext i8 %29 to i32, !dbg !178 + %add108 = or i32 %add105, %conv107, !dbg !179 + call void @llvm.dbg.value(metadata i32 %add108, metadata !60, metadata !DIExpression()), !dbg !67 + %add109 = add i32 %add108, 7, !dbg !180 + %div = and i32 %add109, -8, !dbg !181 + call void @llvm.dbg.value(metadata i32 %div, metadata !60, metadata !DIExpression()), !dbg !67 + %cmp111 = icmp ugt i32 %div, %23, !dbg !182 + br i1 %cmp111, label %if.then113, label %if.end149, !dbg !183 + +if.then113: + %30 = load i32, i32* %Sct, align 8, !dbg !184, !tbaa !185 + %call114 = call arm_aapcs_vfpcc i32 @SVMCM_IsHdd(i32 %30) #4, !dbg !186 + %cmp115 = icmp eq i32 %call114, 1, !dbg !187 + br i1 %cmp115, label %land.lhs.true, label %if.end, !dbg !188 + +land.lhs.true: + %31 = load i32, i32* %Sct, align 8, !dbg !189, !tbaa !185 + %32 = load i32, i32* %Sct118, align 8, !dbg !190, !tbaa !185 + %cmp119 = icmp eq i32 %31, %32, !dbg !191 + br i1 %cmp119, label %if.end, label %if.then121, !dbg !192 + +if.then121: + %33 = load i8*, i8** %6, align 4, !dbg !193, !tbaa !136 + %call124 = call arm_aapcs_vfpcc zeroext i16 @SVMCM_WriteSector(i32 %31, i8* %33) #4, !dbg !194 + %or408 = or i16 %call124, %Ret.3450, !dbg !195 + call void @llvm.dbg.value(metadata i16 %or408, metadata !45, metadata !DIExpression()), !dbg !67 + br label %if.end, !dbg !196 + +if.end: + %Ret.4 = phi i16 [ %or408, %if.then121 ], [ %Ret.3450, %land.lhs.true ], [ %Ret.3450, %if.then113 ], !dbg !90 + call void @llvm.dbg.value(metadata i16 %Ret.4, metadata !45, metadata !DIExpression()), !dbg !67 + %34 = load i8*, i8** @gSvmSmpHdd, align 4, !dbg !197, !tbaa !77 + %35 = load %struct.SVM_ADR_ST*, %struct.SVM_ADR_ST** %pUblWr, align 4, !dbg !198, !tbaa !77 + call void @llvm.dbg.value(metadata %struct.SVM_ADR_ST* %35, metadata !54, metadata !DIExpression()), !dbg !67 + call void @llvm.dbg.value(metadata i32* %fMemCpy, metadata !64, metadata !DIExpression(DW_OP_deref)), !dbg !67 + %call128 = call arm_aapcs_vfpcc i32 bitcast (i32 (...)* @Svm_GetBufSimple to i32 (%struct.SVM_ADR_ST*, i8*, %struct.SVM_ADR_ST*, i32*)*)(%struct.SVM_ADR_ST* nonnull %tmpcast, i8* %34, %struct.SVM_ADR_ST* %35, i32* nonnull %fMemCpy) #4, !dbg !199 + %36 = trunc i32 %call128 to i16, !dbg !200 + %conv131 = or i16 %Ret.4, %36, !dbg !200 + call void @llvm.dbg.value(metadata i16 %conv131, metadata !45, metadata !DIExpression()), !dbg !67 + %cmp133 = icmp eq i16 %conv131, 0, !dbg !201 + br i1 %cmp133, label %if.then135, label %for.inc217, !dbg !203 + +if.then135: + %37 = load %struct.SVM_ADR_ST*, %struct.SVM_ADR_ST** %pUblWr, align 4, !dbg !204, !tbaa !77 + call void @llvm.dbg.value(metadata %struct.SVM_ADR_ST* %37, metadata !54, metadata !DIExpression()), !dbg !67 + %incdec.ptr136 = getelementptr inbounds %struct.SVM_ADR_ST, %struct.SVM_ADR_ST* %37, i32 1, !dbg !204 + call void @llvm.dbg.value(metadata %struct.SVM_ADR_ST* %incdec.ptr136, metadata !54, metadata !DIExpression()), !dbg !67 + store %struct.SVM_ADR_ST* %incdec.ptr136, %struct.SVM_ADR_ST** %pUblWr, align 4, !dbg !204, !tbaa !77 + %38 = load i32, i32* %Sct, align 8, !dbg !206, !tbaa !185 + %call138 = call arm_aapcs_vfpcc i32 @SVMCM_IsHdd(i32 %38) #4, !dbg !208 + %cmp139 = icmp eq i32 %call138, 1, !dbg !209 + %39 = load i32, i32* %Adr, align 4, !dbg !210, !tbaa !136 + br i1 %cmp139, label %if.then141, label %if.else, !dbg !211 + +if.then141: + %40 = inttoptr i32 %39 to i8*, !dbg !212 + call void @llvm.dbg.value(metadata i8* %40, metadata !58, metadata !DIExpression()), !dbg !67 + br label %if.then153, !dbg !214 + +if.else: + %add144 = add i32 %39, 7, !dbg !215 + %div145 = and i32 %add144, -8, !dbg !217 + %41 = inttoptr i32 %div145 to i8*, !dbg !218 + call void @llvm.dbg.value(metadata i8* %41, metadata !58, metadata !DIExpression()), !dbg !67 + br label %if.then153 + +if.end149: + call void @llvm.dbg.value(metadata i16 %Ret.3450, metadata !45, metadata !DIExpression()), !dbg !67 + call void @llvm.dbg.value(metadata i8* %pDataTop.2447, metadata !58, metadata !DIExpression()), !dbg !67 + %cmp151 = icmp eq i16 %Ret.3450, 0, !dbg !219 + br i1 %cmp151, label %if.then153, label %for.inc217, !dbg !220 + +if.then153: + %pDataTop.3412 = phi i8* [ %pDataTop.2447, %if.end149 ], [ %41, %if.else ], [ %40, %if.then141 ] + %42 = load i32, i32* @gSvmBatOft, align 4, !dbg !221, !tbaa !83 + call void @llvm.dbg.value(metadata i32 %42, metadata !52, metadata !DIExpression(DW_OP_LLVM_fragment, 0, 32)), !dbg !67 + %43 = ptrtoint i8* %pDataTop.3412 to i32, !dbg !222 + %44 = load i32, i32* getelementptr inbounds (%struct.SVM_ADR_ST, %struct.SVM_ADR_ST* @gSvmBatBuf, i32 0, i32 1), align 4, !dbg !223, !tbaa !136 + %sub155 = sub i32 %43, %44, !dbg !224 + call void @llvm.dbg.value(metadata i32 %sub155, metadata !52, metadata !DIExpression(DW_OP_LLVM_fragment, 32, 32)), !dbg !67 + %incdec.ptr156 = getelementptr inbounds %struct.SVM_BLK_ST, %struct.SVM_BLK_ST* %pCtrTable.2442, i32 1, !dbg !225 + call void @llvm.dbg.value(metadata %struct.SVM_BLK_ST* %incdec.ptr156, metadata !51, metadata !DIExpression()), !dbg !67 + %CtrAdr.sroa.0.0..sroa_idx = getelementptr inbounds %struct.SVM_BLK_ST, %struct.SVM_BLK_ST* %pCtrTable.2442, i32 0, i32 0, !dbg !226 + store i32 %42, i32* %CtrAdr.sroa.0.0..sroa_idx, align 4, !dbg !226, !tbaa.struct !227 + %CtrAdr.sroa.4.0..sroa_idx344 = getelementptr inbounds %struct.SVM_BLK_ST, %struct.SVM_BLK_ST* %pCtrTable.2442, i32 0, i32 1, !dbg !226 + store i32 %sub155, i32* %CtrAdr.sroa.4.0..sroa_idx344, align 4, !dbg !226, !tbaa.struct !227 + %45 = load i32*, i32** %arrayidx91, align 4, !dbg !228, !tbaa !77 + %arrayidx160 = getelementptr inbounds i32, i32* %45, i32 %mul92, !dbg !228 + %46 = bitcast i32* %arrayidx160 to i8*, !dbg !229 + call void @llvm.dbg.value(metadata i8* %46, metadata !56, metadata !DIExpression()), !dbg !67 + %47 = load i8, i8* %46, align 1, !dbg !230, !tbaa !118 + %conv162 = zext i8 %47 to i32, !dbg !230 + %shl163 = shl nuw i32 %conv162, 24, !dbg !231 + %arrayidx164 = getelementptr inbounds i8, i8* %46, i32 1, !dbg !232 + %48 = load i8, i8* %arrayidx164, align 1, !dbg !232, !tbaa !118 + %conv165 = zext i8 %48 to i32, !dbg !232 + %shl166 = shl nuw nsw i32 %conv165, 16, !dbg !233 + %add167 = or i32 %shl166, %shl163, !dbg !234 + %arrayidx168 = getelementptr inbounds i8, i8* %46, i32 2, !dbg !235 + %49 = load i8, i8* %arrayidx168, align 1, !dbg !235, !tbaa !118 + %conv169 = zext i8 %49 to i32, !dbg !235 + %shl170 = shl nuw nsw i32 %conv169, 8, !dbg !236 + %add171 = or i32 %add167, %shl170, !dbg !237 + %arrayidx172 = getelementptr inbounds i8, i8* %46, i32 3, !dbg !238 + %50 = load i8, i8* %arrayidx172, align 1, !dbg !238, !tbaa !118 + %conv173 = zext i8 %50 to i32, !dbg !238 + %add174 = or i32 %add171, %conv173, !dbg !239 + call void @llvm.dbg.value(metadata i32 %add174, metadata !61, metadata !DIExpression()), !dbg !67 + %51 = load i8*, i8** %arrayidx176, align 4, !dbg !240, !tbaa !77 + %arrayidx177 = getelementptr inbounds i8, i8* %51, i32 %add174, !dbg !240 + %call178 = call arm_aapcs_vfpcc i8* @c_memcpy(i8* %pDataTop.3412, i8* %arrayidx177, i32 %div) #4, !dbg !241 + %sub179 = sub i32 %43, %shr58, !dbg !242 + call void @llvm.dbg.value(metadata i32 %sub179, metadata !61, metadata !DIExpression()), !dbg !67 + %shr180 = lshr i32 %sub179, 24, !dbg !243 + %conv181 = trunc i32 %shr180 to i8, !dbg !244 + %incdec.ptr182 = getelementptr inbounds i8, i8* %pOutRat8.2445, i32 1, !dbg !245 + call void @llvm.dbg.value(metadata i8* %incdec.ptr182, metadata !57, metadata !DIExpression()), !dbg !67 + store i8 %conv181, i8* %pOutRat8.2445, align 1, !dbg !246, !tbaa !118 + %shr183 = lshr i32 %sub179, 16, !dbg !247 + %conv185 = trunc i32 %shr183 to i8, !dbg !248 + %incdec.ptr186 = getelementptr inbounds i8, i8* %pOutRat8.2445, i32 2, !dbg !249 + call void @llvm.dbg.value(metadata i8* %incdec.ptr186, metadata !57, metadata !DIExpression()), !dbg !67 + store i8 %conv185, i8* %incdec.ptr182, align 1, !dbg !250, !tbaa !118 + %shr187 = lshr i32 %sub179, 8, !dbg !251 + %conv189 = trunc i32 %shr187 to i8, !dbg !252 + %incdec.ptr190 = getelementptr inbounds i8, i8* %pOutRat8.2445, i32 3, !dbg !253 + call void @llvm.dbg.value(metadata i8* %incdec.ptr190, metadata !57, metadata !DIExpression()), !dbg !67 + store i8 %conv189, i8* %incdec.ptr186, align 1, !dbg !254, !tbaa !118 + %conv192 = trunc i32 %sub179 to i8, !dbg !255 + %incdec.ptr193 = getelementptr inbounds i8, i8* %pOutRat8.2445, i32 4, !dbg !256 + call void @llvm.dbg.value(metadata i8* %incdec.ptr193, metadata !57, metadata !DIExpression()), !dbg !67 + store i8 %conv192, i8* %incdec.ptr190, align 1, !dbg !257, !tbaa !118 + %arrayidx194407 = getelementptr inbounds i32, i32* %arrayidx160, i32 1, !dbg !258 + %arrayidx194 = bitcast i32* %arrayidx194407 to i8*, !dbg !258 + %52 = load i8, i8* %arrayidx194, align 1, !dbg !258, !tbaa !118 + %incdec.ptr195 = getelementptr inbounds i8, i8* %pOutRat8.2445, i32 5, !dbg !259 + call void @llvm.dbg.value(metadata i8* %incdec.ptr195, metadata !57, metadata !DIExpression()), !dbg !67 + store i8 %52, i8* %incdec.ptr193, align 1, !dbg !260, !tbaa !118 + %arrayidx196 = getelementptr inbounds i8, i8* %46, i32 5, !dbg !261 + %53 = load i8, i8* %arrayidx196, align 1, !dbg !261, !tbaa !118 + %incdec.ptr197 = getelementptr inbounds i8, i8* %pOutRat8.2445, i32 6, !dbg !262 + call void @llvm.dbg.value(metadata i8* %incdec.ptr197, metadata !57, metadata !DIExpression()), !dbg !67 + store i8 %53, i8* %incdec.ptr195, align 1, !dbg !263, !tbaa !118 + %arrayidx198 = getelementptr inbounds i8, i8* %46, i32 6, !dbg !264 + %54 = load i8, i8* %arrayidx198, align 1, !dbg !264, !tbaa !118 + %incdec.ptr199 = getelementptr inbounds i8, i8* %pOutRat8.2445, i32 7, !dbg !265 + call void @llvm.dbg.value(metadata i8* %incdec.ptr199, metadata !57, metadata !DIExpression()), !dbg !67 + store i8 %54, i8* %incdec.ptr197, align 1, !dbg !266, !tbaa !118 + %arrayidx200 = getelementptr inbounds i8, i8* %46, i32 7, !dbg !267 + %55 = load i8, i8* %arrayidx200, align 1, !dbg !267, !tbaa !118 + %incdec.ptr201 = getelementptr inbounds i8, i8* %pOutRat8.2445, i32 8, !dbg !268 + call void @llvm.dbg.value(metadata i8* %incdec.ptr201, metadata !57, metadata !DIExpression()), !dbg !67 + store i8 %55, i8* %incdec.ptr199, align 1, !dbg !269, !tbaa !118 + %cmp202 = icmp ugt i32 %MinAdr.3448, %43, !dbg !270 + %spec.select = select i1 %cmp202, i32 %43, i32 %MinAdr.3448, !dbg !272 + call void @llvm.dbg.value(metadata i32 %spec.select, metadata !65, metadata !DIExpression()), !dbg !67 + %add.ptr = getelementptr inbounds i8, i8* %pDataTop.3412, i32 %div, !dbg !273 + call void @llvm.dbg.value(metadata i8* %add.ptr, metadata !58, metadata !DIExpression()), !dbg !67 + %56 = load i32, i32* @gSvmBatBufSize, align 4, !dbg !274, !tbaa !83 + %sub206 = sub i32 %56, %div, !dbg !274 + store i32 %sub206, i32* @gSvmBatBufSize, align 4, !dbg !274, !tbaa !83 + %inc = add i8 %RasCnt.0444, 1, !dbg !275 + call void @llvm.dbg.value(metadata i16 0, metadata !45, metadata !DIExpression()), !dbg !67 + call void @llvm.dbg.value(metadata i8 %inc, metadata !48, metadata !DIExpression()), !dbg !67 + %conv76 = zext i8 %inc to i32, !dbg !276 + %cmp77 = icmp ult i32 %conv76, %Line, !dbg !277 + br i1 %cmp77, label %for.body79, label %for.cond69, !dbg !159, !llvm.loop !278 + +for.end: + call void @llvm.dbg.value(metadata %struct.SVM_BLK_ST* %pCtrTable.1458, metadata !51, metadata !DIExpression()), !dbg !67 + call void @llvm.dbg.value(metadata i8* %pOutRat8.1459, metadata !57, metadata !DIExpression()), !dbg !67 + call void @llvm.dbg.value(metadata i32 %MinAdr.2461, metadata !65, metadata !DIExpression()), !dbg !67 + call void @llvm.dbg.value(metadata i16 %Ret.2462, metadata !45, metadata !DIExpression()), !dbg !67 + call void @llvm.dbg.value(metadata i8* %pDataTop.1460, metadata !58, metadata !DIExpression()), !dbg !67 + %cmp210 = icmp eq i16 %Ret.2462, 0, !dbg !280 + call void @llvm.dbg.value(metadata i8 %BufCnt.0457, metadata !49, metadata !DIExpression(DW_OP_plus_uconst, 1, DW_OP_stack_value)), !dbg !67 + br i1 %cmp210, label %for.cond69, label %for.inc217, !dbg !282 + +for.inc217: + %pCtrTable.3 = phi %struct.SVM_BLK_ST* [ %pCtrTable.0475, %for.cond69.preheader ], [ %pCtrTable.2442, %if.end ], [ %pCtrTable.2442, %if.end149 ], [ %pCtrTable.1458, %for.end ], [ %pCtrTable.2.lcssa501, %for.cond69 ], !dbg !283 + %pOutRat8.3 = phi i8* [ %pOutRat8.0477, %for.cond69.preheader ], [ %pOutRat8.2445, %if.end ], [ %pOutRat8.2445, %if.end149 ], [ %pOutRat8.1459, %for.end ], [ %pOutRat8.2.lcssa503, %for.cond69 ], !dbg !284 + %pDataTop.5 = phi i8* [ %pDataTop.0478, %for.cond69.preheader ], [ %pDataTop.2447, %if.end ], [ %pDataTop.2447, %if.end149 ], [ %pDataTop.1460, %for.end ], [ %pDataTop.2.lcssa505, %for.cond69 ], !dbg !92 + %MinAdr.5 = phi i32 [ %MinAdr.1479, %for.cond69.preheader ], [ %MinAdr.3448, %if.end ], [ %MinAdr.3448, %if.end149 ], [ %MinAdr.2461, %for.end ], [ %MinAdr.3.lcssa507, %for.cond69 ], !dbg !285 + %Ret.7 = phi i16 [ %Ret.1480, %for.cond69.preheader ], [ %Ret.3450, %if.end149 ], [ %conv131, %if.end ], [ %Ret.2462, %for.end ], [ 0, %for.cond69 ], !dbg !90 + call void @llvm.dbg.value(metadata i16 %Ret.7, metadata !45, metadata !DIExpression()), !dbg !67 + call void @llvm.dbg.value(metadata i32 %MinAdr.5, metadata !65, metadata !DIExpression()), !dbg !67 + call void @llvm.dbg.value(metadata i8* %pDataTop.5, metadata !58, metadata !DIExpression()), !dbg !67 + call void @llvm.dbg.value(metadata i8* %pOutRat8.3, metadata !57, metadata !DIExpression()), !dbg !67 + call void @llvm.dbg.value(metadata %struct.SVM_BLK_ST* %pCtrTable.3, metadata !51, metadata !DIExpression()), !dbg !67 + %indvars.iv.next = add nuw nsw i32 %indvars.iv, 1, !dbg !286 + call void @llvm.dbg.value(metadata i32 %indvars.iv.next, metadata !47, metadata !DIExpression()), !dbg !67 + %exitcond = icmp eq i32 %indvars.iv.next, %.pre16, !dbg !287 + br i1 %exitcond, label %if.end220, label %for.cond69.preheader, !dbg !148, !llvm.loop !288 + +if.end220: + call void @llvm.dbg.value(metadata i32 %MinAdr.5, metadata !65, metadata !DIExpression()), !dbg !67 + call void @llvm.dbg.value(metadata i16 %Ret.7, metadata !45, metadata !DIExpression()), !dbg !67 + call void @llvm.dbg.value(metadata i32 %MinAdr.5, metadata !65, metadata !DIExpression()), !dbg !67 + call void @llvm.dbg.value(metadata i16 %Ret.7, metadata !45, metadata !DIExpression()), !dbg !67 + call void @llvm.dbg.value(metadata i32 %MinAdr.5, metadata !65, metadata !DIExpression()), !dbg !67 + call void @llvm.dbg.value(metadata i16 %Ret.7, metadata !45, metadata !DIExpression()), !dbg !67 + call void @llvm.dbg.value(metadata i32 %MinAdr.5, metadata !65, metadata !DIExpression()), !dbg !67 + call void @llvm.dbg.value(metadata i16 %Ret.7, metadata !45, metadata !DIExpression()), !dbg !67 + call void @llvm.dbg.value(metadata i32 %MinAdr.5, metadata !65, metadata !DIExpression()), !dbg !67 + call void @llvm.dbg.value(metadata i16 %Ret.7, metadata !45, metadata !DIExpression()), !dbg !67 + call void @llvm.dbg.value(metadata i32 %MinAdr.5, metadata !65, metadata !DIExpression()), !dbg !67 + call void @llvm.dbg.value(metadata i16 %Ret.7, metadata !45, metadata !DIExpression()), !dbg !67 + call void @llvm.dbg.value(metadata i32 %MinAdr.5, metadata !65, metadata !DIExpression()), !dbg !67 + call void @llvm.dbg.value(metadata i16 %Ret.7, metadata !45, metadata !DIExpression()), !dbg !67 + call void @llvm.dbg.value(metadata i32 %MinAdr.5, metadata !65, metadata !DIExpression()), !dbg !67 + call void @llvm.dbg.value(metadata i16 %Ret.7, metadata !45, metadata !DIExpression()), !dbg !67 + call void @llvm.dbg.value(metadata i32 %MinAdr.5, metadata !65, metadata !DIExpression()), !dbg !67 + call void @llvm.dbg.value(metadata i16 %Ret.7, metadata !45, metadata !DIExpression()), !dbg !67 + call void @llvm.dbg.value(metadata i32 %MinAdr.5, metadata !65, metadata !DIExpression()), !dbg !67 + call void @llvm.dbg.value(metadata i16 %Ret.7, metadata !45, metadata !DIExpression()), !dbg !67 + call void @llvm.dbg.value(metadata i32 %MinAdr.5, metadata !65, metadata !DIExpression()), !dbg !67 + call void @llvm.dbg.value(metadata i16 %Ret.7, metadata !45, metadata !DIExpression()), !dbg !67 + call void @llvm.dbg.value(metadata i16 %Ret.7, metadata !45, metadata !DIExpression()), !dbg !67 + call void @llvm.dbg.value(metadata i32 %MinAdr.5, metadata !65, metadata !DIExpression()), !dbg !67 + call void @llvm.dbg.value(metadata i8* %20, metadata !59, metadata !DIExpression()), !dbg !67 + call void @llvm.dbg.value(metadata i8* %21, metadata !55, metadata !DIExpression()), !dbg !67 + %cmp222 = icmp eq i16 %Ret.7, 0, !dbg !290 + br i1 %cmp222, label %if.end225, label %if.else280, !dbg !292 + +if.end225: + %MinAdr.1.lcssa513 = phi i32 [ %MinAdr.5, %if.end220 ], [ %shr58, %if.then ] + %57 = load i32*, i32** %7, align 4, !dbg !293, !tbaa !136 + call void @llvm.dbg.value(metadata i32* %57, metadata !50, metadata !DIExpression()), !dbg !67 + %58 = load i32, i32* %fMemCpy, align 4, !dbg !294, !tbaa !83 + call void @llvm.dbg.value(metadata i32 %58, metadata !64, metadata !DIExpression()), !dbg !67 + %59 = load i32, i32* %57, align 4, !dbg !295, !tbaa !83 + %or227 = or i32 %58, %fNoCmpRat, !dbg !295 + %or228 = or i32 %or227, %59, !dbg !296 + store i32 %or228, i32* %57, align 4, !dbg !296, !tbaa !83 + %.fca.0.load = load i32, i32* %Sct118, align 8, !dbg !297 + %.fca.0.insert = insertvalue [2 x i32] undef, i32 %.fca.0.load, 0, !dbg !297 + %.fca.1.load = load i32, i32* %Adr226, align 4, !dbg !297 + %.fca.1.insert = insertvalue [2 x i32] %.fca.0.insert, i32 %.fca.1.load, 1, !dbg !297 + %call229 = call arm_aapcs_vfpcc i32 @Svm_IsValidAdr([2 x i32] %.fca.1.insert) #4, !dbg !297 + %cmp230 = icmp eq i32 %call229, 1, !dbg !299 + br i1 %cmp230, label %land.lhs.true232, label %if.end249, !dbg !300 + +land.lhs.true232: + %60 = load i32, i32* %Sct118, align 8, !dbg !301, !tbaa !185 + %call234 = call arm_aapcs_vfpcc i32 @SVMCM_IsHdd(i32 %60) #4, !dbg !302 + %cmp235 = icmp eq i32 %call234, 1, !dbg !303 + br i1 %cmp235, label %land.lhs.true237, label %if.end249, !dbg !304 + +land.lhs.true237: + %61 = load i32, i32* %Sct118, align 8, !dbg !305, !tbaa !185 + %62 = load i32, i32* %Sct, align 8, !dbg !306, !tbaa !185 + %cmp240 = icmp eq i32 %61, %62, !dbg !307 + br i1 %cmp240, label %if.end249, label %if.then242, !dbg !308 + +if.then242: + %63 = load i8*, i8** @gSvmTopHdd, align 4, !dbg !309, !tbaa !77 + %call244 = call arm_aapcs_vfpcc zeroext i16 @SVMCM_WriteSector(i32 %61, i8* %63) #4, !dbg !311 + call void @llvm.dbg.value(metadata i16 %call244, metadata !45, metadata !DIExpression()), !dbg !67 + br label %if.end249, !dbg !312 + +if.end249: + %Ret.9 = phi i16 [ %call244, %if.then242 ], [ 0, %land.lhs.true237 ], [ 0, %land.lhs.true232 ], [ 0, %if.end225 ], !dbg !90 + call void @llvm.dbg.value(metadata i16 %Ret.9, metadata !45, metadata !DIExpression()), !dbg !67 + %64 = load i32, i32* %fMemCpy, align 4, !dbg !313, !tbaa !83 + call void @llvm.dbg.value(metadata i32 %64, metadata !64, metadata !DIExpression()), !dbg !67 + %cmp250 = icmp eq i32 %64, 0, !dbg !315 + %cmp253 = icmp ugt i32 %shr58, %MinAdr.1.lcssa513, !dbg !316 + %or.cond = and i1 %cmp253, %cmp250, !dbg !317 + br i1 %or.cond, label %if.then255, label %for.inc264, !dbg !317 + +if.then255: + %65 = load i32, i32* %Adr226, align 4, !dbg !318, !tbaa !136 + %add257 = add i32 %65, 4, !dbg !320 + %66 = inttoptr i32 %add257 to %struct.SVM_BLK_ST*, !dbg !321 + call void @llvm.dbg.value(metadata %struct.SVM_BLK_ST* %66, metadata !51, metadata !DIExpression()), !dbg !67 + %67 = inttoptr i32 %shr to i32*, !dbg !322 + %sub262 = sub i32 %shr58, %MinAdr.1.lcssa513, !dbg !323 + call arm_aapcs_vfpcc void @Svm_ShiftRatOffset(i32* %67, %struct.SVM_BLK_ST* %66, i32 %.pre17, i32 %sub262) #4, !dbg !324 + br label %for.inc264, !dbg !325 + +for.inc264: + %inc265 = add i8 %BlkCnt.0485, 1, !dbg !326 + call void @llvm.dbg.value(metadata i16 %Ret.9, metadata !45, metadata !DIExpression()), !dbg !67 + call void @llvm.dbg.value(metadata i8 %inc265, metadata !46, metadata !DIExpression()), !dbg !67 + %conv = zext i8 %inc265 to i32, !dbg !327 + %cmp = icmp ult i32 %conv, %conv1, !dbg !88 + br i1 %cmp, label %for.body, label %for.end266, !dbg !89, !llvm.loop !328 + +for.end266: + call void @llvm.dbg.value(metadata i16 %Ret.9, metadata !45, metadata !DIExpression()), !dbg !67 + call void @llvm.dbg.value(metadata i16 %Ret.9, metadata !45, metadata !DIExpression()), !dbg !67 + call void @llvm.dbg.value(metadata i16 %Ret.9, metadata !45, metadata !DIExpression()), !dbg !67 + call void @llvm.dbg.value(metadata i16 %Ret.9, metadata !45, metadata !DIExpression()), !dbg !67 + call void @llvm.dbg.value(metadata i16 %Ret.9, metadata !45, metadata !DIExpression()), !dbg !67 + call void @llvm.dbg.value(metadata i16 %Ret.9, metadata !45, metadata !DIExpression()), !dbg !67 + call void @llvm.dbg.value(metadata i16 %Ret.9, metadata !45, metadata !DIExpression()), !dbg !67 + call void @llvm.dbg.value(metadata i16 %Ret.9, metadata !45, metadata !DIExpression()), !dbg !67 + call void @llvm.dbg.value(metadata i16 %Ret.9, metadata !45, metadata !DIExpression()), !dbg !67 + call void @llvm.dbg.value(metadata i16 %Ret.9, metadata !45, metadata !DIExpression()), !dbg !67 + call void @llvm.dbg.value(metadata i16 %Ret.9, metadata !45, metadata !DIExpression()), !dbg !67 + call void @llvm.dbg.value(metadata i16 %Ret.9, metadata !45, metadata !DIExpression()), !dbg !67 + %cmp268 = icmp eq i16 %Ret.9, 0, !dbg !330 + br i1 %cmp268, label %if.then270, label %if.else280, !dbg !332 + +if.then270: + %.pr = load i32, i32* %fMemCpy, align 4, !dbg !333, !tbaa !83 + call void @llvm.dbg.value(metadata i32 %.pr, metadata !64, metadata !DIExpression()), !dbg !67 + %cmp271 = icmp eq i32 %.pr, 0, !dbg !336 + br i1 %cmp271, label %if.then273, label %if.end278, !dbg !337 + +if.then273: + %68 = load i8*, i8** @gSvmBlockAddressTableWr, align 4, !dbg !338, !tbaa !77 + call arm_aapcs_vfpcc void @Svm_BandRatOffset(%struct.SVM_ADR_ST* %pBatTop, i8* %68, i16 zeroext %HBlockNum, i32 %.pre17) #4, !dbg !340 + br label %if.end278, !dbg !341 + +if.end278: + %69 = load i32, i32* @gSvmBatInfo, align 4, !dbg !342, !tbaa !83 + %or279 = or i32 %69, 1073741824, !dbg !342 + store i32 %or279, i32* @gSvmBatInfo, align 4, !dbg !342, !tbaa !83 + %70 = load i32, i32* %5, align 4, !dbg !343, !tbaa !77 + call void @llvm.dbg.value(metadata %struct.SVM_ADR_ST* undef, metadata !54, metadata !DIExpression()), !dbg !67 + store i32 %70, i32* bitcast (%struct.SVM_ADR_ST** @gSvmUblWr to i32*), align 4, !dbg !344, !tbaa !77 + br label %if.end281, !dbg !345 + +if.else280: + %Ret.10432 = phi i16 [ %Ret.9, %for.end266 ], [ %Ret.7, %if.end220 ], [ %call, %for.body ] + call arm_aapcs_vfpcc void @Svm_GetMemError(%struct.SVM_ADR_ST* nonnull %tmpcast404, %struct.SVM_ADR_ST* %pBatTop, i16 zeroext %HBlockNum) #4, !dbg !346 + br label %if.end281 + +if.end281: + %Ret.10431 = phi i16 [ %Ret.10432, %if.else280 ], [ 0, %if.end278 ] + %71 = load i32, i32* @gSvmDebugCmpBandCnt, align 4, !dbg !348, !tbaa !83 + %inc282 = add i32 %71, 1, !dbg !348 + store i32 %inc282, i32* @gSvmDebugCmpBandCnt, align 4, !dbg !348, !tbaa !83 + call void @llvm.lifetime.end.p0i8(i64 4, i8* nonnull %3) #4, !dbg !349 + call void @llvm.lifetime.end.p0i8(i64 8, i8* nonnull %2) #4, !dbg !349 + call void @llvm.lifetime.end.p0i8(i64 8, i8* nonnull %1) #4, !dbg !349 + call void @llvm.lifetime.end.p0i8(i64 4, i8* nonnull %0) #4, !dbg !349 + ret i16 %Ret.10431, !dbg !350 +} + +declare void @llvm.dbg.declare(metadata, metadata, metadata) #1 + +declare void @llvm.lifetime.start.p0i8(i64 immarg, i8* nocapture) #2 +declare dso_local arm_aapcs_vfpcc void @Svm_InitAdr(%struct.SVM_ADR_ST*) local_unnamed_addr #3 +declare dso_local arm_aapcs_vfpcc zeroext i16 @Svm_ChkSimpleTopBuf(i32, %struct.SVM_ADR_ST*, %struct.SVM_ADR_ST**, i32*) local_unnamed_addr #3 +declare dso_local arm_aapcs_vfpcc i32 @SVMCM_IsHdd(i32) local_unnamed_addr #3 +declare dso_local arm_aapcs_vfpcc zeroext i16 @SVMCM_WriteSector(i32, i8*) local_unnamed_addr #3 +declare dso_local arm_aapcs_vfpcc i32 @Svm_GetBufSimple(...) local_unnamed_addr #3 +declare dso_local arm_aapcs_vfpcc i8* @c_memcpy(i8*, i8*, i32) local_unnamed_addr #3 +declare dso_local arm_aapcs_vfpcc i32 @Svm_IsValidAdr([2 x i32]) local_unnamed_addr #3 +declare dso_local arm_aapcs_vfpcc void @Svm_ShiftRatOffset(i32*, %struct.SVM_BLK_ST*, i32, i32) local_unnamed_addr #3 +declare dso_local arm_aapcs_vfpcc void @Svm_BandRatOffset(%struct.SVM_ADR_ST*, i8*, i16 zeroext, i32) local_unnamed_addr #3 +declare dso_local arm_aapcs_vfpcc void @Svm_GetMemError(%struct.SVM_ADR_ST*, %struct.SVM_ADR_ST*, i16 zeroext) local_unnamed_addr #3 + +declare void @llvm.lifetime.end.p0i8(i64 immarg, i8* nocapture) #2 + +define hidden arm_aapcs_vfpcc zeroext i16 @Svm_SetNoCmpBandMulti(i8** nocapture readonly %pSrcAry, i32 %Width, i32 %Line, i32 %BlockWidth, i16 zeroext %HBlockNum, i16 zeroext %BufNum, i8 zeroext %ColorNum, %struct.SVM_ADR_ST* %pBatTop) local_unnamed_addr #0 !dbg !351 { +entry: + %pUblWr = alloca %struct.SVM_ADR_ST*, align 4 + %NowTop = alloca i64, align 8 + %tmpcast = bitcast i64* %NowTop to %struct.SVM_ADR_ST* + %BlkTop = alloca i64, align 8 + %tmpcast192 = bitcast i64* %BlkTop to %struct.SVM_ADR_ST* + %fMemCpy = alloca i32, align 4 + call void @llvm.dbg.value(metadata i8** %pSrcAry, metadata !355, metadata !DIExpression()), !dbg !380 + call void @llvm.dbg.value(metadata i32 %Width, metadata !356, metadata !DIExpression()), !dbg !380 + call void @llvm.dbg.value(metadata i32 %Line, metadata !357, metadata !DIExpression()), !dbg !380 + call void @llvm.dbg.value(metadata i32 %BlockWidth, metadata !358, metadata !DIExpression()), !dbg !380 + call void @llvm.dbg.value(metadata i16 %HBlockNum, metadata !359, metadata !DIExpression()), !dbg !380 + call void @llvm.dbg.value(metadata i16 %BufNum, metadata !360, metadata !DIExpression()), !dbg !380 + call void @llvm.dbg.value(metadata i8 %ColorNum, metadata !361, metadata !DIExpression()), !dbg !380 + call void @llvm.dbg.value(metadata %struct.SVM_ADR_ST* %pBatTop, metadata !362, metadata !DIExpression()), !dbg !380 + %0 = bitcast %struct.SVM_ADR_ST** %pUblWr to i8*, !dbg !381 + call void @llvm.lifetime.start.p0i8(i64 4, i8* nonnull %0) #4, !dbg !381 + %1 = bitcast i64* %NowTop to i8*, !dbg !382 + call void @llvm.lifetime.start.p0i8(i64 8, i8* nonnull %1) #4, !dbg !382 + call void @llvm.dbg.declare(metadata %struct.SVM_ADR_ST* %tmpcast, metadata !377, metadata !DIExpression()), !dbg !383 + %2 = bitcast i64* %BlkTop to i8*, !dbg !384 + call void @llvm.lifetime.start.p0i8(i64 8, i8* nonnull %2) #4, !dbg !384 + call void @llvm.dbg.declare(metadata %struct.SVM_ADR_ST* %tmpcast192, metadata !378, metadata !DIExpression()), !dbg !385 + %3 = bitcast i32* %fMemCpy to i8*, !dbg !386 + call void @llvm.lifetime.start.p0i8(i64 4, i8* nonnull %3) #4, !dbg !386 + call void @llvm.dbg.value(metadata i16 0, metadata !363, metadata !DIExpression()), !dbg !380 + call arm_aapcs_vfpcc void @Svm_InitAdr(%struct.SVM_ADR_ST* nonnull %tmpcast192) #4, !dbg !387 + call arm_aapcs_vfpcc void @Svm_InitAdr(%struct.SVM_ADR_ST* nonnull %tmpcast) #4, !dbg !388 + %4 = load i32, i32* bitcast (%struct.SVM_ADR_ST** @gSvmUblWr to i32*), align 4, !dbg !389, !tbaa !77 + call void @llvm.dbg.value(metadata %struct.SVM_ADR_ST* undef, metadata !372, metadata !DIExpression()), !dbg !380 + %5 = bitcast %struct.SVM_ADR_ST** %pUblWr to i32*, !dbg !390 + store i32 %4, i32* %5, align 4, !dbg !390, !tbaa !77 + call void @llvm.dbg.value(metadata i8 0, metadata !364, metadata !DIExpression()), !dbg !380 + call void @llvm.dbg.value(metadata i16 0, metadata !363, metadata !DIExpression()), !dbg !380 + %cmp247 = icmp eq i16 %HBlockNum, 0, !dbg !391 + br i1 %cmp247, label %if.then135, label %for.body.lr.ph, !dbg !394 + +for.body.lr.ph: + %conv3 = zext i16 %BufNum to i32, !dbg !395 + %conv4 = zext i8 %ColorNum to i32, !dbg !395 + %mul = shl i32 %Line, 3, !dbg !395 + %mul5 = mul i32 %mul, %conv3, !dbg !395 + %mul6 = mul i32 %mul5, %conv4, !dbg !395 + %add = or i32 %mul6, 4, !dbg !395 + %add7 = add i32 %BlockWidth, 32, !dbg !395 + %add8 = add i32 %add7, %add, !dbg !395 + %Adr = getelementptr inbounds %struct.SVM_ADR_ST, %struct.SVM_ADR_ST* %tmpcast, i32 0, i32 1, !dbg !397 + %add18 = or i32 %mul6, 3, !dbg !397 + %cmp27240 = icmp eq i16 %BufNum, 0, !dbg !400 + %cmp32228 = icmp eq i32 %Line, 0, !dbg !403 + %mul36 = mul i32 %conv4, %BlockWidth, !dbg !407 + %cmp45219 = icmp eq i8 %ColorNum, 0, !dbg !409 + %Sct = bitcast i64* %NowTop to i32*, !dbg !412 + %Sct55 = bitcast i64* %BlkTop to i32*, !dbg !412 + %6 = bitcast i32* %Adr to i8**, !dbg !417 + %7 = getelementptr inbounds %struct.SVM_ADR_ST, %struct.SVM_ADR_ST* %tmpcast192, i32 0, i32 1, !dbg !419 + br label %for.body, !dbg !394 + +for.body: + %conv249 = phi i32 [ 0, %for.body.lr.ph ], [ %conv, %for.inc129 ] + %BlkCnt.0248 = phi i8 [ 0, %for.body.lr.ph ], [ %inc130, %for.inc129 ] + call void @llvm.dbg.value(metadata i8 %BlkCnt.0248, metadata !364, metadata !DIExpression()), !dbg !380 + call void @llvm.dbg.value(metadata %struct.SVM_ADR_ST* undef, metadata !371, metadata !DIExpression()), !dbg !380 + call void @llvm.dbg.value(metadata i32 undef, metadata !375, metadata !DIExpression()), !dbg !380 + call void @llvm.dbg.value(metadata i32 %add8, metadata !375, metadata !DIExpression()), !dbg !380 + call void @llvm.dbg.value(metadata %struct.SVM_ADR_ST** %pUblWr, metadata !372, metadata !DIExpression(DW_OP_deref)), !dbg !380 + call void @llvm.dbg.value(metadata i32* %fMemCpy, metadata !379, metadata !DIExpression(DW_OP_deref)), !dbg !380 + %call = call arm_aapcs_vfpcc zeroext i16 @Svm_ChkSimpleTopBuf(i32 %add8, %struct.SVM_ADR_ST* nonnull %tmpcast, %struct.SVM_ADR_ST** nonnull %pUblWr, i32* nonnull %fMemCpy) #4, !dbg !421 + call void @llvm.dbg.value(metadata i16 %call, metadata !363, metadata !DIExpression()), !dbg !380 + %cmp10 = icmp eq i16 %call, 0, !dbg !422 + br i1 %cmp10, label %if.then, label %if.else137, !dbg !423 + +if.then: + %arrayidx = getelementptr inbounds %struct.SVM_ADR_ST, %struct.SVM_ADR_ST* %pBatTop, i32 %conv249, !dbg !424 + call void @llvm.dbg.value(metadata %struct.SVM_ADR_ST* %arrayidx, metadata !371, metadata !DIExpression()), !dbg !380 + call void @llvm.dbg.value(metadata %struct.SVM_ADR_ST* %arrayidx, metadata !371, metadata !DIExpression(DW_OP_plus_uconst, 8, DW_OP_stack_value)), !dbg !380 + %8 = bitcast %struct.SVM_ADR_ST* %arrayidx to i64*, !dbg !425 + %9 = load i64, i64* %NowTop, align 8, !dbg !425 + store i64 %9, i64* %8, align 4, !dbg !425 + store i64 %9, i64* %BlkTop, align 8, !dbg !426 + %10 = load i32, i32* %Adr, align 4, !dbg !427, !tbaa !136 + %add12 = add i32 %10, 4, !dbg !428 + call void @llvm.dbg.value(metadata i32 %add12, metadata !369, metadata !DIExpression()), !dbg !380 + call void @llvm.dbg.value(metadata i32 undef, metadata !373, metadata !DIExpression()), !dbg !380 + %add19 = add i32 %add12, %add18, !dbg !429 + %div = and i32 %add19, -4, !dbg !430 + call void @llvm.dbg.value(metadata i32 %div, metadata !373, metadata !DIExpression()), !dbg !380 + %11 = inttoptr i32 %10 to i32*, !dbg !431 + call void @llvm.dbg.value(metadata i32* %11, metadata !368, metadata !DIExpression()), !dbg !380 + store i32 0, i32* %11, align 4, !dbg !432, !tbaa !83 + call void @llvm.dbg.value(metadata i32 %div, metadata !374, metadata !DIExpression()), !dbg !380 + %12 = load i32, i32* %Adr, align 4, !dbg !433, !tbaa !136 + %13 = load i32, i32* @gSvmBatBufSize, align 4, !dbg !434, !tbaa !83 + %sub193 = sub i32 %12, %div, !dbg !434 + %sub23 = add i32 %sub193, %13, !dbg !434 + store i32 %sub23, i32* @gSvmBatBufSize, align 4, !dbg !434, !tbaa !83 + call void @llvm.dbg.value(metadata i8 0, metadata !367, metadata !DIExpression()), !dbg !380 + call void @llvm.dbg.value(metadata i32 %div, metadata !374, metadata !DIExpression()), !dbg !380 + call void @llvm.dbg.value(metadata i16 0, metadata !363, metadata !DIExpression()), !dbg !380 + call void @llvm.dbg.value(metadata i32 %add12, metadata !369, metadata !DIExpression()), !dbg !380 + br i1 %cmp27240, label %if.end107, label %for.cond30.preheader.lr.ph, !dbg !435 + +for.cond30.preheader.lr.ph: + %14 = inttoptr i32 %div to i8*, !dbg !436 + call void @llvm.dbg.value(metadata i8* %14, metadata !373, metadata !DIExpression()), !dbg !380 + call void @llvm.dbg.value(metadata i8* %14, metadata !374, metadata !DIExpression()), !dbg !380 + call void @llvm.dbg.value(metadata i8* %14, metadata !374, metadata !DIExpression()), !dbg !380 + %15 = inttoptr i32 %add12 to %struct.SVM_BLK_ST*, !dbg !437 + call void @llvm.dbg.value(metadata %struct.SVM_BLK_ST* %15, metadata !369, metadata !DIExpression()), !dbg !380 + call void @llvm.dbg.value(metadata %struct.SVM_BLK_ST* %15, metadata !369, metadata !DIExpression()), !dbg !380 + %mul38 = mul i32 %mul36, %conv249, !dbg !407 + br label %for.cond30.preheader, !dbg !435 + +for.cond30.preheader: + %conv25245 = phi i32 [ 0, %for.cond30.preheader.lr.ph ], [ %conv25, %for.inc99 ] + %pDataTop.0244 = phi i8* [ %14, %for.cond30.preheader.lr.ph ], [ %pDataTop.5, %for.inc99 ] + %Ret.1243 = phi i16 [ 0, %for.cond30.preheader.lr.ph ], [ %Ret.7, %for.inc99 ] + %pCtrTable.0242 = phi %struct.SVM_BLK_ST* [ %15, %for.cond30.preheader.lr.ph ], [ %pCtrTable.3, %for.inc99 ] + %BufCnt.0241 = phi i8 [ 0, %for.cond30.preheader.lr.ph ], [ %inc100, %for.inc99 ] + call void @llvm.dbg.value(metadata i8* %pDataTop.0244, metadata !374, metadata !DIExpression()), !dbg !380 + call void @llvm.dbg.value(metadata i16 %Ret.1243, metadata !363, metadata !DIExpression()), !dbg !380 + call void @llvm.dbg.value(metadata %struct.SVM_BLK_ST* %pCtrTable.0242, metadata !369, metadata !DIExpression()), !dbg !380 + call void @llvm.dbg.value(metadata i8 %BufCnt.0241, metadata !367, metadata !DIExpression()), !dbg !380 + call void @llvm.dbg.value(metadata i8* %pDataTop.0244, metadata !374, metadata !DIExpression()), !dbg !380 + call void @llvm.dbg.value(metadata i16 %Ret.1243, metadata !363, metadata !DIExpression()), !dbg !380 + call void @llvm.dbg.value(metadata %struct.SVM_BLK_ST* %pCtrTable.0242, metadata !369, metadata !DIExpression()), !dbg !380 + call void @llvm.dbg.value(metadata i8 0, metadata !366, metadata !DIExpression()), !dbg !380 + br i1 %cmp32228, label %for.inc99, label %for.body34.lr.ph, !dbg !438 + +for.body34.lr.ph: + %arrayidx85 = getelementptr inbounds i8*, i8** %pSrcAry, i32 %conv25245, !dbg !439 + br label %for.body34, !dbg !438 + +for.cond30: + %pDataTop.2.lcssa262 = phi i8* [ %pDataTop.1232, %for.end ], [ %add.ptr, %if.then80 ] + %pCtrTable.2.lcssa260 = phi %struct.SVM_BLK_ST* [ %pCtrTable.1230, %for.end ], [ %incdec.ptr83, %if.then80 ] + %inc97264 = add i8 %RasCnt.0229, 1, !dbg !442 + call void @llvm.dbg.value(metadata i8* %pDataTop.1232, metadata !374, metadata !DIExpression()), !dbg !380 + call void @llvm.dbg.value(metadata i16 0, metadata !363, metadata !DIExpression()), !dbg !380 + call void @llvm.dbg.value(metadata %struct.SVM_BLK_ST* %pCtrTable.1230, metadata !369, metadata !DIExpression()), !dbg !380 + call void @llvm.dbg.value(metadata i8 %RasCnt.0229, metadata !366, metadata !DIExpression(DW_OP_plus_uconst, 1, DW_OP_stack_value)), !dbg !380 + %conv31 = zext i8 %inc97264 to i32, !dbg !443 + %cmp32 = icmp ult i32 %conv31, %Line, !dbg !444 + br i1 %cmp32, label %for.body34, label %for.inc99, !dbg !438, !llvm.loop !445 + +for.body34: + %conv31233 = phi i32 [ 0, %for.body34.lr.ph ], [ %conv31, %for.cond30 ] + %pDataTop.1232 = phi i8* [ %pDataTop.0244, %for.body34.lr.ph ], [ %pDataTop.2.lcssa262, %for.cond30 ] + %Ret.2231 = phi i16 [ %Ret.1243, %for.body34.lr.ph ], [ 0, %for.cond30 ] + %pCtrTable.1230 = phi %struct.SVM_BLK_ST* [ %pCtrTable.0242, %for.body34.lr.ph ], [ %pCtrTable.2.lcssa260, %for.cond30 ] + %RasCnt.0229 = phi i8 [ 0, %for.body34.lr.ph ], [ %inc97264, %for.cond30 ] + call void @llvm.dbg.value(metadata i8* %pDataTop.1232, metadata !374, metadata !DIExpression()), !dbg !380 + call void @llvm.dbg.value(metadata i16 %Ret.2231, metadata !363, metadata !DIExpression()), !dbg !380 + call void @llvm.dbg.value(metadata %struct.SVM_BLK_ST* %pCtrTable.1230, metadata !369, metadata !DIExpression()), !dbg !380 + call void @llvm.dbg.value(metadata i8 %RasCnt.0229, metadata !366, metadata !DIExpression()), !dbg !380 + call void @llvm.dbg.value(metadata i32 undef, metadata !376, metadata !DIExpression()), !dbg !380 + call void @llvm.dbg.value(metadata i8 0, metadata !365, metadata !DIExpression()), !dbg !380 + call void @llvm.dbg.value(metadata i8* %pDataTop.1232, metadata !374, metadata !DIExpression()), !dbg !380 + call void @llvm.dbg.value(metadata i16 %Ret.2231, metadata !363, metadata !DIExpression()), !dbg !380 + call void @llvm.dbg.value(metadata %struct.SVM_BLK_ST* %pCtrTable.1230, metadata !369, metadata !DIExpression()), !dbg !380 + br i1 %cmp45219, label %for.end, label %for.body47.preheader, !dbg !447 + +for.body47.preheader: + %mul40 = mul i32 %conv31233, %Width, !dbg !448 + %add41 = add i32 %mul40, %mul38, !dbg !449 + call void @llvm.dbg.value(metadata i32 %add41, metadata !376, metadata !DIExpression()), !dbg !380 + %.pre = load i32, i32* @gSvmBatBufSize, align 4, !dbg !450, !tbaa !83 + br label %for.body47, !dbg !447 + +for.body47: + %16 = phi i32 [ %sub89, %if.then80 ], [ %.pre, %for.body47.preheader ], !dbg !450 + %Offset.0225 = phi i32 [ %add88, %if.then80 ], [ %add41, %for.body47.preheader ] + %pDataTop.2224 = phi i8* [ %add.ptr, %if.then80 ], [ %pDataTop.1232, %for.body47.preheader ] + %Ret.3223 = phi i16 [ 0, %if.then80 ], [ %Ret.2231, %for.body47.preheader ] + %ChCnt.0222 = phi i8 [ %inc, %if.then80 ], [ 0, %for.body47.preheader ] + %pCtrTable.2220 = phi %struct.SVM_BLK_ST* [ %incdec.ptr83, %if.then80 ], [ %pCtrTable.1230, %for.body47.preheader ] + call void @llvm.dbg.value(metadata i32 %Offset.0225, metadata !376, metadata !DIExpression()), !dbg !380 + call void @llvm.dbg.value(metadata i8* %pDataTop.2224, metadata !374, metadata !DIExpression()), !dbg !380 + call void @llvm.dbg.value(metadata i16 %Ret.3223, metadata !363, metadata !DIExpression()), !dbg !380 + call void @llvm.dbg.value(metadata i8 %ChCnt.0222, metadata !365, metadata !DIExpression()), !dbg !380 + call void @llvm.dbg.value(metadata %struct.SVM_BLK_ST* %pCtrTable.2220, metadata !369, metadata !DIExpression()), !dbg !380 + call void @llvm.dbg.value(metadata i32 %BlockWidth, metadata !375, metadata !DIExpression()), !dbg !380 + %cmp48 = icmp ult i32 %16, %BlockWidth, !dbg !451 + br i1 %cmp48, label %if.then50, label %if.end76, !dbg !452 + +if.then50: + %17 = load i32, i32* %Sct, align 8, !dbg !453, !tbaa !185 + %call51 = call arm_aapcs_vfpcc i32 @SVMCM_IsHdd(i32 %17) #4, !dbg !454 + %cmp52 = icmp eq i32 %call51, 1, !dbg !455 + br i1 %cmp52, label %land.lhs.true, label %if.end, !dbg !456 + +land.lhs.true: + %18 = load i32, i32* %Sct, align 8, !dbg !457, !tbaa !185 + %19 = load i32, i32* %Sct55, align 8, !dbg !458, !tbaa !185 + %cmp56 = icmp eq i32 %18, %19, !dbg !459 + br i1 %cmp56, label %if.end, label %if.then58, !dbg !460 + +if.then58: + %20 = load i8*, i8** %6, align 4, !dbg !461, !tbaa !136 + %call61 = call arm_aapcs_vfpcc zeroext i16 @SVMCM_WriteSector(i32 %18, i8* %20) #4, !dbg !462 + %or194 = or i16 %call61, %Ret.3223, !dbg !463 + call void @llvm.dbg.value(metadata i16 %or194, metadata !363, metadata !DIExpression()), !dbg !380 + br label %if.end, !dbg !464 + +if.end: + %Ret.4 = phi i16 [ %or194, %if.then58 ], [ %Ret.3223, %land.lhs.true ], [ %Ret.3223, %if.then50 ], !dbg !395 + call void @llvm.dbg.value(metadata i16 %Ret.4, metadata !363, metadata !DIExpression()), !dbg !380 + %21 = load i8*, i8** @gSvmSmpHdd, align 4, !dbg !465, !tbaa !77 + %22 = load %struct.SVM_ADR_ST*, %struct.SVM_ADR_ST** %pUblWr, align 4, !dbg !466, !tbaa !77 + call void @llvm.dbg.value(metadata %struct.SVM_ADR_ST* %22, metadata !372, metadata !DIExpression()), !dbg !380 + call void @llvm.dbg.value(metadata i32* %fMemCpy, metadata !379, metadata !DIExpression(DW_OP_deref)), !dbg !380 + %call65 = call arm_aapcs_vfpcc i32 bitcast (i32 (...)* @Svm_GetBufSimple to i32 (%struct.SVM_ADR_ST*, i8*, %struct.SVM_ADR_ST*, i32*)*)(%struct.SVM_ADR_ST* nonnull %tmpcast, i8* %21, %struct.SVM_ADR_ST* %22, i32* nonnull %fMemCpy) #4, !dbg !467 + %23 = trunc i32 %call65 to i16, !dbg !468 + %conv68 = or i16 %Ret.4, %23, !dbg !468 + call void @llvm.dbg.value(metadata i16 %conv68, metadata !363, metadata !DIExpression()), !dbg !380 + %cmp70 = icmp eq i16 %conv68, 0, !dbg !469 + br i1 %cmp70, label %if.end76.thread, label %for.inc99, !dbg !471 + +if.end76.thread: + %24 = load %struct.SVM_ADR_ST*, %struct.SVM_ADR_ST** %pUblWr, align 4, !dbg !472, !tbaa !77 + call void @llvm.dbg.value(metadata %struct.SVM_ADR_ST* %24, metadata !372, metadata !DIExpression()), !dbg !380 + %incdec.ptr73 = getelementptr inbounds %struct.SVM_ADR_ST, %struct.SVM_ADR_ST* %24, i32 1, !dbg !472 + call void @llvm.dbg.value(metadata %struct.SVM_ADR_ST* %incdec.ptr73, metadata !372, metadata !DIExpression()), !dbg !380 + store %struct.SVM_ADR_ST* %incdec.ptr73, %struct.SVM_ADR_ST** %pUblWr, align 4, !dbg !472, !tbaa !77 + %25 = load i8*, i8** %6, align 4, !dbg !474, !tbaa !136 + call void @llvm.dbg.value(metadata i8* %25, metadata !374, metadata !DIExpression()), !dbg !380 + call void @llvm.dbg.value(metadata i8* undef, metadata !374, metadata !DIExpression()), !dbg !380 + call void @llvm.dbg.value(metadata i16 undef, metadata !363, metadata !DIExpression()), !dbg !380 + br label %if.then80, !dbg !475 + +if.end76: + call void @llvm.dbg.value(metadata i8* %pDataTop.2224, metadata !374, metadata !DIExpression()), !dbg !380 + call void @llvm.dbg.value(metadata i16 %Ret.3223, metadata !363, metadata !DIExpression()), !dbg !380 + %cmp78 = icmp eq i16 %Ret.3223, 0, !dbg !476 + br i1 %cmp78, label %if.then80, label %for.inc99, !dbg !475 + +if.then80: + %pDataTop.3199 = phi i8* [ %25, %if.end76.thread ], [ %pDataTop.2224, %if.end76 ] + %26 = load i32, i32* @gSvmBatOft, align 4, !dbg !477, !tbaa !83 + call void @llvm.dbg.value(metadata i32 %26, metadata !370, metadata !DIExpression(DW_OP_LLVM_fragment, 0, 32)), !dbg !380 + %27 = ptrtoint i8* %pDataTop.3199 to i32, !dbg !478 + %28 = load i32, i32* getelementptr inbounds (%struct.SVM_ADR_ST, %struct.SVM_ADR_ST* @gSvmBatBuf, i32 0, i32 1), align 4, !dbg !479, !tbaa !136 + %sub82 = sub i32 %27, %28, !dbg !480 + call void @llvm.dbg.value(metadata i32 %sub82, metadata !370, metadata !DIExpression(DW_OP_LLVM_fragment, 32, 32)), !dbg !380 + %incdec.ptr83 = getelementptr inbounds %struct.SVM_BLK_ST, %struct.SVM_BLK_ST* %pCtrTable.2220, i32 1, !dbg !481 + call void @llvm.dbg.value(metadata %struct.SVM_BLK_ST* %incdec.ptr83, metadata !369, metadata !DIExpression()), !dbg !380 + %CtrAdr.sroa.0.0..sroa_idx = getelementptr inbounds %struct.SVM_BLK_ST, %struct.SVM_BLK_ST* %pCtrTable.2220, i32 0, i32 0, !dbg !482 + store i32 %26, i32* %CtrAdr.sroa.0.0..sroa_idx, align 4, !dbg !482, !tbaa.struct !227 + %CtrAdr.sroa.4.0..sroa_idx157 = getelementptr inbounds %struct.SVM_BLK_ST, %struct.SVM_BLK_ST* %pCtrTable.2220, i32 0, i32 1, !dbg !482 + store i32 %sub82, i32* %CtrAdr.sroa.4.0..sroa_idx157, align 4, !dbg !482, !tbaa.struct !227 + %29 = load i8*, i8** %arrayidx85, align 4, !dbg !483, !tbaa !77 + %arrayidx86 = getelementptr inbounds i8, i8* %29, i32 %Offset.0225, !dbg !483 + %call87 = call arm_aapcs_vfpcc i8* @c_memcpy(i8* %pDataTop.3199, i8* %arrayidx86, i32 %BlockWidth) #4, !dbg !484 + %add88 = add i32 %Offset.0225, %BlockWidth, !dbg !485 + call void @llvm.dbg.value(metadata i32 %add88, metadata !376, metadata !DIExpression()), !dbg !380 + %add.ptr = getelementptr inbounds i8, i8* %pDataTop.3199, i32 %BlockWidth, !dbg !486 + call void @llvm.dbg.value(metadata i8* %add.ptr, metadata !374, metadata !DIExpression()), !dbg !380 + %30 = load i32, i32* @gSvmBatBufSize, align 4, !dbg !487, !tbaa !83 + %sub89 = sub i32 %30, %BlockWidth, !dbg !487 + store i32 %sub89, i32* @gSvmBatBufSize, align 4, !dbg !487, !tbaa !83 + %inc = add nuw i8 %ChCnt.0222, 1, !dbg !488 + call void @llvm.dbg.value(metadata i16 0, metadata !363, metadata !DIExpression()), !dbg !380 + call void @llvm.dbg.value(metadata i8 %inc, metadata !365, metadata !DIExpression()), !dbg !380 + %cmp45 = icmp ult i8 %inc, %ColorNum, !dbg !489 + br i1 %cmp45, label %for.body47, label %for.cond30, !dbg !447, !llvm.loop !490 + +for.end: + call void @llvm.dbg.value(metadata %struct.SVM_BLK_ST* %pCtrTable.1230, metadata !369, metadata !DIExpression()), !dbg !380 + call void @llvm.dbg.value(metadata i8* %pDataTop.1232, metadata !374, metadata !DIExpression()), !dbg !380 + call void @llvm.dbg.value(metadata i16 %Ret.2231, metadata !363, metadata !DIExpression()), !dbg !380 + %cmp92 = icmp eq i16 %Ret.2231, 0, !dbg !492 + call void @llvm.dbg.value(metadata i8 %RasCnt.0229, metadata !366, metadata !DIExpression(DW_OP_plus_uconst, 1, DW_OP_stack_value)), !dbg !380 + br i1 %cmp92, label %for.cond30, label %for.inc99, !dbg !494 + +for.inc99: + %pCtrTable.3 = phi %struct.SVM_BLK_ST* [ %pCtrTable.0242, %for.cond30.preheader ], [ %pCtrTable.2220, %if.end ], [ %pCtrTable.2220, %if.end76 ], [ %pCtrTable.1230, %for.end ], [ %pCtrTable.2.lcssa260, %for.cond30 ], !dbg !495 + %Ret.7 = phi i16 [ %Ret.1243, %for.cond30.preheader ], [ %Ret.3223, %if.end76 ], [ %conv68, %if.end ], [ %Ret.2231, %for.end ], [ 0, %for.cond30 ], !dbg !395 + %pDataTop.5 = phi i8* [ %pDataTop.0244, %for.cond30.preheader ], [ %pDataTop.2224, %if.end ], [ %pDataTop.2224, %if.end76 ], [ %pDataTop.1232, %for.end ], [ %pDataTop.2.lcssa262, %for.cond30 ], !dbg !397 + call void @llvm.dbg.value(metadata i8* %pDataTop.5, metadata !374, metadata !DIExpression()), !dbg !380 + call void @llvm.dbg.value(metadata i16 %Ret.7, metadata !363, metadata !DIExpression()), !dbg !380 + call void @llvm.dbg.value(metadata %struct.SVM_BLK_ST* %pCtrTable.3, metadata !369, metadata !DIExpression()), !dbg !380 + %inc100 = add i8 %BufCnt.0241, 1, !dbg !496 + call void @llvm.dbg.value(metadata i8 %inc100, metadata !367, metadata !DIExpression()), !dbg !380 + %conv25 = zext i8 %inc100 to i32, !dbg !497 + %cmp27 = icmp ult i32 %conv25, %conv3, !dbg !498 + br i1 %cmp27, label %for.cond30.preheader, label %if.end102, !dbg !435, !llvm.loop !499 + +if.end102: + call void @llvm.dbg.value(metadata i16 %Ret.7, metadata !363, metadata !DIExpression()), !dbg !380 + call void @llvm.dbg.value(metadata i16 %Ret.7, metadata !363, metadata !DIExpression()), !dbg !380 + call void @llvm.dbg.value(metadata i16 %Ret.7, metadata !363, metadata !DIExpression()), !dbg !380 + call void @llvm.dbg.value(metadata i16 %Ret.7, metadata !363, metadata !DIExpression()), !dbg !380 + call void @llvm.dbg.value(metadata i16 %Ret.7, metadata !363, metadata !DIExpression()), !dbg !380 + call void @llvm.dbg.value(metadata i16 %Ret.7, metadata !363, metadata !DIExpression()), !dbg !380 + call void @llvm.dbg.value(metadata i16 %Ret.7, metadata !363, metadata !DIExpression()), !dbg !380 + call void @llvm.dbg.value(metadata i16 %Ret.7, metadata !363, metadata !DIExpression()), !dbg !380 + call void @llvm.dbg.value(metadata i16 %Ret.7, metadata !363, metadata !DIExpression()), !dbg !380 + call void @llvm.dbg.value(metadata i16 %Ret.7, metadata !363, metadata !DIExpression()), !dbg !380 + call void @llvm.dbg.value(metadata i16 %Ret.7, metadata !363, metadata !DIExpression()), !dbg !380 + call void @llvm.dbg.value(metadata i16 %Ret.7, metadata !363, metadata !DIExpression()), !dbg !380 + %cmp104 = icmp eq i16 %Ret.7, 0, !dbg !501 + br i1 %cmp104, label %if.end107, label %if.else137, !dbg !503 + +if.end107: + %.fca.0.load = load i32, i32* %Sct55, align 8, !dbg !504 + %.fca.0.insert = insertvalue [2 x i32] undef, i32 %.fca.0.load, 0, !dbg !504 + %.fca.1.load = load i32, i32* %7, align 4, !dbg !504 + %.fca.1.insert = insertvalue [2 x i32] %.fca.0.insert, i32 %.fca.1.load, 1, !dbg !504 + %call108 = call arm_aapcs_vfpcc i32 @Svm_IsValidAdr([2 x i32] %.fca.1.insert) #4, !dbg !504 + %cmp109 = icmp eq i32 %call108, 1, !dbg !505 + br i1 %cmp109, label %land.lhs.true111, label %for.inc129, !dbg !506 + +land.lhs.true111: + %31 = load i32, i32* %Sct55, align 8, !dbg !507, !tbaa !185 + %call113 = call arm_aapcs_vfpcc i32 @SVMCM_IsHdd(i32 %31) #4, !dbg !508 + %cmp114 = icmp eq i32 %call113, 1, !dbg !509 + br i1 %cmp114, label %land.lhs.true116, label %for.inc129, !dbg !510 + +land.lhs.true116: + %32 = load i32, i32* %Sct55, align 8, !dbg !511, !tbaa !185 + %33 = load i32, i32* %Sct, align 8, !dbg !512, !tbaa !185 + %cmp119 = icmp eq i32 %32, %33, !dbg !513 + br i1 %cmp119, label %for.inc129, label %if.then121, !dbg !514 + +if.then121: + %34 = load i8*, i8** @gSvmTopHdd, align 4, !dbg !515, !tbaa !77 + %call123 = call arm_aapcs_vfpcc zeroext i16 @SVMCM_WriteSector(i32 %32, i8* %34) #4, !dbg !517 + call void @llvm.dbg.value(metadata i16 %call123, metadata !363, metadata !DIExpression()), !dbg !380 + br label %for.inc129, !dbg !518 + +for.inc129: + %Ret.9 = phi i16 [ %call123, %if.then121 ], [ 0, %land.lhs.true116 ], [ 0, %land.lhs.true111 ], [ 0, %if.end107 ], !dbg !395 + call void @llvm.dbg.value(metadata i16 %Ret.9, metadata !363, metadata !DIExpression()), !dbg !380 + %inc130 = add i8 %BlkCnt.0248, 1, !dbg !519 + call void @llvm.dbg.value(metadata i8 %inc130, metadata !364, metadata !DIExpression()), !dbg !380 + %conv = zext i8 %inc130 to i32, !dbg !520 + %35 = zext i8 %inc130 to i16, !dbg !391 + %cmp = icmp ult i16 %35, %HBlockNum, !dbg !391 + br i1 %cmp, label %for.body, label %for.end131, !dbg !394, !llvm.loop !521 + +for.end131: + call void @llvm.dbg.value(metadata i16 %Ret.9, metadata !363, metadata !DIExpression()), !dbg !380 + call void @llvm.dbg.value(metadata i16 %Ret.9, metadata !363, metadata !DIExpression()), !dbg !380 + call void @llvm.dbg.value(metadata i16 %Ret.9, metadata !363, metadata !DIExpression()), !dbg !380 + call void @llvm.dbg.value(metadata i16 %Ret.9, metadata !363, metadata !DIExpression()), !dbg !380 + call void @llvm.dbg.value(metadata i16 %Ret.9, metadata !363, metadata !DIExpression()), !dbg !380 + call void @llvm.dbg.value(metadata i16 %Ret.9, metadata !363, metadata !DIExpression()), !dbg !380 + call void @llvm.dbg.value(metadata i16 %Ret.9, metadata !363, metadata !DIExpression()), !dbg !380 + call void @llvm.dbg.value(metadata i16 %Ret.9, metadata !363, metadata !DIExpression()), !dbg !380 + call void @llvm.dbg.value(metadata i16 %Ret.9, metadata !363, metadata !DIExpression()), !dbg !380 + call void @llvm.dbg.value(metadata i16 %Ret.9, metadata !363, metadata !DIExpression()), !dbg !380 + call void @llvm.dbg.value(metadata i16 %Ret.9, metadata !363, metadata !DIExpression()), !dbg !380 + call void @llvm.dbg.value(metadata i16 %Ret.9, metadata !363, metadata !DIExpression()), !dbg !380 + %cmp133 = icmp eq i16 %Ret.9, 0, !dbg !523 + br i1 %cmp133, label %for.end131.if.then135_crit_edge, label %if.else137, !dbg !525 + +for.end131.if.then135_crit_edge: + %.pre10 = load i32, i32* %5, align 4, !dbg !526, !tbaa !77 + br label %if.then135, !dbg !525 + +if.then135: + %36 = phi i32 [ %.pre10, %for.end131.if.then135_crit_edge ], [ %4, %entry ], !dbg !526 + %37 = load i32, i32* @gSvmBatInfo, align 4, !dbg !528, !tbaa !83 + %or136 = or i32 %37, 1073741824, !dbg !528 + store i32 %or136, i32* @gSvmBatInfo, align 4, !dbg !528, !tbaa !83 + call void @llvm.dbg.value(metadata %struct.SVM_ADR_ST* undef, metadata !372, metadata !DIExpression()), !dbg !380 + store i32 %36, i32* bitcast (%struct.SVM_ADR_ST** @gSvmUblWr to i32*), align 4, !dbg !529, !tbaa !77 + br label %if.end138, !dbg !530 + +if.else137: + %Ret.10212 = phi i16 [ %Ret.9, %for.end131 ], [ %Ret.7, %if.end102 ], [ %call, %for.body ] + call arm_aapcs_vfpcc void @Svm_GetMemError(%struct.SVM_ADR_ST* nonnull %tmpcast192, %struct.SVM_ADR_ST* %pBatTop, i16 zeroext %HBlockNum) #4, !dbg !531 + br label %if.end138 + +if.end138: + %Ret.10211 = phi i16 [ %Ret.10212, %if.else137 ], [ 0, %if.then135 ] + %38 = load i32, i32* @gSvmDebugNoCmpBandCnt, align 4, !dbg !533, !tbaa !83 + %inc139 = add i32 %38, 1, !dbg !533 + store i32 %inc139, i32* @gSvmDebugNoCmpBandCnt, align 4, !dbg !533, !tbaa !83 + call void @llvm.lifetime.end.p0i8(i64 4, i8* nonnull %3) #4, !dbg !534 + call void @llvm.lifetime.end.p0i8(i64 8, i8* nonnull %2) #4, !dbg !534 + call void @llvm.lifetime.end.p0i8(i64 8, i8* nonnull %1) #4, !dbg !534 + call void @llvm.lifetime.end.p0i8(i64 4, i8* nonnull %0) #4, !dbg !534 + ret i16 %Ret.10211, !dbg !535 +} + +declare void @llvm.dbg.value(metadata, metadata, metadata) #1 + +attributes #0 = { noinline nounwind "correctly-rounded-divide-sqrt-fp-math"="false" "denormal-fp-math"="preserve-sign" "disable-tail-calls"="false" "frame-pointer"="none" "less-precise-fpmad"="false" "min-legal-vector-width"="0" "no-infs-fp-math"="true" "no-jump-tables"="false" "no-nans-fp-math"="true" "no-signed-zeros-fp-math"="true" "no-trapping-math"="false" "stack-protector-buffer-size"="8" "target-cpu"="cortex-a17" "target-features"="+armv7-a,+d32,+dsp,+fp16,+fp64,+hwdiv,+hwdiv-arm,+vfp2,+vfp2sp,+vfp3,+vfp3d16,+vfp3d16sp,+vfp3sp,+vfp4,+vfp4d16,+vfp4d16sp,+vfp4sp,-aes,-crc,-crypto,-dotprod,-fp-armv8,-fp-armv8d16,-fp-armv8d16sp,-fp-armv8sp,-fp16fml,-fullfp16,-lob,-mve,-mve.fp,-neon,-ras,-sb,-sha2,-thumb-mode" "unsafe-fp-math"="false" "use-soft-float"="false" } +attributes #1 = { nounwind readnone speculatable willreturn } +attributes #2 = { argmemonly nounwind willreturn } +attributes #3 = { "correctly-rounded-divide-sqrt-fp-math"="false" "denormal-fp-math"="preserve-sign" "disable-tail-calls"="false" "frame-pointer"="none" "less-precise-fpmad"="false" "no-infs-fp-math"="true" "no-nans-fp-math"="true" "no-signed-zeros-fp-math"="true" "no-trapping-math"="false" "stack-protector-buffer-size"="8" "target-cpu"="cortex-a17" "target-features"="+armv7-a,+d32,+dsp,+fp16,+fp64,+hwdiv,+hwdiv-arm,+vfp2,+vfp2sp,+vfp3,+vfp3d16,+vfp3d16sp,+vfp3sp,+vfp4,+vfp4d16,+vfp4d16sp,+vfp4sp,-aes,-crc,-crypto,-dotprod,-fp-armv8,-fp-armv8d16,-fp-armv8d16sp,-fp-armv8sp,-fp16fml,-fullfp16,-lob,-mve,-mve.fp,-neon,-ras,-sb,-sha2,-thumb-mode" "unsafe-fp-math"="false" "use-soft-float"="false" } +attributes #4 = { nounwind } + +!llvm.dbg.cu = !{!0} +!llvm.module.flags = !{!16, !17, !18, !19, !20, !21} +!llvm.ident = !{!22} + +!0 = distinct !DICompileUnit(language: DW_LANG_C89, file: !1, producer: "Component: ARM Compiler 6.99 devbuild Tool: armclang [6aa8b000]", isOptimized: true, runtimeVersion: 0, emissionKind: FullDebug, enums: !2, retainedTypes: !3, splitDebugInlining: false, nameTableKind: None) +!1 = !DIFile(filename: "sample.c", directory: "/tmp/armclang613_sample/armclang613_sample") +!2 = !{} +!3 = !{!4, !7, !12, !15, !5} +!4 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: !5, size: 32) +!5 = !DIDerivedType(tag: DW_TAG_typedef, name: "UINT8", file: !1, line: 3, baseType: !6) +!6 = !DIBasicType(name: "unsigned char", size: 8, encoding: DW_ATE_unsigned_char) +!7 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: !8, size: 32) +!8 = !DIDerivedType(tag: DW_TAG_typedef, name: "SVM_BLK_ST", file: !1, line: 18, baseType: !9) +!9 = distinct !DICompositeType(tag: DW_TAG_structure_type, file: !1, line: 15, size: 64, elements: !10) +!10 = !{!11, !14} +!11 = !DIDerivedType(tag: DW_TAG_member, name: "Adr", scope: !9, file: !1, line: 16, baseType: !12, size: 32) +!12 = !DIDerivedType(tag: DW_TAG_typedef, name: "UINT32", file: !1, line: 5, baseType: !13) +!13 = !DIBasicType(name: "unsigned int", size: 32, encoding: DW_ATE_unsigned) +!14 = !DIDerivedType(tag: DW_TAG_member, name: "Oft", scope: !9, file: !1, line: 17, baseType: !12, size: 32, offset: 32) +!15 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: !12, size: 32) +!16 = !{i32 7, !"Dwarf Version", i32 2} +!17 = !{i32 2, !"Debug Info Version", i32 3} +!18 = !{i32 1, !"wchar_size", i32 2} +!19 = !{i32 1, !"static_rwdata", i32 1} +!20 = !{i32 1, !"enumsize_buildattr", i32 1} +!21 = !{i32 1, !"armlib_unavailable", i32 0} +!22 = !{!"Component: ARM Compiler 6.99 devbuild Tool: armclang [6aa8b000]"} +!23 = distinct !DISubprogram(name: "Svm_SetCmpBandMulti", scope: !1, file: !1, line: 55, type: !24, scopeLine: 56, flags: DIFlagPrototyped, spFlags: DISPFlagDefinition | DISPFlagOptimized, unit: !0, retainedNodes: !36) +!24 = !DISubroutineType(types: !25) +!25 = !{!26, !28, !12, !26, !26, !5, !29, !30, !12} +!26 = !DIDerivedType(tag: DW_TAG_typedef, name: "UINT16", file: !1, line: 4, baseType: !27) +!27 = !DIBasicType(name: "unsigned short", size: 16, encoding: DW_ATE_unsigned) +!28 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: !4, size: 32) +!29 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: !15, size: 32) +!30 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: !31, size: 32) +!31 = !DIDerivedType(tag: DW_TAG_typedef, name: "SVM_ADR_ST", file: !1, line: 13, baseType: !32) +!32 = distinct !DICompositeType(tag: DW_TAG_structure_type, file: !1, line: 10, size: 64, elements: !33) +!33 = !{!34, !35} +!34 = !DIDerivedType(tag: DW_TAG_member, name: "Sct", scope: !32, file: !1, line: 11, baseType: !12, size: 32) +!35 = !DIDerivedType(tag: DW_TAG_member, name: "Adr", scope: !32, file: !1, line: 12, baseType: !12, size: 32, offset: 32) +!36 = !{!37, !38, !39, !40, !41, !42, !43, !44, !45, !46, !47, !48, !49, !50, !51, !52, !53, !54, !55, !56, !57, !58, !59, !60, !61, !62, !63, !64, !65, !66} +!37 = !DILocalVariable(name: "pSrcAry", arg: 1, scope: !23, file: !1, line: 55, type: !28) +!38 = !DILocalVariable(name: "Line", arg: 2, scope: !23, file: !1, line: 55, type: !12) +!39 = !DILocalVariable(name: "HBlockNum", arg: 3, scope: !23, file: !1, line: 55, type: !26) +!40 = !DILocalVariable(name: "BufNum", arg: 4, scope: !23, file: !1, line: 55, type: !26) +!41 = !DILocalVariable(name: "ColorNum", arg: 5, scope: !23, file: !1, line: 55, type: !5) +!42 = !DILocalVariable(name: "pRatAry", arg: 6, scope: !23, file: !1, line: 55, type: !29) +!43 = !DILocalVariable(name: "pBatTop", arg: 7, scope: !23, file: !1, line: 55, type: !30) +!44 = !DILocalVariable(name: "fNoCmpRat", arg: 8, scope: !23, file: !1, line: 55, type: !12) +!45 = !DILocalVariable(name: "Ret", scope: !23, file: !1, line: 57, type: !26) +!46 = !DILocalVariable(name: "BlkCnt", scope: !23, file: !1, line: 58, type: !5) +!47 = !DILocalVariable(name: "ChCnt", scope: !23, file: !1, line: 59, type: !5) +!48 = !DILocalVariable(name: "RasCnt", scope: !23, file: !1, line: 60, type: !5) +!49 = !DILocalVariable(name: "BufCnt", scope: !23, file: !1, line: 61, type: !5) +!50 = !DILocalVariable(name: "pAdr32", scope: !23, file: !1, line: 62, type: !15) +!51 = !DILocalVariable(name: "pCtrTable", scope: !23, file: !1, line: 63, type: !7) +!52 = !DILocalVariable(name: "CtrAdr", scope: !23, file: !1, line: 64, type: !8) +!53 = !DILocalVariable(name: "pBatWr", scope: !23, file: !1, line: 65, type: !30) +!54 = !DILocalVariable(name: "pUblWr", scope: !23, file: !1, line: 66, type: !30) +!55 = !DILocalVariable(name: "pRatTop", scope: !23, file: !1, line: 67, type: !4) +!56 = !DILocalVariable(name: "pInRat8", scope: !23, file: !1, line: 68, type: !4) +!57 = !DILocalVariable(name: "pOutRat8", scope: !23, file: !1, line: 69, type: !4) +!58 = !DILocalVariable(name: "pDataTop", scope: !23, file: !1, line: 70, type: !4) +!59 = !DILocalVariable(name: "pDataBase", scope: !23, file: !1, line: 71, type: !4) +!60 = !DILocalVariable(name: "Size", scope: !23, file: !1, line: 72, type: !12) +!61 = !DILocalVariable(name: "Offset", scope: !23, file: !1, line: 73, type: !12) +!62 = !DILocalVariable(name: "NowTop", scope: !23, file: !1, line: 74, type: !31) +!63 = !DILocalVariable(name: "BlkTop", scope: !23, file: !1, line: 75, type: !31) +!64 = !DILocalVariable(name: "fMemCpy", scope: !23, file: !1, line: 76, type: !12) +!65 = !DILocalVariable(name: "MinAdr", scope: !23, file: !1, line: 77, type: !12) +!66 = !DILocalVariable(name: "RatPos", scope: !23, file: !1, line: 78, type: !12) +!67 = !DILocation(line: 0, scope: !23) +!68 = !DILocation(line: 66, column: 2, scope: !23) +!69 = !DILocation(line: 74, column: 2, scope: !23) +!70 = !DILocation(line: 74, column: 13, scope: !23) +!71 = !DILocation(line: 75, column: 2, scope: !23) +!72 = !DILocation(line: 75, column: 13, scope: !23) +!73 = !DILocation(line: 76, column: 2, scope: !23) +!74 = !DILocation(line: 82, column: 2, scope: !23) +!75 = !DILocation(line: 83, column: 2, scope: !23) +!76 = !DILocation(line: 85, column: 11, scope: !23) +!77 = !{!78, !78, i64 0} +!78 = !{!"any pointer", !79, i64 0} +!79 = !{!"omnipotent char", !80, i64 0} +!80 = !{!"Simple C/C++ TBAA"} +!81 = !DILocation(line: 85, column: 9, scope: !23) +!82 = !DILocation(line: 87, column: 10, scope: !23) +!83 = !{!84, !84, i64 0} +!84 = !{!"int", !79, i64 0} +!85 = !DILocation(line: 89, column: 23, scope: !86) +!86 = distinct !DILexicalBlock(scope: !87, file: !1, line: 89, column: 2) +!87 = distinct !DILexicalBlock(scope: !23, file: !1, line: 89, column: 2) +!88 = !DILocation(line: 89, column: 22, scope: !86) +!89 = !DILocation(line: 89, column: 2, scope: !87) +!90 = !DILocation(line: 0, scope: !91) +!91 = distinct !DILexicalBlock(scope: !86, file: !1, line: 89, column: 43) +!92 = !DILocation(line: 0, scope: !93) +!93 = distinct !DILexicalBlock(scope: !94, file: !1, line: 97, column: 23) +!94 = distinct !DILexicalBlock(scope: !91, file: !1, line: 97, column: 6) +!95 = !DILocation(line: 0, scope: !96) +!96 = distinct !DILexicalBlock(scope: !97, file: !1, line: 124, column: 5) +!97 = distinct !DILexicalBlock(scope: !93, file: !1, line: 124, column: 5) +!98 = !DILocation(line: 0, scope: !99) +!99 = distinct !DILexicalBlock(scope: !100, file: !1, line: 125, column: 6) +!100 = distinct !DILexicalBlock(scope: !101, file: !1, line: 125, column: 6) +!101 = distinct !DILexicalBlock(scope: !96, file: !1, line: 124, column: 42) +!102 = !DILocation(line: 0, scope: !103) +!103 = distinct !DILexicalBlock(scope: !104, file: !1, line: 126, column: 7) +!104 = distinct !DILexicalBlock(scope: !105, file: !1, line: 126, column: 7) +!105 = distinct !DILexicalBlock(scope: !99, file: !1, line: 125, column: 44) +!106 = !DILocation(line: 0, scope: !107) +!107 = distinct !DILexicalBlock(scope: !108, file: !1, line: 137, column: 12) +!108 = distinct !DILexicalBlock(scope: !109, file: !1, line: 134, column: 31) +!109 = distinct !DILexicalBlock(scope: !110, file: !1, line: 134, column: 11) +!110 = distinct !DILexicalBlock(scope: !103, file: !1, line: 126, column: 43) +!111 = !DILocation(line: 0, scope: !112) +!112 = distinct !DILexicalBlock(scope: !107, file: !1, line: 137, column: 70) +!113 = !DILocation(line: 94, column: 23, scope: !91) +!114 = !DILocation(line: 94, column: 40, scope: !91) +!115 = !DILocation(line: 94, column: 42, scope: !91) +!116 = !DILocation(line: 94, column: 13, scope: !91) +!117 = !DILocation(line: 95, column: 12, scope: !91) +!118 = !{!79, !79, i64 0} +!119 = !DILocation(line: 95, column: 22, scope: !91) +!120 = !DILocation(line: 95, column: 31, scope: !91) +!121 = !DILocation(line: 95, column: 41, scope: !91) +!122 = !DILocation(line: 95, column: 28, scope: !91) +!123 = !DILocation(line: 95, column: 50, scope: !91) +!124 = !DILocation(line: 95, column: 60, scope: !91) +!125 = !DILocation(line: 95, column: 47, scope: !91) +!126 = !DILocation(line: 95, column: 67, scope: !91) +!127 = !DILocation(line: 95, column: 65, scope: !91) +!128 = !DILocation(line: 95, column: 8, scope: !91) +!129 = !DILocation(line: 96, column: 9, scope: !91) +!130 = !DILocation(line: 97, column: 9, scope: !94) +!131 = !DILocation(line: 97, column: 6, scope: !91) +!132 = !DILocation(line: 91, column: 13, scope: !91) +!133 = !DILocation(line: 99, column: 16, scope: !93) +!134 = !DILocation(line: 101, column: 13, scope: !93) +!135 = !DILocation(line: 103, column: 38, scope: !93) +!136 = !{!137, !84, i64 4} +!137 = !{!"", !84, i64 0, !84, i64 4} +!138 = !DILocation(line: 103, column: 42, scope: !93) +!139 = !DILocation(line: 107, column: 42, scope: !93) +!140 = !DILocation(line: 107, column: 51, scope: !93) +!141 = !DILocation(line: 109, column: 13, scope: !93) +!142 = !DILocation(line: 110, column: 30, scope: !93) +!143 = !DILocation(line: 110, column: 12, scope: !93) +!144 = !DILocation(line: 114, column: 44, scope: !93) +!145 = !DILocation(line: 114, column: 53, scope: !93) +!146 = !DILocation(line: 122, column: 48, scope: !93) +!147 = !DILocation(line: 122, column: 19, scope: !93) +!148 = !DILocation(line: 124, column: 5, scope: !97) +!149 = !DILocation(line: 114, column: 15, scope: !93) +!150 = !DILocation(line: 107, column: 14, scope: !93) +!151 = !DILocation(line: 103, column: 16, scope: !93) +!152 = !DILocation(line: 125, column: 6, scope: !100) +!153 = !DILocation(line: 0, scope: !110) +!154 = !DILocation(line: 125, column: 41, scope: !99) +!155 = !DILocation(line: 125, column: 20, scope: !99) +!156 = !DILocation(line: 125, column: 26, scope: !99) +!157 = distinct !{!157, !152, !158} +!158 = !DILocation(line: 191, column: 6, scope: !100) +!159 = !DILocation(line: 126, column: 7, scope: !104) +!160 = !DILocation(line: 0, scope: !161) +!161 = distinct !DILexicalBlock(scope: !162, file: !1, line: 153, column: 28) +!162 = distinct !DILexicalBlock(scope: !110, file: !1, line: 153, column: 11) +!163 = !DILocation(line: 134, column: 16, scope: !109) +!164 = !DILocation(line: 128, column: 38, scope: !110) +!165 = !DILocation(line: 128, column: 57, scope: !110) +!166 = !DILocation(line: 130, column: 28, scope: !110) +!167 = !DILocation(line: 130, column: 50, scope: !110) +!168 = !DILocation(line: 130, column: 52, scope: !110) +!169 = !DILocation(line: 130, column: 18, scope: !110) +!170 = !DILocation(line: 131, column: 16, scope: !110) +!171 = !DILocation(line: 131, column: 26, scope: !110) +!172 = !DILocation(line: 131, column: 35, scope: !110) +!173 = !DILocation(line: 131, column: 45, scope: !110) +!174 = !DILocation(line: 131, column: 32, scope: !110) +!175 = !DILocation(line: 131, column: 54, scope: !110) +!176 = !DILocation(line: 131, column: 64, scope: !110) +!177 = !DILocation(line: 131, column: 51, scope: !110) +!178 = !DILocation(line: 131, column: 71, scope: !110) +!179 = !DILocation(line: 131, column: 69, scope: !110) +!180 = !DILocation(line: 132, column: 22, scope: !110) +!181 = !DILocation(line: 132, column: 29, scope: !110) +!182 = !DILocation(line: 134, column: 15, scope: !109) +!183 = !DILocation(line: 134, column: 11, scope: !110) +!184 = !DILocation(line: 137, column: 32, scope: !107) +!185 = !{!137, !84, i64 0} +!186 = !DILocation(line: 137, column: 13, scope: !107) +!187 = !DILocation(line: 137, column: 36, scope: !107) +!188 = !DILocation(line: 137, column: 43, scope: !107) +!189 = !DILocation(line: 137, column: 53, scope: !107) +!190 = !DILocation(line: 137, column: 65, scope: !107) +!191 = !DILocation(line: 137, column: 56, scope: !107) +!192 = !DILocation(line: 137, column: 12, scope: !108) +!193 = !DILocation(line: 138, column: 63, scope: !112) +!194 = !DILocation(line: 138, column: 17, scope: !112) +!195 = !DILocation(line: 138, column: 14, scope: !112) +!196 = !DILocation(line: 139, column: 9, scope: !112) +!197 = !DILocation(line: 141, column: 42, scope: !108) +!198 = !DILocation(line: 141, column: 54, scope: !108) +!199 = !DILocation(line: 141, column: 16, scope: !108) +!200 = !DILocation(line: 141, column: 13, scope: !108) +!201 = !DILocation(line: 142, column: 15, scope: !202) +!202 = distinct !DILexicalBlock(scope: !108, file: !1, line: 142, column: 12) +!203 = !DILocation(line: 142, column: 12, scope: !108) +!204 = !DILocation(line: 143, column: 16, scope: !205) +!205 = distinct !DILexicalBlock(scope: !202, file: !1, line: 142, column: 29) +!206 = !DILocation(line: 144, column: 32, scope: !207) +!207 = distinct !DILexicalBlock(scope: !205, file: !1, line: 144, column: 13) +!208 = !DILocation(line: 144, column: 13, scope: !207) +!209 = !DILocation(line: 144, column: 36, scope: !207) +!210 = !DILocation(line: 0, scope: !207) +!211 = !DILocation(line: 144, column: 13, scope: !205) +!212 = !DILocation(line: 145, column: 22, scope: !213) +!213 = distinct !DILexicalBlock(scope: !207, file: !1, line: 144, column: 43) +!214 = !DILocation(line: 146, column: 10, scope: !213) +!215 = !DILocation(line: 149, column: 44, scope: !216) +!216 = distinct !DILexicalBlock(scope: !207, file: !1, line: 147, column: 14) +!217 = !DILocation(line: 149, column: 50, scope: !216) +!218 = !DILocation(line: 149, column: 22, scope: !216) +!219 = !DILocation(line: 153, column: 14, scope: !162) +!220 = !DILocation(line: 153, column: 11, scope: !110) +!221 = !DILocation(line: 155, column: 22, scope: !161) +!222 = !DILocation(line: 156, column: 22, scope: !161) +!223 = !DILocation(line: 156, column: 52, scope: !161) +!224 = !DILocation(line: 156, column: 39, scope: !161) +!225 = !DILocation(line: 157, column: 19, scope: !161) +!226 = !DILocation(line: 157, column: 24, scope: !161) +!227 = !{i64 0, i64 4, !83, i64 4, i64 4, !83} +!228 = !DILocation(line: 159, column: 29, scope: !161) +!229 = !DILocation(line: 159, column: 19, scope: !161) +!230 = !DILocation(line: 160, column: 19, scope: !161) +!231 = !DILocation(line: 160, column: 29, scope: !161) +!232 = !DILocation(line: 160, column: 38, scope: !161) +!233 = !DILocation(line: 160, column: 48, scope: !161) +!234 = !DILocation(line: 160, column: 35, scope: !161) +!235 = !DILocation(line: 160, column: 57, scope: !161) +!236 = !DILocation(line: 160, column: 67, scope: !161) +!237 = !DILocation(line: 160, column: 54, scope: !161) +!238 = !DILocation(line: 160, column: 74, scope: !161) +!239 = !DILocation(line: 160, column: 72, scope: !161) +!240 = !DILocation(line: 162, column: 29, scope: !161) +!241 = !DILocation(line: 162, column: 9, scope: !161) +!242 = !DILocation(line: 164, column: 35, scope: !161) +!243 = !DILocation(line: 166, column: 38, scope: !161) +!244 = !DILocation(line: 166, column: 23, scope: !161) +!245 = !DILocation(line: 166, column: 18, scope: !161) +!246 = !DILocation(line: 166, column: 21, scope: !161) +!247 = !DILocation(line: 167, column: 38, scope: !161) +!248 = !DILocation(line: 167, column: 23, scope: !161) +!249 = !DILocation(line: 167, column: 18, scope: !161) +!250 = !DILocation(line: 167, column: 21, scope: !161) +!251 = !DILocation(line: 168, column: 38, scope: !161) +!252 = !DILocation(line: 168, column: 23, scope: !161) +!253 = !DILocation(line: 168, column: 18, scope: !161) +!254 = !DILocation(line: 168, column: 21, scope: !161) +!255 = !DILocation(line: 169, column: 23, scope: !161) +!256 = !DILocation(line: 169, column: 18, scope: !161) +!257 = !DILocation(line: 169, column: 21, scope: !161) +!258 = !DILocation(line: 170, column: 23, scope: !161) +!259 = !DILocation(line: 170, column: 18, scope: !161) +!260 = !DILocation(line: 170, column: 21, scope: !161) +!261 = !DILocation(line: 171, column: 23, scope: !161) +!262 = !DILocation(line: 171, column: 18, scope: !161) +!263 = !DILocation(line: 171, column: 21, scope: !161) +!264 = !DILocation(line: 172, column: 23, scope: !161) +!265 = !DILocation(line: 172, column: 18, scope: !161) +!266 = !DILocation(line: 172, column: 21, scope: !161) +!267 = !DILocation(line: 173, column: 23, scope: !161) +!268 = !DILocation(line: 173, column: 18, scope: !161) +!269 = !DILocation(line: 173, column: 21, scope: !161) +!270 = !DILocation(line: 175, column: 18, scope: !271) +!271 = distinct !DILexicalBlock(scope: !161, file: !1, line: 175, column: 12) +!272 = !DILocation(line: 175, column: 12, scope: !161) +!273 = !DILocation(line: 179, column: 18, scope: !161) +!274 = !DILocation(line: 180, column: 24, scope: !161) +!275 = !DILocation(line: 126, column: 40, scope: !103) +!276 = !DILocation(line: 126, column: 21, scope: !103) +!277 = !DILocation(line: 126, column: 27, scope: !103) +!278 = distinct !{!278, !159, !279} +!279 = !DILocation(line: 186, column: 7, scope: !104) +!280 = !DILocation(line: 187, column: 13, scope: !281) +!281 = distinct !DILexicalBlock(scope: !105, file: !1, line: 187, column: 10) +!282 = !DILocation(line: 187, column: 10, scope: !105) +!283 = !DILocation(line: 103, column: 14, scope: !93) +!284 = !DILocation(line: 120, column: 13, scope: !93) +!285 = !DILocation(line: 118, column: 11, scope: !93) +!286 = !DILocation(line: 124, column: 39, scope: !96) +!287 = !DILocation(line: 124, column: 23, scope: !96) +!288 = distinct !{!288, !148, !289} +!289 = !DILocation(line: 192, column: 5, scope: !97) +!290 = !DILocation(line: 194, column: 9, scope: !291) +!291 = distinct !DILexicalBlock(scope: !91, file: !1, line: 194, column: 6) +!292 = !DILocation(line: 194, column: 6, scope: !91) +!293 = !DILocation(line: 199, column: 29, scope: !91) +!294 = !DILocation(line: 200, column: 14, scope: !91) +!295 = !DILocation(line: 200, column: 11, scope: !91) +!296 = !DILocation(line: 202, column: 11, scope: !91) +!297 = !DILocation(line: 204, column: 7, scope: !298) +!298 = distinct !DILexicalBlock(scope: !91, file: !1, line: 204, column: 6) +!299 = !DILocation(line: 204, column: 29, scope: !298) +!300 = !DILocation(line: 204, column: 36, scope: !298) +!301 = !DILocation(line: 204, column: 58, scope: !298) +!302 = !DILocation(line: 204, column: 39, scope: !298) +!303 = !DILocation(line: 204, column: 62, scope: !298) +!304 = !DILocation(line: 204, column: 69, scope: !298) +!305 = !DILocation(line: 204, column: 79, scope: !298) +!306 = !DILocation(line: 204, column: 91, scope: !298) +!307 = !DILocation(line: 204, column: 82, scope: !298) +!308 = !DILocation(line: 204, column: 6, scope: !91) +!309 = !DILocation(line: 205, column: 41, scope: !310) +!310 = distinct !DILexicalBlock(scope: !298, file: !1, line: 204, column: 96) +!311 = !DILocation(line: 205, column: 11, scope: !310) +!312 = !DILocation(line: 206, column: 3, scope: !310) +!313 = !DILocation(line: 208, column: 7, scope: !314) +!314 = distinct !DILexicalBlock(scope: !91, file: !1, line: 208, column: 6) +!315 = !DILocation(line: 208, column: 14, scope: !314) +!316 = !DILocation(line: 208, column: 27, scope: !314) +!317 = !DILocation(line: 208, column: 18, scope: !314) +!318 = !DILocation(line: 210, column: 38, scope: !319) +!319 = distinct !DILexicalBlock(scope: !314, file: !1, line: 208, column: 47) +!320 = !DILocation(line: 210, column: 42, scope: !319) +!321 = !DILocation(line: 210, column: 16, scope: !319) +!322 = !DILocation(line: 212, column: 23, scope: !319) +!323 = !DILocation(line: 212, column: 93, scope: !319) +!324 = !DILocation(line: 212, column: 4, scope: !319) +!325 = !DILocation(line: 213, column: 3, scope: !319) +!326 = !DILocation(line: 89, column: 40, scope: !86) +!327 = !DILocation(line: 89, column: 16, scope: !86) +!328 = distinct !{!328, !89, !329} +!329 = !DILocation(line: 214, column: 2, scope: !87) +!330 = !DILocation(line: 215, column: 8, scope: !331) +!331 = distinct !DILexicalBlock(scope: !23, file: !1, line: 215, column: 5) +!332 = !DILocation(line: 215, column: 5, scope: !23) +!333 = !DILocation(line: 216, column: 6, scope: !334) +!334 = distinct !DILexicalBlock(scope: !335, file: !1, line: 216, column: 6) +!335 = distinct !DILexicalBlock(scope: !331, file: !1, line: 215, column: 22) +!336 = !DILocation(line: 216, column: 13, scope: !334) +!337 = !DILocation(line: 216, column: 6, scope: !335) +!338 = !DILocation(line: 218, column: 31, scope: !339) +!339 = distinct !DILexicalBlock(scope: !334, file: !1, line: 216, column: 17) +!340 = !DILocation(line: 218, column: 4, scope: !339) +!341 = !DILocation(line: 219, column: 3, scope: !339) +!342 = !DILocation(line: 221, column: 15, scope: !335) +!343 = !DILocation(line: 223, column: 15, scope: !335) +!344 = !DILocation(line: 223, column: 13, scope: !335) +!345 = !DILocation(line: 224, column: 2, scope: !335) +!346 = !DILocation(line: 227, column: 3, scope: !347) +!347 = distinct !DILexicalBlock(scope: !331, file: !1, line: 225, column: 6) +!348 = !DILocation(line: 230, column: 21, scope: !23) +!349 = !DILocation(line: 232, column: 1, scope: !23) +!350 = !DILocation(line: 231, column: 2, scope: !23) +!351 = distinct !DISubprogram(name: "Svm_SetNoCmpBandMulti", scope: !1, file: !1, line: 234, type: !352, scopeLine: 235, flags: DIFlagPrototyped, spFlags: DISPFlagDefinition | DISPFlagOptimized, unit: !0, retainedNodes: !354) +!352 = !DISubroutineType(types: !353) +!353 = !{!26, !28, !12, !12, !12, !26, !26, !5, !30} +!354 = !{!355, !356, !357, !358, !359, !360, !361, !362, !363, !364, !365, !366, !367, !368, !369, !370, !371, !372, !373, !374, !375, !376, !377, !378, !379} +!355 = !DILocalVariable(name: "pSrcAry", arg: 1, scope: !351, file: !1, line: 234, type: !28) +!356 = !DILocalVariable(name: "Width", arg: 2, scope: !351, file: !1, line: 234, type: !12) +!357 = !DILocalVariable(name: "Line", arg: 3, scope: !351, file: !1, line: 234, type: !12) +!358 = !DILocalVariable(name: "BlockWidth", arg: 4, scope: !351, file: !1, line: 234, type: !12) +!359 = !DILocalVariable(name: "HBlockNum", arg: 5, scope: !351, file: !1, line: 234, type: !26) +!360 = !DILocalVariable(name: "BufNum", arg: 6, scope: !351, file: !1, line: 234, type: !26) +!361 = !DILocalVariable(name: "ColorNum", arg: 7, scope: !351, file: !1, line: 234, type: !5) +!362 = !DILocalVariable(name: "pBatTop", arg: 8, scope: !351, file: !1, line: 234, type: !30) +!363 = !DILocalVariable(name: "Ret", scope: !351, file: !1, line: 236, type: !26) +!364 = !DILocalVariable(name: "BlkCnt", scope: !351, file: !1, line: 237, type: !5) +!365 = !DILocalVariable(name: "ChCnt", scope: !351, file: !1, line: 238, type: !5) +!366 = !DILocalVariable(name: "RasCnt", scope: !351, file: !1, line: 239, type: !5) +!367 = !DILocalVariable(name: "BufCnt", scope: !351, file: !1, line: 240, type: !5) +!368 = !DILocalVariable(name: "pAdr32", scope: !351, file: !1, line: 241, type: !15) +!369 = !DILocalVariable(name: "pCtrTable", scope: !351, file: !1, line: 242, type: !7) +!370 = !DILocalVariable(name: "CtrAdr", scope: !351, file: !1, line: 243, type: !8) +!371 = !DILocalVariable(name: "pBatWr", scope: !351, file: !1, line: 244, type: !30) +!372 = !DILocalVariable(name: "pUblWr", scope: !351, file: !1, line: 245, type: !30) +!373 = !DILocalVariable(name: "pRatTop", scope: !351, file: !1, line: 246, type: !4) +!374 = !DILocalVariable(name: "pDataTop", scope: !351, file: !1, line: 247, type: !4) +!375 = !DILocalVariable(name: "Size", scope: !351, file: !1, line: 248, type: !12) +!376 = !DILocalVariable(name: "Offset", scope: !351, file: !1, line: 249, type: !12) +!377 = !DILocalVariable(name: "NowTop", scope: !351, file: !1, line: 250, type: !31) +!378 = !DILocalVariable(name: "BlkTop", scope: !351, file: !1, line: 251, type: !31) +!379 = !DILocalVariable(name: "fMemCpy", scope: !351, file: !1, line: 252, type: !12) +!380 = !DILocation(line: 0, scope: !351) +!381 = !DILocation(line: 245, column: 2, scope: !351) +!382 = !DILocation(line: 250, column: 2, scope: !351) +!383 = !DILocation(line: 250, column: 13, scope: !351) +!384 = !DILocation(line: 251, column: 2, scope: !351) +!385 = !DILocation(line: 251, column: 13, scope: !351) +!386 = !DILocation(line: 252, column: 2, scope: !351) +!387 = !DILocation(line: 256, column: 2, scope: !351) +!388 = !DILocation(line: 257, column: 2, scope: !351) +!389 = !DILocation(line: 259, column: 11, scope: !351) +!390 = !DILocation(line: 259, column: 9, scope: !351) +!391 = !DILocation(line: 261, column: 22, scope: !392) +!392 = distinct !DILexicalBlock(scope: !393, file: !1, line: 261, column: 2) +!393 = distinct !DILexicalBlock(scope: !351, file: !1, line: 261, column: 2) +!394 = !DILocation(line: 261, column: 2, scope: !393) +!395 = !DILocation(line: 0, scope: !396) +!396 = distinct !DILexicalBlock(scope: !392, file: !1, line: 261, column: 43) +!397 = !DILocation(line: 0, scope: !398) +!398 = distinct !DILexicalBlock(scope: !399, file: !1, line: 269, column: 23) +!399 = distinct !DILexicalBlock(scope: !396, file: !1, line: 269, column: 6) +!400 = !DILocation(line: 0, scope: !401) +!401 = distinct !DILexicalBlock(scope: !402, file: !1, line: 288, column: 4) +!402 = distinct !DILexicalBlock(scope: !398, file: !1, line: 288, column: 4) +!403 = !DILocation(line: 0, scope: !404) +!404 = distinct !DILexicalBlock(scope: !405, file: !1, line: 289, column: 5) +!405 = distinct !DILexicalBlock(scope: !406, file: !1, line: 289, column: 5) +!406 = distinct !DILexicalBlock(scope: !401, file: !1, line: 288, column: 42) +!407 = !DILocation(line: 0, scope: !408) +!408 = distinct !DILexicalBlock(scope: !404, file: !1, line: 289, column: 41) +!409 = !DILocation(line: 0, scope: !410) +!410 = distinct !DILexicalBlock(scope: !411, file: !1, line: 292, column: 6) +!411 = distinct !DILexicalBlock(scope: !408, file: !1, line: 292, column: 6) +!412 = !DILocation(line: 0, scope: !413) +!413 = distinct !DILexicalBlock(scope: !414, file: !1, line: 299, column: 11) +!414 = distinct !DILexicalBlock(scope: !415, file: !1, line: 296, column: 30) +!415 = distinct !DILexicalBlock(scope: !416, file: !1, line: 296, column: 10) +!416 = distinct !DILexicalBlock(scope: !410, file: !1, line: 292, column: 43) +!417 = !DILocation(line: 0, scope: !418) +!418 = distinct !DILexicalBlock(scope: !413, file: !1, line: 299, column: 69) +!419 = !DILocation(line: 0, scope: !420) +!420 = distinct !DILexicalBlock(scope: !396, file: !1, line: 339, column: 6) +!421 = !DILocation(line: 268, column: 9, scope: !396) +!422 = !DILocation(line: 269, column: 9, scope: !399) +!423 = !DILocation(line: 269, column: 6, scope: !396) +!424 = !DILocation(line: 263, column: 13, scope: !396) +!425 = !DILocation(line: 271, column: 16, scope: !398) +!426 = !DILocation(line: 273, column: 13, scope: !398) +!427 = !DILocation(line: 275, column: 38, scope: !398) +!428 = !DILocation(line: 275, column: 42, scope: !398) +!429 = !DILocation(line: 279, column: 42, scope: !398) +!430 = !DILocation(line: 279, column: 49, scope: !398) +!431 = !DILocation(line: 281, column: 13, scope: !398) +!432 = !DILocation(line: 282, column: 12, scope: !398) +!433 = !DILocation(line: 286, column: 48, scope: !398) +!434 = !DILocation(line: 286, column: 19, scope: !398) +!435 = !DILocation(line: 288, column: 4, scope: !402) +!436 = !DILocation(line: 279, column: 14, scope: !398) +!437 = !DILocation(line: 275, column: 16, scope: !398) +!438 = !DILocation(line: 289, column: 5, scope: !405) +!439 = !DILocation(line: 0, scope: !440) +!440 = distinct !DILexicalBlock(scope: !441, file: !1, line: 309, column: 27) +!441 = distinct !DILexicalBlock(scope: !416, file: !1, line: 309, column: 10) +!442 = !DILocation(line: 289, column: 38, scope: !404) +!443 = !DILocation(line: 289, column: 19, scope: !404) +!444 = !DILocation(line: 289, column: 25, scope: !404) +!445 = distinct !{!445, !438, !446} +!446 = !DILocation(line: 331, column: 5, scope: !405) +!447 = !DILocation(line: 292, column: 6, scope: !411) +!448 = !DILocation(line: 291, column: 49, scope: !408) +!449 = !DILocation(line: 291, column: 42, scope: !408) +!450 = !DILocation(line: 296, column: 15, scope: !415) +!451 = !DILocation(line: 296, column: 14, scope: !415) +!452 = !DILocation(line: 296, column: 10, scope: !416) +!453 = !DILocation(line: 299, column: 31, scope: !413) +!454 = !DILocation(line: 299, column: 12, scope: !413) +!455 = !DILocation(line: 299, column: 35, scope: !413) +!456 = !DILocation(line: 299, column: 42, scope: !413) +!457 = !DILocation(line: 299, column: 52, scope: !413) +!458 = !DILocation(line: 299, column: 64, scope: !413) +!459 = !DILocation(line: 299, column: 55, scope: !413) +!460 = !DILocation(line: 299, column: 11, scope: !414) +!461 = !DILocation(line: 300, column: 62, scope: !418) +!462 = !DILocation(line: 300, column: 16, scope: !418) +!463 = !DILocation(line: 300, column: 13, scope: !418) +!464 = !DILocation(line: 301, column: 8, scope: !418) +!465 = !DILocation(line: 303, column: 41, scope: !414) +!466 = !DILocation(line: 303, column: 53, scope: !414) +!467 = !DILocation(line: 303, column: 15, scope: !414) +!468 = !DILocation(line: 303, column: 12, scope: !414) +!469 = !DILocation(line: 304, column: 14, scope: !470) +!470 = distinct !DILexicalBlock(scope: !414, file: !1, line: 304, column: 11) +!471 = !DILocation(line: 304, column: 11, scope: !414) +!472 = !DILocation(line: 305, column: 15, scope: !473) +!473 = distinct !DILexicalBlock(scope: !470, file: !1, line: 304, column: 28) +!474 = !DILocation(line: 306, column: 36, scope: !473) +!475 = !DILocation(line: 309, column: 10, scope: !416) +!476 = !DILocation(line: 309, column: 13, scope: !441) +!477 = !DILocation(line: 311, column: 21, scope: !440) +!478 = !DILocation(line: 312, column: 21, scope: !440) +!479 = !DILocation(line: 312, column: 51, scope: !440) +!480 = !DILocation(line: 312, column: 38, scope: !440) +!481 = !DILocation(line: 313, column: 18, scope: !440) +!482 = !DILocation(line: 313, column: 23, scope: !440) +!483 = !DILocation(line: 315, column: 28, scope: !440) +!484 = !DILocation(line: 315, column: 8, scope: !440) +!485 = !DILocation(line: 317, column: 15, scope: !440) +!486 = !DILocation(line: 319, column: 17, scope: !440) +!487 = !DILocation(line: 320, column: 23, scope: !440) +!488 = !DILocation(line: 292, column: 40, scope: !410) +!489 = !DILocation(line: 292, column: 24, scope: !410) +!490 = distinct !{!490, !447, !491} +!491 = !DILocation(line: 326, column: 6, scope: !411) +!492 = !DILocation(line: 327, column: 12, scope: !493) +!493 = distinct !DILexicalBlock(scope: !408, file: !1, line: 327, column: 9) +!494 = !DILocation(line: 327, column: 9, scope: !408) +!495 = !DILocation(line: 275, column: 14, scope: !398) +!496 = !DILocation(line: 288, column: 39, scope: !401) +!497 = !DILocation(line: 288, column: 18, scope: !401) +!498 = !DILocation(line: 288, column: 24, scope: !401) +!499 = distinct !{!499, !435, !500} +!500 = !DILocation(line: 332, column: 4, scope: !402) +!501 = !DILocation(line: 334, column: 9, scope: !502) +!502 = distinct !DILexicalBlock(scope: !396, file: !1, line: 334, column: 6) +!503 = !DILocation(line: 334, column: 6, scope: !396) +!504 = !DILocation(line: 339, column: 7, scope: !420) +!505 = !DILocation(line: 339, column: 29, scope: !420) +!506 = !DILocation(line: 339, column: 36, scope: !420) +!507 = !DILocation(line: 339, column: 58, scope: !420) +!508 = !DILocation(line: 339, column: 39, scope: !420) +!509 = !DILocation(line: 339, column: 62, scope: !420) +!510 = !DILocation(line: 339, column: 69, scope: !420) +!511 = !DILocation(line: 339, column: 79, scope: !420) +!512 = !DILocation(line: 339, column: 91, scope: !420) +!513 = !DILocation(line: 339, column: 82, scope: !420) +!514 = !DILocation(line: 339, column: 6, scope: !396) +!515 = !DILocation(line: 340, column: 41, scope: !516) +!516 = distinct !DILexicalBlock(scope: !420, file: !1, line: 339, column: 96) +!517 = !DILocation(line: 340, column: 11, scope: !516) +!518 = !DILocation(line: 341, column: 3, scope: !516) +!519 = !DILocation(line: 261, column: 40, scope: !392) +!520 = !DILocation(line: 261, column: 16, scope: !392) +!521 = distinct !{!521, !394, !522} +!522 = !DILocation(line: 342, column: 2, scope: !393) +!523 = !DILocation(line: 343, column: 8, scope: !524) +!524 = distinct !DILexicalBlock(scope: !351, file: !1, line: 343, column: 5) +!525 = !DILocation(line: 343, column: 5, scope: !351) +!526 = !DILocation(line: 347, column: 15, scope: !527) +!527 = distinct !DILexicalBlock(scope: !524, file: !1, line: 343, column: 22) +!528 = !DILocation(line: 345, column: 15, scope: !527) +!529 = !DILocation(line: 347, column: 13, scope: !527) +!530 = !DILocation(line: 348, column: 2, scope: !527) +!531 = !DILocation(line: 351, column: 3, scope: !532) +!532 = distinct !DILexicalBlock(scope: !524, file: !1, line: 349, column: 6) +!533 = !DILocation(line: 354, column: 23, scope: !351) +!534 = !DILocation(line: 356, column: 1, scope: !351) +!535 = !DILocation(line: 355, column: 2, scope: !351)