Skip to content

Instantly share code, notes, and snippets.

@saethlin
Created April 17, 2022 19:44
Show Gist options
  • Save saethlin/c62d08950a35f5d86d933e44f1843526 to your computer and use it in GitHub Desktop.
Save saethlin/c62d08950a35f5d86d933e44f1843526 to your computer and use it in GitHub Desktop.
; Inspecting 6062 Redis values
; Discarding 3506 not-optimizations leaving 154 optimizations
%0:i1 = var
%1:i64 = select %0, 1:i64, 0:i64
infer %1
%2:i64 = zext %0
result %2
; total static profile = 44
; total dynamic profile = 0
------------------------------------------------------
%0:i64 = var (knownBits=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx000)
%1:i1 = eq 0:i64, %0
%2:i1 = select %1, 0:i1, 1:i1
pc %2 1:i1
%3:i1 = ne 0:i64, %0
infer %3
result 1:i1
; total static profile = 43
; total dynamic profile = 0
------------------------------------------------------
%0:i64 = var
%1:i1 = eq 0:i64, %0 (hasExternalUses)
%2:i1 = select %1, 0:i1, 1:i1
infer %2
%3:i1 = xor 1:i1, %1
result %3
; total static profile = 33
; total dynamic profile = 0
------------------------------------------------------
%0:i64 = var
%1:i1 = eq 0:i64, %0
pc %1 0:i1
%2:i65 = umul.with.overflow %0, 8:i64 (hasExternalUses)
%3:i1 = extractvalue %2, 1:i32
%4:i1 = select %3, 0:i1, 1:i1
infer %4
%5:i1 = ult %0, 2305843009213693952:i64
result %5
; total static profile = 28
; total dynamic profile = 0
------------------------------------------------------
%0:i64 = var
%1:i64 = lshr %0, 52:i64
%2:i16 = trunc %1
%3:i16 = and 2047:i16, %2 (hasExternalUses)
%4:i1 = ult %3, 1023:i16
%5:i1 = slt %0, 0:i64
%6:i1 = select %4, 1:i1, %5
infer %6
%7:i1 = slt %0, 4607182418800017408:i64
result %7
; total static profile = 24
; total dynamic profile = 0
------------------------------------------------------
%0:i64 = var
%1:i1 = eq 0:i64, %0
pc %1 0:i1
%2:i65 = umul.with.overflow %0, 16:i64 (hasExternalUses)
%3:i1 = extractvalue %2, 1:i32
%4:i1 = select %3, 0:i1, 1:i1
infer %4
%5:i1 = ult %0, 1152921504606846976:i64
result %5
; total static profile = 24
; total dynamic profile = 0
------------------------------------------------------
%0:i32 = var
%1:i32 = lshr %0, 23:i32
%2:i16 = trunc %1
%3:i16 = and 255:i16, %2 (hasExternalUses)
%4:i1 = ult %3, 127:i16
%5:i1 = slt %0, 0:i32
%6:i1 = select %4, 1:i1, %5
infer %6
%7:i1 = slt %0, 1065353216:i32
result %7
; total static profile = 24
; total dynamic profile = 0
------------------------------------------------------
%0:i64 = var (range=[0,-9223372036854775807))
%1:i1 = eq 0:i64, %0
%2:i1 = select %1, 0:i1, 1:i1
infer %2
%3:i1 = xor 1:i1, %1
result %3
; total static profile = 17
; total dynamic profile = 0
------------------------------------------------------
%0:i64 = var
%1:i64 = var
%2:i64 = add 18446744073709551615:i64, %1 (hasExternalUses)
%3:i1 = ult %0, %2 (hasExternalUses)
%4:i1 = select %3, 0:i1, 1:i1
infer %4
%5:i1 = ule %2, %0
result %5
; total static profile = 16
; total dynamic profile = 0
------------------------------------------------------
%0:i32 = var
%1:i1 = slt %0, 0:i32 (hasExternalUses)
%2:i32 = sub 0:i32, %0
%3:i32 = select %1, %2, %0 (hasExternalUses)
%4:i32 = var
%5:i1 = slt %4, 0:i32 (hasExternalUses)
%6:i32 = sub 0:i32, %4
%7:i32 = select %5, %6, %4 (hasExternalUses)
%8:i1 = ult %3, %7
pc %8 0:i1
%9:i32 = ctlz %7
%10:i32 = ctlz %3
%11:i32 = subnsw %9, %10
%12:i32 = and 31:i32, %11
%13:i32 = shl %7, %12
%14:i1 = ult %3, %13
%15:i64 = select %14, 18446744073709551615:i64, 0:i64
%16:i64 = zext %11
%17:i64 = addnsw %15, %16 (hasExternalUses)
%18:i32 = trunc %17
%19:i32 = and 31:i32, %18 (hasExternalUses)
%20:i32 = shl %7, %19 (hasExternalUses)
%21:i32 = sub %3, %20 (hasExternalUses)
%22:i1 = ult %21, %7
pc %22 0:i1
%23:i1 = slt %20, 0:i32
infer %23
result 0:i1
; total static profile = 16
; total dynamic profile = 0
------------------------------------------------------
%0:i32 = var
%1:i1 = slt %0, 0:i32 (hasExternalUses)
%2:i32 = sub 0:i32, %0
%3:i32 = select %1, %2, %0 (hasExternalUses)
%4:i32 = var
%5:i1 = slt %4, 0:i32 (hasExternalUses)
%6:i32 = sub 0:i32, %4
%7:i32 = select %5, %6, %4 (hasExternalUses)
%8:i1 = ult %3, %7
pc %8 0:i1
%9:i32 = ctlz %7
%10:i32 = ctlz %3
%11:i32 = subnsw %9, %10
%12:i32 = and 31:i32, %11
%13:i32 = shl %7, %12
%14:i1 = ult %3, %13
%15:i64 = select %14, 18446744073709551615:i64, 0:i64
%16:i64 = zext %11
%17:i64 = addnsw %15, %16 (hasExternalUses)
%18:i32 = trunc %17
%19:i32 = and 31:i32, %18 (hasExternalUses)
%20:i32 = shl %7, %19 (hasExternalUses)
%21:i32 = sub %3, %20 (hasExternalUses)
%22:i1 = ult %21, %7
pc %22 0:i1
%23:i1 = slt %20, 0:i32
pc %23 1:i1
%24:i32 = lshr %20, 1:i32 (hasExternalUses)
%25:i32 = sub %21, %24
%26:i1 = slt 4294967295:i32, %25 (hasExternalUses)
%27:i32 = select %26, %25, %21
infer %27
%28:i32 = add %0, %0
result %28
; total static profile = 16
; total dynamic profile = 0
------------------------------------------------------
%0:i64 = var
%1:i1 = slt %0, 0:i64 (hasExternalUses)
%2:i64 = sub 0:i64, %0
%3:i64 = select %1, %2, %0 (hasExternalUses)
%4:i64 = var
%5:i1 = slt %4, 0:i64 (hasExternalUses)
%6:i64 = sub 0:i64, %4
%7:i64 = select %5, %6, %4 (hasExternalUses)
%8:i1 = ult %3, %7
pc %8 0:i1
%9:i64 = ctlz %7
%10:i64 = ctlz %3
%11:i64 = subnsw %9, %10
%12:i64 = and 4294967295:i64, %11
%13:i64 = and 63:i64, %11
%14:i64 = shl %7, %13
%15:i1 = ult %3, %14
%16:i64 = select %15, 18446744073709551615:i64, 0:i64
%17:i64 = addnsw %12, %16 (hasExternalUses)
%18:i64 = and 63:i64, %17 (hasExternalUses)
%19:i64 = shl %7, %18 (hasExternalUses)
%20:i64 = sub %3, %19 (hasExternalUses)
%21:i1 = ult %20, %7
pc %21 0:i1
%22:i1 = slt %19, 0:i64
pc %22 1:i1
%23:i64 = lshr %19, 1:i64 (hasExternalUses)
%24:i64 = sub %20, %23
%25:i1 = slt 18446744073709551615:i64, %24 (hasExternalUses)
%26:i64 = select %25, %24, %20
infer %26
result %2
; total static profile = 16
; total dynamic profile = 0
------------------------------------------------------
%0:i32 = var
%1:i1 = slt %0, 0:i32 (hasExternalUses)
%2:i32 = sub 0:i32, %0
%3:i32 = select %1, %2, %0 (hasExternalUses)
%4:i32 = var
%5:i1 = slt %4, 0:i32 (hasExternalUses)
%6:i32 = sub 0:i32, %4
%7:i32 = select %5, %6, %4 (hasExternalUses)
%8:i1 = ult %3, %7
pc %8 0:i1
%9:i32 = ctlz %7
%10:i32 = ctlz %3
%11:i32 = subnsw %9, %10
%12:i32 = and 31:i32, %11
%13:i32 = shl %7, %12
%14:i1 = ult %3, %13
%15:i64 = select %14, 18446744073709551615:i64, 0:i64
%16:i64 = zext %11
%17:i64 = addnsw %15, %16 (hasExternalUses)
%18:i32 = trunc %17
%19:i32 = and 31:i32, %18 (hasExternalUses)
%20:i32 = shl %7, %19 (hasExternalUses)
%21:i32 = sub %3, %20 (hasExternalUses)
%22:i1 = ult %21, %7
pc %22 0:i1
%23:i1 = slt %20, 0:i32
pc %23 1:i1
%24:i32 = lshr %20, 1:i32
infer %24
result %4
; total static profile = 16
; total dynamic profile = 0
------------------------------------------------------
%0:i64 = var (knownBits=000000000000000000000000000000000000000000000000000000000000000x) (nonNegative) (signBits=63) (range=[0,2))
%1:i1 = eq 1:i64, %0
%2:i1 = select %1, 0:i1, 1:i1
infer %2
%3:i1 = eq 0:i64, %0
result %3
; total static profile = 16
; total dynamic profile = 0
------------------------------------------------------
%0:i64 = var
%1:i1 = ult 4096:i64, %0 (hasExternalUses)
%2:i1 = select %1, 0:i1, 1:i1
infer %2
%3:i1 = ult %0, 4097:i64
result %3
; total static profile = 13
; total dynamic profile = 0
------------------------------------------------------
%0:i32 = var
%1:i1 = slt %0, 10:i32 (hasExternalUses)
%2:i1 = select %1, 0:i1, 1:i1 (hasExternalUses)
%3:i1 = select %2, 0:i1, 1:i1
infer %3
result %1
; total static profile = 12
; total dynamic profile = 0
------------------------------------------------------
%0:i32 = var
%1:i1 = slt %0, 10:i32 (hasExternalUses)
%2:i1 = select %1, 0:i1, 1:i1
infer %2
%3:i1 = slt 9:i32, %0
result %3
; total static profile = 12
; total dynamic profile = 0
------------------------------------------------------
%0:i8 = var (knownBits=0000xxxx) (nonNegative) (signBits=4) (range=[0,14))
%1:i1 = eq 13:i8, %0 (hasExternalUses)
%2:i1 = select %1, 0:i1, 1:i1
infer %2
%3:i1 = ult %0, 13:i8
result %3
; total static profile = 10
; total dynamic profile = 0
------------------------------------------------------
%0:i64 = var (knownBits=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx00)
%1:i1 = eq 0:i64, %0
%2:i1 = select %1, 0:i1, 1:i1
pc %2 1:i1
%3:i1 = ne 0:i64, %0
infer %3
result 1:i1
; total static profile = 9
; total dynamic profile = 0
------------------------------------------------------
%0:i8 = var (knownBits=000000xx) (nonNegative) (signBits=6) (range=[0,4))
%1:i1 = eq 3:i8, %0
%2:i1 = select %1, 0:i1, 1:i1
infer %2
%3:i1 = ult %0, 3:i8
result %3
; total static profile = 9
; total dynamic profile = 0
------------------------------------------------------
%0:i64 = var
%1:i1 = eq 2:i64, %0
%2:i1 = select %1, 0:i1, 1:i1
infer %2
%3:i1 = xor 1:i1, %1
result %3
; total static profile = 8
; total dynamic profile = 0
------------------------------------------------------
%0 = block 2
%1 = block 2
%2 = block 2
%3:i8 = phi %2, 0:i8, 1:i8
%4:i8 = phi %1, 0:i8, %3
%5:i8 = phi %0, 0:i8, %4
%6:i8 = and 1:i8, %5
infer %6
result %5
; total static profile = 8
; total dynamic profile = 0
------------------------------------------------------
%0 = block 2
%1:i32 = var
%2:i32 = ctlz %1
%3:i32 = xor 31:i32, %2
%4 = block 3
%5:i32 = subnsw 6:i32, %2
%6:i32 = and 31:i32, %5
%7:i32 = lshr %1, %6
%8:i32 = addnw 26:i32, %2
%9:i32 = and 31:i32, %8
%10:i32 = shl %1, %9
%11:i1 = ne 0:i32, %10
%12:i32 = zext %11
%13:i32 = or %7, %12
%14:i32 = shl %1, 1:i32
%15:i32 = phi %4, %13, %14, %1
%16:i32 = lshr %15, 2:i32
%17:i32 = and 1:i32, %16
%18:i32 = or %15, %17
%19:i32 = add 1:i32, %18
%20:i32 = and 67108864:i32, %19
%21:i1 = eq 0:i32, %20
%22:i32 = subnw 32:i32, %2
%23:i32 = select %21, %3, %22
%24:i32 = phi %0, %3, %23
%25:i32 = shlnsw %24, 23:i32
%26:i32 = addnsw 1065353216:i32, %25
%27:i32 = and 2139095040:i32, %26
infer %27
result %26
; total static profile = 8
; total dynamic profile = 0
------------------------------------------------------
%0:i64 = var
%1:i64 = var
%2:i1 = ult %0, %1
%3:i64 = add 1:i64, %1
%4:i1 = ult %3, %0
%5:i1 = select %2, 1:i1, %4
infer %5
%6:i1 = or %2, %4
result %6
; total static profile = 8
; total dynamic profile = 0
------------------------------------------------------
%0:i32 = var
%1:i1 = slt %0, 0:i32 (hasExternalUses)
%2:i32 = sub 0:i32, %0
%3:i32 = select %1, %2, %0 (hasExternalUses)
%4:i32 = var (range=[1,-2147483647))
%5:i1 = ult %3, %4
pc %5 0:i1
%6:i32 = ctlz %4
%7:i32 = ctlz %3
%8:i32 = subnsw %6, %7
%9:i32 = and 31:i32, %8
%10:i32 = shl %4, %9
%11:i1 = ult %3, %10
%12:i64 = select %11, 18446744073709551615:i64, 0:i64
%13:i64 = zext %8
%14:i64 = addnsw %12, %13 (hasExternalUses)
%15:i32 = trunc %14
%16:i32 = and 31:i32, %15
%17:i32 = shl %4, %16 (hasExternalUses)
%18:i32 = sub %3, %17 (hasExternalUses)
%19:i1 = ult %18, %4
pc %19 0:i1
%20:i1 = slt %17, 0:i32
pc %20 1:i1
%21:i32 = lshr %17, 1:i32 (hasExternalUses)
%22:i32 = sub %18, %21
infer %22
result %0
; total static profile = 8
; total dynamic profile = 0
------------------------------------------------------
%0:i32 = var
%1:i1 = slt %0, 0:i32 (hasExternalUses)
%2:i32 = sub 0:i32, %0
%3:i32 = select %1, %2, %0 (hasExternalUses)
%4:i32 = var (range=[1,-2147483647))
%5:i1 = ult %3, %4
pc %5 0:i1
%6:i32 = ctlz %4
%7:i32 = ctlz %3
%8:i32 = subnsw %6, %7
%9:i32 = and 31:i32, %8
%10:i32 = shl %4, %9
%11:i1 = ult %3, %10
%12:i64 = select %11, 18446744073709551615:i64, 0:i64
%13:i64 = zext %8
%14:i64 = addnsw %12, %13 (hasExternalUses)
%15:i32 = trunc %14
%16:i32 = and 31:i32, %15
%17:i32 = shl %4, %16 (hasExternalUses)
%18:i32 = sub %3, %17 (hasExternalUses)
%19:i1 = ult %18, %4
pc %19 0:i1
%20:i1 = slt %17, 0:i32
infer %20
result 0:i1
; total static profile = 8
; total dynamic profile = 0
------------------------------------------------------
%0 = block 2
%1:i64 = var
%2:i64 = ctlz %1
%3:i32 = trunc %2
%4:i32 = xor 63:i32, %3
%5 = block 3
%6:i64 = subnsw 38:i64, %2
%7:i64 = and 63:i64, %6
%8:i64 = lshr %1, %7
%9:i64 = addnw 26:i64, %2
%10:i64 = and 63:i64, %9
%11:i64 = shl %1, %10
%12:i1 = ne 0:i64, %11
%13:i64 = zext %12
%14:i64 = or %8, %13
%15:i64 = shl %1, 1:i64
%16:i64 = phi %5, %14, %15, %1
%17:i64 = lshr %16, 2:i64
%18:i64 = and 1:i64, %17
%19:i64 = or %16, %18
%20:i64 = add 1:i64, %19
%21:i64 = and 67108864:i64, %20
%22:i1 = eq 0:i64, %21
%23:i32 = subnw 64:i32, %3
%24:i32 = select %22, %4, %23
%25:i32 = phi %0, %4, %24
%26:i32 = shlnsw %25, 23:i32
%27:i32 = add 1065353216:i32, %26
%28:i32 = and 2139095040:i32, %27
infer %28
result %27
; total static profile = 8
; total dynamic profile = 0
------------------------------------------------------
%0:i64 = var
%1:i1 = eq 0:i64, %0
pc %1 0:i1
%2:i65 = umul.with.overflow %0, 4:i64 (hasExternalUses)
%3:i1 = extractvalue %2, 1:i32
%4:i1 = select %3, 0:i1, 1:i1
infer %4
%5:i1 = ult %0, 4611686018427387904:i64
result %5
; total static profile = 8
; total dynamic profile = 0
------------------------------------------------------
%0:i64 = var
%1:i1 = slt %0, 0:i64 (hasExternalUses)
%2:i64 = sub 0:i64, %0
%3:i64 = select %1, %2, %0 (hasExternalUses)
%4:i64 = var (range=[1,-9223372036854775807))
%5:i1 = ult %3, %4
pc %5 0:i1
%6:i64 = ctlz %4
%7:i64 = ctlz %3
%8:i64 = subnsw %6, %7
%9:i64 = and 4294967295:i64, %8
%10:i64 = and 63:i64, %8
%11:i64 = shl %4, %10
%12:i1 = ult %3, %11
%13:i64 = select %12, 18446744073709551615:i64, 0:i64
%14:i64 = addnsw %9, %13 (hasExternalUses)
%15:i64 = and 63:i64, %14
%16:i64 = shl %4, %15 (hasExternalUses)
%17:i64 = sub %3, %16 (hasExternalUses)
%18:i1 = ult %17, %4
pc %18 0:i1
%19:i1 = slt %16, 0:i64
pc %19 1:i1
%20:i64 = lshr %16, 1:i64 (hasExternalUses)
%21:i64 = sub %17, %20
infer %21
result %0
; total static profile = 8
; total dynamic profile = 0
------------------------------------------------------
%0:i32 = var (range=[1,-2147483647))
%1:i1 = ult 16777215:i32, %0
pc %1 1:i1
%2:i32 = ctlz %0
%3:i32 = subnw 32:i32, %2
%4:i1 = ne 25:i32, %3
pc %4 1:i1
%5:i1 = ne 26:i32, %3
pc %5 1:i1
%6:i32 = addnw 26:i32, %2
%7:i32 = and 31:i32, %6
infer %7
result %6
; total static profile = 8
; total dynamic profile = 0
------------------------------------------------------
%0:i32 = var
%1:i1 = eq 0:i32, %0
pc %1 0:i1
%2:i1 = ult 16777215:i32, %0
pc %2 1:i1
%3:i32 = ctlz %0
%4:i32 = subnw 32:i32, %3
%5:i1 = ne 25:i32, %4
pc %5 1:i1
%6:i1 = ne 26:i32, %4
pc %6 1:i1
%7:i32 = addnw 26:i32, %3
%8:i32 = and 31:i32, %7
%9:i32 = shl %0, %8
infer %9
%10:i32 = shl %0, %7
result %10
; total static profile = 8
; total dynamic profile = 0
------------------------------------------------------
%0:i32 = var
%1:i32 = and 16:i32, %0
%2:i1 = eq 0:i32, %1
pc %2 0:i1
%3:i32 = var
%4:i16 = trunc %3
%5:i16 = trunc %0
%6:i16 = and 15:i16, %5
%7:i16 = shl %4, %6
%8:i32 = zext %7
%9:i32 = shlnuw %8, 16:i32
infer %9
%10:i32 = fshl %3, 0:i32, %0
result %10
; total static profile = 8
; total dynamic profile = 0
------------------------------------------------------
%0:i64 = var
%1:i1 = eq 0:i64, %0 (hasExternalUses)
%2:i1 = select %1, 0:i1, 1:i1
pc %2 1:i1
infer %2
result 1:i1
; total static profile = 6
; total dynamic profile = 0
------------------------------------------------------
%0:i8 = var
%1:i32 = zext %0 (hasExternalUses)
%2:i32 = shlnw %1, 8:i32
%3:i32 = shlnw %1, 16:i32
%4:i32 = or %2, %3
%5:i32 = or %4, %1
infer %5
%6:i32 = mul 65793:i32, %1
result %6
; total static profile = 6
; total dynamic profile = 0
------------------------------------------------------
%0:i8 = var
%1:i64 = zext %0 (hasExternalUses)
%2:i64 = shlnw %1, 8:i64
%3:i64 = shlnw %1, 16:i64
%4:i64 = or %2, %3
infer %4 (demandedBits=1111111111111111100000000000000000000000111111111111111111111111)
%5:i64 = mul 65792:i64, %1
result %5
; total static profile = 6
; total dynamic profile = 0
------------------------------------------------------
%0:i32 = var
%1:i32 = and 65536:i32, %0
%2:i1 = eq 0:i32, %1 (hasExternalUses)
%3:i32 = lshr %0, 24:i32 (hasExternalUses)
%4:i32 = shlnw %3, 16:i32
%5:i24 = trunc %4
%6:i24 = or 5:i24, %5
%7:i24 = select %2, 14:i24, %6 (hasExternalUses)
%8:i8 = trunc %7
%9:i1 = eq 14:i8, %8 (hasExternalUses)
%10:i1 = select %9, 0:i1, 1:i1
infer %10
%11:i1 = eq 65536:i32, %1
result %11
; total static profile = 6
; total dynamic profile = 0
------------------------------------------------------
%0:i8 = var
%1:i8 = var
%2:i1 = eq %0, %1
pc %2 1:i1
%3:i1 = eq 13:i8, %0
%4:i1 = eq 13:i8, %1
%5:i1 = and %3, %4
infer %5
result %3
; total static profile = 6
; total dynamic profile = 0
------------------------------------------------------
%0:i8 = var
%1:i64 = zext %0 (hasExternalUses)
%2:i64 = shlnw %1, 8:i64
%3:i64 = shlnw %1, 16:i64
%4:i64 = or %2, %3
%5:i64 = or %4, %1
infer %5 (demandedBits=1111111111111111100000000000000000000000111111111111111111111111)
%6:i64 = mul 65793:i64, %1
result %6
; total static profile = 6
; total dynamic profile = 0
------------------------------------------------------
%0:i8 = var
%1:i32 = zext %0 (hasExternalUses)
%2:i32 = shlnw %1, 8:i32
%3:i32 = shlnw %1, 16:i32
%4:i32 = or %2, %3
infer %4
%5:i32 = mul 65792:i32, %1
result %5
; total static profile = 6
; total dynamic profile = 0
------------------------------------------------------
%0:i1 = var
%1:i1 = select %0, 0:i1, 1:i1
infer %1
%2:i1 = xor 1:i1, %0
result %2
; total static profile = 6
; total dynamic profile = 0
------------------------------------------------------
%0:i8 = var
%1:i8 = var
%2:i1 = eq %0, %1
pc %2 1:i1
%3:i1 = eq 13:i8, %0
%4:i1 = eq 13:i8, %1
%5:i1 = and %3, %4
%6:i8 = var
%7:i8 = var
%8:i1 = ne %6, %7
%9:i1 = select %5, %8, 0:i1
infer %9
%10:i1 = select %3, %8, %3
result %10
; total static profile = 5
; total dynamic profile = 0
------------------------------------------------------
%0:i32 = var
%1:i32 = and 1:i32, %0
%2:i1 = ne 0:i32, %1
infer %2
%3:i1 = trunc %0
result %3
; total static profile = 5
; total dynamic profile = 0
------------------------------------------------------
%0 = block 2
%1 = block 2
%2 = block 2
%3 = block 2
%4 = block 2
%5 = block 2
%6:i8 = phi %5, 0:i8, 1:i8
%7:i8 = phi %4, 0:i8, %6
%8:i8 = phi %3, 0:i8, %7
%9:i8 = phi %2, 0:i8, %8
%10:i8 = phi %1, 0:i8, %9
%11:i8 = phi %0, 0:i8, %10
%12:i8 = and 1:i8, %11
infer %12
result %11
; total static profile = 5
; total dynamic profile = 0
------------------------------------------------------
%0:i32 = var
%1:i1 = ult %0, 12:i32
%2:i1 = select %1, 0:i1, 1:i1
infer %2
%3:i1 = ult 11:i32, %0
result %3
; total static profile = 4
; total dynamic profile = 0
------------------------------------------------------
%0 = block 2
%1 = block 2
%2 = block 2
%3 = block 2
%4 = block 2
%5 = block 2
%6 = block 2
%7:i8 = phi %6, 0:i8, 1:i8
%8:i8 = phi %5, 0:i8, %7
%9:i8 = phi %4, 0:i8, %8
%10:i8 = phi %3, 0:i8, %9
%11:i8 = phi %2, 0:i8, %10
%12:i8 = phi %1, 0:i8, %11
%13:i8 = phi %0, 0:i8, %12
%14:i8 = and 1:i8, %13
infer %14
result %13
; total static profile = 4
; total dynamic profile = 0
------------------------------------------------------
%0:i64 = var
%1:i64 = var (knownBits=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx000000) (nonZero)
%2:i64 = sub %0, %1 (hasExternalUses)
%3:i1 = slt 18446744073709551615:i64, %2
%4:i1 = slt %2, 4096:i64
%5:i1 = select %3, %4, 0:i1
infer %5
%6:i1 = ult %2, 4096:i64
result %6
; total static profile = 4
; total dynamic profile = 0
------------------------------------------------------
%0:i64 = var
%1:i64 = add 18446744073709551615:i64, %0 (hasExternalUses)
%2:i1 = eq 1:i64, %1
%3:i1 = select %2, 0:i1, 1:i1
infer %3
%4:i1 = xor 1:i1, %2
result %4
; total static profile = 4
; total dynamic profile = 0
------------------------------------------------------
%0 = block 2
%1 = block 2
%2 = block 2
%3 = block 2
%4 = block 2
%5 = block 2
%6 = block 2
%7 = block 2
%8:i8 = phi %7, 0:i8, 1:i8
%9:i8 = phi %6, 0:i8, %8
%10:i8 = phi %5, 0:i8, %9
%11:i8 = phi %4, 0:i8, %10
%12:i8 = phi %3, 0:i8, %11
%13:i8 = phi %2, 0:i8, %12
%14:i8 = phi %1, 0:i8, %13
%15:i8 = phi %0, 0:i8, %14
%16:i8 = and 1:i8, %15
infer %16
result %15
; total static profile = 4
; total dynamic profile = 0
------------------------------------------------------
%0:i64 = var
%1 = block 2
%2:i64 = var
%3:i64 = phi %1, %2, 0:i64
%4:i1 = ult %0, %3
pc %4 1:i1
%5:i64 = sub %3, %0
infer %5
%6:i64 = sub %2, %0
result %6
; total static profile = 4
; total dynamic profile = 0
------------------------------------------------------
%0:i64 = var
%1:i64 = var (knownBits=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx000000) (nonZero)
%2:i64 = sub %0, %1
%3:i1 = slt 18446744073709551615:i64, %2
%4:i1 = slt %2, 4096:i64
%5:i1 = select %3, %4, 0:i1
infer %5
%6:i1 = ult %2, 4096:i64
result %6
; total static profile = 4
; total dynamic profile = 0
------------------------------------------------------
%0:i64 = var
%1:i64 = add 1:i64, %0 (hasExternalUses)
%2:i1 = eq 0:i64, %1
%3:i1 = select %2, 0:i1, 1:i1
infer %3
%4:i1 = ult %0, %1
result %4
; total static profile = 4
; total dynamic profile = 0
------------------------------------------------------
%0:i64 = var
%1:i65 = umul.with.overflow %0, 4:i64 (hasExternalUses)
%2:i1 = extractvalue %1, 1:i32
%3:i1 = select %2, 0:i1, 1:i1
infer %3
%4:i1 = ult %0, 4611686018427387904:i64
result %4
; total static profile = 4
; total dynamic profile = 0
------------------------------------------------------
%0:i64 = var
%1:i64 = var
%2:i64 = add 18446744073709551615:i64, %1 (hasExternalUses)
%3:i1 = ult %0, %2
%4:i1 = select %3, 0:i1, 1:i1
infer %4
%5:i1 = ule %2, %0
result %5
; total static profile = 4
; total dynamic profile = 0
------------------------------------------------------
%0:i64 = var
%1:i1 = eq 0:i64, %0 (hasExternalUses)
%2:i64 = select %1, 0:i64, 1:i64 (hasExternalUses)
%3:i64 = var
%4:i1 = eq 0:i64, %3 (hasExternalUses)
%5:i64 = select %4, 0:i64, 1:i64 (hasExternalUses)
%6:i1 = eq %2, %5
pc %6 1:i1
%7:i1 = select %1, 0:i1, 1:i1
pc %7 1:i1
%8:i1 = select %4, 0:i1, 1:i1
infer %8
%9:i1 = xor 1:i1, %4
result %9
; total static profile = 4
; total dynamic profile = 0
------------------------------------------------------
%0:i64 = var
%1:i64 = var
%2:i1 = slt %0, %1
pc %2 0:i1
%3:i1 = eq %0, %1
%4:i1 = select %3, 0:i1, 1:i1
infer %4
%5:i1 = slt %1, %0
result %5
; total static profile = 4
; total dynamic profile = 0
------------------------------------------------------
%0:i8 = var (knownBits=0000000x) (nonNegative) (signBits=7) (range=[0,2))
%1:i1 = eq 0:i8, %0
%2:i8 = var
%3:i16 = zext %2
%4:i16 = shlnuw %3, 8:i16
%5:i24 = zext %4
%6:i24 = shlnuw %5, 8:i24
%7:i24 = or 5:i24, %6
%8:i24 = select %1, 14:i24, %7 (hasExternalUses)
%9:i8 = trunc %8
%10:i1 = eq 14:i8, %9
infer %10
result %1
; total static profile = 3
; total dynamic profile = 0
------------------------------------------------------
%0:i8 = var (knownBits=0000000x) (nonNegative) (signBits=7) (range=[0,2))
%1:i1 = eq 0:i8, %0
%2:i8 = var
%3:i16 = zext %2
%4:i16 = shlnuw %3, 8:i16
%5:i24 = zext %4
%6:i24 = shlnuw %5, 8:i24
%7:i24 = or 5:i24, %6
%8:i24 = select %1, 14:i24, %7 (hasExternalUses)
%9:i8 = trunc %8
%10:i1 = eq 14:i8, %9 (hasExternalUses)
%11:i1 = select %10, 0:i1, 1:i1
infer %11
%12:i1 = trunc %0
result %12
; total static profile = 3
; total dynamic profile = 0
------------------------------------------------------
%0 = block 2
%1 = block 2
%2:i8 = var
%3:i8 = and 1:i8, %2
%4:i8 = phi %1, 1:i8, %3
%5:i8 = phi %0, 0:i8, %4
%6:i8 = and 1:i8, %5
infer %6
result %5
; total static profile = 3
; total dynamic profile = 0
------------------------------------------------------
%0:i64 = var
%1:i1 = ult 64:i64, %0
%2:i64 = var
%3:i64 = add 18446744073709551615:i64, %2
%4:i1 = ult 4095:i64, %3
%5:i1 = or %1, %4
pc %5 0:i1
%6:i64 = and 63:i64, %2
%7:i1 = eq 0:i64, %6
%8:i64 = addnw 64:i64, %2
%9:i64 = select %7, %2, %8
infer %9 (demandedBits=1111111111111111111111111111111111111111111111111111111111000000)
%10:i64 = sadd.sat 63:i64, %2
result %10
; total static profile = 3
; total dynamic profile = 0
------------------------------------------------------
%0:i64 = var
%1:i64 = lshr %0, 1:i64 (hasExternalUses)
%2:i64 = and 9223372036854775806:i64, %1 (hasExternalUses)
%3:i64 = addnsw 18446744073709551615:i64, %2 (hasExternalUses)
%4:i1 = ult %3, %0
pc %4 1:i1
%5:i32 = trunc %0
%6:i32 = shl %5, 13:i32
%7:i32 = xor %6, %5
%8:i32 = lshr %7, 17:i32
%9:i32 = xor %7, %8
%10:i32 = shl %9, 5:i32
%11:i32 = xor %9, %10
%12:i64 = zext %11
%13:i64 = shlnuw %12, 32:i64
%14:i32 = shl %11, 13:i32
%15:i32 = xor %11, %14
%16:i32 = lshr %15, 17:i32
%17:i32 = xor %15, %16
%18:i32 = shl %17, 5:i32
%19:i32 = xor %17, %18 (hasExternalUses)
%20:i64 = zext %19
%21:i64 = or %13, %20
%22:i64 = add 18446744073709551615:i64, %0
%23:i64 = ctlz %22
%24:i64 = lshr 18446744073709551615:i64, %23 (hasExternalUses)
%25:i64 = and %21, %24
%26:i1 = ult %25, %0
%27:i64 = select %26, 0:i64, %0
%28:i64 = sub %25, %27 (hasExternalUses)
%29:i1 = ult %28, %0
infer %29
result 1:i1
; total static profile = 3
; total dynamic profile = 0
------------------------------------------------------
%0:i64 = var
%1:i64 = lshr %0, 1:i64 (hasExternalUses)
%2:i64 = and 9223372036854775806:i64, %1 (hasExternalUses)
%3:i64 = addnsw 18446744073709551615:i64, %2 (hasExternalUses)
%4:i1 = ult %3, %0
pc %4 1:i1
%5:i32 = trunc %0
%6:i32 = shl %5, 13:i32
%7:i32 = xor %6, %5
%8:i32 = lshr %7, 17:i32
%9:i32 = xor %7, %8
%10:i32 = shl %9, 5:i32
%11:i32 = xor %9, %10
%12:i64 = zext %11
%13:i64 = shlnuw %12, 32:i64
%14:i32 = shl %11, 13:i32
%15:i32 = xor %11, %14
%16:i32 = lshr %15, 17:i32
%17:i32 = xor %15, %16
%18:i32 = shl %17, 5:i32
%19:i32 = xor %17, %18 (hasExternalUses)
%20:i64 = zext %19
%21:i64 = or %13, %20
%22:i64 = add 18446744073709551615:i64, %0
%23:i64 = ctlz %22
%24:i64 = lshr 18446744073709551615:i64, %23 (hasExternalUses)
%25:i64 = and %21, %24
%26:i1 = ult %25, %0
%27:i64 = select %26, 0:i64, %0
%28:i64 = sub %25, %27 (hasExternalUses)
%29:i1 = ult %28, %0
pc %29 1:i1
%30:i1 = ult %2, %0
infer %30
result 1:i1
; total static profile = 3
; total dynamic profile = 0
------------------------------------------------------
%0 = block 2
%1 = block 2
%2 = block 2
%3 = block 2
%4 = block 2
%5 = block 2
%6 = block 2
%7 = block 2
%8 = block 2
%9 = block 2
%10 = block 2
%11:i8 = phi %10, 0:i8, 1:i8
%12:i8 = phi %9, 0:i8, %11
%13:i8 = phi %8, 0:i8, %12
%14:i8 = phi %7, 0:i8, %13
%15:i8 = phi %6, 0:i8, %14
%16:i8 = phi %5, 0:i8, %15
%17:i8 = phi %4, 0:i8, %16
%18:i8 = phi %3, 0:i8, %17
%19:i8 = phi %2, 0:i8, %18
%20:i8 = phi %1, 0:i8, %19
%21:i8 = phi %0, 0:i8, %20
%22:i8 = and 1:i8, %21
infer %22
result %21
; total static profile = 3
; total dynamic profile = 0
------------------------------------------------------
%0:i8 = var
%1:i1 = eq 3:i8, %0
%2:i1 = select %1, 0:i1, 1:i1
infer %2
%3:i1 = xor 1:i1, %1
result %3
; total static profile = 3
; total dynamic profile = 0
------------------------------------------------------
%0 = block 2
%1 = block 2
%2 = block 2
%3 = block 2
%4 = block 2
%5 = block 2
%6 = block 2
%7 = block 2
%8 = block 2
%9 = block 2
%10 = block 2
%11 = block 2
%12 = block 2
%13 = block 2
%14:i8 = phi %13, 0:i8, 1:i8
%15:i8 = phi %12, 0:i8, %14
%16:i8 = phi %11, 0:i8, %15
%17:i8 = phi %10, 0:i8, %16
%18:i8 = phi %9, 0:i8, %17
%19:i8 = phi %8, 0:i8, %18
%20:i8 = phi %7, 0:i8, %19
%21:i8 = phi %6, 0:i8, %20
%22:i8 = phi %5, 0:i8, %21
%23:i8 = phi %4, 0:i8, %22
%24:i8 = phi %3, 0:i8, %23
%25:i8 = phi %2, 0:i8, %24
%26:i8 = phi %1, 0:i8, %25
%27:i8 = phi %0, 0:i8, %26
%28:i8 = and 1:i8, %27
infer %28
result %27
; total static profile = 3
; total dynamic profile = 0
------------------------------------------------------
%0:i64 = var (nonZero) (range=[19,0))
%1:i1 = ult %0, 18:i64
pc %1 0:i1
%2:i64 = var
%3:i1 = ult %0, %2
pc %3 1:i1
%4:i64 = add 18446744073709551598:i64, %0 (hasExternalUses)
%5:i1 = eq 0:i64, %4
%6:i1 = select %5, 0:i1, 1:i1
infer %6
result 1:i1
; total static profile = 3
; total dynamic profile = 0
------------------------------------------------------
%0:i64 = var (nonZero) (range=[19,0))
%1:i1 = ult %0, 18:i64
pc %1 0:i1
%2:i64 = var
%3:i1 = ult %0, %2
pc %3 1:i1
%4:i64 = add 18446744073709551598:i64, %0 (hasExternalUses)
%5:i1 = eq 0:i64, %4
infer %5
result 0:i1
; total static profile = 3
; total dynamic profile = 0
------------------------------------------------------
%0 = block 4
%1 = block 2
%2:i1 = var
%3:i1 = xor 1:i1, %2
%4:i8 = zext %3
%5:i8 = phi %1, 1:i8, %4
%6 = block 2
%7:i1 = var
%8:i1 = xor 1:i1, %7
%9:i8 = zext %8
%10:i8 = phi %6, 1:i8, %9
%11:i8 = phi %0, 0:i8, %5, %10, 1:i8
%12:i8 = and 1:i8, %11
infer %12
result %11
; total static profile = 3
; total dynamic profile = 0
------------------------------------------------------
%0:i64 = var
%1:i64 = var
%2:i1 = eq %0, %1
pc %2 0:i1
%3:i64 = var (nonZero)
%4:i64 = subnuw %0, %3
%5:i64 = uadd.sat 1:i64, %4
infer %5
%6:i64 = add 1:i64, %4
result %6
; total static profile = 3
; total dynamic profile = 0
------------------------------------------------------
%0:i8 = var
%1:i32 = var
%2:i8 = trunc %1 (hasExternalUses)
%3:i1 = eq %0, %2
pc %3 1:i1
%4:i1 = eq 13:i8, %0
%5:i1 = eq 13:i8, %2
%6:i1 = and %4, %5
infer %6
result %4
; total static profile = 3
; total dynamic profile = 0
------------------------------------------------------
%0:i64 = var (nonZero) (range=[19,0))
%1:i1 = ult %0, 18:i64
infer %1
result 0:i1
; total static profile = 3
; total dynamic profile = 0
------------------------------------------------------
%0:i8 = var (knownBits=0000000x) (nonNegative) (signBits=7) (range=[0,2))
%1:i8 = and 1:i8, %0
%2:i1 = eq 0:i8, %1
infer %2
%3:i1 = eq 0:i8, %0
result %3
; total static profile = 2
; total dynamic profile = 0
------------------------------------------------------
%0:i64 = var
%1:i64 = add 1:i64, %0 (hasExternalUses)
%2:i1 = eq 0:i64, %1 (hasExternalUses)
%3:i1 = select %2, 0:i1, 1:i1
infer %3
%4:i1 = ult %0, %1
result %4
; total static profile = 2
; total dynamic profile = 0
------------------------------------------------------
%0:i32 = var
%1:i1 = eq 0:i32, %0
pc %1 0:i1
%2:i32 = and 1:i32, %0
%3:i1 = eq 0:i32, %2
pc %3 1:i1
%4:i32 = and 2:i32, %0
%5:i1 = eq 0:i32, %4
pc %5 1:i1
%6:i32 = and 3:i32, %0
infer %6
result 0:i32
; total static profile = 2
; total dynamic profile = 0
------------------------------------------------------
%0:i32 = var
%1:i1 = eq 0:i32, %0
pc %1 0:i1
%2:i32 = and 1:i32, %0
%3:i1 = eq 0:i32, %2
pc %3 1:i1
%4:i32 = and 2:i32, %0
%5:i1 = eq 0:i32, %4
pc %5 1:i1
%6:i32 = and 3:i32, %0
%7:i1 = eq 3:i32, %6
pc %7 0:i1
%8:i32 = and 4:i32, %0
%9:i1 = eq 0:i32, %8
pc %9 1:i1
%10:i32 = and 9:i32, %0
%11:i1 = eq 9:i32, %10
pc %11 0:i1
%12:i32 = and 10:i32, %0
%13:i1 = eq 10:i32, %12
infer %13
result 0:i1
; total static profile = 2
; total dynamic profile = 0
------------------------------------------------------
%0 = block 2
%1 = block 2
%2 = block 2
%3 = block 2
%4 = block 2
%5 = block 2
%6 = block 2
%7 = block 2
%8 = block 2
%9 = block 2
%10 = block 2
%11 = block 2
%12 = block 2
%13 = block 2
%14 = block 2
%15 = block 2
%16 = block 2
%17:i8 = phi %16, 0:i8, 1:i8
%18:i8 = phi %15, 0:i8, %17
%19:i8 = phi %14, 0:i8, %18
%20:i8 = phi %13, 0:i8, %19
%21:i8 = phi %12, 0:i8, %20
%22:i8 = phi %11, 0:i8, %21
%23:i8 = phi %10, 0:i8, %22
%24:i8 = phi %9, 0:i8, %23
%25:i8 = phi %8, 0:i8, %24
%26:i8 = phi %7, 0:i8, %25
%27:i8 = phi %6, 0:i8, %26
%28:i8 = phi %5, 0:i8, %27
%29:i8 = phi %4, 0:i8, %28
%30:i8 = phi %3, 0:i8, %29
%31:i8 = phi %2, 0:i8, %30
%32:i8 = phi %1, 0:i8, %31
%33:i8 = phi %0, 0:i8, %32
%34:i8 = and 1:i8, %33
infer %34
result %33
; total static profile = 2
; total dynamic profile = 0
------------------------------------------------------
%0:i32 = var
%1:i32 = and 448:i32, %0
%2:i1 = eq 448:i32, %1
pc %2 0:i1
%3:i32 = and 256:i32, %0
%4:i1 = eq 0:i32, %3
pc %4 1:i1
%5:i8 = trunc %0
%6:i1 = slt %5, 0:i8
pc %6 0:i1
%7:i32 = and 64:i32, %0
%8:i1 = eq 0:i32, %7
pc %8 1:i1
%9:i32 = and 56:i32, %0
%10:i1 = eq 56:i32, %9
pc %10 0:i1
%11:i32 = and 32:i32, %0
%12:i1 = eq 0:i32, %11
pc %12 1:i1
%13:i32 = and 16:i32, %0
%14:i1 = eq 0:i32, %13
pc %14 1:i1
%15:i32 = and 8:i32, %0
%16:i1 = eq 0:i32, %15
pc %16 1:i1
%17:i32 = and 7:i32, %0
%18:i1 = eq 7:i32, %17
pc %18 0:i1
%19:i32 = and 4:i32, %0
%20:i1 = eq 0:i32, %19
pc %20 1:i1
%21:i32 = and 2:i32, %0
%22:i1 = eq 0:i32, %21
pc %22 1:i1
%23:i32 = and 1:i32, %0
%24:i1 = eq 0:i32, %23
pc %24 1:i1
%25:i32 = and 2048:i32, %0
%26:i1 = eq 0:i32, %25
pc %26 1:i1
%27:i32 = and 1024:i32, %0
%28:i1 = eq 0:i32, %27
pc %28 1:i1
%29:i32 = and 512:i32, %0
%30:i1 = eq 0:i32, %29
pc %30 1:i1
%31:i32 = and 4294963200:i32, %0
infer %31
result %0
; total static profile = 2
; total dynamic profile = 0
------------------------------------------------------
%0:i8 = var (knownBits=0000000x) (nonNegative) (signBits=7) (range=[0,2))
%1:i8 = and 1:i8, %0
infer %1
result %0
; total static profile = 2
; total dynamic profile = 0
------------------------------------------------------
%0:i32 = var
%1:i1 = eq 0:i32, %0
pc %1 0:i1
%2:i32 = and 1:i32, %0
%3:i1 = eq 0:i32, %2
pc %3 1:i1
%4:i32 = and 2:i32, %0
%5:i1 = eq 0:i32, %4
pc %5 1:i1
%6:i32 = and 3:i32, %0
%7:i1 = eq 3:i32, %6
pc %7 0:i1
%8:i32 = and 4:i32, %0
%9:i1 = eq 0:i32, %8
pc %9 1:i1
%10:i32 = and 9:i32, %0
%11:i1 = eq 9:i32, %10
pc %11 0:i1
%12:i32 = and 10:i32, %0
%13:i1 = eq 10:i32, %12
pc %13 0:i1
%14:i32 = and 11:i32, %0
%15:i1 = eq 11:i32, %14
pc %15 0:i1
%16:i32 = and 100:i32, %0
%17:i1 = eq 100:i32, %16
infer %17
result 0:i1
; total static profile = 2
; total dynamic profile = 0
------------------------------------------------------
%0:i32 = var
%1:i1 = eq 0:i32, %0
pc %1 0:i1
%2:i32 = and 1:i32, %0
%3:i1 = eq 0:i32, %2
pc %3 1:i1
%4:i32 = and 2:i32, %0
%5:i1 = eq 0:i32, %4
pc %5 1:i1
%6:i32 = and 3:i32, %0
%7:i1 = eq 3:i32, %6
pc %7 0:i1
%8:i32 = and 4:i32, %0
%9:i1 = eq 0:i32, %8
pc %9 1:i1
%10:i32 = and 9:i32, %0
%11:i1 = eq 9:i32, %10
pc %11 0:i1
%12:i32 = and 10:i32, %0
%13:i1 = eq 10:i32, %12
pc %13 0:i1
%14:i32 = and 11:i32, %0
%15:i1 = eq 11:i32, %14
pc %15 0:i1
%16:i32 = and 100:i32, %0
%17:i1 = eq 100:i32, %16
pc %17 0:i1
%18:i32 = and 12:i32, %0
%19:i1 = eq 12:i32, %18
infer %19
result 0:i1
; total static profile = 2
; total dynamic profile = 0
------------------------------------------------------
%0:i32 = var
%1:i1 = eq 0:i32, %0
pc %1 0:i1
%2:i32 = and 1:i32, %0
%3:i1 = eq 0:i32, %2
pc %3 1:i1
%4:i32 = and 2:i32, %0
%5:i1 = eq 0:i32, %4
pc %5 1:i1
%6:i32 = and 3:i32, %0
%7:i1 = eq 3:i32, %6
pc %7 0:i1
%8:i32 = and 4:i32, %0
%9:i1 = eq 0:i32, %8
pc %9 1:i1
%10:i32 = and 9:i32, %0
%11:i1 = eq 9:i32, %10
pc %11 0:i1
%12:i32 = and 10:i32, %0
%13:i1 = eq 10:i32, %12
pc %13 0:i1
%14:i32 = and 11:i32, %0
%15:i1 = eq 11:i32, %14
pc %15 0:i1
%16:i32 = and 100:i32, %0
%17:i1 = eq 100:i32, %16
pc %17 0:i1
%18:i32 = and 12:i32, %0
%19:i1 = eq 12:i32, %18
pc %19 0:i1
%20:i32 = and 13:i32, %0
%21:i1 = eq 13:i32, %20
pc %21 0:i1
%22:i32 = and 101:i32, %0
%23:i1 = eq 101:i32, %22
pc %23 0:i1
%24:i32 = and 14:i32, %0
%25:i1 = eq 14:i32, %24
pc %25 0:i1
%26:i32 = and 15:i32, %0
%27:i1 = eq 15:i32, %26
infer %27
result 0:i1
; total static profile = 2
; total dynamic profile = 0
------------------------------------------------------
%0:i32 = var
%1:i1 = eq 0:i32, %0
pc %1 0:i1
%2:i32 = and 1:i32, %0
%3:i1 = eq 0:i32, %2
pc %3 1:i1
%4:i32 = and 2:i32, %0
%5:i1 = eq 0:i32, %4
pc %5 1:i1
%6:i32 = and 3:i32, %0
%7:i1 = eq 3:i32, %6
pc %7 0:i1
%8:i32 = and 4:i32, %0
%9:i1 = eq 0:i32, %8
pc %9 1:i1
%10:i32 = and 9:i32, %0
%11:i1 = eq 9:i32, %10
pc %11 0:i1
%12:i32 = and 10:i32, %0
%13:i1 = eq 10:i32, %12
pc %13 0:i1
%14:i32 = and 11:i32, %0
%15:i1 = eq 11:i32, %14
pc %15 0:i1
%16:i32 = and 100:i32, %0
%17:i1 = eq 100:i32, %16
pc %17 0:i1
%18:i32 = and 12:i32, %0
%19:i1 = eq 12:i32, %18
pc %19 0:i1
%20:i32 = and 13:i32, %0
%21:i1 = eq 13:i32, %20
pc %21 0:i1
%22:i32 = and 101:i32, %0
%23:i1 = eq 101:i32, %22
pc %23 0:i1
%24:i32 = and 14:i32, %0
%25:i1 = eq 14:i32, %24
pc %25 0:i1
%26:i32 = and 15:i32, %0
%27:i1 = eq 15:i32, %26
pc %27 0:i1
%28:i32 = and 16:i32, %0
%29:i1 = eq 0:i32, %28
pc %29 1:i1
%30:i32 = and 17:i32, %0
infer %30
result 0:i32
; total static profile = 2
; total dynamic profile = 0
------------------------------------------------------
%0:i32 = var
%1:i1 = eq 0:i32, %0
pc %1 0:i1
%2:i32 = and 1:i32, %0
%3:i1 = eq 0:i32, %2
pc %3 1:i1
%4:i32 = and 2:i32, %0
%5:i1 = eq 0:i32, %4
pc %5 1:i1
%6:i32 = and 3:i32, %0
%7:i1 = eq 3:i32, %6
pc %7 0:i1
%8:i32 = and 4:i32, %0
%9:i1 = eq 0:i32, %8
pc %9 1:i1
%10:i32 = and 9:i32, %0
%11:i1 = eq 9:i32, %10
pc %11 0:i1
%12:i32 = and 10:i32, %0
%13:i1 = eq 10:i32, %12
pc %13 0:i1
%14:i32 = and 11:i32, %0
%15:i1 = eq 11:i32, %14
pc %15 0:i1
%16:i32 = and 100:i32, %0
%17:i1 = eq 100:i32, %16
pc %17 0:i1
%18:i32 = and 12:i32, %0
%19:i1 = eq 12:i32, %18
pc %19 0:i1
%20:i32 = and 13:i32, %0
%21:i1 = eq 13:i32, %20
pc %21 0:i1
%22:i32 = and 101:i32, %0
%23:i1 = eq 101:i32, %22
pc %23 0:i1
%24:i32 = and 14:i32, %0
%25:i1 = eq 14:i32, %24
pc %25 0:i1
%26:i32 = and 15:i32, %0
%27:i1 = eq 15:i32, %26
pc %27 0:i1
%28:i32 = and 16:i32, %0
%29:i1 = eq 0:i32, %28
pc %29 1:i1
%30:i32 = and 17:i32, %0
%31:i1 = eq 17:i32, %30
infer %31
result 0:i1
; total static profile = 2
; total dynamic profile = 0
------------------------------------------------------
%0:i32 = var
%1:i1 = eq 0:i32, %0
pc %1 0:i1
%2:i32 = and 1:i32, %0
%3:i1 = eq 0:i32, %2
pc %3 1:i1
%4:i32 = and 2:i32, %0
%5:i1 = eq 0:i32, %4
pc %5 1:i1
%6:i32 = and 1024:i32, %0
%7:i1 = eq 0:i32, %6
pc %7 1:i1
%8:i32 = and 8192:i32, %0
%9:i1 = eq 0:i32, %8
pc %9 1:i1
%10:i32 = and 524288:i32, %0
%11:i1 = eq 0:i32, %10
pc %11 1:i1
%12:i32 = and 64:i32, %0
%13:i1 = eq 0:i32, %12
pc %13 1:i1
%14:i32 = and 16384:i32, %0
%15:i1 = eq 0:i32, %14
pc %15 1:i1
%16:i32 = and 65536:i32, %0
%17:i1 = eq 0:i32, %16
pc %17 1:i1
%18:i32 = and 4096:i32, %0
%19:i1 = eq 0:i32, %18
pc %19 1:i1
%20:i8 = trunc %0
%21:i1 = slt %20, 0:i8
pc %21 0:i1
%22:i32 = and 262144:i32, %0
%23:i1 = eq 0:i32, %22
pc %23 1:i1
%24:i32 = and 256:i32, %0
%25:i1 = eq 0:i32, %24
pc %25 1:i1
%26:i32 = and 131072:i32, %0
%27:i1 = eq 0:i32, %26
pc %27 1:i1
%28:i32 = and 2048:i32, %0
%29:i1 = eq 0:i32, %28
pc %29 1:i1
%30:i32 = and 2097152:i32, %0
%31:i1 = eq 0:i32, %30
pc %31 1:i1
%32:i32 = and 1052672:i32, %0
%33:i1 = eq 1052672:i32, %32
infer %33
result 0:i1
; total static profile = 2
; total dynamic profile = 0
------------------------------------------------------
%0:i32 = var
%1:i1 = eq 0:i32, %0
pc %1 0:i1
%2:i32 = and 4:i32, %0
%3:i1 = eq 0:i32, %2
pc %3 1:i1
%4:i32 = and 2:i32, %0
%5:i1 = eq 0:i32, %4
pc %5 1:i1
%6:i32 = and 1:i32, %0
%7:i1 = eq 0:i32, %6
pc %7 1:i1
%8:i32 = and 4294967288:i32, %0
infer %8
result %0
; total static profile = 2
; total dynamic profile = 0
------------------------------------------------------
%0:i32 = var
%1:i1 = eq 0:i32, %0
pc %1 0:i1
%2:i32 = and 1:i32, %0
%3:i1 = eq 0:i32, %2
pc %3 1:i1
%4:i32 = and 2:i32, %0
%5:i1 = eq 0:i32, %4
pc %5 1:i1
%6:i32 = and 3:i32, %0
%7:i1 = eq 3:i32, %6
pc %7 0:i1
%8:i32 = and 4:i32, %0
%9:i1 = eq 0:i32, %8
pc %9 1:i1
%10:i32 = and 9:i32, %0
%11:i1 = eq 9:i32, %10
infer %11
result 0:i1
; total static profile = 2
; total dynamic profile = 0
------------------------------------------------------
%0 = block 2
%1 = block 2
%2 = block 2
%3 = block 2
%4 = block 2
%5 = block 2
%6 = block 2
%7 = block 2
%8 = block 2
%9 = block 2
%10 = block 2
%11 = block 2
%12 = block 2
%13 = block 2
%14 = block 2
%15 = block 2
%16:i8 = phi %15, 0:i8, 1:i8
%17:i8 = phi %14, 0:i8, %16
%18:i8 = phi %13, 0:i8, %17
%19:i8 = phi %12, 0:i8, %18
%20:i8 = phi %11, 0:i8, %19
%21:i8 = phi %10, 0:i8, %20
%22:i8 = phi %9, 0:i8, %21
%23:i8 = phi %8, 0:i8, %22
%24:i8 = phi %7, 0:i8, %23
%25:i8 = phi %6, 0:i8, %24
%26:i8 = phi %5, 0:i8, %25
%27:i8 = phi %4, 0:i8, %26
%28:i8 = phi %3, 0:i8, %27
%29:i8 = phi %2, 0:i8, %28
%30:i8 = phi %1, 0:i8, %29
%31:i8 = phi %0, 0:i8, %30
%32:i8 = and 1:i8, %31
infer %32
result %31
; total static profile = 2
; total dynamic profile = 0
------------------------------------------------------
%0:i64 = var
%1:i64 = var
%2:i64 = add 18446744073709551615:i64, %1 (hasExternalUses)
%3:i1 = ult %0, %2 (hasExternalUses)
%4:i1 = select %3, 0:i1, 1:i1
pc %4 0:i1
%5:i1 = var
%6:i1 = xor %5, %4
infer %6
result %5
; total static profile = 2
; total dynamic profile = 0
------------------------------------------------------
%0:i32 = var
%1:i1 = eq 0:i32, %0
pc %1 0:i1
%2:i32 = and 1:i32, %0
%3:i1 = eq 0:i32, %2
pc %3 1:i1
%4:i32 = and 2:i32, %0
%5:i1 = eq 0:i32, %4
pc %5 1:i1
%6:i32 = and 3:i32, %0
%7:i1 = eq 3:i32, %6
pc %7 0:i1
%8:i32 = and 4:i32, %0
%9:i1 = eq 0:i32, %8
pc %9 1:i1
%10:i32 = and 9:i32, %0
%11:i1 = eq 9:i32, %10
pc %11 0:i1
%12:i32 = and 10:i32, %0
%13:i1 = eq 10:i32, %12
pc %13 0:i1
%14:i32 = and 11:i32, %0
%15:i1 = eq 11:i32, %14
pc %15 0:i1
%16:i32 = and 100:i32, %0
%17:i1 = eq 100:i32, %16
pc %17 0:i1
%18:i32 = and 12:i32, %0
%19:i1 = eq 12:i32, %18
pc %19 0:i1
%20:i32 = and 13:i32, %0
%21:i1 = eq 13:i32, %20
infer %21
result 0:i1
; total static profile = 2
; total dynamic profile = 0
------------------------------------------------------
%0:i64 = var
%1:i64 = var
%2:i64 = add 18446744073709551615:i64, %1 (hasExternalUses)
%3:i1 = ult %0, %2 (hasExternalUses)
%4:i1 = select %3, 0:i1, 1:i1
pc %4 0:i1
%5:i1 = var
%6:i1 = xor %5, %4
pc %6 0:i1
%7:i1 = or %5, %4
infer %7
result 0:i1
; total static profile = 2
; total dynamic profile = 0
------------------------------------------------------
%0:i32 = var
%1:i1 = eq 0:i32, %0
pc %1 0:i1
%2:i32 = and 1:i32, %0
%3:i1 = eq 0:i32, %2
pc %3 1:i1
%4:i32 = and 2:i32, %0
%5:i1 = eq 0:i32, %4
pc %5 1:i1
%6:i32 = and 3:i32, %0
%7:i1 = eq 3:i32, %6
pc %7 0:i1
%8:i32 = and 4:i32, %0
%9:i1 = eq 0:i32, %8
pc %9 1:i1
%10:i32 = and 9:i32, %0
%11:i1 = eq 9:i32, %10
pc %11 0:i1
%12:i32 = and 10:i32, %0
%13:i1 = eq 10:i32, %12
pc %13 0:i1
%14:i32 = and 11:i32, %0
%15:i1 = eq 11:i32, %14
infer %15
result 0:i1
; total static profile = 2
; total dynamic profile = 0
------------------------------------------------------
%0:i32 = var
%1:i32 = and 1:i32, %0
%2:i1 = eq 0:i32, %1
pc %2 1:i1
%3:i32 = and 4:i32, %0
%4:i1 = eq 0:i32, %3
pc %4 1:i1
%5:i32 = and 2:i32, %0
%6:i1 = eq 0:i32, %5
pc %6 1:i1
%7:i32 = and 4294967288:i32, %0
infer %7
result %0
; total static profile = 2
; total dynamic profile = 0
------------------------------------------------------
%0 = block 3
%1:i128 = var (range=[1,-170141183460469231731687303715884105727))
%2:i128 = ctlz %1
%3:i32 = trunc %2
%4:i32 = subnsw 127:i32, %3
%5:i32 = subnsw 128:i32, %3
%6:i32 = phi %0, %4, %5, %4
%7:i32 = addnsw 1023:i32, %6
%8:i64 = zext %7
%9:i64 = shl %8, 52:i64
%10:i64 = and 9218868437227405312:i64, %9
%11:i128 = var
%12:i128 = lshr %11, 64:i128
%13:i64 = trunc %12
%14:i64 = and 9223372036854775808:i64, %13
%15:i64 = or %10, %14
infer %15
%16:i64 = add %14, %9
result %16
; total static profile = 2
; total dynamic profile = 0
------------------------------------------------------
%0 = block 2
%1 = block 2
%2 = block 2
%3 = block 2
%4:i8 = phi %3, 0:i8, 1:i8
%5:i8 = phi %2, 0:i8, %4
%6:i8 = phi %1, 0:i8, %5
%7:i8 = phi %0, %6, 0:i8
%8:i8 = and 1:i8, %7
infer %8
result %7
; total static profile = 2
; total dynamic profile = 0
------------------------------------------------------
%0:i32 = var
%1:i32 = and 524288:i32, %0
%2:i1 = eq 0:i32, %1
pc %2 1:i1
%3:i32 = and 16384:i32, %0
%4:i1 = eq 0:i32, %3
pc %4 1:i1
%5:i32 = and 2048:i32, %0
%6:i1 = eq 0:i32, %5
pc %6 1:i1
%7:i32 = and 4294424575:i32, %0
infer %7
result %0
; total static profile = 2
; total dynamic profile = 0
------------------------------------------------------
%0:i32 = var
%1:i1 = eq 0:i32, %0
pc %1 0:i1
%2:i32 = and 1:i32, %0
%3:i1 = eq 0:i32, %2
pc %3 1:i1
%4:i32 = and 2:i32, %0
%5:i1 = eq 0:i32, %4
pc %5 1:i1
%6:i32 = and 3:i32, %0
%7:i1 = eq 3:i32, %6
pc %7 0:i1
%8:i32 = and 4:i32, %0
%9:i1 = eq 0:i32, %8
pc %9 1:i1
%10:i32 = and 9:i32, %0
%11:i1 = eq 9:i32, %10
pc %11 0:i1
%12:i32 = and 10:i32, %0
%13:i1 = eq 10:i32, %12
pc %13 0:i1
%14:i32 = and 11:i32, %0
%15:i1 = eq 11:i32, %14
pc %15 0:i1
%16:i32 = and 100:i32, %0
%17:i1 = eq 100:i32, %16
pc %17 0:i1
%18:i32 = and 12:i32, %0
%19:i1 = eq 12:i32, %18
pc %19 0:i1
%20:i32 = and 13:i32, %0
%21:i1 = eq 13:i32, %20
pc %21 0:i1
%22:i32 = and 101:i32, %0
%23:i1 = eq 101:i32, %22
pc %23 0:i1
%24:i32 = and 14:i32, %0
%25:i1 = eq 14:i32, %24
infer %25
result 0:i1
; total static profile = 2
; total dynamic profile = 0
------------------------------------------------------
%0:i32 = var
%1:i32 = and 256:i32, %0
%2:i1 = eq 0:i32, %1
pc %2 1:i1
%3:i32 = and 512:i32, %0
%4:i1 = eq 0:i32, %3
pc %4 1:i1
%5:i32 = and 1024:i32, %0
%6:i1 = eq 0:i32, %5
pc %6 1:i1
%7:i32 = and 2048:i32, %0
%8:i1 = eq 0:i32, %7
pc %8 1:i1
%9:i32 = and 65536:i32, %0
%10:i1 = eq 0:i32, %9
pc %10 1:i1
%11:i32 = and 262144:i32, %0
%12:i1 = eq 0:i32, %11
pc %12 1:i1
%13:i32 = and 524288:i32, %0
%14:i1 = eq 0:i32, %13
pc %14 1:i1
%15:i32 = and 1048576:i32, %0
%16:i1 = eq 0:i32, %15
pc %16 1:i1
%17:i32 = and 2097152:i32, %0
%18:i1 = eq 0:i32, %17
pc %18 1:i1
%19:i32 = and 4290965759:i32, %0
infer %19
result %0
; total static profile = 2
; total dynamic profile = 0
------------------------------------------------------
%0:i32 = var
%1:i1 = eq 0:i32, %0
pc %1 0:i1
%2:i32 = and 4:i32, %0
%3:i1 = eq 0:i32, %2
pc %3 1:i1
%4:i32 = and 2:i32, %0
%5:i1 = eq 0:i32, %4
pc %5 1:i1
%6:i32 = and 1:i32, %0
%7:i1 = eq 0:i32, %6
pc %7 1:i1
%8:i32 = and 4294967288:i32, %0 (hasExternalUses)
%9:i1 = eq 0:i32, %8
infer %9
result 0:i1
; total static profile = 2
; total dynamic profile = 0
------------------------------------------------------
%0 = block 3
%1:i128 = var (range=[1,-170141183460469231731687303715884105727))
%2:i128 = ctlz %1
%3:i32 = trunc %2
%4:i32 = subnsw 127:i32, %3
%5:i32 = subnsw 128:i32, %3
%6:i32 = phi %0, %4, %5, %4
%7:i32 = shl %6, 23:i32
%8:i32 = add 1065353216:i32, %7
%9:i32 = and 2139095040:i32, %8
%10:i128 = var
%11:i128 = lshr %10, 96:i128
%12:i32 = trunc %11
%13:i32 = and 2147483648:i32, %12
%14:i32 = or %9, %13
infer %14
%15:i32 = add %8, %13
result %15
; total static profile = 2
; total dynamic profile = 0
------------------------------------------------------
%0:i32 = var (knownBits=00000000000xxxxxxxxxxxxxxxxxxxxx) (nonNegative) (signBits=11) (range=[0,1114113))
%1:i1 = eq 1114112:i32, %0
%2:i1 = select %1, 0:i1, 1:i1
infer %2
%3:i1 = ult %0, 1114112:i32
result %3
; total static profile = 1
; total dynamic profile = 0
------------------------------------------------------
%0 = block 2
%1 = block 2
%2 = block 2
%3 = block 2
%4 = block 2
%5 = block 2
%6 = block 2
%7 = block 2
%8 = block 2
%9 = block 2
%10:i8 = phi %9, 0:i8, 1:i8
%11:i8 = phi %8, 0:i8, %10
%12:i8 = phi %7, 0:i8, %11
%13:i8 = phi %6, 0:i8, %12
%14:i8 = phi %5, 0:i8, %13
%15:i8 = phi %4, 0:i8, %14
%16:i8 = phi %3, 0:i8, %15
%17:i8 = phi %2, 0:i8, %16
%18:i8 = phi %1, 0:i8, %17
%19:i8 = phi %0, %18, 0:i8
%20:i8 = and 1:i8, %19
infer %20
result %19
; total static profile = 1
; total dynamic profile = 0
------------------------------------------------------
%0:i64 = var
%1:i1 = slt %0, 0:i64
pc %1 1:i1
%2:i64 = var
%3:i1 = slt %2, 0:i64 (hasExternalUses)
%4:i1 = xor %1, %3
infer %4
%5:i1 = ult %2, 9223372036854775808:i64
result %5
; total static profile = 1
; total dynamic profile = 0
------------------------------------------------------
%0:i64 = var (range=[19,0))
%1:i64 = var
%2:i1 = ult %0, %1
pc %2 1:i1
%3:i1 = ult %0, 18:i64
pc %3 0:i1
%4:i64 = add 18446744073709551598:i64, %0 (hasExternalUses)
%5:i1 = eq 0:i64, %4
%6:i1 = select %5, 0:i1, 1:i1
infer %6
result 1:i1
; total static profile = 1
; total dynamic profile = 0
------------------------------------------------------
%0 = block 2
%1 = block 2
%2 = block 2
%3 = block 2
%4 = block 2
%5 = block 2
%6 = block 2
%7 = block 2
%8 = block 2
%9 = block 2
%10 = block 2
%11 = block 2
%12 = block 2
%13 = block 2
%14 = block 2
%15 = block 2
%16:i8 = phi %15, 0:i8, 1:i8
%17:i8 = phi %14, 0:i8, %16
%18:i8 = phi %13, 0:i8, %17
%19:i8 = phi %12, 0:i8, %18
%20:i8 = phi %11, 0:i8, %19
%21:i8 = phi %10, 0:i8, %20
%22:i8 = phi %9, 0:i8, %21
%23:i8 = phi %8, 0:i8, %22
%24:i8 = phi %7, 0:i8, %23
%25:i8 = phi %6, 0:i8, %24
%26:i8 = phi %5, 0:i8, %25
%27:i8 = phi %4, 0:i8, %26
%28:i8 = phi %3, 0:i8, %27
%29:i8 = phi %2, 0:i8, %28
%30:i8 = phi %1, 0:i8, %29
%31:i8 = phi %0, %30, 0:i8
%32:i8 = and 1:i8, %31
infer %32
result %31
; total static profile = 1
; total dynamic profile = 0
------------------------------------------------------
%0:i64 = var
%1:i1 = eq 0:i64, %0 (hasExternalUses)
%2:i64 = select %1, 0:i64, 1:i64
%3:i64 = var
%4:i1 = eq 0:i64, %3 (hasExternalUses)
%5:i64 = select %4, 0:i64, 1:i64
%6:i1 = eq %2, %5
infer %6
%7:i1 = eq %1, %4
result %7
; total static profile = 1
; total dynamic profile = 0
------------------------------------------------------
%0:i8 = var
%1:i1 = eq 3:i8, %0 (hasExternalUses)
%2:i1 = select %1, 0:i1, 1:i1
infer %2
%3:i1 = xor 1:i1, %1
result %3
; total static profile = 1
; total dynamic profile = 0
------------------------------------------------------
%0:i8 = var (knownBits=0000000x) (nonNegative) (signBits=7) (range=[0,2))
%1:i1 = eq 0:i8, %0
%2:i1 = xor 1:i1, %1
infer %2
%3:i1 = trunc %0
result %3
; total static profile = 1
; total dynamic profile = 0
------------------------------------------------------
%0:i64 = var (range=[19,0))
%1:i64 = var
%2:i1 = ult %0, %1
pc %2 1:i1
%3:i1 = ult %0, 18:i64
pc %3 0:i1
infer %2
result 1:i1
; total static profile = 1
; total dynamic profile = 0
------------------------------------------------------
%0:i128 = var
%1:i1 = slt %0, 0:i128
pc %1 0:i1
%2:i128 = var
%3:i1 = slt %2, 0:i128 (hasExternalUses)
%4:i1 = xor %1, %3
infer %4
result %3
; total static profile = 1
; total dynamic profile = 0
------------------------------------------------------
%0:i8 = var (knownBits=0000xxxx) (nonNegative) (signBits=4) (range=[0,14))
%1:i8 = var
%2:i1 = eq %0, %1
pc %2 1:i1
%3:i1 = eq 13:i8, %0
%4:i1 = eq 13:i8, %1
%5:i1 = and %3, %4
infer %5
result %3
; total static profile = 1
; total dynamic profile = 0
------------------------------------------------------
%0:i8 = var (knownBits=0000xxxx) (nonNegative) (signBits=4) (range=[0,14))
%1:i8 = var
%2:i1 = eq %0, %1
pc %2 1:i1
%3:i1 = eq 13:i8, %0
%4:i1 = eq 13:i8, %1
%5:i1 = and %3, %4
%6:i8 = var
%7:i8 = var
%8:i1 = ne %6, %7
%9:i1 = select %5, %8, 0:i1
infer %9
%10:i1 = select %3, %8, %3
result %10
; total static profile = 1
; total dynamic profile = 0
------------------------------------------------------
%0:i64 = var (range=[19,0))
%1:i64 = var
%2:i1 = ult %0, %1
pc %2 1:i1
%3:i1 = ult %0, 18:i64
infer %3
result 0:i1
; total static profile = 1
; total dynamic profile = 0
------------------------------------------------------
%0:i32 = var
%1:i1 = eq 0:i32, %0
pc %1 1:i1
%2:i32 = and 4294967168:i32, %0
infer %2
result 0:i32
; total static profile = 1
; total dynamic profile = 0
------------------------------------------------------
%0:i128 = var
%1:i1 = slt %0, 0:i128
pc %1 1:i1
%2:i128 = var
%3:i1 = slt %2, 0:i128 (hasExternalUses)
%4:i1 = xor %1, %3
infer %4
%5:i1 = ult %2, 170141183460469231731687303715884105728:i128
result %5
; total static profile = 1
; total dynamic profile = 0
------------------------------------------------------
%0:i32 = var
%1:i1 = eq 0:i32, %0
pc %1 1:i1
%2:i32 = and 4294967288:i32, %0
infer %2
result 0:i32
; total static profile = 1
; total dynamic profile = 0
------------------------------------------------------
%0 = block 2
%1 = block 2
%2 = block 2
%3 = block 2
%4 = block 2
%5 = block 2
%6 = block 2
%7 = block 2
%8 = block 2
%9 = block 2
%10 = block 2
%11 = block 2
%12 = block 2
%13 = block 2
%14 = block 2
%15 = block 2
%16 = block 2
%17 = block 2
%18 = block 2
%19 = block 2
%20:i8 = phi %19, 0:i8, 1:i8
%21:i8 = phi %18, 0:i8, %20
%22:i8 = phi %17, 0:i8, %21
%23:i8 = phi %16, 0:i8, %22
%24:i8 = phi %15, 0:i8, %23
%25:i8 = phi %14, 0:i8, %24
%26:i8 = phi %13, 0:i8, %25
%27:i8 = phi %12, 0:i8, %26
%28:i8 = phi %11, 0:i8, %27
%29:i8 = phi %10, 0:i8, %28
%30:i8 = phi %9, 0:i8, %29
%31:i8 = phi %8, 0:i8, %30
%32:i8 = phi %7, 0:i8, %31
%33:i8 = phi %6, 0:i8, %32
%34:i8 = phi %5, 0:i8, %33
%35:i8 = phi %4, 0:i8, %34
%36:i8 = phi %3, 0:i8, %35
%37:i8 = phi %2, 0:i8, %36
%38:i8 = phi %1, 0:i8, %37
%39:i8 = phi %0, 0:i8, %38
%40:i8 = and 1:i8, %39
infer %40
result %39
; total static profile = 1
; total dynamic profile = 0
------------------------------------------------------
%0:i8 = var (knownBits=000000xx) (nonNegative) (signBits=6) (range=[0,4))
%1:i1 = eq 3:i8, %0 (hasExternalUses)
%2:i64 = select %1, 0:i64, 1:i64
%3:i8 = var (knownBits=000000xx) (nonNegative) (signBits=6) (range=[0,4))
%4:i1 = eq 3:i8, %3 (hasExternalUses)
%5:i64 = select %4, 0:i64, 1:i64
%6:i1 = eq %2, %5
pc %6 1:i1
%7:i1 = select %1, 0:i1, 1:i1
pc %7 1:i1
%8:i1 = select %4, 0:i1, 1:i1
infer %8
%9:i1 = ult %3, 3:i8
result %9
; total static profile = 1
; total dynamic profile = 0
------------------------------------------------------
%0:i64 = var
%1:i8 = var
%2:i64 = zext %1 (hasExternalUses)
%3:i1 = slt %0, %2
pc %3 1:i1
%4:i1 = slt %0, 18446744071562067967:i64
%5:i1 = slt 2147483646:i64, %0
%6:i1 = select %4, 1:i1, %5
infer %6
%7:i1 = or %5, %4
result %7
; total static profile = 1
; total dynamic profile = 0
------------------------------------------------------
%0:i64 = var (range=[0,-9223372036854775808))
%1:i64 = var
%2:i64 = lshr %1, 1:i64 (hasExternalUses)
%3:i1 = ult %0, %2
pc %3 1:i1
%4:i64 = xor 18446744073709551615:i64, %0 (hasExternalUses)
%5:i64 = add %4, %2 (hasExternalUses)
%6:i1 = ult %5, %2
infer %6
result 1:i1
; total static profile = 1
; total dynamic profile = 0
------------------------------------------------------
%0:i64 = var (knownBits=0xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx) (nonNegative) (range=[0,13))
%1:i1 = ult %0, 12:i64
pc %1 1:i1
%2:i1 = ult 9:i64, %0 (hasExternalUses)
%3:i64 = select %2, 1:i64, 0:i64
infer %3
%4:i64 = zext %2
result %4
; total static profile = 1
; total dynamic profile = 0
------------------------------------------------------
%0:i32 = var
%1:i1 = slt %0, 0:i32
pc %1 1:i1
%2:i32 = var
%3:i1 = slt %2, 0:i32 (hasExternalUses)
%4:i1 = xor %1, %3
infer %4
%5:i1 = ult %2, 2147483648:i32
result %5
; total static profile = 1
; total dynamic profile = 0
------------------------------------------------------
%0:i64 = var
%1:i64 = and 63:i64, %0
%2:i1 = eq 0:i64, %1
pc %2 0:i1
%3:i64 = add 64:i64, %0
%4:i64 = and 18446744073709551552:i64, %3
infer %4 (demandedBits=1111111111111111111111111111111111111111111111111111111111000000)
result %3
; total static profile = 1
; total dynamic profile = 0
------------------------------------------------------
%0:i64 = var
%1:i1 = eq 0:i64, %0 (hasExternalUses)
%2:i64 = select %1, 0:i64, 1:i64
%3:i64 = var
%4:i1 = eq 0:i64, %3 (hasExternalUses)
%5:i64 = select %4, 0:i64, 1:i64
%6:i1 = eq %2, %5
pc %6 1:i1
%7:i1 = select %1, 0:i1, 1:i1
pc %7 1:i1
%8:i1 = select %4, 0:i1, 1:i1
infer %8
%9:i1 = xor 1:i1, %4
result %9
; total static profile = 1
; total dynamic profile = 0
------------------------------------------------------
%0:i8 = var
%1:i8 = and 1:i8, %0
%2:i1 = eq 0:i8, %1
%3:i1 = xor 1:i1, %2
infer %3
%4:i1 = trunc %0
result %4
; total static profile = 1
; total dynamic profile = 0
------------------------------------------------------
%0:i8 = var
%1:i1 = eq 3:i8, %0 (hasExternalUses)
%2:i1 = select %1, 0:i1, 1:i1
pc %2 1:i1
%3:i8 = and 254:i8, %0
%4:i1 = eq 2:i8, %3
infer %4
%5:i1 = eq 2:i8, %0
result %5
; total static profile = 1
; total dynamic profile = 0
------------------------------------------------------
%0:i32 = var
%1:i8 = trunc %0 (hasExternalUses)
%2:i1 = eq 14:i8, %1
%3:i1 = select %2, 0:i1, 1:i1
infer %3
%4:i1 = xor 1:i1, %2
result %4
; total static profile = 1
; total dynamic profile = 0
------------------------------------------------------
%0:i8 = var
%1:i8 = and 1:i8, %0
%2:i1 = ne 0:i8, %1
infer %2
%3:i1 = trunc %0
result %3
; total static profile = 1
; total dynamic profile = 0
------------------------------------------------------
%0 = block 2
%1 = block 2
%2 = block 2
%3 = block 2
%4 = block 2
%5 = block 2
%6 = block 2
%7 = block 2
%8 = block 2
%9 = block 2
%10 = block 2
%11 = block 2
%12 = block 2
%13 = block 2
%14 = block 2
%15 = block 2
%16 = block 2
%17 = block 2
%18:i8 = phi %17, 0:i8, 1:i8
%19:i8 = phi %16, 0:i8, %18
%20:i8 = phi %15, 0:i8, %19
%21:i8 = phi %14, 0:i8, %20
%22:i8 = phi %13, 0:i8, %21
%23:i8 = phi %12, 0:i8, %22
%24:i8 = phi %11, 0:i8, %23
%25:i8 = phi %10, 0:i8, %24
%26:i8 = phi %9, 0:i8, %25
%27:i8 = phi %8, 0:i8, %26
%28:i8 = phi %7, 0:i8, %27
%29:i8 = phi %6, 0:i8, %28
%30:i8 = phi %5, 0:i8, %29
%31:i8 = phi %4, 0:i8, %30
%32:i8 = phi %3, 0:i8, %31
%33:i8 = phi %2, 0:i8, %32
%34:i8 = phi %1, 0:i8, %33
%35:i8 = phi %0, %34, 0:i8
%36:i8 = and 1:i8, %35
infer %36
result %35
; total static profile = 1
; total dynamic profile = 0
------------------------------------------------------
%0:i8 = var
%1:i1 = eq 3:i8, %0 (hasExternalUses)
%2:i1 = select %1, 0:i1, 1:i1
pc %2 1:i1
%3:i8 = and 254:i8, %0
%4:i1 = eq 2:i8, %3
pc %4 0:i1
infer %2
result 1:i1
; total static profile = 1
; total dynamic profile = 0
------------------------------------------------------
%0 = block 2
%1:i32 = var
%2:i32 = phi %0, %1, %1
%3:i64 = sext %2
infer %3
%4:i64 = sext %1
result %4
; total static profile = 1
; total dynamic profile = 0
------------------------------------------------------
%0:i32 = var
%1:i1 = slt %0, 0:i32
pc %1 0:i1
%2:i32 = var
%3:i1 = slt %2, 0:i32 (hasExternalUses)
%4:i1 = xor %1, %3
infer %4
result %3
; total static profile = 1
; total dynamic profile = 0
------------------------------------------------------
%0:i64 = var
%1:i64 = var
%2:i1 = eq %0, %1
pc %2 0:i1
%3:i64 = var (nonZero)
%4:i64 = subnuw %1, %3
%5:i64 = uadd.sat 1:i64, %4
infer %5
%6:i64 = add 1:i64, %4
result %6
; total static profile = 1
; total dynamic profile = 0
------------------------------------------------------
%0:i8 = var (knownBits=000000xx) (nonNegative) (signBits=6) (range=[0,4))
%1:i1 = eq 3:i8, %0 (hasExternalUses)
%2:i64 = select %1, 0:i64, 1:i64
%3:i8 = var (knownBits=000000xx) (nonNegative) (signBits=6) (range=[0,4))
%4:i1 = eq 3:i8, %3 (hasExternalUses)
%5:i64 = select %4, 0:i64, 1:i64
%6:i1 = eq %2, %5
pc %6 1:i1
%7:i1 = select %1, 0:i1, 1:i1
infer %7
%8:i1 = ult %0, 3:i8
result %8
; total static profile = 1
; total dynamic profile = 0
------------------------------------------------------
%0:i64 = var
%1:i64 = var
%2:i64 = add 18446744073709551615:i64, %1 (hasExternalUses)
%3:i1 = ult %0, %2
%4:i1 = select %3, 0:i1, 1:i1 (hasExternalUses)
%5:i64 = var
%6:i64 = var
%7:i64 = add 18446744073709551615:i64, %6 (hasExternalUses)
%8:i1 = ult %5, %7 (hasExternalUses)
%9:i1 = select %8, 0:i1, 1:i1 (hasExternalUses)
%10:i1 = xor %4, %9
pc %10 0:i1
%11:i1 = or %4, %9
%12:i8 = var
%13:i8 = var
%14:i1 = ne %12, %13
%15:i1 = select %11, 0:i1, %14
pc %15 1:i1
infer %11
result 0:i1
; total static profile = 1
; total dynamic profile = 0
------------------------------------------------------
%0 = block 2
%1 = block 2
%2 = block 2
%3 = block 2
%4 = block 2
%5 = block 2
%6 = block 2
%7 = block 2
%8 = block 2
%9 = block 2
%10 = block 2
%11 = block 2
%12 = block 2
%13 = block 2
%14 = block 2
%15 = block 2
%16 = block 2
%17 = block 2
%18:i8 = phi %17, 0:i8, 1:i8
%19:i8 = phi %16, 0:i8, %18
%20:i8 = phi %15, 0:i8, %19
%21:i8 = phi %14, 0:i8, %20
%22:i8 = phi %13, 0:i8, %21
%23:i8 = phi %12, 0:i8, %22
%24:i8 = phi %11, 0:i8, %23
%25:i8 = phi %10, 0:i8, %24
%26:i8 = phi %9, 0:i8, %25
%27:i8 = phi %8, 0:i8, %26
%28:i8 = phi %7, 0:i8, %27
%29:i8 = phi %6, 0:i8, %28
%30:i8 = phi %5, 0:i8, %29
%31:i8 = phi %4, 0:i8, %30
%32:i8 = phi %3, 0:i8, %31
%33:i8 = phi %2, 0:i8, %32
%34:i8 = phi %1, 0:i8, %33
%35:i8 = phi %0, 0:i8, %34
%36:i8 = and 1:i8, %35
infer %36
result %35
; total static profile = 1
; total dynamic profile = 0
------------------------------------------------------
%0:i64 = var (nonZero) (range=[1,-9223372036854775807))
%1:i1 = ult 64:i64, %0
%2:i64 = var
%3:i64 = add 18446744073709551615:i64, %2
%4:i1 = ult 4095:i64, %3
%5:i1 = or %1, %4
pc %5 0:i1
%6:i64 = and 63:i64, %2
%7:i1 = eq 0:i64, %6
%8:i64 = addnw 64:i64, %2
%9:i64 = select %7, %2, %8
infer %9 (demandedBits=1111111111111111111111111111111111111111111111111111111111000000)
%10:i64 = sadd.sat 63:i64, %2
result %10
; total static profile = 1
; total dynamic profile = 0
------------------------------------------------------
%0:i64 = var
%1:i1 = slt %0, 0:i64
pc %1 0:i1
%2:i64 = var
%3:i1 = slt %2, 0:i64 (hasExternalUses)
%4:i1 = xor %1, %3
infer %4
result %3
; total static profile = 1
; total dynamic profile = 0
------------------------------------------------------
%0:i8 = var
%1:i8 = and 1:i8, %0
%2:i1 = eq 0:i8, %1
%3:i1 = xor 1:i1, %2
%4:i8 = zext %3
infer %4
result %1
; total static profile = 1
; total dynamic profile = 0
------------------------------------------------------
%0:i64 = var (range=[19,0))
%1:i64 = var
%2:i1 = ult %0, %1
pc %2 1:i1
%3:i1 = ult %0, 18:i64
pc %3 0:i1
%4:i64 = add 18446744073709551598:i64, %0 (hasExternalUses)
%5:i1 = eq 0:i64, %4
infer %5
result 0:i1
; total static profile = 1
; total dynamic profile = 0
------------------------------------------------------
%0:i8 = var (knownBits=000000xx) (nonNegative) (signBits=6) (range=[0,4))
%1:i1 = eq 3:i8, %0 (hasExternalUses)
%2:i64 = select %1, 0:i64, 1:i64
%3:i8 = var (knownBits=000000xx) (nonNegative) (signBits=6) (range=[0,4))
%4:i1 = eq 3:i8, %3 (hasExternalUses)
%5:i64 = select %4, 0:i64, 1:i64
%6:i1 = eq %2, %5
infer %6
%7:i1 = eq %1, %4
result %7
; total static profile = 1
; total dynamic profile = 0
------------------------------------------------------
%0:i8 = var
%1:i1 = eq 3:i8, %0 (hasExternalUses)
%2:i1 = select %1, 0:i1, 1:i1
pc %2 1:i1
%3:i8 = and 254:i8, %0
%4:i1 = eq 2:i8, %3
pc %4 0:i1
%5:i1 = eq 1:i8, %0
%6:i1 = select %2, %5, 1:i1
infer %6
result %5
; total static profile = 1
; total dynamic profile = 0
------------------------------------------------------
%0:i64 = var (knownBits=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx0) (range=[0,21))
%1:i1 = eq 0:i64, %0
pc %1 0:i1
%2:i1 = ult 20:i64, %0
infer %2
result 0:i1
; total static profile = 1
; total dynamic profile = 0
------------------------------------------------------
%0:i64 = var
%1:i1 = eq 0:i64, %0
%2:i1 = select %1, 0:i1, 1:i1
pc %2 1:i1
infer %1
result 0:i1
; total static profile = 1
; total dynamic profile = 0
------------------------------------------------------
%0:i8 = var (knownBits=0000xxxx) (nonNegative) (signBits=4) (range=[0,14))
%1:i1 = eq 13:i8, %0
%2:i1 = select %1, 0:i1, 1:i1
infer %2
%3:i1 = ult %0, 13:i8
result %3
; total static profile = 1
; total dynamic profile = 0
------------------------------------------------------
%0 = block 2
%1 = block 2
%2 = block 2
%3 = block 2
%4 = block 2
%5 = block 2
%6 = block 2
%7:i8 = phi %6, 0:i8, 1:i8
%8:i8 = phi %5, 0:i8, %7
%9:i8 = phi %4, 0:i8, %8
%10:i8 = phi %3, 0:i8, %9
%11:i8 = phi %2, 0:i8, %10
%12:i8 = phi %1, 0:i8, %11
%13:i8 = phi %0, %12, 0:i8
%14:i8 = and 1:i8, %13
infer %14
result %13
; total static profile = 1
; total dynamic profile = 0
------------------------------------------------------
%0:i8 = var
%1:i1 = eq 2:i8, %0
pc %1 0:i1
%2:i8 = and 1:i8, %0
%3:i1 = ne 0:i8, %2
infer %3
%4:i1 = trunc %0
result %4
; total static profile = 1
; total dynamic profile = 0
------------------------------------------------------
%0 = block 2
%1:i64 = var (nonZero)
%2:i64 = phi %0, %1, %1
infer %2
result %1
; total static profile = 1
; total dynamic profile = 0
------------------------------------------------------
%0:i64 = var
%1:i1 = eq 0:i64, %0
pc %1 1:i1
%2:i64 = var
%3:i64 = addnw 1:i64, %0
%4:i64 = add %2, %3
infer %4
%5:i64 = add 1:i64, %2
result %5
; total static profile = 1
; total dynamic profile = 0
------------------------------------------------------
%0 = block 2
%1 = block 2
%2 = block 2
%3 = block 2
%4 = block 2
%5:i8 = phi %4, 0:i8, 1:i8
%6:i8 = phi %3, 0:i8, %5
%7:i8 = phi %2, 0:i8, %6
%8:i8 = phi %1, 0:i8, %7
%9:i8 = phi %0, %8, 0:i8
%10:i8 = and 1:i8, %9
infer %10
result %9
; total static profile = 1
; total dynamic profile = 0
------------------------------------------------------
%0 = block 12
%1:i1 = phi %0, 0:i1, 0:i1, 0:i1, 0:i1, 0:i1, 0:i1, 0:i1, 0:i1, 0:i1, 0:i1, 1:i1, 1:i1
%2:i64 = select %1, 1:i64, 0:i64
infer %2
%3:i64 = zext %1
result %3
; total static profile = 1
; total dynamic profile = 0
------------------------------------------------------
%0:i64 = var
%1:i1 = eq 0:i64, %0 (hasExternalUses)
%2:i64 = select %1, 0:i64, 1:i64
%3:i64 = var
%4:i1 = eq 0:i64, %3 (hasExternalUses)
%5:i64 = select %4, 0:i64, 1:i64
%6:i1 = eq %2, %5
pc %6 1:i1
%7:i1 = select %1, 0:i1, 1:i1
infer %7
%8:i1 = xor 1:i1, %1
result %8
; total static profile = 1
; total dynamic profile = 0
------------------------------------------------------
%0:i8 = var
%1:i64 = zext %0 (hasExternalUses)
%2:i64 = shlnw %1, 8:i64
%3:i64 = shlnw %1, 16:i64
%4:i64 = or %2, %3
%5:i64 = or %4, %1
%6:i64 = shlnw %5, 16:i64
%7:i64 = or %6, %2
%8:i64 = or %7, %1
%9:i64 = shl %8, 16:i64
%10:i64 = or %9, %2
infer %10 (demandedBits=0000000011111111111111111111111111111111111111111111111111111111)
%11:i64 = mul 282578800148736:i64, %1
result %11
; total static profile = 0
; total dynamic profile = 0
------------------------------------------------------
%0:i8 = var
%1:i64 = zext %0 (hasExternalUses)
%2:i64 = shlnw %1, 8:i64
%3:i64 = shlnw %1, 16:i64
%4:i64 = or %2, %3
%5:i64 = or %4, %1
%6:i64 = shlnw %5, 16:i64
%7:i64 = or %6, %2
%8:i64 = or %7, %1
infer %8 (demandedBits=0000000000000000000000001111111111111111111111111111111111111111)
%9:i64 = mul 4311810305:i64, %1
result %9
; total static profile = 0
; total dynamic profile = 0
------------------------------------------------------
%0:i8 = var
%1:i64 = zext %0 (hasExternalUses)
%2:i64 = shlnw %1, 8:i64
%3:i64 = shlnw %1, 16:i64
%4:i64 = or %2, %3
%5:i64 = or %4, %1
%6:i64 = shlnw %5, 16:i64
%7:i64 = or %6, %2
%8:i64 = or %7, %1
%9:i64 = shl %8, 16:i64
infer %9 (demandedBits=0000000011111111111111111111111111111111111111111111111111111111)
%10:i64 = mul 282578800148480:i64, %1
result %10
; total static profile = 0
; total dynamic profile = 0
------------------------------------------------------
%0:i8 = var
%1:i64 = zext %0 (hasExternalUses)
%2:i64 = shlnw %1, 8:i64
%3:i64 = shlnw %1, 16:i64
%4:i64 = or %2, %3
%5:i64 = or %4, %1
%6:i64 = shlnw %5, 16:i64
%7:i64 = or %6, %2
%8:i64 = or %7, %1
%9:i64 = shl %8, 16:i64
%10:i64 = or %9, %2
%11:i64 = or %10, %1
%12:i64 = shl %11, 8:i64
infer %12
%13:i64 = mul 72340172838076672:i64, %1
result %13
; total static profile = 0
; total dynamic profile = 0
------------------------------------------------------
; overall total static profile weight = 758
; 6062 were tagged by cache_infer, 0 were not
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment