void null_operand(int *a) {
start:
  if (&&start == 0)
    do {
      int a, b;
      int c = &b - &a;
    } while (0);
  if (&&start < 0)
    do {
      int a, b;
      int c = &b - &a;
    } while (0);
  if (&&start <= 0)
    do {
      int a, b;
      int c = &b - &a;
    } while (0);
  if (!(&&start != 0))
    do {
      int a, b;
      int c = &b - &a;
    } while (0);
  if (!(&&start > 0))
    do {
      int a, b;
      int c = &b - &a;
    } while (0);
  if (!(&&start >= 0))
    do {
      int a, b;
      int c = &b - &a;
    } while (0);
  if (!(&&start - 0))
    do {
      int a, b;
      int c = &b - &a;
    } while (0);
  if (&a == 0)
    do {
      int a, b;
      int c = &b - &a;
    } while (0);
  if (&a < 0)
    do {
      int a, b;
      int c = &b - &a;
    } while (0);
  if (&a <= 0)
    do {
      int a, b;
      int c = &b - &a;
    } while (0);
  if (!(&a != 0))
    do {
      int a, b;
      int c = &b - &a;
    } while (0);
  if (!(&a > 0))
    do {
      int a, b;
      int c = &b - &a;
    } while (0);
  if (!(&a >= 0))
    do {
      int a, b;
      int c = &b - &a;
    } while (0);
  if (!(&a - 0))
    do {
      int a, b;
      int c = &b - &a;
    } while (0);
  if (0 == &a)
    do {
      int a, b;
      int c = &b - &a;
    } while (0);
  if (0 > &a)
    do {
      int a, b;
      int c = &b - &a;
    } while (0);
  if (0 >= &a)
    do {
      int a, b;
      int c = &b - &a;
    } while (0);
  if (!(0 != &a))
    do {
      int a, b;
      int c = &b - &a;
    } while (0);
  if (!(0 < &a))
    do {
      int a, b;
      int c = &b - &a;
    } while (0);
  if (!(0 <= &a))
    do {
      int a, b;
      int c = &b - &a;
    } while (0);
  if (a == 0)
    do {
      int a, b;
      int c = &b - &a;
    } while (0);
  if (a < 0)
    do {
      int a, b;
      int c = &b - &a;
    } while (0);
  if (a <= 0)
    do {
      int a, b;
      int c = &b - &a;
    } while (0);
  if (!(a != 0))
    do {
      int a, b;
      int c = &b - &a;
    } while (0);
  if (!(a > 0))
    do {
      int a, b;
      int c = &b - &a;
    } while (0);
  if (!(a >= 0))
    do {
      int a, b;
      int c = &b - &a;
    } while (0);
  if (!(a - 0))
    do {
      int a, b;
      int c = &b - &a;
    } while (0);
  if (0 == a)
    do {
      int a, b;
      int c = &b - &a;
    } while (0);
  if (0 > a)
    do {
      int a, b;
      int c = &b - &a;
    } while (0);
  if (0 >= a)
    do {
      int a, b;
      int c = &b - &a;
    } while (0);
  if (!(0 != a))
    do {
      int a, b;
      int c = &b - &a;
    } while (0);
  if (!(0 < a))
    do {
      int a, b;
      int c = &b - &a;
    } while (0);
  if (!(0 <= a))
    do {
      int a, b;
      int c = &b - &a;
    } while (0);
}


x86 assembly (clang, -O0):
<null_operand>:
push   %rbp
mov    %rsp,%rbp
sub    $0xb8,%rsp
mov    %rdi,-0x8(%rbp)
xor    %eax,%eax
test   $0x1,%al
jne    111e <null_operand+0x1e>
jmp    113a <null_operand+0x3a>
jmp    1123 <null_operand+0x23>
lea    -0x10(%rbp),%rax
lea    -0xc(%rbp),%rcx
sub    %rcx,%rax
sar    $0x2,%rax
mov    %eax,-0x14(%rbp)
jmp    113a <null_operand+0x3a>
lea    -0x32(%rip),%rax
test   %rax,%rax
jne    116b <null_operand+0x6b>
jmp    114f <null_operand+0x4f>
jmp    1154 <null_operand+0x54>
lea    -0x1c(%rbp),%rax
lea    -0x18(%rbp),%rcx
sub    %rcx,%rax
sar    $0x2,%rax
mov    %eax,-0x20(%rbp)
jmp    116b <null_operand+0x6b>
lea    -0x63(%rip),%rax
test   %rax,%rax
jne    119c <null_operand+0x9c>
jmp    1180 <null_operand+0x80>
jmp    1185 <null_operand+0x85>
lea    -0x28(%rbp),%rax
lea    -0x24(%rbp),%rcx
sub    %rcx,%rax
sar    $0x2,%rax
mov    %eax,-0x2c(%rbp)
jmp    119c <null_operand+0x9c>
mov    $0x1,%al
test   $0x1,%al
jne    11c7 <null_operand+0xc7>
jmp    11ab <null_operand+0xab>
jmp    11b0 <null_operand+0xb0>
lea    -0x34(%rbp),%rax
lea    -0x30(%rbp),%rcx
sub    %rcx,%rax
sar    $0x2,%rax
mov    %eax,-0x38(%rbp)
jmp    11c7 <null_operand+0xc7>
lea    -0x8(%rbp),%rax
cmp    $0x0,%rax
jae    11f1 <null_operand+0xf1>
jmp    11da <null_operand+0xda>
lea    -0x40(%rbp),%rax
lea    -0x3c(%rbp),%rcx
sub    %rcx,%rax
sar    $0x2,%rax
mov    %eax,-0x44(%rbp)
jmp    11f1 <null_operand+0xf1>
lea    -0x8(%rbp),%rax
cmp    $0x0,%rax
ja     121b <null_operand+0x11b>
jmp    1204 <null_operand+0x104>
lea    -0x4c(%rbp),%rax
lea    -0x48(%rbp),%rcx
sub    %rcx,%rax
sar    $0x2,%rax
mov    %eax,-0x50(%rbp)
jmp    121b <null_operand+0x11b>
lea    -0x8(%rbp),%rax
cmp    $0x0,%rax
ja     1245 <null_operand+0x145>
jmp    122e <null_operand+0x12e>
lea    -0x58(%rbp),%rax
lea    -0x54(%rbp),%rcx
sub    %rcx,%rax
sar    $0x2,%rax
mov    %eax,-0x5c(%rbp)
jmp    1245 <null_operand+0x145>
lea    -0x8(%rbp),%rax
cmp    $0x0,%rax
jae    126f <null_operand+0x16f>
jmp    1258 <null_operand+0x158>
lea    -0x64(%rbp),%rax
lea    -0x60(%rbp),%rcx
sub    %rcx,%rax
sar    $0x2,%rax
mov    %eax,-0x68(%rbp)
jmp    126f <null_operand+0x16f>
xor    %eax,%eax
lea    -0x8(%rbp),%rcx
cmp    %rcx,%rax
jbe    129a <null_operand+0x19a>
jmp    1283 <null_operand+0x183>
lea    -0x70(%rbp),%rax
lea    -0x6c(%rbp),%rcx
sub    %rcx,%rax
sar    $0x2,%rax
mov    %eax,-0x74(%rbp)
jmp    129a <null_operand+0x19a>
xor    %eax,%eax
lea    -0x8(%rbp),%rcx
cmp    %rcx,%rax
jb     12c5 <null_operand+0x1c5>
jmp    12ae <null_operand+0x1ae>
lea    -0x7c(%rbp),%rax
lea    -0x78(%rbp),%rcx
sub    %rcx,%rax
sar    $0x2,%rax
mov    %eax,-0x80(%rbp)
jmp    12c5 <null_operand+0x1c5>
xor    %eax,%eax
lea    -0x8(%rbp),%rcx
cmp    %rcx,%rax
jb     12f9 <null_operand+0x1f9>
jmp    12d9 <null_operand+0x1d9>
lea    -0x88(%rbp),%rax
lea    -0x84(%rbp),%rcx
sub    %rcx,%rax
sar    $0x2,%rax
mov    %eax,-0x8c(%rbp)
jmp    12f9 <null_operand+0x1f9>
xor    %eax,%eax
lea    -0x8(%rbp),%rcx
cmp    %rcx,%rax
jbe    132d <null_operand+0x22d>
jmp    130d <null_operand+0x20d>
lea    -0x94(%rbp),%rax
lea    -0x90(%rbp),%rcx
sub    %rcx,%rax
sar    $0x2,%rax
mov    %eax,-0x98(%rbp)
jmp    132d <null_operand+0x22d>
cmpq   $0x0,-0x8(%rbp)
jne    135d <null_operand+0x25d>
jmp    133d <null_operand+0x23d>
lea    -0xa0(%rbp),%rax
lea    -0x9c(%rbp),%rcx
sub    %rcx,%rax
sar    $0x2,%rax
mov    %eax,-0xa4(%rbp)
jmp    135d <null_operand+0x25d>
cmpq   $0x0,-0x8(%rbp)
jae    138d <null_operand+0x28d>
jmp    136d <null_operand+0x26d>
lea    -0xac(%rbp),%rax
lea    -0xa8(%rbp),%rcx
sub    %rcx,%rax
sar    $0x2,%rax
mov    %eax,-0xb0(%rbp)
jmp    138d <null_operand+0x28d>
cmpq   $0x0,-0x8(%rbp)
ja     13bd <null_operand+0x2bd>
jmp    139d <null_operand+0x29d>
lea    -0xb8(%rbp),%rax
lea    -0xb4(%rbp),%rcx
sub    %rcx,%rax
sar    $0x2,%rax
mov    %eax,-0xbc(%rbp)
jmp    13bd <null_operand+0x2bd>
cmpq   $0x0,-0x8(%rbp)
jne    13ed <null_operand+0x2ed>
jmp    13cd <null_operand+0x2cd>
lea    -0xc4(%rbp),%rax
lea    -0xc0(%rbp),%rcx
sub    %rcx,%rax
sar    $0x2,%rax
mov    %eax,-0xc8(%rbp)
jmp    13ed <null_operand+0x2ed>
cmpq   $0x0,-0x8(%rbp)
ja     141d <null_operand+0x31d>
jmp    13fd <null_operand+0x2fd>
lea    -0xd0(%rbp),%rax
lea    -0xcc(%rbp),%rcx
sub    %rcx,%rax
sar    $0x2,%rax
mov    %eax,-0xd4(%rbp)
jmp    141d <null_operand+0x31d>
cmpq   $0x0,-0x8(%rbp)
jae    144d <null_operand+0x34d>
jmp    142d <null_operand+0x32d>
lea    -0xdc(%rbp),%rax
lea    -0xd8(%rbp),%rcx
sub    %rcx,%rax
sar    $0x2,%rax
mov    %eax,-0xe0(%rbp)
jmp    144d <null_operand+0x34d>
mov    -0x8(%rbp),%rax
cmp    $0x0,%rax
jne    1480 <null_operand+0x380>
jmp    1460 <null_operand+0x360>
lea    -0xe8(%rbp),%rax
lea    -0xe4(%rbp),%rcx
sub    %rcx,%rax
sar    $0x2,%rax
mov    %eax,-0xec(%rbp)
jmp    1480 <null_operand+0x380>
xor    %eax,%eax
cmp    -0x8(%rbp),%rax
jne    14b1 <null_operand+0x3b1>
jmp    1491 <null_operand+0x391>
lea    -0xf4(%rbp),%rax
lea    -0xf0(%rbp),%rcx
sub    %rcx,%rax
sar    $0x2,%rax
mov    %eax,-0xf8(%rbp)
jmp    14b1 <null_operand+0x3b1>
xor    %eax,%eax
cmp    -0x8(%rbp),%rax
jbe    14e2 <null_operand+0x3e2>
jmp    14c2 <null_operand+0x3c2>
lea    -0x100(%rbp),%rax
lea    -0xfc(%rbp),%rcx
sub    %rcx,%rax
sar    $0x2,%rax
mov    %eax,-0x104(%rbp)
jmp    14e2 <null_operand+0x3e2>
xor    %eax,%eax
cmp    -0x8(%rbp),%rax
jb     1513 <null_operand+0x413>
jmp    14f3 <null_operand+0x3f3>
lea    -0x10c(%rbp),%rax
lea    -0x108(%rbp),%rcx
sub    %rcx,%rax
sar    $0x2,%rax
mov    %eax,-0x110(%rbp)
jmp    1513 <null_operand+0x413>
xor    %eax,%eax
cmp    -0x8(%rbp),%rax
jne    1544 <null_operand+0x444>
jmp    1524 <null_operand+0x424>
lea    -0x118(%rbp),%rax
lea    -0x114(%rbp),%rcx
sub    %rcx,%rax
sar    $0x2,%rax
mov    %eax,-0x11c(%rbp)
jmp    1544 <null_operand+0x444>
xor    %eax,%eax
cmp    -0x8(%rbp),%rax
jb     1575 <null_operand+0x475>
jmp    1555 <null_operand+0x455>
lea    -0x124(%rbp),%rax
lea    -0x120(%rbp),%rcx
sub    %rcx,%rax
sar    $0x2,%rax
mov    %eax,-0x128(%rbp)
jmp    1575 <null_operand+0x475>
xor    %eax,%eax
cmp    -0x8(%rbp),%rax
jbe    15a6 <null_operand+0x4a6>
jmp    1586 <null_operand+0x486>
lea    -0x130(%rbp),%rax
lea    -0x12c(%rbp),%rcx
sub    %rcx,%rax
sar    $0x2,%rax
mov    %eax,-0x134(%rbp)
jmp    15a6 <null_operand+0x4a6>
add    $0xb8,%rsp
pop    %rbp
ret

