Created
April 17, 2022 19:44
-
-
Save saethlin/c62d08950a35f5d86d933e44f1843526 to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
; 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