int delnb_(int *n0, int *nb, int *n, int *list, int *lptr, int *lend, int *lnew,
           int *lph) {
  int i__1;
  static int i__, lp, nn, lpb, lpl, lpp, lnw;
  --lend;
  --list;
  --lptr;
  nn = *n;
  if (*n0 < 1 || *n0 > nn || *nb < 1 || *nb > nn || nn < 3) {
    *lph = -1;
    return 0;
  }
  lpl = lend[*n0];
  lpp = lpl;
  lpb = lptr[lpp];
L1:
  if (list[lpb] == *nb) {
    goto L2;
  }
  lpp = lpb;
  lpb = lptr[lpp];
  if (lpb != lpl) {
    goto L1;
  }
  if ((i__1 = list[lpb], ((i__1) >= 0 ? (i__1) : -(i__1))) != *nb) {
    *lph = -2;
    return 0;
  }
  lend[*n0] = lpp;
  lp = lend[*nb];
  if (list[lp] < 0) {
    list[lpp] = -list[lpp];
  }
  goto L3;
L2:
  lp = lend[*nb];
  if (list[lp] < 0 && list[lpl] > 0) {
    lend[*n0] = lpp;
    list[lpp] = -list[lpp];
  }
L3:
  lptr[lpp] = lptr[lpb];
  lnw = *lnew - 1;
  list[lpb] = list[lnw];
  lptr[lpb] = lptr[lnw];
  for (i__ = nn; i__ >= 1; --i__) {
    if (lend[i__] == lnw) {
      lend[i__] = lpb;
      goto L5;
    }
  }
L5:
  i__1 = lnw - 1;
  for (i__ = 1; i__ <= i__1; ++i__) {
    if (lptr[i__] == lnw) {
      lptr[i__] = lpb;
    }
  }
  *lnew = lnw;
  *lph = lpb;
  return 0;
}


