aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--lib/Transforms/IPO/GlobalOpt.cpp26
-rw-r--r--test/Transforms/GlobalOpt/big-memory-footprint.ll8309
2 files changed, 8331 insertions, 4 deletions
diff --git a/lib/Transforms/IPO/GlobalOpt.cpp b/lib/Transforms/IPO/GlobalOpt.cpp
index 591278fa62..54b97fabdc 100644
--- a/lib/Transforms/IPO/GlobalOpt.cpp
+++ b/lib/Transforms/IPO/GlobalOpt.cpp
@@ -36,6 +36,7 @@
#include "llvm/ADT/DenseMap.h"
#include "llvm/ADT/SmallPtrSet.h"
#include "llvm/ADT/SmallVector.h"
+#include "llvm/ADT/SetVector.h"
#include "llvm/ADT/Statistic.h"
#include "llvm/ADT/STLExtras.h"
#include <algorithm>
@@ -2398,7 +2399,8 @@ static bool isSimpleEnoughPointerToCommit(Constant *C) {
/// initializer. This returns 'Init' modified to reflect 'Val' stored into it.
/// At this point, the GEP operands of Addr [0, OpNo) have been stepped into.
static Constant *EvaluateStoreInto(Constant *Init, Constant *Val,
- ConstantExpr *Addr, unsigned OpNo) {
+ ConstantExpr *Addr, unsigned OpNo,
+ SetVector<Constant*>& Obsolete) {
// Base case of the recursion.
if (OpNo == Addr->getNumOperands()) {
assert(Val->getType() == Init->getType() && "Type mismatch!");
@@ -2415,7 +2417,9 @@ static Constant *EvaluateStoreInto(Constant *Init, Constant *Val,
ConstantInt *CU = cast<ConstantInt>(Addr->getOperand(OpNo));
unsigned Idx = CU->getZExtValue();
assert(Idx < STy->getNumElements() && "Struct index out of range!");
- Elts[Idx] = EvaluateStoreInto(Elts[Idx], Val, Addr, OpNo+1);
+ if (Elts[Idx]->getType()->isAggregateType())
+ Obsolete.insert(Elts[Idx]);
+ Elts[Idx] = EvaluateStoreInto(Elts[Idx], Val, Addr, OpNo+1, Obsolete);
// Return the modified struct.
return ConstantStruct::get(STy, Elts);
@@ -2435,8 +2439,11 @@ static Constant *EvaluateStoreInto(Constant *Init, Constant *Val,
Elts.push_back(Init->getAggregateElement(i));
assert(CI->getZExtValue() < NumElts);
+ Constant *OrigElem = Elts[CI->getZExtValue()];
+ if (OrigElem->getType()->isAggregateType())
+ Obsolete.insert(OrigElem);
Elts[CI->getZExtValue()] =
- EvaluateStoreInto(Elts[CI->getZExtValue()], Val, Addr, OpNo+1);
+ EvaluateStoreInto(OrigElem, Val, Addr, OpNo+1, Obsolete);
if (Init->getType()->isArrayTy())
return ConstantArray::get(cast<ArrayType>(InitTy), Elts);
@@ -2452,9 +2459,20 @@ static void CommitValueTo(Constant *Val, Constant *Addr) {
return;
}
+ // Collect obsolete constants created in previous CommitValueTo() invoke.
+ SetVector<Constant*> Obsolete;
ConstantExpr *CE = cast<ConstantExpr>(Addr);
GlobalVariable *GV = cast<GlobalVariable>(CE->getOperand(0));
- GV->setInitializer(EvaluateStoreInto(GV->getInitializer(), Val, CE, 2));
+ Constant *OrigInit = GV->getInitializer();
+ if (OrigInit->getType()->isAggregateType())
+ Obsolete.insert(OrigInit);
+ Constant *Init = EvaluateStoreInto(OrigInit, Val, CE, 2, Obsolete);
+ GV->setInitializer(Init);
+
+ for (unsigned i = 0; i < Obsolete.size(); ++i) {
+ if (Obsolete[i]->use_empty())
+ Obsolete[i]->destroyConstant();
+ }
}
namespace {
diff --git a/test/Transforms/GlobalOpt/big-memory-footprint.ll b/test/Transforms/GlobalOpt/big-memory-footprint.ll
new file mode 100644
index 0000000000..ebde180b11
--- /dev/null
+++ b/test/Transforms/GlobalOpt/big-memory-footprint.ll
@@ -0,0 +1,8309 @@
+; RUN: opt < %s -globalopt -disable-output
+target datalayout = "e-p:64:64:64-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:64:64-f32:32:32-f64:64:64-v64:64:64-v128:128:128-a0:0:64-s0:64:64-f80:128:128-n8:16:32:64-S128"
+target triple = "x86_64-unknown-linux-gnu"
+
+%struct.B = type { %struct.A, i32, i32 }
+%struct.A = type { %struct.A3 }
+%struct.A3 = type { %struct.A2, i32 }
+%struct.A2 = type { %struct.A20 }
+%struct.A20 = type { %struct.A1, i32 }
+%struct.A1 = type { %struct.A0 }
+%struct.A0 = type { i32 }
+
+@ROM = global [4 x [2048 x %struct.B]] zeroinitializer, align 16
+@llvm.global_ctors = appending global [1 x { i32, void ()* }] [{ i32, void ()* } { i32 65535, void ()* @_GLOBAL__I_a }]
+
+define internal void @__cxx_global_var_init() section ".text.startup" {
+entry:
+ call void @_ZN1BC1Eiiiii(%struct.B* getelementptr inbounds ([4 x [2048 x %struct.B]]* @ROM, i64 0, i64 0, i64 0), i32 0, i32 0, i32 0, i32 0, i32 0)
+ call void @_ZN1BC1Eiiiii(%struct.B* getelementptr inbounds ([4 x [2048 x %struct.B]]* @ROM, i64 0, i64 0, i64 1), i32 0, i32 1, i32 0, i32 0, i32 1)
+ call void @_ZN1BC1Eiiiii(%struct.B* getelementptr inbounds ([4 x [2048 x %struct.B]]* @ROM, i64 0, i64 0, i64 2), i32 0, i32 2, i32 0, i32 0, i32 2)
+ call void @_ZN1BC1Eiiiii(%struct.B* getelementptr inbounds ([4 x [2048 x %struct.B]]* @ROM, i64 0, i64 0, i64 3), i32 0, i32 3, i32 0, i32 0, i32 3)
+ call void @_ZN1BC1Eiiiii(%struct.B* getelementptr inbounds ([4 x [2048 x %struct.B]]* @ROM, i64 0, i64 0, i64 4), i32 0, i32 4, i32 0, i32 0, i32 4)
+ call void @_ZN1BC1Eiiiii(%struct.B* getelementptr inbounds ([4 x [2048 x %struct.B]]* @ROM, i64 0, i64 0, i64 5), i32 0, i32 5, i32 0, i32 0, i32 5)
+ call void @_ZN1BC1Eiiiii(%struct.B* getelementptr inbounds ([4 x [2048 x %struct.B]]* @ROM, i64 0, i64 0, i64 6), i32 0, i32 6, i32 0, i32 0, i32 6)
+ call void @_ZN1BC1Eiiiii(%struct.B* getelementptr inbounds ([4 x [2048 x %struct.B]]* @ROM, i64 0, i64 0, i64 7), i32 0, i32 7, i32 0, i32 0, i32 7)
+ call void @_ZN1BC1Eiiiii(%struct.B* getelementptr inbounds ([4 x [2048 x %struct.B]]* @ROM, i64 0, i64 0, i64 8), i32 0, i32 8, i32 0, i32 0, i32 8)
+ call void @_ZN1BC1Eiiiii(%struct.B* getelementptr inbounds ([4 x [2048 x %struct.B]]* @ROM, i64 0, i64 0, i64 9), i32 0, i32 9, i32 0, i32 0, i32 9)
+ call void @_ZN1BC1Eiiiii(%struct.B* getelementptr inbounds ([4 x [2048 x %struct.B]]* @ROM, i64 0, i64 0, i64 10), i32 0, i32 10, i32 0, i32 0, i32 10)
+ call void @_ZN1BC1Eiiiii(%struct.B* getelementptr inbounds ([4 x [2048 x %struct.B]]* @ROM, i64 0, i64 0, i64 11), i32 0, i32 11, i32 0, i32 0, i32 11)
+ call void @_ZN1BC1Eiiiii(%struct.B* getelementptr inbounds ([4 x [2048 x %struct.B]]* @ROM, i64 0, i64 0, i64 12), i32 0, i32 12, i32 0, i32 0, i32 12)
+ call void @_ZN1BC1Eiiiii(%struct.B* getelementptr inbounds ([4 x [2048 x %struct.B]]* @ROM, i64 0, i64 0, i64 13), i32 0, i32 13, i32 0, i32 0, i32 13)
+ call void @_ZN1BC1Eiiiii(%struct.B* getelementptr inbounds ([4 x [2048 x %struct.B]]* @ROM, i64 0, i64 0, i64 14), i32 0, i32 14, i32 0, i32 0, i32 14)
+ call void @_ZN1BC1Eiiiii(%struct.B* getelementptr inbounds ([4 x [2048 x %struct.B]]* @ROM, i64 0, i64 0, i64 15), i32 0, i32 15, i32 0, i32 0, i32 15)
+ call void @_ZN1BC1Eiiiii(%struct.B* getelementptr inbounds ([4 x [2048 x %struct.B]]* @ROM, i64 0, i64 0, i64 16), i32 0, i32 16, i32 0, i32 0, i32 16)
+ call void @_ZN1BC1Eiiiii(%struct.B* getelementptr inbounds ([4 x [2048 x %struct.B]]* @ROM, i64 0, i64 0, i64 17), i32 0, i32 17, i32 0, i32 0, i32 17)
+ call void @_ZN1BC1Eiiiii(%struct.B* getelementptr inbounds ([4 x [2048 x %struct.B]]* @ROM, i64 0, i64 0, i64 18), i32 0, i32 18, i32 0, i32 0, i32 18)
+ call void @_ZN1BC1Eiiiii(%struct.B* getelementptr inbounds ([4 x [2048 x %struct.B]]* @ROM, i64 0, i64 0, i64 19), i32 0, i32 19, i32 0, i32 0, i32 19)
+ call void @_ZN1BC1Eiiiii(%struct.B* getelementptr inbounds ([4 x [2048 x %struct.B]]* @ROM, i64 0, i64 0, i64 20), i32 0, i32 20, i32 0, i32 0, i32 20)
+ call void @_ZN1BC1Eiiiii(%struct.B* getelementptr inbounds ([4 x [2048 x %struct.B]]* @ROM, i64 0, i64 0, i64 21), i32 0, i32 21, i32 0, i32 0, i32 21)
+ call void @_ZN1BC1Eiiiii(%struct.B* getelementptr inbounds ([4 x [2048 x %struct.B]]* @ROM, i64 0, i64 0, i64 22), i32 0, i32 22, i32 0, i32 0, i32 22)
+ call void @_ZN1BC1Eiiiii(%struct.B* getelementptr inbounds ([4 x [2048 x %struct.B]]* @ROM, i64 0, i64 0, i64 23), i32 0, i32 23, i32 0, i32 0, i32 23)
+ call void @_ZN1BC1Eiiiii(%struct.B* getelementptr inbounds ([4 x [2048 x %struct.B]]* @ROM, i64 0, i64 0, i64 24), i32 0, i32 24, i32 0, i32 0, i32 24)
+ call void @_ZN1BC1Eiiiii(%struct.B* getelementptr inbounds ([4 x [2048 x %struct.B]]* @ROM, i64 0, i64 0, i64 25), i32 0, i32 25, i32 0, i32 0, i32 25)
+ call void @_ZN1BC1Eiiiii(%struct.B* getelementptr inbounds ([4 x [2048 x %struct.B]]* @ROM, i64 0, i64 0, i64 26), i32 0, i32 26, i32 0, i32 0, i32 26)
+ call void @_ZN1BC1Eiiiii(%struct.B* getelementptr inbounds ([4 x [2048 x %struct.B]]* @ROM, i64 0, i64 0, i64 27), i32 0, i32 27, i32 0, i32 0, i32 27)
+ call void @_ZN1BC1Eiiiii(%struct.B* getelementptr inbounds ([4 x [2048 x %struct.B]]* @ROM, i64 0, i64 0, i64 28), i32 0, i32 28, i32 0, i32 0, i32 28)
+ call void @_ZN1BC1Eiiiii(%struct.B* getelementptr inbounds ([4 x [2048 x %struct.B]]* @ROM, i64 0, i64 0, i64 29), i32 0, i32 29, i32 0, i32 0, i32 29)
+ call void @_ZN1BC1Eiiiii(%struct.B* getelementptr inbounds ([4 x [2048 x %struct.B]]* @ROM, i64 0, i64 0, i64 30), i32 0, i32 30, i32 0, i32 0, i32 30)
+ call void @_ZN1BC1Eiiiii(%struct.B* getelementptr inbounds ([4 x [2048 x %struct.B]]* @ROM, i64 0, i64 0, i64 31), i32 0, i32 31, i32 0, i32 0, i32 31)
+ call void @_ZN1BC1Eiiiii(%struct.B* getelementptr inbounds ([4 x [2048 x %struct.B]]* @ROM, i64 0, i64 0, i64 32), i32 0, i32 32, i32 0, i32 0, i32 32)
+ call void @_ZN1BC1Eiiiii(%struct.B* getelementptr inbounds ([4 x [2048 x %struct.B]]* @ROM, i64 0, i64 0, i64 33), i32 0, i32 33, i32 0, i32 0, i32 33)
+ call void @_ZN1BC1Eiiiii(%struct.B* getelementptr inbounds ([4 x [2048 x %struct.B]]* @ROM, i64 0, i64 0, i64 34), i32 0, i32 34, i32 0, i32 0, i32 34)
+ call void @_ZN1BC1Eiiiii(%struct.B* getelementptr inbounds ([4 x [2048 x %struct.B]]* @ROM, i64 0, i64 0, i64 35), i32 0, i32 35, i32 0, i32 0, i32 35)
+ call void @_ZN1BC1Eiiiii(%struct.B* getelementptr inbounds ([4 x [2048 x %struct.B]]* @ROM, i64 0, i64 0, i64 36), i32 0, i32 36, i32 0, i32 0, i32 36)
+ call void @_ZN1BC1Eiiiii(%struct.B* getelementptr inbounds ([4 x [2048 x %struct.B]]* @ROM, i64 0, i64 0, i64 37), i32 0, i32 37, i32 0, i32 0, i32 37)
+ call void @_ZN1BC1Eiiiii(%struct.B* getelementptr inbounds ([4 x [2048 x %struct.B]]* @ROM, i64 0, i64 0, i64 38), i32 0, i32 38, i32 0, i32 0, i32 38)
+ call void @_ZN1BC1Eiiiii(%struct.B* getelementptr inbounds ([4 x [2048 x %struct.B]]* @ROM, i64 0, i64 0, i64 39), i32 0, i32 39, i32 0, i32 0, i32 39)
+ call void @_ZN1BC1Eiiiii(%struct.B* getelementptr inbounds ([4 x [2048 x %struct.B]]* @ROM, i64 0, i64 0, i64 40), i32 0, i32 40, i32 0, i32 0, i32 40)
+ call void @_ZN1BC1Eiiiii(%struct.B* getelementptr inbounds ([4 x [2048 x %struct.B]]* @ROM, i64 0, i64 0, i64 41), i32 0, i32 41, i32 0, i32 0, i32 41)
+ call void @_ZN1BC1Eiiiii(%struct.B* getelementptr inbounds ([4 x [2048 x %struct.B]]* @ROM, i64 0, i64 0, i64 42), i32 0, i32 42, i32 0, i32 0, i32 42)
+ call void @_ZN1BC1Eiiiii(%struct.B* getelementptr inbounds ([4 x [2048 x %struct.B]]* @ROM, i64 0, i64 0, i64 43), i32 0, i32 43, i32 0, i32 0, i32 43)
+ call void @_ZN1BC1Eiiiii(%struct.B* getelementptr inbounds ([4 x [2048 x %struct.B]]* @ROM, i64 0, i64 0, i64 44), i32 0, i32 44, i32 0, i32 0, i32 44)
+ call void @_ZN1BC1Eiiiii(%struct.B* getelementptr inbounds ([4 x [2048 x %struct.B]]* @ROM, i64 0, i64 0, i64 45), i32 0, i32 45, i32 0, i32 0, i32 45)
+ call void @_ZN1BC1Eiiiii(%struct.B* getelementptr inbounds ([4 x [2048 x %struct.B]]* @ROM, i64 0, i64 0, i64 46), i32 0, i32 46, i32 0, i32 0, i32 46)
+ call void @_ZN1BC1Eiiiii(%struct.B* getelementptr inbounds ([4 x [2048 x %struct.B]]* @ROM, i64 0, i64 0, i64 47), i32 0, i32 47, i32 0, i32 0, i32 47)
+ call void @_ZN1BC1Eiiiii(%struct.B* getelementptr inbounds ([4 x [2048 x %struct.B]]* @ROM, i64 0, i64 0, i64 48), i32 0, i32 48, i32 0, i32 0, i32 48)
+ call void @_ZN1BC1Eiiiii(%struct.B* getelementptr inbounds ([4 x [2048 x %struct.B]]* @ROM, i64 0, i64 0, i64 49), i32 0, i32 49, i32 0, i32 0, i32 49)
+ call void @_ZN1BC1Eiiiii(%struct.B* getelementptr inbounds ([4 x [2048 x %struct.B]]* @ROM, i64 0, i64 0, i64 50), i32 0, i32 50, i32 0, i32 0, i32 50)
+ call void @_ZN1BC1Eiiiii(%struct.B* getelementptr inbounds ([4 x [2048 x %struct.B]]* @ROM, i64 0, i64 0, i64 51), i32 0, i32 51, i32 0, i32 0, i32 51)
+ call void @_ZN1BC1Eiiiii(%struct.B* getelementptr inbounds ([4 x [2048 x %struct.B]]* @ROM, i64 0, i64 0, i64 52), i32 0, i32 52, i32 0, i32 0, i32 52)
+ call void @_ZN1BC1Eiiiii(%struct.B* getelementptr inbounds ([4 x [2048 x %struct.B]]* @ROM, i64 0, i64 0, i64 53), i32 0, i32 53, i32 0, i32 0, i32 53)
+ call void @_ZN1BC1Eiiiii(%struct.B* getelementptr inbounds ([4 x [2048 x %struct.B]]* @ROM, i64 0, i64 0, i64 54), i32 0, i32 54, i32 0, i32 0, i32 54)
+ call void @_ZN1BC1Eiiiii(%struct.B* getelementptr inbounds ([4 x [2048 x %struct.B]]* @ROM, i64 0, i64 0, i64 55), i32 0, i32 55, i32 0, i32 0, i32 55)
+ call void @_ZN1BC1Eiiiii(%struct.B* getelementptr inbounds ([4 x [2048 x %struct.B]]* @ROM, i64 0, i64 0, i64 56), i32 0, i32 56, i32 0, i32 0, i32 56)
+ call void @_ZN1BC1Eiiiii(%struct.B* getelementptr inbounds ([4 x [2048 x %struct.B]]* @ROM, i64 0, i64 0, i64 57), i32 0, i32 57, i32 0, i32 0, i32 57)
+ call void @_ZN1BC1Eiiiii(%struct.B* getelementptr inbounds ([4 x [2048 x %struct.B]]* @ROM, i64 0, i64 0, i64 58), i32 0, i32 58, i32 0, i32 0, i32 58)
+ call void @_ZN1BC1Eiiiii(%struct.B* getelementptr inbounds ([4 x [2048 x %struct.B]]* @ROM, i64 0, i64 0, i64 59), i32 0, i32 59, i32 0, i32 0, i32 59)
+ call void @_ZN1BC1Eiiiii(%struct.B* getelementptr inbounds ([4 x [2048 x %struct.B]]* @ROM, i64 0, i64 0, i64 60), i32 0, i32 60, i32 0, i32 0, i32 60)
+ call void @_ZN1BC1Eiiiii(%struct.B* getelementptr inbounds ([4 x [2048 x %struct.B]]* @ROM, i64 0, i64 0, i64 61), i32 0, i32 61, i32 0, i32 0, i32 61)
+ call void @_ZN1BC1Eiiiii(%struct.B* getelementptr inbounds ([4 x [2048 x %struct.B]]* @ROM, i64 0, i64 0, i64 62), i32 0, i32 62, i32 0, i32 0, i32 62)
+ call void @_ZN1BC1Eiiiii(%struct.B* getelementptr inbounds ([4 x [2048 x %struct.B]]* @ROM, i64 0, i64 0, i64 63), i32 0, i32 63, i32 0, i32 0, i32 63)
+ call void @_ZN1BC1Eiiiii(%struct.B* getelementptr inbounds ([4 x [2048 x %struct.B]]* @ROM, i64 0, i64 0, i64 64), i32 0, i32 64, i32 0, i32 0, i32 64)
+ call void @_ZN1BC1Eiiiii(%struct.B* getelementptr inbounds ([4 x [2048 x %struct.B]]* @ROM, i64 0, i64 0, i64 65), i32 0, i32 65, i32 0, i32 0, i32 65)
+ call void @_ZN1BC1Eiiiii(%struct.B* getelementptr inbounds ([4 x [2048 x %struct.B]]* @ROM, i64 0, i64 0, i64 66), i32 0, i32 66, i32 0, i32 0, i32 66)
+ call void @_ZN1BC1Eiiiii(%struct.B* getelementptr inbounds ([4 x [2048 x %struct.B]]* @ROM, i64 0, i64 0, i64 67), i32 0, i32 67, i32 0, i32 0, i32 67)
+ call void @_ZN1BC1Eiiiii(%struct.B* getelementptr inbounds ([4 x [2048 x %struct.B]]* @ROM, i64 0, i64 0, i64 68), i32 0, i32 68, i32 0, i32 0, i32 68)
+ call void @_ZN1BC1Eiiiii(%struct.B* getelementptr inbounds ([4 x [2048 x %struct.B]]* @ROM, i64 0, i64 0, i64 69), i32 0, i32 69, i32 0, i32 0, i32 69)
+ call void @_ZN1BC1Eiiiii(%struct.B* getelementptr inbounds ([4 x [2048 x %struct.B]]* @ROM, i64 0, i64 0, i64 70), i32 0, i32 70, i32 0, i32 0, i32 70)
+ call void @_ZN1BC1Eiiiii(%struct.B* getelementptr inbounds ([4 x [2048 x %struct.B]]* @ROM, i64 0, i64 0, i64 71), i32 0, i32 71, i32 0, i32 0, i32 71)
+ call void @_ZN1BC1Eiiiii(%struct.B* getelementptr inbounds ([4 x [2048 x %struct.B]]* @ROM, i64 0, i64 0, i64 72), i32 0, i32 72, i32 0, i32 0, i32 72)
+ call void @_ZN1BC1Eiiiii(%struct.B* getelementptr inbounds ([4 x [2048 x %struct.B]]* @ROM, i64 0, i64 0, i64 73), i32 0, i32 73, i32 0, i32 0, i32 73)
+ call void @_ZN1BC1Eiiiii(%struct.B* getelementptr inbounds ([4 x [2048 x %struct.B]]* @ROM, i64 0, i64 0, i64 74), i32 0, i32 74, i32 0, i32 0, i32 74)
+ call void @_ZN1BC1Eiiiii(%struct.B* getelementptr inbounds ([4 x [2048 x %struct.B]]* @ROM, i64 0, i64 0, i64 75), i32 0, i32 75, i32 0, i32 0, i32 75)
+ call void @_ZN1BC1Eiiiii(%struct.B* getelementptr inbounds ([4 x [2048 x %struct.B]]* @ROM, i64 0, i64 0, i64 76), i32 0, i32 76, i32 0, i32 0, i32 76)
+ call void @_ZN1BC1Eiiiii(%struct.B* getelementptr inbounds ([4 x [2048 x %struct.B]]* @ROM, i64 0, i64 0, i64 77), i32 0, i32 77, i32 0, i32 0, i32 77)
+ call void @_ZN1BC1Eiiiii(%struct.B* getelementptr inbounds ([4 x [2048 x %struct.B]]* @ROM, i64 0, i64 0, i64 78), i32 0, i32 78, i32 0, i32 0, i32 78)
+ call void @_ZN1BC1Eiiiii(%struct.B* getelementptr inbounds ([4 x [2048 x %struct.B]]* @ROM, i64 0, i64 0, i64 79), i32 0, i32 79, i32 0, i32 0, i32 79)
+ call void @_ZN1BC1Eiiiii(%struct.B* getelementptr inbounds ([4 x [2048 x %struct.B]]* @ROM, i64 0, i64 0, i64 80), i32 0, i32 80, i32 0, i32 0, i32 80)
+ call void @_ZN1BC1Eiiiii(%struct.B* getelementptr inbounds ([4 x [2048 x %struct.B]]* @ROM, i64 0, i64 0, i64 81), i32 0, i32 81, i32 0, i32 0, i32 81)
+ call void @_ZN1BC1Eiiiii(%struct.B* getelementptr inbounds ([4 x [2048 x %struct.B]]* @ROM, i64 0, i64 0, i64 82), i32 0, i32 82, i32 0, i32 0, i32 82)
+ call void @_ZN1BC1Eiiiii(%struct.B* getelementptr inbounds ([4 x [2048 x %struct.B]]* @ROM, i64 0, i64 0, i64 83), i32 0, i32 83, i32 0, i32 0, i32 83)
+ call void @_ZN1BC1Eiiiii(%struct.B* getelementptr inbounds ([4 x [2048 x %struct.B]]* @ROM, i64 0, i64 0, i64 84), i32 0, i32 84, i32 0, i32 0, i32 84)
+ call void @_ZN1BC1Eiiiii(%struct.B* getelementptr inbounds ([4 x [2048 x %struct.B]]* @ROM, i64 0, i64 0, i64 85), i32 0, i32 85, i32 0, i32 0, i32 85)
+ call void @_ZN1BC1Eiiiii(%struct.B* getelementptr inbounds ([4 x [2048 x %struct.B]]* @ROM, i64 0, i64 0, i64 86), i32 0, i32 86, i32 0, i32 0, i32 86)
+ call void @_ZN1BC1Eiiiii(%struct.B* getelementptr inbounds ([4 x [2048 x %struct.B]]* @ROM, i64 0, i64 0, i64 87), i32 0, i32 87, i32 0, i32 0, i32 87)
+ call void @_ZN1BC1Eiiiii(%struct.B* getelementptr inbounds ([4 x [2048 x %struct.B]]* @ROM, i64 0, i64 0, i64 88), i32 0, i32 88, i32 0, i32 0, i32 88)
+ call void @_ZN1BC1Eiiiii(%struct.B* getelementptr inbounds ([4 x [2048 x %struct.B]]* @ROM, i64 0, i64 0, i64 89), i32 0, i32 89, i32 0, i32 0, i32 89)
+ call void @_ZN1BC1Eiiiii(%struct.B* getelementptr inbounds ([4 x [2048 x %struct.B]]* @ROM, i64 0, i64 0, i64 90), i32 0, i32 90, i32 0, i32 0, i32 90)
+ call void @_ZN1BC1Eiiiii(%struct.B* getelementptr inbounds ([4 x [2048 x %struct.B]]* @ROM, i64 0, i64 0, i64 91), i32 0, i32 91, i32 0, i32 0, i32 91)
+ call void @_ZN1BC1Eiiiii(%struct.B* getelementptr inbounds ([4 x [2048 x %struct.B]]* @ROM, i64 0, i64 0, i64 92), i32 0, i32 92, i32 0, i32 0, i32 92)
+ call void @_ZN1BC1Eiiiii(%struct.B* getelementptr inbounds ([4 x [2048 x %struct.B]]* @ROM, i64 0, i64 0, i64 93), i32 0, i32 93, i32 0, i32 0, i32 93)
+ call void @_ZN1BC1Eiiiii(%struct.B* getelementptr inbounds ([4 x [2048 x %struct.B]]* @ROM, i64 0, i64 0, i64 94), i32 0, i32 94, i32 0, i32 0, i32 94)
+ call void @_ZN1BC1Eiiiii(%struct.B* getelementptr inbounds ([4 x [2048 x %struct.B]]* @ROM, i64 0, i64 0, i64 95), i32 0, i32 95, i32 0, i32 0, i32 95)
+ call void @_ZN1BC1Eiiiii(%struct.B* getelementptr inbounds ([4 x [2048 x %struct.B]]* @ROM, i64 0, i64 0, i64 96), i32 0, i32 96, i32 0, i32 0, i32 96)
+ call void @_ZN1BC1Eiiiii(%struct.B* getelementptr inbounds ([4 x [2048 x %struct.B]]* @ROM, i64 0, i64 0, i64 97), i32 0, i32 97, i32 0, i32 0, i32 97)
+ call void @_ZN1BC1Eiiiii(%struct.B* getelementptr inbounds ([4 x [2048 x %struct.B]]* @ROM, i64 0, i64 0, i64 98), i32 0, i32 98, i32 0, i32 0, i32 98)
+ call void @_ZN1BC1Eiiiii(%struct.B* getelementptr inbounds ([4 x [2048 x %struct.B]]* @ROM, i64 0, i64 0, i64 99), i32 0, i32 99, i32 0, i32 0, i32 99)
+ call void @_ZN1BC1Eiiiii(%struct.B* getelementptr inbounds ([4 x [2048 x %struct.B]]* @ROM, i64 0, i64 0, i64 100), i32 0, i32 100, i32 0, i32 0, i32 100)
+ call void @_ZN1BC1Eiiiii(%struct.B* getelementptr inbounds ([4 x [2048 x %struct.B]]* @ROM, i64 0, i64 0, i64 101), i32 0, i32 101, i32 0, i32 0, i32 101)
+ call void @_ZN1BC1Eiiiii(%struct.B* getelementptr inbounds ([4 x [2048 x %struct.B]]* @ROM, i64 0, i64 0, i64 102), i32 0, i32 102, i32 0, i32 0, i32 102)
+ call void @_ZN1BC1Eiiiii(%struct.B* getelementptr inbounds ([4 x [2048 x %struct.B]]* @ROM, i64 0, i64 0, i64 103), i32 0, i32 103, i32 0, i32 0, i32 103)
+ call void @_ZN1BC1Eiiiii(%struct.B* getelementptr inbounds ([4 x [2048 x %struct.B]]* @ROM, i64 0, i64 0, i64 104), i32 0, i32 104, i32 0, i32 0, i32 104)
+ call void @_ZN1BC1Eiiiii(%struct.B* getelementptr inbounds ([4 x [2048 x %struct.B]]* @ROM, i64 0, i64 0, i64 105), i32 0, i32 105, i32 0, i32 0, i32 105)
+ call void @_ZN1BC1Eiiiii(%struct.B* getelementptr inbounds ([4 x [2048 x %struct.B]]* @ROM, i64 0, i64 0, i64 106), i32 0, i32 106, i32 0, i32 0, i32 106)
+ call void @_ZN1BC1Eiiiii(%struct.B* getelementptr inbounds ([4 x [2048 x %struct.B]]* @ROM, i64 0, i64 0, i64 107), i32 0, i32 107, i32 0, i32 0, i32 107)
+ call void @_ZN1BC1Eiiiii(%struct.B* getelementptr inbounds ([4 x [2048 x %struct.B]]* @ROM, i64 0, i64 0, i64 108), i32 0, i32 108, i32 0, i32 0, i32 108)
+ call void @_ZN1BC1Eiiiii(%struct.B* getelementptr inbounds ([4 x [2048 x %struct.B]]* @ROM, i64 0, i64 0, i64 109), i32 0, i32 109, i32 0, i32 0, i32 109)
+ call void @_ZN1BC1Eiiiii(%struct.B* getelementptr inbounds ([4 x [2048 x %struct.B]]* @ROM, i64 0, i64 0, i64 110), i32 0, i32 110, i32 0, i32 0, i32 110)
+ call void @_ZN1BC1Eiiiii(%struct.B* getelementptr inbounds ([4 x [2048 x %struct.B]]* @ROM, i64 0, i64 0, i64 111), i32 0, i32 111, i32 0, i32 0, i32 111)
+ call void @_ZN1BC1Eiiiii(%struct.B* getelementptr inbounds ([4 x [2048 x %struct.B]]* @ROM, i64 0, i64 0, i64 112), i32 0, i32 112, i32 0, i32 0, i32 112)
+ call void @_ZN1BC1Eiiiii(%struct.B* getelementptr inbounds ([4 x [2048 x %struct.B]]* @ROM, i64 0, i64 0, i64 113), i32 0, i32 113, i32 0, i32 0, i32 113)
+ call void @_ZN1BC1Eiiiii(%struct.B* getelementptr inbounds ([4 x [2048 x %struct.B]]* @ROM, i64 0, i64 0, i64 114), i32 0, i32 114, i32 0, i32 0, i32 114)
+ call void @_ZN1BC1Eiiiii(%struct.B* getelementptr inbounds ([4 x [2048 x %struct.B]]* @ROM, i64 0, i64 0, i64 115), i32 0, i32 115, i32 0, i32 0, i32 115)
+ call void @_ZN1BC1Eiiiii(%struct.B* getelementptr inbounds ([4 x [2048 x %struct.B]]* @ROM, i64 0, i64 0, i64 116), i32 0, i32 116, i32 0, i32 0, i32 116)
+ call void @_ZN1BC1Eiiiii(%struct.B* getelementptr inbounds ([4 x [2048 x %struct.B]]* @ROM, i64 0, i64 0, i64 117), i32 0, i32 117, i32 0, i32 0, i32 117)
+ call void @_ZN1BC1Eiiiii(%struct.B* getelementptr inbounds ([4 x [2048 x %struct.B]]* @ROM, i64 0, i64 0, i64 118), i32 0, i32 118, i32 0, i32 0, i32 118)
+ call void @_ZN1BC1Eiiiii(%struct.B* getelementptr inbounds ([4 x [2048 x %struct.B]]* @ROM, i64 0, i64 0, i64 119), i32 0, i32 119, i32 0, i32 0, i32 119)
+ call void @_ZN1BC1Eiiiii(%struct.B* getelementptr inbounds ([4 x [2048 x %struct.B]]* @ROM, i64 0, i64 0, i64 120), i32 0, i32 120, i32 0, i32 0, i32 120)
+ call void @_ZN1BC1Eiiiii(%struct.B* getelementptr inbounds ([4 x [2048 x %struct.B]]* @ROM, i64 0, i64 0, i64 121), i32 0, i32 121, i32 0, i32 0, i32 121)
+ call void @_ZN1BC1Eiiiii(%struct.B* getelementptr inbounds ([4 x [2048 x %struct.B]]* @ROM, i64 0, i64 0, i64 122), i32 0, i32 122, i32 0, i32 0, i32 122)
+ call void @_ZN1BC1Eiiiii(%struct.B* getelementptr inbounds ([4 x [2048 x %struct.B]]* @ROM, i64 0, i64 0, i64 123), i32 0, i32 123, i32 0, i32 0, i32 123)
+ call void @_ZN1BC1Eiiiii(%struct.B* getelementptr inbounds ([4 x [2048 x %struct.B]]* @ROM, i64 0, i64 0, i64 124), i32 0, i32 124, i32 0, i32 0, i32 124)
+ call void @_ZN1BC1Eiiiii(%struct.B* getelementptr inbounds ([4 x [2048 x %struct.B]]* @ROM, i64 0, i64 0, i64 125), i32 0, i32 125, i32 0, i32 0, i32 125)
+ call void @_ZN1BC1Eiiiii(%struct.B* getelementptr inbounds ([4 x [2048 x %struct.B]]* @ROM, i64 0, i64 0, i64 126), i32 0, i32 126, i32 0, i32 0, i32 126)
+ call void @_ZN1BC1Eiiiii(%struct.B* getelementptr inbounds ([4 x [2048 x %struct.B]]* @ROM, i64 0, i64 0, i64 127), i32 0, i32 127, i32 0, i32 0, i32 127)
+ call void @_ZN1BC1Eiiiii(%struct.B* getelementptr inbounds ([4 x [2048 x %struct.B]]* @ROM, i64 0, i64 0, i64 128), i32 0, i32 128, i32 0, i32 0, i32 128)
+ call void @_ZN1BC1Eiiiii(%struct.B* getelementptr inbounds ([4 x [2048 x %struct.B]]* @ROM, i64 0, i64 0, i64 129), i32 0, i32 129, i32 0, i32 0, i32 129)
+ call void @_ZN1BC1Eiiiii(%struct.B* getelementptr inbounds ([4 x [2048 x %struct.B]]* @ROM, i64 0, i64 0, i64 130), i32 0, i32 130, i32 0, i32 0, i32 130)
+ call void @_ZN1BC1Eiiiii(%struct.B* getelementptr inbounds ([4 x [2048 x %struct.B]]* @ROM, i64 0, i64 0, i64 131), i32 0, i32 131, i32 0, i32 0, i32 131)
+ call void @_ZN1BC1Eiiiii(%struct.B* getelementptr inbounds ([4 x [2048 x %struct.B]]* @ROM, i64 0, i64 0, i64 132), i32 0, i32 132, i32 0, i32 0, i32 132)
+ call void @_ZN1BC1Eiiiii(%struct.B* getelementptr inbounds ([4 x [2048 x %struct.B]]* @ROM, i64 0, i64 0, i64 133), i32 0, i32 133, i32 0, i32 0, i32 133)
+ call void @_ZN1BC1Eiiiii(%struct.B* getelementptr inbounds ([4 x [2048 x %struct.B]]* @ROM, i64 0, i64 0, i64 134), i32 0, i32 134, i32 0, i32 0, i32 134)
+ call void @_ZN1BC1Eiiiii(%struct.B* getelementptr inbounds ([4 x [2048 x %struct.B]]* @ROM, i64 0, i64 0, i64 135), i32 0, i32 135, i32 0, i32 0, i32 135)
+ call void @_ZN1BC1Eiiiii(%struct.B* getelementptr inbounds ([4 x [2048 x %struct.B]]* @ROM, i64 0, i64 0, i64 136), i32 0, i32 136, i32 0, i32 0, i32 136)
+ call void @_ZN1BC1Eiiiii(%struct.B* getelementptr inbounds ([4 x [2048 x %struct.B]]* @ROM, i64 0, i64 0, i64 137), i32 0, i32 137, i32 0, i32 0, i32 137)
+ call void @_ZN1BC1Eiiiii(%struct.B* getelementptr inbounds ([4 x [2048 x %struct.B]]* @ROM, i64 0, i64 0, i64 138), i32 0, i32 138, i32 0, i32 0, i32 138)
+ call void @_ZN1BC1Eiiiii(%struct.B* getelementptr inbounds ([4 x [2048 x %struct.B]]* @ROM, i64 0, i64 0, i64 139), i32 0, i32 139, i32 0, i32 0, i32 139)
+ call void @_ZN1BC1Eiiiii(%struct.B* getelementptr inbounds ([4 x [2048 x %struct.B]]* @ROM, i64 0, i64 0, i64 140), i32 0, i32 140, i32 0, i32 0, i32 140)
+ call void @_ZN1BC1Eiiiii(%struct.B* getelementptr inbounds ([4 x [2048 x %struct.B]]* @ROM, i64 0, i64 0, i64 141), i32 0, i32 141, i32 0, i32 0, i32 141)
+ call void @_ZN1BC1Eiiiii(%struct.B* getelementptr inbounds ([4 x [2048 x %struct.B]]* @ROM, i64 0, i64 0, i64 142), i32 0, i32 142, i32 0, i32 0, i32 142)
+ call void @_ZN1BC1Eiiiii(%struct.B* getelementptr inbounds ([4 x [2048 x %struct.B]]* @ROM, i64 0, i64 0, i64 143), i32 0, i32 143, i32 0, i32 0, i32 143)
+ call void @_ZN1BC1Eiiiii(%struct.B* getelementptr inbounds ([4 x [2048 x %struct.B]]* @ROM, i64 0, i64 0, i64 144), i32 0, i32 144, i32 0, i32 0, i32 144)
+ call void @_ZN1BC1Eiiiii(%struct.B* getelementptr inbounds ([4 x [2048 x %struct.B]]* @ROM, i64 0, i64 0, i64 145), i32 0, i32 145, i32 0, i32 0, i32 145)
+ call void @_ZN1BC1Eiiiii(%struct.B* getelementptr inbounds ([4 x [2048 x %struct.B]]* @ROM, i64 0, i64 0, i64 146), i32 0, i32 146, i32 0, i32 0, i32 146)
+ call void @_ZN1BC1Eiiiii(%struct.B* getelementptr inbounds ([4 x [2048 x %struct.B]]* @ROM, i64 0, i64 0, i64 147), i32 0, i32 147, i32 0, i32 0, i32 147)
+ call void @_ZN1BC1Eiiiii(%struct.B* getelementptr inbounds ([4 x [2048 x %struct.B]]* @ROM, i64 0, i64 0, i64 148), i32 0, i32 148, i32 0, i32 0, i32 148)
+ call void @_ZN1BC1Eiiiii(%struct.B* getelementptr inbounds ([4 x [2048 x %struct.B]]* @ROM, i64 0, i64 0, i64 149), i32 0, i32 149, i32 0, i32 0, i32 149)
+ call void @_ZN1BC1Eiiiii(%struct.B* getelementptr inbounds ([4 x [2048 x %struct.B]]* @ROM, i64 0, i64 0, i64 150), i32 0, i32 150, i32 0, i32 0, i32 150)
+ call void @_ZN1BC1Eiiiii(%struct.B* getelementptr inbounds ([4 x [2048 x %struct.B]]* @ROM, i64 0, i64 0, i64 151), i32 0, i32 151, i32 0, i32 0, i32 151)
+ call void @_ZN1BC1Eiiiii(%struct.B* getelementptr inbounds ([4 x [2048 x %struct.B]]* @ROM, i64 0, i64 0, i64 152), i32 0, i32 152, i32 0, i32 0, i32 152)
+ call void @_ZN1BC1Eiiiii(%struct.B* getelementptr inbounds ([4 x [2048 x %struct.B]]* @ROM, i64 0, i64 0, i64 153), i32 0, i32 153, i32 0, i32 0, i32 153)
+ call void @_ZN1BC1Eiiiii(%struct.B* getelementptr inbounds ([4 x [2048 x %struct.B]]* @ROM, i64 0, i64 0, i64 154), i32 0, i32 154, i32 0, i32 0, i32 154)
+ call void @_ZN1BC1Eiiiii(%struct.B* getelementptr inbounds ([4 x [2048 x %struct.B]]* @ROM, i64 0, i64 0, i64 155), i32 0, i32 155, i32 0, i32 0, i32 155)
+ call void @_ZN1BC1Eiiiii(%struct.B* getelementptr inbounds ([4 x [2048 x %struct.B]]* @ROM, i64 0, i64 0, i64 156), i32 0, i32 156, i32 0, i32 0, i32 156)
+ call void @_ZN1BC1Eiiiii(%struct.B* getelementptr inbounds ([4 x [2048 x %struct.B]]* @ROM, i64 0, i64 0, i64 157), i32 0, i32 157, i32 0, i32 0, i32 157)
+ call void @_ZN1BC1Eiiiii(%struct.B* getelementptr inbounds ([4 x [2048 x %struct.B]]* @ROM, i64 0, i64 0, i64 158), i32 0, i32 158, i32 0, i32 0, i32 158)
+ call void @_ZN1BC1Eiiiii(%struct.B* getelementptr inbounds ([4 x [2048 x %struct.B]]* @ROM, i64 0, i64 0, i64 159), i32 0, i32 159, i32 0, i32 0, i32 159)
+ call void @_ZN1BC1Eiiiii(%struct.B* getelementptr inbounds ([4 x [2048 x %struct.B]]* @ROM, i64 0, i64 0, i64 160), i32 0, i32 160, i32 0, i32 0, i32 160)
+ call void @_ZN1BC1Eiiiii(%struct.B* getelementptr inbounds ([4 x [2048 x %struct.B]]* @ROM, i64 0, i64 0, i64 161), i32 0, i32 161, i32 0, i32 0, i32 161)
+ call void @_ZN1BC1Eiiiii(%struct.B* getelementptr inbounds ([4 x [2048 x %struct.B]]* @ROM, i64 0, i64 0, i64 162), i32 0, i32 162, i32 0, i32 0, i32 162)
+ call void @_ZN1BC1Eiiiii(%struct.B* getelementptr inbounds ([4 x [2048 x %struct.B]]* @ROM, i64 0, i64 0, i64 163), i32 0, i32 163, i32 0, i32 0, i32 163)
+ call void @_ZN1BC1Eiiiii(%struct.B* getelementptr inbounds ([4 x [2048 x %struct.B]]* @ROM, i64 0, i64 0, i64 164), i32 0, i32 164, i32 0, i32 0, i32 164)
+ call void @_ZN1BC1Eiiiii(%struct.B* getelementptr inbounds ([4 x [2048 x %struct.B]]* @ROM, i64 0, i64 0, i64 165), i32 0, i32 165, i32 0, i32 0, i32 165)
+ call void @_ZN1BC1Eiiiii(%struct.B* getelementptr inbounds ([4 x [2048 x %struct.B]]* @ROM, i64 0, i64 0, i64 166), i32 0, i32 166, i32 0, i32 0, i32 166)
+ call void @_ZN1BC1Eiiiii(%struct.B* getelementptr inbounds ([4 x [2048 x %struct.B]]* @ROM, i64 0, i64 0, i64 167), i32 0, i32 167, i32 0, i32 0, i32 167)
+ call void @_ZN1BC1Eiiiii(%struct.B* getelementptr inbounds ([4 x [2048 x %struct.B]]* @ROM, i64 0, i64 0, i64 168), i32 0, i32 168, i32 0, i32 0, i32 168)
+ call void @_ZN1BC1Eiiiii(%struct.B* getelementptr inbounds ([4 x [2048 x %struct.B]]* @ROM, i64 0, i64 0, i64 169), i32 0, i32 169, i32 0, i32 0, i32 169)
+ call void @_ZN1BC1Eiiiii(%struct.B* getelementptr inbounds ([4 x [2048 x %struct.B]]* @ROM, i64 0, i64 0, i64 170), i32 0, i32 170, i32 0, i32 0, i32 170)
+ call void @_ZN1BC1Eiiiii(%struct.B* getelementptr inbounds ([4 x [2048 x %struct.B]]* @ROM, i64 0, i64 0, i64 171), i32 0, i32 171, i32 0, i32 0, i32 171)
+ call void @_ZN1BC1Eiiiii(%struct.B* getelementptr inbounds ([4 x [2048 x %struct.B]]* @ROM, i64 0, i64 0, i64 172), i32 0, i32 172, i32 0, i32 0, i32 172)
+ call void @_ZN1BC1Eiiiii(%struct.B* getelementptr inbounds ([4 x [2048 x %struct.B]]* @ROM, i64 0, i64 0, i64 173), i32 0, i32 173, i32 0, i32 0, i32 173)
+ call void @_ZN1BC1Eiiiii(%struct.B* getelementptr inbounds ([4 x [2048 x %struct.B]]* @ROM, i64 0, i64 0, i64 174), i32 0, i32 174, i32 0, i32 0, i32 174)
+ call void @_ZN1BC1Eiiiii(%struct.B* getelementptr inbounds ([4 x [2048 x %struct.B]]* @ROM, i64 0, i64 0, i64 175), i32 0, i32 175, i32 0, i32 0, i32 175)
+ call void @_ZN1BC1Eiiiii(%struct.B* getelementptr inbounds ([4 x [2048 x %struct.B]]* @ROM, i64 0, i64 0, i64 176), i32 0, i32 176, i32 0, i32 0, i32 176)
+ call void @_ZN1BC1Eiiiii(%struct.B* getelementptr inbounds ([4 x [2048 x %struct.B]]* @ROM, i64 0, i64 0, i64 177), i32 0, i32 177, i32 0, i32 0, i32 177)
+ call void @_ZN1BC1Eiiiii(%struct.B* getelementptr inbounds ([4 x [2048 x %struct.B]]* @ROM, i64 0, i64 0, i64 178), i32 0, i32 178, i32 0, i32 0, i32 178)
+ call void @_ZN1BC1Eiiiii(%struct.B* getelementptr inbounds ([4 x [2048 x %struct.B]]* @ROM, i64 0, i64 0, i64 179), i32 0, i32 179, i32 0, i32 0, i32 179)
+ call void @_ZN1BC1Eiiiii(%struct.B* getelementptr inbounds ([4 x [2048 x %struct.B]]* @ROM, i64 0, i64 0, i64 180), i32 0, i32 180, i32 0, i32 0, i32 180)
+ call void @_ZN1BC1Eiiiii(%struct.B* getelementptr inbounds ([4 x [2048 x %struct.B]]* @ROM, i64 0, i64 0, i64 181), i32 0, i32 181, i32 0, i32 0, i32 181)
+ call void @_ZN1BC1Eiiiii(%struct.B* getelementptr inbounds ([4 x [2048 x %struct.B]]* @ROM, i64 0, i64 0, i64 182), i32 0, i32 182, i32 0, i32 0, i32 182)
+ call void @_ZN1BC1Eiiiii(%struct.B* getelementptr inbounds ([4 x [2048 x %struct.B]]* @ROM, i64 0, i64 0, i64 183), i32 0, i32 183, i32 0, i32 0, i32 183)
+ call void @_ZN1BC1Eiiiii(%struct.B* getelementptr inbounds ([4 x [2048 x %struct.B]]* @ROM, i64 0, i64 0, i64 184), i32 0, i32 184, i32 0, i32 0, i32 184)
+ call void @_ZN1BC1Eiiiii(%struct.B* getelementptr inbounds ([4 x [2048 x %struct.B]]* @ROM, i64 0, i64 0, i64 185), i32 0, i32 185, i32 0, i32 0, i32 185)
+ call void @_ZN1BC1Eiiiii(%struct.B* getelementptr inbounds ([4 x [2048 x %struct.B]]* @ROM, i64 0, i64 0, i64 186), i32 0, i32 186, i32 0, i32 0, i32 186)
+ call void @_ZN1BC1Eiiiii(%struct.B* getelementptr inbounds ([4 x [2048 x %struct.B]]* @ROM, i64 0, i64 0, i64 187), i32 0, i32 187, i32 0, i32 0, i32 187)
+ call void @_ZN1BC1Eiiiii(%struct.B* getelementptr inbounds ([4 x [2048 x %struct.B]]* @ROM, i64 0, i64 0, i64 188), i32 0, i32 188, i32 0, i32 0, i32 188)
+ call void @_ZN1BC1Eiiiii(%struct.B* getelementptr inbounds ([4 x [2048 x %struct.B]]* @ROM, i64 0, i64 0, i64 189), i32 0, i32 189, i32 0, i32 0, i32 189)
+ call void @_ZN1BC1Eiiiii(%struct.B* getelementptr inbounds ([4 x [2048 x %struct.B]]* @ROM, i64 0, i64 0, i64 190), i32 0, i32 190, i32 0, i32 0, i32 190)
+ call void @_ZN1BC1Eiiiii(%struct.B* getelementptr inbounds ([4 x [2048 x %struct.B]]* @ROM, i64 0, i64 0, i64 191), i32 0, i32 191, i32 0, i32 0, i32 191)
+ call void @_ZN1BC1Eiiiii(%struct.B* getelementptr inbounds ([4 x [2048 x %struct.B]]* @ROM, i64 0, i64 0, i64 192), i32 0, i32 192, i32 0, i32 0, i32 192)
+ call void @_ZN1BC1Eiiiii(%struct.B* getelementptr inbounds ([4 x [2048 x %struct.B]]* @ROM, i64 0, i64 0, i64 193), i32 0, i32 193, i32 0, i32 0, i32 193)
+ call void @_ZN1BC1Eiiiii(%struct.B* getelementptr inbounds ([4 x [2048 x %struct.B]]* @ROM, i64 0, i64 0, i64 194), i32 0, i32 194, i32 0, i32 0, i32 194)
+ call void @_ZN1BC1Eiiiii(%struct.B* getelementptr inbounds ([4 x [2048 x %struct.B]]* @ROM, i64 0, i64 0, i64 195), i32 0, i32 195, i32 0, i32 0, i32 195)
+ call void @_ZN1BC1Eiiiii(%struct.B* getelementptr inbounds ([4 x [2048 x %struct.B]]* @ROM, i64 0, i64 0, i64 196), i32 0, i32 196, i32 0, i32 0, i32 196)
+ call void @_ZN1BC1Eiiiii(%struct.B* getelementptr inbounds ([4 x [2048 x %struct.B]]* @ROM, i64 0, i64 0, i64 197), i32 0, i32 197, i32 0, i32 0, i32 197)
+ call void @_ZN1BC1Eiiiii(%struct.B* getelementptr inbounds ([4 x [2048 x %struct.B]]* @ROM, i64 0, i64 0, i64 198), i32 0, i32 198, i32 0, i32 0, i32 198)
+ call void @_ZN1BC1Eiiiii(%struct.B* getelementptr inbounds ([4 x [2048 x %struct.B]]* @ROM, i64 0, i64 0, i64 199), i32 0, i32 199, i32 0, i32 0, i32 199)
+ call void @_ZN1BC1Eiiiii(%struct.B* getelementptr inbounds ([4 x [2048 x %struct.B]]* @ROM, i64 0, i64 0, i64 200), i32 0, i32 200, i32 0, i32 0, i32 200)
+ call void @_ZN1BC1Eiiiii(%struct.B* getelementptr inbounds ([4 x [2048 x %struct.B]]* @ROM, i64 0, i64 0, i64 201), i32 0, i32 201, i32 0, i32 0, i32 201)
+ call void @_ZN1BC1Eiiiii(%struct.B* getelementptr inbounds ([4 x [2048 x %struct.B]]* @ROM, i64 0, i64 0, i64 202), i32 0, i32 202, i32 0, i32 0, i32 202)
+ call void @_ZN1BC1Eiiiii(%struct.B* getelementptr inbounds ([4 x [2048 x %struct.B]]* @ROM, i64 0, i64 0, i64 203), i32 0, i32 203, i32 0, i32 0, i32 203)
+ call void @_ZN1BC1Eiiiii(%struct.B* getelementptr inbounds ([4 x [2048 x %struct.B]]* @ROM, i64 0, i64 0, i64 204), i32 0, i32 204, i32 0, i32 0, i32 204)
+ call void @_ZN1BC1Eiiiii(%struct.B* getelementptr inbounds ([4 x [2048 x %struct.B]]* @ROM, i64 0, i64 0, i64 205), i32 0, i32 205, i32 0, i32 0, i32 205)
+ call void @_ZN1BC1Eiiiii(%struct.B* getelementptr inbounds ([4 x [2048 x %struct.B]]* @ROM, i64 0, i64 0, i64 206), i32 0, i32 206, i32 0, i32 0, i32 206)
+ call void @_ZN1BC1Eiiiii(%struct.B* getelementptr inbounds ([4 x [2048 x %struct.B]]* @ROM, i64 0, i64 0, i64 207), i32 0, i32 207, i32 0, i32 0, i32 207)
+ call void @_ZN1BC1Eiiiii(%struct.B* getelementptr inbounds ([4 x [2048 x %struct.B]]* @ROM, i64 0, i64 0, i64 208), i32 0, i32 208, i32 0, i32 0, i32 208)
+ call void @_ZN1BC1Eiiiii(%struct.B* getelementptr inbounds ([4 x [2048 x %struct.B]]* @ROM, i64 0, i64 0, i64 209), i32 0, i32 209, i32 0, i32 0, i32 209)
+ call void @_ZN1BC1Eiiiii(%struct.B* getelementptr inbounds ([4 x [2048 x %struct.B]]* @ROM, i64 0, i64 0, i64 210), i32 0, i32 210, i32 0, i32 0, i32 210)
+ call void @_ZN1BC1Eiiiii(%struct.B* getelementptr inbounds ([4 x [2048 x %struct.B]]* @ROM, i64 0, i64 0, i64 211), i32 0, i32 211, i32 0, i32 0, i32 211)
+ call void @_ZN1BC1Eiiiii(%struct.B* getelementptr inbounds ([4 x [2048 x %struct.B]]* @ROM, i64 0, i64 0, i64 212), i32 0, i32 212, i32 0, i32 0, i32 212)
+ call void @_ZN1BC1Eiiiii(%struct.B* getelementptr inbounds ([4 x [2048 x %struct.B]]* @ROM, i64 0, i64 0, i64 213), i32 0, i32 213, i32 0, i32 0, i32 213)
+ call void @_ZN1BC1Eiiiii(%struct.B* getelementptr inbounds ([4 x [2048 x %struct.B]]* @ROM, i64 0, i64 0, i64 214), i32 0, i32 214, i32 0, i32 0, i32 214)
+ call void @_ZN1BC1Eiiiii(%struct.B* getelementptr inbounds ([4 x [2048 x %struct.B]]* @ROM, i64 0, i64 0, i64 215), i32 0, i32 215, i32 0, i32 0, i32 215)
+ call void @_ZN1BC1Eiiiii(%struct.B* getelementptr inbounds ([4 x [2048 x %struct.B]]* @ROM, i64 0, i64 0, i64 216), i32 0, i32 216, i32 0, i32 0, i32 216)
+ call void @_ZN1BC1Eiiiii(%struct.B* getelementptr inbounds ([4 x [2048 x %struct.B]]* @ROM, i64 0, i64 0, i64 217), i32 0, i32 217, i32 0, i32 0, i32 217)
+ call void @_ZN1BC1Eiiiii(%struct.B* getelementptr inbounds ([4 x [2048 x %struct.B]]* @ROM, i64 0, i64 0, i64 218), i32 0, i32 218, i32 0, i32 0, i32 218)
+ call void @_ZN1BC1Eiiiii(%struct.B* getelementptr inbounds ([4 x [2048 x %struct.B]]* @ROM, i64 0, i64 0, i64 219), i32 0, i32 219, i32 0, i32 0, i32 219)
+ call void @_ZN1BC1Eiiiii(%struct.B* getelementptr inbounds ([4 x [2048 x %struct.B]]* @ROM, i64 0, i64 0, i64 220), i32 0, i32 220, i32 0, i32 0, i32 220)
+ call void @_ZN1BC1Eiiiii(%struct.B* getelementptr inbounds ([4 x [2048 x %struct.B]]* @ROM, i64 0, i64 0, i64 221), i32 0, i32 221, i32 0, i32 0, i32 221)
+ call void @_ZN1BC1Eiiiii(%struct.B* getelementptr inbounds ([4 x [2048 x %struct.B]]* @ROM, i64 0, i64 0, i64 222), i32 0, i32 222, i32 0, i32 0, i32 222)
+ call void @_ZN1BC1Eiiiii(%struct.B* getelementptr inbounds ([4 x [2048 x %struct.B]]* @ROM, i64 0, i64 0, i64 223), i32 0, i32 223, i32 0, i32 0, i32 223)
+ call void @_ZN1BC1Eiiiii(%struct.B* getelementptr inbounds ([4 x [2048 x %struct.B]]* @ROM, i64 0, i64 0, i64 224), i32 0, i32 224, i32 0, i32 0, i32 224)
+ call void @_ZN1BC1Eiiiii(%struct.B* getelementptr inbounds ([4 x [2048 x %struct.B]]* @ROM, i64 0, i64 0, i64 225), i32 0, i32 225, i32 0, i32 0, i32 225)
+ call void @_ZN1BC1Eiiiii(%struct.B* getelementptr inbounds ([4 x [2048 x %struct.B]]* @ROM, i64 0, i64 0, i64 226), i32 0, i32 226, i32 0, i32 0, i32 226)
+ call void @_ZN1BC1Eiiiii(%struct.B* getelementptr inbounds ([4 x [2048 x %struct.B]]* @ROM, i64 0, i64 0, i64 227), i32 0, i32 227, i32 0, i32 0, i32 227)
+ call void @_ZN1BC1Eiiiii(%struct.B* getelementptr inbounds ([4 x [2048 x %struct.B]]* @ROM, i64 0, i64 0, i64 228), i32 0, i32 228, i32 0, i32 0, i32 228)
+ call void @_ZN1BC1Eiiiii(%struct.B* getelementptr inbounds ([4 x [2048 x %struct.B]]* @ROM, i64 0, i64 0, i64 229), i32 0, i32 229, i32 0, i32 0, i32 229)
+ call void @_ZN1BC1Eiiiii(%struct.B* getelementptr inbounds ([4 x [2048 x %struct.B]]* @ROM, i64 0, i64 0, i64 230), i32 0, i32 230, i32 0, i32 0, i32 230)
+ call void @_ZN1BC1Eiiiii(%struct.B* getelementptr inbounds ([4 x [2048 x %struct.B]]* @ROM, i64 0, i64 0, i64 231), i32 0, i32 231, i32 0, i32 0, i32 231)
+ call void @_ZN1BC1Eiiiii(%struct.B* getelementptr inbounds ([4 x [2048 x %struct.B]]* @ROM, i64 0, i64 0, i64 232), i32 0, i32 232, i32 0, i32 0, i32 232)
+ call void @_ZN1BC1Eiiiii(%struct.B* getelementptr inbounds ([4 x [2048 x %struct.B]]* @ROM, i64 0, i64 0, i64 233), i32 0, i32 233, i32 0, i32 0, i32 233)
+ call void @_ZN1BC1Eiiiii(%struct.B* getelementptr inbounds ([4 x [2048 x %struct.B]]* @ROM, i64 0, i64 0, i64 234), i32 0, i32 234, i32 0, i32 0, i32 234)
+ call void @_ZN1BC1Eiiiii(%struct.B* getelementptr inbounds ([4 x [2048 x %struct.B]]* @ROM, i64 0, i64 0, i64 235), i32 0, i32 235, i32 0, i32 0, i32 235)
+ call void @_ZN1BC1Eiiiii(%struct.B* getelementptr inbounds ([4 x [2048 x %struct.B]]* @ROM, i64 0, i64 0, i64 236), i32 0, i32 236, i32 0, i32 0, i32 236)
+ call void @_ZN1BC1Eiiiii(%struct.B* getelementptr inbounds ([4 x [2048 x %struct.B]]* @ROM, i64 0, i64 0, i64 237), i32 0, i32 237, i32 0, i32 0, i32 237)
+ call void @_ZN1BC1Eiiiii(%struct.B* getelementptr inbounds ([4 x [2048 x %struct.B]]* @ROM, i64 0, i64 0, i64 238), i32 0, i32 238, i32 0, i32 0, i32 238)
+ call void @_ZN1BC1Eiiiii(%struct.B* getelementptr inbounds ([4 x [2048 x %struct.B]]* @ROM, i64 0, i64 0, i64 239), i32 0, i32 239, i32 0, i32 0, i32 239)
+ call void @_ZN1BC1Eiiiii(%struct.B* getelementptr inbounds ([4 x [2048 x %struct.B]]* @ROM, i64 0, i64 0, i64 240), i32 0, i32 240, i32 0, i32 0, i32 240)
+ call void @_ZN1BC1Eiiiii(%struct.B* getelementptr inbounds ([4 x [2048 x %struct.B]]* @ROM, i64 0, i64 0, i64 241), i32 0, i32 241, i32 0, i32 0, i32 241)
+ call void @_ZN1BC1Eiiiii(%struct.B* getelementptr inbounds ([4 x [2048 x %struct.B]]* @ROM, i64 0, i64 0, i64 242), i32 0, i32 242, i32 0, i32 0, i32 242)
+ call void @_ZN1BC1Eiiiii(%struct.B* getelementptr inbounds ([4 x [2048 x %struct.B]]* @ROM, i64 0, i64 0, i64 243), i32 0, i32 243, i32 0, i32 0, i32 243)
+ call void @_ZN1BC1Eiiiii(%struct.B* getelementptr inbounds ([4 x [2048 x %struct.B]]* @ROM, i64 0, i64 0, i64 244), i32 0, i32 244, i32 0, i32 0, i32 244)
+ call void @_ZN1BC1Eiiiii(%struct.B* getelementptr inbounds ([4 x [2048 x %struct.B]]* @ROM, i64 0, i64 0, i64 245), i32 0, i32 245, i32 0, i32 0, i32 245)
+ call void @_ZN1BC1Eiiiii(%struct.B* getelementptr inbounds ([4 x [2048 x %struct.B]]* @ROM, i64 0, i64 0, i64 246), i32 0, i32 246, i32 0, i32 0, i32 246)
+ call void @_ZN1BC1Eiiiii(%struct.B* getelementptr inbounds ([4 x [2048 x %struct.B]]* @ROM, i64 0, i64 0, i64 247), i32 0, i32 247, i32 0, i32 0, i32 247)
+ call void @_ZN1BC1Eiiiii(%struct.B* getelementptr inbounds ([4 x [2048 x %struct.B]]* @ROM, i64 0, i64 0, i64 248), i32 0, i32 248, i32 0, i32 0, i32 248)
+ call void @_ZN1BC1Eiiiii(%struct.B* getelementptr inbounds ([4 x [2048 x %struct.B]]* @ROM, i64 0, i64 0, i64 249), i32 0, i32 249, i32 0, i32 0, i32 249)
+ call void @_ZN1BC1Eiiiii(%struct.B* getelementptr inbounds ([4 x [2048 x %struct.B]]* @ROM, i64 0, i64 0, i64 250), i32 0, i32 250, i32 0, i32 0, i32 250)
+ call void @_ZN1BC1Eiiiii(%struct.B* getelementptr inbounds ([4 x [2048 x %struct.B]]* @ROM, i64 0, i64 0, i64 251), i32 0, i32 251, i32 0, i32 0, i32 251)
+ call void @_ZN1BC1Eiiiii(%struct.B* getelementptr inbounds ([4 x [2048 x %struct.B]]* @ROM, i64 0, i64 0, i64 252), i32 0, i32 252, i32 0, i32 0, i32 252)
+ call void @_ZN1BC1Eiiiii(%struct.B* getelementptr inbounds ([4 x [2048 x %struct.B]]* @ROM, i64 0, i64 0, i64 253), i32 0, i32 253, i32 0, i32 0, i32 253)
+ call void @_ZN1BC1Eiiiii(%struct.B* getelementptr inbounds ([4 x [2048 x %struct.B]]* @ROM, i64 0, i64 0, i64 254), i32 0, i32 254, i32 0, i32 0, i32 254)
+ call void @_ZN1BC1Eiiiii(%struct.B* getelementptr inbounds ([4 x [2048 x %struct.B]]* @ROM, i64 0, i64 0, i64 255), i32 0, i32 255, i32 0, i32 0, i32 255)
+ call void @_ZN1BC1Eiiiii(%struct.B* getelementptr inbounds ([4 x [2048 x %struct.B]]* @ROM, i64 0, i64 0, i64 256), i32 0, i32 256, i32 0, i32 0, i32 256)
+ call void @_ZN1BC1Eiiiii(%struct.B* getelementptr inbounds ([4 x [2048 x %struct.B]]* @ROM, i64 0, i64 0, i64 257), i32 0, i32 257, i32 0, i32 0, i32 257)
+ call void @_ZN1BC1Eiiiii(%struct.B* getelementptr inbounds ([4 x [2048 x %struct.B]]* @ROM, i64 0, i64 0, i64 258), i32 0, i32 258, i32 0, i32 0, i32 258)
+ call void @_ZN1BC1Eiiiii(%struct.B* getelementptr inbounds ([4 x [2048 x %struct.B]]* @ROM, i64 0, i64 0, i64 259), i32 0, i32 259, i32 0, i32 0, i32 259)
+ call void @_ZN1BC1Eiiiii(%struct.B* getelementptr inbounds ([4 x [2048 x %struct.B]]* @ROM, i64 0, i64 0, i64 260), i32 0, i32 260, i32 0, i32 0, i32 260)
+ call void @_ZN1BC1Eiiiii(%struct.B* getelementptr inbounds ([4 x [2048 x %struct.B]]* @ROM, i64 0, i64 0, i64 261), i32 0, i32 261, i32 0, i32 0, i32 261)
+ call void @_ZN1BC1Eiiiii(%struct.B* getelementptr inbounds ([4 x [2048 x %struct.B]]* @ROM, i64 0, i64 0, i64 262), i32 0, i32 262, i32 0, i32 0, i32 262)
+ call void @_ZN1BC1Eiiiii(%struct.B* getelementptr inbounds ([4 x [2048 x %struct.B]]* @ROM, i64 0, i64 0, i64 263), i32 0, i32 263, i32 0, i32 0, i32 263)
+ call void @_ZN1BC1Eiiiii(%struct.B* getelementptr inbounds ([4 x [2048 x %struct.B]]* @ROM, i64 0, i64 0, i64 264), i32 0, i32 264, i32 0, i32 0, i32 264)
+ call void @_ZN1BC1Eiiiii(%struct.B* getelementptr inbounds ([4 x [2048 x %struct.B]]* @ROM, i64 0, i64 0, i64 265), i32 0, i32 265, i32 0, i32 0, i32 265)
+ call void @_ZN1BC1Eiiiii(%struct.B* getelementptr inbounds ([4 x [2048 x %struct.B]]* @ROM, i64 0, i64 0, i64 266), i32 0, i32 266, i32 0, i32 0, i32 266)
+ call void @_ZN1BC1Eiiiii(%struct.B* getelementptr inbounds ([4 x [2048 x %struct.B]]* @ROM, i64 0, i64 0, i64 267), i32 0, i32 267, i32 0, i32 0, i32 267)
+ call void @_ZN1BC1Eiiiii(%struct.B* getelementptr inbounds ([4 x [2048 x %struct.B]]* @ROM, i64 0, i64 0, i64 268), i32 0, i32 268, i32 0, i32 0, i32 268)
+ call void @_ZN1BC1Eiiiii(%struct.B* getelementptr inbounds ([4 x [2048 x %struct.B]]* @ROM, i64 0, i64 0, i64 269), i32 0, i32 269, i32 0, i32 0, i32 269)
+ call void @_ZN1BC1Eiiiii(%struct.B* getelementptr inbounds ([4 x [2048 x %struct.B]]* @ROM, i64 0, i64 0, i64 270), i32 0, i32 270, i32 0, i32 0, i32 270)
+ call void @_ZN1BC1Eiiiii(%struct.B* getelementptr inbounds ([4 x [2048 x %struct.B]]* @ROM, i64 0, i64 0, i64 271), i32 0, i32 271, i32 0, i32 0, i32 271)
+ call void @_ZN1BC1Eiiiii(%struct.B* getelementptr inbounds ([4 x [2048 x %struct.B]]* @ROM, i64 0, i64 0, i64 272), i32 0, i32 272, i32 0, i32 0, i32 272)
+ call void @_ZN1BC1Eiiiii(%struct.B* getelementptr inbounds ([4 x [2048 x %struct.B]]* @ROM, i64 0, i64 0, i64 273), i32 0, i32 273, i32 0, i32 0, i32 273)
+ call void @_ZN1BC1Eiiiii(%struct.B* getelementptr inbounds ([4 x [2048 x %struct.B]]* @ROM, i64 0, i64 0, i64 274), i32 0, i32 274, i32 0, i32 0, i32 274)
+ call void @_ZN1BC1Eiiiii(%struct.B* getelementptr inbounds ([4 x [2048 x %struct.B]]* @ROM, i64 0, i64 0, i64 275), i32 0, i32 275, i32 0, i32 0, i32 275)
+ call void @_ZN1BC1Eiiiii(%struct.B* getelementptr inbounds ([4 x [2048 x %struct.B]]* @ROM, i64 0, i64 0, i64 276), i32 0, i32 276, i32 0, i32 0, i32 276)
+ call void @_ZN1BC1Eiiiii(%struct.B* getelementptr inbounds ([4 x [2048 x %struct.B]]* @ROM, i64 0, i64 0, i64 277), i32 0, i32 277, i32 0, i32 0, i32 277)
+ call void @_ZN1BC1Eiiiii(%struct.B* getelementptr inbounds ([4 x [2048 x %struct.B]]* @ROM, i64 0, i64 0, i64 278), i32 0, i32 278, i32 0, i32 0, i32 278)
+ call void @_ZN1BC1Eiiiii(%struct.B* getelementptr inbounds ([4 x [2048 x %struct.B]]* @ROM, i64 0, i64 0, i64 279), i32 0, i32 279, i32 0, i32 0, i32 279)
+ call void @_ZN1BC1Eiiiii(%struct.B* getelementptr inbounds ([4 x [2048 x %struct.B]]* @ROM, i64 0, i64 0, i64 280), i32 0, i32 280, i32 0, i32 0, i32 280)
+ call void @_ZN1BC1Eiiiii(%struct.B* getelementptr inbounds ([4 x [2048 x %struct.B]]* @ROM, i64 0, i64 0, i64 281), i32 0, i32 281, i32 0, i32 0, i32 281)
+ call void @_ZN1BC1Eiiiii(%struct.B* getelementptr inbounds ([4 x [2048 x %struct.B]]* @ROM, i64 0, i64 0, i64 282), i32 0, i32 282, i32 0, i32 0, i32 282)
+ call void @_ZN1BC1Eiiiii(%struct.B* getelementptr inbounds ([4 x [2048 x %struct.B]]* @ROM, i64 0, i64 0, i64 283), i32 0, i32 283, i32 0, i32 0, i32 283)
+ call void @_ZN1BC1Eiiiii(%struct.B* getelementptr inbounds ([4 x [2048 x %struct.B]]* @ROM, i64 0, i64 0, i64 284), i32 0, i32 284, i32 0, i32 0, i32 284)
+ call void @_ZN1BC1Eiiiii(%struct.B* getelementptr inbounds ([4 x [2048 x %struct.B]]* @ROM, i64 0, i64 0, i64 285), i32 0, i32 285, i32 0, i32 0, i32 285)
+ call void @_ZN1BC1Eiiiii(%struct.B* getelementptr inbounds ([4 x [2048 x %struct.B]]* @ROM, i64 0, i64 0, i64 286), i32 0, i32 286, i32 0, i32 0, i32 286)
+ call void @_ZN1BC1Eiiiii(%struct.B* getelementptr inbounds ([4 x [2048 x %struct.B]]* @ROM, i64 0, i64 0, i64 287), i32 0, i32 287, i32 0, i32 0, i32 287)
+ call void @_ZN1BC1Eiiiii(%struct.B* getelementptr inbounds ([4 x [2048 x %struct.B]]* @ROM, i64 0, i64 0, i64 288), i32 0, i32 288, i32 0, i32 0, i32 288)
+ call void @_ZN1BC1Eiiiii(%struct.B* getelementptr inbounds ([4 x [2048 x %struct.B]]* @ROM, i64 0, i64 0, i64 289), i32 0, i32 289, i32 0, i32 0, i32 289)
+ call void @_ZN1BC1Eiiiii(%struct.B* getelementptr inbounds ([4 x [2048 x %struct.B]]* @ROM, i64 0, i64 0, i64 290), i32 0, i32 290, i32 0, i32 0, i32 290)
+ call void @_ZN1BC1Eiiiii(%struct.B* getelementptr inbounds ([4 x [2048 x %struct.B]]* @ROM, i64 0, i64 0, i64 291), i32 0, i32 291, i32 0, i32 0, i32 291)
+ call void @_ZN1BC1Eiiiii(%struct.B* getelementptr inbounds ([4 x [2048 x %struct.B]]* @ROM, i64 0, i64 0, i64 292), i32 0, i32 292, i32 0, i32 0, i32 292)
+ call void @_ZN1