aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorReid Spencer <rspencer@reidspencer.com>2004-08-19 19:11:57 +0000
committerReid Spencer <rspencer@reidspencer.com>2004-08-19 19:11:57 +0000
commit0b6e55b18b79b6a2cc75365ecd3478e5d5158806 (patch)
treea7b2bb2567932a9425b685fc73192342ac69fd29
parent5e9867e71c8a099b470a6ac3b794b161c3035a63 (diff)
Add a test case test test 1.3 alignment removal and to test a regression
on disassembly speed (where SlotMachine was being recomputed on each getSlot() call). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@15920 91177308-0d34-0410-b5e6-96231b3b80d8
-rw-r--r--test/Bytecode/slow.bc-13bin0 -> 128224 bytes
-rw-r--r--test/Bytecode/slow.ll21089
2 files changed, 21089 insertions, 0 deletions
diff --git a/test/Bytecode/slow.bc-13 b/test/Bytecode/slow.bc-13
new file mode 100644
index 0000000000..6f1e62b99d
--- /dev/null
+++ b/test/Bytecode/slow.bc-13
Binary files differ
diff --git a/test/Bytecode/slow.ll b/test/Bytecode/slow.ll
new file mode 100644
index 0000000000..5d0777cd13
--- /dev/null
+++ b/test/Bytecode/slow.ll
@@ -0,0 +1,21089 @@
+; This bytecode test pounds on instruction alignment and showed
+; up a bug in llvm-dis performance
+
+; RUN: llvm-as < %s -o - | llvm-dis -o %t1
+; RUN: llvm-dis < %s.bc-13 -o - %t2
+; RUN: diff %t1 %t2
+
+implementation ; Functions:
+
+declare int %getchar()
+
+declare int %putchar(int)
+
+ubyte %inputcell() {
+entry:
+ call int %getchar( ) ; <int>:0 [#uses=2]
+ seteq int %0, -1 ; <bool>:0 [#uses=1]
+ br bool %0, label %eof, label %ok
+
+ok: ; preds = %entry
+ cast int %0 to ubyte ; <ubyte>:0 [#uses=1]
+ ret ubyte %0
+
+eof: ; preds = %entry
+ ret ubyte 0
+}
+
+void %outputcell(ubyte) {
+entry:
+ cast ubyte %0 to int ; <int>:0 [#uses=1]
+ call int %putchar( int %0 ) ; <int>:1 [#uses=0]
+ ret void
+}
+
+int %main() {
+entry:
+ %bfarray = malloc [262144 x ubyte] ; <[262144 x ubyte]*> [#uses=3366]
+ %bfarray.sub = getelementptr [262144 x ubyte]* %bfarray, int 0, int 0 ; <ubyte*> [#uses=1]
+ getelementptr [262144 x ubyte]* %bfarray, int 0, int 3 ; <ubyte*>:0 [#uses=2]
+ load ubyte* %0 ; <ubyte>:0 [#uses=1]
+ add ubyte %0, 1 ; <ubyte>:1 [#uses=1]
+ store ubyte %1, ubyte* %0
+ getelementptr [262144 x ubyte]* %bfarray, int 0, int 6 ; <ubyte*>:1 [#uses=2]
+ load ubyte* %1 ; <ubyte>:2 [#uses=2]
+ add ubyte %2, 2 ; <ubyte>:3 [#uses=1]
+ store ubyte %3, ubyte* %1
+ seteq ubyte %2, 254 ; <bool>:0 [#uses=1]
+ br bool %0, label %1, label %0
+
+; <label>:0 ; preds = %entry, %3
+ phi uint [ 6, %entry ], [ %4, %3 ] ; <uint>:0 [#uses=4]
+ add uint %0, 1 ; <uint>:1 [#uses=1]
+ getelementptr [262144 x ubyte]* %bfarray, int 0, uint %1 ; <ubyte*>:2 [#uses=2]
+ load ubyte* %2 ; <ubyte>:4 [#uses=1]
+ add ubyte %4, 1 ; <ubyte>:5 [#uses=1]
+ store ubyte %5, ubyte* %2
+ getelementptr [262144 x ubyte]* %bfarray, int 0, uint %0 ; <ubyte*>:3 [#uses=1]
+ load ubyte* %3 ; <ubyte>:6 [#uses=1]
+ seteq ubyte %6, 0 ; <bool>:1 [#uses=1]
+ br bool %1, label %3, label %2
+
+; <label>:1 ; preds = %entry, %3
+ free ubyte* %bfarray.sub
+ ret int 0
+
+; <label>:2 ; preds = %0, %567
+ phi uint [ %0, %0 ], [ %377, %567 ] ; <uint>:2 [#uses=3]
+ getelementptr [262144 x ubyte]* %bfarray, int 0, uint %2 ; <ubyte*>:4 [#uses=2]
+ load ubyte* %4 ; <ubyte>:7 [#uses=2]
+ add ubyte %7, 255 ; <ubyte>:8 [#uses=1]
+ store ubyte %8, ubyte* %4
+ seteq ubyte %7, 1 ; <bool>:2 [#uses=1]
+ br bool %2, label %5, label %4
+
+; <label>:3 ; preds = %0, %567
+ phi uint [ %0, %0 ], [ %377, %567 ] ; <uint>:3 [#uses=1]
+ add uint %3, 4294967295 ; <uint>:4 [#uses=2]
+ getelementptr [262144 x ubyte]* %bfarray, int 0, uint %4 ; <ubyte*>:5 [#uses=1]
+ load ubyte* %5 ; <ubyte>:9 [#uses=1]
+ seteq ubyte %9, 0 ; <bool>:3 [#uses=1]
+ br bool %3, label %1, label %0
+
+; <label>:4 ; preds = %2, %11
+ phi uint [ %2, %2 ], [ %15, %11 ] ; <uint>:5 [#uses=3]
+ getelementptr [262144 x ubyte]* %bfarray, int 0, uint %5 ; <ubyte*>:6 [#uses=2]
+ load ubyte* %6 ; <ubyte>:10 [#uses=2]
+ add ubyte %10, 255 ; <ubyte>:11 [#uses=1]
+ store ubyte %11, ubyte* %6
+ seteq ubyte %10, 1 ; <bool>:4 [#uses=1]
+ br bool %4, label %7, label %6
+
+; <label>:5 ; preds = %2, %11
+ phi uint [ %2, %2 ], [ %15, %11 ] ; <uint>:6 [#uses=1]
+ add uint %6, 1 ; <uint>:7 [#uses=3]
+ getelementptr [262144 x ubyte]* %bfarray, int 0, uint %7 ; <ubyte*>:7 [#uses=1]
+ load ubyte* %7 ; <ubyte>:12 [#uses=1]
+ seteq ubyte %12, 0 ; <bool>:5 [#uses=1]
+ br bool %5, label %567, label %566
+
+; <label>:6 ; preds = %4, %9
+ phi uint [ %5, %4 ], [ %11, %9 ] ; <uint>:8 [#uses=3]
+ getelementptr [262144 x ubyte]* %bfarray, int 0, uint %8 ; <ubyte*>:8 [#uses=1]
+ load ubyte* %8 ; <ubyte>:13 [#uses=1]
+ seteq ubyte %13, 0 ; <bool>:6 [#uses=1]
+ br bool %6, label %9, label %8
+
+; <label>:7 ; preds = %4, %9
+ phi uint [ %5, %4 ], [ %11, %9 ] ; <uint>:9 [#uses=1]
+ add uint %9, 1 ; <uint>:10 [#uses=3]
+ getelementptr [262144 x ubyte]* %bfarray, int 0, uint %10 ; <ubyte*>:9 [#uses=1]
+ load ubyte* %9 ; <ubyte>:14 [#uses=1]
+ seteq ubyte %14, 0 ; <bool>:7 [#uses=1]
+ br bool %7, label %11, label %10
+
+; <label>:8 ; preds = %6, %8
+ getelementptr [262144 x ubyte]* %bfarray, int 0, uint %8 ; <ubyte*>:10 [#uses=2]
+ load ubyte* %10 ; <ubyte>:15 [#uses=2]
+ add ubyte %15, 255 ; <ubyte>:16 [#uses=1]
+ store ubyte %16, ubyte* %10
+ seteq ubyte %15, 1 ; <bool>:8 [#uses=1]
+ br bool %8, label %9, label %8
+
+; <label>:9 ; preds = %6, %8
+ add uint %8, 1 ; <uint>:11 [#uses=3]
+ getelementptr [262144 x ubyte]* %bfarray, int 0, uint %11 ; <ubyte*>:11 [#uses=2]
+ load ubyte* %11 ; <ubyte>:17 [#uses=2]
+ add ubyte %17, 255 ; <ubyte>:18 [#uses=1]
+ store ubyte %18, ubyte* %11
+ seteq ubyte %17, 1 ; <bool>:9 [#uses=1]
+ br bool %9, label %7, label %6
+
+; <label>:10 ; preds = %7, %13
+ phi uint [ %10, %7 ], [ %19, %13 ] ; <uint>:12 [#uses=2]
+ getelementptr [262144 x ubyte]* %bfarray, int 0, uint %12 ; <ubyte*>:12 [#uses=2]
+ load ubyte* %12 ; <ubyte>:19 [#uses=1]
+ add ubyte %19, 255 ; <ubyte>:20 [#uses=1]
+ store ubyte %20, ubyte* %12
+ add uint %12, 4294967292 ; <uint>:13 [#uses=3]
+ getelementptr [262144 x ubyte]* %bfarray, int 0, uint %13 ; <ubyte*>:13 [#uses=1]
+ load ubyte* %13 ; <ubyte>:21 [#uses=1]
+ seteq ubyte %21, 0 ; <bool>:10 [#uses=1]
+ br bool %10, label %13, label %12
+
+; <label>:11 ; preds = %7, %13
+ phi uint [ %10, %7 ], [ %19, %13 ] ; <uint>:14 [#uses=1]
+ add uint %14, 4294967295 ; <uint>:15 [#uses=3]
+ getelementptr [262144 x ubyte]* %bfarray, int 0, uint %15 ; <ubyte*>:14 [#uses=1]
+ load ubyte* %14 ; <ubyte>:22 [#uses=1]
+ seteq ubyte %22, 0 ; <bool>:11 [#uses=1]
+ br bool %11, label %5, label %4
+
+; <label>:12 ; preds = %10, %15
+ phi uint [ %13, %10 ], [ %22, %15 ] ; <uint>:16 [#uses=4]
+ add uint %16, 1 ; <uint>:17 [#uses=1]
+ getelementptr [262144 x ubyte]* %bfarray, int 0, uint %17 ; <ubyte*>:15 [#uses=2]
+ load ubyte* %15 ; <ubyte>:23 [#uses=1]
+ add ubyte %23, 1 ; <ubyte>:24 [#uses=1]
+ store ubyte %24, ubyte* %15
+ getelementptr [262144 x ubyte]* %bfarray, int 0, uint %16 ; <ubyte*>:16 [#uses=1]
+ load ubyte* %16 ; <ubyte>:25 [#uses=1]
+ seteq ubyte %25, 0 ; <bool>:12 [#uses=1]
+ br bool %12, label %15, label %14
+
+; <label>:13 ; preds = %10, %15
+ phi uint [ %13, %10 ], [ %22, %15 ] ; <uint>:18 [#uses=1]
+ add uint %18, 4294967295 ; <uint>:19 [#uses=3]
+ getelementptr [262144 x ubyte]* %bfarray, int 0, uint %19 ; <ubyte*>:17 [#uses=1]
+ load ubyte* %17 ; <ubyte>:26 [#uses=1]
+ seteq ubyte %26, 0 ; <bool>:13 [#uses=1]
+ br bool %13, label %11, label %10
+
+; <label>:14 ; preds = %12, %557
+ phi uint [ %16, %12 ], [ %366, %557 ] ; <uint>:20 [#uses=3]
+ getelementptr [262144 x ubyte]* %bfarray, int 0, uint %20 ; <ubyte*>:18 [#uses=2]
+ load ubyte* %18 ; <ubyte>:27 [#uses=2]
+ add ubyte %27, 255 ; <ubyte>:28 [#uses=1]
+ store ubyte %28, ubyte* %18
+ seteq ubyte %27, 1 ; <bool>:14 [#uses=1]
+ br bool %14, label %17, label %16
+
+; <label>:15 ; preds = %12, %557
+ phi uint [ %16, %12 ], [ %366, %557 ] ; <uint>:21 [#uses=1]
+ add uint %21, 4294967295 ; <uint>:22 [#uses=3]
+ getelementptr [262144 x ubyte]* %bfarray, int 0, uint %22 ; <ubyte*>:19 [#uses=1]
+ load ubyte* %19 ; <ubyte>:29 [#uses=1]
+ seteq ubyte %29, 0 ; <bool>:15 [#uses=1]
+ br bool %15, label %13, label %12
+
+; <label>:16 ; preds = %14, %459
+ phi uint [ %20, %14 ], [ %293, %459 ] ; <uint>:23 [#uses=3]
+ getelementptr [262144 x ubyte]* %bfarray, int 0, uint %23 ; <ubyte*>:20 [#uses=2]
+ load ubyte* %20 ; <ubyte>:30 [#uses=2]
+ add ubyte %30, 255 ; <ubyte>:31 [#uses=1]
+ store ubyte %31, ubyte* %20
+ seteq ubyte %30, 1 ; <bool>:16 [#uses=1]
+ br bool %16, label %19, label %18
+
+; <label>:17 ; preds = %14, %459
+ phi uint [ %20, %14 ], [ %293, %459 ] ; <uint>:24 [#uses=1]
+ add uint %24, 1 ; <uint>:25 [#uses=3]
+ getelementptr [262144 x ubyte]* %bfarray, int 0, uint %25 ; <ubyte*>:21 [#uses=1]
+ load ubyte* %21 ; <ubyte>:32 [#uses=1]
+ seteq ubyte %32, 0 ; <bool>:17 [#uses=1]
+ br bool %17, label %557, label %556
+
+; <label>:18 ; preds = %16, %403
+ phi uint [ %23, %16 ], [ %268, %403 ] ; <uint>:26 [#uses=3]
+ getelementptr [262144 x ubyte]* %bfarray, int 0, uint %26 ; <ubyte*>:22 [#uses=2]
+ load ubyte* %22 ; <ubyte>:33 [#uses=2]
+ add ubyte %33, 255 ; <ubyte>:34 [#uses=1]
+ store ubyte %34, ubyte* %22
+ seteq ubyte %33, 1 ; <bool>:18 [#uses=1]
+ br bool %18, label %21, label %20
+
+; <label>:19 ; preds = %16, %403
+ phi uint [ %23, %16 ], [ %268, %403 ] ; <uint>:27 [#uses=1]
+ add uint %27, 1 ; <uint>:28 [#uses=3]
+ getelementptr [262144 x ubyte]* %bfarray, int 0, uint %28 ; <ubyte*>:23 [#uses=1]
+ load ubyte* %23 ; <ubyte>:35 [#uses=1]
+ seteq ubyte %35, 0 ; <bool>:19 [#uses=1]
+ br bool %19, label %459, label %458
+
+; <label>:20 ; preds = %18, %361
+ phi uint [ %26, %18 ], [ %240, %361 ] ; <uint>:29 [#uses=3]
+ getelementptr [262144 x ubyte]* %bfarray, int 0, uint %29 ; <ubyte*>:24 [#uses=2]
+ load ubyte* %24 ; <ubyte>:36 [#uses=2]
+ add ubyte %36, 255 ; <ubyte>:37 [#uses=1]
+ store ubyte %37, ubyte* %24
+ seteq ubyte %36, 1 ; <bool>:20 [#uses=1]
+ br bool %20, label %23, label %22
+
+; <label>:21 ; preds = %18, %361
+ phi uint [ %26, %18 ], [ %240, %361 ] ; <uint>:30 [#uses=1]
+ add uint %30, 1 ; <uint>:31 [#uses=3]
+ getelementptr [262144 x ubyte]* %bfarray, int 0, uint %31 ; <ubyte*>:25 [#uses=1]
+ load ubyte* %25 ; <ubyte>:38 [#uses=1]
+ seteq ubyte %38, 0 ; <bool>:21 [#uses=1]
+ br bool %21, label %403, label %402
+
+; <label>:22 ; preds = %20, %291
+ phi uint [ %29, %20 ], [ %201, %291 ] ; <uint>:32 [#uses=3]
+ getelementptr [262144 x ubyte]* %bfarray, int 0, uint %32 ; <ubyte*>:26 [#uses=2]
+ load ubyte* %26 ; <ubyte>:39 [#uses=2]
+ add ubyte %39, 255 ; <ubyte>:40 [#uses=1]
+ store ubyte %40, ubyte* %26
+ seteq ubyte %39, 1 ; <bool>:22 [#uses=1]
+ br bool %22, label %25, label %24
+
+; <label>:23 ; preds = %20, %291
+ phi uint [ %29, %20 ], [ %201, %291 ] ; <uint>:33 [#uses=1]
+ add uint %33, 1 ; <uint>:34 [#uses=3]
+ getelementptr [262144 x ubyte]* %bfarray, int 0, uint %34 ; <ubyte*>:27 [#uses=1]
+ load ubyte* %27 ; <ubyte>:41 [#uses=1]
+ seteq ubyte %41, 0 ; <bool>:23 [#uses=1]
+ br bool %23, label %361, label %360
+
+; <label>:24 ; preds = %22, %253
+ phi uint [ %32, %22 ], [ %179, %253 ] ; <uint>:35 [#uses=3]
+ getelementptr [262144 x ubyte]* %bfarray, int 0, uint %35 ; <ubyte*>:28 [#uses=2]
+ load ubyte* %28 ; <ubyte>:42 [#uses=2]
+ add ubyte %42, 255 ; <ubyte>:43 [#uses=1]
+ store ubyte %43, ubyte* %28
+ seteq ubyte %42, 1 ; <bool>:24 [#uses=1]
+ br bool %24, label %27, label %26
+
+; <label>:25 ; preds = %22, %253
+ phi uint [ %32, %22 ], [ %179, %253 ] ; <uint>:36 [#uses=1]
+ add uint %36, 1 ; <uint>:37 [#uses=3]
+ getelementptr [262144 x ubyte]* %bfarray, int 0, uint %37 ; <ubyte*>:29 [#uses=1]
+ load ubyte* %29 ; <ubyte>:44 [#uses=1]
+ seteq ubyte %44, 0 ; <bool>:25 [#uses=1]
+ br bool %25, label %291, label %290
+
+; <label>:26 ; preds = %24, %197
+ phi uint [ %35, %24 ], [ %154, %197 ] ; <uint>:38 [#uses=3]
+ getelementptr [262144 x ubyte]* %bfarray, int 0, uint %38 ; <ubyte*>:30 [#uses=2]
+ load ubyte* %30 ; <ubyte>:45 [#uses=2]
+ add ubyte %45, 255 ; <ubyte>:46 [#uses=1]
+ store ubyte %46, ubyte* %30
+ seteq ubyte %45, 1 ; <bool>:26 [#uses=1]
+ br bool %26, label %29, label %28
+
+; <label>:27 ; preds = %24, %197
+ phi uint [ %35, %24 ], [ %154, %197 ] ; <uint>:39 [#uses=1]
+ add uint %39, 1 ; <uint>:40 [#uses=3]
+ getelementptr [262144 x ubyte]* %bfarray, int 0, uint %40 ; <ubyte*>:31 [#uses=1]
+ load ubyte* %31 ; <ubyte>:47 [#uses=1]
+ seteq ubyte %47, 0 ; <bool>:27 [#uses=1]
+ br bool %27, label %253, label %252
+
+; <label>:28 ; preds = %26, %35
+ phi uint [ %38, %26 ], [ %51, %35 ] ; <uint>:41 [#uses=3]
+ getelementptr [262144 x ubyte]* %bfarray, int 0, uint %41 ; <ubyte*>:32 [#uses=2]
+ load ubyte* %32 ; <ubyte>:48 [#uses=2]
+ add ubyte %48, 255 ; <ubyte>:49 [#uses=1]
+ store ubyte %49, ubyte* %32
+ seteq ubyte %48, 1 ; <bool>:28 [#uses=1]
+ br bool %28, label %31, label %30
+
+; <label>:29 ; preds = %26, %35
+ phi uint [ %38, %26 ], [ %51, %35 ] ; <uint>:42 [#uses=1]
+ add uint %42, 1 ; <uint>:43 [#uses=3]
+ getelementptr [262144 x ubyte]* %bfarray, int 0, uint %43 ; <ubyte*>:33 [#uses=1]
+ load ubyte* %33 ; <ubyte>:50 [#uses=1]
+ seteq ubyte %50, 0 ; <bool>:29 [#uses=1]
+ br bool %29, label %197, label %196
+
+; <label>:30 ; preds = %28, %33
+ phi uint [ %41, %28 ], [ %47, %33 ] ; <uint>:44 [#uses=3]
+ getelementptr [262144 x ubyte]* %bfarray, int 0, uint %44 ; <ubyte*>:34 [#uses=1]
+ load ubyte* %34 ; <ubyte>:51 [#uses=1]
+ seteq ubyte %51, 0 ; <bool>:30 [#uses=1]
+ br bool %30, label %33, label %32
+
+; <label>:31 ; preds = %28, %33
+ phi uint [ %41, %28 ], [ %47, %33 ] ; <uint>:45 [#uses=1]
+ add uint %45, 1 ; <uint>:46 [#uses=3]
+ getelementptr [262144 x ubyte]* %bfarray, int 0, uint %46 ; <ubyte*>:35 [#uses=1]
+ load ubyte* %35 ; <ubyte>:52 [#uses=1]
+ seteq ubyte %52, 0 ; <bool>:31 [#uses=1]
+ br bool %31, label %35, label %34
+
+; <label>:32 ; preds = %30, %32
+ getelementptr [262144 x ubyte]* %bfarray, int 0, uint %44 ; <ubyte*>:36 [#uses=2]
+ load ubyte* %36 ; <ubyte>:53 [#uses=2]
+ add ubyte %53, 255 ; <ubyte>:54 [#uses=1]
+ store ubyte %54, ubyte* %36
+ seteq ubyte %53, 1 ; <bool>:32 [#uses=1]
+ br bool %32, label %33, label %32
+
+; <label>:33 ; preds = %30, %32
+ add uint %44, 1 ; <uint>:47 [#uses=3]
+ getelementptr [262144 x ubyte]* %bfarray, int 0, uint %47 ; <ubyte*>:37 [#uses=2]
+ load ubyte* %37 ; <ubyte>:55 [#uses=2]
+ add ubyte %55, 255 ; <ubyte>:56 [#uses=1]
+ store ubyte %56, ubyte* %37
+ seteq ubyte %55, 1 ; <bool>:33 [#uses=1]
+ br bool %33, label %31, label %30
+
+; <label>:34 ; preds = %31, %195
+ phi uint [ %46, %31 ], [ %150, %195 ] ; <uint>:48 [#uses=66]
+ getelementptr [262144 x ubyte]* %bfarray, int 0, uint %48 ; <ubyte*>:38 [#uses=2]
+ load ubyte* %38 ; <ubyte>:57 [#uses=1]
+ add ubyte %57, 255 ; <ubyte>:58 [#uses=1]
+ store ubyte %58, ubyte* %38
+ add uint %48, 112 ; <uint>:49 [#uses=3]
+ getelementptr [262144 x ubyte]* %bfarray, int 0, uint %49 ; <ubyte*>:39 [#uses=1]
+ load ubyte* %39 ; <ubyte>:59 [#uses=1]
+ seteq ubyte %59, 0 ; <bool>:34 [#uses=1]
+ br bool %34, label %37, label %36
+
+; <label>:35 ; preds = %31, %195
+ phi uint [ %46, %31 ], [ %150, %195 ] ; <uint>:50 [#uses=1]
+ add uint %50, 4294967295 ; <uint>:51 [#uses=3]
+ getelementptr [262144 x ubyte]* %bfarray, int 0, uint %51 ; <ubyte*>:40 [#uses=1]
+ load ubyte* %40 ; <ubyte>:60 [#uses=1]
+ seteq ubyte %60, 0 ; <bool>:35 [#uses=1]
+ br bool %35, label %29, label %28
+
+; <label>:36 ; preds = %34, %36
+ getelementptr [262144 x ubyte]* %bfarray, int 0, uint %49 ; <ubyte*>:41 [#uses=2]
+ load ubyte* %41 ; <ubyte>:61 [#uses=2]
+ add ubyte %61, 255 ; <ubyte>:62 [#uses=1]
+ store ubyte %62, ubyte* %41
+ seteq ubyte %61, 1 ; <bool>:36 [#uses=1]
+ br bool %36, label %37, label %36
+
+; <label>:37 ; preds = %34, %36
+ add uint %48, 10 ; <uint>:52 [#uses=4]
+ getelementptr [262144 x ubyte]* %bfarray, int 0, uint %52 ; <ubyte*>:42 [#uses=1]
+ load ubyte* %42 ; <ubyte>:63 [#uses=1]
+ seteq ubyte %63, 0 ; <bool>:37 [#uses=1]
+ br bool %37, label %39, label %38
+
+; <label>:38 ; preds = %37, %38
+ getelementptr [262144 x ubyte]* %bfarray, int 0, uint %52 ; <ubyte*>:43 [#uses=2]
+ load ubyte* %43 ; <ubyte>:64 [#uses=1]
+ add ubyte %64, 255 ; <ubyte>:65 [#uses=1]
+ store ubyte %65, ubyte* %43
+ add uint %48, 11 ; <uint>:53 [#uses=1]
+ getelementptr [262144 x ubyte]* %bfarray, int 0, uint %53 ; <ubyte*>:44 [#uses=2]
+ load ubyte* %44 ; <ubyte>:66 [#uses=1]
+ add ubyte %66, 1 ; <ubyte>:67 [#uses=1]
+ store ubyte %67, ubyte* %44
+ getelementptr [262144 x ubyte]* %bfarray, int 0, uint %49 ; <ubyte*>:45 [#uses=2]
+ load ubyte* %45 ; <ubyte>:68 [#uses=1]
+ add ubyte %68, 1 ; <ubyte>:69 [#uses=1]
+ store ubyte %69, ubyte* %45
+ getelementptr [262144 x ubyte]* %bfarray, int 0, uint %52 ; <ubyte*>:46 [#uses=1]
+ load ubyte* %46 ; <ubyte>:70 [#uses=1]
+ seteq ubyte %70, 0 ; <bool>:38 [#uses=1]
+ br bool %38, label %39, label %38
+
+; <label>:39 ; preds = %37, %38
+ add uint %48, 11 ; <uint>:54 [#uses=2]
+ getelementptr [262144 x ubyte]* %bfarray, int 0, uint %54 ; <ubyte*>:47 [#uses=1]
+ load ubyte* %47 ; <ubyte>:71 [#uses=1]
+ seteq ubyte %71, 0 ; <bool>:39 [#uses=1]
+ br bool %39, label %41, label %40
+
+; <label>:40 ; preds = %39, %40
+ getelementptr [262144 x ubyte]* %bfarray, int 0, uint %52 ; <ubyte*>:48 [#uses=2]
+ load ubyte* %48 ; <ubyte>:72 [#uses=1]
+ add ubyte %72, 1 ; <ubyte>:73 [#uses=1]
+ store ubyte %73, ubyte* %48
+ getelementptr [262144 x ubyte]* %bfarray, int 0, uint %54 ; <ubyte*>:49 [#uses=2]
+ load ubyte* %49 ; <ubyte>:74 [#uses=2]
+ add ubyte %74, 255 ; <ubyte>:75 [#uses=1]
+ store ubyte %75, ubyte* %49
+ seteq ubyte %74, 1 ; <bool>:40 [#uses=1]
+ br bool %40, label %41, label %40
+
+; <label>:41 ; preds = %39, %40
+ add uint %48, 118 ; <uint>:55 [#uses=3]
+ getelementptr [262144 x ubyte]* %bfarray, int 0, uint %55 ; <ubyte*>:50 [#uses=1]
+ load ubyte* %50 ; <ubyte>:76 [#uses=1]
+ seteq ubyte %76, 0 ; <bool>:41 [#uses=1]
+ br bool %41, label %43, label %42
+
+; <label>:42 ; preds = %41, %42
+ getelementptr [262144 x ubyte]* %bfarray, int 0, uint %55 ; <ubyte*>:51 [#uses=2]
+ load ubyte* %51 ; <ubyte>:77 [#uses=2]
+ add ubyte %77, 255 ; <ubyte>:78 [#uses=1]
+ store ubyte %78, ubyte* %51
+ seteq ubyte %77, 1 ; <bool>:42 [#uses=1]
+ br bool %42, label %43, label %42
+
+; <label>:43 ; preds = %41, %42
+ add uint %48, 16 ; <uint>:56 [#uses=4]
+ getelementptr [262144 x ubyte]* %bfarray, int 0, uint %56 ; <ubyte*>:52 [#uses=1]
+ load ubyte* %52 ; <ubyte>:79 [#uses=1]
+ seteq ubyte %79, 0 ; <bool>:43 [#uses=1]
+ br bool %43, label %45, label %44
+
+; <label>:44 ; preds = %43, %44
+ getelementptr [262144 x ubyte]* %bfarray, int 0, uint %56 ; <ubyte*>:53 [#uses=2]
+ load ubyte* %53 ; <ubyte>:80 [#uses=1]
+ add ubyte %80, 255 ; <ubyte>:81 [#uses=1]
+ store ubyte %81, ubyte* %53
+ add uint %48, 17 ; <uint>:57 [#uses=1]
+ getelementptr [262144 x ubyte]* %bfarray, int 0, uint %57 ; <ubyte*>:54 [#uses=2]
+ load ubyte* %54 ; <ubyte>:82 [#uses=1]
+ add ubyte %82, 1 ; <ubyte>:83 [#uses=1]
+ store ubyte %83, ubyte* %54
+ getelementptr [262144 x ubyte]* %bfarray, int 0, uint %55 ; <ubyte*>:55 [#uses=2]
+ load ubyte* %55 ; <ubyte>:84 [#uses=1]
+ add ubyte %84, 1 ; <ubyte>:85 [#uses=1]
+ store ubyte %85, ubyte* %55
+ getelementptr [262144 x ubyte]* %bfarray, int 0, uint %56 ; <ubyte*>:56 [#uses=1]
+ load ubyte* %56 ; <ubyte>:86 [#uses=1]
+ seteq ubyte %86, 0 ; <bool>:44 [#uses=1]
+ br bool %44, label %45, label %44
+
+; <label>:45 ; preds = %43, %44
+ add uint %48, 17 ; <uint>:58 [#uses=2]
+ getelementptr [262144 x ubyte]* %bfarray, int 0, uint %58 ; <ubyte*>:57 [#uses=1]
+ load ubyte* %57 ; <ubyte>:87 [#uses=1]
+ seteq ubyte %87, 0 ; <bool>:45 [#uses=1]
+ br bool %45, label %47, label %46
+
+; <label>:46 ; preds = %45, %46
+ getelementptr [262144 x ubyte]* %bfarray, int 0, uint %56 ; <ubyte*>:58 [#uses=2]
+ load ubyte* %58 ; <ubyte>:88 [#uses=1]
+ add ubyte %88, 1 ; <ubyte>:89 [#uses=1]
+ store ubyte %89, ubyte* %58
+ getelementptr [262144 x ubyte]* %bfarray, int 0, uint %58 ; <ubyte*>:59 [#uses=2]
+ load ubyte* %59 ; <ubyte>:90 [#uses=2]
+ add ubyte %90, 255 ; <ubyte>:91 [#uses=1]
+ store ubyte %91, ubyte* %59
+ seteq ubyte %90, 1 ; <bool>:46 [#uses=1]
+ br bool %46, label %47, label %46
+
+; <label>:47 ; preds = %45, %46
+ add uint %48, 124 ; <uint>:59 [#uses=3]
+ getelementptr [262144 x ubyte]* %bfarray, int 0, uint %59 ; <ubyte*>:60 [#uses=1]
+ load ubyte* %60 ; <ubyte>:92 [#uses=1]
+ seteq ubyte %92, 0 ; <bool>:47 [#uses=1]
+ br bool %47, label %49, label %48
+
+; <label>:48 ; preds = %47, %48
+ getelementptr [262144 x ubyte]* %bfarray, int 0, uint %59 ; <ubyte*>:61 [#uses=2]
+ load ubyte* %61 ; <ubyte>:93 [#uses=2]
+ add ubyte %93, 255 ; <ubyte>:94 [#uses=1]
+ store ubyte %94, ubyte* %61
+ seteq ubyte %93, 1 ; <bool>:48 [#uses=1]
+ br bool %48, label %49, label %48
+
+; <label>:49 ; preds = %47, %48
+ add uint %48, 22 ; <uint>:60 [#uses=4]
+ getelementptr [262144 x ubyte]* %bfarray, int 0, uint %60 ; <ubyte*>:62 [#uses=1]
+ load ubyte* %62 ; <ubyte>:95 [#uses=1]
+ seteq ubyte %95, 0 ; <bool>:49 [#uses=1]
+ br bool %49, label %51, label %50
+
+; <label>:50 ; preds = %49, %50
+ getelementptr [262144 x ubyte]* %bfarray, int 0, uint %60 ; <ubyte*>:63 [#uses=2]
+ load ubyte* %63 ; <ubyte>:96 [#uses=1]
+ add ubyte %96, 255 ; <ubyte>:97 [#uses=1]
+ store ubyte %97, ubyte* %63
+ add uint %48, 23 ; <uint>:61 [#uses=1]
+ getelementptr [262144 x ubyte]* %bfarray, int 0, uint %61 ; <ubyte*>:64 [#uses=2]
+ load ubyte* %64 ; <ubyte>:98 [#uses=1]
+ add ubyte %98, 1 ; <ubyte>:99 [#uses=1]
+ store ubyte %99, ubyte* %64
+ getelementptr [262144 x ubyte]* %bfarray, int 0, uint %59 ; <ubyte*>:65 [#uses=2]
+ load ubyte* %65 ; <ubyte>:100 [#uses=1]
+ add ubyte %100, 1 ; <ubyte>:101 [#uses=1]
+ store ubyte %101, ubyte* %65
+ getelementptr [262144 x ubyte]* %bfarray, int 0, uint %60 ; <ubyte*>:66 [#uses=1]
+ load ubyte* %66 ; <ubyte>:102 [#uses=1]
+ seteq ubyte %102, 0 ; <bool>:50 [#uses=1]
+ br bool %50, label %51, label %50
+
+; <label>:51 ; preds = %49, %50
+ add uint %48, 23 ; <uint>:62 [#uses=2]
+ getelementptr [262144 x ubyte]* %bfarray, int 0, uint %62 ; <ubyte*>:67 [#uses=1]
+ load ubyte* %67 ; <ubyte>:103 [#uses=1]
+ seteq ubyte %103, 0 ; <bool>:51 [#uses=1]
+ br bool %51, label %53, label %52
+
+; <label>:52 ; preds = %51, %52
+ getelementptr [262144 x ubyte]* %bfarray, int 0, uint %60 ; <ubyte*>:68 [#uses=2]
+ load ubyte* %68 ; <ubyte>:104 [#uses=1]
+ add ubyte %104, 1 ; <ubyte>:105 [#uses=1]
+ store ubyte %105, ubyte* %68
+ getelementptr [262144 x ubyte]* %bfarray, int 0, uint %62 ; <ubyte*>:69 [#uses=2]
+ load ubyte* %69 ; <ubyte>:106 [#uses=2]
+ add ubyte %106, 255 ; <ubyte>:107 [#uses=1]
+ store ubyte %107, ubyte* %69
+ seteq ubyte %106, 1 ; <bool>:52 [#uses=1]
+ br bool %52, label %53, label %52
+
+; <label>:53 ; preds = %51, %52
+ add uint %48, 130 ; <uint>:63 [#uses=3]
+ getelementptr [262144 x ubyte]* %bfarray, int 0, uint %63 ; <ubyte*>:70 [#uses=1]
+ load ubyte* %70 ; <ubyte>:108 [#uses=1]
+ seteq ubyte %108, 0 ; <bool>:53 [#uses=1]
+ br bool %53, label %55, label %54
+
+; <label>:54 ; preds = %53, %54
+ getelementptr [262144 x ubyte]* %bfarray, int 0, uint %63 ; <ubyte*>:71 [#uses=2]
+ load ubyte* %71 ; <ubyte>:109 [#uses=2]
+ add ubyte %109, 255 ; <ubyte>:110 [#uses=1]
+ store ubyte %110, ubyte* %71
+ seteq ubyte %109, 1 ; <bool>:54 [#uses=1]
+ br bool %54, label %55, label %54
+
+; <label>:55 ; preds = %53, %54
+ add uint %48, 28 ; <uint>:64 [#uses=4]
+ getelementptr [262144 x ubyte]* %bfarray, int 0, uint %64 ; <ubyte*>:72 [#uses=1]
+ load ubyte* %72 ; <ubyte>:111 [#uses=1]
+ seteq ubyte %111, 0 ; <bool>:55 [#uses=1]
+ br bool %55, label %57, label %56
+
+; <label>:56 ; preds = %55, %56
+ getelementptr [262144 x ubyte]* %bfarray, int 0, uint %64 ; <ubyte*>:73 [#uses=2]
+ load ubyte* %73 ; <ubyte>:112 [#uses=1]
+ add ubyte %112, 255 ; <ubyte>:113 [#uses=1]
+ store ubyte %113, ubyte* %73
+ add uint %48, 29 ; <uint>:65 [#uses=1]
+ getelementptr [262144 x ubyte]* %bfarray, int 0, uint %65 ; <ubyte*>:74 [#uses=2]
+ load ubyte* %74 ; <ubyte>:114 [#uses=1]
+ add ubyte %114, 1 ; <ubyte>:115 [#uses=1]
+ store ubyte %115, ubyte* %74
+ getelementptr [262144 x ubyte]* %bfarray, int 0, uint %63 ; <ubyte*>:75 [#uses=2]
+ load ubyte* %75 ; <ubyte>:116 [#uses=1]
+ add ubyte %116, 1 ; <ubyte>:117 [#uses=1]
+ store ubyte %117, ubyte* %75
+ getelementptr [262144 x ubyte]* %bfarray, int 0, uint %64 ; <ubyte*>:76 [#uses=1]
+ load ubyte* %76 ; <ubyte>:118 [#uses=1]
+ seteq ubyte %118, 0 ; <bool>:56 [#uses=1]
+ br bool %56, label %57, label %56
+
+; <label>:57 ; preds = %55, %56
+ add uint %48, 29 ; <uint>:66 [#uses=2]
+ getelementptr [262144 x ubyte]* %bfarray, int 0, uint %66 ; <ubyte*>:77 [#uses=1]
+ load ubyte* %77 ; <ubyte>:119 [#uses=1]
+ seteq ubyte %119, 0 ; <bool>:57 [#uses=1]
+ br bool %57, label %59, label %58
+
+; <label>:58 ; preds = %57, %58
+ getelementptr [262144 x ubyte]* %bfarray, int 0, uint %64 ; <ubyte*>:78 [#uses=2]
+ load ubyte* %78 ; <ubyte>:120 [#uses=1]
+ add ubyte %120, 1 ; <ubyte>:121 [#uses=1]
+ store ubyte %121, ubyte* %78
+ getelementptr [262144 x ubyte]* %bfarray, int 0, uint %66 ; <ubyte*>:79 [#uses=2]
+ load ubyte* %79 ; <ubyte>:122 [#uses=2]
+ add ubyte %122, 255 ; <ubyte>:123 [#uses=1]
+ store ubyte %123, ubyte* %79
+ seteq ubyte %122, 1 ; <bool>:58 [#uses=1]
+ br bool %58, label %59, label %58
+
+; <label>:59 ; preds = %57, %58
+ add uint %48, 136 ; <uint>:67 [#uses=3]
+ getelementptr [262144 x ubyte]* %bfarray, int 0, uint %67 ; <ubyte*>:80 [#uses=1]
+ load ubyte* %80 ; <ubyte>:124 [#uses=1]
+ seteq ubyte %124, 0 ; <bool>:59 [#uses=1]
+ br bool %59, label %61, label %60
+
+; <label>:60 ; preds = %59, %60
+ getelementptr [262144 x ubyte]* %bfarray, int 0, uint %67 ; <ubyte*>:81 [#uses=2]
+ load ubyte* %81 ; <ubyte>:125 [#uses=2]
+ add ubyte %125, 255 ; <ubyte>:126 [#uses=1]
+ store ubyte %126, ubyte* %81
+ seteq ubyte %125, 1 ; <bool>:60 [#uses=1]
+ br bool %60, label %61, label %60
+
+; <label>:61 ; preds = %59, %60
+ add uint %48, 34 ; <uint>:68 [#uses=4]
+ getelementptr [262144 x ubyte]* %bfarray, int 0, uint %68 ; <ubyte*>:82 [#uses=1]
+ load ubyte* %82 ; <ubyte>:127 [#uses=1]
+ seteq ubyte %127, 0 ; <bool>:61 [#uses=1]
+ br bool %61, label %63, label %62
+
+; <label>:62 ; preds = %61, %62
+ getelementptr [262144 x ubyte]* %bfarray, int 0, uint %68 ; <ubyte*>:83 [#uses=2]
+ load ubyte* %83 ; <ubyte>:128 [#uses=1]
+ add ubyte %128, 255 ; <ubyte>:129 [#uses=1]
+ store ubyte %129, ubyte* %83
+ add uint %48, 35 ; <uint>:69 [#uses=1]
+ getelementptr [262144 x ubyte]* %bfarray, int 0, uint %69 ; <ubyte*>:84 [#uses=2]
+ load ubyte* %84 ; <ubyte>:130 [#uses=1]
+ add ubyte %130, 1 ; <ubyte>:131 [#uses=1]
+ store ubyte %131, ubyte* %84
+ getelementptr [262144 x ubyte]* %bfarray, int 0, uint %67 ; <ubyte*>:85 [#uses=2]
+ load ubyte* %85 ; <ubyte>:132 [#uses=1]
+ add ubyte %132, 1 ; <ubyte>:133 [#uses=1]
+ store ubyte %133, ubyte* %85
+ getelementptr [262144 x ubyte]* %bfarray, int 0, uint %68 ; <ubyte*>:86 [#uses=1]
+ load ubyte* %86 ; <ubyte>:134 [#uses=1]
+ seteq ubyte %134, 0 ; <bool>:62 [#uses=1]
+ br bool %62, label %63, label %62
+
+; <label>:63 ; preds = %61, %62
+ add uint %48, 35 ; <uint>:70 [#uses=2]
+ getelementptr [262144 x ubyte]* %bfarray, int 0, uint %70 ; <ubyte*>:87 [#uses=1]
+ load ubyte* %87 ; <ubyte>:135 [#uses=1]
+ seteq ubyte %135, 0 ; <bool>:63 [#uses=1]
+ br bool %63, label %65, label %64
+
+; <label>:64 ; preds = %63, %64
+ getelementptr [262144 x ubyte]* %bfarray, int 0, uint %68 ; <ubyte*>:88 [#uses=2]
+ load ubyte* %88 ; <ubyte>:136 [#uses=1]
+ add ubyte %136, 1 ; <ubyte>:137 [#uses=1]
+ store ubyte %137, ubyte* %88
+ getelementptr [262144 x ubyte]* %bfarray, int 0, uint %70 ; <ubyte*>:89 [#uses=2]
+ load ubyte* %89 ; <ubyte>:138 [#uses=2]
+ add ubyte %138, 255 ; <ubyte>:139 [#uses=1]
+ store ubyte %139, ubyte* %89
+ seteq ubyte %138, 1 ; <bool>:64 [#uses=1]
+ br bool %64, label %65, label %64
+
+; <label>:65 ; preds = %63, %64
+ add uint %48, 142 ; <uint>:71 [#uses=3]
+ getelementptr [262144 x ubyte]* %bfarray, int 0, uint %71 ; <ubyte*>:90 [#uses=1]
+ load ubyte* %90 ; <ubyte>:140 [#uses=1]
+ seteq ubyte %140, 0 ; <bool>:65 [#uses=1]
+ br bool %65, label %67, label %66
+
+; <label>:66 ; preds = %65, %66
+ getelementptr [262144 x ubyte]* %bfarray, int 0, uint %71 ; <ubyte*>:91 [#uses=2]
+ load ubyte* %91 ; <ubyte>:141 [#uses=2]
+ add ubyte %141, 255 ; <ubyte>:142 [#uses=1]
+ store ubyte %142, ubyte* %91
+ seteq ubyte %141, 1 ; <bool>:66 [#uses=1]
+ br bool %66, label %67, label %66
+
+; <label>:67 ; preds = %65, %66
+ add uint %48, 40 ; <uint>:72 [#uses=4]
+ getelementptr [262144 x ubyte]* %bfarray, int 0, uint %72 ; <ubyte*>:92 [#uses=1]
+ load ubyte* %92 ; <ubyte>:143 [#uses=1]
+ seteq ubyte %143, 0 ; <bool>:67 [#uses=1]
+ br bool %67, label %69, label %68
+
+; <label>:68 ; preds = %67, %68
+ getelementptr [262144 x ubyte]* %bfarray, int 0, uint %72 ; <ubyte*>:93 [#uses=2]
+ load ubyte* %93 ; <ubyte>:144 [#uses=1]
+ add ubyte %144, 255 ; <ubyte>:145 [#uses=1]
+ store ubyte %145, ubyte* %93
+ add uint %48, 41 ; <uint>:73 [#uses=1]
+ getelementptr [262144 x ubyte]* %bfarray, int 0, uint %73 ; <ubyte*>:94 [#uses=2]
+ load ubyte* %94 ; <ubyte>:146 [#uses=1]
+ add ubyte %146, 1 ; <ubyte>:147 [#uses=1]
+ store ubyte %147, ubyte* %94
+ getelementptr [262144 x ubyte]* %bfarray, int 0, uint %71 ; <ubyte*>:95 [#uses=2]
+ load ubyte* %95 ; <ubyte>:148 [#uses=1]
+ add ubyte %148, 1 ; <ubyte>:149 [#uses=1]
+ store ubyte %149, ubyte* %95
+ getelementptr [262144 x ubyte]* %bfarray, int 0, uint %72 ; <ubyte*>:96 [#uses=1]
+ load ubyte* %96 ; <ubyte>:150 [#uses=1]
+ seteq ubyte %150, 0 ; <bool>:68 [#uses=1]
+ br bool %68, label %69, label %68
+
+; <label>:69 ; preds = %67, %68
+ add uint %48, 41 ; <uint>:74 [#uses=2]
+ getelementptr [262144 x ubyte]* %bfarray, int 0, uint %74 ; <ubyte*>:97 [#uses=1]
+ load ubyte* %97 ; <ubyte>:151 [#uses=1]
+ seteq ubyte %151, 0 ; <bool>:69 [#uses=1]
+ br bool %69, label %71, label %70
+
+; <label>:70 ; preds = %69, %70
+ getelementptr [262144 x ubyte]* %bfarray, int 0, uint %72 ; <ubyte*>:98 [#uses=2]
+ load ubyte* %98 ; <ubyte>:152 [#uses=1]
+ add ubyte %152, 1 ; <ubyte>:153 [#uses=1]
+ store ubyte %153, ubyte* %98
+ getelementptr [262144 x ubyte]* %bfarray, int 0, uint %74 ; <ubyte*>:99 [#uses=2]
+ load ubyte* %99 ; <ubyte>:154 [#uses=2]
+ add ubyte %154, 255 ; <ubyte>:155 [#uses=1]
+ store ubyte %155, ubyte* %99
+ seteq ubyte %154, 1 ; <bool>:70 [#uses=1]
+ br bool %70, label %71, label %70
+
+; <label>:71 ; preds = %69, %70
+ add uint %48, 148 ; <uint>:75 [#uses=3]
+ getelementptr [262144 x ubyte]* %bfarray, int 0, uint %75 ; <ubyte*>:100 [#uses=1]
+ load ubyte* %100 ; <ubyte>:156 [#uses=1]
+ seteq ubyte %156, 0 ; <bool>:71 [#uses=1]
+ br bool %71, label %73, label %72
+
+; <label>:72 ; preds = %71, %72
+ getelementptr [262144 x ubyte]* %bfarray, int 0, uint %75 ; <ubyte*>:101 [#uses=2]
+ load ubyte* %101 ; <ubyte>:157 [#uses=2]
+ add ubyte %157, 255 ; <ubyte>:158 [#uses=1]
+ store ubyte %158, ubyte* %101
+ seteq ubyte %157, 1 ; <bool>:72 [#uses=1]
+ br bool %72, label %73, label %72
+
+; <label>:73 ; preds = %71, %72
+ add uint %48, 46 ; <uint>:76 [#uses=4]
+ getelementptr [262144 x ubyte]* %bfarray, int 0, uint %76 ; <ubyte*>:102 [#uses=1]
+ load ubyte* %102 ; <ubyte>:159 [#uses=1]
+ seteq ubyte %159, 0 ; <bool>:73 [#uses=1]
+ br bool %73, label %75, label %74
+
+; <label>:74 ; preds = %73, %74
+ getelementptr [262144 x ubyte]* %bfarray, int 0, uint %76 ; <ubyte*>:103 [#uses=2]
+ load ubyte* %103 ; <ubyte>:160 [#uses=1]
+ add ubyte %160, 255 ; <ubyte>:161 [#uses=1]
+ store ubyte %161, ubyte* %103
+ add uint %48, 47 ; <uint>:77 [#uses=1]
+ getelementptr [262144 x ubyte]* %bfarray, int 0, uint %77 ; <ubyte*>:104 [#uses=2]
+ load ubyte* %104 ; <ubyte>:162 [#uses=1]
+ add ubyte %162, 1 ; <ubyte>:163 [#uses=1]
+ store ubyte %163, ubyte* %104
+ getelementptr [262144 x ubyte]* %bfarray, int 0, uint %75 ; <ubyte*>:105 [#uses=2]
+ load ubyte* %105 ; <ubyte>:164 [#uses=1]
+ add ubyte %164, 1 ; <ubyte>:165 [#uses=1]
+ store ubyte %165, ubyte* %105
+ getelementptr [262144 x ubyte]* %bfarray, int 0, uint %76 ; <ubyte*>:106 [#uses=1]
+ load ubyte* %106 ; <ubyte>:166 [#uses=1]
+ seteq ubyte %166, 0 ; <bool>:74 [#uses=1]
+ br bool %74, label %75, label %74
+
+; <label>:75 ; preds = %73, %74
+ add uint %48, 47 ; <uint>:78 [#uses=2]
+ getelementptr [262144 x ubyte]* %bfarray, int 0, uint %78 ; <ubyte*>:107 [#uses=1]
+ load ubyte* %107 ; <ubyte>:167 [#uses=1]
+ seteq ubyte %167, 0 ; <bool>:75 [#uses=1]
+ br bool %75, label %77, label %76
+
+; <label>:76 ; preds = %75, %76
+ getelementptr [262144 x ubyte]* %bfarray, int 0, uint %76 ; <ubyte*>:108 [#uses=2]
+ load ubyte* %108 ; <ubyte>:168 [#uses=1]
+ add ubyte %168, 1 ; <ubyte>:169 [#uses=1]
+ store ubyte %169, ubyte* %108
+ getelementptr [262144 x ubyte]* %bfarray, int 0, uint %78 ; <ubyte*>:109 [#uses=2]
+ load ubyte* %109 ; <ubyte>:170 [#uses=2]
+ add ubyte %170, 255 ; <ubyte>:171 [#uses=1]
+ store ubyte %171, ubyte* %109
+ seteq ubyte %170, 1 ; <bool>:76 [#uses=1]
+ br bool %76, label %77, label %76
+
+; <label>:77 ; preds = %75, %76
+ add uint %48, 154 ; <uint>:79 [#uses=3]
+ getelementptr [262144 x ubyte]* %bfarray, int 0, uint %79 ; <ubyte*>:110 [#uses=1]
+ load ubyte* %110 ; <ubyte>:172 [#uses=1]
+ seteq ubyte %172, 0 ; <bool>:77 [#uses=1]
+ br bool %77, label %79, label %78
+
+; <label>:78 ; preds = %77, %78
+ getelementptr [262144 x ubyte]* %bfarray, int 0, uint %79 ; <ubyte*>:111 [#uses=2]
+ load ubyte* %111 ; <ubyte>:173 [#uses=2]
+ add ubyte %173, 255 ; <ubyte>:174 [#uses=1]
+ store ubyte %174, ubyte* %111
+ seteq ubyte %173, 1 ; <bool>:78 [#uses=1]
+ br bool %78, label %79, label %78
+
+; <label>:79 ; preds = %77, %78
+ add uint %48, 52 ; <uint>:80 [#uses=4]
+ getelementptr [262144 x ubyte]* %bfarray, int 0, uint %80 ; <ubyte*>:112 [#uses=1]
+ load ubyte* %112 ; <ubyte>:175 [#uses=1]
+ seteq ubyte %175, 0 ; <bool>:79 [#uses=1]
+ br bool %79, label %81, label %80
+
+; <label>:80 ; preds = %79, %80
+ getelementptr [262144 x ubyte]* %bfarray, int 0, uint %80 ; <ubyte*>:113 [#uses=2]
+ load ubyte* %113 ; <ubyte>:176 [#uses=1]
+ add ubyte %176, 255 ; <ubyte>:177 [#uses=1]
+ store ubyte %177, ubyte* %113
+ add uint %48, 53 ; <uint>:81 [#uses=1]
+ getelementptr [262144 x ubyte]* %bfarray, int 0, uint %81 ; <ubyte*>:114 [#uses=2]
+ load ubyte* %114 ; <ubyte>:178 [#uses=1]
+ add ubyte %178, 1 ; <ubyte>:179 [#uses=1]
+ store ubyte %179, ubyte* %114
+ getelementptr [262144 x ubyte]* %bfarray, int 0, uint %79 ; <ubyte*>:115 [#uses=2]
+ load ubyte* %115 ; <ubyte>:180 [#uses=1]
+ add ubyte %180, 1 ; <ubyte>:181 [#uses=1]
+ store ubyte %181, ubyte* %115
+ getelementptr [262144 x ubyte]* %bfarray, int 0, uint %80 ; <ubyte*>:116 [#uses=1]
+ load ubyte* %116 ; <ubyte>:182 [#uses=1]
+ seteq ubyte %182, 0 ; <bool>:80 [#uses=1]
+ br bool %80, label %81, label %80
+
+; <label>:81 ; preds = %79, %80
+ add uint %48, 53 ; <uint>:82 [#uses=2]
+ getelementptr [262144 x ubyte]* %bfarray, int 0, uint %82 ; <ubyte*>:117 [#uses=1]
+ load ubyte* %117 ; <ubyte>:183 [#uses=1]
+ seteq ubyte %183, 0 ; <bool>:81 [#uses=1]
+ br bool %81, label %83, label %82
+
+; <label>:82 ; preds = %81, %82
+ getelementptr [262144 x ubyte]* %bfarray, int 0, uint %80 ; <ubyte*>:118 [#uses=2]
+ load ubyte* %118 ; <ubyte>:184 [#uses=1]
+ add ubyte %184, 1 ; <ubyte>:185 [#uses=1]
+ store ubyte %185, ubyte* %118
+ getelementptr [262144 x ubyte]* %bfarray, int 0, uint %82 ; <ubyte*>:119 [#uses=2]
+ load ubyte* %119 ; <ubyte>:186 [#uses=2]
+ add ubyte %186, 255 ; <ubyte>:187 [#uses=1]
+ store ubyte %187, ubyte* %119
+ seteq ubyte %186, 1 ; <bool>:82 [#uses=1]
+ br bool %82, label %83, label %82
+
+; <label>:83 ; preds = %81, %82
+ add uint %48, 160 ; <uint>:83 [#uses=3]
+ getelementptr [262144 x ubyte]* %bfarray, int 0, uint %83 ; <ubyte*>:120 [#uses=1]
+ load ubyte* %120 ; <ubyte>:188 [#uses=1]
+ seteq ubyte %188, 0 ; <bool>:83 [#uses=1]
+ br bool %83, label %85, label %84
+
+; <label>:84 ; preds = %83, %84
+ get