x86 assembly (clang, -O2):
<null_operand>:
ret

LLVM IR (-O0):
define void @null_operand(i32* %0) {
%2 = alloca i32*
%3 = alloca i32
%4 = alloca i32
%5 = alloca i32
%6 = alloca i32
%7 = alloca i32
%8 = alloca i32
%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
%19 = alloca i32
%20 = alloca i32
%21 = alloca i32
%22 = alloca i32
%23 = alloca i32
%24 = alloca i32
%25 = alloca i32
%26 = alloca i32
%27 = alloca i32
%28 = alloca i32
%29 = alloca i32
%30 = alloca i32
%31 = alloca i32
%32 = alloca i32
%33 = alloca i32
%34 = alloca i32
%35 = alloca i32
%36 = alloca i32
%37 = alloca i32
%38 = alloca i32
%39 = alloca i32
%40 = alloca i32
%41 = alloca i32
%42 = alloca i32
%43 = alloca i32
%44 = alloca i32
%45 = alloca i32
%46 = alloca i32
%47 = alloca i32
%48 = alloca i32
%49 = alloca i32
%50 = alloca i32
%51 = alloca i32
%52 = alloca i32
%53 = alloca i32
%54 = alloca i32
%55 = alloca i32
%56 = alloca i32
%57 = alloca i32
%58 = alloca i32
%59 = alloca i32
%60 = alloca i32
%61 = alloca i32
%62 = alloca i32
%63 = alloca i32
%64 = alloca i32
%65 = alloca i32
%66 = alloca i32
%67 = alloca i32
%68 = alloca i32
%69 = alloca i32
%70 = alloca i32
%71 = alloca i32
%72 = alloca i32
%73 = alloca i32
%74 = alloca i32
%75 = alloca i32
%76 = alloca i32
%77 = alloca i32
store i32* %0, i32** %2
br label %78
78: ; preds = %339, %339, %339, %339, %1
br i1 false, label %79, label %87
79: ; preds = %78
br label %80
80: ; preds = %79
%81 = ptrtoint i32* %4 to i64
%82 = ptrtoint i32* %3 to i64
%83 = sub i64 %81, %82
%84 = sdiv exact i64 %83, 4
%85 = trunc i64 %84 to i32
store i32 %85, i32* %5
br label %86
86: ; preds = %80
br label %87
87: ; preds = %86, %78
br i1 icmp ule (i8* blockaddress(@null_operand, %78), i8* null), label %88, label %96
88: ; preds = %87
br label %89
89: ; preds = %88
%90 = ptrtoint i32* %7 to i64
%91 = ptrtoint i32* %6 to i64
%92 = sub i64 %90, %91
%93 = sdiv exact i64 %92, 4
%94 = trunc i64 %93 to i32
store i32 %94, i32* %8
br label %95
95: ; preds = %89
br label %96
96: ; preds = %95, %87
br i1 icmp ugt (i8* blockaddress(@null_operand, %78), i8* null), label %105, label %97
97: ; preds = %96
br label %98
98: ; preds = %97
%99 = ptrtoint i32* %10 to i64
%100 = ptrtoint i32* %9 to i64
%101 = sub i64 %99, %100
%102 = sdiv exact i64 %101, 4
%103 = trunc i64 %102 to i32
store i32 %103, i32* %11
br label %104
104: ; preds = %98
br label %105
105: ; preds = %104, %96
br i1 true, label %114, label %106
106: ; preds = %105
br label %107
107: ; preds = %106
%108 = ptrtoint i32* %13 to i64
%109 = ptrtoint i32* %12 to i64
%110 = sub i64 %108, %109
%111 = sdiv exact i64 %110, 4
%112 = trunc i64 %111 to i32
store i32 %112, i32* %14
br label %113
113: ; preds = %107
br label %114
114: ; preds = %113, %105
%115 = icmp ult i32** %2, null
br i1 %115, label %116, label %124
116: ; preds = %114
br label %117
117: ; preds = %116
%118 = ptrtoint i32* %16 to i64
%119 = ptrtoint i32* %15 to i64
%120 = sub i64 %118, %119
%121 = sdiv exact i64 %120, 4
%122 = trunc i64 %121 to i32
store i32 %122, i32* %17
br label %123
123: ; preds = %117
br label %124
124: ; preds = %123, %114
%125 = icmp ule i32** %2, null
br i1 %125, label %126, label %134
126: ; preds = %124
br label %127
127: ; preds = %126
%128 = ptrtoint i32* %19 to i64
%129 = ptrtoint i32* %18 to i64
%130 = sub i64 %128, %129
%131 = sdiv exact i64 %130, 4
%132 = trunc i64 %131 to i32
store i32 %132, i32* %20
br label %133
133: ; preds = %127
br label %134
134: ; preds = %133, %124
%135 = icmp ugt i32** %2, null
br i1 %135, label %144, label %136
136: ; preds = %134
br label %137
137: ; preds = %136
%138 = ptrtoint i32* %22 to i64
%139 = ptrtoint i32* %21 to i64
%140 = sub i64 %138, %139
%141 = sdiv exact i64 %140, 4
%142 = trunc i64 %141 to i32
store i32 %142, i32* %23
br label %143
143: ; preds = %137
br label %144
144: ; preds = %143, %134
%145 = icmp uge i32** %2, null
br i1 %145, label %154, label %146
146: ; preds = %144
br label %147
147: ; preds = %146
%148 = ptrtoint i32* %25 to i64
%149 = ptrtoint i32* %24 to i64
%150 = sub i64 %148, %149
%151 = sdiv exact i64 %150, 4
%152 = trunc i64 %151 to i32
store i32 %152, i32* %26
br label %153
153: ; preds = %147
br label %154
154: ; preds = %153, %144
%155 = icmp ugt i32** null, %2
br i1 %155, label %156, label %164
156: ; preds = %154
br label %157
157: ; preds = %156
%158 = ptrtoint i32* %28 to i64
%159 = ptrtoint i32* %27 to i64
%160 = sub i64 %158, %159
%161 = sdiv exact i64 %160, 4
%162 = trunc i64 %161 to i32
store i32 %162, i32* %29
br label %163
163: ; preds = %157
br label %164
164: ; preds = %163, %154
%165 = icmp uge i32** null, %2
br i1 %165, label %166, label %174
166: ; preds = %164
br label %167
167: ; preds = %166
%168 = ptrtoint i32* %31 to i64
%169 = ptrtoint i32* %30 to i64
%170 = sub i64 %168, %169
%171 = sdiv exact i64 %170, 4
%172 = trunc i64 %171 to i32
store i32 %172, i32* %32
br label %173
173: ; preds = %167
br label %174
174: ; preds = %173, %164
%175 = icmp ult i32** null, %2
br i1 %175, label %184, label %176
176: ; preds = %174
br label %177
177: ; preds = %176
%178 = ptrtoint i32* %34 to i64
%179 = ptrtoint i32* %33 to i64
%180 = sub i64 %178, %179
%181 = sdiv exact i64 %180, 4
%182 = trunc i64 %181 to i32
store i32 %182, i32* %35
br label %183
183: ; preds = %177
br label %184
184: ; preds = %183, %174
%185 = icmp ule i32** null, %2
br i1 %185, label %194, label %186
186: ; preds = %184
br label %187
187: ; preds = %186
%188 = ptrtoint i32* %37 to i64
%189 = ptrtoint i32* %36 to i64
%190 = sub i64 %188, %189
%191 = sdiv exact i64 %190, 4
%192 = trunc i64 %191 to i32
store i32 %192, i32* %38
br label %193
193: ; preds = %187
br label %194
194: ; preds = %193, %184
%195 = load i32*, i32** %2
%196 = icmp eq i32* %195, null
br i1 %196, label %197, label %205
197: ; preds = %194
br label %198
198: ; preds = %197
%199 = ptrtoint i32* %40 to i64
%200 = ptrtoint i32* %39 to i64
%201 = sub i64 %199, %200
%202 = sdiv exact i64 %201, 4
%203 = trunc i64 %202 to i32
store i32 %203, i32* %41
br label %204
204: ; preds = %198
br label %205
205: ; preds = %204, %194
%206 = load i32*, i32** %2
%207 = icmp ult i32* %206, null
br i1 %207, label %208, label %216
208: ; preds = %205
br label %209
209: ; preds = %208
%210 = ptrtoint i32* %43 to i64
%211 = ptrtoint i32* %42 to i64
%212 = sub i64 %210, %211
%213 = sdiv exact i64 %212, 4
%214 = trunc i64 %213 to i32
store i32 %214, i32* %44
br label %215
215: ; preds = %209
br label %216
216: ; preds = %215, %205
%217 = load i32*, i32** %2
%218 = icmp ule i32* %217, null
br i1 %218, label %219, label %227
219: ; preds = %216
br label %220
220: ; preds = %219
%221 = ptrtoint i32* %46 to i64
%222 = ptrtoint i32* %45 to i64
%223 = sub i64 %221, %222
%224 = sdiv exact i64 %223, 4
%225 = trunc i64 %224 to i32
store i32 %225, i32* %47
br label %226
226: ; preds = %220
br label %227
227: ; preds = %226, %216
%228 = load i32*, i32** %2
%229 = icmp ne i32* %228, null
br i1 %229, label %238, label %230
230: ; preds = %227
br label %231
231: ; preds = %230
%232 = ptrtoint i32* %49 to i64
%233 = ptrtoint i32* %48 to i64
%234 = sub i64 %232, %233
%235 = sdiv exact i64 %234, 4
%236 = trunc i64 %235 to i32
store i32 %236, i32* %50
br label %237
237: ; preds = %231
br label %238
238: ; preds = %237, %227
%239 = load i32*, i32** %2
%240 = icmp ugt i32* %239, null
br i1 %240, label %249, label %241
241: ; preds = %238
br label %242
242: ; preds = %241
%243 = ptrtoint i32* %52 to i64
%244 = ptrtoint i32* %51 to i64
%245 = sub i64 %243, %244
%246 = sdiv exact i64 %245, 4
%247 = trunc i64 %246 to i32
store i32 %247, i32* %53
br label %248
248: ; preds = %242
br label %249
249: ; preds = %248, %238
%250 = load i32*, i32** %2
%251 = icmp uge i32* %250, null
br i1 %251, label %260, label %252
252: ; preds = %249
br label %253
253: ; preds = %252
%254 = ptrtoint i32* %55 to i64
%255 = ptrtoint i32* %54 to i64
%256 = sub i64 %254, %255
%257 = sdiv exact i64 %256, 4
%258 = trunc i64 %257 to i32
store i32 %258, i32* %56
br label %259
259: ; preds = %253
br label %260
260: ; preds = %259, %249
%261 = load i32*, i32** %2
%262 = getelementptr inbounds i32, i32* %261, i64 0
%263 = icmp ne i32* %262, null
br i1 %263, label %272, label %264
264: ; preds = %260
br label %265
265: ; preds = %264
%266 = ptrtoint i32* %58 to i64
%267 = ptrtoint i32* %57 to i64
%268 = sub i64 %266, %267
%269 = sdiv exact i64 %268, 4
%270 = trunc i64 %269 to i32
store i32 %270, i32* %59
br label %271
271: ; preds = %265
br label %272
272: ; preds = %271, %260
%273 = load i32*, i32** %2
%274 = icmp eq i32* null, %273
br i1 %274, label %275, label %283
275: ; preds = %272
br label %276
276: ; preds = %275
%277 = ptrtoint i32* %61 to i64
%278 = ptrtoint i32* %60 to i64
%279 = sub i64 %277, %278
%280 = sdiv exact i64 %279, 4
%281 = trunc i64 %280 to i32
store i32 %281, i32* %62
br label %282
282: ; preds = %276
br label %283
283: ; preds = %282, %272
%284 = load i32*, i32** %2
%285 = icmp ugt i32* null, %284
br i1 %285, label %286, label %294
286: ; preds = %283
br label %287
287: ; preds = %286
%288 = ptrtoint i32* %64 to i64
%289 = ptrtoint i32* %63 to i64
%290 = sub i64 %288, %289
%291 = sdiv exact i64 %290, 4
%292 = trunc i64 %291 to i32
store i32 %292, i32* %65
br label %293
293: ; preds = %287
br label %294
294: ; preds = %293, %283
%295 = load i32*, i32** %2
%296 = icmp uge i32* null, %295
br i1 %296, label %297, label %305
297: ; preds = %294
br label %298
298: ; preds = %297
%299 = ptrtoint i32* %67 to i64
%300 = ptrtoint i32* %66 to i64
%301 = sub i64 %299, %300
%302 = sdiv exact i64 %301, 4
%303 = trunc i64 %302 to i32
store i32 %303, i32* %68
br label %304
304: ; preds = %298
br label %305
305: ; preds = %304, %294
%306 = load i32*, i32** %2
%307 = icmp ne i32* null, %306
br i1 %307, label %316, label %308
308: ; preds = %305
br label %309
309: ; preds = %308
%310 = ptrtoint i32* %70 to i64
%311 = ptrtoint i32* %69 to i64
%312 = sub i64 %310, %311
%313 = sdiv exact i64 %312, 4
%314 = trunc i64 %313 to i32
store i32 %314, i32* %71
br label %315
315: ; preds = %309
br label %316
316: ; preds = %315, %305
%317 = load i32*, i32** %2
%318 = icmp ult i32* null, %317
br i1 %318, label %327, label %319
319: ; preds = %316
br label %320
320: ; preds = %319
%321 = ptrtoint i32* %73 to i64
%322 = ptrtoint i32* %72 to i64
%323 = sub i64 %321, %322
%324 = sdiv exact i64 %323, 4
%325 = trunc i64 %324 to i32
store i32 %325, i32* %74
br label %326
326: ; preds = %320
br label %327
327: ; preds = %326, %316
%328 = load i32*, i32** %2
%329 = icmp ule i32* null, %328
br i1 %329, label %338, label %330
330: ; preds = %327
br label %331
331: ; preds = %330
%332 = ptrtoint i32* %76 to i64
%333 = ptrtoint i32* %75 to i64
%334 = sub i64 %332, %333
%335 = sdiv exact i64 %334, 4
%336 = trunc i64 %335 to i32
store i32 %336, i32* %77
br label %337
337: ; preds = %331
br label %338
338: ; preds = %337, %327
ret void
339: ; No predecessors!
indirectbr i8* undef, [label %78, label %78, label %78, label %78]
}

LLVM IR (-O2):
define void @null_operand(i32* nocapture %0) {
ret void
}