x86 assembly (clang, -O0):
<delnb_>:
push   %rbp
mov    %rsp,%rbp
mov    0x18(%rbp),%rax
mov    0x10(%rbp),%rax
mov    %rdi,-0x10(%rbp)
mov    %rsi,-0x18(%rbp)
mov    %rdx,-0x20(%rbp)
mov    %rcx,-0x28(%rbp)
mov    %r8,-0x30(%rbp)
mov    %r9,-0x38(%rbp)
mov    -0x38(%rbp),%rax
add    $0xfffffffffffffffc,%rax
mov    %rax,-0x38(%rbp)
mov    -0x28(%rbp),%rax
add    $0xfffffffffffffffc,%rax
mov    %rax,-0x28(%rbp)
mov    -0x30(%rbp),%rax
add    $0xfffffffffffffffc,%rax
mov    %rax,-0x30(%rbp)
mov    -0x20(%rbp),%rax
mov    (%rax),%eax
mov    %eax,0x2ed8(%rip)
mov    -0x10(%rbp),%rax
cmpl   $0x1,(%rax)
jl     119f <delnb_+0x9f>
mov    -0x10(%rbp),%rax
mov    (%rax),%eax
cmp    0x2ebf(%rip),%eax
jg     119f <delnb_+0x9f>
mov    -0x18(%rbp),%rax
cmpl   $0x1,(%rax)
jl     119f <delnb_+0x9f>
mov    -0x18(%rbp),%rax
mov    (%rax),%eax
cmp    0x2ea0(%rip),%eax
jg     119f <delnb_+0x9f>
cmpl   $0x3,0x2e93(%rip)
jge    11b5 <delnb_+0xb5>
mov    0x18(%rbp),%rax
movl   $0xffffffff,(%rax)
movl   $0x0,-0x4(%rbp)
jmp    14bf <delnb_+0x3bf>
mov    -0x38(%rbp),%rax
mov    -0x10(%rbp),%rcx
movslq (%rcx),%rcx
mov    (%rax,%rcx,4),%eax
mov    %eax,0x2e6b(%rip)
mov    0x2e65(%rip),%eax
mov    %eax,0x2e63(%rip)
mov    -0x30(%rbp),%rax
movslq 0x2e58(%rip),%rcx
mov    (%rax,%rcx,4),%eax
mov    %eax,0x2e47(%rip)
mov    -0x28(%rbp),%rax
movslq 0x2e3c(%rip),%rcx
mov    (%rax,%rcx,4),%eax
mov    -0x18(%rbp),%rcx
cmp    (%rcx),%eax
jne    1208 <delnb_+0x108>
jmp    12f2 <delnb_+0x1f2>
mov    0x2e22(%rip),%eax
mov    %eax,0x2e24(%rip)
mov    -0x30(%rbp),%rax
movslq 0x2e19(%rip),%rcx
mov    (%rax,%rcx,4),%eax
mov    %eax,0x2e08(%rip)
mov    0x2e02(%rip),%eax
cmp    0x2e00(%rip),%eax
je     123f <delnb_+0x13f>
jmp    11e9 <delnb_+0xe9>
mov    -0x28(%rbp),%rax
movslq 0x2de6(%rip),%rcx
mov    (%rax,%rcx,4),%eax
mov    %eax,-0x3c(%rbp)
cmpl   $0x0,-0x3c(%rbp)
jl     1265 <delnb_+0x165>
mov    -0x3c(%rbp),%eax
mov    %eax,-0x40(%rbp)
jmp    126d <delnb_+0x16d>
xor    %eax,%eax
sub    -0x3c(%rbp),%eax
mov    %eax,-0x40(%rbp)
mov    -0x40(%rbp),%eax
mov    -0x18(%rbp),%rcx
cmp    (%rcx),%eax
je     1292 <delnb_+0x192>
mov    0x18(%rbp),%rax
movl   $0xfffffffe,(%rax)
movl   $0x0,-0x4(%rbp)
jmp    14bf <delnb_+0x3bf>
mov    0x2da0(%rip),%edx
mov    -0x38(%rbp),%rax
mov    -0x10(%rbp),%rcx
movslq (%rcx),%rcx
mov    %edx,(%rax,%rcx,4)
mov    -0x38(%rbp),%rax
mov    -0x18(%rbp),%rcx
movslq (%rcx),%rcx
mov    (%rax,%rcx,4),%eax
mov    %eax,0x2d6e(%rip)
mov    -0x28(%rbp),%rax
movslq 0x2d63(%rip),%rcx
cmpl   $0x0,(%rax,%rcx,4)
jge    12ed <delnb_+0x1ed>
mov    -0x28(%rbp),%rax
movslq 0x2d5e(%rip),%rcx
xor    %edx,%edx
sub    (%rax,%rcx,4),%edx
mov    -0x28(%rbp),%rax
movslq 0x2d4e(%rip),%rcx
mov    %edx,(%rax,%rcx,4)
jmp    1367 <delnb_+0x267>
mov    -0x38(%rbp),%rax
mov    -0x18(%rbp),%rcx
movslq (%rcx),%rcx
mov    (%rax,%rcx,4),%eax
mov    %eax,0x2d22(%rip)
mov    -0x28(%rbp),%rax
movslq 0x2d17(%rip),%rcx
cmpl   $0x0,(%rax,%rcx,4)
jge    1362 <delnb_+0x262>
mov    -0x28(%rbp),%rax
movslq 0x2d0e(%rip),%rcx
cmpl   $0x0,(%rax,%rcx,4)
jle    1362 <delnb_+0x262>
mov    0x2d02(%rip),%edx
mov    -0x38(%rbp),%rax
mov    -0x10(%rbp),%rcx
movslq (%rcx),%rcx
mov    %edx,(%rax,%rcx,4)
mov    -0x28(%rbp),%rax
movslq 0x2ce9(%rip),%rcx
xor    %edx,%edx
sub    (%rax,%rcx,4),%edx
mov    -0x28(%rbp),%rax
movslq 0x2cd9(%rip),%rcx
mov    %edx,(%rax,%rcx,4)
jmp    1367 <delnb_+0x267>
mov    -0x30(%rbp),%rax
movslq 0x2cbe(%rip),%rcx
mov    (%rax,%rcx,4),%edx
mov    -0x30(%rbp),%rax
movslq 0x2cb8(%rip),%rcx
mov    %edx,(%rax,%rcx,4)
mov    0x10(%rbp),%rax
mov    (%rax),%eax
sub    $0x1,%eax
mov    %eax,0x2caa(%rip)
mov    -0x28(%rbp),%rax
movslq 0x2c9f(%rip),%rcx
mov    (%rax,%rcx,4),%edx
mov    -0x28(%rbp),%rax
movslq 0x2c85(%rip),%rcx
mov    %edx,(%rax,%rcx,4)
mov    -0x30(%rbp),%rax
movslq 0x2c83(%rip),%rcx
mov    (%rax,%rcx,4),%edx
mov    -0x30(%rbp),%rax
movslq 0x2c69(%rip),%rcx
mov    %edx,(%rax,%rcx,4)
mov    0x2c5c(%rip),%eax
mov    %eax,0x2c4e(%rip)
cmpl   $0x1,0x2c47(%rip)
jl     142f <delnb_+0x32f>
mov    -0x38(%rbp),%rax
movslq 0x2c36(%rip),%rcx
mov    (%rax,%rcx,4),%eax
cmp    0x2c45(%rip),%eax
jne    1416 <delnb_+0x316>
mov    0x2c2d(%rip),%edx
mov    -0x38(%rbp),%rax
movslq 0x2c16(%rip),%rcx
mov    %edx,(%rax,%rcx,4)
jmp    1434 <delnb_+0x334>
jmp    141b <delnb_+0x31b>
mov    0x2c03(%rip),%eax
add    $0xffffffff,%eax
mov    %eax,0x2bfa(%rip)
jmp    13d6 <delnb_+0x2d6>
jmp    1434 <delnb_+0x334>
mov    0x2c02(%rip),%eax
sub    $0x1,%eax
mov    %eax,-0x3c(%rbp)
movl   $0x1,0x2bda(%rip)
mov    0x2bd4(%rip),%eax
cmp    -0x3c(%rbp),%eax
jg     14a0 <delnb_+0x3a0>
mov    -0x30(%rbp),%rax
movslq 0x2bc0(%rip),%rcx
mov    (%rax,%rcx,4),%eax
cmp    0x2bcf(%rip),%eax
jne    1487 <delnb_+0x387>
mov    0x2bb7(%rip),%edx
mov    -0x30(%rbp),%rax
movslq 0x2ba0(%rip),%rcx
mov    %edx,(%rax,%rcx,4)
jmp    148c <delnb_+0x38c>
mov    0x2b92(%rip),%eax
add    $0x1,%eax
mov    %eax,0x2b89(%rip)
jmp    144a <delnb_+0x34a>
mov    0x2b96(%rip),%ecx
mov    0x10(%rbp),%rax
mov    %ecx,(%rax)
mov    0x2b7e(%rip),%ecx
mov    0x18(%rbp),%rax
mov    %ecx,(%rax)
movl   $0x0,-0x4(%rbp)
mov    -0x4(%rbp),%eax
pop    %rbp
ret

