Documentation

SSA.Projects.InstCombine.AliveStatements

theorem bv_AddSub_1043 {w : } (e : LLVM.IntW w) (e_1 : LLVM.IntW w) (e_2 : LLVM.IntW w) :
LLVM.add (LLVM.add (LLVM.xor (LLVM.and e_2 e_1) e_1) (LLVM.const? 1)) e LLVM.sub e (LLVM.or e_2 (LLVM.not e_1))
theorem bv_AddSub_1152 (e : LLVM.IntW 1) (e_1 : LLVM.IntW 1) :
LLVM.add e_1 e LLVM.xor e_1 e
theorem bv_AddSub_1164 {w : } (e : LLVM.IntW w) (e_1 : LLVM.IntW w) :
theorem bv_AddSub_1176 {w : } (e : LLVM.IntW w) (e_1 : LLVM.IntW w) :
theorem bv_AddSub_1202 {w : } (e : LLVM.IntW w) (e_1 : LLVM.IntW w) :
theorem bv_AddSub_1295 {w : } (e : LLVM.IntW w) (e_1 : LLVM.IntW w) :
LLVM.add (LLVM.and e_1 e) (LLVM.xor e_1 e) LLVM.or e_1 e
theorem bv_AddSub_1309 {w : } (e : LLVM.IntW w) (e_1 : LLVM.IntW w) :
LLVM.add (LLVM.and e_1 e) (LLVM.or e_1 e) LLVM.add e_1 e
theorem bv_AddSub_1539 {w : } (e : LLVM.IntW w) (e_1 : LLVM.IntW w) :
theorem bv_AddSub_1539_2 {w : } (e : LLVM.IntW w) (e_1 : LLVM.IntW w) :
theorem bv_AddSub_1556 (e : LLVM.IntW 1) (e_1 : LLVM.IntW 1) :
LLVM.sub e_1 e LLVM.xor e_1 e
theorem bv_AddSub_1564 {w : } (e : LLVM.IntW w) (e_1 : LLVM.IntW w) :
theorem bv_AddSub_1574 {w : } (e : LLVM.IntW w) (e_1 : LLVM.IntW w) (e_2 : LLVM.IntW w) :
LLVM.sub e_2 (LLVM.add e_1 e) LLVM.sub (LLVM.sub e_2 e) e_1
theorem bv_AddSub_1614 {w : } (e : LLVM.IntW w) (e_1 : LLVM.IntW w) :
theorem bv_AddSub_1619 {w : } (e : LLVM.IntW w) (e_1 : LLVM.IntW w) :
theorem bv_AddSub_1624 {w : } (e : LLVM.IntW w) (e_1 : LLVM.IntW w) :
LLVM.sub (LLVM.or e_1 e) (LLVM.xor e_1 e) LLVM.and e_1 e
theorem bv_AndOrXor_135 {w : } (e : LLVM.IntW w) (e_1 : LLVM.IntW w) (e_2 : LLVM.IntW w) :
LLVM.and (LLVM.xor e_2 e_1) e LLVM.xor (LLVM.and e_2 e) (LLVM.and e_1 e)
theorem bv_AndOrXor_144 {w : } (e : LLVM.IntW w) (e_1 : LLVM.IntW w) (e_2 : LLVM.IntW w) :
LLVM.and (LLVM.or e_2 e_1) e LLVM.and (LLVM.or e_2 (LLVM.and e_1 e)) e
theorem bv_AndOrXor_1241_AB__AB__AB {w : } (e : LLVM.IntW w) (e_1 : LLVM.IntW w) :
LLVM.and (LLVM.or e_1 e) (LLVM.xor (LLVM.and e_1 e) (LLVM.const? (-1))) LLVM.xor e_1 e
theorem bv_AndOrXor_1247_AB__AB__AB {w : } (e : LLVM.IntW w) (e_1 : LLVM.IntW w) :
LLVM.and (LLVM.xor (LLVM.and e_1 e) (LLVM.const? (-1))) (LLVM.or e_1 e) LLVM.xor e_1 e
theorem bv_AndOrXor_1253_A__AB___A__B {w : } (e : LLVM.IntW w) (e_1 : LLVM.IntW w) :
LLVM.and (LLVM.xor e_1 e) e_1 LLVM.and e_1 (LLVM.xor e (LLVM.const? (-1)))
theorem bv_AndOrXor_1280_ABA___AB {w : } (e : LLVM.IntW w) (e_1 : LLVM.IntW w) :
LLVM.and (LLVM.or (LLVM.xor e_1 (LLVM.const? (-1))) e) e_1 LLVM.and e_1 e
theorem bv_AndOrXor_1288_A__B__B__C__A___A__B__C {w : } (e : LLVM.IntW w) (e_1 : LLVM.IntW w) (e_2 : LLVM.IntW w) :
LLVM.and (LLVM.xor e_2 e_1) (LLVM.xor (LLVM.xor e_1 e) e_2) LLVM.and (LLVM.xor e_2 e_1) (LLVM.xor e (LLVM.const? (-1)))
theorem bv_AndOrXor_2188 {w : } (e : LLVM.IntW w) (e_1 : LLVM.IntW w) :
LLVM.or (LLVM.and e_1 (LLVM.xor e (LLVM.const? (-1)))) (LLVM.and (LLVM.xor e_1 (LLVM.const? (-1))) e) LLVM.xor e_1 e
theorem bv_AndOrXor_2231__A__B__B__C__A___A__B__C {w : } (e : LLVM.IntW w) (e_1 : LLVM.IntW w) (e_2 : LLVM.IntW w) :
LLVM.or (LLVM.xor e_2 e_1) (LLVM.xor (LLVM.xor e_1 e) e_2) LLVM.or (LLVM.xor e_2 e_1) e
theorem bv_AndOrXor_2243__B__C__A__B___B__A__C {w : } (e : LLVM.IntW w) (e_1 : LLVM.IntW w) (e_2 : LLVM.IntW w) :
LLVM.or (LLVM.and (LLVM.or e_2 e_1) e) e_2 LLVM.or e_2 (LLVM.and e e_1)
theorem bv_AndOrXor_2263 {w : } (e : LLVM.IntW w) (e_1 : LLVM.IntW w) :
LLVM.or e_1 (LLVM.xor e_1 e) LLVM.or e_1 e
theorem bv_AndOrXor_2264 {w : } (e : LLVM.IntW w) (e_1 : LLVM.IntW w) :
LLVM.or e_1 (LLVM.xor (LLVM.xor e_1 (LLVM.const? (-1))) e) LLVM.or e_1 (LLVM.xor e (LLVM.const? (-1)))
theorem bv_AndOrXor_2265 {w : } (e : LLVM.IntW w) (e_1 : LLVM.IntW w) :
LLVM.or (LLVM.and e_1 e) (LLVM.xor e_1 e) LLVM.or e_1 e
theorem bv_AndOrXor_2284 {w : } (e : LLVM.IntW w) (e_1 : LLVM.IntW w) :
LLVM.or e_1 (LLVM.xor (LLVM.or e_1 e) (LLVM.const? (-1))) LLVM.or e_1 (LLVM.xor e (LLVM.const? (-1)))
theorem bv_AndOrXor_2285 {w : } (e : LLVM.IntW w) (e_1 : LLVM.IntW w) :
LLVM.or e_1 (LLVM.xor (LLVM.xor e_1 e) (LLVM.const? (-1))) LLVM.or e_1 (LLVM.xor e (LLVM.const? (-1)))
theorem bv_AndOrXor_2297 {w : } (e : LLVM.IntW w) (e_1 : LLVM.IntW w) :
LLVM.or (LLVM.and e_1 e) (LLVM.xor (LLVM.xor e_1 (LLVM.const? (-1))) e) LLVM.xor (LLVM.xor e_1 (LLVM.const? (-1))) e
theorem bv_AndOrXor_2367 {w : } (e : LLVM.IntW w) (e_1 : LLVM.IntW w) (e_2 : LLVM.IntW w) :
LLVM.or (LLVM.or e_2 e_1) e LLVM.or (LLVM.or e_2 e) e_1
theorem bv_AndOrXor_2416 {w : } (e : LLVM.IntW w) (e_1 : LLVM.IntW w) :
theorem bv_AndOrXor_2417 {w : } (e : LLVM.IntW w) (e_1 : LLVM.IntW w) :
theorem bv_AndOrXor_2429 {w : } (e : LLVM.IntW w) (e_1 : LLVM.IntW w) :
theorem bv_AndOrXor_2430 {w : } (e : LLVM.IntW w) (e_1 : LLVM.IntW w) :
theorem bv_AndOrXor_2443 {w : } (e : LLVM.IntW w) (e_1 : LLVM.IntW w) :
theorem bv_AndOrXor_2475 {w : } (e : LLVM.IntW w) (e_1 : LLVM.IntW w) :
theorem bv_AndOrXor_2486 {w : } (e : LLVM.IntW w) (e_1 : LLVM.IntW w) :
theorem bv_AndOrXor_2581__BAB___A__B {w : } (e : LLVM.IntW w) (e_1 : LLVM.IntW w) :
LLVM.xor (LLVM.or e_1 e) e LLVM.and e_1 (LLVM.xor e (LLVM.const? (-1)))
theorem bv_AndOrXor_2595 {w : } (e : LLVM.IntW w) (e_1 : LLVM.IntW w) :
LLVM.xor (LLVM.and e_1 e) (LLVM.or e_1 e) LLVM.xor e_1 e
theorem bv_AndOrXor_2607 {w : } (e : LLVM.IntW w) (e_1 : LLVM.IntW w) :
LLVM.xor (LLVM.or e_1 (LLVM.xor e (LLVM.const? (-1)))) (LLVM.or (LLVM.xor e_1 (LLVM.const? (-1))) e) LLVM.xor e_1 e
theorem bv_AndOrXor_2617 {w : } (e : LLVM.IntW w) (e_1 : LLVM.IntW w) :
theorem bv_AndOrXor_2627 {w : } (e : LLVM.IntW w) (e_1 : LLVM.IntW w) (e_2 : LLVM.IntW w) :
LLVM.xor (LLVM.xor e_2 e_1) (LLVM.or e_2 e) LLVM.xor (LLVM.and (LLVM.xor e_2 (LLVM.const? (-1))) e) e_1
theorem bv_AndOrXor_2647 {w : } (e : LLVM.IntW w) (e_1 : LLVM.IntW w) :
LLVM.xor (LLVM.and e_1 e) (LLVM.xor e_1 e) LLVM.or e_1 e
theorem bv_AndOrXor_2658 {w : } (e : LLVM.IntW w) (e_1 : LLVM.IntW w) :
theorem bv_152 {w : } (e : LLVM.IntW w) :
theorem bv_229 {w : } (e : LLVM.IntW w) (e_1 : LLVM.IntW w) (e_2 : LLVM.IntW w) :
LLVM.mul (LLVM.add e_2 e_1) e LLVM.add (LLVM.mul e_2 e) (LLVM.mul e_1 e)
theorem bv_239 {w : } (e : LLVM.IntW w) (e_1 : LLVM.IntW w) :
theorem bv_275 (e : LLVM.IntW 5) (e_1 : LLVM.IntW 5) :
LLVM.mul (LLVM.udiv e_1 e) e LLVM.sub e_1 (LLVM.urem e_1 e)
theorem bv_275_2 (e : LLVM.IntW 5) (e_1 : LLVM.IntW 5) :
LLVM.mul (LLVM.sdiv e_1 e) e LLVM.sub e_1 (LLVM.srem e_1 e)
theorem bv_276 (e : LLVM.IntW 5) (e_1 : LLVM.IntW 5) :
theorem bv_276_2 (e : LLVM.IntW 5) (e_1 : LLVM.IntW 5) :
theorem bv_283 (e : LLVM.IntW 1) (e_1 : LLVM.IntW 1) :
LLVM.mul e_1 e LLVM.and e_1 e
theorem bv_290__292 {w : } (e : LLVM.IntW w) (e_1 : LLVM.IntW w) :
theorem bv_820 (e : LLVM.IntW 9) (e_1 : LLVM.IntW 9) :
LLVM.sdiv (LLVM.sub e_1 (LLVM.srem e_1 e)) e LLVM.sdiv e_1 e
theorem bv_820' (e : LLVM.IntW 9) (e_1 : LLVM.IntW 9) :
LLVM.udiv (LLVM.sub e_1 (LLVM.urem e_1 e)) e LLVM.udiv e_1 e
theorem bv_1030 {w : } (e : LLVM.IntW w) :
theorem bv_Select_858 (e : LLVM.IntW 1) (e_1 : LLVM.IntW 1) :
LLVM.select e_1 (LLVM.xor e_1 (LLVM.const? (-1))) e LLVM.and (LLVM.xor e_1 (LLVM.const? (-1))) e
theorem bv_Select_859' (e : LLVM.IntW 1) (e_1 : LLVM.IntW 1) :
LLVM.select e_1 e (LLVM.xor e_1 (LLVM.const? (-1))) LLVM.or (LLVM.xor e_1 (LLVM.const? (-1))) e
theorem bv_select_1100 {w : } (e : LLVM.IntW w) (e_1 : LLVM.IntW w) :
theorem bv_Select_1105 {w : } (e : LLVM.IntW w) (e_1 : LLVM.IntW w) :
theorem bv_InstCombineShift__239 {w : } (e : LLVM.IntW w) (e_1 : LLVM.IntW w) :
theorem bv_InstCombineShift__279 {w : } (e : LLVM.IntW w) (e_1 : LLVM.IntW w) :
theorem bv_InstCombineShift__440 {w : } (e : LLVM.IntW w) (e_1 : LLVM.IntW w) (e_2 : LLVM.IntW w) (e_3 : LLVM.IntW w) :
LLVM.shl (LLVM.xor e_3 (LLVM.and (LLVM.lshr e_2 e_1) e)) e_1 LLVM.xor (LLVM.and e_2 (LLVM.shl e e_1)) (LLVM.shl e_3 e_1)
theorem bv_InstCombineShift__476 {w : } (e : LLVM.IntW w) (e_1 : LLVM.IntW w) (e_2 : LLVM.IntW w) (e_3 : LLVM.IntW w) :
LLVM.shl (LLVM.or (LLVM.and (LLVM.lshr e_3 e_2) e_1) e) e_2 LLVM.or (LLVM.and e_3 (LLVM.shl e_1 e_2)) (LLVM.shl e e_2)
theorem bv_InstCombineShift__497 {w : } (e : LLVM.IntW w) (e_1 : LLVM.IntW w) (e_2 : LLVM.IntW w) :
LLVM.lshr (LLVM.xor e_2 e_1) e LLVM.xor (LLVM.lshr e_2 e) (LLVM.lshr e_1 e)
theorem bv_InstCombineShift__497''' {w : } (e : LLVM.IntW w) (e_1 : LLVM.IntW w) (e_2 : LLVM.IntW w) :
LLVM.shl (LLVM.add e_2 e_1) e LLVM.add (LLVM.shl e_2 e) (LLVM.shl e_1 e)
theorem bv_InstCombineShift__582 {w : } (e : LLVM.IntW w) (e_1 : LLVM.IntW w) :