x86 assembly (clang, -O2):
<delnb_>:
push   %rbp
push   %r15
push   %r14
push   %r12
push   %rbx
mov    0x38(%rsp),%r11
mov    (%rdi),%r10d
mov    $0xffffffff,%edi
test   %r10d,%r10d
jle    1330 <delnb_+0x230>
mov    (%rdx),%edx
cmp    %edx,%r10d
jg     1330 <delnb_+0x230>
movslq (%rsi),%r15
test   %r15,%r15
jle    1330 <delnb_+0x230>
cmp    $0x3,%edx
jl     1330 <delnb_+0x230>
cmp    %edx,%r15d
jg     1330 <delnb_+0x230>
mov    -0x4(%r9,%r10,4),%ebp
movslq %ebp,%r14
mov    -0x4(%r8,%r14,4),%edi
movslq %edi,%rax
cmp    %r15d,-0x4(%rcx,%rax,4)
jne    1170 <delnb_+0x70>
mov    %ebp,%ebx
jmp    1185 <delnb_+0x85>
cs nopw 0x0(%rax,%rax,1)
nopl   0x0(%rax)
mov    %edi,%ebx
mov    -0x4(%r8,%rax,4),%edi
cmp    %ebp,%edi
je     11b0 <delnb_+0xb0>
movslq %edi,%rax
cmp    %r15d,-0x4(%rcx,%rax,4)
jne    1170 <delnb_+0x70>
mov    %rax,%rsi
movslq -0x4(%r9,%r15,4),%rax
cmpl   $0x0,-0x4(%rcx,%rax,4)
js     1199 <delnb_+0x99>
mov    %rsi,%r14
jmp    11e9 <delnb_+0xe9>
cmpl   $0x0,-0x4(%rcx,%r14,4)
jle    1194 <delnb_+0x94>
mov    %ebx,-0x4(%r9,%r10,4)
movslq %ebx,%rax
mov    %rsi,%r14
mov    %edi,%ebp
jmp    11e3 <delnb_+0xe3>
mov    -0x4(%rcx,%r14,4),%edi
mov    %edi,%r12d
neg    %r12d
cmovs  %edi,%r12d
mov    $0xfffffffe,%edi
cmp    %r15d,%r12d
jne    1330 <delnb_+0x230>
mov    %ebx,-0x4(%r9,%r10,4)
movslq (%rsi),%rsi
movslq -0x4(%r9,%rsi,4),%rsi
cmpl   $0x0,-0x4(%rcx,%rsi,4)
mov    %ebp,%edi
jns    11e9 <delnb_+0xe9>
negl   -0x4(%rcx,%rax,4)
mov    %ebp,%edi
mov    0x30(%rsp),%r10
mov    -0x4(%r8,%r14,4),%eax
movslq %ebx,%rsi
mov    %eax,-0x4(%r8,%rsi,4)
movslq (%r10),%rax
lea    -0x1(%rax),%esi
mov    -0x8(%rcx,%rax,4),%ebx
mov    %ebx,-0x4(%rcx,%r14,4)
mov    -0x8(%r8,%rax,4),%ecx
mov    %ecx,-0x4(%r8,%r14,4)
test   %edx,%edx
jle    1237 <delnb_+0x137>
lea    (%r9,%rdx,4),%rcx
add    $0xfffffffffffffffc,%rcx
mov    %edx,%ebx
cmp    %esi,-0x4(%r9,%rbx,4)
je     1241 <delnb_+0x141>
lea    -0x1(%rdx),%ebx
add    $0xfffffffffffffffc,%rcx
cmp    $0x1,%edx
mov    %ebx,%edx
jg     1220 <delnb_+0x120>
cmp    $0x3,%eax
jge    124c <delnb_+0x14c>
jmp    132d <delnb_+0x22d>
mov    %edi,(%rcx)
cmp    $0x3,%eax
jl     132d <delnb_+0x22d>
mov    %esi,%ecx
lea    -0x1(%rcx),%r9
mov    $0x1,%edx
cmp    $0x8,%r9
jb     1349 <delnb_+0x249>
mov    %r9,%rax
and    $0xfffffffffffffff8,%rax
lea    0x1(%rax),%rdx
movd   %esi,%xmm0
pshufd $0x0,%xmm0,%xmm0
xor    %ebx,%ebx
jmp    128d <delnb_+0x18d>
nopl   0x0(%rax)
add    $0x8,%rbx
cmp    %rbx,%rax
je     1328 <delnb_+0x228>
movdqu (%r8,%rbx,4),%xmm1
pcmpeqd %xmm0,%xmm1
movd   %xmm1,%ebp
test   $0x1,%bpl
je     12a5 <delnb_+0x1a5>
mov    %edi,(%r8,%rbx,4)
pextrw $0x2,%xmm1,%ebp
test   $0x1,%bpl
je     12b5 <delnb_+0x1b5>
mov    %edi,0x4(%r8,%rbx,4)
pextrw $0x4,%xmm1,%ebp
test   $0x1,%bpl
je     12c5 <delnb_+0x1c5>
mov    %edi,0x8(%r8,%rbx,4)
pextrw $0x6,%xmm1,%ebp
test   $0x1,%bpl
je     12d5 <delnb_+0x1d5>
mov    %edi,0xc(%r8,%rbx,4)
movdqu 0x10(%r8,%rbx,4),%xmm1
pcmpeqd %xmm0,%xmm1
movd   %xmm1,%ebp
test   $0x1,%bpl
je     12ef <delnb_+0x1ef>
mov    %edi,0x10(%r8,%rbx,4)
pextrw $0x2,%xmm1,%ebp
test   $0x1,%bpl
je     12ff <delnb_+0x1ff>
mov    %edi,0x14(%r8,%rbx,4)
pextrw $0x4,%xmm1,%ebp
test   $0x1,%bpl
je     130f <delnb_+0x20f>
mov    %edi,0x18(%r8,%rbx,4)
pextrw $0x6,%xmm1,%ebp
test   $0x1,%bpl
je     1280 <delnb_+0x180>
mov    %edi,0x1c(%r8,%rbx,4)
jmp    1280 <delnb_+0x180>
cmp    %rax,%r9
jne    1349 <delnb_+0x249>
mov    %esi,(%r10)
mov    %edi,(%r11)
xor    %eax,%eax
pop    %rbx
pop    %r12
pop    %r14
pop    %r15
pop    %rbp
ret
xchg   %ax,%ax
add    $0x1,%rdx
cmp    %rdx,%rcx
je     132d <delnb_+0x22d>
cmp    %esi,-0x4(%r8,%rdx,4)
jne    1340 <delnb_+0x240>
mov    %edi,-0x4(%r8,%rdx,4)
jmp    1340 <delnb_+0x240>

LLVM IR (-O0):
@delnb_.i__ = internal global i32 0
@delnb_.lp = internal global i32 0
@delnb_.nn = internal global i32 0
@delnb_.lpb = internal global i32 0
@delnb_.lpl = internal global i32 0
@delnb_.lpp = internal global i32 0
@delnb_.lnw = internal global i32 0
define i32 @delnb_(i32* %0, i32* %1, i32* %2, i32* %3, i32* %4, i32* %5, i32* %6, i32* %7) {
%9 = alloca i32
%10 = alloca i32*
%11 = alloca i32*
%12 = alloca i32*
%13 = alloca i32*
%14 = alloca i32*
%15 = alloca i32*
%16 = alloca i32*
%17 = alloca i32*
%18 = alloca i32
store i32* %0, i32** %10
store i32* %1, i32** %11
store i32* %2, i32** %12
store i32* %3, i32** %13
store i32* %4, i32** %14
store i32* %5, i32** %15
store i32* %6, i32** %16
store i32* %7, i32** %17
%19 = load i32*, i32** %15
%20 = getelementptr inbounds i32, i32* %19, i32 -1
store i32* %20, i32** %15
%21 = load i32*, i32** %13
%22 = getelementptr inbounds i32, i32* %21, i32 -1
store i32* %22, i32** %13
%23 = load i32*, i32** %14
%24 = getelementptr inbounds i32, i32* %23, i32 -1
store i32* %24, i32** %14
%25 = load i32*, i32** %12
%26 = load i32, i32* %25
store i32 %26, i32* @delnb_.nn
%27 = load i32*, i32** %10
%28 = load i32, i32* %27
%29 = icmp slt i32 %28, 1
br i1 %29, label %47, label %30
30: ; preds = %8
%31 = load i32*, i32** %10
%32 = load i32, i32* %31
%33 = load i32, i32* @delnb_.nn
%34 = icmp sgt i32 %32, %33
br i1 %34, label %47, label %35
35: ; preds = %30
%36 = load i32*, i32** %11
%37 = load i32, i32* %36
%38 = icmp slt i32 %37, 1
br i1 %38, label %47, label %39
39: ; preds = %35
%40 = load i32*, i32** %11
%41 = load i32, i32* %40
%42 = load i32, i32* @delnb_.nn
%43 = icmp sgt i32 %41, %42
br i1 %43, label %47, label %44
44: ; preds = %39
%45 = load i32, i32* @delnb_.nn
%46 = icmp slt i32 %45, 3
br i1 %46, label %47, label %49
47: ; preds = %44, %39, %35, %30, %8
%48 = load i32*, i32** %17
store i32 -1, i32* %48
store i32 0, i32* %9
br label %256
49: ; preds = %44
%50 = load i32*, i32** %15
%51 = load i32*, i32** %10
%52 = load i32, i32* %51
%53 = sext i32 %52 to i64
%54 = getelementptr inbounds i32, i32* %50, i64 %53
%55 = load i32, i32* %54
store i32 %55, i32* @delnb_.lpl
%56 = load i32, i32* @delnb_.lpl
store i32 %56, i32* @delnb_.lpp
%57 = load i32*, i32** %14
%58 = load i32, i32* @delnb_.lpp
%59 = sext i32 %58 to i64
%60 = getelementptr inbounds i32, i32* %57, i64 %59
%61 = load i32, i32* %60
store i32 %61, i32* @delnb_.lpb
br label %62
62: ; preds = %82, %49
%63 = load i32*, i32** %13
%64 = load i32, i32* @delnb_.lpb
%65 = sext i32 %64 to i64
%66 = getelementptr inbounds i32, i32* %63, i64 %65
%67 = load i32, i32* %66
%68 = load i32*, i32** %11
%69 = load i32, i32* %68
%70 = icmp eq i32 %67, %69
br i1 %70, label %71, label %72
71: ; preds = %62
br label %134
72: ; preds = %62
%73 = load i32, i32* @delnb_.lpb
store i32 %73, i32* @delnb_.lpp
%74 = load i32*, i32** %14
%75 = load i32, i32* @delnb_.lpp
%76 = sext i32 %75 to i64
%77 = getelementptr inbounds i32, i32* %74, i64 %76
%78 = load i32, i32* %77
store i32 %78, i32* @delnb_.lpb
%79 = load i32, i32* @delnb_.lpb
%80 = load i32, i32* @delnb_.lpl
%81 = icmp ne i32 %79, %80
br i1 %81, label %82, label %83
82: ; preds = %72
br label %62
83: ; preds = %72
%84 = load i32*, i32** %13
%85 = load i32, i32* @delnb_.lpb
%86 = sext i32 %85 to i64
%87 = getelementptr inbounds i32, i32* %84, i64 %86
%88 = load i32, i32* %87
store i32 %88, i32* %18
%89 = load i32, i32* %18
%90 = icmp sge i32 %89, 0
br i1 %90, label %91, label %93
91: ; preds = %83
%92 = load i32, i32* %18
br label %96
93: ; preds = %83
%94 = load i32, i32* %18
%95 = sub nsw i32 0, %94
br label %96
96: ; preds = %93, %91
%97 = phi i32 [ %92, %91 ], [ %95, %93 ]
%98 = load i32*, i32** %11
%99 = load i32, i32* %98
%100 = icmp ne i32 %97, %99
br i1 %100, label %101, label %103
101: ; preds = %96
%102 = load i32*, i32** %17
store i32 -2, i32* %102
store i32 0, i32* %9
br label %256
103: ; preds = %96
%104 = load i32, i32* @delnb_.lpp
%105 = load i32*, i32** %15
%106 = load i32*, i32** %10
%107 = load i32, i32* %106
%108 = sext i32 %107 to i64
%109 = getelementptr inbounds i32, i32* %105, i64 %108
store i32 %104, i32* %109
%110 = load i32*, i32** %15
%111 = load i32*, i32** %11
%112 = load i32, i32* %111
%113 = sext i32 %112 to i64
%114 = getelementptr inbounds i32, i32* %110, i64 %113
%115 = load i32, i32* %114
store i32 %115, i32* @delnb_.lp
%116 = load i32*, i32** %13
%117 = load i32, i32* @delnb_.lp
%118 = sext i32 %117 to i64
%119 = getelementptr inbounds i32, i32* %116, i64 %118
%120 = load i32, i32* %119
%121 = icmp slt i32 %120, 0
br i1 %121, label %122, label %133
122: ; preds = %103
%123 = load i32*, i32** %13
%124 = load i32, i32* @delnb_.lpp
%125 = sext i32 %124 to i64
%126 = getelementptr inbounds i32, i32* %123, i64 %125
%127 = load i32, i32* %126
%128 = sub nsw i32 0, %127
%129 = load i32*, i32** %13
%130 = load i32, i32* @delnb_.lpp
%131 = sext i32 %130 to i64
%132 = getelementptr inbounds i32, i32* %129, i64 %131
store i32 %128, i32* %132
br label %133
133: ; preds = %122, %103
br label %172
134: ; preds = %71
%135 = load i32*, i32** %15
%136 = load i32*, i32** %11
%137 = load i32, i32* %136
%138 = sext i32 %137 to i64
%139 = getelementptr inbounds i32, i32* %135, i64 %138
%140 = load i32, i32* %139
store i32 %140, i32* @delnb_.lp
%141 = load i32*, i32** %13
%142 = load i32, i32* @delnb_.lp
%143 = sext i32 %142 to i64
%144 = getelementptr inbounds i32, i32* %141, i64 %143
%145 = load i32, i32* %144
%146 = icmp slt i32 %145, 0
br i1 %146, label %147, label %171
147: ; preds = %134
%148 = load i32*, i32** %13
%149 = load i32, i32* @delnb_.lpl
%150 = sext i32 %149 to i64
%151 = getelementptr inbounds i32, i32* %148, i64 %150
%152 = load i32, i32* %151
%153 = icmp sgt i32 %152, 0
br i1 %153, label %154, label %171
154: ; preds = %147
%155 = load i32, i32* @delnb_.lpp
%156 = load i32*, i32** %15
%157 = load i32*, i32** %10
%158 = load i32, i32* %157
%159 = sext i32 %158 to i64
%160 = getelementptr inbounds i32, i32* %156, i64 %159
store i32 %155, i32* %160
%161 = load i32*, i32** %13
%162 = load i32, i32* @delnb_.lpp
%163 = sext i32 %162 to i64
%164 = getelementptr inbounds i32, i32* %161, i64 %163
%165 = load i32, i32* %164
%166 = sub nsw i32 0, %165
%167 = load i32*, i32** %13
%168 = load i32, i32* @delnb_.lpp
%169 = sext i32 %168 to i64
%170 = getelementptr inbounds i32, i32* %167, i64 %169
store i32 %166, i32* %170
br label %171
171: ; preds = %154, %147, %134
br label %172
172: ; preds = %171, %133
%173 = load i32*, i32** %14
%174 = load i32, i32* @delnb_.lpb
%175 = sext i32 %174 to i64
%176 = getelementptr inbounds i32, i32* %173, i64 %175
%177 = load i32, i32* %176
%178 = load i32*, i32** %14
%179 = load i32, i32* @delnb_.lpp
%180 = sext i32 %179 to i64
%181 = getelementptr inbounds i32, i32* %178, i64 %180
store i32 %177, i32* %181
%182 = load i32*, i32** %16
%183 = load i32, i32* %182
%184 = sub nsw i32 %183, 1
store i32 %184, i32* @delnb_.lnw
%185 = load i32*, i32** %13
%186 = load i32, i32* @delnb_.lnw
%187 = sext i32 %186 to i64
%188 = getelementptr inbounds i32, i32* %185, i64 %187
%189 = load i32, i32* %188
%190 = load i32*, i32** %13
%191 = load i32, i32* @delnb_.lpb
%192 = sext i32 %191 to i64
%193 = getelementptr inbounds i32, i32* %190, i64 %192
store i32 %189, i32* %193
%194 = load i32*, i32** %14
%195 = load i32, i32* @delnb_.lnw
%196 = sext i32 %195 to i64
%197 = getelementptr inbounds i32, i32* %194, i64 %196
%198 = load i32, i32* %197
%199 = load i32*, i32** %14
%200 = load i32, i32* @delnb_.lpb
%201 = sext i32 %200 to i64
%202 = getelementptr inbounds i32, i32* %199, i64 %201
store i32 %198, i32* %202
%203 = load i32, i32* @delnb_.nn
store i32 %203, i32* @delnb_.i__
br label %204
204: ; preds = %222, %172
%205 = load i32, i32* @delnb_.i__
%206 = icmp sge i32 %205, 1
br i1 %206, label %207, label %225
207: ; preds = %204
%208 = load i32*, i32** %15
%209 = load i32, i32* @delnb_.i__
%210 = sext i32 %209 to i64
%211 = getelementptr inbounds i32, i32* %208, i64 %210
%212 = load i32, i32* %211
%213 = load i32, i32* @delnb_.lnw
%214 = icmp eq i32 %212, %213
br i1 %214, label %215, label %221
215: ; preds = %207
%216 = load i32, i32* @delnb_.lpb
%217 = load i32*, i32** %15
%218 = load i32, i32* @delnb_.i__
%219 = sext i32 %218 to i64
%220 = getelementptr inbounds i32, i32* %217, i64 %219
store i32 %216, i32* %220
br label %226
221: ; preds = %207
br label %222
222: ; preds = %221
%223 = load i32, i32* @delnb_.i__
%224 = add nsw i32 %223, -1
store i32 %224, i32* @delnb_.i__
br label %204
225: ; preds = %204
br label %226
226: ; preds = %225, %215
%227 = load i32, i32* @delnb_.lnw
%228 = sub nsw i32 %227, 1
store i32 %228, i32* %18
store i32 1, i32* @delnb_.i__
br label %229
229: ; preds = %248, %226
%230 = load i32, i32* @delnb_.i__
%231 = load i32, i32* %18
%232 = icmp sle i32 %230, %231
br i1 %232, label %233, label %251
233: ; preds = %229
%234 = load i32*, i32** %14
%235 = load i32, i32* @delnb_.i__
%236 = sext i32 %235 to i64
%237 = getelementptr inbounds i32, i32* %234, i64 %236
%238 = load i32, i32* %237
%239 = load i32, i32* @delnb_.lnw
%240 = icmp eq i32 %238, %239
br i1 %240, label %241, label %247
241: ; preds = %233
%242 = load i32, i32* @delnb_.lpb
%243 = load i32*, i32** %14
%244 = load i32, i32* @delnb_.i__
%245 = sext i32 %244 to i64
%246 = getelementptr inbounds i32, i32* %243, i64 %245
store i32 %242, i32* %246
br label %247
247: ; preds = %241, %233
br label %248
248: ; preds = %247
%249 = load i32, i32* @delnb_.i__
%250 = add nsw i32 %249, 1
store i32 %250, i32* @delnb_.i__
br label %229
251: ; preds = %229
%252 = load i32, i32* @delnb_.lnw
%253 = load i32*, i32** %16
store i32 %252, i32* %253
%254 = load i32, i32* @delnb_.lpb
%255 = load i32*, i32** %17
store i32 %254, i32* %255
store i32 0, i32* %9
br label %256
256: ; preds = %251, %101, %47
%257 = load i32, i32* %9
ret i32 %257
}

LLVM IR (-O2):
define i32 @delnb_(i32* nocapture %0, i32* nocapture %1, i32* nocapture %2, i32* nocapture %3, i32* nocapture %4, i32* nocapture %5, i32* nocapture %6, i32* nocapture writeonly %7) {
%9 = getelementptr inbounds i32, i32* %5, i64 -1
%10 = getelementptr inbounds i32, i32* %3, i64 -1
%11 = getelementptr inbounds i32, i32* %4, i64 -1
%12 = load i32, i32* %2
%13 = load i32, i32* %0
%14 = icmp slt i32 %13, 1
%15 = icmp sgt i32 %13, %12
%16 = select i1 %14, i1 true, i1 %15
br i1 %16, label %195, label %17
17: ; preds = %8
%18 = load i32, i32* %1
%19 = icmp slt i32 %18, 1
br i1 %19, label %195, label %20
20: ; preds = %17
%21 = icmp sgt i32 %18, %12
%22 = icmp slt i32 %12, 3
%23 = or i1 %22, %21
br i1 %23, label %195, label %24
24: ; preds = %20
%25 = zext i32 %13 to i64
%26 = getelementptr inbounds i32, i32* %9, i64 %25
%27 = load i32, i32* %26
%28 = sext i32 %27 to i64
%29 = getelementptr inbounds i32, i32* %11, i64 %28
%30 = load i32, i32* %29
%31 = sext i32 %30 to i64
%32 = getelementptr inbounds i32, i32* %10, i64 %31
%33 = load i32, i32* %32
%34 = icmp eq i32 %33, %18
br i1 %34, label %62, label %40
35: ; preds = %40
%36 = sext i32 %44 to i64
%37 = getelementptr inbounds i32, i32* %10, i64 %36
%38 = load i32, i32* %37
%39 = icmp eq i32 %38, %18
br i1 %39, label %60, label %40
40: ; preds = %24, %35
%41 = phi i64 [ %36, %35 ], [ %31, %24 ]
%42 = phi i32 [ %44, %35 ], [ %30, %24 ]
%43 = getelementptr inbounds i32, i32* %11, i64 %41
%44 = load i32, i32* %43
%45 = icmp eq i32 %44, %27
br i1 %45, label %46, label %35
46: ; preds = %40
%47 = getelementptr inbounds i32, i32* %10, i64 %28
%48 = load i32, i32* %47
%49 = tail call i32 @llvm.abs.i32(i32 %48, i1 true)
%50 = icmp eq i32 %49, %18
br i1 %50, label %51, label %195
51: ; preds = %46
store i32 %42, i32* %26
%52 = load i32, i32* %1
%53 = sext i32 %52 to i64
%54 = getelementptr inbounds i32, i32* %9, i64 %53
%55 = load i32, i32* %54
%56 = sext i32 %55 to i64
%57 = getelementptr inbounds i32, i32* %10, i64 %56
%58 = load i32, i32* %57
%59 = icmp slt i32 %58, 0
br i1 %59, label %79, label %87
60: ; preds = %35
%61 = sext i32 %44 to i64
br label %62
62: ; preds = %60, %24
%63 = phi i32 [ %27, %24 ], [ %42, %60 ]
%64 = phi i32 [ %30, %24 ], [ %44, %60 ]
%65 = phi i64 [ %31, %24 ], [ %61, %60 ]
%66 = sext i32 %18 to i64
%67 = getelementptr inbounds i32, i32* %9, i64 %66
%68 = load i32, i32* %67
%69 = sext i32 %68 to i64
%70 = getelementptr inbounds i32, i32* %10, i64 %69
%71 = load i32, i32* %70
%72 = icmp slt i32 %71, 0
br i1 %72, label %73, label %87
73: ; preds = %62
%74 = getelementptr inbounds i32, i32* %10, i64 %28
%75 = load i32, i32* %74
%76 = icmp sgt i32 %75, 0
br i1 %76, label %77, label %87
77: ; preds = %73
store i32 %63, i32* %26
%78 = sext i32 %63 to i64
br label %79
79: ; preds = %51, %77
%80 = phi i64 [ %78, %77 ], [ %41, %51 ]
%81 = phi i64 [ %65, %77 ], [ %28, %51 ]
%82 = phi i32 [ %63, %77 ], [ %42, %51 ]
%83 = phi i32 [ %64, %77 ], [ %27, %51 ]
%84 = getelementptr inbounds i32, i32* %10, i64 %80
%85 = load i32, i32* %84
%86 = sub nsw i32 0, %85
store i32 %86, i32* %84
br label %87
87: ; preds = %79, %62, %73, %51
%88 = phi i64 [ %65, %62 ], [ %65, %73 ], [ %28, %51 ], [ %81, %79 ]
%89 = phi i32 [ %63, %62 ], [ %63, %73 ], [ %42, %51 ], [ %82, %79 ]
%90 = phi i32 [ %64, %62 ], [ %64, %73 ], [ %27, %51 ], [ %83, %79 ]
%91 = getelementptr inbounds i32, i32* %11, i64 %88
%92 = load i32, i32* %91
%93 = sext i32 %89 to i64
%94 = getelementptr inbounds i32, i32* %11, i64 %93
store i32 %92, i32* %94
%95 = load i32, i32* %6
%96 = add nsw i32 %95, -1
%97 = sext i32 %96 to i64
%98 = getelementptr inbounds i32, i32* %10, i64 %97
%99 = load i32, i32* %98
%100 = getelementptr inbounds i32, i32* %10, i64 %88
store i32 %99, i32* %100
%101 = getelementptr inbounds i32, i32* %11, i64 %97
%102 = load i32, i32* %101
store i32 %102, i32* %91
%103 = icmp sgt i32 %12, 0
br i1 %103, label %104, label %116
104: ; preds = %87, %113
%105 = phi i32 [ %114, %113 ], [ %12, %87 ]
%106 = zext i32 %105 to i64
%107 = getelementptr inbounds i32, i32* %9, i64 %106
%108 = load i32, i32* %107
%109 = icmp eq i32 %108, %96
br i1 %109, label %110, label %113
110: ; preds = %104
%111 = zext i32 %105 to i64
%112 = getelementptr inbounds i32, i32* %9, i64 %111
store i32 %90, i32* %112
br label %116
113: ; preds = %104
%114 = add nsw i32 %105, -1
%115 = icmp sgt i32 %105, 1
br i1 %115, label %104, label %116
116: ; preds = %113, %87, %110
%117 = icmp sgt i32 %95, 2
br i1 %117, label %118, label %194
118: ; preds = %116
%119 = zext i32 %96 to i64
%120 = add nsw i64 %119, -1
%121 = icmp ult i64 %120, 8
br i1 %121, label %183, label %122
122: ; preds = %118
%123 = and i64 %120, -8
%124 = or i64 %123, 1
%125 = insertelement <4 x i32> poison, i32 %96, i64 0
%126 = shufflevector <4 x i32> %125, <4 x i32> poison, <4 x i32> zeroinitializer
%127 = insertelement <4 x i32> poison, i32 %96, i64 0
%128 = shufflevector <4 x i32> %127, <4 x i32> poison, <4 x i32> zeroinitializer
br label %129
129: ; preds = %178, %122
%130 = phi i64 [ 0, %122 ], [ %179, %178 ]
%131 = or i64 %130, 1
%132 = or i64 %130, 5
%133 = getelementptr inbounds i32, i32* %11, i64 %131
%134 = bitcast i32* %133 to <4 x i32>*
%135 = load <4 x i32>, <4 x i32>* %134
%136 = getelementptr inbounds i32, i32* %133, i64 4
%137 = bitcast i32* %136 to <4 x i32>*
%138 = load <4 x i32>, <4 x i32>* %137
%139 = icmp eq <4 x i32> %135, %126
%140 = icmp eq <4 x i32> %138, %128
%141 = extractelement <4 x i1> %139, i64 0
br i1 %141, label %142, label %144
142: ; preds = %129
%143 = getelementptr inbounds i32, i32* %11, i64 %131
store i32 %90, i32* %143
br label %144
144: ; preds = %142, %129
%145 = extractelement <4 x i1> %139, i64 1
br i1 %145, label %146, label %149
146: ; preds = %144
%147 = or i64 %130, 2
%148 = getelementptr inbounds i32, i32* %11, i64 %147
store i32 %90, i32* %148
br label %149
149: ; preds = %146, %144
%150 = extractelement <4 x i1> %139, i64 2
br i1 %150, label %151, label %154
151: ; preds = %149
%152 = or i64 %130, 3
%153 = getelementptr inbounds i32, i32* %11, i64 %152
store i32 %90, i32* %153
br label %154
154: ; preds = %151, %149
%155 = extractelement <4 x i1> %139, i64 3
br i1 %155, label %156, label %159
156: ; preds = %154
%157 = or i64 %130, 4
%158 = getelementptr inbounds i32, i32* %11, i64 %157
store i32 %90, i32* %158
br label %159
159: ; preds = %156, %154
%160 = extractelement <4 x i1> %140, i64 0
br i1 %160, label %161, label %163
161: ; preds = %159
%162 = getelementptr inbounds i32, i32* %11, i64 %132
store i32 %90, i32* %162
br label %163
163: ; preds = %161, %159
%164 = extractelement <4 x i1> %140, i64 1
br i1 %164, label %165, label %168
165: ; preds = %163
%166 = or i64 %130, 6
%167 = getelementptr inbounds i32, i32* %11, i64 %166
store i32 %90, i32* %167
br label %168
168: ; preds = %165, %163
%169 = extractelement <4 x i1> %140, i64 2
br i1 %169, label %170, label %173
170: ; preds = %168
%171 = or i64 %130, 7
%172 = getelementptr inbounds i32, i32* %11, i64 %171
store i32 %90, i32* %172
br label %173
173: ; preds = %170, %168
%174 = extractelement <4 x i1> %140, i64 3
br i1 %174, label %175, label %178
175: ; preds = %173
%176 = add i64 %130, 8
%177 = getelementptr inbounds i32, i32* %11, i64 %176
store i32 %90, i32* %177
br label %178
178: ; preds = %175, %173
%179 = add nuw i64 %130, 8
%180 = icmp eq i64 %179, %123
br i1 %180, label %181, label %129
181: ; preds = %178
%182 = icmp eq i64 %120, %123
br i1 %182, label %194, label %183
183: ; preds = %118, %181
%184 = phi i64 [ 1, %118 ], [ %124, %181 ]
br label %185
185: ; preds = %183, %191
%186 = phi i64 [ %192, %191 ], [ %184, %183 ]
%187 = getelementptr inbounds i32, i32* %11, i64 %186
%188 = load i32, i32* %187
%189 = icmp eq i32 %188, %96
br i1 %189, label %190, label %191
190: ; preds = %185
store i32 %90, i32* %187
br label %191
191: ; preds = %185, %190
%192 = add nuw nsw i64 %186, 1
%193 = icmp eq i64 %192, %119
br i1 %193, label %194, label %185
194: ; preds = %191, %181, %116
store i32 %96, i32* %6
br label %195
195: ; preds = %46, %8, %17, %20, %194
%196 = phi i32 [ %90, %194 ], [ -1, %20 ], [ -1, %17 ], [ -1, %8 ], [ -2, %46 ]
store i32 %196, i32* %7
ret i32 0
}