diff --git a/SSA/Projects/InstCombine/tests/LLVM/g2005h04h07hUDivSelectCrash.lean b/SSA/Projects/InstCombine/tests/LLVM/g2005h04h07hUDivSelectCrash.lean new file mode 100644 index 000000000..f303c4249 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/LLVM/g2005h04h07hUDivSelectCrash.lean @@ -0,0 +1,49 @@ + +import SSA.Projects.InstCombine.LLVM.PrettyEDSL +import SSA.Projects.InstCombine.TacticAuto +import SSA.Projects.InstCombine.LLVM.Semantics +open LLVM +open BitVec + +open MLIR AST +open Ctxt (Var) + +set_option linter.deprecated false +set_option linter.unreachableTactic false +set_option linter.unusedTactic false +section g2005h04h07hUDivSelectCrash_statements + +def test_before := [llvm| +{ +^0(%arg0 : i1, %arg1 : i32): + %0 = "llvm.mlir.constant"() <{value = 8 : i32}> : () -> i32 + %1 = "llvm.mlir.constant"() <{value = 1 : i32}> : () -> i32 + %2 = "llvm.select"(%arg0, %0, %1) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i32, i32) -> i32 + %3 = llvm.udiv %arg1, %2 : i32 + "llvm.return"(%3) : (i32) -> () +} +] +def test_after := [llvm| +{ +^0(%arg0 : i1, %arg1 : i32): + %0 = "llvm.mlir.constant"() <{value = 3 : i32}> : () -> i32 + %1 = "llvm.mlir.constant"() <{value = 0 : i32}> : () -> i32 + %2 = "llvm.select"(%arg0, %0, %1) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i32, i32) -> i32 + %3 = llvm.lshr %arg1, %2 : i32 + "llvm.return"(%3) : (i32) -> () +} +] +theorem test_proof : test_before ⊑ test_after := by + unfold test_before test_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN test + all_goals (try extract_goal ; sorry) + ---END test + + diff --git a/SSA/Projects/InstCombine/tests/LLVM/g2008h05h31hBools.lean b/SSA/Projects/InstCombine/tests/LLVM/g2008h05h31hBools.lean index 51d63f616..a9ab71938 100644 --- a/SSA/Projects/InstCombine/tests/LLVM/g2008h05h31hBools.lean +++ b/SSA/Projects/InstCombine/tests/LLVM/g2008h05h31hBools.lean @@ -71,6 +71,34 @@ theorem foo2_proof : foo2_before ⊑ foo2_after := by +def foo3_before := [llvm| +{ +^0(%arg2 : i1, %arg3 : i1): + %0 = llvm.udiv %arg2, %arg3 : i1 + "llvm.return"(%0) : (i1) -> () +} +] +def foo3_after := [llvm| +{ +^0(%arg2 : i1, %arg3 : i1): + "llvm.return"(%arg2) : (i1) -> () +} +] +theorem foo3_proof : foo3_before ⊑ foo3_after := by + unfold foo3_before foo3_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN foo3 + all_goals (try extract_goal ; sorry) + ---END foo3 + + + def foo4_before := [llvm| { ^0(%arg0 : i1, %arg1 : i1): diff --git a/SSA/Projects/InstCombine/tests/LLVM/g2012h08h28hudiv_ashl.lean b/SSA/Projects/InstCombine/tests/LLVM/g2012h08h28hudiv_ashl.lean new file mode 100644 index 000000000..bccda21cf --- /dev/null +++ b/SSA/Projects/InstCombine/tests/LLVM/g2012h08h28hudiv_ashl.lean @@ -0,0 +1,113 @@ + +import SSA.Projects.InstCombine.LLVM.PrettyEDSL +import SSA.Projects.InstCombine.TacticAuto +import SSA.Projects.InstCombine.LLVM.Semantics +open LLVM +open BitVec + +open MLIR AST +open Ctxt (Var) + +set_option linter.deprecated false +set_option linter.unreachableTactic false +set_option linter.unusedTactic false +section g2012h08h28hudiv_ashl_statements + +def udiv400_before := [llvm| +{ +^0(%arg5 : i32): + %0 = "llvm.mlir.constant"() <{value = 2 : i32}> : () -> i32 + %1 = "llvm.mlir.constant"() <{value = 100 : i32}> : () -> i32 + %2 = llvm.lshr %arg5, %0 : i32 + %3 = llvm.udiv %2, %1 : i32 + "llvm.return"(%3) : (i32) -> () +} +] +def udiv400_after := [llvm| +{ +^0(%arg5 : i32): + %0 = "llvm.mlir.constant"() <{value = 400 : i32}> : () -> i32 + %1 = llvm.udiv %arg5, %0 : i32 + "llvm.return"(%1) : (i32) -> () +} +] +theorem udiv400_proof : udiv400_before ⊑ udiv400_after := by + unfold udiv400_before udiv400_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN udiv400 + all_goals (try extract_goal ; sorry) + ---END udiv400 + + + +def sdiv400_yes_before := [llvm| +{ +^0(%arg3 : i32): + %0 = "llvm.mlir.constant"() <{value = 2 : i32}> : () -> i32 + %1 = "llvm.mlir.constant"() <{value = 100 : i32}> : () -> i32 + %2 = llvm.lshr %arg3, %0 : i32 + %3 = llvm.sdiv %2, %1 : i32 + "llvm.return"(%3) : (i32) -> () +} +] +def sdiv400_yes_after := [llvm| +{ +^0(%arg3 : i32): + %0 = "llvm.mlir.constant"() <{value = 400 : i32}> : () -> i32 + %1 = llvm.udiv %arg3, %0 : i32 + "llvm.return"(%1) : (i32) -> () +} +] +theorem sdiv400_yes_proof : sdiv400_yes_before ⊑ sdiv400_yes_after := by + unfold sdiv400_yes_before sdiv400_yes_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN sdiv400_yes + all_goals (try extract_goal ; sorry) + ---END sdiv400_yes + + + +def udiv_i80_before := [llvm| +{ +^0(%arg2 : i80): + %0 = "llvm.mlir.constant"() <{value = 2 : i80}> : () -> i80 + %1 = "llvm.mlir.constant"() <{value = 100 : i80}> : () -> i80 + %2 = llvm.lshr %arg2, %0 : i80 + %3 = llvm.udiv %2, %1 : i80 + "llvm.return"(%3) : (i80) -> () +} +] +def udiv_i80_after := [llvm| +{ +^0(%arg2 : i80): + %0 = "llvm.mlir.constant"() <{value = 400 : i80}> : () -> i80 + %1 = llvm.udiv %arg2, %0 : i80 + "llvm.return"(%1) : (i80) -> () +} +] +theorem udiv_i80_proof : udiv_i80_before ⊑ udiv_i80_after := by + unfold udiv_i80_before udiv_i80_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN udiv_i80 + all_goals (try extract_goal ; sorry) + ---END udiv_i80 + + diff --git a/SSA/Projects/InstCombine/tests/LLVM/gadd2.lean b/SSA/Projects/InstCombine/tests/LLVM/gadd2.lean index 546d638d1..c0394b433 100644 --- a/SSA/Projects/InstCombine/tests/LLVM/gadd2.lean +++ b/SSA/Projects/InstCombine/tests/LLVM/gadd2.lean @@ -1059,6 +1059,41 @@ theorem add_of_mul_proof : add_of_mul_before ⊑ add_of_mul_after := by +def add_of_selects_before := [llvm| +{ +^0(%arg2 : i1, %arg3 : i32): + %0 = "llvm.mlir.constant"() <{value = 0 : i32}> : () -> i32 + %1 = "llvm.mlir.constant"() <{value = -2 : i32}> : () -> i32 + %2 = "llvm.mlir.constant"() <{value = 2 : i32}> : () -> i32 + %3 = "llvm.select"(%arg2, %0, %1) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i32, i32) -> i32 + %4 = "llvm.select"(%arg2, %arg3, %2) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i32, i32) -> i32 + %5 = llvm.add %3, %4 : i32 + "llvm.return"(%5) : (i32) -> () +} +] +def add_of_selects_after := [llvm| +{ +^0(%arg2 : i1, %arg3 : i32): + %0 = "llvm.mlir.constant"() <{value = 0 : i32}> : () -> i32 + %1 = "llvm.select"(%arg2, %arg3, %0) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i32, i32) -> i32 + "llvm.return"(%1) : (i32) -> () +} +] +theorem add_of_selects_proof : add_of_selects_before ⊑ add_of_selects_after := by + unfold add_of_selects_before add_of_selects_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN add_of_selects + all_goals (try extract_goal ; sorry) + ---END add_of_selects + + + def add_undemanded_low_bits_before := [llvm| { ^0(%arg1 : i32): diff --git a/SSA/Projects/InstCombine/tests/LLVM/gadd4.lean b/SSA/Projects/InstCombine/tests/LLVM/gadd4.lean index 6a164eb3d..3f341e044 100644 --- a/SSA/Projects/InstCombine/tests/LLVM/gadd4.lean +++ b/SSA/Projects/InstCombine/tests/LLVM/gadd4.lean @@ -13,6 +13,42 @@ set_option linter.unreachableTactic false set_option linter.unusedTactic false section gadd4_statements +def match_unsigned_before := [llvm| +{ +^0(%arg18 : i64): + %0 = "llvm.mlir.constant"() <{value = 299 : i64}> : () -> i64 + %1 = "llvm.mlir.constant"() <{value = 64 : i64}> : () -> i64 + %2 = llvm.urem %arg18, %0 : i64 + %3 = llvm.udiv %arg18, %0 : i64 + %4 = llvm.urem %3, %1 : i64 + %5 = llvm.mul %4, %0 : i64 + %6 = llvm.add %2, %5 : i64 + "llvm.return"(%6) : (i64) -> () +} +] +def match_unsigned_after := [llvm| +{ +^0(%arg18 : i64): + %0 = "llvm.mlir.constant"() <{value = 19136 : i64}> : () -> i64 + %1 = llvm.urem %arg18, %0 : i64 + "llvm.return"(%1) : (i64) -> () +} +] +theorem match_unsigned_proof : match_unsigned_before ⊑ match_unsigned_after := by + unfold match_unsigned_before match_unsigned_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN match_unsigned + all_goals (try extract_goal ; sorry) + ---END match_unsigned + + + def match_andAsRem_lshrAsDiv_shlAsMul_before := [llvm| { ^0(%arg16 : i64): @@ -133,6 +169,87 @@ theorem not_match_inconsistent_signs_proof : not_match_inconsistent_signs_before +def not_match_inconsistent_values_before := [llvm| +{ +^0(%arg12 : i64): + %0 = "llvm.mlir.constant"() <{value = 299 : i64}> : () -> i64 + %1 = "llvm.mlir.constant"() <{value = 29 : i64}> : () -> i64 + %2 = "llvm.mlir.constant"() <{value = 64 : i64}> : () -> i64 + %3 = llvm.urem %arg12, %0 : i64 + %4 = llvm.udiv %arg12, %1 : i64 + %5 = llvm.urem %4, %2 : i64 + %6 = llvm.mul %5, %0 : i64 + %7 = llvm.add %3, %6 : i64 + "llvm.return"(%7) : (i64) -> () +} +] +def not_match_inconsistent_values_after := [llvm| +{ +^0(%arg12 : i64): + %0 = "llvm.mlir.constant"() <{value = 299 : i64}> : () -> i64 + %1 = "llvm.mlir.constant"() <{value = 29 : i64}> : () -> i64 + %2 = "llvm.mlir.constant"() <{value = 63 : i64}> : () -> i64 + %3 = llvm.urem %arg12, %0 : i64 + %4 = llvm.udiv %arg12, %1 : i64 + %5 = llvm.and %4, %2 : i64 + %6 = llvm.mul %5, %0 overflow : i64 + %7 = llvm.add %3, %6 overflow : i64 + "llvm.return"(%7) : (i64) -> () +} +] +theorem not_match_inconsistent_values_proof : not_match_inconsistent_values_before ⊑ not_match_inconsistent_values_after := by + unfold not_match_inconsistent_values_before not_match_inconsistent_values_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN not_match_inconsistent_values + all_goals (try extract_goal ; sorry) + ---END not_match_inconsistent_values + + + +def fold_add_udiv_urem_before := [llvm| +{ +^0(%arg10 : i32): + %0 = "llvm.mlir.constant"() <{value = 10 : i32}> : () -> i32 + %1 = "llvm.mlir.constant"() <{value = 4 : i32}> : () -> i32 + %2 = llvm.udiv %arg10, %0 : i32 + %3 = llvm.shl %2, %1 : i32 + %4 = llvm.urem %arg10, %0 : i32 + %5 = llvm.add %3, %4 : i32 + "llvm.return"(%5) : (i32) -> () +} +] +def fold_add_udiv_urem_after := [llvm| +{ +^0(%arg10 : i32): + %0 = "llvm.mlir.constant"() <{value = 10 : i32}> : () -> i32 + %1 = "llvm.mlir.constant"() <{value = 6 : i32}> : () -> i32 + %2 = llvm.udiv %arg10, %0 : i32 + %3 = llvm.mul %2, %1 overflow : i32 + %4 = llvm.add %3, %arg10 : i32 + "llvm.return"(%4) : (i32) -> () +} +] +theorem fold_add_udiv_urem_proof : fold_add_udiv_urem_before ⊑ fold_add_udiv_urem_after := by + unfold fold_add_udiv_urem_before fold_add_udiv_urem_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN fold_add_udiv_urem + all_goals (try extract_goal ; sorry) + ---END fold_add_udiv_urem + + + def fold_add_sdiv_srem_before := [llvm| { ^0(%arg9 : i32): @@ -170,3 +287,155 @@ theorem fold_add_sdiv_srem_proof : fold_add_sdiv_srem_before ⊑ fold_add_sdiv_s ---END fold_add_sdiv_srem + +def fold_add_udiv_urem_to_mul_before := [llvm| +{ +^0(%arg8 : i32): + %0 = "llvm.mlir.constant"() <{value = 7 : i32}> : () -> i32 + %1 = "llvm.mlir.constant"() <{value = 21 : i32}> : () -> i32 + %2 = "llvm.mlir.constant"() <{value = 3 : i32}> : () -> i32 + %3 = llvm.udiv %arg8, %0 : i32 + %4 = llvm.mul %3, %1 : i32 + %5 = llvm.urem %arg8, %0 : i32 + %6 = llvm.mul %5, %2 : i32 + %7 = llvm.add %4, %6 : i32 + "llvm.return"(%7) : (i32) -> () +} +] +def fold_add_udiv_urem_to_mul_after := [llvm| +{ +^0(%arg8 : i32): + %0 = "llvm.mlir.constant"() <{value = 3 : i32}> : () -> i32 + %1 = llvm.mul %arg8, %0 : i32 + "llvm.return"(%1) : (i32) -> () +} +] +theorem fold_add_udiv_urem_to_mul_proof : fold_add_udiv_urem_to_mul_before ⊑ fold_add_udiv_urem_to_mul_after := by + unfold fold_add_udiv_urem_to_mul_before fold_add_udiv_urem_to_mul_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN fold_add_udiv_urem_to_mul + all_goals (try extract_goal ; sorry) + ---END fold_add_udiv_urem_to_mul + + + +def fold_add_udiv_urem_commuted_before := [llvm| +{ +^0(%arg6 : i32): + %0 = "llvm.mlir.constant"() <{value = 10 : i32}> : () -> i32 + %1 = "llvm.mlir.constant"() <{value = 4 : i32}> : () -> i32 + %2 = llvm.udiv %arg6, %0 : i32 + %3 = llvm.shl %2, %1 : i32 + %4 = llvm.urem %arg6, %0 : i32 + %5 = llvm.add %4, %3 : i32 + "llvm.return"(%5) : (i32) -> () +} +] +def fold_add_udiv_urem_commuted_after := [llvm| +{ +^0(%arg6 : i32): + %0 = "llvm.mlir.constant"() <{value = 10 : i32}> : () -> i32 + %1 = "llvm.mlir.constant"() <{value = 6 : i32}> : () -> i32 + %2 = llvm.udiv %arg6, %0 : i32 + %3 = llvm.mul %2, %1 overflow : i32 + %4 = llvm.add %3, %arg6 : i32 + "llvm.return"(%4) : (i32) -> () +} +] +theorem fold_add_udiv_urem_commuted_proof : fold_add_udiv_urem_commuted_before ⊑ fold_add_udiv_urem_commuted_after := by + unfold fold_add_udiv_urem_commuted_before fold_add_udiv_urem_commuted_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN fold_add_udiv_urem_commuted + all_goals (try extract_goal ; sorry) + ---END fold_add_udiv_urem_commuted + + + +def fold_add_udiv_urem_or_disjoint_before := [llvm| +{ +^0(%arg5 : i32): + %0 = "llvm.mlir.constant"() <{value = 10 : i32}> : () -> i32 + %1 = "llvm.mlir.constant"() <{value = 4 : i32}> : () -> i32 + %2 = llvm.udiv %arg5, %0 : i32 + %3 = llvm.shl %2, %1 : i32 + %4 = llvm.urem %arg5, %0 : i32 + %5 = llvm.or %3, %4 : i32 + "llvm.return"(%5) : (i32) -> () +} +] +def fold_add_udiv_urem_or_disjoint_after := [llvm| +{ +^0(%arg5 : i32): + %0 = "llvm.mlir.constant"() <{value = 10 : i32}> : () -> i32 + %1 = "llvm.mlir.constant"() <{value = 6 : i32}> : () -> i32 + %2 = llvm.udiv %arg5, %0 : i32 + %3 = llvm.mul %2, %1 overflow : i32 + %4 = llvm.add %3, %arg5 : i32 + "llvm.return"(%4) : (i32) -> () +} +] +theorem fold_add_udiv_urem_or_disjoint_proof : fold_add_udiv_urem_or_disjoint_before ⊑ fold_add_udiv_urem_or_disjoint_after := by + unfold fold_add_udiv_urem_or_disjoint_before fold_add_udiv_urem_or_disjoint_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN fold_add_udiv_urem_or_disjoint + all_goals (try extract_goal ; sorry) + ---END fold_add_udiv_urem_or_disjoint + + + +def fold_add_udiv_urem_without_noundef_before := [llvm| +{ +^0(%arg4 : i32): + %0 = "llvm.mlir.constant"() <{value = 10 : i32}> : () -> i32 + %1 = "llvm.mlir.constant"() <{value = 4 : i32}> : () -> i32 + %2 = llvm.udiv %arg4, %0 : i32 + %3 = llvm.shl %2, %1 : i32 + %4 = llvm.urem %arg4, %0 : i32 + %5 = llvm.add %3, %4 : i32 + "llvm.return"(%5) : (i32) -> () +} +] +def fold_add_udiv_urem_without_noundef_after := [llvm| +{ +^0(%arg4 : i32): + %0 = "llvm.mlir.constant"() <{value = 10 : i32}> : () -> i32 + %1 = "llvm.mlir.constant"() <{value = 4 : i32}> : () -> i32 + %2 = llvm.udiv %arg4, %0 : i32 + %3 = llvm.shl %2, %1 : i32 + %4 = llvm.urem %arg4, %0 : i32 + %5 = llvm.or %3, %4 : i32 + "llvm.return"(%5) : (i32) -> () +} +] +theorem fold_add_udiv_urem_without_noundef_proof : fold_add_udiv_urem_without_noundef_before ⊑ fold_add_udiv_urem_without_noundef_after := by + unfold fold_add_udiv_urem_without_noundef_before fold_add_udiv_urem_without_noundef_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN fold_add_udiv_urem_without_noundef + all_goals (try extract_goal ; sorry) + ---END fold_add_udiv_urem_without_noundef + + diff --git a/SSA/Projects/InstCombine/tests/LLVM/gand.lean b/SSA/Projects/InstCombine/tests/LLVM/gand.lean index 24cdf4f7a..a055b4512 100644 --- a/SSA/Projects/InstCombine/tests/LLVM/gand.lean +++ b/SSA/Projects/InstCombine/tests/LLVM/gand.lean @@ -166,6 +166,36 @@ theorem test3_proof : test3_before ⊑ test3_after := by +def test3_logical_before := [llvm| +{ +^0(%arg306 : i1): + %0 = "llvm.mlir.constant"() <{value = false}> : () -> i1 + %1 = "llvm.select"(%arg306, %0, %0) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i1, i1) -> i1 + "llvm.return"(%1) : (i1) -> () +} +] +def test3_logical_after := [llvm| +{ +^0(%arg306 : i1): + %0 = "llvm.mlir.constant"() <{value = false}> : () -> i1 + "llvm.return"(%0) : (i1) -> () +} +] +theorem test3_logical_proof : test3_logical_before ⊑ test3_logical_after := by + unfold test3_logical_before test3_logical_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN test3_logical + all_goals (try extract_goal ; sorry) + ---END test3_logical + + + def test4_before := [llvm| { ^0(%arg305 : i1): @@ -195,6 +225,36 @@ theorem test4_proof : test4_before ⊑ test4_after := by +def test4_logical_before := [llvm| +{ +^0(%arg304 : i1): + %0 = "llvm.mlir.constant"() <{value = true}> : () -> i1 + %1 = "llvm.mlir.constant"() <{value = false}> : () -> i1 + %2 = "llvm.select"(%arg304, %0, %1) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i1, i1) -> i1 + "llvm.return"(%2) : (i1) -> () +} +] +def test4_logical_after := [llvm| +{ +^0(%arg304 : i1): + "llvm.return"(%arg304) : (i1) -> () +} +] +theorem test4_logical_proof : test4_logical_before ⊑ test4_logical_after := by + unfold test4_logical_before test4_logical_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN test4_logical + all_goals (try extract_goal ; sorry) + ---END test4_logical + + + def test5_before := [llvm| { ^0(%arg303 : i32): @@ -251,6 +311,35 @@ theorem test6_proof : test6_before ⊑ test6_after := by +def test6_logical_before := [llvm| +{ +^0(%arg301 : i1): + %0 = "llvm.mlir.constant"() <{value = false}> : () -> i1 + %1 = "llvm.select"(%arg301, %arg301, %0) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i1, i1) -> i1 + "llvm.return"(%1) : (i1) -> () +} +] +def test6_logical_after := [llvm| +{ +^0(%arg301 : i1): + "llvm.return"(%arg301) : (i1) -> () +} +] +theorem test6_logical_proof : test6_logical_before ⊑ test6_logical_after := by + unfold test6_logical_before test6_logical_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN test6_logical + all_goals (try extract_goal ; sorry) + ---END test6_logical + + + def test7_before := [llvm| { ^0(%arg300 : i32): @@ -679,6 +768,41 @@ theorem test34_proof : test34_before ⊑ test34_after := by +def test40_before := [llvm| +{ +^0(%arg216 : i1): + %0 = "llvm.mlir.constant"() <{value = 1000 : i32}> : () -> i32 + %1 = "llvm.mlir.constant"() <{value = 10 : i32}> : () -> i32 + %2 = "llvm.mlir.constant"() <{value = 123 : i32}> : () -> i32 + %3 = "llvm.select"(%arg216, %0, %1) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i32, i32) -> i32 + %4 = llvm.and %3, %2 : i32 + "llvm.return"(%4) : (i32) -> () +} +] +def test40_after := [llvm| +{ +^0(%arg216 : i1): + %0 = "llvm.mlir.constant"() <{value = 104 : i32}> : () -> i32 + %1 = "llvm.mlir.constant"() <{value = 10 : i32}> : () -> i32 + %2 = "llvm.select"(%arg216, %0, %1) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i32, i32) -> i32 + "llvm.return"(%2) : (i32) -> () +} +] +theorem test40_proof : test40_before ⊑ test40_after := by + unfold test40_before test40_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN test40 + all_goals (try extract_goal ; sorry) + ---END test40 + + + def test42_before := [llvm| { ^0(%arg208 : i32, %arg209 : i32, %arg210 : i32): diff --git a/SSA/Projects/InstCombine/tests/LLVM/gand2.lean b/SSA/Projects/InstCombine/tests/LLVM/gand2.lean index 7e5b7ef3b..47afff0c6 100644 --- a/SSA/Projects/InstCombine/tests/LLVM/gand2.lean +++ b/SSA/Projects/InstCombine/tests/LLVM/gand2.lean @@ -43,6 +43,38 @@ theorem test2_proof : test2_before ⊑ test2_after := by +def test2_logical_before := [llvm| +{ +^0(%arg28 : i1, %arg29 : i1): + %0 = "llvm.mlir.constant"() <{value = false}> : () -> i1 + %1 = "llvm.select"(%arg28, %arg29, %0) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i1, i1) -> i1 + %2 = "llvm.select"(%1, %arg28, %0) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i1, i1) -> i1 + "llvm.return"(%2) : (i1) -> () +} +] +def test2_logical_after := [llvm| +{ +^0(%arg28 : i1, %arg29 : i1): + %0 = "llvm.mlir.constant"() <{value = false}> : () -> i1 + %1 = "llvm.select"(%arg28, %arg29, %0) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i1, i1) -> i1 + "llvm.return"(%1) : (i1) -> () +} +] +theorem test2_logical_proof : test2_logical_before ⊑ test2_logical_after := by + unfold test2_logical_before test2_logical_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN test2_logical + all_goals (try extract_goal ; sorry) + ---END test2_logical + + + def test3_before := [llvm| { ^0(%arg26 : i32, %arg27 : i32): diff --git a/SSA/Projects/InstCombine/tests/LLVM/gandhxorhor.lean b/SSA/Projects/InstCombine/tests/LLVM/gandhxorhor.lean index b873b2dc0..1c9bc3f73 100644 --- a/SSA/Projects/InstCombine/tests/LLVM/gandhxorhor.lean +++ b/SSA/Projects/InstCombine/tests/LLVM/gandhxorhor.lean @@ -13,6 +13,126 @@ set_option linter.unreachableTactic false set_option linter.unusedTactic false section gandhxorhor_statements +def and_xor_common_op_before := [llvm| +{ +^0(%arg695 : i32, %arg696 : i32): + %0 = "llvm.mlir.constant"() <{value = 42 : i32}> : () -> i32 + %1 = "llvm.mlir.constant"() <{value = 43 : i32}> : () -> i32 + %2 = llvm.udiv %0, %arg695 : i32 + %3 = llvm.udiv %1, %arg696 : i32 + %4 = llvm.xor %2, %3 : i32 + %5 = llvm.and %2, %4 : i32 + "llvm.return"(%5) : (i32) -> () +} +] +def and_xor_common_op_after := [llvm| +{ +^0(%arg695 : i32, %arg696 : i32): + %0 = "llvm.mlir.constant"() <{value = 42 : i32}> : () -> i32 + %1 = "llvm.mlir.constant"() <{value = 43 : i32}> : () -> i32 + %2 = "llvm.mlir.constant"() <{value = -1 : i32}> : () -> i32 + %3 = llvm.udiv %0, %arg695 : i32 + %4 = llvm.udiv %1, %arg696 : i32 + %5 = llvm.xor %4, %2 : i32 + %6 = llvm.and %3, %5 : i32 + "llvm.return"(%6) : (i32) -> () +} +] +theorem and_xor_common_op_proof : and_xor_common_op_before ⊑ and_xor_common_op_after := by + unfold and_xor_common_op_before and_xor_common_op_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN and_xor_common_op + all_goals (try extract_goal ; sorry) + ---END and_xor_common_op + + + +def and_xor_common_op_commute1_before := [llvm| +{ +^0(%arg693 : i32, %arg694 : i32): + %0 = "llvm.mlir.constant"() <{value = 42 : i32}> : () -> i32 + %1 = "llvm.mlir.constant"() <{value = 43 : i32}> : () -> i32 + %2 = llvm.udiv %0, %arg693 : i32 + %3 = llvm.udiv %1, %arg694 : i32 + %4 = llvm.xor %3, %2 : i32 + %5 = llvm.and %2, %4 : i32 + "llvm.return"(%5) : (i32) -> () +} +] +def and_xor_common_op_commute1_after := [llvm| +{ +^0(%arg693 : i32, %arg694 : i32): + %0 = "llvm.mlir.constant"() <{value = 42 : i32}> : () -> i32 + %1 = "llvm.mlir.constant"() <{value = 43 : i32}> : () -> i32 + %2 = "llvm.mlir.constant"() <{value = -1 : i32}> : () -> i32 + %3 = llvm.udiv %0, %arg693 : i32 + %4 = llvm.udiv %1, %arg694 : i32 + %5 = llvm.xor %4, %2 : i32 + %6 = llvm.and %3, %5 : i32 + "llvm.return"(%6) : (i32) -> () +} +] +theorem and_xor_common_op_commute1_proof : and_xor_common_op_commute1_before ⊑ and_xor_common_op_commute1_after := by + unfold and_xor_common_op_commute1_before and_xor_common_op_commute1_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN and_xor_common_op_commute1 + all_goals (try extract_goal ; sorry) + ---END and_xor_common_op_commute1 + + + +def and_xor_common_op_commute2_before := [llvm| +{ +^0(%arg691 : i32, %arg692 : i32): + %0 = "llvm.mlir.constant"() <{value = 42 : i32}> : () -> i32 + %1 = "llvm.mlir.constant"() <{value = 43 : i32}> : () -> i32 + %2 = llvm.udiv %0, %arg691 : i32 + %3 = llvm.udiv %1, %arg692 : i32 + %4 = llvm.xor %3, %2 : i32 + %5 = llvm.and %4, %2 : i32 + "llvm.return"(%5) : (i32) -> () +} +] +def and_xor_common_op_commute2_after := [llvm| +{ +^0(%arg691 : i32, %arg692 : i32): + %0 = "llvm.mlir.constant"() <{value = 42 : i32}> : () -> i32 + %1 = "llvm.mlir.constant"() <{value = 43 : i32}> : () -> i32 + %2 = "llvm.mlir.constant"() <{value = -1 : i32}> : () -> i32 + %3 = llvm.udiv %0, %arg691 : i32 + %4 = llvm.udiv %1, %arg692 : i32 + %5 = llvm.xor %4, %2 : i32 + %6 = llvm.and %3, %5 : i32 + "llvm.return"(%6) : (i32) -> () +} +] +theorem and_xor_common_op_commute2_proof : and_xor_common_op_commute2_before ⊑ and_xor_common_op_commute2_after := by + unfold and_xor_common_op_commute2_before and_xor_common_op_commute2_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN and_xor_common_op_commute2 + all_goals (try extract_goal ; sorry) + ---END and_xor_common_op_commute2 + + + def and_xor_not_common_op_before := [llvm| { ^0(%arg686 : i32, %arg687 : i32): @@ -139,6 +259,310 @@ theorem or2_proof : or2_before ⊑ or2_after := by +def and_xor_or1_before := [llvm| +{ +^0(%arg673 : i64, %arg674 : i64, %arg675 : i64): + %0 = "llvm.mlir.constant"() <{value = 42 : i64}> : () -> i64 + %1 = llvm.udiv %0, %arg673 : i64 + %2 = llvm.udiv %0, %arg674 : i64 + %3 = llvm.udiv %0, %arg675 : i64 + %4 = llvm.and %1, %2 : i64 + %5 = llvm.xor %4, %3 : i64 + %6 = llvm.or %5, %2 : i64 + "llvm.return"(%6) : (i64) -> () +} +] +def and_xor_or1_after := [llvm| +{ +^0(%arg673 : i64, %arg674 : i64, %arg675 : i64): + %0 = "llvm.mlir.constant"() <{value = 42 : i64}> : () -> i64 + %1 = llvm.udiv %0, %arg674 : i64 + %2 = llvm.udiv %0, %arg675 : i64 + %3 = llvm.or %2, %1 : i64 + "llvm.return"(%3) : (i64) -> () +} +] +theorem and_xor_or1_proof : and_xor_or1_before ⊑ and_xor_or1_after := by + unfold and_xor_or1_before and_xor_or1_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN and_xor_or1 + all_goals (try extract_goal ; sorry) + ---END and_xor_or1 + + + +def and_xor_or2_before := [llvm| +{ +^0(%arg670 : i64, %arg671 : i64, %arg672 : i64): + %0 = "llvm.mlir.constant"() <{value = 42 : i64}> : () -> i64 + %1 = llvm.udiv %0, %arg670 : i64 + %2 = llvm.udiv %0, %arg671 : i64 + %3 = llvm.udiv %0, %arg672 : i64 + %4 = llvm.and %2, %1 : i64 + %5 = llvm.xor %4, %3 : i64 + %6 = llvm.or %5, %2 : i64 + "llvm.return"(%6) : (i64) -> () +} +] +def and_xor_or2_after := [llvm| +{ +^0(%arg670 : i64, %arg671 : i64, %arg672 : i64): + %0 = "llvm.mlir.constant"() <{value = 42 : i64}> : () -> i64 + %1 = llvm.udiv %0, %arg671 : i64 + %2 = llvm.udiv %0, %arg672 : i64 + %3 = llvm.or %2, %1 : i64 + "llvm.return"(%3) : (i64) -> () +} +] +theorem and_xor_or2_proof : and_xor_or2_before ⊑ and_xor_or2_after := by + unfold and_xor_or2_before and_xor_or2_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN and_xor_or2 + all_goals (try extract_goal ; sorry) + ---END and_xor_or2 + + + +def and_xor_or3_before := [llvm| +{ +^0(%arg667 : i64, %arg668 : i64, %arg669 : i64): + %0 = "llvm.mlir.constant"() <{value = 42 : i64}> : () -> i64 + %1 = llvm.udiv %0, %arg667 : i64 + %2 = llvm.udiv %0, %arg668 : i64 + %3 = llvm.udiv %0, %arg669 : i64 + %4 = llvm.and %1, %2 : i64 + %5 = llvm.xor %3, %4 : i64 + %6 = llvm.or %5, %2 : i64 + "llvm.return"(%6) : (i64) -> () +} +] +def and_xor_or3_after := [llvm| +{ +^0(%arg667 : i64, %arg668 : i64, %arg669 : i64): + %0 = "llvm.mlir.constant"() <{value = 42 : i64}> : () -> i64 + %1 = llvm.udiv %0, %arg668 : i64 + %2 = llvm.udiv %0, %arg669 : i64 + %3 = llvm.or %2, %1 : i64 + "llvm.return"(%3) : (i64) -> () +} +] +theorem and_xor_or3_proof : and_xor_or3_before ⊑ and_xor_or3_after := by + unfold and_xor_or3_before and_xor_or3_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN and_xor_or3 + all_goals (try extract_goal ; sorry) + ---END and_xor_or3 + + + +def and_xor_or4_before := [llvm| +{ +^0(%arg664 : i64, %arg665 : i64, %arg666 : i64): + %0 = "llvm.mlir.constant"() <{value = 42 : i64}> : () -> i64 + %1 = llvm.udiv %0, %arg664 : i64 + %2 = llvm.udiv %0, %arg665 : i64 + %3 = llvm.udiv %0, %arg666 : i64 + %4 = llvm.and %2, %1 : i64 + %5 = llvm.xor %3, %4 : i64 + %6 = llvm.or %5, %2 : i64 + "llvm.return"(%6) : (i64) -> () +} +] +def and_xor_or4_after := [llvm| +{ +^0(%arg664 : i64, %arg665 : i64, %arg666 : i64): + %0 = "llvm.mlir.constant"() <{value = 42 : i64}> : () -> i64 + %1 = llvm.udiv %0, %arg665 : i64 + %2 = llvm.udiv %0, %arg666 : i64 + %3 = llvm.or %2, %1 : i64 + "llvm.return"(%3) : (i64) -> () +} +] +theorem and_xor_or4_proof : and_xor_or4_before ⊑ and_xor_or4_after := by + unfold and_xor_or4_before and_xor_or4_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN and_xor_or4 + all_goals (try extract_goal ; sorry) + ---END and_xor_or4 + + + +def and_xor_or5_before := [llvm| +{ +^0(%arg661 : i64, %arg662 : i64, %arg663 : i64): + %0 = "llvm.mlir.constant"() <{value = 42 : i64}> : () -> i64 + %1 = llvm.udiv %0, %arg661 : i64 + %2 = llvm.udiv %0, %arg662 : i64 + %3 = llvm.udiv %0, %arg663 : i64 + %4 = llvm.and %1, %2 : i64 + %5 = llvm.xor %4, %3 : i64 + %6 = llvm.or %2, %5 : i64 + "llvm.return"(%6) : (i64) -> () +} +] +def and_xor_or5_after := [llvm| +{ +^0(%arg661 : i64, %arg662 : i64, %arg663 : i64): + %0 = "llvm.mlir.constant"() <{value = 42 : i64}> : () -> i64 + %1 = llvm.udiv %0, %arg662 : i64 + %2 = llvm.udiv %0, %arg663 : i64 + %3 = llvm.or %1, %2 : i64 + "llvm.return"(%3) : (i64) -> () +} +] +theorem and_xor_or5_proof : and_xor_or5_before ⊑ and_xor_or5_after := by + unfold and_xor_or5_before and_xor_or5_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN and_xor_or5 + all_goals (try extract_goal ; sorry) + ---END and_xor_or5 + + + +def and_xor_or6_before := [llvm| +{ +^0(%arg658 : i64, %arg659 : i64, %arg660 : i64): + %0 = "llvm.mlir.constant"() <{value = 42 : i64}> : () -> i64 + %1 = llvm.udiv %0, %arg658 : i64 + %2 = llvm.udiv %0, %arg659 : i64 + %3 = llvm.udiv %0, %arg660 : i64 + %4 = llvm.and %2, %1 : i64 + %5 = llvm.xor %4, %3 : i64 + %6 = llvm.or %2, %5 : i64 + "llvm.return"(%6) : (i64) -> () +} +] +def and_xor_or6_after := [llvm| +{ +^0(%arg658 : i64, %arg659 : i64, %arg660 : i64): + %0 = "llvm.mlir.constant"() <{value = 42 : i64}> : () -> i64 + %1 = llvm.udiv %0, %arg659 : i64 + %2 = llvm.udiv %0, %arg660 : i64 + %3 = llvm.or %1, %2 : i64 + "llvm.return"(%3) : (i64) -> () +} +] +theorem and_xor_or6_proof : and_xor_or6_before ⊑ and_xor_or6_after := by + unfold and_xor_or6_before and_xor_or6_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN and_xor_or6 + all_goals (try extract_goal ; sorry) + ---END and_xor_or6 + + + +def and_xor_or7_before := [llvm| +{ +^0(%arg655 : i64, %arg656 : i64, %arg657 : i64): + %0 = "llvm.mlir.constant"() <{value = 42 : i64}> : () -> i64 + %1 = llvm.udiv %0, %arg655 : i64 + %2 = llvm.udiv %0, %arg656 : i64 + %3 = llvm.udiv %0, %arg657 : i64 + %4 = llvm.and %1, %2 : i64 + %5 = llvm.xor %3, %4 : i64 + %6 = llvm.or %2, %5 : i64 + "llvm.return"(%6) : (i64) -> () +} +] +def and_xor_or7_after := [llvm| +{ +^0(%arg655 : i64, %arg656 : i64, %arg657 : i64): + %0 = "llvm.mlir.constant"() <{value = 42 : i64}> : () -> i64 + %1 = llvm.udiv %0, %arg656 : i64 + %2 = llvm.udiv %0, %arg657 : i64 + %3 = llvm.or %1, %2 : i64 + "llvm.return"(%3) : (i64) -> () +} +] +theorem and_xor_or7_proof : and_xor_or7_before ⊑ and_xor_or7_after := by + unfold and_xor_or7_before and_xor_or7_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN and_xor_or7 + all_goals (try extract_goal ; sorry) + ---END and_xor_or7 + + + +def and_xor_or8_before := [llvm| +{ +^0(%arg652 : i64, %arg653 : i64, %arg654 : i64): + %0 = "llvm.mlir.constant"() <{value = 42 : i64}> : () -> i64 + %1 = llvm.udiv %0, %arg652 : i64 + %2 = llvm.udiv %0, %arg653 : i64 + %3 = llvm.udiv %0, %arg654 : i64 + %4 = llvm.and %2, %1 : i64 + %5 = llvm.xor %3, %4 : i64 + %6 = llvm.or %2, %5 : i64 + "llvm.return"(%6) : (i64) -> () +} +] +def and_xor_or8_after := [llvm| +{ +^0(%arg652 : i64, %arg653 : i64, %arg654 : i64): + %0 = "llvm.mlir.constant"() <{value = 42 : i64}> : () -> i64 + %1 = llvm.udiv %0, %arg653 : i64 + %2 = llvm.udiv %0, %arg654 : i64 + %3 = llvm.or %1, %2 : i64 + "llvm.return"(%3) : (i64) -> () +} +] +theorem and_xor_or8_proof : and_xor_or8_before ⊑ and_xor_or8_after := by + unfold and_xor_or8_before and_xor_or8_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN and_xor_or8 + all_goals (try extract_goal ; sorry) + ---END and_xor_or8 + + + def and_shl_before := [llvm| { ^0(%arg644 : i8, %arg645 : i8, %arg646 : i8, %arg647 : i8): @@ -1215,10 +1639,10 @@ theorem and_not_or_commute5_proof : and_not_or_commute5_before ⊑ and_not_or_co simp_alive_peephole simp_alive_undef simp_alive_ops - -- simp? - -- simp_alive_case_bash - -- try intros - -- try simp + try simp + simp_alive_case_bash + try intros + try simp ---BEGIN and_not_or_commute5 all_goals (try extract_goal ; sorry) ---END and_not_or_commute5 @@ -4378,3 +4802,5 @@ theorem canonicalize_logic_first_xor_0_nswnuw_proof : canonicalize_logic_first_x ---BEGIN canonicalize_logic_first_xor_0_nswnuw all_goals (try extract_goal ; sorry) ---END canonicalize_logic_first_xor_0_nswnuw + + diff --git a/SSA/Projects/InstCombine/tests/LLVM/gapinthdiv1.lean b/SSA/Projects/InstCombine/tests/LLVM/gapinthdiv1.lean new file mode 100644 index 000000000..7eb4f556f --- /dev/null +++ b/SSA/Projects/InstCombine/tests/LLVM/gapinthdiv1.lean @@ -0,0 +1,113 @@ + +import SSA.Projects.InstCombine.LLVM.PrettyEDSL +import SSA.Projects.InstCombine.TacticAuto +import SSA.Projects.InstCombine.LLVM.Semantics +open LLVM +open BitVec + +open MLIR AST +open Ctxt (Var) + +set_option linter.deprecated false +set_option linter.unreachableTactic false +set_option linter.unusedTactic false +section gapinthdiv1_statements + +def test1_before := [llvm| +{ +^0(%arg3 : i33): + %0 = "llvm.mlir.constant"() <{value = 4096 : i33}> : () -> i33 + %1 = llvm.udiv %arg3, %0 : i33 + "llvm.return"(%1) : (i33) -> () +} +] +def test1_after := [llvm| +{ +^0(%arg3 : i33): + %0 = "llvm.mlir.constant"() <{value = 12 : i33}> : () -> i33 + %1 = llvm.lshr %arg3, %0 : i33 + "llvm.return"(%1) : (i33) -> () +} +] +theorem test1_proof : test1_before ⊑ test1_after := by + unfold test1_before test1_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN test1 + all_goals (try extract_goal ; sorry) + ---END test1 + + + +def test2_before := [llvm| +{ +^0(%arg2 : i49): + %0 = "llvm.mlir.constant"() <{value = 4096 : i49}> : () -> i49 + %1 = "llvm.mlir.constant"() <{value = 17 : i49}> : () -> i49 + %2 = llvm.shl %0, %1 : i49 + %3 = llvm.udiv %arg2, %2 : i49 + "llvm.return"(%3) : (i49) -> () +} +] +def test2_after := [llvm| +{ +^0(%arg2 : i49): + %0 = "llvm.mlir.constant"() <{value = 29 : i49}> : () -> i49 + %1 = llvm.lshr %arg2, %0 : i49 + "llvm.return"(%1) : (i49) -> () +} +] +theorem test2_proof : test2_before ⊑ test2_after := by + unfold test2_before test2_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN test2 + all_goals (try extract_goal ; sorry) + ---END test2 + + + +def test3_before := [llvm| +{ +^0(%arg0 : i59, %arg1 : i1): + %0 = "llvm.mlir.constant"() <{value = 1024 : i59}> : () -> i59 + %1 = "llvm.mlir.constant"() <{value = 4096 : i59}> : () -> i59 + %2 = "llvm.select"(%arg1, %0, %1) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i59, i59) -> i59 + %3 = llvm.udiv %arg0, %2 : i59 + "llvm.return"(%3) : (i59) -> () +} +] +def test3_after := [llvm| +{ +^0(%arg0 : i59, %arg1 : i1): + %0 = "llvm.mlir.constant"() <{value = 10 : i59}> : () -> i59 + %1 = "llvm.mlir.constant"() <{value = 12 : i59}> : () -> i59 + %2 = "llvm.select"(%arg1, %0, %1) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i59, i59) -> i59 + %3 = llvm.lshr %arg0, %2 : i59 + "llvm.return"(%3) : (i59) -> () +} +] +theorem test3_proof : test3_before ⊑ test3_after := by + unfold test3_before test3_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN test3 + all_goals (try extract_goal ; sorry) + ---END test3 + + diff --git a/SSA/Projects/InstCombine/tests/LLVM/gapinthdiv2.lean b/SSA/Projects/InstCombine/tests/LLVM/gapinthdiv2.lean new file mode 100644 index 000000000..ebd8d7c8c --- /dev/null +++ b/SSA/Projects/InstCombine/tests/LLVM/gapinthdiv2.lean @@ -0,0 +1,113 @@ + +import SSA.Projects.InstCombine.LLVM.PrettyEDSL +import SSA.Projects.InstCombine.TacticAuto +import SSA.Projects.InstCombine.LLVM.Semantics +open LLVM +open BitVec + +open MLIR AST +open Ctxt (Var) + +set_option linter.deprecated false +set_option linter.unreachableTactic false +set_option linter.unusedTactic false +section gapinthdiv2_statements + +def test1_before := [llvm| +{ +^0(%arg3 : i333): + %0 = "llvm.mlir.constant"() <{value = 70368744177664 : i333}> : () -> i333 + %1 = llvm.udiv %arg3, %0 : i333 + "llvm.return"(%1) : (i333) -> () +} +] +def test1_after := [llvm| +{ +^0(%arg3 : i333): + %0 = "llvm.mlir.constant"() <{value = 46 : i333}> : () -> i333 + %1 = llvm.lshr %arg3, %0 : i333 + "llvm.return"(%1) : (i333) -> () +} +] +theorem test1_proof : test1_before ⊑ test1_after := by + unfold test1_before test1_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN test1 + all_goals (try extract_goal ; sorry) + ---END test1 + + + +def test2_before := [llvm| +{ +^0(%arg2 : i499): + %0 = "llvm.mlir.constant"() <{value = 4096 : i499}> : () -> i499 + %1 = "llvm.mlir.constant"() <{value = 197 : i499}> : () -> i499 + %2 = llvm.shl %0, %1 : i499 + %3 = llvm.udiv %arg2, %2 : i499 + "llvm.return"(%3) : (i499) -> () +} +] +def test2_after := [llvm| +{ +^0(%arg2 : i499): + %0 = "llvm.mlir.constant"() <{value = 209 : i499}> : () -> i499 + %1 = llvm.lshr %arg2, %0 : i499 + "llvm.return"(%1) : (i499) -> () +} +] +theorem test2_proof : test2_before ⊑ test2_after := by + unfold test2_before test2_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN test2 + all_goals (try extract_goal ; sorry) + ---END test2 + + + +def test3_before := [llvm| +{ +^0(%arg0 : i599, %arg1 : i1): + %0 = "llvm.mlir.constant"() <{value = 70368744177664 : i599}> : () -> i599 + %1 = "llvm.mlir.constant"() <{value = 4096 : i599}> : () -> i599 + %2 = "llvm.select"(%arg1, %0, %1) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i599, i599) -> i599 + %3 = llvm.udiv %arg0, %2 : i599 + "llvm.return"(%3) : (i599) -> () +} +] +def test3_after := [llvm| +{ +^0(%arg0 : i599, %arg1 : i1): + %0 = "llvm.mlir.constant"() <{value = 46 : i599}> : () -> i599 + %1 = "llvm.mlir.constant"() <{value = 12 : i599}> : () -> i599 + %2 = "llvm.select"(%arg1, %0, %1) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i599, i599) -> i599 + %3 = llvm.lshr %arg0, %2 : i599 + "llvm.return"(%3) : (i599) -> () +} +] +theorem test3_proof : test3_before ⊑ test3_after := by + unfold test3_before test3_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN test3 + all_goals (try extract_goal ; sorry) + ---END test3 + + diff --git a/SSA/Projects/InstCombine/tests/LLVM/gapinthrem1.lean b/SSA/Projects/InstCombine/tests/LLVM/gapinthrem1.lean index 957b96e78..414482093 100644 --- a/SSA/Projects/InstCombine/tests/LLVM/gapinthrem1.lean +++ b/SSA/Projects/InstCombine/tests/LLVM/gapinthrem1.lean @@ -76,3 +76,38 @@ theorem test2_proof : test2_before ⊑ test2_after := by ---END test2 + +def test3_before := [llvm| +{ +^0(%arg0 : i59, %arg1 : i1): + %0 = "llvm.mlir.constant"() <{value = 70368744177664 : i59}> : () -> i59 + %1 = "llvm.mlir.constant"() <{value = 4096 : i59}> : () -> i59 + %2 = "llvm.select"(%arg1, %0, %1) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i59, i59) -> i59 + %3 = llvm.urem %arg0, %2 : i59 + "llvm.return"(%3) : (i59) -> () +} +] +def test3_after := [llvm| +{ +^0(%arg0 : i59, %arg1 : i1): + %0 = "llvm.mlir.constant"() <{value = 70368744177663 : i59}> : () -> i59 + %1 = "llvm.mlir.constant"() <{value = 4095 : i59}> : () -> i59 + %2 = "llvm.select"(%arg1, %0, %1) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i59, i59) -> i59 + %3 = llvm.and %arg0, %2 : i59 + "llvm.return"(%3) : (i59) -> () +} +] +theorem test3_proof : test3_before ⊑ test3_after := by + unfold test3_before test3_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN test3 + all_goals (try extract_goal ; sorry) + ---END test3 + + diff --git a/SSA/Projects/InstCombine/tests/LLVM/gapinthrem2.lean b/SSA/Projects/InstCombine/tests/LLVM/gapinthrem2.lean index 50bf168c8..94463cd19 100644 --- a/SSA/Projects/InstCombine/tests/LLVM/gapinthrem2.lean +++ b/SSA/Projects/InstCombine/tests/LLVM/gapinthrem2.lean @@ -76,3 +76,38 @@ theorem test2_proof : test2_before ⊑ test2_after := by ---END test2 + +def test3_before := [llvm| +{ +^0(%arg0 : i599, %arg1 : i1): + %0 = "llvm.mlir.constant"() <{value = 70368744177664 : i599}> : () -> i599 + %1 = "llvm.mlir.constant"() <{value = 4096 : i599}> : () -> i599 + %2 = "llvm.select"(%arg1, %0, %1) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i599, i599) -> i599 + %3 = llvm.urem %arg0, %2 : i599 + "llvm.return"(%3) : (i599) -> () +} +] +def test3_after := [llvm| +{ +^0(%arg0 : i599, %arg1 : i1): + %0 = "llvm.mlir.constant"() <{value = 70368744177663 : i599}> : () -> i599 + %1 = "llvm.mlir.constant"() <{value = 4095 : i599}> : () -> i599 + %2 = "llvm.select"(%arg1, %0, %1) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i599, i599) -> i599 + %3 = llvm.and %arg0, %2 : i599 + "llvm.return"(%3) : (i599) -> () +} +] +theorem test3_proof : test3_before ⊑ test3_after := by + unfold test3_before test3_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN test3 + all_goals (try extract_goal ; sorry) + ---END test3 + + diff --git a/SSA/Projects/InstCombine/tests/LLVM/gapinthshift.lean b/SSA/Projects/InstCombine/tests/LLVM/gapinthshift.lean index 6329be875..484150d12 100644 --- a/SSA/Projects/InstCombine/tests/LLVM/gapinthshift.lean +++ b/SSA/Projects/InstCombine/tests/LLVM/gapinthshift.lean @@ -425,6 +425,41 @@ theorem test14a_proof : test14a_before ⊑ test14a_after := by +def test15_before := [llvm| +{ +^0(%arg24 : i1): + %0 = "llvm.mlir.constant"() <{value = 3 : i45}> : () -> i45 + %1 = "llvm.mlir.constant"() <{value = 1 : i45}> : () -> i45 + %2 = "llvm.mlir.constant"() <{value = 2 : i45}> : () -> i45 + %3 = "llvm.select"(%arg24, %0, %1) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i45, i45) -> i45 + %4 = llvm.shl %3, %2 : i45 + "llvm.return"(%4) : (i45) -> () +} +] +def test15_after := [llvm| +{ +^0(%arg24 : i1): + %0 = "llvm.mlir.constant"() <{value = 12 : i45}> : () -> i45 + %1 = "llvm.mlir.constant"() <{value = 4 : i45}> : () -> i45 + %2 = "llvm.select"(%arg24, %0, %1) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i45, i45) -> i45 + "llvm.return"(%2) : (i45) -> () +} +] +theorem test15_proof : test15_before ⊑ test15_after := by + unfold test15_before test15_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN test15 + all_goals (try extract_goal ; sorry) + ---END test15 + + + def shl_lshr_eq_amt_multi_use_before := [llvm| { ^0(%arg7 : i44): diff --git a/SSA/Projects/InstCombine/tests/LLVM/gbinophselect.lean b/SSA/Projects/InstCombine/tests/LLVM/gbinophselect.lean new file mode 100644 index 000000000..ea394ba24 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/LLVM/gbinophselect.lean @@ -0,0 +1,84 @@ + +import SSA.Projects.InstCombine.LLVM.PrettyEDSL +import SSA.Projects.InstCombine.TacticAuto +import SSA.Projects.InstCombine.LLVM.Semantics +open LLVM +open BitVec + +open MLIR AST +open Ctxt (Var) + +set_option linter.deprecated false +set_option linter.unreachableTactic false +set_option linter.unusedTactic false +section gbinophselect_statements + +def mul_sel_op0_before := [llvm| +{ +^0(%arg14 : i1, %arg15 : i32): + %0 = "llvm.mlir.constant"() <{value = 42 : i32}> : () -> i32 + %1 = "llvm.mlir.constant"() <{value = 0 : i32}> : () -> i32 + %2 = llvm.udiv %0, %arg15 : i32 + %3 = "llvm.select"(%arg14, %1, %2) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i32, i32) -> i32 + %4 = llvm.mul %3, %arg15 : i32 + "llvm.return"(%4) : (i32) -> () +} +] +def mul_sel_op0_after := [llvm| +{ +^0(%arg14 : i1, %arg15 : i32): + %0 = "llvm.mlir.constant"() <{value = 0 : i32}> : () -> i32 + %1 = "llvm.mlir.constant"() <{value = 42 : i32}> : () -> i32 + %2 = "llvm.select"(%arg14, %0, %1) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i32, i32) -> i32 + "llvm.return"(%2) : (i32) -> () +} +] +theorem mul_sel_op0_proof : mul_sel_op0_before ⊑ mul_sel_op0_after := by + unfold mul_sel_op0_before mul_sel_op0_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN mul_sel_op0 + all_goals (try extract_goal ; sorry) + ---END mul_sel_op0 + + + +def ashr_sel_op1_before := [llvm| +{ +^0(%arg1 : i1): + %0 = "llvm.mlir.constant"() <{value = 2 : i32}> : () -> i32 + %1 = "llvm.mlir.constant"() <{value = 0 : i32}> : () -> i32 + %2 = "llvm.mlir.constant"() <{value = -2 : i32}> : () -> i32 + %3 = "llvm.select"(%arg1, %0, %1) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i32, i32) -> i32 + %4 = llvm.ashr %2, %3 : i32 + "llvm.return"(%4) : (i32) -> () +} +] +def ashr_sel_op1_after := [llvm| +{ +^0(%arg1 : i1): + %0 = "llvm.mlir.constant"() <{value = -1 : i32}> : () -> i32 + %1 = "llvm.mlir.constant"() <{value = -2 : i32}> : () -> i32 + %2 = "llvm.select"(%arg1, %0, %1) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i32, i32) -> i32 + "llvm.return"(%2) : (i32) -> () +} +] +theorem ashr_sel_op1_proof : ashr_sel_op1_before ⊑ ashr_sel_op1_after := by + unfold ashr_sel_op1_before ashr_sel_op1_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN ashr_sel_op1 + all_goals (try extract_goal ; sorry) + ---END ashr_sel_op1 + + diff --git a/SSA/Projects/InstCombine/tests/LLVM/gdivhi1.lean b/SSA/Projects/InstCombine/tests/LLVM/gdivhi1.lean index 713f7f5af..beeb38731 100644 --- a/SSA/Projects/InstCombine/tests/LLVM/gdivhi1.lean +++ b/SSA/Projects/InstCombine/tests/LLVM/gdivhi1.lean @@ -41,6 +41,34 @@ theorem sdiv_i1_is_op0_proof : sdiv_i1_is_op0_before ⊑ sdiv_i1_is_op0_after := +def udiv_i1_is_op0_before := [llvm| +{ +^0(%arg4 : i1, %arg5 : i1): + %0 = llvm.udiv %arg4, %arg5 : i1 + "llvm.return"(%0) : (i1) -> () +} +] +def udiv_i1_is_op0_after := [llvm| +{ +^0(%arg4 : i1, %arg5 : i1): + "llvm.return"(%arg4) : (i1) -> () +} +] +theorem udiv_i1_is_op0_proof : udiv_i1_is_op0_before ⊑ udiv_i1_is_op0_after := by + unfold udiv_i1_is_op0_before udiv_i1_is_op0_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN udiv_i1_is_op0 + all_goals (try extract_goal ; sorry) + ---END udiv_i1_is_op0 + + + def srem_i1_is_zero_before := [llvm| { ^0(%arg2 : i1, %arg3 : i1): diff --git a/SSA/Projects/InstCombine/tests/LLVM/gdivhshift.lean b/SSA/Projects/InstCombine/tests/LLVM/gdivhshift.lean index d31b7ae4b..b55987083 100644 --- a/SSA/Projects/InstCombine/tests/LLVM/gdivhshift.lean +++ b/SSA/Projects/InstCombine/tests/LLVM/gdivhshift.lean @@ -13,6 +13,45 @@ set_option linter.unreachableTactic false set_option linter.unusedTactic false section gdivhshift_statements +def t5_before := [llvm| +{ +^0(%arg230 : i1, %arg231 : i1, %arg232 : i32): + %0 = "llvm.mlir.constant"() <{value = 1 : i32}> : () -> i32 + %1 = "llvm.mlir.constant"() <{value = 32 : i32}> : () -> i32 + %2 = "llvm.mlir.constant"() <{value = 64 : i32}> : () -> i32 + %3 = llvm.shl %0, %arg232 : i32 + %4 = "llvm.select"(%arg230, %1, %2) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i32, i32) -> i32 + %5 = "llvm.select"(%arg231, %4, %3) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i32, i32) -> i32 + %6 = llvm.udiv %arg232, %5 : i32 + "llvm.return"(%6) : (i32) -> () +} +] +def t5_after := [llvm| +{ +^0(%arg230 : i1, %arg231 : i1, %arg232 : i32): + %0 = "llvm.mlir.constant"() <{value = 5 : i32}> : () -> i32 + %1 = "llvm.mlir.constant"() <{value = 6 : i32}> : () -> i32 + %2 = "llvm.select"(%arg230, %0, %1) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i32, i32) -> i32 + %3 = "llvm.select"(%arg231, %2, %arg232) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i32, i32) -> i32 + %4 = llvm.lshr %arg232, %3 : i32 + "llvm.return"(%4) : (i32) -> () +} +] +theorem t5_proof : t5_before ⊑ t5_after := by + unfold t5_before t5_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN t5 + all_goals (try extract_goal ; sorry) + ---END t5 + + + def t7_before := [llvm| { ^0(%arg209 : i32): @@ -75,6 +114,68 @@ theorem t10_proof : t10_before ⊑ t10_after := by +def t12_before := [llvm| +{ +^0(%arg202 : i32): + %0 = "llvm.mlir.constant"() <{value = 2 : i32}> : () -> i32 + %1 = llvm.shl %arg202, %0 overflow : i32 + %2 = llvm.udiv %1, %arg202 : i32 + "llvm.return"(%2) : (i32) -> () +} +] +def t12_after := [llvm| +{ +^0(%arg202 : i32): + %0 = "llvm.mlir.constant"() <{value = 4 : i32}> : () -> i32 + "llvm.return"(%0) : (i32) -> () +} +] +theorem t12_proof : t12_before ⊑ t12_after := by + unfold t12_before t12_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN t12 + all_goals (try extract_goal ; sorry) + ---END t12 + + + +def t15_before := [llvm| +{ +^0(%arg198 : i32, %arg199 : i32): + %0 = llvm.shl %arg198, %arg199 overflow : i32 + %1 = llvm.udiv %0, %arg198 : i32 + "llvm.return"(%1) : (i32) -> () +} +] +def t15_after := [llvm| +{ +^0(%arg198 : i32, %arg199 : i32): + %0 = "llvm.mlir.constant"() <{value = 1 : i32}> : () -> i32 + %1 = llvm.shl %0, %arg199 overflow : i32 + "llvm.return"(%1) : (i32) -> () +} +] +theorem t15_proof : t15_before ⊑ t15_after := by + unfold t15_before t15_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN t15 + all_goals (try extract_goal ; sorry) + ---END t15 + + + def sdiv_mul_shl_nsw_before := [llvm| { ^0(%arg193 : i5, %arg194 : i5, %arg195 : i5): @@ -141,6 +242,198 @@ theorem sdiv_mul_shl_nsw_exact_commute1_proof : sdiv_mul_shl_nsw_exact_commute1_ +def udiv_mul_shl_nuw_before := [llvm| +{ +^0(%arg166 : i5, %arg167 : i5, %arg168 : i5): + %0 = llvm.mul %arg166, %arg167 overflow : i5 + %1 = llvm.shl %arg166, %arg168 overflow : i5 + %2 = llvm.udiv %0, %1 : i5 + "llvm.return"(%2) : (i5) -> () +} +] +def udiv_mul_shl_nuw_after := [llvm| +{ +^0(%arg166 : i5, %arg167 : i5, %arg168 : i5): + %0 = llvm.lshr %arg167, %arg168 : i5 + "llvm.return"(%0) : (i5) -> () +} +] +theorem udiv_mul_shl_nuw_proof : udiv_mul_shl_nuw_before ⊑ udiv_mul_shl_nuw_after := by + unfold udiv_mul_shl_nuw_before udiv_mul_shl_nuw_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN udiv_mul_shl_nuw + all_goals (try extract_goal ; sorry) + ---END udiv_mul_shl_nuw + + + +def udiv_mul_shl_nuw_exact_commute1_before := [llvm| +{ +^0(%arg163 : i5, %arg164 : i5, %arg165 : i5): + %0 = llvm.mul %arg164, %arg163 overflow : i5 + %1 = llvm.shl %arg163, %arg165 overflow : i5 + %2 = llvm.udiv %0, %1 : i5 + "llvm.return"(%2) : (i5) -> () +} +] +def udiv_mul_shl_nuw_exact_commute1_after := [llvm| +{ +^0(%arg163 : i5, %arg164 : i5, %arg165 : i5): + %0 = llvm.lshr %arg164, %arg165 : i5 + "llvm.return"(%0) : (i5) -> () +} +] +theorem udiv_mul_shl_nuw_exact_commute1_proof : udiv_mul_shl_nuw_exact_commute1_before ⊑ udiv_mul_shl_nuw_exact_commute1_after := by + unfold udiv_mul_shl_nuw_exact_commute1_before udiv_mul_shl_nuw_exact_commute1_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN udiv_mul_shl_nuw_exact_commute1 + all_goals (try extract_goal ; sorry) + ---END udiv_mul_shl_nuw_exact_commute1 + + + +def udiv_shl_mul_nuw_before := [llvm| +{ +^0(%arg148 : i5, %arg149 : i5, %arg150 : i5): + %0 = llvm.shl %arg148, %arg150 overflow : i5 + %1 = llvm.mul %arg148, %arg149 overflow : i5 + %2 = llvm.udiv %0, %1 : i5 + "llvm.return"(%2) : (i5) -> () +} +] +def udiv_shl_mul_nuw_after := [llvm| +{ +^0(%arg148 : i5, %arg149 : i5, %arg150 : i5): + %0 = "llvm.mlir.constant"() <{value = 1 : i5}> : () -> i5 + %1 = llvm.shl %0, %arg150 overflow : i5 + %2 = llvm.udiv %1, %arg149 : i5 + "llvm.return"(%2) : (i5) -> () +} +] +theorem udiv_shl_mul_nuw_proof : udiv_shl_mul_nuw_before ⊑ udiv_shl_mul_nuw_after := by + unfold udiv_shl_mul_nuw_before udiv_shl_mul_nuw_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN udiv_shl_mul_nuw + all_goals (try extract_goal ; sorry) + ---END udiv_shl_mul_nuw + + + +def udiv_shl_mul_nuw_swap_before := [llvm| +{ +^0(%arg145 : i5, %arg146 : i5, %arg147 : i5): + %0 = llvm.shl %arg145, %arg147 overflow : i5 + %1 = llvm.mul %arg146, %arg145 overflow : i5 + %2 = llvm.udiv %0, %1 : i5 + "llvm.return"(%2) : (i5) -> () +} +] +def udiv_shl_mul_nuw_swap_after := [llvm| +{ +^0(%arg145 : i5, %arg146 : i5, %arg147 : i5): + %0 = "llvm.mlir.constant"() <{value = 1 : i5}> : () -> i5 + %1 = llvm.shl %0, %arg147 overflow : i5 + %2 = llvm.udiv %1, %arg146 : i5 + "llvm.return"(%2) : (i5) -> () +} +] +theorem udiv_shl_mul_nuw_swap_proof : udiv_shl_mul_nuw_swap_before ⊑ udiv_shl_mul_nuw_swap_after := by + unfold udiv_shl_mul_nuw_swap_before udiv_shl_mul_nuw_swap_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN udiv_shl_mul_nuw_swap + all_goals (try extract_goal ; sorry) + ---END udiv_shl_mul_nuw_swap + + + +def udiv_shl_mul_nuw_exact_before := [llvm| +{ +^0(%arg142 : i5, %arg143 : i5, %arg144 : i5): + %0 = llvm.shl %arg142, %arg144 overflow : i5 + %1 = llvm.mul %arg142, %arg143 overflow : i5 + %2 = llvm.udiv %0, %1 : i5 + "llvm.return"(%2) : (i5) -> () +} +] +def udiv_shl_mul_nuw_exact_after := [llvm| +{ +^0(%arg142 : i5, %arg143 : i5, %arg144 : i5): + %0 = "llvm.mlir.constant"() <{value = 1 : i5}> : () -> i5 + %1 = llvm.shl %0, %arg144 overflow : i5 + %2 = llvm.udiv %1, %arg143 : i5 + "llvm.return"(%2) : (i5) -> () +} +] +theorem udiv_shl_mul_nuw_exact_proof : udiv_shl_mul_nuw_exact_before ⊑ udiv_shl_mul_nuw_exact_after := by + unfold udiv_shl_mul_nuw_exact_before udiv_shl_mul_nuw_exact_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN udiv_shl_mul_nuw_exact + all_goals (try extract_goal ; sorry) + ---END udiv_shl_mul_nuw_exact + + + +def udiv_lshr_mul_nuw_before := [llvm| +{ +^0(%arg106 : i8, %arg107 : i8, %arg108 : i8): + %0 = llvm.mul %arg106, %arg107 overflow : i8 + %1 = llvm.lshr %0, %arg108 : i8 + %2 = llvm.udiv %1, %arg106 : i8 + "llvm.return"(%2) : (i8) -> () +} +] +def udiv_lshr_mul_nuw_after := [llvm| +{ +^0(%arg106 : i8, %arg107 : i8, %arg108 : i8): + %0 = llvm.lshr %arg107, %arg108 : i8 + "llvm.return"(%0) : (i8) -> () +} +] +theorem udiv_lshr_mul_nuw_proof : udiv_lshr_mul_nuw_before ⊑ udiv_lshr_mul_nuw_after := by + unfold udiv_lshr_mul_nuw_before udiv_lshr_mul_nuw_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN udiv_lshr_mul_nuw + all_goals (try extract_goal ; sorry) + ---END udiv_lshr_mul_nuw + + + def sdiv_shl_shl_nsw2_nuw_before := [llvm| { ^0(%arg82 : i8, %arg83 : i8, %arg84 : i8): @@ -172,6 +465,37 @@ theorem sdiv_shl_shl_nsw2_nuw_proof : sdiv_shl_shl_nsw2_nuw_before ⊑ sdiv_shl_ +def udiv_shl_shl_nuw_nsw2_before := [llvm| +{ +^0(%arg55 : i8, %arg56 : i8, %arg57 : i8): + %0 = llvm.shl %arg55, %arg57 overflow : i8 + %1 = llvm.shl %arg56, %arg57 overflow : i8 + %2 = llvm.udiv %0, %1 : i8 + "llvm.return"(%2) : (i8) -> () +} +] +def udiv_shl_shl_nuw_nsw2_after := [llvm| +{ +^0(%arg55 : i8, %arg56 : i8, %arg57 : i8): + %0 = llvm.udiv %arg55, %arg56 : i8 + "llvm.return"(%0) : (i8) -> () +} +] +theorem udiv_shl_shl_nuw_nsw2_proof : udiv_shl_shl_nuw_nsw2_before ⊑ udiv_shl_shl_nuw_nsw2_after := by + unfold udiv_shl_shl_nuw_nsw2_before udiv_shl_shl_nuw_nsw2_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN udiv_shl_shl_nuw_nsw2 + all_goals (try extract_goal ; sorry) + ---END udiv_shl_shl_nuw_nsw2 + + + def sdiv_shl_pair_const_before := [llvm| { ^0(%arg47 : i32): @@ -205,6 +529,39 @@ theorem sdiv_shl_pair_const_proof : sdiv_shl_pair_const_before ⊑ sdiv_shl_pair +def udiv_shl_pair_const_before := [llvm| +{ +^0(%arg46 : i32): + %0 = "llvm.mlir.constant"() <{value = 2 : i32}> : () -> i32 + %1 = "llvm.mlir.constant"() <{value = 1 : i32}> : () -> i32 + %2 = llvm.shl %arg46, %0 overflow : i32 + %3 = llvm.shl %arg46, %1 overflow : i32 + %4 = llvm.udiv %2, %3 : i32 + "llvm.return"(%4) : (i32) -> () +} +] +def udiv_shl_pair_const_after := [llvm| +{ +^0(%arg46 : i32): + %0 = "llvm.mlir.constant"() <{value = 2 : i32}> : () -> i32 + "llvm.return"(%0) : (i32) -> () +} +] +theorem udiv_shl_pair_const_proof : udiv_shl_pair_const_before ⊑ udiv_shl_pair_const_after := by + unfold udiv_shl_pair_const_before udiv_shl_pair_const_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN udiv_shl_pair_const + all_goals (try extract_goal ; sorry) + ---END udiv_shl_pair_const + + + def sdiv_shl_pair1_before := [llvm| { ^0(%arg43 : i32, %arg44 : i32, %arg45 : i32): @@ -303,3 +660,102 @@ theorem sdiv_shl_pair3_proof : sdiv_shl_pair3_before ⊑ sdiv_shl_pair3_after := ---END sdiv_shl_pair3 + +def udiv_shl_pair1_before := [llvm| +{ +^0(%arg30 : i32, %arg31 : i32, %arg32 : i32): + %0 = llvm.shl %arg30, %arg31 overflow : i32 + %1 = llvm.shl %arg30, %arg32 overflow : i32 + %2 = llvm.udiv %0, %1 : i32 + "llvm.return"(%2) : (i32) -> () +} +] +def udiv_shl_pair1_after := [llvm| +{ +^0(%arg30 : i32, %arg31 : i32, %arg32 : i32): + %0 = "llvm.mlir.constant"() <{value = 1 : i32}> : () -> i32 + %1 = llvm.shl %0, %arg31 overflow : i32 + %2 = llvm.lshr %1, %arg32 : i32 + "llvm.return"(%2) : (i32) -> () +} +] +theorem udiv_shl_pair1_proof : udiv_shl_pair1_before ⊑ udiv_shl_pair1_after := by + unfold udiv_shl_pair1_before udiv_shl_pair1_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN udiv_shl_pair1 + all_goals (try extract_goal ; sorry) + ---END udiv_shl_pair1 + + + +def udiv_shl_pair2_before := [llvm| +{ +^0(%arg27 : i32, %arg28 : i32, %arg29 : i32): + %0 = llvm.shl %arg27, %arg28 overflow : i32 + %1 = llvm.shl %arg27, %arg29 overflow : i32 + %2 = llvm.udiv %0, %1 : i32 + "llvm.return"(%2) : (i32) -> () +} +] +def udiv_shl_pair2_after := [llvm| +{ +^0(%arg27 : i32, %arg28 : i32, %arg29 : i32): + %0 = "llvm.mlir.constant"() <{value = 1 : i32}> : () -> i32 + %1 = llvm.shl %0, %arg28 overflow : i32 + %2 = llvm.lshr %1, %arg29 : i32 + "llvm.return"(%2) : (i32) -> () +} +] +theorem udiv_shl_pair2_proof : udiv_shl_pair2_before ⊑ udiv_shl_pair2_after := by + unfold udiv_shl_pair2_before udiv_shl_pair2_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN udiv_shl_pair2 + all_goals (try extract_goal ; sorry) + ---END udiv_shl_pair2 + + + +def udiv_shl_pair3_before := [llvm| +{ +^0(%arg24 : i32, %arg25 : i32, %arg26 : i32): + %0 = llvm.shl %arg24, %arg25 overflow : i32 + %1 = llvm.shl %arg24, %arg26 overflow : i32 + %2 = llvm.udiv %0, %1 : i32 + "llvm.return"(%2) : (i32) -> () +} +] +def udiv_shl_pair3_after := [llvm| +{ +^0(%arg24 : i32, %arg25 : i32, %arg26 : i32): + %0 = "llvm.mlir.constant"() <{value = 1 : i32}> : () -> i32 + %1 = llvm.shl %0, %arg25 overflow : i32 + %2 = llvm.lshr %1, %arg26 : i32 + "llvm.return"(%2) : (i32) -> () +} +] +theorem udiv_shl_pair3_proof : udiv_shl_pair3_before ⊑ udiv_shl_pair3_after := by + unfold udiv_shl_pair3_before udiv_shl_pair3_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN udiv_shl_pair3 + all_goals (try extract_goal ; sorry) + ---END udiv_shl_pair3 + + diff --git a/SSA/Projects/InstCombine/tests/LLVM/gexact.lean b/SSA/Projects/InstCombine/tests/LLVM/gexact.lean index 6e78121aa..a821b35a2 100644 --- a/SSA/Projects/InstCombine/tests/LLVM/gexact.lean +++ b/SSA/Projects/InstCombine/tests/LLVM/gexact.lean @@ -107,6 +107,99 @@ theorem sdiv6_proof : sdiv6_before ⊑ sdiv6_after := by +def udiv1_before := [llvm| +{ +^0(%arg32 : i32, %arg33 : i32): + %0 = llvm.udiv %arg32, %arg33 : i32 + %1 = llvm.mul %0, %arg33 : i32 + "llvm.return"(%1) : (i32) -> () +} +] +def udiv1_after := [llvm| +{ +^0(%arg32 : i32, %arg33 : i32): + "llvm.return"(%arg32) : (i32) -> () +} +] +theorem udiv1_proof : udiv1_before ⊑ udiv1_after := by + unfold udiv1_before udiv1_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN udiv1 + all_goals (try extract_goal ; sorry) + ---END udiv1 + + + +def udiv2_before := [llvm| +{ +^0(%arg30 : i32, %arg31 : i32): + %0 = "llvm.mlir.constant"() <{value = 1 : i32}> : () -> i32 + %1 = llvm.shl %0, %arg31 : i32 + %2 = llvm.udiv %arg30, %1 : i32 + "llvm.return"(%2) : (i32) -> () +} +] +def udiv2_after := [llvm| +{ +^0(%arg30 : i32, %arg31 : i32): + %0 = llvm.lshr %arg30, %arg31 : i32 + "llvm.return"(%0) : (i32) -> () +} +] +theorem udiv2_proof : udiv2_before ⊑ udiv2_after := by + unfold udiv2_before udiv2_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN udiv2 + all_goals (try extract_goal ; sorry) + ---END udiv2 + + + +def mul_of_udiv_before := [llvm| +{ +^0(%arg6 : i8): + %0 = "llvm.mlir.constant"() <{value = 12 : i8}> : () -> i8 + %1 = "llvm.mlir.constant"() <{value = 6 : i8}> : () -> i8 + %2 = llvm.udiv %arg6, %0 : i8 + %3 = llvm.mul %2, %1 : i8 + "llvm.return"(%3) : (i8) -> () +} +] +def mul_of_udiv_after := [llvm| +{ +^0(%arg6 : i8): + %0 = "llvm.mlir.constant"() <{value = 1 : i8}> : () -> i8 + %1 = llvm.lshr %arg6, %0 : i8 + "llvm.return"(%1) : (i8) -> () +} +] +theorem mul_of_udiv_proof : mul_of_udiv_before ⊑ mul_of_udiv_after := by + unfold mul_of_udiv_before mul_of_udiv_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN mul_of_udiv + all_goals (try extract_goal ; sorry) + ---END mul_of_udiv + + + def mul_of_sdiv_before := [llvm| { ^0(%arg5 : i8): @@ -142,6 +235,41 @@ theorem mul_of_sdiv_proof : mul_of_sdiv_before ⊑ mul_of_sdiv_after := by +def mul_of_udiv_fail_bad_remainder_before := [llvm| +{ +^0(%arg2 : i8): + %0 = "llvm.mlir.constant"() <{value = 11 : i8}> : () -> i8 + %1 = "llvm.mlir.constant"() <{value = 6 : i8}> : () -> i8 + %2 = llvm.udiv %arg2, %0 : i8 + %3 = llvm.mul %2, %1 : i8 + "llvm.return"(%3) : (i8) -> () +} +] +def mul_of_udiv_fail_bad_remainder_after := [llvm| +{ +^0(%arg2 : i8): + %0 = "llvm.mlir.constant"() <{value = 11 : i8}> : () -> i8 + %1 = "llvm.mlir.constant"() <{value = 6 : i8}> : () -> i8 + %2 = llvm.udiv %arg2, %0 : i8 + %3 = llvm.mul %2, %1 overflow : i8 + "llvm.return"(%3) : (i8) -> () +} +] +theorem mul_of_udiv_fail_bad_remainder_proof : mul_of_udiv_fail_bad_remainder_before ⊑ mul_of_udiv_fail_bad_remainder_after := by + unfold mul_of_udiv_fail_bad_remainder_before mul_of_udiv_fail_bad_remainder_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN mul_of_udiv_fail_bad_remainder + all_goals (try extract_goal ; sorry) + ---END mul_of_udiv_fail_bad_remainder + + + def mul_of_sdiv_fail_ub_before := [llvm| { ^0(%arg1 : i8): diff --git a/SSA/Projects/InstCombine/tests/LLVM/gfreehinversion.lean b/SSA/Projects/InstCombine/tests/LLVM/gfreehinversion.lean index 3d6375adc..44d3e6cb0 100644 --- a/SSA/Projects/InstCombine/tests/LLVM/gfreehinversion.lean +++ b/SSA/Projects/InstCombine/tests/LLVM/gfreehinversion.lean @@ -13,6 +13,400 @@ set_option linter.unreachableTactic false set_option linter.unusedTactic false section gfreehinversion_statements +def xor_1_before := [llvm| +{ +^0(%arg137 : i8, %arg138 : i1, %arg139 : i8, %arg140 : i8): + %0 = "llvm.mlir.constant"() <{value = -1 : i8}> : () -> i8 + %1 = "llvm.mlir.constant"() <{value = 123 : i8}> : () -> i8 + %2 = llvm.xor %arg139, %0 : i8 + %3 = llvm.xor %arg140, %1 : i8 + %4 = "llvm.select"(%arg138, %2, %3) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i8, i8) -> i8 + %5 = llvm.xor %4, %arg137 : i8 + %6 = llvm.xor %5, %0 : i8 + "llvm.return"(%6) : (i8) -> () +} +] +def xor_1_after := [llvm| +{ +^0(%arg137 : i8, %arg138 : i1, %arg139 : i8, %arg140 : i8): + %0 = "llvm.mlir.constant"() <{value = -124 : i8}> : () -> i8 + %1 = llvm.xor %arg140, %0 : i8 + %2 = "llvm.select"(%arg138, %arg139, %1) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i8, i8) -> i8 + %3 = llvm.xor %2, %arg137 : i8 + "llvm.return"(%3) : (i8) -> () +} +] +theorem xor_1_proof : xor_1_before ⊑ xor_1_after := by + unfold xor_1_before xor_1_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN xor_1 + all_goals (try extract_goal ; sorry) + ---END xor_1 + + + +def xor_2_before := [llvm| +{ +^0(%arg133 : i8, %arg134 : i1, %arg135 : i8, %arg136 : i8): + %0 = "llvm.mlir.constant"() <{value = -1 : i8}> : () -> i8 + %1 = "llvm.mlir.constant"() <{value = 123 : i8}> : () -> i8 + %2 = llvm.xor %arg135, %0 : i8 + %3 = llvm.xor %arg136, %1 : i8 + %4 = "llvm.select"(%arg134, %2, %3) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i8, i8) -> i8 + %5 = llvm.xor %arg133, %4 : i8 + %6 = llvm.xor %5, %0 : i8 + "llvm.return"(%6) : (i8) -> () +} +] +def xor_2_after := [llvm| +{ +^0(%arg133 : i8, %arg134 : i1, %arg135 : i8, %arg136 : i8): + %0 = "llvm.mlir.constant"() <{value = -124 : i8}> : () -> i8 + %1 = llvm.xor %arg136, %0 : i8 + %2 = "llvm.select"(%arg134, %arg135, %1) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i8, i8) -> i8 + %3 = llvm.xor %arg133, %2 : i8 + "llvm.return"(%3) : (i8) -> () +} +] +theorem xor_2_proof : xor_2_before ⊑ xor_2_after := by + unfold xor_2_before xor_2_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN xor_2 + all_goals (try extract_goal ; sorry) + ---END xor_2 + + + +def add_1_before := [llvm| +{ +^0(%arg125 : i8, %arg126 : i1, %arg127 : i8, %arg128 : i8): + %0 = "llvm.mlir.constant"() <{value = -1 : i8}> : () -> i8 + %1 = "llvm.mlir.constant"() <{value = 123 : i8}> : () -> i8 + %2 = llvm.xor %arg127, %0 : i8 + %3 = llvm.xor %arg128, %1 : i8 + %4 = "llvm.select"(%arg126, %2, %3) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i8, i8) -> i8 + %5 = llvm.add %4, %arg125 : i8 + %6 = llvm.xor %5, %0 : i8 + "llvm.return"(%6) : (i8) -> () +} +] +def add_1_after := [llvm| +{ +^0(%arg125 : i8, %arg126 : i1, %arg127 : i8, %arg128 : i8): + %0 = "llvm.mlir.constant"() <{value = -124 : i8}> : () -> i8 + %1 = llvm.xor %arg128, %0 : i8 + %2 = "llvm.select"(%arg126, %arg127, %1) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i8, i8) -> i8 + %3 = llvm.sub %2, %arg125 : i8 + "llvm.return"(%3) : (i8) -> () +} +] +theorem add_1_proof : add_1_before ⊑ add_1_after := by + unfold add_1_before add_1_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN add_1 + all_goals (try extract_goal ; sorry) + ---END add_1 + + + +def add_2_before := [llvm| +{ +^0(%arg121 : i8, %arg122 : i1, %arg123 : i8, %arg124 : i8): + %0 = "llvm.mlir.constant"() <{value = -1 : i8}> : () -> i8 + %1 = "llvm.mlir.constant"() <{value = 123 : i8}> : () -> i8 + %2 = llvm.xor %arg123, %0 : i8 + %3 = llvm.xor %arg124, %1 : i8 + %4 = "llvm.select"(%arg122, %2, %3) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i8, i8) -> i8 + %5 = llvm.add %arg121, %4 : i8 + %6 = llvm.xor %5, %0 : i8 + "llvm.return"(%6) : (i8) -> () +} +] +def add_2_after := [llvm| +{ +^0(%arg121 : i8, %arg122 : i1, %arg123 : i8, %arg124 : i8): + %0 = "llvm.mlir.constant"() <{value = -124 : i8}> : () -> i8 + %1 = llvm.xor %arg124, %0 : i8 + %2 = "llvm.select"(%arg122, %arg123, %1) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i8, i8) -> i8 + %3 = llvm.sub %2, %arg121 : i8 + "llvm.return"(%3) : (i8) -> () +} +] +theorem add_2_proof : add_2_before ⊑ add_2_after := by + unfold add_2_before add_2_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN add_2 + all_goals (try extract_goal ; sorry) + ---END add_2 + + + +def sub_1_before := [llvm| +{ +^0(%arg113 : i8, %arg114 : i1, %arg115 : i8, %arg116 : i8): + %0 = "llvm.mlir.constant"() <{value = -1 : i8}> : () -> i8 + %1 = "llvm.mlir.constant"() <{value = 123 : i8}> : () -> i8 + %2 = llvm.xor %arg115, %0 : i8 + %3 = llvm.xor %arg116, %1 : i8 + %4 = "llvm.select"(%arg114, %2, %3) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i8, i8) -> i8 + %5 = llvm.sub %4, %arg113 : i8 + %6 = llvm.xor %5, %0 : i8 + "llvm.return"(%6) : (i8) -> () +} +] +def sub_1_after := [llvm| +{ +^0(%arg113 : i8, %arg114 : i1, %arg115 : i8, %arg116 : i8): + %0 = "llvm.mlir.constant"() <{value = -124 : i8}> : () -> i8 + %1 = llvm.xor %arg116, %0 : i8 + %2 = "llvm.select"(%arg114, %arg115, %1) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i8, i8) -> i8 + %3 = llvm.add %2, %arg113 : i8 + "llvm.return"(%3) : (i8) -> () +} +] +theorem sub_1_proof : sub_1_before ⊑ sub_1_after := by + unfold sub_1_before sub_1_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN sub_1 + all_goals (try extract_goal ; sorry) + ---END sub_1 + + + +def sub_2_before := [llvm| +{ +^0(%arg109 : i8, %arg110 : i1, %arg111 : i8, %arg112 : i8): + %0 = "llvm.mlir.constant"() <{value = -1 : i8}> : () -> i8 + %1 = "llvm.mlir.constant"() <{value = 123 : i8}> : () -> i8 + %2 = llvm.xor %arg111, %0 : i8 + %3 = llvm.xor %arg112, %1 : i8 + %4 = "llvm.select"(%arg110, %2, %3) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i8, i8) -> i8 + %5 = llvm.sub %arg109, %4 : i8 + %6 = llvm.xor %5, %0 : i8 + "llvm.return"(%6) : (i8) -> () +} +] +def sub_2_after := [llvm| +{ +^0(%arg109 : i8, %arg110 : i1, %arg111 : i8, %arg112 : i8): + %0 = "llvm.mlir.constant"() <{value = -124 : i8}> : () -> i8 + %1 = "llvm.mlir.constant"() <{value = -2 : i8}> : () -> i8 + %2 = llvm.xor %arg112, %0 : i8 + %3 = "llvm.select"(%arg110, %arg111, %2) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i8, i8) -> i8 + %4 = llvm.add %3, %arg109 : i8 + %5 = llvm.sub %1, %4 : i8 + "llvm.return"(%5) : (i8) -> () +} +] +theorem sub_2_proof : sub_2_before ⊑ sub_2_after := by + unfold sub_2_before sub_2_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN sub_2 + all_goals (try extract_goal ; sorry) + ---END sub_2 + + + +def sub_3_before := [llvm| +{ +^0(%arg105 : i128, %arg106 : i1, %arg107 : i128, %arg108 : i128): + %0 = "llvm.mlir.constant"() <{value = -1 : i128}> : () -> i128 + %1 = "llvm.mlir.constant"() <{value = 123 : i128}> : () -> i128 + %2 = llvm.xor %arg107, %0 : i128 + %3 = llvm.xor %arg108, %1 : i128 + %4 = "llvm.select"(%arg106, %2, %3) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i128, i128) -> i128 + %5 = llvm.sub %arg105, %4 : i128 + %6 = llvm.xor %5, %0 : i128 + "llvm.return"(%6) : (i128) -> () +} +] +def sub_3_after := [llvm| +{ +^0(%arg105 : i128, %arg106 : i1, %arg107 : i128, %arg108 : i128): + %0 = "llvm.mlir.constant"() <{value = -124 : i128}> : () -> i128 + %1 = "llvm.mlir.constant"() <{value = -2 : i128}> : () -> i128 + %2 = llvm.xor %arg108, %0 : i128 + %3 = "llvm.select"(%arg106, %arg107, %2) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i128, i128) -> i128 + %4 = llvm.add %3, %arg105 : i128 + %5 = llvm.sub %1, %4 : i128 + "llvm.return"(%5) : (i128) -> () +} +] +theorem sub_3_proof : sub_3_before ⊑ sub_3_after := by + unfold sub_3_before sub_3_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN sub_3 + all_goals (try extract_goal ; sorry) + ---END sub_3 + + + +def ashr_1_before := [llvm| +{ +^0(%arg97 : i8, %arg98 : i1, %arg99 : i8, %arg100 : i8): + %0 = "llvm.mlir.constant"() <{value = -1 : i8}> : () -> i8 + %1 = "llvm.mlir.constant"() <{value = 123 : i8}> : () -> i8 + %2 = llvm.xor %arg99, %0 : i8 + %3 = llvm.xor %arg100, %1 : i8 + %4 = "llvm.select"(%arg98, %2, %3) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i8, i8) -> i8 + %5 = llvm.ashr %4, %arg97 : i8 + %6 = llvm.xor %5, %0 : i8 + "llvm.return"(%6) : (i8) -> () +} +] +def ashr_1_after := [llvm| +{ +^0(%arg97 : i8, %arg98 : i1, %arg99 : i8, %arg100 : i8): + %0 = "llvm.mlir.constant"() <{value = -124 : i8}> : () -> i8 + %1 = llvm.xor %arg100, %0 : i8 + %2 = "llvm.select"(%arg98, %arg99, %1) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i8, i8) -> i8 + %3 = llvm.ashr %2, %arg97 : i8 + "llvm.return"(%3) : (i8) -> () +} +] +theorem ashr_1_proof : ashr_1_before ⊑ ashr_1_after := by + unfold ashr_1_before ashr_1_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN ashr_1 + all_goals (try extract_goal ; sorry) + ---END ashr_1 + + + +def select_1_before := [llvm| +{ +^0(%arg87 : i1, %arg88 : i8, %arg89 : i8, %arg90 : i1, %arg91 : i8, %arg92 : i8): + %0 = "llvm.mlir.constant"() <{value = -1 : i8}> : () -> i8 + %1 = "llvm.mlir.constant"() <{value = 123 : i8}> : () -> i8 + %2 = "llvm.mlir.constant"() <{value = 45 : i8}> : () -> i8 + %3 = llvm.xor %arg91, %0 : i8 + %4 = llvm.xor %arg92, %1 : i8 + %5 = "llvm.select"(%arg90, %3, %4) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i8, i8) -> i8 + %6 = llvm.xor %arg88, %2 : i8 + %7 = llvm.xor %arg89, %6 : i8 + %8 = "llvm.select"(%arg87, %7, %5) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i8, i8) -> i8 + %9 = llvm.xor %8, %0 : i8 + "llvm.return"(%9) : (i8) -> () +} +] +def select_1_after := [llvm| +{ +^0(%arg87 : i1, %arg88 : i8, %arg89 : i8, %arg90 : i1, %arg91 : i8, %arg92 : i8): + %0 = "llvm.mlir.constant"() <{value = -46 : i8}> : () -> i8 + %1 = "llvm.mlir.constant"() <{value = -124 : i8}> : () -> i8 + %2 = llvm.xor %arg88, %arg89 : i8 + %3 = llvm.xor %2, %0 : i8 + %4 = llvm.xor %arg92, %1 : i8 + %5 = "llvm.select"(%arg90, %arg91, %4) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i8, i8) -> i8 + %6 = "llvm.select"(%arg87, %3, %5) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i8, i8) -> i8 + "llvm.return"(%6) : (i8) -> () +} +] +theorem select_1_proof : select_1_before ⊑ select_1_after := by + unfold select_1_before select_1_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN select_1 + all_goals (try extract_goal ; sorry) + ---END select_1 + + + +def select_2_before := [llvm| +{ +^0(%arg82 : i1, %arg83 : i8, %arg84 : i1, %arg85 : i8, %arg86 : i8): + %0 = "llvm.mlir.constant"() <{value = -1 : i8}> : () -> i8 + %1 = "llvm.mlir.constant"() <{value = 123 : i8}> : () -> i8 + %2 = "llvm.mlir.constant"() <{value = 45 : i8}> : () -> i8 + %3 = llvm.xor %arg85, %0 : i8 + %4 = llvm.xor %arg86, %1 : i8 + %5 = "llvm.select"(%arg84, %3, %4) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i8, i8) -> i8 + %6 = llvm.xor %arg83, %2 : i8 + %7 = "llvm.select"(%arg82, %5, %6) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i8, i8) -> i8 + %8 = llvm.xor %7, %0 : i8 + "llvm.return"(%8) : (i8) -> () +} +] +def select_2_after := [llvm| +{ +^0(%arg82 : i1, %arg83 : i8, %arg84 : i1, %arg85 : i8, %arg86 : i8): + %0 = "llvm.mlir.constant"() <{value = -124 : i8}> : () -> i8 + %1 = "llvm.mlir.constant"() <{value = -46 : i8}> : () -> i8 + %2 = llvm.xor %arg86, %0 : i8 + %3 = "llvm.select"(%arg84, %arg85, %2) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i8, i8) -> i8 + %4 = llvm.xor %arg83, %1 : i8 + %5 = "llvm.select"(%arg82, %3, %4) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i8, i8) -> i8 + "llvm.return"(%5) : (i8) -> () +} +] +theorem select_2_proof : select_2_before ⊑ select_2_after := by + unfold select_2_before select_2_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN select_2 + all_goals (try extract_goal ; sorry) + ---END select_2 + + + def lshr_not_nneg2_before := [llvm| { ^0(%arg20 : i8): diff --git a/SSA/Projects/InstCombine/tests/LLVM/glogicalhselecthinseltpoison.lean b/SSA/Projects/InstCombine/tests/LLVM/glogicalhselecthinseltpoison.lean new file mode 100644 index 000000000..3fdb77ae0 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/LLVM/glogicalhselecthinseltpoison.lean @@ -0,0 +1,237 @@ + +import SSA.Projects.InstCombine.LLVM.PrettyEDSL +import SSA.Projects.InstCombine.TacticAuto +import SSA.Projects.InstCombine.LLVM.Semantics +open LLVM +open BitVec + +open MLIR AST +open Ctxt (Var) + +set_option linter.deprecated false +set_option linter.unreachableTactic false +set_option linter.unusedTactic false +section glogicalhselecthinseltpoison_statements + +def bools_before := [llvm| +{ +^0(%arg51 : i1, %arg52 : i1, %arg53 : i1): + %0 = "llvm.mlir.constant"() <{value = true}> : () -> i1 + %1 = llvm.xor %arg53, %0 : i1 + %2 = llvm.and %1, %arg51 : i1 + %3 = llvm.and %arg53, %arg52 : i1 + %4 = llvm.or %2, %3 : i1 + "llvm.return"(%4) : (i1) -> () +} +] +def bools_after := [llvm| +{ +^0(%arg51 : i1, %arg52 : i1, %arg53 : i1): + %0 = "llvm.select"(%arg53, %arg52, %arg51) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i1, i1) -> i1 + "llvm.return"(%0) : (i1) -> () +} +] +theorem bools_proof : bools_before ⊑ bools_after := by + unfold bools_before bools_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN bools + all_goals (try extract_goal ; sorry) + ---END bools + + + +def bools_logical_before := [llvm| +{ +^0(%arg48 : i1, %arg49 : i1, %arg50 : i1): + %0 = "llvm.mlir.constant"() <{value = true}> : () -> i1 + %1 = "llvm.mlir.constant"() <{value = false}> : () -> i1 + %2 = llvm.xor %arg50, %0 : i1 + %3 = "llvm.select"(%2, %arg48, %1) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i1, i1) -> i1 + %4 = "llvm.select"(%arg50, %arg49, %1) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i1, i1) -> i1 + %5 = "llvm.select"(%3, %0, %4) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i1, i1) -> i1 + "llvm.return"(%5) : (i1) -> () +} +] +def bools_logical_after := [llvm| +{ +^0(%arg48 : i1, %arg49 : i1, %arg50 : i1): + %0 = "llvm.select"(%arg50, %arg49, %arg48) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i1, i1) -> i1 + "llvm.return"(%0) : (i1) -> () +} +] +theorem bools_logical_proof : bools_logical_before ⊑ bools_logical_after := by + unfold bools_logical_before bools_logical_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN bools_logical + all_goals (try extract_goal ; sorry) + ---END bools_logical + + + +def bools_multi_uses1_before := [llvm| +{ +^0(%arg45 : i1, %arg46 : i1, %arg47 : i1): + %0 = "llvm.mlir.constant"() <{value = true}> : () -> i1 + %1 = llvm.xor %arg47, %0 : i1 + %2 = llvm.and %1, %arg45 : i1 + %3 = llvm.and %arg47, %arg46 : i1 + %4 = llvm.or %2, %3 : i1 + %5 = llvm.xor %4, %2 : i1 + "llvm.return"(%5) : (i1) -> () +} +] +def bools_multi_uses1_after := [llvm| +{ +^0(%arg45 : i1, %arg46 : i1, %arg47 : i1): + %0 = "llvm.mlir.constant"() <{value = true}> : () -> i1 + %1 = llvm.xor %arg47, %0 : i1 + %2 = llvm.and %arg45, %1 : i1 + %3 = "llvm.select"(%arg47, %arg46, %arg45) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i1, i1) -> i1 + %4 = llvm.xor %3, %2 : i1 + "llvm.return"(%4) : (i1) -> () +} +] +theorem bools_multi_uses1_proof : bools_multi_uses1_before ⊑ bools_multi_uses1_after := by + unfold bools_multi_uses1_before bools_multi_uses1_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN bools_multi_uses1 + all_goals (try extract_goal ; sorry) + ---END bools_multi_uses1 + + + +def bools_multi_uses1_logical_before := [llvm| +{ +^0(%arg42 : i1, %arg43 : i1, %arg44 : i1): + %0 = "llvm.mlir.constant"() <{value = true}> : () -> i1 + %1 = "llvm.mlir.constant"() <{value = false}> : () -> i1 + %2 = llvm.xor %arg44, %0 : i1 + %3 = "llvm.select"(%2, %arg42, %1) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i1, i1) -> i1 + %4 = "llvm.select"(%arg44, %arg43, %1) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i1, i1) -> i1 + %5 = "llvm.select"(%3, %0, %4) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i1, i1) -> i1 + %6 = llvm.xor %5, %3 : i1 + "llvm.return"(%6) : (i1) -> () +} +] +def bools_multi_uses1_logical_after := [llvm| +{ +^0(%arg42 : i1, %arg43 : i1, %arg44 : i1): + %0 = "llvm.mlir.constant"() <{value = true}> : () -> i1 + %1 = "llvm.mlir.constant"() <{value = false}> : () -> i1 + %2 = llvm.xor %arg44, %0 : i1 + %3 = "llvm.select"(%2, %arg42, %1) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i1, i1) -> i1 + %4 = "llvm.select"(%arg44, %arg43, %arg42) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i1, i1) -> i1 + %5 = llvm.xor %4, %3 : i1 + "llvm.return"(%5) : (i1) -> () +} +] +theorem bools_multi_uses1_logical_proof : bools_multi_uses1_logical_before ⊑ bools_multi_uses1_logical_after := by + unfold bools_multi_uses1_logical_before bools_multi_uses1_logical_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN bools_multi_uses1_logical + all_goals (try extract_goal ; sorry) + ---END bools_multi_uses1_logical + + + +def bools_multi_uses2_before := [llvm| +{ +^0(%arg39 : i1, %arg40 : i1, %arg41 : i1): + %0 = "llvm.mlir.constant"() <{value = true}> : () -> i1 + %1 = llvm.xor %arg41, %0 : i1 + %2 = llvm.and %1, %arg39 : i1 + %3 = llvm.and %arg41, %arg40 : i1 + %4 = llvm.or %2, %3 : i1 + %5 = llvm.add %2, %3 : i1 + %6 = llvm.and %4, %5 : i1 + "llvm.return"(%6) : (i1) -> () +} +] +def bools_multi_uses2_after := [llvm| +{ +^0(%arg39 : i1, %arg40 : i1, %arg41 : i1): + %0 = "llvm.select"(%arg41, %arg40, %arg39) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i1, i1) -> i1 + "llvm.return"(%0) : (i1) -> () +} +] +theorem bools_multi_uses2_proof : bools_multi_uses2_before ⊑ bools_multi_uses2_after := by + unfold bools_multi_uses2_before bools_multi_uses2_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN bools_multi_uses2 + all_goals (try extract_goal ; sorry) + ---END bools_multi_uses2 + + + +def bools_multi_uses2_logical_before := [llvm| +{ +^0(%arg36 : i1, %arg37 : i1, %arg38 : i1): + %0 = "llvm.mlir.constant"() <{value = true}> : () -> i1 + %1 = "llvm.mlir.constant"() <{value = false}> : () -> i1 + %2 = llvm.xor %arg38, %0 : i1 + %3 = "llvm.select"(%2, %arg36, %1) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i1, i1) -> i1 + %4 = "llvm.select"(%arg38, %arg37, %1) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i1, i1) -> i1 + %5 = "llvm.select"(%3, %0, %4) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i1, i1) -> i1 + %6 = llvm.add %3, %4 : i1 + %7 = "llvm.select"(%5, %6, %1) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i1, i1) -> i1 + "llvm.return"(%7) : (i1) -> () +} +] +def bools_multi_uses2_logical_after := [llvm| +{ +^0(%arg36 : i1, %arg37 : i1, %arg38 : i1): + %0 = "llvm.mlir.constant"() <{value = true}> : () -> i1 + %1 = "llvm.mlir.constant"() <{value = false}> : () -> i1 + %2 = llvm.xor %arg38, %0 : i1 + %3 = "llvm.select"(%2, %arg36, %1) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i1, i1) -> i1 + %4 = "llvm.select"(%arg38, %arg37, %1) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i1, i1) -> i1 + %5 = "llvm.select"(%arg38, %arg37, %arg36) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i1, i1) -> i1 + %6 = llvm.xor %3, %4 : i1 + %7 = "llvm.select"(%5, %6, %1) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i1, i1) -> i1 + "llvm.return"(%7) : (i1) -> () +} +] +theorem bools_multi_uses2_logical_proof : bools_multi_uses2_logical_before ⊑ bools_multi_uses2_logical_after := by + unfold bools_multi_uses2_logical_before bools_multi_uses2_logical_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN bools_multi_uses2_logical + all_goals (try extract_goal ; sorry) + ---END bools_multi_uses2_logical + + diff --git a/SSA/Projects/InstCombine/tests/LLVM/gmulhpow2.lean b/SSA/Projects/InstCombine/tests/LLVM/gmulhpow2.lean index 7e69f532f..f6b683f97 100644 --- a/SSA/Projects/InstCombine/tests/LLVM/gmulhpow2.lean +++ b/SSA/Projects/InstCombine/tests/LLVM/gmulhpow2.lean @@ -13,6 +13,148 @@ set_option linter.unreachableTactic false set_option linter.unusedTactic false section gmulhpow2_statements +def mul_selectp2_x_before := [llvm| +{ +^0(%arg22 : i8, %arg23 : i1): + %0 = "llvm.mlir.constant"() <{value = 2 : i8}> : () -> i8 + %1 = "llvm.mlir.constant"() <{value = 4 : i8}> : () -> i8 + %2 = "llvm.select"(%arg23, %0, %1) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i8, i8) -> i8 + %3 = llvm.mul %2, %arg22 : i8 + "llvm.return"(%3) : (i8) -> () +} +] +def mul_selectp2_x_after := [llvm| +{ +^0(%arg22 : i8, %arg23 : i1): + %0 = "llvm.mlir.constant"() <{value = 1 : i8}> : () -> i8 + %1 = "llvm.mlir.constant"() <{value = 2 : i8}> : () -> i8 + %2 = "llvm.select"(%arg23, %0, %1) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i8, i8) -> i8 + %3 = llvm.shl %arg22, %2 : i8 + "llvm.return"(%3) : (i8) -> () +} +] +theorem mul_selectp2_x_proof : mul_selectp2_x_before ⊑ mul_selectp2_x_after := by + unfold mul_selectp2_x_before mul_selectp2_x_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN mul_selectp2_x + all_goals (try extract_goal ; sorry) + ---END mul_selectp2_x + + + +def mul_selectp2_x_propegate_nuw_before := [llvm| +{ +^0(%arg20 : i8, %arg21 : i1): + %0 = "llvm.mlir.constant"() <{value = 2 : i8}> : () -> i8 + %1 = "llvm.mlir.constant"() <{value = 4 : i8}> : () -> i8 + %2 = "llvm.select"(%arg21, %0, %1) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i8, i8) -> i8 + %3 = llvm.mul %2, %arg20 overflow : i8 + "llvm.return"(%3) : (i8) -> () +} +] +def mul_selectp2_x_propegate_nuw_after := [llvm| +{ +^0(%arg20 : i8, %arg21 : i1): + %0 = "llvm.mlir.constant"() <{value = 1 : i8}> : () -> i8 + %1 = "llvm.mlir.constant"() <{value = 2 : i8}> : () -> i8 + %2 = "llvm.select"(%arg21, %0, %1) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i8, i8) -> i8 + %3 = llvm.shl %arg20, %2 overflow : i8 + "llvm.return"(%3) : (i8) -> () +} +] +theorem mul_selectp2_x_propegate_nuw_proof : mul_selectp2_x_propegate_nuw_before ⊑ mul_selectp2_x_propegate_nuw_after := by + unfold mul_selectp2_x_propegate_nuw_before mul_selectp2_x_propegate_nuw_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN mul_selectp2_x_propegate_nuw + all_goals (try extract_goal ; sorry) + ---END mul_selectp2_x_propegate_nuw + + + +def mul_selectp2_x_non_const_before := [llvm| +{ +^0(%arg15 : i8, %arg16 : i1, %arg17 : i8): + %0 = "llvm.mlir.constant"() <{value = 1 : i8}> : () -> i8 + %1 = "llvm.mlir.constant"() <{value = 2 : i8}> : () -> i8 + %2 = llvm.shl %0, %arg17 : i8 + %3 = "llvm.select"(%arg16, %1, %2) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i8, i8) -> i8 + %4 = llvm.mul %3, %arg15 : i8 + "llvm.return"(%4) : (i8) -> () +} +] +def mul_selectp2_x_non_const_after := [llvm| +{ +^0(%arg15 : i8, %arg16 : i1, %arg17 : i8): + %0 = "llvm.mlir.constant"() <{value = 1 : i8}> : () -> i8 + %1 = "llvm.select"(%arg16, %0, %arg17) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i8, i8) -> i8 + %2 = llvm.shl %arg15, %1 : i8 + "llvm.return"(%2) : (i8) -> () +} +] +theorem mul_selectp2_x_non_const_proof : mul_selectp2_x_non_const_before ⊑ mul_selectp2_x_non_const_after := by + unfold mul_selectp2_x_non_const_before mul_selectp2_x_non_const_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN mul_selectp2_x_non_const + all_goals (try extract_goal ; sorry) + ---END mul_selectp2_x_non_const + + + +def mul_x_selectp2_before := [llvm| +{ +^0(%arg10 : i8, %arg11 : i1): + %0 = "llvm.mlir.constant"() <{value = 8 : i8}> : () -> i8 + %1 = "llvm.mlir.constant"() <{value = 1 : i8}> : () -> i8 + %2 = llvm.mul %arg10, %arg10 : i8 + %3 = "llvm.select"(%arg11, %0, %1) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i8, i8) -> i8 + %4 = llvm.mul %2, %3 : i8 + "llvm.return"(%4) : (i8) -> () +} +] +def mul_x_selectp2_after := [llvm| +{ +^0(%arg10 : i8, %arg11 : i1): + %0 = "llvm.mlir.constant"() <{value = 3 : i8}> : () -> i8 + %1 = "llvm.mlir.constant"() <{value = 0 : i8}> : () -> i8 + %2 = llvm.mul %arg10, %arg10 : i8 + %3 = "llvm.select"(%arg11, %0, %1) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i8, i8) -> i8 + %4 = llvm.shl %2, %3 : i8 + "llvm.return"(%4) : (i8) -> () +} +] +theorem mul_x_selectp2_proof : mul_x_selectp2_before ⊑ mul_x_selectp2_after := by + unfold mul_x_selectp2_before mul_x_selectp2_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN mul_x_selectp2 + all_goals (try extract_goal ; sorry) + ---END mul_x_selectp2 + + + def shl_add_log_may_cause_poison_pr62175_with_nuw_before := [llvm| { ^0(%arg2 : i8, %arg3 : i8): diff --git a/SSA/Projects/InstCombine/tests/LLVM/gnestedhselect.lean b/SSA/Projects/InstCombine/tests/LLVM/gnestedhselect.lean new file mode 100644 index 000000000..e1d007bf5 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/LLVM/gnestedhselect.lean @@ -0,0 +1,370 @@ + +import SSA.Projects.InstCombine.LLVM.PrettyEDSL +import SSA.Projects.InstCombine.TacticAuto +import SSA.Projects.InstCombine.LLVM.Semantics +open LLVM +open BitVec + +open MLIR AST +open Ctxt (Var) + +set_option linter.deprecated false +set_option linter.unreachableTactic false +set_option linter.unusedTactic false +section gnestedhselect_statements + +def andcond_before := [llvm| +{ +^0(%arg169 : i1, %arg170 : i1, %arg171 : i8, %arg172 : i8, %arg173 : i8): + %0 = "llvm.mlir.constant"() <{value = false}> : () -> i1 + %1 = "llvm.select"(%arg169, %arg170, %0) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i1, i1) -> i1 + %2 = "llvm.select"(%arg169, %arg171, %arg172) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i8, i8) -> i8 + %3 = "llvm.select"(%1, %arg173, %2) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i8, i8) -> i8 + "llvm.return"(%3) : (i8) -> () +} +] +def andcond_after := [llvm| +{ +^0(%arg169 : i1, %arg170 : i1, %arg171 : i8, %arg172 : i8, %arg173 : i8): + %0 = "llvm.select"(%arg170, %arg173, %arg171) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i8, i8) -> i8 + %1 = "llvm.select"(%arg169, %0, %arg172) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i8, i8) -> i8 + "llvm.return"(%1) : (i8) -> () +} +] +theorem andcond_proof : andcond_before ⊑ andcond_after := by + unfold andcond_before andcond_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN andcond + all_goals (try extract_goal ; sorry) + ---END andcond + + + +def orcond_before := [llvm| +{ +^0(%arg164 : i1, %arg165 : i1, %arg166 : i8, %arg167 : i8, %arg168 : i8): + %0 = "llvm.mlir.constant"() <{value = true}> : () -> i1 + %1 = "llvm.select"(%arg164, %0, %arg165) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i1, i1) -> i1 + %2 = "llvm.select"(%arg164, %arg166, %arg167) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i8, i8) -> i8 + %3 = "llvm.select"(%1, %2, %arg168) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i8, i8) -> i8 + "llvm.return"(%3) : (i8) -> () +} +] +def orcond_after := [llvm| +{ +^0(%arg164 : i1, %arg165 : i1, %arg166 : i8, %arg167 : i8, %arg168 : i8): + %0 = "llvm.select"(%arg165, %arg167, %arg168) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i8, i8) -> i8 + %1 = "llvm.select"(%arg164, %arg166, %0) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i8, i8) -> i8 + "llvm.return"(%1) : (i8) -> () +} +] +theorem orcond_proof : orcond_before ⊑ orcond_after := by + unfold orcond_before orcond_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN orcond + all_goals (try extract_goal ; sorry) + ---END orcond + + + +def andcond.001.inv.outer.cond_before := [llvm| +{ +^0(%arg75 : i1, %arg76 : i1, %arg77 : i1, %arg78 : i1, %arg79 : i1): + %0 = "llvm.mlir.constant"() <{value = false}> : () -> i1 + %1 = "llvm.mlir.constant"() <{value = true}> : () -> i1 + %2 = "llvm.select"(%arg75, %arg76, %0) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i1, i1) -> i1 + %3 = "llvm.select"(%arg75, %arg77, %arg78) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i1, i1) -> i1 + %4 = llvm.xor %2, %1 : i1 + %5 = "llvm.select"(%4, %3, %0) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i1, i1) -> i1 + "llvm.return"(%5) : (i1) -> () +} +] +def andcond.001.inv.outer.cond_after := [llvm| +{ +^0(%arg75 : i1, %arg76 : i1, %arg77 : i1, %arg78 : i1, %arg79 : i1): + %0 = "llvm.mlir.constant"() <{value = true}> : () -> i1 + %1 = "llvm.mlir.constant"() <{value = false}> : () -> i1 + %2 = llvm.xor %arg76, %0 : i1 + %3 = "llvm.select"(%2, %arg77, %1) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i1, i1) -> i1 + %4 = "llvm.select"(%arg75, %3, %arg78) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i1, i1) -> i1 + "llvm.return"(%4) : (i1) -> () +} +] +theorem andcond.001.inv.outer.cond_proof : andcond.001.inv.outer.cond_before ⊑ andcond.001.inv.outer.cond_after := by + unfold andcond.001.inv.outer.cond_before andcond.001.inv.outer.cond_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN andcond.001.inv.outer.cond + all_goals (try extract_goal ; sorry) + ---END andcond.001.inv.outer.cond + + + +def orcond.001.inv.outer.cond_before := [llvm| +{ +^0(%arg70 : i1, %arg71 : i1, %arg72 : i1, %arg73 : i1, %arg74 : i1): + %0 = "llvm.mlir.constant"() <{value = true}> : () -> i1 + %1 = "llvm.select"(%arg70, %0, %arg71) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i1, i1) -> i1 + %2 = "llvm.select"(%arg70, %arg72, %arg73) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i1, i1) -> i1 + %3 = llvm.xor %1, %0 : i1 + %4 = "llvm.select"(%3, %0, %2) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i1, i1) -> i1 + "llvm.return"(%4) : (i1) -> () +} +] +def orcond.001.inv.outer.cond_after := [llvm| +{ +^0(%arg70 : i1, %arg71 : i1, %arg72 : i1, %arg73 : i1, %arg74 : i1): + %0 = "llvm.mlir.constant"() <{value = true}> : () -> i1 + %1 = llvm.xor %arg71, %0 : i1 + %2 = "llvm.select"(%1, %0, %arg73) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i1, i1) -> i1 + %3 = "llvm.select"(%arg70, %arg72, %2) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i1, i1) -> i1 + "llvm.return"(%3) : (i1) -> () +} +] +theorem orcond.001.inv.outer.cond_proof : orcond.001.inv.outer.cond_before ⊑ orcond.001.inv.outer.cond_after := by + unfold orcond.001.inv.outer.cond_before orcond.001.inv.outer.cond_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN orcond.001.inv.outer.cond + all_goals (try extract_goal ; sorry) + ---END orcond.001.inv.outer.cond + + + +def andcond.010.inv.inner.cond.in.inner.sel_before := [llvm| +{ +^0(%arg65 : i1, %arg66 : i1, %arg67 : i1, %arg68 : i1, %arg69 : i1): + %0 = "llvm.mlir.constant"() <{value = false}> : () -> i1 + %1 = "llvm.mlir.constant"() <{value = true}> : () -> i1 + %2 = "llvm.select"(%arg65, %arg66, %0) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i1, i1) -> i1 + %3 = llvm.xor %arg65, %1 : i1 + %4 = "llvm.select"(%3, %arg68, %0) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i1, i1) -> i1 + %5 = "llvm.select"(%2, %arg69, %4) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i1, i1) -> i1 + "llvm.return"(%5) : (i1) -> () +} +] +def andcond.010.inv.inner.cond.in.inner.sel_after := [llvm| +{ +^0(%arg65 : i1, %arg66 : i1, %arg67 : i1, %arg68 : i1, %arg69 : i1): + %0 = "llvm.mlir.constant"() <{value = false}> : () -> i1 + %1 = "llvm.select"(%arg66, %arg69, %0) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i1, i1) -> i1 + %2 = "llvm.select"(%arg65, %1, %arg68) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i1, i1) -> i1 + "llvm.return"(%2) : (i1) -> () +} +] +theorem andcond.010.inv.inner.cond.in.inner.sel_proof : andcond.010.inv.inner.cond.in.inner.sel_before ⊑ andcond.010.inv.inner.cond.in.inner.sel_after := by + unfold andcond.010.inv.inner.cond.in.inner.sel_before andcond.010.inv.inner.cond.in.inner.sel_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN andcond.010.inv.inner.cond.in.inner.sel + all_goals (try extract_goal ; sorry) + ---END andcond.010.inv.inner.cond.in.inner.sel + + + +def orcond.010.inv.inner.cond.in.inner.sel_before := [llvm| +{ +^0(%arg60 : i1, %arg61 : i1, %arg62 : i1, %arg63 : i1, %arg64 : i1): + %0 = "llvm.mlir.constant"() <{value = true}> : () -> i1 + %1 = "llvm.select"(%arg60, %0, %arg61) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i1, i1) -> i1 + %2 = llvm.xor %arg60, %0 : i1 + %3 = "llvm.select"(%2, %0, %arg62) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i1, i1) -> i1 + %4 = "llvm.select"(%1, %3, %arg64) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i1, i1) -> i1 + "llvm.return"(%4) : (i1) -> () +} +] +def orcond.010.inv.inner.cond.in.inner.sel_after := [llvm| +{ +^0(%arg60 : i1, %arg61 : i1, %arg62 : i1, %arg63 : i1, %arg64 : i1): + %0 = "llvm.mlir.constant"() <{value = true}> : () -> i1 + %1 = "llvm.select"(%arg61, %0, %arg64) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i1, i1) -> i1 + %2 = "llvm.select"(%arg60, %arg62, %1) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i1, i1) -> i1 + "llvm.return"(%2) : (i1) -> () +} +] +theorem orcond.010.inv.inner.cond.in.inner.sel_proof : orcond.010.inv.inner.cond.in.inner.sel_before ⊑ orcond.010.inv.inner.cond.in.inner.sel_after := by + unfold orcond.010.inv.inner.cond.in.inner.sel_before orcond.010.inv.inner.cond.in.inner.sel_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN orcond.010.inv.inner.cond.in.inner.sel + all_goals (try extract_goal ; sorry) + ---END orcond.010.inv.inner.cond.in.inner.sel + + + +def andcond.100.inv.inner.cond.in.outer.cond_before := [llvm| +{ +^0(%arg55 : i1, %arg56 : i1, %arg57 : i8, %arg58 : i8, %arg59 : i8): + %0 = "llvm.mlir.constant"() <{value = true}> : () -> i1 + %1 = "llvm.mlir.constant"() <{value = false}> : () -> i1 + %2 = llvm.xor %arg55, %0 : i1 + %3 = "llvm.select"(%2, %arg56, %1) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i1, i1) -> i1 + %4 = "llvm.select"(%arg55, %arg57, %arg58) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i8, i8) -> i8 + %5 = "llvm.select"(%3, %arg59, %4) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i8, i8) -> i8 + "llvm.return"(%5) : (i8) -> () +} +] +def andcond.100.inv.inner.cond.in.outer.cond_after := [llvm| +{ +^0(%arg55 : i1, %arg56 : i1, %arg57 : i8, %arg58 : i8, %arg59 : i8): + %0 = "llvm.select"(%arg56, %arg59, %arg58) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i8, i8) -> i8 + %1 = "llvm.select"(%arg55, %arg57, %0) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i8, i8) -> i8 + "llvm.return"(%1) : (i8) -> () +} +] +theorem andcond.100.inv.inner.cond.in.outer.cond_proof : andcond.100.inv.inner.cond.in.outer.cond_before ⊑ andcond.100.inv.inner.cond.in.outer.cond_after := by + unfold andcond.100.inv.inner.cond.in.outer.cond_before andcond.100.inv.inner.cond.in.outer.cond_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN andcond.100.inv.inner.cond.in.outer.cond + all_goals (try extract_goal ; sorry) + ---END andcond.100.inv.inner.cond.in.outer.cond + + + +def orcond.100.inv.inner.cond.in.outer.cond_before := [llvm| +{ +^0(%arg50 : i1, %arg51 : i1, %arg52 : i8, %arg53 : i8, %arg54 : i8): + %0 = "llvm.mlir.constant"() <{value = true}> : () -> i1 + %1 = llvm.xor %arg50, %0 : i1 + %2 = "llvm.select"(%1, %0, %arg51) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i1, i1) -> i1 + %3 = "llvm.select"(%arg50, %arg52, %arg53) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i8, i8) -> i8 + %4 = "llvm.select"(%2, %3, %arg54) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i8, i8) -> i8 + "llvm.return"(%4) : (i8) -> () +} +] +def orcond.100.inv.inner.cond.in.outer.cond_after := [llvm| +{ +^0(%arg50 : i1, %arg51 : i1, %arg52 : i8, %arg53 : i8, %arg54 : i8): + %0 = "llvm.select"(%arg51, %arg52, %arg54) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i8, i8) -> i8 + %1 = "llvm.select"(%arg50, %0, %arg53) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i8, i8) -> i8 + "llvm.return"(%1) : (i8) -> () +} +] +theorem orcond.100.inv.inner.cond.in.outer.cond_proof : orcond.100.inv.inner.cond.in.outer.cond_before ⊑ orcond.100.inv.inner.cond.in.outer.cond_after := by + unfold orcond.100.inv.inner.cond.in.outer.cond_before orcond.100.inv.inner.cond.in.outer.cond_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN orcond.100.inv.inner.cond.in.outer.cond + all_goals (try extract_goal ; sorry) + ---END orcond.100.inv.inner.cond.in.outer.cond + + + +def andcond.110.inv.inner.cond.in.inner.sel.inv.inner.cond.in.outer.cond_before := [llvm| +{ +^0(%arg25 : i1, %arg26 : i1, %arg27 : i1, %arg28 : i1, %arg29 : i1): + %0 = "llvm.mlir.constant"() <{value = true}> : () -> i1 + %1 = "llvm.mlir.constant"() <{value = false}> : () -> i1 + %2 = llvm.xor %arg25, %0 : i1 + %3 = "llvm.select"(%2, %arg26, %1) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i1, i1) -> i1 + %4 = llvm.xor %arg25, %0 : i1 + %5 = "llvm.select"(%4, %arg28, %1) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i1, i1) -> i1 + %6 = "llvm.select"(%3, %arg29, %5) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i1, i1) -> i1 + "llvm.return"(%6) : (i1) -> () +} +] +def andcond.110.inv.inner.cond.in.inner.sel.inv.inner.cond.in.outer.cond_after := [llvm| +{ +^0(%arg25 : i1, %arg26 : i1, %arg27 : i1, %arg28 : i1, %arg29 : i1): + %0 = "llvm.mlir.constant"() <{value = true}> : () -> i1 + %1 = "llvm.mlir.constant"() <{value = false}> : () -> i1 + %2 = llvm.xor %arg25, %0 : i1 + %3 = "llvm.select"(%arg26, %arg29, %arg28) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i1, i1) -> i1 + %4 = "llvm.select"(%2, %3, %1) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i1, i1) -> i1 + "llvm.return"(%4) : (i1) -> () +} +] +theorem andcond.110.inv.inner.cond.in.inner.sel.inv.inner.cond.in.outer.cond_proof : andcond.110.inv.inner.cond.in.inner.sel.inv.inner.cond.in.outer.cond_before ⊑ andcond.110.inv.inner.cond.in.inner.sel.inv.inner.cond.in.outer.cond_after := by + unfold andcond.110.inv.inner.cond.in.inner.sel.inv.inner.cond.in.outer.cond_before andcond.110.inv.inner.cond.in.inner.sel.inv.inner.cond.in.outer.cond_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN andcond.110.inv.inner.cond.in.inner.sel.inv.inner.cond.in.outer.cond + all_goals (try extract_goal ; sorry) + ---END andcond.110.inv.inner.cond.in.inner.sel.inv.inner.cond.in.outer.cond + + + +def orcond.110.inv.inner.cond.in.inner.sel.inv.inner.cond.in.outer.cond_before := [llvm| +{ +^0(%arg20 : i1, %arg21 : i1, %arg22 : i1, %arg23 : i1, %arg24 : i1): + %0 = "llvm.mlir.constant"() <{value = true}> : () -> i1 + %1 = llvm.xor %arg20, %0 : i1 + %2 = "llvm.select"(%1, %0, %arg21) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i1, i1) -> i1 + %3 = llvm.xor %arg20, %0 : i1 + %4 = "llvm.select"(%3, %0, %arg22) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i1, i1) -> i1 + %5 = "llvm.select"(%2, %4, %arg24) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i1, i1) -> i1 + "llvm.return"(%5) : (i1) -> () +} +] +def orcond.110.inv.inner.cond.in.inner.sel.inv.inner.cond.in.outer.cond_after := [llvm| +{ +^0(%arg20 : i1, %arg21 : i1, %arg22 : i1, %arg23 : i1, %arg24 : i1): + %0 = "llvm.mlir.constant"() <{value = true}> : () -> i1 + %1 = llvm.xor %arg20, %0 : i1 + %2 = "llvm.select"(%arg21, %arg22, %arg24) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i1, i1) -> i1 + %3 = "llvm.select"(%1, %0, %2) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i1, i1) -> i1 + "llvm.return"(%3) : (i1) -> () +} +] +theorem orcond.110.inv.inner.cond.in.inner.sel.inv.inner.cond.in.outer.cond_proof : orcond.110.inv.inner.cond.in.inner.sel.inv.inner.cond.in.outer.cond_before ⊑ orcond.110.inv.inner.cond.in.inner.sel.inv.inner.cond.in.outer.cond_after := by + unfold orcond.110.inv.inner.cond.in.inner.sel.inv.inner.cond.in.outer.cond_before orcond.110.inv.inner.cond.in.inner.sel.inv.inner.cond.in.outer.cond_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN orcond.110.inv.inner.cond.in.inner.sel.inv.inner.cond.in.outer.cond + all_goals (try extract_goal ; sorry) + ---END orcond.110.inv.inner.cond.in.inner.sel.inv.inner.cond.in.outer.cond + + diff --git a/SSA/Projects/InstCombine/tests/LLVM/gnot.lean b/SSA/Projects/InstCombine/tests/LLVM/gnot.lean index 3f5040154..4c8378799 100644 --- a/SSA/Projects/InstCombine/tests/LLVM/gnot.lean +++ b/SSA/Projects/InstCombine/tests/LLVM/gnot.lean @@ -243,6 +243,144 @@ theorem not_or_neg_proof : not_or_neg_before ⊑ not_or_neg_after := by +def not_select_bool_const1_before := [llvm| +{ +^0(%arg68 : i1, %arg69 : i1): + %0 = "llvm.mlir.constant"() <{value = true}> : () -> i1 + %1 = "llvm.select"(%arg68, %arg69, %0) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i1, i1) -> i1 + %2 = llvm.xor %1, %0 : i1 + "llvm.return"(%2) : (i1) -> () +} +] +def not_select_bool_const1_after := [llvm| +{ +^0(%arg68 : i1, %arg69 : i1): + %0 = "llvm.mlir.constant"() <{value = true}> : () -> i1 + %1 = "llvm.mlir.constant"() <{value = false}> : () -> i1 + %2 = llvm.xor %arg69, %0 : i1 + %3 = "llvm.select"(%arg68, %2, %1) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i1, i1) -> i1 + "llvm.return"(%3) : (i1) -> () +} +] +theorem not_select_bool_const1_proof : not_select_bool_const1_before ⊑ not_select_bool_const1_after := by + unfold not_select_bool_const1_before not_select_bool_const1_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN not_select_bool_const1 + all_goals (try extract_goal ; sorry) + ---END not_select_bool_const1 + + + +def not_select_bool_const4_before := [llvm| +{ +^0(%arg62 : i1, %arg63 : i1): + %0 = "llvm.mlir.constant"() <{value = false}> : () -> i1 + %1 = "llvm.mlir.constant"() <{value = true}> : () -> i1 + %2 = "llvm.select"(%arg62, %0, %arg63) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i1, i1) -> i1 + %3 = llvm.xor %2, %1 : i1 + "llvm.return"(%3) : (i1) -> () +} +] +def not_select_bool_const4_after := [llvm| +{ +^0(%arg62 : i1, %arg63 : i1): + %0 = "llvm.mlir.constant"() <{value = true}> : () -> i1 + %1 = llvm.xor %arg63, %0 : i1 + %2 = "llvm.select"(%arg62, %0, %1) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i1, i1) -> i1 + "llvm.return"(%2) : (i1) -> () +} +] +theorem not_select_bool_const4_proof : not_select_bool_const4_before ⊑ not_select_bool_const4_after := by + unfold not_select_bool_const4_before not_select_bool_const4_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN not_select_bool_const4 + all_goals (try extract_goal ; sorry) + ---END not_select_bool_const4 + + + +def not_logicalAnd_not_op1_before := [llvm| +{ +^0(%arg58 : i1, %arg59 : i1): + %0 = "llvm.mlir.constant"() <{value = true}> : () -> i1 + %1 = "llvm.mlir.constant"() <{value = false}> : () -> i1 + %2 = llvm.xor %arg59, %0 : i1 + %3 = "llvm.select"(%arg58, %2, %1) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i1, i1) -> i1 + %4 = llvm.xor %3, %0 : i1 + "llvm.return"(%4) : (i1) -> () +} +] +def not_logicalAnd_not_op1_after := [llvm| +{ +^0(%arg58 : i1, %arg59 : i1): + %0 = "llvm.mlir.constant"() <{value = true}> : () -> i1 + %1 = llvm.xor %arg58, %0 : i1 + %2 = "llvm.select"(%1, %0, %arg59) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i1, i1) -> i1 + "llvm.return"(%2) : (i1) -> () +} +] +theorem not_logicalAnd_not_op1_proof : not_logicalAnd_not_op1_before ⊑ not_logicalAnd_not_op1_after := by + unfold not_logicalAnd_not_op1_before not_logicalAnd_not_op1_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN not_logicalAnd_not_op1 + all_goals (try extract_goal ; sorry) + ---END not_logicalAnd_not_op1 + + + +def not_logicalOr_not_op1_before := [llvm| +{ +^0(%arg50 : i1, %arg51 : i1): + %0 = "llvm.mlir.constant"() <{value = true}> : () -> i1 + %1 = llvm.xor %arg51, %0 : i1 + %2 = "llvm.select"(%arg50, %0, %1) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i1, i1) -> i1 + %3 = llvm.xor %2, %0 : i1 + "llvm.return"(%3) : (i1) -> () +} +] +def not_logicalOr_not_op1_after := [llvm| +{ +^0(%arg50 : i1, %arg51 : i1): + %0 = "llvm.mlir.constant"() <{value = true}> : () -> i1 + %1 = "llvm.mlir.constant"() <{value = false}> : () -> i1 + %2 = llvm.xor %arg50, %0 : i1 + %3 = "llvm.select"(%2, %arg51, %1) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i1, i1) -> i1 + "llvm.return"(%3) : (i1) -> () +} +] +theorem not_logicalOr_not_op1_proof : not_logicalOr_not_op1_before ⊑ not_logicalOr_not_op1_after := by + unfold not_logicalOr_not_op1_before not_logicalOr_not_op1_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN not_logicalOr_not_op1 + all_goals (try extract_goal ; sorry) + ---END not_logicalOr_not_op1 + + + def test_invert_demorgan_and2_before := [llvm| { ^0(%arg7 : i64): diff --git a/SSA/Projects/InstCombine/tests/LLVM/goperandhcomplexity.lean b/SSA/Projects/InstCombine/tests/LLVM/goperandhcomplexity.lean new file mode 100644 index 000000000..9b304a4ab --- /dev/null +++ b/SSA/Projects/InstCombine/tests/LLVM/goperandhcomplexity.lean @@ -0,0 +1,88 @@ + +import SSA.Projects.InstCombine.LLVM.PrettyEDSL +import SSA.Projects.InstCombine.TacticAuto +import SSA.Projects.InstCombine.LLVM.Semantics +open LLVM +open BitVec + +open MLIR AST +open Ctxt (Var) + +set_option linter.deprecated false +set_option linter.unreachableTactic false +set_option linter.unusedTactic false +section goperandhcomplexity_statements + +def neg_before := [llvm| +{ +^0(%arg10 : i8): + %0 = "llvm.mlir.constant"() <{value = 42 : i8}> : () -> i8 + %1 = "llvm.mlir.constant"() <{value = 0 : i8}> : () -> i8 + %2 = llvm.udiv %arg10, %0 : i8 + %3 = llvm.sub %1, %arg10 : i8 + %4 = llvm.xor %3, %2 : i8 + "llvm.return"(%4) : (i8) -> () +} +] +def neg_after := [llvm| +{ +^0(%arg10 : i8): + %0 = "llvm.mlir.constant"() <{value = 42 : i8}> : () -> i8 + %1 = "llvm.mlir.constant"() <{value = 0 : i8}> : () -> i8 + %2 = llvm.udiv %arg10, %0 : i8 + %3 = llvm.sub %1, %arg10 : i8 + %4 = llvm.xor %2, %3 : i8 + "llvm.return"(%4) : (i8) -> () +} +] +theorem neg_proof : neg_before ⊑ neg_after := by + unfold neg_before neg_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN neg + all_goals (try extract_goal ; sorry) + ---END neg + + + +def not_before := [llvm| +{ +^0(%arg7 : i8): + %0 = "llvm.mlir.constant"() <{value = 42 : i8}> : () -> i8 + %1 = "llvm.mlir.constant"() <{value = -1 : i8}> : () -> i8 + %2 = llvm.udiv %arg7, %0 : i8 + %3 = llvm.xor %1, %arg7 : i8 + %4 = llvm.mul %3, %2 : i8 + "llvm.return"(%4) : (i8) -> () +} +] +def not_after := [llvm| +{ +^0(%arg7 : i8): + %0 = "llvm.mlir.constant"() <{value = 42 : i8}> : () -> i8 + %1 = "llvm.mlir.constant"() <{value = -1 : i8}> : () -> i8 + %2 = llvm.udiv %arg7, %0 : i8 + %3 = llvm.xor %arg7, %1 : i8 + %4 = llvm.mul %2, %3 : i8 + "llvm.return"(%4) : (i8) -> () +} +] +theorem not_proof : not_before ⊑ not_after := by + unfold not_before not_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN not + all_goals (try extract_goal ; sorry) + ---END not + + diff --git a/SSA/Projects/InstCombine/tests/LLVM/gpullhconditionalhbinophthroughhshift.lean b/SSA/Projects/InstCombine/tests/LLVM/gpullhconditionalhbinophthroughhshift.lean new file mode 100644 index 000000000..884fe1716 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/LLVM/gpullhconditionalhbinophthroughhshift.lean @@ -0,0 +1,754 @@ + +import SSA.Projects.InstCombine.LLVM.PrettyEDSL +import SSA.Projects.InstCombine.TacticAuto +import SSA.Projects.InstCombine.LLVM.Semantics +open LLVM +open BitVec + +open MLIR AST +open Ctxt (Var) + +set_option linter.deprecated false +set_option linter.unreachableTactic false +set_option linter.unusedTactic false +section gpullhconditionalhbinophthroughhshift_statements + +def and_signbit_select_shl_before := [llvm| +{ +^0(%arg46 : i32, %arg47 : i1): + %0 = "llvm.mlir.constant"() <{value = -65536 : i32}> : () -> i32 + %1 = "llvm.mlir.constant"() <{value = 8 : i32}> : () -> i32 + %2 = llvm.and %arg46, %0 : i32 + %3 = "llvm.select"(%arg47, %2, %arg46) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i32, i32) -> i32 + %4 = llvm.shl %3, %1 : i32 + "llvm.return"(%4) : (i32) -> () +} +] +def and_signbit_select_shl_after := [llvm| +{ +^0(%arg46 : i32, %arg47 : i1): + %0 = "llvm.mlir.constant"() <{value = 8 : i32}> : () -> i32 + %1 = "llvm.mlir.constant"() <{value = -16777216 : i32}> : () -> i32 + %2 = llvm.shl %arg46, %0 : i32 + %3 = llvm.and %2, %1 : i32 + %4 = "llvm.select"(%arg47, %3, %2) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i32, i32) -> i32 + "llvm.return"(%4) : (i32) -> () +} +] +theorem and_signbit_select_shl_proof : and_signbit_select_shl_before ⊑ and_signbit_select_shl_after := by + unfold and_signbit_select_shl_before and_signbit_select_shl_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN and_signbit_select_shl + all_goals (try extract_goal ; sorry) + ---END and_signbit_select_shl + + + +def and_nosignbit_select_shl_before := [llvm| +{ +^0(%arg44 : i32, %arg45 : i1): + %0 = "llvm.mlir.constant"() <{value = 2147418112 : i32}> : () -> i32 + %1 = "llvm.mlir.constant"() <{value = 8 : i32}> : () -> i32 + %2 = llvm.and %arg44, %0 : i32 + %3 = "llvm.select"(%arg45, %2, %arg44) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i32, i32) -> i32 + %4 = llvm.shl %3, %1 : i32 + "llvm.return"(%4) : (i32) -> () +} +] +def and_nosignbit_select_shl_after := [llvm| +{ +^0(%arg44 : i32, %arg45 : i1): + %0 = "llvm.mlir.constant"() <{value = 8 : i32}> : () -> i32 + %1 = "llvm.mlir.constant"() <{value = -16777216 : i32}> : () -> i32 + %2 = llvm.shl %arg44, %0 : i32 + %3 = llvm.and %2, %1 : i32 + %4 = "llvm.select"(%arg45, %3, %2) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i32, i32) -> i32 + "llvm.return"(%4) : (i32) -> () +} +] +theorem and_nosignbit_select_shl_proof : and_nosignbit_select_shl_before ⊑ and_nosignbit_select_shl_after := by + unfold and_nosignbit_select_shl_before and_nosignbit_select_shl_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN and_nosignbit_select_shl + all_goals (try extract_goal ; sorry) + ---END and_nosignbit_select_shl + + + +def or_signbit_select_shl_before := [llvm| +{ +^0(%arg42 : i32, %arg43 : i1): + %0 = "llvm.mlir.constant"() <{value = -65536 : i32}> : () -> i32 + %1 = "llvm.mlir.constant"() <{value = 8 : i32}> : () -> i32 + %2 = llvm.or %arg42, %0 : i32 + %3 = "llvm.select"(%arg43, %2, %arg42) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i32, i32) -> i32 + %4 = llvm.shl %3, %1 : i32 + "llvm.return"(%4) : (i32) -> () +} +] +def or_signbit_select_shl_after := [llvm| +{ +^0(%arg42 : i32, %arg43 : i1): + %0 = "llvm.mlir.constant"() <{value = 8 : i32}> : () -> i32 + %1 = "llvm.mlir.constant"() <{value = -16777216 : i32}> : () -> i32 + %2 = llvm.shl %arg42, %0 : i32 + %3 = llvm.or %2, %1 : i32 + %4 = "llvm.select"(%arg43, %3, %2) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i32, i32) -> i32 + "llvm.return"(%4) : (i32) -> () +} +] +theorem or_signbit_select_shl_proof : or_signbit_select_shl_before ⊑ or_signbit_select_shl_after := by + unfold or_signbit_select_shl_before or_signbit_select_shl_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN or_signbit_select_shl + all_goals (try extract_goal ; sorry) + ---END or_signbit_select_shl + + + +def or_nosignbit_select_shl_before := [llvm| +{ +^0(%arg40 : i32, %arg41 : i1): + %0 = "llvm.mlir.constant"() <{value = 2147418112 : i32}> : () -> i32 + %1 = "llvm.mlir.constant"() <{value = 8 : i32}> : () -> i32 + %2 = llvm.or %arg40, %0 : i32 + %3 = "llvm.select"(%arg41, %2, %arg40) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i32, i32) -> i32 + %4 = llvm.shl %3, %1 : i32 + "llvm.return"(%4) : (i32) -> () +} +] +def or_nosignbit_select_shl_after := [llvm| +{ +^0(%arg40 : i32, %arg41 : i1): + %0 = "llvm.mlir.constant"() <{value = 8 : i32}> : () -> i32 + %1 = "llvm.mlir.constant"() <{value = -16777216 : i32}> : () -> i32 + %2 = llvm.shl %arg40, %0 : i32 + %3 = llvm.or %2, %1 : i32 + %4 = "llvm.select"(%arg41, %3, %2) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i32, i32) -> i32 + "llvm.return"(%4) : (i32) -> () +} +] +theorem or_nosignbit_select_shl_proof : or_nosignbit_select_shl_before ⊑ or_nosignbit_select_shl_after := by + unfold or_nosignbit_select_shl_before or_nosignbit_select_shl_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN or_nosignbit_select_shl + all_goals (try extract_goal ; sorry) + ---END or_nosignbit_select_shl + + + +def xor_signbit_select_shl_before := [llvm| +{ +^0(%arg38 : i32, %arg39 : i1): + %0 = "llvm.mlir.constant"() <{value = -65536 : i32}> : () -> i32 + %1 = "llvm.mlir.constant"() <{value = 8 : i32}> : () -> i32 + %2 = llvm.xor %arg38, %0 : i32 + %3 = "llvm.select"(%arg39, %2, %arg38) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i32, i32) -> i32 + %4 = llvm.shl %3, %1 : i32 + "llvm.return"(%4) : (i32) -> () +} +] +def xor_signbit_select_shl_after := [llvm| +{ +^0(%arg38 : i32, %arg39 : i1): + %0 = "llvm.mlir.constant"() <{value = 8 : i32}> : () -> i32 + %1 = "llvm.mlir.constant"() <{value = -16777216 : i32}> : () -> i32 + %2 = llvm.shl %arg38, %0 : i32 + %3 = llvm.xor %2, %1 : i32 + %4 = "llvm.select"(%arg39, %3, %2) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i32, i32) -> i32 + "llvm.return"(%4) : (i32) -> () +} +] +theorem xor_signbit_select_shl_proof : xor_signbit_select_shl_before ⊑ xor_signbit_select_shl_after := by + unfold xor_signbit_select_shl_before xor_signbit_select_shl_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN xor_signbit_select_shl + all_goals (try extract_goal ; sorry) + ---END xor_signbit_select_shl + + + +def xor_nosignbit_select_shl_before := [llvm| +{ +^0(%arg36 : i32, %arg37 : i1): + %0 = "llvm.mlir.constant"() <{value = 2147418112 : i32}> : () -> i32 + %1 = "llvm.mlir.constant"() <{value = 8 : i32}> : () -> i32 + %2 = llvm.xor %arg36, %0 : i32 + %3 = "llvm.select"(%arg37, %2, %arg36) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i32, i32) -> i32 + %4 = llvm.shl %3, %1 : i32 + "llvm.return"(%4) : (i32) -> () +} +] +def xor_nosignbit_select_shl_after := [llvm| +{ +^0(%arg36 : i32, %arg37 : i1): + %0 = "llvm.mlir.constant"() <{value = 8 : i32}> : () -> i32 + %1 = "llvm.mlir.constant"() <{value = -16777216 : i32}> : () -> i32 + %2 = llvm.shl %arg36, %0 : i32 + %3 = llvm.xor %2, %1 : i32 + %4 = "llvm.select"(%arg37, %3, %2) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i32, i32) -> i32 + "llvm.return"(%4) : (i32) -> () +} +] +theorem xor_nosignbit_select_shl_proof : xor_nosignbit_select_shl_before ⊑ xor_nosignbit_select_shl_after := by + unfold xor_nosignbit_select_shl_before xor_nosignbit_select_shl_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN xor_nosignbit_select_shl + all_goals (try extract_goal ; sorry) + ---END xor_nosignbit_select_shl + + + +def add_signbit_select_shl_before := [llvm| +{ +^0(%arg34 : i32, %arg35 : i1): + %0 = "llvm.mlir.constant"() <{value = -65536 : i32}> : () -> i32 + %1 = "llvm.mlir.constant"() <{value = 8 : i32}> : () -> i32 + %2 = llvm.add %arg34, %0 : i32 + %3 = "llvm.select"(%arg35, %2, %arg34) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i32, i32) -> i32 + %4 = llvm.shl %3, %1 : i32 + "llvm.return"(%4) : (i32) -> () +} +] +def add_signbit_select_shl_after := [llvm| +{ +^0(%arg34 : i32, %arg35 : i1): + %0 = "llvm.mlir.constant"() <{value = 8 : i32}> : () -> i32 + %1 = "llvm.mlir.constant"() <{value = -16777216 : i32}> : () -> i32 + %2 = llvm.shl %arg34, %0 : i32 + %3 = llvm.add %2, %1 : i32 + %4 = "llvm.select"(%arg35, %3, %2) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i32, i32) -> i32 + "llvm.return"(%4) : (i32) -> () +} +] +theorem add_signbit_select_shl_proof : add_signbit_select_shl_before ⊑ add_signbit_select_shl_after := by + unfold add_signbit_select_shl_before add_signbit_select_shl_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN add_signbit_select_shl + all_goals (try extract_goal ; sorry) + ---END add_signbit_select_shl + + + +def add_nosignbit_select_shl_before := [llvm| +{ +^0(%arg32 : i32, %arg33 : i1): + %0 = "llvm.mlir.constant"() <{value = 2147418112 : i32}> : () -> i32 + %1 = "llvm.mlir.constant"() <{value = 8 : i32}> : () -> i32 + %2 = llvm.add %arg32, %0 : i32 + %3 = "llvm.select"(%arg33, %2, %arg32) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i32, i32) -> i32 + %4 = llvm.shl %3, %1 : i32 + "llvm.return"(%4) : (i32) -> () +} +] +def add_nosignbit_select_shl_after := [llvm| +{ +^0(%arg32 : i32, %arg33 : i1): + %0 = "llvm.mlir.constant"() <{value = 8 : i32}> : () -> i32 + %1 = "llvm.mlir.constant"() <{value = -16777216 : i32}> : () -> i32 + %2 = llvm.shl %arg32, %0 : i32 + %3 = llvm.add %2, %1 : i32 + %4 = "llvm.select"(%arg33, %3, %2) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i32, i32) -> i32 + "llvm.return"(%4) : (i32) -> () +} +] +theorem add_nosignbit_select_shl_proof : add_nosignbit_select_shl_before ⊑ add_nosignbit_select_shl_after := by + unfold add_nosignbit_select_shl_before add_nosignbit_select_shl_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN add_nosignbit_select_shl + all_goals (try extract_goal ; sorry) + ---END add_nosignbit_select_shl + + + +def and_signbit_select_lshr_before := [llvm| +{ +^0(%arg30 : i32, %arg31 : i1): + %0 = "llvm.mlir.constant"() <{value = -65536 : i32}> : () -> i32 + %1 = "llvm.mlir.constant"() <{value = 8 : i32}> : () -> i32 + %2 = llvm.and %arg30, %0 : i32 + %3 = "llvm.select"(%arg31, %2, %arg30) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i32, i32) -> i32 + %4 = llvm.lshr %3, %1 : i32 + "llvm.return"(%4) : (i32) -> () +} +] +def and_signbit_select_lshr_after := [llvm| +{ +^0(%arg30 : i32, %arg31 : i1): + %0 = "llvm.mlir.constant"() <{value = 8 : i32}> : () -> i32 + %1 = "llvm.mlir.constant"() <{value = 16776960 : i32}> : () -> i32 + %2 = llvm.lshr %arg30, %0 : i32 + %3 = llvm.and %2, %1 : i32 + %4 = "llvm.select"(%arg31, %3, %2) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i32, i32) -> i32 + "llvm.return"(%4) : (i32) -> () +} +] +theorem and_signbit_select_lshr_proof : and_signbit_select_lshr_before ⊑ and_signbit_select_lshr_after := by + unfold and_signbit_select_lshr_before and_signbit_select_lshr_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN and_signbit_select_lshr + all_goals (try extract_goal ; sorry) + ---END and_signbit_select_lshr + + + +def and_nosignbit_select_lshr_before := [llvm| +{ +^0(%arg28 : i32, %arg29 : i1): + %0 = "llvm.mlir.constant"() <{value = 2147418112 : i32}> : () -> i32 + %1 = "llvm.mlir.constant"() <{value = 8 : i32}> : () -> i32 + %2 = llvm.and %arg28, %0 : i32 + %3 = "llvm.select"(%arg29, %2, %arg28) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i32, i32) -> i32 + %4 = llvm.lshr %3, %1 : i32 + "llvm.return"(%4) : (i32) -> () +} +] +def and_nosignbit_select_lshr_after := [llvm| +{ +^0(%arg28 : i32, %arg29 : i1): + %0 = "llvm.mlir.constant"() <{value = 8 : i32}> : () -> i32 + %1 = "llvm.mlir.constant"() <{value = 8388352 : i32}> : () -> i32 + %2 = llvm.lshr %arg28, %0 : i32 + %3 = llvm.and %2, %1 : i32 + %4 = "llvm.select"(%arg29, %3, %2) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i32, i32) -> i32 + "llvm.return"(%4) : (i32) -> () +} +] +theorem and_nosignbit_select_lshr_proof : and_nosignbit_select_lshr_before ⊑ and_nosignbit_select_lshr_after := by + unfold and_nosignbit_select_lshr_before and_nosignbit_select_lshr_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN and_nosignbit_select_lshr + all_goals (try extract_goal ; sorry) + ---END and_nosignbit_select_lshr + + + +def or_signbit_select_lshr_before := [llvm| +{ +^0(%arg26 : i32, %arg27 : i1): + %0 = "llvm.mlir.constant"() <{value = -65536 : i32}> : () -> i32 + %1 = "llvm.mlir.constant"() <{value = 8 : i32}> : () -> i32 + %2 = llvm.or %arg26, %0 : i32 + %3 = "llvm.select"(%arg27, %2, %arg26) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i32, i32) -> i32 + %4 = llvm.lshr %3, %1 : i32 + "llvm.return"(%4) : (i32) -> () +} +] +def or_signbit_select_lshr_after := [llvm| +{ +^0(%arg26 : i32, %arg27 : i1): + %0 = "llvm.mlir.constant"() <{value = 8 : i32}> : () -> i32 + %1 = "llvm.mlir.constant"() <{value = 16776960 : i32}> : () -> i32 + %2 = llvm.lshr %arg26, %0 : i32 + %3 = llvm.or %2, %1 : i32 + %4 = "llvm.select"(%arg27, %3, %2) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i32, i32) -> i32 + "llvm.return"(%4) : (i32) -> () +} +] +theorem or_signbit_select_lshr_proof : or_signbit_select_lshr_before ⊑ or_signbit_select_lshr_after := by + unfold or_signbit_select_lshr_before or_signbit_select_lshr_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN or_signbit_select_lshr + all_goals (try extract_goal ; sorry) + ---END or_signbit_select_lshr + + + +def or_nosignbit_select_lshr_before := [llvm| +{ +^0(%arg24 : i32, %arg25 : i1): + %0 = "llvm.mlir.constant"() <{value = 2147418112 : i32}> : () -> i32 + %1 = "llvm.mlir.constant"() <{value = 8 : i32}> : () -> i32 + %2 = llvm.or %arg24, %0 : i32 + %3 = "llvm.select"(%arg25, %2, %arg24) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i32, i32) -> i32 + %4 = llvm.lshr %3, %1 : i32 + "llvm.return"(%4) : (i32) -> () +} +] +def or_nosignbit_select_lshr_after := [llvm| +{ +^0(%arg24 : i32, %arg25 : i1): + %0 = "llvm.mlir.constant"() <{value = 8 : i32}> : () -> i32 + %1 = "llvm.mlir.constant"() <{value = 8388352 : i32}> : () -> i32 + %2 = llvm.lshr %arg24, %0 : i32 + %3 = llvm.or %2, %1 : i32 + %4 = "llvm.select"(%arg25, %3, %2) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i32, i32) -> i32 + "llvm.return"(%4) : (i32) -> () +} +] +theorem or_nosignbit_select_lshr_proof : or_nosignbit_select_lshr_before ⊑ or_nosignbit_select_lshr_after := by + unfold or_nosignbit_select_lshr_before or_nosignbit_select_lshr_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN or_nosignbit_select_lshr + all_goals (try extract_goal ; sorry) + ---END or_nosignbit_select_lshr + + + +def xor_signbit_select_lshr_before := [llvm| +{ +^0(%arg22 : i32, %arg23 : i1): + %0 = "llvm.mlir.constant"() <{value = -65536 : i32}> : () -> i32 + %1 = "llvm.mlir.constant"() <{value = 8 : i32}> : () -> i32 + %2 = llvm.xor %arg22, %0 : i32 + %3 = "llvm.select"(%arg23, %2, %arg22) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i32, i32) -> i32 + %4 = llvm.lshr %3, %1 : i32 + "llvm.return"(%4) : (i32) -> () +} +] +def xor_signbit_select_lshr_after := [llvm| +{ +^0(%arg22 : i32, %arg23 : i1): + %0 = "llvm.mlir.constant"() <{value = 8 : i32}> : () -> i32 + %1 = "llvm.mlir.constant"() <{value = 16776960 : i32}> : () -> i32 + %2 = llvm.lshr %arg22, %0 : i32 + %3 = llvm.xor %2, %1 : i32 + %4 = "llvm.select"(%arg23, %3, %2) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i32, i32) -> i32 + "llvm.return"(%4) : (i32) -> () +} +] +theorem xor_signbit_select_lshr_proof : xor_signbit_select_lshr_before ⊑ xor_signbit_select_lshr_after := by + unfold xor_signbit_select_lshr_before xor_signbit_select_lshr_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN xor_signbit_select_lshr + all_goals (try extract_goal ; sorry) + ---END xor_signbit_select_lshr + + + +def xor_nosignbit_select_lshr_before := [llvm| +{ +^0(%arg20 : i32, %arg21 : i1): + %0 = "llvm.mlir.constant"() <{value = 2147418112 : i32}> : () -> i32 + %1 = "llvm.mlir.constant"() <{value = 8 : i32}> : () -> i32 + %2 = llvm.xor %arg20, %0 : i32 + %3 = "llvm.select"(%arg21, %2, %arg20) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i32, i32) -> i32 + %4 = llvm.lshr %3, %1 : i32 + "llvm.return"(%4) : (i32) -> () +} +] +def xor_nosignbit_select_lshr_after := [llvm| +{ +^0(%arg20 : i32, %arg21 : i1): + %0 = "llvm.mlir.constant"() <{value = 8 : i32}> : () -> i32 + %1 = "llvm.mlir.constant"() <{value = 8388352 : i32}> : () -> i32 + %2 = llvm.lshr %arg20, %0 : i32 + %3 = llvm.xor %2, %1 : i32 + %4 = "llvm.select"(%arg21, %3, %2) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i32, i32) -> i32 + "llvm.return"(%4) : (i32) -> () +} +] +theorem xor_nosignbit_select_lshr_proof : xor_nosignbit_select_lshr_before ⊑ xor_nosignbit_select_lshr_after := by + unfold xor_nosignbit_select_lshr_before xor_nosignbit_select_lshr_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN xor_nosignbit_select_lshr + all_goals (try extract_goal ; sorry) + ---END xor_nosignbit_select_lshr + + + +def and_signbit_select_ashr_before := [llvm| +{ +^0(%arg14 : i32, %arg15 : i1): + %0 = "llvm.mlir.constant"() <{value = -65536 : i32}> : () -> i32 + %1 = "llvm.mlir.constant"() <{value = 8 : i32}> : () -> i32 + %2 = llvm.and %arg14, %0 : i32 + %3 = "llvm.select"(%arg15, %2, %arg14) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i32, i32) -> i32 + %4 = llvm.ashr %3, %1 : i32 + "llvm.return"(%4) : (i32) -> () +} +] +def and_signbit_select_ashr_after := [llvm| +{ +^0(%arg14 : i32, %arg15 : i1): + %0 = "llvm.mlir.constant"() <{value = 8 : i32}> : () -> i32 + %1 = "llvm.mlir.constant"() <{value = -256 : i32}> : () -> i32 + %2 = llvm.ashr %arg14, %0 : i32 + %3 = llvm.and %2, %1 : i32 + %4 = "llvm.select"(%arg15, %3, %2) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i32, i32) -> i32 + "llvm.return"(%4) : (i32) -> () +} +] +theorem and_signbit_select_ashr_proof : and_signbit_select_ashr_before ⊑ and_signbit_select_ashr_after := by + unfold and_signbit_select_ashr_before and_signbit_select_ashr_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN and_signbit_select_ashr + all_goals (try extract_goal ; sorry) + ---END and_signbit_select_ashr + + + +def and_nosignbit_select_ashr_before := [llvm| +{ +^0(%arg12 : i32, %arg13 : i1): + %0 = "llvm.mlir.constant"() <{value = 2147418112 : i32}> : () -> i32 + %1 = "llvm.mlir.constant"() <{value = 8 : i32}> : () -> i32 + %2 = llvm.and %arg12, %0 : i32 + %3 = "llvm.select"(%arg13, %2, %arg12) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i32, i32) -> i32 + %4 = llvm.ashr %3, %1 : i32 + "llvm.return"(%4) : (i32) -> () +} +] +def and_nosignbit_select_ashr_after := [llvm| +{ +^0(%arg12 : i32, %arg13 : i1): + %0 = "llvm.mlir.constant"() <{value = 8 : i32}> : () -> i32 + %1 = "llvm.mlir.constant"() <{value = 8388352 : i32}> : () -> i32 + %2 = llvm.ashr %arg12, %0 : i32 + %3 = llvm.and %2, %1 : i32 + %4 = "llvm.select"(%arg13, %3, %2) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i32, i32) -> i32 + "llvm.return"(%4) : (i32) -> () +} +] +theorem and_nosignbit_select_ashr_proof : and_nosignbit_select_ashr_before ⊑ and_nosignbit_select_ashr_after := by + unfold and_nosignbit_select_ashr_before and_nosignbit_select_ashr_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN and_nosignbit_select_ashr + all_goals (try extract_goal ; sorry) + ---END and_nosignbit_select_ashr + + + +def or_signbit_select_ashr_before := [llvm| +{ +^0(%arg10 : i32, %arg11 : i1): + %0 = "llvm.mlir.constant"() <{value = -65536 : i32}> : () -> i32 + %1 = "llvm.mlir.constant"() <{value = 8 : i32}> : () -> i32 + %2 = llvm.or %arg10, %0 : i32 + %3 = "llvm.select"(%arg11, %2, %arg10) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i32, i32) -> i32 + %4 = llvm.ashr %3, %1 : i32 + "llvm.return"(%4) : (i32) -> () +} +] +def or_signbit_select_ashr_after := [llvm| +{ +^0(%arg10 : i32, %arg11 : i1): + %0 = "llvm.mlir.constant"() <{value = 8 : i32}> : () -> i32 + %1 = "llvm.mlir.constant"() <{value = -256 : i32}> : () -> i32 + %2 = llvm.ashr %arg10, %0 : i32 + %3 = llvm.or %2, %1 : i32 + %4 = "llvm.select"(%arg11, %3, %2) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i32, i32) -> i32 + "llvm.return"(%4) : (i32) -> () +} +] +theorem or_signbit_select_ashr_proof : or_signbit_select_ashr_before ⊑ or_signbit_select_ashr_after := by + unfold or_signbit_select_ashr_before or_signbit_select_ashr_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN or_signbit_select_ashr + all_goals (try extract_goal ; sorry) + ---END or_signbit_select_ashr + + + +def or_nosignbit_select_ashr_before := [llvm| +{ +^0(%arg8 : i32, %arg9 : i1): + %0 = "llvm.mlir.constant"() <{value = 2147418112 : i32}> : () -> i32 + %1 = "llvm.mlir.constant"() <{value = 8 : i32}> : () -> i32 + %2 = llvm.or %arg8, %0 : i32 + %3 = "llvm.select"(%arg9, %2, %arg8) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i32, i32) -> i32 + %4 = llvm.ashr %3, %1 : i32 + "llvm.return"(%4) : (i32) -> () +} +] +def or_nosignbit_select_ashr_after := [llvm| +{ +^0(%arg8 : i32, %arg9 : i1): + %0 = "llvm.mlir.constant"() <{value = 8 : i32}> : () -> i32 + %1 = "llvm.mlir.constant"() <{value = 8388352 : i32}> : () -> i32 + %2 = llvm.ashr %arg8, %0 : i32 + %3 = llvm.or %2, %1 : i32 + %4 = "llvm.select"(%arg9, %3, %2) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i32, i32) -> i32 + "llvm.return"(%4) : (i32) -> () +} +] +theorem or_nosignbit_select_ashr_proof : or_nosignbit_select_ashr_before ⊑ or_nosignbit_select_ashr_after := by + unfold or_nosignbit_select_ashr_before or_nosignbit_select_ashr_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN or_nosignbit_select_ashr + all_goals (try extract_goal ; sorry) + ---END or_nosignbit_select_ashr + + + +def xor_signbit_select_ashr_before := [llvm| +{ +^0(%arg6 : i32, %arg7 : i1): + %0 = "llvm.mlir.constant"() <{value = -65536 : i32}> : () -> i32 + %1 = "llvm.mlir.constant"() <{value = 8 : i32}> : () -> i32 + %2 = llvm.xor %arg6, %0 : i32 + %3 = "llvm.select"(%arg7, %2, %arg6) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i32, i32) -> i32 + %4 = llvm.ashr %3, %1 : i32 + "llvm.return"(%4) : (i32) -> () +} +] +def xor_signbit_select_ashr_after := [llvm| +{ +^0(%arg6 : i32, %arg7 : i1): + %0 = "llvm.mlir.constant"() <{value = 8 : i32}> : () -> i32 + %1 = "llvm.mlir.constant"() <{value = -256 : i32}> : () -> i32 + %2 = llvm.ashr %arg6, %0 : i32 + %3 = llvm.xor %2, %1 : i32 + %4 = "llvm.select"(%arg7, %3, %2) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i32, i32) -> i32 + "llvm.return"(%4) : (i32) -> () +} +] +theorem xor_signbit_select_ashr_proof : xor_signbit_select_ashr_before ⊑ xor_signbit_select_ashr_after := by + unfold xor_signbit_select_ashr_before xor_signbit_select_ashr_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN xor_signbit_select_ashr + all_goals (try extract_goal ; sorry) + ---END xor_signbit_select_ashr + + + +def xor_nosignbit_select_ashr_before := [llvm| +{ +^0(%arg4 : i32, %arg5 : i1): + %0 = "llvm.mlir.constant"() <{value = 2147418112 : i32}> : () -> i32 + %1 = "llvm.mlir.constant"() <{value = 8 : i32}> : () -> i32 + %2 = llvm.xor %arg4, %0 : i32 + %3 = "llvm.select"(%arg5, %2, %arg4) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i32, i32) -> i32 + %4 = llvm.ashr %3, %1 : i32 + "llvm.return"(%4) : (i32) -> () +} +] +def xor_nosignbit_select_ashr_after := [llvm| +{ +^0(%arg4 : i32, %arg5 : i1): + %0 = "llvm.mlir.constant"() <{value = 8 : i32}> : () -> i32 + %1 = "llvm.mlir.constant"() <{value = 8388352 : i32}> : () -> i32 + %2 = llvm.ashr %arg4, %0 : i32 + %3 = llvm.xor %2, %1 : i32 + %4 = "llvm.select"(%arg5, %3, %2) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i32, i32) -> i32 + "llvm.return"(%4) : (i32) -> () +} +] +theorem xor_nosignbit_select_ashr_proof : xor_nosignbit_select_ashr_before ⊑ xor_nosignbit_select_ashr_after := by + unfold xor_nosignbit_select_ashr_before xor_nosignbit_select_ashr_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN xor_nosignbit_select_ashr + all_goals (try extract_goal ; sorry) + ---END xor_nosignbit_select_ashr + + diff --git a/SSA/Projects/InstCombine/tests/LLVM/grem.lean b/SSA/Projects/InstCombine/tests/LLVM/grem.lean index 9b4b4b754..477c48f24 100644 --- a/SSA/Projects/InstCombine/tests/LLVM/grem.lean +++ b/SSA/Projects/InstCombine/tests/LLVM/grem.lean @@ -74,6 +74,41 @@ theorem test3_proof : test3_before ⊑ test3_after := by +def test4_before := [llvm| +{ +^0(%arg97 : i32, %arg98 : i1): + %0 = "llvm.mlir.constant"() <{value = 1 : i32}> : () -> i32 + %1 = "llvm.mlir.constant"() <{value = 8 : i32}> : () -> i32 + %2 = "llvm.select"(%arg98, %0, %1) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i32, i32) -> i32 + %3 = llvm.urem %arg97, %2 : i32 + "llvm.return"(%3) : (i32) -> () +} +] +def test4_after := [llvm| +{ +^0(%arg97 : i32, %arg98 : i1): + %0 = "llvm.mlir.constant"() <{value = 0 : i32}> : () -> i32 + %1 = "llvm.mlir.constant"() <{value = 7 : i32}> : () -> i32 + %2 = "llvm.select"(%arg98, %0, %1) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i32, i32) -> i32 + %3 = llvm.and %arg97, %2 : i32 + "llvm.return"(%3) : (i32) -> () +} +] +theorem test4_proof : test4_before ⊑ test4_after := by + unfold test4_before test4_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN test4 + all_goals (try extract_goal ; sorry) + ---END test4 + + + def test7_before := [llvm| { ^0(%arg93 : i32): @@ -501,3 +536,139 @@ theorem test22_proof : test22_before ⊑ test22_after := by ---END test22 + +def srem_constant_dividend_select_of_constants_divisor_before := [llvm| +{ +^0(%arg37 : i1): + %0 = "llvm.mlir.constant"() <{value = 12 : i32}> : () -> i32 + %1 = "llvm.mlir.constant"() <{value = -3 : i32}> : () -> i32 + %2 = "llvm.mlir.constant"() <{value = 42 : i32}> : () -> i32 + %3 = "llvm.select"(%arg37, %0, %1) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i32, i32) -> i32 + %4 = llvm.srem %2, %3 : i32 + "llvm.return"(%4) : (i32) -> () +} +] +def srem_constant_dividend_select_of_constants_divisor_after := [llvm| +{ +^0(%arg37 : i1): + %0 = "llvm.mlir.constant"() <{value = 6 : i32}> : () -> i32 + %1 = "llvm.mlir.constant"() <{value = 0 : i32}> : () -> i32 + %2 = "llvm.select"(%arg37, %0, %1) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i32, i32) -> i32 + "llvm.return"(%2) : (i32) -> () +} +] +theorem srem_constant_dividend_select_of_constants_divisor_proof : srem_constant_dividend_select_of_constants_divisor_before ⊑ srem_constant_dividend_select_of_constants_divisor_after := by + unfold srem_constant_dividend_select_of_constants_divisor_before srem_constant_dividend_select_of_constants_divisor_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN srem_constant_dividend_select_of_constants_divisor + all_goals (try extract_goal ; sorry) + ---END srem_constant_dividend_select_of_constants_divisor + + + +def srem_constant_dividend_select_of_constants_divisor_0_arm_before := [llvm| +{ +^0(%arg35 : i1): + %0 = "llvm.mlir.constant"() <{value = 12 : i32}> : () -> i32 + %1 = "llvm.mlir.constant"() <{value = 0 : i32}> : () -> i32 + %2 = "llvm.mlir.constant"() <{value = 42 : i32}> : () -> i32 + %3 = "llvm.select"(%arg35, %0, %1) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i32, i32) -> i32 + %4 = llvm.srem %2, %3 : i32 + "llvm.return"(%4) : (i32) -> () +} +] +def srem_constant_dividend_select_of_constants_divisor_0_arm_after := [llvm| +{ +^0(%arg35 : i1): + %0 = "llvm.mlir.constant"() <{value = 6 : i32}> : () -> i32 + "llvm.return"(%0) : (i32) -> () +} +] +theorem srem_constant_dividend_select_of_constants_divisor_0_arm_proof : srem_constant_dividend_select_of_constants_divisor_0_arm_before ⊑ srem_constant_dividend_select_of_constants_divisor_0_arm_after := by + unfold srem_constant_dividend_select_of_constants_divisor_0_arm_before srem_constant_dividend_select_of_constants_divisor_0_arm_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN srem_constant_dividend_select_of_constants_divisor_0_arm + all_goals (try extract_goal ; sorry) + ---END srem_constant_dividend_select_of_constants_divisor_0_arm + + + +def urem_constant_dividend_select_of_constants_divisor_before := [llvm| +{ +^0(%arg25 : i1): + %0 = "llvm.mlir.constant"() <{value = 12 : i32}> : () -> i32 + %1 = "llvm.mlir.constant"() <{value = -3 : i32}> : () -> i32 + %2 = "llvm.mlir.constant"() <{value = 42 : i32}> : () -> i32 + %3 = "llvm.select"(%arg25, %0, %1) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i32, i32) -> i32 + %4 = llvm.urem %2, %3 : i32 + "llvm.return"(%4) : (i32) -> () +} +] +def urem_constant_dividend_select_of_constants_divisor_after := [llvm| +{ +^0(%arg25 : i1): + %0 = "llvm.mlir.constant"() <{value = 6 : i32}> : () -> i32 + %1 = "llvm.mlir.constant"() <{value = 42 : i32}> : () -> i32 + %2 = "llvm.select"(%arg25, %0, %1) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i32, i32) -> i32 + "llvm.return"(%2) : (i32) -> () +} +] +theorem urem_constant_dividend_select_of_constants_divisor_proof : urem_constant_dividend_select_of_constants_divisor_before ⊑ urem_constant_dividend_select_of_constants_divisor_after := by + unfold urem_constant_dividend_select_of_constants_divisor_before urem_constant_dividend_select_of_constants_divisor_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN urem_constant_dividend_select_of_constants_divisor + all_goals (try extract_goal ; sorry) + ---END urem_constant_dividend_select_of_constants_divisor + + + +def urem_constant_dividend_select_of_constants_divisor_0_arm_before := [llvm| +{ +^0(%arg23 : i1): + %0 = "llvm.mlir.constant"() <{value = 12 : i32}> : () -> i32 + %1 = "llvm.mlir.constant"() <{value = 0 : i32}> : () -> i32 + %2 = "llvm.mlir.constant"() <{value = 42 : i32}> : () -> i32 + %3 = "llvm.select"(%arg23, %0, %1) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i32, i32) -> i32 + %4 = llvm.urem %2, %3 : i32 + "llvm.return"(%4) : (i32) -> () +} +] +def urem_constant_dividend_select_of_constants_divisor_0_arm_after := [llvm| +{ +^0(%arg23 : i1): + %0 = "llvm.mlir.constant"() <{value = 6 : i32}> : () -> i32 + "llvm.return"(%0) : (i32) -> () +} +] +theorem urem_constant_dividend_select_of_constants_divisor_0_arm_proof : urem_constant_dividend_select_of_constants_divisor_0_arm_before ⊑ urem_constant_dividend_select_of_constants_divisor_0_arm_after := by + unfold urem_constant_dividend_select_of_constants_divisor_0_arm_before urem_constant_dividend_select_of_constants_divisor_0_arm_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN urem_constant_dividend_select_of_constants_divisor_0_arm + all_goals (try extract_goal ; sorry) + ---END urem_constant_dividend_select_of_constants_divisor_0_arm + + diff --git a/SSA/Projects/InstCombine/tests/LLVM/gselect_meta.lean b/SSA/Projects/InstCombine/tests/LLVM/gselect_meta.lean new file mode 100644 index 000000000..dabbea559 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/LLVM/gselect_meta.lean @@ -0,0 +1,141 @@ + +import SSA.Projects.InstCombine.LLVM.PrettyEDSL +import SSA.Projects.InstCombine.TacticAuto +import SSA.Projects.InstCombine.LLVM.Semantics +open LLVM +open BitVec + +open MLIR AST +open Ctxt (Var) + +set_option linter.deprecated false +set_option linter.unreachableTactic false +set_option linter.unusedTactic false +section gselect_meta_statements + +def not_cond_before := [llvm| +{ +^0(%arg24 : i1, %arg25 : i32, %arg26 : i32): + %0 = "llvm.mlir.constant"() <{value = true}> : () -> i1 + %1 = llvm.xor %arg24, %0 : i1 + %2 = "llvm.select"(%1, %arg25, %arg26) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i32, i32) -> i32 + "llvm.return"(%2) : (i32) -> () +} +] +def not_cond_after := [llvm| +{ +^0(%arg24 : i1, %arg25 : i32, %arg26 : i32): + %0 = "llvm.select"(%arg24, %arg26, %arg25) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i32, i32) -> i32 + "llvm.return"(%0) : (i32) -> () +} +] +theorem not_cond_proof : not_cond_before ⊑ not_cond_after := by + unfold not_cond_before not_cond_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN not_cond + all_goals (try extract_goal ; sorry) + ---END not_cond + + + +def select_add_before := [llvm| +{ +^0(%arg15 : i1, %arg16 : i64, %arg17 : i64): + %0 = llvm.add %arg16, %arg17 : i64 + %1 = "llvm.select"(%arg15, %0, %arg16) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i64, i64) -> i64 + "llvm.return"(%1) : (i64) -> () +} +] +def select_add_after := [llvm| +{ +^0(%arg15 : i1, %arg16 : i64, %arg17 : i64): + %0 = "llvm.mlir.constant"() <{value = 0 : i64}> : () -> i64 + %1 = "llvm.select"(%arg15, %arg17, %0) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i64, i64) -> i64 + %2 = llvm.add %arg16, %1 : i64 + "llvm.return"(%2) : (i64) -> () +} +] +theorem select_add_proof : select_add_before ⊑ select_add_after := by + unfold select_add_before select_add_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN select_add + all_goals (try extract_goal ; sorry) + ---END select_add + + + +def select_sub_before := [llvm| +{ +^0(%arg9 : i1, %arg10 : i17, %arg11 : i17): + %0 = llvm.sub %arg10, %arg11 : i17 + %1 = "llvm.select"(%arg9, %0, %arg10) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i17, i17) -> i17 + "llvm.return"(%1) : (i17) -> () +} +] +def select_sub_after := [llvm| +{ +^0(%arg9 : i1, %arg10 : i17, %arg11 : i17): + %0 = "llvm.mlir.constant"() <{value = 0 : i17}> : () -> i17 + %1 = "llvm.select"(%arg9, %arg11, %0) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i17, i17) -> i17 + %2 = llvm.sub %arg10, %1 : i17 + "llvm.return"(%2) : (i17) -> () +} +] +theorem select_sub_proof : select_sub_before ⊑ select_sub_after := by + unfold select_sub_before select_sub_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN select_sub + all_goals (try extract_goal ; sorry) + ---END select_sub + + + +def select_ashr_before := [llvm| +{ +^0(%arg6 : i1, %arg7 : i128, %arg8 : i128): + %0 = llvm.ashr %arg7, %arg8 : i128 + %1 = "llvm.select"(%arg6, %0, %arg7) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i128, i128) -> i128 + "llvm.return"(%1) : (i128) -> () +} +] +def select_ashr_after := [llvm| +{ +^0(%arg6 : i1, %arg7 : i128, %arg8 : i128): + %0 = "llvm.mlir.constant"() <{value = 0 : i128}> : () -> i128 + %1 = "llvm.select"(%arg6, %arg8, %0) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i128, i128) -> i128 + %2 = llvm.ashr %arg7, %1 : i128 + "llvm.return"(%2) : (i128) -> () +} +] +theorem select_ashr_proof : select_ashr_before ⊑ select_ashr_after := by + unfold select_ashr_before select_ashr_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN select_ashr + all_goals (try extract_goal ; sorry) + ---END select_ashr + + diff --git a/SSA/Projects/InstCombine/tests/LLVM/gselecth2.lean b/SSA/Projects/InstCombine/tests/LLVM/gselecth2.lean new file mode 100644 index 000000000..513f6212d --- /dev/null +++ b/SSA/Projects/InstCombine/tests/LLVM/gselecth2.lean @@ -0,0 +1,224 @@ + +import SSA.Projects.InstCombine.LLVM.PrettyEDSL +import SSA.Projects.InstCombine.TacticAuto +import SSA.Projects.InstCombine.LLVM.Semantics +open LLVM +open BitVec + +open MLIR AST +open Ctxt (Var) + +set_option linter.deprecated false +set_option linter.unreachableTactic false +set_option linter.unusedTactic false +section gselecth2_statements + +def ashr_exact_poison_constant_fold_before := [llvm| +{ +^0(%arg10 : i1, %arg11 : i8): + %0 = "llvm.mlir.constant"() <{value = 42 : i8}> : () -> i8 + %1 = "llvm.mlir.constant"() <{value = 3 : i8}> : () -> i8 + %2 = "llvm.select"(%arg10, %arg11, %0) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i8, i8) -> i8 + %3 = llvm.ashr %2, %1 : i8 + "llvm.return"(%3) : (i8) -> () +} +] +def ashr_exact_poison_constant_fold_after := [llvm| +{ +^0(%arg10 : i1, %arg11 : i8): + %0 = "llvm.mlir.constant"() <{value = 3 : i8}> : () -> i8 + %1 = "llvm.mlir.constant"() <{value = 5 : i8}> : () -> i8 + %2 = llvm.ashr %arg11, %0 : i8 + %3 = "llvm.select"(%arg10, %2, %1) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i8, i8) -> i8 + "llvm.return"(%3) : (i8) -> () +} +] +theorem ashr_exact_poison_constant_fold_proof : ashr_exact_poison_constant_fold_before ⊑ ashr_exact_poison_constant_fold_after := by + unfold ashr_exact_poison_constant_fold_before ashr_exact_poison_constant_fold_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN ashr_exact_poison_constant_fold + all_goals (try extract_goal ; sorry) + ---END ashr_exact_poison_constant_fold + + + +def ashr_exact_before := [llvm| +{ +^0(%arg8 : i1, %arg9 : i8): + %0 = "llvm.mlir.constant"() <{value = 16 : i8}> : () -> i8 + %1 = "llvm.mlir.constant"() <{value = 3 : i8}> : () -> i8 + %2 = "llvm.select"(%arg8, %arg9, %0) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i8, i8) -> i8 + %3 = llvm.ashr %2, %1 : i8 + "llvm.return"(%3) : (i8) -> () +} +] +def ashr_exact_after := [llvm| +{ +^0(%arg8 : i1, %arg9 : i8): + %0 = "llvm.mlir.constant"() <{value = 3 : i8}> : () -> i8 + %1 = "llvm.mlir.constant"() <{value = 2 : i8}> : () -> i8 + %2 = llvm.ashr %arg9, %0 : i8 + %3 = "llvm.select"(%arg8, %2, %1) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i8, i8) -> i8 + "llvm.return"(%3) : (i8) -> () +} +] +theorem ashr_exact_proof : ashr_exact_before ⊑ ashr_exact_after := by + unfold ashr_exact_before ashr_exact_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN ashr_exact + all_goals (try extract_goal ; sorry) + ---END ashr_exact + + + +def shl_nsw_nuw_poison_constant_fold_before := [llvm| +{ +^0(%arg6 : i1, %arg7 : i8): + %0 = "llvm.mlir.constant"() <{value = 3 : i8}> : () -> i8 + %1 = "llvm.mlir.constant"() <{value = 16 : i8}> : () -> i8 + %2 = "llvm.select"(%arg6, %0, %arg7) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i8, i8) -> i8 + %3 = llvm.shl %1, %2 overflow : i8 + "llvm.return"(%3) : (i8) -> () +} +] +def shl_nsw_nuw_poison_constant_fold_after := [llvm| +{ +^0(%arg6 : i1, %arg7 : i8): + %0 = "llvm.mlir.constant"() <{value = 16 : i8}> : () -> i8 + %1 = "llvm.mlir.constant"() <{value = -128 : i8}> : () -> i8 + %2 = llvm.shl %0, %arg7 overflow : i8 + %3 = "llvm.select"(%arg6, %1, %2) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i8, i8) -> i8 + "llvm.return"(%3) : (i8) -> () +} +] +theorem shl_nsw_nuw_poison_constant_fold_proof : shl_nsw_nuw_poison_constant_fold_before ⊑ shl_nsw_nuw_poison_constant_fold_after := by + unfold shl_nsw_nuw_poison_constant_fold_before shl_nsw_nuw_poison_constant_fold_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN shl_nsw_nuw_poison_constant_fold + all_goals (try extract_goal ; sorry) + ---END shl_nsw_nuw_poison_constant_fold + + + +def shl_nsw_nuw_before := [llvm| +{ +^0(%arg4 : i1, %arg5 : i8): + %0 = "llvm.mlir.constant"() <{value = 3 : i8}> : () -> i8 + %1 = "llvm.mlir.constant"() <{value = 7 : i8}> : () -> i8 + %2 = "llvm.select"(%arg4, %0, %arg5) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i8, i8) -> i8 + %3 = llvm.shl %1, %2 overflow : i8 + "llvm.return"(%3) : (i8) -> () +} +] +def shl_nsw_nuw_after := [llvm| +{ +^0(%arg4 : i1, %arg5 : i8): + %0 = "llvm.mlir.constant"() <{value = 7 : i8}> : () -> i8 + %1 = "llvm.mlir.constant"() <{value = 56 : i8}> : () -> i8 + %2 = llvm.shl %0, %arg5 overflow : i8 + %3 = "llvm.select"(%arg4, %1, %2) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i8, i8) -> i8 + "llvm.return"(%3) : (i8) -> () +} +] +theorem shl_nsw_nuw_proof : shl_nsw_nuw_before ⊑ shl_nsw_nuw_after := by + unfold shl_nsw_nuw_before shl_nsw_nuw_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN shl_nsw_nuw + all_goals (try extract_goal ; sorry) + ---END shl_nsw_nuw + + + +def add_nsw_poison_constant_fold_before := [llvm| +{ +^0(%arg2 : i1, %arg3 : i8): + %0 = "llvm.mlir.constant"() <{value = 65 : i8}> : () -> i8 + %1 = "llvm.mlir.constant"() <{value = 64 : i8}> : () -> i8 + %2 = "llvm.select"(%arg2, %arg3, %0) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i8, i8) -> i8 + %3 = llvm.add %2, %1 overflow : i8 + "llvm.return"(%3) : (i8) -> () +} +] +def add_nsw_poison_constant_fold_after := [llvm| +{ +^0(%arg2 : i1, %arg3 : i8): + %0 = "llvm.mlir.constant"() <{value = 64 : i8}> : () -> i8 + %1 = "llvm.mlir.constant"() <{value = -127 : i8}> : () -> i8 + %2 = llvm.add %arg3, %0 overflow : i8 + %3 = "llvm.select"(%arg2, %2, %1) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i8, i8) -> i8 + "llvm.return"(%3) : (i8) -> () +} +] +theorem add_nsw_poison_constant_fold_proof : add_nsw_poison_constant_fold_before ⊑ add_nsw_poison_constant_fold_after := by + unfold add_nsw_poison_constant_fold_before add_nsw_poison_constant_fold_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN add_nsw_poison_constant_fold + all_goals (try extract_goal ; sorry) + ---END add_nsw_poison_constant_fold + + + +def add_nsw_before := [llvm| +{ +^0(%arg0 : i1, %arg1 : i8): + %0 = "llvm.mlir.constant"() <{value = 7 : i8}> : () -> i8 + %1 = "llvm.mlir.constant"() <{value = 64 : i8}> : () -> i8 + %2 = "llvm.select"(%arg0, %arg1, %0) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i8, i8) -> i8 + %3 = llvm.add %2, %1 overflow : i8 + "llvm.return"(%3) : (i8) -> () +} +] +def add_nsw_after := [llvm| +{ +^0(%arg0 : i1, %arg1 : i8): + %0 = "llvm.mlir.constant"() <{value = 64 : i8}> : () -> i8 + %1 = "llvm.mlir.constant"() <{value = 71 : i8}> : () -> i8 + %2 = llvm.add %arg1, %0 overflow : i8 + %3 = "llvm.select"(%arg0, %2, %1) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i8, i8) -> i8 + "llvm.return"(%3) : (i8) -> () +} +] +theorem add_nsw_proof : add_nsw_before ⊑ add_nsw_after := by + unfold add_nsw_before add_nsw_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN add_nsw + all_goals (try extract_goal ; sorry) + ---END add_nsw + + diff --git a/SSA/Projects/InstCombine/tests/LLVM/gselecthandhor.lean b/SSA/Projects/InstCombine/tests/LLVM/gselecthandhor.lean new file mode 100644 index 000000000..fb378c122 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/LLVM/gselecthandhor.lean @@ -0,0 +1,788 @@ + +import SSA.Projects.InstCombine.LLVM.PrettyEDSL +import SSA.Projects.InstCombine.TacticAuto +import SSA.Projects.InstCombine.LLVM.Semantics +open LLVM +open BitVec + +open MLIR AST +open Ctxt (Var) + +set_option linter.deprecated false +set_option linter.unreachableTactic false +set_option linter.unusedTactic false +section gselecthandhor_statements + +def logical_and_not_before := [llvm| +{ +^0(%arg262 : i1, %arg263 : i1): + %0 = "llvm.mlir.constant"() <{value = false}> : () -> i1 + %1 = "llvm.select"(%arg262, %0, %arg263) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i1, i1) -> i1 + "llvm.return"(%1) : (i1) -> () +} +] +def logical_and_not_after := [llvm| +{ +^0(%arg262 : i1, %arg263 : i1): + %0 = "llvm.mlir.constant"() <{value = true}> : () -> i1 + %1 = "llvm.mlir.constant"() <{value = false}> : () -> i1 + %2 = llvm.xor %arg262, %0 : i1 + %3 = "llvm.select"(%2, %arg263, %1) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i1, i1) -> i1 + "llvm.return"(%3) : (i1) -> () +} +] +theorem logical_and_not_proof : logical_and_not_before ⊑ logical_and_not_after := by + unfold logical_and_not_before logical_and_not_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN logical_and_not + all_goals (try extract_goal ; sorry) + ---END logical_and_not + + + +def logical_or_not_before := [llvm| +{ +^0(%arg260 : i1, %arg261 : i1): + %0 = "llvm.mlir.constant"() <{value = true}> : () -> i1 + %1 = "llvm.select"(%arg260, %arg261, %0) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i1, i1) -> i1 + "llvm.return"(%1) : (i1) -> () +} +] +def logical_or_not_after := [llvm| +{ +^0(%arg260 : i1, %arg261 : i1): + %0 = "llvm.mlir.constant"() <{value = true}> : () -> i1 + %1 = llvm.xor %arg260, %0 : i1 + %2 = "llvm.select"(%1, %0, %arg261) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i1, i1) -> i1 + "llvm.return"(%2) : (i1) -> () +} +] +theorem logical_or_not_proof : logical_or_not_before ⊑ logical_or_not_after := by + unfold logical_or_not_before logical_or_not_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN logical_or_not + all_goals (try extract_goal ; sorry) + ---END logical_or_not + + + +def logical_and_cond_reuse_before := [llvm| +{ +^0(%arg258 : i1, %arg259 : i1): + %0 = "llvm.select"(%arg258, %arg259, %arg258) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i1, i1) -> i1 + "llvm.return"(%0) : (i1) -> () +} +] +def logical_and_cond_reuse_after := [llvm| +{ +^0(%arg258 : i1, %arg259 : i1): + %0 = "llvm.mlir.constant"() <{value = false}> : () -> i1 + %1 = "llvm.select"(%arg258, %arg259, %0) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i1, i1) -> i1 + "llvm.return"(%1) : (i1) -> () +} +] +theorem logical_and_cond_reuse_proof : logical_and_cond_reuse_before ⊑ logical_and_cond_reuse_after := by + unfold logical_and_cond_reuse_before logical_and_cond_reuse_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN logical_and_cond_reuse + all_goals (try extract_goal ; sorry) + ---END logical_and_cond_reuse + + + +def logical_or_cond_reuse_before := [llvm| +{ +^0(%arg256 : i1, %arg257 : i1): + %0 = "llvm.select"(%arg256, %arg256, %arg257) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i1, i1) -> i1 + "llvm.return"(%0) : (i1) -> () +} +] +def logical_or_cond_reuse_after := [llvm| +{ +^0(%arg256 : i1, %arg257 : i1): + %0 = "llvm.mlir.constant"() <{value = true}> : () -> i1 + %1 = "llvm.select"(%arg256, %0, %arg257) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i1, i1) -> i1 + "llvm.return"(%1) : (i1) -> () +} +] +theorem logical_or_cond_reuse_proof : logical_or_cond_reuse_before ⊑ logical_or_cond_reuse_after := by + unfold logical_or_cond_reuse_before logical_or_cond_reuse_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN logical_or_cond_reuse + all_goals (try extract_goal ; sorry) + ---END logical_or_cond_reuse + + + +def logical_and_not_cond_reuse_before := [llvm| +{ +^0(%arg254 : i1, %arg255 : i1): + %0 = "llvm.mlir.constant"() <{value = true}> : () -> i1 + %1 = llvm.xor %arg254, %0 : i1 + %2 = "llvm.select"(%arg254, %arg255, %1) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i1, i1) -> i1 + "llvm.return"(%2) : (i1) -> () +} +] +def logical_and_not_cond_reuse_after := [llvm| +{ +^0(%arg254 : i1, %arg255 : i1): + %0 = "llvm.mlir.constant"() <{value = true}> : () -> i1 + %1 = llvm.xor %arg254, %0 : i1 + %2 = "llvm.select"(%1, %0, %arg255) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i1, i1) -> i1 + "llvm.return"(%2) : (i1) -> () +} +] +theorem logical_and_not_cond_reuse_proof : logical_and_not_cond_reuse_before ⊑ logical_and_not_cond_reuse_after := by + unfold logical_and_not_cond_reuse_before logical_and_not_cond_reuse_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN logical_and_not_cond_reuse + all_goals (try extract_goal ; sorry) + ---END logical_and_not_cond_reuse + + + +def logical_or_not_cond_reuse_before := [llvm| +{ +^0(%arg252 : i1, %arg253 : i1): + %0 = "llvm.mlir.constant"() <{value = true}> : () -> i1 + %1 = llvm.xor %arg252, %0 : i1 + %2 = "llvm.select"(%arg252, %1, %arg253) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i1, i1) -> i1 + "llvm.return"(%2) : (i1) -> () +} +] +def logical_or_not_cond_reuse_after := [llvm| +{ +^0(%arg252 : i1, %arg253 : i1): + %0 = "llvm.mlir.constant"() <{value = true}> : () -> i1 + %1 = "llvm.mlir.constant"() <{value = false}> : () -> i1 + %2 = llvm.xor %arg252, %0 : i1 + %3 = "llvm.select"(%2, %arg253, %1) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i1, i1) -> i1 + "llvm.return"(%3) : (i1) -> () +} +] +theorem logical_or_not_cond_reuse_proof : logical_or_not_cond_reuse_before ⊑ logical_or_not_cond_reuse_after := by + unfold logical_or_not_cond_reuse_before logical_or_not_cond_reuse_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN logical_or_not_cond_reuse + all_goals (try extract_goal ; sorry) + ---END logical_or_not_cond_reuse + + + +def logical_or_noundef_b_before := [llvm| +{ +^0(%arg244 : i1, %arg245 : i1): + %0 = "llvm.mlir.constant"() <{value = true}> : () -> i1 + %1 = "llvm.select"(%arg244, %0, %arg245) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i1, i1) -> i1 + "llvm.return"(%1) : (i1) -> () +} +] +def logical_or_noundef_b_after := [llvm| +{ +^0(%arg244 : i1, %arg245 : i1): + %0 = llvm.or %arg244, %arg245 : i1 + "llvm.return"(%0) : (i1) -> () +} +] +theorem logical_or_noundef_b_proof : logical_or_noundef_b_before ⊑ logical_or_noundef_b_after := by + unfold logical_or_noundef_b_before logical_or_noundef_b_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN logical_or_noundef_b + all_goals (try extract_goal ; sorry) + ---END logical_or_noundef_b + + + +def logical_and_noundef_b_before := [llvm| +{ +^0(%arg240 : i1, %arg241 : i1): + %0 = "llvm.mlir.constant"() <{value = false}> : () -> i1 + %1 = "llvm.select"(%arg240, %arg241, %0) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i1, i1) -> i1 + "llvm.return"(%1) : (i1) -> () +} +] +def logical_and_noundef_b_after := [llvm| +{ +^0(%arg240 : i1, %arg241 : i1): + %0 = llvm.and %arg240, %arg241 : i1 + "llvm.return"(%0) : (i1) -> () +} +] +theorem logical_and_noundef_b_proof : logical_and_noundef_b_before ⊑ logical_and_noundef_b_after := by + unfold logical_and_noundef_b_before logical_and_noundef_b_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN logical_and_noundef_b + all_goals (try extract_goal ; sorry) + ---END logical_and_noundef_b + + + +def not_not_true_before := [llvm| +{ +^0(%arg238 : i1, %arg239 : i1): + %0 = "llvm.mlir.constant"() <{value = true}> : () -> i1 + %1 = llvm.xor %arg238, %0 : i1 + %2 = llvm.xor %arg239, %0 : i1 + %3 = "llvm.select"(%1, %2, %0) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i1, i1) -> i1 + "llvm.return"(%3) : (i1) -> () +} +] +def not_not_true_after := [llvm| +{ +^0(%arg238 : i1, %arg239 : i1): + %0 = "llvm.mlir.constant"() <{value = true}> : () -> i1 + %1 = llvm.xor %arg239, %0 : i1 + %2 = "llvm.select"(%arg238, %0, %1) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i1, i1) -> i1 + "llvm.return"(%2) : (i1) -> () +} +] +theorem not_not_true_proof : not_not_true_before ⊑ not_not_true_after := by + unfold not_not_true_before not_not_true_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN not_not_true + all_goals (try extract_goal ; sorry) + ---END not_not_true + + + +def not_not_false_before := [llvm| +{ +^0(%arg236 : i1, %arg237 : i1): + %0 = "llvm.mlir.constant"() <{value = true}> : () -> i1 + %1 = "llvm.mlir.constant"() <{value = false}> : () -> i1 + %2 = llvm.xor %arg236, %0 : i1 + %3 = llvm.xor %arg237, %0 : i1 + %4 = "llvm.select"(%2, %3, %1) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i1, i1) -> i1 + "llvm.return"(%4) : (i1) -> () +} +] +def not_not_false_after := [llvm| +{ +^0(%arg236 : i1, %arg237 : i1): + %0 = "llvm.mlir.constant"() <{value = true}> : () -> i1 + %1 = "llvm.select"(%arg236, %0, %arg237) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i1, i1) -> i1 + %2 = llvm.xor %1, %0 : i1 + "llvm.return"(%2) : (i1) -> () +} +] +theorem not_not_false_proof : not_not_false_before ⊑ not_not_false_after := by + unfold not_not_false_before not_not_false_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN not_not_false + all_goals (try extract_goal ; sorry) + ---END not_not_false + + + +def not_true_not_before := [llvm| +{ +^0(%arg234 : i1, %arg235 : i1): + %0 = "llvm.mlir.constant"() <{value = true}> : () -> i1 + %1 = llvm.xor %arg234, %0 : i1 + %2 = llvm.xor %arg235, %0 : i1 + %3 = "llvm.select"(%1, %0, %2) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i1, i1) -> i1 + "llvm.return"(%3) : (i1) -> () +} +] +def not_true_not_after := [llvm| +{ +^0(%arg234 : i1, %arg235 : i1): + %0 = "llvm.mlir.constant"() <{value = false}> : () -> i1 + %1 = "llvm.mlir.constant"() <{value = true}> : () -> i1 + %2 = "llvm.select"(%arg234, %arg235, %0) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i1, i1) -> i1 + %3 = llvm.xor %2, %1 : i1 + "llvm.return"(%3) : (i1) -> () +} +] +theorem not_true_not_proof : not_true_not_before ⊑ not_true_not_after := by + unfold not_true_not_before not_true_not_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN not_true_not + all_goals (try extract_goal ; sorry) + ---END not_true_not + + + +def not_false_not_before := [llvm| +{ +^0(%arg232 : i1, %arg233 : i1): + %0 = "llvm.mlir.constant"() <{value = true}> : () -> i1 + %1 = "llvm.mlir.constant"() <{value = false}> : () -> i1 + %2 = llvm.xor %arg232, %0 : i1 + %3 = llvm.xor %arg233, %0 : i1 + %4 = "llvm.select"(%2, %1, %3) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i1, i1) -> i1 + "llvm.return"(%4) : (i1) -> () +} +] +def not_false_not_after := [llvm| +{ +^0(%arg232 : i1, %arg233 : i1): + %0 = "llvm.mlir.constant"() <{value = true}> : () -> i1 + %1 = "llvm.mlir.constant"() <{value = false}> : () -> i1 + %2 = llvm.xor %arg233, %0 : i1 + %3 = "llvm.select"(%arg232, %2, %1) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i1, i1) -> i1 + "llvm.return"(%3) : (i1) -> () +} +] +theorem not_false_not_proof : not_false_not_before ⊑ not_false_not_after := by + unfold not_false_not_before not_false_not_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN not_false_not + all_goals (try extract_goal ; sorry) + ---END not_false_not + + + +def and_or1_before := [llvm| +{ +^0(%arg203 : i1, %arg204 : i1, %arg205 : i1): + %0 = "llvm.mlir.constant"() <{value = true}> : () -> i1 + %1 = llvm.xor %arg203, %0 : i1 + %2 = llvm.or %1, %arg205 : i1 + %3 = "llvm.select"(%2, %arg203, %arg204) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i1, i1) -> i1 + "llvm.return"(%3) : (i1) -> () +} +] +def and_or1_after := [llvm| +{ +^0(%arg203 : i1, %arg204 : i1, %arg205 : i1): + %0 = "llvm.mlir.constant"() <{value = true}> : () -> i1 + %1 = "llvm.mlir.constant"() <{value = false}> : () -> i1 + %2 = "llvm.select"(%arg205, %0, %arg204) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i1, i1) -> i1 + %3 = "llvm.select"(%arg203, %2, %1) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i1, i1) -> i1 + "llvm.return"(%3) : (i1) -> () +} +] +theorem and_or1_proof : and_or1_before ⊑ and_or1_after := by + unfold and_or1_before and_or1_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN and_or1 + all_goals (try extract_goal ; sorry) + ---END and_or1 + + + +def and_or2_before := [llvm| +{ +^0(%arg200 : i1, %arg201 : i1, %arg202 : i1): + %0 = "llvm.mlir.constant"() <{value = true}> : () -> i1 + %1 = llvm.xor %arg202, %0 : i1 + %2 = llvm.and %1, %arg201 : i1 + %3 = "llvm.select"(%2, %arg200, %arg201) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i1, i1) -> i1 + "llvm.return"(%3) : (i1) -> () +} +] +def and_or2_after := [llvm| +{ +^0(%arg200 : i1, %arg201 : i1, %arg202 : i1): + %0 = "llvm.mlir.constant"() <{value = true}> : () -> i1 + %1 = "llvm.mlir.constant"() <{value = false}> : () -> i1 + %2 = "llvm.select"(%arg202, %0, %arg200) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i1, i1) -> i1 + %3 = "llvm.select"(%arg201, %2, %1) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i1, i1) -> i1 + "llvm.return"(%3) : (i1) -> () +} +] +theorem and_or2_proof : and_or2_before ⊑ and_or2_after := by + unfold and_or2_before and_or2_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN and_or2 + all_goals (try extract_goal ; sorry) + ---END and_or2 + + + +def and_or1_commuted_before := [llvm| +{ +^0(%arg197 : i1, %arg198 : i1, %arg199 : i1): + %0 = "llvm.mlir.constant"() <{value = true}> : () -> i1 + %1 = llvm.xor %arg197, %0 : i1 + %2 = llvm.or %arg199, %1 : i1 + %3 = "llvm.select"(%2, %arg197, %arg198) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i1, i1) -> i1 + "llvm.return"(%3) : (i1) -> () +} +] +def and_or1_commuted_after := [llvm| +{ +^0(%arg197 : i1, %arg198 : i1, %arg199 : i1): + %0 = "llvm.mlir.constant"() <{value = true}> : () -> i1 + %1 = "llvm.mlir.constant"() <{value = false}> : () -> i1 + %2 = "llvm.select"(%arg199, %0, %arg198) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i1, i1) -> i1 + %3 = "llvm.select"(%arg197, %2, %1) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i1, i1) -> i1 + "llvm.return"(%3) : (i1) -> () +} +] +theorem and_or1_commuted_proof : and_or1_commuted_before ⊑ and_or1_commuted_after := by + unfold and_or1_commuted_before and_or1_commuted_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN and_or1_commuted + all_goals (try extract_goal ; sorry) + ---END and_or1_commuted + + + +def and_or2_commuted_before := [llvm| +{ +^0(%arg194 : i1, %arg195 : i1, %arg196 : i1): + %0 = "llvm.mlir.constant"() <{value = true}> : () -> i1 + %1 = llvm.xor %arg196, %0 : i1 + %2 = llvm.and %arg195, %1 : i1 + %3 = "llvm.select"(%2, %arg194, %arg195) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i1, i1) -> i1 + "llvm.return"(%3) : (i1) -> () +} +] +def and_or2_commuted_after := [llvm| +{ +^0(%arg194 : i1, %arg195 : i1, %arg196 : i1): + %0 = "llvm.mlir.constant"() <{value = true}> : () -> i1 + %1 = "llvm.mlir.constant"() <{value = false}> : () -> i1 + %2 = "llvm.select"(%arg196, %0, %arg194) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i1, i1) -> i1 + %3 = "llvm.select"(%arg195, %2, %1) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i1, i1) -> i1 + "llvm.return"(%3) : (i1) -> () +} +] +theorem and_or2_commuted_proof : and_or2_commuted_before ⊑ and_or2_commuted_after := by + unfold and_or2_commuted_before and_or2_commuted_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN and_or2_commuted + all_goals (try extract_goal ; sorry) + ---END and_or2_commuted + + + +def and_or1_wrong_operand_before := [llvm| +{ +^0(%arg176 : i1, %arg177 : i1, %arg178 : i1, %arg179 : i1): + %0 = "llvm.mlir.constant"() <{value = true}> : () -> i1 + %1 = llvm.xor %arg176, %0 : i1 + %2 = llvm.or %1, %arg178 : i1 + %3 = "llvm.select"(%2, %arg179, %arg177) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i1, i1) -> i1 + "llvm.return"(%3) : (i1) -> () +} +] +def and_or1_wrong_operand_after := [llvm| +{ +^0(%arg176 : i1, %arg177 : i1, %arg178 : i1, %arg179 : i1): + %0 = "llvm.mlir.constant"() <{value = true}> : () -> i1 + %1 = llvm.xor %arg176, %0 : i1 + %2 = llvm.or %arg178, %1 : i1 + %3 = "llvm.select"(%2, %arg179, %arg177) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i1, i1) -> i1 + "llvm.return"(%3) : (i1) -> () +} +] +theorem and_or1_wrong_operand_proof : and_or1_wrong_operand_before ⊑ and_or1_wrong_operand_after := by + unfold and_or1_wrong_operand_before and_or1_wrong_operand_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN and_or1_wrong_operand + all_goals (try extract_goal ; sorry) + ---END and_or1_wrong_operand + + + +def and_or2_wrong_operand_before := [llvm| +{ +^0(%arg172 : i1, %arg173 : i1, %arg174 : i1, %arg175 : i1): + %0 = "llvm.mlir.constant"() <{value = true}> : () -> i1 + %1 = llvm.xor %arg174, %0 : i1 + %2 = llvm.and %1, %arg173 : i1 + %3 = "llvm.select"(%2, %arg172, %arg175) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i1, i1) -> i1 + "llvm.return"(%3) : (i1) -> () +} +] +def and_or2_wrong_operand_after := [llvm| +{ +^0(%arg172 : i1, %arg173 : i1, %arg174 : i1, %arg175 : i1): + %0 = "llvm.mlir.constant"() <{value = true}> : () -> i1 + %1 = llvm.xor %arg174, %0 : i1 + %2 = llvm.and %arg173, %1 : i1 + %3 = "llvm.select"(%2, %arg172, %arg175) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i1, i1) -> i1 + "llvm.return"(%3) : (i1) -> () +} +] +theorem and_or2_wrong_operand_proof : and_or2_wrong_operand_before ⊑ and_or2_wrong_operand_after := by + unfold and_or2_wrong_operand_before and_or2_wrong_operand_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN and_or2_wrong_operand + all_goals (try extract_goal ; sorry) + ---END and_or2_wrong_operand + + + +def or_and1_before := [llvm| +{ +^0(%arg141 : i1, %arg142 : i1, %arg143 : i1): + %0 = "llvm.mlir.constant"() <{value = true}> : () -> i1 + %1 = llvm.xor %arg142, %0 : i1 + %2 = llvm.and %1, %arg143 : i1 + %3 = "llvm.select"(%2, %arg141, %arg142) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i1, i1) -> i1 + "llvm.return"(%3) : (i1) -> () +} +] +def or_and1_after := [llvm| +{ +^0(%arg141 : i1, %arg142 : i1, %arg143 : i1): + %0 = "llvm.mlir.constant"() <{value = false}> : () -> i1 + %1 = "llvm.mlir.constant"() <{value = true}> : () -> i1 + %2 = "llvm.select"(%arg143, %arg141, %0) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i1, i1) -> i1 + %3 = "llvm.select"(%arg142, %1, %2) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i1, i1) -> i1 + "llvm.return"(%3) : (i1) -> () +} +] +theorem or_and1_proof : or_and1_before ⊑ or_and1_after := by + unfold or_and1_before or_and1_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN or_and1 + all_goals (try extract_goal ; sorry) + ---END or_and1 + + + +def or_and2_before := [llvm| +{ +^0(%arg138 : i1, %arg139 : i1, %arg140 : i1): + %0 = "llvm.mlir.constant"() <{value = true}> : () -> i1 + %1 = llvm.xor %arg140, %0 : i1 + %2 = llvm.or %1, %arg138 : i1 + %3 = "llvm.select"(%2, %arg138, %arg139) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i1, i1) -> i1 + "llvm.return"(%3) : (i1) -> () +} +] +def or_and2_after := [llvm| +{ +^0(%arg138 : i1, %arg139 : i1, %arg140 : i1): + %0 = "llvm.mlir.constant"() <{value = false}> : () -> i1 + %1 = "llvm.mlir.constant"() <{value = true}> : () -> i1 + %2 = "llvm.select"(%arg140, %arg139, %0) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i1, i1) -> i1 + %3 = "llvm.select"(%arg138, %1, %2) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i1, i1) -> i1 + "llvm.return"(%3) : (i1) -> () +} +] +theorem or_and2_proof : or_and2_before ⊑ or_and2_after := by + unfold or_and2_before or_and2_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN or_and2 + all_goals (try extract_goal ; sorry) + ---END or_and2 + + + +def or_and1_commuted_before := [llvm| +{ +^0(%arg135 : i1, %arg136 : i1, %arg137 : i1): + %0 = "llvm.mlir.constant"() <{value = true}> : () -> i1 + %1 = llvm.xor %arg136, %0 : i1 + %2 = llvm.and %arg137, %1 : i1 + %3 = "llvm.select"(%2, %arg135, %arg136) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i1, i1) -> i1 + "llvm.return"(%3) : (i1) -> () +} +] +def or_and1_commuted_after := [llvm| +{ +^0(%arg135 : i1, %arg136 : i1, %arg137 : i1): + %0 = "llvm.mlir.constant"() <{value = false}> : () -> i1 + %1 = "llvm.mlir.constant"() <{value = true}> : () -> i1 + %2 = "llvm.select"(%arg137, %arg135, %0) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i1, i1) -> i1 + %3 = "llvm.select"(%arg136, %1, %2) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i1, i1) -> i1 + "llvm.return"(%3) : (i1) -> () +} +] +theorem or_and1_commuted_proof : or_and1_commuted_before ⊑ or_and1_commuted_after := by + unfold or_and1_commuted_before or_and1_commuted_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN or_and1_commuted + all_goals (try extract_goal ; sorry) + ---END or_and1_commuted + + + +def or_and2_commuted_before := [llvm| +{ +^0(%arg132 : i1, %arg133 : i1, %arg134 : i1): + %0 = "llvm.mlir.constant"() <{value = true}> : () -> i1 + %1 = llvm.xor %arg134, %0 : i1 + %2 = llvm.or %arg132, %1 : i1 + %3 = "llvm.select"(%2, %arg132, %arg133) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i1, i1) -> i1 + "llvm.return"(%3) : (i1) -> () +} +] +def or_and2_commuted_after := [llvm| +{ +^0(%arg132 : i1, %arg133 : i1, %arg134 : i1): + %0 = "llvm.mlir.constant"() <{value = false}> : () -> i1 + %1 = "llvm.mlir.constant"() <{value = true}> : () -> i1 + %2 = "llvm.select"(%arg134, %arg133, %0) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i1, i1) -> i1 + %3 = "llvm.select"(%arg132, %1, %2) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i1, i1) -> i1 + "llvm.return"(%3) : (i1) -> () +} +] +theorem or_and2_commuted_proof : or_and2_commuted_before ⊑ or_and2_commuted_after := by + unfold or_and2_commuted_before or_and2_commuted_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN or_and2_commuted + all_goals (try extract_goal ; sorry) + ---END or_and2_commuted + + + +def pr64558_before := [llvm| +{ +^0(%arg108 : i1, %arg109 : i1): + %0 = "llvm.mlir.constant"() <{value = true}> : () -> i1 + %1 = llvm.xor %arg109, %0 : i1 + %2 = llvm.and %1, %arg108 : i1 + %3 = "llvm.select"(%2, %arg108, %arg109) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i1, i1) -> i1 + "llvm.return"(%3) : (i1) -> () +} +] +def pr64558_after := [llvm| +{ +^0(%arg108 : i1, %arg109 : i1): + %0 = llvm.or %arg109, %arg108 : i1 + "llvm.return"(%0) : (i1) -> () +} +] +theorem pr64558_proof : pr64558_before ⊑ pr64558_after := by + unfold pr64558_before pr64558_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN pr64558 + all_goals (try extract_goal ; sorry) + ---END pr64558 + + diff --git a/SSA/Projects/InstCombine/tests/LLVM/gselecthdivrem.lean b/SSA/Projects/InstCombine/tests/LLVM/gselecthdivrem.lean new file mode 100644 index 000000000..f30ce7417 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/LLVM/gselecthdivrem.lean @@ -0,0 +1,334 @@ + +import SSA.Projects.InstCombine.LLVM.PrettyEDSL +import SSA.Projects.InstCombine.TacticAuto +import SSA.Projects.InstCombine.LLVM.Semantics +open LLVM +open BitVec + +open MLIR AST +open Ctxt (Var) + +set_option linter.deprecated false +set_option linter.unreachableTactic false +set_option linter.unusedTactic false +section gselecthdivrem_statements + +def udiv_common_divisor_before := [llvm| +{ +^0(%arg65 : i1, %arg66 : i5, %arg67 : i5, %arg68 : i5): + %0 = llvm.udiv %arg67, %arg66 : i5 + %1 = llvm.udiv %arg68, %arg66 : i5 + %2 = "llvm.select"(%arg65, %1, %0) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i5, i5) -> i5 + "llvm.return"(%2) : (i5) -> () +} +] +def udiv_common_divisor_after := [llvm| +{ +^0(%arg65 : i1, %arg66 : i5, %arg67 : i5, %arg68 : i5): + %0 = "llvm.select"(%arg65, %arg68, %arg67) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i5, i5) -> i5 + %1 = llvm.udiv %0, %arg66 : i5 + "llvm.return"(%1) : (i5) -> () +} +] +theorem udiv_common_divisor_proof : udiv_common_divisor_before ⊑ udiv_common_divisor_after := by + unfold udiv_common_divisor_before udiv_common_divisor_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN udiv_common_divisor + all_goals (try extract_goal ; sorry) + ---END udiv_common_divisor + + + +def urem_common_divisor_before := [llvm| +{ +^0(%arg61 : i1, %arg62 : i5, %arg63 : i5, %arg64 : i5): + %0 = llvm.urem %arg63, %arg62 : i5 + %1 = llvm.urem %arg64, %arg62 : i5 + %2 = "llvm.select"(%arg61, %1, %0) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i5, i5) -> i5 + "llvm.return"(%2) : (i5) -> () +} +] +def urem_common_divisor_after := [llvm| +{ +^0(%arg61 : i1, %arg62 : i5, %arg63 : i5, %arg64 : i5): + %0 = "llvm.select"(%arg61, %arg64, %arg63) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i5, i5) -> i5 + %1 = llvm.urem %0, %arg62 : i5 + "llvm.return"(%1) : (i5) -> () +} +] +theorem urem_common_divisor_proof : urem_common_divisor_before ⊑ urem_common_divisor_after := by + unfold urem_common_divisor_before urem_common_divisor_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN urem_common_divisor + all_goals (try extract_goal ; sorry) + ---END urem_common_divisor + + + +def sdiv_common_divisor_defined_cond_before := [llvm| +{ +^0(%arg41 : i1, %arg42 : i5, %arg43 : i5, %arg44 : i5): + %0 = llvm.sdiv %arg43, %arg42 : i5 + %1 = llvm.sdiv %arg44, %arg42 : i5 + %2 = "llvm.select"(%arg41, %1, %0) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i5, i5) -> i5 + "llvm.return"(%2) : (i5) -> () +} +] +def sdiv_common_divisor_defined_cond_after := [llvm| +{ +^0(%arg41 : i1, %arg42 : i5, %arg43 : i5, %arg44 : i5): + %0 = "llvm.select"(%arg41, %arg44, %arg43) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i5, i5) -> i5 + %1 = llvm.sdiv %0, %arg42 : i5 + "llvm.return"(%1) : (i5) -> () +} +] +theorem sdiv_common_divisor_defined_cond_proof : sdiv_common_divisor_defined_cond_before ⊑ sdiv_common_divisor_defined_cond_after := by + unfold sdiv_common_divisor_defined_cond_before sdiv_common_divisor_defined_cond_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN sdiv_common_divisor_defined_cond + all_goals (try extract_goal ; sorry) + ---END sdiv_common_divisor_defined_cond + + + +def srem_common_divisor_defined_cond_before := [llvm| +{ +^0(%arg37 : i1, %arg38 : i5, %arg39 : i5, %arg40 : i5): + %0 = llvm.srem %arg39, %arg38 : i5 + %1 = llvm.srem %arg40, %arg38 : i5 + %2 = "llvm.select"(%arg37, %1, %0) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i5, i5) -> i5 + "llvm.return"(%2) : (i5) -> () +} +] +def srem_common_divisor_defined_cond_after := [llvm| +{ +^0(%arg37 : i1, %arg38 : i5, %arg39 : i5, %arg40 : i5): + %0 = "llvm.select"(%arg37, %arg40, %arg39) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i5, i5) -> i5 + %1 = llvm.srem %0, %arg38 : i5 + "llvm.return"(%1) : (i5) -> () +} +] +theorem srem_common_divisor_defined_cond_proof : srem_common_divisor_defined_cond_before ⊑ srem_common_divisor_defined_cond_after := by + unfold srem_common_divisor_defined_cond_before srem_common_divisor_defined_cond_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN srem_common_divisor_defined_cond + all_goals (try extract_goal ; sorry) + ---END srem_common_divisor_defined_cond + + + +def udiv_common_divisor_defined_cond_before := [llvm| +{ +^0(%arg33 : i1, %arg34 : i5, %arg35 : i5, %arg36 : i5): + %0 = llvm.udiv %arg35, %arg34 : i5 + %1 = llvm.udiv %arg36, %arg34 : i5 + %2 = "llvm.select"(%arg33, %1, %0) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i5, i5) -> i5 + "llvm.return"(%2) : (i5) -> () +} +] +def udiv_common_divisor_defined_cond_after := [llvm| +{ +^0(%arg33 : i1, %arg34 : i5, %arg35 : i5, %arg36 : i5): + %0 = "llvm.select"(%arg33, %arg36, %arg35) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i5, i5) -> i5 + %1 = llvm.udiv %0, %arg34 : i5 + "llvm.return"(%1) : (i5) -> () +} +] +theorem udiv_common_divisor_defined_cond_proof : udiv_common_divisor_defined_cond_before ⊑ udiv_common_divisor_defined_cond_after := by + unfold udiv_common_divisor_defined_cond_before udiv_common_divisor_defined_cond_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN udiv_common_divisor_defined_cond + all_goals (try extract_goal ; sorry) + ---END udiv_common_divisor_defined_cond + + + +def urem_common_divisor_defined_cond_before := [llvm| +{ +^0(%arg29 : i1, %arg30 : i5, %arg31 : i5, %arg32 : i5): + %0 = llvm.urem %arg31, %arg30 : i5 + %1 = llvm.urem %arg32, %arg30 : i5 + %2 = "llvm.select"(%arg29, %1, %0) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i5, i5) -> i5 + "llvm.return"(%2) : (i5) -> () +} +] +def urem_common_divisor_defined_cond_after := [llvm| +{ +^0(%arg29 : i1, %arg30 : i5, %arg31 : i5, %arg32 : i5): + %0 = "llvm.select"(%arg29, %arg32, %arg31) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i5, i5) -> i5 + %1 = llvm.urem %0, %arg30 : i5 + "llvm.return"(%1) : (i5) -> () +} +] +theorem urem_common_divisor_defined_cond_proof : urem_common_divisor_defined_cond_before ⊑ urem_common_divisor_defined_cond_after := by + unfold urem_common_divisor_defined_cond_before urem_common_divisor_defined_cond_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN urem_common_divisor_defined_cond + all_goals (try extract_goal ; sorry) + ---END urem_common_divisor_defined_cond + + + +def sdiv_common_dividend_defined_cond_before := [llvm| +{ +^0(%arg25 : i1, %arg26 : i5, %arg27 : i5, %arg28 : i5): + %0 = llvm.sdiv %arg26, %arg27 : i5 + %1 = llvm.sdiv %arg26, %arg28 : i5 + %2 = "llvm.select"(%arg25, %1, %0) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i5, i5) -> i5 + "llvm.return"(%2) : (i5) -> () +} +] +def sdiv_common_dividend_defined_cond_after := [llvm| +{ +^0(%arg25 : i1, %arg26 : i5, %arg27 : i5, %arg28 : i5): + %0 = "llvm.select"(%arg25, %arg28, %arg27) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i5, i5) -> i5 + %1 = llvm.sdiv %arg26, %0 : i5 + "llvm.return"(%1) : (i5) -> () +} +] +theorem sdiv_common_dividend_defined_cond_proof : sdiv_common_dividend_defined_cond_before ⊑ sdiv_common_dividend_defined_cond_after := by + unfold sdiv_common_dividend_defined_cond_before sdiv_common_dividend_defined_cond_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN sdiv_common_dividend_defined_cond + all_goals (try extract_goal ; sorry) + ---END sdiv_common_dividend_defined_cond + + + +def srem_common_dividend_defined_cond_before := [llvm| +{ +^0(%arg21 : i1, %arg22 : i5, %arg23 : i5, %arg24 : i5): + %0 = llvm.srem %arg22, %arg23 : i5 + %1 = llvm.srem %arg22, %arg24 : i5 + %2 = "llvm.select"(%arg21, %1, %0) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i5, i5) -> i5 + "llvm.return"(%2) : (i5) -> () +} +] +def srem_common_dividend_defined_cond_after := [llvm| +{ +^0(%arg21 : i1, %arg22 : i5, %arg23 : i5, %arg24 : i5): + %0 = "llvm.select"(%arg21, %arg24, %arg23) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i5, i5) -> i5 + %1 = llvm.srem %arg22, %0 : i5 + "llvm.return"(%1) : (i5) -> () +} +] +theorem srem_common_dividend_defined_cond_proof : srem_common_dividend_defined_cond_before ⊑ srem_common_dividend_defined_cond_after := by + unfold srem_common_dividend_defined_cond_before srem_common_dividend_defined_cond_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN srem_common_dividend_defined_cond + all_goals (try extract_goal ; sorry) + ---END srem_common_dividend_defined_cond + + + +def udiv_common_dividend_defined_cond_before := [llvm| +{ +^0(%arg17 : i1, %arg18 : i5, %arg19 : i5, %arg20 : i5): + %0 = llvm.udiv %arg18, %arg19 : i5 + %1 = llvm.udiv %arg18, %arg20 : i5 + %2 = "llvm.select"(%arg17, %1, %0) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i5, i5) -> i5 + "llvm.return"(%2) : (i5) -> () +} +] +def udiv_common_dividend_defined_cond_after := [llvm| +{ +^0(%arg17 : i1, %arg18 : i5, %arg19 : i5, %arg20 : i5): + %0 = "llvm.select"(%arg17, %arg20, %arg19) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i5, i5) -> i5 + %1 = llvm.udiv %arg18, %0 : i5 + "llvm.return"(%1) : (i5) -> () +} +] +theorem udiv_common_dividend_defined_cond_proof : udiv_common_dividend_defined_cond_before ⊑ udiv_common_dividend_defined_cond_after := by + unfold udiv_common_dividend_defined_cond_before udiv_common_dividend_defined_cond_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN udiv_common_dividend_defined_cond + all_goals (try extract_goal ; sorry) + ---END udiv_common_dividend_defined_cond + + + +def urem_common_dividend_defined_cond_before := [llvm| +{ +^0(%arg13 : i1, %arg14 : i5, %arg15 : i5, %arg16 : i5): + %0 = llvm.urem %arg14, %arg15 : i5 + %1 = llvm.urem %arg14, %arg16 : i5 + %2 = "llvm.select"(%arg13, %1, %0) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i5, i5) -> i5 + "llvm.return"(%2) : (i5) -> () +} +] +def urem_common_dividend_defined_cond_after := [llvm| +{ +^0(%arg13 : i1, %arg14 : i5, %arg15 : i5, %arg16 : i5): + %0 = "llvm.select"(%arg13, %arg16, %arg15) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i5, i5) -> i5 + %1 = llvm.urem %arg14, %0 : i5 + "llvm.return"(%1) : (i5) -> () +} +] +theorem urem_common_dividend_defined_cond_proof : urem_common_dividend_defined_cond_before ⊑ urem_common_dividend_defined_cond_after := by + unfold urem_common_dividend_defined_cond_before urem_common_dividend_defined_cond_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN urem_common_dividend_defined_cond + all_goals (try extract_goal ; sorry) + ---END urem_common_dividend_defined_cond + + diff --git a/SSA/Projects/InstCombine/tests/LLVM/gselecthfactorize.lean b/SSA/Projects/InstCombine/tests/LLVM/gselecthfactorize.lean new file mode 100644 index 000000000..ab832e60b --- /dev/null +++ b/SSA/Projects/InstCombine/tests/LLVM/gselecthfactorize.lean @@ -0,0 +1,1298 @@ + +import SSA.Projects.InstCombine.LLVM.PrettyEDSL +import SSA.Projects.InstCombine.TacticAuto +import SSA.Projects.InstCombine.LLVM.Semantics +open LLVM +open BitVec + +open MLIR AST +open Ctxt (Var) + +set_option linter.deprecated false +set_option linter.unreachableTactic false +set_option linter.unusedTactic false +section gselecthfactorize_statements + +def logic_and_logic_or_1_before := [llvm| +{ +^0(%arg177 : i1, %arg178 : i1, %arg179 : i1): + %0 = "llvm.mlir.constant"() <{value = false}> : () -> i1 + %1 = "llvm.mlir.constant"() <{value = true}> : () -> i1 + %2 = "llvm.select"(%arg177, %arg178, %0) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i1, i1) -> i1 + %3 = "llvm.select"(%arg177, %arg179, %0) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i1, i1) -> i1 + %4 = "llvm.select"(%2, %1, %3) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i1, i1) -> i1 + "llvm.return"(%4) : (i1) -> () +} +] +def logic_and_logic_or_1_after := [llvm| +{ +^0(%arg177 : i1, %arg178 : i1, %arg179 : i1): + %0 = "llvm.mlir.constant"() <{value = true}> : () -> i1 + %1 = "llvm.mlir.constant"() <{value = false}> : () -> i1 + %2 = "llvm.select"(%arg178, %0, %arg179) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i1, i1) -> i1 + %3 = "llvm.select"(%arg177, %2, %1) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i1, i1) -> i1 + "llvm.return"(%3) : (i1) -> () +} +] +theorem logic_and_logic_or_1_proof : logic_and_logic_or_1_before ⊑ logic_and_logic_or_1_after := by + unfold logic_and_logic_or_1_before logic_and_logic_or_1_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN logic_and_logic_or_1 + all_goals (try extract_goal ; sorry) + ---END logic_and_logic_or_1 + + + +def logic_and_logic_or_2_before := [llvm| +{ +^0(%arg174 : i1, %arg175 : i1, %arg176 : i1): + %0 = "llvm.mlir.constant"() <{value = false}> : () -> i1 + %1 = "llvm.mlir.constant"() <{value = true}> : () -> i1 + %2 = "llvm.select"(%arg175, %arg174, %0) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i1, i1) -> i1 + %3 = "llvm.select"(%arg174, %arg176, %0) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i1, i1) -> i1 + %4 = "llvm.select"(%2, %1, %3) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i1, i1) -> i1 + "llvm.return"(%4) : (i1) -> () +} +] +def logic_and_logic_or_2_after := [llvm| +{ +^0(%arg174 : i1, %arg175 : i1, %arg176 : i1): + %0 = "llvm.mlir.constant"() <{value = true}> : () -> i1 + %1 = "llvm.mlir.constant"() <{value = false}> : () -> i1 + %2 = "llvm.select"(%arg175, %0, %arg176) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i1, i1) -> i1 + %3 = "llvm.select"(%arg174, %2, %1) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i1, i1) -> i1 + "llvm.return"(%3) : (i1) -> () +} +] +theorem logic_and_logic_or_2_proof : logic_and_logic_or_2_before ⊑ logic_and_logic_or_2_after := by + unfold logic_and_logic_or_2_before logic_and_logic_or_2_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN logic_and_logic_or_2 + all_goals (try extract_goal ; sorry) + ---END logic_and_logic_or_2 + + + +def logic_and_logic_or_3_before := [llvm| +{ +^0(%arg171 : i1, %arg172 : i1, %arg173 : i1): + %0 = "llvm.mlir.constant"() <{value = false}> : () -> i1 + %1 = "llvm.mlir.constant"() <{value = true}> : () -> i1 + %2 = "llvm.select"(%arg172, %arg171, %0) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i1, i1) -> i1 + %3 = "llvm.select"(%arg173, %arg171, %0) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i1, i1) -> i1 + %4 = "llvm.select"(%2, %1, %3) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i1, i1) -> i1 + "llvm.return"(%4) : (i1) -> () +} +] +def logic_and_logic_or_3_after := [llvm| +{ +^0(%arg171 : i1, %arg172 : i1, %arg173 : i1): + %0 = "llvm.mlir.constant"() <{value = true}> : () -> i1 + %1 = "llvm.mlir.constant"() <{value = false}> : () -> i1 + %2 = "llvm.select"(%arg172, %0, %arg173) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i1, i1) -> i1 + %3 = "llvm.select"(%2, %arg171, %1) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i1, i1) -> i1 + "llvm.return"(%3) : (i1) -> () +} +] +theorem logic_and_logic_or_3_proof : logic_and_logic_or_3_before ⊑ logic_and_logic_or_3_after := by + unfold logic_and_logic_or_3_before logic_and_logic_or_3_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN logic_and_logic_or_3 + all_goals (try extract_goal ; sorry) + ---END logic_and_logic_or_3 + + + +def logic_and_logic_or_4_before := [llvm| +{ +^0(%arg168 : i1, %arg169 : i1, %arg170 : i1): + %0 = "llvm.mlir.constant"() <{value = false}> : () -> i1 + %1 = "llvm.mlir.constant"() <{value = true}> : () -> i1 + %2 = "llvm.select"(%arg168, %arg169, %0) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i1, i1) -> i1 + %3 = "llvm.select"(%arg170, %arg168, %0) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i1, i1) -> i1 + %4 = "llvm.select"(%2, %1, %3) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i1, i1) -> i1 + "llvm.return"(%4) : (i1) -> () +} +] +def logic_and_logic_or_4_after := [llvm| +{ +^0(%arg168 : i1, %arg169 : i1, %arg170 : i1): + %0 = "llvm.mlir.constant"() <{value = true}> : () -> i1 + %1 = "llvm.mlir.constant"() <{value = false}> : () -> i1 + %2 = "llvm.select"(%arg169, %0, %arg170) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i1, i1) -> i1 + %3 = "llvm.select"(%arg168, %2, %1) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i1, i1) -> i1 + "llvm.return"(%3) : (i1) -> () +} +] +theorem logic_and_logic_or_4_proof : logic_and_logic_or_4_before ⊑ logic_and_logic_or_4_after := by + unfold logic_and_logic_or_4_before logic_and_logic_or_4_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN logic_and_logic_or_4 + all_goals (try extract_goal ; sorry) + ---END logic_and_logic_or_4 + + + +def logic_and_logic_or_5_before := [llvm| +{ +^0(%arg165 : i1, %arg166 : i1, %arg167 : i1): + %0 = "llvm.mlir.constant"() <{value = false}> : () -> i1 + %1 = "llvm.mlir.constant"() <{value = true}> : () -> i1 + %2 = "llvm.select"(%arg165, %arg166, %0) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i1, i1) -> i1 + %3 = "llvm.select"(%arg165, %arg167, %0) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i1, i1) -> i1 + %4 = "llvm.select"(%3, %1, %2) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i1, i1) -> i1 + "llvm.return"(%4) : (i1) -> () +} +] +def logic_and_logic_or_5_after := [llvm| +{ +^0(%arg165 : i1, %arg166 : i1, %arg167 : i1): + %0 = "llvm.mlir.constant"() <{value = true}> : () -> i1 + %1 = "llvm.mlir.constant"() <{value = false}> : () -> i1 + %2 = "llvm.select"(%arg167, %0, %arg166) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i1, i1) -> i1 + %3 = "llvm.select"(%arg165, %2, %1) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i1, i1) -> i1 + "llvm.return"(%3) : (i1) -> () +} +] +theorem logic_and_logic_or_5_proof : logic_and_logic_or_5_before ⊑ logic_and_logic_or_5_after := by + unfold logic_and_logic_or_5_before logic_and_logic_or_5_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN logic_and_logic_or_5 + all_goals (try extract_goal ; sorry) + ---END logic_and_logic_or_5 + + + +def logic_and_logic_or_6_before := [llvm| +{ +^0(%arg162 : i1, %arg163 : i1, %arg164 : i1): + %0 = "llvm.mlir.constant"() <{value = false}> : () -> i1 + %1 = "llvm.mlir.constant"() <{value = true}> : () -> i1 + %2 = "llvm.select"(%arg163, %arg162, %0) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i1, i1) -> i1 + %3 = "llvm.select"(%arg162, %arg164, %0) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i1, i1) -> i1 + %4 = "llvm.select"(%3, %1, %2) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i1, i1) -> i1 + "llvm.return"(%4) : (i1) -> () +} +] +def logic_and_logic_or_6_after := [llvm| +{ +^0(%arg162 : i1, %arg163 : i1, %arg164 : i1): + %0 = "llvm.mlir.constant"() <{value = true}> : () -> i1 + %1 = "llvm.mlir.constant"() <{value = false}> : () -> i1 + %2 = "llvm.select"(%arg164, %0, %arg163) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i1, i1) -> i1 + %3 = "llvm.select"(%arg162, %2, %1) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i1, i1) -> i1 + "llvm.return"(%3) : (i1) -> () +} +] +theorem logic_and_logic_or_6_proof : logic_and_logic_or_6_before ⊑ logic_and_logic_or_6_after := by + unfold logic_and_logic_or_6_before logic_and_logic_or_6_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN logic_and_logic_or_6 + all_goals (try extract_goal ; sorry) + ---END logic_and_logic_or_6 + + + +def logic_and_logic_or_7_before := [llvm| +{ +^0(%arg159 : i1, %arg160 : i1, %arg161 : i1): + %0 = "llvm.mlir.constant"() <{value = false}> : () -> i1 + %1 = "llvm.mlir.constant"() <{value = true}> : () -> i1 + %2 = "llvm.select"(%arg160, %arg159, %0) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i1, i1) -> i1 + %3 = "llvm.select"(%arg161, %arg159, %0) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i1, i1) -> i1 + %4 = "llvm.select"(%3, %1, %2) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i1, i1) -> i1 + "llvm.return"(%4) : (i1) -> () +} +] +def logic_and_logic_or_7_after := [llvm| +{ +^0(%arg159 : i1, %arg160 : i1, %arg161 : i1): + %0 = "llvm.mlir.constant"() <{value = true}> : () -> i1 + %1 = "llvm.mlir.constant"() <{value = false}> : () -> i1 + %2 = "llvm.select"(%arg161, %0, %arg160) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i1, i1) -> i1 + %3 = "llvm.select"(%2, %arg159, %1) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i1, i1) -> i1 + "llvm.return"(%3) : (i1) -> () +} +] +theorem logic_and_logic_or_7_proof : logic_and_logic_or_7_before ⊑ logic_and_logic_or_7_after := by + unfold logic_and_logic_or_7_before logic_and_logic_or_7_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN logic_and_logic_or_7 + all_goals (try extract_goal ; sorry) + ---END logic_and_logic_or_7 + + + +def logic_and_logic_or_8_before := [llvm| +{ +^0(%arg156 : i1, %arg157 : i1, %arg158 : i1): + %0 = "llvm.mlir.constant"() <{value = false}> : () -> i1 + %1 = "llvm.mlir.constant"() <{value = true}> : () -> i1 + %2 = "llvm.select"(%arg156, %arg157, %0) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i1, i1) -> i1 + %3 = "llvm.select"(%arg158, %arg156, %0) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i1, i1) -> i1 + %4 = "llvm.select"(%3, %1, %2) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i1, i1) -> i1 + "llvm.return"(%4) : (i1) -> () +} +] +def logic_and_logic_or_8_after := [llvm| +{ +^0(%arg156 : i1, %arg157 : i1, %arg158 : i1): + %0 = "llvm.mlir.constant"() <{value = true}> : () -> i1 + %1 = "llvm.mlir.constant"() <{value = false}> : () -> i1 + %2 = "llvm.select"(%arg158, %0, %arg157) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i1, i1) -> i1 + %3 = "llvm.select"(%arg156, %2, %1) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i1, i1) -> i1 + "llvm.return"(%3) : (i1) -> () +} +] +theorem logic_and_logic_or_8_proof : logic_and_logic_or_8_before ⊑ logic_and_logic_or_8_after := by + unfold logic_and_logic_or_8_before logic_and_logic_or_8_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN logic_and_logic_or_8 + all_goals (try extract_goal ; sorry) + ---END logic_and_logic_or_8 + + + +def and_logic_and_logic_or_1_before := [llvm| +{ +^0(%arg138 : i1, %arg139 : i1, %arg140 : i1): + %0 = "llvm.mlir.constant"() <{value = false}> : () -> i1 + %1 = "llvm.mlir.constant"() <{value = true}> : () -> i1 + %2 = llvm.and %arg138, %arg139 : i1 + %3 = "llvm.select"(%arg138, %arg140, %0) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i1, i1) -> i1 + %4 = "llvm.select"(%2, %1, %3) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i1, i1) -> i1 + "llvm.return"(%4) : (i1) -> () +} +] +def and_logic_and_logic_or_1_after := [llvm| +{ +^0(%arg138 : i1, %arg139 : i1, %arg140 : i1): + %0 = "llvm.mlir.constant"() <{value = true}> : () -> i1 + %1 = "llvm.mlir.constant"() <{value = false}> : () -> i1 + %2 = "llvm.select"(%arg139, %0, %arg140) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i1, i1) -> i1 + %3 = "llvm.select"(%arg138, %2, %1) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i1, i1) -> i1 + "llvm.return"(%3) : (i1) -> () +} +] +theorem and_logic_and_logic_or_1_proof : and_logic_and_logic_or_1_before ⊑ and_logic_and_logic_or_1_after := by + unfold and_logic_and_logic_or_1_before and_logic_and_logic_or_1_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN and_logic_and_logic_or_1 + all_goals (try extract_goal ; sorry) + ---END and_logic_and_logic_or_1 + + + +def and_logic_and_logic_or_2_before := [llvm| +{ +^0(%arg135 : i1, %arg136 : i1, %arg137 : i1): + %0 = "llvm.mlir.constant"() <{value = false}> : () -> i1 + %1 = "llvm.mlir.constant"() <{value = true}> : () -> i1 + %2 = llvm.and %arg135, %arg136 : i1 + %3 = "llvm.select"(%arg137, %arg135, %0) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i1, i1) -> i1 + %4 = "llvm.select"(%2, %1, %3) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i1, i1) -> i1 + "llvm.return"(%4) : (i1) -> () +} +] +def and_logic_and_logic_or_2_after := [llvm| +{ +^0(%arg135 : i1, %arg136 : i1, %arg137 : i1): + %0 = "llvm.mlir.constant"() <{value = true}> : () -> i1 + %1 = "llvm.mlir.constant"() <{value = false}> : () -> i1 + %2 = "llvm.select"(%arg136, %0, %arg137) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i1, i1) -> i1 + %3 = "llvm.select"(%arg135, %2, %1) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i1, i1) -> i1 + "llvm.return"(%3) : (i1) -> () +} +] +theorem and_logic_and_logic_or_2_proof : and_logic_and_logic_or_2_before ⊑ and_logic_and_logic_or_2_after := by + unfold and_logic_and_logic_or_2_before and_logic_and_logic_or_2_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN and_logic_and_logic_or_2 + all_goals (try extract_goal ; sorry) + ---END and_logic_and_logic_or_2 + + + +def and_logic_and_logic_or_3_before := [llvm| +{ +^0(%arg132 : i1, %arg133 : i1, %arg134 : i1): + %0 = "llvm.mlir.constant"() <{value = false}> : () -> i1 + %1 = "llvm.mlir.constant"() <{value = true}> : () -> i1 + %2 = llvm.and %arg133, %arg132 : i1 + %3 = "llvm.select"(%arg132, %arg134, %0) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i1, i1) -> i1 + %4 = "llvm.select"(%2, %1, %3) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i1, i1) -> i1 + "llvm.return"(%4) : (i1) -> () +} +] +def and_logic_and_logic_or_3_after := [llvm| +{ +^0(%arg132 : i1, %arg133 : i1, %arg134 : i1): + %0 = "llvm.mlir.constant"() <{value = true}> : () -> i1 + %1 = "llvm.mlir.constant"() <{value = false}> : () -> i1 + %2 = "llvm.select"(%arg133, %0, %arg134) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i1, i1) -> i1 + %3 = "llvm.select"(%arg132, %2, %1) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i1, i1) -> i1 + "llvm.return"(%3) : (i1) -> () +} +] +theorem and_logic_and_logic_or_3_proof : and_logic_and_logic_or_3_before ⊑ and_logic_and_logic_or_3_after := by + unfold and_logic_and_logic_or_3_before and_logic_and_logic_or_3_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN and_logic_and_logic_or_3 + all_goals (try extract_goal ; sorry) + ---END and_logic_and_logic_or_3 + + + +def and_logic_and_logic_or_4_before := [llvm| +{ +^0(%arg129 : i1, %arg130 : i1, %arg131 : i1): + %0 = "llvm.mlir.constant"() <{value = false}> : () -> i1 + %1 = "llvm.mlir.constant"() <{value = true}> : () -> i1 + %2 = llvm.and %arg130, %arg129 : i1 + %3 = "llvm.select"(%arg131, %arg129, %0) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i1, i1) -> i1 + %4 = "llvm.select"(%2, %1, %3) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i1, i1) -> i1 + "llvm.return"(%4) : (i1) -> () +} +] +def and_logic_and_logic_or_4_after := [llvm| +{ +^0(%arg129 : i1, %arg130 : i1, %arg131 : i1): + %0 = "llvm.mlir.constant"() <{value = true}> : () -> i1 + %1 = "llvm.mlir.constant"() <{value = false}> : () -> i1 + %2 = "llvm.select"(%arg130, %0, %arg131) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i1, i1) -> i1 + %3 = "llvm.select"(%arg129, %2, %1) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i1, i1) -> i1 + "llvm.return"(%3) : (i1) -> () +} +] +theorem and_logic_and_logic_or_4_proof : and_logic_and_logic_or_4_before ⊑ and_logic_and_logic_or_4_after := by + unfold and_logic_and_logic_or_4_before and_logic_and_logic_or_4_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN and_logic_and_logic_or_4 + all_goals (try extract_goal ; sorry) + ---END and_logic_and_logic_or_4 + + + +def and_logic_and_logic_or_5_before := [llvm| +{ +^0(%arg126 : i1, %arg127 : i1, %arg128 : i1): + %0 = "llvm.mlir.constant"() <{value = false}> : () -> i1 + %1 = "llvm.mlir.constant"() <{value = true}> : () -> i1 + %2 = llvm.and %arg126, %arg127 : i1 + %3 = "llvm.select"(%arg126, %arg128, %0) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i1, i1) -> i1 + %4 = "llvm.select"(%3, %1, %2) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i1, i1) -> i1 + "llvm.return"(%4) : (i1) -> () +} +] +def and_logic_and_logic_or_5_after := [llvm| +{ +^0(%arg126 : i1, %arg127 : i1, %arg128 : i1): + %0 = "llvm.mlir.constant"() <{value = true}> : () -> i1 + %1 = "llvm.mlir.constant"() <{value = false}> : () -> i1 + %2 = "llvm.select"(%arg128, %0, %arg127) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i1, i1) -> i1 + %3 = "llvm.select"(%arg126, %2, %1) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i1, i1) -> i1 + "llvm.return"(%3) : (i1) -> () +} +] +theorem and_logic_and_logic_or_5_proof : and_logic_and_logic_or_5_before ⊑ and_logic_and_logic_or_5_after := by + unfold and_logic_and_logic_or_5_before and_logic_and_logic_or_5_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN and_logic_and_logic_or_5 + all_goals (try extract_goal ; sorry) + ---END and_logic_and_logic_or_5 + + + +def and_logic_and_logic_or_6_before := [llvm| +{ +^0(%arg123 : i1, %arg124 : i1, %arg125 : i1): + %0 = "llvm.mlir.constant"() <{value = false}> : () -> i1 + %1 = "llvm.mlir.constant"() <{value = true}> : () -> i1 + %2 = llvm.and %arg123, %arg124 : i1 + %3 = "llvm.select"(%arg125, %arg123, %0) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i1, i1) -> i1 + %4 = "llvm.select"(%3, %1, %2) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i1, i1) -> i1 + "llvm.return"(%4) : (i1) -> () +} +] +def and_logic_and_logic_or_6_after := [llvm| +{ +^0(%arg123 : i1, %arg124 : i1, %arg125 : i1): + %0 = "llvm.mlir.constant"() <{value = true}> : () -> i1 + %1 = "llvm.select"(%arg125, %0, %arg124) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i1, i1) -> i1 + %2 = llvm.and %arg123, %1 : i1 + "llvm.return"(%2) : (i1) -> () +} +] +theorem and_logic_and_logic_or_6_proof : and_logic_and_logic_or_6_before ⊑ and_logic_and_logic_or_6_after := by + unfold and_logic_and_logic_or_6_before and_logic_and_logic_or_6_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN and_logic_and_logic_or_6 + all_goals (try extract_goal ; sorry) + ---END and_logic_and_logic_or_6 + + + +def and_logic_and_logic_or_7_before := [llvm| +{ +^0(%arg120 : i1, %arg121 : i1, %arg122 : i1): + %0 = "llvm.mlir.constant"() <{value = false}> : () -> i1 + %1 = "llvm.mlir.constant"() <{value = true}> : () -> i1 + %2 = llvm.and %arg121, %arg120 : i1 + %3 = "llvm.select"(%arg120, %arg122, %0) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i1, i1) -> i1 + %4 = "llvm.select"(%3, %1, %2) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i1, i1) -> i1 + "llvm.return"(%4) : (i1) -> () +} +] +def and_logic_and_logic_or_7_after := [llvm| +{ +^0(%arg120 : i1, %arg121 : i1, %arg122 : i1): + %0 = "llvm.mlir.constant"() <{value = true}> : () -> i1 + %1 = "llvm.mlir.constant"() <{value = false}> : () -> i1 + %2 = "llvm.select"(%arg122, %0, %arg121) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i1, i1) -> i1 + %3 = "llvm.select"(%arg120, %2, %1) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i1, i1) -> i1 + "llvm.return"(%3) : (i1) -> () +} +] +theorem and_logic_and_logic_or_7_proof : and_logic_and_logic_or_7_before ⊑ and_logic_and_logic_or_7_after := by + unfold and_logic_and_logic_or_7_before and_logic_and_logic_or_7_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN and_logic_and_logic_or_7 + all_goals (try extract_goal ; sorry) + ---END and_logic_and_logic_or_7 + + + +def and_logic_and_logic_or_8_before := [llvm| +{ +^0(%arg117 : i1, %arg118 : i1, %arg119 : i1): + %0 = "llvm.mlir.constant"() <{value = false}> : () -> i1 + %1 = "llvm.mlir.constant"() <{value = true}> : () -> i1 + %2 = llvm.and %arg118, %arg117 : i1 + %3 = "llvm.select"(%arg119, %arg117, %0) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i1, i1) -> i1 + %4 = "llvm.select"(%3, %1, %2) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i1, i1) -> i1 + "llvm.return"(%4) : (i1) -> () +} +] +def and_logic_and_logic_or_8_after := [llvm| +{ +^0(%arg117 : i1, %arg118 : i1, %arg119 : i1): + %0 = "llvm.mlir.constant"() <{value = true}> : () -> i1 + %1 = "llvm.select"(%arg119, %0, %arg118) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i1, i1) -> i1 + %2 = llvm.and %arg117, %1 : i1 + "llvm.return"(%2) : (i1) -> () +} +] +theorem and_logic_and_logic_or_8_proof : and_logic_and_logic_or_8_before ⊑ and_logic_and_logic_or_8_after := by + unfold and_logic_and_logic_or_8_before and_logic_and_logic_or_8_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN and_logic_and_logic_or_8 + all_goals (try extract_goal ; sorry) + ---END and_logic_and_logic_or_8 + + + +def and_and_logic_or_1_before := [llvm| +{ +^0(%arg102 : i1, %arg103 : i1, %arg104 : i1): + %0 = "llvm.mlir.constant"() <{value = true}> : () -> i1 + %1 = llvm.and %arg102, %arg103 : i1 + %2 = llvm.and %arg102, %arg104 : i1 + %3 = "llvm.select"(%1, %0, %2) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i1, i1) -> i1 + "llvm.return"(%3) : (i1) -> () +} +] +def and_and_logic_or_1_after := [llvm| +{ +^0(%arg102 : i1, %arg103 : i1, %arg104 : i1): + %0 = "llvm.mlir.constant"() <{value = true}> : () -> i1 + %1 = "llvm.select"(%arg103, %0, %arg104) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i1, i1) -> i1 + %2 = llvm.and %arg102, %1 : i1 + "llvm.return"(%2) : (i1) -> () +} +] +theorem and_and_logic_or_1_proof : and_and_logic_or_1_before ⊑ and_and_logic_or_1_after := by + unfold and_and_logic_or_1_before and_and_logic_or_1_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN and_and_logic_or_1 + all_goals (try extract_goal ; sorry) + ---END and_and_logic_or_1 + + + +def and_and_logic_or_2_before := [llvm| +{ +^0(%arg99 : i1, %arg100 : i1, %arg101 : i1): + %0 = "llvm.mlir.constant"() <{value = true}> : () -> i1 + %1 = llvm.and %arg100, %arg99 : i1 + %2 = llvm.and %arg99, %arg101 : i1 + %3 = "llvm.select"(%2, %0, %1) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i1, i1) -> i1 + "llvm.return"(%3) : (i1) -> () +} +] +def and_and_logic_or_2_after := [llvm| +{ +^0(%arg99 : i1, %arg100 : i1, %arg101 : i1): + %0 = "llvm.mlir.constant"() <{value = true}> : () -> i1 + %1 = "llvm.select"(%arg101, %0, %arg100) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i1, i1) -> i1 + %2 = llvm.and %arg99, %1 : i1 + "llvm.return"(%2) : (i1) -> () +} +] +theorem and_and_logic_or_2_proof : and_and_logic_or_2_before ⊑ and_and_logic_or_2_after := by + unfold and_and_logic_or_2_before and_and_logic_or_2_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN and_and_logic_or_2 + all_goals (try extract_goal ; sorry) + ---END and_and_logic_or_2 + + + +def logic_or_logic_and_1_before := [llvm| +{ +^0(%arg87 : i1, %arg88 : i1, %arg89 : i1): + %0 = "llvm.mlir.constant"() <{value = true}> : () -> i1 + %1 = "llvm.mlir.constant"() <{value = false}> : () -> i1 + %2 = "llvm.select"(%arg87, %0, %arg88) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i1, i1) -> i1 + %3 = "llvm.select"(%arg87, %0, %arg89) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i1, i1) -> i1 + %4 = "llvm.select"(%2, %3, %1) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i1, i1) -> i1 + "llvm.return"(%4) : (i1) -> () +} +] +def logic_or_logic_and_1_after := [llvm| +{ +^0(%arg87 : i1, %arg88 : i1, %arg89 : i1): + %0 = "llvm.mlir.constant"() <{value = false}> : () -> i1 + %1 = "llvm.mlir.constant"() <{value = true}> : () -> i1 + %2 = "llvm.select"(%arg88, %arg89, %0) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i1, i1) -> i1 + %3 = "llvm.select"(%arg87, %1, %2) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i1, i1) -> i1 + "llvm.return"(%3) : (i1) -> () +} +] +theorem logic_or_logic_and_1_proof : logic_or_logic_and_1_before ⊑ logic_or_logic_and_1_after := by + unfold logic_or_logic_and_1_before logic_or_logic_and_1_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN logic_or_logic_and_1 + all_goals (try extract_goal ; sorry) + ---END logic_or_logic_and_1 + + + +def logic_or_logic_and_2_before := [llvm| +{ +^0(%arg84 : i1, %arg85 : i1, %arg86 : i1): + %0 = "llvm.mlir.constant"() <{value = true}> : () -> i1 + %1 = "llvm.mlir.constant"() <{value = false}> : () -> i1 + %2 = "llvm.select"(%arg85, %0, %arg84) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i1, i1) -> i1 + %3 = "llvm.select"(%arg84, %0, %arg86) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i1, i1) -> i1 + %4 = "llvm.select"(%2, %3, %1) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i1, i1) -> i1 + "llvm.return"(%4) : (i1) -> () +} +] +def logic_or_logic_and_2_after := [llvm| +{ +^0(%arg84 : i1, %arg85 : i1, %arg86 : i1): + %0 = "llvm.mlir.constant"() <{value = false}> : () -> i1 + %1 = "llvm.mlir.constant"() <{value = true}> : () -> i1 + %2 = "llvm.select"(%arg85, %arg86, %0) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i1, i1) -> i1 + %3 = "llvm.select"(%arg84, %1, %2) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i1, i1) -> i1 + "llvm.return"(%3) : (i1) -> () +} +] +theorem logic_or_logic_and_2_proof : logic_or_logic_and_2_before ⊑ logic_or_logic_and_2_after := by + unfold logic_or_logic_and_2_before logic_or_logic_and_2_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN logic_or_logic_and_2 + all_goals (try extract_goal ; sorry) + ---END logic_or_logic_and_2 + + + +def logic_or_logic_and_3_before := [llvm| +{ +^0(%arg81 : i1, %arg82 : i1, %arg83 : i1): + %0 = "llvm.mlir.constant"() <{value = true}> : () -> i1 + %1 = "llvm.mlir.constant"() <{value = false}> : () -> i1 + %2 = "llvm.select"(%arg82, %0, %arg81) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i1, i1) -> i1 + %3 = "llvm.select"(%arg83, %0, %arg81) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i1, i1) -> i1 + %4 = "llvm.select"(%2, %3, %1) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i1, i1) -> i1 + "llvm.return"(%4) : (i1) -> () +} +] +def logic_or_logic_and_3_after := [llvm| +{ +^0(%arg81 : i1, %arg82 : i1, %arg83 : i1): + %0 = "llvm.mlir.constant"() <{value = false}> : () -> i1 + %1 = "llvm.mlir.constant"() <{value = true}> : () -> i1 + %2 = "llvm.select"(%arg82, %arg83, %0) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i1, i1) -> i1 + %3 = "llvm.select"(%2, %1, %arg81) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i1, i1) -> i1 + "llvm.return"(%3) : (i1) -> () +} +] +theorem logic_or_logic_and_3_proof : logic_or_logic_and_3_before ⊑ logic_or_logic_and_3_after := by + unfold logic_or_logic_and_3_before logic_or_logic_and_3_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN logic_or_logic_and_3 + all_goals (try extract_goal ; sorry) + ---END logic_or_logic_and_3 + + + +def logic_or_logic_and_4_before := [llvm| +{ +^0(%arg78 : i1, %arg79 : i1, %arg80 : i1): + %0 = "llvm.mlir.constant"() <{value = true}> : () -> i1 + %1 = "llvm.mlir.constant"() <{value = false}> : () -> i1 + %2 = "llvm.select"(%arg78, %0, %arg79) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i1, i1) -> i1 + %3 = "llvm.select"(%arg80, %0, %arg78) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i1, i1) -> i1 + %4 = "llvm.select"(%2, %3, %1) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i1, i1) -> i1 + "llvm.return"(%4) : (i1) -> () +} +] +def logic_or_logic_and_4_after := [llvm| +{ +^0(%arg78 : i1, %arg79 : i1, %arg80 : i1): + %0 = "llvm.mlir.constant"() <{value = false}> : () -> i1 + %1 = "llvm.mlir.constant"() <{value = true}> : () -> i1 + %2 = "llvm.select"(%arg79, %arg80, %0) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i1, i1) -> i1 + %3 = "llvm.select"(%arg78, %1, %2) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i1, i1) -> i1 + "llvm.return"(%3) : (i1) -> () +} +] +theorem logic_or_logic_and_4_proof : logic_or_logic_and_4_before ⊑ logic_or_logic_and_4_after := by + unfold logic_or_logic_and_4_before logic_or_logic_and_4_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN logic_or_logic_and_4 + all_goals (try extract_goal ; sorry) + ---END logic_or_logic_and_4 + + + +def logic_or_logic_and_5_before := [llvm| +{ +^0(%arg75 : i1, %arg76 : i1, %arg77 : i1): + %0 = "llvm.mlir.constant"() <{value = true}> : () -> i1 + %1 = "llvm.mlir.constant"() <{value = false}> : () -> i1 + %2 = "llvm.select"(%arg75, %0, %arg76) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i1, i1) -> i1 + %3 = "llvm.select"(%arg75, %0, %arg77) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i1, i1) -> i1 + %4 = "llvm.select"(%3, %2, %1) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i1, i1) -> i1 + "llvm.return"(%4) : (i1) -> () +} +] +def logic_or_logic_and_5_after := [llvm| +{ +^0(%arg75 : i1, %arg76 : i1, %arg77 : i1): + %0 = "llvm.mlir.constant"() <{value = false}> : () -> i1 + %1 = "llvm.mlir.constant"() <{value = true}> : () -> i1 + %2 = "llvm.select"(%arg77, %arg76, %0) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i1, i1) -> i1 + %3 = "llvm.select"(%arg75, %1, %2) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i1, i1) -> i1 + "llvm.return"(%3) : (i1) -> () +} +] +theorem logic_or_logic_and_5_proof : logic_or_logic_and_5_before ⊑ logic_or_logic_and_5_after := by + unfold logic_or_logic_and_5_before logic_or_logic_and_5_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN logic_or_logic_and_5 + all_goals (try extract_goal ; sorry) + ---END logic_or_logic_and_5 + + + +def logic_or_logic_and_6_before := [llvm| +{ +^0(%arg72 : i1, %arg73 : i1, %arg74 : i1): + %0 = "llvm.mlir.constant"() <{value = true}> : () -> i1 + %1 = "llvm.mlir.constant"() <{value = false}> : () -> i1 + %2 = "llvm.select"(%arg73, %0, %arg72) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i1, i1) -> i1 + %3 = "llvm.select"(%arg72, %0, %arg74) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i1, i1) -> i1 + %4 = "llvm.select"(%3, %2, %1) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i1, i1) -> i1 + "llvm.return"(%4) : (i1) -> () +} +] +def logic_or_logic_and_6_after := [llvm| +{ +^0(%arg72 : i1, %arg73 : i1, %arg74 : i1): + %0 = "llvm.mlir.constant"() <{value = false}> : () -> i1 + %1 = "llvm.mlir.constant"() <{value = true}> : () -> i1 + %2 = "llvm.select"(%arg74, %arg73, %0) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i1, i1) -> i1 + %3 = "llvm.select"(%arg72, %1, %2) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i1, i1) -> i1 + "llvm.return"(%3) : (i1) -> () +} +] +theorem logic_or_logic_and_6_proof : logic_or_logic_and_6_before ⊑ logic_or_logic_and_6_after := by + unfold logic_or_logic_and_6_before logic_or_logic_and_6_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN logic_or_logic_and_6 + all_goals (try extract_goal ; sorry) + ---END logic_or_logic_and_6 + + + +def logic_or_logic_and_7_before := [llvm| +{ +^0(%arg69 : i1, %arg70 : i1, %arg71 : i1): + %0 = "llvm.mlir.constant"() <{value = true}> : () -> i1 + %1 = "llvm.mlir.constant"() <{value = false}> : () -> i1 + %2 = "llvm.select"(%arg70, %0, %arg69) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i1, i1) -> i1 + %3 = "llvm.select"(%arg71, %0, %arg69) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i1, i1) -> i1 + %4 = "llvm.select"(%3, %2, %1) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i1, i1) -> i1 + "llvm.return"(%4) : (i1) -> () +} +] +def logic_or_logic_and_7_after := [llvm| +{ +^0(%arg69 : i1, %arg70 : i1, %arg71 : i1): + %0 = "llvm.mlir.constant"() <{value = false}> : () -> i1 + %1 = "llvm.mlir.constant"() <{value = true}> : () -> i1 + %2 = "llvm.select"(%arg71, %arg70, %0) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i1, i1) -> i1 + %3 = "llvm.select"(%2, %1, %arg69) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i1, i1) -> i1 + "llvm.return"(%3) : (i1) -> () +} +] +theorem logic_or_logic_and_7_proof : logic_or_logic_and_7_before ⊑ logic_or_logic_and_7_after := by + unfold logic_or_logic_and_7_before logic_or_logic_and_7_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN logic_or_logic_and_7 + all_goals (try extract_goal ; sorry) + ---END logic_or_logic_and_7 + + + +def logic_or_logic_and_8_before := [llvm| +{ +^0(%arg66 : i1, %arg67 : i1, %arg68 : i1): + %0 = "llvm.mlir.constant"() <{value = true}> : () -> i1 + %1 = "llvm.mlir.constant"() <{value = false}> : () -> i1 + %2 = "llvm.select"(%arg66, %0, %arg67) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i1, i1) -> i1 + %3 = "llvm.select"(%arg68, %0, %arg66) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i1, i1) -> i1 + %4 = "llvm.select"(%3, %2, %1) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i1, i1) -> i1 + "llvm.return"(%4) : (i1) -> () +} +] +def logic_or_logic_and_8_after := [llvm| +{ +^0(%arg66 : i1, %arg67 : i1, %arg68 : i1): + %0 = "llvm.mlir.constant"() <{value = false}> : () -> i1 + %1 = "llvm.mlir.constant"() <{value = true}> : () -> i1 + %2 = "llvm.select"(%arg68, %arg67, %0) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i1, i1) -> i1 + %3 = "llvm.select"(%arg66, %1, %2) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i1, i1) -> i1 + "llvm.return"(%3) : (i1) -> () +} +] +theorem logic_or_logic_and_8_proof : logic_or_logic_and_8_before ⊑ logic_or_logic_and_8_after := by + unfold logic_or_logic_and_8_before logic_or_logic_and_8_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN logic_or_logic_and_8 + all_goals (try extract_goal ; sorry) + ---END logic_or_logic_and_8 + + + +def or_logic_or_logic_and_1_before := [llvm| +{ +^0(%arg48 : i1, %arg49 : i1, %arg50 : i1): + %0 = "llvm.mlir.constant"() <{value = true}> : () -> i1 + %1 = "llvm.mlir.constant"() <{value = false}> : () -> i1 + %2 = llvm.or %arg48, %arg49 : i1 + %3 = "llvm.select"(%arg48, %0, %arg50) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i1, i1) -> i1 + %4 = "llvm.select"(%2, %3, %1) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i1, i1) -> i1 + "llvm.return"(%4) : (i1) -> () +} +] +def or_logic_or_logic_and_1_after := [llvm| +{ +^0(%arg48 : i1, %arg49 : i1, %arg50 : i1): + %0 = "llvm.mlir.constant"() <{value = false}> : () -> i1 + %1 = "llvm.mlir.constant"() <{value = true}> : () -> i1 + %2 = "llvm.select"(%arg49, %arg50, %0) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i1, i1) -> i1 + %3 = "llvm.select"(%arg48, %1, %2) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i1, i1) -> i1 + "llvm.return"(%3) : (i1) -> () +} +] +theorem or_logic_or_logic_and_1_proof : or_logic_or_logic_and_1_before ⊑ or_logic_or_logic_and_1_after := by + unfold or_logic_or_logic_and_1_before or_logic_or_logic_and_1_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN or_logic_or_logic_and_1 + all_goals (try extract_goal ; sorry) + ---END or_logic_or_logic_and_1 + + + +def or_logic_or_logic_and_2_before := [llvm| +{ +^0(%arg45 : i1, %arg46 : i1, %arg47 : i1): + %0 = "llvm.mlir.constant"() <{value = true}> : () -> i1 + %1 = "llvm.mlir.constant"() <{value = false}> : () -> i1 + %2 = llvm.or %arg45, %arg46 : i1 + %3 = "llvm.select"(%arg47, %0, %arg45) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i1, i1) -> i1 + %4 = "llvm.select"(%2, %3, %1) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i1, i1) -> i1 + "llvm.return"(%4) : (i1) -> () +} +] +def or_logic_or_logic_and_2_after := [llvm| +{ +^0(%arg45 : i1, %arg46 : i1, %arg47 : i1): + %0 = "llvm.mlir.constant"() <{value = false}> : () -> i1 + %1 = "llvm.mlir.constant"() <{value = true}> : () -> i1 + %2 = "llvm.select"(%arg46, %arg47, %0) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i1, i1) -> i1 + %3 = "llvm.select"(%arg45, %1, %2) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i1, i1) -> i1 + "llvm.return"(%3) : (i1) -> () +} +] +theorem or_logic_or_logic_and_2_proof : or_logic_or_logic_and_2_before ⊑ or_logic_or_logic_and_2_after := by + unfold or_logic_or_logic_and_2_before or_logic_or_logic_and_2_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN or_logic_or_logic_and_2 + all_goals (try extract_goal ; sorry) + ---END or_logic_or_logic_and_2 + + + +def or_logic_or_logic_and_3_before := [llvm| +{ +^0(%arg42 : i1, %arg43 : i1, %arg44 : i1): + %0 = "llvm.mlir.constant"() <{value = true}> : () -> i1 + %1 = "llvm.mlir.constant"() <{value = false}> : () -> i1 + %2 = llvm.or %arg42, %arg43 : i1 + %3 = "llvm.select"(%arg42, %0, %arg44) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i1, i1) -> i1 + %4 = "llvm.select"(%3, %2, %1) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i1, i1) -> i1 + "llvm.return"(%4) : (i1) -> () +} +] +def or_logic_or_logic_and_3_after := [llvm| +{ +^0(%arg42 : i1, %arg43 : i1, %arg44 : i1): + %0 = "llvm.mlir.constant"() <{value = false}> : () -> i1 + %1 = "llvm.mlir.constant"() <{value = true}> : () -> i1 + %2 = "llvm.select"(%arg44, %arg43, %0) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i1, i1) -> i1 + %3 = "llvm.select"(%arg42, %1, %2) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i1, i1) -> i1 + "llvm.return"(%3) : (i1) -> () +} +] +theorem or_logic_or_logic_and_3_proof : or_logic_or_logic_and_3_before ⊑ or_logic_or_logic_and_3_after := by + unfold or_logic_or_logic_and_3_before or_logic_or_logic_and_3_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN or_logic_or_logic_and_3 + all_goals (try extract_goal ; sorry) + ---END or_logic_or_logic_and_3 + + + +def or_logic_or_logic_and_4_before := [llvm| +{ +^0(%arg39 : i1, %arg40 : i1, %arg41 : i1): + %0 = "llvm.mlir.constant"() <{value = true}> : () -> i1 + %1 = "llvm.mlir.constant"() <{value = false}> : () -> i1 + %2 = llvm.or %arg39, %arg40 : i1 + %3 = "llvm.select"(%arg41, %0, %arg39) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i1, i1) -> i1 + %4 = "llvm.select"(%3, %2, %1) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i1, i1) -> i1 + "llvm.return"(%4) : (i1) -> () +} +] +def or_logic_or_logic_and_4_after := [llvm| +{ +^0(%arg39 : i1, %arg40 : i1, %arg41 : i1): + %0 = "llvm.mlir.constant"() <{value = false}> : () -> i1 + %1 = "llvm.select"(%arg41, %arg40, %0) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i1, i1) -> i1 + %2 = llvm.or %arg39, %1 : i1 + "llvm.return"(%2) : (i1) -> () +} +] +theorem or_logic_or_logic_and_4_proof : or_logic_or_logic_and_4_before ⊑ or_logic_or_logic_and_4_after := by + unfold or_logic_or_logic_and_4_before or_logic_or_logic_and_4_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN or_logic_or_logic_and_4 + all_goals (try extract_goal ; sorry) + ---END or_logic_or_logic_and_4 + + + +def or_logic_or_logic_and_5_before := [llvm| +{ +^0(%arg36 : i1, %arg37 : i1, %arg38 : i1): + %0 = "llvm.mlir.constant"() <{value = true}> : () -> i1 + %1 = "llvm.mlir.constant"() <{value = false}> : () -> i1 + %2 = llvm.or %arg37, %arg36 : i1 + %3 = "llvm.select"(%arg36, %0, %arg38) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i1, i1) -> i1 + %4 = "llvm.select"(%2, %3, %1) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i1, i1) -> i1 + "llvm.return"(%4) : (i1) -> () +} +] +def or_logic_or_logic_and_5_after := [llvm| +{ +^0(%arg36 : i1, %arg37 : i1, %arg38 : i1): + %0 = "llvm.mlir.constant"() <{value = false}> : () -> i1 + %1 = "llvm.mlir.constant"() <{value = true}> : () -> i1 + %2 = "llvm.select"(%arg37, %arg38, %0) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i1, i1) -> i1 + %3 = "llvm.select"(%arg36, %1, %2) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i1, i1) -> i1 + "llvm.return"(%3) : (i1) -> () +} +] +theorem or_logic_or_logic_and_5_proof : or_logic_or_logic_and_5_before ⊑ or_logic_or_logic_and_5_after := by + unfold or_logic_or_logic_and_5_before or_logic_or_logic_and_5_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN or_logic_or_logic_and_5 + all_goals (try extract_goal ; sorry) + ---END or_logic_or_logic_and_5 + + + +def or_logic_or_logic_and_6_before := [llvm| +{ +^0(%arg33 : i1, %arg34 : i1, %arg35 : i1): + %0 = "llvm.mlir.constant"() <{value = true}> : () -> i1 + %1 = "llvm.mlir.constant"() <{value = false}> : () -> i1 + %2 = llvm.or %arg34, %arg33 : i1 + %3 = "llvm.select"(%arg35, %0, %arg33) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i1, i1) -> i1 + %4 = "llvm.select"(%2, %3, %1) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i1, i1) -> i1 + "llvm.return"(%4) : (i1) -> () +} +] +def or_logic_or_logic_and_6_after := [llvm| +{ +^0(%arg33 : i1, %arg34 : i1, %arg35 : i1): + %0 = "llvm.mlir.constant"() <{value = false}> : () -> i1 + %1 = "llvm.mlir.constant"() <{value = true}> : () -> i1 + %2 = "llvm.select"(%arg34, %arg35, %0) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i1, i1) -> i1 + %3 = "llvm.select"(%arg33, %1, %2) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i1, i1) -> i1 + "llvm.return"(%3) : (i1) -> () +} +] +theorem or_logic_or_logic_and_6_proof : or_logic_or_logic_and_6_before ⊑ or_logic_or_logic_and_6_after := by + unfold or_logic_or_logic_and_6_before or_logic_or_logic_and_6_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN or_logic_or_logic_and_6 + all_goals (try extract_goal ; sorry) + ---END or_logic_or_logic_and_6 + + + +def or_logic_or_logic_and_7_before := [llvm| +{ +^0(%arg30 : i1, %arg31 : i1, %arg32 : i1): + %0 = "llvm.mlir.constant"() <{value = true}> : () -> i1 + %1 = "llvm.mlir.constant"() <{value = false}> : () -> i1 + %2 = llvm.or %arg31, %arg30 : i1 + %3 = "llvm.select"(%arg30, %0, %arg32) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i1, i1) -> i1 + %4 = "llvm.select"(%3, %2, %1) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i1, i1) -> i1 + "llvm.return"(%4) : (i1) -> () +} +] +def or_logic_or_logic_and_7_after := [llvm| +{ +^0(%arg30 : i1, %arg31 : i1, %arg32 : i1): + %0 = "llvm.mlir.constant"() <{value = false}> : () -> i1 + %1 = "llvm.mlir.constant"() <{value = true}> : () -> i1 + %2 = "llvm.select"(%arg32, %arg31, %0) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i1, i1) -> i1 + %3 = "llvm.select"(%arg30, %1, %2) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i1, i1) -> i1 + "llvm.return"(%3) : (i1) -> () +} +] +theorem or_logic_or_logic_and_7_proof : or_logic_or_logic_and_7_before ⊑ or_logic_or_logic_and_7_after := by + unfold or_logic_or_logic_and_7_before or_logic_or_logic_and_7_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN or_logic_or_logic_and_7 + all_goals (try extract_goal ; sorry) + ---END or_logic_or_logic_and_7 + + + +def or_logic_or_logic_and_8_before := [llvm| +{ +^0(%arg27 : i1, %arg28 : i1, %arg29 : i1): + %0 = "llvm.mlir.constant"() <{value = true}> : () -> i1 + %1 = "llvm.mlir.constant"() <{value = false}> : () -> i1 + %2 = llvm.or %arg28, %arg27 : i1 + %3 = "llvm.select"(%arg29, %0, %arg27) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i1, i1) -> i1 + %4 = "llvm.select"(%3, %2, %1) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i1, i1) -> i1 + "llvm.return"(%4) : (i1) -> () +} +] +def or_logic_or_logic_and_8_after := [llvm| +{ +^0(%arg27 : i1, %arg28 : i1, %arg29 : i1): + %0 = "llvm.mlir.constant"() <{value = false}> : () -> i1 + %1 = "llvm.select"(%arg29, %arg28, %0) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i1, i1) -> i1 + %2 = llvm.or %arg27, %1 : i1 + "llvm.return"(%2) : (i1) -> () +} +] +theorem or_logic_or_logic_and_8_proof : or_logic_or_logic_and_8_before ⊑ or_logic_or_logic_and_8_after := by + unfold or_logic_or_logic_and_8_before or_logic_or_logic_and_8_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN or_logic_or_logic_and_8 + all_goals (try extract_goal ; sorry) + ---END or_logic_or_logic_and_8 + + + +def or_or_logic_and_1_before := [llvm| +{ +^0(%arg12 : i1, %arg13 : i1, %arg14 : i1): + %0 = "llvm.mlir.constant"() <{value = false}> : () -> i1 + %1 = llvm.or %arg12, %arg13 : i1 + %2 = llvm.or %arg14, %arg12 : i1 + %3 = "llvm.select"(%1, %2, %0) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i1, i1) -> i1 + "llvm.return"(%3) : (i1) -> () +} +] +def or_or_logic_and_1_after := [llvm| +{ +^0(%arg12 : i1, %arg13 : i1, %arg14 : i1): + %0 = "llvm.mlir.constant"() <{value = false}> : () -> i1 + %1 = "llvm.select"(%arg13, %arg14, %0) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i1, i1) -> i1 + %2 = llvm.or %arg12, %1 : i1 + "llvm.return"(%2) : (i1) -> () +} +] +theorem or_or_logic_and_1_proof : or_or_logic_and_1_before ⊑ or_or_logic_and_1_after := by + unfold or_or_logic_and_1_before or_or_logic_and_1_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN or_or_logic_and_1 + all_goals (try extract_goal ; sorry) + ---END or_or_logic_and_1 + + + +def or_or_logic_and_2_before := [llvm| +{ +^0(%arg9 : i1, %arg10 : i1, %arg11 : i1): + %0 = "llvm.mlir.constant"() <{value = false}> : () -> i1 + %1 = llvm.or %arg9, %arg10 : i1 + %2 = llvm.or %arg11, %arg9 : i1 + %3 = "llvm.select"(%2, %1, %0) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i1, i1) -> i1 + "llvm.return"(%3) : (i1) -> () +} +] +def or_or_logic_and_2_after := [llvm| +{ +^0(%arg9 : i1, %arg10 : i1, %arg11 : i1): + %0 = "llvm.mlir.constant"() <{value = false}> : () -> i1 + %1 = "llvm.select"(%arg11, %arg10, %0) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i1, i1) -> i1 + %2 = llvm.or %arg9, %1 : i1 + "llvm.return"(%2) : (i1) -> () +} +] +theorem or_or_logic_and_2_proof : or_or_logic_and_2_before ⊑ or_or_logic_and_2_after := by + unfold or_or_logic_and_2_before or_or_logic_and_2_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN or_or_logic_and_2 + all_goals (try extract_goal ; sorry) + ---END or_or_logic_and_2 + + diff --git a/SSA/Projects/InstCombine/tests/LLVM/gselecthofhsymmetrichselects.lean b/SSA/Projects/InstCombine/tests/LLVM/gselecthofhsymmetrichselects.lean new file mode 100644 index 000000000..3cfeec580 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/LLVM/gselecthofhsymmetrichselects.lean @@ -0,0 +1,110 @@ + +import SSA.Projects.InstCombine.LLVM.PrettyEDSL +import SSA.Projects.InstCombine.TacticAuto +import SSA.Projects.InstCombine.LLVM.Semantics +open LLVM +open BitVec + +open MLIR AST +open Ctxt (Var) + +set_option linter.deprecated false +set_option linter.unreachableTactic false +set_option linter.unusedTactic false +section gselecthofhsymmetrichselects_statements + +def select_of_symmetric_selects_before := [llvm| +{ +^0(%arg33 : i32, %arg34 : i32, %arg35 : i1, %arg36 : i1): + %0 = "llvm.select"(%arg35, %arg33, %arg34) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i32, i32) -> i32 + %1 = "llvm.select"(%arg35, %arg34, %arg33) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i32, i32) -> i32 + %2 = "llvm.select"(%arg36, %0, %1) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i32, i32) -> i32 + "llvm.return"(%2) : (i32) -> () +} +] +def select_of_symmetric_selects_after := [llvm| +{ +^0(%arg33 : i32, %arg34 : i32, %arg35 : i1, %arg36 : i1): + %0 = llvm.xor %arg35, %arg36 : i1 + %1 = "llvm.select"(%0, %arg34, %arg33) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i32, i32) -> i32 + "llvm.return"(%1) : (i32) -> () +} +] +theorem select_of_symmetric_selects_proof : select_of_symmetric_selects_before ⊑ select_of_symmetric_selects_after := by + unfold select_of_symmetric_selects_before select_of_symmetric_selects_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN select_of_symmetric_selects + all_goals (try extract_goal ; sorry) + ---END select_of_symmetric_selects + + + +def select_of_symmetric_selects_negative1_before := [llvm| +{ +^0(%arg29 : i32, %arg30 : i32, %arg31 : i1, %arg32 : i1): + %0 = "llvm.select"(%arg31, %arg29, %arg30) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i32, i32) -> i32 + %1 = "llvm.select"(%arg32, %arg30, %arg29) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i32, i32) -> i32 + %2 = "llvm.select"(%arg32, %0, %1) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i32, i32) -> i32 + "llvm.return"(%2) : (i32) -> () +} +] +def select_of_symmetric_selects_negative1_after := [llvm| +{ +^0(%arg29 : i32, %arg30 : i32, %arg31 : i1, %arg32 : i1): + %0 = "llvm.select"(%arg31, %arg29, %arg30) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i32, i32) -> i32 + %1 = "llvm.select"(%arg32, %0, %arg29) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i32, i32) -> i32 + "llvm.return"(%1) : (i32) -> () +} +] +theorem select_of_symmetric_selects_negative1_proof : select_of_symmetric_selects_negative1_before ⊑ select_of_symmetric_selects_negative1_after := by + unfold select_of_symmetric_selects_negative1_before select_of_symmetric_selects_negative1_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN select_of_symmetric_selects_negative1 + all_goals (try extract_goal ; sorry) + ---END select_of_symmetric_selects_negative1 + + + +def select_of_symmetric_selects_commuted_before := [llvm| +{ +^0(%arg12 : i32, %arg13 : i32, %arg14 : i1, %arg15 : i1): + %0 = "llvm.select"(%arg14, %arg12, %arg13) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i32, i32) -> i32 + %1 = "llvm.select"(%arg14, %arg13, %arg12) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i32, i32) -> i32 + %2 = "llvm.select"(%arg15, %1, %0) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i32, i32) -> i32 + "llvm.return"(%2) : (i32) -> () +} +] +def select_of_symmetric_selects_commuted_after := [llvm| +{ +^0(%arg12 : i32, %arg13 : i32, %arg14 : i1, %arg15 : i1): + %0 = llvm.xor %arg14, %arg15 : i1 + %1 = "llvm.select"(%0, %arg12, %arg13) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i32, i32) -> i32 + "llvm.return"(%1) : (i32) -> () +} +] +theorem select_of_symmetric_selects_commuted_proof : select_of_symmetric_selects_commuted_before ⊑ select_of_symmetric_selects_commuted_after := by + unfold select_of_symmetric_selects_commuted_before select_of_symmetric_selects_commuted_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN select_of_symmetric_selects_commuted + all_goals (try extract_goal ; sorry) + ---END select_of_symmetric_selects_commuted + + diff --git a/SSA/Projects/InstCombine/tests/LLVM/gselecthsafehboolhtransforms.lean b/SSA/Projects/InstCombine/tests/LLVM/gselecthsafehboolhtransforms.lean new file mode 100644 index 000000000..062f65a27 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/LLVM/gselecthsafehboolhtransforms.lean @@ -0,0 +1,1506 @@ + +import SSA.Projects.InstCombine.LLVM.PrettyEDSL +import SSA.Projects.InstCombine.TacticAuto +import SSA.Projects.InstCombine.LLVM.Semantics +open LLVM +open BitVec + +open MLIR AST +open Ctxt (Var) + +set_option linter.deprecated false +set_option linter.unreachableTactic false +set_option linter.unusedTactic false +section gselecthsafehboolhtransforms_statements + +def land_land_left1_before := [llvm| +{ +^0(%arg102 : i1, %arg103 : i1): + %0 = "llvm.mlir.constant"() <{value = false}> : () -> i1 + %1 = "llvm.select"(%arg102, %arg103, %0) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i1, i1) -> i1 + %2 = "llvm.select"(%1, %arg102, %0) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i1, i1) -> i1 + "llvm.return"(%2) : (i1) -> () +} +] +def land_land_left1_after := [llvm| +{ +^0(%arg102 : i1, %arg103 : i1): + %0 = "llvm.mlir.constant"() <{value = false}> : () -> i1 + %1 = "llvm.select"(%arg102, %arg103, %0) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i1, i1) -> i1 + "llvm.return"(%1) : (i1) -> () +} +] +theorem land_land_left1_proof : land_land_left1_before ⊑ land_land_left1_after := by + unfold land_land_left1_before land_land_left1_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN land_land_left1 + all_goals (try extract_goal ; sorry) + ---END land_land_left1 + + + +def land_land_left2_before := [llvm| +{ +^0(%arg100 : i1, %arg101 : i1): + %0 = "llvm.mlir.constant"() <{value = false}> : () -> i1 + %1 = "llvm.select"(%arg101, %arg100, %0) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i1, i1) -> i1 + %2 = "llvm.select"(%1, %arg100, %0) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i1, i1) -> i1 + "llvm.return"(%2) : (i1) -> () +} +] +def land_land_left2_after := [llvm| +{ +^0(%arg100 : i1, %arg101 : i1): + %0 = "llvm.mlir.constant"() <{value = false}> : () -> i1 + %1 = "llvm.select"(%arg101, %arg100, %0) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i1, i1) -> i1 + "llvm.return"(%1) : (i1) -> () +} +] +theorem land_land_left2_proof : land_land_left2_before ⊑ land_land_left2_after := by + unfold land_land_left2_before land_land_left2_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN land_land_left2 + all_goals (try extract_goal ; sorry) + ---END land_land_left2 + + + +def land_band_left1_before := [llvm| +{ +^0(%arg98 : i1, %arg99 : i1): + %0 = "llvm.mlir.constant"() <{value = false}> : () -> i1 + %1 = "llvm.select"(%arg98, %arg99, %0) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i1, i1) -> i1 + %2 = llvm.and %1, %arg98 : i1 + "llvm.return"(%2) : (i1) -> () +} +] +def land_band_left1_after := [llvm| +{ +^0(%arg98 : i1, %arg99 : i1): + %0 = "llvm.mlir.constant"() <{value = false}> : () -> i1 + %1 = "llvm.select"(%arg98, %arg99, %0) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i1, i1) -> i1 + "llvm.return"(%1) : (i1) -> () +} +] +theorem land_band_left1_proof : land_band_left1_before ⊑ land_band_left1_after := by + unfold land_band_left1_before land_band_left1_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN land_band_left1 + all_goals (try extract_goal ; sorry) + ---END land_band_left1 + + + +def land_band_left2_before := [llvm| +{ +^0(%arg96 : i1, %arg97 : i1): + %0 = "llvm.mlir.constant"() <{value = false}> : () -> i1 + %1 = "llvm.select"(%arg97, %arg96, %0) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i1, i1) -> i1 + %2 = llvm.and %1, %arg96 : i1 + "llvm.return"(%2) : (i1) -> () +} +] +def land_band_left2_after := [llvm| +{ +^0(%arg96 : i1, %arg97 : i1): + %0 = "llvm.mlir.constant"() <{value = false}> : () -> i1 + %1 = "llvm.select"(%arg97, %arg96, %0) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i1, i1) -> i1 + "llvm.return"(%1) : (i1) -> () +} +] +theorem land_band_left2_proof : land_band_left2_before ⊑ land_band_left2_after := by + unfold land_band_left2_before land_band_left2_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN land_band_left2 + all_goals (try extract_goal ; sorry) + ---END land_band_left2 + + + +def land_lor_left1_before := [llvm| +{ +^0(%arg94 : i1, %arg95 : i1): + %0 = "llvm.mlir.constant"() <{value = false}> : () -> i1 + %1 = "llvm.mlir.constant"() <{value = true}> : () -> i1 + %2 = "llvm.select"(%arg94, %arg95, %0) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i1, i1) -> i1 + %3 = "llvm.select"(%2, %1, %arg94) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i1, i1) -> i1 + "llvm.return"(%3) : (i1) -> () +} +] +def land_lor_left1_after := [llvm| +{ +^0(%arg94 : i1, %arg95 : i1): + "llvm.return"(%arg94) : (i1) -> () +} +] +theorem land_lor_left1_proof : land_lor_left1_before ⊑ land_lor_left1_after := by + unfold land_lor_left1_before land_lor_left1_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN land_lor_left1 + all_goals (try extract_goal ; sorry) + ---END land_lor_left1 + + + +def land_lor_left2_before := [llvm| +{ +^0(%arg92 : i1, %arg93 : i1): + %0 = "llvm.mlir.constant"() <{value = false}> : () -> i1 + %1 = "llvm.mlir.constant"() <{value = true}> : () -> i1 + %2 = "llvm.select"(%arg93, %arg92, %0) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i1, i1) -> i1 + %3 = "llvm.select"(%2, %1, %arg92) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i1, i1) -> i1 + "llvm.return"(%3) : (i1) -> () +} +] +def land_lor_left2_after := [llvm| +{ +^0(%arg92 : i1, %arg93 : i1): + "llvm.return"(%arg92) : (i1) -> () +} +] +theorem land_lor_left2_proof : land_lor_left2_before ⊑ land_lor_left2_after := by + unfold land_lor_left2_before land_lor_left2_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN land_lor_left2 + all_goals (try extract_goal ; sorry) + ---END land_lor_left2 + + + +def land_bor_left1_before := [llvm| +{ +^0(%arg90 : i1, %arg91 : i1): + %0 = "llvm.mlir.constant"() <{value = false}> : () -> i1 + %1 = "llvm.select"(%arg90, %arg91, %0) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i1, i1) -> i1 + %2 = llvm.or %1, %arg90 : i1 + "llvm.return"(%2) : (i1) -> () +} +] +def land_bor_left1_after := [llvm| +{ +^0(%arg90 : i1, %arg91 : i1): + "llvm.return"(%arg90) : (i1) -> () +} +] +theorem land_bor_left1_proof : land_bor_left1_before ⊑ land_bor_left1_after := by + unfold land_bor_left1_before land_bor_left1_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN land_bor_left1 + all_goals (try extract_goal ; sorry) + ---END land_bor_left1 + + + +def land_bor_left2_before := [llvm| +{ +^0(%arg88 : i1, %arg89 : i1): + %0 = "llvm.mlir.constant"() <{value = false}> : () -> i1 + %1 = "llvm.select"(%arg89, %arg88, %0) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i1, i1) -> i1 + %2 = llvm.or %1, %arg88 : i1 + "llvm.return"(%2) : (i1) -> () +} +] +def land_bor_left2_after := [llvm| +{ +^0(%arg88 : i1, %arg89 : i1): + "llvm.return"(%arg88) : (i1) -> () +} +] +theorem land_bor_left2_proof : land_bor_left2_before ⊑ land_bor_left2_after := by + unfold land_bor_left2_before land_bor_left2_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN land_bor_left2 + all_goals (try extract_goal ; sorry) + ---END land_bor_left2 + + + +def band_land_left1_before := [llvm| +{ +^0(%arg86 : i1, %arg87 : i1): + %0 = "llvm.mlir.constant"() <{value = false}> : () -> i1 + %1 = llvm.and %arg86, %arg87 : i1 + %2 = "llvm.select"(%1, %arg86, %0) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i1, i1) -> i1 + "llvm.return"(%2) : (i1) -> () +} +] +def band_land_left1_after := [llvm| +{ +^0(%arg86 : i1, %arg87 : i1): + %0 = llvm.and %arg86, %arg87 : i1 + "llvm.return"(%0) : (i1) -> () +} +] +theorem band_land_left1_proof : band_land_left1_before ⊑ band_land_left1_after := by + unfold band_land_left1_before band_land_left1_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN band_land_left1 + all_goals (try extract_goal ; sorry) + ---END band_land_left1 + + + +def band_land_left2_before := [llvm| +{ +^0(%arg84 : i1, %arg85 : i1): + %0 = "llvm.mlir.constant"() <{value = false}> : () -> i1 + %1 = llvm.and %arg85, %arg84 : i1 + %2 = "llvm.select"(%1, %arg84, %0) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i1, i1) -> i1 + "llvm.return"(%2) : (i1) -> () +} +] +def band_land_left2_after := [llvm| +{ +^0(%arg84 : i1, %arg85 : i1): + %0 = llvm.and %arg85, %arg84 : i1 + "llvm.return"(%0) : (i1) -> () +} +] +theorem band_land_left2_proof : band_land_left2_before ⊑ band_land_left2_after := by + unfold band_land_left2_before band_land_left2_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN band_land_left2 + all_goals (try extract_goal ; sorry) + ---END band_land_left2 + + + +def band_lor_left1_before := [llvm| +{ +^0(%arg82 : i1, %arg83 : i1): + %0 = "llvm.mlir.constant"() <{value = true}> : () -> i1 + %1 = llvm.and %arg82, %arg83 : i1 + %2 = "llvm.select"(%1, %0, %arg82) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i1, i1) -> i1 + "llvm.return"(%2) : (i1) -> () +} +] +def band_lor_left1_after := [llvm| +{ +^0(%arg82 : i1, %arg83 : i1): + "llvm.return"(%arg82) : (i1) -> () +} +] +theorem band_lor_left1_proof : band_lor_left1_before ⊑ band_lor_left1_after := by + unfold band_lor_left1_before band_lor_left1_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN band_lor_left1 + all_goals (try extract_goal ; sorry) + ---END band_lor_left1 + + + +def band_lor_left2_before := [llvm| +{ +^0(%arg80 : i1, %arg81 : i1): + %0 = "llvm.mlir.constant"() <{value = true}> : () -> i1 + %1 = llvm.and %arg81, %arg80 : i1 + %2 = "llvm.select"(%1, %0, %arg80) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i1, i1) -> i1 + "llvm.return"(%2) : (i1) -> () +} +] +def band_lor_left2_after := [llvm| +{ +^0(%arg80 : i1, %arg81 : i1): + "llvm.return"(%arg80) : (i1) -> () +} +] +theorem band_lor_left2_proof : band_lor_left2_before ⊑ band_lor_left2_after := by + unfold band_lor_left2_before band_lor_left2_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN band_lor_left2 + all_goals (try extract_goal ; sorry) + ---END band_lor_left2 + + + +def lor_land_left1_before := [llvm| +{ +^0(%arg78 : i1, %arg79 : i1): + %0 = "llvm.mlir.constant"() <{value = true}> : () -> i1 + %1 = "llvm.mlir.constant"() <{value = false}> : () -> i1 + %2 = "llvm.select"(%arg78, %0, %arg79) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i1, i1) -> i1 + %3 = "llvm.select"(%2, %arg78, %1) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i1, i1) -> i1 + "llvm.return"(%3) : (i1) -> () +} +] +def lor_land_left1_after := [llvm| +{ +^0(%arg78 : i1, %arg79 : i1): + "llvm.return"(%arg78) : (i1) -> () +} +] +theorem lor_land_left1_proof : lor_land_left1_before ⊑ lor_land_left1_after := by + unfold lor_land_left1_before lor_land_left1_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN lor_land_left1 + all_goals (try extract_goal ; sorry) + ---END lor_land_left1 + + + +def lor_land_left2_before := [llvm| +{ +^0(%arg76 : i1, %arg77 : i1): + %0 = "llvm.mlir.constant"() <{value = true}> : () -> i1 + %1 = "llvm.mlir.constant"() <{value = false}> : () -> i1 + %2 = "llvm.select"(%arg77, %0, %arg76) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i1, i1) -> i1 + %3 = "llvm.select"(%2, %arg76, %1) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i1, i1) -> i1 + "llvm.return"(%3) : (i1) -> () +} +] +def lor_land_left2_after := [llvm| +{ +^0(%arg76 : i1, %arg77 : i1): + "llvm.return"(%arg76) : (i1) -> () +} +] +theorem lor_land_left2_proof : lor_land_left2_before ⊑ lor_land_left2_after := by + unfold lor_land_left2_before lor_land_left2_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN lor_land_left2 + all_goals (try extract_goal ; sorry) + ---END lor_land_left2 + + + +def lor_band_left1_before := [llvm| +{ +^0(%arg74 : i1, %arg75 : i1): + %0 = "llvm.mlir.constant"() <{value = true}> : () -> i1 + %1 = "llvm.select"(%arg74, %0, %arg75) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i1, i1) -> i1 + %2 = llvm.and %1, %arg74 : i1 + "llvm.return"(%2) : (i1) -> () +} +] +def lor_band_left1_after := [llvm| +{ +^0(%arg74 : i1, %arg75 : i1): + "llvm.return"(%arg74) : (i1) -> () +} +] +theorem lor_band_left1_proof : lor_band_left1_before ⊑ lor_band_left1_after := by + unfold lor_band_left1_before lor_band_left1_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN lor_band_left1 + all_goals (try extract_goal ; sorry) + ---END lor_band_left1 + + + +def lor_band_left2_before := [llvm| +{ +^0(%arg72 : i1, %arg73 : i1): + %0 = "llvm.mlir.constant"() <{value = true}> : () -> i1 + %1 = "llvm.select"(%arg73, %0, %arg72) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i1, i1) -> i1 + %2 = llvm.and %1, %arg72 : i1 + "llvm.return"(%2) : (i1) -> () +} +] +def lor_band_left2_after := [llvm| +{ +^0(%arg72 : i1, %arg73 : i1): + "llvm.return"(%arg72) : (i1) -> () +} +] +theorem lor_band_left2_proof : lor_band_left2_before ⊑ lor_band_left2_after := by + unfold lor_band_left2_before lor_band_left2_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN lor_band_left2 + all_goals (try extract_goal ; sorry) + ---END lor_band_left2 + + + +def lor_lor_left1_before := [llvm| +{ +^0(%arg70 : i1, %arg71 : i1): + %0 = "llvm.mlir.constant"() <{value = true}> : () -> i1 + %1 = "llvm.select"(%arg70, %0, %arg71) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i1, i1) -> i1 + %2 = "llvm.select"(%1, %0, %arg70) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i1, i1) -> i1 + "llvm.return"(%2) : (i1) -> () +} +] +def lor_lor_left1_after := [llvm| +{ +^0(%arg70 : i1, %arg71 : i1): + %0 = "llvm.mlir.constant"() <{value = true}> : () -> i1 + %1 = "llvm.select"(%arg70, %0, %arg71) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i1, i1) -> i1 + "llvm.return"(%1) : (i1) -> () +} +] +theorem lor_lor_left1_proof : lor_lor_left1_before ⊑ lor_lor_left1_after := by + unfold lor_lor_left1_before lor_lor_left1_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN lor_lor_left1 + all_goals (try extract_goal ; sorry) + ---END lor_lor_left1 + + + +def lor_lor_left2_before := [llvm| +{ +^0(%arg68 : i1, %arg69 : i1): + %0 = "llvm.mlir.constant"() <{value = true}> : () -> i1 + %1 = "llvm.select"(%arg69, %0, %arg68) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i1, i1) -> i1 + %2 = "llvm.select"(%1, %0, %arg68) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i1, i1) -> i1 + "llvm.return"(%2) : (i1) -> () +} +] +def lor_lor_left2_after := [llvm| +{ +^0(%arg68 : i1, %arg69 : i1): + %0 = "llvm.mlir.constant"() <{value = true}> : () -> i1 + %1 = "llvm.select"(%arg69, %0, %arg68) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i1, i1) -> i1 + "llvm.return"(%1) : (i1) -> () +} +] +theorem lor_lor_left2_proof : lor_lor_left2_before ⊑ lor_lor_left2_after := by + unfold lor_lor_left2_before lor_lor_left2_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN lor_lor_left2 + all_goals (try extract_goal ; sorry) + ---END lor_lor_left2 + + + +def lor_bor_left1_before := [llvm| +{ +^0(%arg66 : i1, %arg67 : i1): + %0 = "llvm.mlir.constant"() <{value = true}> : () -> i1 + %1 = "llvm.select"(%arg66, %0, %arg67) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i1, i1) -> i1 + %2 = llvm.or %1, %arg66 : i1 + "llvm.return"(%2) : (i1) -> () +} +] +def lor_bor_left1_after := [llvm| +{ +^0(%arg66 : i1, %arg67 : i1): + %0 = "llvm.mlir.constant"() <{value = true}> : () -> i1 + %1 = "llvm.select"(%arg66, %0, %arg67) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i1, i1) -> i1 + "llvm.return"(%1) : (i1) -> () +} +] +theorem lor_bor_left1_proof : lor_bor_left1_before ⊑ lor_bor_left1_after := by + unfold lor_bor_left1_before lor_bor_left1_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN lor_bor_left1 + all_goals (try extract_goal ; sorry) + ---END lor_bor_left1 + + + +def lor_bor_left2_before := [llvm| +{ +^0(%arg64 : i1, %arg65 : i1): + %0 = "llvm.mlir.constant"() <{value = true}> : () -> i1 + %1 = "llvm.select"(%arg65, %0, %arg64) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i1, i1) -> i1 + %2 = llvm.or %1, %arg64 : i1 + "llvm.return"(%2) : (i1) -> () +} +] +def lor_bor_left2_after := [llvm| +{ +^0(%arg64 : i1, %arg65 : i1): + %0 = "llvm.mlir.constant"() <{value = true}> : () -> i1 + %1 = "llvm.select"(%arg65, %0, %arg64) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i1, i1) -> i1 + "llvm.return"(%1) : (i1) -> () +} +] +theorem lor_bor_left2_proof : lor_bor_left2_before ⊑ lor_bor_left2_after := by + unfold lor_bor_left2_before lor_bor_left2_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN lor_bor_left2 + all_goals (try extract_goal ; sorry) + ---END lor_bor_left2 + + + +def bor_land_left1_before := [llvm| +{ +^0(%arg62 : i1, %arg63 : i1): + %0 = "llvm.mlir.constant"() <{value = false}> : () -> i1 + %1 = llvm.or %arg62, %arg63 : i1 + %2 = "llvm.select"(%1, %arg62, %0) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i1, i1) -> i1 + "llvm.return"(%2) : (i1) -> () +} +] +def bor_land_left1_after := [llvm| +{ +^0(%arg62 : i1, %arg63 : i1): + "llvm.return"(%arg62) : (i1) -> () +} +] +theorem bor_land_left1_proof : bor_land_left1_before ⊑ bor_land_left1_after := by + unfold bor_land_left1_before bor_land_left1_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN bor_land_left1 + all_goals (try extract_goal ; sorry) + ---END bor_land_left1 + + + +def bor_land_left2_before := [llvm| +{ +^0(%arg60 : i1, %arg61 : i1): + %0 = "llvm.mlir.constant"() <{value = false}> : () -> i1 + %1 = llvm.or %arg61, %arg60 : i1 + %2 = "llvm.select"(%1, %arg60, %0) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i1, i1) -> i1 + "llvm.return"(%2) : (i1) -> () +} +] +def bor_land_left2_after := [llvm| +{ +^0(%arg60 : i1, %arg61 : i1): + "llvm.return"(%arg60) : (i1) -> () +} +] +theorem bor_land_left2_proof : bor_land_left2_before ⊑ bor_land_left2_after := by + unfold bor_land_left2_before bor_land_left2_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN bor_land_left2 + all_goals (try extract_goal ; sorry) + ---END bor_land_left2 + + + +def bor_lor_left1_before := [llvm| +{ +^0(%arg58 : i1, %arg59 : i1): + %0 = "llvm.mlir.constant"() <{value = true}> : () -> i1 + %1 = llvm.or %arg58, %arg59 : i1 + %2 = "llvm.select"(%1, %0, %arg58) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i1, i1) -> i1 + "llvm.return"(%2) : (i1) -> () +} +] +def bor_lor_left1_after := [llvm| +{ +^0(%arg58 : i1, %arg59 : i1): + %0 = llvm.or %arg58, %arg59 : i1 + "llvm.return"(%0) : (i1) -> () +} +] +theorem bor_lor_left1_proof : bor_lor_left1_before ⊑ bor_lor_left1_after := by + unfold bor_lor_left1_before bor_lor_left1_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN bor_lor_left1 + all_goals (try extract_goal ; sorry) + ---END bor_lor_left1 + + + +def bor_lor_left2_before := [llvm| +{ +^0(%arg56 : i1, %arg57 : i1): + %0 = "llvm.mlir.constant"() <{value = true}> : () -> i1 + %1 = llvm.or %arg57, %arg56 : i1 + %2 = "llvm.select"(%1, %0, %arg56) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i1, i1) -> i1 + "llvm.return"(%2) : (i1) -> () +} +] +def bor_lor_left2_after := [llvm| +{ +^0(%arg56 : i1, %arg57 : i1): + %0 = llvm.or %arg57, %arg56 : i1 + "llvm.return"(%0) : (i1) -> () +} +] +theorem bor_lor_left2_proof : bor_lor_left2_before ⊑ bor_lor_left2_after := by + unfold bor_lor_left2_before bor_lor_left2_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN bor_lor_left2 + all_goals (try extract_goal ; sorry) + ---END bor_lor_left2 + + + +def land_land_right1_before := [llvm| +{ +^0(%arg54 : i1, %arg55 : i1): + %0 = "llvm.mlir.constant"() <{value = false}> : () -> i1 + %1 = "llvm.select"(%arg54, %arg55, %0) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i1, i1) -> i1 + %2 = "llvm.select"(%arg54, %1, %0) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i1, i1) -> i1 + "llvm.return"(%2) : (i1) -> () +} +] +def land_land_right1_after := [llvm| +{ +^0(%arg54 : i1, %arg55 : i1): + %0 = "llvm.mlir.constant"() <{value = false}> : () -> i1 + %1 = "llvm.select"(%arg54, %arg55, %0) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i1, i1) -> i1 + "llvm.return"(%1) : (i1) -> () +} +] +theorem land_land_right1_proof : land_land_right1_before ⊑ land_land_right1_after := by + unfold land_land_right1_before land_land_right1_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN land_land_right1 + all_goals (try extract_goal ; sorry) + ---END land_land_right1 + + + +def land_land_right2_before := [llvm| +{ +^0(%arg52 : i1, %arg53 : i1): + %0 = "llvm.mlir.constant"() <{value = false}> : () -> i1 + %1 = "llvm.select"(%arg53, %arg52, %0) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i1, i1) -> i1 + %2 = "llvm.select"(%arg52, %1, %0) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i1, i1) -> i1 + "llvm.return"(%2) : (i1) -> () +} +] +def land_land_right2_after := [llvm| +{ +^0(%arg52 : i1, %arg53 : i1): + %0 = "llvm.mlir.constant"() <{value = false}> : () -> i1 + %1 = "llvm.select"(%arg52, %arg53, %0) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i1, i1) -> i1 + "llvm.return"(%1) : (i1) -> () +} +] +theorem land_land_right2_proof : land_land_right2_before ⊑ land_land_right2_after := by + unfold land_land_right2_before land_land_right2_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN land_land_right2 + all_goals (try extract_goal ; sorry) + ---END land_land_right2 + + + +def land_band_right1_before := [llvm| +{ +^0(%arg50 : i1, %arg51 : i1): + %0 = "llvm.mlir.constant"() <{value = false}> : () -> i1 + %1 = "llvm.select"(%arg50, %arg51, %0) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i1, i1) -> i1 + %2 = llvm.and %arg50, %1 : i1 + "llvm.return"(%2) : (i1) -> () +} +] +def land_band_right1_after := [llvm| +{ +^0(%arg50 : i1, %arg51 : i1): + %0 = "llvm.mlir.constant"() <{value = false}> : () -> i1 + %1 = "llvm.select"(%arg50, %arg51, %0) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i1, i1) -> i1 + "llvm.return"(%1) : (i1) -> () +} +] +theorem land_band_right1_proof : land_band_right1_before ⊑ land_band_right1_after := by + unfold land_band_right1_before land_band_right1_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN land_band_right1 + all_goals (try extract_goal ; sorry) + ---END land_band_right1 + + + +def land_band_right2_before := [llvm| +{ +^0(%arg48 : i1, %arg49 : i1): + %0 = "llvm.mlir.constant"() <{value = false}> : () -> i1 + %1 = "llvm.select"(%arg49, %arg48, %0) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i1, i1) -> i1 + %2 = llvm.and %arg48, %1 : i1 + "llvm.return"(%2) : (i1) -> () +} +] +def land_band_right2_after := [llvm| +{ +^0(%arg48 : i1, %arg49 : i1): + %0 = "llvm.mlir.constant"() <{value = false}> : () -> i1 + %1 = "llvm.select"(%arg49, %arg48, %0) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i1, i1) -> i1 + "llvm.return"(%1) : (i1) -> () +} +] +theorem land_band_right2_proof : land_band_right2_before ⊑ land_band_right2_after := by + unfold land_band_right2_before land_band_right2_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN land_band_right2 + all_goals (try extract_goal ; sorry) + ---END land_band_right2 + + + +def land_lor_right1_before := [llvm| +{ +^0(%arg46 : i1, %arg47 : i1): + %0 = "llvm.mlir.constant"() <{value = false}> : () -> i1 + %1 = "llvm.mlir.constant"() <{value = true}> : () -> i1 + %2 = "llvm.select"(%arg46, %arg47, %0) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i1, i1) -> i1 + %3 = "llvm.select"(%arg46, %1, %2) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i1, i1) -> i1 + "llvm.return"(%3) : (i1) -> () +} +] +def land_lor_right1_after := [llvm| +{ +^0(%arg46 : i1, %arg47 : i1): + "llvm.return"(%arg46) : (i1) -> () +} +] +theorem land_lor_right1_proof : land_lor_right1_before ⊑ land_lor_right1_after := by + unfold land_lor_right1_before land_lor_right1_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN land_lor_right1 + all_goals (try extract_goal ; sorry) + ---END land_lor_right1 + + + +def land_lor_right2_before := [llvm| +{ +^0(%arg44 : i1, %arg45 : i1): + %0 = "llvm.mlir.constant"() <{value = false}> : () -> i1 + %1 = "llvm.mlir.constant"() <{value = true}> : () -> i1 + %2 = "llvm.select"(%arg45, %arg44, %0) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i1, i1) -> i1 + %3 = "llvm.select"(%arg44, %1, %2) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i1, i1) -> i1 + "llvm.return"(%3) : (i1) -> () +} +] +def land_lor_right2_after := [llvm| +{ +^0(%arg44 : i1, %arg45 : i1): + "llvm.return"(%arg44) : (i1) -> () +} +] +theorem land_lor_right2_proof : land_lor_right2_before ⊑ land_lor_right2_after := by + unfold land_lor_right2_before land_lor_right2_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN land_lor_right2 + all_goals (try extract_goal ; sorry) + ---END land_lor_right2 + + + +def land_bor_right1_before := [llvm| +{ +^0(%arg38 : i1, %arg39 : i1): + %0 = "llvm.mlir.constant"() <{value = false}> : () -> i1 + %1 = "llvm.select"(%arg38, %arg39, %0) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i1, i1) -> i1 + %2 = llvm.or %arg38, %1 : i1 + "llvm.return"(%2) : (i1) -> () +} +] +def land_bor_right1_after := [llvm| +{ +^0(%arg38 : i1, %arg39 : i1): + "llvm.return"(%arg38) : (i1) -> () +} +] +theorem land_bor_right1_proof : land_bor_right1_before ⊑ land_bor_right1_after := by + unfold land_bor_right1_before land_bor_right1_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN land_bor_right1 + all_goals (try extract_goal ; sorry) + ---END land_bor_right1 + + + +def land_bor_right2_before := [llvm| +{ +^0(%arg36 : i1, %arg37 : i1): + %0 = "llvm.mlir.constant"() <{value = false}> : () -> i1 + %1 = "llvm.select"(%arg37, %arg36, %0) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i1, i1) -> i1 + %2 = llvm.or %arg36, %1 : i1 + "llvm.return"(%2) : (i1) -> () +} +] +def land_bor_right2_after := [llvm| +{ +^0(%arg36 : i1, %arg37 : i1): + "llvm.return"(%arg36) : (i1) -> () +} +] +theorem land_bor_right2_proof : land_bor_right2_before ⊑ land_bor_right2_after := by + unfold land_bor_right2_before land_bor_right2_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN land_bor_right2 + all_goals (try extract_goal ; sorry) + ---END land_bor_right2 + + + +def band_land_right1_before := [llvm| +{ +^0(%arg34 : i1, %arg35 : i1): + %0 = "llvm.mlir.constant"() <{value = false}> : () -> i1 + %1 = llvm.and %arg34, %arg35 : i1 + %2 = "llvm.select"(%arg34, %1, %0) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i1, i1) -> i1 + "llvm.return"(%2) : (i1) -> () +} +] +def band_land_right1_after := [llvm| +{ +^0(%arg34 : i1, %arg35 : i1): + %0 = "llvm.mlir.constant"() <{value = false}> : () -> i1 + %1 = "llvm.select"(%arg34, %arg35, %0) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i1, i1) -> i1 + "llvm.return"(%1) : (i1) -> () +} +] +theorem band_land_right1_proof : band_land_right1_before ⊑ band_land_right1_after := by + unfold band_land_right1_before band_land_right1_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN band_land_right1 + all_goals (try extract_goal ; sorry) + ---END band_land_right1 + + + +def band_land_right2_before := [llvm| +{ +^0(%arg32 : i1, %arg33 : i1): + %0 = "llvm.mlir.constant"() <{value = false}> : () -> i1 + %1 = llvm.and %arg33, %arg32 : i1 + %2 = "llvm.select"(%arg32, %1, %0) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i1, i1) -> i1 + "llvm.return"(%2) : (i1) -> () +} +] +def band_land_right2_after := [llvm| +{ +^0(%arg32 : i1, %arg33 : i1): + %0 = "llvm.mlir.constant"() <{value = false}> : () -> i1 + %1 = "llvm.select"(%arg32, %arg33, %0) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i1, i1) -> i1 + "llvm.return"(%1) : (i1) -> () +} +] +theorem band_land_right2_proof : band_land_right2_before ⊑ band_land_right2_after := by + unfold band_land_right2_before band_land_right2_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN band_land_right2 + all_goals (try extract_goal ; sorry) + ---END band_land_right2 + + + +def band_lor_right1_before := [llvm| +{ +^0(%arg30 : i1, %arg31 : i1): + %0 = "llvm.mlir.constant"() <{value = true}> : () -> i1 + %1 = llvm.and %arg30, %arg31 : i1 + %2 = "llvm.select"(%arg30, %0, %1) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i1, i1) -> i1 + "llvm.return"(%2) : (i1) -> () +} +] +def band_lor_right1_after := [llvm| +{ +^0(%arg30 : i1, %arg31 : i1): + "llvm.return"(%arg30) : (i1) -> () +} +] +theorem band_lor_right1_proof : band_lor_right1_before ⊑ band_lor_right1_after := by + unfold band_lor_right1_before band_lor_right1_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN band_lor_right1 + all_goals (try extract_goal ; sorry) + ---END band_lor_right1 + + + +def band_lor_right2_before := [llvm| +{ +^0(%arg28 : i1, %arg29 : i1): + %0 = "llvm.mlir.constant"() <{value = true}> : () -> i1 + %1 = llvm.and %arg29, %arg28 : i1 + %2 = "llvm.select"(%arg28, %0, %1) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i1, i1) -> i1 + "llvm.return"(%2) : (i1) -> () +} +] +def band_lor_right2_after := [llvm| +{ +^0(%arg28 : i1, %arg29 : i1): + "llvm.return"(%arg28) : (i1) -> () +} +] +theorem band_lor_right2_proof : band_lor_right2_before ⊑ band_lor_right2_after := by + unfold band_lor_right2_before band_lor_right2_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN band_lor_right2 + all_goals (try extract_goal ; sorry) + ---END band_lor_right2 + + + +def lor_land_right1_before := [llvm| +{ +^0(%arg26 : i1, %arg27 : i1): + %0 = "llvm.mlir.constant"() <{value = true}> : () -> i1 + %1 = "llvm.mlir.constant"() <{value = false}> : () -> i1 + %2 = "llvm.select"(%arg26, %0, %arg27) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i1, i1) -> i1 + %3 = "llvm.select"(%arg26, %2, %1) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i1, i1) -> i1 + "llvm.return"(%3) : (i1) -> () +} +] +def lor_land_right1_after := [llvm| +{ +^0(%arg26 : i1, %arg27 : i1): + "llvm.return"(%arg26) : (i1) -> () +} +] +theorem lor_land_right1_proof : lor_land_right1_before ⊑ lor_land_right1_after := by + unfold lor_land_right1_before lor_land_right1_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN lor_land_right1 + all_goals (try extract_goal ; sorry) + ---END lor_land_right1 + + + +def lor_land_right2_before := [llvm| +{ +^0(%arg24 : i1, %arg25 : i1): + %0 = "llvm.mlir.constant"() <{value = true}> : () -> i1 + %1 = "llvm.mlir.constant"() <{value = false}> : () -> i1 + %2 = "llvm.select"(%arg25, %0, %arg24) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i1, i1) -> i1 + %3 = "llvm.select"(%arg24, %2, %1) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i1, i1) -> i1 + "llvm.return"(%3) : (i1) -> () +} +] +def lor_land_right2_after := [llvm| +{ +^0(%arg24 : i1, %arg25 : i1): + "llvm.return"(%arg24) : (i1) -> () +} +] +theorem lor_land_right2_proof : lor_land_right2_before ⊑ lor_land_right2_after := by + unfold lor_land_right2_before lor_land_right2_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN lor_land_right2 + all_goals (try extract_goal ; sorry) + ---END lor_land_right2 + + + +def lor_band_right1_before := [llvm| +{ +^0(%arg22 : i1, %arg23 : i1): + %0 = "llvm.mlir.constant"() <{value = true}> : () -> i1 + %1 = "llvm.select"(%arg22, %0, %arg23) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i1, i1) -> i1 + %2 = llvm.and %arg22, %1 : i1 + "llvm.return"(%2) : (i1) -> () +} +] +def lor_band_right1_after := [llvm| +{ +^0(%arg22 : i1, %arg23 : i1): + "llvm.return"(%arg22) : (i1) -> () +} +] +theorem lor_band_right1_proof : lor_band_right1_before ⊑ lor_band_right1_after := by + unfold lor_band_right1_before lor_band_right1_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN lor_band_right1 + all_goals (try extract_goal ; sorry) + ---END lor_band_right1 + + + +def lor_band_right2_before := [llvm| +{ +^0(%arg20 : i1, %arg21 : i1): + %0 = "llvm.mlir.constant"() <{value = true}> : () -> i1 + %1 = "llvm.select"(%arg21, %0, %arg20) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i1, i1) -> i1 + %2 = llvm.and %arg20, %1 : i1 + "llvm.return"(%2) : (i1) -> () +} +] +def lor_band_right2_after := [llvm| +{ +^0(%arg20 : i1, %arg21 : i1): + "llvm.return"(%arg20) : (i1) -> () +} +] +theorem lor_band_right2_proof : lor_band_right2_before ⊑ lor_band_right2_after := by + unfold lor_band_right2_before lor_band_right2_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN lor_band_right2 + all_goals (try extract_goal ; sorry) + ---END lor_band_right2 + + + +def lor_lor_right1_before := [llvm| +{ +^0(%arg18 : i1, %arg19 : i1): + %0 = "llvm.mlir.constant"() <{value = true}> : () -> i1 + %1 = "llvm.select"(%arg18, %0, %arg19) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i1, i1) -> i1 + %2 = "llvm.select"(%arg18, %0, %1) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i1, i1) -> i1 + "llvm.return"(%2) : (i1) -> () +} +] +def lor_lor_right1_after := [llvm| +{ +^0(%arg18 : i1, %arg19 : i1): + %0 = "llvm.mlir.constant"() <{value = true}> : () -> i1 + %1 = "llvm.select"(%arg18, %0, %arg19) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i1, i1) -> i1 + "llvm.return"(%1) : (i1) -> () +} +] +theorem lor_lor_right1_proof : lor_lor_right1_before ⊑ lor_lor_right1_after := by + unfold lor_lor_right1_before lor_lor_right1_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN lor_lor_right1 + all_goals (try extract_goal ; sorry) + ---END lor_lor_right1 + + + +def lor_lor_right2_before := [llvm| +{ +^0(%arg16 : i1, %arg17 : i1): + %0 = "llvm.mlir.constant"() <{value = true}> : () -> i1 + %1 = "llvm.select"(%arg17, %0, %arg16) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i1, i1) -> i1 + %2 = "llvm.select"(%arg16, %0, %1) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i1, i1) -> i1 + "llvm.return"(%2) : (i1) -> () +} +] +def lor_lor_right2_after := [llvm| +{ +^0(%arg16 : i1, %arg17 : i1): + %0 = "llvm.mlir.constant"() <{value = true}> : () -> i1 + %1 = "llvm.select"(%arg16, %0, %arg17) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i1, i1) -> i1 + "llvm.return"(%1) : (i1) -> () +} +] +theorem lor_lor_right2_proof : lor_lor_right2_before ⊑ lor_lor_right2_after := by + unfold lor_lor_right2_before lor_lor_right2_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN lor_lor_right2 + all_goals (try extract_goal ; sorry) + ---END lor_lor_right2 + + + +def lor_bor_right1_before := [llvm| +{ +^0(%arg14 : i1, %arg15 : i1): + %0 = "llvm.mlir.constant"() <{value = true}> : () -> i1 + %1 = "llvm.select"(%arg14, %0, %arg15) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i1, i1) -> i1 + %2 = llvm.or %arg14, %1 : i1 + "llvm.return"(%2) : (i1) -> () +} +] +def lor_bor_right1_after := [llvm| +{ +^0(%arg14 : i1, %arg15 : i1): + %0 = "llvm.mlir.constant"() <{value = true}> : () -> i1 + %1 = "llvm.select"(%arg14, %0, %arg15) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i1, i1) -> i1 + "llvm.return"(%1) : (i1) -> () +} +] +theorem lor_bor_right1_proof : lor_bor_right1_before ⊑ lor_bor_right1_after := by + unfold lor_bor_right1_before lor_bor_right1_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN lor_bor_right1 + all_goals (try extract_goal ; sorry) + ---END lor_bor_right1 + + + +def lor_bor_right2_before := [llvm| +{ +^0(%arg12 : i1, %arg13 : i1): + %0 = "llvm.mlir.constant"() <{value = true}> : () -> i1 + %1 = "llvm.select"(%arg13, %0, %arg12) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i1, i1) -> i1 + %2 = llvm.or %arg12, %1 : i1 + "llvm.return"(%2) : (i1) -> () +} +] +def lor_bor_right2_after := [llvm| +{ +^0(%arg12 : i1, %arg13 : i1): + %0 = "llvm.mlir.constant"() <{value = true}> : () -> i1 + %1 = "llvm.select"(%arg13, %0, %arg12) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i1, i1) -> i1 + "llvm.return"(%1) : (i1) -> () +} +] +theorem lor_bor_right2_proof : lor_bor_right2_before ⊑ lor_bor_right2_after := by + unfold lor_bor_right2_before lor_bor_right2_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN lor_bor_right2 + all_goals (try extract_goal ; sorry) + ---END lor_bor_right2 + + + +def bor_land_right1_before := [llvm| +{ +^0(%arg10 : i1, %arg11 : i1): + %0 = "llvm.mlir.constant"() <{value = false}> : () -> i1 + %1 = llvm.or %arg10, %arg11 : i1 + %2 = "llvm.select"(%arg10, %1, %0) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i1, i1) -> i1 + "llvm.return"(%2) : (i1) -> () +} +] +def bor_land_right1_after := [llvm| +{ +^0(%arg10 : i1, %arg11 : i1): + "llvm.return"(%arg10) : (i1) -> () +} +] +theorem bor_land_right1_proof : bor_land_right1_before ⊑ bor_land_right1_after := by + unfold bor_land_right1_before bor_land_right1_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN bor_land_right1 + all_goals (try extract_goal ; sorry) + ---END bor_land_right1 + + + +def bor_land_right2_before := [llvm| +{ +^0(%arg8 : i1, %arg9 : i1): + %0 = "llvm.mlir.constant"() <{value = false}> : () -> i1 + %1 = llvm.or %arg9, %arg8 : i1 + %2 = "llvm.select"(%arg8, %1, %0) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i1, i1) -> i1 + "llvm.return"(%2) : (i1) -> () +} +] +def bor_land_right2_after := [llvm| +{ +^0(%arg8 : i1, %arg9 : i1): + "llvm.return"(%arg8) : (i1) -> () +} +] +theorem bor_land_right2_proof : bor_land_right2_before ⊑ bor_land_right2_after := by + unfold bor_land_right2_before bor_land_right2_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN bor_land_right2 + all_goals (try extract_goal ; sorry) + ---END bor_land_right2 + + + +def bor_lor_right1_before := [llvm| +{ +^0(%arg6 : i1, %arg7 : i1): + %0 = "llvm.mlir.constant"() <{value = true}> : () -> i1 + %1 = llvm.or %arg6, %arg7 : i1 + %2 = "llvm.select"(%arg6, %0, %1) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i1, i1) -> i1 + "llvm.return"(%2) : (i1) -> () +} +] +def bor_lor_right1_after := [llvm| +{ +^0(%arg6 : i1, %arg7 : i1): + %0 = "llvm.mlir.constant"() <{value = true}> : () -> i1 + %1 = "llvm.select"(%arg6, %0, %arg7) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i1, i1) -> i1 + "llvm.return"(%1) : (i1) -> () +} +] +theorem bor_lor_right1_proof : bor_lor_right1_before ⊑ bor_lor_right1_after := by + unfold bor_lor_right1_before bor_lor_right1_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN bor_lor_right1 + all_goals (try extract_goal ; sorry) + ---END bor_lor_right1 + + + +def bor_lor_right2_before := [llvm| +{ +^0(%arg4 : i1, %arg5 : i1): + %0 = "llvm.mlir.constant"() <{value = true}> : () -> i1 + %1 = llvm.or %arg5, %arg4 : i1 + %2 = "llvm.select"(%arg4, %0, %1) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i1, i1) -> i1 + "llvm.return"(%2) : (i1) -> () +} +] +def bor_lor_right2_after := [llvm| +{ +^0(%arg4 : i1, %arg5 : i1): + %0 = "llvm.mlir.constant"() <{value = true}> : () -> i1 + %1 = "llvm.select"(%arg4, %0, %arg5) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i1, i1) -> i1 + "llvm.return"(%1) : (i1) -> () +} +] +theorem bor_lor_right2_proof : bor_lor_right2_before ⊑ bor_lor_right2_after := by + unfold bor_lor_right2_before bor_lor_right2_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN bor_lor_right2 + all_goals (try extract_goal ; sorry) + ---END bor_lor_right2 + + diff --git a/SSA/Projects/InstCombine/tests/LLVM/gselecthsafehtransforms.lean b/SSA/Projects/InstCombine/tests/LLVM/gselecthsafehtransforms.lean new file mode 100644 index 000000000..3d37fcdc3 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/LLVM/gselecthsafehtransforms.lean @@ -0,0 +1,657 @@ + +import SSA.Projects.InstCombine.LLVM.PrettyEDSL +import SSA.Projects.InstCombine.TacticAuto +import SSA.Projects.InstCombine.LLVM.Semantics +open LLVM +open BitVec + +open MLIR AST +open Ctxt (Var) + +set_option linter.deprecated false +set_option linter.unreachableTactic false +set_option linter.unusedTactic false +section gselecthsafehtransforms_statements + +def bools_logical_commute0_before := [llvm| +{ +^0(%arg108 : i1, %arg109 : i1, %arg110 : i1): + %0 = "llvm.mlir.constant"() <{value = true}> : () -> i1 + %1 = "llvm.mlir.constant"() <{value = false}> : () -> i1 + %2 = llvm.xor %arg110, %0 : i1 + %3 = "llvm.select"(%2, %arg108, %1) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i1, i1) -> i1 + %4 = "llvm.select"(%arg110, %arg109, %1) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i1, i1) -> i1 + %5 = "llvm.select"(%3, %0, %4) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i1, i1) -> i1 + "llvm.return"(%5) : (i1) -> () +} +] +def bools_logical_commute0_after := [llvm| +{ +^0(%arg108 : i1, %arg109 : i1, %arg110 : i1): + %0 = "llvm.select"(%arg110, %arg109, %arg108) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i1, i1) -> i1 + "llvm.return"(%0) : (i1) -> () +} +] +theorem bools_logical_commute0_proof : bools_logical_commute0_before ⊑ bools_logical_commute0_after := by + unfold bools_logical_commute0_before bools_logical_commute0_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN bools_logical_commute0 + all_goals (try extract_goal ; sorry) + ---END bools_logical_commute0 + + + +def bools_logical_commute0_and1_before := [llvm| +{ +^0(%arg105 : i1, %arg106 : i1, %arg107 : i1): + %0 = "llvm.mlir.constant"() <{value = true}> : () -> i1 + %1 = "llvm.mlir.constant"() <{value = false}> : () -> i1 + %2 = llvm.xor %arg107, %0 : i1 + %3 = llvm.and %2, %arg105 : i1 + %4 = "llvm.select"(%arg107, %arg106, %1) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i1, i1) -> i1 + %5 = "llvm.select"(%3, %0, %4) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i1, i1) -> i1 + "llvm.return"(%5) : (i1) -> () +} +] +def bools_logical_commute0_and1_after := [llvm| +{ +^0(%arg105 : i1, %arg106 : i1, %arg107 : i1): + %0 = "llvm.select"(%arg107, %arg106, %arg105) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i1, i1) -> i1 + "llvm.return"(%0) : (i1) -> () +} +] +theorem bools_logical_commute0_and1_proof : bools_logical_commute0_and1_before ⊑ bools_logical_commute0_and1_after := by + unfold bools_logical_commute0_and1_before bools_logical_commute0_and1_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN bools_logical_commute0_and1 + all_goals (try extract_goal ; sorry) + ---END bools_logical_commute0_and1 + + + +def bools_logical_commute0_and2_before := [llvm| +{ +^0(%arg102 : i1, %arg103 : i1, %arg104 : i1): + %0 = "llvm.mlir.constant"() <{value = true}> : () -> i1 + %1 = "llvm.mlir.constant"() <{value = false}> : () -> i1 + %2 = llvm.xor %arg104, %0 : i1 + %3 = "llvm.select"(%2, %arg102, %1) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i1, i1) -> i1 + %4 = llvm.and %arg104, %arg103 : i1 + %5 = "llvm.select"(%3, %0, %4) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i1, i1) -> i1 + "llvm.return"(%5) : (i1) -> () +} +] +def bools_logical_commute0_and2_after := [llvm| +{ +^0(%arg102 : i1, %arg103 : i1, %arg104 : i1): + %0 = "llvm.select"(%arg104, %arg103, %arg102) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i1, i1) -> i1 + "llvm.return"(%0) : (i1) -> () +} +] +theorem bools_logical_commute0_and2_proof : bools_logical_commute0_and2_before ⊑ bools_logical_commute0_and2_after := by + unfold bools_logical_commute0_and2_before bools_logical_commute0_and2_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN bools_logical_commute0_and2 + all_goals (try extract_goal ; sorry) + ---END bools_logical_commute0_and2 + + + +def bools_logical_commute0_and1_and2_before := [llvm| +{ +^0(%arg99 : i1, %arg100 : i1, %arg101 : i1): + %0 = "llvm.mlir.constant"() <{value = true}> : () -> i1 + %1 = llvm.xor %arg101, %0 : i1 + %2 = llvm.and %1, %arg99 : i1 + %3 = llvm.and %arg101, %arg100 : i1 + %4 = "llvm.select"(%2, %0, %3) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i1, i1) -> i1 + "llvm.return"(%4) : (i1) -> () +} +] +def bools_logical_commute0_and1_and2_after := [llvm| +{ +^0(%arg99 : i1, %arg100 : i1, %arg101 : i1): + %0 = "llvm.select"(%arg101, %arg100, %arg99) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i1, i1) -> i1 + "llvm.return"(%0) : (i1) -> () +} +] +theorem bools_logical_commute0_and1_and2_proof : bools_logical_commute0_and1_and2_before ⊑ bools_logical_commute0_and1_and2_after := by + unfold bools_logical_commute0_and1_and2_before bools_logical_commute0_and1_and2_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN bools_logical_commute0_and1_and2 + all_goals (try extract_goal ; sorry) + ---END bools_logical_commute0_and1_and2 + + + +def bools_logical_commute1_before := [llvm| +{ +^0(%arg96 : i1, %arg97 : i1, %arg98 : i1): + %0 = "llvm.mlir.constant"() <{value = true}> : () -> i1 + %1 = "llvm.mlir.constant"() <{value = false}> : () -> i1 + %2 = llvm.xor %arg98, %0 : i1 + %3 = "llvm.select"(%arg96, %2, %1) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i1, i1) -> i1 + %4 = "llvm.select"(%arg98, %arg97, %1) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i1, i1) -> i1 + %5 = "llvm.select"(%3, %0, %4) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i1, i1) -> i1 + "llvm.return"(%5) : (i1) -> () +} +] +def bools_logical_commute1_after := [llvm| +{ +^0(%arg96 : i1, %arg97 : i1, %arg98 : i1): + %0 = "llvm.select"(%arg98, %arg97, %arg96) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i1, i1) -> i1 + "llvm.return"(%0) : (i1) -> () +} +] +theorem bools_logical_commute1_proof : bools_logical_commute1_before ⊑ bools_logical_commute1_after := by + unfold bools_logical_commute1_before bools_logical_commute1_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN bools_logical_commute1 + all_goals (try extract_goal ; sorry) + ---END bools_logical_commute1 + + + +def bools_logical_commute1_and2_before := [llvm| +{ +^0(%arg91 : i1, %arg92 : i1, %arg93 : i1): + %0 = "llvm.mlir.constant"() <{value = true}> : () -> i1 + %1 = "llvm.mlir.constant"() <{value = false}> : () -> i1 + %2 = llvm.xor %arg93, %0 : i1 + %3 = "llvm.select"(%arg91, %2, %1) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i1, i1) -> i1 + %4 = llvm.and %arg93, %arg92 : i1 + %5 = "llvm.select"(%3, %0, %4) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i1, i1) -> i1 + "llvm.return"(%5) : (i1) -> () +} +] +def bools_logical_commute1_and2_after := [llvm| +{ +^0(%arg91 : i1, %arg92 : i1, %arg93 : i1): + %0 = "llvm.select"(%arg93, %arg92, %arg91) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i1, i1) -> i1 + "llvm.return"(%0) : (i1) -> () +} +] +theorem bools_logical_commute1_and2_proof : bools_logical_commute1_and2_before ⊑ bools_logical_commute1_and2_after := by + unfold bools_logical_commute1_and2_before bools_logical_commute1_and2_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN bools_logical_commute1_and2 + all_goals (try extract_goal ; sorry) + ---END bools_logical_commute1_and2 + + + +def bools_logical_commute3_and2_before := [llvm| +{ +^0(%arg69 : i1, %arg70 : i1, %arg71 : i1): + %0 = "llvm.mlir.constant"() <{value = true}> : () -> i1 + %1 = "llvm.mlir.constant"() <{value = false}> : () -> i1 + %2 = llvm.xor %arg71, %0 : i1 + %3 = "llvm.select"(%arg69, %2, %1) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i1, i1) -> i1 + %4 = llvm.and %arg70, %arg71 : i1 + %5 = "llvm.select"(%3, %0, %4) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i1, i1) -> i1 + "llvm.return"(%5) : (i1) -> () +} +] +def bools_logical_commute3_and2_after := [llvm| +{ +^0(%arg69 : i1, %arg70 : i1, %arg71 : i1): + %0 = "llvm.select"(%arg71, %arg70, %arg69) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i1, i1) -> i1 + "llvm.return"(%0) : (i1) -> () +} +] +theorem bools_logical_commute3_and2_proof : bools_logical_commute3_and2_before ⊑ bools_logical_commute3_and2_after := by + unfold bools_logical_commute3_and2_before bools_logical_commute3_and2_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN bools_logical_commute3_and2 + all_goals (try extract_goal ; sorry) + ---END bools_logical_commute3_and2 + + + +def bools2_logical_commute0_before := [llvm| +{ +^0(%arg64 : i1, %arg65 : i1, %arg66 : i1): + %0 = "llvm.mlir.constant"() <{value = true}> : () -> i1 + %1 = "llvm.mlir.constant"() <{value = false}> : () -> i1 + %2 = llvm.xor %arg66, %0 : i1 + %3 = "llvm.select"(%arg66, %arg64, %1) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i1, i1) -> i1 + %4 = "llvm.select"(%2, %arg65, %1) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i1, i1) -> i1 + %5 = "llvm.select"(%3, %0, %4) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i1, i1) -> i1 + "llvm.return"(%5) : (i1) -> () +} +] +def bools2_logical_commute0_after := [llvm| +{ +^0(%arg64 : i1, %arg65 : i1, %arg66 : i1): + %0 = "llvm.select"(%arg66, %arg64, %arg65) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i1, i1) -> i1 + "llvm.return"(%0) : (i1) -> () +} +] +theorem bools2_logical_commute0_proof : bools2_logical_commute0_before ⊑ bools2_logical_commute0_after := by + unfold bools2_logical_commute0_before bools2_logical_commute0_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN bools2_logical_commute0 + all_goals (try extract_goal ; sorry) + ---END bools2_logical_commute0 + + + +def bools2_logical_commute0_and1_before := [llvm| +{ +^0(%arg61 : i1, %arg62 : i1, %arg63 : i1): + %0 = "llvm.mlir.constant"() <{value = true}> : () -> i1 + %1 = "llvm.mlir.constant"() <{value = false}> : () -> i1 + %2 = llvm.xor %arg63, %0 : i1 + %3 = llvm.and %arg63, %arg61 : i1 + %4 = "llvm.select"(%2, %arg62, %1) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i1, i1) -> i1 + %5 = "llvm.select"(%3, %0, %4) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i1, i1) -> i1 + "llvm.return"(%5) : (i1) -> () +} +] +def bools2_logical_commute0_and1_after := [llvm| +{ +^0(%arg61 : i1, %arg62 : i1, %arg63 : i1): + %0 = "llvm.select"(%arg63, %arg61, %arg62) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i1, i1) -> i1 + "llvm.return"(%0) : (i1) -> () +} +] +theorem bools2_logical_commute0_and1_proof : bools2_logical_commute0_and1_before ⊑ bools2_logical_commute0_and1_after := by + unfold bools2_logical_commute0_and1_before bools2_logical_commute0_and1_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN bools2_logical_commute0_and1 + all_goals (try extract_goal ; sorry) + ---END bools2_logical_commute0_and1 + + + +def bools2_logical_commute0_and2_before := [llvm| +{ +^0(%arg58 : i1, %arg59 : i1, %arg60 : i1): + %0 = "llvm.mlir.constant"() <{value = true}> : () -> i1 + %1 = "llvm.mlir.constant"() <{value = false}> : () -> i1 + %2 = llvm.xor %arg60, %0 : i1 + %3 = "llvm.select"(%arg60, %arg58, %1) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i1, i1) -> i1 + %4 = llvm.and %2, %arg59 : i1 + %5 = "llvm.select"(%3, %0, %4) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i1, i1) -> i1 + "llvm.return"(%5) : (i1) -> () +} +] +def bools2_logical_commute0_and2_after := [llvm| +{ +^0(%arg58 : i1, %arg59 : i1, %arg60 : i1): + %0 = "llvm.select"(%arg60, %arg58, %arg59) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i1, i1) -> i1 + "llvm.return"(%0) : (i1) -> () +} +] +theorem bools2_logical_commute0_and2_proof : bools2_logical_commute0_and2_before ⊑ bools2_logical_commute0_and2_after := by + unfold bools2_logical_commute0_and2_before bools2_logical_commute0_and2_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN bools2_logical_commute0_and2 + all_goals (try extract_goal ; sorry) + ---END bools2_logical_commute0_and2 + + + +def bools2_logical_commute0_and1_and2_before := [llvm| +{ +^0(%arg55 : i1, %arg56 : i1, %arg57 : i1): + %0 = "llvm.mlir.constant"() <{value = true}> : () -> i1 + %1 = llvm.xor %arg57, %0 : i1 + %2 = llvm.and %arg57, %arg55 : i1 + %3 = llvm.and %1, %arg56 : i1 + %4 = "llvm.select"(%2, %0, %3) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i1, i1) -> i1 + "llvm.return"(%4) : (i1) -> () +} +] +def bools2_logical_commute0_and1_and2_after := [llvm| +{ +^0(%arg55 : i1, %arg56 : i1, %arg57 : i1): + %0 = "llvm.select"(%arg57, %arg55, %arg56) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i1, i1) -> i1 + "llvm.return"(%0) : (i1) -> () +} +] +theorem bools2_logical_commute0_and1_and2_proof : bools2_logical_commute0_and1_and2_before ⊑ bools2_logical_commute0_and1_and2_after := by + unfold bools2_logical_commute0_and1_and2_before bools2_logical_commute0_and1_and2_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN bools2_logical_commute0_and1_and2 + all_goals (try extract_goal ; sorry) + ---END bools2_logical_commute0_and1_and2 + + + +def bools2_logical_commute1_before := [llvm| +{ +^0(%arg52 : i1, %arg53 : i1, %arg54 : i1): + %0 = "llvm.mlir.constant"() <{value = true}> : () -> i1 + %1 = "llvm.mlir.constant"() <{value = false}> : () -> i1 + %2 = llvm.xor %arg54, %0 : i1 + %3 = "llvm.select"(%arg52, %arg54, %1) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i1, i1) -> i1 + %4 = "llvm.select"(%2, %arg53, %1) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i1, i1) -> i1 + %5 = "llvm.select"(%3, %0, %4) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i1, i1) -> i1 + "llvm.return"(%5) : (i1) -> () +} +] +def bools2_logical_commute1_after := [llvm| +{ +^0(%arg52 : i1, %arg53 : i1, %arg54 : i1): + %0 = "llvm.select"(%arg54, %arg52, %arg53) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i1, i1) -> i1 + "llvm.return"(%0) : (i1) -> () +} +] +theorem bools2_logical_commute1_proof : bools2_logical_commute1_before ⊑ bools2_logical_commute1_after := by + unfold bools2_logical_commute1_before bools2_logical_commute1_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN bools2_logical_commute1 + all_goals (try extract_goal ; sorry) + ---END bools2_logical_commute1 + + + +def bools2_logical_commute1_and1_before := [llvm| +{ +^0(%arg49 : i1, %arg50 : i1, %arg51 : i1): + %0 = "llvm.mlir.constant"() <{value = true}> : () -> i1 + %1 = "llvm.mlir.constant"() <{value = false}> : () -> i1 + %2 = llvm.xor %arg51, %0 : i1 + %3 = llvm.and %arg49, %arg51 : i1 + %4 = "llvm.select"(%2, %arg50, %1) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i1, i1) -> i1 + %5 = "llvm.select"(%3, %0, %4) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i1, i1) -> i1 + "llvm.return"(%5) : (i1) -> () +} +] +def bools2_logical_commute1_and1_after := [llvm| +{ +^0(%arg49 : i1, %arg50 : i1, %arg51 : i1): + %0 = "llvm.select"(%arg51, %arg49, %arg50) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i1, i1) -> i1 + "llvm.return"(%0) : (i1) -> () +} +] +theorem bools2_logical_commute1_and1_proof : bools2_logical_commute1_and1_before ⊑ bools2_logical_commute1_and1_after := by + unfold bools2_logical_commute1_and1_before bools2_logical_commute1_and1_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN bools2_logical_commute1_and1 + all_goals (try extract_goal ; sorry) + ---END bools2_logical_commute1_and1 + + + +def bools2_logical_commute1_and2_before := [llvm| +{ +^0(%arg46 : i1, %arg47 : i1, %arg48 : i1): + %0 = "llvm.mlir.constant"() <{value = true}> : () -> i1 + %1 = "llvm.mlir.constant"() <{value = false}> : () -> i1 + %2 = llvm.xor %arg48, %0 : i1 + %3 = "llvm.select"(%arg46, %arg48, %1) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i1, i1) -> i1 + %4 = llvm.and %2, %arg47 : i1 + %5 = "llvm.select"(%3, %0, %4) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i1, i1) -> i1 + "llvm.return"(%5) : (i1) -> () +} +] +def bools2_logical_commute1_and2_after := [llvm| +{ +^0(%arg46 : i1, %arg47 : i1, %arg48 : i1): + %0 = "llvm.select"(%arg48, %arg46, %arg47) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i1, i1) -> i1 + "llvm.return"(%0) : (i1) -> () +} +] +theorem bools2_logical_commute1_and2_proof : bools2_logical_commute1_and2_before ⊑ bools2_logical_commute1_and2_after := by + unfold bools2_logical_commute1_and2_before bools2_logical_commute1_and2_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN bools2_logical_commute1_and2 + all_goals (try extract_goal ; sorry) + ---END bools2_logical_commute1_and2 + + + +def bools2_logical_commute1_and1_and2_before := [llvm| +{ +^0(%arg43 : i1, %arg44 : i1, %arg45 : i1): + %0 = "llvm.mlir.constant"() <{value = true}> : () -> i1 + %1 = llvm.xor %arg45, %0 : i1 + %2 = llvm.and %arg43, %arg45 : i1 + %3 = llvm.and %1, %arg44 : i1 + %4 = "llvm.select"(%2, %0, %3) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i1, i1) -> i1 + "llvm.return"(%4) : (i1) -> () +} +] +def bools2_logical_commute1_and1_and2_after := [llvm| +{ +^0(%arg43 : i1, %arg44 : i1, %arg45 : i1): + %0 = "llvm.select"(%arg45, %arg43, %arg44) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i1, i1) -> i1 + "llvm.return"(%0) : (i1) -> () +} +] +theorem bools2_logical_commute1_and1_and2_proof : bools2_logical_commute1_and1_and2_before ⊑ bools2_logical_commute1_and1_and2_after := by + unfold bools2_logical_commute1_and1_and2_before bools2_logical_commute1_and1_and2_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN bools2_logical_commute1_and1_and2 + all_goals (try extract_goal ; sorry) + ---END bools2_logical_commute1_and1_and2 + + + +def bools2_logical_commute2_before := [llvm| +{ +^0(%arg40 : i1, %arg41 : i1, %arg42 : i1): + %0 = "llvm.mlir.constant"() <{value = true}> : () -> i1 + %1 = "llvm.mlir.constant"() <{value = false}> : () -> i1 + %2 = llvm.xor %arg42, %0 : i1 + %3 = "llvm.select"(%arg42, %arg40, %1) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i1, i1) -> i1 + %4 = "llvm.select"(%arg41, %2, %1) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i1, i1) -> i1 + %5 = "llvm.select"(%3, %0, %4) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i1, i1) -> i1 + "llvm.return"(%5) : (i1) -> () +} +] +def bools2_logical_commute2_after := [llvm| +{ +^0(%arg40 : i1, %arg41 : i1, %arg42 : i1): + %0 = "llvm.select"(%arg42, %arg40, %arg41) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i1, i1) -> i1 + "llvm.return"(%0) : (i1) -> () +} +] +theorem bools2_logical_commute2_proof : bools2_logical_commute2_before ⊑ bools2_logical_commute2_after := by + unfold bools2_logical_commute2_before bools2_logical_commute2_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN bools2_logical_commute2 + all_goals (try extract_goal ; sorry) + ---END bools2_logical_commute2 + + + +def bools2_logical_commute2_and1_before := [llvm| +{ +^0(%arg37 : i1, %arg38 : i1, %arg39 : i1): + %0 = "llvm.mlir.constant"() <{value = true}> : () -> i1 + %1 = "llvm.mlir.constant"() <{value = false}> : () -> i1 + %2 = llvm.xor %arg39, %0 : i1 + %3 = llvm.and %arg39, %arg37 : i1 + %4 = "llvm.select"(%arg38, %2, %1) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i1, i1) -> i1 + %5 = "llvm.select"(%3, %0, %4) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i1, i1) -> i1 + "llvm.return"(%5) : (i1) -> () +} +] +def bools2_logical_commute2_and1_after := [llvm| +{ +^0(%arg37 : i1, %arg38 : i1, %arg39 : i1): + %0 = "llvm.select"(%arg39, %arg37, %arg38) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i1, i1) -> i1 + "llvm.return"(%0) : (i1) -> () +} +] +theorem bools2_logical_commute2_and1_proof : bools2_logical_commute2_and1_before ⊑ bools2_logical_commute2_and1_after := by + unfold bools2_logical_commute2_and1_before bools2_logical_commute2_and1_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN bools2_logical_commute2_and1 + all_goals (try extract_goal ; sorry) + ---END bools2_logical_commute2_and1 + + + +def bools2_logical_commute3_nopoison_before := [llvm| +{ +^0(%arg27 : i1, %arg28 : i1, %arg29 : i1): + %0 = "llvm.mlir.constant"() <{value = true}> : () -> i1 + %1 = "llvm.mlir.constant"() <{value = false}> : () -> i1 + %2 = llvm.xor %arg29, %0 : i1 + %3 = "llvm.select"(%arg27, %arg29, %1) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i1, i1) -> i1 + %4 = "llvm.select"(%arg28, %2, %1) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i1, i1) -> i1 + %5 = "llvm.select"(%3, %0, %4) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i1, i1) -> i1 + "llvm.return"(%5) : (i1) -> () +} +] +def bools2_logical_commute3_nopoison_after := [llvm| +{ +^0(%arg27 : i1, %arg28 : i1, %arg29 : i1): + %0 = "llvm.select"(%arg29, %arg27, %arg28) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i1, i1) -> i1 + "llvm.return"(%0) : (i1) -> () +} +] +theorem bools2_logical_commute3_nopoison_proof : bools2_logical_commute3_nopoison_before ⊑ bools2_logical_commute3_nopoison_after := by + unfold bools2_logical_commute3_nopoison_before bools2_logical_commute3_nopoison_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN bools2_logical_commute3_nopoison + all_goals (try extract_goal ; sorry) + ---END bools2_logical_commute3_nopoison + + + +def bools2_logical_commute3_and1_before := [llvm| +{ +^0(%arg24 : i1, %arg25 : i1, %arg26 : i1): + %0 = "llvm.mlir.constant"() <{value = true}> : () -> i1 + %1 = "llvm.mlir.constant"() <{value = false}> : () -> i1 + %2 = llvm.xor %arg26, %0 : i1 + %3 = llvm.and %arg24, %arg26 : i1 + %4 = "llvm.select"(%arg25, %2, %1) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i1, i1) -> i1 + %5 = "llvm.select"(%3, %0, %4) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i1, i1) -> i1 + "llvm.return"(%5) : (i1) -> () +} +] +def bools2_logical_commute3_and1_after := [llvm| +{ +^0(%arg24 : i1, %arg25 : i1, %arg26 : i1): + %0 = "llvm.select"(%arg26, %arg24, %arg25) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i1, i1) -> i1 + "llvm.return"(%0) : (i1) -> () +} +] +theorem bools2_logical_commute3_and1_proof : bools2_logical_commute3_and1_before ⊑ bools2_logical_commute3_and1_after := by + unfold bools2_logical_commute3_and1_before bools2_logical_commute3_and1_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN bools2_logical_commute3_and1 + all_goals (try extract_goal ; sorry) + ---END bools2_logical_commute3_and1 + + diff --git a/SSA/Projects/InstCombine/tests/LLVM/gselecthwithhbitwisehops.lean b/SSA/Projects/InstCombine/tests/LLVM/gselecthwithhbitwisehops.lean new file mode 100644 index 000000000..ea0c5b67d --- /dev/null +++ b/SSA/Projects/InstCombine/tests/LLVM/gselecthwithhbitwisehops.lean @@ -0,0 +1,52 @@ + +import SSA.Projects.InstCombine.LLVM.PrettyEDSL +import SSA.Projects.InstCombine.TacticAuto +import SSA.Projects.InstCombine.LLVM.Semantics +open LLVM +open BitVec + +open MLIR AST +open Ctxt (Var) + +set_option linter.deprecated false +set_option linter.unreachableTactic false +set_option linter.unusedTactic false +section gselecthwithhbitwisehops_statements + +def set_bits_before := [llvm| +{ +^0(%arg26 : i8, %arg27 : i1): + %0 = "llvm.mlir.constant"() <{value = -6 : i8}> : () -> i8 + %1 = "llvm.mlir.constant"() <{value = 5 : i8}> : () -> i8 + %2 = llvm.and %arg26, %0 : i8 + %3 = llvm.or %arg26, %1 : i8 + %4 = "llvm.select"(%arg27, %3, %2) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i8, i8) -> i8 + "llvm.return"(%4) : (i8) -> () +} +] +def set_bits_after := [llvm| +{ +^0(%arg26 : i8, %arg27 : i1): + %0 = "llvm.mlir.constant"() <{value = -6 : i8}> : () -> i8 + %1 = "llvm.mlir.constant"() <{value = 5 : i8}> : () -> i8 + %2 = "llvm.mlir.constant"() <{value = 0 : i8}> : () -> i8 + %3 = llvm.and %arg26, %0 : i8 + %4 = "llvm.select"(%arg27, %1, %2) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i8, i8) -> i8 + %5 = llvm.or %3, %4 : i8 + "llvm.return"(%5) : (i8) -> () +} +] +theorem set_bits_proof : set_bits_before ⊑ set_bits_after := by + unfold set_bits_before set_bits_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN set_bits + all_goals (try extract_goal ; sorry) + ---END set_bits + + diff --git a/SSA/Projects/InstCombine/tests/LLVM/gshifthshift.lean b/SSA/Projects/InstCombine/tests/LLVM/gshifthshift.lean index 7c1b7daf3..0698ceaeb 100644 --- a/SSA/Projects/InstCombine/tests/LLVM/gshifthshift.lean +++ b/SSA/Projects/InstCombine/tests/LLVM/gshifthshift.lean @@ -77,6 +77,41 @@ theorem lshr_lshr_proof : lshr_lshr_before ⊑ lshr_lshr_after := by +def shl_shl_constants_div_before := [llvm| +{ +^0(%arg27 : i32, %arg28 : i32): + %0 = "llvm.mlir.constant"() <{value = 1 : i32}> : () -> i32 + %1 = "llvm.mlir.constant"() <{value = 2 : i32}> : () -> i32 + %2 = llvm.shl %0, %arg28 : i32 + %3 = llvm.shl %2, %1 : i32 + %4 = llvm.udiv %arg27, %3 : i32 + "llvm.return"(%4) : (i32) -> () +} +] +def shl_shl_constants_div_after := [llvm| +{ +^0(%arg27 : i32, %arg28 : i32): + %0 = "llvm.mlir.constant"() <{value = 2 : i32}> : () -> i32 + %1 = llvm.add %arg28, %0 : i32 + %2 = llvm.lshr %arg27, %1 : i32 + "llvm.return"(%2) : (i32) -> () +} +] +theorem shl_shl_constants_div_proof : shl_shl_constants_div_before ⊑ shl_shl_constants_div_after := by + unfold shl_shl_constants_div_before shl_shl_constants_div_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN shl_shl_constants_div + all_goals (try extract_goal ; sorry) + ---END shl_shl_constants_div + + + def ashr_shl_constants_before := [llvm| { ^0(%arg25 : i32): diff --git a/SSA/Projects/InstCombine/tests/LLVM/gsubhofhnegatible.lean b/SSA/Projects/InstCombine/tests/LLVM/gsubhofhnegatible.lean index 41a50d41c..a0674e7fb 100644 --- a/SSA/Projects/InstCombine/tests/LLVM/gsubhofhnegatible.lean +++ b/SSA/Projects/InstCombine/tests/LLVM/gsubhofhnegatible.lean @@ -77,6 +77,112 @@ theorem t2_proof : t2_before ⊑ t2_after := by +def t4_before := [llvm| +{ +^0(%arg200 : i8, %arg201 : i1): + %0 = "llvm.mlir.constant"() <{value = -42 : i8}> : () -> i8 + %1 = "llvm.mlir.constant"() <{value = 44 : i8}> : () -> i8 + %2 = "llvm.select"(%arg201, %0, %1) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i8, i8) -> i8 + %3 = llvm.sub %arg200, %2 : i8 + "llvm.return"(%3) : (i8) -> () +} +] +def t4_after := [llvm| +{ +^0(%arg200 : i8, %arg201 : i1): + %0 = "llvm.mlir.constant"() <{value = 42 : i8}> : () -> i8 + %1 = "llvm.mlir.constant"() <{value = -44 : i8}> : () -> i8 + %2 = "llvm.select"(%arg201, %0, %1) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i8, i8) -> i8 + %3 = llvm.add %2, %arg200 : i8 + "llvm.return"(%3) : (i8) -> () +} +] +theorem t4_proof : t4_before ⊑ t4_after := by + unfold t4_before t4_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN t4 + all_goals (try extract_goal ; sorry) + ---END t4 + + + +def PR52261_before := [llvm| +{ +^0(%arg198 : i1): + %0 = "llvm.mlir.constant"() <{value = 2 : i32}> : () -> i32 + %1 = "llvm.mlir.constant"() <{value = -2 : i32}> : () -> i32 + %2 = "llvm.mlir.constant"() <{value = 0 : i32}> : () -> i32 + %3 = "llvm.select"(%arg198, %0, %1) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i32, i32) -> i32 + %4 = llvm.sub %2, %3 overflow : i32 + %5 = llvm.and %3, %4 : i32 + "llvm.return"(%5) : (i32) -> () +} +] +def PR52261_after := [llvm| +{ +^0(%arg198 : i1): + %0 = "llvm.mlir.constant"() <{value = 2 : i32}> : () -> i32 + "llvm.return"(%0) : (i32) -> () +} +] +theorem PR52261_proof : PR52261_before ⊑ PR52261_after := by + unfold PR52261_before PR52261_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN PR52261 + all_goals (try extract_goal ; sorry) + ---END PR52261 + + + +def t7_before := [llvm| +{ +^0(%arg187 : i8, %arg188 : i1, %arg189 : i8): + %0 = "llvm.mlir.constant"() <{value = 1 : i8}> : () -> i8 + %1 = "llvm.mlir.constant"() <{value = 0 : i8}> : () -> i8 + %2 = llvm.shl %0, %arg189 : i8 + %3 = "llvm.select"(%arg188, %1, %2) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i8, i8) -> i8 + %4 = llvm.sub %arg187, %3 : i8 + "llvm.return"(%4) : (i8) -> () +} +] +def t7_after := [llvm| +{ +^0(%arg187 : i8, %arg188 : i1, %arg189 : i8): + %0 = "llvm.mlir.constant"() <{value = -1 : i8}> : () -> i8 + %1 = "llvm.mlir.constant"() <{value = 0 : i8}> : () -> i8 + %2 = llvm.shl %0, %arg189 overflow : i8 + %3 = "llvm.select"(%arg188, %1, %2) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i8, i8) -> i8 + %4 = llvm.add %3, %arg187 : i8 + "llvm.return"(%4) : (i8) -> () +} +] +theorem t7_proof : t7_before ⊑ t7_after := by + unfold t7_before t7_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN t7 + all_goals (try extract_goal ; sorry) + ---END t7 + + + def t9_before := [llvm| { ^0(%arg182 : i8, %arg183 : i8): diff --git a/SSA/Projects/InstCombine/tests/LLVM/gsubhofhnegatiblehinseltpoison.lean b/SSA/Projects/InstCombine/tests/LLVM/gsubhofhnegatiblehinseltpoison.lean index 2d7f40541..148a5438d 100644 --- a/SSA/Projects/InstCombine/tests/LLVM/gsubhofhnegatiblehinseltpoison.lean +++ b/SSA/Projects/InstCombine/tests/LLVM/gsubhofhnegatiblehinseltpoison.lean @@ -77,6 +77,78 @@ theorem t2_proof : t2_before ⊑ t2_after := by +def t4_before := [llvm| +{ +^0(%arg192 : i8, %arg193 : i1): + %0 = "llvm.mlir.constant"() <{value = -42 : i8}> : () -> i8 + %1 = "llvm.mlir.constant"() <{value = 44 : i8}> : () -> i8 + %2 = "llvm.select"(%arg193, %0, %1) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i8, i8) -> i8 + %3 = llvm.sub %arg192, %2 : i8 + "llvm.return"(%3) : (i8) -> () +} +] +def t4_after := [llvm| +{ +^0(%arg192 : i8, %arg193 : i1): + %0 = "llvm.mlir.constant"() <{value = 42 : i8}> : () -> i8 + %1 = "llvm.mlir.constant"() <{value = -44 : i8}> : () -> i8 + %2 = "llvm.select"(%arg193, %0, %1) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i8, i8) -> i8 + %3 = llvm.add %2, %arg192 : i8 + "llvm.return"(%3) : (i8) -> () +} +] +theorem t4_proof : t4_before ⊑ t4_after := by + unfold t4_before t4_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN t4 + all_goals (try extract_goal ; sorry) + ---END t4 + + + +def t7_before := [llvm| +{ +^0(%arg181 : i8, %arg182 : i1, %arg183 : i8): + %0 = "llvm.mlir.constant"() <{value = 1 : i8}> : () -> i8 + %1 = "llvm.mlir.constant"() <{value = 0 : i8}> : () -> i8 + %2 = llvm.shl %0, %arg183 : i8 + %3 = "llvm.select"(%arg182, %1, %2) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i8, i8) -> i8 + %4 = llvm.sub %arg181, %3 : i8 + "llvm.return"(%4) : (i8) -> () +} +] +def t7_after := [llvm| +{ +^0(%arg181 : i8, %arg182 : i1, %arg183 : i8): + %0 = "llvm.mlir.constant"() <{value = -1 : i8}> : () -> i8 + %1 = "llvm.mlir.constant"() <{value = 0 : i8}> : () -> i8 + %2 = llvm.shl %0, %arg183 overflow : i8 + %3 = "llvm.select"(%arg182, %1, %2) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i8, i8) -> i8 + %4 = llvm.add %3, %arg181 : i8 + "llvm.return"(%4) : (i8) -> () +} +] +theorem t7_proof : t7_before ⊑ t7_after := by + unfold t7_before t7_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN t7 + all_goals (try extract_goal ; sorry) + ---END t7 + + + def t9_before := [llvm| { ^0(%arg176 : i8, %arg177 : i8): diff --git a/SSA/Projects/InstCombine/tests/LLVM/gsubtracthfromhonehhandhofhselect.lean b/SSA/Projects/InstCombine/tests/LLVM/gsubtracthfromhonehhandhofhselect.lean new file mode 100644 index 000000000..9c4ee82e1 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/LLVM/gsubtracthfromhonehhandhofhselect.lean @@ -0,0 +1,78 @@ + +import SSA.Projects.InstCombine.LLVM.PrettyEDSL +import SSA.Projects.InstCombine.TacticAuto +import SSA.Projects.InstCombine.LLVM.Semantics +open LLVM +open BitVec + +open MLIR AST +open Ctxt (Var) + +set_option linter.deprecated false +set_option linter.unreachableTactic false +set_option linter.unusedTactic false +section gsubtracthfromhonehhandhofhselect_statements + +def t0_sub_from_trueval_before := [llvm| +{ +^0(%arg13 : i1, %arg14 : i8, %arg15 : i8): + %0 = "llvm.select"(%arg13, %arg14, %arg15) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i8, i8) -> i8 + %1 = llvm.sub %arg14, %0 : i8 + "llvm.return"(%1) : (i8) -> () +} +] +def t0_sub_from_trueval_after := [llvm| +{ +^0(%arg13 : i1, %arg14 : i8, %arg15 : i8): + %0 = "llvm.mlir.constant"() <{value = 0 : i8}> : () -> i8 + %1 = llvm.sub %arg14, %arg15 : i8 + %2 = "llvm.select"(%arg13, %0, %1) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i8, i8) -> i8 + "llvm.return"(%2) : (i8) -> () +} +] +theorem t0_sub_from_trueval_proof : t0_sub_from_trueval_before ⊑ t0_sub_from_trueval_after := by + unfold t0_sub_from_trueval_before t0_sub_from_trueval_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN t0_sub_from_trueval + all_goals (try extract_goal ; sorry) + ---END t0_sub_from_trueval + + + +def t1_sub_from_falseval_before := [llvm| +{ +^0(%arg10 : i1, %arg11 : i8, %arg12 : i8): + %0 = "llvm.select"(%arg10, %arg11, %arg12) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i8, i8) -> i8 + %1 = llvm.sub %arg12, %0 : i8 + "llvm.return"(%1) : (i8) -> () +} +] +def t1_sub_from_falseval_after := [llvm| +{ +^0(%arg10 : i1, %arg11 : i8, %arg12 : i8): + %0 = "llvm.mlir.constant"() <{value = 0 : i8}> : () -> i8 + %1 = llvm.sub %arg12, %arg11 : i8 + %2 = "llvm.select"(%arg10, %1, %0) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i8, i8) -> i8 + "llvm.return"(%2) : (i8) -> () +} +] +theorem t1_sub_from_falseval_proof : t1_sub_from_falseval_before ⊑ t1_sub_from_falseval_after := by + unfold t1_sub_from_falseval_before t1_sub_from_falseval_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN t1_sub_from_falseval + all_goals (try extract_goal ; sorry) + ---END t1_sub_from_falseval + + diff --git a/SSA/Projects/InstCombine/tests/LLVM/gsubtracthofhonehhandhofhselect.lean b/SSA/Projects/InstCombine/tests/LLVM/gsubtracthofhonehhandhofhselect.lean new file mode 100644 index 000000000..e80362d32 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/LLVM/gsubtracthofhonehhandhofhselect.lean @@ -0,0 +1,78 @@ + +import SSA.Projects.InstCombine.LLVM.PrettyEDSL +import SSA.Projects.InstCombine.TacticAuto +import SSA.Projects.InstCombine.LLVM.Semantics +open LLVM +open BitVec + +open MLIR AST +open Ctxt (Var) + +set_option linter.deprecated false +set_option linter.unreachableTactic false +set_option linter.unusedTactic false +section gsubtracthofhonehhandhofhselect_statements + +def t0_sub_of_trueval_before := [llvm| +{ +^0(%arg13 : i1, %arg14 : i8, %arg15 : i8): + %0 = "llvm.select"(%arg13, %arg14, %arg15) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i8, i8) -> i8 + %1 = llvm.sub %0, %arg14 : i8 + "llvm.return"(%1) : (i8) -> () +} +] +def t0_sub_of_trueval_after := [llvm| +{ +^0(%arg13 : i1, %arg14 : i8, %arg15 : i8): + %0 = "llvm.mlir.constant"() <{value = 0 : i8}> : () -> i8 + %1 = llvm.sub %arg15, %arg14 : i8 + %2 = "llvm.select"(%arg13, %0, %1) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i8, i8) -> i8 + "llvm.return"(%2) : (i8) -> () +} +] +theorem t0_sub_of_trueval_proof : t0_sub_of_trueval_before ⊑ t0_sub_of_trueval_after := by + unfold t0_sub_of_trueval_before t0_sub_of_trueval_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN t0_sub_of_trueval + all_goals (try extract_goal ; sorry) + ---END t0_sub_of_trueval + + + +def t1_sub_of_falseval_before := [llvm| +{ +^0(%arg10 : i1, %arg11 : i8, %arg12 : i8): + %0 = "llvm.select"(%arg10, %arg11, %arg12) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i8, i8) -> i8 + %1 = llvm.sub %0, %arg12 : i8 + "llvm.return"(%1) : (i8) -> () +} +] +def t1_sub_of_falseval_after := [llvm| +{ +^0(%arg10 : i1, %arg11 : i8, %arg12 : i8): + %0 = "llvm.mlir.constant"() <{value = 0 : i8}> : () -> i8 + %1 = llvm.sub %arg11, %arg12 : i8 + %2 = "llvm.select"(%arg10, %1, %0) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i8, i8) -> i8 + "llvm.return"(%2) : (i8) -> () +} +] +theorem t1_sub_of_falseval_proof : t1_sub_of_falseval_before ⊑ t1_sub_of_falseval_after := by + unfold t1_sub_of_falseval_before t1_sub_of_falseval_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN t1_sub_of_falseval + all_goals (try extract_goal ; sorry) + ---END t1_sub_of_falseval + + diff --git a/SSA/Projects/InstCombine/tests/LLVM/gudiv_select_to_select_shift.lean b/SSA/Projects/InstCombine/tests/LLVM/gudiv_select_to_select_shift.lean new file mode 100644 index 000000000..0f4155f81 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/LLVM/gudiv_select_to_select_shift.lean @@ -0,0 +1,54 @@ + +import SSA.Projects.InstCombine.LLVM.PrettyEDSL +import SSA.Projects.InstCombine.TacticAuto +import SSA.Projects.InstCombine.LLVM.Semantics +open LLVM +open BitVec + +open MLIR AST +open Ctxt (Var) + +set_option linter.deprecated false +set_option linter.unreachableTactic false +set_option linter.unusedTactic false +section gudiv_select_to_select_shift_statements + +def test_before := [llvm| +{ +^0(%arg2 : i64, %arg3 : i1): + %0 = "llvm.mlir.constant"() <{value = 16 : i64}> : () -> i64 + %1 = "llvm.mlir.constant"() <{value = 8 : i64}> : () -> i64 + %2 = "llvm.mlir.constant"() <{value = 0 : i64}> : () -> i64 + %3 = "llvm.select"(%arg3, %0, %1) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i64, i64) -> i64 + %4 = llvm.udiv %arg2, %3 : i64 + %5 = "llvm.select"(%arg3, %1, %2) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i64, i64) -> i64 + %6 = llvm.udiv %arg2, %5 : i64 + %7 = llvm.add %4, %6 : i64 + "llvm.return"(%7) : (i64) -> () +} +] +def test_after := [llvm| +{ +^0(%arg2 : i64, %arg3 : i1): + %0 = "llvm.mlir.constant"() <{value = 4 : i64}> : () -> i64 + %1 = "llvm.mlir.constant"() <{value = 3 : i64}> : () -> i64 + %2 = llvm.lshr %arg2, %0 : i64 + %3 = llvm.lshr %arg2, %1 : i64 + %4 = llvm.add %2, %3 overflow : i64 + "llvm.return"(%4) : (i64) -> () +} +] +theorem test_proof : test_before ⊑ test_after := by + unfold test_before test_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN test + all_goals (try extract_goal ; sorry) + ---END test + + diff --git a/SSA/Projects/InstCombine/tests/LLVM/gxor.lean b/SSA/Projects/InstCombine/tests/LLVM/gxor.lean index eb2ec5e06..023780dde 100644 --- a/SSA/Projects/InstCombine/tests/LLVM/gxor.lean +++ b/SSA/Projects/InstCombine/tests/LLVM/gxor.lean @@ -489,6 +489,345 @@ theorem test28_sub_proof : test28_sub_before ⊑ test28_sub_after := by +def test29_before := [llvm| +{ +^0(%arg173 : i1): + %0 = "llvm.mlir.constant"() <{value = 1000 : i32}> : () -> i32 + %1 = "llvm.mlir.constant"() <{value = 10 : i32}> : () -> i32 + %2 = "llvm.mlir.constant"() <{value = 123 : i32}> : () -> i32 + %3 = "llvm.select"(%arg173, %0, %1) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i32, i32) -> i32 + %4 = llvm.xor %3, %2 : i32 + "llvm.return"(%4) : (i32) -> () +} +] +def test29_after := [llvm| +{ +^0(%arg173 : i1): + %0 = "llvm.mlir.constant"() <{value = 915 : i32}> : () -> i32 + %1 = "llvm.mlir.constant"() <{value = 113 : i32}> : () -> i32 + %2 = "llvm.select"(%arg173, %0, %1) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i32, i32) -> i32 + "llvm.return"(%2) : (i32) -> () +} +] +theorem test29_proof : test29_before ⊑ test29_after := by + unfold test29_before test29_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN test29 + all_goals (try extract_goal ; sorry) + ---END test29 + + + +def or_xor_commute1_before := [llvm| +{ +^0(%arg166 : i32, %arg167 : i32): + %0 = "llvm.mlir.constant"() <{value = 42 : i32}> : () -> i32 + %1 = llvm.udiv %0, %arg166 : i32 + %2 = llvm.udiv %0, %arg167 : i32 + %3 = llvm.or %2, %1 : i32 + %4 = llvm.xor %2, %3 : i32 + "llvm.return"(%4) : (i32) -> () +} +] +def or_xor_commute1_after := [llvm| +{ +^0(%arg166 : i32, %arg167 : i32): + %0 = "llvm.mlir.constant"() <{value = 42 : i32}> : () -> i32 + %1 = "llvm.mlir.constant"() <{value = -1 : i32}> : () -> i32 + %2 = llvm.udiv %0, %arg166 : i32 + %3 = llvm.udiv %0, %arg167 : i32 + %4 = llvm.xor %3, %1 : i32 + %5 = llvm.and %2, %4 : i32 + "llvm.return"(%5) : (i32) -> () +} +] +theorem or_xor_commute1_proof : or_xor_commute1_before ⊑ or_xor_commute1_after := by + unfold or_xor_commute1_before or_xor_commute1_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN or_xor_commute1 + all_goals (try extract_goal ; sorry) + ---END or_xor_commute1 + + + +def or_xor_commute2_before := [llvm| +{ +^0(%arg164 : i32, %arg165 : i32): + %0 = "llvm.mlir.constant"() <{value = 42 : i32}> : () -> i32 + %1 = llvm.udiv %0, %arg164 : i32 + %2 = llvm.udiv %0, %arg165 : i32 + %3 = llvm.or %1, %2 : i32 + %4 = llvm.xor %3, %2 : i32 + "llvm.return"(%4) : (i32) -> () +} +] +def or_xor_commute2_after := [llvm| +{ +^0(%arg164 : i32, %arg165 : i32): + %0 = "llvm.mlir.constant"() <{value = 42 : i32}> : () -> i32 + %1 = "llvm.mlir.constant"() <{value = -1 : i32}> : () -> i32 + %2 = llvm.udiv %0, %arg164 : i32 + %3 = llvm.udiv %0, %arg165 : i32 + %4 = llvm.xor %3, %1 : i32 + %5 = llvm.and %2, %4 : i32 + "llvm.return"(%5) : (i32) -> () +} +] +theorem or_xor_commute2_proof : or_xor_commute2_before ⊑ or_xor_commute2_after := by + unfold or_xor_commute2_before or_xor_commute2_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN or_xor_commute2 + all_goals (try extract_goal ; sorry) + ---END or_xor_commute2 + + + +def or_xor_commute3_before := [llvm| +{ +^0(%arg162 : i32, %arg163 : i32): + %0 = "llvm.mlir.constant"() <{value = 42 : i32}> : () -> i32 + %1 = llvm.udiv %0, %arg162 : i32 + %2 = llvm.udiv %0, %arg163 : i32 + %3 = llvm.or %2, %1 : i32 + %4 = llvm.xor %3, %2 : i32 + "llvm.return"(%4) : (i32) -> () +} +] +def or_xor_commute3_after := [llvm| +{ +^0(%arg162 : i32, %arg163 : i32): + %0 = "llvm.mlir.constant"() <{value = 42 : i32}> : () -> i32 + %1 = "llvm.mlir.constant"() <{value = -1 : i32}> : () -> i32 + %2 = llvm.udiv %0, %arg162 : i32 + %3 = llvm.udiv %0, %arg163 : i32 + %4 = llvm.xor %3, %1 : i32 + %5 = llvm.and %2, %4 : i32 + "llvm.return"(%5) : (i32) -> () +} +] +theorem or_xor_commute3_proof : or_xor_commute3_before ⊑ or_xor_commute3_after := by + unfold or_xor_commute3_before or_xor_commute3_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN or_xor_commute3 + all_goals (try extract_goal ; sorry) + ---END or_xor_commute3 + + + +def or_xor_commute4_before := [llvm| +{ +^0(%arg160 : i32, %arg161 : i32): + %0 = "llvm.mlir.constant"() <{value = 42 : i32}> : () -> i32 + %1 = llvm.udiv %0, %arg160 : i32 + %2 = llvm.udiv %0, %arg161 : i32 + %3 = llvm.or %1, %2 : i32 + %4 = llvm.xor %2, %3 : i32 + "llvm.return"(%4) : (i32) -> () +} +] +def or_xor_commute4_after := [llvm| +{ +^0(%arg160 : i32, %arg161 : i32): + %0 = "llvm.mlir.constant"() <{value = 42 : i32}> : () -> i32 + %1 = "llvm.mlir.constant"() <{value = -1 : i32}> : () -> i32 + %2 = llvm.udiv %0, %arg160 : i32 + %3 = llvm.udiv %0, %arg161 : i32 + %4 = llvm.xor %3, %1 : i32 + %5 = llvm.and %2, %4 : i32 + "llvm.return"(%5) : (i32) -> () +} +] +theorem or_xor_commute4_proof : or_xor_commute4_before ⊑ or_xor_commute4_after := by + unfold or_xor_commute4_before or_xor_commute4_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN or_xor_commute4 + all_goals (try extract_goal ; sorry) + ---END or_xor_commute4 + + + +def and_xor_commute1_before := [llvm| +{ +^0(%arg155 : i32, %arg156 : i32): + %0 = "llvm.mlir.constant"() <{value = 42 : i32}> : () -> i32 + %1 = llvm.udiv %0, %arg155 : i32 + %2 = llvm.udiv %0, %arg156 : i32 + %3 = llvm.and %2, %1 : i32 + %4 = llvm.xor %2, %3 : i32 + "llvm.return"(%4) : (i32) -> () +} +] +def and_xor_commute1_after := [llvm| +{ +^0(%arg155 : i32, %arg156 : i32): + %0 = "llvm.mlir.constant"() <{value = 42 : i32}> : () -> i32 + %1 = "llvm.mlir.constant"() <{value = -1 : i32}> : () -> i32 + %2 = llvm.udiv %0, %arg155 : i32 + %3 = llvm.udiv %0, %arg156 : i32 + %4 = llvm.xor %2, %1 : i32 + %5 = llvm.and %3, %4 : i32 + "llvm.return"(%5) : (i32) -> () +} +] +theorem and_xor_commute1_proof : and_xor_commute1_before ⊑ and_xor_commute1_after := by + unfold and_xor_commute1_before and_xor_commute1_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN and_xor_commute1 + all_goals (try extract_goal ; sorry) + ---END and_xor_commute1 + + + +def and_xor_commute2_before := [llvm| +{ +^0(%arg153 : i32, %arg154 : i32): + %0 = "llvm.mlir.constant"() <{value = 42 : i32}> : () -> i32 + %1 = llvm.udiv %0, %arg153 : i32 + %2 = llvm.udiv %0, %arg154 : i32 + %3 = llvm.and %1, %2 : i32 + %4 = llvm.xor %3, %2 : i32 + "llvm.return"(%4) : (i32) -> () +} +] +def and_xor_commute2_after := [llvm| +{ +^0(%arg153 : i32, %arg154 : i32): + %0 = "llvm.mlir.constant"() <{value = 42 : i32}> : () -> i32 + %1 = "llvm.mlir.constant"() <{value = -1 : i32}> : () -> i32 + %2 = llvm.udiv %0, %arg153 : i32 + %3 = llvm.udiv %0, %arg154 : i32 + %4 = llvm.xor %2, %1 : i32 + %5 = llvm.and %3, %4 : i32 + "llvm.return"(%5) : (i32) -> () +} +] +theorem and_xor_commute2_proof : and_xor_commute2_before ⊑ and_xor_commute2_after := by + unfold and_xor_commute2_before and_xor_commute2_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN and_xor_commute2 + all_goals (try extract_goal ; sorry) + ---END and_xor_commute2 + + + +def and_xor_commute3_before := [llvm| +{ +^0(%arg151 : i32, %arg152 : i32): + %0 = "llvm.mlir.constant"() <{value = 42 : i32}> : () -> i32 + %1 = llvm.udiv %0, %arg151 : i32 + %2 = llvm.udiv %0, %arg152 : i32 + %3 = llvm.and %2, %1 : i32 + %4 = llvm.xor %3, %2 : i32 + "llvm.return"(%4) : (i32) -> () +} +] +def and_xor_commute3_after := [llvm| +{ +^0(%arg151 : i32, %arg152 : i32): + %0 = "llvm.mlir.constant"() <{value = 42 : i32}> : () -> i32 + %1 = "llvm.mlir.constant"() <{value = -1 : i32}> : () -> i32 + %2 = llvm.udiv %0, %arg151 : i32 + %3 = llvm.udiv %0, %arg152 : i32 + %4 = llvm.xor %2, %1 : i32 + %5 = llvm.and %3, %4 : i32 + "llvm.return"(%5) : (i32) -> () +} +] +theorem and_xor_commute3_proof : and_xor_commute3_before ⊑ and_xor_commute3_after := by + unfold and_xor_commute3_before and_xor_commute3_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN and_xor_commute3 + all_goals (try extract_goal ; sorry) + ---END and_xor_commute3 + + + +def and_xor_commute4_before := [llvm| +{ +^0(%arg149 : i32, %arg150 : i32): + %0 = "llvm.mlir.constant"() <{value = 42 : i32}> : () -> i32 + %1 = llvm.udiv %0, %arg149 : i32 + %2 = llvm.udiv %0, %arg150 : i32 + %3 = llvm.and %1, %2 : i32 + %4 = llvm.xor %2, %3 : i32 + "llvm.return"(%4) : (i32) -> () +} +] +def and_xor_commute4_after := [llvm| +{ +^0(%arg149 : i32, %arg150 : i32): + %0 = "llvm.mlir.constant"() <{value = 42 : i32}> : () -> i32 + %1 = "llvm.mlir.constant"() <{value = -1 : i32}> : () -> i32 + %2 = llvm.udiv %0, %arg149 : i32 + %3 = llvm.udiv %0, %arg150 : i32 + %4 = llvm.xor %2, %1 : i32 + %5 = llvm.and %3, %4 : i32 + "llvm.return"(%5) : (i32) -> () +} +] +theorem and_xor_commute4_proof : and_xor_commute4_before ⊑ and_xor_commute4_after := by + unfold and_xor_commute4_before and_xor_commute4_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN and_xor_commute4 + all_goals (try extract_goal ; sorry) + ---END and_xor_commute4 + + + def or_or_xor_before := [llvm| { ^0(%arg106 : i4, %arg107 : i4, %arg108 : i4): @@ -733,6 +1072,232 @@ theorem ashr_not_proof : ashr_not_before ⊑ ashr_not_after := by +def xor_andn_commute2_before := [llvm| +{ +^0(%arg70 : i33, %arg71 : i33): + %0 = "llvm.mlir.constant"() <{value = 42 : i33}> : () -> i33 + %1 = "llvm.mlir.constant"() <{value = -1 : i33}> : () -> i33 + %2 = llvm.udiv %0, %arg71 : i33 + %3 = llvm.xor %arg70, %1 : i33 + %4 = llvm.and %2, %3 : i33 + %5 = llvm.xor %4, %arg70 : i33 + "llvm.return"(%5) : (i33) -> () +} +] +def xor_andn_commute2_after := [llvm| +{ +^0(%arg70 : i33, %arg71 : i33): + %0 = "llvm.mlir.constant"() <{value = 42 : i33}> : () -> i33 + %1 = llvm.udiv %0, %arg71 : i33 + %2 = llvm.or %arg70, %1 : i33 + "llvm.return"(%2) : (i33) -> () +} +] +theorem xor_andn_commute2_proof : xor_andn_commute2_before ⊑ xor_andn_commute2_after := by + unfold xor_andn_commute2_before xor_andn_commute2_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN xor_andn_commute2 + all_goals (try extract_goal ; sorry) + ---END xor_andn_commute2 + + + +def xor_andn_commute3_before := [llvm| +{ +^0(%arg68 : i32, %arg69 : i32): + %0 = "llvm.mlir.constant"() <{value = 42 : i32}> : () -> i32 + %1 = "llvm.mlir.constant"() <{value = -1 : i32}> : () -> i32 + %2 = llvm.udiv %0, %arg68 : i32 + %3 = llvm.xor %2, %1 : i32 + %4 = llvm.and %3, %arg69 : i32 + %5 = llvm.xor %2, %4 : i32 + "llvm.return"(%5) : (i32) -> () +} +] +def xor_andn_commute3_after := [llvm| +{ +^0(%arg68 : i32, %arg69 : i32): + %0 = "llvm.mlir.constant"() <{value = 42 : i32}> : () -> i32 + %1 = llvm.udiv %0, %arg68 : i32 + %2 = llvm.or %1, %arg69 : i32 + "llvm.return"(%2) : (i32) -> () +} +] +theorem xor_andn_commute3_proof : xor_andn_commute3_before ⊑ xor_andn_commute3_after := by + unfold xor_andn_commute3_before xor_andn_commute3_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN xor_andn_commute3 + all_goals (try extract_goal ; sorry) + ---END xor_andn_commute3 + + + +def xor_andn_commute4_before := [llvm| +{ +^0(%arg66 : i32, %arg67 : i32): + %0 = "llvm.mlir.constant"() <{value = 42 : i32}> : () -> i32 + %1 = "llvm.mlir.constant"() <{value = -1 : i32}> : () -> i32 + %2 = llvm.udiv %0, %arg66 : i32 + %3 = llvm.udiv %0, %arg67 : i32 + %4 = llvm.xor %2, %1 : i32 + %5 = llvm.and %3, %4 : i32 + %6 = llvm.xor %2, %5 : i32 + "llvm.return"(%6) : (i32) -> () +} +] +def xor_andn_commute4_after := [llvm| +{ +^0(%arg66 : i32, %arg67 : i32): + %0 = "llvm.mlir.constant"() <{value = 42 : i32}> : () -> i32 + %1 = llvm.udiv %0, %arg66 : i32 + %2 = llvm.udiv %0, %arg67 : i32 + %3 = llvm.or %1, %2 : i32 + "llvm.return"(%3) : (i32) -> () +} +] +theorem xor_andn_commute4_proof : xor_andn_commute4_before ⊑ xor_andn_commute4_after := by + unfold xor_andn_commute4_before xor_andn_commute4_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN xor_andn_commute4 + all_goals (try extract_goal ; sorry) + ---END xor_andn_commute4 + + + +def xor_orn_commute1_before := [llvm| +{ +^0(%arg62 : i8, %arg63 : i8): + %0 = "llvm.mlir.constant"() <{value = 42 : i8}> : () -> i8 + %1 = "llvm.mlir.constant"() <{value = -1 : i8}> : () -> i8 + %2 = llvm.udiv %0, %arg62 : i8 + %3 = llvm.xor %2, %1 : i8 + %4 = llvm.or %3, %arg63 : i8 + %5 = llvm.xor %2, %4 : i8 + "llvm.return"(%5) : (i8) -> () +} +] +def xor_orn_commute1_after := [llvm| +{ +^0(%arg62 : i8, %arg63 : i8): + %0 = "llvm.mlir.constant"() <{value = 42 : i8}> : () -> i8 + %1 = "llvm.mlir.constant"() <{value = -1 : i8}> : () -> i8 + %2 = llvm.udiv %0, %arg62 : i8 + %3 = llvm.and %2, %arg63 : i8 + %4 = llvm.xor %3, %1 : i8 + "llvm.return"(%4) : (i8) -> () +} +] +theorem xor_orn_commute1_proof : xor_orn_commute1_before ⊑ xor_orn_commute1_after := by + unfold xor_orn_commute1_before xor_orn_commute1_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN xor_orn_commute1 + all_goals (try extract_goal ; sorry) + ---END xor_orn_commute1 + + + +def xor_orn_commute2_before := [llvm| +{ +^0(%arg59 : i32, %arg60 : i32, %arg61 : !llvm.ptr): + %0 = "llvm.mlir.constant"() <{value = 42 : i32}> : () -> i32 + %1 = "llvm.mlir.constant"() <{value = -1 : i32}> : () -> i32 + %2 = llvm.udiv %0, %arg60 : i32 + %3 = llvm.xor %arg59, %1 : i32 + %4 = llvm.or %2, %3 : i32 + %5 = llvm.xor %4, %arg59 : i32 + "llvm.return"(%5) : (i32) -> () +} +] +def xor_orn_commute2_after := [llvm| +{ +^0(%arg59 : i32, %arg60 : i32, %arg61 : !llvm.ptr): + %0 = "llvm.mlir.constant"() <{value = 42 : i32}> : () -> i32 + %1 = "llvm.mlir.constant"() <{value = -1 : i32}> : () -> i32 + %2 = llvm.udiv %0, %arg60 : i32 + %3 = llvm.and %arg59, %2 : i32 + %4 = llvm.xor %3, %1 : i32 + "llvm.return"(%4) : (i32) -> () +} +] +theorem xor_orn_commute2_proof : xor_orn_commute2_before ⊑ xor_orn_commute2_after := by + unfold xor_orn_commute2_before xor_orn_commute2_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN xor_orn_commute2 + all_goals (try extract_goal ; sorry) + ---END xor_orn_commute2 + + + +def xor_orn_commute3_before := [llvm| +{ +^0(%arg53 : i67, %arg54 : i67, %arg55 : !llvm.ptr): + %0 = "llvm.mlir.constant"() <{value = 42 : i67}> : () -> i67 + %1 = "llvm.mlir.constant"() <{value = -1 : i67}> : () -> i67 + %2 = llvm.udiv %0, %arg53 : i67 + %3 = llvm.udiv %0, %arg54 : i67 + %4 = llvm.xor %2, %1 : i67 + %5 = llvm.or %3, %4 : i67 + %6 = llvm.xor %2, %5 : i67 + "llvm.return"(%6) : (i67) -> () +} +] +def xor_orn_commute3_after := [llvm| +{ +^0(%arg53 : i67, %arg54 : i67, %arg55 : !llvm.ptr): + %0 = "llvm.mlir.constant"() <{value = 42 : i67}> : () -> i67 + %1 = "llvm.mlir.constant"() <{value = -1 : i67}> : () -> i67 + %2 = llvm.udiv %0, %arg53 : i67 + %3 = llvm.udiv %0, %arg54 : i67 + %4 = llvm.and %2, %3 : i67 + %5 = llvm.xor %4, %1 : i67 + "llvm.return"(%5) : (i67) -> () +} +] +theorem xor_orn_commute3_proof : xor_orn_commute3_before ⊑ xor_orn_commute3_after := by + unfold xor_orn_commute3_before xor_orn_commute3_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN xor_orn_commute3 + all_goals (try extract_goal ; sorry) + ---END xor_orn_commute3 + + + def tryFactorization_xor_ashr_lshr_before := [llvm| { ^0(%arg40 : i32): @@ -1029,3 +1594,42 @@ theorem xor_with_or_disjoint_ba_proof : xor_with_or_disjoint_ba_before ⊑ xor_w ---END xor_with_or_disjoint_ba + +def select_or_disjoint_or_before := [llvm| +{ +^0(%arg14 : i32, %arg15 : i1): + %0 = "llvm.mlir.constant"() <{value = 0 : i32}> : () -> i32 + %1 = "llvm.mlir.constant"() <{value = 4 : i32}> : () -> i32 + %2 = "llvm.select"(%arg15, %0, %1) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i32, i32) -> i32 + %3 = llvm.shl %arg14, %1 : i32 + %4 = llvm.or %2, %3 : i32 + %5 = llvm.add %4, %1 : i32 + "llvm.return"(%5) : (i32) -> () +} +] +def select_or_disjoint_or_after := [llvm| +{ +^0(%arg14 : i32, %arg15 : i1): + %0 = "llvm.mlir.constant"() <{value = 0 : i32}> : () -> i32 + %1 = "llvm.mlir.constant"() <{value = 4 : i32}> : () -> i32 + %2 = "llvm.select"(%arg15, %0, %1) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i32, i32) -> i32 + %3 = llvm.shl %arg14, %1 : i32 + %4 = llvm.or %2, %3 : i32 + %5 = llvm.add %4, %1 overflow : i32 + "llvm.return"(%5) : (i32) -> () +} +] +theorem select_or_disjoint_or_proof : select_or_disjoint_or_before ⊑ select_or_disjoint_or_after := by + unfold select_or_disjoint_or_before select_or_disjoint_or_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN select_or_disjoint_or + all_goals (try extract_goal ; sorry) + ---END select_or_disjoint_or + + diff --git a/SSA/Projects/InstCombine/tests/LLVM/gxorhandhor.lean b/SSA/Projects/InstCombine/tests/LLVM/gxorhandhor.lean new file mode 100644 index 000000000..e154a71f9 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/LLVM/gxorhandhor.lean @@ -0,0 +1,288 @@ + +import SSA.Projects.InstCombine.LLVM.PrettyEDSL +import SSA.Projects.InstCombine.TacticAuto +import SSA.Projects.InstCombine.LLVM.Semantics +open LLVM +open BitVec + +open MLIR AST +open Ctxt (Var) + +set_option linter.deprecated false +set_option linter.unreachableTactic false +set_option linter.unusedTactic false +section gxorhandhor_statements + +def xor_logic_and_logic_or1_before := [llvm| +{ +^0(%arg54 : i1, %arg55 : i1, %arg56 : i1): + %0 = "llvm.mlir.constant"() <{value = true}> : () -> i1 + %1 = "llvm.mlir.constant"() <{value = false}> : () -> i1 + %2 = "llvm.select"(%arg54, %0, %arg56) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i1, i1) -> i1 + %3 = "llvm.select"(%arg54, %arg55, %1) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i1, i1) -> i1 + %4 = llvm.xor %3, %2 : i1 + "llvm.return"(%4) : (i1) -> () +} +] +def xor_logic_and_logic_or1_after := [llvm| +{ +^0(%arg54 : i1, %arg55 : i1, %arg56 : i1): + %0 = "llvm.mlir.constant"() <{value = true}> : () -> i1 + %1 = llvm.xor %arg55, %0 : i1 + %2 = "llvm.select"(%arg54, %1, %arg56) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i1, i1) -> i1 + "llvm.return"(%2) : (i1) -> () +} +] +theorem xor_logic_and_logic_or1_proof : xor_logic_and_logic_or1_before ⊑ xor_logic_and_logic_or1_after := by + unfold xor_logic_and_logic_or1_before xor_logic_and_logic_or1_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN xor_logic_and_logic_or1 + all_goals (try extract_goal ; sorry) + ---END xor_logic_and_logic_or1 + + + +def xor_logic_and_logic_or2_before := [llvm| +{ +^0(%arg51 : i1, %arg52 : i1, %arg53 : i1): + %0 = "llvm.mlir.constant"() <{value = true}> : () -> i1 + %1 = "llvm.mlir.constant"() <{value = false}> : () -> i1 + %2 = "llvm.select"(%arg53, %0, %arg51) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i1, i1) -> i1 + %3 = "llvm.select"(%arg51, %arg52, %1) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i1, i1) -> i1 + %4 = llvm.xor %3, %2 : i1 + "llvm.return"(%4) : (i1) -> () +} +] +def xor_logic_and_logic_or2_after := [llvm| +{ +^0(%arg51 : i1, %arg52 : i1, %arg53 : i1): + %0 = "llvm.mlir.constant"() <{value = true}> : () -> i1 + %1 = llvm.xor %arg52, %0 : i1 + %2 = "llvm.select"(%arg51, %1, %arg53) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i1, i1) -> i1 + "llvm.return"(%2) : (i1) -> () +} +] +theorem xor_logic_and_logic_or2_proof : xor_logic_and_logic_or2_before ⊑ xor_logic_and_logic_or2_after := by + unfold xor_logic_and_logic_or2_before xor_logic_and_logic_or2_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN xor_logic_and_logic_or2 + all_goals (try extract_goal ; sorry) + ---END xor_logic_and_logic_or2 + + + +def xor_logic_and_logic_or4_before := [llvm| +{ +^0(%arg45 : i1, %arg46 : i1, %arg47 : i1): + %0 = "llvm.mlir.constant"() <{value = true}> : () -> i1 + %1 = "llvm.mlir.constant"() <{value = false}> : () -> i1 + %2 = "llvm.select"(%arg45, %0, %arg47) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i1, i1) -> i1 + %3 = "llvm.select"(%arg46, %arg45, %1) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i1, i1) -> i1 + %4 = llvm.xor %3, %2 : i1 + "llvm.return"(%4) : (i1) -> () +} +] +def xor_logic_and_logic_or4_after := [llvm| +{ +^0(%arg45 : i1, %arg46 : i1, %arg47 : i1): + %0 = "llvm.mlir.constant"() <{value = true}> : () -> i1 + %1 = llvm.xor %arg46, %0 : i1 + %2 = "llvm.select"(%arg45, %1, %arg47) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i1, i1) -> i1 + "llvm.return"(%2) : (i1) -> () +} +] +theorem xor_logic_and_logic_or4_proof : xor_logic_and_logic_or4_before ⊑ xor_logic_and_logic_or4_after := by + unfold xor_logic_and_logic_or4_before xor_logic_and_logic_or4_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN xor_logic_and_logic_or4 + all_goals (try extract_goal ; sorry) + ---END xor_logic_and_logic_or4 + + + +def xor_and_logic_or1_before := [llvm| +{ +^0(%arg30 : i1, %arg31 : i1, %arg32 : i1): + %0 = "llvm.mlir.constant"() <{value = true}> : () -> i1 + %1 = "llvm.select"(%arg30, %0, %arg32) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i1, i1) -> i1 + %2 = llvm.and %arg30, %arg31 : i1 + %3 = llvm.xor %2, %1 : i1 + "llvm.return"(%3) : (i1) -> () +} +] +def xor_and_logic_or1_after := [llvm| +{ +^0(%arg30 : i1, %arg31 : i1, %arg32 : i1): + %0 = "llvm.mlir.constant"() <{value = true}> : () -> i1 + %1 = llvm.xor %arg31, %0 : i1 + %2 = "llvm.select"(%arg30, %1, %arg32) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i1, i1) -> i1 + "llvm.return"(%2) : (i1) -> () +} +] +theorem xor_and_logic_or1_proof : xor_and_logic_or1_before ⊑ xor_and_logic_or1_after := by + unfold xor_and_logic_or1_before xor_and_logic_or1_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN xor_and_logic_or1 + all_goals (try extract_goal ; sorry) + ---END xor_and_logic_or1 + + + +def xor_and_logic_or2_before := [llvm| +{ +^0(%arg27 : i1, %arg28 : i1, %arg29 : i1): + %0 = "llvm.mlir.constant"() <{value = true}> : () -> i1 + %1 = "llvm.select"(%arg29, %0, %arg27) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i1, i1) -> i1 + %2 = llvm.and %arg28, %arg27 : i1 + %3 = llvm.xor %2, %1 : i1 + "llvm.return"(%3) : (i1) -> () +} +] +def xor_and_logic_or2_after := [llvm| +{ +^0(%arg27 : i1, %arg28 : i1, %arg29 : i1): + %0 = "llvm.mlir.constant"() <{value = true}> : () -> i1 + %1 = llvm.xor %arg28, %0 : i1 + %2 = "llvm.select"(%arg27, %1, %arg29) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i1, i1) -> i1 + "llvm.return"(%2) : (i1) -> () +} +] +theorem xor_and_logic_or2_proof : xor_and_logic_or2_before ⊑ xor_and_logic_or2_after := by + unfold xor_and_logic_or2_before xor_and_logic_or2_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN xor_and_logic_or2 + all_goals (try extract_goal ; sorry) + ---END xor_and_logic_or2 + + + +def xor_logic_and_or1_before := [llvm| +{ +^0(%arg18 : i1, %arg19 : i1, %arg20 : i1): + %0 = "llvm.mlir.constant"() <{value = false}> : () -> i1 + %1 = llvm.or %arg20, %arg18 : i1 + %2 = "llvm.select"(%arg18, %arg19, %0) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i1, i1) -> i1 + %3 = llvm.xor %2, %1 : i1 + "llvm.return"(%3) : (i1) -> () +} +] +def xor_logic_and_or1_after := [llvm| +{ +^0(%arg18 : i1, %arg19 : i1, %arg20 : i1): + %0 = "llvm.mlir.constant"() <{value = true}> : () -> i1 + %1 = llvm.xor %arg19, %0 : i1 + %2 = "llvm.select"(%arg18, %1, %arg20) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i1, i1) -> i1 + "llvm.return"(%2) : (i1) -> () +} +] +theorem xor_logic_and_or1_proof : xor_logic_and_or1_before ⊑ xor_logic_and_or1_after := by + unfold xor_logic_and_or1_before xor_logic_and_or1_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN xor_logic_and_or1 + all_goals (try extract_goal ; sorry) + ---END xor_logic_and_or1 + + + +def xor_logic_and_or2_before := [llvm| +{ +^0(%arg15 : i1, %arg16 : i1, %arg17 : i1): + %0 = "llvm.mlir.constant"() <{value = false}> : () -> i1 + %1 = llvm.or %arg15, %arg17 : i1 + %2 = "llvm.select"(%arg16, %arg15, %0) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i1, i1) -> i1 + %3 = llvm.xor %2, %1 : i1 + "llvm.return"(%3) : (i1) -> () +} +] +def xor_logic_and_or2_after := [llvm| +{ +^0(%arg15 : i1, %arg16 : i1, %arg17 : i1): + %0 = "llvm.mlir.constant"() <{value = true}> : () -> i1 + %1 = llvm.xor %arg16, %0 : i1 + %2 = "llvm.select"(%arg15, %1, %arg17) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i1, i1) -> i1 + "llvm.return"(%2) : (i1) -> () +} +] +theorem xor_logic_and_or2_proof : xor_logic_and_or2_before ⊑ xor_logic_and_or2_after := by + unfold xor_logic_and_or2_before xor_logic_and_or2_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN xor_logic_and_or2 + all_goals (try extract_goal ; sorry) + ---END xor_logic_and_or2 + + + +def xor_and_or_before := [llvm| +{ +^0(%arg6 : i1, %arg7 : i1, %arg8 : i1): + %0 = llvm.or %arg8, %arg6 : i1 + %1 = llvm.and %arg6, %arg7 : i1 + %2 = llvm.xor %1, %0 : i1 + "llvm.return"(%2) : (i1) -> () +} +] +def xor_and_or_after := [llvm| +{ +^0(%arg6 : i1, %arg7 : i1, %arg8 : i1): + %0 = "llvm.mlir.constant"() <{value = true}> : () -> i1 + %1 = llvm.xor %arg7, %0 : i1 + %2 = "llvm.select"(%arg6, %1, %arg8) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i1, i1) -> i1 + "llvm.return"(%2) : (i1) -> () +} +] +theorem xor_and_or_proof : xor_and_or_before ⊑ xor_and_or_after := by + unfold xor_and_or_before xor_and_or_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN xor_and_or + all_goals (try extract_goal ; sorry) + ---END xor_and_or + + diff --git a/SSA/Projects/InstCombine/tests/logs/2004-09-20-BadLoadCombine.txt b/SSA/Projects/InstCombine/tests/logs/2004-09-20-BadLoadCombine.txt index 8489d69d9..8fe457515 100644 --- a/SSA/Projects/InstCombine/tests/logs/2004-09-20-BadLoadCombine.txt +++ b/SSA/Projects/InstCombine/tests/logs/2004-09-20-BadLoadCombine.txt @@ -1,3 +1,13 @@ 1: "test" -4: "test" has unsupported operation: builtin.unregistered: llvm.select +4: "test" has unsupported operation after optimization: llvm.alloca + +4: "test" has unsupported operation after optimization: llvm.alloca + +4: "test" has unsupported operation after optimization: llvm.store + +4: "test" has unsupported operation after optimization: llvm.store + +4: "test" has unsupported operation after optimization: llvm.store + +4: "test" has unsupported operation after optimization: llvm.load diff --git a/SSA/Projects/InstCombine/tests/logs/2005-04-07-UDivSelectCrash.txt b/SSA/Projects/InstCombine/tests/logs/2005-04-07-UDivSelectCrash.txt index 8489d69d9..a8b31bf60 100644 --- a/SSA/Projects/InstCombine/tests/logs/2005-04-07-UDivSelectCrash.txt +++ b/SSA/Projects/InstCombine/tests/logs/2005-04-07-UDivSelectCrash.txt @@ -1,3 +1,8 @@ 1: "test" -4: "test" has unsupported operation: builtin.unregistered: llvm.select +2: llvm.func +2: llvm.mlir.constant +2: llvm.mlir.constant +2: builtin.unregistered: llvm.select +2: llvm.udiv +2: llvm.return diff --git a/SSA/Projects/InstCombine/tests/logs/2006-12-08-Select-ICmp.txt b/SSA/Projects/InstCombine/tests/logs/2006-12-08-Select-ICmp.txt index d4a20b6e0..e126b15b1 100644 --- a/SSA/Projects/InstCombine/tests/logs/2006-12-08-Select-ICmp.txt +++ b/SSA/Projects/InstCombine/tests/logs/2006-12-08-Select-ICmp.txt @@ -7,8 +7,6 @@ 4: "visible" has unsupported operation: builtin.unregistered: llvm.icmp -4: "visible" has unsupported operation: builtin.unregistered: llvm.select - 4: "visible" has unsupported operation: builtin.unregistered: llvm.zext 1: "determinant" diff --git a/SSA/Projects/InstCombine/tests/logs/2006-12-23-Select-Cmp-Cmp.txt b/SSA/Projects/InstCombine/tests/logs/2006-12-23-Select-Cmp-Cmp.txt index bf7331b5e..1b28a3fc3 100644 --- a/SSA/Projects/InstCombine/tests/logs/2006-12-23-Select-Cmp-Cmp.txt +++ b/SSA/Projects/InstCombine/tests/logs/2006-12-23-Select-Cmp-Cmp.txt @@ -5,8 +5,6 @@ 4: "mng_write_basi" has unsupported operation: llvm.load -4: "mng_write_basi" has unsupported operation: builtin.unregistered: llvm.select - 4: "mng_write_basi" has unsupported operation: builtin.unregistered: llvm.icmp 4: "mng_write_basi" has unsupported operation: builtin.unregistered: llvm.cond_br diff --git a/SSA/Projects/InstCombine/tests/logs/2007-01-18-VectorInfLoop.txt b/SSA/Projects/InstCombine/tests/logs/2007-01-18-VectorInfLoop.txt index 74cf1733e..ec449aa4f 100644 --- a/SSA/Projects/InstCombine/tests/logs/2007-01-18-VectorInfLoop.txt +++ b/SSA/Projects/InstCombine/tests/logs/2007-01-18-VectorInfLoop.txt @@ -1,3 +1,3 @@ 1: "test" -"test" contains vectors which are unsupported +8: "test" contains vectors which are unsupported diff --git a/SSA/Projects/InstCombine/tests/logs/2007-06-21-DivCompareMiscomp.txt b/SSA/Projects/InstCombine/tests/logs/2007-06-21-DivCompareMiscomp.txt index 4f4923c79..b24f004a6 100644 --- a/SSA/Projects/InstCombine/tests/logs/2007-06-21-DivCompareMiscomp.txt +++ b/SSA/Projects/InstCombine/tests/logs/2007-06-21-DivCompareMiscomp.txt @@ -1,5 +1,3 @@ 1: "test" -4: "test" has unsupported operation after optimization: llvm.udiv - 4: "test" has unsupported operation after optimization: builtin.unregistered: llvm.icmp diff --git a/SSA/Projects/InstCombine/tests/logs/2007-12-28-IcmpSub2.txt b/SSA/Projects/InstCombine/tests/logs/2007-12-28-IcmpSub2.txt index 5751e5979..5e61c42f2 100644 --- a/SSA/Projects/InstCombine/tests/logs/2007-12-28-IcmpSub2.txt +++ b/SSA/Projects/InstCombine/tests/logs/2007-12-28-IcmpSub2.txt @@ -7,8 +7,6 @@ 4: "test1" has unsupported operation after optimization: builtin.unregistered: llvm.icmp -4: "test1" has unsupported operation after optimization: builtin.unregistered: llvm.select - 1: "test2" 4: "test2" has unsupported operation after optimization: llvm.alloca @@ -18,8 +16,6 @@ 4: "test2" has unsupported operation after optimization: builtin.unregistered: llvm.icmp -4: "test2" has unsupported operation after optimization: builtin.unregistered: llvm.select - 1: "test3" 4: "test3" has unsupported operation after optimization: llvm.alloca @@ -29,8 +25,6 @@ 4: "test3" has unsupported operation after optimization: builtin.unregistered: llvm.icmp -4: "test3" has unsupported operation after optimization: builtin.unregistered: llvm.select - 1: "test4" 4: "test4" has unsupported operation after optimization: llvm.alloca @@ -40,8 +34,6 @@ 4: "test4" has unsupported operation after optimization: builtin.unregistered: llvm.icmp -4: "test4" has unsupported operation after optimization: builtin.unregistered: llvm.select - 1: "test5" 4: "test5" has unsupported operation after optimization: llvm.alloca @@ -51,8 +43,6 @@ 4: "test5" has unsupported operation after optimization: builtin.unregistered: llvm.icmp -4: "test5" has unsupported operation after optimization: builtin.unregistered: llvm.select - 1: "test6" 4: "test6" has unsupported operation after optimization: llvm.alloca @@ -62,8 +52,6 @@ 4: "test6" has unsupported operation after optimization: builtin.unregistered: llvm.icmp -4: "test6" has unsupported operation after optimization: builtin.unregistered: llvm.select - 1: "test7" 4: "test7" has unsupported operation after optimization: llvm.alloca @@ -73,8 +61,6 @@ 4: "test7" has unsupported operation after optimization: builtin.unregistered: llvm.icmp -4: "test7" has unsupported operation after optimization: builtin.unregistered: llvm.select - 1: "test8" 4: "test8" has unsupported operation after optimization: llvm.alloca @@ -84,5 +70,3 @@ 4: "test8" has unsupported operation after optimization: builtin.unregistered: llvm.icmp -4: "test8" has unsupported operation after optimization: builtin.unregistered: llvm.select - diff --git a/SSA/Projects/InstCombine/tests/logs/2008-01-21-MulTrunc.txt b/SSA/Projects/InstCombine/tests/logs/2008-01-21-MulTrunc.txt index 03c8b67f2..8f20966b8 100644 --- a/SSA/Projects/InstCombine/tests/logs/2008-01-21-MulTrunc.txt +++ b/SSA/Projects/InstCombine/tests/logs/2008-01-21-MulTrunc.txt @@ -4,10 +4,10 @@ 4: "test1" has unsupported operation after optimization: builtin.unregistered: llvm.trunc 1: "test1_vec" -"test1_vec" contains vectors which are unsupported +8: "test1_vec" contains vectors which are unsupported 1: "test1_vec_nonuniform" -"test1_vec_nonuniform" contains vectors which are unsupported +8: "test1_vec_nonuniform" contains vectors which are unsupported 1: "test1_vec_undef" 4: "test1_vec_undef" has unsupported operation: llvm.mlir.undef diff --git a/SSA/Projects/InstCombine/tests/logs/2008-01-27-FloatSelect.txt b/SSA/Projects/InstCombine/tests/logs/2008-01-27-FloatSelect.txt index eac632015..5003a6106 100644 --- a/SSA/Projects/InstCombine/tests/logs/2008-01-27-FloatSelect.txt +++ b/SSA/Projects/InstCombine/tests/logs/2008-01-27-FloatSelect.txt @@ -1,5 +1,3 @@ 1: "fold" -4: "fold" has unsupported operation: builtin.unregistered: llvm.select - 4: "fold" has unsupported operation: builtin.unregistered: llvm.fdiv diff --git a/SSA/Projects/InstCombine/tests/logs/2008-02-28-OrFCmpCrash.txt b/SSA/Projects/InstCombine/tests/logs/2008-02-28-OrFCmpCrash.txt index e6325b686..c435d89cd 100644 --- a/SSA/Projects/InstCombine/tests/logs/2008-02-28-OrFCmpCrash.txt +++ b/SSA/Projects/InstCombine/tests/logs/2008-02-28-OrFCmpCrash.txt @@ -10,7 +10,5 @@ 4: "test_logical" has unsupported operation: builtin.unregistered: llvm.fcmp -4: "test_logical" has unsupported operation: builtin.unregistered: llvm.select - 4: "test_logical" has unsupported operation: builtin.unregistered: llvm.cond_br diff --git a/SSA/Projects/InstCombine/tests/logs/2008-05-22-IDivVector.txt b/SSA/Projects/InstCombine/tests/logs/2008-05-22-IDivVector.txt index 1b5d126a5..caef3099d 100644 --- a/SSA/Projects/InstCombine/tests/logs/2008-05-22-IDivVector.txt +++ b/SSA/Projects/InstCombine/tests/logs/2008-05-22-IDivVector.txt @@ -1,3 +1,3 @@ 1: "f" -"f" contains vectors which are unsupported +8: "f" contains vectors which are unsupported diff --git a/SSA/Projects/InstCombine/tests/logs/2008-05-31-Bools.txt b/SSA/Projects/InstCombine/tests/logs/2008-05-31-Bools.txt index f9b326963..8857e4cfb 100644 --- a/SSA/Projects/InstCombine/tests/logs/2008-05-31-Bools.txt +++ b/SSA/Projects/InstCombine/tests/logs/2008-05-31-Bools.txt @@ -9,7 +9,9 @@ 2: llvm.return 1: "foo3" -4: "foo3" has unsupported operation after optimization: llvm.udiv +2: llvm.func +2: llvm.udiv +2: llvm.return 1: "foo4" 2: llvm.func diff --git a/SSA/Projects/InstCombine/tests/logs/2008-06-19-UncondLoad.txt b/SSA/Projects/InstCombine/tests/logs/2008-06-19-UncondLoad.txt index f53d9b5f0..0c45535ad 100644 --- a/SSA/Projects/InstCombine/tests/logs/2008-06-19-UncondLoad.txt +++ b/SSA/Projects/InstCombine/tests/logs/2008-06-19-UncondLoad.txt @@ -10,7 +10,5 @@ 4: "b" has unsupported operation: builtin.unregistered: llvm.icmp -4: "b" has unsupported operation: builtin.unregistered: llvm.select - 4: "b" has unsupported operation: llvm.load diff --git a/SSA/Projects/InstCombine/tests/logs/2008-07-11-RemAnd.txt b/SSA/Projects/InstCombine/tests/logs/2008-07-11-RemAnd.txt index 3d868aa9a..7803ddf73 100644 --- a/SSA/Projects/InstCombine/tests/logs/2008-07-11-RemAnd.txt +++ b/SSA/Projects/InstCombine/tests/logs/2008-07-11-RemAnd.txt @@ -7,5 +7,5 @@ 2: llvm.return 1: "a_vec" -"a_vec" contains vectors which are unsupported +8: "a_vec" contains vectors which are unsupported diff --git a/SSA/Projects/InstCombine/tests/logs/2008-07-13-DivZero.txt b/SSA/Projects/InstCombine/tests/logs/2008-07-13-DivZero.txt index 09838a1f2..430d02b25 100644 --- a/SSA/Projects/InstCombine/tests/logs/2008-07-13-DivZero.txt +++ b/SSA/Projects/InstCombine/tests/logs/2008-07-13-DivZero.txt @@ -1,8 +1,6 @@ 1: "a" 4: "a" has unsupported operation: builtin.unregistered: llvm.icmp -4: "a" has unsupported operation: builtin.unregistered: llvm.select - 4: "a" has unsupported operation: llvm.call 1: "b" diff --git a/SSA/Projects/InstCombine/tests/logs/2008-11-27-IDivVector.txt b/SSA/Projects/InstCombine/tests/logs/2008-11-27-IDivVector.txt index a5a1bf8f8..5c4b7308d 100644 --- a/SSA/Projects/InstCombine/tests/logs/2008-11-27-IDivVector.txt +++ b/SSA/Projects/InstCombine/tests/logs/2008-11-27-IDivVector.txt @@ -1,6 +1,6 @@ 1: "f" -"f" contains vectors which are unsupported +8: "f" contains vectors which are unsupported 1: "g" -"g" contains vectors which are unsupported +8: "g" contains vectors which are unsupported diff --git a/SSA/Projects/InstCombine/tests/logs/2008-11-27-MultiplyIntVec.txt b/SSA/Projects/InstCombine/tests/logs/2008-11-27-MultiplyIntVec.txt index a5a1bf8f8..5c4b7308d 100644 --- a/SSA/Projects/InstCombine/tests/logs/2008-11-27-MultiplyIntVec.txt +++ b/SSA/Projects/InstCombine/tests/logs/2008-11-27-MultiplyIntVec.txt @@ -1,6 +1,6 @@ 1: "f" -"f" contains vectors which are unsupported +8: "f" contains vectors which are unsupported 1: "g" -"g" contains vectors which are unsupported +8: "g" contains vectors which are unsupported diff --git a/SSA/Projects/InstCombine/tests/logs/2008-12-17-SRemNegConstVec.txt b/SSA/Projects/InstCombine/tests/logs/2008-12-17-SRemNegConstVec.txt index 9cccb4746..810761fc4 100644 --- a/SSA/Projects/InstCombine/tests/logs/2008-12-17-SRemNegConstVec.txt +++ b/SSA/Projects/InstCombine/tests/logs/2008-12-17-SRemNegConstVec.txt @@ -1,3 +1,3 @@ 1: "foo" -"foo" contains vectors which are unsupported +8: "foo" contains vectors which are unsupported diff --git a/SSA/Projects/InstCombine/tests/logs/2009-01-05-i128-crash.txt b/SSA/Projects/InstCombine/tests/logs/2009-01-05-i128-crash.txt index 873d3d45e..f12678b5b 100644 --- a/SSA/Projects/InstCombine/tests/logs/2009-01-05-i128-crash.txt +++ b/SSA/Projects/InstCombine/tests/logs/2009-01-05-i128-crash.txt @@ -3,5 +3,3 @@ 4: "\01_gfortrani_max_value" has unsupported operation: builtin.unregistered: llvm.icmp -4: "\01_gfortrani_max_value" has unsupported operation: builtin.unregistered: llvm.select - diff --git a/SSA/Projects/InstCombine/tests/logs/2009-12-17-CmpSelectNull.txt b/SSA/Projects/InstCombine/tests/logs/2009-12-17-CmpSelectNull.txt index 0cb4690e8..0f4184481 100644 --- a/SSA/Projects/InstCombine/tests/logs/2009-12-17-CmpSelectNull.txt +++ b/SSA/Projects/InstCombine/tests/logs/2009-12-17-CmpSelectNull.txt @@ -5,5 +5,3 @@ 4: "demangle_qualified" has unsupported operation: builtin.unregistered: llvm.icmp -4: "demangle_qualified" has unsupported operation: builtin.unregistered: llvm.select - diff --git a/SSA/Projects/InstCombine/tests/logs/2010-03-03-ExtElim.txt b/SSA/Projects/InstCombine/tests/logs/2010-03-03-ExtElim.txt index 0964193e9..60649d883 100644 --- a/SSA/Projects/InstCombine/tests/logs/2010-03-03-ExtElim.txt +++ b/SSA/Projects/InstCombine/tests/logs/2010-03-03-ExtElim.txt @@ -18,8 +18,6 @@ 4: "PR16462_1" has unsupported operation after optimization: builtin.unregistered: llvm.icmp -4: "PR16462_1" has unsupported operation after optimization: builtin.unregistered: llvm.select - 4: "PR16462_1" has unsupported operation after optimization: builtin.unregistered: llvm.trunc 4: "PR16462_1" has unsupported operation after optimization: builtin.unregistered: llvm.sext @@ -33,8 +31,6 @@ 4: "PR16462_2" has unsupported operation after optimization: builtin.unregistered: llvm.icmp -4: "PR16462_2" has unsupported operation after optimization: builtin.unregistered: llvm.select - 4: "PR16462_2" has unsupported operation after optimization: builtin.unregistered: llvm.trunc 4: "PR16462_2" has unsupported operation after optimization: builtin.unregistered: llvm.icmp diff --git a/SSA/Projects/InstCombine/tests/logs/2011-02-14-InfLoop.txt b/SSA/Projects/InstCombine/tests/logs/2011-02-14-InfLoop.txt index e71d3c633..9086d869f 100644 --- a/SSA/Projects/InstCombine/tests/logs/2011-02-14-InfLoop.txt +++ b/SSA/Projects/InstCombine/tests/logs/2011-02-14-InfLoop.txt @@ -31,7 +31,5 @@ 4: "m_387" has unsupported operation: builtin.unregistered: llvm.insertelement -4: "m_387" has unsupported operation: builtin.unregistered: llvm.select - 4: "m_387" has unsupported operation: builtin.unregistered: llvm.shufflevector diff --git a/SSA/Projects/InstCombine/tests/logs/2011-05-02-VectorBoolean.txt b/SSA/Projects/InstCombine/tests/logs/2011-05-02-VectorBoolean.txt index 159e64d4f..a31eaa3b8 100644 --- a/SSA/Projects/InstCombine/tests/logs/2011-05-02-VectorBoolean.txt +++ b/SSA/Projects/InstCombine/tests/logs/2011-05-02-VectorBoolean.txt @@ -1,3 +1,3 @@ 1: "entry" -"entry" contains vectors which are unsupported +8: "entry" contains vectors which are unsupported diff --git a/SSA/Projects/InstCombine/tests/logs/2012-04-24-vselect.txt b/SSA/Projects/InstCombine/tests/logs/2012-04-24-vselect.txt index 9cccb4746..810761fc4 100644 --- a/SSA/Projects/InstCombine/tests/logs/2012-04-24-vselect.txt +++ b/SSA/Projects/InstCombine/tests/logs/2012-04-24-vselect.txt @@ -1,3 +1,3 @@ 1: "foo" -"foo" contains vectors which are unsupported +8: "foo" contains vectors which are unsupported diff --git a/SSA/Projects/InstCombine/tests/logs/2012-08-28-udiv_ashl.txt b/SSA/Projects/InstCombine/tests/logs/2012-08-28-udiv_ashl.txt index b54939f33..821c44653 100644 --- a/SSA/Projects/InstCombine/tests/logs/2012-08-28-udiv_ashl.txt +++ b/SSA/Projects/InstCombine/tests/logs/2012-08-28-udiv_ashl.txt @@ -1,15 +1,30 @@ 1: "udiv400" -4: "udiv400" has unsupported operation: llvm.udiv +2: llvm.func +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.lshr +2: llvm.udiv +2: llvm.return 1: "udiv400_no" -4: "udiv400_no" has unsupported operation: llvm.udiv +7: "udiv400_no" is unchanged by InstCombine 1: "sdiv400_yes" -4: "sdiv400_yes" has unsupported operation: llvm.udiv +2: llvm.func +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.lshr +2: llvm.sdiv +2: llvm.return 1: "udiv_i80" -4: "udiv_i80" has unsupported operation: llvm.udiv +2: llvm.func +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.lshr +2: llvm.udiv +2: llvm.return 1: "no_crash_notconst_udiv" -4: "no_crash_notconst_udiv" has unsupported operation: llvm.udiv +7: "no_crash_notconst_udiv" is unchanged by InstCombine diff --git a/SSA/Projects/InstCombine/tests/logs/PR37526.txt b/SSA/Projects/InstCombine/tests/logs/PR37526.txt index 25f5be212..c07c864e8 100644 --- a/SSA/Projects/InstCombine/tests/logs/PR37526.txt +++ b/SSA/Projects/InstCombine/tests/logs/PR37526.txt @@ -5,8 +5,6 @@ 4: "PR37526" has unsupported operation: builtin.unregistered: llvm.icmp -4: "PR37526" has unsupported operation: builtin.unregistered: llvm.select - 4: "PR37526" has unsupported operation: llvm.load 4: "PR37526" has unsupported operation: llvm.store diff --git a/SSA/Projects/InstCombine/tests/logs/abs-1.txt b/SSA/Projects/InstCombine/tests/logs/abs-1.txt index eefae4683..c2957f84a 100644 --- a/SSA/Projects/InstCombine/tests/logs/abs-1.txt +++ b/SSA/Projects/InstCombine/tests/logs/abs-1.txt @@ -134,8 +134,6 @@ 1: "abs_must_be_positive" 4: "abs_must_be_positive" has unsupported operation after optimization: builtin.unregistered: llvm.icmp -4: "abs_must_be_positive" has unsupported operation after optimization: builtin.unregistered: llvm.select - 4: "abs_must_be_positive" has unsupported operation after optimization: builtin.unregistered: llvm.icmp 1: "abs_swapped" @@ -184,8 +182,6 @@ 4: "abs_extra_use_icmp_sub" has unsupported operation: llvm.call -4: "abs_extra_use_icmp_sub" has unsupported operation: builtin.unregistered: llvm.select - 1: "nabs_extra_use_icmp" 4: "nabs_extra_use_icmp" has unsupported operation: builtin.unregistered: llvm.icmp @@ -205,18 +201,12 @@ 4: "nabs_extra_use_icmp_sub" has unsupported operation: llvm.call -4: "nabs_extra_use_icmp_sub" has unsupported operation: builtin.unregistered: llvm.select - 1: "nabs_diff_signed_slt" 4: "nabs_diff_signed_slt" has unsupported operation: builtin.unregistered: llvm.icmp -4: "nabs_diff_signed_slt" has unsupported operation: builtin.unregistered: llvm.select - 1: "nabs_diff_signed_sle" 4: "nabs_diff_signed_sle" has unsupported operation: builtin.unregistered: llvm.icmp -4: "nabs_diff_signed_sle" has unsupported operation: builtin.unregistered: llvm.select - 1: "abs_diff_signed_sgt" 4: "abs_diff_signed_sgt" has unsupported operation: llvm.call @@ -232,8 +222,6 @@ 1: "abs_diff_signed_slt_no_nsw" 4: "abs_diff_signed_slt_no_nsw" has unsupported operation: builtin.unregistered: llvm.icmp -4: "abs_diff_signed_slt_no_nsw" has unsupported operation: builtin.unregistered: llvm.select - 1: "abs_diff_signed_sgt_nsw_nuw" 4: "abs_diff_signed_sgt_nsw_nuw" has unsupported operation: builtin.unregistered: llvm.intr.abs @@ -260,18 +248,12 @@ 1: "abs_diff_signed_slt_swap_wrong_pred1" 4: "abs_diff_signed_slt_swap_wrong_pred1" has unsupported operation after optimization: builtin.unregistered: llvm.icmp -4: "abs_diff_signed_slt_swap_wrong_pred1" has unsupported operation after optimization: builtin.unregistered: llvm.select - 1: "abs_diff_signed_slt_swap_wrong_pred2" 4: "abs_diff_signed_slt_swap_wrong_pred2" has unsupported operation: builtin.unregistered: llvm.icmp -4: "abs_diff_signed_slt_swap_wrong_pred2" has unsupported operation: builtin.unregistered: llvm.select - 1: "abs_diff_signed_slt_swap_wrong_op" 4: "abs_diff_signed_slt_swap_wrong_op" has unsupported operation: builtin.unregistered: llvm.icmp -4: "abs_diff_signed_slt_swap_wrong_op" has unsupported operation: builtin.unregistered: llvm.select - 1: "abs_diff_signed_slt_swap" 4: "abs_diff_signed_slt_swap" has unsupported operation: builtin.unregistered: llvm.intr.abs @@ -283,8 +265,6 @@ 4: "nabs_diff_signed_sgt_swap" has unsupported operation: llvm.call -4: "nabs_diff_signed_sgt_swap" has unsupported operation: builtin.unregistered: llvm.select - 1: "nabs_diff_signed_sge_swap" 4: "nabs_diff_signed_sge_swap" has unsupported operation: builtin.unregistered: llvm.icmp @@ -292,10 +272,6 @@ 4: "nabs_diff_signed_sge_swap" has unsupported operation: llvm.call -4: "nabs_diff_signed_sge_swap" has unsupported operation: builtin.unregistered: llvm.select - 1: "abs_diff_signed_slt_no_nsw_swap" 4: "abs_diff_signed_slt_no_nsw_swap" has unsupported operation: builtin.unregistered: llvm.icmp -4: "abs_diff_signed_slt_no_nsw_swap" has unsupported operation: builtin.unregistered: llvm.select - diff --git a/SSA/Projects/InstCombine/tests/logs/abs-intrinsic.txt b/SSA/Projects/InstCombine/tests/logs/abs-intrinsic.txt index b4101d53a..c8ba8746b 100644 --- a/SSA/Projects/InstCombine/tests/logs/abs-intrinsic.txt +++ b/SSA/Projects/InstCombine/tests/logs/abs-intrinsic.txt @@ -83,13 +83,13 @@ 4: "zext_abs" has unsupported operation: builtin.unregistered: llvm.zext 1: "lshr_abs" -"lshr_abs" contains vectors which are unsupported +8: "lshr_abs" contains vectors which are unsupported 1: "and_abs" 4: "and_abs" has unsupported operation after optimization: builtin.unregistered: llvm.intr.abs 1: "select_abs" -4: "select_abs" has unsupported operation: builtin.unregistered: llvm.select +8: "select_abs" contains vectors which are unsupported 1: "assume_abs" 4: "assume_abs" has unsupported operation: builtin.unregistered: llvm.icmp @@ -147,7 +147,7 @@ 4: "demand_low_bit" has unsupported operation after optimization: builtin.unregistered: llvm.intr.abs 1: "demand_low_bit_int_min_is_poison" -"demand_low_bit_int_min_is_poison" contains vectors which are unsupported +8: "demand_low_bit_int_min_is_poison" contains vectors which are unsupported 1: "demand_low_bits" 4: "demand_low_bits" has unsupported operation: builtin.unregistered: llvm.intr.abs diff --git a/SSA/Projects/InstCombine/tests/logs/add-mask-neg.txt b/SSA/Projects/InstCombine/tests/logs/add-mask-neg.txt index 8f4f60fe0..de1b2389b 100644 --- a/SSA/Projects/InstCombine/tests/logs/add-mask-neg.txt +++ b/SSA/Projects/InstCombine/tests/logs/add-mask-neg.txt @@ -34,10 +34,10 @@ 4: "dec_mask_multiuse_neg_i32" has unsupported operation: llvm.call 1: "dec_mask_neg_v2i32" -"dec_mask_neg_v2i32" contains vectors which are unsupported +8: "dec_mask_neg_v2i32" contains vectors which are unsupported 1: "dec_mask_neg_v2i32_poison" -"dec_mask_neg_v2i32_poison" contains vectors which are unsupported +8: "dec_mask_neg_v2i32_poison" contains vectors which are unsupported 1: "dec_mask_multiuse_neg_multiuse_v2i32" 4: "dec_mask_multiuse_neg_multiuse_v2i32" has unsupported operation: llvm.call diff --git a/SSA/Projects/InstCombine/tests/logs/add-mask.txt b/SSA/Projects/InstCombine/tests/logs/add-mask.txt index 03f3484c6..de93ccc87 100644 --- a/SSA/Projects/InstCombine/tests/logs/add-mask.txt +++ b/SSA/Projects/InstCombine/tests/logs/add-mask.txt @@ -1,18 +1,12 @@ 1: "add_mask_sign_i32" 4: "add_mask_sign_i32" has unsupported operation: builtin.unregistered: llvm.icmp -4: "add_mask_sign_i32" has unsupported operation: builtin.unregistered: llvm.select - 1: "add_mask_sign_commute_i32" 4: "add_mask_sign_commute_i32" has unsupported operation: builtin.unregistered: llvm.icmp -4: "add_mask_sign_commute_i32" has unsupported operation: builtin.unregistered: llvm.select - 1: "add_mask_sign_v2i32" 4: "add_mask_sign_v2i32" has unsupported operation: builtin.unregistered: llvm.icmp -4: "add_mask_sign_v2i32" has unsupported operation: builtin.unregistered: llvm.select - 1: "add_mask_sign_v2i32_nonuniform" 7: "add_mask_sign_v2i32_nonuniform" is unchanged by InstCombine diff --git a/SSA/Projects/InstCombine/tests/logs/add-shift.txt b/SSA/Projects/InstCombine/tests/logs/add-shift.txt index 185d1adc4..67ae3db26 100644 --- a/SSA/Projects/InstCombine/tests/logs/add-shift.txt +++ b/SSA/Projects/InstCombine/tests/logs/add-shift.txt @@ -7,7 +7,7 @@ 2: llvm.return 1: "flip_add_of_shift_neg_vec" -"flip_add_of_shift_neg_vec" contains vectors which are unsupported +8: "flip_add_of_shift_neg_vec" contains vectors which are unsupported 1: "flip_add_of_shift_neg_fail_shr" 7: "flip_add_of_shift_neg_fail_shr" is unchanged by InstCombine diff --git a/SSA/Projects/InstCombine/tests/logs/add-shl-sdiv-to-srem.txt b/SSA/Projects/InstCombine/tests/logs/add-shl-sdiv-to-srem.txt index 49c7d138c..993e6db94 100644 --- a/SSA/Projects/InstCombine/tests/logs/add-shl-sdiv-to-srem.txt +++ b/SSA/Projects/InstCombine/tests/logs/add-shl-sdiv-to-srem.txt @@ -26,13 +26,13 @@ 2: llvm.return 1: "add-shl-sdiv-splat0" -"add-shl-sdiv-splat0" contains vectors which are unsupported +8: "add-shl-sdiv-splat0" contains vectors which are unsupported 1: "add-shl-sdiv-splat1" -"add-shl-sdiv-splat1" contains vectors which are unsupported +8: "add-shl-sdiv-splat1" contains vectors which are unsupported 1: "add-shl-sdiv-splat2" -"add-shl-sdiv-splat2" contains vectors which are unsupported +8: "add-shl-sdiv-splat2" contains vectors which are unsupported 1: "use32" 5: "use32" is empty @@ -78,8 +78,6 @@ 1: "add-shl-sdiv-negative2" 4: "add-shl-sdiv-negative2" has unsupported operation: builtin.unregistered: llvm.icmp -4: "add-shl-sdiv-negative2" has unsupported operation: builtin.unregistered: llvm.select - 1: "add-shl-sdiv-negative3" 7: "add-shl-sdiv-negative3" is unchanged by InstCombine diff --git a/SSA/Projects/InstCombine/tests/logs/add2.txt b/SSA/Projects/InstCombine/tests/logs/add2.txt index 94b8b13c9..9e6a187d0 100644 --- a/SSA/Projects/InstCombine/tests/logs/add2.txt +++ b/SSA/Projects/InstCombine/tests/logs/add2.txt @@ -25,13 +25,13 @@ 2: llvm.return 1: "test5" -"test5" contains vectors which are unsupported +8: "test5" contains vectors which are unsupported 1: "test6" -"test6" contains vectors which are unsupported +8: "test6" contains vectors which are unsupported 1: "test7" -"test7" contains vectors which are unsupported +8: "test7" contains vectors which are unsupported 1: "test9" 2: llvm.func @@ -280,7 +280,14 @@ 2: llvm.return 1: "add_of_selects" -4: "add_of_selects" has unsupported operation: builtin.unregistered: llvm.select +2: llvm.func +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.mlir.constant +2: builtin.unregistered: llvm.select +2: builtin.unregistered: llvm.select +2: llvm.add +2: llvm.return 1: "add_undemanded_low_bits" 2: llvm.func diff --git a/SSA/Projects/InstCombine/tests/logs/add4.txt b/SSA/Projects/InstCombine/tests/logs/add4.txt index e6622cc9f..76664ba9d 100644 --- a/SSA/Projects/InstCombine/tests/logs/add4.txt +++ b/SSA/Projects/InstCombine/tests/logs/add4.txt @@ -2,10 +2,18 @@ 5: "use" is empty 1: "match_unsigned" -4: "match_unsigned" has unsupported operation after optimization: llvm.udiv +2: llvm.func +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.urem +2: llvm.udiv +2: llvm.urem +2: llvm.mul +2: llvm.add +2: llvm.return 1: "match_unsigned_vector" -"match_unsigned_vector" contains vectors which are unsupported +8: "match_unsigned_vector" contains vectors which are unsupported 1: "match_andAsRem_lshrAsDiv_shlAsMul" 2: llvm.func @@ -37,7 +45,7 @@ 2: llvm.return 1: "match_signed_vector" -"match_signed_vector" contains vectors which are unsupported +8: "match_signed_vector" contains vectors which are unsupported 1: "not_match_inconsistent_signs" 2: llvm.func @@ -51,13 +59,29 @@ 2: llvm.return 1: "not_match_inconsistent_values" -4: "not_match_inconsistent_values" has unsupported operation: llvm.udiv +2: llvm.func +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.urem +2: llvm.udiv +2: llvm.urem +2: llvm.mul +2: llvm.add +2: llvm.return 1: "not_match_overflow" 4: "not_match_overflow" has unsupported operation: builtin.unregistered: llvm.freeze 1: "fold_add_udiv_urem" -4: "fold_add_udiv_urem" has unsupported operation: llvm.udiv +2: llvm.func +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.udiv +2: llvm.shl +2: llvm.urem +2: llvm.add +2: llvm.return 1: "fold_add_sdiv_srem" 2: llvm.func @@ -70,28 +94,56 @@ 2: llvm.return 1: "fold_add_udiv_urem_to_mul" -4: "fold_add_udiv_urem_to_mul" has unsupported operation after optimization: llvm.udiv +2: llvm.func +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.udiv +2: llvm.mul +2: llvm.urem +2: llvm.mul +2: llvm.add +2: llvm.return 1: "fold_add_udiv_urem_to_mul_multiuse" 4: "fold_add_udiv_urem_to_mul_multiuse" has unsupported operation: llvm.call 1: "fold_add_udiv_urem_commuted" -4: "fold_add_udiv_urem_commuted" has unsupported operation: llvm.udiv +2: llvm.func +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.udiv +2: llvm.shl +2: llvm.urem +2: llvm.add +2: llvm.return 1: "fold_add_udiv_urem_or_disjoint" -4: "fold_add_udiv_urem_or_disjoint" has unsupported operation: llvm.udiv +2: llvm.func +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.udiv +2: llvm.shl +2: llvm.urem +2: llvm.or +2: llvm.return 1: "fold_add_udiv_urem_without_noundef" -4: "fold_add_udiv_urem_without_noundef" has unsupported operation: llvm.udiv +2: llvm.func +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.udiv +2: llvm.shl +2: llvm.urem +2: llvm.add +2: llvm.return 1: "fold_add_udiv_urem_multiuse_mul" -4: "fold_add_udiv_urem_multiuse_mul" has unsupported operation: llvm.udiv - 4: "fold_add_udiv_urem_multiuse_mul" has unsupported operation: llvm.call 1: "fold_add_udiv_srem" -4: "fold_add_udiv_srem" has unsupported operation: llvm.udiv +7: "fold_add_udiv_srem" is unchanged by InstCombine 1: "fold_add_udiv_urem_non_constant" -4: "fold_add_udiv_urem_non_constant" has unsupported operation: llvm.udiv +7: "fold_add_udiv_urem_non_constant" is unchanged by InstCombine diff --git a/SSA/Projects/InstCombine/tests/logs/add_or_sub.txt b/SSA/Projects/InstCombine/tests/logs/add_or_sub.txt index 724156b4b..913e6c529 100644 --- a/SSA/Projects/InstCombine/tests/logs/add_or_sub.txt +++ b/SSA/Projects/InstCombine/tests/logs/add_or_sub.txt @@ -43,10 +43,10 @@ 2: llvm.return 1: "add_or_sub_comb_i32vec" -"add_or_sub_comb_i32vec" contains vectors which are unsupported +8: "add_or_sub_comb_i32vec" contains vectors which are unsupported 1: "add_or_sub_comb_i32vec_poison" -"add_or_sub_comb_i32vec_poison" contains vectors which are unsupported +8: "add_or_sub_comb_i32vec_poison" contains vectors which are unsupported 1: "add_or_sub_comb_i12_multiuse_only_sub" 4: "add_or_sub_comb_i12_multiuse_only_sub" has unsupported operation: llvm.call diff --git a/SSA/Projects/InstCombine/tests/logs/addsub-constant-folding.txt b/SSA/Projects/InstCombine/tests/logs/addsub-constant-folding.txt index 11fc32ee1..bb3059108 100644 --- a/SSA/Projects/InstCombine/tests/logs/addsub-constant-folding.txt +++ b/SSA/Projects/InstCombine/tests/logs/addsub-constant-folding.txt @@ -16,7 +16,7 @@ 4: "add_const_add_const_extrause" has unsupported operation: llvm.call 1: "vec_add_const_add_const" -"vec_add_const_add_const" contains vectors which are unsupported +8: "vec_add_const_add_const" contains vectors which are unsupported 1: "vec_add_const_add_const_extrause" 4: "vec_add_const_add_const_extrause" has unsupported operation: llvm.call @@ -46,7 +46,7 @@ 4: "add_const_sub_const_extrause" has unsupported operation: llvm.call 1: "vec_add_const_sub_const" -"vec_add_const_sub_const" contains vectors which are unsupported +8: "vec_add_const_sub_const" contains vectors which are unsupported 1: "vec_add_const_sub_const_extrause" 4: "vec_add_const_sub_const_extrause" has unsupported operation: llvm.call @@ -129,22 +129,22 @@ 2: llvm.return 1: "non_splat_vec_add_nsw_const_const_sub_nsw_not_ov1" -"non_splat_vec_add_nsw_const_const_sub_nsw_not_ov1" contains vectors which are unsupported +8: "non_splat_vec_add_nsw_const_const_sub_nsw_not_ov1" contains vectors which are unsupported 1: "non_splat_vec_add_nsw_const_const_sub_nsw_not_ov2" -"non_splat_vec_add_nsw_const_const_sub_nsw_not_ov2" contains vectors which are unsupported +8: "non_splat_vec_add_nsw_const_const_sub_nsw_not_ov2" contains vectors which are unsupported 1: "non_splat_vec_add_nsw_const_const_sub_nsw_not_ov3" -"non_splat_vec_add_nsw_const_const_sub_nsw_not_ov3" contains vectors which are unsupported +8: "non_splat_vec_add_nsw_const_const_sub_nsw_not_ov3" contains vectors which are unsupported 1: "non_splat_vec_add_nsw_const_const_sub_nsw_ov" -"non_splat_vec_add_nsw_const_const_sub_nsw_ov" contains vectors which are unsupported +8: "non_splat_vec_add_nsw_const_const_sub_nsw_ov" contains vectors which are unsupported 1: "add_const_const_sub_extrause" 4: "add_const_const_sub_extrause" has unsupported operation: llvm.call 1: "vec_add_const_const_sub" -"vec_add_const_const_sub" contains vectors which are unsupported +8: "vec_add_const_const_sub" contains vectors which are unsupported 1: "vec_add_const_const_sub_extrause" 4: "vec_add_const_const_sub_extrause" has unsupported operation: llvm.call @@ -174,7 +174,7 @@ 4: "sub_const_add_const_extrause" has unsupported operation: llvm.call 1: "vec_sub_const_add_const" -"vec_sub_const_add_const" contains vectors which are unsupported +8: "vec_sub_const_add_const" contains vectors which are unsupported 1: "vec_sub_const_add_const_extrause" 4: "vec_sub_const_add_const_extrause" has unsupported operation: llvm.call @@ -204,7 +204,7 @@ 4: "sub_const_sub_const_extrause" has unsupported operation: llvm.call 1: "vec_sub_const_sub_const" -"vec_sub_const_sub_const" contains vectors which are unsupported +8: "vec_sub_const_sub_const" contains vectors which are unsupported 1: "vec_sub_const_sub_const_extrause" 4: "vec_sub_const_sub_const_extrause" has unsupported operation: llvm.call @@ -234,7 +234,7 @@ 4: "sub_const_const_sub_extrause" has unsupported operation: llvm.call 1: "vec_sub_const_const_sub" -"vec_sub_const_const_sub" contains vectors which are unsupported +8: "vec_sub_const_const_sub" contains vectors which are unsupported 1: "vec_sub_const_const_sub_extrause" 4: "vec_sub_const_const_sub_extrause" has unsupported operation: llvm.call @@ -264,7 +264,7 @@ 4: "const_sub_add_const_extrause" has unsupported operation: llvm.call 1: "vec_const_sub_add_const" -"vec_const_sub_add_const" contains vectors which are unsupported +8: "vec_const_sub_add_const" contains vectors which are unsupported 1: "vec_const_sub_add_const_extrause" 4: "vec_const_sub_add_const_extrause" has unsupported operation: llvm.call @@ -294,7 +294,7 @@ 4: "const_sub_sub_const_extrause" has unsupported operation: llvm.call 1: "vec_const_sub_sub_const" -"vec_const_sub_sub_const" contains vectors which are unsupported +8: "vec_const_sub_sub_const" contains vectors which are unsupported 1: "vec_const_sub_sub_const_extrause" 4: "vec_const_sub_sub_const_extrause" has unsupported operation: llvm.call @@ -324,7 +324,7 @@ 4: "const_sub_const_sub_extrause" has unsupported operation: llvm.call 1: "vec_const_sub_const_sub" -"vec_const_sub_const_sub" contains vectors which are unsupported +8: "vec_const_sub_const_sub" contains vectors which are unsupported 1: "vec_const_sub_const_sub_extrause" 4: "vec_const_sub_const_sub_extrause" has unsupported operation: llvm.call @@ -378,7 +378,7 @@ 2: llvm.return 1: "sub_from_constant_vec" -"sub_from_constant_vec" contains vectors which are unsupported +8: "sub_from_constant_vec" contains vectors which are unsupported 1: "sub_from_constant_extra_use" 4: "sub_from_constant_extra_use" has unsupported operation: llvm.mlir.addressof diff --git a/SSA/Projects/InstCombine/tests/logs/adjust-for-minmax.txt b/SSA/Projects/InstCombine/tests/logs/adjust-for-minmax.txt index cc4a71bb2..9d9241072 100644 --- a/SSA/Projects/InstCombine/tests/logs/adjust-for-minmax.txt +++ b/SSA/Projects/InstCombine/tests/logs/adjust-for-minmax.txt @@ -141,5 +141,3 @@ 1: "scalar_select_of_vectors" 4: "scalar_select_of_vectors" has unsupported operation: builtin.unregistered: llvm.icmp -4: "scalar_select_of_vectors" has unsupported operation: builtin.unregistered: llvm.select - diff --git a/SSA/Projects/InstCombine/tests/logs/and-fcmp.txt b/SSA/Projects/InstCombine/tests/logs/and-fcmp.txt index 8de5f19b3..2afbe10db 100644 --- a/SSA/Projects/InstCombine/tests/logs/and-fcmp.txt +++ b/SSA/Projects/InstCombine/tests/logs/and-fcmp.txt @@ -6,8 +6,6 @@ 4: "PR1738_logical" has unsupported operation: builtin.unregistered: llvm.fcmp -4: "PR1738_logical" has unsupported operation: builtin.unregistered: llvm.select - 1: "PR1738_logical_noundef" 4: "PR1738_logical_noundef" has unsupported operation: builtin.unregistered: llvm.fcmp @@ -39,12 +37,8 @@ 1: "PR41069_logical" 4: "PR41069_logical" has unsupported operation: builtin.unregistered: llvm.fcmp -4: "PR41069_logical" has unsupported operation: builtin.unregistered: llvm.select - 4: "PR41069_logical" has unsupported operation: builtin.unregistered: llvm.fcmp -4: "PR41069_logical" has unsupported operation: builtin.unregistered: llvm.select - 1: "PR41069_commute" 4: "PR41069_commute" has unsupported operation: builtin.unregistered: llvm.fcmp @@ -53,10 +47,6 @@ 4: "PR41069_commute_logical" has unsupported operation: builtin.unregistered: llvm.fcmp -4: "PR41069_commute_logical" has unsupported operation: builtin.unregistered: llvm.select - -4: "PR41069_commute_logical" has unsupported operation: builtin.unregistered: llvm.select - 1: "PR41069_vec" 4: "PR41069_vec" has unsupported operation: llvm.mlir.undef @@ -97,8 +87,6 @@ 4: "PR15737_logical" has unsupported operation: builtin.unregistered: llvm.fcmp -4: "PR15737_logical" has unsupported operation: builtin.unregistered: llvm.select - 1: "t9" 4: "t9" has unsupported operation: builtin.unregistered: llvm.fcmp @@ -112,8 +100,6 @@ 4: "fcmp_ord_nonzero_logical" has unsupported operation: builtin.unregistered: llvm.fcmp -4: "fcmp_ord_nonzero_logical" has unsupported operation: builtin.unregistered: llvm.select - 1: "fcmp_ord_nonzero_vec" 4: "fcmp_ord_nonzero_vec" has unsupported operation: builtin.unregistered: llvm.fcmp @@ -127,15 +113,11 @@ 4: "auto_gen_0_logical" has unsupported operation after optimization: builtin.unregistered: llvm.fcmp -4: "auto_gen_0_logical" has unsupported operation after optimization: builtin.unregistered: llvm.select - 1: "auto_gen_0_logical_fmf" 4: "auto_gen_0_logical_fmf" has unsupported operation after optimization: builtin.unregistered: llvm.fcmp 4: "auto_gen_0_logical_fmf" has unsupported operation after optimization: builtin.unregistered: llvm.fcmp -4: "auto_gen_0_logical_fmf" has unsupported operation after optimization: builtin.unregistered: llvm.select - 1: "auto_gen_1" 4: "auto_gen_1" has unsupported operation after optimization: builtin.unregistered: llvm.fcmp @@ -146,15 +128,11 @@ 4: "auto_gen_1_logical" has unsupported operation after optimization: builtin.unregistered: llvm.fcmp -4: "auto_gen_1_logical" has unsupported operation after optimization: builtin.unregistered: llvm.select - 1: "auto_gen_1_logical_fmf" 4: "auto_gen_1_logical_fmf" has unsupported operation after optimization: builtin.unregistered: llvm.fcmp 4: "auto_gen_1_logical_fmf" has unsupported operation after optimization: builtin.unregistered: llvm.fcmp -4: "auto_gen_1_logical_fmf" has unsupported operation after optimization: builtin.unregistered: llvm.select - 1: "auto_gen_2" 4: "auto_gen_2" has unsupported operation: builtin.unregistered: llvm.fcmp @@ -174,15 +152,11 @@ 4: "auto_gen_3_logical" has unsupported operation after optimization: builtin.unregistered: llvm.fcmp -4: "auto_gen_3_logical" has unsupported operation after optimization: builtin.unregistered: llvm.select - 1: "auto_gen_3_logical_fmf" 4: "auto_gen_3_logical_fmf" has unsupported operation after optimization: builtin.unregistered: llvm.fcmp 4: "auto_gen_3_logical_fmf" has unsupported operation after optimization: builtin.unregistered: llvm.fcmp -4: "auto_gen_3_logical_fmf" has unsupported operation after optimization: builtin.unregistered: llvm.select - 1: "auto_gen_4" 4: "auto_gen_4" has unsupported operation after optimization: builtin.unregistered: llvm.fcmp @@ -193,15 +167,11 @@ 4: "auto_gen_4_logical" has unsupported operation after optimization: builtin.unregistered: llvm.fcmp -4: "auto_gen_4_logical" has unsupported operation after optimization: builtin.unregistered: llvm.select - 1: "auto_gen_4_logical_fmf" 4: "auto_gen_4_logical_fmf" has unsupported operation after optimization: builtin.unregistered: llvm.fcmp 4: "auto_gen_4_logical_fmf" has unsupported operation after optimization: builtin.unregistered: llvm.fcmp -4: "auto_gen_4_logical_fmf" has unsupported operation after optimization: builtin.unregistered: llvm.select - 1: "auto_gen_5" 4: "auto_gen_5" has unsupported operation: builtin.unregistered: llvm.fcmp @@ -221,15 +191,11 @@ 4: "auto_gen_6_logical" has unsupported operation after optimization: builtin.unregistered: llvm.fcmp -4: "auto_gen_6_logical" has unsupported operation after optimization: builtin.unregistered: llvm.select - 1: "auto_gen_6_logical_fmf" 4: "auto_gen_6_logical_fmf" has unsupported operation after optimization: builtin.unregistered: llvm.fcmp 4: "auto_gen_6_logical_fmf" has unsupported operation after optimization: builtin.unregistered: llvm.fcmp -4: "auto_gen_6_logical_fmf" has unsupported operation after optimization: builtin.unregistered: llvm.select - 1: "auto_gen_7" 4: "auto_gen_7" has unsupported operation: builtin.unregistered: llvm.fcmp @@ -267,15 +233,11 @@ 4: "auto_gen_10_logical" has unsupported operation after optimization: builtin.unregistered: llvm.fcmp -4: "auto_gen_10_logical" has unsupported operation after optimization: builtin.unregistered: llvm.select - 1: "auto_gen_10_logical_fmf" 4: "auto_gen_10_logical_fmf" has unsupported operation after optimization: builtin.unregistered: llvm.fcmp 4: "auto_gen_10_logical_fmf" has unsupported operation after optimization: builtin.unregistered: llvm.fcmp -4: "auto_gen_10_logical_fmf" has unsupported operation after optimization: builtin.unregistered: llvm.select - 1: "auto_gen_11" 4: "auto_gen_11" has unsupported operation after optimization: builtin.unregistered: llvm.fcmp @@ -286,15 +248,11 @@ 4: "auto_gen_11_logical" has unsupported operation after optimization: builtin.unregistered: llvm.fcmp -4: "auto_gen_11_logical" has unsupported operation after optimization: builtin.unregistered: llvm.select - 1: "auto_gen_11_logical_fmf" 4: "auto_gen_11_logical_fmf" has unsupported operation after optimization: builtin.unregistered: llvm.fcmp 4: "auto_gen_11_logical_fmf" has unsupported operation after optimization: builtin.unregistered: llvm.fcmp -4: "auto_gen_11_logical_fmf" has unsupported operation after optimization: builtin.unregistered: llvm.select - 1: "auto_gen_12" 4: "auto_gen_12" has unsupported operation after optimization: builtin.unregistered: llvm.fcmp @@ -305,15 +263,11 @@ 4: "auto_gen_12_logical" has unsupported operation after optimization: builtin.unregistered: llvm.fcmp -4: "auto_gen_12_logical" has unsupported operation after optimization: builtin.unregistered: llvm.select - 1: "auto_gen_12_logical_fmf" 4: "auto_gen_12_logical_fmf" has unsupported operation after optimization: builtin.unregistered: llvm.fcmp 4: "auto_gen_12_logical_fmf" has unsupported operation after optimization: builtin.unregistered: llvm.fcmp -4: "auto_gen_12_logical_fmf" has unsupported operation after optimization: builtin.unregistered: llvm.select - 1: "auto_gen_13" 4: "auto_gen_13" has unsupported operation after optimization: builtin.unregistered: llvm.fcmp @@ -324,15 +278,11 @@ 4: "auto_gen_13_logical" has unsupported operation after optimization: builtin.unregistered: llvm.fcmp -4: "auto_gen_13_logical" has unsupported operation after optimization: builtin.unregistered: llvm.select - 1: "auto_gen_13_logical_fmf" 4: "auto_gen_13_logical_fmf" has unsupported operation after optimization: builtin.unregistered: llvm.fcmp 4: "auto_gen_13_logical_fmf" has unsupported operation after optimization: builtin.unregistered: llvm.fcmp -4: "auto_gen_13_logical_fmf" has unsupported operation after optimization: builtin.unregistered: llvm.select - 1: "auto_gen_14" 4: "auto_gen_14" has unsupported operation: builtin.unregistered: llvm.fcmp @@ -352,15 +302,11 @@ 4: "auto_gen_15_logical" has unsupported operation after optimization: builtin.unregistered: llvm.fcmp -4: "auto_gen_15_logical" has unsupported operation after optimization: builtin.unregistered: llvm.select - 1: "auto_gen_15_logical_fmf" 4: "auto_gen_15_logical_fmf" has unsupported operation after optimization: builtin.unregistered: llvm.fcmp 4: "auto_gen_15_logical_fmf" has unsupported operation after optimization: builtin.unregistered: llvm.fcmp -4: "auto_gen_15_logical_fmf" has unsupported operation after optimization: builtin.unregistered: llvm.select - 1: "auto_gen_16" 4: "auto_gen_16" has unsupported operation: builtin.unregistered: llvm.fcmp @@ -380,15 +326,11 @@ 4: "auto_gen_17_logical" has unsupported operation after optimization: builtin.unregistered: llvm.fcmp -4: "auto_gen_17_logical" has unsupported operation after optimization: builtin.unregistered: llvm.select - 1: "auto_gen_17_logical_fmf" 4: "auto_gen_17_logical_fmf" has unsupported operation after optimization: builtin.unregistered: llvm.fcmp 4: "auto_gen_17_logical_fmf" has unsupported operation after optimization: builtin.unregistered: llvm.fcmp -4: "auto_gen_17_logical_fmf" has unsupported operation after optimization: builtin.unregistered: llvm.select - 1: "auto_gen_18" 4: "auto_gen_18" has unsupported operation: builtin.unregistered: llvm.fcmp @@ -426,15 +368,11 @@ 4: "auto_gen_21_logical" has unsupported operation after optimization: builtin.unregistered: llvm.fcmp -4: "auto_gen_21_logical" has unsupported operation after optimization: builtin.unregistered: llvm.select - 1: "auto_gen_21_logical_fmf" 4: "auto_gen_21_logical_fmf" has unsupported operation after optimization: builtin.unregistered: llvm.fcmp 4: "auto_gen_21_logical_fmf" has unsupported operation after optimization: builtin.unregistered: llvm.fcmp -4: "auto_gen_21_logical_fmf" has unsupported operation after optimization: builtin.unregistered: llvm.select - 1: "auto_gen_22" 4: "auto_gen_22" has unsupported operation after optimization: builtin.unregistered: llvm.fcmp @@ -445,15 +383,11 @@ 4: "auto_gen_22_logical" has unsupported operation after optimization: builtin.unregistered: llvm.fcmp -4: "auto_gen_22_logical" has unsupported operation after optimization: builtin.unregistered: llvm.select - 1: "auto_gen_22_logical_fmf" 4: "auto_gen_22_logical_fmf" has unsupported operation after optimization: builtin.unregistered: llvm.fcmp 4: "auto_gen_22_logical_fmf" has unsupported operation after optimization: builtin.unregistered: llvm.fcmp -4: "auto_gen_22_logical_fmf" has unsupported operation after optimization: builtin.unregistered: llvm.select - 1: "auto_gen_23" 4: "auto_gen_23" has unsupported operation: builtin.unregistered: llvm.fcmp @@ -509,15 +443,11 @@ 4: "auto_gen_28_logical" has unsupported operation after optimization: builtin.unregistered: llvm.fcmp -4: "auto_gen_28_logical" has unsupported operation after optimization: builtin.unregistered: llvm.select - 1: "auto_gen_28_logical_fmf" 4: "auto_gen_28_logical_fmf" has unsupported operation after optimization: builtin.unregistered: llvm.fcmp 4: "auto_gen_28_logical_fmf" has unsupported operation after optimization: builtin.unregistered: llvm.fcmp -4: "auto_gen_28_logical_fmf" has unsupported operation after optimization: builtin.unregistered: llvm.select - 1: "auto_gen_29" 4: "auto_gen_29" has unsupported operation: builtin.unregistered: llvm.fcmp @@ -583,8 +513,6 @@ 4: "auto_gen_35_logical_fmf" has unsupported operation after optimization: builtin.unregistered: llvm.fcmp -4: "auto_gen_35_logical_fmf" has unsupported operation after optimization: builtin.unregistered: llvm.select - 1: "auto_gen_36" 4: "auto_gen_36" has unsupported operation after optimization: builtin.unregistered: llvm.fcmp @@ -595,15 +523,11 @@ 4: "auto_gen_36_logical" has unsupported operation after optimization: builtin.unregistered: llvm.fcmp -4: "auto_gen_36_logical" has unsupported operation after optimization: builtin.unregistered: llvm.select - 1: "auto_gen_36_logical_fmf" 4: "auto_gen_36_logical_fmf" has unsupported operation after optimization: builtin.unregistered: llvm.fcmp 4: "auto_gen_36_logical_fmf" has unsupported operation after optimization: builtin.unregistered: llvm.fcmp -4: "auto_gen_36_logical_fmf" has unsupported operation after optimization: builtin.unregistered: llvm.select - 1: "auto_gen_37" 4: "auto_gen_37" has unsupported operation: builtin.unregistered: llvm.fcmp @@ -623,15 +547,11 @@ 4: "auto_gen_38_logical" has unsupported operation after optimization: builtin.unregistered: llvm.fcmp -4: "auto_gen_38_logical" has unsupported operation after optimization: builtin.unregistered: llvm.select - 1: "auto_gen_38_logical_fmf" 4: "auto_gen_38_logical_fmf" has unsupported operation after optimization: builtin.unregistered: llvm.fcmp 4: "auto_gen_38_logical_fmf" has unsupported operation after optimization: builtin.unregistered: llvm.fcmp -4: "auto_gen_38_logical_fmf" has unsupported operation after optimization: builtin.unregistered: llvm.select - 1: "auto_gen_39" 4: "auto_gen_39" has unsupported operation: builtin.unregistered: llvm.fcmp @@ -651,15 +571,11 @@ 4: "auto_gen_40_logical" has unsupported operation after optimization: builtin.unregistered: llvm.fcmp -4: "auto_gen_40_logical" has unsupported operation after optimization: builtin.unregistered: llvm.select - 1: "auto_gen_40_logical_fmf" 4: "auto_gen_40_logical_fmf" has unsupported operation after optimization: builtin.unregistered: llvm.fcmp 4: "auto_gen_40_logical_fmf" has unsupported operation after optimization: builtin.unregistered: llvm.fcmp -4: "auto_gen_40_logical_fmf" has unsupported operation after optimization: builtin.unregistered: llvm.select - 1: "auto_gen_41" 4: "auto_gen_41" has unsupported operation: builtin.unregistered: llvm.fcmp @@ -679,15 +595,11 @@ 4: "auto_gen_42_logical" has unsupported operation after optimization: builtin.unregistered: llvm.fcmp -4: "auto_gen_42_logical" has unsupported operation after optimization: builtin.unregistered: llvm.select - 1: "auto_gen_42_logical_fmf" 4: "auto_gen_42_logical_fmf" has unsupported operation after optimization: builtin.unregistered: llvm.fcmp 4: "auto_gen_42_logical_fmf" has unsupported operation after optimization: builtin.unregistered: llvm.fcmp -4: "auto_gen_42_logical_fmf" has unsupported operation after optimization: builtin.unregistered: llvm.select - 1: "auto_gen_43" 4: "auto_gen_43" has unsupported operation: builtin.unregistered: llvm.fcmp @@ -716,15 +628,11 @@ 4: "auto_gen_45_logical" has unsupported operation after optimization: builtin.unregistered: llvm.fcmp -4: "auto_gen_45_logical" has unsupported operation after optimization: builtin.unregistered: llvm.select - 1: "auto_gen_45_logical_fmf" 4: "auto_gen_45_logical_fmf" has unsupported operation after optimization: builtin.unregistered: llvm.fcmp 4: "auto_gen_45_logical_fmf" has unsupported operation after optimization: builtin.unregistered: llvm.fcmp -4: "auto_gen_45_logical_fmf" has unsupported operation after optimization: builtin.unregistered: llvm.select - 1: "auto_gen_46" 4: "auto_gen_46" has unsupported operation after optimization: builtin.unregistered: llvm.fcmp @@ -735,15 +643,11 @@ 4: "auto_gen_46_logical" has unsupported operation after optimization: builtin.unregistered: llvm.fcmp -4: "auto_gen_46_logical" has unsupported operation after optimization: builtin.unregistered: llvm.select - 1: "auto_gen_46_logical_fmf" 4: "auto_gen_46_logical_fmf" has unsupported operation after optimization: builtin.unregistered: llvm.fcmp 4: "auto_gen_46_logical_fmf" has unsupported operation after optimization: builtin.unregistered: llvm.fcmp -4: "auto_gen_46_logical_fmf" has unsupported operation after optimization: builtin.unregistered: llvm.select - 1: "auto_gen_47" 4: "auto_gen_47" has unsupported operation: builtin.unregistered: llvm.fcmp @@ -772,15 +676,11 @@ 4: "auto_gen_49_logical" has unsupported operation after optimization: builtin.unregistered: llvm.fcmp -4: "auto_gen_49_logical" has unsupported operation after optimization: builtin.unregistered: llvm.select - 1: "auto_gen_49_logical_fmf" 4: "auto_gen_49_logical_fmf" has unsupported operation after optimization: builtin.unregistered: llvm.fcmp 4: "auto_gen_49_logical_fmf" has unsupported operation after optimization: builtin.unregistered: llvm.fcmp -4: "auto_gen_49_logical_fmf" has unsupported operation after optimization: builtin.unregistered: llvm.select - 1: "auto_gen_50" 4: "auto_gen_50" has unsupported operation after optimization: builtin.unregistered: llvm.fcmp @@ -791,15 +691,11 @@ 4: "auto_gen_50_logical" has unsupported operation after optimization: builtin.unregistered: llvm.fcmp -4: "auto_gen_50_logical" has unsupported operation after optimization: builtin.unregistered: llvm.select - 1: "auto_gen_50_logical_fmf" 4: "auto_gen_50_logical_fmf" has unsupported operation after optimization: builtin.unregistered: llvm.fcmp 4: "auto_gen_50_logical_fmf" has unsupported operation after optimization: builtin.unregistered: llvm.fcmp -4: "auto_gen_50_logical_fmf" has unsupported operation after optimization: builtin.unregistered: llvm.select - 1: "auto_gen_51" 4: "auto_gen_51" has unsupported operation: builtin.unregistered: llvm.fcmp @@ -829,8 +725,6 @@ 4: "auto_gen_53_logical_fmf" has unsupported operation after optimization: builtin.unregistered: llvm.fcmp -4: "auto_gen_53_logical_fmf" has unsupported operation after optimization: builtin.unregistered: llvm.select - 1: "auto_gen_54" 4: "auto_gen_54" has unsupported operation: builtin.unregistered: llvm.fcmp @@ -850,15 +744,11 @@ 4: "auto_gen_55_logical" has unsupported operation after optimization: builtin.unregistered: llvm.fcmp -4: "auto_gen_55_logical" has unsupported operation after optimization: builtin.unregistered: llvm.select - 1: "auto_gen_55_logical_fmf" 4: "auto_gen_55_logical_fmf" has unsupported operation after optimization: builtin.unregistered: llvm.fcmp 4: "auto_gen_55_logical_fmf" has unsupported operation after optimization: builtin.unregistered: llvm.fcmp -4: "auto_gen_55_logical_fmf" has unsupported operation after optimization: builtin.unregistered: llvm.select - 1: "auto_gen_56" 4: "auto_gen_56" has unsupported operation: builtin.unregistered: llvm.fcmp @@ -896,15 +786,11 @@ 4: "auto_gen_59_logical" has unsupported operation after optimization: builtin.unregistered: llvm.fcmp -4: "auto_gen_59_logical" has unsupported operation after optimization: builtin.unregistered: llvm.select - 1: "auto_gen_59_logical_fmf" 4: "auto_gen_59_logical_fmf" has unsupported operation after optimization: builtin.unregistered: llvm.fcmp 4: "auto_gen_59_logical_fmf" has unsupported operation after optimization: builtin.unregistered: llvm.fcmp -4: "auto_gen_59_logical_fmf" has unsupported operation after optimization: builtin.unregistered: llvm.select - 1: "auto_gen_60" 4: "auto_gen_60" has unsupported operation: builtin.unregistered: llvm.fcmp @@ -969,15 +855,11 @@ 4: "auto_gen_66_logical" has unsupported operation after optimization: builtin.unregistered: llvm.fcmp -4: "auto_gen_66_logical" has unsupported operation after optimization: builtin.unregistered: llvm.select - 1: "auto_gen_66_logical_fmf" 4: "auto_gen_66_logical_fmf" has unsupported operation after optimization: builtin.unregistered: llvm.fcmp 4: "auto_gen_66_logical_fmf" has unsupported operation after optimization: builtin.unregistered: llvm.fcmp -4: "auto_gen_66_logical_fmf" has unsupported operation after optimization: builtin.unregistered: llvm.select - 1: "auto_gen_67" 4: "auto_gen_67" has unsupported operation after optimization: builtin.unregistered: llvm.fcmp @@ -988,15 +870,11 @@ 4: "auto_gen_67_logical" has unsupported operation after optimization: builtin.unregistered: llvm.fcmp -4: "auto_gen_67_logical" has unsupported operation after optimization: builtin.unregistered: llvm.select - 1: "auto_gen_67_logical_fmf" 4: "auto_gen_67_logical_fmf" has unsupported operation after optimization: builtin.unregistered: llvm.fcmp 4: "auto_gen_67_logical_fmf" has unsupported operation after optimization: builtin.unregistered: llvm.fcmp -4: "auto_gen_67_logical_fmf" has unsupported operation after optimization: builtin.unregistered: llvm.select - 1: "auto_gen_68" 4: "auto_gen_68" has unsupported operation after optimization: builtin.unregistered: llvm.fcmp @@ -1007,15 +885,11 @@ 4: "auto_gen_68_logical" has unsupported operation after optimization: builtin.unregistered: llvm.fcmp -4: "auto_gen_68_logical" has unsupported operation after optimization: builtin.unregistered: llvm.select - 1: "auto_gen_68_logical_fmf" 4: "auto_gen_68_logical_fmf" has unsupported operation after optimization: builtin.unregistered: llvm.fcmp 4: "auto_gen_68_logical_fmf" has unsupported operation after optimization: builtin.unregistered: llvm.fcmp -4: "auto_gen_68_logical_fmf" has unsupported operation after optimization: builtin.unregistered: llvm.select - 1: "auto_gen_69" 4: "auto_gen_69" has unsupported operation after optimization: builtin.unregistered: llvm.fcmp @@ -1026,15 +900,11 @@ 4: "auto_gen_69_logical" has unsupported operation after optimization: builtin.unregistered: llvm.fcmp -4: "auto_gen_69_logical" has unsupported operation after optimization: builtin.unregistered: llvm.select - 1: "auto_gen_69_logical_fmf" 4: "auto_gen_69_logical_fmf" has unsupported operation after optimization: builtin.unregistered: llvm.fcmp 4: "auto_gen_69_logical_fmf" has unsupported operation after optimization: builtin.unregistered: llvm.fcmp -4: "auto_gen_69_logical_fmf" has unsupported operation after optimization: builtin.unregistered: llvm.select - 1: "auto_gen_70" 4: "auto_gen_70" has unsupported operation: builtin.unregistered: llvm.fcmp @@ -1091,8 +961,6 @@ 4: "auto_gen_75_logical_fmf" has unsupported operation after optimization: builtin.unregistered: llvm.fcmp -4: "auto_gen_75_logical_fmf" has unsupported operation after optimization: builtin.unregistered: llvm.select - 1: "auto_gen_76" 4: "auto_gen_76" has unsupported operation: builtin.unregistered: llvm.fcmp @@ -1121,15 +989,11 @@ 4: "auto_gen_78_logical" has unsupported operation after optimization: builtin.unregistered: llvm.fcmp -4: "auto_gen_78_logical" has unsupported operation after optimization: builtin.unregistered: llvm.select - 1: "auto_gen_78_logical_fmf" 4: "auto_gen_78_logical_fmf" has unsupported operation after optimization: builtin.unregistered: llvm.fcmp 4: "auto_gen_78_logical_fmf" has unsupported operation after optimization: builtin.unregistered: llvm.fcmp -4: "auto_gen_78_logical_fmf" has unsupported operation after optimization: builtin.unregistered: llvm.select - 1: "auto_gen_79" 4: "auto_gen_79" has unsupported operation: builtin.unregistered: llvm.fcmp @@ -1149,15 +1013,11 @@ 4: "auto_gen_80_logical" has unsupported operation after optimization: builtin.unregistered: llvm.fcmp -4: "auto_gen_80_logical" has unsupported operation after optimization: builtin.unregistered: llvm.select - 1: "auto_gen_80_logical_fmf" 4: "auto_gen_80_logical_fmf" has unsupported operation after optimization: builtin.unregistered: llvm.fcmp 4: "auto_gen_80_logical_fmf" has unsupported operation after optimization: builtin.unregistered: llvm.fcmp -4: "auto_gen_80_logical_fmf" has unsupported operation after optimization: builtin.unregistered: llvm.select - 1: "auto_gen_81" 4: "auto_gen_81" has unsupported operation: builtin.unregistered: llvm.fcmp @@ -1223,8 +1083,6 @@ 4: "auto_gen_87_logical_fmf" has unsupported operation after optimization: builtin.unregistered: llvm.fcmp -4: "auto_gen_87_logical_fmf" has unsupported operation after optimization: builtin.unregistered: llvm.select - 1: "auto_gen_88" 4: "auto_gen_88" has unsupported operation: builtin.unregistered: llvm.fcmp @@ -1262,15 +1120,11 @@ 4: "auto_gen_91_logical" has unsupported operation after optimization: builtin.unregistered: llvm.fcmp -4: "auto_gen_91_logical" has unsupported operation after optimization: builtin.unregistered: llvm.select - 1: "auto_gen_91_logical_fmf" 4: "auto_gen_91_logical_fmf" has unsupported operation after optimization: builtin.unregistered: llvm.fcmp 4: "auto_gen_91_logical_fmf" has unsupported operation after optimization: builtin.unregistered: llvm.fcmp -4: "auto_gen_91_logical_fmf" has unsupported operation after optimization: builtin.unregistered: llvm.select - 1: "auto_gen_92" 4: "auto_gen_92" has unsupported operation after optimization: builtin.unregistered: llvm.fcmp @@ -1281,15 +1135,11 @@ 4: "auto_gen_92_logical" has unsupported operation after optimization: builtin.unregistered: llvm.fcmp -4: "auto_gen_92_logical" has unsupported operation after optimization: builtin.unregistered: llvm.select - 1: "auto_gen_92_logical_fmf" 4: "auto_gen_92_logical_fmf" has unsupported operation after optimization: builtin.unregistered: llvm.fcmp 4: "auto_gen_92_logical_fmf" has unsupported operation after optimization: builtin.unregistered: llvm.fcmp -4: "auto_gen_92_logical_fmf" has unsupported operation after optimization: builtin.unregistered: llvm.select - 1: "auto_gen_93" 4: "auto_gen_93" has unsupported operation: builtin.unregistered: llvm.fcmp @@ -1355,8 +1205,6 @@ 4: "auto_gen_99_logical_fmf" has unsupported operation after optimization: builtin.unregistered: llvm.fcmp -4: "auto_gen_99_logical_fmf" has unsupported operation after optimization: builtin.unregistered: llvm.select - 1: "auto_gen_100" 4: "auto_gen_100" has unsupported operation: builtin.unregistered: llvm.fcmp @@ -1412,15 +1260,11 @@ 4: "auto_gen_105_logical" has unsupported operation after optimization: builtin.unregistered: llvm.fcmp -4: "auto_gen_105_logical" has unsupported operation after optimization: builtin.unregistered: llvm.select - 1: "auto_gen_105_logical_fmf" 4: "auto_gen_105_logical_fmf" has unsupported operation after optimization: builtin.unregistered: llvm.fcmp 4: "auto_gen_105_logical_fmf" has unsupported operation after optimization: builtin.unregistered: llvm.fcmp -4: "auto_gen_105_logical_fmf" has unsupported operation after optimization: builtin.unregistered: llvm.select - 1: "auto_gen_106" 4: "auto_gen_106" has unsupported operation after optimization: builtin.unregistered: llvm.fcmp @@ -1431,15 +1275,11 @@ 4: "auto_gen_106_logical" has unsupported operation after optimization: builtin.unregistered: llvm.fcmp -4: "auto_gen_106_logical" has unsupported operation after optimization: builtin.unregistered: llvm.select - 1: "auto_gen_106_logical_fmf" 4: "auto_gen_106_logical_fmf" has unsupported operation after optimization: builtin.unregistered: llvm.fcmp 4: "auto_gen_106_logical_fmf" has unsupported operation after optimization: builtin.unregistered: llvm.fcmp -4: "auto_gen_106_logical_fmf" has unsupported operation after optimization: builtin.unregistered: llvm.select - 1: "auto_gen_107" 4: "auto_gen_107" has unsupported operation after optimization: builtin.unregistered: llvm.fcmp @@ -1450,15 +1290,11 @@ 4: "auto_gen_107_logical" has unsupported operation after optimization: builtin.unregistered: llvm.fcmp -4: "auto_gen_107_logical" has unsupported operation after optimization: builtin.unregistered: llvm.select - 1: "auto_gen_107_logical_fmf" 4: "auto_gen_107_logical_fmf" has unsupported operation after optimization: builtin.unregistered: llvm.fcmp 4: "auto_gen_107_logical_fmf" has unsupported operation after optimization: builtin.unregistered: llvm.fcmp -4: "auto_gen_107_logical_fmf" has unsupported operation after optimization: builtin.unregistered: llvm.select - 1: "auto_gen_108" 4: "auto_gen_108" has unsupported operation after optimization: builtin.unregistered: llvm.fcmp @@ -1469,15 +1305,11 @@ 4: "auto_gen_108_logical" has unsupported operation after optimization: builtin.unregistered: llvm.fcmp -4: "auto_gen_108_logical" has unsupported operation after optimization: builtin.unregistered: llvm.select - 1: "auto_gen_108_logical_fmf" 4: "auto_gen_108_logical_fmf" has unsupported operation after optimization: builtin.unregistered: llvm.fcmp 4: "auto_gen_108_logical_fmf" has unsupported operation after optimization: builtin.unregistered: llvm.fcmp -4: "auto_gen_108_logical_fmf" has unsupported operation after optimization: builtin.unregistered: llvm.select - 1: "auto_gen_109" 4: "auto_gen_109" has unsupported operation after optimization: builtin.unregistered: llvm.fcmp @@ -1488,15 +1320,11 @@ 4: "auto_gen_109_logical" has unsupported operation after optimization: builtin.unregistered: llvm.fcmp -4: "auto_gen_109_logical" has unsupported operation after optimization: builtin.unregistered: llvm.select - 1: "auto_gen_109_logical_fmf" 4: "auto_gen_109_logical_fmf" has unsupported operation after optimization: builtin.unregistered: llvm.fcmp 4: "auto_gen_109_logical_fmf" has unsupported operation after optimization: builtin.unregistered: llvm.fcmp -4: "auto_gen_109_logical_fmf" has unsupported operation after optimization: builtin.unregistered: llvm.select - 1: "auto_gen_110" 4: "auto_gen_110" has unsupported operation after optimization: builtin.unregistered: llvm.fcmp @@ -1507,15 +1335,11 @@ 4: "auto_gen_110_logical" has unsupported operation after optimization: builtin.unregistered: llvm.fcmp -4: "auto_gen_110_logical" has unsupported operation after optimization: builtin.unregistered: llvm.select - 1: "auto_gen_110_logical_fmf" 4: "auto_gen_110_logical_fmf" has unsupported operation after optimization: builtin.unregistered: llvm.fcmp 4: "auto_gen_110_logical_fmf" has unsupported operation after optimization: builtin.unregistered: llvm.fcmp -4: "auto_gen_110_logical_fmf" has unsupported operation after optimization: builtin.unregistered: llvm.select - 1: "auto_gen_111" 4: "auto_gen_111" has unsupported operation after optimization: builtin.unregistered: llvm.fcmp @@ -1526,15 +1350,11 @@ 4: "auto_gen_111_logical" has unsupported operation after optimization: builtin.unregistered: llvm.fcmp -4: "auto_gen_111_logical" has unsupported operation after optimization: builtin.unregistered: llvm.select - 1: "auto_gen_111_logical_fmf" 4: "auto_gen_111_logical_fmf" has unsupported operation after optimization: builtin.unregistered: llvm.fcmp 4: "auto_gen_111_logical_fmf" has unsupported operation after optimization: builtin.unregistered: llvm.fcmp -4: "auto_gen_111_logical_fmf" has unsupported operation after optimization: builtin.unregistered: llvm.select - 1: "auto_gen_112" 4: "auto_gen_112" has unsupported operation after optimization: builtin.unregistered: llvm.fcmp @@ -1545,8 +1365,6 @@ 4: "auto_gen_112_logical" has unsupported operation after optimization: builtin.unregistered: llvm.fcmp -4: "auto_gen_112_logical" has unsupported operation after optimization: builtin.unregistered: llvm.select - 1: "auto_gen_112_logical_fmf" 4: "auto_gen_112_logical_fmf" has unsupported operation: builtin.unregistered: llvm.fcmp @@ -1561,8 +1379,6 @@ 4: "auto_gen_113_logical_fmf" has unsupported operation after optimization: builtin.unregistered: llvm.fcmp -4: "auto_gen_113_logical_fmf" has unsupported operation after optimization: builtin.unregistered: llvm.select - 1: "auto_gen_114" 4: "auto_gen_114" has unsupported operation: builtin.unregistered: llvm.fcmp @@ -1583,8 +1399,6 @@ 4: "auto_gen_115_logical_fmf" has unsupported operation after optimization: builtin.unregistered: llvm.fcmp -4: "auto_gen_115_logical_fmf" has unsupported operation after optimization: builtin.unregistered: llvm.select - 1: "auto_gen_116" 4: "auto_gen_116" has unsupported operation: builtin.unregistered: llvm.fcmp @@ -1605,8 +1419,6 @@ 4: "auto_gen_117_logical_fmf" has unsupported operation after optimization: builtin.unregistered: llvm.fcmp -4: "auto_gen_117_logical_fmf" has unsupported operation after optimization: builtin.unregistered: llvm.select - 1: "auto_gen_118" 4: "auto_gen_118" has unsupported operation: builtin.unregistered: llvm.fcmp @@ -1627,8 +1439,6 @@ 4: "auto_gen_119_logical_fmf" has unsupported operation after optimization: builtin.unregistered: llvm.fcmp -4: "auto_gen_119_logical_fmf" has unsupported operation after optimization: builtin.unregistered: llvm.select - 1: "auto_gen_120" 4: "auto_gen_120" has unsupported operation after optimization: builtin.unregistered: llvm.fcmp @@ -1639,15 +1449,11 @@ 4: "auto_gen_120_logical" has unsupported operation after optimization: builtin.unregistered: llvm.fcmp -4: "auto_gen_120_logical" has unsupported operation after optimization: builtin.unregistered: llvm.select - 1: "auto_gen_120_logical_fmf" 4: "auto_gen_120_logical_fmf" has unsupported operation after optimization: builtin.unregistered: llvm.fcmp 4: "auto_gen_120_logical_fmf" has unsupported operation after optimization: builtin.unregistered: llvm.fcmp -4: "auto_gen_120_logical_fmf" has unsupported operation after optimization: builtin.unregistered: llvm.select - 1: "auto_gen_121" 4: "auto_gen_121" has unsupported operation: builtin.unregistered: llvm.fcmp @@ -1713,8 +1519,6 @@ 4: "auto_gen_127_logical_fmf" has unsupported operation after optimization: builtin.unregistered: llvm.fcmp -4: "auto_gen_127_logical_fmf" has unsupported operation after optimization: builtin.unregistered: llvm.select - 1: "auto_gen_128" 4: "auto_gen_128" has unsupported operation: builtin.unregistered: llvm.fcmp @@ -1780,8 +1584,6 @@ 4: "auto_gen_134_logical_fmf" has unsupported operation after optimization: builtin.unregistered: llvm.fcmp -4: "auto_gen_134_logical_fmf" has unsupported operation after optimization: builtin.unregistered: llvm.select - 1: "auto_gen_135" 4: "auto_gen_135" has unsupported operation after optimization: builtin.unregistered: llvm.fcmp @@ -1792,15 +1594,11 @@ 4: "auto_gen_135_logical" has unsupported operation after optimization: builtin.unregistered: llvm.fcmp -4: "auto_gen_135_logical" has unsupported operation after optimization: builtin.unregistered: llvm.select - 1: "auto_gen_135_logical_fmf" 4: "auto_gen_135_logical_fmf" has unsupported operation after optimization: builtin.unregistered: llvm.fcmp 4: "auto_gen_135_logical_fmf" has unsupported operation after optimization: builtin.unregistered: llvm.fcmp -4: "auto_gen_135_logical_fmf" has unsupported operation after optimization: builtin.unregistered: llvm.select - 1: "intersect_fmf_1" 4: "intersect_fmf_1" has unsupported operation: builtin.unregistered: llvm.fcmp diff --git a/SSA/Projects/InstCombine/tests/logs/and-or-icmp-min-max.txt b/SSA/Projects/InstCombine/tests/logs/and-or-icmp-min-max.txt index 6b6e5b826..7e4850dd9 100644 --- a/SSA/Projects/InstCombine/tests/logs/and-or-icmp-min-max.txt +++ b/SSA/Projects/InstCombine/tests/logs/and-or-icmp-min-max.txt @@ -8,10 +8,8 @@ 4: "slt_and_max_logical" has unsupported operation after optimization: builtin.unregistered: llvm.icmp -4: "slt_and_max_logical" has unsupported operation after optimization: builtin.unregistered: llvm.select - 1: "slt_and_max_commute" -"slt_and_max_commute" contains vectors which are unsupported +8: "slt_and_max_commute" contains vectors which are unsupported 1: "slt_swap_and_max" 4: "slt_swap_and_max" has unsupported operation after optimization: builtin.unregistered: llvm.icmp @@ -23,8 +21,6 @@ 4: "slt_swap_and_max_logical" has unsupported operation after optimization: builtin.unregistered: llvm.icmp -4: "slt_swap_and_max_logical" has unsupported operation after optimization: builtin.unregistered: llvm.select - 1: "slt_swap_and_max_commute" 4: "slt_swap_and_max_commute" has unsupported operation after optimization: builtin.unregistered: llvm.icmp @@ -35,8 +31,6 @@ 4: "slt_swap_and_max_commute_logical" has unsupported operation after optimization: builtin.unregistered: llvm.icmp -4: "slt_swap_and_max_commute_logical" has unsupported operation after optimization: builtin.unregistered: llvm.select - 1: "ult_and_max" 4: "ult_and_max" has unsupported operation after optimization: builtin.unregistered: llvm.icmp @@ -47,8 +41,6 @@ 4: "ult_and_max_logical" has unsupported operation after optimization: builtin.unregistered: llvm.icmp -4: "ult_and_max_logical" has unsupported operation after optimization: builtin.unregistered: llvm.select - 1: "ult_and_max_commute" 4: "ult_and_max_commute" has unsupported operation after optimization: builtin.unregistered: llvm.icmp @@ -59,8 +51,6 @@ 4: "ult_and_max_commute_logical" has unsupported operation after optimization: builtin.unregistered: llvm.icmp -4: "ult_and_max_commute_logical" has unsupported operation after optimization: builtin.unregistered: llvm.select - 1: "ult_swap_and_max" 4: "ult_swap_and_max" has unsupported operation after optimization: builtin.unregistered: llvm.icmp @@ -71,8 +61,6 @@ 4: "ult_swap_and_max_logical" has unsupported operation after optimization: builtin.unregistered: llvm.icmp -4: "ult_swap_and_max_logical" has unsupported operation after optimization: builtin.unregistered: llvm.select - 1: "ult_swap_and_max_commute" 4: "ult_swap_and_max_commute" has unsupported operation after optimization: builtin.unregistered: llvm.icmp @@ -83,8 +71,6 @@ 4: "ult_swap_and_max_commute_logical" has unsupported operation after optimization: builtin.unregistered: llvm.icmp -4: "ult_swap_and_max_commute_logical" has unsupported operation after optimization: builtin.unregistered: llvm.select - 1: "sgt_and_min" 4: "sgt_and_min" has unsupported operation after optimization: builtin.unregistered: llvm.icmp @@ -95,8 +81,6 @@ 4: "sgt_and_min_logical" has unsupported operation after optimization: builtin.unregistered: llvm.icmp -4: "sgt_and_min_logical" has unsupported operation after optimization: builtin.unregistered: llvm.select - 1: "sgt_and_min_commute" 4: "sgt_and_min_commute" has unsupported operation after optimization: builtin.unregistered: llvm.icmp @@ -107,8 +91,6 @@ 4: "sgt_and_min_commute_logical" has unsupported operation after optimization: builtin.unregistered: llvm.icmp -4: "sgt_and_min_commute_logical" has unsupported operation after optimization: builtin.unregistered: llvm.select - 1: "sgt_swap_and_min" 4: "sgt_swap_and_min" has unsupported operation after optimization: builtin.unregistered: llvm.icmp @@ -119,8 +101,6 @@ 4: "sgt_swap_and_min_logical" has unsupported operation after optimization: builtin.unregistered: llvm.icmp -4: "sgt_swap_and_min_logical" has unsupported operation after optimization: builtin.unregistered: llvm.select - 1: "sgt_swap_and_min_commute" 4: "sgt_swap_and_min_commute" has unsupported operation after optimization: builtin.unregistered: llvm.icmp @@ -131,8 +111,6 @@ 4: "sgt_swap_and_min_commute_logical" has unsupported operation after optimization: builtin.unregistered: llvm.icmp -4: "sgt_swap_and_min_commute_logical" has unsupported operation after optimization: builtin.unregistered: llvm.select - 1: "ugt_and_min" 4: "ugt_and_min" has unsupported operation after optimization: builtin.unregistered: llvm.icmp @@ -143,8 +121,6 @@ 4: "ugt_and_min_logical" has unsupported operation after optimization: builtin.unregistered: llvm.icmp -4: "ugt_and_min_logical" has unsupported operation after optimization: builtin.unregistered: llvm.select - 1: "ugt_and_min_commute" 4: "ugt_and_min_commute" has unsupported operation after optimization: builtin.unregistered: llvm.icmp @@ -155,8 +131,6 @@ 4: "ugt_and_min_commute_logical" has unsupported operation after optimization: builtin.unregistered: llvm.icmp -4: "ugt_and_min_commute_logical" has unsupported operation after optimization: builtin.unregistered: llvm.select - 1: "ugt_swap_and_min" 4: "ugt_swap_and_min" has unsupported operation after optimization: builtin.unregistered: llvm.icmp @@ -167,8 +141,6 @@ 4: "ugt_swap_and_min_logical" has unsupported operation after optimization: builtin.unregistered: llvm.icmp -4: "ugt_swap_and_min_logical" has unsupported operation after optimization: builtin.unregistered: llvm.select - 1: "ugt_swap_and_min_commute" 4: "ugt_swap_and_min_commute" has unsupported operation after optimization: builtin.unregistered: llvm.icmp @@ -179,8 +151,6 @@ 4: "ugt_swap_and_min_commute_logical" has unsupported operation after optimization: builtin.unregistered: llvm.icmp -4: "ugt_swap_and_min_commute_logical" has unsupported operation after optimization: builtin.unregistered: llvm.select - 1: "sge_or_not_max" 4: "sge_or_not_max" has unsupported operation after optimization: builtin.unregistered: llvm.icmp @@ -191,8 +161,6 @@ 4: "sge_or_not_max_logical" has unsupported operation after optimization: builtin.unregistered: llvm.icmp -4: "sge_or_not_max_logical" has unsupported operation after optimization: builtin.unregistered: llvm.select - 1: "sge_or_not_max_commute" 4: "sge_or_not_max_commute" has unsupported operation after optimization: builtin.unregistered: llvm.icmp @@ -203,8 +171,6 @@ 4: "sge_or_not_max_commute_logical" has unsupported operation after optimization: builtin.unregistered: llvm.icmp -4: "sge_or_not_max_commute_logical" has unsupported operation after optimization: builtin.unregistered: llvm.select - 1: "sge_swap_or_not_max" 4: "sge_swap_or_not_max" has unsupported operation after optimization: builtin.unregistered: llvm.icmp @@ -215,8 +181,6 @@ 4: "sge_swap_or_not_max_logical" has unsupported operation after optimization: builtin.unregistered: llvm.icmp -4: "sge_swap_or_not_max_logical" has unsupported operation after optimization: builtin.unregistered: llvm.select - 1: "sge_swap_or_not_max_commute" 4: "sge_swap_or_not_max_commute" has unsupported operation after optimization: builtin.unregistered: llvm.icmp @@ -227,8 +191,6 @@ 4: "sge_swap_or_not_max_commute_logical" has unsupported operation after optimization: builtin.unregistered: llvm.icmp -4: "sge_swap_or_not_max_commute_logical" has unsupported operation after optimization: builtin.unregistered: llvm.select - 1: "uge_or_not_max" 4: "uge_or_not_max" has unsupported operation after optimization: builtin.unregistered: llvm.icmp @@ -239,8 +201,6 @@ 4: "uge_or_not_max_logical" has unsupported operation after optimization: builtin.unregistered: llvm.icmp -4: "uge_or_not_max_logical" has unsupported operation after optimization: builtin.unregistered: llvm.select - 1: "uge_or_not_max_commute" 4: "uge_or_not_max_commute" has unsupported operation after optimization: builtin.unregistered: llvm.icmp @@ -251,8 +211,6 @@ 4: "uge_or_not_max_commute_logical" has unsupported operation after optimization: builtin.unregistered: llvm.icmp -4: "uge_or_not_max_commute_logical" has unsupported operation after optimization: builtin.unregistered: llvm.select - 1: "uge_swap_or_not_max" 4: "uge_swap_or_not_max" has unsupported operation after optimization: builtin.unregistered: llvm.icmp @@ -263,8 +221,6 @@ 4: "uge_swap_or_not_max_logical" has unsupported operation after optimization: builtin.unregistered: llvm.icmp -4: "uge_swap_or_not_max_logical" has unsupported operation after optimization: builtin.unregistered: llvm.select - 1: "uge_swap_or_not_max_commute" 4: "uge_swap_or_not_max_commute" has unsupported operation after optimization: builtin.unregistered: llvm.icmp @@ -275,8 +231,6 @@ 4: "uge_swap_or_not_max_commute_logical" has unsupported operation after optimization: builtin.unregistered: llvm.icmp -4: "uge_swap_or_not_max_commute_logical" has unsupported operation after optimization: builtin.unregistered: llvm.select - 1: "sle_or_not_min" 4: "sle_or_not_min" has unsupported operation after optimization: builtin.unregistered: llvm.icmp @@ -287,8 +241,6 @@ 4: "sle_or_not_min_logical" has unsupported operation after optimization: builtin.unregistered: llvm.icmp -4: "sle_or_not_min_logical" has unsupported operation after optimization: builtin.unregistered: llvm.select - 1: "sle_or_not_min_commute" 4: "sle_or_not_min_commute" has unsupported operation after optimization: builtin.unregistered: llvm.icmp @@ -299,8 +251,6 @@ 4: "sle_or_not_min_commute_logical" has unsupported operation after optimization: builtin.unregistered: llvm.icmp -4: "sle_or_not_min_commute_logical" has unsupported operation after optimization: builtin.unregistered: llvm.select - 1: "sle_swap_or_not_min" 4: "sle_swap_or_not_min" has unsupported operation after optimization: builtin.unregistered: llvm.icmp @@ -311,8 +261,6 @@ 4: "sle_swap_or_not_min_logical" has unsupported operation after optimization: builtin.unregistered: llvm.icmp -4: "sle_swap_or_not_min_logical" has unsupported operation after optimization: builtin.unregistered: llvm.select - 1: "sle_swap_or_not_min_commute" 4: "sle_swap_or_not_min_commute" has unsupported operation after optimization: builtin.unregistered: llvm.icmp @@ -323,8 +271,6 @@ 4: "sle_swap_or_not_min_commute_logical" has unsupported operation after optimization: builtin.unregistered: llvm.icmp -4: "sle_swap_or_not_min_commute_logical" has unsupported operation after optimization: builtin.unregistered: llvm.select - 1: "ule_or_not_min" 4: "ule_or_not_min" has unsupported operation after optimization: builtin.unregistered: llvm.icmp @@ -335,8 +281,6 @@ 4: "ule_or_not_min_logical" has unsupported operation after optimization: builtin.unregistered: llvm.icmp -4: "ule_or_not_min_logical" has unsupported operation after optimization: builtin.unregistered: llvm.select - 1: "ule_or_not_min_commute" 4: "ule_or_not_min_commute" has unsupported operation after optimization: builtin.unregistered: llvm.icmp @@ -347,8 +291,6 @@ 4: "ule_or_not_min_commute_logical" has unsupported operation after optimization: builtin.unregistered: llvm.icmp -4: "ule_or_not_min_commute_logical" has unsupported operation after optimization: builtin.unregistered: llvm.select - 1: "ule_swap_or_not_min" 4: "ule_swap_or_not_min" has unsupported operation after optimization: builtin.unregistered: llvm.icmp @@ -359,8 +301,6 @@ 4: "ule_swap_or_not_min_logical" has unsupported operation after optimization: builtin.unregistered: llvm.icmp -4: "ule_swap_or_not_min_logical" has unsupported operation after optimization: builtin.unregistered: llvm.select - 1: "ule_swap_or_not_min_commute" 4: "ule_swap_or_not_min_commute" has unsupported operation after optimization: builtin.unregistered: llvm.icmp @@ -371,8 +311,6 @@ 4: "ule_swap_or_not_min_commute_logical" has unsupported operation after optimization: builtin.unregistered: llvm.icmp -4: "ule_swap_or_not_min_commute_logical" has unsupported operation after optimization: builtin.unregistered: llvm.select - 1: "sge_and_max" 4: "sge_and_max" has unsupported operation: builtin.unregistered: llvm.icmp @@ -483,8 +421,6 @@ 4: "sge_or_max_commute_logical" has unsupported operation: builtin.unregistered: llvm.icmp -4: "sge_or_max_commute_logical" has unsupported operation: builtin.unregistered: llvm.select - 1: "sge_swap_or_max" 4: "sge_swap_or_max" has unsupported operation: builtin.unregistered: llvm.icmp @@ -499,8 +435,6 @@ 4: "sge_swap_or_max_commute_logical" has unsupported operation: builtin.unregistered: llvm.icmp -4: "sge_swap_or_max_commute_logical" has unsupported operation: builtin.unregistered: llvm.select - 1: "uge_or_max" 4: "uge_or_max" has unsupported operation: builtin.unregistered: llvm.icmp @@ -515,8 +449,6 @@ 4: "uge_or_max_commute_logical" has unsupported operation: builtin.unregistered: llvm.icmp -4: "uge_or_max_commute_logical" has unsupported operation: builtin.unregistered: llvm.select - 1: "uge_swap_or_max" 4: "uge_swap_or_max" has unsupported operation: builtin.unregistered: llvm.icmp @@ -531,8 +463,6 @@ 4: "uge_swap_or_max_commute_logical" has unsupported operation: builtin.unregistered: llvm.icmp -4: "uge_swap_or_max_commute_logical" has unsupported operation: builtin.unregistered: llvm.select - 1: "sle_or_min" 4: "sle_or_min" has unsupported operation: builtin.unregistered: llvm.icmp @@ -547,8 +477,6 @@ 4: "sle_or_min_commute_logical" has unsupported operation: builtin.unregistered: llvm.icmp -4: "sle_or_min_commute_logical" has unsupported operation: builtin.unregistered: llvm.select - 1: "sle_swap_or_min" 4: "sle_swap_or_min" has unsupported operation: builtin.unregistered: llvm.icmp @@ -563,8 +491,6 @@ 4: "sle_swap_or_min_commute_logical" has unsupported operation: builtin.unregistered: llvm.icmp -4: "sle_swap_or_min_commute_logical" has unsupported operation: builtin.unregistered: llvm.select - 1: "ule_or_min" 4: "ule_or_min" has unsupported operation: builtin.unregistered: llvm.icmp @@ -579,8 +505,6 @@ 4: "ule_or_min_commute_logical" has unsupported operation: builtin.unregistered: llvm.icmp -4: "ule_or_min_commute_logical" has unsupported operation: builtin.unregistered: llvm.select - 1: "ule_swap_or_min" 4: "ule_swap_or_min" has unsupported operation: builtin.unregistered: llvm.icmp @@ -595,8 +519,6 @@ 4: "ule_swap_or_min_commute_logical" has unsupported operation: builtin.unregistered: llvm.icmp -4: "ule_swap_or_min_commute_logical" has unsupported operation: builtin.unregistered: llvm.select - 1: "slt_and_not_max" 4: "slt_and_not_max" has unsupported operation: builtin.unregistered: llvm.icmp @@ -611,8 +533,6 @@ 4: "slt_and_not_max_commute_logical" has unsupported operation: builtin.unregistered: llvm.icmp -4: "slt_and_not_max_commute_logical" has unsupported operation: builtin.unregistered: llvm.select - 1: "slt_swap_and_not_max" 4: "slt_swap_and_not_max" has unsupported operation: builtin.unregistered: llvm.icmp @@ -627,8 +547,6 @@ 4: "slt_swap_and_not_max_commute_logical" has unsupported operation: builtin.unregistered: llvm.icmp -4: "slt_swap_and_not_max_commute_logical" has unsupported operation: builtin.unregistered: llvm.select - 1: "ult_and_not_max" 4: "ult_and_not_max" has unsupported operation: builtin.unregistered: llvm.icmp @@ -643,8 +561,6 @@ 4: "ult_and_not_max_commute_logical" has unsupported operation: builtin.unregistered: llvm.icmp -4: "ult_and_not_max_commute_logical" has unsupported operation: builtin.unregistered: llvm.select - 1: "ult_swap_and_not_max" 4: "ult_swap_and_not_max" has unsupported operation: builtin.unregistered: llvm.icmp @@ -659,8 +575,6 @@ 4: "ult_swap_and_not_max_commute_logical" has unsupported operation: builtin.unregistered: llvm.icmp -4: "ult_swap_and_not_max_commute_logical" has unsupported operation: builtin.unregistered: llvm.select - 1: "sgt_and_not_min" 4: "sgt_and_not_min" has unsupported operation: builtin.unregistered: llvm.icmp @@ -675,8 +589,6 @@ 4: "sgt_and_not_min_commute_logical" has unsupported operation: builtin.unregistered: llvm.icmp -4: "sgt_and_not_min_commute_logical" has unsupported operation: builtin.unregistered: llvm.select - 1: "sgt_swap_and_not_min" 4: "sgt_swap_and_not_min" has unsupported operation: builtin.unregistered: llvm.icmp @@ -691,8 +603,6 @@ 4: "sgt_swap_and_not_min_commute_logical" has unsupported operation: builtin.unregistered: llvm.icmp -4: "sgt_swap_and_not_min_commute_logical" has unsupported operation: builtin.unregistered: llvm.select - 1: "ugt_and_not_min" 4: "ugt_and_not_min" has unsupported operation: builtin.unregistered: llvm.icmp @@ -707,8 +617,6 @@ 4: "ugt_and_not_min_commute_logical" has unsupported operation: builtin.unregistered: llvm.icmp -4: "ugt_and_not_min_commute_logical" has unsupported operation: builtin.unregistered: llvm.select - 1: "ugt_swap_and_not_min" 4: "ugt_swap_and_not_min" has unsupported operation: builtin.unregistered: llvm.icmp @@ -723,8 +631,6 @@ 4: "ugt_swap_and_not_min_commute_logical" has unsupported operation: builtin.unregistered: llvm.icmp -4: "ugt_swap_and_not_min_commute_logical" has unsupported operation: builtin.unregistered: llvm.select - 1: "slt_or_not_max" 4: "slt_or_not_max" has unsupported operation: builtin.unregistered: llvm.icmp diff --git a/SSA/Projects/InstCombine/tests/logs/and-or-icmp-nullptr.txt b/SSA/Projects/InstCombine/tests/logs/and-or-icmp-nullptr.txt index cccfc505a..82b02177c 100644 --- a/SSA/Projects/InstCombine/tests/logs/and-or-icmp-nullptr.txt +++ b/SSA/Projects/InstCombine/tests/logs/and-or-icmp-nullptr.txt @@ -12,8 +12,6 @@ 4: "ugt_and_min_logical" has unsupported operation after optimization: builtin.unregistered: llvm.icmp -4: "ugt_and_min_logical" has unsupported operation after optimization: builtin.unregistered: llvm.select - 1: "ugt_and_min_commute" 4: "ugt_and_min_commute" has unsupported operation after optimization: llvm.mlir.zero @@ -28,8 +26,6 @@ 4: "ugt_and_min_commute_logical" has unsupported operation after optimization: builtin.unregistered: llvm.icmp -4: "ugt_and_min_commute_logical" has unsupported operation after optimization: builtin.unregistered: llvm.select - 1: "ugt_swap_and_min" 4: "ugt_swap_and_min" has unsupported operation after optimization: llvm.mlir.zero @@ -44,8 +40,6 @@ 4: "ugt_swap_and_min_logical" has unsupported operation after optimization: builtin.unregistered: llvm.icmp -4: "ugt_swap_and_min_logical" has unsupported operation after optimization: builtin.unregistered: llvm.select - 1: "ugt_swap_and_min_commute" 4: "ugt_swap_and_min_commute" has unsupported operation after optimization: llvm.mlir.zero @@ -60,8 +54,6 @@ 4: "ugt_swap_and_min_commute_logical" has unsupported operation after optimization: builtin.unregistered: llvm.icmp -4: "ugt_swap_and_min_commute_logical" has unsupported operation after optimization: builtin.unregistered: llvm.select - 1: "ule_or_not_min" 4: "ule_or_not_min" has unsupported operation after optimization: llvm.mlir.zero @@ -76,8 +68,6 @@ 4: "ule_or_not_min_logical" has unsupported operation after optimization: builtin.unregistered: llvm.icmp -4: "ule_or_not_min_logical" has unsupported operation after optimization: builtin.unregistered: llvm.select - 1: "ule_or_not_min_commute" 4: "ule_or_not_min_commute" has unsupported operation after optimization: llvm.mlir.zero @@ -92,8 +82,6 @@ 4: "ule_or_not_min_commute_logical" has unsupported operation after optimization: builtin.unregistered: llvm.icmp -4: "ule_or_not_min_commute_logical" has unsupported operation after optimization: builtin.unregistered: llvm.select - 1: "ule_swap_or_not_min" 4: "ule_swap_or_not_min" has unsupported operation after optimization: llvm.mlir.zero @@ -108,8 +96,6 @@ 4: "ule_swap_or_not_min_logical" has unsupported operation after optimization: builtin.unregistered: llvm.icmp -4: "ule_swap_or_not_min_logical" has unsupported operation after optimization: builtin.unregistered: llvm.select - 1: "ule_swap_or_not_min_commute" 4: "ule_swap_or_not_min_commute" has unsupported operation after optimization: llvm.mlir.zero @@ -124,8 +110,6 @@ 4: "ule_swap_or_not_min_commute_logical" has unsupported operation after optimization: builtin.unregistered: llvm.icmp -4: "ule_swap_or_not_min_commute_logical" has unsupported operation after optimization: builtin.unregistered: llvm.select - 1: "ule_and_min" 4: "ule_and_min" has unsupported operation: llvm.mlir.zero @@ -182,8 +166,6 @@ 4: "ule_or_min_commute_logical" has unsupported operation: builtin.unregistered: llvm.icmp -4: "ule_or_min_commute_logical" has unsupported operation: builtin.unregistered: llvm.select - 1: "ule_swap_or_min" 4: "ule_swap_or_min" has unsupported operation: builtin.unregistered: llvm.icmp @@ -200,8 +182,6 @@ 4: "ule_swap_or_min_commute_logical" has unsupported operation: builtin.unregistered: llvm.icmp -4: "ule_swap_or_min_commute_logical" has unsupported operation: builtin.unregistered: llvm.select - 1: "ugt_and_not_min" 4: "ugt_and_not_min" has unsupported operation: builtin.unregistered: llvm.icmp @@ -218,8 +198,6 @@ 4: "ugt_and_not_min_commute_logical" has unsupported operation: builtin.unregistered: llvm.icmp -4: "ugt_and_not_min_commute_logical" has unsupported operation: builtin.unregistered: llvm.select - 1: "ugt_swap_and_not_min" 4: "ugt_swap_and_not_min" has unsupported operation: builtin.unregistered: llvm.icmp @@ -236,8 +214,6 @@ 4: "ugt_swap_and_not_min_commute_logical" has unsupported operation: builtin.unregistered: llvm.icmp -4: "ugt_swap_and_not_min_commute_logical" has unsupported operation: builtin.unregistered: llvm.select - 1: "ugt_or_not_min" 4: "ugt_or_not_min" has unsupported operation: llvm.mlir.zero @@ -362,5 +338,3 @@ 4: "slt_and_min_logical" has unsupported operation: builtin.unregistered: llvm.icmp -4: "slt_and_min_logical" has unsupported operation: builtin.unregistered: llvm.select - diff --git a/SSA/Projects/InstCombine/tests/logs/and-or-icmps.txt b/SSA/Projects/InstCombine/tests/logs/and-or-icmps.txt index 59593d6e5..44516edeb 100644 --- a/SSA/Projects/InstCombine/tests/logs/and-or-icmps.txt +++ b/SSA/Projects/InstCombine/tests/logs/and-or-icmps.txt @@ -24,8 +24,6 @@ 4: "PR2330_logical" has unsupported operation: builtin.unregistered: llvm.icmp -4: "PR2330_logical" has unsupported operation: builtin.unregistered: llvm.select - 1: "or_eq_with_one_bit_diff_constants1" 4: "or_eq_with_one_bit_diff_constants1" has unsupported operation: builtin.unregistered: llvm.icmp @@ -189,8 +187,6 @@ 4: "substitute_constant_and_eq_eq_logical" has unsupported operation: builtin.unregistered: llvm.icmp -4: "substitute_constant_and_eq_eq_logical" has unsupported operation: builtin.unregistered: llvm.select - 1: "substitute_constant_and_eq_eq_commute" 4: "substitute_constant_and_eq_eq_commute" has unsupported operation: builtin.unregistered: llvm.icmp @@ -221,8 +217,6 @@ 4: "substitute_constant_and_eq_ne_vec_logical" has unsupported operation: builtin.unregistered: llvm.icmp -4: "substitute_constant_and_eq_ne_vec_logical" has unsupported operation: builtin.unregistered: llvm.select - 1: "substitute_constant_and_eq_sgt_use" 4: "substitute_constant_and_eq_sgt_use" has unsupported operation: builtin.unregistered: llvm.icmp @@ -295,8 +289,6 @@ 4: "substitute_constant_or_ne_swap_sle_logical" has unsupported operation: builtin.unregistered: llvm.icmp -4: "substitute_constant_or_ne_swap_sle_logical" has unsupported operation: builtin.unregistered: llvm.select - 1: "substitute_constant_or_ne_uge_commute" 4: "substitute_constant_or_ne_uge_commute" has unsupported operation: builtin.unregistered: llvm.icmp @@ -346,8 +338,6 @@ 4: "substitute_constant_or_ne_slt_swap_vec_logical" has unsupported operation: builtin.unregistered: llvm.icmp -4: "substitute_constant_or_ne_slt_swap_vec_logical" has unsupported operation: builtin.unregistered: llvm.select - 1: "substitute_constant_or_eq_swap_ne" 4: "substitute_constant_or_eq_swap_ne" has unsupported operation: builtin.unregistered: llvm.icmp @@ -358,8 +348,6 @@ 4: "substitute_constant_or_eq_swap_ne_logical" has unsupported operation: builtin.unregistered: llvm.icmp -4: "substitute_constant_or_eq_swap_ne_logical" has unsupported operation: builtin.unregistered: llvm.select - 1: "substitute_constant_or_ne_sge_use" 4: "substitute_constant_or_ne_sge_use" has unsupported operation: builtin.unregistered: llvm.icmp @@ -470,15 +458,11 @@ 4: "bitwise_and_logical_and_icmps" has unsupported operation: builtin.unregistered: llvm.icmp -4: "bitwise_and_logical_and_icmps" has unsupported operation: builtin.unregistered: llvm.select - 1: "bitwise_and_logical_and_icmps_comm1" 4: "bitwise_and_logical_and_icmps_comm1" has unsupported operation: builtin.unregistered: llvm.icmp 4: "bitwise_and_logical_and_icmps_comm1" has unsupported operation: builtin.unregistered: llvm.icmp -4: "bitwise_and_logical_and_icmps_comm1" has unsupported operation: builtin.unregistered: llvm.select - 1: "bitwise_and_logical_and_icmps_comm2" 4: "bitwise_and_logical_and_icmps_comm2" has unsupported operation: builtin.unregistered: llvm.icmp @@ -486,15 +470,11 @@ 4: "bitwise_and_logical_and_icmps_comm2" has unsupported operation: builtin.unregistered: llvm.icmp -4: "bitwise_and_logical_and_icmps_comm2" has unsupported operation: builtin.unregistered: llvm.select - 1: "bitwise_and_logical_and_icmps_comm3" 4: "bitwise_and_logical_and_icmps_comm3" has unsupported operation: builtin.unregistered: llvm.icmp 4: "bitwise_and_logical_and_icmps_comm3" has unsupported operation: builtin.unregistered: llvm.icmp -4: "bitwise_and_logical_and_icmps_comm3" has unsupported operation: builtin.unregistered: llvm.select - 1: "logical_and_bitwise_and_icmps" 4: "logical_and_bitwise_and_icmps" has unsupported operation: builtin.unregistered: llvm.icmp @@ -502,8 +482,6 @@ 4: "logical_and_bitwise_and_icmps" has unsupported operation: builtin.unregistered: llvm.icmp -4: "logical_and_bitwise_and_icmps" has unsupported operation: builtin.unregistered: llvm.select - 1: "logical_and_bitwise_and_icmps_comm1" 4: "logical_and_bitwise_and_icmps_comm1" has unsupported operation: builtin.unregistered: llvm.icmp @@ -511,8 +489,6 @@ 4: "logical_and_bitwise_and_icmps_comm1" has unsupported operation: builtin.unregistered: llvm.icmp -4: "logical_and_bitwise_and_icmps_comm1" has unsupported operation: builtin.unregistered: llvm.select - 1: "logical_and_bitwise_and_icmps_comm2" 4: "logical_and_bitwise_and_icmps_comm2" has unsupported operation: builtin.unregistered: llvm.icmp @@ -520,8 +496,6 @@ 4: "logical_and_bitwise_and_icmps_comm2" has unsupported operation: builtin.unregistered: llvm.icmp -4: "logical_and_bitwise_and_icmps_comm2" has unsupported operation: builtin.unregistered: llvm.select - 1: "logical_and_bitwise_and_icmps_comm3" 4: "logical_and_bitwise_and_icmps_comm3" has unsupported operation: builtin.unregistered: llvm.icmp @@ -529,8 +503,6 @@ 4: "logical_and_bitwise_and_icmps_comm3" has unsupported operation: builtin.unregistered: llvm.icmp -4: "logical_and_bitwise_and_icmps_comm3" has unsupported operation: builtin.unregistered: llvm.select - 1: "logical_and_logical_and_icmps" 4: "logical_and_logical_and_icmps" has unsupported operation: builtin.unregistered: llvm.icmp @@ -538,10 +510,6 @@ 4: "logical_and_logical_and_icmps" has unsupported operation: builtin.unregistered: llvm.icmp -4: "logical_and_logical_and_icmps" has unsupported operation: builtin.unregistered: llvm.select - -4: "logical_and_logical_and_icmps" has unsupported operation: builtin.unregistered: llvm.select - 1: "logical_and_logical_and_icmps_comm1" 4: "logical_and_logical_and_icmps_comm1" has unsupported operation: builtin.unregistered: llvm.icmp @@ -549,10 +517,6 @@ 4: "logical_and_logical_and_icmps_comm1" has unsupported operation: builtin.unregistered: llvm.icmp -4: "logical_and_logical_and_icmps_comm1" has unsupported operation: builtin.unregistered: llvm.select - -4: "logical_and_logical_and_icmps_comm1" has unsupported operation: builtin.unregistered: llvm.select - 1: "logical_and_logical_and_icmps_comm2" 4: "logical_and_logical_and_icmps_comm2" has unsupported operation: builtin.unregistered: llvm.icmp @@ -560,17 +524,11 @@ 4: "logical_and_logical_and_icmps_comm2" has unsupported operation: builtin.unregistered: llvm.icmp -4: "logical_and_logical_and_icmps_comm2" has unsupported operation: builtin.unregistered: llvm.select - -4: "logical_and_logical_and_icmps_comm2" has unsupported operation: builtin.unregistered: llvm.select - 1: "logical_and_logical_and_icmps_comm3" 4: "logical_and_logical_and_icmps_comm3" has unsupported operation: builtin.unregistered: llvm.icmp 4: "logical_and_logical_and_icmps_comm3" has unsupported operation: builtin.unregistered: llvm.icmp -4: "logical_and_logical_and_icmps_comm3" has unsupported operation: builtin.unregistered: llvm.select - 1: "bitwise_or_bitwise_or_icmps" 4: "bitwise_or_bitwise_or_icmps" has unsupported operation: builtin.unregistered: llvm.icmp @@ -596,15 +554,11 @@ 4: "bitwise_or_logical_or_icmps" has unsupported operation: builtin.unregistered: llvm.icmp -4: "bitwise_or_logical_or_icmps" has unsupported operation: builtin.unregistered: llvm.select - 1: "bitwise_or_logical_or_icmps_comm1" 4: "bitwise_or_logical_or_icmps_comm1" has unsupported operation: builtin.unregistered: llvm.icmp 4: "bitwise_or_logical_or_icmps_comm1" has unsupported operation: builtin.unregistered: llvm.icmp -4: "bitwise_or_logical_or_icmps_comm1" has unsupported operation: builtin.unregistered: llvm.select - 1: "bitwise_or_logical_or_icmps_comm2" 4: "bitwise_or_logical_or_icmps_comm2" has unsupported operation: builtin.unregistered: llvm.icmp @@ -612,15 +566,11 @@ 4: "bitwise_or_logical_or_icmps_comm2" has unsupported operation: builtin.unregistered: llvm.icmp -4: "bitwise_or_logical_or_icmps_comm2" has unsupported operation: builtin.unregistered: llvm.select - 1: "bitwise_or_logical_or_icmps_comm3" 4: "bitwise_or_logical_or_icmps_comm3" has unsupported operation: builtin.unregistered: llvm.icmp 4: "bitwise_or_logical_or_icmps_comm3" has unsupported operation: builtin.unregistered: llvm.icmp -4: "bitwise_or_logical_or_icmps_comm3" has unsupported operation: builtin.unregistered: llvm.select - 1: "logical_or_bitwise_or_icmps" 4: "logical_or_bitwise_or_icmps" has unsupported operation: builtin.unregistered: llvm.icmp @@ -628,8 +578,6 @@ 4: "logical_or_bitwise_or_icmps" has unsupported operation: builtin.unregistered: llvm.icmp -4: "logical_or_bitwise_or_icmps" has unsupported operation: builtin.unregistered: llvm.select - 1: "logical_or_bitwise_or_icmps_comm1" 4: "logical_or_bitwise_or_icmps_comm1" has unsupported operation: builtin.unregistered: llvm.icmp @@ -637,8 +585,6 @@ 4: "logical_or_bitwise_or_icmps_comm1" has unsupported operation: builtin.unregistered: llvm.icmp -4: "logical_or_bitwise_or_icmps_comm1" has unsupported operation: builtin.unregistered: llvm.select - 1: "logical_or_bitwise_or_icmps_comm2" 4: "logical_or_bitwise_or_icmps_comm2" has unsupported operation: builtin.unregistered: llvm.icmp @@ -646,8 +592,6 @@ 4: "logical_or_bitwise_or_icmps_comm2" has unsupported operation: builtin.unregistered: llvm.icmp -4: "logical_or_bitwise_or_icmps_comm2" has unsupported operation: builtin.unregistered: llvm.select - 1: "logical_or_bitwise_or_icmps_comm3" 4: "logical_or_bitwise_or_icmps_comm3" has unsupported operation: builtin.unregistered: llvm.icmp @@ -655,8 +599,6 @@ 4: "logical_or_bitwise_or_icmps_comm3" has unsupported operation: builtin.unregistered: llvm.icmp -4: "logical_or_bitwise_or_icmps_comm3" has unsupported operation: builtin.unregistered: llvm.select - 1: "logical_or_logical_or_icmps" 4: "logical_or_logical_or_icmps" has unsupported operation: builtin.unregistered: llvm.icmp @@ -664,10 +606,6 @@ 4: "logical_or_logical_or_icmps" has unsupported operation: builtin.unregistered: llvm.icmp -4: "logical_or_logical_or_icmps" has unsupported operation: builtin.unregistered: llvm.select - -4: "logical_or_logical_or_icmps" has unsupported operation: builtin.unregistered: llvm.select - 1: "logical_or_logical_or_icmps_comm1" 4: "logical_or_logical_or_icmps_comm1" has unsupported operation: builtin.unregistered: llvm.icmp @@ -675,10 +613,6 @@ 4: "logical_or_logical_or_icmps_comm1" has unsupported operation: builtin.unregistered: llvm.icmp -4: "logical_or_logical_or_icmps_comm1" has unsupported operation: builtin.unregistered: llvm.select - -4: "logical_or_logical_or_icmps_comm1" has unsupported operation: builtin.unregistered: llvm.select - 1: "logical_or_logical_or_icmps_comm2" 4: "logical_or_logical_or_icmps_comm2" has unsupported operation: builtin.unregistered: llvm.icmp @@ -686,54 +620,34 @@ 4: "logical_or_logical_or_icmps_comm2" has unsupported operation: builtin.unregistered: llvm.icmp -4: "logical_or_logical_or_icmps_comm2" has unsupported operation: builtin.unregistered: llvm.select - -4: "logical_or_logical_or_icmps_comm2" has unsupported operation: builtin.unregistered: llvm.select - 1: "logical_or_logical_or_icmps_comm3" 4: "logical_or_logical_or_icmps_comm3" has unsupported operation: builtin.unregistered: llvm.icmp 4: "logical_or_logical_or_icmps_comm3" has unsupported operation: builtin.unregistered: llvm.icmp -4: "logical_or_logical_or_icmps_comm3" has unsupported operation: builtin.unregistered: llvm.select - 1: "bitwise_and_logical_and_masked_icmp_asymmetric" 4: "bitwise_and_logical_and_masked_icmp_asymmetric" has unsupported operation: builtin.unregistered: llvm.icmp -4: "bitwise_and_logical_and_masked_icmp_asymmetric" has unsupported operation: builtin.unregistered: llvm.select - 1: "bitwise_and_logical_and_masked_icmp_allzeros" 4: "bitwise_and_logical_and_masked_icmp_allzeros" has unsupported operation: builtin.unregistered: llvm.icmp -4: "bitwise_and_logical_and_masked_icmp_allzeros" has unsupported operation: builtin.unregistered: llvm.select - 1: "bitwise_and_logical_and_masked_icmp_allzeros_poison1" 4: "bitwise_and_logical_and_masked_icmp_allzeros_poison1" has unsupported operation: builtin.unregistered: llvm.icmp -4: "bitwise_and_logical_and_masked_icmp_allzeros_poison1" has unsupported operation: builtin.unregistered: llvm.select - 1: "bitwise_and_logical_and_masked_icmp_allzeros_poison2" 4: "bitwise_and_logical_and_masked_icmp_allzeros_poison2" has unsupported operation: builtin.unregistered: llvm.icmp -4: "bitwise_and_logical_and_masked_icmp_allzeros_poison2" has unsupported operation: builtin.unregistered: llvm.select - 4: "bitwise_and_logical_and_masked_icmp_allzeros_poison2" has unsupported operation: builtin.unregistered: llvm.icmp 1: "bitwise_and_logical_and_masked_icmp_allones" 4: "bitwise_and_logical_and_masked_icmp_allones" has unsupported operation: builtin.unregistered: llvm.icmp -4: "bitwise_and_logical_and_masked_icmp_allones" has unsupported operation: builtin.unregistered: llvm.select - 1: "bitwise_and_logical_and_masked_icmp_allones_poison1" 4: "bitwise_and_logical_and_masked_icmp_allones_poison1" has unsupported operation: builtin.unregistered: llvm.icmp -4: "bitwise_and_logical_and_masked_icmp_allones_poison1" has unsupported operation: builtin.unregistered: llvm.select - 1: "bitwise_and_logical_and_masked_icmp_allones_poison2" 4: "bitwise_and_logical_and_masked_icmp_allones_poison2" has unsupported operation: builtin.unregistered: llvm.icmp -4: "bitwise_and_logical_and_masked_icmp_allones_poison2" has unsupported operation: builtin.unregistered: llvm.select - 4: "bitwise_and_logical_and_masked_icmp_allones_poison2" has unsupported operation: builtin.unregistered: llvm.icmp 1: "samesign" @@ -957,8 +871,6 @@ 1: "icmp_slt_0_and_icmp_sge_neg1_i64_fail" 4: "icmp_slt_0_and_icmp_sge_neg1_i64_fail" has unsupported operation: builtin.unregistered: llvm.icmp -4: "icmp_slt_0_and_icmp_sge_neg1_i64_fail" has unsupported operation: builtin.unregistered: llvm.select - 1: "icmp_slt_0_and_icmp_sge_neg1_i32x2" 4: "icmp_slt_0_and_icmp_sge_neg1_i32x2" has unsupported operation: builtin.unregistered: llvm.icmp @@ -998,8 +910,6 @@ 1: "icmp_slt_0_and_icmp_sge_neg2_i32_multiuse2" 4: "icmp_slt_0_and_icmp_sge_neg2_i32_multiuse2" has unsupported operation: builtin.unregistered: llvm.icmp -4: "icmp_slt_0_and_icmp_sge_neg2_i32_multiuse2" has unsupported operation: builtin.unregistered: llvm.select - 4: "icmp_slt_0_and_icmp_sge_neg2_i32_multiuse2" has unsupported operation: llvm.call 1: "icmp_slt_0_and_icmp_sge_neg2_i32_multiuse_fail0" @@ -1021,8 +931,6 @@ 1: "icmp_x_slt_0_and_icmp_y_ne_neg2_i32_multiuse_fail2" 4: "icmp_x_slt_0_and_icmp_y_ne_neg2_i32_multiuse_fail2" has unsupported operation: builtin.unregistered: llvm.icmp -4: "icmp_x_slt_0_and_icmp_y_ne_neg2_i32_multiuse_fail2" has unsupported operation: builtin.unregistered: llvm.select - 4: "icmp_x_slt_0_and_icmp_y_ne_neg2_i32_multiuse_fail2" has unsupported operation: llvm.call 1: "icmp_slt_0_or_icmp_eq_100_i32_multiuse_fail3" @@ -1075,31 +983,19 @@ 1: "logical_and_icmps1" 4: "logical_and_icmps1" has unsupported operation: builtin.unregistered: llvm.icmp -4: "logical_and_icmps1" has unsupported operation: builtin.unregistered: llvm.select - 1: "logical_and_icmps2" 4: "logical_and_icmps2" has unsupported operation after optimization: builtin.unregistered: llvm.icmp -4: "logical_and_icmps2" has unsupported operation after optimization: builtin.unregistered: llvm.select - 4: "logical_and_icmps2" has unsupported operation after optimization: builtin.unregistered: llvm.icmp -4: "logical_and_icmps2" has unsupported operation after optimization: builtin.unregistered: llvm.select - 1: "logical_and_icmps_vec1" 4: "logical_and_icmps_vec1" has unsupported operation: builtin.unregistered: llvm.icmp -4: "logical_and_icmps_vec1" has unsupported operation: builtin.unregistered: llvm.select - 1: "logical_and_icmps_fail1" 4: "logical_and_icmps_fail1" has unsupported operation: builtin.unregistered: llvm.icmp -4: "logical_and_icmps_fail1" has unsupported operation: builtin.unregistered: llvm.select - 4: "logical_and_icmps_fail1" has unsupported operation: builtin.unregistered: llvm.icmp -4: "logical_and_icmps_fail1" has unsupported operation: builtin.unregistered: llvm.select - 1: "icmp_eq_or_z_or_pow2orz" 4: "icmp_eq_or_z_or_pow2orz" has unsupported operation: builtin.unregistered: llvm.icmp @@ -1118,8 +1014,6 @@ 4: "icmp_eq_or_z_or_pow2orz_fail_logic_or" has unsupported operation: builtin.unregistered: llvm.icmp -4: "icmp_eq_or_z_or_pow2orz_fail_logic_or" has unsupported operation: builtin.unregistered: llvm.select - 1: "icmp_ne_and_z_and_pow2orz" 4: "icmp_ne_and_z_and_pow2orz" has unsupported operation: builtin.unregistered: llvm.icmp @@ -1138,8 +1032,6 @@ 4: "icmp_ne_and_z_and_pow2orz_fail_logic_and" has unsupported operation: builtin.unregistered: llvm.icmp -4: "icmp_ne_and_z_and_pow2orz_fail_logic_and" has unsupported operation: builtin.unregistered: llvm.select - 1: "icmp_eq_or_z_or_pow2orz_fail_not_pow2" 4: "icmp_eq_or_z_or_pow2orz_fail_not_pow2" has unsupported operation: builtin.unregistered: llvm.icmp diff --git a/SSA/Projects/InstCombine/tests/logs/and-or-implied-cond-not.txt b/SSA/Projects/InstCombine/tests/logs/and-or-implied-cond-not.txt index 93165e740..cdce3ef17 100644 --- a/SSA/Projects/InstCombine/tests/logs/and-or-implied-cond-not.txt +++ b/SSA/Projects/InstCombine/tests/logs/and-or-implied-cond-not.txt @@ -20,8 +20,6 @@ 1: "test_imply_not2" 4: "test_imply_not2" has unsupported operation: builtin.unregistered: llvm.icmp -4: "test_imply_not2" has unsupported operation: builtin.unregistered: llvm.select - 1: "test_imply_not3" 4: "test_imply_not3" has unsupported operation: builtin.unregistered: llvm.icmp @@ -29,8 +27,6 @@ 4: "test_imply_not3" has unsupported operation: builtin.unregistered: llvm.icmp -4: "test_imply_not3" has unsupported operation: builtin.unregistered: llvm.select - 1: "func1" 5: "func1" is empty diff --git a/SSA/Projects/InstCombine/tests/logs/and-or-not.txt b/SSA/Projects/InstCombine/tests/logs/and-or-not.txt index b45d37896..69856e3d3 100644 --- a/SSA/Projects/InstCombine/tests/logs/and-or-not.txt +++ b/SSA/Projects/InstCombine/tests/logs/and-or-not.txt @@ -38,7 +38,7 @@ 2: llvm.return 1: "and_to_xor1_vec" -"and_to_xor1_vec" contains vectors which are unsupported +8: "and_to_xor1_vec" contains vectors which are unsupported 1: "and_to_nxor1" 4: "and_to_nxor1" has unsupported operation: builtin.unregistered: llvm.fptosi @@ -252,7 +252,7 @@ 2: llvm.return 1: "simplify_or_common_op_commute3" -"simplify_or_common_op_commute3" contains vectors which are unsupported +8: "simplify_or_common_op_commute3" contains vectors which are unsupported 1: "simplify_and_common_op_commute0" 4: "simplify_and_common_op_commute0" has unsupported operation: llvm.call @@ -278,7 +278,7 @@ 2: llvm.return 1: "simplify_and_common_op_commute3" -"simplify_and_common_op_commute3" contains vectors which are unsupported +8: "simplify_and_common_op_commute3" contains vectors which are unsupported 1: "simplify_and_common_op_use1" 4: "simplify_and_common_op_use1" has unsupported operation: llvm.call @@ -313,5 +313,5 @@ 2: llvm.return 1: "reduce_xor_common_op_commute3" -"reduce_xor_common_op_commute3" contains vectors which are unsupported +8: "reduce_xor_common_op_commute3" contains vectors which are unsupported diff --git a/SSA/Projects/InstCombine/tests/logs/and-xor-or.txt b/SSA/Projects/InstCombine/tests/logs/and-xor-or.txt index 57a92c12a..bdadc7798 100644 --- a/SSA/Projects/InstCombine/tests/logs/and-xor-or.txt +++ b/SSA/Projects/InstCombine/tests/logs/and-xor-or.txt @@ -8,27 +8,40 @@ 5: "use_i1" is empty 1: "and_xor_common_op" -4: "and_xor_common_op" has unsupported operation: llvm.udiv - -4: "and_xor_common_op" has unsupported operation: llvm.udiv +2: llvm.func +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.udiv +2: llvm.udiv +2: llvm.xor +2: llvm.and +2: llvm.return 1: "and_xor_common_op_commute1" -4: "and_xor_common_op_commute1" has unsupported operation: llvm.udiv - -4: "and_xor_common_op_commute1" has unsupported operation: llvm.udiv +2: llvm.func +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.udiv +2: llvm.udiv +2: llvm.xor +2: llvm.and +2: llvm.return 1: "and_xor_common_op_commute2" -4: "and_xor_common_op_commute2" has unsupported operation: llvm.udiv - -4: "and_xor_common_op_commute2" has unsupported operation: llvm.udiv +2: llvm.func +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.udiv +2: llvm.udiv +2: llvm.xor +2: llvm.and +2: llvm.return 1: "and_xor_common_op_commute3" -4: "and_xor_common_op_commute3" has unsupported operation: llvm.udiv - -4: "and_xor_common_op_commute3" has unsupported operation: llvm.udiv +8: "and_xor_common_op_commute3" contains vectors which are unsupported 1: "and_xor_common_op_constant" -"and_xor_common_op_constant" contains vectors which are unsupported +8: "and_xor_common_op_constant" contains vectors which are unsupported 1: "and_xor_not_common_op" 2: llvm.func @@ -70,44 +83,92 @@ 2: llvm.return 1: "and_xor_or1" -4: "and_xor_or1" has unsupported operation: llvm.udiv - -4: "and_xor_or1" has unsupported operation: llvm.udiv +2: llvm.func +2: llvm.mlir.constant +2: llvm.udiv +2: llvm.udiv +2: llvm.udiv +2: llvm.and +2: llvm.xor +2: llvm.or +2: llvm.return 1: "and_xor_or2" -4: "and_xor_or2" has unsupported operation: llvm.udiv - -4: "and_xor_or2" has unsupported operation: llvm.udiv +2: llvm.func +2: llvm.mlir.constant +2: llvm.udiv +2: llvm.udiv +2: llvm.udiv +2: llvm.and +2: llvm.xor +2: llvm.or +2: llvm.return 1: "and_xor_or3" -4: "and_xor_or3" has unsupported operation: llvm.udiv - -4: "and_xor_or3" has unsupported operation: llvm.udiv +2: llvm.func +2: llvm.mlir.constant +2: llvm.udiv +2: llvm.udiv +2: llvm.udiv +2: llvm.and +2: llvm.xor +2: llvm.or +2: llvm.return 1: "and_xor_or4" -4: "and_xor_or4" has unsupported operation: llvm.udiv - -4: "and_xor_or4" has unsupported operation: llvm.udiv +2: llvm.func +2: llvm.mlir.constant +2: llvm.udiv +2: llvm.udiv +2: llvm.udiv +2: llvm.and +2: llvm.xor +2: llvm.or +2: llvm.return 1: "and_xor_or5" -4: "and_xor_or5" has unsupported operation: llvm.udiv - -4: "and_xor_or5" has unsupported operation: llvm.udiv +2: llvm.func +2: llvm.mlir.constant +2: llvm.udiv +2: llvm.udiv +2: llvm.udiv +2: llvm.and +2: llvm.xor +2: llvm.or +2: llvm.return 1: "and_xor_or6" -4: "and_xor_or6" has unsupported operation: llvm.udiv - -4: "and_xor_or6" has unsupported operation: llvm.udiv +2: llvm.func +2: llvm.mlir.constant +2: llvm.udiv +2: llvm.udiv +2: llvm.udiv +2: llvm.and +2: llvm.xor +2: llvm.or +2: llvm.return 1: "and_xor_or7" -4: "and_xor_or7" has unsupported operation: llvm.udiv - -4: "and_xor_or7" has unsupported operation: llvm.udiv +2: llvm.func +2: llvm.mlir.constant +2: llvm.udiv +2: llvm.udiv +2: llvm.udiv +2: llvm.and +2: llvm.xor +2: llvm.or +2: llvm.return 1: "and_xor_or8" -4: "and_xor_or8" has unsupported operation: llvm.udiv - -4: "and_xor_or8" has unsupported operation: llvm.udiv +2: llvm.func +2: llvm.mlir.constant +2: llvm.udiv +2: llvm.udiv +2: llvm.udiv +2: llvm.and +2: llvm.xor +2: llvm.or +2: llvm.return 1: "and_xor_or_negative" 7: "and_xor_or_negative" is unchanged by InstCombine @@ -212,19 +273,11 @@ 4: "sext_or_chain_two_uses1" has unsupported operation: builtin.unregistered: llvm.sext -4: "sext_or_chain_two_uses1" has unsupported operation: llvm.udiv - -4: "sext_or_chain_two_uses1" has unsupported operation: llvm.udiv - 1: "sext_or_chain_two_uses2" 4: "sext_or_chain_two_uses2" has unsupported operation: builtin.unregistered: llvm.sext 4: "sext_or_chain_two_uses2" has unsupported operation: builtin.unregistered: llvm.sext -4: "sext_or_chain_two_uses2" has unsupported operation: llvm.udiv - -4: "sext_or_chain_two_uses2" has unsupported operation: llvm.udiv - 1: "not_and_and_not" 2: llvm.func 2: llvm.mlir.constant @@ -237,7 +290,7 @@ 2: llvm.return 1: "not_and_and_not_4i64" -"not_and_and_not_4i64" contains vectors which are unsupported +8: "not_and_and_not_4i64" contains vectors which are unsupported 1: "not_and_and_not_commute1" 2: llvm.func @@ -266,7 +319,7 @@ 2: llvm.return 1: "not_or_or_not_2i6" -"not_or_or_not_2i6" contains vectors which are unsupported +8: "not_or_or_not_2i6" contains vectors which are unsupported 1: "not_or_or_not_commute1" 2: llvm.func @@ -1557,7 +1610,7 @@ 2: llvm.return 1: "and_orn_xor_commute1" -"and_orn_xor_commute1" contains vectors which are unsupported +8: "and_orn_xor_commute1" contains vectors which are unsupported 1: "and_orn_xor_commute2" 4: "and_orn_xor_commute2" has unsupported operation: llvm.call @@ -1701,25 +1754,25 @@ 2: llvm.return 1: "canonicalize_logic_first_or_vector0" -"canonicalize_logic_first_or_vector0" contains vectors which are unsupported +8: "canonicalize_logic_first_or_vector0" contains vectors which are unsupported 1: "canonicalize_logic_first_or_vector0_nsw" -"canonicalize_logic_first_or_vector0_nsw" contains vectors which are unsupported +8: "canonicalize_logic_first_or_vector0_nsw" contains vectors which are unsupported 1: "canonicalize_logic_first_or_vector0_nswnuw" -"canonicalize_logic_first_or_vector0_nswnuw" contains vectors which are unsupported +8: "canonicalize_logic_first_or_vector0_nswnuw" contains vectors which are unsupported 1: "canonicalize_logic_first_or_vector1" -"canonicalize_logic_first_or_vector1" contains vectors which are unsupported +8: "canonicalize_logic_first_or_vector1" contains vectors which are unsupported 1: "canonicalize_logic_first_or_vector1_nsw" -"canonicalize_logic_first_or_vector1_nsw" contains vectors which are unsupported +8: "canonicalize_logic_first_or_vector1_nsw" contains vectors which are unsupported 1: "canonicalize_logic_first_or_vector1_nswnuw" -"canonicalize_logic_first_or_vector1_nswnuw" contains vectors which are unsupported +8: "canonicalize_logic_first_or_vector1_nswnuw" contains vectors which are unsupported 1: "canonicalize_logic_first_or_vector2" -"canonicalize_logic_first_or_vector2" contains vectors which are unsupported +8: "canonicalize_logic_first_or_vector2" contains vectors which are unsupported 1: "canonicalize_logic_first_or_mult_use1" 4: "canonicalize_logic_first_or_mult_use1" has unsupported operation: llvm.call @@ -1752,22 +1805,22 @@ 2: llvm.return 1: "canonicalize_logic_first_and_vector0" -"canonicalize_logic_first_and_vector0" contains vectors which are unsupported +8: "canonicalize_logic_first_and_vector0" contains vectors which are unsupported 1: "canonicalize_logic_first_and_vector0_nsw" -"canonicalize_logic_first_and_vector0_nsw" contains vectors which are unsupported +8: "canonicalize_logic_first_and_vector0_nsw" contains vectors which are unsupported 1: "canonicalize_logic_first_and_vector0_nswnuw" -"canonicalize_logic_first_and_vector0_nswnuw" contains vectors which are unsupported +8: "canonicalize_logic_first_and_vector0_nswnuw" contains vectors which are unsupported 1: "canonicalize_logic_first_and_vector1" -"canonicalize_logic_first_and_vector1" contains vectors which are unsupported +8: "canonicalize_logic_first_and_vector1" contains vectors which are unsupported 1: "canonicalize_logic_first_and_vector2" -"canonicalize_logic_first_and_vector2" contains vectors which are unsupported +8: "canonicalize_logic_first_and_vector2" contains vectors which are unsupported 1: "canonicalize_logic_first_and_vector3" -"canonicalize_logic_first_and_vector3" contains vectors which are unsupported +8: "canonicalize_logic_first_and_vector3" contains vectors which are unsupported 1: "canonicalize_logic_first_and_mult_use1" 4: "canonicalize_logic_first_and_mult_use1" has unsupported operation: llvm.call @@ -1800,19 +1853,19 @@ 2: llvm.return 1: "canonicalize_logic_first_xor_vector0" -"canonicalize_logic_first_xor_vector0" contains vectors which are unsupported +8: "canonicalize_logic_first_xor_vector0" contains vectors which are unsupported 1: "canonicalize_logic_first_xor_vector0_nsw" -"canonicalize_logic_first_xor_vector0_nsw" contains vectors which are unsupported +8: "canonicalize_logic_first_xor_vector0_nsw" contains vectors which are unsupported 1: "canonicalize_logic_first_xor_vector0_nswnuw" -"canonicalize_logic_first_xor_vector0_nswnuw" contains vectors which are unsupported +8: "canonicalize_logic_first_xor_vector0_nswnuw" contains vectors which are unsupported 1: "canonicalize_logic_first_xor_vector1" -"canonicalize_logic_first_xor_vector1" contains vectors which are unsupported +8: "canonicalize_logic_first_xor_vector1" contains vectors which are unsupported 1: "canonicalize_logic_first_xor_vector2" -"canonicalize_logic_first_xor_vector2" contains vectors which are unsupported +8: "canonicalize_logic_first_xor_vector2" contains vectors which are unsupported 1: "canonicalize_logic_first_xor_mult_use1" 4: "canonicalize_logic_first_xor_mult_use1" has unsupported operation: llvm.call diff --git a/SSA/Projects/InstCombine/tests/logs/and.txt b/SSA/Projects/InstCombine/tests/logs/and.txt index b0d53d1fd..7d5afb266 100644 --- a/SSA/Projects/InstCombine/tests/logs/and.txt +++ b/SSA/Projects/InstCombine/tests/logs/and.txt @@ -70,7 +70,10 @@ 2: llvm.return 1: "test3_logical" -4: "test3_logical" has unsupported operation after optimization: builtin.unregistered: llvm.select +2: llvm.func +2: llvm.mlir.constant +2: builtin.unregistered: llvm.select +2: llvm.return 1: "test4" 2: llvm.func @@ -79,7 +82,11 @@ 2: llvm.return 1: "test4_logical" -4: "test4_logical" has unsupported operation after optimization: builtin.unregistered: llvm.select +2: llvm.func +2: llvm.mlir.constant +2: llvm.mlir.constant +2: builtin.unregistered: llvm.select +2: llvm.return 1: "test5" 2: llvm.func @@ -92,7 +99,10 @@ 2: llvm.return 1: "test6_logical" -4: "test6_logical" has unsupported operation after optimization: builtin.unregistered: llvm.select +2: llvm.func +2: llvm.mlir.constant +2: builtin.unregistered: llvm.select +2: llvm.return 1: "test7" 2: llvm.func @@ -144,8 +154,6 @@ 4: "test13_logical" has unsupported operation after optimization: builtin.unregistered: llvm.icmp -4: "test13_logical" has unsupported operation after optimization: builtin.unregistered: llvm.select - 1: "test14" 4: "test14" has unsupported operation: builtin.unregistered: llvm.icmp @@ -258,10 +266,10 @@ 4: "test30" has unsupported operation: builtin.unregistered: llvm.zext 1: "test31" -4: "test31" has unsupported operation: builtin.unregistered: llvm.select +4: "test31" has unsupported operation after optimization: builtin.unregistered: llvm.zext 1: "and_demanded_bits_splat_vec" -"and_demanded_bits_splat_vec" contains vectors which are unsupported +8: "and_demanded_bits_splat_vec" contains vectors which are unsupported 1: "and_zext_demanded" 4: "and_zext_demanded" has unsupported operation: builtin.unregistered: llvm.zext @@ -297,10 +305,10 @@ 2: llvm.return 1: "test33vec" -"test33vec" contains vectors which are unsupported +8: "test33vec" contains vectors which are unsupported 1: "test33vecb" -"test33vecb" contains vectors which are unsupported +8: "test33vecb" contains vectors which are unsupported 1: "test34" 2: llvm.func @@ -309,7 +317,7 @@ 2: llvm.return 1: "PR24942" -"PR24942" contains vectors which are unsupported +8: "PR24942" contains vectors which are unsupported 1: "test35" 4: "test35" has unsupported operation: builtin.unregistered: llvm.zext @@ -404,13 +412,19 @@ 4: "lowmask_or_zext_commute" has unsupported operation: builtin.unregistered: llvm.zext 1: "test40" -4: "test40" has unsupported operation: builtin.unregistered: llvm.select +2: llvm.func +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.mlir.constant +2: builtin.unregistered: llvm.select +2: llvm.and +2: llvm.return 1: "test40vec" -4: "test40vec" has unsupported operation: builtin.unregistered: llvm.select +8: "test40vec" contains vectors which are unsupported 1: "test40vec2" -4: "test40vec2" has unsupported operation: builtin.unregistered: llvm.select +8: "test40vec2" contains vectors which are unsupported 1: "test41" 4: "test41" has unsupported operation: builtin.unregistered: llvm.cond_br @@ -489,8 +503,6 @@ 4: "and_orn_cmp_1_logical" has unsupported operation: builtin.unregistered: llvm.icmp -4: "and_orn_cmp_1_logical" has unsupported operation: builtin.unregistered: llvm.select - 1: "and_orn_cmp_2" 4: "and_orn_cmp_2" has unsupported operation: builtin.unregistered: llvm.icmp @@ -506,8 +518,6 @@ 4: "and_orn_cmp_3_logical" has unsupported operation: builtin.unregistered: llvm.icmp -4: "and_orn_cmp_3_logical" has unsupported operation: builtin.unregistered: llvm.select - 1: "or_andn_cmp_4" 4: "or_andn_cmp_4" has unsupported operation: builtin.unregistered: llvm.icmp @@ -523,8 +533,6 @@ 4: "andn_or_cmp_1_logical" has unsupported operation: builtin.unregistered: llvm.icmp -4: "andn_or_cmp_1_logical" has unsupported operation: builtin.unregistered: llvm.select - 1: "andn_or_cmp_2" 4: "andn_or_cmp_2" has unsupported operation: builtin.unregistered: llvm.icmp @@ -535,8 +543,6 @@ 4: "andn_or_cmp_2_logical" has unsupported operation: builtin.unregistered: llvm.icmp -4: "andn_or_cmp_2_logical" has unsupported operation: builtin.unregistered: llvm.select - 1: "andn_or_cmp_3" 4: "andn_or_cmp_3" has unsupported operation: builtin.unregistered: llvm.icmp @@ -552,8 +558,6 @@ 4: "andn_or_cmp_4_logical" has unsupported operation: builtin.unregistered: llvm.icmp -4: "andn_or_cmp_4_logical" has unsupported operation: builtin.unregistered: llvm.select - 1: "lowbitmask_casted_shift" 4: "lowbitmask_casted_shift" has unsupported operation: builtin.unregistered: llvm.sext @@ -645,7 +649,7 @@ 2: llvm.return 1: "flip_masked_bit_uniform" -"flip_masked_bit_uniform" contains vectors which are unsupported +8: "flip_masked_bit_uniform" contains vectors which are unsupported 1: "flip_masked_bit_poison" 4: "flip_masked_bit_poison" has unsupported operation: builtin.unregistered: llvm.mlir.poison @@ -657,18 +661,14 @@ 4: "flip_masked_bit_poison" has unsupported operation: builtin.unregistered: llvm.insertelement 1: "flip_masked_bit_nonuniform" -"flip_masked_bit_nonuniform" contains vectors which are unsupported +8: "flip_masked_bit_nonuniform" contains vectors which are unsupported 1: "ashr_bitwidth_mask" 4: "ashr_bitwidth_mask" has unsupported operation: builtin.unregistered: llvm.icmp -4: "ashr_bitwidth_mask" has unsupported operation: builtin.unregistered: llvm.select - 1: "ashr_bitwidth_mask_vec_commute" 4: "ashr_bitwidth_mask_vec_commute" has unsupported operation: builtin.unregistered: llvm.icmp -4: "ashr_bitwidth_mask_vec_commute" has unsupported operation: builtin.unregistered: llvm.select - 1: "ashr_bitwidth_mask_use" 4: "ashr_bitwidth_mask_use" has unsupported operation: llvm.call @@ -681,20 +681,14 @@ 1: "signbit_splat_mask" 4: "signbit_splat_mask" has unsupported operation: builtin.unregistered: llvm.icmp -4: "signbit_splat_mask" has unsupported operation: builtin.unregistered: llvm.select - 1: "signbit_splat_mask_commute" 4: "signbit_splat_mask_commute" has unsupported operation: builtin.unregistered: llvm.icmp -4: "signbit_splat_mask_commute" has unsupported operation: builtin.unregistered: llvm.select - 1: "signbit_splat_mask_use1" 4: "signbit_splat_mask_use1" has unsupported operation: llvm.call 4: "signbit_splat_mask_use1" has unsupported operation: builtin.unregistered: llvm.icmp -4: "signbit_splat_mask_use1" has unsupported operation: builtin.unregistered: llvm.select - 1: "signbit_splat_mask_use2" 4: "signbit_splat_mask_use2" has unsupported operation: builtin.unregistered: llvm.sext @@ -709,20 +703,14 @@ 1: "not_ashr_bitwidth_mask" 4: "not_ashr_bitwidth_mask" has unsupported operation: builtin.unregistered: llvm.icmp -4: "not_ashr_bitwidth_mask" has unsupported operation: builtin.unregistered: llvm.select - 1: "not_ashr_bitwidth_mask_vec_commute" 4: "not_ashr_bitwidth_mask_vec_commute" has unsupported operation: builtin.unregistered: llvm.icmp -4: "not_ashr_bitwidth_mask_vec_commute" has unsupported operation: builtin.unregistered: llvm.select - 1: "not_ashr_bitwidth_mask_use1" 4: "not_ashr_bitwidth_mask_use1" has unsupported operation: llvm.call 4: "not_ashr_bitwidth_mask_use1" has unsupported operation: builtin.unregistered: llvm.icmp -4: "not_ashr_bitwidth_mask_use1" has unsupported operation: builtin.unregistered: llvm.select - 1: "not_ashr_bitwidth_mask_use2" 4: "not_ashr_bitwidth_mask_use2" has unsupported operation: builtin.unregistered: llvm.icmp @@ -730,8 +718,6 @@ 4: "not_ashr_bitwidth_mask_use2" has unsupported operation: llvm.call -4: "not_ashr_bitwidth_mask_use2" has unsupported operation: builtin.unregistered: llvm.select - 1: "not_ashr_not_bitwidth_mask" 2: llvm.func 2: llvm.mlir.constant @@ -753,20 +739,14 @@ 1: "invert_signbit_splat_mask" 4: "invert_signbit_splat_mask" has unsupported operation: builtin.unregistered: llvm.icmp -4: "invert_signbit_splat_mask" has unsupported operation: builtin.unregistered: llvm.select - 1: "invert_signbit_splat_mask_commute" 4: "invert_signbit_splat_mask_commute" has unsupported operation: builtin.unregistered: llvm.icmp -4: "invert_signbit_splat_mask_commute" has unsupported operation: builtin.unregistered: llvm.select - 1: "invert_signbit_splat_mask_use1" 4: "invert_signbit_splat_mask_use1" has unsupported operation: llvm.call 4: "invert_signbit_splat_mask_use1" has unsupported operation: builtin.unregistered: llvm.icmp -4: "invert_signbit_splat_mask_use1" has unsupported operation: builtin.unregistered: llvm.select - 1: "invert_signbit_splat_mask_use2" 4: "invert_signbit_splat_mask_use2" has unsupported operation: builtin.unregistered: llvm.icmp @@ -774,8 +754,6 @@ 4: "invert_signbit_splat_mask_use2" has unsupported operation: llvm.call -4: "invert_signbit_splat_mask_use2" has unsupported operation: builtin.unregistered: llvm.select - 1: "invert_signbit_splat_mask_use3" 4: "invert_signbit_splat_mask_use3" has unsupported operation: builtin.unregistered: llvm.icmp @@ -783,8 +761,6 @@ 4: "invert_signbit_splat_mask_use3" has unsupported operation: llvm.call -4: "invert_signbit_splat_mask_use3" has unsupported operation: builtin.unregistered: llvm.select - 1: "not_invert_signbit_splat_mask1" 4: "not_invert_signbit_splat_mask1" has unsupported operation: builtin.unregistered: llvm.icmp @@ -798,18 +774,12 @@ 1: "shl_lshr_pow2_const_case1" 4: "shl_lshr_pow2_const_case1" has unsupported operation: builtin.unregistered: llvm.icmp -4: "shl_lshr_pow2_const_case1" has unsupported operation: builtin.unregistered: llvm.select - 1: "shl_ashr_pow2_const_case1" 4: "shl_ashr_pow2_const_case1" has unsupported operation: builtin.unregistered: llvm.icmp -4: "shl_ashr_pow2_const_case1" has unsupported operation: builtin.unregistered: llvm.select - 1: "shl_lshr_pow2_const_case1_uniform_vec" 4: "shl_lshr_pow2_const_case1_uniform_vec" has unsupported operation: builtin.unregistered: llvm.icmp -4: "shl_lshr_pow2_const_case1_uniform_vec" has unsupported operation: builtin.unregistered: llvm.select - 1: "shl_lshr_pow2_const_case1_non_uniform_vec" 7: "shl_lshr_pow2_const_case1_non_uniform_vec" is unchanged by InstCombine @@ -819,8 +789,6 @@ 1: "shl_lshr_pow2_const_case1_poison1_vec" 4: "shl_lshr_pow2_const_case1_poison1_vec" has unsupported operation: builtin.unregistered: llvm.icmp -4: "shl_lshr_pow2_const_case1_poison1_vec" has unsupported operation: builtin.unregistered: llvm.select - 1: "shl_lshr_pow2_const_case1_poison2_vec" 4: "shl_lshr_pow2_const_case1_poison2_vec" has unsupported operation: builtin.unregistered: llvm.mlir.poison @@ -834,8 +802,6 @@ 4: "shl_lshr_pow2_const_case1_poison2_vec" has unsupported operation: builtin.unregistered: llvm.icmp -4: "shl_lshr_pow2_const_case1_poison2_vec" has unsupported operation: builtin.unregistered: llvm.select - 1: "shl_lshr_pow2_const_case1_poison3_vec" 4: "shl_lshr_pow2_const_case1_poison3_vec" has unsupported operation: builtin.unregistered: llvm.mlir.poison @@ -850,13 +816,9 @@ 1: "shl_lshr_pow2_const_case2" 4: "shl_lshr_pow2_const_case2" has unsupported operation: builtin.unregistered: llvm.icmp -4: "shl_lshr_pow2_const_case2" has unsupported operation: builtin.unregistered: llvm.select - 1: "shl_lshr_pow2_not_const_case2" 4: "shl_lshr_pow2_not_const_case2" has unsupported operation: builtin.unregistered: llvm.icmp -4: "shl_lshr_pow2_not_const_case2" has unsupported operation: builtin.unregistered: llvm.select - 1: "shl_lshr_pow2_const_negative_overflow1" 2: llvm.func 2: llvm.mlir.constant @@ -889,8 +851,6 @@ 1: "lshr_lshr_pow2_const" 4: "lshr_lshr_pow2_const" has unsupported operation: builtin.unregistered: llvm.icmp -4: "lshr_lshr_pow2_const" has unsupported operation: builtin.unregistered: llvm.select - 1: "lshr_lshr_pow2_const_negative_oneuse" 4: "lshr_lshr_pow2_const_negative_oneuse" has unsupported operation: llvm.call @@ -927,18 +887,12 @@ 1: "lshr_shl_pow2_const_case1" 4: "lshr_shl_pow2_const_case1" has unsupported operation: builtin.unregistered: llvm.icmp -4: "lshr_shl_pow2_const_case1" has unsupported operation: builtin.unregistered: llvm.select - 1: "lshr_shl_pow2_const_xor" 4: "lshr_shl_pow2_const_xor" has unsupported operation: builtin.unregistered: llvm.icmp -4: "lshr_shl_pow2_const_xor" has unsupported operation: builtin.unregistered: llvm.select - 1: "lshr_shl_pow2_const_case2" 4: "lshr_shl_pow2_const_case2" has unsupported operation: builtin.unregistered: llvm.icmp -4: "lshr_shl_pow2_const_case2" has unsupported operation: builtin.unregistered: llvm.select - 1: "lshr_shl_pow2_const_overflow" 2: llvm.func 2: llvm.mlir.constant @@ -955,8 +909,6 @@ 1: "lshr_shl_pow2_const_case1_uniform_vec" 4: "lshr_shl_pow2_const_case1_uniform_vec" has unsupported operation: builtin.unregistered: llvm.icmp -4: "lshr_shl_pow2_const_case1_uniform_vec" has unsupported operation: builtin.unregistered: llvm.select - 1: "lshr_shl_pow2_const_case1_non_uniform_vec" 7: "lshr_shl_pow2_const_case1_non_uniform_vec" is unchanged by InstCombine @@ -966,8 +918,6 @@ 1: "lshr_shl_pow2_const_case1_poison1_vec" 4: "lshr_shl_pow2_const_case1_poison1_vec" has unsupported operation: builtin.unregistered: llvm.icmp -4: "lshr_shl_pow2_const_case1_poison1_vec" has unsupported operation: builtin.unregistered: llvm.select - 1: "lshr_shl_pow2_const_case1_poison2_vec" 4: "lshr_shl_pow2_const_case1_poison2_vec" has unsupported operation: builtin.unregistered: llvm.mlir.poison @@ -993,8 +943,6 @@ 1: "negate_lowbitmask" 4: "negate_lowbitmask" has unsupported operation: builtin.unregistered: llvm.icmp -4: "negate_lowbitmask" has unsupported operation: builtin.unregistered: llvm.select - 1: "negate_lowbitmask_commute" 4: "negate_lowbitmask_commute" has unsupported operation: builtin.unregistered: llvm.mlir.poison @@ -1012,15 +960,11 @@ 4: "negate_lowbitmask_commute" has unsupported operation: builtin.unregistered: llvm.icmp -4: "negate_lowbitmask_commute" has unsupported operation: builtin.unregistered: llvm.select - 1: "negate_lowbitmask_use1" 4: "negate_lowbitmask_use1" has unsupported operation: llvm.call 4: "negate_lowbitmask_use1" has unsupported operation: builtin.unregistered: llvm.icmp -4: "negate_lowbitmask_use1" has unsupported operation: builtin.unregistered: llvm.select - 1: "negate_lowbitmask_use2" 4: "negate_lowbitmask_use2" has unsupported operation: llvm.call @@ -1030,10 +974,10 @@ 4: "test_and_or_constexpr_infloop" has unsupported operation: builtin.unregistered: llvm.ptrtoint 1: "and_zext" -4: "and_zext" has unsupported operation: builtin.unregistered: llvm.select +4: "and_zext" has unsupported operation after optimization: builtin.unregistered: llvm.zext 1: "and_zext_commuted" -4: "and_zext_commuted" has unsupported operation: builtin.unregistered: llvm.select +4: "and_zext_commuted" has unsupported operation after optimization: builtin.unregistered: llvm.zext 1: "and_zext_multiuse" 4: "and_zext_multiuse" has unsupported operation: builtin.unregistered: llvm.zext @@ -1041,7 +985,7 @@ 4: "and_zext_multiuse" has unsupported operation: llvm.call 1: "and_zext_vec" -4: "and_zext_vec" has unsupported operation: builtin.unregistered: llvm.select +8: "and_zext_vec" contains vectors which are unsupported 1: "and_zext_eq_even" 4: "and_zext_eq_even" has unsupported operation after optimization: builtin.unregistered: llvm.icmp @@ -1108,7 +1052,7 @@ 2: llvm.return 1: "add_constant_equal_with_the_top_bit_of_demandedbits_pass_vector" -"add_constant_equal_with_the_top_bit_of_demandedbits_pass_vector" contains vectors which are unsupported +8: "add_constant_equal_with_the_top_bit_of_demandedbits_pass_vector" contains vectors which are unsupported 1: "add_constant_equal_with_the_top_bit_of_demandedbits_fail1" 7: "add_constant_equal_with_the_top_bit_of_demandedbits_fail1" is unchanged by InstCombine @@ -1128,5 +1072,3 @@ 1: "and_sext_multiuse" 4: "and_sext_multiuse" has unsupported operation: builtin.unregistered: llvm.icmp -4: "and_sext_multiuse" has unsupported operation: builtin.unregistered: llvm.select - diff --git a/SSA/Projects/InstCombine/tests/logs/and2.txt b/SSA/Projects/InstCombine/tests/logs/and2.txt index a0331beec..cdcfce98e 100644 --- a/SSA/Projects/InstCombine/tests/logs/and2.txt +++ b/SSA/Projects/InstCombine/tests/logs/and2.txt @@ -5,7 +5,11 @@ 2: llvm.return 1: "test2_logical" -4: "test2_logical" has unsupported operation: builtin.unregistered: llvm.select +2: llvm.func +2: llvm.mlir.constant +2: builtin.unregistered: llvm.select +2: builtin.unregistered: llvm.select +2: llvm.return 1: "test3" 2: llvm.func @@ -19,8 +23,6 @@ 1: "test7_logical" 4: "test7_logical" has unsupported operation: builtin.unregistered: llvm.icmp -4: "test7_logical" has unsupported operation: builtin.unregistered: llvm.select - 1: "test8" 4: "test8" has unsupported operation: builtin.unregistered: llvm.icmp @@ -39,7 +41,7 @@ 2: llvm.return 1: "test9vec" -"test9vec" contains vectors which are unsupported +8: "test9vec" contains vectors which are unsupported 1: "test10" 2: llvm.func @@ -89,7 +91,7 @@ 2: llvm.return 1: "and1_lshr1_is_cmp_eq_0_vec" -"and1_lshr1_is_cmp_eq_0_vec" contains vectors which are unsupported +8: "and1_lshr1_is_cmp_eq_0_vec" contains vectors which are unsupported 1: "and1_lshr1_is_cmp_eq_0_vec_poison" 4: "and1_lshr1_is_cmp_eq_0_vec_poison" has unsupported operation: builtin.unregistered: llvm.mlir.poison diff --git a/SSA/Projects/InstCombine/tests/logs/apint-add.txt b/SSA/Projects/InstCombine/tests/logs/apint-add.txt index 62180765b..d54b311f8 100644 --- a/SSA/Projects/InstCombine/tests/logs/apint-add.txt +++ b/SSA/Projects/InstCombine/tests/logs/apint-add.txt @@ -20,7 +20,7 @@ 2: llvm.return 1: "test3vec" -"test3vec" contains vectors which are unsupported +8: "test3vec" contains vectors which are unsupported 1: "test4" 2: llvm.func diff --git a/SSA/Projects/InstCombine/tests/logs/apint-div1.txt b/SSA/Projects/InstCombine/tests/logs/apint-div1.txt index 741d69fa8..0ea1eceec 100644 --- a/SSA/Projects/InstCombine/tests/logs/apint-div1.txt +++ b/SSA/Projects/InstCombine/tests/logs/apint-div1.txt @@ -1,9 +1,22 @@ 1: "test1" -4: "test1" has unsupported operation after optimization: llvm.udiv +2: llvm.func +2: llvm.mlir.constant +2: llvm.udiv +2: llvm.return 1: "test2" -4: "test2" has unsupported operation after optimization: llvm.udiv +2: llvm.func +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.shl +2: llvm.udiv +2: llvm.return 1: "test3" -4: "test3" has unsupported operation: builtin.unregistered: llvm.select +2: llvm.func +2: llvm.mlir.constant +2: llvm.mlir.constant +2: builtin.unregistered: llvm.select +2: llvm.udiv +2: llvm.return diff --git a/SSA/Projects/InstCombine/tests/logs/apint-div2.txt b/SSA/Projects/InstCombine/tests/logs/apint-div2.txt index 741d69fa8..0ea1eceec 100644 --- a/SSA/Projects/InstCombine/tests/logs/apint-div2.txt +++ b/SSA/Projects/InstCombine/tests/logs/apint-div2.txt @@ -1,9 +1,22 @@ 1: "test1" -4: "test1" has unsupported operation after optimization: llvm.udiv +2: llvm.func +2: llvm.mlir.constant +2: llvm.udiv +2: llvm.return 1: "test2" -4: "test2" has unsupported operation after optimization: llvm.udiv +2: llvm.func +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.shl +2: llvm.udiv +2: llvm.return 1: "test3" -4: "test3" has unsupported operation: builtin.unregistered: llvm.select +2: llvm.func +2: llvm.mlir.constant +2: llvm.mlir.constant +2: builtin.unregistered: llvm.select +2: llvm.udiv +2: llvm.return diff --git a/SSA/Projects/InstCombine/tests/logs/apint-mul1.txt b/SSA/Projects/InstCombine/tests/logs/apint-mul1.txt index 4fd70ad41..d51195281 100644 --- a/SSA/Projects/InstCombine/tests/logs/apint-mul1.txt +++ b/SSA/Projects/InstCombine/tests/logs/apint-mul1.txt @@ -5,8 +5,8 @@ 2: llvm.return 1: "test2" -"test2" contains vectors which are unsupported +8: "test2" contains vectors which are unsupported 1: "test3" -"test3" contains vectors which are unsupported +8: "test3" contains vectors which are unsupported diff --git a/SSA/Projects/InstCombine/tests/logs/apint-mul2.txt b/SSA/Projects/InstCombine/tests/logs/apint-mul2.txt index da0e9eeee..daa2d3fcc 100644 --- a/SSA/Projects/InstCombine/tests/logs/apint-mul2.txt +++ b/SSA/Projects/InstCombine/tests/logs/apint-mul2.txt @@ -7,8 +7,8 @@ 2: llvm.return 1: "test2" -"test2" contains vectors which are unsupported +8: "test2" contains vectors which are unsupported 1: "test3" -"test3" contains vectors which are unsupported +8: "test3" contains vectors which are unsupported diff --git a/SSA/Projects/InstCombine/tests/logs/apint-rem1.txt b/SSA/Projects/InstCombine/tests/logs/apint-rem1.txt index 5a46b048d..1d817ee4a 100644 --- a/SSA/Projects/InstCombine/tests/logs/apint-rem1.txt +++ b/SSA/Projects/InstCombine/tests/logs/apint-rem1.txt @@ -13,5 +13,10 @@ 2: llvm.return 1: "test3" -4: "test3" has unsupported operation: builtin.unregistered: llvm.select +2: llvm.func +2: llvm.mlir.constant +2: llvm.mlir.constant +2: builtin.unregistered: llvm.select +2: llvm.urem +2: llvm.return diff --git a/SSA/Projects/InstCombine/tests/logs/apint-rem2.txt b/SSA/Projects/InstCombine/tests/logs/apint-rem2.txt index 5a46b048d..1d817ee4a 100644 --- a/SSA/Projects/InstCombine/tests/logs/apint-rem2.txt +++ b/SSA/Projects/InstCombine/tests/logs/apint-rem2.txt @@ -13,5 +13,10 @@ 2: llvm.return 1: "test3" -4: "test3" has unsupported operation: builtin.unregistered: llvm.select +2: llvm.func +2: llvm.mlir.constant +2: llvm.mlir.constant +2: builtin.unregistered: llvm.select +2: llvm.urem +2: llvm.return diff --git a/SSA/Projects/InstCombine/tests/logs/apint-select.txt b/SSA/Projects/InstCombine/tests/logs/apint-select.txt index fd4c35313..556539a07 100644 --- a/SSA/Projects/InstCombine/tests/logs/apint-select.txt +++ b/SSA/Projects/InstCombine/tests/logs/apint-select.txt @@ -23,15 +23,11 @@ 4: "not_sext_vec" has unsupported operation: builtin.unregistered: llvm.sext 1: "scalar_select_of_vectors" -4: "scalar_select_of_vectors" has unsupported operation: builtin.unregistered: llvm.select +7: "scalar_select_of_vectors" is unchanged by InstCombine 1: "test3" 4: "test3" has unsupported operation after optimization: builtin.unregistered: llvm.icmp -4: "test3" has unsupported operation after optimization: builtin.unregistered: llvm.select - 1: "test4" 4: "test4" has unsupported operation after optimization: builtin.unregistered: llvm.icmp -4: "test4" has unsupported operation after optimization: builtin.unregistered: llvm.select - diff --git a/SSA/Projects/InstCombine/tests/logs/apint-shift.txt b/SSA/Projects/InstCombine/tests/logs/apint-shift.txt index ec1028774..a61d0ce02 100644 --- a/SSA/Projects/InstCombine/tests/logs/apint-shift.txt +++ b/SSA/Projects/InstCombine/tests/logs/apint-shift.txt @@ -21,7 +21,7 @@ 4: "test6a_negative_oneuse" has unsupported operation: llvm.call 1: "test6a_vec" -"test6a_vec" contains vectors which are unsupported +8: "test6a_vec" contains vectors which are unsupported 1: "test7" 4: "test7" has unsupported operation after optimization: builtin.unregistered: llvm.zext @@ -49,7 +49,7 @@ 2: llvm.return 1: "lshr_lshr_splat_vec" -"lshr_lshr_splat_vec" contains vectors which are unsupported +8: "lshr_lshr_splat_vec" contains vectors which are unsupported 1: "multiuse_lshr_lshr" 2: llvm.func @@ -61,10 +61,10 @@ 2: llvm.return 1: "multiuse_lshr_lshr_splat" -"multiuse_lshr_lshr_splat" contains vectors which are unsupported +8: "multiuse_lshr_lshr_splat" contains vectors which are unsupported 1: "shl_shl_splat_vec" -"shl_shl_splat_vec" contains vectors which are unsupported +8: "shl_shl_splat_vec" contains vectors which are unsupported 1: "multiuse_shl_shl" 2: llvm.func @@ -76,19 +76,19 @@ 2: llvm.return 1: "multiuse_shl_shl_splat" -"multiuse_shl_shl_splat" contains vectors which are unsupported +8: "multiuse_shl_shl_splat" contains vectors which are unsupported 1: "eq_shl_lshr_splat_vec" -"eq_shl_lshr_splat_vec" contains vectors which are unsupported +8: "eq_shl_lshr_splat_vec" contains vectors which are unsupported 1: "eq_lshr_shl_splat_vec" -"eq_lshr_shl_splat_vec" contains vectors which are unsupported +8: "eq_lshr_shl_splat_vec" contains vectors which are unsupported 1: "lshr_shl_splat_vec" -"lshr_shl_splat_vec" contains vectors which are unsupported +8: "lshr_shl_splat_vec" contains vectors which are unsupported 1: "shl_lshr_splat_vec" -4: "shl_lshr_splat_vec" has unsupported operation: llvm.udiv +8: "shl_lshr_splat_vec" contains vectors which are unsupported 1: "test11" 2: llvm.func @@ -108,7 +108,7 @@ 2: llvm.return 1: "test12_splat_vec" -"test12_splat_vec" contains vectors which are unsupported +8: "test12_splat_vec" contains vectors which are unsupported 1: "test13" 2: llvm.func @@ -139,10 +139,16 @@ 2: llvm.return 1: "test15" -4: "test15" has unsupported operation: builtin.unregistered: llvm.select +2: llvm.func +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.mlir.constant +2: builtin.unregistered: llvm.select +2: llvm.shl +2: llvm.return 1: "test15a" -4: "test15a" has unsupported operation: builtin.unregistered: llvm.select +4: "test15a" has unsupported operation after optimization: builtin.unregistered: llvm.zext 1: "test16" 4: "test16" has unsupported operation: builtin.unregistered: llvm.icmp @@ -206,7 +212,7 @@ 2: llvm.return 1: "shl_lshr_eq_amt_multi_use_splat_vec" -"shl_lshr_eq_amt_multi_use_splat_vec" contains vectors which are unsupported +8: "shl_lshr_eq_amt_multi_use_splat_vec" contains vectors which are unsupported 1: "lshr_shl_eq_amt_multi_use" 2: llvm.func @@ -217,7 +223,7 @@ 2: llvm.return 1: "lshr_shl_eq_amt_multi_use_splat_vec" -"lshr_shl_eq_amt_multi_use_splat_vec" contains vectors which are unsupported +8: "lshr_shl_eq_amt_multi_use_splat_vec" contains vectors which are unsupported 1: "test25" 2: llvm.func @@ -236,7 +242,3 @@ 4: "ossfuzz_9880" has unsupported operation after optimization: llvm.load -4: "ossfuzz_9880" has unsupported operation after optimization: llvm.udiv - -4: "ossfuzz_9880" has unsupported operation after optimization: llvm.udiv - diff --git a/SSA/Projects/InstCombine/tests/logs/ashr-demand.txt b/SSA/Projects/InstCombine/tests/logs/ashr-demand.txt index 7f179cae4..941c33a33 100644 --- a/SSA/Projects/InstCombine/tests/logs/ashr-demand.txt +++ b/SSA/Projects/InstCombine/tests/logs/ashr-demand.txt @@ -10,13 +10,11 @@ 1: "srem8_ashr_mask" 4: "srem8_ashr_mask" has unsupported operation: builtin.unregistered: llvm.icmp -4: "srem8_ashr_mask" has unsupported operation: builtin.unregistered: llvm.select - 1: "srem2_ashr_mask_vector" -"srem2_ashr_mask_vector" contains vectors which are unsupported +8: "srem2_ashr_mask_vector" contains vectors which are unsupported 1: "srem2_ashr_mask_vector_nonconstant" -"srem2_ashr_mask_vector_nonconstant" contains vectors which are unsupported +8: "srem2_ashr_mask_vector_nonconstant" contains vectors which are unsupported 1: "ashr_can_be_lshr" 4: "ashr_can_be_lshr" has unsupported operation: builtin.unregistered: llvm.trunc diff --git a/SSA/Projects/InstCombine/tests/logs/ashr-lshr.txt b/SSA/Projects/InstCombine/tests/logs/ashr-lshr.txt index a5d65d862..ffa7f0d92 100644 --- a/SSA/Projects/InstCombine/tests/logs/ashr-lshr.txt +++ b/SSA/Projects/InstCombine/tests/logs/ashr-lshr.txt @@ -1,149 +1,105 @@ 1: "ashr_lshr_exact_ashr_only" 4: "ashr_lshr_exact_ashr_only" has unsupported operation after optimization: builtin.unregistered: llvm.icmp -4: "ashr_lshr_exact_ashr_only" has unsupported operation after optimization: builtin.unregistered: llvm.select - 1: "ashr_lshr_no_exact" 4: "ashr_lshr_no_exact" has unsupported operation after optimization: builtin.unregistered: llvm.icmp -4: "ashr_lshr_no_exact" has unsupported operation after optimization: builtin.unregistered: llvm.select - 1: "ashr_lshr_exact_both" 4: "ashr_lshr_exact_both" has unsupported operation after optimization: builtin.unregistered: llvm.icmp -4: "ashr_lshr_exact_both" has unsupported operation after optimization: builtin.unregistered: llvm.select - 1: "ashr_lshr_exact_lshr_only" 4: "ashr_lshr_exact_lshr_only" has unsupported operation after optimization: builtin.unregistered: llvm.icmp -4: "ashr_lshr_exact_lshr_only" has unsupported operation after optimization: builtin.unregistered: llvm.select - 1: "ashr_lshr2" 4: "ashr_lshr2" has unsupported operation after optimization: builtin.unregistered: llvm.icmp -4: "ashr_lshr2" has unsupported operation after optimization: builtin.unregistered: llvm.select - 1: "ashr_lshr2_i128" 4: "ashr_lshr2_i128" has unsupported operation after optimization: builtin.unregistered: llvm.icmp -4: "ashr_lshr2_i128" has unsupported operation after optimization: builtin.unregistered: llvm.select - 1: "ashr_lshr_splat_vec" -"ashr_lshr_splat_vec" contains vectors which are unsupported +8: "ashr_lshr_splat_vec" contains vectors which are unsupported 1: "ashr_lshr_splat_vec2" -"ashr_lshr_splat_vec2" contains vectors which are unsupported +8: "ashr_lshr_splat_vec2" contains vectors which are unsupported 1: "ashr_lshr_splat_vec3" -"ashr_lshr_splat_vec3" contains vectors which are unsupported +8: "ashr_lshr_splat_vec3" contains vectors which are unsupported 1: "ashr_lshr_splat_vec4" -"ashr_lshr_splat_vec4" contains vectors which are unsupported +8: "ashr_lshr_splat_vec4" contains vectors which are unsupported 1: "ashr_lshr_nonsplat_vec" -"ashr_lshr_nonsplat_vec" contains vectors which are unsupported +8: "ashr_lshr_nonsplat_vec" contains vectors which are unsupported 1: "ashr_lshr_nonsplat_vec2" -"ashr_lshr_nonsplat_vec2" contains vectors which are unsupported +8: "ashr_lshr_nonsplat_vec2" contains vectors which are unsupported 1: "ashr_lshr_nonsplat_vec3" -"ashr_lshr_nonsplat_vec3" contains vectors which are unsupported +8: "ashr_lshr_nonsplat_vec3" contains vectors which are unsupported 1: "ashr_lshr_nonsplat_vec4" -"ashr_lshr_nonsplat_vec4" contains vectors which are unsupported +8: "ashr_lshr_nonsplat_vec4" contains vectors which are unsupported 1: "ashr_lshr_cst" 4: "ashr_lshr_cst" has unsupported operation after optimization: builtin.unregistered: llvm.icmp -4: "ashr_lshr_cst" has unsupported operation after optimization: builtin.unregistered: llvm.select - 1: "ashr_lshr_cst2" 4: "ashr_lshr_cst2" has unsupported operation after optimization: builtin.unregistered: llvm.icmp -4: "ashr_lshr_cst2" has unsupported operation after optimization: builtin.unregistered: llvm.select - 1: "ashr_lshr_inv" 4: "ashr_lshr_inv" has unsupported operation after optimization: builtin.unregistered: llvm.icmp -4: "ashr_lshr_inv" has unsupported operation after optimization: builtin.unregistered: llvm.select - 1: "ashr_lshr_inv2" 4: "ashr_lshr_inv2" has unsupported operation after optimization: builtin.unregistered: llvm.icmp -4: "ashr_lshr_inv2" has unsupported operation after optimization: builtin.unregistered: llvm.select - 1: "ashr_lshr_inv_splat_vec" -"ashr_lshr_inv_splat_vec" contains vectors which are unsupported +8: "ashr_lshr_inv_splat_vec" contains vectors which are unsupported 1: "ashr_lshr_inv_nonsplat_vec" -"ashr_lshr_inv_nonsplat_vec" contains vectors which are unsupported +8: "ashr_lshr_inv_nonsplat_vec" contains vectors which are unsupported 1: "ashr_lshr_vec_poison" -"ashr_lshr_vec_poison" contains vectors which are unsupported +8: "ashr_lshr_vec_poison" contains vectors which are unsupported 1: "ashr_lshr_vec_poison2" -"ashr_lshr_vec_poison2" contains vectors which are unsupported +8: "ashr_lshr_vec_poison2" contains vectors which are unsupported 1: "ashr_lshr_wrong_cst" 4: "ashr_lshr_wrong_cst" has unsupported operation: builtin.unregistered: llvm.icmp -4: "ashr_lshr_wrong_cst" has unsupported operation: builtin.unregistered: llvm.select - 1: "ashr_lshr_wrong_cst2" 4: "ashr_lshr_wrong_cst2" has unsupported operation: builtin.unregistered: llvm.icmp -4: "ashr_lshr_wrong_cst2" has unsupported operation: builtin.unregistered: llvm.select - 1: "ashr_lshr_wrong_cond" 4: "ashr_lshr_wrong_cond" has unsupported operation: builtin.unregistered: llvm.icmp -4: "ashr_lshr_wrong_cond" has unsupported operation: builtin.unregistered: llvm.select - 1: "ashr_lshr_shift_wrong_pred" 4: "ashr_lshr_shift_wrong_pred" has unsupported operation: builtin.unregistered: llvm.icmp -4: "ashr_lshr_shift_wrong_pred" has unsupported operation: builtin.unregistered: llvm.select - 1: "ashr_lshr_shift_wrong_pred2" 4: "ashr_lshr_shift_wrong_pred2" has unsupported operation: builtin.unregistered: llvm.icmp -4: "ashr_lshr_shift_wrong_pred2" has unsupported operation: builtin.unregistered: llvm.select - 1: "ashr_lshr_wrong_operands" 4: "ashr_lshr_wrong_operands" has unsupported operation: builtin.unregistered: llvm.icmp -4: "ashr_lshr_wrong_operands" has unsupported operation: builtin.unregistered: llvm.select - 1: "ashr_lshr_no_ashr" 4: "ashr_lshr_no_ashr" has unsupported operation: builtin.unregistered: llvm.icmp -4: "ashr_lshr_no_ashr" has unsupported operation: builtin.unregistered: llvm.select - 1: "ashr_lshr_shift_amt_mismatch" 4: "ashr_lshr_shift_amt_mismatch" has unsupported operation: builtin.unregistered: llvm.icmp -4: "ashr_lshr_shift_amt_mismatch" has unsupported operation: builtin.unregistered: llvm.select - 1: "ashr_lshr_shift_base_mismatch" 4: "ashr_lshr_shift_base_mismatch" has unsupported operation: builtin.unregistered: llvm.icmp -4: "ashr_lshr_shift_base_mismatch" has unsupported operation: builtin.unregistered: llvm.select - 1: "ashr_lshr_no_lshr" 4: "ashr_lshr_no_lshr" has unsupported operation: builtin.unregistered: llvm.icmp -4: "ashr_lshr_no_lshr" has unsupported operation: builtin.unregistered: llvm.select - 1: "ashr_lshr_vec_wrong_pred" 4: "ashr_lshr_vec_wrong_pred" has unsupported operation: builtin.unregistered: llvm.icmp -4: "ashr_lshr_vec_wrong_pred" has unsupported operation: builtin.unregistered: llvm.select - 1: "ashr_lshr_inv_vec_wrong_pred" 4: "ashr_lshr_inv_vec_wrong_pred" has unsupported operation: builtin.unregistered: llvm.icmp -4: "ashr_lshr_inv_vec_wrong_pred" has unsupported operation: builtin.unregistered: llvm.select - 1: "lshr_sub_nsw" 4: "lshr_sub_nsw" has unsupported operation: builtin.unregistered: llvm.icmp @@ -212,7 +168,7 @@ 2: llvm.return 1: "ashr_known_pos_exact_vec" -"ashr_known_pos_exact_vec" contains vectors which are unsupported +8: "ashr_known_pos_exact_vec" contains vectors which are unsupported 1: "lshr_mul_times_3_div_2" 2: llvm.func diff --git a/SSA/Projects/InstCombine/tests/logs/assume-icmp-null-select.txt b/SSA/Projects/InstCombine/tests/logs/assume-icmp-null-select.txt index 3845ec7bf..39a42f365 100644 --- a/SSA/Projects/InstCombine/tests/logs/assume-icmp-null-select.txt +++ b/SSA/Projects/InstCombine/tests/logs/assume-icmp-null-select.txt @@ -5,8 +5,6 @@ 4: "example" has unsupported operation after optimization: builtin.unregistered: llvm.icmp -4: "example" has unsupported operation after optimization: builtin.unregistered: llvm.select - 4: "example" has unsupported operation after optimization: builtin.unregistered: llvm.icmp 4: "example" has unsupported operation after optimization: builtin.unregistered: llvm.intr.assume @@ -18,8 +16,6 @@ 4: "example2" has unsupported operation: builtin.unregistered: llvm.icmp -4: "example2" has unsupported operation: builtin.unregistered: llvm.select - 4: "example2" has unsupported operation: builtin.unregistered: llvm.icmp 4: "example2" has unsupported operation: builtin.unregistered: llvm.intr.assume diff --git a/SSA/Projects/InstCombine/tests/logs/assume.txt b/SSA/Projects/InstCombine/tests/logs/assume.txt index dd9aad940..5cd86ac7a 100644 --- a/SSA/Projects/InstCombine/tests/logs/assume.txt +++ b/SSA/Projects/InstCombine/tests/logs/assume.txt @@ -270,8 +270,6 @@ 4: "unreachable_assume_logical" has unsupported operation: builtin.unregistered: llvm.icmp -4: "unreachable_assume_logical" has unsupported operation: builtin.unregistered: llvm.select - 4: "unreachable_assume_logical" has unsupported operation: builtin.unregistered: llvm.intr.assume 4: "unreachable_assume_logical" has unsupported operation: builtin.unregistered: llvm.icmp @@ -310,8 +308,6 @@ 4: "unreachable_assumes_and_store_logical" has unsupported operation: builtin.unregistered: llvm.icmp -4: "unreachable_assumes_and_store_logical" has unsupported operation: builtin.unregistered: llvm.select - 4: "unreachable_assumes_and_store_logical" has unsupported operation: builtin.unregistered: llvm.intr.assume 4: "unreachable_assumes_and_store_logical" has unsupported operation: builtin.unregistered: llvm.icmp diff --git a/SSA/Projects/InstCombine/tests/logs/atomic.txt b/SSA/Projects/InstCombine/tests/logs/atomic.txt index 3208397e1..38cddac88 100644 --- a/SSA/Projects/InstCombine/tests/logs/atomic.txt +++ b/SSA/Projects/InstCombine/tests/logs/atomic.txt @@ -101,15 +101,11 @@ 4: "test15" has unsupported operation: llvm.load -4: "test15" has unsupported operation: builtin.unregistered: llvm.select - 1: "test16" 4: "test16" has unsupported operation: llvm.mlir.addressof 4: "test16" has unsupported operation: llvm.mlir.addressof -4: "test16" has unsupported operation: builtin.unregistered: llvm.select - 4: "test16" has unsupported operation: llvm.load 1: "test17" @@ -117,8 +113,6 @@ 4: "test17" has unsupported operation: llvm.mlir.addressof -4: "test17" has unsupported operation: builtin.unregistered: llvm.select - 4: "test17" has unsupported operation: llvm.load 1: "test22" diff --git a/SSA/Projects/InstCombine/tests/logs/avg-lsb.txt b/SSA/Projects/InstCombine/tests/logs/avg-lsb.txt index 76e59435f..3315c71e6 100644 --- a/SSA/Projects/InstCombine/tests/logs/avg-lsb.txt +++ b/SSA/Projects/InstCombine/tests/logs/avg-lsb.txt @@ -11,5 +11,5 @@ 7: "avg_lsb_mismatch" is unchanged by InstCombine 1: "avg_lsb_vector" -"avg_lsb_vector" contains vectors which are unsupported +8: "avg_lsb_vector" contains vectors which are unsupported diff --git a/SSA/Projects/InstCombine/tests/logs/binop-and-shifts.txt b/SSA/Projects/InstCombine/tests/logs/binop-and-shifts.txt index 6235eb076..e9f3dd62a 100644 --- a/SSA/Projects/InstCombine/tests/logs/binop-and-shifts.txt +++ b/SSA/Projects/InstCombine/tests/logs/binop-and-shifts.txt @@ -43,7 +43,7 @@ 7: "shl_and_and_fail2" is unchanged by InstCombine 1: "lshr_and_or" -"lshr_and_or" contains vectors which are unsupported +8: "lshr_and_or" contains vectors which are unsupported 1: "lshr_and_or_fail" 7: "lshr_and_or_fail" is unchanged by InstCombine @@ -150,7 +150,7 @@ 7: "shl_xor_and_no_const_fail" is unchanged by InstCombine 1: "shl_and_and_no_const" -"shl_and_and_no_const" contains vectors which are unsupported +8: "shl_and_and_no_const" contains vectors which are unsupported 1: "shl_add_add_no_const" 2: llvm.func @@ -164,7 +164,7 @@ 7: "lshr_add_add_no_const_fail" is unchanged by InstCombine 1: "lshr_add_and" -"lshr_add_and" contains vectors which are unsupported +8: "lshr_add_and" contains vectors which are unsupported 1: "lshr_add_or_fail_dif_masks" 4: "lshr_add_or_fail_dif_masks" has unsupported operation: builtin.unregistered: llvm.mlir.poison @@ -176,10 +176,10 @@ 4: "lshr_add_or_fail_dif_masks" has unsupported operation: builtin.unregistered: llvm.insertelement 1: "shl_or_or_good_mask" -"shl_or_or_good_mask" contains vectors which are unsupported +8: "shl_or_or_good_mask" contains vectors which are unsupported 1: "shl_or_or_fail_bad_mask" -"shl_or_or_fail_bad_mask" contains vectors which are unsupported +8: "shl_or_or_fail_bad_mask" contains vectors which are unsupported 1: "lshr_xor_or_good_mask" 2: llvm.func @@ -195,7 +195,7 @@ 7: "lshr_xor_or_fail_bad_mask" is unchanged by InstCombine 1: "lshr_or_xor_good_mask" -"lshr_or_xor_good_mask" contains vectors which are unsupported +8: "lshr_or_xor_good_mask" contains vectors which are unsupported 1: "lshr_or_xor_fail_bad_mask" 7: "lshr_or_xor_fail_bad_mask" is unchanged by InstCombine @@ -261,7 +261,7 @@ 2: llvm.return 1: "lshr_and_add" -"lshr_and_add" contains vectors which are unsupported +8: "lshr_and_add" contains vectors which are unsupported 1: "lshr_or_add_fail" 7: "lshr_or_add_fail" is unchanged by InstCombine @@ -304,13 +304,13 @@ 7: "and_ashr_not_fail_invalid_xor_constant" is unchanged by InstCombine 1: "and_ashr_not_vec" -"and_ashr_not_vec" contains vectors which are unsupported +8: "and_ashr_not_vec" contains vectors which are unsupported 1: "and_ashr_not_vec_commuted" -"and_ashr_not_vec_commuted" contains vectors which are unsupported +8: "and_ashr_not_vec_commuted" contains vectors which are unsupported 1: "and_ashr_not_vec_poison_1" -"and_ashr_not_vec_poison_1" contains vectors which are unsupported +8: "and_ashr_not_vec_poison_1" contains vectors which are unsupported 1: "and_ashr_not_vec_poison_2" 4: "and_ashr_not_vec_poison_2" has unsupported operation: builtin.unregistered: llvm.mlir.poison @@ -343,13 +343,13 @@ 7: "or_ashr_not_fail_invalid_xor_constant" is unchanged by InstCombine 1: "or_ashr_not_vec" -"or_ashr_not_vec" contains vectors which are unsupported +8: "or_ashr_not_vec" contains vectors which are unsupported 1: "or_ashr_not_vec_commuted" -"or_ashr_not_vec_commuted" contains vectors which are unsupported +8: "or_ashr_not_vec_commuted" contains vectors which are unsupported 1: "or_ashr_not_vec_poison_1" -"or_ashr_not_vec_poison_1" contains vectors which are unsupported +8: "or_ashr_not_vec_poison_1" contains vectors which are unsupported 1: "or_ashr_not_vec_poison_2" 4: "or_ashr_not_vec_poison_2" has unsupported operation: builtin.unregistered: llvm.mlir.poison @@ -400,13 +400,13 @@ 2: llvm.return 1: "xor_ashr_not_vec" -"xor_ashr_not_vec" contains vectors which are unsupported +8: "xor_ashr_not_vec" contains vectors which are unsupported 1: "xor_ashr_not_vec_commuted" -"xor_ashr_not_vec_commuted" contains vectors which are unsupported +8: "xor_ashr_not_vec_commuted" contains vectors which are unsupported 1: "xor_ashr_not_vec_poison_1" -"xor_ashr_not_vec_poison_1" contains vectors which are unsupported +8: "xor_ashr_not_vec_poison_1" contains vectors which are unsupported 1: "xor_ashr_not_vec_poison_2" 4: "xor_ashr_not_vec_poison_2" has unsupported operation: builtin.unregistered: llvm.mlir.poison diff --git a/SSA/Projects/InstCombine/tests/logs/binop-cast.txt b/SSA/Projects/InstCombine/tests/logs/binop-cast.txt index 13c5daf73..0f1c5fbe3 100644 --- a/SSA/Projects/InstCombine/tests/logs/binop-cast.txt +++ b/SSA/Projects/InstCombine/tests/logs/binop-cast.txt @@ -8,35 +8,29 @@ 4: "testAdd" has unsupported operation after optimization: builtin.unregistered: llvm.bitcast 1: "and_sext_to_sel" -4: "and_sext_to_sel" has unsupported operation: builtin.unregistered: llvm.select +4: "and_sext_to_sel" has unsupported operation after optimization: builtin.unregistered: llvm.sext 1: "and_sext_to_sel_constant_vec" -4: "and_sext_to_sel_constant_vec" has unsupported operation: builtin.unregistered: llvm.select +8: "and_sext_to_sel_constant_vec" contains vectors which are unsupported 1: "and_sext_to_sel_swap" -4: "and_sext_to_sel_swap" has unsupported operation: builtin.unregistered: llvm.select +8: "and_sext_to_sel_swap" contains vectors which are unsupported 1: "and_sext_to_sel_multi_use" 4: "and_sext_to_sel_multi_use" has unsupported operation: builtin.unregistered: llvm.sext 4: "and_sext_to_sel_multi_use" has unsupported operation: llvm.call -4: "and_sext_to_sel_multi_use" has unsupported operation: builtin.unregistered: llvm.select - 1: "and_sext_to_sel_multi_use_constant_mask" 4: "and_sext_to_sel_multi_use_constant_mask" has unsupported operation: builtin.unregistered: llvm.sext 4: "and_sext_to_sel_multi_use_constant_mask" has unsupported operation: llvm.call -4: "and_sext_to_sel_multi_use_constant_mask" has unsupported operation: builtin.unregistered: llvm.select - 1: "and_not_sext_to_sel" 4: "and_not_sext_to_sel" has unsupported operation: builtin.unregistered: llvm.sext 4: "and_not_sext_to_sel" has unsupported operation: llvm.call -4: "and_not_sext_to_sel" has unsupported operation: builtin.unregistered: llvm.select - 1: "and_not_sext_to_sel_commute" 4: "and_not_sext_to_sel_commute" has unsupported operation: builtin.unregistered: llvm.sext @@ -44,8 +38,6 @@ 4: "and_not_sext_to_sel_commute" has unsupported operation: llvm.call -4: "and_not_sext_to_sel_commute" has unsupported operation: builtin.unregistered: llvm.select - 1: "and_xor_sext_to_sel" 4: "and_xor_sext_to_sel" has unsupported operation: builtin.unregistered: llvm.sext @@ -57,13 +49,13 @@ 4: "and_not_zext_to_sel" has unsupported operation: llvm.call 1: "or_sext_to_sel" -4: "or_sext_to_sel" has unsupported operation: builtin.unregistered: llvm.select +4: "or_sext_to_sel" has unsupported operation after optimization: builtin.unregistered: llvm.sext 1: "or_sext_to_sel_constant_vec" -4: "or_sext_to_sel_constant_vec" has unsupported operation: builtin.unregistered: llvm.select +8: "or_sext_to_sel_constant_vec" contains vectors which are unsupported 1: "or_sext_to_sel_swap" -4: "or_sext_to_sel_swap" has unsupported operation: builtin.unregistered: llvm.select +8: "or_sext_to_sel_swap" contains vectors which are unsupported 1: "or_sext_to_sel_multi_use" 4: "or_sext_to_sel_multi_use" has unsupported operation: builtin.unregistered: llvm.sext @@ -75,8 +67,6 @@ 4: "or_sext_to_sel_multi_use_constant_mask" has unsupported operation: llvm.call -4: "or_sext_to_sel_multi_use_constant_mask" has unsupported operation: builtin.unregistered: llvm.select - 1: "xor_sext_to_sel" 4: "xor_sext_to_sel" has unsupported operation: builtin.unregistered: llvm.sext @@ -101,24 +91,20 @@ 4: "PR63321" has unsupported operation: builtin.unregistered: llvm.icmp -4: "PR63321" has unsupported operation: builtin.unregistered: llvm.select - 1: "and_add_non_bool" 4: "and_add_non_bool" has unsupported operation: llvm.load 4: "and_add_non_bool" has unsupported operation: builtin.unregistered: llvm.zext 1: "and_add_bool_to_select" -4: "and_add_bool_to_select" has unsupported operation: builtin.unregistered: llvm.select +4: "and_add_bool_to_select" has unsupported operation after optimization: builtin.unregistered: llvm.zext 1: "and_add_bool_no_fold" 4: "and_add_bool_no_fold" has unsupported operation: builtin.unregistered: llvm.icmp -4: "and_add_bool_no_fold" has unsupported operation: builtin.unregistered: llvm.select - 1: "and_add_bool_vec_to_select" -4: "and_add_bool_vec_to_select" has unsupported operation: builtin.unregistered: llvm.select +8: "and_add_bool_vec_to_select" contains vectors which are unsupported 1: "and_add_bool_to_select_multi_use" -4: "and_add_bool_to_select_multi_use" has unsupported operation: builtin.unregistered: llvm.select +4: "and_add_bool_to_select_multi_use" has unsupported operation after optimization: builtin.unregistered: llvm.zext diff --git a/SSA/Projects/InstCombine/tests/logs/binop-itofp.txt b/SSA/Projects/InstCombine/tests/logs/binop-itofp.txt index bff2b8f7f..5c6a6eb2c 100644 --- a/SSA/Projects/InstCombine/tests/logs/binop-itofp.txt +++ b/SSA/Projects/InstCombine/tests/logs/binop-itofp.txt @@ -277,8 +277,6 @@ 4: "test_ui_add_with_signed_constant" has unsupported operation: builtin.unregistered: llvm.sitofp 1: "missed_nonzero_check_on_constant_for_si_fmul" -4: "missed_nonzero_check_on_constant_for_si_fmul" has unsupported operation: builtin.unregistered: llvm.select - 4: "missed_nonzero_check_on_constant_for_si_fmul" has unsupported operation: builtin.unregistered: llvm.trunc 4: "missed_nonzero_check_on_constant_for_si_fmul" has unsupported operation: builtin.unregistered: llvm.sitofp @@ -290,8 +288,6 @@ 1: "missed_nonzero_check_on_constant_for_si_fmul_vec" 4: "missed_nonzero_check_on_constant_for_si_fmul_vec" has unsupported operation: builtin.unregistered: llvm.mlir.poison -4: "missed_nonzero_check_on_constant_for_si_fmul_vec" has unsupported operation: builtin.unregistered: llvm.select - 4: "missed_nonzero_check_on_constant_for_si_fmul_vec" has unsupported operation: builtin.unregistered: llvm.trunc 4: "missed_nonzero_check_on_constant_for_si_fmul_vec" has unsupported operation: builtin.unregistered: llvm.insertelement @@ -305,8 +301,6 @@ 4: "missed_nonzero_check_on_constant_for_si_fmul_vec" has unsupported operation: llvm.store 1: "negzero_check_on_constant_for_si_fmul" -4: "negzero_check_on_constant_for_si_fmul" has unsupported operation: builtin.unregistered: llvm.select - 4: "negzero_check_on_constant_for_si_fmul" has unsupported operation: builtin.unregistered: llvm.trunc 4: "negzero_check_on_constant_for_si_fmul" has unsupported operation: builtin.unregistered: llvm.sitofp @@ -328,8 +322,6 @@ 4: "nonzero_check_on_constant_for_si_fmul_vec_w_poison" has unsupported operation: builtin.unregistered: llvm.insertelement -4: "nonzero_check_on_constant_for_si_fmul_vec_w_poison" has unsupported operation: builtin.unregistered: llvm.select - 4: "nonzero_check_on_constant_for_si_fmul_vec_w_poison" has unsupported operation: builtin.unregistered: llvm.trunc 4: "nonzero_check_on_constant_for_si_fmul_vec_w_poison" has unsupported operation: builtin.unregistered: llvm.insertelement @@ -345,8 +337,6 @@ 1: "nonzero_check_on_constant_for_si_fmul_nz_vec_w_poison" 4: "nonzero_check_on_constant_for_si_fmul_nz_vec_w_poison" has unsupported operation: builtin.unregistered: llvm.mlir.poison -4: "nonzero_check_on_constant_for_si_fmul_nz_vec_w_poison" has unsupported operation: builtin.unregistered: llvm.select - 4: "nonzero_check_on_constant_for_si_fmul_nz_vec_w_poison" has unsupported operation: builtin.unregistered: llvm.trunc 4: "nonzero_check_on_constant_for_si_fmul_nz_vec_w_poison" has unsupported operation: builtin.unregistered: llvm.insertelement @@ -368,8 +358,6 @@ 4: "nonzero_check_on_constant_for_si_fmul_negz_vec_w_poison" has unsupported operation: builtin.unregistered: llvm.insertelement -4: "nonzero_check_on_constant_for_si_fmul_negz_vec_w_poison" has unsupported operation: builtin.unregistered: llvm.select - 4: "nonzero_check_on_constant_for_si_fmul_negz_vec_w_poison" has unsupported operation: builtin.unregistered: llvm.trunc 4: "nonzero_check_on_constant_for_si_fmul_negz_vec_w_poison" has unsupported operation: builtin.unregistered: llvm.insertelement diff --git a/SSA/Projects/InstCombine/tests/logs/binop-of-displaced-shifts.txt b/SSA/Projects/InstCombine/tests/logs/binop-of-displaced-shifts.txt index ca77f3082..1e9958b0c 100644 --- a/SSA/Projects/InstCombine/tests/logs/binop-of-displaced-shifts.txt +++ b/SSA/Projects/InstCombine/tests/logs/binop-of-displaced-shifts.txt @@ -134,10 +134,10 @@ 2: llvm.return 1: "shl_or_splat" -"shl_or_splat" contains vectors which are unsupported +8: "shl_or_splat" contains vectors which are unsupported 1: "shl_or_non_splat" -"shl_or_non_splat" contains vectors which are unsupported +8: "shl_or_non_splat" contains vectors which are unsupported 1: "shl_or_poison_in_add" 4: "shl_or_poison_in_add" has unsupported operation: builtin.unregistered: llvm.mlir.poison diff --git a/SSA/Projects/InstCombine/tests/logs/binop-select-cast-of-select-cond.txt b/SSA/Projects/InstCombine/tests/logs/binop-select-cast-of-select-cond.txt index 6a96f93f4..6fea533e1 100644 --- a/SSA/Projects/InstCombine/tests/logs/binop-select-cast-of-select-cond.txt +++ b/SSA/Projects/InstCombine/tests/logs/binop-select-cast-of-select-cond.txt @@ -1,40 +1,36 @@ 1: "add_select_zext" -4: "add_select_zext" has unsupported operation: builtin.unregistered: llvm.select +4: "add_select_zext" has unsupported operation after optimization: builtin.unregistered: llvm.zext 1: "add_select_sext" -4: "add_select_sext" has unsupported operation: builtin.unregistered: llvm.select +4: "add_select_sext" has unsupported operation after optimization: builtin.unregistered: llvm.sext 1: "add_select_not_zext" -4: "add_select_not_zext" has unsupported operation: builtin.unregistered: llvm.select +4: "add_select_not_zext" has unsupported operation after optimization: builtin.unregistered: llvm.zext 1: "add_select_not_sext" -4: "add_select_not_sext" has unsupported operation: builtin.unregistered: llvm.select +4: "add_select_not_sext" has unsupported operation after optimization: builtin.unregistered: llvm.sext 1: "sub_select_sext" -4: "sub_select_sext" has unsupported operation: builtin.unregistered: llvm.select +4: "sub_select_sext" has unsupported operation after optimization: builtin.unregistered: llvm.sext 1: "sub_select_not_zext" -4: "sub_select_not_zext" has unsupported operation: builtin.unregistered: llvm.select +4: "sub_select_not_zext" has unsupported operation after optimization: builtin.unregistered: llvm.zext 1: "sub_select_not_sext" -4: "sub_select_not_sext" has unsupported operation: builtin.unregistered: llvm.select +4: "sub_select_not_sext" has unsupported operation after optimization: builtin.unregistered: llvm.sext 1: "mul_select_zext" -4: "mul_select_zext" has unsupported operation: builtin.unregistered: llvm.select +4: "mul_select_zext" has unsupported operation after optimization: builtin.unregistered: llvm.zext 1: "mul_select_sext" -4: "mul_select_sext" has unsupported operation: builtin.unregistered: llvm.select +4: "mul_select_sext" has unsupported operation after optimization: builtin.unregistered: llvm.sext 1: "select_zext_different_condition" -4: "select_zext_different_condition" has unsupported operation: builtin.unregistered: llvm.select - 4: "select_zext_different_condition" has unsupported operation: builtin.unregistered: llvm.zext 1: "vector_test" 4: "vector_test" has unsupported operation: builtin.unregistered: llvm.mlir.poison -4: "vector_test" has unsupported operation: builtin.unregistered: llvm.select - 4: "vector_test" has unsupported operation: builtin.unregistered: llvm.zext 4: "vector_test" has unsupported operation: builtin.unregistered: llvm.insertelement @@ -42,22 +38,22 @@ 4: "vector_test" has unsupported operation: builtin.unregistered: llvm.shufflevector 1: "multiuse_add" -4: "multiuse_add" has unsupported operation: builtin.unregistered: llvm.select +4: "multiuse_add" has unsupported operation after optimization: builtin.unregistered: llvm.zext 1: "multiuse_select" -4: "multiuse_select" has unsupported operation: builtin.unregistered: llvm.select +4: "multiuse_select" has unsupported operation after optimization: builtin.unregistered: llvm.zext 1: "select_non_const_sides" -4: "select_non_const_sides" has unsupported operation: builtin.unregistered: llvm.select +4: "select_non_const_sides" has unsupported operation after optimization: builtin.unregistered: llvm.zext 1: "sub_select_sext_op_swapped_non_const_args" -4: "sub_select_sext_op_swapped_non_const_args" has unsupported operation: builtin.unregistered: llvm.select +4: "sub_select_sext_op_swapped_non_const_args" has unsupported operation after optimization: builtin.unregistered: llvm.sext 1: "sub_select_zext_op_swapped_non_const_args" -4: "sub_select_zext_op_swapped_non_const_args" has unsupported operation: builtin.unregistered: llvm.select +4: "sub_select_zext_op_swapped_non_const_args" has unsupported operation after optimization: builtin.unregistered: llvm.zext 1: "vectorized_add" -4: "vectorized_add" has unsupported operation: builtin.unregistered: llvm.select +8: "vectorized_add" contains vectors which are unsupported 1: "pr64669" 4: "pr64669" has unsupported operation: llvm.mlir.addressof @@ -68,5 +64,3 @@ 4: "pr64669" has unsupported operation: builtin.unregistered: llvm.icmp -4: "pr64669" has unsupported operation: builtin.unregistered: llvm.select - diff --git a/SSA/Projects/InstCombine/tests/logs/binop-select.txt b/SSA/Projects/InstCombine/tests/logs/binop-select.txt index 0c2b51619..ef8b22618 100644 --- a/SSA/Projects/InstCombine/tests/logs/binop-select.txt +++ b/SSA/Projects/InstCombine/tests/logs/binop-select.txt @@ -11,32 +11,28 @@ 5: "use_v2i8" is empty 1: "test1" -4: "test1" has unsupported operation: builtin.unregistered: llvm.select +7: "test1" is unchanged by InstCombine 1: "test2" -4: "test2" has unsupported operation: builtin.unregistered: llvm.select +7: "test2" is unchanged by InstCombine 1: "test3" -4: "test3" has unsupported operation: builtin.unregistered: llvm.select +7: "test3" is unchanged by InstCombine 1: "test4" -4: "test4" has unsupported operation: builtin.unregistered: llvm.select +7: "test4" is unchanged by InstCombine 1: "test5" -4: "test5" has unsupported operation: builtin.unregistered: llvm.select +7: "test5" is unchanged by InstCombine 1: "test_sub_deduce_true" 4: "test_sub_deduce_true" has unsupported operation: builtin.unregistered: llvm.icmp 4: "test_sub_deduce_true" has unsupported operation: builtin.unregistered: llvm.intr.sadd.sat -4: "test_sub_deduce_true" has unsupported operation: builtin.unregistered: llvm.select - 1: "test_sub_deduce_true_no_const_fold" 4: "test_sub_deduce_true_no_const_fold" has unsupported operation: builtin.unregistered: llvm.icmp -4: "test_sub_deduce_true_no_const_fold" has unsupported operation: builtin.unregistered: llvm.select - 4: "test_sub_deduce_true_no_const_fold" has unsupported operation: builtin.unregistered: llvm.intr.sadd.sat 1: "test_sub_deduce_false" @@ -44,8 +40,6 @@ 4: "test_sub_deduce_false" has unsupported operation: builtin.unregistered: llvm.intr.sadd.sat -4: "test_sub_deduce_false" has unsupported operation: builtin.unregistered: llvm.select - 1: "test_sub_dont_deduce_with_undef_cond_vec" 4: "test_sub_dont_deduce_with_undef_cond_vec" has unsupported operation: llvm.mlir.undef @@ -57,8 +51,6 @@ 4: "test_sub_dont_deduce_with_undef_cond_vec" has unsupported operation: builtin.unregistered: llvm.icmp -4: "test_sub_dont_deduce_with_undef_cond_vec" has unsupported operation: builtin.unregistered: llvm.select - 4: "test_sub_dont_deduce_with_undef_cond_vec" has unsupported operation: builtin.unregistered: llvm.intr.sadd.sat 1: "test_sub_dont_deduce_with_poison_cond_vec" @@ -72,8 +64,6 @@ 4: "test_sub_dont_deduce_with_poison_cond_vec" has unsupported operation: builtin.unregistered: llvm.icmp -4: "test_sub_dont_deduce_with_poison_cond_vec" has unsupported operation: builtin.unregistered: llvm.select - 4: "test_sub_dont_deduce_with_poison_cond_vec" has unsupported operation: builtin.unregistered: llvm.intr.sadd.sat 1: "test_sub_deduce_with_undef_val_vec" @@ -81,94 +71,84 @@ 4: "test_sub_deduce_with_undef_val_vec" has unsupported operation: builtin.unregistered: llvm.intr.sadd.sat -4: "test_sub_deduce_with_undef_val_vec" has unsupported operation: builtin.unregistered: llvm.select - 1: "test6" -4: "test6" has unsupported operation: builtin.unregistered: llvm.select +7: "test6" is unchanged by InstCombine 1: "test7" -4: "test7" has unsupported operation: builtin.unregistered: llvm.select +7: "test7" is unchanged by InstCombine 1: "test8" -4: "test8" has unsupported operation: builtin.unregistered: llvm.select +7: "test8" is unchanged by InstCombine 1: "test9" -4: "test9" has unsupported operation: builtin.unregistered: llvm.select +7: "test9" is unchanged by InstCombine 1: "test10" -4: "test10" has unsupported operation: builtin.unregistered: llvm.select - -4: "test10" has unsupported operation: llvm.udiv +7: "test10" is unchanged by InstCombine 1: "test11" -4: "test11" has unsupported operation: builtin.unregistered: llvm.select +7: "test11" is unchanged by InstCombine 1: "test12" -4: "test12" has unsupported operation: builtin.unregistered: llvm.select +7: "test12" is unchanged by InstCombine 1: "extra_use" -4: "extra_use" has unsupported operation: builtin.unregistered: llvm.select - 4: "extra_use" has unsupported operation: llvm.call 1: "extra_use2" -4: "extra_use2" has unsupported operation: builtin.unregistered: llvm.select - 4: "extra_use2" has unsupported operation: llvm.call 1: "and_sel_op0" 4: "and_sel_op0" has unsupported operation: builtin.unregistered: llvm.zext 1: "and_sel_op0_use" -4: "and_sel_op0_use" has unsupported operation: builtin.unregistered: llvm.select - 4: "and_sel_op0_use" has unsupported operation: llvm.call 1: "mul_sel_op0" -4: "mul_sel_op0" has unsupported operation: builtin.unregistered: llvm.select +2: llvm.func +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.udiv +2: builtin.unregistered: llvm.select +2: llvm.mul +2: llvm.return 1: "mul_sel_op0_use" -4: "mul_sel_op0_use" has unsupported operation: llvm.udiv - -4: "mul_sel_op0_use" has unsupported operation: builtin.unregistered: llvm.select - 4: "mul_sel_op0_use" has unsupported operation: llvm.call 1: "sub_sel_op1" 4: "sub_sel_op1" has unsupported operation: builtin.unregistered: llvm.zext 1: "sub_sel_op1_use" -4: "sub_sel_op1_use" has unsupported operation: builtin.unregistered: llvm.select - 4: "sub_sel_op1_use" has unsupported operation: llvm.call 1: "fadd_sel_op0" -4: "fadd_sel_op0" has unsupported operation: builtin.unregistered: llvm.select +4: "fadd_sel_op0" has unsupported operation after optimization: builtin.unregistered: llvm.fadd 1: "fadd_sel_op0_use" -4: "fadd_sel_op0_use" has unsupported operation: builtin.unregistered: llvm.select - 4: "fadd_sel_op0_use" has unsupported operation: llvm.call 4: "fadd_sel_op0_use" has unsupported operation: builtin.unregistered: llvm.fadd 1: "fmul_sel_op1" -"fmul_sel_op1" contains vectors which are unsupported +8: "fmul_sel_op1" contains vectors which are unsupported 1: "fmul_sel_op1_use" 4: "fmul_sel_op1_use" has unsupported operation: builtin.unregistered: llvm.fadd -4: "fmul_sel_op1_use" has unsupported operation: builtin.unregistered: llvm.select - 4: "fmul_sel_op1_use" has unsupported operation: llvm.call 4: "fmul_sel_op1_use" has unsupported operation: builtin.unregistered: llvm.fmul 1: "ashr_sel_op1" -4: "ashr_sel_op1" has unsupported operation: builtin.unregistered: llvm.select +2: llvm.func +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.mlir.constant +2: builtin.unregistered: llvm.select +2: llvm.ashr +2: llvm.return 1: "ashr_sel_op1_use" -4: "ashr_sel_op1_use" has unsupported operation: builtin.unregistered: llvm.select - 4: "ashr_sel_op1_use" has unsupported operation: llvm.call diff --git a/SSA/Projects/InstCombine/tests/logs/bit-checks.txt b/SSA/Projects/InstCombine/tests/logs/bit-checks.txt index 73f39d0f3..847740c85 100644 --- a/SSA/Projects/InstCombine/tests/logs/bit-checks.txt +++ b/SSA/Projects/InstCombine/tests/logs/bit-checks.txt @@ -1,13 +1,9 @@ 1: "main1" 4: "main1" has unsupported operation: builtin.unregistered: llvm.icmp -4: "main1" has unsupported operation: builtin.unregistered: llvm.select - 1: "main1_logical" 4: "main1_logical" has unsupported operation: builtin.unregistered: llvm.icmp -4: "main1_logical" has unsupported operation: builtin.unregistered: llvm.select - 1: "main2" 4: "main2" has unsupported operation: builtin.unregistered: llvm.icmp @@ -48,8 +44,6 @@ 4: "main3e_like_logical" has unsupported operation: builtin.unregistered: llvm.icmp -4: "main3e_like_logical" has unsupported operation: builtin.unregistered: llvm.select - 4: "main3e_like_logical" has unsupported operation: builtin.unregistered: llvm.zext 1: "main3c" @@ -82,8 +76,6 @@ 4: "main3f_like_logical" has unsupported operation: builtin.unregistered: llvm.icmp -4: "main3f_like_logical" has unsupported operation: builtin.unregistered: llvm.select - 4: "main3f_like_logical" has unsupported operation: builtin.unregistered: llvm.zext 1: "main4" @@ -121,8 +113,6 @@ 4: "main4e_like_logical" has unsupported operation: builtin.unregistered: llvm.icmp -4: "main4e_like_logical" has unsupported operation: builtin.unregistered: llvm.select - 4: "main4e_like_logical" has unsupported operation: builtin.unregistered: llvm.zext 1: "main4c" @@ -155,8 +145,6 @@ 4: "main4f_like_logical" has unsupported operation: builtin.unregistered: llvm.icmp -4: "main4f_like_logical" has unsupported operation: builtin.unregistered: llvm.select - 4: "main4f_like_logical" has unsupported operation: builtin.unregistered: llvm.zext 1: "main5_like" @@ -169,8 +157,6 @@ 4: "main5_like_logical" has unsupported operation: builtin.unregistered: llvm.icmp -4: "main5_like_logical" has unsupported operation: builtin.unregistered: llvm.select - 4: "main5_like_logical" has unsupported operation: builtin.unregistered: llvm.zext 1: "main5e_like" @@ -183,8 +169,6 @@ 4: "main5e_like_logical" has unsupported operation: builtin.unregistered: llvm.icmp -4: "main5e_like_logical" has unsupported operation: builtin.unregistered: llvm.select - 4: "main5e_like_logical" has unsupported operation: builtin.unregistered: llvm.zext 1: "main5c_like" @@ -197,8 +181,6 @@ 4: "main5c_like_logical" has unsupported operation: builtin.unregistered: llvm.icmp -4: "main5c_like_logical" has unsupported operation: builtin.unregistered: llvm.select - 4: "main5c_like_logical" has unsupported operation: builtin.unregistered: llvm.zext 1: "main5f_like" @@ -211,8 +193,6 @@ 4: "main5f_like_logical" has unsupported operation: builtin.unregistered: llvm.icmp -4: "main5f_like_logical" has unsupported operation: builtin.unregistered: llvm.select - 4: "main5f_like_logical" has unsupported operation: builtin.unregistered: llvm.zext 1: "main6" @@ -265,8 +245,6 @@ 4: "main7a_logical" has unsupported operation: builtin.unregistered: llvm.icmp -4: "main7a_logical" has unsupported operation: builtin.unregistered: llvm.select - 4: "main7a_logical" has unsupported operation: builtin.unregistered: llvm.zext 1: "main7b" @@ -279,8 +257,6 @@ 4: "main7b_logical" has unsupported operation: builtin.unregistered: llvm.icmp -4: "main7b_logical" has unsupported operation: builtin.unregistered: llvm.select - 4: "main7b_logical" has unsupported operation: builtin.unregistered: llvm.zext 1: "main7c" @@ -293,8 +269,6 @@ 4: "main7c_logical" has unsupported operation: builtin.unregistered: llvm.icmp -4: "main7c_logical" has unsupported operation: builtin.unregistered: llvm.select - 4: "main7c_logical" has unsupported operation: builtin.unregistered: llvm.zext 1: "main7d" @@ -307,8 +281,6 @@ 4: "main7d_logical" has unsupported operation: builtin.unregistered: llvm.icmp -4: "main7d_logical" has unsupported operation: builtin.unregistered: llvm.select - 4: "main7d_logical" has unsupported operation: builtin.unregistered: llvm.zext 1: "main7e" @@ -321,8 +293,6 @@ 4: "main7e_logical" has unsupported operation: builtin.unregistered: llvm.icmp -4: "main7e_logical" has unsupported operation: builtin.unregistered: llvm.select - 4: "main7e_logical" has unsupported operation: builtin.unregistered: llvm.zext 1: "main7f" @@ -335,8 +305,6 @@ 4: "main7f_logical" has unsupported operation: builtin.unregistered: llvm.icmp -4: "main7f_logical" has unsupported operation: builtin.unregistered: llvm.select - 4: "main7f_logical" has unsupported operation: builtin.unregistered: llvm.zext 1: "main7g" @@ -349,104 +317,66 @@ 4: "main7g_logical" has unsupported operation: builtin.unregistered: llvm.icmp -4: "main7g_logical" has unsupported operation: builtin.unregistered: llvm.select - 4: "main7g_logical" has unsupported operation: builtin.unregistered: llvm.zext 1: "main8" 4: "main8" has unsupported operation: builtin.unregistered: llvm.icmp -4: "main8" has unsupported operation: builtin.unregistered: llvm.select - 1: "main8_logical" 4: "main8_logical" has unsupported operation: builtin.unregistered: llvm.icmp -4: "main8_logical" has unsupported operation: builtin.unregistered: llvm.select - 1: "main9" 4: "main9" has unsupported operation: builtin.unregistered: llvm.icmp -4: "main9" has unsupported operation: builtin.unregistered: llvm.select - 1: "main9_logical" 4: "main9_logical" has unsupported operation: builtin.unregistered: llvm.icmp -4: "main9_logical" has unsupported operation: builtin.unregistered: llvm.select - 1: "main10" 4: "main10" has unsupported operation: builtin.unregistered: llvm.icmp -4: "main10" has unsupported operation: builtin.unregistered: llvm.select - 1: "main10_logical" 4: "main10_logical" has unsupported operation: builtin.unregistered: llvm.icmp -4: "main10_logical" has unsupported operation: builtin.unregistered: llvm.select - 1: "main11" 4: "main11" has unsupported operation: builtin.unregistered: llvm.icmp -4: "main11" has unsupported operation: builtin.unregistered: llvm.select - 1: "main11_logical" 4: "main11_logical" has unsupported operation: builtin.unregistered: llvm.icmp -4: "main11_logical" has unsupported operation: builtin.unregistered: llvm.select - 1: "main12" 4: "main12" has unsupported operation: builtin.unregistered: llvm.icmp -4: "main12" has unsupported operation: builtin.unregistered: llvm.select - 1: "main12_logical" 4: "main12_logical" has unsupported operation: builtin.unregistered: llvm.icmp -4: "main12_logical" has unsupported operation: builtin.unregistered: llvm.select - 1: "main13" 4: "main13" has unsupported operation: builtin.unregistered: llvm.icmp -4: "main13" has unsupported operation: builtin.unregistered: llvm.select - 1: "main13_logical" 4: "main13_logical" has unsupported operation: builtin.unregistered: llvm.icmp -4: "main13_logical" has unsupported operation: builtin.unregistered: llvm.select - 1: "main14" 4: "main14" has unsupported operation: builtin.unregistered: llvm.icmp -4: "main14" has unsupported operation: builtin.unregistered: llvm.select - 1: "main14_logical" 4: "main14_logical" has unsupported operation: builtin.unregistered: llvm.icmp -4: "main14_logical" has unsupported operation: builtin.unregistered: llvm.select - 1: "main15" 4: "main15" has unsupported operation: builtin.unregistered: llvm.icmp -4: "main15" has unsupported operation: builtin.unregistered: llvm.select - 1: "main15_logical" 4: "main15_logical" has unsupported operation: builtin.unregistered: llvm.icmp -4: "main15_logical" has unsupported operation: builtin.unregistered: llvm.select - 1: "no_masks_with_logical_or" 4: "no_masks_with_logical_or" has unsupported operation: builtin.unregistered: llvm.icmp 4: "no_masks_with_logical_or" has unsupported operation: builtin.unregistered: llvm.icmp -4: "no_masks_with_logical_or" has unsupported operation: builtin.unregistered: llvm.select - 1: "no_masks_with_logical_or2" 4: "no_masks_with_logical_or2" has unsupported operation: builtin.unregistered: llvm.icmp 4: "no_masks_with_logical_or2" has unsupported operation: builtin.unregistered: llvm.icmp -4: "no_masks_with_logical_or2" has unsupported operation: builtin.unregistered: llvm.select - 1: "no_masks_with_logical_or_vec_poison1" 4: "no_masks_with_logical_or_vec_poison1" has unsupported operation: builtin.unregistered: llvm.mlir.poison @@ -460,8 +390,6 @@ 4: "no_masks_with_logical_or_vec_poison1" has unsupported operation: builtin.unregistered: llvm.icmp -4: "no_masks_with_logical_or_vec_poison1" has unsupported operation: builtin.unregistered: llvm.select - 1: "no_masks_with_logical_or_vec_poison2" 4: "no_masks_with_logical_or_vec_poison2" has unsupported operation: builtin.unregistered: llvm.mlir.poison @@ -475,8 +403,6 @@ 4: "no_masks_with_logical_or_vec_poison2" has unsupported operation: builtin.unregistered: llvm.icmp -4: "no_masks_with_logical_or_vec_poison2" has unsupported operation: builtin.unregistered: llvm.select - 1: "only_one_masked" 4: "only_one_masked" has unsupported operation: builtin.unregistered: llvm.icmp diff --git a/SSA/Projects/InstCombine/tests/logs/bit_ceil.txt b/SSA/Projects/InstCombine/tests/logs/bit_ceil.txt index b26794a2c..22b94b66f 100644 --- a/SSA/Projects/InstCombine/tests/logs/bit_ceil.txt +++ b/SSA/Projects/InstCombine/tests/logs/bit_ceil.txt @@ -27,29 +27,21 @@ 4: "bit_ceil_wrong_select_constant" has unsupported operation: builtin.unregistered: llvm.icmp -4: "bit_ceil_wrong_select_constant" has unsupported operation: builtin.unregistered: llvm.select - 1: "bit_ceil_32_wrong_cond" 4: "bit_ceil_32_wrong_cond" has unsupported operation: builtin.unregistered: llvm.intr.ctlz 4: "bit_ceil_32_wrong_cond" has unsupported operation: builtin.unregistered: llvm.icmp -4: "bit_ceil_32_wrong_cond" has unsupported operation: builtin.unregistered: llvm.select - 1: "bit_ceil_wrong_sub_constant" 4: "bit_ceil_wrong_sub_constant" has unsupported operation: builtin.unregistered: llvm.intr.ctlz 4: "bit_ceil_wrong_sub_constant" has unsupported operation: builtin.unregistered: llvm.icmp -4: "bit_ceil_wrong_sub_constant" has unsupported operation: builtin.unregistered: llvm.select - 1: "bit_ceil_32_shl_used_twice" 4: "bit_ceil_32_shl_used_twice" has unsupported operation: builtin.unregistered: llvm.intr.ctlz 4: "bit_ceil_32_shl_used_twice" has unsupported operation: builtin.unregistered: llvm.icmp -4: "bit_ceil_32_shl_used_twice" has unsupported operation: builtin.unregistered: llvm.select - 4: "bit_ceil_32_shl_used_twice" has unsupported operation: llvm.store 1: "bit_ceil_32_sub_used_twice" @@ -57,8 +49,6 @@ 4: "bit_ceil_32_sub_used_twice" has unsupported operation: builtin.unregistered: llvm.icmp -4: "bit_ceil_32_sub_used_twice" has unsupported operation: builtin.unregistered: llvm.select - 4: "bit_ceil_32_sub_used_twice" has unsupported operation: llvm.store 1: "bit_ceil_v4i32" diff --git a/SSA/Projects/InstCombine/tests/logs/bit_floor.txt b/SSA/Projects/InstCombine/tests/logs/bit_floor.txt index 6782976f1..5aaa2bc48 100644 --- a/SSA/Projects/InstCombine/tests/logs/bit_floor.txt +++ b/SSA/Projects/InstCombine/tests/logs/bit_floor.txt @@ -3,29 +3,21 @@ 4: "bit_floor_32" has unsupported operation: builtin.unregistered: llvm.intr.ctlz -4: "bit_floor_32" has unsupported operation: builtin.unregistered: llvm.select - 1: "bit_floor_64" 4: "bit_floor_64" has unsupported operation: builtin.unregistered: llvm.icmp 4: "bit_floor_64" has unsupported operation: builtin.unregistered: llvm.intr.ctlz -4: "bit_floor_64" has unsupported operation: builtin.unregistered: llvm.select - 1: "bit_floor_commuted_operands" 4: "bit_floor_commuted_operands" has unsupported operation: builtin.unregistered: llvm.icmp 4: "bit_floor_commuted_operands" has unsupported operation: builtin.unregistered: llvm.intr.ctlz -4: "bit_floor_commuted_operands" has unsupported operation: builtin.unregistered: llvm.select - 1: "bit_floor_lshr_used_twice" 4: "bit_floor_lshr_used_twice" has unsupported operation: builtin.unregistered: llvm.icmp 4: "bit_floor_lshr_used_twice" has unsupported operation: builtin.unregistered: llvm.intr.ctlz -4: "bit_floor_lshr_used_twice" has unsupported operation: builtin.unregistered: llvm.select - 4: "bit_floor_lshr_used_twice" has unsupported operation: llvm.store 1: "bit_floor_ctlz_used_twice" @@ -33,8 +25,6 @@ 4: "bit_floor_ctlz_used_twice" has unsupported operation: builtin.unregistered: llvm.intr.ctlz -4: "bit_floor_ctlz_used_twice" has unsupported operation: builtin.unregistered: llvm.select - 4: "bit_floor_ctlz_used_twice" has unsupported operation: llvm.store 1: "bit_floor_sub_used_twice" @@ -42,8 +32,6 @@ 4: "bit_floor_sub_used_twice" has unsupported operation: builtin.unregistered: llvm.intr.ctlz -4: "bit_floor_sub_used_twice" has unsupported operation: builtin.unregistered: llvm.select - 4: "bit_floor_sub_used_twice" has unsupported operation: llvm.store 1: "bit_floor_shl_used_twice" @@ -51,8 +39,6 @@ 4: "bit_floor_shl_used_twice" has unsupported operation: builtin.unregistered: llvm.intr.ctlz -4: "bit_floor_shl_used_twice" has unsupported operation: builtin.unregistered: llvm.select - 4: "bit_floor_shl_used_twice" has unsupported operation: llvm.store 1: "bit_floor_v4i32" @@ -60,5 +46,3 @@ 4: "bit_floor_v4i32" has unsupported operation: builtin.unregistered: llvm.intr.ctlz -4: "bit_floor_v4i32" has unsupported operation: builtin.unregistered: llvm.select - diff --git a/SSA/Projects/InstCombine/tests/logs/bitreverse.txt b/SSA/Projects/InstCombine/tests/logs/bitreverse.txt index 3cffa16be..6db8cace9 100644 --- a/SSA/Projects/InstCombine/tests/logs/bitreverse.txt +++ b/SSA/Projects/InstCombine/tests/logs/bitreverse.txt @@ -77,10 +77,8 @@ 4: "rev_i1" has unsupported operation: llvm.call -4: "rev_i1" has unsupported operation: builtin.unregistered: llvm.select - 1: "rev_v2i1" -4: "rev_v2i1" has unsupported operation: builtin.unregistered: llvm.select +8: "rev_v2i1" contains vectors which are unsupported 1: "rev_i2" 4: "rev_i2" has unsupported operation: builtin.unregistered: llvm.zext diff --git a/SSA/Projects/InstCombine/tests/logs/branch.txt b/SSA/Projects/InstCombine/tests/logs/branch.txt index 034eb387c..de9fe38e4 100644 --- a/SSA/Projects/InstCombine/tests/logs/branch.txt +++ b/SSA/Projects/InstCombine/tests/logs/branch.txt @@ -34,30 +34,20 @@ 4: "test02" has unsupported operation: builtin.unregistered: llvm.br 1: "logical_and_not" -4: "logical_and_not" has unsupported operation: builtin.unregistered: llvm.select - 4: "logical_and_not" has unsupported operation: builtin.unregistered: llvm.cond_br 1: "logical_and_or" -4: "logical_and_or" has unsupported operation: builtin.unregistered: llvm.select - 4: "logical_and_or" has unsupported operation: builtin.unregistered: llvm.cond_br 1: "logical_or_not" -4: "logical_or_not" has unsupported operation: builtin.unregistered: llvm.select - 4: "logical_or_not" has unsupported operation: builtin.unregistered: llvm.cond_br 1: "logical_and_not_use1" 4: "logical_and_not_use1" has unsupported operation: llvm.call -4: "logical_and_not_use1" has unsupported operation: builtin.unregistered: llvm.select - 4: "logical_and_not_use1" has unsupported operation: builtin.unregistered: llvm.cond_br 1: "logical_and_not_use2" -4: "logical_and_not_use2" has unsupported operation: builtin.unregistered: llvm.select - 4: "logical_and_not_use2" has unsupported operation: llvm.call 4: "logical_and_not_use2" has unsupported operation: builtin.unregistered: llvm.cond_br diff --git a/SSA/Projects/InstCombine/tests/logs/bswap-fold.txt b/SSA/Projects/InstCombine/tests/logs/bswap-fold.txt index d8d1010cc..bd5fe4d44 100644 --- a/SSA/Projects/InstCombine/tests/logs/bswap-fold.txt +++ b/SSA/Projects/InstCombine/tests/logs/bswap-fold.txt @@ -249,10 +249,10 @@ 4: "bs_active_high7" has unsupported operation after optimization: builtin.unregistered: llvm.intr.bswap 1: "bs_active_high4" -"bs_active_high4" contains vectors which are unsupported +8: "bs_active_high4" contains vectors which are unsupported 1: "bs_active_high_different" -"bs_active_high_different" contains vectors which are unsupported +8: "bs_active_high_different" contains vectors which are unsupported 1: "bs_active_high_different_negative" 4: "bs_active_high_different_negative" has unsupported operation: builtin.unregistered: llvm.intr.bswap @@ -281,7 +281,7 @@ 4: "bs_active_byte_3h" has unsupported operation after optimization: builtin.unregistered: llvm.intr.bswap 1: "bs_active_byte_3h_v2" -"bs_active_byte_3h_v2" contains vectors which are unsupported +8: "bs_active_byte_3h_v2" contains vectors which are unsupported 1: "bs_active_byte_78h" 4: "bs_active_byte_78h" has unsupported operation: builtin.unregistered: llvm.intr.bswap @@ -290,10 +290,10 @@ 4: "bs_active_low1" has unsupported operation after optimization: builtin.unregistered: llvm.intr.bswap 1: "bs_active_low8" -"bs_active_low8" contains vectors which are unsupported +8: "bs_active_low8" contains vectors which are unsupported 1: "bs_active_low_different" -"bs_active_low_different" contains vectors which are unsupported +8: "bs_active_low_different" contains vectors which are unsupported 1: "bs_active_low_different_negative" 4: "bs_active_low_different_negative" has unsupported operation: builtin.unregistered: llvm.intr.bswap @@ -322,7 +322,7 @@ 4: "bs_active_byte_2l" has unsupported operation after optimization: builtin.unregistered: llvm.intr.bswap 1: "bs_active_byte_2l_v2" -"bs_active_byte_2l_v2" contains vectors which are unsupported +8: "bs_active_byte_2l_v2" contains vectors which are unsupported 1: "bs_active_byte_12l" 4: "bs_active_byte_12l" has unsupported operation: builtin.unregistered: llvm.intr.bswap diff --git a/SSA/Projects/InstCombine/tests/logs/canonicalize-ashr-shl-to-masking.txt b/SSA/Projects/InstCombine/tests/logs/canonicalize-ashr-shl-to-masking.txt index 82905c5f9..6f5365f49 100644 --- a/SSA/Projects/InstCombine/tests/logs/canonicalize-ashr-shl-to-masking.txt +++ b/SSA/Projects/InstCombine/tests/logs/canonicalize-ashr-shl-to-masking.txt @@ -231,10 +231,10 @@ 2: llvm.return 1: "positive_samevar_vec" -"positive_samevar_vec" contains vectors which are unsupported +8: "positive_samevar_vec" contains vectors which are unsupported 1: "positive_sameconst_vec" -"positive_sameconst_vec" contains vectors which are unsupported +8: "positive_sameconst_vec" contains vectors which are unsupported 1: "positive_sameconst_vec_undef0" 4: "positive_sameconst_vec_undef0" has unsupported operation: llvm.mlir.undef @@ -270,7 +270,7 @@ 4: "positive_sameconst_vec_undef2" has unsupported operation: builtin.unregistered: llvm.insertelement 1: "positive_biggerashr_vec" -"positive_biggerashr_vec" contains vectors which are unsupported +8: "positive_biggerashr_vec" contains vectors which are unsupported 1: "positive_biggerashr_vec_undef0" 4: "positive_biggerashr_vec_undef0" has unsupported operation: llvm.mlir.undef @@ -314,7 +314,7 @@ 4: "positive_biggerashr_vec_undef2" has unsupported operation: builtin.unregistered: llvm.insertelement 1: "positive_biggershl_vec" -"positive_biggershl_vec" contains vectors which are unsupported +8: "positive_biggershl_vec" contains vectors which are unsupported 1: "positive_biggershl_vec_undef0" 4: "positive_biggershl_vec_undef0" has unsupported operation: llvm.mlir.undef diff --git a/SSA/Projects/InstCombine/tests/logs/canonicalize-clamp-like-pattern-between-negative-and-positive-thresholds.txt b/SSA/Projects/InstCombine/tests/logs/canonicalize-clamp-like-pattern-between-negative-and-positive-thresholds.txt index 9b109e77b..8e5cbb80d 100644 --- a/SSA/Projects/InstCombine/tests/logs/canonicalize-clamp-like-pattern-between-negative-and-positive-thresholds.txt +++ b/SSA/Projects/InstCombine/tests/logs/canonicalize-clamp-like-pattern-between-negative-and-positive-thresholds.txt @@ -3,110 +3,62 @@ 4: "t0_ult_slt_128" has unsupported operation: builtin.unregistered: llvm.icmp -4: "t0_ult_slt_128" has unsupported operation: builtin.unregistered: llvm.select - -4: "t0_ult_slt_128" has unsupported operation: builtin.unregistered: llvm.select - 1: "t1_ult_slt_0" 4: "t1_ult_slt_0" has unsupported operation: builtin.unregistered: llvm.icmp 4: "t1_ult_slt_0" has unsupported operation: builtin.unregistered: llvm.icmp -4: "t1_ult_slt_0" has unsupported operation: builtin.unregistered: llvm.select - -4: "t1_ult_slt_0" has unsupported operation: builtin.unregistered: llvm.select - 1: "t2_ult_sgt_128" 4: "t2_ult_sgt_128" has unsupported operation: builtin.unregistered: llvm.icmp 4: "t2_ult_sgt_128" has unsupported operation: builtin.unregistered: llvm.icmp -4: "t2_ult_sgt_128" has unsupported operation: builtin.unregistered: llvm.select - -4: "t2_ult_sgt_128" has unsupported operation: builtin.unregistered: llvm.select - 1: "t3_ult_sgt_neg1" 4: "t3_ult_sgt_neg1" has unsupported operation: builtin.unregistered: llvm.icmp 4: "t3_ult_sgt_neg1" has unsupported operation: builtin.unregistered: llvm.icmp -4: "t3_ult_sgt_neg1" has unsupported operation: builtin.unregistered: llvm.select - -4: "t3_ult_sgt_neg1" has unsupported operation: builtin.unregistered: llvm.select - 1: "t4_ugt_slt_128" 4: "t4_ugt_slt_128" has unsupported operation: builtin.unregistered: llvm.icmp 4: "t4_ugt_slt_128" has unsupported operation: builtin.unregistered: llvm.icmp -4: "t4_ugt_slt_128" has unsupported operation: builtin.unregistered: llvm.select - -4: "t4_ugt_slt_128" has unsupported operation: builtin.unregistered: llvm.select - 1: "t5_ugt_slt_0" 4: "t5_ugt_slt_0" has unsupported operation: builtin.unregistered: llvm.icmp 4: "t5_ugt_slt_0" has unsupported operation: builtin.unregistered: llvm.icmp -4: "t5_ugt_slt_0" has unsupported operation: builtin.unregistered: llvm.select - -4: "t5_ugt_slt_0" has unsupported operation: builtin.unregistered: llvm.select - 1: "t6_ugt_sgt_128" 4: "t6_ugt_sgt_128" has unsupported operation: builtin.unregistered: llvm.icmp 4: "t6_ugt_sgt_128" has unsupported operation: builtin.unregistered: llvm.icmp -4: "t6_ugt_sgt_128" has unsupported operation: builtin.unregistered: llvm.select - -4: "t6_ugt_sgt_128" has unsupported operation: builtin.unregistered: llvm.select - 1: "t7_ugt_sgt_neg1" 4: "t7_ugt_sgt_neg1" has unsupported operation: builtin.unregistered: llvm.icmp 4: "t7_ugt_sgt_neg1" has unsupported operation: builtin.unregistered: llvm.icmp -4: "t7_ugt_sgt_neg1" has unsupported operation: builtin.unregistered: llvm.select - -4: "t7_ugt_sgt_neg1" has unsupported operation: builtin.unregistered: llvm.select - 1: "n8_ult_slt_129" 4: "n8_ult_slt_129" has unsupported operation: builtin.unregistered: llvm.icmp -4: "n8_ult_slt_129" has unsupported operation: builtin.unregistered: llvm.select - 4: "n8_ult_slt_129" has unsupported operation: builtin.unregistered: llvm.icmp -4: "n8_ult_slt_129" has unsupported operation: builtin.unregistered: llvm.select - 1: "n9_ult_slt_neg17" 4: "n9_ult_slt_neg17" has unsupported operation: builtin.unregistered: llvm.icmp -4: "n9_ult_slt_neg17" has unsupported operation: builtin.unregistered: llvm.select - 4: "n9_ult_slt_neg17" has unsupported operation: builtin.unregistered: llvm.icmp -4: "n9_ult_slt_neg17" has unsupported operation: builtin.unregistered: llvm.select - 1: "n10_ugt_slt" 4: "n10_ugt_slt" has unsupported operation: builtin.unregistered: llvm.icmp -4: "n10_ugt_slt" has unsupported operation: builtin.unregistered: llvm.select - 1: "n11_uge_slt" 4: "n11_uge_slt" has unsupported operation: builtin.unregistered: llvm.icmp -4: "n11_uge_slt" has unsupported operation: builtin.unregistered: llvm.select - 1: "n12_ule_slt" 4: "n12_ule_slt" has unsupported operation: builtin.unregistered: llvm.icmp -4: "n12_ule_slt" has unsupported operation: builtin.unregistered: llvm.select - 4: "n12_ule_slt" has unsupported operation: builtin.unregistered: llvm.icmp -4: "n12_ule_slt" has unsupported operation: builtin.unregistered: llvm.select - 1: "use32" 5: "use32" is empty @@ -122,21 +74,13 @@ 4: "t10_oneuse0" has unsupported operation: builtin.unregistered: llvm.icmp -4: "t10_oneuse0" has unsupported operation: builtin.unregistered: llvm.select - -4: "t10_oneuse0" has unsupported operation: builtin.unregistered: llvm.select - 1: "n11_oneuse1" 4: "n11_oneuse1" has unsupported operation: builtin.unregistered: llvm.icmp -4: "n11_oneuse1" has unsupported operation: builtin.unregistered: llvm.select - 4: "n11_oneuse1" has unsupported operation: llvm.call 4: "n11_oneuse1" has unsupported operation: builtin.unregistered: llvm.icmp -4: "n11_oneuse1" has unsupported operation: builtin.unregistered: llvm.select - 1: "t12_oneuse2" 4: "t12_oneuse2" has unsupported operation: llvm.call @@ -144,97 +88,67 @@ 4: "t12_oneuse2" has unsupported operation: builtin.unregistered: llvm.icmp -4: "t12_oneuse2" has unsupported operation: builtin.unregistered: llvm.select - -4: "t12_oneuse2" has unsupported operation: builtin.unregistered: llvm.select - 1: "n13_oneuse3" 4: "n13_oneuse3" has unsupported operation: builtin.unregistered: llvm.icmp -4: "n13_oneuse3" has unsupported operation: builtin.unregistered: llvm.select - 4: "n13_oneuse3" has unsupported operation: builtin.unregistered: llvm.icmp 4: "n13_oneuse3" has unsupported operation: llvm.call -4: "n13_oneuse3" has unsupported operation: builtin.unregistered: llvm.select - 1: "n14_oneuse4" 4: "n14_oneuse4" has unsupported operation: builtin.unregistered: llvm.icmp 4: "n14_oneuse4" has unsupported operation: llvm.call -4: "n14_oneuse4" has unsupported operation: builtin.unregistered: llvm.select - 4: "n14_oneuse4" has unsupported operation: llvm.call 4: "n14_oneuse4" has unsupported operation: builtin.unregistered: llvm.icmp -4: "n14_oneuse4" has unsupported operation: builtin.unregistered: llvm.select - 1: "n15_oneuse5" 4: "n15_oneuse5" has unsupported operation: builtin.unregistered: llvm.icmp 4: "n15_oneuse5" has unsupported operation: llvm.call -4: "n15_oneuse5" has unsupported operation: builtin.unregistered: llvm.select - 4: "n15_oneuse5" has unsupported operation: llvm.call 4: "n15_oneuse5" has unsupported operation: builtin.unregistered: llvm.icmp -4: "n15_oneuse5" has unsupported operation: builtin.unregistered: llvm.select - 1: "n16_oneuse6" 4: "n16_oneuse6" has unsupported operation: builtin.unregistered: llvm.icmp 4: "n16_oneuse6" has unsupported operation: llvm.call -4: "n16_oneuse6" has unsupported operation: builtin.unregistered: llvm.select - 4: "n16_oneuse6" has unsupported operation: builtin.unregistered: llvm.icmp 4: "n16_oneuse6" has unsupported operation: llvm.call -4: "n16_oneuse6" has unsupported operation: builtin.unregistered: llvm.select - 1: "n17_oneuse7" 4: "n17_oneuse7" has unsupported operation: builtin.unregistered: llvm.icmp 4: "n17_oneuse7" has unsupported operation: llvm.call -4: "n17_oneuse7" has unsupported operation: builtin.unregistered: llvm.select - 4: "n17_oneuse7" has unsupported operation: llvm.call 4: "n17_oneuse7" has unsupported operation: llvm.call 4: "n17_oneuse7" has unsupported operation: builtin.unregistered: llvm.icmp -4: "n17_oneuse7" has unsupported operation: builtin.unregistered: llvm.select - 1: "n18_oneuse8" 4: "n18_oneuse8" has unsupported operation: builtin.unregistered: llvm.icmp 4: "n18_oneuse8" has unsupported operation: llvm.call -4: "n18_oneuse8" has unsupported operation: builtin.unregistered: llvm.select - 4: "n18_oneuse8" has unsupported operation: llvm.call 4: "n18_oneuse8" has unsupported operation: builtin.unregistered: llvm.icmp 4: "n18_oneuse8" has unsupported operation: llvm.call -4: "n18_oneuse8" has unsupported operation: builtin.unregistered: llvm.select - 1: "n19_oneuse9" 4: "n19_oneuse9" has unsupported operation: builtin.unregistered: llvm.icmp 4: "n19_oneuse9" has unsupported operation: llvm.call -4: "n19_oneuse9" has unsupported operation: builtin.unregistered: llvm.select - 4: "n19_oneuse9" has unsupported operation: llvm.call 4: "n19_oneuse9" has unsupported operation: llvm.call @@ -243,26 +157,16 @@ 4: "n19_oneuse9" has unsupported operation: llvm.call -4: "n19_oneuse9" has unsupported operation: builtin.unregistered: llvm.select - 1: "t20_ult_slt_vec_splat" 4: "t20_ult_slt_vec_splat" has unsupported operation: builtin.unregistered: llvm.icmp 4: "t20_ult_slt_vec_splat" has unsupported operation: builtin.unregistered: llvm.icmp -4: "t20_ult_slt_vec_splat" has unsupported operation: builtin.unregistered: llvm.select - -4: "t20_ult_slt_vec_splat" has unsupported operation: builtin.unregistered: llvm.select - 1: "t21_ult_slt_vec_nonsplat" 4: "t21_ult_slt_vec_nonsplat" has unsupported operation: builtin.unregistered: llvm.icmp 4: "t21_ult_slt_vec_nonsplat" has unsupported operation: builtin.unregistered: llvm.icmp -4: "t21_ult_slt_vec_nonsplat" has unsupported operation: builtin.unregistered: llvm.select - -4: "t21_ult_slt_vec_nonsplat" has unsupported operation: builtin.unregistered: llvm.select - 1: "use2xi1" 5: "use2xi1" is empty @@ -272,14 +176,10 @@ 1: "t22_uge_slt" 4: "t22_uge_slt" has unsupported operation: builtin.unregistered: llvm.icmp -4: "t22_uge_slt" has unsupported operation: builtin.unregistered: llvm.select - 4: "t22_uge_slt" has unsupported operation: builtin.unregistered: llvm.icmp 4: "t22_uge_slt" has unsupported operation: llvm.call -4: "t22_uge_slt" has unsupported operation: builtin.unregistered: llvm.select - 1: "t23_ult_sge" 4: "t23_ult_sge" has unsupported operation: builtin.unregistered: llvm.icmp @@ -289,7 +189,3 @@ 4: "t23_ult_sge" has unsupported operation: builtin.unregistered: llvm.icmp -4: "t23_ult_sge" has unsupported operation: builtin.unregistered: llvm.select - -4: "t23_ult_sge" has unsupported operation: builtin.unregistered: llvm.select - diff --git a/SSA/Projects/InstCombine/tests/logs/canonicalize-clamp-like-pattern-between-zero-and-positive-threshold.txt b/SSA/Projects/InstCombine/tests/logs/canonicalize-clamp-like-pattern-between-zero-and-positive-threshold.txt index 85ece0cec..2d206aaee 100644 --- a/SSA/Projects/InstCombine/tests/logs/canonicalize-clamp-like-pattern-between-zero-and-positive-threshold.txt +++ b/SSA/Projects/InstCombine/tests/logs/canonicalize-clamp-like-pattern-between-zero-and-positive-threshold.txt @@ -3,91 +3,51 @@ 4: "t0_ult_slt_65536" has unsupported operation: builtin.unregistered: llvm.icmp -4: "t0_ult_slt_65536" has unsupported operation: builtin.unregistered: llvm.select - -4: "t0_ult_slt_65536" has unsupported operation: builtin.unregistered: llvm.select - 1: "t1_ult_slt_0" 4: "t1_ult_slt_0" has unsupported operation: builtin.unregistered: llvm.icmp 4: "t1_ult_slt_0" has unsupported operation: builtin.unregistered: llvm.icmp -4: "t1_ult_slt_0" has unsupported operation: builtin.unregistered: llvm.select - -4: "t1_ult_slt_0" has unsupported operation: builtin.unregistered: llvm.select - 1: "t2_ult_sgt_65536" 4: "t2_ult_sgt_65536" has unsupported operation: builtin.unregistered: llvm.icmp 4: "t2_ult_sgt_65536" has unsupported operation: builtin.unregistered: llvm.icmp -4: "t2_ult_sgt_65536" has unsupported operation: builtin.unregistered: llvm.select - -4: "t2_ult_sgt_65536" has unsupported operation: builtin.unregistered: llvm.select - 1: "t3_ult_sgt_neg1" 4: "t3_ult_sgt_neg1" has unsupported operation: builtin.unregistered: llvm.icmp 4: "t3_ult_sgt_neg1" has unsupported operation: builtin.unregistered: llvm.icmp -4: "t3_ult_sgt_neg1" has unsupported operation: builtin.unregistered: llvm.select - -4: "t3_ult_sgt_neg1" has unsupported operation: builtin.unregistered: llvm.select - 1: "t4_ugt_slt_65536" 4: "t4_ugt_slt_65536" has unsupported operation: builtin.unregistered: llvm.icmp 4: "t4_ugt_slt_65536" has unsupported operation: builtin.unregistered: llvm.icmp -4: "t4_ugt_slt_65536" has unsupported operation: builtin.unregistered: llvm.select - -4: "t4_ugt_slt_65536" has unsupported operation: builtin.unregistered: llvm.select - 1: "t5_ugt_slt_0" 4: "t5_ugt_slt_0" has unsupported operation: builtin.unregistered: llvm.icmp 4: "t5_ugt_slt_0" has unsupported operation: builtin.unregistered: llvm.icmp -4: "t5_ugt_slt_0" has unsupported operation: builtin.unregistered: llvm.select - -4: "t5_ugt_slt_0" has unsupported operation: builtin.unregistered: llvm.select - 1: "t6_ugt_sgt_65536" 4: "t6_ugt_sgt_65536" has unsupported operation: builtin.unregistered: llvm.icmp 4: "t6_ugt_sgt_65536" has unsupported operation: builtin.unregistered: llvm.icmp -4: "t6_ugt_sgt_65536" has unsupported operation: builtin.unregistered: llvm.select - -4: "t6_ugt_sgt_65536" has unsupported operation: builtin.unregistered: llvm.select - 1: "t7_ugt_sgt_neg1" 4: "t7_ugt_sgt_neg1" has unsupported operation: builtin.unregistered: llvm.icmp 4: "t7_ugt_sgt_neg1" has unsupported operation: builtin.unregistered: llvm.icmp -4: "t7_ugt_sgt_neg1" has unsupported operation: builtin.unregistered: llvm.select - -4: "t7_ugt_sgt_neg1" has unsupported operation: builtin.unregistered: llvm.select - 1: "n8_ult_slt_65537" 4: "n8_ult_slt_65537" has unsupported operation: builtin.unregistered: llvm.icmp -4: "n8_ult_slt_65537" has unsupported operation: builtin.unregistered: llvm.select - 4: "n8_ult_slt_65537" has unsupported operation: builtin.unregistered: llvm.icmp -4: "n8_ult_slt_65537" has unsupported operation: builtin.unregistered: llvm.select - 1: "n9_ult_slt_neg1" 4: "n9_ult_slt_neg1" has unsupported operation: builtin.unregistered: llvm.icmp -4: "n9_ult_slt_neg1" has unsupported operation: builtin.unregistered: llvm.select - 4: "n9_ult_slt_neg1" has unsupported operation: builtin.unregistered: llvm.icmp -4: "n9_ult_slt_neg1" has unsupported operation: builtin.unregistered: llvm.select - 1: "use32" 5: "use32" is empty @@ -97,143 +57,91 @@ 1: "n10_oneuse0" 4: "n10_oneuse0" has unsupported operation: builtin.unregistered: llvm.icmp -4: "n10_oneuse0" has unsupported operation: builtin.unregistered: llvm.select - 4: "n10_oneuse0" has unsupported operation: builtin.unregistered: llvm.icmp 4: "n10_oneuse0" has unsupported operation: llvm.call -4: "n10_oneuse0" has unsupported operation: builtin.unregistered: llvm.select - 1: "n11_oneuse1" 4: "n11_oneuse1" has unsupported operation: builtin.unregistered: llvm.icmp 4: "n11_oneuse1" has unsupported operation: llvm.call -4: "n11_oneuse1" has unsupported operation: builtin.unregistered: llvm.select - 4: "n11_oneuse1" has unsupported operation: builtin.unregistered: llvm.icmp -4: "n11_oneuse1" has unsupported operation: builtin.unregistered: llvm.select - 1: "n12_oneuse2" 4: "n12_oneuse2" has unsupported operation: builtin.unregistered: llvm.icmp -4: "n12_oneuse2" has unsupported operation: builtin.unregistered: llvm.select - 4: "n12_oneuse2" has unsupported operation: llvm.call 4: "n12_oneuse2" has unsupported operation: builtin.unregistered: llvm.icmp -4: "n12_oneuse2" has unsupported operation: builtin.unregistered: llvm.select - 1: "n13_oneuse3" 4: "n13_oneuse3" has unsupported operation: builtin.unregistered: llvm.icmp 4: "n13_oneuse3" has unsupported operation: llvm.call -4: "n13_oneuse3" has unsupported operation: builtin.unregistered: llvm.select - 4: "n13_oneuse3" has unsupported operation: builtin.unregistered: llvm.icmp 4: "n13_oneuse3" has unsupported operation: llvm.call -4: "n13_oneuse3" has unsupported operation: builtin.unregistered: llvm.select - 1: "n14_oneuse4" 4: "n14_oneuse4" has unsupported operation: builtin.unregistered: llvm.icmp 4: "n14_oneuse4" has unsupported operation: llvm.call -4: "n14_oneuse4" has unsupported operation: builtin.unregistered: llvm.select - 4: "n14_oneuse4" has unsupported operation: llvm.call 4: "n14_oneuse4" has unsupported operation: builtin.unregistered: llvm.icmp -4: "n14_oneuse4" has unsupported operation: builtin.unregistered: llvm.select - 1: "n15_oneuse5" 4: "n15_oneuse5" has unsupported operation: builtin.unregistered: llvm.icmp -4: "n15_oneuse5" has unsupported operation: builtin.unregistered: llvm.select - 4: "n15_oneuse5" has unsupported operation: llvm.call 4: "n15_oneuse5" has unsupported operation: builtin.unregistered: llvm.icmp 4: "n15_oneuse5" has unsupported operation: llvm.call -4: "n15_oneuse5" has unsupported operation: builtin.unregistered: llvm.select - 1: "n16_oneuse6" 4: "n16_oneuse6" has unsupported operation: builtin.unregistered: llvm.icmp 4: "n16_oneuse6" has unsupported operation: llvm.call -4: "n16_oneuse6" has unsupported operation: builtin.unregistered: llvm.select - 4: "n16_oneuse6" has unsupported operation: llvm.call 4: "n16_oneuse6" has unsupported operation: builtin.unregistered: llvm.icmp 4: "n16_oneuse6" has unsupported operation: llvm.call -4: "n16_oneuse6" has unsupported operation: builtin.unregistered: llvm.select - 1: "t17_ult_slt_vec_splat" 4: "t17_ult_slt_vec_splat" has unsupported operation: builtin.unregistered: llvm.icmp 4: "t17_ult_slt_vec_splat" has unsupported operation: builtin.unregistered: llvm.icmp -4: "t17_ult_slt_vec_splat" has unsupported operation: builtin.unregistered: llvm.select - -4: "t17_ult_slt_vec_splat" has unsupported operation: builtin.unregistered: llvm.select - 1: "t18_ult_slt_vec_nonsplat" 4: "t18_ult_slt_vec_nonsplat" has unsupported operation: builtin.unregistered: llvm.icmp 4: "t18_ult_slt_vec_nonsplat" has unsupported operation: builtin.unregistered: llvm.icmp -4: "t18_ult_slt_vec_nonsplat" has unsupported operation: builtin.unregistered: llvm.select - -4: "t18_ult_slt_vec_nonsplat" has unsupported operation: builtin.unregistered: llvm.select - 1: "t19_ult_slt_vec_poison0" 4: "t19_ult_slt_vec_poison0" has unsupported operation: builtin.unregistered: llvm.icmp 4: "t19_ult_slt_vec_poison0" has unsupported operation: builtin.unregistered: llvm.icmp -4: "t19_ult_slt_vec_poison0" has unsupported operation: builtin.unregistered: llvm.select - -4: "t19_ult_slt_vec_poison0" has unsupported operation: builtin.unregistered: llvm.select - 1: "t20_ult_slt_vec_poison1" 4: "t20_ult_slt_vec_poison1" has unsupported operation: builtin.unregistered: llvm.icmp 4: "t20_ult_slt_vec_poison1" has unsupported operation: builtin.unregistered: llvm.icmp -4: "t20_ult_slt_vec_poison1" has unsupported operation: builtin.unregistered: llvm.select - -4: "t20_ult_slt_vec_poison1" has unsupported operation: builtin.unregistered: llvm.select - 1: "t21_ult_slt_vec_poison2" 4: "t21_ult_slt_vec_poison2" has unsupported operation: builtin.unregistered: llvm.icmp 4: "t21_ult_slt_vec_poison2" has unsupported operation: builtin.unregistered: llvm.icmp -4: "t21_ult_slt_vec_poison2" has unsupported operation: builtin.unregistered: llvm.select - -4: "t21_ult_slt_vec_poison2" has unsupported operation: builtin.unregistered: llvm.select - 1: "t22_pointers" 4: "t22_pointers" has unsupported operation: llvm.inttoptr 4: "t22_pointers" has unsupported operation: builtin.unregistered: llvm.icmp -4: "t22_pointers" has unsupported operation: builtin.unregistered: llvm.select - 4: "t22_pointers" has unsupported operation: builtin.unregistered: llvm.icmp -4: "t22_pointers" has unsupported operation: builtin.unregistered: llvm.select - diff --git a/SSA/Projects/InstCombine/tests/logs/canonicalize-lshr-shl-to-masking.txt b/SSA/Projects/InstCombine/tests/logs/canonicalize-lshr-shl-to-masking.txt index 4480df5f5..207f1c855 100644 --- a/SSA/Projects/InstCombine/tests/logs/canonicalize-lshr-shl-to-masking.txt +++ b/SSA/Projects/InstCombine/tests/logs/canonicalize-lshr-shl-to-masking.txt @@ -231,10 +231,10 @@ 2: llvm.return 1: "positive_samevar_vec" -"positive_samevar_vec" contains vectors which are unsupported +8: "positive_samevar_vec" contains vectors which are unsupported 1: "positive_sameconst_vec" -"positive_sameconst_vec" contains vectors which are unsupported +8: "positive_sameconst_vec" contains vectors which are unsupported 1: "positive_sameconst_vec_undef0" 4: "positive_sameconst_vec_undef0" has unsupported operation: llvm.mlir.undef @@ -270,7 +270,7 @@ 4: "positive_sameconst_vec_undef2" has unsupported operation: builtin.unregistered: llvm.insertelement 1: "positive_biggerlshr_vec" -"positive_biggerlshr_vec" contains vectors which are unsupported +8: "positive_biggerlshr_vec" contains vectors which are unsupported 1: "positive_biggerlshr_vec_undef0" 4: "positive_biggerlshr_vec_undef0" has unsupported operation: llvm.mlir.undef @@ -314,7 +314,7 @@ 4: "positive_biggerlshr_vec_undef2" has unsupported operation: builtin.unregistered: llvm.insertelement 1: "positive_biggershl_vec" -"positive_biggershl_vec" contains vectors which are unsupported +8: "positive_biggershl_vec" contains vectors which are unsupported 1: "positive_biggershl_vec_undef0" 4: "positive_biggershl_vec_undef0" has unsupported operation: llvm.mlir.undef diff --git a/SSA/Projects/InstCombine/tests/logs/canonicalize-selects-icmp-condition-bittest.txt b/SSA/Projects/InstCombine/tests/logs/canonicalize-selects-icmp-condition-bittest.txt index 0b20e0eb8..ce11bbaef 100644 --- a/SSA/Projects/InstCombine/tests/logs/canonicalize-selects-icmp-condition-bittest.txt +++ b/SSA/Projects/InstCombine/tests/logs/canonicalize-selects-icmp-condition-bittest.txt @@ -7,59 +7,37 @@ 1: "p0" 4: "p0" has unsupported operation: builtin.unregistered: llvm.icmp -4: "p0" has unsupported operation: builtin.unregistered: llvm.select - 1: "p1" 4: "p1" has unsupported operation: builtin.unregistered: llvm.icmp -4: "p1" has unsupported operation: builtin.unregistered: llvm.select - 1: "n2" 4: "n2" has unsupported operation: builtin.unregistered: llvm.icmp 4: "n2" has unsupported operation: llvm.call -4: "n2" has unsupported operation: builtin.unregistered: llvm.select - 1: "t3" 4: "t3" has unsupported operation: builtin.unregistered: llvm.icmp 4: "t3" has unsupported operation: builtin.unregistered: llvm.cond_br -4: "t3" has unsupported operation: builtin.unregistered: llvm.select - 4: "t3" has unsupported operation: llvm.store 4: "t3" has unsupported operation: builtin.unregistered: llvm.br -4: "t3" has unsupported operation: builtin.unregistered: llvm.select - 1: "t4" 4: "t4" has unsupported operation: builtin.unregistered: llvm.icmp -4: "t4" has unsupported operation: builtin.unregistered: llvm.select - 4: "t4" has unsupported operation: llvm.store -4: "t4" has unsupported operation: builtin.unregistered: llvm.select - 1: "n5" 4: "n5" has unsupported operation after optimization: builtin.unregistered: llvm.icmp -4: "n5" has unsupported operation after optimization: builtin.unregistered: llvm.select - 1: "n6" 4: "n6" has unsupported operation after optimization: builtin.unregistered: llvm.icmp -4: "n6" has unsupported operation after optimization: builtin.unregistered: llvm.select - 1: "n7" 4: "n7" has unsupported operation: builtin.unregistered: llvm.icmp -4: "n7" has unsupported operation: builtin.unregistered: llvm.select - 1: "n8" 4: "n8" has unsupported operation: builtin.unregistered: llvm.icmp -4: "n8" has unsupported operation: builtin.unregistered: llvm.select - diff --git a/SSA/Projects/InstCombine/tests/logs/canonicalize-shl-lshr-to-masking.txt b/SSA/Projects/InstCombine/tests/logs/canonicalize-shl-lshr-to-masking.txt index b336e1aae..2934c8b77 100644 --- a/SSA/Projects/InstCombine/tests/logs/canonicalize-shl-lshr-to-masking.txt +++ b/SSA/Projects/InstCombine/tests/logs/canonicalize-shl-lshr-to-masking.txt @@ -73,10 +73,10 @@ 2: llvm.return 1: "positive_samevar_vec" -"positive_samevar_vec" contains vectors which are unsupported +8: "positive_samevar_vec" contains vectors which are unsupported 1: "positive_sameconst_vec" -"positive_sameconst_vec" contains vectors which are unsupported +8: "positive_sameconst_vec" contains vectors which are unsupported 1: "positive_sameconst_vec_undef0" 4: "positive_sameconst_vec_undef0" has unsupported operation: llvm.mlir.undef @@ -112,7 +112,7 @@ 4: "positive_sameconst_vec_undef2" has unsupported operation: builtin.unregistered: llvm.insertelement 1: "positive_biggerShl_vec" -"positive_biggerShl_vec" contains vectors which are unsupported +8: "positive_biggerShl_vec" contains vectors which are unsupported 1: "positive_biggerShl_vec_undef0" 4: "positive_biggerShl_vec_undef0" has unsupported operation: llvm.mlir.undef @@ -156,7 +156,7 @@ 4: "positive_biggerShl_vec_undef2" has unsupported operation: builtin.unregistered: llvm.insertelement 1: "positive_biggerLshr_vec" -"positive_biggerLshr_vec" contains vectors which are unsupported +8: "positive_biggerLshr_vec" contains vectors which are unsupported 1: "positive_biggerLshr_vec_undef0" 4: "positive_biggerLshr_vec_undef0" has unsupported operation: llvm.mlir.undef diff --git a/SSA/Projects/InstCombine/tests/logs/cast-mul-select.txt b/SSA/Projects/InstCombine/tests/logs/cast-mul-select.txt index 5c6d0f198..125fac689 100644 --- a/SSA/Projects/InstCombine/tests/logs/cast-mul-select.txt +++ b/SSA/Projects/InstCombine/tests/logs/cast-mul-select.txt @@ -6,10 +6,22 @@ 4: "mul" has unsupported operation after optimization: builtin.unregistered: llvm.zext 1: "select1" -4: "select1" has unsupported operation: builtin.unregistered: llvm.select +4: "select1" has unsupported operation after optimization: builtin.unregistered: llvm.trunc + +4: "select1" has unsupported operation after optimization: builtin.unregistered: llvm.trunc + +4: "select1" has unsupported operation after optimization: builtin.unregistered: llvm.trunc + +4: "select1" has unsupported operation after optimization: builtin.unregistered: llvm.zext 1: "select2" -4: "select2" has unsupported operation: builtin.unregistered: llvm.select +4: "select2" has unsupported operation after optimization: builtin.unregistered: llvm.zext + +4: "select2" has unsupported operation after optimization: builtin.unregistered: llvm.zext + +4: "select2" has unsupported operation after optimization: builtin.unregistered: llvm.zext + +4: "select2" has unsupported operation after optimization: builtin.unregistered: llvm.trunc 1: "eval_trunc_multi_use_in_one_inst" 4: "eval_trunc_multi_use_in_one_inst" has unsupported operation: builtin.unregistered: llvm.zext @@ -33,8 +45,6 @@ 4: "PR36225" has unsupported operation: builtin.unregistered: llvm.icmp -4: "PR36225" has unsupported operation: builtin.unregistered: llvm.select - 4: "PR36225" has unsupported operation: builtin.unregistered: llvm.switch 4: "PR36225" has unsupported operation: builtin.unregistered: llvm.switch diff --git a/SSA/Projects/InstCombine/tests/logs/cast-select.txt b/SSA/Projects/InstCombine/tests/logs/cast-select.txt index b6f5e7e6d..5c4871244 100644 --- a/SSA/Projects/InstCombine/tests/logs/cast-select.txt +++ b/SSA/Projects/InstCombine/tests/logs/cast-select.txt @@ -1,29 +1,21 @@ 1: "zext" 4: "zext" has unsupported operation: builtin.unregistered: llvm.icmp -4: "zext" has unsupported operation: builtin.unregistered: llvm.select - 4: "zext" has unsupported operation: builtin.unregistered: llvm.zext 1: "zext_vec" 4: "zext_vec" has unsupported operation: builtin.unregistered: llvm.icmp -4: "zext_vec" has unsupported operation: builtin.unregistered: llvm.select - 4: "zext_vec" has unsupported operation: builtin.unregistered: llvm.zext 1: "sext" 4: "sext" has unsupported operation: builtin.unregistered: llvm.icmp -4: "sext" has unsupported operation: builtin.unregistered: llvm.select - 4: "sext" has unsupported operation: builtin.unregistered: llvm.sext 1: "sext_vec" 4: "sext_vec" has unsupported operation: builtin.unregistered: llvm.icmp -4: "sext_vec" has unsupported operation: builtin.unregistered: llvm.select - 4: "sext_vec" has unsupported operation: builtin.unregistered: llvm.sext 1: "trunc" @@ -31,40 +23,28 @@ 4: "trunc" has unsupported operation: builtin.unregistered: llvm.trunc -4: "trunc" has unsupported operation: builtin.unregistered: llvm.select - 1: "trunc_vec" 4: "trunc_vec" has unsupported operation: builtin.unregistered: llvm.icmp -4: "trunc_vec" has unsupported operation: builtin.unregistered: llvm.select - 4: "trunc_vec" has unsupported operation: builtin.unregistered: llvm.trunc 1: "fpext" 4: "fpext" has unsupported operation: builtin.unregistered: llvm.fcmp -4: "fpext" has unsupported operation: builtin.unregistered: llvm.select - 4: "fpext" has unsupported operation: builtin.unregistered: llvm.fpext 1: "fpext_vec" 4: "fpext_vec" has unsupported operation: builtin.unregistered: llvm.fcmp -4: "fpext_vec" has unsupported operation: builtin.unregistered: llvm.select - 4: "fpext_vec" has unsupported operation: builtin.unregistered: llvm.fpext 1: "fptrunc" 4: "fptrunc" has unsupported operation: builtin.unregistered: llvm.fcmp -4: "fptrunc" has unsupported operation: builtin.unregistered: llvm.select - 4: "fptrunc" has unsupported operation: builtin.unregistered: llvm.fptrunc 1: "fptrunc_vec" 4: "fptrunc_vec" has unsupported operation: builtin.unregistered: llvm.fcmp -4: "fptrunc_vec" has unsupported operation: builtin.unregistered: llvm.select - 4: "fptrunc_vec" has unsupported operation: builtin.unregistered: llvm.fptrunc diff --git a/SSA/Projects/InstCombine/tests/logs/ceil.txt b/SSA/Projects/InstCombine/tests/logs/ceil.txt index 13f546df1..b873603c4 100644 --- a/SSA/Projects/InstCombine/tests/logs/ceil.txt +++ b/SSA/Projects/InstCombine/tests/logs/ceil.txt @@ -8,7 +8,7 @@ 4: "constant_fold_ceil_f32_03" has unsupported operation after optimization: builtin.unregistered: llvm.intr.ceil 1: "constant_fold_ceil_v4f32_01" -"constant_fold_ceil_v4f32_01" contains vectors which are unsupported +8: "constant_fold_ceil_v4f32_01" contains vectors which are unsupported 1: "constant_fold_ceil_f64_01" 4: "constant_fold_ceil_f64_01" has unsupported operation after optimization: builtin.unregistered: llvm.intr.ceil diff --git a/SSA/Projects/InstCombine/tests/logs/clamp-to-minmax.txt b/SSA/Projects/InstCombine/tests/logs/clamp-to-minmax.txt index d6acc709a..93a343020 100644 --- a/SSA/Projects/InstCombine/tests/logs/clamp-to-minmax.txt +++ b/SSA/Projects/InstCombine/tests/logs/clamp-to-minmax.txt @@ -1,246 +1,148 @@ 1: "clamp_float_fast_ordered_strict_maxmin" 4: "clamp_float_fast_ordered_strict_maxmin" has unsupported operation: builtin.unregistered: llvm.fcmp -4: "clamp_float_fast_ordered_strict_maxmin" has unsupported operation: builtin.unregistered: llvm.select - 4: "clamp_float_fast_ordered_strict_maxmin" has unsupported operation: builtin.unregistered: llvm.intr.maxnum 1: "clamp_float_fast_ordered_nonstrict_maxmin" 4: "clamp_float_fast_ordered_nonstrict_maxmin" has unsupported operation: builtin.unregistered: llvm.fcmp -4: "clamp_float_fast_ordered_nonstrict_maxmin" has unsupported operation: builtin.unregistered: llvm.select - 4: "clamp_float_fast_ordered_nonstrict_maxmin" has unsupported operation: builtin.unregistered: llvm.intr.maxnum 1: "clamp_float_fast_ordered_strict_minmax" 4: "clamp_float_fast_ordered_strict_minmax" has unsupported operation: builtin.unregistered: llvm.fcmp -4: "clamp_float_fast_ordered_strict_minmax" has unsupported operation: builtin.unregistered: llvm.select - 4: "clamp_float_fast_ordered_strict_minmax" has unsupported operation: builtin.unregistered: llvm.intr.minnum 1: "clamp_float_fast_ordered_nonstrict_minmax" 4: "clamp_float_fast_ordered_nonstrict_minmax" has unsupported operation: builtin.unregistered: llvm.fcmp -4: "clamp_float_fast_ordered_nonstrict_minmax" has unsupported operation: builtin.unregistered: llvm.select - 4: "clamp_float_fast_ordered_nonstrict_minmax" has unsupported operation: builtin.unregistered: llvm.intr.minnum 1: "clamp_float_fast_unordered_strict_maxmin" 4: "clamp_float_fast_unordered_strict_maxmin" has unsupported operation: builtin.unregistered: llvm.fcmp -4: "clamp_float_fast_unordered_strict_maxmin" has unsupported operation: builtin.unregistered: llvm.select - 4: "clamp_float_fast_unordered_strict_maxmin" has unsupported operation: builtin.unregistered: llvm.intr.maxnum 1: "clamp_float_fast_unordered_nonstrict_maxmin" 4: "clamp_float_fast_unordered_nonstrict_maxmin" has unsupported operation: builtin.unregistered: llvm.fcmp -4: "clamp_float_fast_unordered_nonstrict_maxmin" has unsupported operation: builtin.unregistered: llvm.select - 4: "clamp_float_fast_unordered_nonstrict_maxmin" has unsupported operation: builtin.unregistered: llvm.intr.maxnum 1: "clamp_float_fast_unordered_strict_minmax" 4: "clamp_float_fast_unordered_strict_minmax" has unsupported operation: builtin.unregistered: llvm.fcmp -4: "clamp_float_fast_unordered_strict_minmax" has unsupported operation: builtin.unregistered: llvm.select - 4: "clamp_float_fast_unordered_strict_minmax" has unsupported operation: builtin.unregistered: llvm.intr.minnum 1: "clamp_float_fast_unordered_nonstrict_minmax" 4: "clamp_float_fast_unordered_nonstrict_minmax" has unsupported operation: builtin.unregistered: llvm.fcmp -4: "clamp_float_fast_unordered_nonstrict_minmax" has unsupported operation: builtin.unregistered: llvm.select - 4: "clamp_float_fast_unordered_nonstrict_minmax" has unsupported operation: builtin.unregistered: llvm.intr.minnum 1: "clamp_test_1" 4: "clamp_test_1" has unsupported operation: builtin.unregistered: llvm.fcmp -4: "clamp_test_1" has unsupported operation: builtin.unregistered: llvm.select - 4: "clamp_test_1" has unsupported operation: builtin.unregistered: llvm.intr.maxnum 1: "clamp_negative_wrong_const" 4: "clamp_negative_wrong_const" has unsupported operation: builtin.unregistered: llvm.fcmp -4: "clamp_negative_wrong_const" has unsupported operation: builtin.unregistered: llvm.select - 4: "clamp_negative_wrong_const" has unsupported operation: builtin.unregistered: llvm.fcmp -4: "clamp_negative_wrong_const" has unsupported operation: builtin.unregistered: llvm.select - 1: "clamp_negative_same_op" 4: "clamp_negative_same_op" has unsupported operation: builtin.unregistered: llvm.fcmp -4: "clamp_negative_same_op" has unsupported operation: builtin.unregistered: llvm.select - 4: "clamp_negative_same_op" has unsupported operation: builtin.unregistered: llvm.fcmp -4: "clamp_negative_same_op" has unsupported operation: builtin.unregistered: llvm.select - 1: "clamp_float_with_zero1" 4: "clamp_float_with_zero1" has unsupported operation: builtin.unregistered: llvm.fcmp -4: "clamp_float_with_zero1" has unsupported operation: builtin.unregistered: llvm.select - 4: "clamp_float_with_zero1" has unsupported operation: builtin.unregistered: llvm.fcmp -4: "clamp_float_with_zero1" has unsupported operation: builtin.unregistered: llvm.select - 1: "clamp_float_with_zero2" 4: "clamp_float_with_zero2" has unsupported operation: builtin.unregistered: llvm.fcmp -4: "clamp_float_with_zero2" has unsupported operation: builtin.unregistered: llvm.select - 4: "clamp_float_with_zero2" has unsupported operation: builtin.unregistered: llvm.fcmp -4: "clamp_float_with_zero2" has unsupported operation: builtin.unregistered: llvm.select - 1: "clamp_float_ordered_strict_maxmin1" 4: "clamp_float_ordered_strict_maxmin1" has unsupported operation: builtin.unregistered: llvm.fcmp -4: "clamp_float_ordered_strict_maxmin1" has unsupported operation: builtin.unregistered: llvm.select - 4: "clamp_float_ordered_strict_maxmin1" has unsupported operation: builtin.unregistered: llvm.fcmp -4: "clamp_float_ordered_strict_maxmin1" has unsupported operation: builtin.unregistered: llvm.select - 1: "clamp_float_ordered_strict_maxmin2" 4: "clamp_float_ordered_strict_maxmin2" has unsupported operation: builtin.unregistered: llvm.fcmp -4: "clamp_float_ordered_strict_maxmin2" has unsupported operation: builtin.unregistered: llvm.select - 4: "clamp_float_ordered_strict_maxmin2" has unsupported operation: builtin.unregistered: llvm.fcmp -4: "clamp_float_ordered_strict_maxmin2" has unsupported operation: builtin.unregistered: llvm.select - 1: "clamp_float_ordered_nonstrict_maxmin1" 4: "clamp_float_ordered_nonstrict_maxmin1" has unsupported operation: builtin.unregistered: llvm.fcmp -4: "clamp_float_ordered_nonstrict_maxmin1" has unsupported operation: builtin.unregistered: llvm.select - 4: "clamp_float_ordered_nonstrict_maxmin1" has unsupported operation: builtin.unregistered: llvm.fcmp -4: "clamp_float_ordered_nonstrict_maxmin1" has unsupported operation: builtin.unregistered: llvm.select - 1: "clamp_float_ordered_nonstrict_maxmin2" 4: "clamp_float_ordered_nonstrict_maxmin2" has unsupported operation: builtin.unregistered: llvm.fcmp -4: "clamp_float_ordered_nonstrict_maxmin2" has unsupported operation: builtin.unregistered: llvm.select - 4: "clamp_float_ordered_nonstrict_maxmin2" has unsupported operation: builtin.unregistered: llvm.fcmp -4: "clamp_float_ordered_nonstrict_maxmin2" has unsupported operation: builtin.unregistered: llvm.select - 1: "clamp_float_ordered_strict_minmax1" 4: "clamp_float_ordered_strict_minmax1" has unsupported operation: builtin.unregistered: llvm.fcmp -4: "clamp_float_ordered_strict_minmax1" has unsupported operation: builtin.unregistered: llvm.select - 4: "clamp_float_ordered_strict_minmax1" has unsupported operation: builtin.unregistered: llvm.fcmp -4: "clamp_float_ordered_strict_minmax1" has unsupported operation: builtin.unregistered: llvm.select - 1: "clamp_float_ordered_strict_minmax2" 4: "clamp_float_ordered_strict_minmax2" has unsupported operation: builtin.unregistered: llvm.fcmp -4: "clamp_float_ordered_strict_minmax2" has unsupported operation: builtin.unregistered: llvm.select - 4: "clamp_float_ordered_strict_minmax2" has unsupported operation: builtin.unregistered: llvm.fcmp -4: "clamp_float_ordered_strict_minmax2" has unsupported operation: builtin.unregistered: llvm.select - 1: "clamp_float_ordered_nonstrict_minmax1" 4: "clamp_float_ordered_nonstrict_minmax1" has unsupported operation: builtin.unregistered: llvm.fcmp -4: "clamp_float_ordered_nonstrict_minmax1" has unsupported operation: builtin.unregistered: llvm.select - 4: "clamp_float_ordered_nonstrict_minmax1" has unsupported operation: builtin.unregistered: llvm.fcmp -4: "clamp_float_ordered_nonstrict_minmax1" has unsupported operation: builtin.unregistered: llvm.select - 1: "clamp_float_ordered_nonstrict_minmax2" 4: "clamp_float_ordered_nonstrict_minmax2" has unsupported operation: builtin.unregistered: llvm.fcmp -4: "clamp_float_ordered_nonstrict_minmax2" has unsupported operation: builtin.unregistered: llvm.select - 4: "clamp_float_ordered_nonstrict_minmax2" has unsupported operation: builtin.unregistered: llvm.fcmp -4: "clamp_float_ordered_nonstrict_minmax2" has unsupported operation: builtin.unregistered: llvm.select - 1: "clamp_float_unordered_strict_maxmin1" 4: "clamp_float_unordered_strict_maxmin1" has unsupported operation: builtin.unregistered: llvm.fcmp -4: "clamp_float_unordered_strict_maxmin1" has unsupported operation: builtin.unregistered: llvm.select - 4: "clamp_float_unordered_strict_maxmin1" has unsupported operation: builtin.unregistered: llvm.fcmp -4: "clamp_float_unordered_strict_maxmin1" has unsupported operation: builtin.unregistered: llvm.select - 1: "clamp_float_unordered_strict_maxmin2" 4: "clamp_float_unordered_strict_maxmin2" has unsupported operation: builtin.unregistered: llvm.fcmp -4: "clamp_float_unordered_strict_maxmin2" has unsupported operation: builtin.unregistered: llvm.select - 4: "clamp_float_unordered_strict_maxmin2" has unsupported operation: builtin.unregistered: llvm.fcmp -4: "clamp_float_unordered_strict_maxmin2" has unsupported operation: builtin.unregistered: llvm.select - 1: "clamp_float_unordered_nonstrict_maxmin1" 4: "clamp_float_unordered_nonstrict_maxmin1" has unsupported operation: builtin.unregistered: llvm.fcmp -4: "clamp_float_unordered_nonstrict_maxmin1" has unsupported operation: builtin.unregistered: llvm.select - 4: "clamp_float_unordered_nonstrict_maxmin1" has unsupported operation: builtin.unregistered: llvm.fcmp -4: "clamp_float_unordered_nonstrict_maxmin1" has unsupported operation: builtin.unregistered: llvm.select - 1: "clamp_float_unordered_nonstrict_maxmin2" 4: "clamp_float_unordered_nonstrict_maxmin2" has unsupported operation: builtin.unregistered: llvm.fcmp -4: "clamp_float_unordered_nonstrict_maxmin2" has unsupported operation: builtin.unregistered: llvm.select - 4: "clamp_float_unordered_nonstrict_maxmin2" has unsupported operation: builtin.unregistered: llvm.fcmp -4: "clamp_float_unordered_nonstrict_maxmin2" has unsupported operation: builtin.unregistered: llvm.select - 1: "clamp_float_unordered_strict_minmax1" 4: "clamp_float_unordered_strict_minmax1" has unsupported operation: builtin.unregistered: llvm.fcmp -4: "clamp_float_unordered_strict_minmax1" has unsupported operation: builtin.unregistered: llvm.select - 4: "clamp_float_unordered_strict_minmax1" has unsupported operation: builtin.unregistered: llvm.fcmp -4: "clamp_float_unordered_strict_minmax1" has unsupported operation: builtin.unregistered: llvm.select - 1: "clamp_float_unordered_strict_minmax2" 4: "clamp_float_unordered_strict_minmax2" has unsupported operation: builtin.unregistered: llvm.fcmp -4: "clamp_float_unordered_strict_minmax2" has unsupported operation: builtin.unregistered: llvm.select - 4: "clamp_float_unordered_strict_minmax2" has unsupported operation: builtin.unregistered: llvm.fcmp -4: "clamp_float_unordered_strict_minmax2" has unsupported operation: builtin.unregistered: llvm.select - 1: "clamp_float_unordered_nonstrict_minmax1" 4: "clamp_float_unordered_nonstrict_minmax1" has unsupported operation: builtin.unregistered: llvm.fcmp -4: "clamp_float_unordered_nonstrict_minmax1" has unsupported operation: builtin.unregistered: llvm.select - 4: "clamp_float_unordered_nonstrict_minmax1" has unsupported operation: builtin.unregistered: llvm.fcmp -4: "clamp_float_unordered_nonstrict_minmax1" has unsupported operation: builtin.unregistered: llvm.select - 1: "clamp_float_unordered_nonstrict_minmax2" 4: "clamp_float_unordered_nonstrict_minmax2" has unsupported operation: builtin.unregistered: llvm.fcmp -4: "clamp_float_unordered_nonstrict_minmax2" has unsupported operation: builtin.unregistered: llvm.select - 4: "clamp_float_unordered_nonstrict_minmax2" has unsupported operation: builtin.unregistered: llvm.fcmp -4: "clamp_float_unordered_nonstrict_minmax2" has unsupported operation: builtin.unregistered: llvm.select - 1: "ui32_clamp_and_cast_to_float" 4: "ui32_clamp_and_cast_to_float" has unsupported operation: builtin.unregistered: llvm.icmp @@ -248,8 +150,6 @@ 4: "ui32_clamp_and_cast_to_float" has unsupported operation: builtin.unregistered: llvm.uitofp -4: "ui32_clamp_and_cast_to_float" has unsupported operation: builtin.unregistered: llvm.select - 1: "ui64_clamp_and_cast_to_float" 4: "ui64_clamp_and_cast_to_float" has unsupported operation: builtin.unregistered: llvm.icmp @@ -257,8 +157,6 @@ 4: "ui64_clamp_and_cast_to_float" has unsupported operation: builtin.unregistered: llvm.uitofp -4: "ui64_clamp_and_cast_to_float" has unsupported operation: builtin.unregistered: llvm.select - 1: "mixed_clamp_to_float_1" 4: "mixed_clamp_to_float_1" has unsupported operation: builtin.unregistered: llvm.intr.smin @@ -269,16 +167,12 @@ 1: "mixed_clamp_to_i32_1" 4: "mixed_clamp_to_i32_1" has unsupported operation: builtin.unregistered: llvm.fcmp -4: "mixed_clamp_to_i32_1" has unsupported operation: builtin.unregistered: llvm.select - 4: "mixed_clamp_to_i32_1" has unsupported operation: builtin.unregistered: llvm.fptosi 4: "mixed_clamp_to_i32_1" has unsupported operation: builtin.unregistered: llvm.fptosi 4: "mixed_clamp_to_i32_1" has unsupported operation: builtin.unregistered: llvm.icmp -4: "mixed_clamp_to_i32_1" has unsupported operation: builtin.unregistered: llvm.select - 1: "mixed_clamp_to_float_2" 4: "mixed_clamp_to_float_2" has unsupported operation: builtin.unregistered: llvm.intr.smin @@ -289,14 +183,10 @@ 1: "mixed_clamp_to_i32_2" 4: "mixed_clamp_to_i32_2" has unsupported operation: builtin.unregistered: llvm.fcmp -4: "mixed_clamp_to_i32_2" has unsupported operation: builtin.unregistered: llvm.select - 4: "mixed_clamp_to_i32_2" has unsupported operation: builtin.unregistered: llvm.fptosi 4: "mixed_clamp_to_i32_2" has unsupported operation: builtin.unregistered: llvm.fcmp -4: "mixed_clamp_to_i32_2" has unsupported operation: builtin.unregistered: llvm.select - 1: "mixed_clamp_to_float_vec" 4: "mixed_clamp_to_float_vec" has unsupported operation: builtin.unregistered: llvm.intr.smin diff --git a/SSA/Projects/InstCombine/tests/logs/compare-alloca.txt b/SSA/Projects/InstCombine/tests/logs/compare-alloca.txt index 16e616602..f409a9808 100644 --- a/SSA/Projects/InstCombine/tests/logs/compare-alloca.txt +++ b/SSA/Projects/InstCombine/tests/logs/compare-alloca.txt @@ -144,8 +144,6 @@ 4: "select_alloca_unrelated_ptr" has unsupported operation: builtin.unregistered: llvm.icmp -4: "select_alloca_unrelated_ptr" has unsupported operation: builtin.unregistered: llvm.select - 4: "select_alloca_unrelated_ptr" has unsupported operation: builtin.unregistered: llvm.icmp 4: "select_alloca_unrelated_ptr" has unsupported operation: llvm.call diff --git a/SSA/Projects/InstCombine/tests/logs/compare-udiv.txt b/SSA/Projects/InstCombine/tests/logs/compare-udiv.txt index 9129bbf20..633e0ce43 100644 --- a/SSA/Projects/InstCombine/tests/logs/compare-udiv.txt +++ b/SSA/Projects/InstCombine/tests/logs/compare-udiv.txt @@ -23,12 +23,10 @@ 4: "test4vec" has unsupported operation: builtin.unregistered: llvm.icmp 1: "test5" -4: "test5" has unsupported operation after optimization: llvm.udiv - 4: "test5" has unsupported operation after optimization: builtin.unregistered: llvm.icmp 1: "test5vec" -"test5vec" contains vectors which are unsupported +8: "test5vec" contains vectors which are unsupported 1: "test6" 4: "test6" has unsupported operation: builtin.unregistered: llvm.icmp @@ -37,12 +35,10 @@ 4: "test6vec" has unsupported operation: builtin.unregistered: llvm.icmp 1: "test7" -4: "test7" has unsupported operation after optimization: llvm.udiv - 4: "test7" has unsupported operation after optimization: builtin.unregistered: llvm.icmp 1: "test7vec" -"test7vec" contains vectors which are unsupported +8: "test7vec" contains vectors which are unsupported 1: "test8" 4: "test8" has unsupported operation: builtin.unregistered: llvm.icmp @@ -87,18 +83,14 @@ 4: "test14vec" has unsupported operation: builtin.unregistered: llvm.icmp 1: "test15" -4: "test15" has unsupported operation after optimization: llvm.udiv - 4: "test15" has unsupported operation after optimization: builtin.unregistered: llvm.icmp 1: "test15vec" -"test15vec" contains vectors which are unsupported +8: "test15vec" contains vectors which are unsupported 1: "test16" -4: "test16" has unsupported operation after optimization: llvm.udiv - 4: "test16" has unsupported operation after optimization: builtin.unregistered: llvm.icmp 1: "test16vec" -"test16vec" contains vectors which are unsupported +8: "test16vec" contains vectors which are unsupported diff --git a/SSA/Projects/InstCombine/tests/logs/conditional-negation.txt b/SSA/Projects/InstCombine/tests/logs/conditional-negation.txt index 7008b553c..8d77671da 100644 --- a/SSA/Projects/InstCombine/tests/logs/conditional-negation.txt +++ b/SSA/Projects/InstCombine/tests/logs/conditional-negation.txt @@ -1,11 +1,13 @@ 1: "t0" -4: "t0" has unsupported operation: builtin.unregistered: llvm.select +4: "t0" has unsupported operation after optimization: builtin.unregistered: llvm.sext 1: "t0_vec" -4: "t0_vec" has unsupported operation: builtin.unregistered: llvm.select +8: "t0_vec" contains vectors which are unsupported 1: "t1" -4: "t1" has unsupported operation: builtin.unregistered: llvm.select +4: "t1" has unsupported operation after optimization: builtin.unregistered: llvm.sext + +4: "t1" has unsupported operation after optimization: builtin.unregistered: llvm.sext 1: "t2" 4: "t2" has unsupported operation: builtin.unregistered: llvm.sext @@ -21,15 +23,11 @@ 1: "xor.commuted" 4: "xor.commuted" has unsupported operation: llvm.call -4: "xor.commuted" has unsupported operation: builtin.unregistered: llvm.select - 1: "extrause01_v1" 4: "extrause01_v1" has unsupported operation: builtin.unregistered: llvm.sext 4: "extrause01_v1" has unsupported operation: llvm.call -4: "extrause01_v1" has unsupported operation: builtin.unregistered: llvm.select - 1: "extrause10_v1" 4: "extrause10_v1" has unsupported operation: builtin.unregistered: llvm.sext @@ -47,15 +45,11 @@ 4: "extrause001_v2" has unsupported operation: llvm.call -4: "extrause001_v2" has unsupported operation: builtin.unregistered: llvm.select - 1: "extrause010_v2" 4: "extrause010_v2" has unsupported operation: builtin.unregistered: llvm.sext 4: "extrause010_v2" has unsupported operation: llvm.call -4: "extrause010_v2" has unsupported operation: builtin.unregistered: llvm.select - 1: "extrause011_v2" 4: "extrause011_v2" has unsupported operation: builtin.unregistered: llvm.sext @@ -65,15 +59,11 @@ 4: "extrause011_v2" has unsupported operation: llvm.call -4: "extrause011_v2" has unsupported operation: builtin.unregistered: llvm.select - 1: "extrause100_v2" 4: "extrause100_v2" has unsupported operation: builtin.unregistered: llvm.sext 4: "extrause100_v2" has unsupported operation: llvm.call -4: "extrause100_v2" has unsupported operation: builtin.unregistered: llvm.select - 1: "extrause101_v2" 4: "extrause101_v2" has unsupported operation: builtin.unregistered: llvm.sext @@ -81,8 +71,6 @@ 4: "extrause101_v2" has unsupported operation: llvm.call -4: "extrause101_v2" has unsupported operation: builtin.unregistered: llvm.select - 1: "extrause110_v2" 4: "extrause110_v2" has unsupported operation: builtin.unregistered: llvm.sext diff --git a/SSA/Projects/InstCombine/tests/logs/conditional-variable-length-signext-after-high-bit-extract.txt b/SSA/Projects/InstCombine/tests/logs/conditional-variable-length-signext-after-high-bit-extract.txt index 0e6277518..3c9414203 100644 --- a/SSA/Projects/InstCombine/tests/logs/conditional-variable-length-signext-after-high-bit-extract.txt +++ b/SSA/Projects/InstCombine/tests/logs/conditional-variable-length-signext-after-high-bit-extract.txt @@ -13,8 +13,6 @@ 1: "t0_notrunc_add" 4: "t0_notrunc_add" has unsupported operation: builtin.unregistered: llvm.icmp -4: "t0_notrunc_add" has unsupported operation: builtin.unregistered: llvm.select - 4: "t0_notrunc_add" has unsupported operation: llvm.call 4: "t0_notrunc_add" has unsupported operation: llvm.call @@ -28,8 +26,6 @@ 1: "t0_notrunc_or" 4: "t0_notrunc_or" has unsupported operation: builtin.unregistered: llvm.icmp -4: "t0_notrunc_or" has unsupported operation: builtin.unregistered: llvm.select - 4: "t0_notrunc_or" has unsupported operation: llvm.call 4: "t0_notrunc_or" has unsupported operation: llvm.call @@ -43,8 +39,6 @@ 1: "t1_notrunc_sub" 4: "t1_notrunc_sub" has unsupported operation: builtin.unregistered: llvm.icmp -4: "t1_notrunc_sub" has unsupported operation: builtin.unregistered: llvm.select - 4: "t1_notrunc_sub" has unsupported operation: llvm.call 4: "t1_notrunc_sub" has unsupported operation: llvm.call @@ -121,8 +115,6 @@ 1: "t4_commutativity0" 4: "t4_commutativity0" has unsupported operation: builtin.unregistered: llvm.icmp -4: "t4_commutativity0" has unsupported operation: builtin.unregistered: llvm.select - 4: "t4_commutativity0" has unsupported operation: llvm.call 4: "t4_commutativity0" has unsupported operation: llvm.call @@ -136,8 +128,6 @@ 1: "t5_commutativity1" 4: "t5_commutativity1" has unsupported operation: builtin.unregistered: llvm.icmp -4: "t5_commutativity1" has unsupported operation: builtin.unregistered: llvm.select - 4: "t5_commutativity1" has unsupported operation: llvm.call 4: "t5_commutativity1" has unsupported operation: llvm.call @@ -151,8 +141,6 @@ 1: "t6_commutativity2" 4: "t6_commutativity2" has unsupported operation: builtin.unregistered: llvm.icmp -4: "t6_commutativity2" has unsupported operation: builtin.unregistered: llvm.select - 4: "t6_commutativity2" has unsupported operation: llvm.call 4: "t6_commutativity2" has unsupported operation: llvm.call @@ -189,8 +177,6 @@ 4: "t8_trunc_extrause1" has unsupported operation: builtin.unregistered: llvm.icmp -4: "t8_trunc_extrause1" has unsupported operation: builtin.unregistered: llvm.select - 4: "t8_trunc_extrause1" has unsupported operation: llvm.call 4: "t8_trunc_extrause1" has unsupported operation: llvm.call @@ -212,8 +198,6 @@ 4: "n9_trunc_extrause2" has unsupported operation: builtin.unregistered: llvm.icmp -4: "n9_trunc_extrause2" has unsupported operation: builtin.unregistered: llvm.select - 4: "n9_trunc_extrause2" has unsupported operation: llvm.call 4: "n9_trunc_extrause2" has unsupported operation: llvm.call @@ -231,8 +215,6 @@ 1: "t10_preserve_exact" 4: "t10_preserve_exact" has unsupported operation: builtin.unregistered: llvm.icmp -4: "t10_preserve_exact" has unsupported operation: builtin.unregistered: llvm.select - 4: "t10_preserve_exact" has unsupported operation: llvm.call 4: "t10_preserve_exact" has unsupported operation: llvm.call @@ -252,8 +234,6 @@ 4: "t11_different_zext_of_shamt" has unsupported operation: builtin.unregistered: llvm.zext -4: "t11_different_zext_of_shamt" has unsupported operation: builtin.unregistered: llvm.select - 4: "t11_different_zext_of_shamt" has unsupported operation: llvm.call 4: "t11_different_zext_of_shamt" has unsupported operation: llvm.call @@ -277,8 +257,6 @@ 4: "t12_add_sext_of_magic" has unsupported operation: builtin.unregistered: llvm.zext -4: "t12_add_sext_of_magic" has unsupported operation: builtin.unregistered: llvm.select - 4: "t12_add_sext_of_magic" has unsupported operation: builtin.unregistered: llvm.sext 4: "t12_add_sext_of_magic" has unsupported operation: llvm.call @@ -304,8 +282,6 @@ 4: "t13_sub_zext_of_magic" has unsupported operation: builtin.unregistered: llvm.zext -4: "t13_sub_zext_of_magic" has unsupported operation: builtin.unregistered: llvm.select - 4: "t13_sub_zext_of_magic" has unsupported operation: builtin.unregistered: llvm.zext 4: "t13_sub_zext_of_magic" has unsupported operation: llvm.call @@ -333,8 +309,6 @@ 4: "t14_add_sext_of_shl" has unsupported operation: builtin.unregistered: llvm.sext -4: "t14_add_sext_of_shl" has unsupported operation: builtin.unregistered: llvm.select - 4: "t14_add_sext_of_shl" has unsupported operation: llvm.call 4: "t14_add_sext_of_shl" has unsupported operation: llvm.call @@ -360,8 +334,6 @@ 4: "t15_sub_zext_of_shl" has unsupported operation: builtin.unregistered: llvm.zext -4: "t15_sub_zext_of_shl" has unsupported operation: builtin.unregistered: llvm.select - 4: "t15_sub_zext_of_shl" has unsupported operation: llvm.call 4: "t15_sub_zext_of_shl" has unsupported operation: llvm.call @@ -381,8 +353,6 @@ 1: "n16" 4: "n16" has unsupported operation: builtin.unregistered: llvm.icmp -4: "n16" has unsupported operation: builtin.unregistered: llvm.select - 4: "n16" has unsupported operation: llvm.call 4: "n16" has unsupported operation: llvm.call @@ -396,8 +366,6 @@ 1: "n17_add" 4: "n17_add" has unsupported operation: builtin.unregistered: llvm.icmp -4: "n17_add" has unsupported operation: builtin.unregistered: llvm.select - 4: "n17_add" has unsupported operation: llvm.call 4: "n17_add" has unsupported operation: llvm.call @@ -411,8 +379,6 @@ 1: "n18" 4: "n18" has unsupported operation: builtin.unregistered: llvm.icmp -4: "n18" has unsupported operation: builtin.unregistered: llvm.select - 4: "n18" has unsupported operation: llvm.call 4: "n18" has unsupported operation: llvm.call @@ -426,8 +392,6 @@ 1: "n19" 4: "n19" has unsupported operation: builtin.unregistered: llvm.icmp -4: "n19" has unsupported operation: builtin.unregistered: llvm.select - 4: "n19" has unsupported operation: llvm.call 4: "n19" has unsupported operation: llvm.call @@ -441,8 +405,6 @@ 1: "n20" 4: "n20" has unsupported operation: builtin.unregistered: llvm.icmp -4: "n20" has unsupported operation: builtin.unregistered: llvm.select - 4: "n20" has unsupported operation: llvm.call 4: "n20" has unsupported operation: llvm.call @@ -456,8 +418,6 @@ 1: "n21" 4: "n21" has unsupported operation: builtin.unregistered: llvm.icmp -4: "n21" has unsupported operation: builtin.unregistered: llvm.select - 4: "n21" has unsupported operation: llvm.call 4: "n21" has unsupported operation: llvm.call @@ -475,8 +435,6 @@ 4: "n22" has unsupported operation: builtin.unregistered: llvm.icmp -4: "n22" has unsupported operation: builtin.unregistered: llvm.select - 4: "n22" has unsupported operation: llvm.call 4: "n22" has unsupported operation: llvm.call @@ -494,8 +452,6 @@ 1: "n23" 4: "n23" has unsupported operation: builtin.unregistered: llvm.icmp -4: "n23" has unsupported operation: builtin.unregistered: llvm.select - 4: "n23" has unsupported operation: llvm.call 4: "n23" has unsupported operation: llvm.call @@ -509,8 +465,6 @@ 1: "n24" 4: "n24" has unsupported operation: builtin.unregistered: llvm.icmp -4: "n24" has unsupported operation: builtin.unregistered: llvm.select - 4: "n24" has unsupported operation: llvm.call 4: "n24" has unsupported operation: llvm.call @@ -524,8 +478,6 @@ 1: "n25_sub" 4: "n25_sub" has unsupported operation: builtin.unregistered: llvm.icmp -4: "n25_sub" has unsupported operation: builtin.unregistered: llvm.select - 4: "n25_sub" has unsupported operation: llvm.call 4: "n25_sub" has unsupported operation: llvm.call @@ -539,8 +491,6 @@ 1: "n26" 4: "n26" has unsupported operation: builtin.unregistered: llvm.icmp -4: "n26" has unsupported operation: builtin.unregistered: llvm.select - 4: "n26" has unsupported operation: llvm.call 4: "n26" has unsupported operation: llvm.call @@ -558,8 +508,6 @@ 4: "n27_add_zext_of_magic" has unsupported operation: builtin.unregistered: llvm.zext -4: "n27_add_zext_of_magic" has unsupported operation: builtin.unregistered: llvm.select - 4: "n27_add_zext_of_magic" has unsupported operation: builtin.unregistered: llvm.zext 4: "n27_add_zext_of_magic" has unsupported operation: llvm.call @@ -585,8 +533,6 @@ 4: "n28_sub_sext_of_magic" has unsupported operation: builtin.unregistered: llvm.zext -4: "n28_sub_sext_of_magic" has unsupported operation: builtin.unregistered: llvm.select - 4: "n28_sub_sext_of_magic" has unsupported operation: builtin.unregistered: llvm.sext 4: "n28_sub_sext_of_magic" has unsupported operation: llvm.call @@ -608,8 +554,6 @@ 1: "n290_or_with_wrong_magic" 4: "n290_or_with_wrong_magic" has unsupported operation: builtin.unregistered: llvm.icmp -4: "n290_or_with_wrong_magic" has unsupported operation: builtin.unregistered: llvm.select - 4: "n290_or_with_wrong_magic" has unsupported operation: llvm.call 4: "n290_or_with_wrong_magic" has unsupported operation: llvm.call diff --git a/SSA/Projects/InstCombine/tests/logs/constant-fold-math.txt b/SSA/Projects/InstCombine/tests/logs/constant-fold-math.txt index dbd474a52..882fcd2a2 100644 --- a/SSA/Projects/InstCombine/tests/logs/constant-fold-math.txt +++ b/SSA/Projects/InstCombine/tests/logs/constant-fold-math.txt @@ -2,7 +2,7 @@ 4: "constant_fold_fma_f32" has unsupported operation after optimization: builtin.unregistered: llvm.intr.fma 1: "constant_fold_fma_v4f32" -"constant_fold_fma_v4f32" contains vectors which are unsupported +8: "constant_fold_fma_v4f32" contains vectors which are unsupported 1: "constant_fold_fmuladd_f32" 4: "constant_fold_fmuladd_f32" has unsupported operation after optimization: builtin.unregistered: llvm.intr.fmuladd diff --git a/SSA/Projects/InstCombine/tests/logs/ctlz-cttz-shifts.txt b/SSA/Projects/InstCombine/tests/logs/ctlz-cttz-shifts.txt index 55e78691a..9b6244204 100644 --- a/SSA/Projects/InstCombine/tests/logs/ctlz-cttz-shifts.txt +++ b/SSA/Projects/InstCombine/tests/logs/ctlz-cttz-shifts.txt @@ -14,19 +14,19 @@ 4: "shl_cttz_true" has unsupported operation after optimization: builtin.unregistered: llvm.intr.cttz 1: "vec2_lshr_ctlz_true" -"vec2_lshr_ctlz_true" contains vectors which are unsupported +8: "vec2_lshr_ctlz_true" contains vectors which are unsupported 1: "vec2_shl_nuw_ctlz_true" -"vec2_shl_nuw_ctlz_true" contains vectors which are unsupported +8: "vec2_shl_nuw_ctlz_true" contains vectors which are unsupported 1: "vec2_shl_nuw_nsw_ctlz_true" -"vec2_shl_nuw_nsw_ctlz_true" contains vectors which are unsupported +8: "vec2_shl_nuw_nsw_ctlz_true" contains vectors which are unsupported 1: "vec2_lshr_exact_cttz_true" -"vec2_lshr_exact_cttz_true" contains vectors which are unsupported +8: "vec2_lshr_exact_cttz_true" contains vectors which are unsupported 1: "vec2_shl_cttz_true" -"vec2_shl_cttz_true" contains vectors which are unsupported +8: "vec2_shl_cttz_true" contains vectors which are unsupported 1: "vec2_shl_nsw_ctlz_true_neg" 4: "vec2_shl_nsw_ctlz_true_neg" has unsupported operation: builtin.unregistered: llvm.intr.ctlz diff --git a/SSA/Projects/InstCombine/tests/logs/ctpop-pow2.txt b/SSA/Projects/InstCombine/tests/logs/ctpop-pow2.txt index cfddeabdc..30645eea3 100644 --- a/SSA/Projects/InstCombine/tests/logs/ctpop-pow2.txt +++ b/SSA/Projects/InstCombine/tests/logs/ctpop-pow2.txt @@ -35,7 +35,7 @@ 4: "ctpop_lshr_intmin_intmin_plus1_vec_nz" has unsupported operation: builtin.unregistered: llvm.intr.ctpop 1: "ctpop_shl2_1_vec_nz" -"ctpop_shl2_1_vec_nz" contains vectors which are unsupported +8: "ctpop_shl2_1_vec_nz" contains vectors which are unsupported 1: "ctpop_x_and_negx_vec" 4: "ctpop_x_and_negx_vec" has unsupported operation: builtin.unregistered: llvm.icmp @@ -43,5 +43,5 @@ 4: "ctpop_x_and_negx_vec" has unsupported operation: builtin.unregistered: llvm.zext 1: "ctpop_x_and_negx_vec_nz" -"ctpop_x_and_negx_vec_nz" contains vectors which are unsupported +8: "ctpop_x_and_negx_vec_nz" contains vectors which are unsupported diff --git a/SSA/Projects/InstCombine/tests/logs/ctpop.txt b/SSA/Projects/InstCombine/tests/logs/ctpop.txt index a43d184f3..4dab79c34 100644 --- a/SSA/Projects/InstCombine/tests/logs/ctpop.txt +++ b/SSA/Projects/InstCombine/tests/logs/ctpop.txt @@ -27,7 +27,7 @@ 4: "test5" has unsupported operation after optimization: builtin.unregistered: llvm.icmp 1: "test5vec" -"test5vec" contains vectors which are unsupported +8: "test5vec" contains vectors which are unsupported 1: "test6" 4: "test6" has unsupported operation after optimization: builtin.unregistered: llvm.intr.ctpop diff --git a/SSA/Projects/InstCombine/tests/logs/cttz-abs.txt b/SSA/Projects/InstCombine/tests/logs/cttz-abs.txt index 039069c0b..42fe09f4b 100644 --- a/SSA/Projects/InstCombine/tests/logs/cttz-abs.txt +++ b/SSA/Projects/InstCombine/tests/logs/cttz-abs.txt @@ -47,15 +47,11 @@ 1: "no_cttz_abs" 4: "no_cttz_abs" has unsupported operation: builtin.unregistered: llvm.icmp -4: "no_cttz_abs" has unsupported operation: builtin.unregistered: llvm.select - 4: "no_cttz_abs" has unsupported operation: builtin.unregistered: llvm.intr.cttz 1: "no_cttz_abs2" 4: "no_cttz_abs2" has unsupported operation: builtin.unregistered: llvm.icmp -4: "no_cttz_abs2" has unsupported operation: builtin.unregistered: llvm.select - 4: "no_cttz_abs2" has unsupported operation: builtin.unregistered: llvm.intr.cttz 1: "no_cttz_abs3" @@ -63,22 +59,16 @@ 4: "no_cttz_abs3" has unsupported operation: llvm.call -4: "no_cttz_abs3" has unsupported operation: builtin.unregistered: llvm.select - 4: "no_cttz_abs3" has unsupported operation: builtin.unregistered: llvm.intr.cttz 1: "no_cttz_abs_vec" 4: "no_cttz_abs_vec" has unsupported operation: builtin.unregistered: llvm.icmp -4: "no_cttz_abs_vec" has unsupported operation: builtin.unregistered: llvm.select - 4: "no_cttz_abs_vec" has unsupported operation: builtin.unregistered: llvm.intr.cttz 1: "no_cttz_nabs_vec" 4: "no_cttz_nabs_vec" has unsupported operation: builtin.unregistered: llvm.icmp -4: "no_cttz_nabs_vec" has unsupported operation: builtin.unregistered: llvm.select - 4: "no_cttz_nabs_vec" has unsupported operation: builtin.unregistered: llvm.intr.cttz 1: "cttz_abs_intrin" diff --git a/SSA/Projects/InstCombine/tests/logs/cttz.txt b/SSA/Projects/InstCombine/tests/logs/cttz.txt index 251b8e8a5..cec3b7c3e 100644 --- a/SSA/Projects/InstCombine/tests/logs/cttz.txt +++ b/SSA/Projects/InstCombine/tests/logs/cttz.txt @@ -59,8 +59,6 @@ 4: "cttz_of_lowest_set_bit" has unsupported operation: builtin.unregistered: llvm.intr.cttz 1: "cttz_of_lowest_set_bit_commuted" -4: "cttz_of_lowest_set_bit_commuted" has unsupported operation: llvm.udiv - 4: "cttz_of_lowest_set_bit_commuted" has unsupported operation: builtin.unregistered: llvm.intr.cttz 1: "cttz_of_lowest_set_bit_poison_flag" diff --git a/SSA/Projects/InstCombine/tests/logs/debuginfo-variables.txt b/SSA/Projects/InstCombine/tests/logs/debuginfo-variables.txt index a679f47d3..72e483c68 100644 --- a/SSA/Projects/InstCombine/tests/logs/debuginfo-variables.txt +++ b/SSA/Projects/InstCombine/tests/logs/debuginfo-variables.txt @@ -12,7 +12,7 @@ 4: "test_used_sext_zext" has unsupported operation: llvm.call 1: "test_cast_select" -4: "test_cast_select" has unsupported operation: builtin.unregistered: llvm.select +4: "test_cast_select" has unsupported operation after optimization: builtin.unregistered: llvm.zext 1: "test_or" 4: "test_or" has unsupported operation: llvm.return diff --git a/SSA/Projects/InstCombine/tests/logs/demorgan.txt b/SSA/Projects/InstCombine/tests/logs/demorgan.txt index 10c6fd88b..59d3f3f4a 100644 --- a/SSA/Projects/InstCombine/tests/logs/demorgan.txt +++ b/SSA/Projects/InstCombine/tests/logs/demorgan.txt @@ -249,8 +249,6 @@ 4: "PR28476_logical" has unsupported operation: builtin.unregistered: llvm.icmp -4: "PR28476_logical" has unsupported operation: builtin.unregistered: llvm.select - 4: "PR28476_logical" has unsupported operation: builtin.unregistered: llvm.zext 1: "demorgan_plus_and_to_xor" @@ -264,7 +262,7 @@ 2: llvm.return 1: "demorgan_plus_and_to_xor_vec" -"demorgan_plus_and_to_xor_vec" contains vectors which are unsupported +8: "demorgan_plus_and_to_xor_vec" contains vectors which are unsupported 1: "PR45984" 2: llvm.func diff --git a/SSA/Projects/InstCombine/tests/logs/deref-alloc-fns.txt b/SSA/Projects/InstCombine/tests/logs/deref-alloc-fns.txt index b5a02d929..bf30c25d3 100644 --- a/SSA/Projects/InstCombine/tests/logs/deref-alloc-fns.txt +++ b/SSA/Projects/InstCombine/tests/logs/deref-alloc-fns.txt @@ -41,13 +41,9 @@ 4: "aligned_alloc_constant_size" has unsupported operation: llvm.call 1: "aligned_alloc_unknown_size_nonzero" -4: "aligned_alloc_unknown_size_nonzero" has unsupported operation: builtin.unregistered: llvm.select - 4: "aligned_alloc_unknown_size_nonzero" has unsupported operation: llvm.call 1: "aligned_alloc_unknown_size_possibly_zero" -4: "aligned_alloc_unknown_size_possibly_zero" has unsupported operation: builtin.unregistered: llvm.select - 4: "aligned_alloc_unknown_size_possibly_zero" has unsupported operation: llvm.call 1: "aligned_alloc_unknown_align" @@ -69,13 +65,9 @@ 4: "memalign_constant_size" has unsupported operation: llvm.call 1: "memalign_unknown_size_nonzero" -4: "memalign_unknown_size_nonzero" has unsupported operation: builtin.unregistered: llvm.select - 4: "memalign_unknown_size_nonzero" has unsupported operation: llvm.call 1: "memalign_unknown_size_possibly_zero" -4: "memalign_unknown_size_possibly_zero" has unsupported operation: builtin.unregistered: llvm.select - 4: "memalign_unknown_size_possibly_zero" has unsupported operation: llvm.call 1: "memalign_unknown_align" diff --git a/SSA/Projects/InstCombine/tests/logs/disable-simplify-libcalls.txt b/SSA/Projects/InstCombine/tests/logs/disable-simplify-libcalls.txt index 6cf8e0625..004a17990 100644 --- a/SSA/Projects/InstCombine/tests/logs/disable-simplify-libcalls.txt +++ b/SSA/Projects/InstCombine/tests/logs/disable-simplify-libcalls.txt @@ -232,8 +232,6 @@ 4: "t27" has unsupported operation: builtin.unregistered: llvm.icmp -4: "t27" has unsupported operation: builtin.unregistered: llvm.select - 1: "t28" 4: "t28" has unsupported operation: llvm.call diff --git a/SSA/Projects/InstCombine/tests/logs/div-by-0-guard-before-smul_ov-not.txt b/SSA/Projects/InstCombine/tests/logs/div-by-0-guard-before-smul_ov-not.txt index 783ac4228..92076c546 100644 --- a/SSA/Projects/InstCombine/tests/logs/div-by-0-guard-before-smul_ov-not.txt +++ b/SSA/Projects/InstCombine/tests/logs/div-by-0-guard-before-smul_ov-not.txt @@ -17,8 +17,6 @@ 4: "n2_wrong_size" has unsupported operation: llvm.extractvalue -4: "n2_wrong_size" has unsupported operation: builtin.unregistered: llvm.select - 1: "n3_wrong_pred" 4: "n3_wrong_pred" has unsupported operation after optimization: builtin.unregistered: llvm.icmp @@ -26,8 +24,6 @@ 4: "n3_wrong_pred" has unsupported operation after optimization: llvm.extractvalue -4: "n3_wrong_pred" has unsupported operation after optimization: builtin.unregistered: llvm.select - 1: "n4_not_and" 4: "n4_not_and" has unsupported operation: builtin.unregistered: llvm.icmp @@ -38,5 +34,3 @@ 4: "n5_not_zero" has unsupported operation: llvm.extractvalue -4: "n5_not_zero" has unsupported operation: builtin.unregistered: llvm.select - diff --git a/SSA/Projects/InstCombine/tests/logs/div-by-0-guard-before-smul_ov.txt b/SSA/Projects/InstCombine/tests/logs/div-by-0-guard-before-smul_ov.txt index dcb3d5e6c..a6af62eaa 100644 --- a/SSA/Projects/InstCombine/tests/logs/div-by-0-guard-before-smul_ov.txt +++ b/SSA/Projects/InstCombine/tests/logs/div-by-0-guard-before-smul_ov.txt @@ -17,8 +17,6 @@ 4: "n2_wrong_size" has unsupported operation: llvm.extractvalue -4: "n2_wrong_size" has unsupported operation: builtin.unregistered: llvm.select - 1: "n3_wrong_pred" 4: "n3_wrong_pred" has unsupported operation after optimization: builtin.unregistered: llvm.icmp @@ -26,8 +24,6 @@ 4: "n3_wrong_pred" has unsupported operation after optimization: llvm.extractvalue -4: "n3_wrong_pred" has unsupported operation after optimization: builtin.unregistered: llvm.select - 1: "n4_not_and" 4: "n4_not_and" has unsupported operation: builtin.unregistered: llvm.icmp diff --git a/SSA/Projects/InstCombine/tests/logs/div-by-0-guard-before-umul_ov-not.txt b/SSA/Projects/InstCombine/tests/logs/div-by-0-guard-before-umul_ov-not.txt index a88867bb4..de1ceecdd 100644 --- a/SSA/Projects/InstCombine/tests/logs/div-by-0-guard-before-umul_ov-not.txt +++ b/SSA/Projects/InstCombine/tests/logs/div-by-0-guard-before-umul_ov-not.txt @@ -17,8 +17,6 @@ 4: "n2_wrong_size" has unsupported operation: llvm.extractvalue -4: "n2_wrong_size" has unsupported operation: builtin.unregistered: llvm.select - 1: "n3_wrong_pred" 4: "n3_wrong_pred" has unsupported operation after optimization: builtin.unregistered: llvm.icmp @@ -26,8 +24,6 @@ 4: "n3_wrong_pred" has unsupported operation after optimization: llvm.extractvalue -4: "n3_wrong_pred" has unsupported operation after optimization: builtin.unregistered: llvm.select - 1: "n4_not_and" 4: "n4_not_and" has unsupported operation: builtin.unregistered: llvm.icmp @@ -38,5 +34,3 @@ 4: "n5_not_zero" has unsupported operation: llvm.extractvalue -4: "n5_not_zero" has unsupported operation: builtin.unregistered: llvm.select - diff --git a/SSA/Projects/InstCombine/tests/logs/div-by-0-guard-before-umul_ov.txt b/SSA/Projects/InstCombine/tests/logs/div-by-0-guard-before-umul_ov.txt index 0d2e18f8b..a89da1d97 100644 --- a/SSA/Projects/InstCombine/tests/logs/div-by-0-guard-before-umul_ov.txt +++ b/SSA/Projects/InstCombine/tests/logs/div-by-0-guard-before-umul_ov.txt @@ -17,8 +17,6 @@ 4: "n2_wrong_size" has unsupported operation: llvm.extractvalue -4: "n2_wrong_size" has unsupported operation: builtin.unregistered: llvm.select - 1: "n3_wrong_pred" 4: "n3_wrong_pred" has unsupported operation after optimization: builtin.unregistered: llvm.icmp @@ -26,8 +24,6 @@ 4: "n3_wrong_pred" has unsupported operation after optimization: llvm.extractvalue -4: "n3_wrong_pred" has unsupported operation after optimization: builtin.unregistered: llvm.select - 1: "n4_not_and" 4: "n4_not_and" has unsupported operation: builtin.unregistered: llvm.icmp diff --git a/SSA/Projects/InstCombine/tests/logs/div-i1.txt b/SSA/Projects/InstCombine/tests/logs/div-i1.txt index 0991d6e47..f6ffc152f 100644 --- a/SSA/Projects/InstCombine/tests/logs/div-i1.txt +++ b/SSA/Projects/InstCombine/tests/logs/div-i1.txt @@ -40,7 +40,9 @@ 2: llvm.return 1: "udiv_i1_is_op0" -4: "udiv_i1_is_op0" has unsupported operation after optimization: llvm.udiv +2: llvm.func +2: llvm.udiv +2: llvm.return 1: "srem_i1_is_zero" 2: llvm.func diff --git a/SSA/Projects/InstCombine/tests/logs/div-shift.txt b/SSA/Projects/InstCombine/tests/logs/div-shift.txt index 715c2c498..09b58d2d5 100644 --- a/SSA/Projects/InstCombine/tests/logs/div-shift.txt +++ b/SSA/Projects/InstCombine/tests/logs/div-shift.txt @@ -20,15 +20,19 @@ 4: "t4" has unsupported operation: builtin.unregistered: llvm.intr.umax 1: "t5" -4: "t5" has unsupported operation: builtin.unregistered: llvm.select - -4: "t5" has unsupported operation: builtin.unregistered: llvm.select +2: llvm.func +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.shl +2: builtin.unregistered: llvm.select +2: builtin.unregistered: llvm.select +2: llvm.udiv +2: llvm.return 1: "t6" 4: "t6" has unsupported operation: builtin.unregistered: llvm.intr.umax -4: "t6" has unsupported operation: llvm.udiv - 1: "udiv_umin" 4: "udiv_umin" has unsupported operation: builtin.unregistered: llvm.intr.umin @@ -38,25 +42,17 @@ 1: "udiv_umin_" 4: "udiv_umin_" has unsupported operation: builtin.unregistered: llvm.intr.umin -4: "udiv_umin_" has unsupported operation: llvm.udiv - 1: "udiv_umin_extra_use" 4: "udiv_umin_extra_use" has unsupported operation: builtin.unregistered: llvm.intr.umin 4: "udiv_umin_extra_use" has unsupported operation: llvm.call -4: "udiv_umin_extra_use" has unsupported operation: llvm.udiv - 1: "udiv_smin" 4: "udiv_smin" has unsupported operation: builtin.unregistered: llvm.intr.smin -4: "udiv_smin" has unsupported operation: llvm.udiv - 1: "udiv_smax" 4: "udiv_smax" has unsupported operation: builtin.unregistered: llvm.intr.smax -4: "udiv_smax" has unsupported operation: llvm.udiv - 1: "t7" 2: llvm.func 2: llvm.mlir.constant @@ -68,7 +64,7 @@ 7: "t8" is unchanged by InstCombine 1: "t9" -"t9" contains vectors which are unsupported +8: "t9" contains vectors which are unsupported 1: "t10" 2: llvm.func @@ -77,22 +73,29 @@ 2: llvm.return 1: "t11" -"t11" contains vectors which are unsupported +8: "t11" contains vectors which are unsupported 1: "t12" -4: "t12" has unsupported operation after optimization: llvm.udiv +2: llvm.func +2: llvm.mlir.constant +2: llvm.shl +2: llvm.udiv +2: llvm.return 1: "t13" -4: "t13" has unsupported operation: llvm.udiv +7: "t13" is unchanged by InstCombine 1: "t14" -"t14" contains vectors which are unsupported +8: "t14" contains vectors which are unsupported 1: "t15" -4: "t15" has unsupported operation after optimization: llvm.udiv +2: llvm.func +2: llvm.shl +2: llvm.udiv +2: llvm.return 1: "t16" -"t16" contains vectors which are unsupported +8: "t16" contains vectors which are unsupported 1: "sdiv_mul_shl_nsw" 2: llvm.func @@ -132,13 +135,21 @@ 7: "sdiv_mul_shl_missing_nsw2" is unchanged by InstCombine 1: "udiv_mul_shl_nuw" -4: "udiv_mul_shl_nuw" has unsupported operation after optimization: llvm.udiv +2: llvm.func +2: llvm.mul +2: llvm.shl +2: llvm.udiv +2: llvm.return 1: "udiv_mul_shl_nuw_exact_commute1" -4: "udiv_mul_shl_nuw_exact_commute1" has unsupported operation after optimization: llvm.udiv +2: llvm.func +2: llvm.mul +2: llvm.shl +2: llvm.udiv +2: llvm.return 1: "udiv_mul_shl_nuw_commute2" -4: "udiv_mul_shl_nuw_commute2" has unsupported operation: llvm.udiv +7: "udiv_mul_shl_nuw_commute2" is unchanged by InstCombine 1: "udiv_mul_shl_nsw_use1" 4: "udiv_mul_shl_nsw_use1" has unsupported operation: llvm.call @@ -152,65 +163,73 @@ 4: "udiv_mul_shl_nsw_use3" has unsupported operation: llvm.call 1: "udiv_shl_mul_nuw" -4: "udiv_shl_mul_nuw" has unsupported operation: llvm.udiv +2: llvm.func +2: llvm.shl +2: llvm.mul +2: llvm.udiv +2: llvm.return 1: "udiv_shl_mul_nuw_swap" -4: "udiv_shl_mul_nuw_swap" has unsupported operation: llvm.udiv +2: llvm.func +2: llvm.shl +2: llvm.mul +2: llvm.udiv +2: llvm.return 1: "udiv_shl_mul_nuw_exact" -4: "udiv_shl_mul_nuw_exact" has unsupported operation: llvm.udiv +2: llvm.func +2: llvm.shl +2: llvm.mul +2: llvm.udiv +2: llvm.return 1: "udiv_shl_mul_nuw_vec" -4: "udiv_shl_mul_nuw_vec" has unsupported operation: llvm.udiv +8: "udiv_shl_mul_nuw_vec" contains vectors which are unsupported 1: "udiv_shl_mul_nuw_extra_use_of_shl" 4: "udiv_shl_mul_nuw_extra_use_of_shl" has unsupported operation: llvm.call -4: "udiv_shl_mul_nuw_extra_use_of_shl" has unsupported operation: llvm.udiv - 1: "udiv_shl_mul_nuw_extra_use_of_mul" 4: "udiv_shl_mul_nuw_extra_use_of_mul" has unsupported operation: llvm.call -4: "udiv_shl_mul_nuw_extra_use_of_mul" has unsupported operation: llvm.udiv - 1: "udiv_shl_mul_nuw_extra_use" 4: "udiv_shl_mul_nuw_extra_use" has unsupported operation: llvm.call 4: "udiv_shl_mul_nuw_extra_use" has unsupported operation: llvm.call -4: "udiv_shl_mul_nuw_extra_use" has unsupported operation: llvm.udiv - 1: "sdiv_shl_mul_nuw" 7: "sdiv_shl_mul_nuw" is unchanged by InstCombine 1: "udiv_mul_shl_missing_nsw1" -4: "udiv_mul_shl_missing_nsw1" has unsupported operation: llvm.udiv +7: "udiv_mul_shl_missing_nsw1" is unchanged by InstCombine 1: "udiv_mul_shl_missing_nsw2" -4: "udiv_mul_shl_missing_nsw2" has unsupported operation: llvm.udiv +7: "udiv_mul_shl_missing_nsw2" is unchanged by InstCombine 1: "udiv_shl_nuw" -4: "udiv_shl_nuw" has unsupported operation: llvm.udiv +7: "udiv_shl_nuw" is unchanged by InstCombine 1: "udiv_shl_nuw_exact" -4: "udiv_shl_nuw_exact" has unsupported operation: llvm.udiv +7: "udiv_shl_nuw_exact" is unchanged by InstCombine 1: "udiv_shl" -4: "udiv_shl" has unsupported operation: llvm.udiv +7: "udiv_shl" is unchanged by InstCombine 1: "udiv_shl_nuw_use" 4: "udiv_shl_nuw_use" has unsupported operation: llvm.call -4: "udiv_shl_nuw_use" has unsupported operation: llvm.udiv - 1: "udiv_lshr_mul_nuw" -4: "udiv_lshr_mul_nuw" has unsupported operation after optimization: llvm.udiv +2: llvm.func +2: llvm.mul +2: llvm.lshr +2: llvm.udiv +2: llvm.return 1: "udiv_lshr_mul_nuw_exact_commute1" -"udiv_lshr_mul_nuw_exact_commute1" contains vectors which are unsupported +8: "udiv_lshr_mul_nuw_exact_commute1" contains vectors which are unsupported 1: "udiv_lshr_mul_nuw_commute2" -4: "udiv_lshr_mul_nuw_commute2" has unsupported operation: llvm.udiv +7: "udiv_lshr_mul_nuw_commute2" is unchanged by InstCombine 1: "udiv_lshr_mul_nuw_use1" 4: "udiv_lshr_mul_nuw_use1" has unsupported operation: llvm.call @@ -224,7 +243,7 @@ 4: "udiv_lshr_mul_nuw_use3" has unsupported operation: llvm.call 1: "udiv_lshr_mul_nsw" -4: "udiv_lshr_mul_nsw" has unsupported operation: llvm.udiv +7: "udiv_lshr_mul_nsw" is unchanged by InstCombine 1: "sdiv_lshr_mul_nsw" 7: "sdiv_lshr_mul_nsw" is unchanged by InstCombine @@ -249,37 +268,35 @@ 7: "sdiv_shl_shl_nuw_nsw2" is unchanged by InstCombine 1: "udiv_shl_shl_nuw2" -4: "udiv_shl_shl_nuw2" has unsupported operation: llvm.udiv +8: "udiv_shl_shl_nuw2" contains vectors which are unsupported 1: "udiv_shl_shl_nuw2_exact_use2" 4: "udiv_shl_shl_nuw2_exact_use2" has unsupported operation: llvm.call 4: "udiv_shl_shl_nuw2_exact_use2" has unsupported operation: llvm.call -4: "udiv_shl_shl_nuw2_exact_use2" has unsupported operation: llvm.udiv - 1: "udiv_shl_shl_nuw_nsw" -4: "udiv_shl_shl_nuw_nsw" has unsupported operation: llvm.udiv +7: "udiv_shl_shl_nuw_nsw" is unchanged by InstCombine 1: "udiv_shl_shl_nsw_nuw" -4: "udiv_shl_shl_nsw_nuw" has unsupported operation: llvm.udiv +7: "udiv_shl_shl_nsw_nuw" is unchanged by InstCombine 1: "udiv_shl_shl_nuw_nsw2" -4: "udiv_shl_shl_nuw_nsw2" has unsupported operation: llvm.udiv +2: llvm.func +2: llvm.shl +2: llvm.shl +2: llvm.udiv +2: llvm.return 1: "udiv_shl_nuw_divisor" -4: "udiv_shl_nuw_divisor" has unsupported operation: llvm.udiv +7: "udiv_shl_nuw_divisor" is unchanged by InstCombine 1: "udiv_fail_shl_overflow" 4: "udiv_fail_shl_overflow" has unsupported operation: builtin.unregistered: llvm.intr.umax -4: "udiv_fail_shl_overflow" has unsupported operation: llvm.udiv - 1: "udiv_shl_no_overflow" 4: "udiv_shl_no_overflow" has unsupported operation after optimization: builtin.unregistered: llvm.intr.umax -4: "udiv_shl_no_overflow" has unsupported operation after optimization: llvm.udiv - 1: "sdiv_shl_pair_const" 2: llvm.func 2: llvm.mlir.constant @@ -290,7 +307,13 @@ 2: llvm.return 1: "udiv_shl_pair_const" -4: "udiv_shl_pair_const" has unsupported operation after optimization: llvm.udiv +2: llvm.func +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.shl +2: llvm.shl +2: llvm.udiv +2: llvm.return 1: "sdiv_shl_pair1" 2: llvm.func @@ -317,13 +340,25 @@ 7: "sdiv_shl_no_pair_fail" is unchanged by InstCombine 1: "udiv_shl_pair1" -4: "udiv_shl_pair1" has unsupported operation after optimization: llvm.udiv +2: llvm.func +2: llvm.shl +2: llvm.shl +2: llvm.udiv +2: llvm.return 1: "udiv_shl_pair2" -4: "udiv_shl_pair2" has unsupported operation after optimization: llvm.udiv +2: llvm.func +2: llvm.shl +2: llvm.shl +2: llvm.udiv +2: llvm.return 1: "udiv_shl_pair3" -4: "udiv_shl_pair3" has unsupported operation after optimization: llvm.udiv +2: llvm.func +2: llvm.shl +2: llvm.shl +2: llvm.udiv +2: llvm.return 1: "sdiv_shl_pair_overflow_fail1" 7: "sdiv_shl_pair_overflow_fail1" is unchanged by InstCombine @@ -332,13 +367,13 @@ 7: "sdiv_shl_pair_overflow_fail2" is unchanged by InstCombine 1: "udiv_shl_pair_overflow_fail1" -4: "udiv_shl_pair_overflow_fail1" has unsupported operation: llvm.udiv +7: "udiv_shl_pair_overflow_fail1" is unchanged by InstCombine 1: "udiv_shl_pair_overflow_fail2" -4: "udiv_shl_pair_overflow_fail2" has unsupported operation: llvm.udiv +7: "udiv_shl_pair_overflow_fail2" is unchanged by InstCombine 1: "udiv_shl_pair_overflow_fail3" -4: "udiv_shl_pair_overflow_fail3" has unsupported operation: llvm.udiv +7: "udiv_shl_pair_overflow_fail3" is unchanged by InstCombine 1: "sdiv_shl_pair_multiuse1" 4: "sdiv_shl_pair_multiuse1" has unsupported operation: llvm.call diff --git a/SSA/Projects/InstCombine/tests/logs/exact.txt b/SSA/Projects/InstCombine/tests/logs/exact.txt index 99e479d4e..51ae56160 100644 --- a/SSA/Projects/InstCombine/tests/logs/exact.txt +++ b/SSA/Projects/InstCombine/tests/logs/exact.txt @@ -8,7 +8,7 @@ 2: llvm.return 1: "sdiv2_vec" -"sdiv2_vec" contains vectors which are unsupported +8: "sdiv2_vec" contains vectors which are unsupported 1: "sdiv3" 4: "sdiv3" has unsupported operation: builtin.unregistered: llvm.freeze @@ -32,10 +32,17 @@ 2: llvm.return 1: "udiv1" -4: "udiv1" has unsupported operation after optimization: llvm.udiv +2: llvm.func +2: llvm.udiv +2: llvm.mul +2: llvm.return 1: "udiv2" -4: "udiv2" has unsupported operation after optimization: llvm.udiv +2: llvm.func +2: llvm.mlir.constant +2: llvm.shl +2: llvm.udiv +2: llvm.return 1: "ashr1" 7: "ashr1" is unchanged by InstCombine @@ -109,7 +116,12 @@ 4: "sdiv_icmp6_vec" has unsupported operation: builtin.unregistered: llvm.icmp 1: "mul_of_udiv" -4: "mul_of_udiv" has unsupported operation after optimization: llvm.udiv +2: llvm.func +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.udiv +2: llvm.mul +2: llvm.return 1: "mul_of_sdiv" 2: llvm.func @@ -120,13 +132,18 @@ 2: llvm.return 1: "mul_of_sdiv_non_splat" -"mul_of_sdiv_non_splat" contains vectors which are unsupported +8: "mul_of_sdiv_non_splat" contains vectors which are unsupported 1: "mul_of_sdiv_fail_missing_exact" 7: "mul_of_sdiv_fail_missing_exact" is unchanged by InstCombine 1: "mul_of_udiv_fail_bad_remainder" -4: "mul_of_udiv_fail_bad_remainder" has unsupported operation: llvm.udiv +2: llvm.func +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.udiv +2: llvm.mul +2: llvm.return 1: "mul_of_sdiv_fail_ub" 2: llvm.func diff --git a/SSA/Projects/InstCombine/tests/logs/extract-select-agg.txt b/SSA/Projects/InstCombine/tests/logs/extract-select-agg.txt index e49ec4964..416309c56 100644 --- a/SSA/Projects/InstCombine/tests/logs/extract-select-agg.txt +++ b/SSA/Projects/InstCombine/tests/logs/extract-select-agg.txt @@ -6,8 +6,6 @@ 4: "test_select_agg_constant_agg_multiuse" has unsupported operation: llvm.call -4: "test_select_agg_constant_agg_multiuse" has unsupported operation: builtin.unregistered: llvm.select - 4: "test_select_agg_constant_agg_multiuse" has unsupported operation: llvm.call 4: "test_select_agg_constant_agg_multiuse" has unsupported operation: llvm.return @@ -31,8 +29,6 @@ 4: "test_select_agg_constant" has unsupported operation: llvm.insertvalue -4: "test_select_agg_constant" has unsupported operation: builtin.unregistered: llvm.select - 4: "test_select_agg_constant" has unsupported operation: llvm.extractvalue 1: "test_select_agg_multiuse" @@ -46,8 +42,6 @@ 4: "test_select_agg_multiuse" has unsupported operation: llvm.insertvalue -4: "test_select_agg_multiuse" has unsupported operation: builtin.unregistered: llvm.select - 4: "test_select_agg_multiuse" has unsupported operation: llvm.extractvalue 4: "test_select_agg_multiuse" has unsupported operation: llvm.call diff --git a/SSA/Projects/InstCombine/tests/logs/extractelement-inseltpoison.txt b/SSA/Projects/InstCombine/tests/logs/extractelement-inseltpoison.txt index a66b6f32b..b6563747d 100644 --- a/SSA/Projects/InstCombine/tests/logs/extractelement-inseltpoison.txt +++ b/SSA/Projects/InstCombine/tests/logs/extractelement-inseltpoison.txt @@ -8,7 +8,7 @@ 4: "bitcasted_inselt_equal_num_elts" has unsupported operation: builtin.unregistered: llvm.bitcast 1: "test2" -"test2" contains vectors which are unsupported +8: "test2" contains vectors which are unsupported 1: "bitcasted_inselt_wide_source_zero_elt" 4: "bitcasted_inselt_wide_source_zero_elt" has unsupported operation: builtin.unregistered: llvm.trunc diff --git a/SSA/Projects/InstCombine/tests/logs/fabs-fneg-fold.txt b/SSA/Projects/InstCombine/tests/logs/fabs-fneg-fold.txt index 788e08763..437795b4e 100644 --- a/SSA/Projects/InstCombine/tests/logs/fabs-fneg-fold.txt +++ b/SSA/Projects/InstCombine/tests/logs/fabs-fneg-fold.txt @@ -35,7 +35,7 @@ 4: "fabs_fneg_no_fabs" has unsupported operation: builtin.unregistered: llvm.fneg 1: "fabs_fneg_splat_v2f32" -"fabs_fneg_splat_v2f32" contains vectors which are unsupported +8: "fabs_fneg_splat_v2f32" contains vectors which are unsupported 1: "fabs_fneg_splat_poison_v2f32" 4: "fabs_fneg_splat_poison_v2f32" has unsupported operation: builtin.unregistered: llvm.mlir.poison @@ -49,7 +49,7 @@ 4: "fabs_fneg_splat_poison_v2f32" has unsupported operation: builtin.unregistered: llvm.intr.fabs 1: "fabs_fneg_non_splat_v2f32" -"fabs_fneg_non_splat_v2f32" contains vectors which are unsupported +8: "fabs_fneg_non_splat_v2f32" contains vectors which are unsupported 1: "use" 5: "use" is empty diff --git a/SSA/Projects/InstCombine/tests/logs/fabs.txt b/SSA/Projects/InstCombine/tests/logs/fabs.txt index d3179e5fc..28f16c7fc 100644 --- a/SSA/Projects/InstCombine/tests/logs/fabs.txt +++ b/SSA/Projects/InstCombine/tests/logs/fabs.txt @@ -56,23 +56,15 @@ 1: "fabs_select_constant_negative_positive" 4: "fabs_select_constant_negative_positive" has unsupported operation: builtin.unregistered: llvm.icmp -4: "fabs_select_constant_negative_positive" has unsupported operation: builtin.unregistered: llvm.select - 1: "fabs_select_constant_positive_negative" 4: "fabs_select_constant_positive_negative" has unsupported operation: builtin.unregistered: llvm.icmp -4: "fabs_select_constant_positive_negative" has unsupported operation: builtin.unregistered: llvm.select - 1: "fabs_select_constant_negative_negative" 4: "fabs_select_constant_negative_negative" has unsupported operation: builtin.unregistered: llvm.icmp -4: "fabs_select_constant_negative_negative" has unsupported operation: builtin.unregistered: llvm.select - 1: "fabs_select_constant_neg0" 4: "fabs_select_constant_neg0" has unsupported operation after optimization: builtin.unregistered: llvm.icmp -4: "fabs_select_constant_neg0" has unsupported operation after optimization: builtin.unregistered: llvm.select - 4: "fabs_select_constant_neg0" has unsupported operation after optimization: builtin.unregistered: llvm.intr.fabs 1: "fabs_select_var_constant_negative" @@ -80,8 +72,6 @@ 4: "fabs_select_var_constant_negative" has unsupported operation: builtin.unregistered: llvm.intr.fabs -4: "fabs_select_var_constant_negative" has unsupported operation: builtin.unregistered: llvm.select - 1: "square_fma_fabs_intrinsic_f32" 4: "square_fma_fabs_intrinsic_f32" has unsupported operation: builtin.unregistered: llvm.intr.fma @@ -124,8 +114,6 @@ 4: "select_fcmp_nnan_olt_zero" has unsupported operation: builtin.unregistered: llvm.fsub -4: "select_fcmp_nnan_olt_zero" has unsupported operation: builtin.unregistered: llvm.select - 1: "select_fcmp_nnan_ole_negzero" 4: "select_fcmp_nnan_ole_negzero" has unsupported operation: builtin.unregistered: llvm.intr.fabs @@ -140,8 +128,6 @@ 4: "select_nsz_fcmp_ogt_fneg" has unsupported operation: builtin.unregistered: llvm.fcmp -4: "select_nsz_fcmp_ogt_fneg" has unsupported operation: builtin.unregistered: llvm.select - 1: "select_nsz_nnan_fcmp_ogt_fneg" 4: "select_nsz_nnan_fcmp_ogt_fneg" has unsupported operation: builtin.unregistered: llvm.intr.fabs @@ -165,15 +151,11 @@ 4: "select_fcmp_nnan_oge_negzero" has unsupported operation: builtin.unregistered: llvm.fsub -4: "select_fcmp_nnan_oge_negzero" has unsupported operation: builtin.unregistered: llvm.select - 1: "select_nsz_fcmp_olt_zero_unary_fneg" 4: "select_nsz_fcmp_olt_zero_unary_fneg" has unsupported operation: builtin.unregistered: llvm.fcmp 4: "select_nsz_fcmp_olt_zero_unary_fneg" has unsupported operation: builtin.unregistered: llvm.fneg -4: "select_nsz_fcmp_olt_zero_unary_fneg" has unsupported operation: builtin.unregistered: llvm.select - 1: "select_nsz_nnan_fcmp_olt_zero_unary_fneg" 4: "select_nsz_nnan_fcmp_olt_zero_unary_fneg" has unsupported operation: builtin.unregistered: llvm.intr.fabs @@ -182,8 +164,6 @@ 4: "select_fcmp_nnan_nsz_olt_zero" has unsupported operation: builtin.unregistered: llvm.fneg -4: "select_fcmp_nnan_nsz_olt_zero" has unsupported operation: builtin.unregistered: llvm.select - 1: "select_nnan_nsz_fcmp_nnan_nsz_olt_zero" 4: "select_nnan_nsz_fcmp_nnan_nsz_olt_zero" has unsupported operation: builtin.unregistered: llvm.intr.fabs @@ -192,29 +172,21 @@ 4: "select_fcmp_nnan_nsz_ult_zero" has unsupported operation: builtin.unregistered: llvm.fneg -4: "select_fcmp_nnan_nsz_ult_zero" has unsupported operation: builtin.unregistered: llvm.select - 1: "select_fcmp_nnan_nsz_olt_zero_unary_fneg" 4: "select_fcmp_nnan_nsz_olt_zero_unary_fneg" has unsupported operation: builtin.unregistered: llvm.fcmp 4: "select_fcmp_nnan_nsz_olt_zero_unary_fneg" has unsupported operation: builtin.unregistered: llvm.fneg -4: "select_fcmp_nnan_nsz_olt_zero_unary_fneg" has unsupported operation: builtin.unregistered: llvm.select - 1: "select_fcmp_nnan_nsz_ult_zero_unary_fneg" 4: "select_fcmp_nnan_nsz_ult_zero_unary_fneg" has unsupported operation: builtin.unregistered: llvm.fcmp 4: "select_fcmp_nnan_nsz_ult_zero_unary_fneg" has unsupported operation: builtin.unregistered: llvm.fneg -4: "select_fcmp_nnan_nsz_ult_zero_unary_fneg" has unsupported operation: builtin.unregistered: llvm.select - 1: "select_fcmp_nnan_nsz_olt_negzero" 4: "select_fcmp_nnan_nsz_olt_negzero" has unsupported operation: builtin.unregistered: llvm.fcmp 4: "select_fcmp_nnan_nsz_olt_negzero" has unsupported operation: builtin.unregistered: llvm.fneg -4: "select_fcmp_nnan_nsz_olt_negzero" has unsupported operation: builtin.unregistered: llvm.select - 1: "select_nnan_ninf_nsz_fcmp_nnan_nsz_olt_negzero" 4: "select_nnan_ninf_nsz_fcmp_nnan_nsz_olt_negzero" has unsupported operation: builtin.unregistered: llvm.intr.fabs @@ -223,29 +195,21 @@ 4: "select_fcmp_nnan_nsz_ult_negzero" has unsupported operation: builtin.unregistered: llvm.fneg -4: "select_fcmp_nnan_nsz_ult_negzero" has unsupported operation: builtin.unregistered: llvm.select - 1: "select_fcmp_nnan_nsz_olt_negzero_unary_fneg" 4: "select_fcmp_nnan_nsz_olt_negzero_unary_fneg" has unsupported operation: builtin.unregistered: llvm.fcmp 4: "select_fcmp_nnan_nsz_olt_negzero_unary_fneg" has unsupported operation: builtin.unregistered: llvm.fneg -4: "select_fcmp_nnan_nsz_olt_negzero_unary_fneg" has unsupported operation: builtin.unregistered: llvm.select - 1: "select_fcmp_nnan_nsz_ult_negzero_unary_fneg" 4: "select_fcmp_nnan_nsz_ult_negzero_unary_fneg" has unsupported operation: builtin.unregistered: llvm.fcmp 4: "select_fcmp_nnan_nsz_ult_negzero_unary_fneg" has unsupported operation: builtin.unregistered: llvm.fneg -4: "select_fcmp_nnan_nsz_ult_negzero_unary_fneg" has unsupported operation: builtin.unregistered: llvm.select - 1: "select_fcmp_nnan_nsz_ole_zero" 4: "select_fcmp_nnan_nsz_ole_zero" has unsupported operation: builtin.unregistered: llvm.fcmp 4: "select_fcmp_nnan_nsz_ole_zero" has unsupported operation: builtin.unregistered: llvm.fneg -4: "select_fcmp_nnan_nsz_ole_zero" has unsupported operation: builtin.unregistered: llvm.select - 1: "select_fast_fcmp_nnan_nsz_ole_zero" 4: "select_fast_fcmp_nnan_nsz_ole_zero" has unsupported operation: builtin.unregistered: llvm.intr.fabs @@ -254,29 +218,21 @@ 4: "select_fcmp_nnan_nsz_ule_zero" has unsupported operation: builtin.unregistered: llvm.fneg -4: "select_fcmp_nnan_nsz_ule_zero" has unsupported operation: builtin.unregistered: llvm.select - 1: "select_fcmp_nnan_nsz_ole_zero_unary_fneg" 4: "select_fcmp_nnan_nsz_ole_zero_unary_fneg" has unsupported operation: builtin.unregistered: llvm.fcmp 4: "select_fcmp_nnan_nsz_ole_zero_unary_fneg" has unsupported operation: builtin.unregistered: llvm.fneg -4: "select_fcmp_nnan_nsz_ole_zero_unary_fneg" has unsupported operation: builtin.unregistered: llvm.select - 1: "select_fcmp_nnan_nsz_ule_zero_unary_fneg" 4: "select_fcmp_nnan_nsz_ule_zero_unary_fneg" has unsupported operation: builtin.unregistered: llvm.fcmp 4: "select_fcmp_nnan_nsz_ule_zero_unary_fneg" has unsupported operation: builtin.unregistered: llvm.fneg -4: "select_fcmp_nnan_nsz_ule_zero_unary_fneg" has unsupported operation: builtin.unregistered: llvm.select - 1: "select_fcmp_nnan_nsz_ole_negzero" 4: "select_fcmp_nnan_nsz_ole_negzero" has unsupported operation: builtin.unregistered: llvm.fcmp 4: "select_fcmp_nnan_nsz_ole_negzero" has unsupported operation: builtin.unregistered: llvm.fneg -4: "select_fcmp_nnan_nsz_ole_negzero" has unsupported operation: builtin.unregistered: llvm.select - 1: "select_nnan_nsz_fcmp_nnan_nsz_ole_negzero" 4: "select_nnan_nsz_fcmp_nnan_nsz_ole_negzero" has unsupported operation: builtin.unregistered: llvm.intr.fabs @@ -285,29 +241,21 @@ 4: "select_fcmp_nnan_nsz_ule_negzero" has unsupported operation: builtin.unregistered: llvm.fneg -4: "select_fcmp_nnan_nsz_ule_negzero" has unsupported operation: builtin.unregistered: llvm.select - 1: "select_fcmp_nnan_nsz_ole_negzero_unary_fneg" 4: "select_fcmp_nnan_nsz_ole_negzero_unary_fneg" has unsupported operation: builtin.unregistered: llvm.fcmp 4: "select_fcmp_nnan_nsz_ole_negzero_unary_fneg" has unsupported operation: builtin.unregistered: llvm.fneg -4: "select_fcmp_nnan_nsz_ole_negzero_unary_fneg" has unsupported operation: builtin.unregistered: llvm.select - 1: "select_fcmp_nnan_nsz_ule_negzero_unary_fneg" 4: "select_fcmp_nnan_nsz_ule_negzero_unary_fneg" has unsupported operation: builtin.unregistered: llvm.fcmp 4: "select_fcmp_nnan_nsz_ule_negzero_unary_fneg" has unsupported operation: builtin.unregistered: llvm.fneg -4: "select_fcmp_nnan_nsz_ule_negzero_unary_fneg" has unsupported operation: builtin.unregistered: llvm.select - 1: "select_nsz_fcmp_ogt_zero_unary_fneg" 4: "select_nsz_fcmp_ogt_zero_unary_fneg" has unsupported operation: builtin.unregistered: llvm.fcmp 4: "select_nsz_fcmp_ogt_zero_unary_fneg" has unsupported operation: builtin.unregistered: llvm.fneg -4: "select_nsz_fcmp_ogt_zero_unary_fneg" has unsupported operation: builtin.unregistered: llvm.select - 1: "select_nsz_nnan_fcmp_ogt_zero_unary_fneg" 4: "select_nsz_nnan_fcmp_ogt_zero_unary_fneg" has unsupported operation: builtin.unregistered: llvm.intr.fabs @@ -316,99 +264,71 @@ 4: "select_fcmp_nnan_nsz_ogt_zero" has unsupported operation: builtin.unregistered: llvm.fneg -4: "select_fcmp_nnan_nsz_ogt_zero" has unsupported operation: builtin.unregistered: llvm.select - 1: "select_fcmp_nnan_nsz_ugt_zero" 4: "select_fcmp_nnan_nsz_ugt_zero" has unsupported operation: builtin.unregistered: llvm.fcmp 4: "select_fcmp_nnan_nsz_ugt_zero" has unsupported operation: builtin.unregistered: llvm.fneg -4: "select_fcmp_nnan_nsz_ugt_zero" has unsupported operation: builtin.unregistered: llvm.select - 1: "select_fcmp_nnan_nsz_ogt_zero_unary_fneg" 4: "select_fcmp_nnan_nsz_ogt_zero_unary_fneg" has unsupported operation: builtin.unregistered: llvm.fcmp 4: "select_fcmp_nnan_nsz_ogt_zero_unary_fneg" has unsupported operation: builtin.unregistered: llvm.fneg -4: "select_fcmp_nnan_nsz_ogt_zero_unary_fneg" has unsupported operation: builtin.unregistered: llvm.select - 1: "select_fcmp_nnan_nsz_ugt_zero_unary_fneg" 4: "select_fcmp_nnan_nsz_ugt_zero_unary_fneg" has unsupported operation: builtin.unregistered: llvm.fcmp 4: "select_fcmp_nnan_nsz_ugt_zero_unary_fneg" has unsupported operation: builtin.unregistered: llvm.fneg -4: "select_fcmp_nnan_nsz_ugt_zero_unary_fneg" has unsupported operation: builtin.unregistered: llvm.select - 1: "select_fcmp_nnan_nsz_ogt_negzero" 4: "select_fcmp_nnan_nsz_ogt_negzero" has unsupported operation: builtin.unregistered: llvm.fcmp 4: "select_fcmp_nnan_nsz_ogt_negzero" has unsupported operation: builtin.unregistered: llvm.fneg -4: "select_fcmp_nnan_nsz_ogt_negzero" has unsupported operation: builtin.unregistered: llvm.select - 1: "select_fcmp_nnan_nsz_ugt_negzero" 4: "select_fcmp_nnan_nsz_ugt_negzero" has unsupported operation: builtin.unregistered: llvm.fcmp 4: "select_fcmp_nnan_nsz_ugt_negzero" has unsupported operation: builtin.unregistered: llvm.fneg -4: "select_fcmp_nnan_nsz_ugt_negzero" has unsupported operation: builtin.unregistered: llvm.select - 1: "select_fcmp_nnan_nsz_oge_zero" 4: "select_fcmp_nnan_nsz_oge_zero" has unsupported operation: builtin.unregistered: llvm.fcmp 4: "select_fcmp_nnan_nsz_oge_zero" has unsupported operation: builtin.unregistered: llvm.fneg -4: "select_fcmp_nnan_nsz_oge_zero" has unsupported operation: builtin.unregistered: llvm.select - 1: "select_fcmp_nnan_nsz_uge_zero" 4: "select_fcmp_nnan_nsz_uge_zero" has unsupported operation: builtin.unregistered: llvm.fcmp 4: "select_fcmp_nnan_nsz_uge_zero" has unsupported operation: builtin.unregistered: llvm.fneg -4: "select_fcmp_nnan_nsz_uge_zero" has unsupported operation: builtin.unregistered: llvm.select - 1: "select_fcmp_nnan_nsz_oge_zero_unary_fneg" 4: "select_fcmp_nnan_nsz_oge_zero_unary_fneg" has unsupported operation: builtin.unregistered: llvm.fcmp 4: "select_fcmp_nnan_nsz_oge_zero_unary_fneg" has unsupported operation: builtin.unregistered: llvm.fneg -4: "select_fcmp_nnan_nsz_oge_zero_unary_fneg" has unsupported operation: builtin.unregistered: llvm.select - 1: "select_fcmp_nnan_nsz_uge_zero_unary_fneg" 4: "select_fcmp_nnan_nsz_uge_zero_unary_fneg" has unsupported operation: builtin.unregistered: llvm.fcmp 4: "select_fcmp_nnan_nsz_uge_zero_unary_fneg" has unsupported operation: builtin.unregistered: llvm.fneg -4: "select_fcmp_nnan_nsz_uge_zero_unary_fneg" has unsupported operation: builtin.unregistered: llvm.select - 1: "select_fcmp_nnan_nsz_oge_negzero" 4: "select_fcmp_nnan_nsz_oge_negzero" has unsupported operation: builtin.unregistered: llvm.fcmp 4: "select_fcmp_nnan_nsz_oge_negzero" has unsupported operation: builtin.unregistered: llvm.fneg -4: "select_fcmp_nnan_nsz_oge_negzero" has unsupported operation: builtin.unregistered: llvm.select - 1: "select_fcmp_nnan_nsz_uge_negzero" 4: "select_fcmp_nnan_nsz_uge_negzero" has unsupported operation: builtin.unregistered: llvm.fcmp 4: "select_fcmp_nnan_nsz_uge_negzero" has unsupported operation: builtin.unregistered: llvm.fneg -4: "select_fcmp_nnan_nsz_uge_negzero" has unsupported operation: builtin.unregistered: llvm.select - 1: "select_fcmp_nnan_nsz_oge_negzero_unary_fneg" 4: "select_fcmp_nnan_nsz_oge_negzero_unary_fneg" has unsupported operation: builtin.unregistered: llvm.fcmp 4: "select_fcmp_nnan_nsz_oge_negzero_unary_fneg" has unsupported operation: builtin.unregistered: llvm.fneg -4: "select_fcmp_nnan_nsz_oge_negzero_unary_fneg" has unsupported operation: builtin.unregistered: llvm.select - 1: "select_fcmp_nnan_nsz_uge_negzero_unary_fneg" 4: "select_fcmp_nnan_nsz_uge_negzero_unary_fneg" has unsupported operation: builtin.unregistered: llvm.fcmp 4: "select_fcmp_nnan_nsz_uge_negzero_unary_fneg" has unsupported operation: builtin.unregistered: llvm.fneg -4: "select_fcmp_nnan_nsz_uge_negzero_unary_fneg" has unsupported operation: builtin.unregistered: llvm.select - 1: "select_fneg" 4: "select_fneg" has unsupported operation: builtin.unregistered: llvm.intr.fabs @@ -422,8 +342,6 @@ 1: "select_fneg_use2" 4: "select_fneg_use2" has unsupported operation: builtin.unregistered: llvm.fneg -4: "select_fneg_use2" has unsupported operation: builtin.unregistered: llvm.select - 4: "select_fneg_use2" has unsupported operation: llvm.call 4: "select_fneg_use2" has unsupported operation: builtin.unregistered: llvm.intr.fabs @@ -495,8 +413,6 @@ 4: "test_select_nneg_negx_x_multiuse4" has unsupported operation: llvm.call -4: "test_select_nneg_negx_x_multiuse4" has unsupported operation: builtin.unregistered: llvm.select - 1: "test_select_neg_negx_x_mismatched1" 4: "test_select_neg_negx_x_mismatched1" has unsupported operation: builtin.unregistered: llvm.bitcast @@ -504,8 +420,6 @@ 4: "test_select_neg_negx_x_mismatched1" has unsupported operation: builtin.unregistered: llvm.fneg -4: "test_select_neg_negx_x_mismatched1" has unsupported operation: builtin.unregistered: llvm.select - 1: "test_select_neg_negx_x_mismatched2" 4: "test_select_neg_negx_x_mismatched2" has unsupported operation: builtin.unregistered: llvm.bitcast @@ -513,8 +427,6 @@ 4: "test_select_neg_negx_x_mismatched2" has unsupported operation: builtin.unregistered: llvm.fneg -4: "test_select_neg_negx_x_mismatched2" has unsupported operation: builtin.unregistered: llvm.select - 1: "test_select_neg_negx_x_mismatched3" 4: "test_select_neg_negx_x_mismatched3" has unsupported operation: builtin.unregistered: llvm.bitcast @@ -522,8 +434,6 @@ 4: "test_select_neg_negx_x_mismatched3" has unsupported operation: builtin.unregistered: llvm.fneg -4: "test_select_neg_negx_x_mismatched3" has unsupported operation: builtin.unregistered: llvm.select - 1: "test_select_neg_negx_x_wrong_type" 4: "test_select_neg_negx_x_wrong_type" has unsupported operation: builtin.unregistered: llvm.bitcast @@ -531,5 +441,3 @@ 4: "test_select_neg_negx_x_wrong_type" has unsupported operation: builtin.unregistered: llvm.fneg -4: "test_select_neg_negx_x_wrong_type" has unsupported operation: builtin.unregistered: llvm.select - diff --git a/SSA/Projects/InstCombine/tests/logs/fast-math.txt b/SSA/Projects/InstCombine/tests/logs/fast-math.txt index 464d47373..b7d336e5b 100644 --- a/SSA/Projects/InstCombine/tests/logs/fast-math.txt +++ b/SSA/Projects/InstCombine/tests/logs/fast-math.txt @@ -164,8 +164,6 @@ 4: "fold16" has unsupported operation: builtin.unregistered: llvm.fneg -4: "fold16" has unsupported operation: builtin.unregistered: llvm.select - 4: "fold16" has unsupported operation: builtin.unregistered: llvm.fadd 1: "fneg1" diff --git a/SSA/Projects/InstCombine/tests/logs/fcmp-select.txt b/SSA/Projects/InstCombine/tests/logs/fcmp-select.txt index a404f02f7..d0cdfb75b 100644 --- a/SSA/Projects/InstCombine/tests/logs/fcmp-select.txt +++ b/SSA/Projects/InstCombine/tests/logs/fcmp-select.txt @@ -29,29 +29,21 @@ 4: "une_could_be_negzero" has unsupported operation: llvm.call -4: "une_could_be_negzero" has unsupported operation: builtin.unregistered: llvm.select - 1: "une_swapped_could_be_negzero" 4: "une_swapped_could_be_negzero" has unsupported operation: builtin.unregistered: llvm.fcmp 4: "une_swapped_could_be_negzero" has unsupported operation: llvm.call -4: "une_swapped_could_be_negzero" has unsupported operation: builtin.unregistered: llvm.select - 1: "one" 4: "one" has unsupported operation: builtin.unregistered: llvm.fcmp 4: "one" has unsupported operation: llvm.call -4: "one" has unsupported operation: builtin.unregistered: llvm.select - 1: "one_swapped" 4: "one_swapped" has unsupported operation: builtin.unregistered: llvm.fcmp 4: "one_swapped" has unsupported operation: llvm.call -4: "one_swapped" has unsupported operation: builtin.unregistered: llvm.select - 1: "fcmp_oeq_select" 4: "fcmp_oeq_select" has unsupported operation: builtin.unregistered: llvm.fcmp @@ -59,10 +51,6 @@ 4: "fcmp_uno_select" has unsupported operation: builtin.unregistered: llvm.fcmp 1: "fcmp_ogt_select" -4: "fcmp_ogt_select" has unsupported operation: builtin.unregistered: llvm.select - -4: "fcmp_ogt_select" has unsupported operation: builtin.unregistered: llvm.select - 4: "fcmp_ogt_select" has unsupported operation: builtin.unregistered: llvm.fcmp 1: "test_fcmp_select_const_const" @@ -73,27 +61,19 @@ 4: "test_fcmp_select_var_const" has unsupported operation: builtin.unregistered: llvm.fcmp -4: "test_fcmp_select_var_const" has unsupported operation: builtin.unregistered: llvm.select - 1: "test_fcmp_select_var_const_fmf" 4: "test_fcmp_select_var_const_fmf" has unsupported operation: builtin.unregistered: llvm.fcmp 4: "test_fcmp_select_var_const_fmf" has unsupported operation: builtin.unregistered: llvm.fcmp -4: "test_fcmp_select_var_const_fmf" has unsupported operation: builtin.unregistered: llvm.select - 1: "test_fcmp_select_const_const_vec" 4: "test_fcmp_select_const_const_vec" has unsupported operation: builtin.unregistered: llvm.fcmp 1: "test_fcmp_select_clamp" 4: "test_fcmp_select_clamp" has unsupported operation: builtin.unregistered: llvm.fcmp -4: "test_fcmp_select_clamp" has unsupported operation: builtin.unregistered: llvm.select - 4: "test_fcmp_select_clamp" has unsupported operation: builtin.unregistered: llvm.fcmp -4: "test_fcmp_select_clamp" has unsupported operation: builtin.unregistered: llvm.select - 1: "test_fcmp_select_maxnum" 4: "test_fcmp_select_maxnum" has unsupported operation: builtin.unregistered: llvm.intr.maxnum @@ -102,8 +82,6 @@ 1: "test_fcmp_select_const_const_multiuse" 4: "test_fcmp_select_const_const_multiuse" has unsupported operation: builtin.unregistered: llvm.fcmp -4: "test_fcmp_select_const_const_multiuse" has unsupported operation: builtin.unregistered: llvm.select - 4: "test_fcmp_select_const_const_multiuse" has unsupported operation: llvm.call 4: "test_fcmp_select_const_const_multiuse" has unsupported operation: builtin.unregistered: llvm.fcmp @@ -116,5 +94,3 @@ 4: "test_fcmp_select_var_const_unordered" has unsupported operation: builtin.unregistered: llvm.fcmp -4: "test_fcmp_select_var_const_unordered" has unsupported operation: builtin.unregistered: llvm.select - diff --git a/SSA/Projects/InstCombine/tests/logs/ffs-1.txt b/SSA/Projects/InstCombine/tests/logs/ffs-1.txt index bd34e2502..fc80a5db2 100644 --- a/SSA/Projects/InstCombine/tests/logs/ffs-1.txt +++ b/SSA/Projects/InstCombine/tests/logs/ffs-1.txt @@ -48,8 +48,6 @@ 4: "test_simplify13" has unsupported operation: builtin.unregistered: llvm.icmp -4: "test_simplify13" has unsupported operation: builtin.unregistered: llvm.select - 1: "test_simplify14" 4: "test_simplify14" has unsupported operation: llvm.call diff --git a/SSA/Projects/InstCombine/tests/logs/fma.txt b/SSA/Projects/InstCombine/tests/logs/fma.txt index 1e228ef5a..eb6e4741e 100644 --- a/SSA/Projects/InstCombine/tests/logs/fma.txt +++ b/SSA/Projects/InstCombine/tests/logs/fma.txt @@ -199,19 +199,19 @@ 4: "fmuladd_x_1_z_fast" has unsupported operation: builtin.unregistered: llvm.fadd 1: "fmuladd_a_0_b" -"fmuladd_a_0_b" contains vectors which are unsupported +8: "fmuladd_a_0_b" contains vectors which are unsupported 1: "fmuladd_0_a_b" -"fmuladd_0_a_b" contains vectors which are unsupported +8: "fmuladd_0_a_b" contains vectors which are unsupported 1: "fmuladd_a_0_b_missing_flags" 4: "fmuladd_a_0_b_missing_flags" has unsupported operation: builtin.unregistered: llvm.intr.fmuladd 1: "fma_a_0_b" -"fma_a_0_b" contains vectors which are unsupported +8: "fma_a_0_b" contains vectors which are unsupported 1: "fma_0_a_b" -"fma_0_a_b" contains vectors which are unsupported +8: "fma_0_a_b" contains vectors which are unsupported 1: "fma_0_a_b_missing_flags" 4: "fma_0_a_b_missing_flags" has unsupported operation: builtin.unregistered: llvm.intr.fma @@ -223,10 +223,10 @@ 4: "fma_const_fmul" has unsupported operation: builtin.unregistered: llvm.intr.fma 1: "fma_const_fmul_zero" -"fma_const_fmul_zero" contains vectors which are unsupported +8: "fma_const_fmul_zero" contains vectors which are unsupported 1: "fma_const_fmul_zero2" -"fma_const_fmul_zero2" contains vectors which are unsupported +8: "fma_const_fmul_zero2" contains vectors which are unsupported 1: "fma_const_fmul_one" 4: "fma_const_fmul_one" has unsupported operation: builtin.unregistered: llvm.fadd @@ -235,22 +235,22 @@ 4: "fma_const_fmul_one2" has unsupported operation: builtin.unregistered: llvm.fadd 1: "fma_nan_and_const_0" -"fma_nan_and_const_0" contains vectors which are unsupported +8: "fma_nan_and_const_0" contains vectors which are unsupported 1: "fma_nan_and_const_1" -"fma_nan_and_const_1" contains vectors which are unsupported +8: "fma_nan_and_const_1" contains vectors which are unsupported 1: "fma_nan_and_const_2" -"fma_nan_and_const_2" contains vectors which are unsupported +8: "fma_nan_and_const_2" contains vectors which are unsupported 1: "fma_undef_0" -"fma_undef_0" contains vectors which are unsupported +8: "fma_undef_0" contains vectors which are unsupported 1: "fma_undef_1" -"fma_undef_1" contains vectors which are unsupported +8: "fma_undef_1" contains vectors which are unsupported 1: "fma_undef_2" -"fma_undef_2" contains vectors which are unsupported +8: "fma_undef_2" contains vectors which are unsupported 1: "fma_partial_undef_0" 4: "fma_partial_undef_0" has unsupported operation: llvm.mlir.undef @@ -286,40 +286,40 @@ 4: "fma_partial_undef_2" has unsupported operation: builtin.unregistered: llvm.intr.fma 1: "fma_nan_0" -"fma_nan_0" contains vectors which are unsupported +8: "fma_nan_0" contains vectors which are unsupported 1: "fma_nan_1" -"fma_nan_1" contains vectors which are unsupported +8: "fma_nan_1" contains vectors which are unsupported 1: "fma_nan_2" -"fma_nan_2" contains vectors which are unsupported +8: "fma_nan_2" contains vectors which are unsupported 1: "fmuladd_const_fmul" 4: "fmuladd_const_fmul" has unsupported operation: builtin.unregistered: llvm.fadd 1: "fmuladd_nan_and_const_0" -"fmuladd_nan_and_const_0" contains vectors which are unsupported +8: "fmuladd_nan_and_const_0" contains vectors which are unsupported 1: "fmuladd_nan_and_const_1" -"fmuladd_nan_and_const_1" contains vectors which are unsupported +8: "fmuladd_nan_and_const_1" contains vectors which are unsupported 1: "fmuladd_nan_and_const_2" -"fmuladd_nan_and_const_2" contains vectors which are unsupported +8: "fmuladd_nan_and_const_2" contains vectors which are unsupported 1: "fmuladd_nan_0" -"fmuladd_nan_0" contains vectors which are unsupported +8: "fmuladd_nan_0" contains vectors which are unsupported 1: "fmuladd_nan_1" -"fmuladd_nan_1" contains vectors which are unsupported +8: "fmuladd_nan_1" contains vectors which are unsupported 1: "fmuladd_undef_0" -"fmuladd_undef_0" contains vectors which are unsupported +8: "fmuladd_undef_0" contains vectors which are unsupported 1: "fmuladd_undef_1" -"fmuladd_undef_1" contains vectors which are unsupported +8: "fmuladd_undef_1" contains vectors which are unsupported 1: "fmuladd_undef_2" -"fmuladd_undef_2" contains vectors which are unsupported +8: "fmuladd_undef_2" contains vectors which are unsupported 1: "fma_unary_shuffle_ops" 4: "fma_unary_shuffle_ops" has unsupported operation: builtin.unregistered: llvm.mlir.poison diff --git a/SSA/Projects/InstCombine/tests/logs/fmul-bool.txt b/SSA/Projects/InstCombine/tests/logs/fmul-bool.txt index 81b404879..a70416760 100644 --- a/SSA/Projects/InstCombine/tests/logs/fmul-bool.txt +++ b/SSA/Projects/InstCombine/tests/logs/fmul-bool.txt @@ -1,11 +1,11 @@ 1: "fmul_bool" -4: "fmul_bool" has unsupported operation: builtin.unregistered: llvm.select +4: "fmul_bool" has unsupported operation after optimization: builtin.unregistered: llvm.uitofp + +4: "fmul_bool" has unsupported operation after optimization: builtin.unregistered: llvm.fmul 1: "fmul_bool_vec" -4: "fmul_bool_vec" has unsupported operation: builtin.unregistered: llvm.select +8: "fmul_bool_vec" contains vectors which are unsupported 1: "fmul_bool_vec_commute" 4: "fmul_bool_vec_commute" has unsupported operation: builtin.unregistered: llvm.fmul -4: "fmul_bool_vec_commute" has unsupported operation: builtin.unregistered: llvm.select - diff --git a/SSA/Projects/InstCombine/tests/logs/fneg-fabs.txt b/SSA/Projects/InstCombine/tests/logs/fneg-fabs.txt index 461cb9689..03f70d8c3 100644 --- a/SSA/Projects/InstCombine/tests/logs/fneg-fabs.txt +++ b/SSA/Projects/InstCombine/tests/logs/fneg-fabs.txt @@ -3,8 +3,6 @@ 4: "select_noFMF_nfabs_lt" has unsupported operation: builtin.unregistered: llvm.fneg -4: "select_noFMF_nfabs_lt" has unsupported operation: builtin.unregistered: llvm.select - 1: "select_nsz_nfabs_lt_fmfProp" 4: "select_nsz_nfabs_lt_fmfProp" has unsupported operation: builtin.unregistered: llvm.intr.fabs @@ -20,8 +18,6 @@ 4: "select_nsz_nfabs_ult" has unsupported operation: builtin.unregistered: llvm.fneg -4: "select_nsz_nfabs_ult" has unsupported operation: builtin.unregistered: llvm.select - 1: "select_nsz_nnan_nfabs_ult" 4: "select_nsz_nnan_nfabs_ult" has unsupported operation: builtin.unregistered: llvm.intr.fabs @@ -32,8 +28,6 @@ 4: "select_nsz_nfabs_ole" has unsupported operation: builtin.unregistered: llvm.fneg -4: "select_nsz_nfabs_ole" has unsupported operation: builtin.unregistered: llvm.select - 1: "select_nsz_nnan_nfabs_ole" 4: "select_nsz_nnan_nfabs_ole" has unsupported operation: builtin.unregistered: llvm.intr.fabs @@ -44,8 +38,6 @@ 4: "select_nsz_nfabs_ule" has unsupported operation: builtin.unregistered: llvm.fneg -4: "select_nsz_nfabs_ule" has unsupported operation: builtin.unregistered: llvm.select - 1: "select_nsz_nnan_nfabs_ule" 4: "select_nsz_nnan_nfabs_ule" has unsupported operation: builtin.unregistered: llvm.intr.fabs @@ -56,8 +48,6 @@ 4: "select_noFMF_nfabs_gt" has unsupported operation: builtin.unregistered: llvm.fneg -4: "select_noFMF_nfabs_gt" has unsupported operation: builtin.unregistered: llvm.select - 1: "select_nsz_nfabs_gt_fmfProp" 4: "select_nsz_nfabs_gt_fmfProp" has unsupported operation: builtin.unregistered: llvm.intr.fabs @@ -73,8 +63,6 @@ 4: "select_nsz_nfabs_ogt" has unsupported operation: builtin.unregistered: llvm.fneg -4: "select_nsz_nfabs_ogt" has unsupported operation: builtin.unregistered: llvm.select - 1: "select_nsz_nnan_nfabs_ogt" 4: "select_nsz_nnan_nfabs_ogt" has unsupported operation: builtin.unregistered: llvm.intr.fabs @@ -85,8 +73,6 @@ 4: "select_nsz_nfabs_ugt" has unsupported operation: builtin.unregistered: llvm.fneg -4: "select_nsz_nfabs_ugt" has unsupported operation: builtin.unregistered: llvm.select - 1: "select_nsz_nnan_nfabs_ugt" 4: "select_nsz_nnan_nfabs_ugt" has unsupported operation: builtin.unregistered: llvm.intr.fabs @@ -97,8 +83,6 @@ 4: "select_nsz_nfabs_oge" has unsupported operation: builtin.unregistered: llvm.fneg -4: "select_nsz_nfabs_oge" has unsupported operation: builtin.unregistered: llvm.select - 1: "select_nsz_nnan_nfabs_oge" 4: "select_nsz_nnan_nfabs_oge" has unsupported operation: builtin.unregistered: llvm.intr.fabs @@ -109,8 +93,6 @@ 4: "select_nsz_nfabs_uge" has unsupported operation: builtin.unregistered: llvm.fneg -4: "select_nsz_nfabs_uge" has unsupported operation: builtin.unregistered: llvm.select - 1: "select_nsz_nnan_nfabs_uge" 4: "select_nsz_nnan_nfabs_uge" has unsupported operation: builtin.unregistered: llvm.intr.fabs @@ -121,33 +103,23 @@ 4: "select_noFMF_fsubfabs_le" has unsupported operation: builtin.unregistered: llvm.fsub -4: "select_noFMF_fsubfabs_le" has unsupported operation: builtin.unregistered: llvm.select - 1: "select_noFMF_fsubfabs_olt" 4: "select_noFMF_fsubfabs_olt" has unsupported operation: builtin.unregistered: llvm.fcmp 4: "select_noFMF_fsubfabs_olt" has unsupported operation: builtin.unregistered: llvm.fsub -4: "select_noFMF_fsubfabs_olt" has unsupported operation: builtin.unregistered: llvm.select - 1: "select_noFMF_fsubfabs_ult" 4: "select_noFMF_fsubfabs_ult" has unsupported operation: builtin.unregistered: llvm.fcmp 4: "select_noFMF_fsubfabs_ult" has unsupported operation: builtin.unregistered: llvm.fsub -4: "select_noFMF_fsubfabs_ult" has unsupported operation: builtin.unregistered: llvm.select - 1: "select_nsz_fnegfabs_olt" 4: "select_nsz_fnegfabs_olt" has unsupported operation: builtin.unregistered: llvm.fcmp 4: "select_nsz_fnegfabs_olt" has unsupported operation: builtin.unregistered: llvm.fneg -4: "select_nsz_fnegfabs_olt" has unsupported operation: builtin.unregistered: llvm.select - 1: "select_nsz_fnegfabs_ult" 4: "select_nsz_fnegfabs_ult" has unsupported operation: builtin.unregistered: llvm.fcmp 4: "select_nsz_fnegfabs_ult" has unsupported operation: builtin.unregistered: llvm.fneg -4: "select_nsz_fnegfabs_ult" has unsupported operation: builtin.unregistered: llvm.select - diff --git a/SSA/Projects/InstCombine/tests/logs/fold-ctpop-of-not.txt b/SSA/Projects/InstCombine/tests/logs/fold-ctpop-of-not.txt index ad795f660..8a20cf44c 100644 --- a/SSA/Projects/InstCombine/tests/logs/fold-ctpop-of-not.txt +++ b/SSA/Projects/InstCombine/tests/logs/fold-ctpop-of-not.txt @@ -50,15 +50,11 @@ 4: "fold_cmp_ne_ctpop_var_fail" has unsupported operation: builtin.unregistered: llvm.icmp 1: "fold_cmp_ult_ctpop_c" -4: "fold_cmp_ult_ctpop_c" has unsupported operation: builtin.unregistered: llvm.select - 4: "fold_cmp_ult_ctpop_c" has unsupported operation: builtin.unregistered: llvm.intr.ctpop 4: "fold_cmp_ult_ctpop_c" has unsupported operation: builtin.unregistered: llvm.icmp 1: "fold_cmp_sle_ctpop_c" -4: "fold_cmp_sle_ctpop_c" has unsupported operation: builtin.unregistered: llvm.select - 4: "fold_cmp_sle_ctpop_c" has unsupported operation: builtin.unregistered: llvm.intr.ctpop 4: "fold_cmp_sle_ctpop_c" has unsupported operation: builtin.unregistered: llvm.icmp diff --git a/SSA/Projects/InstCombine/tests/logs/fold-ext-eq-c-with-op.txt b/SSA/Projects/InstCombine/tests/logs/fold-ext-eq-c-with-op.txt index de4add054..8da7b1902 100644 --- a/SSA/Projects/InstCombine/tests/logs/fold-ext-eq-c-with-op.txt +++ b/SSA/Projects/InstCombine/tests/logs/fold-ext-eq-c-with-op.txt @@ -9,8 +9,6 @@ 4: "fold_add_sext_eq_4_6" has unsupported operation: builtin.unregistered: llvm.icmp -4: "fold_add_sext_eq_4_6" has unsupported operation: builtin.unregistered: llvm.select - 1: "fold_add_zext_eq_0_fail_multiuse_exp" 4: "fold_add_zext_eq_0_fail_multiuse_exp" has unsupported operation: builtin.unregistered: llvm.icmp diff --git a/SSA/Projects/InstCombine/tests/logs/fold-fops-into-selects.txt b/SSA/Projects/InstCombine/tests/logs/fold-fops-into-selects.txt index 9dd8c2967..fc13bb593 100644 --- a/SSA/Projects/InstCombine/tests/logs/fold-fops-into-selects.txt +++ b/SSA/Projects/InstCombine/tests/logs/fold-fops-into-selects.txt @@ -1,33 +1,21 @@ 1: "test1" -4: "test1" has unsupported operation: builtin.unregistered: llvm.select +4: "test1" has unsupported operation after optimization: builtin.unregistered: llvm.fsub 1: "test2" 4: "test2" has unsupported operation: builtin.unregistered: llvm.fadd -4: "test2" has unsupported operation: builtin.unregistered: llvm.select - 1: "test3" 4: "test3" has unsupported operation: builtin.unregistered: llvm.fsub -4: "test3" has unsupported operation: builtin.unregistered: llvm.select - 1: "test4" 4: "test4" has unsupported operation: builtin.unregistered: llvm.fmul -4: "test4" has unsupported operation: builtin.unregistered: llvm.select - 1: "test5" 4: "test5" has unsupported operation: builtin.unregistered: llvm.fdiv -4: "test5" has unsupported operation: builtin.unregistered: llvm.select - 1: "test6" 4: "test6" has unsupported operation: builtin.unregistered: llvm.fmul -4: "test6" has unsupported operation: builtin.unregistered: llvm.select - 1: "test7" 4: "test7" has unsupported operation: builtin.unregistered: llvm.fdiv -4: "test7" has unsupported operation: builtin.unregistered: llvm.select - diff --git a/SSA/Projects/InstCombine/tests/logs/fold-inc-of-add-of-not-x-and-y-to-sub-x-from-y.txt b/SSA/Projects/InstCombine/tests/logs/fold-inc-of-add-of-not-x-and-y-to-sub-x-from-y.txt index 9c784993b..7ed38949c 100644 --- a/SSA/Projects/InstCombine/tests/logs/fold-inc-of-add-of-not-x-and-y-to-sub-x-from-y.txt +++ b/SSA/Projects/InstCombine/tests/logs/fold-inc-of-add-of-not-x-and-y-to-sub-x-from-y.txt @@ -8,16 +8,16 @@ 2: llvm.return 1: "t1_vec_splat" -"t1_vec_splat" contains vectors which are unsupported +8: "t1_vec_splat" contains vectors which are unsupported 1: "t2_vec_poison0" -"t2_vec_poison0" contains vectors which are unsupported +8: "t2_vec_poison0" contains vectors which are unsupported 1: "t3_vec_poison1" -"t3_vec_poison1" contains vectors which are unsupported +8: "t3_vec_poison1" contains vectors which are unsupported 1: "t4_vec_poison2" -"t4_vec_poison2" contains vectors which are unsupported +8: "t4_vec_poison2" contains vectors which are unsupported 1: "use32" 5: "use32" is empty diff --git a/SSA/Projects/InstCombine/tests/logs/fold-minmax-i1.txt b/SSA/Projects/InstCombine/tests/logs/fold-minmax-i1.txt index 842aef680..c76a87d6b 100644 --- a/SSA/Projects/InstCombine/tests/logs/fold-minmax-i1.txt +++ b/SSA/Projects/InstCombine/tests/logs/fold-minmax-i1.txt @@ -11,14 +11,14 @@ 4: "smax_scalar" has unsupported operation after optimization: builtin.unregistered: llvm.intr.smax 1: "umin_vector" -"umin_vector" contains vectors which are unsupported +8: "umin_vector" contains vectors which are unsupported 1: "smin_vector" -"smin_vector" contains vectors which are unsupported +8: "smin_vector" contains vectors which are unsupported 1: "umax_vector" -"umax_vector" contains vectors which are unsupported +8: "umax_vector" contains vectors which are unsupported 1: "smax_vector" -"smax_vector" contains vectors which are unsupported +8: "smax_vector" contains vectors which are unsupported diff --git a/SSA/Projects/InstCombine/tests/logs/fold-select-trunc.txt b/SSA/Projects/InstCombine/tests/logs/fold-select-trunc.txt index 966e88ee1..8690cf62f 100644 --- a/SSA/Projects/InstCombine/tests/logs/fold-select-trunc.txt +++ b/SSA/Projects/InstCombine/tests/logs/fold-select-trunc.txt @@ -1,30 +1,18 @@ 1: "fold_select_trunc_nuw_true" 4: "fold_select_trunc_nuw_true" has unsupported operation: builtin.unregistered: llvm.trunc -4: "fold_select_trunc_nuw_true" has unsupported operation: builtin.unregistered: llvm.select - 1: "fold_select_trunc_nuw_false" 4: "fold_select_trunc_nuw_false" has unsupported operation: builtin.unregistered: llvm.trunc -4: "fold_select_trunc_nuw_false" has unsupported operation: builtin.unregistered: llvm.select - 1: "fold_select_trunc_nsw_true" 4: "fold_select_trunc_nsw_true" has unsupported operation: builtin.unregistered: llvm.trunc -4: "fold_select_trunc_nsw_true" has unsupported operation: builtin.unregistered: llvm.select - 1: "fold_select_trunc_nsw_false" 4: "fold_select_trunc_nsw_false" has unsupported operation: builtin.unregistered: llvm.trunc -4: "fold_select_trunc_nsw_false" has unsupported operation: builtin.unregistered: llvm.select - 1: "fold_select_trunc_negative" 4: "fold_select_trunc_negative" has unsupported operation: builtin.unregistered: llvm.trunc -4: "fold_select_trunc_negative" has unsupported operation: builtin.unregistered: llvm.select - 1: "fold_select_trunc_vector" 4: "fold_select_trunc_vector" has unsupported operation: builtin.unregistered: llvm.trunc -4: "fold_select_trunc_vector" has unsupported operation: builtin.unregistered: llvm.select - diff --git a/SSA/Projects/InstCombine/tests/logs/fold-sub-of-not-to-inc-of-add.txt b/SSA/Projects/InstCombine/tests/logs/fold-sub-of-not-to-inc-of-add.txt index e5a45be1a..b0fdca5f9 100644 --- a/SSA/Projects/InstCombine/tests/logs/fold-sub-of-not-to-inc-of-add.txt +++ b/SSA/Projects/InstCombine/tests/logs/fold-sub-of-not-to-inc-of-add.txt @@ -9,10 +9,10 @@ 7: "p0_scalar_not_truly_negatable" is unchanged by InstCombine 1: "p1_vector_splat" -"p1_vector_splat" contains vectors which are unsupported +8: "p1_vector_splat" contains vectors which are unsupported 1: "p2_vector_poison" -"p2_vector_poison" contains vectors which are unsupported +8: "p2_vector_poison" contains vectors which are unsupported 1: "use32" 5: "use32" is empty diff --git a/SSA/Projects/InstCombine/tests/logs/fp-floor-ceil.txt b/SSA/Projects/InstCombine/tests/logs/fp-floor-ceil.txt index 3651379cd..74364c0c3 100644 --- a/SSA/Projects/InstCombine/tests/logs/fp-floor-ceil.txt +++ b/SSA/Projects/InstCombine/tests/logs/fp-floor-ceil.txt @@ -31,7 +31,7 @@ 4: "x_floor_ult" has unsupported operation: builtin.unregistered: llvm.fcmp 1: "x_floor_olt_vec" -"x_floor_olt_vec" contains vectors which are unsupported +8: "x_floor_olt_vec" contains vectors which are unsupported 1: "x_floor_ole_neg" 4: "x_floor_ole_neg" has unsupported operation: builtin.unregistered: llvm.intr.floor @@ -86,7 +86,7 @@ 4: "x_ceil_ugt" has unsupported operation: builtin.unregistered: llvm.fcmp 1: "x_ceil_ogt_vec" -"x_ceil_ogt_vec" contains vectors which are unsupported +8: "x_ceil_ogt_vec" contains vectors which are unsupported 1: "x_ceil_oge_neg" 4: "x_ceil_oge_neg" has unsupported operation: builtin.unregistered: llvm.intr.ceil diff --git a/SSA/Projects/InstCombine/tests/logs/fpcast.txt b/SSA/Projects/InstCombine/tests/logs/fpcast.txt index d160f8852..95c44f71c 100644 --- a/SSA/Projects/InstCombine/tests/logs/fpcast.txt +++ b/SSA/Projects/InstCombine/tests/logs/fpcast.txt @@ -42,8 +42,6 @@ 1: "test5" 4: "test5" has unsupported operation: builtin.unregistered: llvm.fcmp -4: "test5" has unsupported operation: builtin.unregistered: llvm.select - 4: "test5" has unsupported operation: builtin.unregistered: llvm.fptrunc 1: "test6" @@ -150,7 +148,7 @@ 4: "fptosi_nonnorm_copysign" has unsupported operation after optimization: builtin.unregistered: llvm.fptosi 1: "fptosi_nonnorm_copysign_vec" -"fptosi_nonnorm_copysign_vec" contains vectors which are unsupported +8: "fptosi_nonnorm_copysign_vec" contains vectors which are unsupported 1: "fptosi_nonnorm_fmul" 4: "fptosi_nonnorm_fmul" has unsupported operation: builtin.unregistered: llvm.fmul @@ -158,7 +156,7 @@ 4: "fptosi_nonnorm_fmul" has unsupported operation: builtin.unregistered: llvm.fptosi 1: "fptosi_select" -4: "fptosi_select" has unsupported operation: builtin.unregistered: llvm.select +4: "fptosi_select" has unsupported operation after optimization: builtin.unregistered: llvm.fptosi 1: "mul_pos_zero_convert" 4: "mul_pos_zero_convert" has unsupported operation after optimization: builtin.unregistered: llvm.sitofp diff --git a/SSA/Projects/InstCombine/tests/logs/fptrunc.txt b/SSA/Projects/InstCombine/tests/logs/fptrunc.txt index 89a36e271..c2019e705 100644 --- a/SSA/Projects/InstCombine/tests/logs/fptrunc.txt +++ b/SSA/Projects/InstCombine/tests/logs/fptrunc.txt @@ -25,13 +25,9 @@ 1: "fptrunc_select_true_val" 4: "fptrunc_select_true_val" has unsupported operation: builtin.unregistered: llvm.fptrunc -4: "fptrunc_select_true_val" has unsupported operation: builtin.unregistered: llvm.select - 1: "fptrunc_select_false_val" 4: "fptrunc_select_false_val" has unsupported operation: builtin.unregistered: llvm.fptrunc -4: "fptrunc_select_false_val" has unsupported operation: builtin.unregistered: llvm.select - 1: "use" 5: "use" is empty @@ -42,13 +38,9 @@ 4: "fptrunc_select_true_val_extra_use" has unsupported operation: builtin.unregistered: llvm.fptrunc -4: "fptrunc_select_true_val_extra_use" has unsupported operation: builtin.unregistered: llvm.select - 1: "fptrunc_select_true_val_extra_use_2" 4: "fptrunc_select_true_val_extra_use_2" has unsupported operation: builtin.unregistered: llvm.fpext -4: "fptrunc_select_true_val_extra_use_2" has unsupported operation: builtin.unregistered: llvm.select - 4: "fptrunc_select_true_val_extra_use_2" has unsupported operation: llvm.call 4: "fptrunc_select_true_val_extra_use_2" has unsupported operation: builtin.unregistered: llvm.fptrunc @@ -56,15 +48,11 @@ 1: "fptrunc_select_true_val_type_mismatch" 4: "fptrunc_select_true_val_type_mismatch" has unsupported operation: builtin.unregistered: llvm.fpext -4: "fptrunc_select_true_val_type_mismatch" has unsupported operation: builtin.unregistered: llvm.select - 4: "fptrunc_select_true_val_type_mismatch" has unsupported operation: builtin.unregistered: llvm.fptrunc 1: "fptrunc_select_true_val_type_mismatch_fast" 4: "fptrunc_select_true_val_type_mismatch_fast" has unsupported operation: builtin.unregistered: llvm.fpext -4: "fptrunc_select_true_val_type_mismatch_fast" has unsupported operation: builtin.unregistered: llvm.select - 4: "fptrunc_select_true_val_type_mismatch_fast" has unsupported operation: builtin.unregistered: llvm.fptrunc 1: "ItoFtoF_s54_f64_f32" diff --git a/SSA/Projects/InstCombine/tests/logs/free-inversion.txt b/SSA/Projects/InstCombine/tests/logs/free-inversion.txt index baf6ab631..77160d996 100644 --- a/SSA/Projects/InstCombine/tests/logs/free-inversion.txt +++ b/SSA/Projects/InstCombine/tests/logs/free-inversion.txt @@ -5,102 +5,159 @@ 5: "use.i1" is empty 1: "xor_1" -4: "xor_1" has unsupported operation: builtin.unregistered: llvm.select +2: llvm.func +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.xor +2: llvm.xor +2: builtin.unregistered: llvm.select +2: llvm.xor +2: llvm.xor +2: llvm.return 1: "xor_2" -4: "xor_2" has unsupported operation: builtin.unregistered: llvm.select +2: llvm.func +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.xor +2: llvm.xor +2: builtin.unregistered: llvm.select +2: llvm.xor +2: llvm.xor +2: llvm.return 1: "xor_fail" -4: "xor_fail" has unsupported operation: builtin.unregistered: llvm.select +7: "xor_fail" is unchanged by InstCombine 1: "add_1" -4: "add_1" has unsupported operation: builtin.unregistered: llvm.select +2: llvm.func +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.xor +2: llvm.xor +2: builtin.unregistered: llvm.select +2: llvm.add +2: llvm.xor +2: llvm.return 1: "add_2" -4: "add_2" has unsupported operation: builtin.unregistered: llvm.select +2: llvm.func +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.xor +2: llvm.xor +2: builtin.unregistered: llvm.select +2: llvm.add +2: llvm.xor +2: llvm.return 1: "add_fail" -4: "add_fail" has unsupported operation: builtin.unregistered: llvm.select +7: "add_fail" is unchanged by InstCombine 1: "sub_1" -4: "sub_1" has unsupported operation: builtin.unregistered: llvm.select +2: llvm.func +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.xor +2: llvm.xor +2: builtin.unregistered: llvm.select +2: llvm.sub +2: llvm.xor +2: llvm.return 1: "sub_2" -4: "sub_2" has unsupported operation: builtin.unregistered: llvm.select +2: llvm.func +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.xor +2: llvm.xor +2: builtin.unregistered: llvm.select +2: llvm.sub +2: llvm.xor +2: llvm.return 1: "sub_3" -4: "sub_3" has unsupported operation: builtin.unregistered: llvm.select +2: llvm.func +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.xor +2: llvm.xor +2: builtin.unregistered: llvm.select +2: llvm.sub +2: llvm.xor +2: llvm.return 1: "sub_fail" 4: "sub_fail" has unsupported operation: llvm.call -4: "sub_fail" has unsupported operation: builtin.unregistered: llvm.select - 1: "ashr_1" -4: "ashr_1" has unsupported operation: builtin.unregistered: llvm.select +2: llvm.func +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.xor +2: llvm.xor +2: builtin.unregistered: llvm.select +2: llvm.ashr +2: llvm.xor +2: llvm.return 1: "ashr_2_fail" -4: "ashr_2_fail" has unsupported operation: builtin.unregistered: llvm.select +7: "ashr_2_fail" is unchanged by InstCombine 1: "select_1" -4: "select_1" has unsupported operation: builtin.unregistered: llvm.select - -4: "select_1" has unsupported operation: builtin.unregistered: llvm.select +2: llvm.func +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.xor +2: llvm.xor +2: builtin.unregistered: llvm.select +2: llvm.xor +2: llvm.xor +2: builtin.unregistered: llvm.select +2: llvm.xor +2: llvm.return 1: "select_2" -4: "select_2" has unsupported operation: builtin.unregistered: llvm.select - -4: "select_2" has unsupported operation: builtin.unregistered: llvm.select +2: llvm.func +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.xor +2: llvm.xor +2: builtin.unregistered: llvm.select +2: llvm.xor +2: builtin.unregistered: llvm.select +2: llvm.xor +2: llvm.return 1: "select_logic_or_fail" 4: "select_logic_or_fail" has unsupported operation: builtin.unregistered: llvm.icmp -4: "select_logic_or_fail" has unsupported operation: builtin.unregistered: llvm.select - -4: "select_logic_or_fail" has unsupported operation: builtin.unregistered: llvm.select - 1: "select_logic_and_fail" 4: "select_logic_and_fail" has unsupported operation: builtin.unregistered: llvm.icmp -4: "select_logic_and_fail" has unsupported operation: builtin.unregistered: llvm.select - -4: "select_logic_and_fail" has unsupported operation: builtin.unregistered: llvm.select - 1: "smin_1" -4: "smin_1" has unsupported operation: builtin.unregistered: llvm.select - 4: "smin_1" has unsupported operation: builtin.unregistered: llvm.intr.smax 1: "smin_1_fail" -4: "smin_1_fail" has unsupported operation: builtin.unregistered: llvm.select - 4: "smin_1_fail" has unsupported operation: builtin.unregistered: llvm.intr.smin 1: "umin_1_fail" -4: "umin_1_fail" has unsupported operation: builtin.unregistered: llvm.select - 4: "umin_1_fail" has unsupported operation: builtin.unregistered: llvm.intr.umin 1: "smax_1" -4: "smax_1" has unsupported operation: builtin.unregistered: llvm.select - 4: "smax_1" has unsupported operation: builtin.unregistered: llvm.intr.smin 1: "smax_1_fail" 4: "smax_1_fail" has unsupported operation: llvm.call -4: "smax_1_fail" has unsupported operation: builtin.unregistered: llvm.select - 4: "smax_1_fail" has unsupported operation: builtin.unregistered: llvm.intr.smax 1: "umax_1" -4: "umax_1" has unsupported operation: builtin.unregistered: llvm.select - 4: "umax_1" has unsupported operation: builtin.unregistered: llvm.intr.umin 1: "umax_1_fail" -4: "umax_1_fail" has unsupported operation: builtin.unregistered: llvm.select - 4: "umax_1_fail" has unsupported operation: llvm.call 4: "umax_1_fail" has unsupported operation: builtin.unregistered: llvm.intr.umax @@ -118,7 +175,7 @@ 7: "ashr_both_freely_invertable_always" is unchanged by InstCombine 1: "select_both_freely_invertable_always" -4: "select_both_freely_invertable_always" has unsupported operation: builtin.unregistered: llvm.select +7: "select_both_freely_invertable_always" is unchanged by InstCombine 1: "umin_both_freely_invertable_always" 4: "umin_both_freely_invertable_always" has unsupported operation: builtin.unregistered: llvm.intr.umin diff --git a/SSA/Projects/InstCombine/tests/logs/fsh.txt b/SSA/Projects/InstCombine/tests/logs/fsh.txt index f21743cec..b8e736ec9 100644 --- a/SSA/Projects/InstCombine/tests/logs/fsh.txt +++ b/SSA/Projects/InstCombine/tests/logs/fsh.txt @@ -8,7 +8,7 @@ 4: "fshl_mask_simplify1" has unsupported operation after optimization: builtin.unregistered: llvm.intr.fshl 1: "fshr_mask_simplify2" -"fshr_mask_simplify2" contains vectors which are unsupported +8: "fshr_mask_simplify2" contains vectors which are unsupported 1: "fshl_mask_simplify3" 4: "fshl_mask_simplify3" has unsupported operation: builtin.unregistered: llvm.intr.fshl @@ -70,28 +70,28 @@ 4: "fshr_op1_zero" has unsupported operation after optimization: builtin.unregistered: llvm.intr.fshr 1: "fshl_op0_zero_splat_vec" -"fshl_op0_zero_splat_vec" contains vectors which are unsupported +8: "fshl_op0_zero_splat_vec" contains vectors which are unsupported 1: "fshl_op1_undef_splat_vec" -"fshl_op1_undef_splat_vec" contains vectors which are unsupported +8: "fshl_op1_undef_splat_vec" contains vectors which are unsupported 1: "fshr_op0_undef_splat_vec" -"fshr_op0_undef_splat_vec" contains vectors which are unsupported +8: "fshr_op0_undef_splat_vec" contains vectors which are unsupported 1: "fshr_op1_zero_splat_vec" -"fshr_op1_zero_splat_vec" contains vectors which are unsupported +8: "fshr_op1_zero_splat_vec" contains vectors which are unsupported 1: "fshl_op0_zero_vec" -"fshl_op0_zero_vec" contains vectors which are unsupported +8: "fshl_op0_zero_vec" contains vectors which are unsupported 1: "fshl_op1_undef_vec" -"fshl_op1_undef_vec" contains vectors which are unsupported +8: "fshl_op1_undef_vec" contains vectors which are unsupported 1: "fshr_op0_undef_vec" -"fshr_op0_undef_vec" contains vectors which are unsupported +8: "fshr_op0_undef_vec" contains vectors which are unsupported 1: "fshr_op1_zero_vec" -"fshr_op1_zero_vec" contains vectors which are unsupported +8: "fshr_op1_zero_vec" contains vectors which are unsupported 1: "fshl_only_op0_demanded" 4: "fshl_only_op0_demanded" has unsupported operation after optimization: builtin.unregistered: llvm.intr.fshl @@ -106,7 +106,7 @@ 4: "fshr_only_op0_demanded" has unsupported operation after optimization: builtin.unregistered: llvm.intr.fshr 1: "fshl_only_op1_demanded_vec_splat" -"fshl_only_op1_demanded_vec_splat" contains vectors which are unsupported +8: "fshl_only_op1_demanded_vec_splat" contains vectors which are unsupported 1: "fshl_constant_shift_amount_modulo_bitwidth" 4: "fshl_constant_shift_amount_modulo_bitwidth" has unsupported operation: builtin.unregistered: llvm.intr.fshl @@ -151,10 +151,10 @@ 4: "fshl_constant_shift_amount_modulo_bitwidth_vec_const_expr" has unsupported operation: builtin.unregistered: llvm.intr.fshl 1: "fshl_undef_shift_amount_vec" -"fshl_undef_shift_amount_vec" contains vectors which are unsupported +8: "fshl_undef_shift_amount_vec" contains vectors which are unsupported 1: "fshr_undef_shift_amount_vec" -"fshr_undef_shift_amount_vec" contains vectors which are unsupported +8: "fshr_undef_shift_amount_vec" contains vectors which are unsupported 1: "rotl_common_demanded" 4: "rotl_common_demanded" has unsupported operation: builtin.unregistered: llvm.intr.fshl @@ -163,7 +163,7 @@ 4: "rotr_common_demanded" has unsupported operation: builtin.unregistered: llvm.intr.fshl 1: "fshl_only_op1_demanded_vec_nonsplat" -"fshl_only_op1_demanded_vec_nonsplat" contains vectors which are unsupported +8: "fshl_only_op1_demanded_vec_nonsplat" contains vectors which are unsupported 1: "rotl_constant_shift_amount" 4: "rotl_constant_shift_amount" has unsupported operation: builtin.unregistered: llvm.intr.fshl @@ -294,10 +294,10 @@ 4: "fsh_load_rotate_25" has unsupported operation: builtin.unregistered: llvm.intr.fshl 1: "fshr_mask_args_same_vector" -"fshr_mask_args_same_vector" contains vectors which are unsupported +8: "fshr_mask_args_same_vector" contains vectors which are unsupported 1: "fshr_mask_args_same_vector2" -"fshr_mask_args_same_vector2" contains vectors which are unsupported +8: "fshr_mask_args_same_vector2" contains vectors which are unsupported 1: "fshr_mask_args_same_vector3_different_but_still_prunable" 4: "fshr_mask_args_same_vector3_different_but_still_prunable" has unsupported operation: builtin.unregistered: llvm.intr.fshl diff --git a/SSA/Projects/InstCombine/tests/logs/g2010h11h01hlshrhmask.txt b/SSA/Projects/InstCombine/tests/logs/g2010h11h01hlshrhmask.txt deleted file mode 100644 index 6c7804c07..000000000 --- a/SSA/Projects/InstCombine/tests/logs/g2010h11h01hlshrhmask.txt +++ /dev/null @@ -1,36 +0,0 @@ -error: build failed -⚠ [2443/2457] Replayed SSA.Experimental.Bits.Fast.FiniteStateMachine -warning: ././././SSA/Experimental/Bits/Fast/FiniteStateMachine.lean:107:8: declaration uses 'sorry' -warning: ././././SSA/Experimental/Bits/Fast/FiniteStateMachine.lean:825:8: declaration uses 'sorry' -⚠ [2447/2457] Replayed SSA.Experimental.Bits.Fast.Tactic -warning: ././././SSA/Experimental/Bits/Fast/Tactic.lean:340:4: declaration uses 'sorry' -⚠ [2451/2457] Replayed SSA.Experimental.Bits.AutoStructs.Basic -warning: ././././SSA/Experimental/Bits/AutoStructs/Basic.lean:99:8: declaration uses 'sorry' -warning: ././././SSA/Experimental/Bits/AutoStructs/Basic.lean:102:8: declaration uses 'sorry' -warning: ././././SSA/Experimental/Bits/AutoStructs/Basic.lean:104:8: declaration uses 'sorry' -warning: ././././SSA/Experimental/Bits/AutoStructs/Basic.lean:106:8: declaration uses 'sorry' -warning: ././././SSA/Experimental/Bits/AutoStructs/Basic.lean:109:8: declaration uses 'sorry' -warning: ././././SSA/Experimental/Bits/AutoStructs/Basic.lean:111:8: declaration uses 'sorry' -warning: ././././SSA/Experimental/Bits/AutoStructs/Basic.lean:113:8: declaration uses 'sorry' -warning: ././././SSA/Experimental/Bits/AutoStructs/Basic.lean:116:8: declaration uses 'sorry' -warning: ././././SSA/Experimental/Bits/AutoStructs/Basic.lean:127:8: declaration uses 'sorry' -warning: ././././SSA/Experimental/Bits/AutoStructs/Basic.lean:164:8: declaration uses 'sorry' -warning: ././././SSA/Experimental/Bits/AutoStructs/Basic.lean:335:6: declaration uses 'sorry' -warning: ././././SSA/Experimental/Bits/AutoStructs/Basic.lean:408:6: declaration uses 'sorry' -warning: ././././SSA/Experimental/Bits/AutoStructs/Basic.lean:443:6: declaration uses 'sorry' -warning: ././././SSA/Experimental/Bits/AutoStructs/Basic.lean:477:6: declaration uses 'sorry' -⚠ [2453/2457] Replayed SSA.Experimental.Bits.AutoStructs.FiniteStateMachine -warning: ././././SSA/Experimental/Bits/AutoStructs/FiniteStateMachine.lean:24:38: structure ... :=' has been deprecated in favor of 'structure ... where'. -note: this linter can be disabled with `set_option linter.deprecated false` -warning: ././././SSA/Experimental/Bits/AutoStructs/FiniteStateMachine.lean:111:8: declaration uses 'sorry' -warning: ././././SSA/Experimental/Bits/AutoStructs/FiniteStateMachine.lean:511:59: structure ... :=' has been deprecated in favor of 'structure ... where'. -note: this linter can be disabled with `set_option linter.deprecated false` -✖ [2457/2457] Building SSA.Projects.InstCombine.tests.LLVM.g2010h11h01hlshrhmask -trace: .> LEAN_PATH=././.lake/packages/batteries/.lake/build/lib:././.lake/packages/Qq/.lake/build/lib:././.lake/packages/aesop/.lake/build/lib:././.lake/packages/proofwidgets/.lake/build/lib:././.lake/packages/Cli/.lake/build/lib:././.lake/packages/importGraph/.lake/build/lib:././.lake/packages/LeanSearchClient/.lake/build/lib:././.lake/packages/mathlib/.lake/build/lib:././.lake/packages/MD4Lean/.lake/build/lib:././.lake/packages/UnicodeBasic/.lake/build/lib:././.lake/packages/BibtexQuery/.lake/build/lib:././.lake/packages/doc-gen4/.lake/build/lib:././.lake/packages/leanwuzla/.lake/build/lib:././.lake/build/lib LD_LIBRARY_PATH= /home/lfrenot/.elan/toolchains/leanprover--lean4---nightly-2024-10-15/bin/lean ././././SSA/Projects/InstCombine/tests/LLVM/g2010h11h01hlshrhmask.lean -R ./././. -o ././.lake/build/lib/SSA/Projects/InstCombine/tests/LLVM/g2010h11h01hlshrhmask.olean -i ././.lake/build/lib/SSA/Projects/InstCombine/tests/LLVM/g2010h11h01hlshrhmask.ilean -c ././.lake/build/ir/SSA/Projects/InstCombine/tests/LLVM/g2010h11h01hlshrhmask.c --json -error: ././././SSA/Projects/InstCombine/tests/LLVM/g2010h11h01hlshrhmask.lean:65:46: (deterministic) timeout at `whnf`, maximum number of heartbeats (200000) has been reached -Use `set_option maxHeartbeats ` to set the limit. -Additional diagnostic information may be available using the `set_option diagnostics true` command. -error: Lean exited with code 1 -Some required builds logged failures: -- SSA.Projects.InstCombine.tests.LLVM.g2010h11h01hlshrhmask -error: build failed diff --git a/SSA/Projects/InstCombine/tests/logs/g2010h11h01hlshrhmask_proof.txt b/SSA/Projects/InstCombine/tests/logs/g2010h11h01hlshrhmask_proof.txt new file mode 100644 index 000000000..89b8a1320 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/g2010h11h01hlshrhmask_proof.txt @@ -0,0 +1,329 @@ +⚠ [49/2462] Replayed Mathlib.Logic.Basic +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Basic.lean:155:8: `dec_em'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Basic.lean:159:8: `em'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Basic.lean:304:8: `or_congr_left'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Basic.lean:307:8: `or_congr_right'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Basic.lean:320:8: `imp_or'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Basic.lean:359:8: `xor_iff_not_iff'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Basic.lean:418:8: `eqRec_heq'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Basic.lean:511:8: `forall_true_iff'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Basic.lean:532:8: `exists_apply_eq_apply'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Basic.lean:539:6: `exists_apply_eq_apply2'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Basic.lean:548:6: `exists_apply_eq_apply3'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Basic.lean:575:8: `forall_apply_eq_imp_iff'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Basic.lean:578:8: `forall_eq_apply_imp_iff'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Basic.lean:638:8: `forall_prop_congr'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Basic.lean:711:6: `Classical.choose_eq'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Basic.lean:847:8: `dite_eq_iff'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Basic.lean:851:8: `ite_eq_iff'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +⚠ [66/2462] Replayed Mathlib.Algebra.NeZero +warning: ././.lake/packages/mathlib/././Mathlib/Algebra/NeZero.lean:44:6: `zero_ne_one'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Algebra/NeZero.lean:46:6: `one_ne_zero'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Algebra/NeZero.lean:48:6: `two_ne_zero'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Algebra/NeZero.lean:50:6: `three_ne_zero'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Algebra/NeZero.lean:52:6: `four_ne_zero'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +⚠ [69/2462] Replayed Mathlib.Logic.ExistsUnique +warning: ././.lake/packages/mathlib/././Mathlib/Logic/ExistsUnique.lean:109:16: `exists_unique_eq'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +⚠ [74/2462] Replayed Mathlib.Logic.Function.Basic +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Function/Basic.lean:78:8: `Function.Injective.eq_iff'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Function/Basic.lean:87:8: `Function.Injective.ne_iff'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Function/Basic.lean:117:8: `Function.Injective.of_comp_iff'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Function/Basic.lean:163:8: `Function.Surjective.of_comp_iff'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Function/Basic.lean:237:8: `Function.Bijective.of_comp_iff'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Function/Basic.lean:541:8: `Function.update_comp_eq_of_forall_ne'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Function/Basic.lean:552:8: `Function.update_comp_eq_of_injective'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Function/Basic.lean:649:8: `Function.extend_apply'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Function/Basic.lean:681:8: `Function.Injective.surjective_comp_right'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +⚠ [94/2462] Replayed Mathlib.Control.Combinators +warning: ././.lake/packages/mathlib/././Mathlib/Control/Combinators.lean:35:4: `Monad.mapM'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Control/Combinators.lean:57:4: `Monad.sequence'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +⚠ [96/2462] Replayed Mathlib.Logic.IsEmpty +warning: ././.lake/packages/mathlib/././Mathlib/Logic/IsEmpty.lean:36:9: `Fin.isEmpty'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +⚠ [229/2462] Replayed Mathlib.Data.Prod.PProd +warning: ././.lake/packages/mathlib/././Mathlib/Data/Prod/PProd.lean:35:8: `PProd.forall'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Data/Prod/PProd.lean:38:8: `PProd.exists'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +⚠ [230/2462] Replayed Mathlib.Data.Bool.Basic +warning: ././.lake/packages/mathlib/././Mathlib/Data/Bool/Basic.lean:156:8: `Bool.eq_true_of_not_eq_false'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Data/Bool/Basic.lean:159:8: `Bool.eq_false_of_not_eq_true'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +⚠ [232/2462] Replayed Mathlib.Logic.Function.Iterate +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Function/Iterate.lean:160:8: `Function.iterate_succ'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Function/Iterate.lean:163:8: `Function.iterate_succ_apply'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +⚠ [234/2462] Replayed Mathlib.Data.Prod.Basic +warning: ././.lake/packages/mathlib/././Mathlib/Data/Prod/Basic.lean:31:8: `Prod.forall'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Data/Prod/Basic.lean:34:8: `Prod.exists'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Data/Prod/Basic.lean:51:8: `Prod.map_apply'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Data/Prod/Basic.lean:54:8: `Prod.map_fst'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Data/Prod/Basic.lean:57:8: `Prod.map_snd'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +⚠ [235/2462] Replayed Mathlib.Data.Sigma.Basic +warning: ././.lake/packages/mathlib/././Mathlib/Data/Sigma/Basic.lean:90:6: `Sigma.exists'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Data/Sigma/Basic.lean:93:6: `Sigma.forall'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +⚠ [239/2462] Replayed Mathlib.Data.FunLike.Basic +warning: ././.lake/packages/mathlib/././Mathlib/Data/FunLike/Basic.lean:187:8: `DFunLike.ext'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +⚠ [244/2462] Replayed Mathlib.Logic.Relation +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Relation.lean:351:8: `Relation.TransGen.head'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Relation.lean:354:8: `Relation.TransGen.tail'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Relation.lean:444:8: `Relation.TransGen.lift'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Relation.lean:453:6: `Relation.TransGen.closed'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Relation.lean:523:8: `Relation.ReflTransGen.lift'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +⚠ [245/2462] Replayed Mathlib.Logic.Unique +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Unique.lean:131:18: `Unique.subsingleton_unique'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Unique.lean:259:9: `Unique.subtypeEq'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +⚠ [252/2462] Replayed Mathlib.Data.Quot +warning: ././.lake/packages/mathlib/././Mathlib/Data/Quot.lean:558:18: `Quotient.liftOn'_mk''` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Data/Quot.lean:562:14: `Quotient.surjective_liftOn'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Data/Quot.lean:573:18: `Quotient.liftOn₂'_mk''` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Data/Quot.lean:639:8: `Quotient.hrecOn'_mk''` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Data/Quot.lean:652:8: `Quotient.hrecOn₂'_mk''` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Data/Quot.lean:664:8: `Quotient.map'_mk''` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Data/Quot.lean:674:8: `Quotient.map₂'_mk''` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Data/Quot.lean:679:8: `Quotient.exact'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Data/Quot.lean:683:8: `Quotient.sound'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Data/Quot.lean:687:18: `Quotient.eq'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Data/Quot.lean:692:18: `Quotient.eq''` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Data/Quot.lean:701:8: `Quotient.out_eq'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Data/Quot.lean:704:8: `Quotient.mk_out'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +⚠ [256/2462] Replayed Mathlib.Tactic.Lift +warning: ././.lake/packages/mathlib/././Mathlib/Tactic/Lift.lean:49:9: `PiSubtype.canLift'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +⚠ [409/2462] Replayed Mathlib.Algebra.Group.Defs +warning: ././.lake/packages/mathlib/././Mathlib/Algebra/Group/Defs.lean:735:33: `pow_succ'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Algebra/Group/Defs.lean:740:6: `pow_mul_comm'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Algebra/Group/Defs.lean:749:6: `pow_three'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Algebra/Group/Defs.lean:772:6: `pow_mul'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +⚠ [443/2462] Replayed Mathlib.Data.List.Defs +warning: ././.lake/packages/mathlib/././Mathlib/Data/List/Defs.lean:241:9: `List.decidableChain'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +⚠ [474/2462] Replayed Mathlib.Control.Applicative +warning: ././.lake/packages/mathlib/././Mathlib/Control/Applicative.lean:34:8: `Applicative.pure_seq_eq_map'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +⚠ [475/2462] Replayed Mathlib.Control.Traversable.Basic +warning: ././.lake/packages/mathlib/././Mathlib/Control/Traversable/Basic.lean:139:8: `ApplicativeTransformation.preserves_map'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +⚠ [618/2462] Replayed Mathlib.Algebra.GroupWithZero.Defs +warning: ././.lake/packages/mathlib/././Mathlib/Algebra/GroupWithZero/Defs.lean:110:8: `mul_left_inj'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Algebra/GroupWithZero/Defs.lean:113:8: `mul_right_inj'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +⚠ [624/2462] Replayed Mathlib.Algebra.Group.Invertible.Defs +warning: ././.lake/packages/mathlib/././Mathlib/Algebra/Group/Invertible/Defs.lean:97:8: `invOf_mul_self'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Algebra/Group/Invertible/Defs.lean:103:8: `mul_invOf_self'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Algebra/Group/Invertible/Defs.lean:109:8: `invOf_mul_cancel_left'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Algebra/Group/Invertible/Defs.lean:120:8: `mul_invOf_cancel_left'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Algebra/Group/Invertible/Defs.lean:131:8: `invOf_mul_cancel_right'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Algebra/Group/Invertible/Defs.lean:142:8: `mul_invOf_cancel_right'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Algebra/Group/Invertible/Defs.lean:198:8: `invOf_one'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +⚠ [1184/2462] Replayed Mathlib.Control.Traversable.Lemmas +warning: ././.lake/packages/mathlib/././Mathlib/Control/Traversable/Lemmas.lean:87:8: `Traversable.naturality'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Control/Traversable/Lemmas.lean:102:8: `Traversable.traverse_eq_map_id'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Control/Traversable/Lemmas.lean:108:8: `Traversable.traverse_map'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Control/Traversable/Lemmas.lean:113:8: `Traversable.map_traverse'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +⚠ [2407/2462] Replayed Mathlib.Data.List.EditDistance.Defs +warning: ././.lake/packages/mathlib/././Mathlib/Data/List/EditDistance/Defs.lean:214:8: `suffixLevenshtein_nil'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +⚠ [2447/2462] Replayed SSA.Experimental.Bits.Fast.FiniteStateMachine +warning: ././././SSA/Experimental/Bits/Fast/FiniteStateMachine.lean:107:8: declaration uses 'sorry' +warning: ././././SSA/Experimental/Bits/Fast/FiniteStateMachine.lean:825:8: declaration uses 'sorry' +⚠ [2451/2462] Replayed SSA.Experimental.Bits.Fast.Tactic +warning: ././././SSA/Experimental/Bits/Fast/Tactic.lean:340:4: declaration uses 'sorry' +⚠ [2452/2462] Replayed SSA.Experimental.Bits.AutoStructs.ForLean +warning: ././././SSA/Experimental/Bits/AutoStructs/ForLean.lean:24:8: declaration uses 'sorry' +warning: ././././SSA/Experimental/Bits/AutoStructs/ForLean.lean:27:8: declaration uses 'sorry' +warning: ././././SSA/Experimental/Bits/AutoStructs/ForLean.lean:29:8: declaration uses 'sorry' +warning: ././././SSA/Experimental/Bits/AutoStructs/ForLean.lean:31:8: declaration uses 'sorry' +warning: ././././SSA/Experimental/Bits/AutoStructs/ForLean.lean:34:8: declaration uses 'sorry' +warning: ././././SSA/Experimental/Bits/AutoStructs/ForLean.lean:36:8: declaration uses 'sorry' +warning: ././././SSA/Experimental/Bits/AutoStructs/ForLean.lean:38:8: declaration uses 'sorry' +warning: ././././SSA/Experimental/Bits/AutoStructs/ForLean.lean:41:8: declaration uses 'sorry' +warning: ././././SSA/Experimental/Bits/AutoStructs/ForLean.lean:52:8: declaration uses 'sorry' +warning: ././././SSA/Experimental/Bits/AutoStructs/ForLean.lean:56:8: declaration uses 'sorry' +⚠ [2457/2462] Replayed SSA.Experimental.Bits.AutoStructs.Constructions +warning: ././././SSA/Experimental/Bits/AutoStructs/Constructions.lean:55:6: declaration uses 'sorry' +warning: ././././SSA/Experimental/Bits/AutoStructs/Constructions.lean:128:6: declaration uses 'sorry' +warning: ././././SSA/Experimental/Bits/AutoStructs/Constructions.lean:163:6: declaration uses 'sorry' +warning: ././././SSA/Experimental/Bits/AutoStructs/Constructions.lean:197:6: declaration uses 'sorry' +⚠ [2458/2462] Replayed SSA.Experimental.Bits.AutoStructs.FiniteStateMachine +warning: ././././SSA/Experimental/Bits/AutoStructs/FiniteStateMachine.lean:111:8: declaration uses 'sorry' +✖ [2462/2462] Building SSA.Projects.InstCombine.tests.LLVM.g2010h11h01hlshrhmask +trace: .> LEAN_PATH=././.lake/packages/batteries/.lake/build/lib:././.lake/packages/Qq/.lake/build/lib:././.lake/packages/aesop/.lake/build/lib:././.lake/packages/proofwidgets/.lake/build/lib:././.lake/packages/Cli/.lake/build/lib:././.lake/packages/importGraph/.lake/build/lib:././.lake/packages/LeanSearchClient/.lake/build/lib:././.lake/packages/mathlib/.lake/build/lib:././.lake/packages/MD4Lean/.lake/build/lib:././.lake/packages/UnicodeBasic/.lake/build/lib:././.lake/packages/BibtexQuery/.lake/build/lib:././.lake/packages/doc-gen4/.lake/build/lib:././.lake/packages/leanwuzla/.lake/build/lib:././.lake/build/lib LD_LIBRARY_PATH= /home/lfrenot/.elan/toolchains/leanprover--lean4---nightly-2024-10-17/bin/lean ././././SSA/Projects/InstCombine/tests/LLVM/g2010h11h01hlshrhmask.lean -R ./././. -o ././.lake/build/lib/SSA/Projects/InstCombine/tests/LLVM/g2010h11h01hlshrhmask.olean -i ././.lake/build/lib/SSA/Projects/InstCombine/tests/LLVM/g2010h11h01hlshrhmask.ilean -c ././.lake/build/ir/SSA/Projects/InstCombine/tests/LLVM/g2010h11h01hlshrhmask.c --json +error: ././././SSA/Projects/InstCombine/tests/LLVM/g2010h11h01hlshrhmask.lean:65:46: (deterministic) timeout at `whnf`, maximum number of heartbeats (200000) has been reached +Use `set_option maxHeartbeats ` to set the limit. +Additional diagnostic information may be available using the `set_option diagnostics true` command. +error: Lean exited with code 1 +Some required builds logged failures: +- SSA.Projects.InstCombine.tests.LLVM.g2010h11h01hlshrhmask +error: build failed diff --git a/SSA/Projects/InstCombine/tests/logs/gand.txt b/SSA/Projects/InstCombine/tests/logs/gand.txt deleted file mode 100644 index 0a0456b8c..000000000 --- a/SSA/Projects/InstCombine/tests/logs/gand.txt +++ /dev/null @@ -1,131 +0,0 @@ -error: build failed -⚠ [2443/2457] Replayed SSA.Experimental.Bits.Fast.FiniteStateMachine -warning: ././././SSA/Experimental/Bits/Fast/FiniteStateMachine.lean:107:8: declaration uses 'sorry' -warning: ././././SSA/Experimental/Bits/Fast/FiniteStateMachine.lean:825:8: declaration uses 'sorry' -⚠ [2447/2457] Replayed SSA.Experimental.Bits.Fast.Tactic -warning: ././././SSA/Experimental/Bits/Fast/Tactic.lean:340:4: declaration uses 'sorry' -⚠ [2451/2457] Replayed SSA.Experimental.Bits.AutoStructs.Basic -warning: ././././SSA/Experimental/Bits/AutoStructs/Basic.lean:99:8: declaration uses 'sorry' -warning: ././././SSA/Experimental/Bits/AutoStructs/Basic.lean:102:8: declaration uses 'sorry' -warning: ././././SSA/Experimental/Bits/AutoStructs/Basic.lean:104:8: declaration uses 'sorry' -warning: ././././SSA/Experimental/Bits/AutoStructs/Basic.lean:106:8: declaration uses 'sorry' -warning: ././././SSA/Experimental/Bits/AutoStructs/Basic.lean:109:8: declaration uses 'sorry' -warning: ././././SSA/Experimental/Bits/AutoStructs/Basic.lean:111:8: declaration uses 'sorry' -warning: ././././SSA/Experimental/Bits/AutoStructs/Basic.lean:113:8: declaration uses 'sorry' -warning: ././././SSA/Experimental/Bits/AutoStructs/Basic.lean:116:8: declaration uses 'sorry' -warning: ././././SSA/Experimental/Bits/AutoStructs/Basic.lean:127:8: declaration uses 'sorry' -warning: ././././SSA/Experimental/Bits/AutoStructs/Basic.lean:164:8: declaration uses 'sorry' -warning: ././././SSA/Experimental/Bits/AutoStructs/Basic.lean:335:6: declaration uses 'sorry' -warning: ././././SSA/Experimental/Bits/AutoStructs/Basic.lean:408:6: declaration uses 'sorry' -warning: ././././SSA/Experimental/Bits/AutoStructs/Basic.lean:443:6: declaration uses 'sorry' -warning: ././././SSA/Experimental/Bits/AutoStructs/Basic.lean:477:6: declaration uses 'sorry' -⚠ [2453/2457] Replayed SSA.Experimental.Bits.AutoStructs.FiniteStateMachine -warning: ././././SSA/Experimental/Bits/AutoStructs/FiniteStateMachine.lean:24:38: structure ... :=' has been deprecated in favor of 'structure ... where'. -note: this linter can be disabled with `set_option linter.deprecated false` -warning: ././././SSA/Experimental/Bits/AutoStructs/FiniteStateMachine.lean:111:8: declaration uses 'sorry' -warning: ././././SSA/Experimental/Bits/AutoStructs/FiniteStateMachine.lean:511:59: structure ... :=' has been deprecated in favor of 'structure ... where'. -note: this linter can be disabled with `set_option linter.deprecated false` -✖ [2457/2457] Building SSA.Projects.InstCombine.tests.LLVM.gand -trace: .> LEAN_PATH=././.lake/packages/batteries/.lake/build/lib:././.lake/packages/Qq/.lake/build/lib:././.lake/packages/aesop/.lake/build/lib:././.lake/packages/proofwidgets/.lake/build/lib:././.lake/packages/Cli/.lake/build/lib:././.lake/packages/importGraph/.lake/build/lib:././.lake/packages/LeanSearchClient/.lake/build/lib:././.lake/packages/mathlib/.lake/build/lib:././.lake/packages/MD4Lean/.lake/build/lib:././.lake/packages/UnicodeBasic/.lake/build/lib:././.lake/packages/BibtexQuery/.lake/build/lib:././.lake/packages/doc-gen4/.lake/build/lib:././.lake/packages/leanwuzla/.lake/build/lib:././.lake/build/lib LD_LIBRARY_PATH= /home/lfrenot/.elan/toolchains/leanprover--lean4---nightly-2024-10-15/bin/lean ././././SSA/Projects/InstCombine/tests/LLVM/gand.lean -R ./././. -o ././.lake/build/lib/SSA/Projects/InstCombine/tests/LLVM/gand.olean -i ././.lake/build/lib/SSA/Projects/InstCombine/tests/LLVM/gand.ilean -c ././.lake/build/ir/SSA/Projects/InstCombine/tests/LLVM/gand.c --json -info: ././././SSA/Projects/InstCombine/tests/LLVM/gand.lean:43:17: theorem extracted_1 (x : BitVec 32) : - (Option.bind (if 32#32 ≤ x then none else some (4#32 <<< x.toNat)) fun x' => some (x' &&& 1#32)) ⊑ some 0#32 := sorry -warning: ././././SSA/Projects/InstCombine/tests/LLVM/gand.lean:33:8: declaration uses 'sorry' -info: ././././SSA/Projects/InstCombine/tests/LLVM/gand.lean:75:17: theorem extracted_1 (x : BitVec 32) : - (Option.bind (if 32#32 ≤ x then none else some (4294967292#32 <<< x.toNat)) fun x' => some (x' &&& 1#32)) ⊑ - some 0#32 := sorry -warning: ././././SSA/Projects/InstCombine/tests/LLVM/gand.lean:65:8: declaration uses 'sorry' -info: ././././SSA/Projects/InstCombine/tests/LLVM/gand.lean:134:17: theorem extracted_1 (x : BitVec 32) : x &&& 4294967295#32 = x := sorry -warning: ././././SSA/Projects/InstCombine/tests/LLVM/gand.lean:124:8: declaration uses 'sorry' -error: ././././SSA/Projects/InstCombine/tests/LLVM/gand.lean:142:40: cannot convert suffix of i/f to int: false -error: ././././SSA/Projects/InstCombine/tests/LLVM/gand.lean:150:40: cannot convert suffix of i/f to int: false -error: ././././SSA/Projects/InstCombine/tests/LLVM/gand.lean:154:22: could not synthesize default value for parameter 'h' using tactics -error: ././././SSA/Projects/InstCombine/tests/LLVM/gand.lean:154:22: tactic 'rfl' failed, the left-hand side - ⟦?m.94396⟧ -is not definitionally equal to the right-hand side - Option ?m.94394 -test3_before test3_after : Com InstCombine.LLVM ?m.94395 EffectKind.pure ?m.94396 -⊢ ⟦?m.94396⟧ = Option ?m.94394 -error: ././././SSA/Projects/InstCombine/tests/LLVM/gand.lean:172:40: expected i or f, found: true -error: ././././SSA/Projects/InstCombine/tests/LLVM/gand.lean:184:2: tactic 'unfold' failed to unfold 'test4_before' at - (test4_before ⊑ test4_after) ⋯ -info: ././././SSA/Projects/InstCombine/tests/LLVM/gand.lean:280:17: theorem extracted_1 (x : BitVec 32) : x &&& (x ^^^ 4294967295#32) = 0#32 := sorry -warning: ././././SSA/Projects/InstCombine/tests/LLVM/gand.lean:270:8: declaration uses 'sorry' -info: ././././SSA/Projects/InstCombine/tests/LLVM/gand.lean:312:17: theorem extracted_1 (x : BitVec 8) : x &&& 3#8 &&& 4#8 = 0#8 := sorry -warning: ././././SSA/Projects/InstCombine/tests/LLVM/gand.lean:302:8: declaration uses 'sorry' -info: ././././SSA/Projects/InstCombine/tests/LLVM/gand.lean:346:17: theorem extracted_1 (x : BitVec 32) : (x &&& 12#32 ^^^ 15#32) &&& 1#32 = 1#32 := sorry -warning: ././././SSA/Projects/InstCombine/tests/LLVM/gand.lean:336:8: declaration uses 'sorry' -info: ././././SSA/Projects/InstCombine/tests/LLVM/gand.lean:378:17: theorem extracted_1 (x : BitVec 8) : x >>> 7 &&& 2#8 = 0#8 := sorry -warning: ././././SSA/Projects/InstCombine/tests/LLVM/gand.lean:368:8: declaration uses 'sorry' -info: ././././SSA/Projects/InstCombine/tests/LLVM/gand.lean:410:17: theorem extracted_1 (x : BitVec 8) : x <<< 2 &&& 3#8 = 0#8 := sorry -warning: ././././SSA/Projects/InstCombine/tests/LLVM/gand.lean:400:8: declaration uses 'sorry' -info: ././././SSA/Projects/InstCombine/tests/LLVM/gand.lean:443:17: theorem extracted_1 (x : BitVec 32) : x <<< 3 &&& 4294967294#32 = x <<< 3 := sorry -warning: ././././SSA/Projects/InstCombine/tests/LLVM/gand.lean:433:8: declaration uses 'sorry' -info: ././././SSA/Projects/InstCombine/tests/LLVM/gand.lean:476:17: theorem extracted_1 (x : BitVec 8) : x >>> 7 &&& 1#8 = x >>> 7 := sorry -warning: ././././SSA/Projects/InstCombine/tests/LLVM/gand.lean:466:8: declaration uses 'sorry' -info: ././././SSA/Projects/InstCombine/tests/LLVM/gand.lean:511:17: theorem extracted_1 (x : BitVec 8) : ((x &&& 4#8) - 16#8 &&& 240#8) + 16#8 = 0#8 := sorry -warning: ././././SSA/Projects/InstCombine/tests/LLVM/gand.lean:501:8: declaration uses 'sorry' -info: ././././SSA/Projects/InstCombine/tests/LLVM/gand.lean:544:17: theorem extracted_1 (x : BitVec 32) : x.sshiftRight 24 &&& 255#32 = x >>> 24 := sorry -warning: ././././SSA/Projects/InstCombine/tests/LLVM/gand.lean:534:8: declaration uses 'sorry' -info: ././././SSA/Projects/InstCombine/tests/LLVM/gand.lean:578:17: theorem extracted_1 (x : BitVec 32) : (x &&& 16#32) >>> 2 &&& 1#32 = 0#32 := sorry -warning: ././././SSA/Projects/InstCombine/tests/LLVM/gand.lean:568:8: declaration uses 'sorry' -info: ././././SSA/Projects/InstCombine/tests/LLVM/gand.lean:613:17: theorem extracted_1 (x : BitVec 32) : x &&& 4294967294#32 ||| x &&& 1#32 ^^^ 1#32 = x ^^^ 1#32 := sorry -warning: ././././SSA/Projects/InstCombine/tests/LLVM/gand.lean:603:8: declaration uses 'sorry' -info: ././././SSA/Projects/InstCombine/tests/LLVM/gand.lean:648:17: theorem extracted_1 (x : BitVec 32) : x &&& 1#32 ^^^ 1#32 ||| x &&& 4294967294#32 = x ^^^ 1#32 := sorry -warning: ././././SSA/Projects/InstCombine/tests/LLVM/gand.lean:638:8: declaration uses 'sorry' -info: ././././SSA/Projects/InstCombine/tests/LLVM/gand.lean:677:17: theorem extracted_1 (x x_1 : BitVec 32) : (x_1 ||| x) &&& x_1 = x_1 := sorry -warning: ././././SSA/Projects/InstCombine/tests/LLVM/gand.lean:667:8: declaration uses 'sorry' -info: ././././SSA/Projects/InstCombine/tests/LLVM/gand.lean:712:17: theorem extracted_1 (x x_1 x_2 : BitVec 32) : - (x_2 ^^^ 4294967295#32 ^^^ x_1 * x) &&& (x_2 ||| x_1 * x) = x_1 * x &&& x_2 := sorry -warning: ././././SSA/Projects/InstCombine/tests/LLVM/gand.lean:702:8: declaration uses 'sorry' -info: ././././SSA/Projects/InstCombine/tests/LLVM/gand.lean:747:17: theorem extracted_1 (x x_1 x_2 : BitVec 32) : - (x_2 ||| x_1 * x) &&& (x_2 ^^^ 4294967295#32 ^^^ x_1 * x) = x_1 * x &&& x_2 := sorry -warning: ././././SSA/Projects/InstCombine/tests/LLVM/gand.lean:737:8: declaration uses 'sorry' -info: ././././SSA/Projects/InstCombine/tests/LLVM/gand.lean:779:17: theorem extracted_1 (x x_1 : BitVec 32) : (x_1 ^^^ 4294967295#32 ||| x) &&& x_1 = x &&& x_1 := sorry -warning: ././././SSA/Projects/InstCombine/tests/LLVM/gand.lean:769:8: declaration uses 'sorry' -info: ././././SSA/Projects/InstCombine/tests/LLVM/gand.lean:811:17: theorem extracted_1 (x x_1 : BitVec 32) : (x_1 ||| x ^^^ 4294967295#32) &&& x = x_1 &&& x := sorry -warning: ././././SSA/Projects/InstCombine/tests/LLVM/gand.lean:801:8: declaration uses 'sorry' -info: ././././SSA/Projects/InstCombine/tests/LLVM/gand.lean:843:17: theorem extracted_1 (x x_1 : BitVec 32) : x_1 &&& (x_1 ^^^ 4294967295#32 ||| x) = x_1 &&& x := sorry -warning: ././././SSA/Projects/InstCombine/tests/LLVM/gand.lean:833:8: declaration uses 'sorry' -info: ././././SSA/Projects/InstCombine/tests/LLVM/gand.lean:875:17: theorem extracted_1 (x x_1 : BitVec 32) : x_1 &&& (x ||| x_1 ^^^ 4294967295#32) = x_1 &&& x := sorry -warning: ././././SSA/Projects/InstCombine/tests/LLVM/gand.lean:865:8: declaration uses 'sorry' -info: ././././SSA/Projects/InstCombine/tests/LLVM/gand.lean:908:17: theorem extracted_1 (x : BitVec 8) : x + 192#8 &&& 63#8 = x &&& 63#8 := sorry -warning: ././././SSA/Projects/InstCombine/tests/LLVM/gand.lean:898:8: declaration uses 'sorry' -info: ././././SSA/Projects/InstCombine/tests/LLVM/gand.lean:941:17: theorem extracted_1 (x : BitVec 8) : x + 16#8 &&& 16#8 = x &&& 16#8 ^^^ 16#8 := sorry -warning: ././././SSA/Projects/InstCombine/tests/LLVM/gand.lean:931:8: declaration uses 'sorry' -info: ././././SSA/Projects/InstCombine/tests/LLVM/gand.lean:978:17: theorem extracted_1 (x x_1 : BitVec 8) : - (x_1.sshiftRight 6 ^^^ 255#8) &&& x = x &&& (x_1.sshiftRight 6 ^^^ 255#8) := sorry -warning: ././././SSA/Projects/InstCombine/tests/LLVM/gand.lean:968:8: declaration uses 'sorry' -info: ././././SSA/Projects/InstCombine/tests/LLVM/gand.lean:1015:17: theorem extracted_1 (x x_1 : BitVec 8) : (x_1 >>> 7 ^^^ 255#8) &&& x = x &&& (x_1 >>> 7 ^^^ 255#8) := sorry -warning: ././././SSA/Projects/InstCombine/tests/LLVM/gand.lean:1005:8: declaration uses 'sorry' -info: ././././SSA/Projects/InstCombine/tests/LLVM/gand.lean:1049:17: theorem extracted_1 (x : BitVec 16) : - (Option.bind (if 16#16 ≤ x then none else some (4096#16 <<< x.toNat)) fun x => some (x >>> 6 &&& 8#16)) ⊑ - some 0#16 := sorry -warning: ././././SSA/Projects/InstCombine/tests/LLVM/gand.lean:1039:8: declaration uses 'sorry' -info: ././././SSA/Projects/InstCombine/tests/LLVM/gand.lean:1083:17: theorem extracted_1 (x : BitVec 16) : - (Option.bind (if 16#16 ≤ x then none else some (8#16 <<< x.toNat)) fun x => some (x >>> 6 &&& 32768#16)) ⊑ - some 0#16 := sorry -warning: ././././SSA/Projects/InstCombine/tests/LLVM/gand.lean:1073:8: declaration uses 'sorry' -info: ././././SSA/Projects/InstCombine/tests/LLVM/gand.lean:1120:17: theorem extracted_1 (x : BitVec 16) : - (Option.bind (if 16#16 ≤ x then none else some (2047#16 >>> x.toNat)) fun x => some (x >>> 6 &&& 4#16)) ⊑ - Option.bind (if 16#16 ≤ x then none else some (31#16 >>> x.toNat)) fun x' => some (x' &&& 4#16) := sorry -warning: ././././SSA/Projects/InstCombine/tests/LLVM/gand.lean:1110:8: declaration uses 'sorry' -info: ././././SSA/Projects/InstCombine/tests/LLVM/gand.lean:1157:17: theorem extracted_1 (x : BitVec 16) : - (Option.bind (if 16#16 ≤ x then none else some (8192#16 >>> x.toNat)) fun x => some (x >>> 6 &&& 3#16)) ⊑ - Option.bind (if 16#16 ≤ x then none else some (128#16 >>> x.toNat)) fun x' => some (x' &&& 3#16) := sorry -warning: ././././SSA/Projects/InstCombine/tests/LLVM/gand.lean:1147:8: declaration uses 'sorry' -info: ././././SSA/Projects/InstCombine/tests/LLVM/gand.lean:1191:17: theorem extracted_1 (x : BitVec 16) : - (Option.bind (if 16#16 ≤ x then none else some (32768#16 >>> x.toNat)) fun x => some (x >>> 15 &&& 4#16)) ⊑ - some 0#16 := sorry -warning: ././././SSA/Projects/InstCombine/tests/LLVM/gand.lean:1181:8: declaration uses 'sorry' -info: ././././SSA/Projects/InstCombine/tests/LLVM/gand.lean:1225:17: theorem extracted_1 (x : BitVec 16) : - (Option.bind (if 16#16 ≤ x then none else some (8192#16 >>> x.toNat)) fun x => some (x <<< 6 &&& 32#16)) ⊑ - some 0#16 := sorry -warning: ././././SSA/Projects/InstCombine/tests/LLVM/gand.lean:1215:8: declaration uses 'sorry' -info: ././././SSA/Projects/InstCombine/tests/LLVM/gand.lean:1260:17: theorem extracted_1 (x : BitVec 32) : x + 16#32 &&& 24#32 = x &&& 24#32 ^^^ 16#32 := sorry -warning: ././././SSA/Projects/InstCombine/tests/LLVM/gand.lean:1250:8: declaration uses 'sorry' -info: ././././SSA/Projects/InstCombine/tests/LLVM/gand.lean:1297:17: theorem extracted_1 (x x_1 : BitVec 32) : (x_1 + 16#32 ||| x) &&& 24#32 = (x_1 ^^^ 16#32 ||| x) &&& 24#32 := sorry -warning: ././././SSA/Projects/InstCombine/tests/LLVM/gand.lean:1287:8: declaration uses 'sorry' -error: Lean exited with code 1 -Some required builds logged failures: -- SSA.Projects.InstCombine.tests.LLVM.gand -error: build failed diff --git a/SSA/Projects/InstCombine/tests/logs/gand2_proof.txt b/SSA/Projects/InstCombine/tests/logs/gand2_proof.txt new file mode 100644 index 000000000..0ccce7637 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/gand2_proof.txt @@ -0,0 +1,375 @@ +⚠ [49/2462] Replayed Mathlib.Logic.Basic +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Basic.lean:155:8: `dec_em'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Basic.lean:159:8: `em'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Basic.lean:304:8: `or_congr_left'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Basic.lean:307:8: `or_congr_right'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Basic.lean:320:8: `imp_or'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Basic.lean:359:8: `xor_iff_not_iff'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Basic.lean:418:8: `eqRec_heq'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Basic.lean:511:8: `forall_true_iff'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Basic.lean:532:8: `exists_apply_eq_apply'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Basic.lean:539:6: `exists_apply_eq_apply2'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Basic.lean:548:6: `exists_apply_eq_apply3'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Basic.lean:575:8: `forall_apply_eq_imp_iff'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Basic.lean:578:8: `forall_eq_apply_imp_iff'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Basic.lean:638:8: `forall_prop_congr'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Basic.lean:711:6: `Classical.choose_eq'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Basic.lean:847:8: `dite_eq_iff'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Basic.lean:851:8: `ite_eq_iff'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +⚠ [66/2462] Replayed Mathlib.Algebra.NeZero +warning: ././.lake/packages/mathlib/././Mathlib/Algebra/NeZero.lean:44:6: `zero_ne_one'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Algebra/NeZero.lean:46:6: `one_ne_zero'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Algebra/NeZero.lean:48:6: `two_ne_zero'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Algebra/NeZero.lean:50:6: `three_ne_zero'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Algebra/NeZero.lean:52:6: `four_ne_zero'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +⚠ [69/2462] Replayed Mathlib.Logic.ExistsUnique +warning: ././.lake/packages/mathlib/././Mathlib/Logic/ExistsUnique.lean:109:16: `exists_unique_eq'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +⚠ [74/2462] Replayed Mathlib.Logic.Function.Basic +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Function/Basic.lean:78:8: `Function.Injective.eq_iff'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Function/Basic.lean:87:8: `Function.Injective.ne_iff'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Function/Basic.lean:117:8: `Function.Injective.of_comp_iff'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Function/Basic.lean:163:8: `Function.Surjective.of_comp_iff'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Function/Basic.lean:237:8: `Function.Bijective.of_comp_iff'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Function/Basic.lean:541:8: `Function.update_comp_eq_of_forall_ne'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Function/Basic.lean:552:8: `Function.update_comp_eq_of_injective'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Function/Basic.lean:649:8: `Function.extend_apply'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Function/Basic.lean:681:8: `Function.Injective.surjective_comp_right'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +⚠ [94/2462] Replayed Mathlib.Control.Combinators +warning: ././.lake/packages/mathlib/././Mathlib/Control/Combinators.lean:35:4: `Monad.mapM'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Control/Combinators.lean:57:4: `Monad.sequence'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +⚠ [96/2462] Replayed Mathlib.Logic.IsEmpty +warning: ././.lake/packages/mathlib/././Mathlib/Logic/IsEmpty.lean:36:9: `Fin.isEmpty'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +⚠ [229/2462] Replayed Mathlib.Data.Prod.PProd +warning: ././.lake/packages/mathlib/././Mathlib/Data/Prod/PProd.lean:35:8: `PProd.forall'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Data/Prod/PProd.lean:38:8: `PProd.exists'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +⚠ [230/2462] Replayed Mathlib.Data.Bool.Basic +warning: ././.lake/packages/mathlib/././Mathlib/Data/Bool/Basic.lean:156:8: `Bool.eq_true_of_not_eq_false'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Data/Bool/Basic.lean:159:8: `Bool.eq_false_of_not_eq_true'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +⚠ [232/2462] Replayed Mathlib.Logic.Function.Iterate +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Function/Iterate.lean:160:8: `Function.iterate_succ'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Function/Iterate.lean:163:8: `Function.iterate_succ_apply'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +⚠ [234/2462] Replayed Mathlib.Data.Prod.Basic +warning: ././.lake/packages/mathlib/././Mathlib/Data/Prod/Basic.lean:31:8: `Prod.forall'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Data/Prod/Basic.lean:34:8: `Prod.exists'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Data/Prod/Basic.lean:51:8: `Prod.map_apply'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Data/Prod/Basic.lean:54:8: `Prod.map_fst'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Data/Prod/Basic.lean:57:8: `Prod.map_snd'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +⚠ [235/2462] Replayed Mathlib.Data.Sigma.Basic +warning: ././.lake/packages/mathlib/././Mathlib/Data/Sigma/Basic.lean:90:6: `Sigma.exists'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Data/Sigma/Basic.lean:93:6: `Sigma.forall'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +⚠ [239/2462] Replayed Mathlib.Data.FunLike.Basic +warning: ././.lake/packages/mathlib/././Mathlib/Data/FunLike/Basic.lean:187:8: `DFunLike.ext'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +⚠ [244/2462] Replayed Mathlib.Logic.Relation +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Relation.lean:351:8: `Relation.TransGen.head'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Relation.lean:354:8: `Relation.TransGen.tail'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Relation.lean:444:8: `Relation.TransGen.lift'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Relation.lean:453:6: `Relation.TransGen.closed'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Relation.lean:523:8: `Relation.ReflTransGen.lift'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +⚠ [245/2462] Replayed Mathlib.Logic.Unique +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Unique.lean:131:18: `Unique.subsingleton_unique'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Unique.lean:259:9: `Unique.subtypeEq'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +⚠ [252/2462] Replayed Mathlib.Data.Quot +warning: ././.lake/packages/mathlib/././Mathlib/Data/Quot.lean:558:18: `Quotient.liftOn'_mk''` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Data/Quot.lean:562:14: `Quotient.surjective_liftOn'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Data/Quot.lean:573:18: `Quotient.liftOn₂'_mk''` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Data/Quot.lean:639:8: `Quotient.hrecOn'_mk''` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Data/Quot.lean:652:8: `Quotient.hrecOn₂'_mk''` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Data/Quot.lean:664:8: `Quotient.map'_mk''` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Data/Quot.lean:674:8: `Quotient.map₂'_mk''` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Data/Quot.lean:679:8: `Quotient.exact'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Data/Quot.lean:683:8: `Quotient.sound'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Data/Quot.lean:687:18: `Quotient.eq'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Data/Quot.lean:692:18: `Quotient.eq''` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Data/Quot.lean:701:8: `Quotient.out_eq'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Data/Quot.lean:704:8: `Quotient.mk_out'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +⚠ [256/2462] Replayed Mathlib.Tactic.Lift +warning: ././.lake/packages/mathlib/././Mathlib/Tactic/Lift.lean:49:9: `PiSubtype.canLift'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +⚠ [409/2462] Replayed Mathlib.Algebra.Group.Defs +warning: ././.lake/packages/mathlib/././Mathlib/Algebra/Group/Defs.lean:735:33: `pow_succ'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Algebra/Group/Defs.lean:740:6: `pow_mul_comm'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Algebra/Group/Defs.lean:749:6: `pow_three'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Algebra/Group/Defs.lean:772:6: `pow_mul'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +⚠ [443/2462] Replayed Mathlib.Data.List.Defs +warning: ././.lake/packages/mathlib/././Mathlib/Data/List/Defs.lean:241:9: `List.decidableChain'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +⚠ [474/2462] Replayed Mathlib.Control.Applicative +warning: ././.lake/packages/mathlib/././Mathlib/Control/Applicative.lean:34:8: `Applicative.pure_seq_eq_map'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +⚠ [475/2462] Replayed Mathlib.Control.Traversable.Basic +warning: ././.lake/packages/mathlib/././Mathlib/Control/Traversable/Basic.lean:139:8: `ApplicativeTransformation.preserves_map'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +⚠ [618/2462] Replayed Mathlib.Algebra.GroupWithZero.Defs +warning: ././.lake/packages/mathlib/././Mathlib/Algebra/GroupWithZero/Defs.lean:110:8: `mul_left_inj'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Algebra/GroupWithZero/Defs.lean:113:8: `mul_right_inj'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +⚠ [624/2462] Replayed Mathlib.Algebra.Group.Invertible.Defs +warning: ././.lake/packages/mathlib/././Mathlib/Algebra/Group/Invertible/Defs.lean:97:8: `invOf_mul_self'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Algebra/Group/Invertible/Defs.lean:103:8: `mul_invOf_self'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Algebra/Group/Invertible/Defs.lean:109:8: `invOf_mul_cancel_left'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Algebra/Group/Invertible/Defs.lean:120:8: `mul_invOf_cancel_left'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Algebra/Group/Invertible/Defs.lean:131:8: `invOf_mul_cancel_right'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Algebra/Group/Invertible/Defs.lean:142:8: `mul_invOf_cancel_right'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Algebra/Group/Invertible/Defs.lean:198:8: `invOf_one'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +⚠ [1184/2462] Replayed Mathlib.Control.Traversable.Lemmas +warning: ././.lake/packages/mathlib/././Mathlib/Control/Traversable/Lemmas.lean:87:8: `Traversable.naturality'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Control/Traversable/Lemmas.lean:102:8: `Traversable.traverse_eq_map_id'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Control/Traversable/Lemmas.lean:108:8: `Traversable.traverse_map'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Control/Traversable/Lemmas.lean:113:8: `Traversable.map_traverse'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +⚠ [2407/2462] Replayed Mathlib.Data.List.EditDistance.Defs +warning: ././.lake/packages/mathlib/././Mathlib/Data/List/EditDistance/Defs.lean:214:8: `suffixLevenshtein_nil'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +⚠ [2447/2462] Replayed SSA.Experimental.Bits.Fast.FiniteStateMachine +warning: ././././SSA/Experimental/Bits/Fast/FiniteStateMachine.lean:107:8: declaration uses 'sorry' +warning: ././././SSA/Experimental/Bits/Fast/FiniteStateMachine.lean:825:8: declaration uses 'sorry' +⚠ [2451/2462] Replayed SSA.Experimental.Bits.Fast.Tactic +warning: ././././SSA/Experimental/Bits/Fast/Tactic.lean:340:4: declaration uses 'sorry' +⚠ [2452/2462] Replayed SSA.Experimental.Bits.AutoStructs.ForLean +warning: ././././SSA/Experimental/Bits/AutoStructs/ForLean.lean:24:8: declaration uses 'sorry' +warning: ././././SSA/Experimental/Bits/AutoStructs/ForLean.lean:27:8: declaration uses 'sorry' +warning: ././././SSA/Experimental/Bits/AutoStructs/ForLean.lean:29:8: declaration uses 'sorry' +warning: ././././SSA/Experimental/Bits/AutoStructs/ForLean.lean:31:8: declaration uses 'sorry' +warning: ././././SSA/Experimental/Bits/AutoStructs/ForLean.lean:34:8: declaration uses 'sorry' +warning: ././././SSA/Experimental/Bits/AutoStructs/ForLean.lean:36:8: declaration uses 'sorry' +warning: ././././SSA/Experimental/Bits/AutoStructs/ForLean.lean:38:8: declaration uses 'sorry' +warning: ././././SSA/Experimental/Bits/AutoStructs/ForLean.lean:41:8: declaration uses 'sorry' +warning: ././././SSA/Experimental/Bits/AutoStructs/ForLean.lean:52:8: declaration uses 'sorry' +warning: ././././SSA/Experimental/Bits/AutoStructs/ForLean.lean:56:8: declaration uses 'sorry' +⚠ [2457/2462] Replayed SSA.Experimental.Bits.AutoStructs.Constructions +warning: ././././SSA/Experimental/Bits/AutoStructs/Constructions.lean:55:6: declaration uses 'sorry' +warning: ././././SSA/Experimental/Bits/AutoStructs/Constructions.lean:128:6: declaration uses 'sorry' +warning: ././././SSA/Experimental/Bits/AutoStructs/Constructions.lean:163:6: declaration uses 'sorry' +warning: ././././SSA/Experimental/Bits/AutoStructs/Constructions.lean:197:6: declaration uses 'sorry' +⚠ [2458/2462] Replayed SSA.Experimental.Bits.AutoStructs.FiniteStateMachine +warning: ././././SSA/Experimental/Bits/AutoStructs/FiniteStateMachine.lean:111:8: declaration uses 'sorry' +✖ [2462/2462] Building SSA.Projects.InstCombine.tests.LLVM.gand2 +trace: .> LEAN_PATH=././.lake/packages/batteries/.lake/build/lib:././.lake/packages/Qq/.lake/build/lib:././.lake/packages/aesop/.lake/build/lib:././.lake/packages/proofwidgets/.lake/build/lib:././.lake/packages/Cli/.lake/build/lib:././.lake/packages/importGraph/.lake/build/lib:././.lake/packages/LeanSearchClient/.lake/build/lib:././.lake/packages/mathlib/.lake/build/lib:././.lake/packages/MD4Lean/.lake/build/lib:././.lake/packages/UnicodeBasic/.lake/build/lib:././.lake/packages/BibtexQuery/.lake/build/lib:././.lake/packages/doc-gen4/.lake/build/lib:././.lake/packages/leanwuzla/.lake/build/lib:././.lake/build/lib LD_LIBRARY_PATH= /home/lfrenot/.elan/toolchains/leanprover--lean4---nightly-2024-10-17/bin/lean ././././SSA/Projects/InstCombine/tests/LLVM/gand2.lean -R ./././. -o ././.lake/build/lib/SSA/Projects/InstCombine/tests/LLVM/gand2.olean -i ././.lake/build/lib/SSA/Projects/InstCombine/tests/LLVM/gand2.ilean -c ././.lake/build/ir/SSA/Projects/InstCombine/tests/LLVM/gand2.c --json +info: ././././SSA/Projects/InstCombine/tests/LLVM/gand2.lean:41:17: theorem extracted_1 (x x_1 : BitVec 1) : x_1 &&& x &&& x_1 = x_1 &&& x := sorry +warning: ././././SSA/Projects/InstCombine/tests/LLVM/gand2.lean:31:8: declaration uses 'sorry' +error: ././././SSA/Projects/InstCombine/tests/LLVM/gand2.lean:49:40: cannot convert suffix of i/f to int: false +error: ././././SSA/Projects/InstCombine/tests/LLVM/gand2.lean:58:40: cannot convert suffix of i/f to int: false +error: ././././SSA/Projects/InstCombine/tests/LLVM/gand2.lean:63:30: could not synthesize default value for parameter 'h' using tactics +error: ././././SSA/Projects/InstCombine/tests/LLVM/gand2.lean:63:30: tactic 'rfl' failed, the left-hand side + ⟦?m.29715⟧ +is not definitionally equal to the right-hand side + Option ?m.29713 +test2_logical_before test2_logical_after : Com InstCombine.LLVM ?m.29714 EffectKind.pure ?m.29715 +⊢ ⟦?m.29715⟧ = Option ?m.29713 +info: ././././SSA/Projects/InstCombine/tests/LLVM/gand2.lean:103:17: theorem extracted_1 (x x_1 : BitVec 32) : x_1 &&& (x &&& x_1) = x &&& x_1 := sorry +warning: ././././SSA/Projects/InstCombine/tests/LLVM/gand2.lean:93:8: declaration uses 'sorry' +info: ././././SSA/Projects/InstCombine/tests/LLVM/gand2.lean:136:17: theorem extracted_1 (x : BitVec 64) : + ((if (-signExtend 65 x).msb = (-signExtend 65 x).getMsbD 1 then some (-x) else none).bind fun x' => + some (x' &&& 1#64)) ⊑ + some (x &&& 1#64) := sorry +warning: ././././SSA/Projects/InstCombine/tests/LLVM/gand2.lean:126:8: declaration uses 'sorry' +info: ././././SSA/Projects/InstCombine/tests/LLVM/gand2.lean:172:17: theorem extracted_1 (x : BitVec 64) : + ((if (-signExtend 65 x).msb = (-signExtend 65 x).getMsbD 1 then some (-x) else none).bind fun a => + (if (-signExtend 65 x).msb = (-signExtend 65 x).getMsbD 1 then some (-x) else none).bind fun x => + some (a + (x &&& 1#64))) ⊑ + some (-(x &&& 18446744073709551614#64)) := sorry +warning: ././././SSA/Projects/InstCombine/tests/LLVM/gand2.lean:162:8: declaration uses 'sorry' +info: ././././SSA/Projects/InstCombine/tests/LLVM/gand2.lean:207:17: theorem extracted_1 (x : BitVec 8) : + (Option.bind (if 8#8 ≤ x then none else some (1#8 <<< x.toNat)) fun a => + Option.bind (if 8#8 ≤ x then none else some (1#8 <<< x.toNat)) fun x => some (a + (x &&& 1#8))) ⊑ + (if 1#8 <<< x.toNat >>> x.toNat = 1#8 then none else if 8#8 ≤ x then none else some (1#8 <<< x.toNat)).bind fun a => + (if 1#8 <<< x.toNat >>> x.toNat = 1#8 then none else if 8#8 ≤ x then none else some (1#8 <<< x.toNat)).bind + fun x => if a + (x &&& 1#8) < a ∨ a + (x &&& 1#8) < x &&& 1#8 then none else some (a + (x &&& 1#8)) := sorry +warning: ././././SSA/Projects/InstCombine/tests/LLVM/gand2.lean:197:8: declaration uses 'sorry' +info: ././././SSA/Projects/InstCombine/tests/LLVM/gand2.lean:239:17: theorem extracted_1 (x : BitVec 8) : + (Option.bind (if 8#8 ≤ x then none else some (1#8 >>> x.toNat)) fun x' => some (x' &&& 1#8)) ⊑ + if 8#8 ≤ x then none else some (1#8 >>> x.toNat) := sorry +warning: ././././SSA/Projects/InstCombine/tests/LLVM/gand2.lean:229:8: declaration uses 'sorry' +info: ././././SSA/Projects/InstCombine/tests/LLVM/gand2.lean:273:17: theorem extracted_1 (x : BitVec 8) : + (Option.bind (if 8#8 ≤ x then none else some (1#8 >>> x.toNat)) fun a => + Option.bind (if 8#8 ≤ x then none else some (1#8 >>> x.toNat)) fun x => some (a + (x &&& 1#8))) ⊑ + Option.bind (if 8#8 ≤ x then none else some (1#8 >>> x.toNat)) fun x' => + if (x' <<< 1).sshiftRight 1 = x' then none else if x' <<< 1 >>> 1 = x' then none else some (x' <<< 1) := sorry +warning: ././././SSA/Projects/InstCombine/tests/LLVM/gand2.lean:263:8: declaration uses 'sorry' +info: ././././SSA/Projects/InstCombine/tests/LLVM/gand2.lean:311:17: theorem extracted_1 (x x_1 : BitVec 32) : (x_1 <<< 8 + x &&& 128#32) * x_1 <<< 8 = (x &&& 128#32) * x_1 <<< 8 := sorry +warning: ././././SSA/Projects/InstCombine/tests/LLVM/gand2.lean:301:8: declaration uses 'sorry' +info: ././././SSA/Projects/InstCombine/tests/LLVM/gand2.lean:349:17: theorem extracted_1 (x x_1 : BitVec 32) : (x_1 + x <<< 8 &&& 128#32) * x <<< 8 = (x_1 &&& 128#32) * x <<< 8 := sorry +warning: ././././SSA/Projects/InstCombine/tests/LLVM/gand2.lean:339:8: declaration uses 'sorry' +info: ././././SSA/Projects/InstCombine/tests/LLVM/gand2.lean:387:17: theorem extracted_1 (x x_1 : BitVec 32) : (x_1 - x <<< 8 &&& 128#32) * x <<< 8 = (x_1 &&& 128#32) * x <<< 8 := sorry +warning: ././././SSA/Projects/InstCombine/tests/LLVM/gand2.lean:377:8: declaration uses 'sorry' +info: ././././SSA/Projects/InstCombine/tests/LLVM/gand2.lean:427:17: theorem extracted_1 (x x_1 : BitVec 32) : (x_1 <<< 8 - x &&& 128#32) * x_1 <<< 8 = (-x &&& 128#32) * x_1 <<< 8 := sorry +warning: ././././SSA/Projects/InstCombine/tests/LLVM/gand2.lean:417:8: declaration uses 'sorry' +error: Lean exited with code 1 +Some required builds logged failures: +- SSA.Projects.InstCombine.tests.LLVM.gand2 +error: build failed diff --git a/SSA/Projects/InstCombine/tests/logs/gand_proof.txt b/SSA/Projects/InstCombine/tests/logs/gand_proof.txt new file mode 100644 index 000000000..cdcd45024 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/gand_proof.txt @@ -0,0 +1,452 @@ +⚠ [49/2462] Replayed Mathlib.Logic.Basic +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Basic.lean:155:8: `dec_em'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Basic.lean:159:8: `em'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Basic.lean:304:8: `or_congr_left'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Basic.lean:307:8: `or_congr_right'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Basic.lean:320:8: `imp_or'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Basic.lean:359:8: `xor_iff_not_iff'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Basic.lean:418:8: `eqRec_heq'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Basic.lean:511:8: `forall_true_iff'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Basic.lean:532:8: `exists_apply_eq_apply'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Basic.lean:539:6: `exists_apply_eq_apply2'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Basic.lean:548:6: `exists_apply_eq_apply3'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Basic.lean:575:8: `forall_apply_eq_imp_iff'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Basic.lean:578:8: `forall_eq_apply_imp_iff'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Basic.lean:638:8: `forall_prop_congr'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Basic.lean:711:6: `Classical.choose_eq'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Basic.lean:847:8: `dite_eq_iff'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Basic.lean:851:8: `ite_eq_iff'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +⚠ [66/2462] Replayed Mathlib.Algebra.NeZero +warning: ././.lake/packages/mathlib/././Mathlib/Algebra/NeZero.lean:44:6: `zero_ne_one'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Algebra/NeZero.lean:46:6: `one_ne_zero'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Algebra/NeZero.lean:48:6: `two_ne_zero'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Algebra/NeZero.lean:50:6: `three_ne_zero'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Algebra/NeZero.lean:52:6: `four_ne_zero'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +⚠ [69/2462] Replayed Mathlib.Logic.ExistsUnique +warning: ././.lake/packages/mathlib/././Mathlib/Logic/ExistsUnique.lean:109:16: `exists_unique_eq'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +⚠ [74/2462] Replayed Mathlib.Logic.Function.Basic +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Function/Basic.lean:78:8: `Function.Injective.eq_iff'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Function/Basic.lean:87:8: `Function.Injective.ne_iff'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Function/Basic.lean:117:8: `Function.Injective.of_comp_iff'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Function/Basic.lean:163:8: `Function.Surjective.of_comp_iff'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Function/Basic.lean:237:8: `Function.Bijective.of_comp_iff'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Function/Basic.lean:541:8: `Function.update_comp_eq_of_forall_ne'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Function/Basic.lean:552:8: `Function.update_comp_eq_of_injective'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Function/Basic.lean:649:8: `Function.extend_apply'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Function/Basic.lean:681:8: `Function.Injective.surjective_comp_right'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +⚠ [94/2462] Replayed Mathlib.Control.Combinators +warning: ././.lake/packages/mathlib/././Mathlib/Control/Combinators.lean:35:4: `Monad.mapM'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Control/Combinators.lean:57:4: `Monad.sequence'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +⚠ [96/2462] Replayed Mathlib.Logic.IsEmpty +warning: ././.lake/packages/mathlib/././Mathlib/Logic/IsEmpty.lean:36:9: `Fin.isEmpty'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +⚠ [229/2462] Replayed Mathlib.Data.Prod.PProd +warning: ././.lake/packages/mathlib/././Mathlib/Data/Prod/PProd.lean:35:8: `PProd.forall'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Data/Prod/PProd.lean:38:8: `PProd.exists'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +⚠ [230/2462] Replayed Mathlib.Data.Bool.Basic +warning: ././.lake/packages/mathlib/././Mathlib/Data/Bool/Basic.lean:156:8: `Bool.eq_true_of_not_eq_false'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Data/Bool/Basic.lean:159:8: `Bool.eq_false_of_not_eq_true'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +⚠ [232/2462] Replayed Mathlib.Logic.Function.Iterate +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Function/Iterate.lean:160:8: `Function.iterate_succ'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Function/Iterate.lean:163:8: `Function.iterate_succ_apply'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +⚠ [234/2462] Replayed Mathlib.Data.Prod.Basic +warning: ././.lake/packages/mathlib/././Mathlib/Data/Prod/Basic.lean:31:8: `Prod.forall'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Data/Prod/Basic.lean:34:8: `Prod.exists'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Data/Prod/Basic.lean:51:8: `Prod.map_apply'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Data/Prod/Basic.lean:54:8: `Prod.map_fst'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Data/Prod/Basic.lean:57:8: `Prod.map_snd'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +⚠ [235/2462] Replayed Mathlib.Data.Sigma.Basic +warning: ././.lake/packages/mathlib/././Mathlib/Data/Sigma/Basic.lean:90:6: `Sigma.exists'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Data/Sigma/Basic.lean:93:6: `Sigma.forall'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +⚠ [239/2462] Replayed Mathlib.Data.FunLike.Basic +warning: ././.lake/packages/mathlib/././Mathlib/Data/FunLike/Basic.lean:187:8: `DFunLike.ext'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +⚠ [244/2462] Replayed Mathlib.Logic.Relation +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Relation.lean:351:8: `Relation.TransGen.head'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Relation.lean:354:8: `Relation.TransGen.tail'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Relation.lean:444:8: `Relation.TransGen.lift'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Relation.lean:453:6: `Relation.TransGen.closed'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Relation.lean:523:8: `Relation.ReflTransGen.lift'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +⚠ [245/2462] Replayed Mathlib.Logic.Unique +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Unique.lean:131:18: `Unique.subsingleton_unique'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Unique.lean:259:9: `Unique.subtypeEq'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +⚠ [252/2462] Replayed Mathlib.Data.Quot +warning: ././.lake/packages/mathlib/././Mathlib/Data/Quot.lean:558:18: `Quotient.liftOn'_mk''` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Data/Quot.lean:562:14: `Quotient.surjective_liftOn'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Data/Quot.lean:573:18: `Quotient.liftOn₂'_mk''` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Data/Quot.lean:639:8: `Quotient.hrecOn'_mk''` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Data/Quot.lean:652:8: `Quotient.hrecOn₂'_mk''` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Data/Quot.lean:664:8: `Quotient.map'_mk''` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Data/Quot.lean:674:8: `Quotient.map₂'_mk''` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Data/Quot.lean:679:8: `Quotient.exact'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Data/Quot.lean:683:8: `Quotient.sound'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Data/Quot.lean:687:18: `Quotient.eq'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Data/Quot.lean:692:18: `Quotient.eq''` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Data/Quot.lean:701:8: `Quotient.out_eq'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Data/Quot.lean:704:8: `Quotient.mk_out'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +⚠ [256/2462] Replayed Mathlib.Tactic.Lift +warning: ././.lake/packages/mathlib/././Mathlib/Tactic/Lift.lean:49:9: `PiSubtype.canLift'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +⚠ [409/2462] Replayed Mathlib.Algebra.Group.Defs +warning: ././.lake/packages/mathlib/././Mathlib/Algebra/Group/Defs.lean:735:33: `pow_succ'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Algebra/Group/Defs.lean:740:6: `pow_mul_comm'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Algebra/Group/Defs.lean:749:6: `pow_three'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Algebra/Group/Defs.lean:772:6: `pow_mul'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +⚠ [443/2462] Replayed Mathlib.Data.List.Defs +warning: ././.lake/packages/mathlib/././Mathlib/Data/List/Defs.lean:241:9: `List.decidableChain'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +⚠ [474/2462] Replayed Mathlib.Control.Applicative +warning: ././.lake/packages/mathlib/././Mathlib/Control/Applicative.lean:34:8: `Applicative.pure_seq_eq_map'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +⚠ [475/2462] Replayed Mathlib.Control.Traversable.Basic +warning: ././.lake/packages/mathlib/././Mathlib/Control/Traversable/Basic.lean:139:8: `ApplicativeTransformation.preserves_map'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +⚠ [618/2462] Replayed Mathlib.Algebra.GroupWithZero.Defs +warning: ././.lake/packages/mathlib/././Mathlib/Algebra/GroupWithZero/Defs.lean:110:8: `mul_left_inj'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Algebra/GroupWithZero/Defs.lean:113:8: `mul_right_inj'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +⚠ [624/2462] Replayed Mathlib.Algebra.Group.Invertible.Defs +warning: ././.lake/packages/mathlib/././Mathlib/Algebra/Group/Invertible/Defs.lean:97:8: `invOf_mul_self'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Algebra/Group/Invertible/Defs.lean:103:8: `mul_invOf_self'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Algebra/Group/Invertible/Defs.lean:109:8: `invOf_mul_cancel_left'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Algebra/Group/Invertible/Defs.lean:120:8: `mul_invOf_cancel_left'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Algebra/Group/Invertible/Defs.lean:131:8: `invOf_mul_cancel_right'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Algebra/Group/Invertible/Defs.lean:142:8: `mul_invOf_cancel_right'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Algebra/Group/Invertible/Defs.lean:198:8: `invOf_one'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +⚠ [1184/2462] Replayed Mathlib.Control.Traversable.Lemmas +warning: ././.lake/packages/mathlib/././Mathlib/Control/Traversable/Lemmas.lean:87:8: `Traversable.naturality'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Control/Traversable/Lemmas.lean:102:8: `Traversable.traverse_eq_map_id'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Control/Traversable/Lemmas.lean:108:8: `Traversable.traverse_map'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Control/Traversable/Lemmas.lean:113:8: `Traversable.map_traverse'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +⚠ [2407/2462] Replayed Mathlib.Data.List.EditDistance.Defs +warning: ././.lake/packages/mathlib/././Mathlib/Data/List/EditDistance/Defs.lean:214:8: `suffixLevenshtein_nil'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +⚠ [2447/2462] Replayed SSA.Experimental.Bits.Fast.FiniteStateMachine +warning: ././././SSA/Experimental/Bits/Fast/FiniteStateMachine.lean:107:8: declaration uses 'sorry' +warning: ././././SSA/Experimental/Bits/Fast/FiniteStateMachine.lean:825:8: declaration uses 'sorry' +⚠ [2451/2462] Replayed SSA.Experimental.Bits.Fast.Tactic +warning: ././././SSA/Experimental/Bits/Fast/Tactic.lean:340:4: declaration uses 'sorry' +⚠ [2452/2462] Replayed SSA.Experimental.Bits.AutoStructs.ForLean +warning: ././././SSA/Experimental/Bits/AutoStructs/ForLean.lean:24:8: declaration uses 'sorry' +warning: ././././SSA/Experimental/Bits/AutoStructs/ForLean.lean:27:8: declaration uses 'sorry' +warning: ././././SSA/Experimental/Bits/AutoStructs/ForLean.lean:29:8: declaration uses 'sorry' +warning: ././././SSA/Experimental/Bits/AutoStructs/ForLean.lean:31:8: declaration uses 'sorry' +warning: ././././SSA/Experimental/Bits/AutoStructs/ForLean.lean:34:8: declaration uses 'sorry' +warning: ././././SSA/Experimental/Bits/AutoStructs/ForLean.lean:36:8: declaration uses 'sorry' +warning: ././././SSA/Experimental/Bits/AutoStructs/ForLean.lean:38:8: declaration uses 'sorry' +warning: ././././SSA/Experimental/Bits/AutoStructs/ForLean.lean:41:8: declaration uses 'sorry' +warning: ././././SSA/Experimental/Bits/AutoStructs/ForLean.lean:52:8: declaration uses 'sorry' +warning: ././././SSA/Experimental/Bits/AutoStructs/ForLean.lean:56:8: declaration uses 'sorry' +⚠ [2457/2462] Replayed SSA.Experimental.Bits.AutoStructs.Constructions +warning: ././././SSA/Experimental/Bits/AutoStructs/Constructions.lean:55:6: declaration uses 'sorry' +warning: ././././SSA/Experimental/Bits/AutoStructs/Constructions.lean:128:6: declaration uses 'sorry' +warning: ././././SSA/Experimental/Bits/AutoStructs/Constructions.lean:163:6: declaration uses 'sorry' +warning: ././././SSA/Experimental/Bits/AutoStructs/Constructions.lean:197:6: declaration uses 'sorry' +⚠ [2458/2462] Replayed SSA.Experimental.Bits.AutoStructs.FiniteStateMachine +warning: ././././SSA/Experimental/Bits/AutoStructs/FiniteStateMachine.lean:111:8: declaration uses 'sorry' +✖ [2462/2462] Building SSA.Projects.InstCombine.tests.LLVM.gand +trace: .> LEAN_PATH=././.lake/packages/batteries/.lake/build/lib:././.lake/packages/Qq/.lake/build/lib:././.lake/packages/aesop/.lake/build/lib:././.lake/packages/proofwidgets/.lake/build/lib:././.lake/packages/Cli/.lake/build/lib:././.lake/packages/importGraph/.lake/build/lib:././.lake/packages/LeanSearchClient/.lake/build/lib:././.lake/packages/mathlib/.lake/build/lib:././.lake/packages/MD4Lean/.lake/build/lib:././.lake/packages/UnicodeBasic/.lake/build/lib:././.lake/packages/BibtexQuery/.lake/build/lib:././.lake/packages/doc-gen4/.lake/build/lib:././.lake/packages/leanwuzla/.lake/build/lib:././.lake/build/lib LD_LIBRARY_PATH= /home/lfrenot/.elan/toolchains/leanprover--lean4---nightly-2024-10-17/bin/lean ././././SSA/Projects/InstCombine/tests/LLVM/gand.lean -R ./././. -o ././.lake/build/lib/SSA/Projects/InstCombine/tests/LLVM/gand.olean -i ././.lake/build/lib/SSA/Projects/InstCombine/tests/LLVM/gand.ilean -c ././.lake/build/ir/SSA/Projects/InstCombine/tests/LLVM/gand.c --json +info: ././././SSA/Projects/InstCombine/tests/LLVM/gand.lean:43:17: theorem extracted_1 (x : BitVec 32) : + (Option.bind (if 32#32 ≤ x then none else some (4#32 <<< x.toNat)) fun x' => some (x' &&& 1#32)) ⊑ some 0#32 := sorry +warning: ././././SSA/Projects/InstCombine/tests/LLVM/gand.lean:33:8: declaration uses 'sorry' +info: ././././SSA/Projects/InstCombine/tests/LLVM/gand.lean:75:17: theorem extracted_1 (x : BitVec 32) : + (Option.bind (if 32#32 ≤ x then none else some (4294967292#32 <<< x.toNat)) fun x' => some (x' &&& 1#32)) ⊑ + some 0#32 := sorry +warning: ././././SSA/Projects/InstCombine/tests/LLVM/gand.lean:65:8: declaration uses 'sorry' +info: ././././SSA/Projects/InstCombine/tests/LLVM/gand.lean:134:17: theorem extracted_1 (x : BitVec 32) : x &&& 4294967295#32 = x := sorry +warning: ././././SSA/Projects/InstCombine/tests/LLVM/gand.lean:124:8: declaration uses 'sorry' +error: ././././SSA/Projects/InstCombine/tests/LLVM/gand.lean:142:40: cannot convert suffix of i/f to int: false +error: ././././SSA/Projects/InstCombine/tests/LLVM/gand.lean:150:40: cannot convert suffix of i/f to int: false +error: ././././SSA/Projects/InstCombine/tests/LLVM/gand.lean:154:22: could not synthesize default value for parameter 'h' using tactics +error: ././././SSA/Projects/InstCombine/tests/LLVM/gand.lean:154:22: tactic 'rfl' failed, the left-hand side + ⟦?m.93654⟧ +is not definitionally equal to the right-hand side + Option ?m.93652 +test3_before test3_after : Com InstCombine.LLVM ?m.93653 EffectKind.pure ?m.93654 +⊢ ⟦?m.93654⟧ = Option ?m.93652 +error: ././././SSA/Projects/InstCombine/tests/LLVM/gand.lean:172:40: cannot convert suffix of i/f to int: false +error: ././././SSA/Projects/InstCombine/tests/LLVM/gand.lean:180:40: cannot convert suffix of i/f to int: false +error: ././././SSA/Projects/InstCombine/tests/LLVM/gand.lean:184:30: could not synthesize default value for parameter 'h' using tactics +error: ././././SSA/Projects/InstCombine/tests/LLVM/gand.lean:184:30: tactic 'rfl' failed, the left-hand side + ⟦?m.95439⟧ +is not definitionally equal to the right-hand side + Option ?m.95437 +test3_logical_before test3_logical_after : Com InstCombine.LLVM ?m.95438 EffectKind.pure ?m.95439 +⊢ ⟦?m.95439⟧ = Option ?m.95437 +error: ././././SSA/Projects/InstCombine/tests/LLVM/gand.lean:202:40: expected i or f, found: true +error: ././././SSA/Projects/InstCombine/tests/LLVM/gand.lean:214:2: tactic 'unfold' failed to unfold 'test4_before' at + (test4_before ⊑ test4_after) ⋯ +error: ././././SSA/Projects/InstCombine/tests/LLVM/gand.lean:231:40: expected i or f, found: true +error: ././././SSA/Projects/InstCombine/tests/LLVM/gand.lean:232:40: cannot convert suffix of i/f to int: false +error: ././././SSA/Projects/InstCombine/tests/LLVM/gand.lean:244:2: tactic 'unfold' failed to unfold 'test4_logical_before' at + (test4_logical_before ⊑ test4_logical_after) ⋯ +error: ././././SSA/Projects/InstCombine/tests/LLVM/gand.lean:317:40: cannot convert suffix of i/f to int: false +error: ././././SSA/Projects/InstCombine/tests/LLVM/gand.lean:329:2: tactic 'unfold' failed to unfold 'test6_logical_before' at + (test6_logical_before ⊑ test6_logical_after) ⋯ +info: ././././SSA/Projects/InstCombine/tests/LLVM/gand.lean:369:17: theorem extracted_1 (x : BitVec 32) : x &&& (x ^^^ 4294967295#32) = 0#32 := sorry +warning: ././././SSA/Projects/InstCombine/tests/LLVM/gand.lean:359:8: declaration uses 'sorry' +info: ././././SSA/Projects/InstCombine/tests/LLVM/gand.lean:401:17: theorem extracted_1 (x : BitVec 8) : x &&& 3#8 &&& 4#8 = 0#8 := sorry +warning: ././././SSA/Projects/InstCombine/tests/LLVM/gand.lean:391:8: declaration uses 'sorry' +info: ././././SSA/Projects/InstCombine/tests/LLVM/gand.lean:435:17: theorem extracted_1 (x : BitVec 32) : (x &&& 12#32 ^^^ 15#32) &&& 1#32 = 1#32 := sorry +warning: ././././SSA/Projects/InstCombine/tests/LLVM/gand.lean:425:8: declaration uses 'sorry' +info: ././././SSA/Projects/InstCombine/tests/LLVM/gand.lean:467:17: theorem extracted_1 (x : BitVec 8) : x >>> 7 &&& 2#8 = 0#8 := sorry +warning: ././././SSA/Projects/InstCombine/tests/LLVM/gand.lean:457:8: declaration uses 'sorry' +info: ././././SSA/Projects/InstCombine/tests/LLVM/gand.lean:499:17: theorem extracted_1 (x : BitVec 8) : x <<< 2 &&& 3#8 = 0#8 := sorry +warning: ././././SSA/Projects/InstCombine/tests/LLVM/gand.lean:489:8: declaration uses 'sorry' +info: ././././SSA/Projects/InstCombine/tests/LLVM/gand.lean:532:17: theorem extracted_1 (x : BitVec 32) : x <<< 3 &&& 4294967294#32 = x <<< 3 := sorry +warning: ././././SSA/Projects/InstCombine/tests/LLVM/gand.lean:522:8: declaration uses 'sorry' +info: ././././SSA/Projects/InstCombine/tests/LLVM/gand.lean:565:17: theorem extracted_1 (x : BitVec 8) : x >>> 7 &&& 1#8 = x >>> 7 := sorry +warning: ././././SSA/Projects/InstCombine/tests/LLVM/gand.lean:555:8: declaration uses 'sorry' +info: ././././SSA/Projects/InstCombine/tests/LLVM/gand.lean:600:17: theorem extracted_1 (x : BitVec 8) : ((x &&& 4#8) - 16#8 &&& 240#8) + 16#8 = 0#8 := sorry +warning: ././././SSA/Projects/InstCombine/tests/LLVM/gand.lean:590:8: declaration uses 'sorry' +info: ././././SSA/Projects/InstCombine/tests/LLVM/gand.lean:633:17: theorem extracted_1 (x : BitVec 32) : x.sshiftRight 24 &&& 255#32 = x >>> 24 := sorry +warning: ././././SSA/Projects/InstCombine/tests/LLVM/gand.lean:623:8: declaration uses 'sorry' +info: ././././SSA/Projects/InstCombine/tests/LLVM/gand.lean:667:17: theorem extracted_1 (x : BitVec 32) : (x &&& 16#32) >>> 2 &&& 1#32 = 0#32 := sorry +warning: ././././SSA/Projects/InstCombine/tests/LLVM/gand.lean:657:8: declaration uses 'sorry' +info: ././././SSA/Projects/InstCombine/tests/LLVM/gand.lean:702:17: theorem extracted_1 (x : BitVec 32) : x &&& 4294967294#32 ||| x &&& 1#32 ^^^ 1#32 = x ^^^ 1#32 := sorry +warning: ././././SSA/Projects/InstCombine/tests/LLVM/gand.lean:692:8: declaration uses 'sorry' +info: ././././SSA/Projects/InstCombine/tests/LLVM/gand.lean:737:17: theorem extracted_1 (x : BitVec 32) : x &&& 1#32 ^^^ 1#32 ||| x &&& 4294967294#32 = x ^^^ 1#32 := sorry +warning: ././././SSA/Projects/InstCombine/tests/LLVM/gand.lean:727:8: declaration uses 'sorry' +info: ././././SSA/Projects/InstCombine/tests/LLVM/gand.lean:766:17: theorem extracted_1 (x x_1 : BitVec 32) : (x_1 ||| x) &&& x_1 = x_1 := sorry +warning: ././././SSA/Projects/InstCombine/tests/LLVM/gand.lean:756:8: declaration uses 'sorry' +info: ././././SSA/Projects/InstCombine/tests/LLVM/gand.lean:801:17: theorem extracted_1 (x : BitVec 1) : + (Option.bind + (match some x with + | none => none + | some { toFin := ⟨1, ⋯⟩ } => some 1000#32 + | some { toFin := ⟨0, ⋯⟩ } => some 10#32) + fun x' => some (x' &&& 123#32)) ⊑ + match some x with + | none => none + | some { toFin := ⟨1, ⋯⟩ } => some 104#32 + | some { toFin := ⟨0, ⋯⟩ } => some 10#32 := sorry +warning: ././././SSA/Projects/InstCombine/tests/LLVM/gand.lean:791:8: declaration uses 'sorry' +info: ././././SSA/Projects/InstCombine/tests/LLVM/gand.lean:836:17: theorem extracted_1 (x x_1 x_2 : BitVec 32) : + (x_2 ^^^ 4294967295#32 ^^^ x_1 * x) &&& (x_2 ||| x_1 * x) = x_1 * x &&& x_2 := sorry +warning: ././././SSA/Projects/InstCombine/tests/LLVM/gand.lean:826:8: declaration uses 'sorry' +info: ././././SSA/Projects/InstCombine/tests/LLVM/gand.lean:871:17: theorem extracted_1 (x x_1 x_2 : BitVec 32) : + (x_2 ||| x_1 * x) &&& (x_2 ^^^ 4294967295#32 ^^^ x_1 * x) = x_1 * x &&& x_2 := sorry +warning: ././././SSA/Projects/InstCombine/tests/LLVM/gand.lean:861:8: declaration uses 'sorry' +info: ././././SSA/Projects/InstCombine/tests/LLVM/gand.lean:903:17: theorem extracted_1 (x x_1 : BitVec 32) : (x_1 ^^^ 4294967295#32 ||| x) &&& x_1 = x &&& x_1 := sorry +warning: ././././SSA/Projects/InstCombine/tests/LLVM/gand.lean:893:8: declaration uses 'sorry' +info: ././././SSA/Projects/InstCombine/tests/LLVM/gand.lean:935:17: theorem extracted_1 (x x_1 : BitVec 32) : (x_1 ||| x ^^^ 4294967295#32) &&& x = x_1 &&& x := sorry +warning: ././././SSA/Projects/InstCombine/tests/LLVM/gand.lean:925:8: declaration uses 'sorry' +info: ././././SSA/Projects/InstCombine/tests/LLVM/gand.lean:967:17: theorem extracted_1 (x x_1 : BitVec 32) : x_1 &&& (x_1 ^^^ 4294967295#32 ||| x) = x_1 &&& x := sorry +warning: ././././SSA/Projects/InstCombine/tests/LLVM/gand.lean:957:8: declaration uses 'sorry' +info: ././././SSA/Projects/InstCombine/tests/LLVM/gand.lean:999:17: theorem extracted_1 (x x_1 : BitVec 32) : x_1 &&& (x ||| x_1 ^^^ 4294967295#32) = x_1 &&& x := sorry +warning: ././././SSA/Projects/InstCombine/tests/LLVM/gand.lean:989:8: declaration uses 'sorry' +info: ././././SSA/Projects/InstCombine/tests/LLVM/gand.lean:1032:17: theorem extracted_1 (x : BitVec 8) : x + 192#8 &&& 63#8 = x &&& 63#8 := sorry +warning: ././././SSA/Projects/InstCombine/tests/LLVM/gand.lean:1022:8: declaration uses 'sorry' +info: ././././SSA/Projects/InstCombine/tests/LLVM/gand.lean:1065:17: theorem extracted_1 (x : BitVec 8) : x + 16#8 &&& 16#8 = x &&& 16#8 ^^^ 16#8 := sorry +warning: ././././SSA/Projects/InstCombine/tests/LLVM/gand.lean:1055:8: declaration uses 'sorry' +info: ././././SSA/Projects/InstCombine/tests/LLVM/gand.lean:1102:17: theorem extracted_1 (x x_1 : BitVec 8) : + (x_1.sshiftRight 6 ^^^ 255#8) &&& x = x &&& (x_1.sshiftRight 6 ^^^ 255#8) := sorry +warning: ././././SSA/Projects/InstCombine/tests/LLVM/gand.lean:1092:8: declaration uses 'sorry' +info: ././././SSA/Projects/InstCombine/tests/LLVM/gand.lean:1139:17: theorem extracted_1 (x x_1 : BitVec 8) : (x_1 >>> 7 ^^^ 255#8) &&& x = x &&& (x_1 >>> 7 ^^^ 255#8) := sorry +warning: ././././SSA/Projects/InstCombine/tests/LLVM/gand.lean:1129:8: declaration uses 'sorry' +info: ././././SSA/Projects/InstCombine/tests/LLVM/gand.lean:1173:17: theorem extracted_1 (x : BitVec 16) : + (Option.bind (if 16#16 ≤ x then none else some (4096#16 <<< x.toNat)) fun x => some (x >>> 6 &&& 8#16)) ⊑ + some 0#16 := sorry +warning: ././././SSA/Projects/InstCombine/tests/LLVM/gand.lean:1163:8: declaration uses 'sorry' +info: ././././SSA/Projects/InstCombine/tests/LLVM/gand.lean:1207:17: theorem extracted_1 (x : BitVec 16) : + (Option.bind (if 16#16 ≤ x then none else some (8#16 <<< x.toNat)) fun x => some (x >>> 6 &&& 32768#16)) ⊑ + some 0#16 := sorry +warning: ././././SSA/Projects/InstCombine/tests/LLVM/gand.lean:1197:8: declaration uses 'sorry' +info: ././././SSA/Projects/InstCombine/tests/LLVM/gand.lean:1244:17: theorem extracted_1 (x : BitVec 16) : + (Option.bind (if 16#16 ≤ x then none else some (2047#16 >>> x.toNat)) fun x => some (x >>> 6 &&& 4#16)) ⊑ + Option.bind (if 16#16 ≤ x then none else some (31#16 >>> x.toNat)) fun x' => some (x' &&& 4#16) := sorry +warning: ././././SSA/Projects/InstCombine/tests/LLVM/gand.lean:1234:8: declaration uses 'sorry' +info: ././././SSA/Projects/InstCombine/tests/LLVM/gand.lean:1281:17: theorem extracted_1 (x : BitVec 16) : + (Option.bind (if 16#16 ≤ x then none else some (8192#16 >>> x.toNat)) fun x => some (x >>> 6 &&& 3#16)) ⊑ + Option.bind (if 16#16 ≤ x then none else some (128#16 >>> x.toNat)) fun x' => some (x' &&& 3#16) := sorry +warning: ././././SSA/Projects/InstCombine/tests/LLVM/gand.lean:1271:8: declaration uses 'sorry' +info: ././././SSA/Projects/InstCombine/tests/LLVM/gand.lean:1315:17: theorem extracted_1 (x : BitVec 16) : + (Option.bind (if 16#16 ≤ x then none else some (32768#16 >>> x.toNat)) fun x => some (x >>> 15 &&& 4#16)) ⊑ + some 0#16 := sorry +warning: ././././SSA/Projects/InstCombine/tests/LLVM/gand.lean:1305:8: declaration uses 'sorry' +info: ././././SSA/Projects/InstCombine/tests/LLVM/gand.lean:1349:17: theorem extracted_1 (x : BitVec 16) : + (Option.bind (if 16#16 ≤ x then none else some (8192#16 >>> x.toNat)) fun x => some (x <<< 6 &&& 32#16)) ⊑ + some 0#16 := sorry +warning: ././././SSA/Projects/InstCombine/tests/LLVM/gand.lean:1339:8: declaration uses 'sorry' +info: ././././SSA/Projects/InstCombine/tests/LLVM/gand.lean:1384:17: theorem extracted_1 (x : BitVec 32) : x + 16#32 &&& 24#32 = x &&& 24#32 ^^^ 16#32 := sorry +warning: ././././SSA/Projects/InstCombine/tests/LLVM/gand.lean:1374:8: declaration uses 'sorry' +info: ././././SSA/Projects/InstCombine/tests/LLVM/gand.lean:1421:17: theorem extracted_1 (x x_1 : BitVec 32) : (x_1 + 16#32 ||| x) &&& 24#32 = (x_1 ^^^ 16#32 ||| x) &&& 24#32 := sorry +warning: ././././SSA/Projects/InstCombine/tests/LLVM/gand.lean:1411:8: declaration uses 'sorry' +error: Lean exited with code 1 +Some required builds logged failures: +- SSA.Projects.InstCombine.tests.LLVM.gand +error: build failed diff --git a/SSA/Projects/InstCombine/tests/logs/gandhxorhor.txt b/SSA/Projects/InstCombine/tests/logs/gandhxorhor.txt deleted file mode 100644 index c3b910ba7..000000000 --- a/SSA/Projects/InstCombine/tests/logs/gandhxorhor.txt +++ /dev/null @@ -1,596 +0,0 @@ -error: build failed -⚠ [2443/2457] Replayed SSA.Experimental.Bits.Fast.FiniteStateMachine -warning: ././././SSA/Experimental/Bits/Fast/FiniteStateMachine.lean:107:8: declaration uses 'sorry' -warning: ././././SSA/Experimental/Bits/Fast/FiniteStateMachine.lean:825:8: declaration uses 'sorry' -⚠ [2447/2457] Replayed SSA.Experimental.Bits.Fast.Tactic -warning: ././././SSA/Experimental/Bits/Fast/Tactic.lean:340:4: declaration uses 'sorry' -⚠ [2451/2457] Replayed SSA.Experimental.Bits.AutoStructs.Basic -warning: ././././SSA/Experimental/Bits/AutoStructs/Basic.lean:99:8: declaration uses 'sorry' -warning: ././././SSA/Experimental/Bits/AutoStructs/Basic.lean:102:8: declaration uses 'sorry' -warning: ././././SSA/Experimental/Bits/AutoStructs/Basic.lean:104:8: declaration uses 'sorry' -warning: ././././SSA/Experimental/Bits/AutoStructs/Basic.lean:106:8: declaration uses 'sorry' -warning: ././././SSA/Experimental/Bits/AutoStructs/Basic.lean:109:8: declaration uses 'sorry' -warning: ././././SSA/Experimental/Bits/AutoStructs/Basic.lean:111:8: declaration uses 'sorry' -warning: ././././SSA/Experimental/Bits/AutoStructs/Basic.lean:113:8: declaration uses 'sorry' -warning: ././././SSA/Experimental/Bits/AutoStructs/Basic.lean:116:8: declaration uses 'sorry' -warning: ././././SSA/Experimental/Bits/AutoStructs/Basic.lean:127:8: declaration uses 'sorry' -warning: ././././SSA/Experimental/Bits/AutoStructs/Basic.lean:164:8: declaration uses 'sorry' -warning: ././././SSA/Experimental/Bits/AutoStructs/Basic.lean:335:6: declaration uses 'sorry' -warning: ././././SSA/Experimental/Bits/AutoStructs/Basic.lean:408:6: declaration uses 'sorry' -warning: ././././SSA/Experimental/Bits/AutoStructs/Basic.lean:443:6: declaration uses 'sorry' -warning: ././././SSA/Experimental/Bits/AutoStructs/Basic.lean:477:6: declaration uses 'sorry' -⚠ [2453/2457] Replayed SSA.Experimental.Bits.AutoStructs.FiniteStateMachine -warning: ././././SSA/Experimental/Bits/AutoStructs/FiniteStateMachine.lean:24:38: structure ... :=' has been deprecated in favor of 'structure ... where'. -note: this linter can be disabled with `set_option linter.deprecated false` -warning: ././././SSA/Experimental/Bits/AutoStructs/FiniteStateMachine.lean:111:8: declaration uses 'sorry' -warning: ././././SSA/Experimental/Bits/AutoStructs/FiniteStateMachine.lean:511:59: structure ... :=' has been deprecated in favor of 'structure ... where'. -note: this linter can be disabled with `set_option linter.deprecated false` -✖ [2457/2457] Building SSA.Projects.InstCombine.tests.LLVM.gandhxorhor -trace: .> LEAN_PATH=././.lake/packages/batteries/.lake/build/lib:././.lake/packages/Qq/.lake/build/lib:././.lake/packages/aesop/.lake/build/lib:././.lake/packages/proofwidgets/.lake/build/lib:././.lake/packages/Cli/.lake/build/lib:././.lake/packages/importGraph/.lake/build/lib:././.lake/packages/LeanSearchClient/.lake/build/lib:././.lake/packages/mathlib/.lake/build/lib:././.lake/packages/MD4Lean/.lake/build/lib:././.lake/packages/UnicodeBasic/.lake/build/lib:././.lake/packages/BibtexQuery/.lake/build/lib:././.lake/packages/doc-gen4/.lake/build/lib:././.lake/packages/leanwuzla/.lake/build/lib:././.lake/build/lib LD_LIBRARY_PATH= /home/lfrenot/.elan/toolchains/leanprover--lean4---nightly-2024-10-15/bin/lean ././././SSA/Projects/InstCombine/tests/LLVM/gandhxorhor.lean -R ./././. -o ././.lake/build/lib/SSA/Projects/InstCombine/tests/LLVM/gandhxorhor.olean -i ././.lake/build/lib/SSA/Projects/InstCombine/tests/LLVM/gandhxorhor.ilean -c ././.lake/build/ir/SSA/Projects/InstCombine/tests/LLVM/gandhxorhor.c --json -info: ././././SSA/Projects/InstCombine/tests/LLVM/gandhxorhor.lean:43:17: theorem extracted_1 (x x_1 : BitVec 32) : (x_1 ^^^ (x ^^^ 4294967295#32)) &&& x_1 = x_1 &&& x := sorry -warning: ././././SSA/Projects/InstCombine/tests/LLVM/gandhxorhor.lean:33:8: declaration uses 'sorry' -info: ././././SSA/Projects/InstCombine/tests/LLVM/gandhxorhor.lean:75:17: theorem extracted_1 (x x_1 : BitVec 32) : (x_1 ^^^ x ^^^ 4294967295#32) &&& x = x &&& x_1 := sorry -warning: ././././SSA/Projects/InstCombine/tests/LLVM/gandhxorhor.lean:65:8: declaration uses 'sorry' -info: ././././SSA/Projects/InstCombine/tests/LLVM/gandhxorhor.lean:137:17: theorem extracted_1 (x x_1 : BitVec 64) : x_1 &&& x ||| x_1 ^^^ x = x_1 ||| x := sorry -warning: ././././SSA/Projects/InstCombine/tests/LLVM/gandhxorhor.lean:127:8: declaration uses 'sorry' -info: ././././SSA/Projects/InstCombine/tests/LLVM/gandhxorhor.lean:171:17: theorem extracted_1 (x x_1 x_2 x_3 : BitVec 8) : - (Option.bind (if 8#8 ≤ x_2 then none else some (x_3 <<< x_2.toNat)) fun a => - Option.bind (if 8#8 ≤ x_2 then none else some (x_1 <<< x_2.toNat)) fun a_1 => some (a &&& (a_1 &&& x))) ⊑ - Option.bind (if 8#8 ≤ x_2 then none else some ((x_1 &&& x_3) <<< x_2.toNat)) fun a => some (a &&& x) := sorry -warning: ././././SSA/Projects/InstCombine/tests/LLVM/gandhxorhor.lean:161:8: declaration uses 'sorry' -info: ././././SSA/Projects/InstCombine/tests/LLVM/gandhxorhor.lean:205:17: theorem extracted_1 (x x_1 x_2 x_3 : BitVec 8) : - (Option.bind (if 8#8 ≤ x_2 then none else some (x_3 <<< x_2.toNat)) fun a => - Option.bind (if 8#8 ≤ x_2 then none else some (x <<< x_2.toNat)) fun y' => some (a ||| x_1 ||| y')) ⊑ - Option.bind (if 8#8 ≤ x_2 then none else some ((x_3 ||| x) <<< x_2.toNat)) fun a => some (a ||| x_1) := sorry -warning: ././././SSA/Projects/InstCombine/tests/LLVM/gandhxorhor.lean:195:8: declaration uses 'sorry' -info: ././././SSA/Projects/InstCombine/tests/LLVM/gandhxorhor.lean:239:17: theorem extracted_1 (x x_1 x_2 x_3 : BitVec 8) : - (Option.bind (if 8#8 ≤ x_2 then none else some (x_3 >>> x_2.toNat)) fun a => - Option.bind (if 8#8 ≤ x_2 then none else some (x_1 >>> x_2.toNat)) fun a_1 => some (a ||| (a_1 ||| x))) ⊑ - Option.bind (if 8#8 ≤ x_2 then none else some ((x_1 ||| x_3) >>> x_2.toNat)) fun a => some (a ||| x) := sorry -warning: ././././SSA/Projects/InstCombine/tests/LLVM/gandhxorhor.lean:229:8: declaration uses 'sorry' -info: ././././SSA/Projects/InstCombine/tests/LLVM/gandhxorhor.lean:273:17: theorem extracted_1 (x x_1 x_2 x_3 : BitVec 8) : - (Option.bind (if 8#8 ≤ x_2 then none else some (x_3 >>> x_2.toNat)) fun a => - Option.bind (if 8#8 ≤ x_2 then none else some (x >>> x_2.toNat)) fun y' => some (a ^^^ x_1 ^^^ y')) ⊑ - Option.bind (if 8#8 ≤ x_2 then none else some ((x_3 ^^^ x) >>> x_2.toNat)) fun a => some (a ^^^ x_1) := sorry -warning: ././././SSA/Projects/InstCombine/tests/LLVM/gandhxorhor.lean:263:8: declaration uses 'sorry' -error: ././././SSA/Projects/InstCombine/tests/LLVM/gandhxorhor.lean:301:88: (deterministic) timeout at `whnf`, maximum number of heartbeats (200000) has been reached -Use `set_option maxHeartbeats ` to set the limit. -Additional diagnostic information may be available using the `set_option diagnostics true` command. -info: ././././SSA/Projects/InstCombine/tests/LLVM/gandhxorhor.lean:351:17: theorem extracted_1 (x x_1 x_2 : BitVec 32) : - (Option.bind (if x_2 = 0#32 ∨ 42#32 = intMin 32 ∧ x_2 = 4294967295#32 then none else some ((42#32).sdiv x_2)) fun a => - some (a &&& (x_1 ^^^ 4294967295#32) &&& (x ^^^ 4294967295#32))) ⊑ - Option.bind (if x_2 = 0#32 ∨ 42#32 = intMin 32 ∧ x_2 = 4294967295#32 then none else some ((42#32).sdiv x_2)) - fun a => some (a &&& ((x_1 ||| x) ^^^ 4294967295#32)) := sorry -warning: ././././SSA/Projects/InstCombine/tests/LLVM/gandhxorhor.lean:341:8: declaration uses 'sorry' -info: ././././SSA/Projects/InstCombine/tests/LLVM/gandhxorhor.lean:387:17: theorem extracted_1 (x x_1 x_2 : BitVec 32) : - (x_2 ^^^ 4294967295#32) &&& x_1 &&& (x ^^^ 4294967295#32) = x_1 &&& ((x_2 ||| x) ^^^ 4294967295#32) := sorry -warning: ././././SSA/Projects/InstCombine/tests/LLVM/gandhxorhor.lean:377:8: declaration uses 'sorry' -info: ././././SSA/Projects/InstCombine/tests/LLVM/gandhxorhor.lean:427:17: theorem extracted_1 (x x_1 x_2 : BitVec 32) : - (Option.bind (if x_2 = 0#32 ∨ 42#32 = intMin 32 ∧ x_2 = 4294967295#32 then none else some ((42#32).sdiv x_2)) fun a => - some (a ||| x_1 ^^^ 4294967295#32 ||| x ^^^ 4294967295#32)) ⊑ - Option.bind (if x_2 = 0#32 ∨ 42#32 = intMin 32 ∧ x_2 = 4294967295#32 then none else some ((42#32).sdiv x_2)) - fun a => some (a ||| x_1 &&& x ^^^ 4294967295#32) := sorry -warning: ././././SSA/Projects/InstCombine/tests/LLVM/gandhxorhor.lean:417:8: declaration uses 'sorry' -info: ././././SSA/Projects/InstCombine/tests/LLVM/gandhxorhor.lean:463:17: theorem extracted_1 (x x_1 x_2 : BitVec 32) : - x_2 ^^^ 4294967295#32 ||| x_1 ||| x ^^^ 4294967295#32 = x_1 ||| x_2 &&& x ^^^ 4294967295#32 := sorry -warning: ././././SSA/Projects/InstCombine/tests/LLVM/gandhxorhor.lean:453:8: declaration uses 'sorry' -info: ././././SSA/Projects/InstCombine/tests/LLVM/gandhxorhor.lean:502:17: theorem extracted_1 (x x_1 x_2 : BitVec 32) : - ((x_2 ||| x_1) ^^^ 4294967295#32) &&& x ||| ((x_2 ||| x) ^^^ 4294967295#32) &&& x_1 = - (x_1 ^^^ x) &&& (x_2 ^^^ 4294967295#32) := sorry -warning: ././././SSA/Projects/InstCombine/tests/LLVM/gandhxorhor.lean:492:8: declaration uses 'sorry' -info: ././././SSA/Projects/InstCombine/tests/LLVM/gandhxorhor.lean:545:17: theorem extracted_1 (x x_1 x_2 : BitVec 32) : - (Option.bind (if x_1 = 0#32 ∨ 42#32 = intMin 32 ∧ x_1 = 4294967295#32 then none else some ((42#32).sdiv x_1)) fun a => - Option.bind (if x_1 = 0#32 ∨ 42#32 = intMin 32 ∧ x_1 = 4294967295#32 then none else some ((42#32).sdiv x_1)) - fun a_1 => some (((x_2 ||| a) ^^^ 4294967295#32) &&& x ||| a_1 &&& ((x_2 ||| x) ^^^ 4294967295#32))) ⊑ - Option.bind (if x_1 = 0#32 ∨ 42#32 = intMin 32 ∧ x_1 = 4294967295#32 then none else some ((42#32).sdiv x_1)) - fun a => some ((a ^^^ x) &&& (x_2 ^^^ 4294967295#32)) := sorry -warning: ././././SSA/Projects/InstCombine/tests/LLVM/gandhxorhor.lean:535:8: declaration uses 'sorry' -info: ././././SSA/Projects/InstCombine/tests/LLVM/gandhxorhor.lean:588:17: theorem extracted_1 (x x_1 x_2 : BitVec 32) : - (Option.bind (if x_2 = 0#32 ∨ 42#32 = intMin 32 ∧ x_2 = 4294967295#32 then none else some ((42#32).sdiv x_2)) fun a => - Option.bind (if x_2 = 0#32 ∨ 42#32 = intMin 32 ∧ x_2 = 4294967295#32 then none else some ((42#32).sdiv x_2)) - fun a_1 => some (a &&& ((x_1 ||| x) ^^^ 4294967295#32) ||| ((x_1 ||| a_1) ^^^ 4294967295#32) &&& x)) ⊑ - Option.bind (if x_2 = 0#32 ∨ 42#32 = intMin 32 ∧ x_2 = 4294967295#32 then none else some ((42#32).sdiv x_2)) - fun a => some ((x ^^^ a) &&& (x_1 ^^^ 4294967295#32)) := sorry -warning: ././././SSA/Projects/InstCombine/tests/LLVM/gandhxorhor.lean:578:8: declaration uses 'sorry' -info: ././././SSA/Projects/InstCombine/tests/LLVM/gandhxorhor.lean:627:17: theorem extracted_1 (x x_1 x_2 : BitVec 32) : - ((x_2 ||| x_1) ^^^ 4294967295#32) &&& x ||| ((x ||| x_1) ^^^ 4294967295#32) &&& x_2 = - (x_2 ^^^ x) &&& (x_1 ^^^ 4294967295#32) := sorry -warning: ././././SSA/Projects/InstCombine/tests/LLVM/gandhxorhor.lean:617:8: declaration uses 'sorry' -info: ././././SSA/Projects/InstCombine/tests/LLVM/gandhxorhor.lean:670:17: theorem extracted_1 (x x_1 x_2 : BitVec 32) : - (Option.bind (if x_2 = 0#32 ∨ 42#32 = intMin 32 ∧ x_2 = 4294967295#32 then none else some ((42#32).sdiv x_2)) fun a => - Option.bind (if x_2 = 0#32 ∨ 42#32 = intMin 32 ∧ x_2 = 4294967295#32 then none else some ((42#32).sdiv x_2)) - fun a_1 => some (a &&& ((x_1 ||| x) ^^^ 4294967295#32) ||| ((x_1 ||| a_1) ^^^ 4294967295#32) &&& x)) ⊑ - Option.bind (if x_2 = 0#32 ∨ 42#32 = intMin 32 ∧ x_2 = 4294967295#32 then none else some ((42#32).sdiv x_2)) - fun a => some ((x ^^^ a) &&& (x_1 ^^^ 4294967295#32)) := sorry -warning: ././././SSA/Projects/InstCombine/tests/LLVM/gandhxorhor.lean:660:8: declaration uses 'sorry' -error: ././././SSA/Projects/InstCombine/tests/LLVM/gandhxorhor.lean:705:94: (deterministic) timeout at `whnf`, maximum number of heartbeats (200000) has been reached -Use `set_option maxHeartbeats ` to set the limit. -Additional diagnostic information may be available using the `set_option diagnostics true` command. -info: ././././SSA/Projects/InstCombine/tests/LLVM/gandhxorhor.lean:754:17: theorem extracted_1 (x x_1 x_2 : BitVec 32) : - ((x_2 ||| x_1) ^^^ 4294967295#32) &&& x ||| ((x ||| x_2) ^^^ 4294967295#32) &&& x_1 = - (x_1 ^^^ x) &&& (x_2 ^^^ 4294967295#32) := sorry -warning: ././././SSA/Projects/InstCombine/tests/LLVM/gandhxorhor.lean:744:8: declaration uses 'sorry' -info: ././././SSA/Projects/InstCombine/tests/LLVM/gandhxorhor.lean:793:17: theorem extracted_1 (x x_1 x_2 : BitVec 32) : - ((x_2 ||| x_1) ^^^ 4294967295#32) &&& x ||| ((x_1 ||| x) ^^^ 4294967295#32) &&& x_2 = - (x_2 ^^^ x) &&& (x_1 ^^^ 4294967295#32) := sorry -warning: ././././SSA/Projects/InstCombine/tests/LLVM/gandhxorhor.lean:783:8: declaration uses 'sorry' -error: ././././SSA/Projects/InstCombine/tests/LLVM/gandhxorhor.lean:828:94: (deterministic) timeout at `whnf`, maximum number of heartbeats (200000) has been reached -Use `set_option maxHeartbeats ` to set the limit. -Additional diagnostic information may be available using the `set_option diagnostics true` command. -error: ././././SSA/Projects/InstCombine/tests/LLVM/gandhxorhor.lean:875:94: (deterministic) timeout at `whnf`, maximum number of heartbeats (200000) has been reached -Use `set_option maxHeartbeats ` to set the limit. -Additional diagnostic information may be available using the `set_option diagnostics true` command. -info: ././././SSA/Projects/InstCombine/tests/LLVM/gandhxorhor.lean:928:17: theorem extracted_1 (x x_1 x_2 x_3 : BitVec 32) : - ((x_3 ||| x_2) ^^^ 4294967295#32) &&& x_1 ||| ((x_3 ||| x) ^^^ 4294967295#32) &&& x_2 = - x_1 &&& ((x_3 ||| x_2) ^^^ 4294967295#32) ||| x_2 &&& ((x_3 ||| x) ^^^ 4294967295#32) := sorry -warning: ././././SSA/Projects/InstCombine/tests/LLVM/gandhxorhor.lean:918:8: declaration uses 'sorry' -info: ././././SSA/Projects/InstCombine/tests/LLVM/gandhxorhor.lean:971:17: theorem extracted_1 (x x_1 x_2 x_3 : BitVec 32) : - ((x_3 ||| x_2) ^^^ 4294967295#32) &&& x_1 ||| ((x_3 ||| x_1) ^^^ 4294967295#32) &&& x = - x_1 &&& ((x_3 ||| x_2) ^^^ 4294967295#32) ||| x &&& ((x_3 ||| x_1) ^^^ 4294967295#32) := sorry -warning: ././././SSA/Projects/InstCombine/tests/LLVM/gandhxorhor.lean:961:8: declaration uses 'sorry' -info: ././././SSA/Projects/InstCombine/tests/LLVM/gandhxorhor.lean:1010:17: theorem extracted_1 (x x_1 x_2 : BitVec 32) : - (x_2 &&& x_1 ^^^ 4294967295#32 ||| x) &&& (x_2 &&& x ^^^ 4294967295#32 ||| x_1) = - (x_1 ^^^ x) &&& x_2 ^^^ 4294967295#32 := sorry -warning: ././././SSA/Projects/InstCombine/tests/LLVM/gandhxorhor.lean:1000:8: declaration uses 'sorry' -info: ././././SSA/Projects/InstCombine/tests/LLVM/gandhxorhor.lean:1053:17: theorem extracted_1 (x x_1 x_2 : BitVec 32) : - (Option.bind (if x_1 = 0#32 ∨ 42#32 = intMin 32 ∧ x_1 = 4294967295#32 then none else some ((42#32).sdiv x_1)) fun a => - Option.bind (if x_1 = 0#32 ∨ 42#32 = intMin 32 ∧ x_1 = 4294967295#32 then none else some ((42#32).sdiv x_1)) - fun a_1 => some ((x_2 &&& a ^^^ 4294967295#32 ||| x) &&& (a_1 ||| x_2 &&& x ^^^ 4294967295#32))) ⊑ - Option.bind (if x_1 = 0#32 ∨ 42#32 = intMin 32 ∧ x_1 = 4294967295#32 then none else some ((42#32).sdiv x_1)) - fun a => some ((a ^^^ x) &&& x_2 ^^^ 4294967295#32) := sorry -warning: ././././SSA/Projects/InstCombine/tests/LLVM/gandhxorhor.lean:1043:8: declaration uses 'sorry' -info: ././././SSA/Projects/InstCombine/tests/LLVM/gandhxorhor.lean:1096:17: theorem extracted_1 (x x_1 x_2 : BitVec 32) : - (Option.bind (if x_2 = 0#32 ∨ 42#32 = intMin 32 ∧ x_2 = 4294967295#32 then none else some ((42#32).sdiv x_2)) fun a => - Option.bind (if x_2 = 0#32 ∨ 42#32 = intMin 32 ∧ x_2 = 4294967295#32 then none else some ((42#32).sdiv x_2)) - fun a_1 => some ((a ||| x_1 &&& x ^^^ 4294967295#32) &&& (x_1 &&& a_1 ^^^ 4294967295#32 ||| x))) ⊑ - Option.bind (if x_2 = 0#32 ∨ 42#32 = intMin 32 ∧ x_2 = 4294967295#32 then none else some ((42#32).sdiv x_2)) - fun a => some ((x ^^^ a) &&& x_1 ^^^ 4294967295#32) := sorry -warning: ././././SSA/Projects/InstCombine/tests/LLVM/gandhxorhor.lean:1086:8: declaration uses 'sorry' -info: ././././SSA/Projects/InstCombine/tests/LLVM/gandhxorhor.lean:1135:17: theorem extracted_1 (x x_1 x_2 : BitVec 32) : - (x_2 &&& x_1 ^^^ 4294967295#32 ||| x) &&& (x &&& x_1 ^^^ 4294967295#32 ||| x_2) = - (x_2 ^^^ x) &&& x_1 ^^^ 4294967295#32 := sorry -warning: ././././SSA/Projects/InstCombine/tests/LLVM/gandhxorhor.lean:1125:8: declaration uses 'sorry' -info: ././././SSA/Projects/InstCombine/tests/LLVM/gandhxorhor.lean:1178:17: theorem extracted_1 (x x_1 x_2 : BitVec 32) : - (Option.bind (if x_2 = 0#32 ∨ 42#32 = intMin 32 ∧ x_2 = 4294967295#32 then none else some ((42#32).sdiv x_2)) fun a => - Option.bind (if x_2 = 0#32 ∨ 42#32 = intMin 32 ∧ x_2 = 4294967295#32 then none else some ((42#32).sdiv x_2)) - fun a_1 => some ((a ||| x_1 &&& x ^^^ 4294967295#32) &&& (x_1 &&& a_1 ^^^ 4294967295#32 ||| x))) ⊑ - Option.bind (if x_2 = 0#32 ∨ 42#32 = intMin 32 ∧ x_2 = 4294967295#32 then none else some ((42#32).sdiv x_2)) - fun a => some ((x ^^^ a) &&& x_1 ^^^ 4294967295#32) := sorry -warning: ././././SSA/Projects/InstCombine/tests/LLVM/gandhxorhor.lean:1168:8: declaration uses 'sorry' -info: ././././SSA/Projects/InstCombine/tests/LLVM/gandhxorhor.lean:1223:17: theorem extracted_1 : - ∀ (e e_1 e_2 : IntW 32), - (do - let x ← some 42#32 - let x_1 ← e_2 - let x ← - if false = true ∧ x.smod x_1 ≠ 0 then none - else if (x_1 == 0 || 32 != 1 && x == intMin 32 && x_1 == -1) = true then none else pure (x.sdiv x_1) - let x_2 ← some 42#32 - let x_3 ← e_1 - let x_4 ← - if false = true ∧ x_2.smod x_3 ≠ 0 then none - else if (x_3 == 0 || 32 != 1 && x_2 == intMin 32 && x_3 == -1) = true then none else pure (x_2.sdiv x_3) - let x_5 ← e - let x_6 ← some (x_4.and x_5) - let x_7 ← some (-1#32) - let x_8 ← some (x_6.xor x_7) - let x' ← if false = true ∧ (x &&& x_8 != 0) = true then none else some (x.or x_8) - let x ← some 42#32 - let x_9 ← e_1 - let x ← - if false = true ∧ x.smod x_9 ≠ 0 then none - else if (x_9 == 0 || 32 != 1 && x == intMin 32 && x_9 == -1) = true then none else pure (x.sdiv x_9) - let x_10 ← some 42#32 - let x_11 ← e_2 - let x_12 ← - if false = true ∧ x_10.smod x_11 ≠ 0 then none - else - if (x_11 == 0 || 32 != 1 && x_10 == intMin 32 && x_11 == -1) = true then none else pure (x_10.sdiv x_11) - let x ← some (x.and x_12) - let x_13 ← some (-1#32) - let x ← some (x.xor x_13) - let x_14 ← e - let y' ← if false = true ∧ (x &&& x_14 != 0) = true then none else some (x.or x_14) - some (x'.and y')) ⊑ - do - let x ← e - let x_1 ← some 42#32 - let x_2 ← e_2 - let x_3 ← - if false = true ∧ x_1.smod x_2 ≠ 0 then none - else if (x_2 == 0 || 32 != 1 && x_1 == intMin 32 && x_2 == -1) = true then none else pure (x_1.sdiv x_2) - let x ← some (x.xor x_3) - let x_4 ← some 42#32 - let x_5 ← e_1 - let x_6 ← - if false = true ∧ x_4.smod x_5 ≠ 0 then none - else if (x_5 == 0 || 32 != 1 && x_4 == intMin 32 && x_5 == -1) = true then none else pure (x_4.sdiv x_5) - let x' ← some (x.and x_6) - let y' ← some (-1#32) - some (x'.xor y') := sorry -warning: ././././SSA/Projects/InstCombine/tests/LLVM/gandhxorhor.lean:1213:8: declaration uses 'sorry' -info: ././././SSA/Projects/InstCombine/tests/LLVM/gandhxorhor.lean:1262:17: theorem extracted_1 (x x_1 x_2 : BitVec 32) : - (x_2 &&& x_1 ^^^ 4294967295#32 ||| x) &&& (x &&& x_2 ^^^ 4294967295#32 ||| x_1) = - (x_1 ^^^ x) &&& x_2 ^^^ 4294967295#32 := sorry -warning: ././././SSA/Projects/InstCombine/tests/LLVM/gandhxorhor.lean:1252:8: declaration uses 'sorry' -info: ././././SSA/Projects/InstCombine/tests/LLVM/gandhxorhor.lean:1301:17: theorem extracted_1 (x x_1 x_2 : BitVec 32) : - (x_2 &&& x_1 ^^^ 4294967295#32 ||| x) &&& (x_1 &&& x ^^^ 4294967295#32 ||| x_2) = - (x_2 ^^^ x) &&& x_1 ^^^ 4294967295#32 := sorry -warning: ././././SSA/Projects/InstCombine/tests/LLVM/gandhxorhor.lean:1291:8: declaration uses 'sorry' -error: ././././SSA/Projects/InstCombine/tests/LLVM/gandhxorhor.lean:1336:94: (deterministic) timeout at `whnf`, maximum number of heartbeats (200000) has been reached -Use `set_option maxHeartbeats ` to set the limit. -Additional diagnostic information may be available using the `set_option diagnostics true` command. -error: ././././SSA/Projects/InstCombine/tests/LLVM/gandhxorhor.lean:1383:94: (deterministic) timeout at `whnf`, maximum number of heartbeats (200000) has been reached -Use `set_option maxHeartbeats ` to set the limit. -Additional diagnostic information may be available using the `set_option diagnostics true` command. -info: ././././SSA/Projects/InstCombine/tests/LLVM/gandhxorhor.lean:1436:17: theorem extracted_1 (x x_1 x_2 x_3 : BitVec 32) : - (x_3 &&& x_2 ^^^ 4294967295#32 ||| x_1) &&& (x_3 &&& x ^^^ 4294967295#32 ||| x_2) = - (x_1 ||| x_3 &&& x_2 ^^^ 4294967295#32) &&& (x_2 ||| x_3 &&& x ^^^ 4294967295#32) := sorry -warning: ././././SSA/Projects/InstCombine/tests/LLVM/gandhxorhor.lean:1426:8: declaration uses 'sorry' -info: ././././SSA/Projects/InstCombine/tests/LLVM/gandhxorhor.lean:1479:17: theorem extracted_1 (x x_1 x_2 x_3 : BitVec 32) : - (x_3 &&& x_2 ^^^ 4294967295#32 ||| x_1) &&& (x_3 &&& x_1 ^^^ 4294967295#32 ||| x) = - (x_1 ||| x_3 &&& x_2 ^^^ 4294967295#32) &&& (x ||| x_3 &&& x_1 ^^^ 4294967295#32) := sorry -warning: ././././SSA/Projects/InstCombine/tests/LLVM/gandhxorhor.lean:1469:8: declaration uses 'sorry' -info: ././././SSA/Projects/InstCombine/tests/LLVM/gandhxorhor.lean:1517:17: theorem extracted_1 (x x_1 x_2 : BitVec 32) : - ((x_2 ||| x_1) ^^^ 4294967295#32) &&& x ||| (x ||| x_2) ^^^ 4294967295#32 = - (x_1 &&& x ||| x_2) ^^^ 4294967295#32 := sorry -warning: ././././SSA/Projects/InstCombine/tests/LLVM/gandhxorhor.lean:1507:8: declaration uses 'sorry' -info: ././././SSA/Projects/InstCombine/tests/LLVM/gandhxorhor.lean:1559:17: theorem extracted_1 (x x_1 x_2 : BitVec 32) : - (Option.bind (if x_2 = 0#32 ∨ 42#32 = intMin 32 ∧ x_2 = 4294967295#32 then none else some ((42#32).sdiv x_2)) fun a => - Option.bind (if x_2 = 0#32 ∨ 42#32 = intMin 32 ∧ x_2 = 4294967295#32 then none else some ((42#32).sdiv x_2)) - fun a_1 => some (a &&& ((x_1 ||| x) ^^^ 4294967295#32) ||| (a_1 ||| x_1) ^^^ 4294967295#32)) ⊑ - Option.bind (if x_2 = 0#32 ∨ 42#32 = intMin 32 ∧ x_2 = 4294967295#32 then none else some ((42#32).sdiv x_2)) - fun a => some ((x &&& a ||| x_1) ^^^ 4294967295#32) := sorry -warning: ././././SSA/Projects/InstCombine/tests/LLVM/gandhxorhor.lean:1549:8: declaration uses 'sorry' -info: ././././SSA/Projects/InstCombine/tests/LLVM/gandhxorhor.lean:1597:17: theorem extracted_1 (x x_1 x_2 : BitVec 32) : - ((x_2 ||| x_1) ^^^ 4294967295#32) &&& x ||| (x ||| x_2) ^^^ 4294967295#32 = - (x_1 &&& x ||| x_2) ^^^ 4294967295#32 := sorry -warning: ././././SSA/Projects/InstCombine/tests/LLVM/gandhxorhor.lean:1587:8: declaration uses 'sorry' -info: ././././SSA/Projects/InstCombine/tests/LLVM/gandhxorhor.lean:1635:17: theorem extracted_1 (x x_1 x_2 : BitVec 32) : - ((x_2 ||| x_1) ^^^ 4294967295#32) &&& x ||| (x ||| x_1) ^^^ 4294967295#32 = - (x_2 &&& x ||| x_1) ^^^ 4294967295#32 := sorry -warning: ././././SSA/Projects/InstCombine/tests/LLVM/gandhxorhor.lean:1625:8: declaration uses 'sorry' -info: ././././SSA/Projects/InstCombine/tests/LLVM/gandhxorhor.lean:1673:17: theorem extracted_1 (x x_1 x_2 : BitVec 32) : - ((x_2 ||| x_1) ^^^ 4294967295#32) &&& x ||| (x_2 ||| x) ^^^ 4294967295#32 = - (x_1 &&& x ||| x_2) ^^^ 4294967295#32 := sorry -warning: ././././SSA/Projects/InstCombine/tests/LLVM/gandhxorhor.lean:1663:8: declaration uses 'sorry' -info: ././././SSA/Projects/InstCombine/tests/LLVM/gandhxorhor.lean:1711:17: theorem extracted_1 (x x_1 x_2 : BitVec 32) : - (x_2 ||| x_1) ^^^ 4294967295#32 ||| ((x_1 ||| x) ^^^ 4294967295#32) &&& x_2 = - (x &&& x_2 ||| x_1) ^^^ 4294967295#32 := sorry -warning: ././././SSA/Projects/InstCombine/tests/LLVM/gandhxorhor.lean:1701:8: declaration uses 'sorry' -info: ././././SSA/Projects/InstCombine/tests/LLVM/gandhxorhor.lean:1753:17: theorem extracted_1 (x x_1 x_2 : BitVec 32) : - (Option.bind (if x_2 = 0#32 ∨ 42#32 = intMin 32 ∧ x_2 = 4294967295#32 then none else some ((42#32).sdiv x_2)) fun a => - Option.bind (if x_2 = 0#32 ∨ 42#32 = intMin 32 ∧ x_2 = 4294967295#32 then none else some ((42#32).sdiv x_2)) - fun a_1 => some (a &&& ((x_1 ||| x) ^^^ 4294967295#32) ||| (a_1 ||| x) ^^^ 4294967295#32)) ⊑ - Option.bind (if x_2 = 0#32 ∨ 42#32 = intMin 32 ∧ x_2 = 4294967295#32 then none else some ((42#32).sdiv x_2)) - fun a => some ((x_1 &&& a ||| x) ^^^ 4294967295#32) := sorry -warning: ././././SSA/Projects/InstCombine/tests/LLVM/gandhxorhor.lean:1743:8: declaration uses 'sorry' -info: ././././SSA/Projects/InstCombine/tests/LLVM/gandhxorhor.lean:1791:17: theorem extracted_1 (x x_1 x_2 : BitVec 32) : - ((x_2 ||| x_1) ^^^ 4294967295#32) &&& x ||| (x_1 ||| x) ^^^ 4294967295#32 = - (x_2 &&& x ||| x_1) ^^^ 4294967295#32 := sorry -warning: ././././SSA/Projects/InstCombine/tests/LLVM/gandhxorhor.lean:1781:8: declaration uses 'sorry' -info: ././././SSA/Projects/InstCombine/tests/LLVM/gandhxorhor.lean:1832:17: theorem extracted_1 (x x_1 x_2 x_3 : BitVec 32) : - ((x_3 ||| x_2) ^^^ 4294967295#32) &&& x_1 ||| (x_1 ||| x) ^^^ 4294967295#32 = - x_1 &&& ((x_3 ||| x_2) ^^^ 4294967295#32) ||| (x_1 ||| x) ^^^ 4294967295#32 := sorry -warning: ././././SSA/Projects/InstCombine/tests/LLVM/gandhxorhor.lean:1822:8: declaration uses 'sorry' -info: ././././SSA/Projects/InstCombine/tests/LLVM/gandhxorhor.lean:1873:17: theorem extracted_1 (x x_1 x_2 x_3 : BitVec 32) : - ((x_3 ||| x_2) ^^^ 4294967295#32) &&& x_1 ||| (x ||| x_3) ^^^ 4294967295#32 = - x_1 &&& ((x_3 ||| x_2) ^^^ 4294967295#32) ||| (x ||| x_3) ^^^ 4294967295#32 := sorry -warning: ././././SSA/Projects/InstCombine/tests/LLVM/gandhxorhor.lean:1863:8: declaration uses 'sorry' -info: ././././SSA/Projects/InstCombine/tests/LLVM/gandhxorhor.lean:1911:17: theorem extracted_1 (x x_1 x_2 : BitVec 32) : - (x_2 &&& x_1 ^^^ 4294967295#32 ||| x) &&& (x &&& x_2 ^^^ 4294967295#32) = - (x_1 ||| x) &&& x_2 ^^^ 4294967295#32 := sorry -warning: ././././SSA/Projects/InstCombine/tests/LLVM/gandhxorhor.lean:1901:8: declaration uses 'sorry' -info: ././././SSA/Projects/InstCombine/tests/LLVM/gandhxorhor.lean:1953:17: theorem extracted_1 (x x_1 x_2 : BitVec 32) : - (Option.bind (if x_2 = 0#32 ∨ 42#32 = intMin 32 ∧ x_2 = 4294967295#32 then none else some ((42#32).sdiv x_2)) fun a => - Option.bind (if x_2 = 0#32 ∨ 42#32 = intMin 32 ∧ x_2 = 4294967295#32 then none else some ((42#32).sdiv x_2)) - fun a_1 => some ((a ||| x_1 &&& x ^^^ 4294967295#32) &&& (a_1 &&& x_1 ^^^ 4294967295#32))) ⊑ - Option.bind (if x_2 = 0#32 ∨ 42#32 = intMin 32 ∧ x_2 = 4294967295#32 then none else some ((42#32).sdiv x_2)) - fun a => some ((x ||| a) &&& x_1 ^^^ 4294967295#32) := sorry -warning: ././././SSA/Projects/InstCombine/tests/LLVM/gandhxorhor.lean:1943:8: declaration uses 'sorry' -info: ././././SSA/Projects/InstCombine/tests/LLVM/gandhxorhor.lean:1991:17: theorem extracted_1 (x x_1 x_2 : BitVec 32) : - (x_2 &&& x_1 ^^^ 4294967295#32 ||| x) &&& (x &&& x_2 ^^^ 4294967295#32) = - (x_1 ||| x) &&& x_2 ^^^ 4294967295#32 := sorry -warning: ././././SSA/Projects/InstCombine/tests/LLVM/gandhxorhor.lean:1981:8: declaration uses 'sorry' -info: ././././SSA/Projects/InstCombine/tests/LLVM/gandhxorhor.lean:2029:17: theorem extracted_1 (x x_1 x_2 : BitVec 32) : - (x_2 &&& x_1 ^^^ 4294967295#32 ||| x) &&& (x &&& x_1 ^^^ 4294967295#32) = - (x_2 ||| x) &&& x_1 ^^^ 4294967295#32 := sorry -warning: ././././SSA/Projects/InstCombine/tests/LLVM/gandhxorhor.lean:2019:8: declaration uses 'sorry' -info: ././././SSA/Projects/InstCombine/tests/LLVM/gandhxorhor.lean:2067:17: theorem extracted_1 (x x_1 x_2 : BitVec 32) : - (x_2 &&& x_1 ^^^ 4294967295#32 ||| x) &&& (x_2 &&& x ^^^ 4294967295#32) = - (x_1 ||| x) &&& x_2 ^^^ 4294967295#32 := sorry -warning: ././././SSA/Projects/InstCombine/tests/LLVM/gandhxorhor.lean:2057:8: declaration uses 'sorry' -info: ././././SSA/Projects/InstCombine/tests/LLVM/gandhxorhor.lean:2105:17: theorem extracted_1 (x x_1 x_2 : BitVec 32) : - (x_2 &&& x_1 ^^^ 4294967295#32) &&& (x_1 &&& x ^^^ 4294967295#32 ||| x_2) = - (x ||| x_2) &&& x_1 ^^^ 4294967295#32 := sorry -warning: ././././SSA/Projects/InstCombine/tests/LLVM/gandhxorhor.lean:2095:8: declaration uses 'sorry' -info: ././././SSA/Projects/InstCombine/tests/LLVM/gandhxorhor.lean:2147:17: theorem extracted_1 (x x_1 x_2 : BitVec 32) : - (Option.bind (if x_2 = 0#32 ∨ 42#32 = intMin 32 ∧ x_2 = 4294967295#32 then none else some ((42#32).sdiv x_2)) fun a => - Option.bind (if x_2 = 0#32 ∨ 42#32 = intMin 32 ∧ x_2 = 4294967295#32 then none else some ((42#32).sdiv x_2)) - fun a_1 => some ((a ||| x_1 &&& x ^^^ 4294967295#32) &&& (a_1 &&& x ^^^ 4294967295#32))) ⊑ - Option.bind (if x_2 = 0#32 ∨ 42#32 = intMin 32 ∧ x_2 = 4294967295#32 then none else some ((42#32).sdiv x_2)) - fun a => some ((x_1 ||| a) &&& x ^^^ 4294967295#32) := sorry -warning: ././././SSA/Projects/InstCombine/tests/LLVM/gandhxorhor.lean:2137:8: declaration uses 'sorry' -info: ././././SSA/Projects/InstCombine/tests/LLVM/gandhxorhor.lean:2185:17: theorem extracted_1 (x x_1 x_2 : BitVec 32) : - (x_2 &&& x_1 ^^^ 4294967295#32 ||| x) &&& (x_1 &&& x ^^^ 4294967295#32) = - (x_2 ||| x) &&& x_1 ^^^ 4294967295#32 := sorry -warning: ././././SSA/Projects/InstCombine/tests/LLVM/gandhxorhor.lean:2175:8: declaration uses 'sorry' -info: ././././SSA/Projects/InstCombine/tests/LLVM/gandhxorhor.lean:2225:17: theorem extracted_1 (x x_1 x_2 x_3 : BitVec 32) : - (x_3 &&& x_2 ^^^ 4294967295#32 ||| x_1) &&& (x_1 &&& x ^^^ 4294967295#32) = - x_1 &&& x ^^^ (x_1 ||| x_3 &&& x_2 ^^^ 4294967295#32) := sorry -warning: ././././SSA/Projects/InstCombine/tests/LLVM/gandhxorhor.lean:2215:8: declaration uses 'sorry' -info: ././././SSA/Projects/InstCombine/tests/LLVM/gandhxorhor.lean:2266:17: theorem extracted_1 (x x_1 x_2 x_3 : BitVec 32) : - (x_3 &&& x_2 ^^^ 4294967295#32 ||| x_1) &&& (x &&& x_3 ^^^ 4294967295#32) = - (x_1 ||| x_3 &&& x_2 ^^^ 4294967295#32) &&& (x &&& x_3 ^^^ 4294967295#32) := sorry -warning: ././././SSA/Projects/InstCombine/tests/LLVM/gandhxorhor.lean:2256:8: declaration uses 'sorry' -info: ././././SSA/Projects/InstCombine/tests/LLVM/gandhxorhor.lean:2307:17: theorem extracted_1 (x x_1 x_2 : BitVec 32) : - ((x_2 ||| x_1) ^^^ 4294967295#32) &&& x ||| (x_2 ^^^ x_1 ||| x) ^^^ 4294967295#32 = - (x_2 ||| x_1) &&& (x_2 ^^^ x_1 ||| x) ^^^ 4294967295#32 := sorry -warning: ././././SSA/Projects/InstCombine/tests/LLVM/gandhxorhor.lean:2297:8: declaration uses 'sorry' -info: ././././SSA/Projects/InstCombine/tests/LLVM/gandhxorhor.lean:2348:17: theorem extracted_1 (x x_1 x_2 : BitVec 32) : - ((x_2 ||| x_1) ^^^ 4294967295#32) &&& x ||| (x_1 ^^^ x_2 ||| x) ^^^ 4294967295#32 = - (x_2 ||| x_1) &&& (x_1 ^^^ x_2 ||| x) ^^^ 4294967295#32 := sorry -warning: ././././SSA/Projects/InstCombine/tests/LLVM/gandhxorhor.lean:2338:8: declaration uses 'sorry' -info: ././././SSA/Projects/InstCombine/tests/LLVM/gandhxorhor.lean:2393:17: theorem extracted_1 (x x_1 x_2 : BitVec 32) : - (Option.bind (if x_2 = 0#32 ∨ 42#32 = intMin 32 ∧ x_2 = 4294967295#32 then none else some ((42#32).sdiv x_2)) fun a => - Option.bind (if x_2 = 0#32 ∨ 42#32 = intMin 32 ∧ x_2 = 4294967295#32 then none else some ((42#32).sdiv x_2)) - fun x_3 => some (a &&& ((x_1 ||| x) ^^^ 4294967295#32) ||| (x_1 ^^^ x ||| x_3) ^^^ 4294967295#32)) ⊑ - Option.bind (if x_2 = 0#32 ∨ 42#32 = intMin 32 ∧ x_2 = 4294967295#32 then none else some ((42#32).sdiv x_2)) - fun x_3 => some ((x_1 ||| x) &&& (x_1 ^^^ x ||| x_3) ^^^ 4294967295#32) := sorry -warning: ././././SSA/Projects/InstCombine/tests/LLVM/gandhxorhor.lean:2383:8: declaration uses 'sorry' -info: ././././SSA/Projects/InstCombine/tests/LLVM/gandhxorhor.lean:2434:17: theorem extracted_1 (x x_1 x_2 : BitVec 32) : - ((x_2 ||| x_1) ^^^ 4294967295#32) &&& x ||| (x_1 ^^^ x_2 ||| x) ^^^ 4294967295#32 = - (x_2 ||| x_1) &&& (x_1 ^^^ x_2 ||| x) ^^^ 4294967295#32 := sorry -warning: ././././SSA/Projects/InstCombine/tests/LLVM/gandhxorhor.lean:2424:8: declaration uses 'sorry' -info: ././././SSA/Projects/InstCombine/tests/LLVM/gandhxorhor.lean:2479:17: theorem extracted_1 (x x_1 x_2 : BitVec 32) : - (Option.bind (if x_2 = 0#32 ∨ 42#32 = intMin 32 ∧ x_2 = 4294967295#32 then none else some ((42#32).sdiv x_2)) fun a => - Option.bind (if x_2 = 0#32 ∨ 42#32 = intMin 32 ∧ x_2 = 4294967295#32 then none else some ((42#32).sdiv x_2)) - fun a_1 => some (a &&& ((x_1 ||| x) ^^^ 4294967295#32) ||| (a_1 ||| x_1 ^^^ x) ^^^ 4294967295#32)) ⊑ - Option.bind (if x_2 = 0#32 ∨ 42#32 = intMin 32 ∧ x_2 = 4294967295#32 then none else some ((42#32).sdiv x_2)) - fun a => some ((x_1 ||| x) &&& (a ||| x_1 ^^^ x) ^^^ 4294967295#32) := sorry -warning: ././././SSA/Projects/InstCombine/tests/LLVM/gandhxorhor.lean:2469:8: declaration uses 'sorry' -info: ././././SSA/Projects/InstCombine/tests/LLVM/gandhxorhor.lean:2520:17: theorem extracted_1 (x x_1 x_2 : BitVec 32) : - (x_2 ^^^ x_1 ||| x) ^^^ 4294967295#32 ||| ((x_2 ||| x_1) ^^^ 4294967295#32) &&& x = - (x_2 ||| x_1) &&& (x_2 ^^^ x_1 ||| x) ^^^ 4294967295#32 := sorry -warning: ././././SSA/Projects/InstCombine/tests/LLVM/gandhxorhor.lean:2510:8: declaration uses 'sorry' -info: ././././SSA/Projects/InstCombine/tests/LLVM/gandhxorhor.lean:2562:17: theorem extracted_1 (x x_1 x_2 : BitVec 32) : - (x_2 &&& x_1 ^^^ 4294967295#32 ||| x) &&& ((x_2 ^^^ x_1) &&& x ^^^ 4294967295#32) = - (x_2 ^^^ x_1) &&& x ^^^ (x ||| x_2 &&& x_1 ^^^ 4294967295#32) := sorry -warning: ././././SSA/Projects/InstCombine/tests/LLVM/gandhxorhor.lean:2552:8: declaration uses 'sorry' -info: ././././SSA/Projects/InstCombine/tests/LLVM/gandhxorhor.lean:2604:17: theorem extracted_1 (x x_1 x_2 : BitVec 32) : - (x_2 &&& x_1 ^^^ 4294967295#32 ||| x) &&& ((x_1 ^^^ x_2) &&& x ^^^ 4294967295#32) = - (x_1 ^^^ x_2) &&& x ^^^ (x ||| x_2 &&& x_1 ^^^ 4294967295#32) := sorry -warning: ././././SSA/Projects/InstCombine/tests/LLVM/gandhxorhor.lean:2594:8: declaration uses 'sorry' -info: ././././SSA/Projects/InstCombine/tests/LLVM/gandhxorhor.lean:2650:17: theorem extracted_1 (x x_1 x_2 : BitVec 32) : - (Option.bind (if x_2 = 0#32 ∨ 42#32 = intMin 32 ∧ x_2 = 4294967295#32 then none else some ((42#32).sdiv x_2)) fun a => - Option.bind (if x_2 = 0#32 ∨ 42#32 = intMin 32 ∧ x_2 = 4294967295#32 then none else some ((42#32).sdiv x_2)) - fun x_3 => some ((a ||| x_1 &&& x ^^^ 4294967295#32) &&& ((x_1 ^^^ x) &&& x_3 ^^^ 4294967295#32))) ⊑ - Option.bind (if x_2 = 0#32 ∨ 42#32 = intMin 32 ∧ x_2 = 4294967295#32 then none else some ((42#32).sdiv x_2)) - fun a => - Option.bind (if x_2 = 0#32 ∨ 42#32 = intMin 32 ∧ x_2 = 4294967295#32 then none else some ((42#32).sdiv x_2)) - fun a_1 => some ((x_1 ^^^ x) &&& a ^^^ (a_1 ||| x_1 &&& x ^^^ 4294967295#32)) := sorry -warning: ././././SSA/Projects/InstCombine/tests/LLVM/gandhxorhor.lean:2640:8: declaration uses 'sorry' -info: ././././SSA/Projects/InstCombine/tests/LLVM/gandhxorhor.lean:2692:17: theorem extracted_1 (x x_1 x_2 : BitVec 32) : - (x_2 &&& x_1 ^^^ 4294967295#32 ||| x) &&& ((x_1 ^^^ x_2) &&& x ^^^ 4294967295#32) = - (x_1 ^^^ x_2) &&& x ^^^ (x ||| x_2 &&& x_1 ^^^ 4294967295#32) := sorry -warning: ././././SSA/Projects/InstCombine/tests/LLVM/gandhxorhor.lean:2682:8: declaration uses 'sorry' -info: ././././SSA/Projects/InstCombine/tests/LLVM/gandhxorhor.lean:2738:17: theorem extracted_1 (x x_1 x_2 : BitVec 32) : - (Option.bind (if x_2 = 0#32 ∨ 42#32 = intMin 32 ∧ x_2 = 4294967295#32 then none else some ((42#32).sdiv x_2)) fun a => - Option.bind (if x_2 = 0#32 ∨ 42#32 = intMin 32 ∧ x_2 = 4294967295#32 then none else some ((42#32).sdiv x_2)) - fun a_1 => some ((a ||| x_1 &&& x ^^^ 4294967295#32) &&& (a_1 &&& (x_1 ^^^ x) ^^^ 4294967295#32))) ⊑ - Option.bind (if x_2 = 0#32 ∨ 42#32 = intMin 32 ∧ x_2 = 4294967295#32 then none else some ((42#32).sdiv x_2)) - fun a => - Option.bind (if x_2 = 0#32 ∨ 42#32 = intMin 32 ∧ x_2 = 4294967295#32 then none else some ((42#32).sdiv x_2)) - fun a_1 => some (a &&& (x_1 ^^^ x) ^^^ (a_1 ||| x_1 &&& x ^^^ 4294967295#32)) := sorry -warning: ././././SSA/Projects/InstCombine/tests/LLVM/gandhxorhor.lean:2728:8: declaration uses 'sorry' -info: ././././SSA/Projects/InstCombine/tests/LLVM/gandhxorhor.lean:2780:17: theorem extracted_1 (x x_1 x_2 : BitVec 32) : - ((x_2 ^^^ x_1) &&& x ^^^ 4294967295#32) &&& (x_2 &&& x_1 ^^^ 4294967295#32 ||| x) = - (x_2 ^^^ x_1) &&& x ^^^ (x ||| x_2 &&& x_1 ^^^ 4294967295#32) := sorry -warning: ././././SSA/Projects/InstCombine/tests/LLVM/gandhxorhor.lean:2770:8: declaration uses 'sorry' -info: ././././SSA/Projects/InstCombine/tests/LLVM/gandhxorhor.lean:2819:17: theorem extracted_1 (x x_1 x_2 : BitVec 32) : - (x_2 ^^^ 4294967295#32) &&& x_1 &&& x ||| (x_1 ||| x_2 ||| x) ^^^ 4294967295#32 = - (x ^^^ x_1 ||| x_2) ^^^ 4294967295#32 := sorry -warning: ././././SSA/Projects/InstCombine/tests/LLVM/gandhxorhor.lean:2809:8: declaration uses 'sorry' -info: ././././SSA/Projects/InstCombine/tests/LLVM/gandhxorhor.lean:2858:17: theorem extracted_1 (x x_1 x_2 : BitVec 32) : - (x_2 ^^^ 4294967295#32) &&& x_1 &&& x ||| (x ||| x_2 ||| x_1) ^^^ 4294967295#32 = - (x ^^^ x_1 ||| x_2) ^^^ 4294967295#32 := sorry -warning: ././././SSA/Projects/InstCombine/tests/LLVM/gandhxorhor.lean:2848:8: declaration uses 'sorry' -info: ././././SSA/Projects/InstCombine/tests/LLVM/gandhxorhor.lean:2897:17: theorem extracted_1 (x x_1 x_2 : BitVec 32) : - (x_2 ^^^ 4294967295#32) &&& x_1 &&& x ||| (x_1 ||| x ||| x_2) ^^^ 4294967295#32 = - (x ^^^ x_1 ||| x_2) ^^^ 4294967295#32 := sorry -warning: ././././SSA/Projects/InstCombine/tests/LLVM/gandhxorhor.lean:2887:8: declaration uses 'sorry' -info: ././././SSA/Projects/InstCombine/tests/LLVM/gandhxorhor.lean:2936:17: theorem extracted_1 (x x_1 x_2 : BitVec 32) : - (x_2 ^^^ 4294967295#32) &&& x_1 &&& x ||| (x ||| x_2 ||| x_1) ^^^ 4294967295#32 = - (x ^^^ x_1 ||| x_2) ^^^ 4294967295#32 := sorry -warning: ././././SSA/Projects/InstCombine/tests/LLVM/gandhxorhor.lean:2926:8: declaration uses 'sorry' -info: ././././SSA/Projects/InstCombine/tests/LLVM/gandhxorhor.lean:2975:17: theorem extracted_1 (x x_1 x_2 : BitVec 32) : - x_2 &&& x_1 &&& (x ^^^ 4294967295#32) ||| (x_2 ||| x ||| x_1) ^^^ 4294967295#32 = - (x_2 ^^^ x_1 ||| x) ^^^ 4294967295#32 := sorry -warning: ././././SSA/Projects/InstCombine/tests/LLVM/gandhxorhor.lean:2965:8: declaration uses 'sorry' -info: ././././SSA/Projects/InstCombine/tests/LLVM/gandhxorhor.lean:3014:17: theorem extracted_1 (x x_1 x_2 : BitVec 32) : - (x_2 ^^^ 4294967295#32) &&& x_1 &&& x ||| (x_2 ||| x_1 ||| x) ^^^ 4294967295#32 = - (x ^^^ x_1 ||| x_2) ^^^ 4294967295#32 := sorry -warning: ././././SSA/Projects/InstCombine/tests/LLVM/gandhxorhor.lean:3004:8: declaration uses 'sorry' -info: ././././SSA/Projects/InstCombine/tests/LLVM/gandhxorhor.lean:3057:17: theorem extracted_1 (x x_1 x_2 : BitVec 32) : - (Option.bind (if x = 0#32 ∨ 42#32 = intMin 32 ∧ x = 4294967295#32 then none else some ((42#32).sdiv x)) fun a => - Option.bind (if x = 0#32 ∨ 42#32 = intMin 32 ∧ x = 4294967295#32 then none else some ((42#32).sdiv x)) fun a_1 => - some ((x_2 ^^^ 4294967295#32) &&& x_1 &&& a ||| (a_1 ||| (x_1 ||| x_2)) ^^^ 4294967295#32)) ⊑ - Option.bind (if x = 0#32 ∨ 42#32 = intMin 32 ∧ x = 4294967295#32 then none else some ((42#32).sdiv x)) fun a => - some ((a ^^^ x_1 ||| x_2) ^^^ 4294967295#32) := sorry -warning: ././././SSA/Projects/InstCombine/tests/LLVM/gandhxorhor.lean:3047:8: declaration uses 'sorry' -info: ././././SSA/Projects/InstCombine/tests/LLVM/gandhxorhor.lean:3100:17: theorem extracted_1 (x x_1 x_2 : BitVec 32) : - (Option.bind (if x_2 = 0#32 ∨ 42#32 = intMin 32 ∧ x_2 = 4294967295#32 then none else some ((42#32).sdiv x_2)) fun a => - Option.bind (if x_2 = 0#32 ∨ 42#32 = intMin 32 ∧ x_2 = 4294967295#32 then none else some ((42#32).sdiv x_2)) - fun a_1 => some (a &&& (x_1 ^^^ 4294967295#32) &&& x ||| (a_1 ||| x_1 ||| x) ^^^ 4294967295#32)) ⊑ - Option.bind (if x_2 = 0#32 ∨ 42#32 = intMin 32 ∧ x_2 = 4294967295#32 then none else some ((42#32).sdiv x_2)) - fun a => some ((x ^^^ a ||| x_1) ^^^ 4294967295#32) := sorry -warning: ././././SSA/Projects/InstCombine/tests/LLVM/gandhxorhor.lean:3090:8: declaration uses 'sorry' -info: ././././SSA/Projects/InstCombine/tests/LLVM/gandhxorhor.lean:3143:17: theorem extracted_1 (x x_1 x_2 : BitVec 32) : - (Option.bind (if x_2 = 0#32 ∨ 42#32 = intMin 32 ∧ x_2 = 4294967295#32 then none else some ((42#32).sdiv x_2)) fun a => - Option.bind (if x_2 = 0#32 ∨ 42#32 = intMin 32 ∧ x_2 = 4294967295#32 then none else some ((42#32).sdiv x_2)) - fun x_3 => some (a &&& ((x_1 ^^^ 4294967295#32) &&& x) ||| (x ||| x_1 ||| x_3) ^^^ 4294967295#32)) ⊑ - Option.bind (if x_2 = 0#32 ∨ 42#32 = intMin 32 ∧ x_2 = 4294967295#32 then none else some ((42#32).sdiv x_2)) - fun a => some ((a ^^^ x ||| x_1) ^^^ 4294967295#32) := sorry -warning: ././././SSA/Projects/InstCombine/tests/LLVM/gandhxorhor.lean:3133:8: declaration uses 'sorry' -info: ././././SSA/Projects/InstCombine/tests/LLVM/gandhxorhor.lean:3182:17: theorem extracted_1 (x x_1 x_2 : BitVec 32) : - (x_2 ^^^ 4294967295#32 ||| x_1 ||| x) &&& (x_1 &&& x_2 &&& x ^^^ 4294967295#32) = - x ^^^ x_1 ||| x_2 ^^^ 4294967295#32 := sorry -warning: ././././SSA/Projects/InstCombine/tests/LLVM/gandhxorhor.lean:3172:8: declaration uses 'sorry' -info: ././././SSA/Projects/InstCombine/tests/LLVM/gandhxorhor.lean:3221:17: theorem extracted_1 (x x_1 x_2 : BitVec 32) : - (x_2 ^^^ 4294967295#32 ||| x_1 ||| x) &&& (x &&& x_2 &&& x_1 ^^^ 4294967295#32) = - x ^^^ x_1 ||| x_2 ^^^ 4294967295#32 := sorry -warning: ././././SSA/Projects/InstCombine/tests/LLVM/gandhxorhor.lean:3211:8: declaration uses 'sorry' -info: ././././SSA/Projects/InstCombine/tests/LLVM/gandhxorhor.lean:3260:17: theorem extracted_1 (x x_1 x_2 : BitVec 32) : - (x_2 ^^^ 4294967295#32 ||| x_1 ||| x) &&& (x_1 &&& x &&& x_2 ^^^ 4294967295#32) = - x ^^^ x_1 ||| x_2 ^^^ 4294967295#32 := sorry -warning: ././././SSA/Projects/InstCombine/tests/LLVM/gandhxorhor.lean:3250:8: declaration uses 'sorry' -info: ././././SSA/Projects/InstCombine/tests/LLVM/gandhxorhor.lean:3299:17: theorem extracted_1 (x x_1 x_2 : BitVec 32) : - (x_2 ^^^ 4294967295#32 ||| x_1 ||| x) &&& (x &&& x_2 &&& x_1 ^^^ 4294967295#32) = - x ^^^ x_1 ||| x_2 ^^^ 4294967295#32 := sorry -warning: ././././SSA/Projects/InstCombine/tests/LLVM/gandhxorhor.lean:3289:8: declaration uses 'sorry' -info: ././././SSA/Projects/InstCombine/tests/LLVM/gandhxorhor.lean:3338:17: theorem extracted_1 (x x_1 x_2 : BitVec 32) : - (x_2 ||| x_1 ||| x ^^^ 4294967295#32) &&& (x_2 &&& x &&& x_1 ^^^ 4294967295#32) = - x_2 ^^^ x_1 ||| x ^^^ 4294967295#32 := sorry -warning: ././././SSA/Projects/InstCombine/tests/LLVM/gandhxorhor.lean:3328:8: declaration uses 'sorry' -info: ././././SSA/Projects/InstCombine/tests/LLVM/gandhxorhor.lean:3377:17: theorem extracted_1 (x x_1 x_2 : BitVec 32) : - (x_2 ^^^ 4294967295#32 ||| x_1 ||| x) &&& (x_2 &&& x_1 &&& x ^^^ 4294967295#32) = - x ^^^ x_1 ||| x_2 ^^^ 4294967295#32 := sorry -warning: ././././SSA/Projects/InstCombine/tests/LLVM/gandhxorhor.lean:3367:8: declaration uses 'sorry' -info: ././././SSA/Projects/InstCombine/tests/LLVM/gandhxorhor.lean:3420:17: theorem extracted_1 (x x_1 x_2 : BitVec 32) : - (Option.bind (if x = 0#32 ∨ 42#32 = intMin 32 ∧ x = 4294967295#32 then none else some ((42#32).sdiv x)) fun a => - Option.bind (if x = 0#32 ∨ 42#32 = intMin 32 ∧ x = 4294967295#32 then none else some ((42#32).sdiv x)) fun a_1 => - some ((x_2 ^^^ 4294967295#32 ||| x_1 ||| a) &&& (a_1 &&& (x_1 &&& x_2) ^^^ 4294967295#32))) ⊑ - Option.bind (if x = 0#32 ∨ 42#32 = intMin 32 ∧ x = 4294967295#32 then none else some ((42#32).sdiv x)) fun a => - some (a ^^^ x_1 ||| x_2 ^^^ 4294967295#32) := sorry -warning: ././././SSA/Projects/InstCombine/tests/LLVM/gandhxorhor.lean:3410:8: declaration uses 'sorry' -info: ././././SSA/Projects/InstCombine/tests/LLVM/gandhxorhor.lean:3463:17: theorem extracted_1 (x x_1 x_2 : BitVec 32) : - (Option.bind (if x_2 = 0#32 ∨ 42#32 = intMin 32 ∧ x_2 = 4294967295#32 then none else some ((42#32).sdiv x_2)) fun a => - Option.bind (if x_2 = 0#32 ∨ 42#32 = intMin 32 ∧ x_2 = 4294967295#32 then none else some ((42#32).sdiv x_2)) - fun a_1 => some ((a ||| x_1 ^^^ 4294967295#32 ||| x) &&& (a_1 &&& x_1 &&& x ^^^ 4294967295#32))) ⊑ - Option.bind (if x_2 = 0#32 ∨ 42#32 = intMin 32 ∧ x_2 = 4294967295#32 then none else some ((42#32).sdiv x_2)) - fun a => some (x ^^^ a ||| x_1 ^^^ 4294967295#32) := sorry -warning: ././././SSA/Projects/InstCombine/tests/LLVM/gandhxorhor.lean:3453:8: declaration uses 'sorry' -info: ././././SSA/Projects/InstCombine/tests/LLVM/gandhxorhor.lean:3506:17: theorem extracted_1 (x x_1 x_2 : BitVec 32) : - (Option.bind (if x_2 = 0#32 ∨ 42#32 = intMin 32 ∧ x_2 = 4294967295#32 then none else some ((42#32).sdiv x_2)) fun a => - Option.bind (if x_2 = 0#32 ∨ 42#32 = intMin 32 ∧ x_2 = 4294967295#32 then none else some ((42#32).sdiv x_2)) - fun x_3 => some ((a ||| (x_1 ^^^ 4294967295#32 ||| x)) &&& (x &&& x_1 &&& x_3 ^^^ 4294967295#32))) ⊑ - Option.bind (if x_2 = 0#32 ∨ 42#32 = intMin 32 ∧ x_2 = 4294967295#32 then none else some ((42#32).sdiv x_2)) - fun a => some (a ^^^ x ||| x_1 ^^^ 4294967295#32) := sorry -warning: ././././SSA/Projects/InstCombine/tests/LLVM/gandhxorhor.lean:3496:8: declaration uses 'sorry' -info: ././././SSA/Projects/InstCombine/tests/LLVM/gandhxorhor.lean:3545:17: theorem extracted_1 (x x_1 x_2 : BitVec 32) : - (x_2 ^^^ 4294967295#32) &&& x_1 &&& x ||| (x_1 ||| x_2) ^^^ 4294967295#32 = - (x ||| x_1 ^^^ 4294967295#32) &&& (x_2 ^^^ 4294967295#32) := sorry -warning: ././././SSA/Projects/InstCombine/tests/LLVM/gandhxorhor.lean:3535:8: declaration uses 'sorry' -info: ././././SSA/Projects/InstCombine/tests/LLVM/gandhxorhor.lean:3584:17: theorem extracted_1 (x x_1 x_2 : BitVec 32) : - x_2 &&& x_1 &&& (x ^^^ 4294967295#32) ||| (x_1 ||| x) ^^^ 4294967295#32 = - (x_2 ||| x_1 ^^^ 4294967295#32) &&& (x ^^^ 4294967295#32) := sorry -warning: ././././SSA/Projects/InstCombine/tests/LLVM/gandhxorhor.lean:3574:8: declaration uses 'sorry' -info: ././././SSA/Projects/InstCombine/tests/LLVM/gandhxorhor.lean:3623:17: theorem extracted_1 (x x_1 x_2 : BitVec 32) : - (x_2 ^^^ 4294967295#32) &&& x_1 &&& x ||| (x ||| x_2) ^^^ 4294967295#32 = - (x_1 ||| x ^^^ 4294967295#32) &&& (x_2 ^^^ 4294967295#32) := sorry -warning: ././././SSA/Projects/InstCombine/tests/LLVM/gandhxorhor.lean:3613:8: declaration uses 'sorry' -info: ././././SSA/Projects/InstCombine/tests/LLVM/gandhxorhor.lean:3662:17: theorem extracted_1 (x x_1 x_2 : BitVec 32) : - (x_2 ^^^ 4294967295#32) &&& x_1 &&& x ||| (x_2 ||| x_1) ^^^ 4294967295#32 = - (x ||| x_1 ^^^ 4294967295#32) &&& (x_2 ^^^ 4294967295#32) := sorry -warning: ././././SSA/Projects/InstCombine/tests/LLVM/gandhxorhor.lean:3652:8: declaration uses 'sorry' -info: ././././SSA/Projects/InstCombine/tests/LLVM/gandhxorhor.lean:3705:17: theorem extracted_1 (x x_1 x_2 : BitVec 32) : - (Option.bind (if x_2 = 0#32 ∨ 42#32 = intMin 32 ∧ x_2 = 4294967295#32 then none else some ((42#32).sdiv x_2)) fun a => - Option.bind (if x_2 = 0#32 ∨ 42#32 = intMin 32 ∧ x_2 = 4294967295#32 then none else some ((42#32).sdiv x_2)) - fun a_1 => some (a &&& (x_1 ^^^ 4294967295#32) &&& x ||| (a_1 ||| x_1) ^^^ 4294967295#32)) ⊑ - Option.bind (if x_2 = 0#32 ∨ 42#32 = intMin 32 ∧ x_2 = 4294967295#32 then none else some ((42#32).sdiv x_2)) - fun a => some ((x ||| a ^^^ 4294967295#32) &&& (x_1 ^^^ 4294967295#32)) := sorry -warning: ././././SSA/Projects/InstCombine/tests/LLVM/gandhxorhor.lean:3695:8: declaration uses 'sorry' -info: ././././SSA/Projects/InstCombine/tests/LLVM/gandhxorhor.lean:3748:17: theorem extracted_1 (x x_1 x_2 : BitVec 32) : - (Option.bind (if x_2 = 0#32 ∨ 42#32 = intMin 32 ∧ x_2 = 4294967295#32 then none else some ((42#32).sdiv x_2)) fun a => - some (a &&& ((x_1 ^^^ 4294967295#32) &&& x) ||| (x ||| x_1) ^^^ 4294967295#32)) ⊑ - Option.bind (if x_2 = 0#32 ∨ 42#32 = intMin 32 ∧ x_2 = 4294967295#32 then none else some ((42#32).sdiv x_2)) - fun a => some ((a ||| x ^^^ 4294967295#32) &&& (x_1 ^^^ 4294967295#32)) := sorry -warning: ././././SSA/Projects/InstCombine/tests/LLVM/gandhxorhor.lean:3738:8: declaration uses 'sorry' -info: ././././SSA/Projects/InstCombine/tests/LLVM/gandhxorhor.lean:3787:17: theorem extracted_1 (x x_1 x_2 : BitVec 32) : - (x_2 ^^^ 4294967295#32 ||| x_1 ||| x) &&& (x_1 &&& x_2 ^^^ 4294967295#32) = - x &&& (x_1 ^^^ 4294967295#32) ||| x_2 ^^^ 4294967295#32 := sorry -warning: ././././SSA/Projects/InstCombine/tests/LLVM/gandhxorhor.lean:3777:8: declaration uses 'sorry' -info: ././././SSA/Projects/InstCombine/tests/LLVM/gandhxorhor.lean:3826:17: theorem extracted_1 (x x_1 x_2 : BitVec 32) : - (x_2 ||| x_1 ||| x ^^^ 4294967295#32) &&& (x_1 &&& x ^^^ 4294967295#32) = - x_2 &&& (x_1 ^^^ 4294967295#32) ||| x ^^^ 4294967295#32 := sorry -warning: ././././SSA/Projects/InstCombine/tests/LLVM/gandhxorhor.lean:3816:8: declaration uses 'sorry' -info: ././././SSA/Projects/InstCombine/tests/LLVM/gandhxorhor.lean:3865:17: theorem extracted_1 (x x_1 x_2 : BitVec 32) : - (x_2 ^^^ 4294967295#32 ||| x_1 ||| x) &&& (x &&& x_2 ^^^ 4294967295#32) = - x_1 &&& (x ^^^ 4294967295#32) ||| x_2 ^^^ 4294967295#32 := sorry -warning: ././././SSA/Projects/InstCombine/tests/LLVM/gandhxorhor.lean:3855:8: declaration uses 'sorry' -info: ././././SSA/Projects/InstCombine/tests/LLVM/gandhxorhor.lean:3904:17: theorem extracted_1 (x x_1 x_2 : BitVec 32) : - (x_2 ^^^ 4294967295#32 ||| x_1 ||| x) &&& (x_2 &&& x_1 ^^^ 4294967295#32) = - x &&& (x_1 ^^^ 4294967295#32) ||| x_2 ^^^ 4294967295#32 := sorry -warning: ././././SSA/Projects/InstCombine/tests/LLVM/gandhxorhor.lean:3894:8: declaration uses 'sorry' -info: ././././SSA/Projects/InstCombine/tests/LLVM/gandhxorhor.lean:3947:17: theorem extracted_1 (x x_1 x_2 : BitVec 32) : - (Option.bind (if x_2 = 0#32 ∨ 42#32 = intMin 32 ∧ x_2 = 4294967295#32 then none else some ((42#32).sdiv x_2)) fun a => - Option.bind (if x_2 = 0#32 ∨ 42#32 = intMin 32 ∧ x_2 = 4294967295#32 then none else some ((42#32).sdiv x_2)) - fun a_1 => some ((a ||| x_1 ^^^ 4294967295#32 ||| x) &&& (a_1 &&& x_1 ^^^ 4294967295#32))) ⊑ - Option.bind (if x_2 = 0#32 ∨ 42#32 = intMin 32 ∧ x_2 = 4294967295#32 then none else some ((42#32).sdiv x_2)) - fun a => some (x &&& (a ^^^ 4294967295#32) ||| x_1 ^^^ 4294967295#32) := sorry -warning: ././././SSA/Projects/InstCombine/tests/LLVM/gandhxorhor.lean:3937:8: declaration uses 'sorry' -info: ././././SSA/Projects/InstCombine/tests/LLVM/gandhxorhor.lean:3990:17: theorem extracted_1 (x x_1 x_2 : BitVec 32) : - (Option.bind (if x_2 = 0#32 ∨ 42#32 = intMin 32 ∧ x_2 = 4294967295#32 then none else some ((42#32).sdiv x_2)) fun a => - some ((a ||| (x_1 ^^^ 4294967295#32 ||| x)) &&& (x &&& x_1 ^^^ 4294967295#32))) ⊑ - Option.bind (if x_2 = 0#32 ∨ 42#32 = intMin 32 ∧ x_2 = 4294967295#32 then none else some ((42#32).sdiv x_2)) - fun a => some (a &&& (x ^^^ 4294967295#32) ||| x_1 ^^^ 4294967295#32) := sorry -warning: ././././SSA/Projects/InstCombine/tests/LLVM/gandhxorhor.lean:3980:8: declaration uses 'sorry' -info: ././././SSA/Projects/InstCombine/tests/LLVM/gandhxorhor.lean:4025:17: theorem extracted_1 (x x_1 : BitVec 4) : (x_1 ^^^ 15#4 ||| x) &&& (x_1 ^^^ x) = x &&& (x_1 ^^^ 15#4) := sorry -warning: ././././SSA/Projects/InstCombine/tests/LLVM/gandhxorhor.lean:4015:8: declaration uses 'sorry' -info: ././././SSA/Projects/InstCombine/tests/LLVM/gandhxorhor.lean:4064:17: theorem extracted_1 (x x_1 : BitVec 32) : - (x_1 * x_1 ^^^ x * x) &&& (x_1 * x_1 ||| x * x ^^^ 4294967295#32) = x_1 * x_1 &&& (x * x ^^^ 4294967295#32) := sorry -warning: ././././SSA/Projects/InstCombine/tests/LLVM/gandhxorhor.lean:4054:8: declaration uses 'sorry' -info: ././././SSA/Projects/InstCombine/tests/LLVM/gandhxorhor.lean:4099:17: theorem extracted_1 (x : BitVec 32) : x + 112#32 ||| 15#32 = (x ||| 15#32) + 112#32 := sorry -warning: ././././SSA/Projects/InstCombine/tests/LLVM/gandhxorhor.lean:4089:8: declaration uses 'sorry' -info: ././././SSA/Projects/InstCombine/tests/LLVM/gandhxorhor.lean:4134:17: theorem extracted_1 (x : BitVec 32) : - ((if x.msb = (112#32).msb ∧ ¬(x + 112#32).msb = x.msb then none else some (x + 112#32)).bind fun x' => - some (x' ||| 15#32)) ⊑ - if (x.msb || (15#32).msb) = (112#32).msb ∧ ¬((x ||| 15#32) + 112#32).msb = (x.msb || (15#32).msb) then none - else some ((x ||| 15#32) + 112#32) := sorry -warning: ././././SSA/Projects/InstCombine/tests/LLVM/gandhxorhor.lean:4124:8: declaration uses 'sorry' -info: ././././SSA/Projects/InstCombine/tests/LLVM/gandhxorhor.lean:4169:17: theorem extracted_1 (x : BitVec 32) : - ((if x.msb = (112#32).msb ∧ ¬(x + 112#32).msb = x.msb then none - else if x + 112#32 < x ∨ x + 112#32 < 112#32 then none else some (x + 112#32)).bind - fun x' => some (x' ||| 15#32)) ⊑ - if (x.msb || (15#32).msb) = (112#32).msb ∧ ¬((x ||| 15#32) + 112#32).msb = (x.msb || (15#32).msb) then none - else - if (x ||| 15#32) + 112#32 < x ||| 15#32 ∨ (x ||| 15#32) + 112#32 < 112#32 then none - else some ((x ||| 15#32) + 112#32) := sorry -warning: ././././SSA/Projects/InstCombine/tests/LLVM/gandhxorhor.lean:4159:8: declaration uses 'sorry' -info: ././././SSA/Projects/InstCombine/tests/LLVM/gandhxorhor.lean:4204:17: theorem extracted_1 (x : BitVec 8) : x + 48#8 &&& 246#8 = (x &&& 246#8) + 48#8 := sorry -warning: ././././SSA/Projects/InstCombine/tests/LLVM/gandhxorhor.lean:4194:8: declaration uses 'sorry' -info: ././././SSA/Projects/InstCombine/tests/LLVM/gandhxorhor.lean:4239:17: theorem extracted_1 (x : BitVec 8) : - ((if x.msb = (48#8).msb ∧ ¬(x + 48#8).msb = x.msb then none else some (x + 48#8)).bind fun x' => - some (x' &&& 246#8)) ⊑ - if (x.msb && (246#8).msb) = (48#8).msb ∧ ¬((x &&& 246#8) + 48#8).msb = (x.msb && (246#8).msb) then none - else some ((x &&& 246#8) + 48#8) := sorry -warning: ././././SSA/Projects/InstCombine/tests/LLVM/gandhxorhor.lean:4229:8: declaration uses 'sorry' -info: ././././SSA/Projects/InstCombine/tests/LLVM/gandhxorhor.lean:4274:17: theorem extracted_1 (x : BitVec 8) : - ((if x.msb = (48#8).msb ∧ ¬(x + 48#8).msb = x.msb then none - else if x + 48#8 < x ∨ x + 48#8 < 48#8 then none else some (x + 48#8)).bind - fun x' => some (x' &&& 246#8)) ⊑ - if (x.msb && (246#8).msb) = (48#8).msb ∧ ¬((x &&& 246#8) + 48#8).msb = (x.msb && (246#8).msb) then none - else - if (x &&& 246#8) + 48#8 < x &&& 246#8 ∨ (x &&& 246#8) + 48#8 < 48#8 then none - else some ((x &&& 246#8) + 48#8) := sorry -warning: ././././SSA/Projects/InstCombine/tests/LLVM/gandhxorhor.lean:4264:8: declaration uses 'sorry' -info: ././././SSA/Projects/InstCombine/tests/LLVM/gandhxorhor.lean:4309:17: theorem extracted_1 (x : BitVec 8) : x + 96#8 ^^^ 31#8 = (x ^^^ 31#8) + 96#8 := sorry -warning: ././././SSA/Projects/InstCombine/tests/LLVM/gandhxorhor.lean:4299:8: declaration uses 'sorry' -info: ././././SSA/Projects/InstCombine/tests/LLVM/gandhxorhor.lean:4344:17: theorem extracted_1 (x : BitVec 8) : - ((if x.msb = (96#8).msb ∧ ¬(x + 96#8).msb = x.msb then none else some (x + 96#8)).bind fun x' => some (x' ^^^ 31#8)) ⊑ - if (x.msb ^^ (31#8).msb) = (96#8).msb ∧ ¬((x ^^^ 31#8) + 96#8).msb = (x.msb ^^ (31#8).msb) then none - else some ((x ^^^ 31#8) + 96#8) := sorry -warning: ././././SSA/Projects/InstCombine/tests/LLVM/gandhxorhor.lean:4334:8: declaration uses 'sorry' -info: ././././SSA/Projects/InstCombine/tests/LLVM/gandhxorhor.lean:4379:17: theorem extracted_1 (x : BitVec 8) : - ((if x.msb = (96#8).msb ∧ ¬(x + 96#8).msb = x.msb then none - else if x + 96#8 < x ∨ x + 96#8 < 96#8 then none else some (x + 96#8)).bind - fun x' => some (x' ^^^ 31#8)) ⊑ - if (x.msb ^^ (31#8).msb) = (96#8).msb ∧ ¬((x ^^^ 31#8) + 96#8).msb = (x.msb ^^ (31#8).msb) then none - else - if (x ^^^ 31#8) + 96#8 < x ^^^ 31#8 ∨ (x ^^^ 31#8) + 96#8 < 96#8 then none - else some ((x ^^^ 31#8) + 96#8) := sorry -warning: ././././SSA/Projects/InstCombine/tests/LLVM/gandhxorhor.lean:4369:8: declaration uses 'sorry' -error: Lean exited with code 1 -Some required builds logged failures: -- SSA.Projects.InstCombine.tests.LLVM.gandhxorhor -error: build failed diff --git a/SSA/Projects/InstCombine/tests/logs/gandhxorhor_proof.txt b/SSA/Projects/InstCombine/tests/logs/gandhxorhor_proof.txt new file mode 100644 index 000000000..7ee55c479 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/gandhxorhor_proof.txt @@ -0,0 +1,925 @@ +⚠ [49/2462] Replayed Mathlib.Logic.Basic +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Basic.lean:155:8: `dec_em'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Basic.lean:159:8: `em'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Basic.lean:304:8: `or_congr_left'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Basic.lean:307:8: `or_congr_right'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Basic.lean:320:8: `imp_or'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Basic.lean:359:8: `xor_iff_not_iff'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Basic.lean:418:8: `eqRec_heq'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Basic.lean:511:8: `forall_true_iff'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Basic.lean:532:8: `exists_apply_eq_apply'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Basic.lean:539:6: `exists_apply_eq_apply2'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Basic.lean:548:6: `exists_apply_eq_apply3'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Basic.lean:575:8: `forall_apply_eq_imp_iff'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Basic.lean:578:8: `forall_eq_apply_imp_iff'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Basic.lean:638:8: `forall_prop_congr'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Basic.lean:711:6: `Classical.choose_eq'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Basic.lean:847:8: `dite_eq_iff'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Basic.lean:851:8: `ite_eq_iff'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +⚠ [66/2462] Replayed Mathlib.Algebra.NeZero +warning: ././.lake/packages/mathlib/././Mathlib/Algebra/NeZero.lean:44:6: `zero_ne_one'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Algebra/NeZero.lean:46:6: `one_ne_zero'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Algebra/NeZero.lean:48:6: `two_ne_zero'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Algebra/NeZero.lean:50:6: `three_ne_zero'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Algebra/NeZero.lean:52:6: `four_ne_zero'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +⚠ [69/2462] Replayed Mathlib.Logic.ExistsUnique +warning: ././.lake/packages/mathlib/././Mathlib/Logic/ExistsUnique.lean:109:16: `exists_unique_eq'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +⚠ [74/2462] Replayed Mathlib.Logic.Function.Basic +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Function/Basic.lean:78:8: `Function.Injective.eq_iff'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Function/Basic.lean:87:8: `Function.Injective.ne_iff'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Function/Basic.lean:117:8: `Function.Injective.of_comp_iff'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Function/Basic.lean:163:8: `Function.Surjective.of_comp_iff'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Function/Basic.lean:237:8: `Function.Bijective.of_comp_iff'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Function/Basic.lean:541:8: `Function.update_comp_eq_of_forall_ne'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Function/Basic.lean:552:8: `Function.update_comp_eq_of_injective'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Function/Basic.lean:649:8: `Function.extend_apply'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Function/Basic.lean:681:8: `Function.Injective.surjective_comp_right'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +⚠ [94/2462] Replayed Mathlib.Control.Combinators +warning: ././.lake/packages/mathlib/././Mathlib/Control/Combinators.lean:35:4: `Monad.mapM'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Control/Combinators.lean:57:4: `Monad.sequence'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +⚠ [96/2462] Replayed Mathlib.Logic.IsEmpty +warning: ././.lake/packages/mathlib/././Mathlib/Logic/IsEmpty.lean:36:9: `Fin.isEmpty'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +⚠ [229/2462] Replayed Mathlib.Data.Prod.PProd +warning: ././.lake/packages/mathlib/././Mathlib/Data/Prod/PProd.lean:35:8: `PProd.forall'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Data/Prod/PProd.lean:38:8: `PProd.exists'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +⚠ [230/2462] Replayed Mathlib.Data.Bool.Basic +warning: ././.lake/packages/mathlib/././Mathlib/Data/Bool/Basic.lean:156:8: `Bool.eq_true_of_not_eq_false'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Data/Bool/Basic.lean:159:8: `Bool.eq_false_of_not_eq_true'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +⚠ [232/2462] Replayed Mathlib.Logic.Function.Iterate +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Function/Iterate.lean:160:8: `Function.iterate_succ'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Function/Iterate.lean:163:8: `Function.iterate_succ_apply'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +⚠ [234/2462] Replayed Mathlib.Data.Prod.Basic +warning: ././.lake/packages/mathlib/././Mathlib/Data/Prod/Basic.lean:31:8: `Prod.forall'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Data/Prod/Basic.lean:34:8: `Prod.exists'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Data/Prod/Basic.lean:51:8: `Prod.map_apply'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Data/Prod/Basic.lean:54:8: `Prod.map_fst'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Data/Prod/Basic.lean:57:8: `Prod.map_snd'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +⚠ [235/2462] Replayed Mathlib.Data.Sigma.Basic +warning: ././.lake/packages/mathlib/././Mathlib/Data/Sigma/Basic.lean:90:6: `Sigma.exists'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Data/Sigma/Basic.lean:93:6: `Sigma.forall'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +⚠ [239/2462] Replayed Mathlib.Data.FunLike.Basic +warning: ././.lake/packages/mathlib/././Mathlib/Data/FunLike/Basic.lean:187:8: `DFunLike.ext'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +⚠ [244/2462] Replayed Mathlib.Logic.Relation +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Relation.lean:351:8: `Relation.TransGen.head'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Relation.lean:354:8: `Relation.TransGen.tail'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Relation.lean:444:8: `Relation.TransGen.lift'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Relation.lean:453:6: `Relation.TransGen.closed'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Relation.lean:523:8: `Relation.ReflTransGen.lift'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +⚠ [245/2462] Replayed Mathlib.Logic.Unique +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Unique.lean:131:18: `Unique.subsingleton_unique'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Unique.lean:259:9: `Unique.subtypeEq'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +⚠ [252/2462] Replayed Mathlib.Data.Quot +warning: ././.lake/packages/mathlib/././Mathlib/Data/Quot.lean:558:18: `Quotient.liftOn'_mk''` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Data/Quot.lean:562:14: `Quotient.surjective_liftOn'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Data/Quot.lean:573:18: `Quotient.liftOn₂'_mk''` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Data/Quot.lean:639:8: `Quotient.hrecOn'_mk''` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Data/Quot.lean:652:8: `Quotient.hrecOn₂'_mk''` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Data/Quot.lean:664:8: `Quotient.map'_mk''` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Data/Quot.lean:674:8: `Quotient.map₂'_mk''` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Data/Quot.lean:679:8: `Quotient.exact'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Data/Quot.lean:683:8: `Quotient.sound'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Data/Quot.lean:687:18: `Quotient.eq'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Data/Quot.lean:692:18: `Quotient.eq''` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Data/Quot.lean:701:8: `Quotient.out_eq'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Data/Quot.lean:704:8: `Quotient.mk_out'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +⚠ [256/2462] Replayed Mathlib.Tactic.Lift +warning: ././.lake/packages/mathlib/././Mathlib/Tactic/Lift.lean:49:9: `PiSubtype.canLift'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +⚠ [409/2462] Replayed Mathlib.Algebra.Group.Defs +warning: ././.lake/packages/mathlib/././Mathlib/Algebra/Group/Defs.lean:735:33: `pow_succ'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Algebra/Group/Defs.lean:740:6: `pow_mul_comm'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Algebra/Group/Defs.lean:749:6: `pow_three'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Algebra/Group/Defs.lean:772:6: `pow_mul'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +⚠ [443/2462] Replayed Mathlib.Data.List.Defs +warning: ././.lake/packages/mathlib/././Mathlib/Data/List/Defs.lean:241:9: `List.decidableChain'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +⚠ [474/2462] Replayed Mathlib.Control.Applicative +warning: ././.lake/packages/mathlib/././Mathlib/Control/Applicative.lean:34:8: `Applicative.pure_seq_eq_map'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +⚠ [475/2462] Replayed Mathlib.Control.Traversable.Basic +warning: ././.lake/packages/mathlib/././Mathlib/Control/Traversable/Basic.lean:139:8: `ApplicativeTransformation.preserves_map'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +⚠ [618/2462] Replayed Mathlib.Algebra.GroupWithZero.Defs +warning: ././.lake/packages/mathlib/././Mathlib/Algebra/GroupWithZero/Defs.lean:110:8: `mul_left_inj'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Algebra/GroupWithZero/Defs.lean:113:8: `mul_right_inj'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +⚠ [624/2462] Replayed Mathlib.Algebra.Group.Invertible.Defs +warning: ././.lake/packages/mathlib/././Mathlib/Algebra/Group/Invertible/Defs.lean:97:8: `invOf_mul_self'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Algebra/Group/Invertible/Defs.lean:103:8: `mul_invOf_self'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Algebra/Group/Invertible/Defs.lean:109:8: `invOf_mul_cancel_left'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Algebra/Group/Invertible/Defs.lean:120:8: `mul_invOf_cancel_left'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Algebra/Group/Invertible/Defs.lean:131:8: `invOf_mul_cancel_right'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Algebra/Group/Invertible/Defs.lean:142:8: `mul_invOf_cancel_right'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Algebra/Group/Invertible/Defs.lean:198:8: `invOf_one'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +⚠ [1184/2462] Replayed Mathlib.Control.Traversable.Lemmas +warning: ././.lake/packages/mathlib/././Mathlib/Control/Traversable/Lemmas.lean:87:8: `Traversable.naturality'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Control/Traversable/Lemmas.lean:102:8: `Traversable.traverse_eq_map_id'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Control/Traversable/Lemmas.lean:108:8: `Traversable.traverse_map'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Control/Traversable/Lemmas.lean:113:8: `Traversable.map_traverse'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +⚠ [2407/2462] Replayed Mathlib.Data.List.EditDistance.Defs +warning: ././.lake/packages/mathlib/././Mathlib/Data/List/EditDistance/Defs.lean:214:8: `suffixLevenshtein_nil'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +⚠ [2447/2462] Replayed SSA.Experimental.Bits.Fast.FiniteStateMachine +warning: ././././SSA/Experimental/Bits/Fast/FiniteStateMachine.lean:107:8: declaration uses 'sorry' +warning: ././././SSA/Experimental/Bits/Fast/FiniteStateMachine.lean:825:8: declaration uses 'sorry' +⚠ [2451/2462] Replayed SSA.Experimental.Bits.Fast.Tactic +warning: ././././SSA/Experimental/Bits/Fast/Tactic.lean:340:4: declaration uses 'sorry' +⚠ [2452/2462] Replayed SSA.Experimental.Bits.AutoStructs.ForLean +warning: ././././SSA/Experimental/Bits/AutoStructs/ForLean.lean:24:8: declaration uses 'sorry' +warning: ././././SSA/Experimental/Bits/AutoStructs/ForLean.lean:27:8: declaration uses 'sorry' +warning: ././././SSA/Experimental/Bits/AutoStructs/ForLean.lean:29:8: declaration uses 'sorry' +warning: ././././SSA/Experimental/Bits/AutoStructs/ForLean.lean:31:8: declaration uses 'sorry' +warning: ././././SSA/Experimental/Bits/AutoStructs/ForLean.lean:34:8: declaration uses 'sorry' +warning: ././././SSA/Experimental/Bits/AutoStructs/ForLean.lean:36:8: declaration uses 'sorry' +warning: ././././SSA/Experimental/Bits/AutoStructs/ForLean.lean:38:8: declaration uses 'sorry' +warning: ././././SSA/Experimental/Bits/AutoStructs/ForLean.lean:41:8: declaration uses 'sorry' +warning: ././././SSA/Experimental/Bits/AutoStructs/ForLean.lean:52:8: declaration uses 'sorry' +warning: ././././SSA/Experimental/Bits/AutoStructs/ForLean.lean:56:8: declaration uses 'sorry' +⚠ [2457/2462] Replayed SSA.Experimental.Bits.AutoStructs.Constructions +warning: ././././SSA/Experimental/Bits/AutoStructs/Constructions.lean:55:6: declaration uses 'sorry' +warning: ././././SSA/Experimental/Bits/AutoStructs/Constructions.lean:128:6: declaration uses 'sorry' +warning: ././././SSA/Experimental/Bits/AutoStructs/Constructions.lean:163:6: declaration uses 'sorry' +warning: ././././SSA/Experimental/Bits/AutoStructs/Constructions.lean:197:6: declaration uses 'sorry' +⚠ [2458/2462] Replayed SSA.Experimental.Bits.AutoStructs.FiniteStateMachine +warning: ././././SSA/Experimental/Bits/AutoStructs/FiniteStateMachine.lean:111:8: declaration uses 'sorry' +✖ [2462/2462] Building SSA.Projects.InstCombine.tests.LLVM.gandhxorhor +trace: .> LEAN_PATH=././.lake/packages/batteries/.lake/build/lib:././.lake/packages/Qq/.lake/build/lib:././.lake/packages/aesop/.lake/build/lib:././.lake/packages/proofwidgets/.lake/build/lib:././.lake/packages/Cli/.lake/build/lib:././.lake/packages/importGraph/.lake/build/lib:././.lake/packages/LeanSearchClient/.lake/build/lib:././.lake/packages/mathlib/.lake/build/lib:././.lake/packages/MD4Lean/.lake/build/lib:././.lake/packages/UnicodeBasic/.lake/build/lib:././.lake/packages/BibtexQuery/.lake/build/lib:././.lake/packages/doc-gen4/.lake/build/lib:././.lake/packages/leanwuzla/.lake/build/lib:././.lake/build/lib LD_LIBRARY_PATH= /home/lfrenot/.elan/toolchains/leanprover--lean4---nightly-2024-10-17/bin/lean ././././SSA/Projects/InstCombine/tests/LLVM/gandhxorhor.lean -R ./././. -o ././.lake/build/lib/SSA/Projects/InstCombine/tests/LLVM/gandhxorhor.olean -i ././.lake/build/lib/SSA/Projects/InstCombine/tests/LLVM/gandhxorhor.ilean -c ././.lake/build/ir/SSA/Projects/InstCombine/tests/LLVM/gandhxorhor.c --json +info: ././././SSA/Projects/InstCombine/tests/LLVM/gandhxorhor.lean:51:17: theorem extracted_1 (x x_1 : BitVec 32) : + (Option.bind (if x_1 = 0#32 then none else some (42#32 / x_1)) fun a => + Option.bind (if x_1 = 0#32 then none else some (42#32 / x_1)) fun a_1 => + Option.bind (if x = 0#32 then none else some (43#32 / x)) fun x => some (a &&& (a_1 ^^^ x))) ⊑ + Option.bind (if x_1 = 0#32 then none else some (42#32 / x_1)) fun a => + Option.bind (if x = 0#32 then none else some (43#32 / x)) fun x => some (a &&& (x ^^^ 4294967295#32)) := sorry +warning: ././././SSA/Projects/InstCombine/tests/LLVM/gandhxorhor.lean:41:8: declaration uses 'sorry' +info: ././././SSA/Projects/InstCombine/tests/LLVM/gandhxorhor.lean:91:17: theorem extracted_1 (x x_1 : BitVec 32) : + (Option.bind (if x_1 = 0#32 then none else some (42#32 / x_1)) fun a => + Option.bind (if x = 0#32 then none else some (43#32 / x)) fun a_1 => + Option.bind (if x_1 = 0#32 then none else some (42#32 / x_1)) fun x => some (a &&& (a_1 ^^^ x))) ⊑ + Option.bind (if x_1 = 0#32 then none else some (42#32 / x_1)) fun a => + Option.bind (if x = 0#32 then none else some (43#32 / x)) fun x => some (a &&& (x ^^^ 4294967295#32)) := sorry +warning: ././././SSA/Projects/InstCombine/tests/LLVM/gandhxorhor.lean:81:8: declaration uses 'sorry' +info: ././././SSA/Projects/InstCombine/tests/LLVM/gandhxorhor.lean:131:17: theorem extracted_1 (x x_1 : BitVec 32) : + (Option.bind (if x_1 = 0#32 then none else some (43#32 / x_1)) fun a => + Option.bind (if x = 0#32 then none else some (42#32 / x)) fun a_1 => + Option.bind (if x = 0#32 then none else some (42#32 / x)) fun y' => some ((a ^^^ a_1) &&& y')) ⊑ + Option.bind (if x = 0#32 then none else some (42#32 / x)) fun a => + Option.bind (if x_1 = 0#32 then none else some (43#32 / x_1)) fun x => some (a &&& (x ^^^ 4294967295#32)) := sorry +warning: ././././SSA/Projects/InstCombine/tests/LLVM/gandhxorhor.lean:121:8: declaration uses 'sorry' +info: ././././SSA/Projects/InstCombine/tests/LLVM/gandhxorhor.lean:163:17: theorem extracted_1 (x x_1 : BitVec 32) : (x_1 ^^^ (x ^^^ 4294967295#32)) &&& x_1 = x_1 &&& x := sorry +warning: ././././SSA/Projects/InstCombine/tests/LLVM/gandhxorhor.lean:153:8: declaration uses 'sorry' +info: ././././SSA/Projects/InstCombine/tests/LLVM/gandhxorhor.lean:195:17: theorem extracted_1 (x x_1 : BitVec 32) : (x_1 ^^^ x ^^^ 4294967295#32) &&& x = x &&& x_1 := sorry +warning: ././././SSA/Projects/InstCombine/tests/LLVM/gandhxorhor.lean:185:8: declaration uses 'sorry' +info: ././././SSA/Projects/InstCombine/tests/LLVM/gandhxorhor.lean:257:17: theorem extracted_1 (x x_1 : BitVec 64) : x_1 &&& x ||| x_1 ^^^ x = x_1 ||| x := sorry +warning: ././././SSA/Projects/InstCombine/tests/LLVM/gandhxorhor.lean:247:8: declaration uses 'sorry' +info: ././././SSA/Projects/InstCombine/tests/LLVM/gandhxorhor.lean:295:17: theorem extracted_1 (x x_1 x_2 : BitVec 64) : + (Option.bind (if x_2 = 0#64 then none else some (42#64 / x_2)) fun a => + Option.bind (if x_1 = 0#64 then none else some (42#64 / x_1)) fun a_1 => + Option.bind (if x = 0#64 then none else some (42#64 / x)) fun a_2 => + Option.bind (if x_1 = 0#64 then none else some (42#64 / x_1)) fun y' => some (a &&& a_1 ^^^ a_2 ||| y')) ⊑ + Option.bind (if x = 0#64 then none else some (42#64 / x)) fun a => + Option.bind (if x_1 = 0#64 then none else some (42#64 / x_1)) fun y' => some (a ||| y') := sorry +warning: ././././SSA/Projects/InstCombine/tests/LLVM/gandhxorhor.lean:285:8: declaration uses 'sorry' +info: ././././SSA/Projects/InstCombine/tests/LLVM/gandhxorhor.lean:333:17: theorem extracted_1 (x x_1 x_2 : BitVec 64) : + (Option.bind (if x_2 = 0#64 then none else some (42#64 / x_2)) fun a => + Option.bind (if x_1 = 0#64 then none else some (42#64 / x_1)) fun a_1 => + Option.bind (if x = 0#64 then none else some (42#64 / x)) fun a_2 => + Option.bind (if x_2 = 0#64 then none else some (42#64 / x_2)) fun y' => some (a &&& a_1 ^^^ a_2 ||| y')) ⊑ + Option.bind (if x = 0#64 then none else some (42#64 / x)) fun a => + Option.bind (if x_2 = 0#64 then none else some (42#64 / x_2)) fun y' => some (a ||| y') := sorry +warning: ././././SSA/Projects/InstCombine/tests/LLVM/gandhxorhor.lean:323:8: declaration uses 'sorry' +info: ././././SSA/Projects/InstCombine/tests/LLVM/gandhxorhor.lean:371:17: theorem extracted_1 (x x_1 x_2 : BitVec 64) : + (Option.bind (if x_2 = 0#64 then none else some (42#64 / x_2)) fun a => + Option.bind (if x_1 = 0#64 then none else some (42#64 / x_1)) fun a_1 => + Option.bind (if x = 0#64 then none else some (42#64 / x)) fun a_2 => + Option.bind (if x = 0#64 then none else some (42#64 / x)) fun y' => some (a ^^^ a_1 &&& a_2 ||| y')) ⊑ + Option.bind (if x_2 = 0#64 then none else some (42#64 / x_2)) fun a => + Option.bind (if x = 0#64 then none else some (42#64 / x)) fun y' => some (a ||| y') := sorry +warning: ././././SSA/Projects/InstCombine/tests/LLVM/gandhxorhor.lean:361:8: declaration uses 'sorry' +info: ././././SSA/Projects/InstCombine/tests/LLVM/gandhxorhor.lean:409:17: theorem extracted_1 (x x_1 x_2 : BitVec 64) : + (Option.bind (if x_2 = 0#64 then none else some (42#64 / x_2)) fun a => + Option.bind (if x_1 = 0#64 then none else some (42#64 / x_1)) fun a_1 => + Option.bind (if x = 0#64 then none else some (42#64 / x)) fun a_2 => + Option.bind (if x_1 = 0#64 then none else some (42#64 / x_1)) fun y' => some (a ^^^ a_1 &&& a_2 ||| y')) ⊑ + Option.bind (if x_2 = 0#64 then none else some (42#64 / x_2)) fun a => + Option.bind (if x_1 = 0#64 then none else some (42#64 / x_1)) fun y' => some (a ||| y') := sorry +warning: ././././SSA/Projects/InstCombine/tests/LLVM/gandhxorhor.lean:399:8: declaration uses 'sorry' +info: ././././SSA/Projects/InstCombine/tests/LLVM/gandhxorhor.lean:447:17: theorem extracted_1 (x x_1 x_2 : BitVec 64) : + (Option.bind (if x_2 = 0#64 then none else some (42#64 / x_2)) fun a => + Option.bind (if x_1 = 0#64 then none else some (42#64 / x_1)) fun a_1 => + Option.bind (if x_2 = 0#64 then none else some (42#64 / x_2)) fun a_2 => + Option.bind (if x = 0#64 then none else some (42#64 / x)) fun x => some (a ||| a_1 &&& a_2 ^^^ x)) ⊑ + Option.bind (if x_2 = 0#64 then none else some (42#64 / x_2)) fun a => + Option.bind (if x = 0#64 then none else some (42#64 / x)) fun y' => some (a ||| y') := sorry +warning: ././././SSA/Projects/InstCombine/tests/LLVM/gandhxorhor.lean:437:8: declaration uses 'sorry' +info: ././././SSA/Projects/InstCombine/tests/LLVM/gandhxorhor.lean:485:17: theorem extracted_1 (x x_1 x_2 : BitVec 64) : + (Option.bind (if x_2 = 0#64 then none else some (42#64 / x_2)) fun a => + Option.bind (if x_2 = 0#64 then none else some (42#64 / x_2)) fun a_1 => + Option.bind (if x_1 = 0#64 then none else some (42#64 / x_1)) fun a_2 => + Option.bind (if x = 0#64 then none else some (42#64 / x)) fun x => some (a ||| a_1 &&& a_2 ^^^ x)) ⊑ + Option.bind (if x_2 = 0#64 then none else some (42#64 / x_2)) fun a => + Option.bind (if x = 0#64 then none else some (42#64 / x)) fun y' => some (a ||| y') := sorry +warning: ././././SSA/Projects/InstCombine/tests/LLVM/gandhxorhor.lean:475:8: declaration uses 'sorry' +info: ././././SSA/Projects/InstCombine/tests/LLVM/gandhxorhor.lean:523:17: theorem extracted_1 (x x_1 x_2 : BitVec 64) : + (Option.bind (if x_2 = 0#64 then none else some (42#64 / x_2)) fun a => + Option.bind (if x_1 = 0#64 then none else some (42#64 / x_1)) fun a_1 => + Option.bind (if x = 0#64 then none else some (42#64 / x)) fun a_2 => + Option.bind (if x_2 = 0#64 then none else some (42#64 / x_2)) fun x => some (a ||| a_1 ^^^ a_2 &&& x)) ⊑ + Option.bind (if x_2 = 0#64 then none else some (42#64 / x_2)) fun a => + Option.bind (if x_1 = 0#64 then none else some (42#64 / x_1)) fun y' => some (a ||| y') := sorry +warning: ././././SSA/Projects/InstCombine/tests/LLVM/gandhxorhor.lean:513:8: declaration uses 'sorry' +info: ././././SSA/Projects/InstCombine/tests/LLVM/gandhxorhor.lean:561:17: theorem extracted_1 (x x_1 x_2 : BitVec 64) : + (Option.bind (if x_2 = 0#64 then none else some (42#64 / x_2)) fun a => + Option.bind (if x_1 = 0#64 then none else some (42#64 / x_1)) fun a_1 => + Option.bind (if x_2 = 0#64 then none else some (42#64 / x_2)) fun a_2 => + Option.bind (if x = 0#64 then none else some (42#64 / x)) fun x => some (a ||| a_1 ^^^ a_2 &&& x)) ⊑ + Option.bind (if x_2 = 0#64 then none else some (42#64 / x_2)) fun a => + Option.bind (if x_1 = 0#64 then none else some (42#64 / x_1)) fun y' => some (a ||| y') := sorry +warning: ././././SSA/Projects/InstCombine/tests/LLVM/gandhxorhor.lean:551:8: declaration uses 'sorry' +info: ././././SSA/Projects/InstCombine/tests/LLVM/gandhxorhor.lean:595:17: theorem extracted_1 (x x_1 x_2 x_3 : BitVec 8) : + (Option.bind (if 8#8 ≤ x_2 then none else some (x_3 <<< x_2.toNat)) fun a => + Option.bind (if 8#8 ≤ x_2 then none else some (x_1 <<< x_2.toNat)) fun a_1 => some (a &&& (a_1 &&& x))) ⊑ + Option.bind (if 8#8 ≤ x_2 then none else some ((x_1 &&& x_3) <<< x_2.toNat)) fun a => some (a &&& x) := sorry +warning: ././././SSA/Projects/InstCombine/tests/LLVM/gandhxorhor.lean:585:8: declaration uses 'sorry' +info: ././././SSA/Projects/InstCombine/tests/LLVM/gandhxorhor.lean:629:17: theorem extracted_1 (x x_1 x_2 x_3 : BitVec 8) : + (Option.bind (if 8#8 ≤ x_2 then none else some (x_3 <<< x_2.toNat)) fun a => + Option.bind (if 8#8 ≤ x_2 then none else some (x <<< x_2.toNat)) fun y' => some (a ||| x_1 ||| y')) ⊑ + Option.bind (if 8#8 ≤ x_2 then none else some ((x_3 ||| x) <<< x_2.toNat)) fun a => some (a ||| x_1) := sorry +warning: ././././SSA/Projects/InstCombine/tests/LLVM/gandhxorhor.lean:619:8: declaration uses 'sorry' +info: ././././SSA/Projects/InstCombine/tests/LLVM/gandhxorhor.lean:663:17: theorem extracted_1 (x x_1 x_2 x_3 : BitVec 8) : + (Option.bind (if 8#8 ≤ x_2 then none else some (x_3 >>> x_2.toNat)) fun a => + Option.bind (if 8#8 ≤ x_2 then none else some (x_1 >>> x_2.toNat)) fun a_1 => some (a ||| (a_1 ||| x))) ⊑ + Option.bind (if 8#8 ≤ x_2 then none else some ((x_1 ||| x_3) >>> x_2.toNat)) fun a => some (a ||| x) := sorry +warning: ././././SSA/Projects/InstCombine/tests/LLVM/gandhxorhor.lean:653:8: declaration uses 'sorry' +info: ././././SSA/Projects/InstCombine/tests/LLVM/gandhxorhor.lean:697:17: theorem extracted_1 (x x_1 x_2 x_3 : BitVec 8) : + (Option.bind (if 8#8 ≤ x_2 then none else some (x_3 >>> x_2.toNat)) fun a => + Option.bind (if 8#8 ≤ x_2 then none else some (x >>> x_2.toNat)) fun y' => some (a ^^^ x_1 ^^^ y')) ⊑ + Option.bind (if 8#8 ≤ x_2 then none else some ((x_3 ^^^ x) >>> x_2.toNat)) fun a => some (a ^^^ x_1) := sorry +warning: ././././SSA/Projects/InstCombine/tests/LLVM/gandhxorhor.lean:687:8: declaration uses 'sorry' +error: ././././SSA/Projects/InstCombine/tests/LLVM/gandhxorhor.lean:725:88: (deterministic) timeout at `whnf`, maximum number of heartbeats (200000) has been reached +Use `set_option maxHeartbeats ` to set the limit. +Additional diagnostic information may be available using the `set_option diagnostics true` command. +info: ././././SSA/Projects/InstCombine/tests/LLVM/gandhxorhor.lean:775:17: theorem extracted_1 (x x_1 x_2 : BitVec 32) : + (Option.bind (if x_2 = 0#32 ∨ 42#32 = intMin 32 ∧ x_2 = 4294967295#32 then none else some ((42#32).sdiv x_2)) fun a => + some (a &&& (x_1 ^^^ 4294967295#32) &&& (x ^^^ 4294967295#32))) ⊑ + Option.bind (if x_2 = 0#32 ∨ 42#32 = intMin 32 ∧ x_2 = 4294967295#32 then none else some ((42#32).sdiv x_2)) + fun a => some (a &&& ((x_1 ||| x) ^^^ 4294967295#32)) := sorry +warning: ././././SSA/Projects/InstCombine/tests/LLVM/gandhxorhor.lean:765:8: declaration uses 'sorry' +info: ././././SSA/Projects/InstCombine/tests/LLVM/gandhxorhor.lean:811:17: theorem extracted_1 (x x_1 x_2 : BitVec 32) : + (x_2 ^^^ 4294967295#32) &&& x_1 &&& (x ^^^ 4294967295#32) = x_1 &&& ((x_2 ||| x) ^^^ 4294967295#32) := sorry +warning: ././././SSA/Projects/InstCombine/tests/LLVM/gandhxorhor.lean:801:8: declaration uses 'sorry' +info: ././././SSA/Projects/InstCombine/tests/LLVM/gandhxorhor.lean:851:17: theorem extracted_1 (x x_1 x_2 : BitVec 32) : + (Option.bind (if x_2 = 0#32 ∨ 42#32 = intMin 32 ∧ x_2 = 4294967295#32 then none else some ((42#32).sdiv x_2)) fun a => + some (a ||| x_1 ^^^ 4294967295#32 ||| x ^^^ 4294967295#32)) ⊑ + Option.bind (if x_2 = 0#32 ∨ 42#32 = intMin 32 ∧ x_2 = 4294967295#32 then none else some ((42#32).sdiv x_2)) + fun a => some (a ||| x_1 &&& x ^^^ 4294967295#32) := sorry +warning: ././././SSA/Projects/InstCombine/tests/LLVM/gandhxorhor.lean:841:8: declaration uses 'sorry' +info: ././././SSA/Projects/InstCombine/tests/LLVM/gandhxorhor.lean:887:17: theorem extracted_1 (x x_1 x_2 : BitVec 32) : + x_2 ^^^ 4294967295#32 ||| x_1 ||| x ^^^ 4294967295#32 = x_1 ||| x_2 &&& x ^^^ 4294967295#32 := sorry +warning: ././././SSA/Projects/InstCombine/tests/LLVM/gandhxorhor.lean:877:8: declaration uses 'sorry' +info: ././././SSA/Projects/InstCombine/tests/LLVM/gandhxorhor.lean:926:17: theorem extracted_1 (x x_1 x_2 : BitVec 32) : + ((x_2 ||| x_1) ^^^ 4294967295#32) &&& x ||| ((x_2 ||| x) ^^^ 4294967295#32) &&& x_1 = + (x_1 ^^^ x) &&& (x_2 ^^^ 4294967295#32) := sorry +warning: ././././SSA/Projects/InstCombine/tests/LLVM/gandhxorhor.lean:916:8: declaration uses 'sorry' +info: ././././SSA/Projects/InstCombine/tests/LLVM/gandhxorhor.lean:969:17: theorem extracted_1 (x x_1 x_2 : BitVec 32) : + (Option.bind (if x_1 = 0#32 ∨ 42#32 = intMin 32 ∧ x_1 = 4294967295#32 then none else some ((42#32).sdiv x_1)) fun a => + Option.bind (if x_1 = 0#32 ∨ 42#32 = intMin 32 ∧ x_1 = 4294967295#32 then none else some ((42#32).sdiv x_1)) + fun a_1 => some (((x_2 ||| a) ^^^ 4294967295#32) &&& x ||| a_1 &&& ((x_2 ||| x) ^^^ 4294967295#32))) ⊑ + Option.bind (if x_1 = 0#32 ∨ 42#32 = intMin 32 ∧ x_1 = 4294967295#32 then none else some ((42#32).sdiv x_1)) + fun a => some ((a ^^^ x) &&& (x_2 ^^^ 4294967295#32)) := sorry +warning: ././././SSA/Projects/InstCombine/tests/LLVM/gandhxorhor.lean:959:8: declaration uses 'sorry' +info: ././././SSA/Projects/InstCombine/tests/LLVM/gandhxorhor.lean:1012:17: theorem extracted_1 (x x_1 x_2 : BitVec 32) : + (Option.bind (if x_2 = 0#32 ∨ 42#32 = intMin 32 ∧ x_2 = 4294967295#32 then none else some ((42#32).sdiv x_2)) fun a => + Option.bind (if x_2 = 0#32 ∨ 42#32 = intMin 32 ∧ x_2 = 4294967295#32 then none else some ((42#32).sdiv x_2)) + fun a_1 => some (a &&& ((x_1 ||| x) ^^^ 4294967295#32) ||| ((x_1 ||| a_1) ^^^ 4294967295#32) &&& x)) ⊑ + Option.bind (if x_2 = 0#32 ∨ 42#32 = intMin 32 ∧ x_2 = 4294967295#32 then none else some ((42#32).sdiv x_2)) + fun a => some ((x ^^^ a) &&& (x_1 ^^^ 4294967295#32)) := sorry +warning: ././././SSA/Projects/InstCombine/tests/LLVM/gandhxorhor.lean:1002:8: declaration uses 'sorry' +info: ././././SSA/Projects/InstCombine/tests/LLVM/gandhxorhor.lean:1051:17: theorem extracted_1 (x x_1 x_2 : BitVec 32) : + ((x_2 ||| x_1) ^^^ 4294967295#32) &&& x ||| ((x ||| x_1) ^^^ 4294967295#32) &&& x_2 = + (x_2 ^^^ x) &&& (x_1 ^^^ 4294967295#32) := sorry +warning: ././././SSA/Projects/InstCombine/tests/LLVM/gandhxorhor.lean:1041:8: declaration uses 'sorry' +info: ././././SSA/Projects/InstCombine/tests/LLVM/gandhxorhor.lean:1094:17: theorem extracted_1 (x x_1 x_2 : BitVec 32) : + (Option.bind (if x_2 = 0#32 ∨ 42#32 = intMin 32 ∧ x_2 = 4294967295#32 then none else some ((42#32).sdiv x_2)) fun a => + Option.bind (if x_2 = 0#32 ∨ 42#32 = intMin 32 ∧ x_2 = 4294967295#32 then none else some ((42#32).sdiv x_2)) + fun a_1 => some (a &&& ((x_1 ||| x) ^^^ 4294967295#32) ||| ((x_1 ||| a_1) ^^^ 4294967295#32) &&& x)) ⊑ + Option.bind (if x_2 = 0#32 ∨ 42#32 = intMin 32 ∧ x_2 = 4294967295#32 then none else some ((42#32).sdiv x_2)) + fun a => some ((x ^^^ a) &&& (x_1 ^^^ 4294967295#32)) := sorry +warning: ././././SSA/Projects/InstCombine/tests/LLVM/gandhxorhor.lean:1084:8: declaration uses 'sorry' +error: ././././SSA/Projects/InstCombine/tests/LLVM/gandhxorhor.lean:1129:94: (deterministic) timeout at `whnf`, maximum number of heartbeats (200000) has been reached +Use `set_option maxHeartbeats ` to set the limit. +Additional diagnostic information may be available using the `set_option diagnostics true` command. +info: ././././SSA/Projects/InstCombine/tests/LLVM/gandhxorhor.lean:1178:17: theorem extracted_1 (x x_1 x_2 : BitVec 32) : + ((x_2 ||| x_1) ^^^ 4294967295#32) &&& x ||| ((x ||| x_2) ^^^ 4294967295#32) &&& x_1 = + (x_1 ^^^ x) &&& (x_2 ^^^ 4294967295#32) := sorry +warning: ././././SSA/Projects/InstCombine/tests/LLVM/gandhxorhor.lean:1168:8: declaration uses 'sorry' +info: ././././SSA/Projects/InstCombine/tests/LLVM/gandhxorhor.lean:1217:17: theorem extracted_1 (x x_1 x_2 : BitVec 32) : + ((x_2 ||| x_1) ^^^ 4294967295#32) &&& x ||| ((x_1 ||| x) ^^^ 4294967295#32) &&& x_2 = + (x_2 ^^^ x) &&& (x_1 ^^^ 4294967295#32) := sorry +warning: ././././SSA/Projects/InstCombine/tests/LLVM/gandhxorhor.lean:1207:8: declaration uses 'sorry' +error: ././././SSA/Projects/InstCombine/tests/LLVM/gandhxorhor.lean:1252:94: (deterministic) timeout at `whnf`, maximum number of heartbeats (200000) has been reached +Use `set_option maxHeartbeats ` to set the limit. +Additional diagnostic information may be available using the `set_option diagnostics true` command. +error: ././././SSA/Projects/InstCombine/tests/LLVM/gandhxorhor.lean:1299:94: (deterministic) timeout at `whnf`, maximum number of heartbeats (200000) has been reached +Use `set_option maxHeartbeats ` to set the limit. +Additional diagnostic information may be available using the `set_option diagnostics true` command. +info: ././././SSA/Projects/InstCombine/tests/LLVM/gandhxorhor.lean:1352:17: theorem extracted_1 (x x_1 x_2 x_3 : BitVec 32) : + ((x_3 ||| x_2) ^^^ 4294967295#32) &&& x_1 ||| ((x_3 ||| x) ^^^ 4294967295#32) &&& x_2 = + x_1 &&& ((x_3 ||| x_2) ^^^ 4294967295#32) ||| x_2 &&& ((x_3 ||| x) ^^^ 4294967295#32) := sorry +warning: ././././SSA/Projects/InstCombine/tests/LLVM/gandhxorhor.lean:1342:8: declaration uses 'sorry' +info: ././././SSA/Projects/InstCombine/tests/LLVM/gandhxorhor.lean:1395:17: theorem extracted_1 (x x_1 x_2 x_3 : BitVec 32) : + ((x_3 ||| x_2) ^^^ 4294967295#32) &&& x_1 ||| ((x_3 ||| x_1) ^^^ 4294967295#32) &&& x = + x_1 &&& ((x_3 ||| x_2) ^^^ 4294967295#32) ||| x &&& ((x_3 ||| x_1) ^^^ 4294967295#32) := sorry +warning: ././././SSA/Projects/InstCombine/tests/LLVM/gandhxorhor.lean:1385:8: declaration uses 'sorry' +info: ././././SSA/Projects/InstCombine/tests/LLVM/gandhxorhor.lean:1434:17: theorem extracted_1 (x x_1 x_2 : BitVec 32) : + (x_2 &&& x_1 ^^^ 4294967295#32 ||| x) &&& (x_2 &&& x ^^^ 4294967295#32 ||| x_1) = + (x_1 ^^^ x) &&& x_2 ^^^ 4294967295#32 := sorry +warning: ././././SSA/Projects/InstCombine/tests/LLVM/gandhxorhor.lean:1424:8: declaration uses 'sorry' +info: ././././SSA/Projects/InstCombine/tests/LLVM/gandhxorhor.lean:1477:17: theorem extracted_1 (x x_1 x_2 : BitVec 32) : + (Option.bind (if x_1 = 0#32 ∨ 42#32 = intMin 32 ∧ x_1 = 4294967295#32 then none else some ((42#32).sdiv x_1)) fun a => + Option.bind (if x_1 = 0#32 ∨ 42#32 = intMin 32 ∧ x_1 = 4294967295#32 then none else some ((42#32).sdiv x_1)) + fun a_1 => some ((x_2 &&& a ^^^ 4294967295#32 ||| x) &&& (a_1 ||| x_2 &&& x ^^^ 4294967295#32))) ⊑ + Option.bind (if x_1 = 0#32 ∨ 42#32 = intMin 32 ∧ x_1 = 4294967295#32 then none else some ((42#32).sdiv x_1)) + fun a => some ((a ^^^ x) &&& x_2 ^^^ 4294967295#32) := sorry +warning: ././././SSA/Projects/InstCombine/tests/LLVM/gandhxorhor.lean:1467:8: declaration uses 'sorry' +info: ././././SSA/Projects/InstCombine/tests/LLVM/gandhxorhor.lean:1520:17: theorem extracted_1 (x x_1 x_2 : BitVec 32) : + (Option.bind (if x_2 = 0#32 ∨ 42#32 = intMin 32 ∧ x_2 = 4294967295#32 then none else some ((42#32).sdiv x_2)) fun a => + Option.bind (if x_2 = 0#32 ∨ 42#32 = intMin 32 ∧ x_2 = 4294967295#32 then none else some ((42#32).sdiv x_2)) + fun a_1 => some ((a ||| x_1 &&& x ^^^ 4294967295#32) &&& (x_1 &&& a_1 ^^^ 4294967295#32 ||| x))) ⊑ + Option.bind (if x_2 = 0#32 ∨ 42#32 = intMin 32 ∧ x_2 = 4294967295#32 then none else some ((42#32).sdiv x_2)) + fun a => some ((x ^^^ a) &&& x_1 ^^^ 4294967295#32) := sorry +warning: ././././SSA/Projects/InstCombine/tests/LLVM/gandhxorhor.lean:1510:8: declaration uses 'sorry' +info: ././././SSA/Projects/InstCombine/tests/LLVM/gandhxorhor.lean:1559:17: theorem extracted_1 (x x_1 x_2 : BitVec 32) : + (x_2 &&& x_1 ^^^ 4294967295#32 ||| x) &&& (x &&& x_1 ^^^ 4294967295#32 ||| x_2) = + (x_2 ^^^ x) &&& x_1 ^^^ 4294967295#32 := sorry +warning: ././././SSA/Projects/InstCombine/tests/LLVM/gandhxorhor.lean:1549:8: declaration uses 'sorry' +info: ././././SSA/Projects/InstCombine/tests/LLVM/gandhxorhor.lean:1602:17: theorem extracted_1 (x x_1 x_2 : BitVec 32) : + (Option.bind (if x_2 = 0#32 ∨ 42#32 = intMin 32 ∧ x_2 = 4294967295#32 then none else some ((42#32).sdiv x_2)) fun a => + Option.bind (if x_2 = 0#32 ∨ 42#32 = intMin 32 ∧ x_2 = 4294967295#32 then none else some ((42#32).sdiv x_2)) + fun a_1 => some ((a ||| x_1 &&& x ^^^ 4294967295#32) &&& (x_1 &&& a_1 ^^^ 4294967295#32 ||| x))) ⊑ + Option.bind (if x_2 = 0#32 ∨ 42#32 = intMin 32 ∧ x_2 = 4294967295#32 then none else some ((42#32).sdiv x_2)) + fun a => some ((x ^^^ a) &&& x_1 ^^^ 4294967295#32) := sorry +warning: ././././SSA/Projects/InstCombine/tests/LLVM/gandhxorhor.lean:1592:8: declaration uses 'sorry' +error: ././././SSA/Projects/InstCombine/tests/LLVM/gandhxorhor.lean:1637:94: (deterministic) timeout at `whnf`, maximum number of heartbeats (200000) has been reached +Use `set_option maxHeartbeats ` to set the limit. +Additional diagnostic information may be available using the `set_option diagnostics true` command. +info: ././././SSA/Projects/InstCombine/tests/LLVM/gandhxorhor.lean:1686:17: theorem extracted_1 (x x_1 x_2 : BitVec 32) : + (x_2 &&& x_1 ^^^ 4294967295#32 ||| x) &&& (x &&& x_2 ^^^ 4294967295#32 ||| x_1) = + (x_1 ^^^ x) &&& x_2 ^^^ 4294967295#32 := sorry +warning: ././././SSA/Projects/InstCombine/tests/LLVM/gandhxorhor.lean:1676:8: declaration uses 'sorry' +info: ././././SSA/Projects/InstCombine/tests/LLVM/gandhxorhor.lean:1725:17: theorem extracted_1 (x x_1 x_2 : BitVec 32) : + (x_2 &&& x_1 ^^^ 4294967295#32 ||| x) &&& (x_1 &&& x ^^^ 4294967295#32 ||| x_2) = + (x_2 ^^^ x) &&& x_1 ^^^ 4294967295#32 := sorry +warning: ././././SSA/Projects/InstCombine/tests/LLVM/gandhxorhor.lean:1715:8: declaration uses 'sorry' +error: ././././SSA/Projects/InstCombine/tests/LLVM/gandhxorhor.lean:1760:94: (deterministic) timeout at `whnf`, maximum number of heartbeats (200000) has been reached +Use `set_option maxHeartbeats ` to set the limit. +Additional diagnostic information may be available using the `set_option diagnostics true` command. +error: ././././SSA/Projects/InstCombine/tests/LLVM/gandhxorhor.lean:1807:94: (deterministic) timeout at `whnf`, maximum number of heartbeats (200000) has been reached +Use `set_option maxHeartbeats ` to set the limit. +Additional diagnostic information may be available using the `set_option diagnostics true` command. +info: ././././SSA/Projects/InstCombine/tests/LLVM/gandhxorhor.lean:1860:17: theorem extracted_1 (x x_1 x_2 x_3 : BitVec 32) : + (x_3 &&& x_2 ^^^ 4294967295#32 ||| x_1) &&& (x_3 &&& x ^^^ 4294967295#32 ||| x_2) = + (x_1 ||| x_3 &&& x_2 ^^^ 4294967295#32) &&& (x_2 ||| x_3 &&& x ^^^ 4294967295#32) := sorry +warning: ././././SSA/Projects/InstCombine/tests/LLVM/gandhxorhor.lean:1850:8: declaration uses 'sorry' +info: ././././SSA/Projects/InstCombine/tests/LLVM/gandhxorhor.lean:1903:17: theorem extracted_1 (x x_1 x_2 x_3 : BitVec 32) : + (x_3 &&& x_2 ^^^ 4294967295#32 ||| x_1) &&& (x_3 &&& x_1 ^^^ 4294967295#32 ||| x) = + (x_1 ||| x_3 &&& x_2 ^^^ 4294967295#32) &&& (x ||| x_3 &&& x_1 ^^^ 4294967295#32) := sorry +warning: ././././SSA/Projects/InstCombine/tests/LLVM/gandhxorhor.lean:1893:8: declaration uses 'sorry' +info: ././././SSA/Projects/InstCombine/tests/LLVM/gandhxorhor.lean:1941:17: theorem extracted_1 (x x_1 x_2 : BitVec 32) : + ((x_2 ||| x_1) ^^^ 4294967295#32) &&& x ||| (x ||| x_2) ^^^ 4294967295#32 = + (x_1 &&& x ||| x_2) ^^^ 4294967295#32 := sorry +warning: ././././SSA/Projects/InstCombine/tests/LLVM/gandhxorhor.lean:1931:8: declaration uses 'sorry' +info: ././././SSA/Projects/InstCombine/tests/LLVM/gandhxorhor.lean:1983:17: theorem extracted_1 (x x_1 x_2 : BitVec 32) : + (Option.bind (if x_2 = 0#32 ∨ 42#32 = intMin 32 ∧ x_2 = 4294967295#32 then none else some ((42#32).sdiv x_2)) fun a => + Option.bind (if x_2 = 0#32 ∨ 42#32 = intMin 32 ∧ x_2 = 4294967295#32 then none else some ((42#32).sdiv x_2)) + fun a_1 => some (a &&& ((x_1 ||| x) ^^^ 4294967295#32) ||| (a_1 ||| x_1) ^^^ 4294967295#32)) ⊑ + Option.bind (if x_2 = 0#32 ∨ 42#32 = intMin 32 ∧ x_2 = 4294967295#32 then none else some ((42#32).sdiv x_2)) + fun a => some ((x &&& a ||| x_1) ^^^ 4294967295#32) := sorry +warning: ././././SSA/Projects/InstCombine/tests/LLVM/gandhxorhor.lean:1973:8: declaration uses 'sorry' +info: ././././SSA/Projects/InstCombine/tests/LLVM/gandhxorhor.lean:2021:17: theorem extracted_1 (x x_1 x_2 : BitVec 32) : + ((x_2 ||| x_1) ^^^ 4294967295#32) &&& x ||| (x ||| x_2) ^^^ 4294967295#32 = + (x_1 &&& x ||| x_2) ^^^ 4294967295#32 := sorry +warning: ././././SSA/Projects/InstCombine/tests/LLVM/gandhxorhor.lean:2011:8: declaration uses 'sorry' +info: ././././SSA/Projects/InstCombine/tests/LLVM/gandhxorhor.lean:2059:17: theorem extracted_1 (x x_1 x_2 : BitVec 32) : + ((x_2 ||| x_1) ^^^ 4294967295#32) &&& x ||| (x ||| x_1) ^^^ 4294967295#32 = + (x_2 &&& x ||| x_1) ^^^ 4294967295#32 := sorry +warning: ././././SSA/Projects/InstCombine/tests/LLVM/gandhxorhor.lean:2049:8: declaration uses 'sorry' +info: ././././SSA/Projects/InstCombine/tests/LLVM/gandhxorhor.lean:2097:17: theorem extracted_1 (x x_1 x_2 : BitVec 32) : + ((x_2 ||| x_1) ^^^ 4294967295#32) &&& x ||| (x_2 ||| x) ^^^ 4294967295#32 = + (x_1 &&& x ||| x_2) ^^^ 4294967295#32 := sorry +warning: ././././SSA/Projects/InstCombine/tests/LLVM/gandhxorhor.lean:2087:8: declaration uses 'sorry' +info: ././././SSA/Projects/InstCombine/tests/LLVM/gandhxorhor.lean:2135:17: theorem extracted_1 (x x_1 x_2 : BitVec 32) : + (x_2 ||| x_1) ^^^ 4294967295#32 ||| ((x_1 ||| x) ^^^ 4294967295#32) &&& x_2 = + (x &&& x_2 ||| x_1) ^^^ 4294967295#32 := sorry +warning: ././././SSA/Projects/InstCombine/tests/LLVM/gandhxorhor.lean:2125:8: declaration uses 'sorry' +info: ././././SSA/Projects/InstCombine/tests/LLVM/gandhxorhor.lean:2177:17: theorem extracted_1 (x x_1 x_2 : BitVec 32) : + (Option.bind (if x_2 = 0#32 ∨ 42#32 = intMin 32 ∧ x_2 = 4294967295#32 then none else some ((42#32).sdiv x_2)) fun a => + Option.bind (if x_2 = 0#32 ∨ 42#32 = intMin 32 ∧ x_2 = 4294967295#32 then none else some ((42#32).sdiv x_2)) + fun a_1 => some (a &&& ((x_1 ||| x) ^^^ 4294967295#32) ||| (a_1 ||| x) ^^^ 4294967295#32)) ⊑ + Option.bind (if x_2 = 0#32 ∨ 42#32 = intMin 32 ∧ x_2 = 4294967295#32 then none else some ((42#32).sdiv x_2)) + fun a => some ((x_1 &&& a ||| x) ^^^ 4294967295#32) := sorry +warning: ././././SSA/Projects/InstCombine/tests/LLVM/gandhxorhor.lean:2167:8: declaration uses 'sorry' +info: ././././SSA/Projects/InstCombine/tests/LLVM/gandhxorhor.lean:2215:17: theorem extracted_1 (x x_1 x_2 : BitVec 32) : + ((x_2 ||| x_1) ^^^ 4294967295#32) &&& x ||| (x_1 ||| x) ^^^ 4294967295#32 = + (x_2 &&& x ||| x_1) ^^^ 4294967295#32 := sorry +warning: ././././SSA/Projects/InstCombine/tests/LLVM/gandhxorhor.lean:2205:8: declaration uses 'sorry' +info: ././././SSA/Projects/InstCombine/tests/LLVM/gandhxorhor.lean:2256:17: theorem extracted_1 (x x_1 x_2 x_3 : BitVec 32) : + ((x_3 ||| x_2) ^^^ 4294967295#32) &&& x_1 ||| (x_1 ||| x) ^^^ 4294967295#32 = + x_1 &&& ((x_3 ||| x_2) ^^^ 4294967295#32) ||| (x_1 ||| x) ^^^ 4294967295#32 := sorry +warning: ././././SSA/Projects/InstCombine/tests/LLVM/gandhxorhor.lean:2246:8: declaration uses 'sorry' +info: ././././SSA/Projects/InstCombine/tests/LLVM/gandhxorhor.lean:2297:17: theorem extracted_1 (x x_1 x_2 x_3 : BitVec 32) : + ((x_3 ||| x_2) ^^^ 4294967295#32) &&& x_1 ||| (x ||| x_3) ^^^ 4294967295#32 = + x_1 &&& ((x_3 ||| x_2) ^^^ 4294967295#32) ||| (x ||| x_3) ^^^ 4294967295#32 := sorry +warning: ././././SSA/Projects/InstCombine/tests/LLVM/gandhxorhor.lean:2287:8: declaration uses 'sorry' +info: ././././SSA/Projects/InstCombine/tests/LLVM/gandhxorhor.lean:2335:17: theorem extracted_1 (x x_1 x_2 : BitVec 32) : + (x_2 &&& x_1 ^^^ 4294967295#32 ||| x) &&& (x &&& x_2 ^^^ 4294967295#32) = + (x_1 ||| x) &&& x_2 ^^^ 4294967295#32 := sorry +warning: ././././SSA/Projects/InstCombine/tests/LLVM/gandhxorhor.lean:2325:8: declaration uses 'sorry' +info: ././././SSA/Projects/InstCombine/tests/LLVM/gandhxorhor.lean:2377:17: theorem extracted_1 (x x_1 x_2 : BitVec 32) : + (Option.bind (if x_2 = 0#32 ∨ 42#32 = intMin 32 ∧ x_2 = 4294967295#32 then none else some ((42#32).sdiv x_2)) fun a => + Option.bind (if x_2 = 0#32 ∨ 42#32 = intMin 32 ∧ x_2 = 4294967295#32 then none else some ((42#32).sdiv x_2)) + fun a_1 => some ((a ||| x_1 &&& x ^^^ 4294967295#32) &&& (a_1 &&& x_1 ^^^ 4294967295#32))) ⊑ + Option.bind (if x_2 = 0#32 ∨ 42#32 = intMin 32 ∧ x_2 = 4294967295#32 then none else some ((42#32).sdiv x_2)) + fun a => some ((x ||| a) &&& x_1 ^^^ 4294967295#32) := sorry +warning: ././././SSA/Projects/InstCombine/tests/LLVM/gandhxorhor.lean:2367:8: declaration uses 'sorry' +info: ././././SSA/Projects/InstCombine/tests/LLVM/gandhxorhor.lean:2415:17: theorem extracted_1 (x x_1 x_2 : BitVec 32) : + (x_2 &&& x_1 ^^^ 4294967295#32 ||| x) &&& (x &&& x_2 ^^^ 4294967295#32) = + (x_1 ||| x) &&& x_2 ^^^ 4294967295#32 := sorry +warning: ././././SSA/Projects/InstCombine/tests/LLVM/gandhxorhor.lean:2405:8: declaration uses 'sorry' +info: ././././SSA/Projects/InstCombine/tests/LLVM/gandhxorhor.lean:2453:17: theorem extracted_1 (x x_1 x_2 : BitVec 32) : + (x_2 &&& x_1 ^^^ 4294967295#32 ||| x) &&& (x &&& x_1 ^^^ 4294967295#32) = + (x_2 ||| x) &&& x_1 ^^^ 4294967295#32 := sorry +warning: ././././SSA/Projects/InstCombine/tests/LLVM/gandhxorhor.lean:2443:8: declaration uses 'sorry' +info: ././././SSA/Projects/InstCombine/tests/LLVM/gandhxorhor.lean:2491:17: theorem extracted_1 (x x_1 x_2 : BitVec 32) : + (x_2 &&& x_1 ^^^ 4294967295#32 ||| x) &&& (x_2 &&& x ^^^ 4294967295#32) = + (x_1 ||| x) &&& x_2 ^^^ 4294967295#32 := sorry +warning: ././././SSA/Projects/InstCombine/tests/LLVM/gandhxorhor.lean:2481:8: declaration uses 'sorry' +info: ././././SSA/Projects/InstCombine/tests/LLVM/gandhxorhor.lean:2529:17: theorem extracted_1 (x x_1 x_2 : BitVec 32) : + (x_2 &&& x_1 ^^^ 4294967295#32) &&& (x_1 &&& x ^^^ 4294967295#32 ||| x_2) = + (x ||| x_2) &&& x_1 ^^^ 4294967295#32 := sorry +warning: ././././SSA/Projects/InstCombine/tests/LLVM/gandhxorhor.lean:2519:8: declaration uses 'sorry' +info: ././././SSA/Projects/InstCombine/tests/LLVM/gandhxorhor.lean:2571:17: theorem extracted_1 (x x_1 x_2 : BitVec 32) : + (Option.bind (if x_2 = 0#32 ∨ 42#32 = intMin 32 ∧ x_2 = 4294967295#32 then none else some ((42#32).sdiv x_2)) fun a => + Option.bind (if x_2 = 0#32 ∨ 42#32 = intMin 32 ∧ x_2 = 4294967295#32 then none else some ((42#32).sdiv x_2)) + fun a_1 => some ((a ||| x_1 &&& x ^^^ 4294967295#32) &&& (a_1 &&& x ^^^ 4294967295#32))) ⊑ + Option.bind (if x_2 = 0#32 ∨ 42#32 = intMin 32 ∧ x_2 = 4294967295#32 then none else some ((42#32).sdiv x_2)) + fun a => some ((x_1 ||| a) &&& x ^^^ 4294967295#32) := sorry +warning: ././././SSA/Projects/InstCombine/tests/LLVM/gandhxorhor.lean:2561:8: declaration uses 'sorry' +info: ././././SSA/Projects/InstCombine/tests/LLVM/gandhxorhor.lean:2609:17: theorem extracted_1 (x x_1 x_2 : BitVec 32) : + (x_2 &&& x_1 ^^^ 4294967295#32 ||| x) &&& (x_1 &&& x ^^^ 4294967295#32) = + (x_2 ||| x) &&& x_1 ^^^ 4294967295#32 := sorry +warning: ././././SSA/Projects/InstCombine/tests/LLVM/gandhxorhor.lean:2599:8: declaration uses 'sorry' +info: ././././SSA/Projects/InstCombine/tests/LLVM/gandhxorhor.lean:2649:17: theorem extracted_1 (x x_1 x_2 x_3 : BitVec 32) : + (x_3 &&& x_2 ^^^ 4294967295#32 ||| x_1) &&& (x_1 &&& x ^^^ 4294967295#32) = + x_1 &&& x ^^^ (x_1 ||| x_3 &&& x_2 ^^^ 4294967295#32) := sorry +warning: ././././SSA/Projects/InstCombine/tests/LLVM/gandhxorhor.lean:2639:8: declaration uses 'sorry' +info: ././././SSA/Projects/InstCombine/tests/LLVM/gandhxorhor.lean:2690:17: theorem extracted_1 (x x_1 x_2 x_3 : BitVec 32) : + (x_3 &&& x_2 ^^^ 4294967295#32 ||| x_1) &&& (x &&& x_3 ^^^ 4294967295#32) = + (x_1 ||| x_3 &&& x_2 ^^^ 4294967295#32) &&& (x &&& x_3 ^^^ 4294967295#32) := sorry +warning: ././././SSA/Projects/InstCombine/tests/LLVM/gandhxorhor.lean:2680:8: declaration uses 'sorry' +info: ././././SSA/Projects/InstCombine/tests/LLVM/gandhxorhor.lean:2731:17: theorem extracted_1 (x x_1 x_2 : BitVec 32) : + ((x_2 ||| x_1) ^^^ 4294967295#32) &&& x ||| (x_2 ^^^ x_1 ||| x) ^^^ 4294967295#32 = + (x_2 ||| x_1) &&& (x_2 ^^^ x_1 ||| x) ^^^ 4294967295#32 := sorry +warning: ././././SSA/Projects/InstCombine/tests/LLVM/gandhxorhor.lean:2721:8: declaration uses 'sorry' +info: ././././SSA/Projects/InstCombine/tests/LLVM/gandhxorhor.lean:2772:17: theorem extracted_1 (x x_1 x_2 : BitVec 32) : + ((x_2 ||| x_1) ^^^ 4294967295#32) &&& x ||| (x_1 ^^^ x_2 ||| x) ^^^ 4294967295#32 = + (x_2 ||| x_1) &&& (x_1 ^^^ x_2 ||| x) ^^^ 4294967295#32 := sorry +warning: ././././SSA/Projects/InstCombine/tests/LLVM/gandhxorhor.lean:2762:8: declaration uses 'sorry' +info: ././././SSA/Projects/InstCombine/tests/LLVM/gandhxorhor.lean:2817:17: theorem extracted_1 (x x_1 x_2 : BitVec 32) : + (Option.bind (if x_2 = 0#32 ∨ 42#32 = intMin 32 ∧ x_2 = 4294967295#32 then none else some ((42#32).sdiv x_2)) fun a => + Option.bind (if x_2 = 0#32 ∨ 42#32 = intMin 32 ∧ x_2 = 4294967295#32 then none else some ((42#32).sdiv x_2)) + fun x_3 => some (a &&& ((x_1 ||| x) ^^^ 4294967295#32) ||| (x_1 ^^^ x ||| x_3) ^^^ 4294967295#32)) ⊑ + Option.bind (if x_2 = 0#32 ∨ 42#32 = intMin 32 ∧ x_2 = 4294967295#32 then none else some ((42#32).sdiv x_2)) + fun x_3 => some ((x_1 ||| x) &&& (x_1 ^^^ x ||| x_3) ^^^ 4294967295#32) := sorry +warning: ././././SSA/Projects/InstCombine/tests/LLVM/gandhxorhor.lean:2807:8: declaration uses 'sorry' +info: ././././SSA/Projects/InstCombine/tests/LLVM/gandhxorhor.lean:2858:17: theorem extracted_1 (x x_1 x_2 : BitVec 32) : + ((x_2 ||| x_1) ^^^ 4294967295#32) &&& x ||| (x_1 ^^^ x_2 ||| x) ^^^ 4294967295#32 = + (x_2 ||| x_1) &&& (x_1 ^^^ x_2 ||| x) ^^^ 4294967295#32 := sorry +warning: ././././SSA/Projects/InstCombine/tests/LLVM/gandhxorhor.lean:2848:8: declaration uses 'sorry' +info: ././././SSA/Projects/InstCombine/tests/LLVM/gandhxorhor.lean:2903:17: theorem extracted_1 (x x_1 x_2 : BitVec 32) : + (Option.bind (if x_2 = 0#32 ∨ 42#32 = intMin 32 ∧ x_2 = 4294967295#32 then none else some ((42#32).sdiv x_2)) fun a => + Option.bind (if x_2 = 0#32 ∨ 42#32 = intMin 32 ∧ x_2 = 4294967295#32 then none else some ((42#32).sdiv x_2)) + fun a_1 => some (a &&& ((x_1 ||| x) ^^^ 4294967295#32) ||| (a_1 ||| x_1 ^^^ x) ^^^ 4294967295#32)) ⊑ + Option.bind (if x_2 = 0#32 ∨ 42#32 = intMin 32 ∧ x_2 = 4294967295#32 then none else some ((42#32).sdiv x_2)) + fun a => some ((x_1 ||| x) &&& (a ||| x_1 ^^^ x) ^^^ 4294967295#32) := sorry +warning: ././././SSA/Projects/InstCombine/tests/LLVM/gandhxorhor.lean:2893:8: declaration uses 'sorry' +info: ././././SSA/Projects/InstCombine/tests/LLVM/gandhxorhor.lean:2944:17: theorem extracted_1 (x x_1 x_2 : BitVec 32) : + (x_2 ^^^ x_1 ||| x) ^^^ 4294967295#32 ||| ((x_2 ||| x_1) ^^^ 4294967295#32) &&& x = + (x_2 ||| x_1) &&& (x_2 ^^^ x_1 ||| x) ^^^ 4294967295#32 := sorry +warning: ././././SSA/Projects/InstCombine/tests/LLVM/gandhxorhor.lean:2934:8: declaration uses 'sorry' +info: ././././SSA/Projects/InstCombine/tests/LLVM/gandhxorhor.lean:2986:17: theorem extracted_1 (x x_1 x_2 : BitVec 32) : + (x_2 &&& x_1 ^^^ 4294967295#32 ||| x) &&& ((x_2 ^^^ x_1) &&& x ^^^ 4294967295#32) = + (x_2 ^^^ x_1) &&& x ^^^ (x ||| x_2 &&& x_1 ^^^ 4294967295#32) := sorry +warning: ././././SSA/Projects/InstCombine/tests/LLVM/gandhxorhor.lean:2976:8: declaration uses 'sorry' +info: ././././SSA/Projects/InstCombine/tests/LLVM/gandhxorhor.lean:3028:17: theorem extracted_1 (x x_1 x_2 : BitVec 32) : + (x_2 &&& x_1 ^^^ 4294967295#32 ||| x) &&& ((x_1 ^^^ x_2) &&& x ^^^ 4294967295#32) = + (x_1 ^^^ x_2) &&& x ^^^ (x ||| x_2 &&& x_1 ^^^ 4294967295#32) := sorry +warning: ././././SSA/Projects/InstCombine/tests/LLVM/gandhxorhor.lean:3018:8: declaration uses 'sorry' +info: ././././SSA/Projects/InstCombine/tests/LLVM/gandhxorhor.lean:3074:17: theorem extracted_1 (x x_1 x_2 : BitVec 32) : + (Option.bind (if x_2 = 0#32 ∨ 42#32 = intMin 32 ∧ x_2 = 4294967295#32 then none else some ((42#32).sdiv x_2)) fun a => + Option.bind (if x_2 = 0#32 ∨ 42#32 = intMin 32 ∧ x_2 = 4294967295#32 then none else some ((42#32).sdiv x_2)) + fun x_3 => some ((a ||| x_1 &&& x ^^^ 4294967295#32) &&& ((x_1 ^^^ x) &&& x_3 ^^^ 4294967295#32))) ⊑ + Option.bind (if x_2 = 0#32 ∨ 42#32 = intMin 32 ∧ x_2 = 4294967295#32 then none else some ((42#32).sdiv x_2)) + fun a => + Option.bind (if x_2 = 0#32 ∨ 42#32 = intMin 32 ∧ x_2 = 4294967295#32 then none else some ((42#32).sdiv x_2)) + fun a_1 => some ((x_1 ^^^ x) &&& a ^^^ (a_1 ||| x_1 &&& x ^^^ 4294967295#32)) := sorry +warning: ././././SSA/Projects/InstCombine/tests/LLVM/gandhxorhor.lean:3064:8: declaration uses 'sorry' +info: ././././SSA/Projects/InstCombine/tests/LLVM/gandhxorhor.lean:3116:17: theorem extracted_1 (x x_1 x_2 : BitVec 32) : + (x_2 &&& x_1 ^^^ 4294967295#32 ||| x) &&& ((x_1 ^^^ x_2) &&& x ^^^ 4294967295#32) = + (x_1 ^^^ x_2) &&& x ^^^ (x ||| x_2 &&& x_1 ^^^ 4294967295#32) := sorry +warning: ././././SSA/Projects/InstCombine/tests/LLVM/gandhxorhor.lean:3106:8: declaration uses 'sorry' +info: ././././SSA/Projects/InstCombine/tests/LLVM/gandhxorhor.lean:3162:17: theorem extracted_1 (x x_1 x_2 : BitVec 32) : + (Option.bind (if x_2 = 0#32 ∨ 42#32 = intMin 32 ∧ x_2 = 4294967295#32 then none else some ((42#32).sdiv x_2)) fun a => + Option.bind (if x_2 = 0#32 ∨ 42#32 = intMin 32 ∧ x_2 = 4294967295#32 then none else some ((42#32).sdiv x_2)) + fun a_1 => some ((a ||| x_1 &&& x ^^^ 4294967295#32) &&& (a_1 &&& (x_1 ^^^ x) ^^^ 4294967295#32))) ⊑ + Option.bind (if x_2 = 0#32 ∨ 42#32 = intMin 32 ∧ x_2 = 4294967295#32 then none else some ((42#32).sdiv x_2)) + fun a => + Option.bind (if x_2 = 0#32 ∨ 42#32 = intMin 32 ∧ x_2 = 4294967295#32 then none else some ((42#32).sdiv x_2)) + fun a_1 => some (a &&& (x_1 ^^^ x) ^^^ (a_1 ||| x_1 &&& x ^^^ 4294967295#32)) := sorry +warning: ././././SSA/Projects/InstCombine/tests/LLVM/gandhxorhor.lean:3152:8: declaration uses 'sorry' +info: ././././SSA/Projects/InstCombine/tests/LLVM/gandhxorhor.lean:3204:17: theorem extracted_1 (x x_1 x_2 : BitVec 32) : + ((x_2 ^^^ x_1) &&& x ^^^ 4294967295#32) &&& (x_2 &&& x_1 ^^^ 4294967295#32 ||| x) = + (x_2 ^^^ x_1) &&& x ^^^ (x ||| x_2 &&& x_1 ^^^ 4294967295#32) := sorry +warning: ././././SSA/Projects/InstCombine/tests/LLVM/gandhxorhor.lean:3194:8: declaration uses 'sorry' +info: ././././SSA/Projects/InstCombine/tests/LLVM/gandhxorhor.lean:3243:17: theorem extracted_1 (x x_1 x_2 : BitVec 32) : + (x_2 ^^^ 4294967295#32) &&& x_1 &&& x ||| (x_1 ||| x_2 ||| x) ^^^ 4294967295#32 = + (x ^^^ x_1 ||| x_2) ^^^ 4294967295#32 := sorry +warning: ././././SSA/Projects/InstCombine/tests/LLVM/gandhxorhor.lean:3233:8: declaration uses 'sorry' +info: ././././SSA/Projects/InstCombine/tests/LLVM/gandhxorhor.lean:3282:17: theorem extracted_1 (x x_1 x_2 : BitVec 32) : + (x_2 ^^^ 4294967295#32) &&& x_1 &&& x ||| (x ||| x_2 ||| x_1) ^^^ 4294967295#32 = + (x ^^^ x_1 ||| x_2) ^^^ 4294967295#32 := sorry +warning: ././././SSA/Projects/InstCombine/tests/LLVM/gandhxorhor.lean:3272:8: declaration uses 'sorry' +info: ././././SSA/Projects/InstCombine/tests/LLVM/gandhxorhor.lean:3321:17: theorem extracted_1 (x x_1 x_2 : BitVec 32) : + (x_2 ^^^ 4294967295#32) &&& x_1 &&& x ||| (x_1 ||| x ||| x_2) ^^^ 4294967295#32 = + (x ^^^ x_1 ||| x_2) ^^^ 4294967295#32 := sorry +warning: ././././SSA/Projects/InstCombine/tests/LLVM/gandhxorhor.lean:3311:8: declaration uses 'sorry' +info: ././././SSA/Projects/InstCombine/tests/LLVM/gandhxorhor.lean:3360:17: theorem extracted_1 (x x_1 x_2 : BitVec 32) : + (x_2 ^^^ 4294967295#32) &&& x_1 &&& x ||| (x ||| x_2 ||| x_1) ^^^ 4294967295#32 = + (x ^^^ x_1 ||| x_2) ^^^ 4294967295#32 := sorry +warning: ././././SSA/Projects/InstCombine/tests/LLVM/gandhxorhor.lean:3350:8: declaration uses 'sorry' +info: ././././SSA/Projects/InstCombine/tests/LLVM/gandhxorhor.lean:3399:17: theorem extracted_1 (x x_1 x_2 : BitVec 32) : + x_2 &&& x_1 &&& (x ^^^ 4294967295#32) ||| (x_2 ||| x ||| x_1) ^^^ 4294967295#32 = + (x_2 ^^^ x_1 ||| x) ^^^ 4294967295#32 := sorry +warning: ././././SSA/Projects/InstCombine/tests/LLVM/gandhxorhor.lean:3389:8: declaration uses 'sorry' +info: ././././SSA/Projects/InstCombine/tests/LLVM/gandhxorhor.lean:3438:17: theorem extracted_1 (x x_1 x_2 : BitVec 32) : + (x_2 ^^^ 4294967295#32) &&& x_1 &&& x ||| (x_2 ||| x_1 ||| x) ^^^ 4294967295#32 = + (x ^^^ x_1 ||| x_2) ^^^ 4294967295#32 := sorry +warning: ././././SSA/Projects/InstCombine/tests/LLVM/gandhxorhor.lean:3428:8: declaration uses 'sorry' +info: ././././SSA/Projects/InstCombine/tests/LLVM/gandhxorhor.lean:3481:17: theorem extracted_1 (x x_1 x_2 : BitVec 32) : + (Option.bind (if x = 0#32 ∨ 42#32 = intMin 32 ∧ x = 4294967295#32 then none else some ((42#32).sdiv x)) fun a => + Option.bind (if x = 0#32 ∨ 42#32 = intMin 32 ∧ x = 4294967295#32 then none else some ((42#32).sdiv x)) fun a_1 => + some ((x_2 ^^^ 4294967295#32) &&& x_1 &&& a ||| (a_1 ||| (x_1 ||| x_2)) ^^^ 4294967295#32)) ⊑ + Option.bind (if x = 0#32 ∨ 42#32 = intMin 32 ∧ x = 4294967295#32 then none else some ((42#32).sdiv x)) fun a => + some ((a ^^^ x_1 ||| x_2) ^^^ 4294967295#32) := sorry +warning: ././././SSA/Projects/InstCombine/tests/LLVM/gandhxorhor.lean:3471:8: declaration uses 'sorry' +info: ././././SSA/Projects/InstCombine/tests/LLVM/gandhxorhor.lean:3524:17: theorem extracted_1 (x x_1 x_2 : BitVec 32) : + (Option.bind (if x_2 = 0#32 ∨ 42#32 = intMin 32 ∧ x_2 = 4294967295#32 then none else some ((42#32).sdiv x_2)) fun a => + Option.bind (if x_2 = 0#32 ∨ 42#32 = intMin 32 ∧ x_2 = 4294967295#32 then none else some ((42#32).sdiv x_2)) + fun a_1 => some (a &&& (x_1 ^^^ 4294967295#32) &&& x ||| (a_1 ||| x_1 ||| x) ^^^ 4294967295#32)) ⊑ + Option.bind (if x_2 = 0#32 ∨ 42#32 = intMin 32 ∧ x_2 = 4294967295#32 then none else some ((42#32).sdiv x_2)) + fun a => some ((x ^^^ a ||| x_1) ^^^ 4294967295#32) := sorry +warning: ././././SSA/Projects/InstCombine/tests/LLVM/gandhxorhor.lean:3514:8: declaration uses 'sorry' +info: ././././SSA/Projects/InstCombine/tests/LLVM/gandhxorhor.lean:3567:17: theorem extracted_1 (x x_1 x_2 : BitVec 32) : + (Option.bind (if x_2 = 0#32 ∨ 42#32 = intMin 32 ∧ x_2 = 4294967295#32 then none else some ((42#32).sdiv x_2)) fun a => + Option.bind (if x_2 = 0#32 ∨ 42#32 = intMin 32 ∧ x_2 = 4294967295#32 then none else some ((42#32).sdiv x_2)) + fun x_3 => some (a &&& ((x_1 ^^^ 4294967295#32) &&& x) ||| (x ||| x_1 ||| x_3) ^^^ 4294967295#32)) ⊑ + Option.bind (if x_2 = 0#32 ∨ 42#32 = intMin 32 ∧ x_2 = 4294967295#32 then none else some ((42#32).sdiv x_2)) + fun a => some ((a ^^^ x ||| x_1) ^^^ 4294967295#32) := sorry +warning: ././././SSA/Projects/InstCombine/tests/LLVM/gandhxorhor.lean:3557:8: declaration uses 'sorry' +info: ././././SSA/Projects/InstCombine/tests/LLVM/gandhxorhor.lean:3606:17: theorem extracted_1 (x x_1 x_2 : BitVec 32) : + (x_2 ^^^ 4294967295#32 ||| x_1 ||| x) &&& (x_1 &&& x_2 &&& x ^^^ 4294967295#32) = + x ^^^ x_1 ||| x_2 ^^^ 4294967295#32 := sorry +warning: ././././SSA/Projects/InstCombine/tests/LLVM/gandhxorhor.lean:3596:8: declaration uses 'sorry' +info: ././././SSA/Projects/InstCombine/tests/LLVM/gandhxorhor.lean:3645:17: theorem extracted_1 (x x_1 x_2 : BitVec 32) : + (x_2 ^^^ 4294967295#32 ||| x_1 ||| x) &&& (x &&& x_2 &&& x_1 ^^^ 4294967295#32) = + x ^^^ x_1 ||| x_2 ^^^ 4294967295#32 := sorry +warning: ././././SSA/Projects/InstCombine/tests/LLVM/gandhxorhor.lean:3635:8: declaration uses 'sorry' +info: ././././SSA/Projects/InstCombine/tests/LLVM/gandhxorhor.lean:3684:17: theorem extracted_1 (x x_1 x_2 : BitVec 32) : + (x_2 ^^^ 4294967295#32 ||| x_1 ||| x) &&& (x_1 &&& x &&& x_2 ^^^ 4294967295#32) = + x ^^^ x_1 ||| x_2 ^^^ 4294967295#32 := sorry +warning: ././././SSA/Projects/InstCombine/tests/LLVM/gandhxorhor.lean:3674:8: declaration uses 'sorry' +info: ././././SSA/Projects/InstCombine/tests/LLVM/gandhxorhor.lean:3723:17: theorem extracted_1 (x x_1 x_2 : BitVec 32) : + (x_2 ^^^ 4294967295#32 ||| x_1 ||| x) &&& (x &&& x_2 &&& x_1 ^^^ 4294967295#32) = + x ^^^ x_1 ||| x_2 ^^^ 4294967295#32 := sorry +warning: ././././SSA/Projects/InstCombine/tests/LLVM/gandhxorhor.lean:3713:8: declaration uses 'sorry' +info: ././././SSA/Projects/InstCombine/tests/LLVM/gandhxorhor.lean:3762:17: theorem extracted_1 (x x_1 x_2 : BitVec 32) : + (x_2 ||| x_1 ||| x ^^^ 4294967295#32) &&& (x_2 &&& x &&& x_1 ^^^ 4294967295#32) = + x_2 ^^^ x_1 ||| x ^^^ 4294967295#32 := sorry +warning: ././././SSA/Projects/InstCombine/tests/LLVM/gandhxorhor.lean:3752:8: declaration uses 'sorry' +info: ././././SSA/Projects/InstCombine/tests/LLVM/gandhxorhor.lean:3801:17: theorem extracted_1 (x x_1 x_2 : BitVec 32) : + (x_2 ^^^ 4294967295#32 ||| x_1 ||| x) &&& (x_2 &&& x_1 &&& x ^^^ 4294967295#32) = + x ^^^ x_1 ||| x_2 ^^^ 4294967295#32 := sorry +warning: ././././SSA/Projects/InstCombine/tests/LLVM/gandhxorhor.lean:3791:8: declaration uses 'sorry' +info: ././././SSA/Projects/InstCombine/tests/LLVM/gandhxorhor.lean:3844:17: theorem extracted_1 (x x_1 x_2 : BitVec 32) : + (Option.bind (if x = 0#32 ∨ 42#32 = intMin 32 ∧ x = 4294967295#32 then none else some ((42#32).sdiv x)) fun a => + Option.bind (if x = 0#32 ∨ 42#32 = intMin 32 ∧ x = 4294967295#32 then none else some ((42#32).sdiv x)) fun a_1 => + some ((x_2 ^^^ 4294967295#32 ||| x_1 ||| a) &&& (a_1 &&& (x_1 &&& x_2) ^^^ 4294967295#32))) ⊑ + Option.bind (if x = 0#32 ∨ 42#32 = intMin 32 ∧ x = 4294967295#32 then none else some ((42#32).sdiv x)) fun a => + some (a ^^^ x_1 ||| x_2 ^^^ 4294967295#32) := sorry +warning: ././././SSA/Projects/InstCombine/tests/LLVM/gandhxorhor.lean:3834:8: declaration uses 'sorry' +info: ././././SSA/Projects/InstCombine/tests/LLVM/gandhxorhor.lean:3887:17: theorem extracted_1 (x x_1 x_2 : BitVec 32) : + (Option.bind (if x_2 = 0#32 ∨ 42#32 = intMin 32 ∧ x_2 = 4294967295#32 then none else some ((42#32).sdiv x_2)) fun a => + Option.bind (if x_2 = 0#32 ∨ 42#32 = intMin 32 ∧ x_2 = 4294967295#32 then none else some ((42#32).sdiv x_2)) + fun a_1 => some ((a ||| x_1 ^^^ 4294967295#32 ||| x) &&& (a_1 &&& x_1 &&& x ^^^ 4294967295#32))) ⊑ + Option.bind (if x_2 = 0#32 ∨ 42#32 = intMin 32 ∧ x_2 = 4294967295#32 then none else some ((42#32).sdiv x_2)) + fun a => some (x ^^^ a ||| x_1 ^^^ 4294967295#32) := sorry +warning: ././././SSA/Projects/InstCombine/tests/LLVM/gandhxorhor.lean:3877:8: declaration uses 'sorry' +info: ././././SSA/Projects/InstCombine/tests/LLVM/gandhxorhor.lean:3930:17: theorem extracted_1 (x x_1 x_2 : BitVec 32) : + (Option.bind (if x_2 = 0#32 ∨ 42#32 = intMin 32 ∧ x_2 = 4294967295#32 then none else some ((42#32).sdiv x_2)) fun a => + Option.bind (if x_2 = 0#32 ∨ 42#32 = intMin 32 ∧ x_2 = 4294967295#32 then none else some ((42#32).sdiv x_2)) + fun x_3 => some ((a ||| (x_1 ^^^ 4294967295#32 ||| x)) &&& (x &&& x_1 &&& x_3 ^^^ 4294967295#32))) ⊑ + Option.bind (if x_2 = 0#32 ∨ 42#32 = intMin 32 ∧ x_2 = 4294967295#32 then none else some ((42#32).sdiv x_2)) + fun a => some (a ^^^ x ||| x_1 ^^^ 4294967295#32) := sorry +warning: ././././SSA/Projects/InstCombine/tests/LLVM/gandhxorhor.lean:3920:8: declaration uses 'sorry' +info: ././././SSA/Projects/InstCombine/tests/LLVM/gandhxorhor.lean:3969:17: theorem extracted_1 (x x_1 x_2 : BitVec 32) : + (x_2 ^^^ 4294967295#32) &&& x_1 &&& x ||| (x_1 ||| x_2) ^^^ 4294967295#32 = + (x ||| x_1 ^^^ 4294967295#32) &&& (x_2 ^^^ 4294967295#32) := sorry +warning: ././././SSA/Projects/InstCombine/tests/LLVM/gandhxorhor.lean:3959:8: declaration uses 'sorry' +info: ././././SSA/Projects/InstCombine/tests/LLVM/gandhxorhor.lean:4008:17: theorem extracted_1 (x x_1 x_2 : BitVec 32) : + x_2 &&& x_1 &&& (x ^^^ 4294967295#32) ||| (x_1 ||| x) ^^^ 4294967295#32 = + (x_2 ||| x_1 ^^^ 4294967295#32) &&& (x ^^^ 4294967295#32) := sorry +warning: ././././SSA/Projects/InstCombine/tests/LLVM/gandhxorhor.lean:3998:8: declaration uses 'sorry' +info: ././././SSA/Projects/InstCombine/tests/LLVM/gandhxorhor.lean:4047:17: theorem extracted_1 (x x_1 x_2 : BitVec 32) : + (x_2 ^^^ 4294967295#32) &&& x_1 &&& x ||| (x ||| x_2) ^^^ 4294967295#32 = + (x_1 ||| x ^^^ 4294967295#32) &&& (x_2 ^^^ 4294967295#32) := sorry +warning: ././././SSA/Projects/InstCombine/tests/LLVM/gandhxorhor.lean:4037:8: declaration uses 'sorry' +info: ././././SSA/Projects/InstCombine/tests/LLVM/gandhxorhor.lean:4086:17: theorem extracted_1 (x x_1 x_2 : BitVec 32) : + (x_2 ^^^ 4294967295#32) &&& x_1 &&& x ||| (x_2 ||| x_1) ^^^ 4294967295#32 = + (x ||| x_1 ^^^ 4294967295#32) &&& (x_2 ^^^ 4294967295#32) := sorry +warning: ././././SSA/Projects/InstCombine/tests/LLVM/gandhxorhor.lean:4076:8: declaration uses 'sorry' +info: ././././SSA/Projects/InstCombine/tests/LLVM/gandhxorhor.lean:4129:17: theorem extracted_1 (x x_1 x_2 : BitVec 32) : + (Option.bind (if x_2 = 0#32 ∨ 42#32 = intMin 32 ∧ x_2 = 4294967295#32 then none else some ((42#32).sdiv x_2)) fun a => + Option.bind (if x_2 = 0#32 ∨ 42#32 = intMin 32 ∧ x_2 = 4294967295#32 then none else some ((42#32).sdiv x_2)) + fun a_1 => some (a &&& (x_1 ^^^ 4294967295#32) &&& x ||| (a_1 ||| x_1) ^^^ 4294967295#32)) ⊑ + Option.bind (if x_2 = 0#32 ∨ 42#32 = intMin 32 ∧ x_2 = 4294967295#32 then none else some ((42#32).sdiv x_2)) + fun a => some ((x ||| a ^^^ 4294967295#32) &&& (x_1 ^^^ 4294967295#32)) := sorry +warning: ././././SSA/Projects/InstCombine/tests/LLVM/gandhxorhor.lean:4119:8: declaration uses 'sorry' +info: ././././SSA/Projects/InstCombine/tests/LLVM/gandhxorhor.lean:4172:17: theorem extracted_1 (x x_1 x_2 : BitVec 32) : + (Option.bind (if x_2 = 0#32 ∨ 42#32 = intMin 32 ∧ x_2 = 4294967295#32 then none else some ((42#32).sdiv x_2)) fun a => + some (a &&& ((x_1 ^^^ 4294967295#32) &&& x) ||| (x ||| x_1) ^^^ 4294967295#32)) ⊑ + Option.bind (if x_2 = 0#32 ∨ 42#32 = intMin 32 ∧ x_2 = 4294967295#32 then none else some ((42#32).sdiv x_2)) + fun a => some ((a ||| x ^^^ 4294967295#32) &&& (x_1 ^^^ 4294967295#32)) := sorry +warning: ././././SSA/Projects/InstCombine/tests/LLVM/gandhxorhor.lean:4162:8: declaration uses 'sorry' +info: ././././SSA/Projects/InstCombine/tests/LLVM/gandhxorhor.lean:4211:17: theorem extracted_1 (x x_1 x_2 : BitVec 32) : + (x_2 ^^^ 4294967295#32 ||| x_1 ||| x) &&& (x_1 &&& x_2 ^^^ 4294967295#32) = + x &&& (x_1 ^^^ 4294967295#32) ||| x_2 ^^^ 4294967295#32 := sorry +warning: ././././SSA/Projects/InstCombine/tests/LLVM/gandhxorhor.lean:4201:8: declaration uses 'sorry' +info: ././././SSA/Projects/InstCombine/tests/LLVM/gandhxorhor.lean:4250:17: theorem extracted_1 (x x_1 x_2 : BitVec 32) : + (x_2 ||| x_1 ||| x ^^^ 4294967295#32) &&& (x_1 &&& x ^^^ 4294967295#32) = + x_2 &&& (x_1 ^^^ 4294967295#32) ||| x ^^^ 4294967295#32 := sorry +warning: ././././SSA/Projects/InstCombine/tests/LLVM/gandhxorhor.lean:4240:8: declaration uses 'sorry' +info: ././././SSA/Projects/InstCombine/tests/LLVM/gandhxorhor.lean:4289:17: theorem extracted_1 (x x_1 x_2 : BitVec 32) : + (x_2 ^^^ 4294967295#32 ||| x_1 ||| x) &&& (x &&& x_2 ^^^ 4294967295#32) = + x_1 &&& (x ^^^ 4294967295#32) ||| x_2 ^^^ 4294967295#32 := sorry +warning: ././././SSA/Projects/InstCombine/tests/LLVM/gandhxorhor.lean:4279:8: declaration uses 'sorry' +info: ././././SSA/Projects/InstCombine/tests/LLVM/gandhxorhor.lean:4328:17: theorem extracted_1 (x x_1 x_2 : BitVec 32) : + (x_2 ^^^ 4294967295#32 ||| x_1 ||| x) &&& (x_2 &&& x_1 ^^^ 4294967295#32) = + x &&& (x_1 ^^^ 4294967295#32) ||| x_2 ^^^ 4294967295#32 := sorry +warning: ././././SSA/Projects/InstCombine/tests/LLVM/gandhxorhor.lean:4318:8: declaration uses 'sorry' +info: ././././SSA/Projects/InstCombine/tests/LLVM/gandhxorhor.lean:4371:17: theorem extracted_1 (x x_1 x_2 : BitVec 32) : + (Option.bind (if x_2 = 0#32 ∨ 42#32 = intMin 32 ∧ x_2 = 4294967295#32 then none else some ((42#32).sdiv x_2)) fun a => + Option.bind (if x_2 = 0#32 ∨ 42#32 = intMin 32 ∧ x_2 = 4294967295#32 then none else some ((42#32).sdiv x_2)) + fun a_1 => some ((a ||| x_1 ^^^ 4294967295#32 ||| x) &&& (a_1 &&& x_1 ^^^ 4294967295#32))) ⊑ + Option.bind (if x_2 = 0#32 ∨ 42#32 = intMin 32 ∧ x_2 = 4294967295#32 then none else some ((42#32).sdiv x_2)) + fun a => some (x &&& (a ^^^ 4294967295#32) ||| x_1 ^^^ 4294967295#32) := sorry +warning: ././././SSA/Projects/InstCombine/tests/LLVM/gandhxorhor.lean:4361:8: declaration uses 'sorry' +info: ././././SSA/Projects/InstCombine/tests/LLVM/gandhxorhor.lean:4414:17: theorem extracted_1 (x x_1 x_2 : BitVec 32) : + (Option.bind (if x_2 = 0#32 ∨ 42#32 = intMin 32 ∧ x_2 = 4294967295#32 then none else some ((42#32).sdiv x_2)) fun a => + some ((a ||| (x_1 ^^^ 4294967295#32 ||| x)) &&& (x &&& x_1 ^^^ 4294967295#32))) ⊑ + Option.bind (if x_2 = 0#32 ∨ 42#32 = intMin 32 ∧ x_2 = 4294967295#32 then none else some ((42#32).sdiv x_2)) + fun a => some (a &&& (x ^^^ 4294967295#32) ||| x_1 ^^^ 4294967295#32) := sorry +warning: ././././SSA/Projects/InstCombine/tests/LLVM/gandhxorhor.lean:4404:8: declaration uses 'sorry' +info: ././././SSA/Projects/InstCombine/tests/LLVM/gandhxorhor.lean:4449:17: theorem extracted_1 (x x_1 : BitVec 4) : (x_1 ^^^ 15#4 ||| x) &&& (x_1 ^^^ x) = x &&& (x_1 ^^^ 15#4) := sorry +warning: ././././SSA/Projects/InstCombine/tests/LLVM/gandhxorhor.lean:4439:8: declaration uses 'sorry' +info: ././././SSA/Projects/InstCombine/tests/LLVM/gandhxorhor.lean:4488:17: theorem extracted_1 (x x_1 : BitVec 32) : + (x_1 * x_1 ^^^ x * x) &&& (x_1 * x_1 ||| x * x ^^^ 4294967295#32) = x_1 * x_1 &&& (x * x ^^^ 4294967295#32) := sorry +warning: ././././SSA/Projects/InstCombine/tests/LLVM/gandhxorhor.lean:4478:8: declaration uses 'sorry' +info: ././././SSA/Projects/InstCombine/tests/LLVM/gandhxorhor.lean:4523:17: theorem extracted_1 (x : BitVec 32) : x + 112#32 ||| 15#32 = (x ||| 15#32) + 112#32 := sorry +warning: ././././SSA/Projects/InstCombine/tests/LLVM/gandhxorhor.lean:4513:8: declaration uses 'sorry' +info: ././././SSA/Projects/InstCombine/tests/LLVM/gandhxorhor.lean:4558:17: theorem extracted_1 (x : BitVec 32) : + ((if x.msb = (112#32).msb ∧ ¬(x + 112#32).msb = x.msb then none else some (x + 112#32)).bind fun x' => + some (x' ||| 15#32)) ⊑ + if (x.msb || (15#32).msb) = (112#32).msb ∧ ¬((x ||| 15#32) + 112#32).msb = (x.msb || (15#32).msb) then none + else some ((x ||| 15#32) + 112#32) := sorry +warning: ././././SSA/Projects/InstCombine/tests/LLVM/gandhxorhor.lean:4548:8: declaration uses 'sorry' +info: ././././SSA/Projects/InstCombine/tests/LLVM/gandhxorhor.lean:4593:17: theorem extracted_1 (x : BitVec 32) : + ((if x.msb = (112#32).msb ∧ ¬(x + 112#32).msb = x.msb then none + else if x + 112#32 < x ∨ x + 112#32 < 112#32 then none else some (x + 112#32)).bind + fun x' => some (x' ||| 15#32)) ⊑ + if (x.msb || (15#32).msb) = (112#32).msb ∧ ¬((x ||| 15#32) + 112#32).msb = (x.msb || (15#32).msb) then none + else + if (x ||| 15#32) + 112#32 < x ||| 15#32 ∨ (x ||| 15#32) + 112#32 < 112#32 then none + else some ((x ||| 15#32) + 112#32) := sorry +warning: ././././SSA/Projects/InstCombine/tests/LLVM/gandhxorhor.lean:4583:8: declaration uses 'sorry' +info: ././././SSA/Projects/InstCombine/tests/LLVM/gandhxorhor.lean:4628:17: theorem extracted_1 (x : BitVec 8) : x + 48#8 &&& 246#8 = (x &&& 246#8) + 48#8 := sorry +warning: ././././SSA/Projects/InstCombine/tests/LLVM/gandhxorhor.lean:4618:8: declaration uses 'sorry' +info: ././././SSA/Projects/InstCombine/tests/LLVM/gandhxorhor.lean:4663:17: theorem extracted_1 (x : BitVec 8) : + ((if x.msb = (48#8).msb ∧ ¬(x + 48#8).msb = x.msb then none else some (x + 48#8)).bind fun x' => + some (x' &&& 246#8)) ⊑ + if (x.msb && (246#8).msb) = (48#8).msb ∧ ¬((x &&& 246#8) + 48#8).msb = (x.msb && (246#8).msb) then none + else some ((x &&& 246#8) + 48#8) := sorry +warning: ././././SSA/Projects/InstCombine/tests/LLVM/gandhxorhor.lean:4653:8: declaration uses 'sorry' +info: ././././SSA/Projects/InstCombine/tests/LLVM/gandhxorhor.lean:4698:17: theorem extracted_1 (x : BitVec 8) : + ((if x.msb = (48#8).msb ∧ ¬(x + 48#8).msb = x.msb then none + else if x + 48#8 < x ∨ x + 48#8 < 48#8 then none else some (x + 48#8)).bind + fun x' => some (x' &&& 246#8)) ⊑ + if (x.msb && (246#8).msb) = (48#8).msb ∧ ¬((x &&& 246#8) + 48#8).msb = (x.msb && (246#8).msb) then none + else + if (x &&& 246#8) + 48#8 < x &&& 246#8 ∨ (x &&& 246#8) + 48#8 < 48#8 then none + else some ((x &&& 246#8) + 48#8) := sorry +warning: ././././SSA/Projects/InstCombine/tests/LLVM/gandhxorhor.lean:4688:8: declaration uses 'sorry' +info: ././././SSA/Projects/InstCombine/tests/LLVM/gandhxorhor.lean:4733:17: theorem extracted_1 (x : BitVec 8) : x + 96#8 ^^^ 31#8 = (x ^^^ 31#8) + 96#8 := sorry +warning: ././././SSA/Projects/InstCombine/tests/LLVM/gandhxorhor.lean:4723:8: declaration uses 'sorry' +info: ././././SSA/Projects/InstCombine/tests/LLVM/gandhxorhor.lean:4768:17: theorem extracted_1 (x : BitVec 8) : + ((if x.msb = (96#8).msb ∧ ¬(x + 96#8).msb = x.msb then none else some (x + 96#8)).bind fun x' => some (x' ^^^ 31#8)) ⊑ + if (x.msb ^^ (31#8).msb) = (96#8).msb ∧ ¬((x ^^^ 31#8) + 96#8).msb = (x.msb ^^ (31#8).msb) then none + else some ((x ^^^ 31#8) + 96#8) := sorry +warning: ././././SSA/Projects/InstCombine/tests/LLVM/gandhxorhor.lean:4758:8: declaration uses 'sorry' +info: ././././SSA/Projects/InstCombine/tests/LLVM/gandhxorhor.lean:4803:17: theorem extracted_1 (x : BitVec 8) : + ((if x.msb = (96#8).msb ∧ ¬(x + 96#8).msb = x.msb then none + else if x + 96#8 < x ∨ x + 96#8 < 96#8 then none else some (x + 96#8)).bind + fun x' => some (x' ^^^ 31#8)) ⊑ + if (x.msb ^^ (31#8).msb) = (96#8).msb ∧ ¬((x ^^^ 31#8) + 96#8).msb = (x.msb ^^ (31#8).msb) then none + else + if (x ^^^ 31#8) + 96#8 < x ^^^ 31#8 ∨ (x ^^^ 31#8) + 96#8 < 96#8 then none + else some ((x ^^^ 31#8) + 96#8) := sorry +warning: ././././SSA/Projects/InstCombine/tests/LLVM/gandhxorhor.lean:4793:8: declaration uses 'sorry' +error: Lean exited with code 1 +Some required builds logged failures: +- SSA.Projects.InstCombine.tests.LLVM.gandhxorhor +error: build failed diff --git a/SSA/Projects/InstCombine/tests/logs/gapinthadd.txt b/SSA/Projects/InstCombine/tests/logs/gapinthadd.txt deleted file mode 100644 index 0a64737ce..000000000 --- a/SSA/Projects/InstCombine/tests/logs/gapinthadd.txt +++ /dev/null @@ -1,33 +0,0 @@ -error: build failed -⚠ [2443/2457] Replayed SSA.Experimental.Bits.Fast.FiniteStateMachine -warning: ././././SSA/Experimental/Bits/Fast/FiniteStateMachine.lean:107:8: declaration uses 'sorry' -warning: ././././SSA/Experimental/Bits/Fast/FiniteStateMachine.lean:825:8: declaration uses 'sorry' -⚠ [2447/2457] Replayed SSA.Experimental.Bits.Fast.Tactic -warning: ././././SSA/Experimental/Bits/Fast/Tactic.lean:340:4: declaration uses 'sorry' -⚠ [2451/2457] Replayed SSA.Experimental.Bits.AutoStructs.Basic -warning: ././././SSA/Experimental/Bits/AutoStructs/Basic.lean:99:8: declaration uses 'sorry' -warning: ././././SSA/Experimental/Bits/AutoStructs/Basic.lean:102:8: declaration uses 'sorry' -warning: ././././SSA/Experimental/Bits/AutoStructs/Basic.lean:104:8: declaration uses 'sorry' -warning: ././././SSA/Experimental/Bits/AutoStructs/Basic.lean:106:8: declaration uses 'sorry' -warning: ././././SSA/Experimental/Bits/AutoStructs/Basic.lean:109:8: declaration uses 'sorry' -warning: ././././SSA/Experimental/Bits/AutoStructs/Basic.lean:111:8: declaration uses 'sorry' -warning: ././././SSA/Experimental/Bits/AutoStructs/Basic.lean:113:8: declaration uses 'sorry' -warning: ././././SSA/Experimental/Bits/AutoStructs/Basic.lean:116:8: declaration uses 'sorry' -warning: ././././SSA/Experimental/Bits/AutoStructs/Basic.lean:127:8: declaration uses 'sorry' -warning: ././././SSA/Experimental/Bits/AutoStructs/Basic.lean:164:8: declaration uses 'sorry' -warning: ././././SSA/Experimental/Bits/AutoStructs/Basic.lean:335:6: declaration uses 'sorry' -warning: ././././SSA/Experimental/Bits/AutoStructs/Basic.lean:408:6: declaration uses 'sorry' -warning: ././././SSA/Experimental/Bits/AutoStructs/Basic.lean:443:6: declaration uses 'sorry' -warning: ././././SSA/Experimental/Bits/AutoStructs/Basic.lean:477:6: declaration uses 'sorry' -⚠ [2453/2457] Replayed SSA.Experimental.Bits.AutoStructs.FiniteStateMachine -warning: ././././SSA/Experimental/Bits/AutoStructs/FiniteStateMachine.lean:24:38: structure ... :=' has been deprecated in favor of 'structure ... where'. -note: this linter can be disabled with `set_option linter.deprecated false` -warning: ././././SSA/Experimental/Bits/AutoStructs/FiniteStateMachine.lean:111:8: declaration uses 'sorry' -warning: ././././SSA/Experimental/Bits/AutoStructs/FiniteStateMachine.lean:511:59: structure ... :=' has been deprecated in favor of 'structure ... where'. -note: this linter can be disabled with `set_option linter.deprecated false` -✖ [2457/2457] Building SSA.Projects.InstCombine.tests.LLVM.gapinthadd -trace: .> LEAN_PATH=././.lake/packages/batteries/.lake/build/lib:././.lake/packages/Qq/.lake/build/lib:././.lake/packages/aesop/.lake/build/lib:././.lake/packages/proofwidgets/.lake/build/lib:././.lake/packages/Cli/.lake/build/lib:././.lake/packages/importGraph/.lake/build/lib:././.lake/packages/LeanSearchClient/.lake/build/lib:././.lake/packages/mathlib/.lake/build/lib:././.lake/packages/MD4Lean/.lake/build/lib:././.lake/packages/UnicodeBasic/.lake/build/lib:././.lake/packages/BibtexQuery/.lake/build/lib:././.lake/packages/doc-gen4/.lake/build/lib:././.lake/packages/leanwuzla/.lake/build/lib:././.lake/build/lib LD_LIBRARY_PATH= /home/lfrenot/.elan/toolchains/leanprover--lean4---nightly-2024-10-15/bin/lean ././././SSA/Projects/InstCombine/tests/LLVM/gapinthadd.lean -R ./././. -o ././.lake/build/lib/SSA/Projects/InstCombine/tests/LLVM/gapinthadd.olean -i ././.lake/build/lib/SSA/Projects/InstCombine/tests/LLVM/gapinthadd.ilean -c ././.lake/build/ir/SSA/Projects/InstCombine/tests/LLVM/gapinthadd.c --json -error: Lean exited with code 137 -Some required builds logged failures: -- SSA.Projects.InstCombine.tests.LLVM.gapinthadd -error: build failed diff --git a/SSA/Projects/InstCombine/tests/logs/gapinthadd_proof.txt b/SSA/Projects/InstCombine/tests/logs/gapinthadd_proof.txt new file mode 100644 index 000000000..954b2d004 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/gapinthadd_proof.txt @@ -0,0 +1,326 @@ +⚠ [49/2462] Replayed Mathlib.Logic.Basic +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Basic.lean:155:8: `dec_em'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Basic.lean:159:8: `em'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Basic.lean:304:8: `or_congr_left'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Basic.lean:307:8: `or_congr_right'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Basic.lean:320:8: `imp_or'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Basic.lean:359:8: `xor_iff_not_iff'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Basic.lean:418:8: `eqRec_heq'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Basic.lean:511:8: `forall_true_iff'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Basic.lean:532:8: `exists_apply_eq_apply'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Basic.lean:539:6: `exists_apply_eq_apply2'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Basic.lean:548:6: `exists_apply_eq_apply3'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Basic.lean:575:8: `forall_apply_eq_imp_iff'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Basic.lean:578:8: `forall_eq_apply_imp_iff'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Basic.lean:638:8: `forall_prop_congr'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Basic.lean:711:6: `Classical.choose_eq'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Basic.lean:847:8: `dite_eq_iff'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Basic.lean:851:8: `ite_eq_iff'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +⚠ [66/2462] Replayed Mathlib.Algebra.NeZero +warning: ././.lake/packages/mathlib/././Mathlib/Algebra/NeZero.lean:44:6: `zero_ne_one'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Algebra/NeZero.lean:46:6: `one_ne_zero'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Algebra/NeZero.lean:48:6: `two_ne_zero'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Algebra/NeZero.lean:50:6: `three_ne_zero'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Algebra/NeZero.lean:52:6: `four_ne_zero'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +⚠ [69/2462] Replayed Mathlib.Logic.ExistsUnique +warning: ././.lake/packages/mathlib/././Mathlib/Logic/ExistsUnique.lean:109:16: `exists_unique_eq'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +⚠ [74/2462] Replayed Mathlib.Logic.Function.Basic +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Function/Basic.lean:78:8: `Function.Injective.eq_iff'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Function/Basic.lean:87:8: `Function.Injective.ne_iff'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Function/Basic.lean:117:8: `Function.Injective.of_comp_iff'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Function/Basic.lean:163:8: `Function.Surjective.of_comp_iff'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Function/Basic.lean:237:8: `Function.Bijective.of_comp_iff'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Function/Basic.lean:541:8: `Function.update_comp_eq_of_forall_ne'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Function/Basic.lean:552:8: `Function.update_comp_eq_of_injective'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Function/Basic.lean:649:8: `Function.extend_apply'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Function/Basic.lean:681:8: `Function.Injective.surjective_comp_right'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +⚠ [94/2462] Replayed Mathlib.Control.Combinators +warning: ././.lake/packages/mathlib/././Mathlib/Control/Combinators.lean:35:4: `Monad.mapM'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Control/Combinators.lean:57:4: `Monad.sequence'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +⚠ [96/2462] Replayed Mathlib.Logic.IsEmpty +warning: ././.lake/packages/mathlib/././Mathlib/Logic/IsEmpty.lean:36:9: `Fin.isEmpty'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +⚠ [229/2462] Replayed Mathlib.Data.Prod.PProd +warning: ././.lake/packages/mathlib/././Mathlib/Data/Prod/PProd.lean:35:8: `PProd.forall'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Data/Prod/PProd.lean:38:8: `PProd.exists'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +⚠ [230/2462] Replayed Mathlib.Data.Bool.Basic +warning: ././.lake/packages/mathlib/././Mathlib/Data/Bool/Basic.lean:156:8: `Bool.eq_true_of_not_eq_false'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Data/Bool/Basic.lean:159:8: `Bool.eq_false_of_not_eq_true'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +⚠ [232/2462] Replayed Mathlib.Logic.Function.Iterate +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Function/Iterate.lean:160:8: `Function.iterate_succ'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Function/Iterate.lean:163:8: `Function.iterate_succ_apply'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +⚠ [234/2462] Replayed Mathlib.Data.Prod.Basic +warning: ././.lake/packages/mathlib/././Mathlib/Data/Prod/Basic.lean:31:8: `Prod.forall'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Data/Prod/Basic.lean:34:8: `Prod.exists'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Data/Prod/Basic.lean:51:8: `Prod.map_apply'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Data/Prod/Basic.lean:54:8: `Prod.map_fst'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Data/Prod/Basic.lean:57:8: `Prod.map_snd'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +⚠ [235/2462] Replayed Mathlib.Data.Sigma.Basic +warning: ././.lake/packages/mathlib/././Mathlib/Data/Sigma/Basic.lean:90:6: `Sigma.exists'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Data/Sigma/Basic.lean:93:6: `Sigma.forall'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +⚠ [239/2462] Replayed Mathlib.Data.FunLike.Basic +warning: ././.lake/packages/mathlib/././Mathlib/Data/FunLike/Basic.lean:187:8: `DFunLike.ext'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +⚠ [244/2462] Replayed Mathlib.Logic.Relation +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Relation.lean:351:8: `Relation.TransGen.head'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Relation.lean:354:8: `Relation.TransGen.tail'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Relation.lean:444:8: `Relation.TransGen.lift'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Relation.lean:453:6: `Relation.TransGen.closed'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Relation.lean:523:8: `Relation.ReflTransGen.lift'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +⚠ [245/2462] Replayed Mathlib.Logic.Unique +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Unique.lean:131:18: `Unique.subsingleton_unique'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Unique.lean:259:9: `Unique.subtypeEq'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +⚠ [252/2462] Replayed Mathlib.Data.Quot +warning: ././.lake/packages/mathlib/././Mathlib/Data/Quot.lean:558:18: `Quotient.liftOn'_mk''` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Data/Quot.lean:562:14: `Quotient.surjective_liftOn'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Data/Quot.lean:573:18: `Quotient.liftOn₂'_mk''` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Data/Quot.lean:639:8: `Quotient.hrecOn'_mk''` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Data/Quot.lean:652:8: `Quotient.hrecOn₂'_mk''` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Data/Quot.lean:664:8: `Quotient.map'_mk''` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Data/Quot.lean:674:8: `Quotient.map₂'_mk''` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Data/Quot.lean:679:8: `Quotient.exact'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Data/Quot.lean:683:8: `Quotient.sound'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Data/Quot.lean:687:18: `Quotient.eq'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Data/Quot.lean:692:18: `Quotient.eq''` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Data/Quot.lean:701:8: `Quotient.out_eq'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Data/Quot.lean:704:8: `Quotient.mk_out'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +⚠ [256/2462] Replayed Mathlib.Tactic.Lift +warning: ././.lake/packages/mathlib/././Mathlib/Tactic/Lift.lean:49:9: `PiSubtype.canLift'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +⚠ [409/2462] Replayed Mathlib.Algebra.Group.Defs +warning: ././.lake/packages/mathlib/././Mathlib/Algebra/Group/Defs.lean:735:33: `pow_succ'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Algebra/Group/Defs.lean:740:6: `pow_mul_comm'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Algebra/Group/Defs.lean:749:6: `pow_three'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Algebra/Group/Defs.lean:772:6: `pow_mul'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +⚠ [443/2462] Replayed Mathlib.Data.List.Defs +warning: ././.lake/packages/mathlib/././Mathlib/Data/List/Defs.lean:241:9: `List.decidableChain'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +⚠ [474/2462] Replayed Mathlib.Control.Applicative +warning: ././.lake/packages/mathlib/././Mathlib/Control/Applicative.lean:34:8: `Applicative.pure_seq_eq_map'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +⚠ [475/2462] Replayed Mathlib.Control.Traversable.Basic +warning: ././.lake/packages/mathlib/././Mathlib/Control/Traversable/Basic.lean:139:8: `ApplicativeTransformation.preserves_map'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +⚠ [618/2462] Replayed Mathlib.Algebra.GroupWithZero.Defs +warning: ././.lake/packages/mathlib/././Mathlib/Algebra/GroupWithZero/Defs.lean:110:8: `mul_left_inj'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Algebra/GroupWithZero/Defs.lean:113:8: `mul_right_inj'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +⚠ [624/2462] Replayed Mathlib.Algebra.Group.Invertible.Defs +warning: ././.lake/packages/mathlib/././Mathlib/Algebra/Group/Invertible/Defs.lean:97:8: `invOf_mul_self'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Algebra/Group/Invertible/Defs.lean:103:8: `mul_invOf_self'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Algebra/Group/Invertible/Defs.lean:109:8: `invOf_mul_cancel_left'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Algebra/Group/Invertible/Defs.lean:120:8: `mul_invOf_cancel_left'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Algebra/Group/Invertible/Defs.lean:131:8: `invOf_mul_cancel_right'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Algebra/Group/Invertible/Defs.lean:142:8: `mul_invOf_cancel_right'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Algebra/Group/Invertible/Defs.lean:198:8: `invOf_one'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +⚠ [1184/2462] Replayed Mathlib.Control.Traversable.Lemmas +warning: ././.lake/packages/mathlib/././Mathlib/Control/Traversable/Lemmas.lean:87:8: `Traversable.naturality'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Control/Traversable/Lemmas.lean:102:8: `Traversable.traverse_eq_map_id'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Control/Traversable/Lemmas.lean:108:8: `Traversable.traverse_map'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Control/Traversable/Lemmas.lean:113:8: `Traversable.map_traverse'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +⚠ [2407/2462] Replayed Mathlib.Data.List.EditDistance.Defs +warning: ././.lake/packages/mathlib/././Mathlib/Data/List/EditDistance/Defs.lean:214:8: `suffixLevenshtein_nil'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +⚠ [2447/2462] Replayed SSA.Experimental.Bits.Fast.FiniteStateMachine +warning: ././././SSA/Experimental/Bits/Fast/FiniteStateMachine.lean:107:8: declaration uses 'sorry' +warning: ././././SSA/Experimental/Bits/Fast/FiniteStateMachine.lean:825:8: declaration uses 'sorry' +⚠ [2451/2462] Replayed SSA.Experimental.Bits.Fast.Tactic +warning: ././././SSA/Experimental/Bits/Fast/Tactic.lean:340:4: declaration uses 'sorry' +⚠ [2452/2462] Replayed SSA.Experimental.Bits.AutoStructs.ForLean +warning: ././././SSA/Experimental/Bits/AutoStructs/ForLean.lean:24:8: declaration uses 'sorry' +warning: ././././SSA/Experimental/Bits/AutoStructs/ForLean.lean:27:8: declaration uses 'sorry' +warning: ././././SSA/Experimental/Bits/AutoStructs/ForLean.lean:29:8: declaration uses 'sorry' +warning: ././././SSA/Experimental/Bits/AutoStructs/ForLean.lean:31:8: declaration uses 'sorry' +warning: ././././SSA/Experimental/Bits/AutoStructs/ForLean.lean:34:8: declaration uses 'sorry' +warning: ././././SSA/Experimental/Bits/AutoStructs/ForLean.lean:36:8: declaration uses 'sorry' +warning: ././././SSA/Experimental/Bits/AutoStructs/ForLean.lean:38:8: declaration uses 'sorry' +warning: ././././SSA/Experimental/Bits/AutoStructs/ForLean.lean:41:8: declaration uses 'sorry' +warning: ././././SSA/Experimental/Bits/AutoStructs/ForLean.lean:52:8: declaration uses 'sorry' +warning: ././././SSA/Experimental/Bits/AutoStructs/ForLean.lean:56:8: declaration uses 'sorry' +⚠ [2457/2462] Replayed SSA.Experimental.Bits.AutoStructs.Constructions +warning: ././././SSA/Experimental/Bits/AutoStructs/Constructions.lean:55:6: declaration uses 'sorry' +warning: ././././SSA/Experimental/Bits/AutoStructs/Constructions.lean:128:6: declaration uses 'sorry' +warning: ././././SSA/Experimental/Bits/AutoStructs/Constructions.lean:163:6: declaration uses 'sorry' +warning: ././././SSA/Experimental/Bits/AutoStructs/Constructions.lean:197:6: declaration uses 'sorry' +⚠ [2458/2462] Replayed SSA.Experimental.Bits.AutoStructs.FiniteStateMachine +warning: ././././SSA/Experimental/Bits/AutoStructs/FiniteStateMachine.lean:111:8: declaration uses 'sorry' +✖ [2462/2462] Building SSA.Projects.InstCombine.tests.LLVM.gapinthadd +trace: .> LEAN_PATH=././.lake/packages/batteries/.lake/build/lib:././.lake/packages/Qq/.lake/build/lib:././.lake/packages/aesop/.lake/build/lib:././.lake/packages/proofwidgets/.lake/build/lib:././.lake/packages/Cli/.lake/build/lib:././.lake/packages/importGraph/.lake/build/lib:././.lake/packages/LeanSearchClient/.lake/build/lib:././.lake/packages/mathlib/.lake/build/lib:././.lake/packages/MD4Lean/.lake/build/lib:././.lake/packages/UnicodeBasic/.lake/build/lib:././.lake/packages/BibtexQuery/.lake/build/lib:././.lake/packages/doc-gen4/.lake/build/lib:././.lake/packages/leanwuzla/.lake/build/lib:././.lake/build/lib LD_LIBRARY_PATH= /home/lfrenot/.elan/toolchains/leanprover--lean4---nightly-2024-10-17/bin/lean ././././SSA/Projects/InstCombine/tests/LLVM/gapinthadd.lean -R ./././. -o ././.lake/build/lib/SSA/Projects/InstCombine/tests/LLVM/gapinthadd.olean -i ././.lake/build/lib/SSA/Projects/InstCombine/tests/LLVM/gapinthadd.ilean -c ././.lake/build/ir/SSA/Projects/InstCombine/tests/LLVM/gapinthadd.c --json +error: Lean exited with code 137 +Some required builds logged failures: +- SSA.Projects.InstCombine.tests.LLVM.gapinthadd +error: build failed diff --git a/SSA/Projects/InstCombine/tests/logs/gdemand_shrink_nsw.txt b/SSA/Projects/InstCombine/tests/logs/gdemand_shrink_nsw.txt deleted file mode 100644 index 00cdc61e6..000000000 --- a/SSA/Projects/InstCombine/tests/logs/gdemand_shrink_nsw.txt +++ /dev/null @@ -1,36 +0,0 @@ -error: build failed -⚠ [2443/2457] Replayed SSA.Experimental.Bits.Fast.FiniteStateMachine -warning: ././././SSA/Experimental/Bits/Fast/FiniteStateMachine.lean:107:8: declaration uses 'sorry' -warning: ././././SSA/Experimental/Bits/Fast/FiniteStateMachine.lean:825:8: declaration uses 'sorry' -⚠ [2447/2457] Replayed SSA.Experimental.Bits.Fast.Tactic -warning: ././././SSA/Experimental/Bits/Fast/Tactic.lean:340:4: declaration uses 'sorry' -⚠ [2451/2457] Replayed SSA.Experimental.Bits.AutoStructs.Basic -warning: ././././SSA/Experimental/Bits/AutoStructs/Basic.lean:99:8: declaration uses 'sorry' -warning: ././././SSA/Experimental/Bits/AutoStructs/Basic.lean:102:8: declaration uses 'sorry' -warning: ././././SSA/Experimental/Bits/AutoStructs/Basic.lean:104:8: declaration uses 'sorry' -warning: ././././SSA/Experimental/Bits/AutoStructs/Basic.lean:106:8: declaration uses 'sorry' -warning: ././././SSA/Experimental/Bits/AutoStructs/Basic.lean:109:8: declaration uses 'sorry' -warning: ././././SSA/Experimental/Bits/AutoStructs/Basic.lean:111:8: declaration uses 'sorry' -warning: ././././SSA/Experimental/Bits/AutoStructs/Basic.lean:113:8: declaration uses 'sorry' -warning: ././././SSA/Experimental/Bits/AutoStructs/Basic.lean:116:8: declaration uses 'sorry' -warning: ././././SSA/Experimental/Bits/AutoStructs/Basic.lean:127:8: declaration uses 'sorry' -warning: ././././SSA/Experimental/Bits/AutoStructs/Basic.lean:164:8: declaration uses 'sorry' -warning: ././././SSA/Experimental/Bits/AutoStructs/Basic.lean:335:6: declaration uses 'sorry' -warning: ././././SSA/Experimental/Bits/AutoStructs/Basic.lean:408:6: declaration uses 'sorry' -warning: ././././SSA/Experimental/Bits/AutoStructs/Basic.lean:443:6: declaration uses 'sorry' -warning: ././././SSA/Experimental/Bits/AutoStructs/Basic.lean:477:6: declaration uses 'sorry' -⚠ [2453/2457] Replayed SSA.Experimental.Bits.AutoStructs.FiniteStateMachine -warning: ././././SSA/Experimental/Bits/AutoStructs/FiniteStateMachine.lean:24:38: structure ... :=' has been deprecated in favor of 'structure ... where'. -note: this linter can be disabled with `set_option linter.deprecated false` -warning: ././././SSA/Experimental/Bits/AutoStructs/FiniteStateMachine.lean:111:8: declaration uses 'sorry' -warning: ././././SSA/Experimental/Bits/AutoStructs/FiniteStateMachine.lean:511:59: structure ... :=' has been deprecated in favor of 'structure ... where'. -note: this linter can be disabled with `set_option linter.deprecated false` -✖ [2457/2457] Building SSA.Projects.InstCombine.tests.LLVM.gdemand_shrink_nsw -trace: .> LEAN_PATH=././.lake/packages/batteries/.lake/build/lib:././.lake/packages/Qq/.lake/build/lib:././.lake/packages/aesop/.lake/build/lib:././.lake/packages/proofwidgets/.lake/build/lib:././.lake/packages/Cli/.lake/build/lib:././.lake/packages/importGraph/.lake/build/lib:././.lake/packages/LeanSearchClient/.lake/build/lib:././.lake/packages/mathlib/.lake/build/lib:././.lake/packages/MD4Lean/.lake/build/lib:././.lake/packages/UnicodeBasic/.lake/build/lib:././.lake/packages/BibtexQuery/.lake/build/lib:././.lake/packages/doc-gen4/.lake/build/lib:././.lake/packages/leanwuzla/.lake/build/lib:././.lake/build/lib LD_LIBRARY_PATH= /home/lfrenot/.elan/toolchains/leanprover--lean4---nightly-2024-10-15/bin/lean ././././SSA/Projects/InstCombine/tests/LLVM/gdemand_shrink_nsw.lean -R ./././. -o ././.lake/build/lib/SSA/Projects/InstCombine/tests/LLVM/gdemand_shrink_nsw.olean -i ././.lake/build/lib/SSA/Projects/InstCombine/tests/LLVM/gdemand_shrink_nsw.ilean -c ././.lake/build/ir/SSA/Projects/InstCombine/tests/LLVM/gdemand_shrink_nsw.c --json -error: ././././SSA/Projects/InstCombine/tests/LLVM/gdemand_shrink_nsw.lean:64:46: (deterministic) timeout at `whnf`, maximum number of heartbeats (200000) has been reached -Use `set_option maxHeartbeats ` to set the limit. -Additional diagnostic information may be available using the `set_option diagnostics true` command. -error: Lean exited with code 1 -Some required builds logged failures: -- SSA.Projects.InstCombine.tests.LLVM.gdemand_shrink_nsw -error: build failed diff --git a/SSA/Projects/InstCombine/tests/logs/gdemand_shrink_nsw_proof.txt b/SSA/Projects/InstCombine/tests/logs/gdemand_shrink_nsw_proof.txt new file mode 100644 index 000000000..07e758636 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/gdemand_shrink_nsw_proof.txt @@ -0,0 +1,329 @@ +⚠ [49/2462] Replayed Mathlib.Logic.Basic +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Basic.lean:155:8: `dec_em'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Basic.lean:159:8: `em'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Basic.lean:304:8: `or_congr_left'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Basic.lean:307:8: `or_congr_right'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Basic.lean:320:8: `imp_or'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Basic.lean:359:8: `xor_iff_not_iff'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Basic.lean:418:8: `eqRec_heq'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Basic.lean:511:8: `forall_true_iff'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Basic.lean:532:8: `exists_apply_eq_apply'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Basic.lean:539:6: `exists_apply_eq_apply2'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Basic.lean:548:6: `exists_apply_eq_apply3'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Basic.lean:575:8: `forall_apply_eq_imp_iff'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Basic.lean:578:8: `forall_eq_apply_imp_iff'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Basic.lean:638:8: `forall_prop_congr'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Basic.lean:711:6: `Classical.choose_eq'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Basic.lean:847:8: `dite_eq_iff'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Basic.lean:851:8: `ite_eq_iff'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +⚠ [66/2462] Replayed Mathlib.Algebra.NeZero +warning: ././.lake/packages/mathlib/././Mathlib/Algebra/NeZero.lean:44:6: `zero_ne_one'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Algebra/NeZero.lean:46:6: `one_ne_zero'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Algebra/NeZero.lean:48:6: `two_ne_zero'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Algebra/NeZero.lean:50:6: `three_ne_zero'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Algebra/NeZero.lean:52:6: `four_ne_zero'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +⚠ [69/2462] Replayed Mathlib.Logic.ExistsUnique +warning: ././.lake/packages/mathlib/././Mathlib/Logic/ExistsUnique.lean:109:16: `exists_unique_eq'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +⚠ [74/2462] Replayed Mathlib.Logic.Function.Basic +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Function/Basic.lean:78:8: `Function.Injective.eq_iff'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Function/Basic.lean:87:8: `Function.Injective.ne_iff'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Function/Basic.lean:117:8: `Function.Injective.of_comp_iff'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Function/Basic.lean:163:8: `Function.Surjective.of_comp_iff'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Function/Basic.lean:237:8: `Function.Bijective.of_comp_iff'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Function/Basic.lean:541:8: `Function.update_comp_eq_of_forall_ne'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Function/Basic.lean:552:8: `Function.update_comp_eq_of_injective'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Function/Basic.lean:649:8: `Function.extend_apply'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Function/Basic.lean:681:8: `Function.Injective.surjective_comp_right'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +⚠ [94/2462] Replayed Mathlib.Control.Combinators +warning: ././.lake/packages/mathlib/././Mathlib/Control/Combinators.lean:35:4: `Monad.mapM'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Control/Combinators.lean:57:4: `Monad.sequence'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +⚠ [96/2462] Replayed Mathlib.Logic.IsEmpty +warning: ././.lake/packages/mathlib/././Mathlib/Logic/IsEmpty.lean:36:9: `Fin.isEmpty'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +⚠ [229/2462] Replayed Mathlib.Data.Prod.PProd +warning: ././.lake/packages/mathlib/././Mathlib/Data/Prod/PProd.lean:35:8: `PProd.forall'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Data/Prod/PProd.lean:38:8: `PProd.exists'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +⚠ [230/2462] Replayed Mathlib.Data.Bool.Basic +warning: ././.lake/packages/mathlib/././Mathlib/Data/Bool/Basic.lean:156:8: `Bool.eq_true_of_not_eq_false'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Data/Bool/Basic.lean:159:8: `Bool.eq_false_of_not_eq_true'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +⚠ [232/2462] Replayed Mathlib.Logic.Function.Iterate +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Function/Iterate.lean:160:8: `Function.iterate_succ'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Function/Iterate.lean:163:8: `Function.iterate_succ_apply'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +⚠ [234/2462] Replayed Mathlib.Data.Prod.Basic +warning: ././.lake/packages/mathlib/././Mathlib/Data/Prod/Basic.lean:31:8: `Prod.forall'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Data/Prod/Basic.lean:34:8: `Prod.exists'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Data/Prod/Basic.lean:51:8: `Prod.map_apply'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Data/Prod/Basic.lean:54:8: `Prod.map_fst'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Data/Prod/Basic.lean:57:8: `Prod.map_snd'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +⚠ [235/2462] Replayed Mathlib.Data.Sigma.Basic +warning: ././.lake/packages/mathlib/././Mathlib/Data/Sigma/Basic.lean:90:6: `Sigma.exists'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Data/Sigma/Basic.lean:93:6: `Sigma.forall'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +⚠ [239/2462] Replayed Mathlib.Data.FunLike.Basic +warning: ././.lake/packages/mathlib/././Mathlib/Data/FunLike/Basic.lean:187:8: `DFunLike.ext'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +⚠ [244/2462] Replayed Mathlib.Logic.Relation +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Relation.lean:351:8: `Relation.TransGen.head'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Relation.lean:354:8: `Relation.TransGen.tail'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Relation.lean:444:8: `Relation.TransGen.lift'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Relation.lean:453:6: `Relation.TransGen.closed'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Relation.lean:523:8: `Relation.ReflTransGen.lift'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +⚠ [245/2462] Replayed Mathlib.Logic.Unique +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Unique.lean:131:18: `Unique.subsingleton_unique'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Unique.lean:259:9: `Unique.subtypeEq'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +⚠ [252/2462] Replayed Mathlib.Data.Quot +warning: ././.lake/packages/mathlib/././Mathlib/Data/Quot.lean:558:18: `Quotient.liftOn'_mk''` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Data/Quot.lean:562:14: `Quotient.surjective_liftOn'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Data/Quot.lean:573:18: `Quotient.liftOn₂'_mk''` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Data/Quot.lean:639:8: `Quotient.hrecOn'_mk''` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Data/Quot.lean:652:8: `Quotient.hrecOn₂'_mk''` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Data/Quot.lean:664:8: `Quotient.map'_mk''` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Data/Quot.lean:674:8: `Quotient.map₂'_mk''` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Data/Quot.lean:679:8: `Quotient.exact'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Data/Quot.lean:683:8: `Quotient.sound'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Data/Quot.lean:687:18: `Quotient.eq'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Data/Quot.lean:692:18: `Quotient.eq''` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Data/Quot.lean:701:8: `Quotient.out_eq'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Data/Quot.lean:704:8: `Quotient.mk_out'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +⚠ [256/2462] Replayed Mathlib.Tactic.Lift +warning: ././.lake/packages/mathlib/././Mathlib/Tactic/Lift.lean:49:9: `PiSubtype.canLift'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +⚠ [409/2462] Replayed Mathlib.Algebra.Group.Defs +warning: ././.lake/packages/mathlib/././Mathlib/Algebra/Group/Defs.lean:735:33: `pow_succ'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Algebra/Group/Defs.lean:740:6: `pow_mul_comm'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Algebra/Group/Defs.lean:749:6: `pow_three'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Algebra/Group/Defs.lean:772:6: `pow_mul'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +⚠ [443/2462] Replayed Mathlib.Data.List.Defs +warning: ././.lake/packages/mathlib/././Mathlib/Data/List/Defs.lean:241:9: `List.decidableChain'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +⚠ [474/2462] Replayed Mathlib.Control.Applicative +warning: ././.lake/packages/mathlib/././Mathlib/Control/Applicative.lean:34:8: `Applicative.pure_seq_eq_map'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +⚠ [475/2462] Replayed Mathlib.Control.Traversable.Basic +warning: ././.lake/packages/mathlib/././Mathlib/Control/Traversable/Basic.lean:139:8: `ApplicativeTransformation.preserves_map'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +⚠ [618/2462] Replayed Mathlib.Algebra.GroupWithZero.Defs +warning: ././.lake/packages/mathlib/././Mathlib/Algebra/GroupWithZero/Defs.lean:110:8: `mul_left_inj'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Algebra/GroupWithZero/Defs.lean:113:8: `mul_right_inj'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +⚠ [624/2462] Replayed Mathlib.Algebra.Group.Invertible.Defs +warning: ././.lake/packages/mathlib/././Mathlib/Algebra/Group/Invertible/Defs.lean:97:8: `invOf_mul_self'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Algebra/Group/Invertible/Defs.lean:103:8: `mul_invOf_self'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Algebra/Group/Invertible/Defs.lean:109:8: `invOf_mul_cancel_left'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Algebra/Group/Invertible/Defs.lean:120:8: `mul_invOf_cancel_left'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Algebra/Group/Invertible/Defs.lean:131:8: `invOf_mul_cancel_right'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Algebra/Group/Invertible/Defs.lean:142:8: `mul_invOf_cancel_right'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Algebra/Group/Invertible/Defs.lean:198:8: `invOf_one'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +⚠ [1184/2462] Replayed Mathlib.Control.Traversable.Lemmas +warning: ././.lake/packages/mathlib/././Mathlib/Control/Traversable/Lemmas.lean:87:8: `Traversable.naturality'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Control/Traversable/Lemmas.lean:102:8: `Traversable.traverse_eq_map_id'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Control/Traversable/Lemmas.lean:108:8: `Traversable.traverse_map'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Control/Traversable/Lemmas.lean:113:8: `Traversable.map_traverse'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +⚠ [2407/2462] Replayed Mathlib.Data.List.EditDistance.Defs +warning: ././.lake/packages/mathlib/././Mathlib/Data/List/EditDistance/Defs.lean:214:8: `suffixLevenshtein_nil'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +⚠ [2447/2462] Replayed SSA.Experimental.Bits.Fast.FiniteStateMachine +warning: ././././SSA/Experimental/Bits/Fast/FiniteStateMachine.lean:107:8: declaration uses 'sorry' +warning: ././././SSA/Experimental/Bits/Fast/FiniteStateMachine.lean:825:8: declaration uses 'sorry' +⚠ [2451/2462] Replayed SSA.Experimental.Bits.Fast.Tactic +warning: ././././SSA/Experimental/Bits/Fast/Tactic.lean:340:4: declaration uses 'sorry' +⚠ [2452/2462] Replayed SSA.Experimental.Bits.AutoStructs.ForLean +warning: ././././SSA/Experimental/Bits/AutoStructs/ForLean.lean:24:8: declaration uses 'sorry' +warning: ././././SSA/Experimental/Bits/AutoStructs/ForLean.lean:27:8: declaration uses 'sorry' +warning: ././././SSA/Experimental/Bits/AutoStructs/ForLean.lean:29:8: declaration uses 'sorry' +warning: ././././SSA/Experimental/Bits/AutoStructs/ForLean.lean:31:8: declaration uses 'sorry' +warning: ././././SSA/Experimental/Bits/AutoStructs/ForLean.lean:34:8: declaration uses 'sorry' +warning: ././././SSA/Experimental/Bits/AutoStructs/ForLean.lean:36:8: declaration uses 'sorry' +warning: ././././SSA/Experimental/Bits/AutoStructs/ForLean.lean:38:8: declaration uses 'sorry' +warning: ././././SSA/Experimental/Bits/AutoStructs/ForLean.lean:41:8: declaration uses 'sorry' +warning: ././././SSA/Experimental/Bits/AutoStructs/ForLean.lean:52:8: declaration uses 'sorry' +warning: ././././SSA/Experimental/Bits/AutoStructs/ForLean.lean:56:8: declaration uses 'sorry' +⚠ [2457/2462] Replayed SSA.Experimental.Bits.AutoStructs.Constructions +warning: ././././SSA/Experimental/Bits/AutoStructs/Constructions.lean:55:6: declaration uses 'sorry' +warning: ././././SSA/Experimental/Bits/AutoStructs/Constructions.lean:128:6: declaration uses 'sorry' +warning: ././././SSA/Experimental/Bits/AutoStructs/Constructions.lean:163:6: declaration uses 'sorry' +warning: ././././SSA/Experimental/Bits/AutoStructs/Constructions.lean:197:6: declaration uses 'sorry' +⚠ [2458/2462] Replayed SSA.Experimental.Bits.AutoStructs.FiniteStateMachine +warning: ././././SSA/Experimental/Bits/AutoStructs/FiniteStateMachine.lean:111:8: declaration uses 'sorry' +✖ [2462/2462] Building SSA.Projects.InstCombine.tests.LLVM.gdemand_shrink_nsw +trace: .> LEAN_PATH=././.lake/packages/batteries/.lake/build/lib:././.lake/packages/Qq/.lake/build/lib:././.lake/packages/aesop/.lake/build/lib:././.lake/packages/proofwidgets/.lake/build/lib:././.lake/packages/Cli/.lake/build/lib:././.lake/packages/importGraph/.lake/build/lib:././.lake/packages/LeanSearchClient/.lake/build/lib:././.lake/packages/mathlib/.lake/build/lib:././.lake/packages/MD4Lean/.lake/build/lib:././.lake/packages/UnicodeBasic/.lake/build/lib:././.lake/packages/BibtexQuery/.lake/build/lib:././.lake/packages/doc-gen4/.lake/build/lib:././.lake/packages/leanwuzla/.lake/build/lib:././.lake/build/lib LD_LIBRARY_PATH= /home/lfrenot/.elan/toolchains/leanprover--lean4---nightly-2024-10-17/bin/lean ././././SSA/Projects/InstCombine/tests/LLVM/gdemand_shrink_nsw.lean -R ./././. -o ././.lake/build/lib/SSA/Projects/InstCombine/tests/LLVM/gdemand_shrink_nsw.olean -i ././.lake/build/lib/SSA/Projects/InstCombine/tests/LLVM/gdemand_shrink_nsw.ilean -c ././.lake/build/ir/SSA/Projects/InstCombine/tests/LLVM/gdemand_shrink_nsw.c --json +error: ././././SSA/Projects/InstCombine/tests/LLVM/gdemand_shrink_nsw.lean:64:46: (deterministic) timeout at `whnf`, maximum number of heartbeats (200000) has been reached +Use `set_option maxHeartbeats ` to set the limit. +Additional diagnostic information may be available using the `set_option diagnostics true` command. +error: Lean exited with code 1 +Some required builds logged failures: +- SSA.Projects.InstCombine.tests.LLVM.gdemand_shrink_nsw +error: build failed diff --git a/SSA/Projects/InstCombine/tests/logs/gdemorgan.txt b/SSA/Projects/InstCombine/tests/logs/gdemorgan.txt deleted file mode 100644 index 0f34975a2..000000000 --- a/SSA/Projects/InstCombine/tests/logs/gdemorgan.txt +++ /dev/null @@ -1,123 +0,0 @@ -error: build failed -⚠ [2443/2457] Replayed SSA.Experimental.Bits.Fast.FiniteStateMachine -warning: ././././SSA/Experimental/Bits/Fast/FiniteStateMachine.lean:107:8: declaration uses 'sorry' -warning: ././././SSA/Experimental/Bits/Fast/FiniteStateMachine.lean:825:8: declaration uses 'sorry' -⚠ [2447/2457] Replayed SSA.Experimental.Bits.Fast.Tactic -warning: ././././SSA/Experimental/Bits/Fast/Tactic.lean:340:4: declaration uses 'sorry' -⚠ [2451/2457] Replayed SSA.Experimental.Bits.AutoStructs.Basic -warning: ././././SSA/Experimental/Bits/AutoStructs/Basic.lean:99:8: declaration uses 'sorry' -warning: ././././SSA/Experimental/Bits/AutoStructs/Basic.lean:102:8: declaration uses 'sorry' -warning: ././././SSA/Experimental/Bits/AutoStructs/Basic.lean:104:8: declaration uses 'sorry' -warning: ././././SSA/Experimental/Bits/AutoStructs/Basic.lean:106:8: declaration uses 'sorry' -warning: ././././SSA/Experimental/Bits/AutoStructs/Basic.lean:109:8: declaration uses 'sorry' -warning: ././././SSA/Experimental/Bits/AutoStructs/Basic.lean:111:8: declaration uses 'sorry' -warning: ././././SSA/Experimental/Bits/AutoStructs/Basic.lean:113:8: declaration uses 'sorry' -warning: ././././SSA/Experimental/Bits/AutoStructs/Basic.lean:116:8: declaration uses 'sorry' -warning: ././././SSA/Experimental/Bits/AutoStructs/Basic.lean:127:8: declaration uses 'sorry' -warning: ././././SSA/Experimental/Bits/AutoStructs/Basic.lean:164:8: declaration uses 'sorry' -warning: ././././SSA/Experimental/Bits/AutoStructs/Basic.lean:335:6: declaration uses 'sorry' -warning: ././././SSA/Experimental/Bits/AutoStructs/Basic.lean:408:6: declaration uses 'sorry' -warning: ././././SSA/Experimental/Bits/AutoStructs/Basic.lean:443:6: declaration uses 'sorry' -warning: ././././SSA/Experimental/Bits/AutoStructs/Basic.lean:477:6: declaration uses 'sorry' -⚠ [2453/2457] Replayed SSA.Experimental.Bits.AutoStructs.FiniteStateMachine -warning: ././././SSA/Experimental/Bits/AutoStructs/FiniteStateMachine.lean:24:38: structure ... :=' has been deprecated in favor of 'structure ... where'. -note: this linter can be disabled with `set_option linter.deprecated false` -warning: ././././SSA/Experimental/Bits/AutoStructs/FiniteStateMachine.lean:111:8: declaration uses 'sorry' -warning: ././././SSA/Experimental/Bits/AutoStructs/FiniteStateMachine.lean:511:59: structure ... :=' has been deprecated in favor of 'structure ... where'. -note: this linter can be disabled with `set_option linter.deprecated false` -✖ [2457/2457] Building SSA.Projects.InstCombine.tests.LLVM.gdemorgan -trace: .> LEAN_PATH=././.lake/packages/batteries/.lake/build/lib:././.lake/packages/Qq/.lake/build/lib:././.lake/packages/aesop/.lake/build/lib:././.lake/packages/proofwidgets/.lake/build/lib:././.lake/packages/Cli/.lake/build/lib:././.lake/packages/importGraph/.lake/build/lib:././.lake/packages/LeanSearchClient/.lake/build/lib:././.lake/packages/mathlib/.lake/build/lib:././.lake/packages/MD4Lean/.lake/build/lib:././.lake/packages/UnicodeBasic/.lake/build/lib:././.lake/packages/BibtexQuery/.lake/build/lib:././.lake/packages/doc-gen4/.lake/build/lib:././.lake/packages/leanwuzla/.lake/build/lib:././.lake/build/lib LD_LIBRARY_PATH= /home/lfrenot/.elan/toolchains/leanprover--lean4---nightly-2024-10-15/bin/lean ././././SSA/Projects/InstCombine/tests/LLVM/gdemorgan.lean -R ./././. -o ././.lake/build/lib/SSA/Projects/InstCombine/tests/LLVM/gdemorgan.olean -i ././.lake/build/lib/SSA/Projects/InstCombine/tests/LLVM/gdemorgan.ilean -c ././.lake/build/ir/SSA/Projects/InstCombine/tests/LLVM/gdemorgan.c --json -info: ././././SSA/Projects/InstCombine/tests/LLVM/gdemorgan.lean:45:17: theorem extracted_1 (x x_1 : BitVec 43) : - x_1 ^^^ 8796093022207#43 ||| x ^^^ 8796093022207#43 = x_1 &&& x ^^^ 8796093022207#43 := sorry -warning: ././././SSA/Projects/InstCombine/tests/LLVM/gdemorgan.lean:35:8: declaration uses 'sorry' -info: ././././SSA/Projects/InstCombine/tests/LLVM/gdemorgan.lean:79:17: theorem extracted_1 (x x_1 : BitVec 129) : - x_1 ^^^ 680564733841876926926749214863536422911#129 ||| x ^^^ 680564733841876926926749214863536422911#129 = - x_1 &&& x ^^^ 680564733841876926926749214863536422911#129 := sorry -warning: ././././SSA/Projects/InstCombine/tests/LLVM/gdemorgan.lean:69:8: declaration uses 'sorry' -info: ././././SSA/Projects/InstCombine/tests/LLVM/gdemorgan.lean:113:17: theorem extracted_1 (x x_1 : BitVec 477) : - (x_1 ^^^ - 390218568789499028922699653724145788218574767833121393857394619953171467352470702515038262882936496394978366390175827861930996959911035663286271#477) &&& - (x ^^^ - 390218568789499028922699653724145788218574767833121393857394619953171467352470702515038262882936496394978366390175827861930996959911035663286271#477) = - (x_1 ||| x) ^^^ - 390218568789499028922699653724145788218574767833121393857394619953171467352470702515038262882936496394978366390175827861930996959911035663286271#477 := sorry -warning: ././././SSA/Projects/InstCombine/tests/LLVM/gdemorgan.lean:103:8: declaration uses 'sorry' -info: ././././SSA/Projects/InstCombine/tests/LLVM/gdemorgan.lean:147:17: theorem extracted_1 (x x_1 : BitVec 129) : - (x_1 ^^^ 680564733841876926926749214863536422911#129) &&& (x ^^^ 680564733841876926926749214863536422911#129) = - (x_1 ||| x) ^^^ 680564733841876926926749214863536422911#129 := sorry -warning: ././././SSA/Projects/InstCombine/tests/LLVM/gdemorgan.lean:137:8: declaration uses 'sorry' -info: ././././SSA/Projects/InstCombine/tests/LLVM/gdemorgan.lean:181:17: theorem extracted_1 (x x_1 : BitVec 65) : - (x_1 ^^^ 36893488147419103231#65) &&& (36893488147419103231#65 ^^^ x) = - (x_1 ||| x) ^^^ 36893488147419103231#65 := sorry -warning: ././././SSA/Projects/InstCombine/tests/LLVM/gdemorgan.lean:171:8: declaration uses 'sorry' -info: ././././SSA/Projects/InstCombine/tests/LLVM/gdemorgan.lean:215:17: theorem extracted_1 (x x_1 : BitVec 66) : - (x_1 ^^^ 73786976294838206463#66) &&& (x ^^^ 73786976294838206463#66) = - (x_1 ||| x) ^^^ 73786976294838206463#66 := sorry -warning: ././././SSA/Projects/InstCombine/tests/LLVM/gdemorgan.lean:205:8: declaration uses 'sorry' -info: ././././SSA/Projects/InstCombine/tests/LLVM/gdemorgan.lean:249:17: theorem extracted_1 (x x_1 : BitVec 47) : - (x_1 ^^^ 140737488355327#47) &&& (x ^^^ 140737488355327#47) = (x_1 ||| x) ^^^ 140737488355327#47 := sorry -warning: ././././SSA/Projects/InstCombine/tests/LLVM/gdemorgan.lean:239:8: declaration uses 'sorry' -info: ././././SSA/Projects/InstCombine/tests/LLVM/gdemorgan.lean:282:17: theorem extracted_1 (x x_1 : BitVec 32) : - (x_1 ^^^ 4294967295#32) &&& (x ^^^ 4294967295#32) ^^^ 4294967295#32 = x_1 ||| x := sorry -warning: ././././SSA/Projects/InstCombine/tests/LLVM/gdemorgan.lean:272:8: declaration uses 'sorry' -info: ././././SSA/Projects/InstCombine/tests/LLVM/gdemorgan.lean:316:17: theorem extracted_1 (x : BitVec 32) : (x ^^^ 4294967295#32) &&& 5#32 ^^^ 4294967295#32 = x ||| 4294967290#32 := sorry -warning: ././././SSA/Projects/InstCombine/tests/LLVM/gdemorgan.lean:306:8: declaration uses 'sorry' -info: ././././SSA/Projects/InstCombine/tests/LLVM/gdemorgan.lean:349:17: theorem extracted_1 (x x_1 : BitVec 32) : - (x_1 ^^^ 4294967295#32 ||| x ^^^ 4294967295#32) ^^^ 4294967295#32 = x_1 &&& x := sorry -warning: ././././SSA/Projects/InstCombine/tests/LLVM/gdemorgan.lean:339:8: declaration uses 'sorry' -info: ././././SSA/Projects/InstCombine/tests/LLVM/gdemorgan.lean:382:17: theorem extracted_1 (x x_1 : BitVec 47) : - (x_1 ^^^ 140737488355327#47) &&& (x ^^^ 140737488355327#47) ^^^ 140737488355327#47 = x_1 ||| x := sorry -warning: ././././SSA/Projects/InstCombine/tests/LLVM/gdemorgan.lean:372:8: declaration uses 'sorry' -info: ././././SSA/Projects/InstCombine/tests/LLVM/gdemorgan.lean:417:17: theorem extracted_1 (x : BitVec 61) : (x ^^^ 2305843009213693951#61) &&& 5#61 = x &&& 5#61 ^^^ 5#61 := sorry -warning: ././././SSA/Projects/InstCombine/tests/LLVM/gdemorgan.lean:407:8: declaration uses 'sorry' -info: ././././SSA/Projects/InstCombine/tests/LLVM/gdemorgan.lean:450:17: theorem extracted_1 (x x_1 : BitVec 71) : - (x_1 ^^^ 2361183241434822606847#71 ||| x ^^^ 2361183241434822606847#71) ^^^ 2361183241434822606847#71 = - x_1 &&& x := sorry -warning: ././././SSA/Projects/InstCombine/tests/LLVM/gdemorgan.lean:440:8: declaration uses 'sorry' -info: ././././SSA/Projects/InstCombine/tests/LLVM/gdemorgan.lean:484:17: theorem extracted_1 (x x_1 : BitVec 8) : (x_1 ^^^ 255#8) &&& x ^^^ 255#8 = x_1 ||| x ^^^ 255#8 := sorry -warning: ././././SSA/Projects/InstCombine/tests/LLVM/gdemorgan.lean:474:8: declaration uses 'sorry' -info: ././././SSA/Projects/InstCombine/tests/LLVM/gdemorgan.lean:518:17: theorem extracted_1 (x x_1 : BitVec 7) : (x_1 ^^^ 127#7) &&& x ^^^ 127#7 = x_1 ||| x ^^^ 127#7 := sorry -warning: ././././SSA/Projects/InstCombine/tests/LLVM/gdemorgan.lean:508:8: declaration uses 'sorry' -info: ././././SSA/Projects/InstCombine/tests/LLVM/gdemorgan.lean:552:17: theorem extracted_1 (x x_1 : BitVec 117) : - (x_1 ^^^ 166153499473114484112975882535043071#117) &&& x ^^^ 166153499473114484112975882535043071#117 = - x_1 ||| x ^^^ 166153499473114484112975882535043071#117 := sorry -warning: ././././SSA/Projects/InstCombine/tests/LLVM/gdemorgan.lean:542:8: declaration uses 'sorry' -info: ././././SSA/Projects/InstCombine/tests/LLVM/gdemorgan.lean:586:17: theorem extracted_1 (x x_1 : BitVec 8) : (x_1 ^^^ 255#8 ||| x) ^^^ 255#8 = x_1 &&& (x ^^^ 255#8) := sorry -warning: ././././SSA/Projects/InstCombine/tests/LLVM/gdemorgan.lean:576:8: declaration uses 'sorry' -info: ././././SSA/Projects/InstCombine/tests/LLVM/gdemorgan.lean:627:17: theorem extracted_1 (x x_1 : BitVec 8) : - (if (x_1 ^^^ 255#8) * 23#8 = 0#8 ∨ (x_1 ^^^ 255#8 ||| x) ^^^ 255#8 = intMin 8 ∧ (x_1 ^^^ 255#8) * 23#8 = 255#8 then - none - else some (((x_1 ^^^ 255#8 ||| x) ^^^ 255#8).sdiv ((x_1 ^^^ 255#8) * 23#8))) ⊑ - if (x_1 ^^^ 255#8) * 23#8 = 0#8 ∨ x_1 &&& (x ^^^ 255#8) = intMin 8 ∧ (x_1 ^^^ 255#8) * 23#8 = 255#8 then none - else some ((x_1 &&& (x ^^^ 255#8)).sdiv ((x_1 ^^^ 255#8) * 23#8)) := sorry -warning: ././././SSA/Projects/InstCombine/tests/LLVM/gdemorgan.lean:617:8: declaration uses 'sorry' -info: ././././SSA/Projects/InstCombine/tests/LLVM/gdemorgan.lean:667:17: theorem extracted_1 (x x_1 : BitVec 8) : - (if x * 23#8 = 0#8 ∨ (x_1 ^^^ 255#8 ||| x) ^^^ 255#8 = intMin 8 ∧ x * 23#8 = 255#8 then none - else some (((x_1 ^^^ 255#8 ||| x) ^^^ 255#8).sdiv (x * 23#8))) ⊑ - if x * 23#8 = 0#8 ∨ x_1 &&& (x ^^^ 255#8) = intMin 8 ∧ x * 23#8 = 255#8 then none - else some ((x_1 &&& (x ^^^ 255#8)).sdiv (x * 23#8)) := sorry -warning: ././././SSA/Projects/InstCombine/tests/LLVM/gdemorgan.lean:657:8: declaration uses 'sorry' -error: ././././SSA/Projects/InstCombine/tests/LLVM/gdemorgan.lean:698:91: (deterministic) timeout at `whnf`, maximum number of heartbeats (200000) has been reached -Use `set_option maxHeartbeats ` to set the limit. -Additional diagnostic information may be available using the `set_option diagnostics true` command. -error: ././././SSA/Projects/InstCombine/tests/LLVM/gdemorgan.lean:745:94: (deterministic) timeout at `whnf`, maximum number of heartbeats (200000) has been reached -Use `set_option maxHeartbeats ` to set the limit. -Additional diagnostic information may be available using the `set_option diagnostics true` command. -error: ././././SSA/Projects/InstCombine/tests/LLVM/gdemorgan.lean:792:94: (deterministic) timeout at `whnf`, maximum number of heartbeats (200000) has been reached -Use `set_option maxHeartbeats ` to set the limit. -Additional diagnostic information may be available using the `set_option diagnostics true` command. -error: ././././SSA/Projects/InstCombine/tests/LLVM/gdemorgan.lean:837:94: (deterministic) timeout at `whnf`, maximum number of heartbeats (200000) has been reached -Use `set_option maxHeartbeats ` to set the limit. -Additional diagnostic information may be available using the `set_option diagnostics true` command. -info: ././././SSA/Projects/InstCombine/tests/LLVM/gdemorgan.lean:881:17: theorem extracted_1 (x : BitVec 32) : (x ||| 15#32) ^^^ 4294967295#32 = x &&& 4294967280#32 ^^^ 4294967280#32 := sorry -warning: ././././SSA/Projects/InstCombine/tests/LLVM/gdemorgan.lean:871:8: declaration uses 'sorry' -info: ././././SSA/Projects/InstCombine/tests/LLVM/gdemorgan.lean:915:17: theorem extracted_1 (x x_1 : BitVec 32) : - (x_1 &&& x ||| (x_1 ||| x) ^^^ 4294967295#32) ^^^ 4294967295#32 = x_1 ^^^ x := sorry -warning: ././././SSA/Projects/InstCombine/tests/LLVM/gdemorgan.lean:905:8: declaration uses 'sorry' -info: ././././SSA/Projects/InstCombine/tests/LLVM/gdemorgan.lean:950:17: theorem extracted_1 (x x_1 : BitVec 32) : - x_1 ^^^ x ||| (x_1 ||| x) ^^^ 4294967295#32 = x_1 &&& x ^^^ 4294967295#32 := sorry -warning: ././././SSA/Projects/InstCombine/tests/LLVM/gdemorgan.lean:940:8: declaration uses 'sorry' -error: Lean exited with code 1 -Some required builds logged failures: -- SSA.Projects.InstCombine.tests.LLVM.gdemorgan -error: build failed diff --git a/SSA/Projects/InstCombine/tests/logs/gdemorgan_proof.txt b/SSA/Projects/InstCombine/tests/logs/gdemorgan_proof.txt new file mode 100644 index 000000000..85e076068 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/gdemorgan_proof.txt @@ -0,0 +1,416 @@ +⚠ [49/2462] Replayed Mathlib.Logic.Basic +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Basic.lean:155:8: `dec_em'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Basic.lean:159:8: `em'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Basic.lean:304:8: `or_congr_left'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Basic.lean:307:8: `or_congr_right'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Basic.lean:320:8: `imp_or'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Basic.lean:359:8: `xor_iff_not_iff'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Basic.lean:418:8: `eqRec_heq'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Basic.lean:511:8: `forall_true_iff'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Basic.lean:532:8: `exists_apply_eq_apply'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Basic.lean:539:6: `exists_apply_eq_apply2'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Basic.lean:548:6: `exists_apply_eq_apply3'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Basic.lean:575:8: `forall_apply_eq_imp_iff'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Basic.lean:578:8: `forall_eq_apply_imp_iff'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Basic.lean:638:8: `forall_prop_congr'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Basic.lean:711:6: `Classical.choose_eq'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Basic.lean:847:8: `dite_eq_iff'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Basic.lean:851:8: `ite_eq_iff'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +⚠ [66/2462] Replayed Mathlib.Algebra.NeZero +warning: ././.lake/packages/mathlib/././Mathlib/Algebra/NeZero.lean:44:6: `zero_ne_one'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Algebra/NeZero.lean:46:6: `one_ne_zero'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Algebra/NeZero.lean:48:6: `two_ne_zero'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Algebra/NeZero.lean:50:6: `three_ne_zero'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Algebra/NeZero.lean:52:6: `four_ne_zero'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +⚠ [69/2462] Replayed Mathlib.Logic.ExistsUnique +warning: ././.lake/packages/mathlib/././Mathlib/Logic/ExistsUnique.lean:109:16: `exists_unique_eq'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +⚠ [74/2462] Replayed Mathlib.Logic.Function.Basic +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Function/Basic.lean:78:8: `Function.Injective.eq_iff'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Function/Basic.lean:87:8: `Function.Injective.ne_iff'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Function/Basic.lean:117:8: `Function.Injective.of_comp_iff'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Function/Basic.lean:163:8: `Function.Surjective.of_comp_iff'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Function/Basic.lean:237:8: `Function.Bijective.of_comp_iff'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Function/Basic.lean:541:8: `Function.update_comp_eq_of_forall_ne'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Function/Basic.lean:552:8: `Function.update_comp_eq_of_injective'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Function/Basic.lean:649:8: `Function.extend_apply'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Function/Basic.lean:681:8: `Function.Injective.surjective_comp_right'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +⚠ [94/2462] Replayed Mathlib.Control.Combinators +warning: ././.lake/packages/mathlib/././Mathlib/Control/Combinators.lean:35:4: `Monad.mapM'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Control/Combinators.lean:57:4: `Monad.sequence'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +⚠ [96/2462] Replayed Mathlib.Logic.IsEmpty +warning: ././.lake/packages/mathlib/././Mathlib/Logic/IsEmpty.lean:36:9: `Fin.isEmpty'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +⚠ [229/2462] Replayed Mathlib.Data.Prod.PProd +warning: ././.lake/packages/mathlib/././Mathlib/Data/Prod/PProd.lean:35:8: `PProd.forall'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Data/Prod/PProd.lean:38:8: `PProd.exists'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +⚠ [230/2462] Replayed Mathlib.Data.Bool.Basic +warning: ././.lake/packages/mathlib/././Mathlib/Data/Bool/Basic.lean:156:8: `Bool.eq_true_of_not_eq_false'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Data/Bool/Basic.lean:159:8: `Bool.eq_false_of_not_eq_true'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +⚠ [232/2462] Replayed Mathlib.Logic.Function.Iterate +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Function/Iterate.lean:160:8: `Function.iterate_succ'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Function/Iterate.lean:163:8: `Function.iterate_succ_apply'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +⚠ [234/2462] Replayed Mathlib.Data.Prod.Basic +warning: ././.lake/packages/mathlib/././Mathlib/Data/Prod/Basic.lean:31:8: `Prod.forall'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Data/Prod/Basic.lean:34:8: `Prod.exists'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Data/Prod/Basic.lean:51:8: `Prod.map_apply'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Data/Prod/Basic.lean:54:8: `Prod.map_fst'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Data/Prod/Basic.lean:57:8: `Prod.map_snd'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +⚠ [235/2462] Replayed Mathlib.Data.Sigma.Basic +warning: ././.lake/packages/mathlib/././Mathlib/Data/Sigma/Basic.lean:90:6: `Sigma.exists'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Data/Sigma/Basic.lean:93:6: `Sigma.forall'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +⚠ [239/2462] Replayed Mathlib.Data.FunLike.Basic +warning: ././.lake/packages/mathlib/././Mathlib/Data/FunLike/Basic.lean:187:8: `DFunLike.ext'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +⚠ [244/2462] Replayed Mathlib.Logic.Relation +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Relation.lean:351:8: `Relation.TransGen.head'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Relation.lean:354:8: `Relation.TransGen.tail'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Relation.lean:444:8: `Relation.TransGen.lift'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Relation.lean:453:6: `Relation.TransGen.closed'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Relation.lean:523:8: `Relation.ReflTransGen.lift'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +⚠ [245/2462] Replayed Mathlib.Logic.Unique +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Unique.lean:131:18: `Unique.subsingleton_unique'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Unique.lean:259:9: `Unique.subtypeEq'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +⚠ [252/2462] Replayed Mathlib.Data.Quot +warning: ././.lake/packages/mathlib/././Mathlib/Data/Quot.lean:558:18: `Quotient.liftOn'_mk''` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Data/Quot.lean:562:14: `Quotient.surjective_liftOn'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Data/Quot.lean:573:18: `Quotient.liftOn₂'_mk''` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Data/Quot.lean:639:8: `Quotient.hrecOn'_mk''` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Data/Quot.lean:652:8: `Quotient.hrecOn₂'_mk''` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Data/Quot.lean:664:8: `Quotient.map'_mk''` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Data/Quot.lean:674:8: `Quotient.map₂'_mk''` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Data/Quot.lean:679:8: `Quotient.exact'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Data/Quot.lean:683:8: `Quotient.sound'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Data/Quot.lean:687:18: `Quotient.eq'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Data/Quot.lean:692:18: `Quotient.eq''` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Data/Quot.lean:701:8: `Quotient.out_eq'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Data/Quot.lean:704:8: `Quotient.mk_out'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +⚠ [256/2462] Replayed Mathlib.Tactic.Lift +warning: ././.lake/packages/mathlib/././Mathlib/Tactic/Lift.lean:49:9: `PiSubtype.canLift'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +⚠ [409/2462] Replayed Mathlib.Algebra.Group.Defs +warning: ././.lake/packages/mathlib/././Mathlib/Algebra/Group/Defs.lean:735:33: `pow_succ'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Algebra/Group/Defs.lean:740:6: `pow_mul_comm'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Algebra/Group/Defs.lean:749:6: `pow_three'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Algebra/Group/Defs.lean:772:6: `pow_mul'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +⚠ [443/2462] Replayed Mathlib.Data.List.Defs +warning: ././.lake/packages/mathlib/././Mathlib/Data/List/Defs.lean:241:9: `List.decidableChain'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +⚠ [474/2462] Replayed Mathlib.Control.Applicative +warning: ././.lake/packages/mathlib/././Mathlib/Control/Applicative.lean:34:8: `Applicative.pure_seq_eq_map'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +⚠ [475/2462] Replayed Mathlib.Control.Traversable.Basic +warning: ././.lake/packages/mathlib/././Mathlib/Control/Traversable/Basic.lean:139:8: `ApplicativeTransformation.preserves_map'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +⚠ [618/2462] Replayed Mathlib.Algebra.GroupWithZero.Defs +warning: ././.lake/packages/mathlib/././Mathlib/Algebra/GroupWithZero/Defs.lean:110:8: `mul_left_inj'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Algebra/GroupWithZero/Defs.lean:113:8: `mul_right_inj'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +⚠ [624/2462] Replayed Mathlib.Algebra.Group.Invertible.Defs +warning: ././.lake/packages/mathlib/././Mathlib/Algebra/Group/Invertible/Defs.lean:97:8: `invOf_mul_self'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Algebra/Group/Invertible/Defs.lean:103:8: `mul_invOf_self'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Algebra/Group/Invertible/Defs.lean:109:8: `invOf_mul_cancel_left'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Algebra/Group/Invertible/Defs.lean:120:8: `mul_invOf_cancel_left'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Algebra/Group/Invertible/Defs.lean:131:8: `invOf_mul_cancel_right'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Algebra/Group/Invertible/Defs.lean:142:8: `mul_invOf_cancel_right'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Algebra/Group/Invertible/Defs.lean:198:8: `invOf_one'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +⚠ [1184/2462] Replayed Mathlib.Control.Traversable.Lemmas +warning: ././.lake/packages/mathlib/././Mathlib/Control/Traversable/Lemmas.lean:87:8: `Traversable.naturality'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Control/Traversable/Lemmas.lean:102:8: `Traversable.traverse_eq_map_id'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Control/Traversable/Lemmas.lean:108:8: `Traversable.traverse_map'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Control/Traversable/Lemmas.lean:113:8: `Traversable.map_traverse'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +⚠ [2407/2462] Replayed Mathlib.Data.List.EditDistance.Defs +warning: ././.lake/packages/mathlib/././Mathlib/Data/List/EditDistance/Defs.lean:214:8: `suffixLevenshtein_nil'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +⚠ [2447/2462] Replayed SSA.Experimental.Bits.Fast.FiniteStateMachine +warning: ././././SSA/Experimental/Bits/Fast/FiniteStateMachine.lean:107:8: declaration uses 'sorry' +warning: ././././SSA/Experimental/Bits/Fast/FiniteStateMachine.lean:825:8: declaration uses 'sorry' +⚠ [2451/2462] Replayed SSA.Experimental.Bits.Fast.Tactic +warning: ././././SSA/Experimental/Bits/Fast/Tactic.lean:340:4: declaration uses 'sorry' +⚠ [2452/2462] Replayed SSA.Experimental.Bits.AutoStructs.ForLean +warning: ././././SSA/Experimental/Bits/AutoStructs/ForLean.lean:24:8: declaration uses 'sorry' +warning: ././././SSA/Experimental/Bits/AutoStructs/ForLean.lean:27:8: declaration uses 'sorry' +warning: ././././SSA/Experimental/Bits/AutoStructs/ForLean.lean:29:8: declaration uses 'sorry' +warning: ././././SSA/Experimental/Bits/AutoStructs/ForLean.lean:31:8: declaration uses 'sorry' +warning: ././././SSA/Experimental/Bits/AutoStructs/ForLean.lean:34:8: declaration uses 'sorry' +warning: ././././SSA/Experimental/Bits/AutoStructs/ForLean.lean:36:8: declaration uses 'sorry' +warning: ././././SSA/Experimental/Bits/AutoStructs/ForLean.lean:38:8: declaration uses 'sorry' +warning: ././././SSA/Experimental/Bits/AutoStructs/ForLean.lean:41:8: declaration uses 'sorry' +warning: ././././SSA/Experimental/Bits/AutoStructs/ForLean.lean:52:8: declaration uses 'sorry' +warning: ././././SSA/Experimental/Bits/AutoStructs/ForLean.lean:56:8: declaration uses 'sorry' +⚠ [2457/2462] Replayed SSA.Experimental.Bits.AutoStructs.Constructions +warning: ././././SSA/Experimental/Bits/AutoStructs/Constructions.lean:55:6: declaration uses 'sorry' +warning: ././././SSA/Experimental/Bits/AutoStructs/Constructions.lean:128:6: declaration uses 'sorry' +warning: ././././SSA/Experimental/Bits/AutoStructs/Constructions.lean:163:6: declaration uses 'sorry' +warning: ././././SSA/Experimental/Bits/AutoStructs/Constructions.lean:197:6: declaration uses 'sorry' +⚠ [2458/2462] Replayed SSA.Experimental.Bits.AutoStructs.FiniteStateMachine +warning: ././././SSA/Experimental/Bits/AutoStructs/FiniteStateMachine.lean:111:8: declaration uses 'sorry' +✖ [2462/2462] Building SSA.Projects.InstCombine.tests.LLVM.gdemorgan +trace: .> LEAN_PATH=././.lake/packages/batteries/.lake/build/lib:././.lake/packages/Qq/.lake/build/lib:././.lake/packages/aesop/.lake/build/lib:././.lake/packages/proofwidgets/.lake/build/lib:././.lake/packages/Cli/.lake/build/lib:././.lake/packages/importGraph/.lake/build/lib:././.lake/packages/LeanSearchClient/.lake/build/lib:././.lake/packages/mathlib/.lake/build/lib:././.lake/packages/MD4Lean/.lake/build/lib:././.lake/packages/UnicodeBasic/.lake/build/lib:././.lake/packages/BibtexQuery/.lake/build/lib:././.lake/packages/doc-gen4/.lake/build/lib:././.lake/packages/leanwuzla/.lake/build/lib:././.lake/build/lib LD_LIBRARY_PATH= /home/lfrenot/.elan/toolchains/leanprover--lean4---nightly-2024-10-17/bin/lean ././././SSA/Projects/InstCombine/tests/LLVM/gdemorgan.lean -R ./././. -o ././.lake/build/lib/SSA/Projects/InstCombine/tests/LLVM/gdemorgan.olean -i ././.lake/build/lib/SSA/Projects/InstCombine/tests/LLVM/gdemorgan.ilean -c ././.lake/build/ir/SSA/Projects/InstCombine/tests/LLVM/gdemorgan.c --json +info: ././././SSA/Projects/InstCombine/tests/LLVM/gdemorgan.lean:45:17: theorem extracted_1 (x x_1 : BitVec 43) : + x_1 ^^^ 8796093022207#43 ||| x ^^^ 8796093022207#43 = x_1 &&& x ^^^ 8796093022207#43 := sorry +warning: ././././SSA/Projects/InstCombine/tests/LLVM/gdemorgan.lean:35:8: declaration uses 'sorry' +info: ././././SSA/Projects/InstCombine/tests/LLVM/gdemorgan.lean:79:17: theorem extracted_1 (x x_1 : BitVec 129) : + x_1 ^^^ 680564733841876926926749214863536422911#129 ||| x ^^^ 680564733841876926926749214863536422911#129 = + x_1 &&& x ^^^ 680564733841876926926749214863536422911#129 := sorry +warning: ././././SSA/Projects/InstCombine/tests/LLVM/gdemorgan.lean:69:8: declaration uses 'sorry' +info: ././././SSA/Projects/InstCombine/tests/LLVM/gdemorgan.lean:113:17: theorem extracted_1 (x x_1 : BitVec 477) : + (x_1 ^^^ + 390218568789499028922699653724145788218574767833121393857394619953171467352470702515038262882936496394978366390175827861930996959911035663286271#477) &&& + (x ^^^ + 390218568789499028922699653724145788218574767833121393857394619953171467352470702515038262882936496394978366390175827861930996959911035663286271#477) = + (x_1 ||| x) ^^^ + 390218568789499028922699653724145788218574767833121393857394619953171467352470702515038262882936496394978366390175827861930996959911035663286271#477 := sorry +warning: ././././SSA/Projects/InstCombine/tests/LLVM/gdemorgan.lean:103:8: declaration uses 'sorry' +info: ././././SSA/Projects/InstCombine/tests/LLVM/gdemorgan.lean:147:17: theorem extracted_1 (x x_1 : BitVec 129) : + (x_1 ^^^ 680564733841876926926749214863536422911#129) &&& (x ^^^ 680564733841876926926749214863536422911#129) = + (x_1 ||| x) ^^^ 680564733841876926926749214863536422911#129 := sorry +warning: ././././SSA/Projects/InstCombine/tests/LLVM/gdemorgan.lean:137:8: declaration uses 'sorry' +info: ././././SSA/Projects/InstCombine/tests/LLVM/gdemorgan.lean:181:17: theorem extracted_1 (x x_1 : BitVec 65) : + (x_1 ^^^ 36893488147419103231#65) &&& (36893488147419103231#65 ^^^ x) = + (x_1 ||| x) ^^^ 36893488147419103231#65 := sorry +warning: ././././SSA/Projects/InstCombine/tests/LLVM/gdemorgan.lean:171:8: declaration uses 'sorry' +info: ././././SSA/Projects/InstCombine/tests/LLVM/gdemorgan.lean:215:17: theorem extracted_1 (x x_1 : BitVec 66) : + (x_1 ^^^ 73786976294838206463#66) &&& (x ^^^ 73786976294838206463#66) = + (x_1 ||| x) ^^^ 73786976294838206463#66 := sorry +warning: ././././SSA/Projects/InstCombine/tests/LLVM/gdemorgan.lean:205:8: declaration uses 'sorry' +info: ././././SSA/Projects/InstCombine/tests/LLVM/gdemorgan.lean:249:17: theorem extracted_1 (x x_1 : BitVec 47) : + (x_1 ^^^ 140737488355327#47) &&& (x ^^^ 140737488355327#47) = (x_1 ||| x) ^^^ 140737488355327#47 := sorry +warning: ././././SSA/Projects/InstCombine/tests/LLVM/gdemorgan.lean:239:8: declaration uses 'sorry' +info: ././././SSA/Projects/InstCombine/tests/LLVM/gdemorgan.lean:282:17: theorem extracted_1 (x x_1 : BitVec 32) : + (x_1 ^^^ 4294967295#32) &&& (x ^^^ 4294967295#32) ^^^ 4294967295#32 = x_1 ||| x := sorry +warning: ././././SSA/Projects/InstCombine/tests/LLVM/gdemorgan.lean:272:8: declaration uses 'sorry' +info: ././././SSA/Projects/InstCombine/tests/LLVM/gdemorgan.lean:316:17: theorem extracted_1 (x : BitVec 32) : (x ^^^ 4294967295#32) &&& 5#32 ^^^ 4294967295#32 = x ||| 4294967290#32 := sorry +warning: ././././SSA/Projects/InstCombine/tests/LLVM/gdemorgan.lean:306:8: declaration uses 'sorry' +info: ././././SSA/Projects/InstCombine/tests/LLVM/gdemorgan.lean:349:17: theorem extracted_1 (x x_1 : BitVec 32) : + (x_1 ^^^ 4294967295#32 ||| x ^^^ 4294967295#32) ^^^ 4294967295#32 = x_1 &&& x := sorry +warning: ././././SSA/Projects/InstCombine/tests/LLVM/gdemorgan.lean:339:8: declaration uses 'sorry' +info: ././././SSA/Projects/InstCombine/tests/LLVM/gdemorgan.lean:382:17: theorem extracted_1 (x x_1 : BitVec 47) : + (x_1 ^^^ 140737488355327#47) &&& (x ^^^ 140737488355327#47) ^^^ 140737488355327#47 = x_1 ||| x := sorry +warning: ././././SSA/Projects/InstCombine/tests/LLVM/gdemorgan.lean:372:8: declaration uses 'sorry' +info: ././././SSA/Projects/InstCombine/tests/LLVM/gdemorgan.lean:417:17: theorem extracted_1 (x : BitVec 61) : (x ^^^ 2305843009213693951#61) &&& 5#61 = x &&& 5#61 ^^^ 5#61 := sorry +warning: ././././SSA/Projects/InstCombine/tests/LLVM/gdemorgan.lean:407:8: declaration uses 'sorry' +info: ././././SSA/Projects/InstCombine/tests/LLVM/gdemorgan.lean:450:17: theorem extracted_1 (x x_1 : BitVec 71) : + (x_1 ^^^ 2361183241434822606847#71 ||| x ^^^ 2361183241434822606847#71) ^^^ 2361183241434822606847#71 = + x_1 &&& x := sorry +warning: ././././SSA/Projects/InstCombine/tests/LLVM/gdemorgan.lean:440:8: declaration uses 'sorry' +info: ././././SSA/Projects/InstCombine/tests/LLVM/gdemorgan.lean:484:17: theorem extracted_1 (x x_1 : BitVec 8) : (x_1 ^^^ 255#8) &&& x ^^^ 255#8 = x_1 ||| x ^^^ 255#8 := sorry +warning: ././././SSA/Projects/InstCombine/tests/LLVM/gdemorgan.lean:474:8: declaration uses 'sorry' +info: ././././SSA/Projects/InstCombine/tests/LLVM/gdemorgan.lean:518:17: theorem extracted_1 (x x_1 : BitVec 7) : (x_1 ^^^ 127#7) &&& x ^^^ 127#7 = x_1 ||| x ^^^ 127#7 := sorry +warning: ././././SSA/Projects/InstCombine/tests/LLVM/gdemorgan.lean:508:8: declaration uses 'sorry' +info: ././././SSA/Projects/InstCombine/tests/LLVM/gdemorgan.lean:552:17: theorem extracted_1 (x x_1 : BitVec 117) : + (x_1 ^^^ 166153499473114484112975882535043071#117) &&& x ^^^ 166153499473114484112975882535043071#117 = + x_1 ||| x ^^^ 166153499473114484112975882535043071#117 := sorry +warning: ././././SSA/Projects/InstCombine/tests/LLVM/gdemorgan.lean:542:8: declaration uses 'sorry' +info: ././././SSA/Projects/InstCombine/tests/LLVM/gdemorgan.lean:586:17: theorem extracted_1 (x x_1 : BitVec 8) : (x_1 ^^^ 255#8 ||| x) ^^^ 255#8 = x_1 &&& (x ^^^ 255#8) := sorry +warning: ././././SSA/Projects/InstCombine/tests/LLVM/gdemorgan.lean:576:8: declaration uses 'sorry' +info: ././././SSA/Projects/InstCombine/tests/LLVM/gdemorgan.lean:627:17: theorem extracted_1 (x x_1 : BitVec 8) : + (if (x_1 ^^^ 255#8) * 23#8 = 0#8 ∨ (x_1 ^^^ 255#8 ||| x) ^^^ 255#8 = intMin 8 ∧ (x_1 ^^^ 255#8) * 23#8 = 255#8 then + none + else some (((x_1 ^^^ 255#8 ||| x) ^^^ 255#8).sdiv ((x_1 ^^^ 255#8) * 23#8))) ⊑ + if (x_1 ^^^ 255#8) * 23#8 = 0#8 ∨ x_1 &&& (x ^^^ 255#8) = intMin 8 ∧ (x_1 ^^^ 255#8) * 23#8 = 255#8 then none + else some ((x_1 &&& (x ^^^ 255#8)).sdiv ((x_1 ^^^ 255#8) * 23#8)) := sorry +warning: ././././SSA/Projects/InstCombine/tests/LLVM/gdemorgan.lean:617:8: declaration uses 'sorry' +info: ././././SSA/Projects/InstCombine/tests/LLVM/gdemorgan.lean:667:17: theorem extracted_1 (x x_1 : BitVec 8) : + (if x * 23#8 = 0#8 ∨ (x_1 ^^^ 255#8 ||| x) ^^^ 255#8 = intMin 8 ∧ x * 23#8 = 255#8 then none + else some (((x_1 ^^^ 255#8 ||| x) ^^^ 255#8).sdiv (x * 23#8))) ⊑ + if x * 23#8 = 0#8 ∨ x_1 &&& (x ^^^ 255#8) = intMin 8 ∧ x * 23#8 = 255#8 then none + else some ((x_1 &&& (x ^^^ 255#8)).sdiv (x * 23#8)) := sorry +warning: ././././SSA/Projects/InstCombine/tests/LLVM/gdemorgan.lean:657:8: declaration uses 'sorry' +error: ././././SSA/Projects/InstCombine/tests/LLVM/gdemorgan.lean:698:91: (deterministic) timeout at `whnf`, maximum number of heartbeats (200000) has been reached +Use `set_option maxHeartbeats ` to set the limit. +Additional diagnostic information may be available using the `set_option diagnostics true` command. +error: ././././SSA/Projects/InstCombine/tests/LLVM/gdemorgan.lean:745:94: (deterministic) timeout at `whnf`, maximum number of heartbeats (200000) has been reached +Use `set_option maxHeartbeats ` to set the limit. +Additional diagnostic information may be available using the `set_option diagnostics true` command. +error: ././././SSA/Projects/InstCombine/tests/LLVM/gdemorgan.lean:792:94: (deterministic) timeout at `whnf`, maximum number of heartbeats (200000) has been reached +Use `set_option maxHeartbeats ` to set the limit. +Additional diagnostic information may be available using the `set_option diagnostics true` command. +error: ././././SSA/Projects/InstCombine/tests/LLVM/gdemorgan.lean:837:94: (deterministic) timeout at `whnf`, maximum number of heartbeats (200000) has been reached +Use `set_option maxHeartbeats ` to set the limit. +Additional diagnostic information may be available using the `set_option diagnostics true` command. +info: ././././SSA/Projects/InstCombine/tests/LLVM/gdemorgan.lean:881:17: theorem extracted_1 (x : BitVec 32) : (x ||| 15#32) ^^^ 4294967295#32 = x &&& 4294967280#32 ^^^ 4294967280#32 := sorry +warning: ././././SSA/Projects/InstCombine/tests/LLVM/gdemorgan.lean:871:8: declaration uses 'sorry' +info: ././././SSA/Projects/InstCombine/tests/LLVM/gdemorgan.lean:915:17: theorem extracted_1 (x x_1 : BitVec 32) : + (x_1 &&& x ||| (x_1 ||| x) ^^^ 4294967295#32) ^^^ 4294967295#32 = x_1 ^^^ x := sorry +warning: ././././SSA/Projects/InstCombine/tests/LLVM/gdemorgan.lean:905:8: declaration uses 'sorry' +info: ././././SSA/Projects/InstCombine/tests/LLVM/gdemorgan.lean:950:17: theorem extracted_1 (x x_1 : BitVec 32) : + x_1 ^^^ x ||| (x_1 ||| x) ^^^ 4294967295#32 = x_1 &&& x ^^^ 4294967295#32 := sorry +warning: ././././SSA/Projects/InstCombine/tests/LLVM/gdemorgan.lean:940:8: declaration uses 'sorry' +error: Lean exited with code 1 +Some required builds logged failures: +- SSA.Projects.InstCombine.tests.LLVM.gdemorgan +error: build failed diff --git a/SSA/Projects/InstCombine/tests/logs/gdivhi1.txt b/SSA/Projects/InstCombine/tests/logs/gdivhi1.txt deleted file mode 100644 index b31939be4..000000000 --- a/SSA/Projects/InstCombine/tests/logs/gdivhi1.txt +++ /dev/null @@ -1,61 +0,0 @@ -error: build failed -⚠ [2443/2457] Replayed SSA.Experimental.Bits.Fast.FiniteStateMachine -warning: ././././SSA/Experimental/Bits/Fast/FiniteStateMachine.lean:107:8: declaration uses 'sorry' -warning: ././././SSA/Experimental/Bits/Fast/FiniteStateMachine.lean:825:8: declaration uses 'sorry' -⚠ [2447/2457] Replayed SSA.Experimental.Bits.Fast.Tactic -warning: ././././SSA/Experimental/Bits/Fast/Tactic.lean:340:4: declaration uses 'sorry' -⚠ [2451/2457] Replayed SSA.Experimental.Bits.AutoStructs.Basic -warning: ././././SSA/Experimental/Bits/AutoStructs/Basic.lean:99:8: declaration uses 'sorry' -warning: ././././SSA/Experimental/Bits/AutoStructs/Basic.lean:102:8: declaration uses 'sorry' -warning: ././././SSA/Experimental/Bits/AutoStructs/Basic.lean:104:8: declaration uses 'sorry' -warning: ././././SSA/Experimental/Bits/AutoStructs/Basic.lean:106:8: declaration uses 'sorry' -warning: ././././SSA/Experimental/Bits/AutoStructs/Basic.lean:109:8: declaration uses 'sorry' -warning: ././././SSA/Experimental/Bits/AutoStructs/Basic.lean:111:8: declaration uses 'sorry' -warning: ././././SSA/Experimental/Bits/AutoStructs/Basic.lean:113:8: declaration uses 'sorry' -warning: ././././SSA/Experimental/Bits/AutoStructs/Basic.lean:116:8: declaration uses 'sorry' -warning: ././././SSA/Experimental/Bits/AutoStructs/Basic.lean:127:8: declaration uses 'sorry' -warning: ././././SSA/Experimental/Bits/AutoStructs/Basic.lean:164:8: declaration uses 'sorry' -warning: ././././SSA/Experimental/Bits/AutoStructs/Basic.lean:335:6: declaration uses 'sorry' -warning: ././././SSA/Experimental/Bits/AutoStructs/Basic.lean:408:6: declaration uses 'sorry' -warning: ././././SSA/Experimental/Bits/AutoStructs/Basic.lean:443:6: declaration uses 'sorry' -warning: ././././SSA/Experimental/Bits/AutoStructs/Basic.lean:477:6: declaration uses 'sorry' -⚠ [2453/2457] Replayed SSA.Experimental.Bits.AutoStructs.FiniteStateMachine -warning: ././././SSA/Experimental/Bits/AutoStructs/FiniteStateMachine.lean:24:38: structure ... :=' has been deprecated in favor of 'structure ... where'. -note: this linter can be disabled with `set_option linter.deprecated false` -warning: ././././SSA/Experimental/Bits/AutoStructs/FiniteStateMachine.lean:111:8: declaration uses 'sorry' -warning: ././././SSA/Experimental/Bits/AutoStructs/FiniteStateMachine.lean:511:59: structure ... :=' has been deprecated in favor of 'structure ... where'. -note: this linter can be disabled with `set_option linter.deprecated false` -✖ [2457/2457] Building SSA.Projects.InstCombine.tests.LLVM.gdivhi1 -trace: .> LEAN_PATH=././.lake/packages/batteries/.lake/build/lib:././.lake/packages/Qq/.lake/build/lib:././.lake/packages/aesop/.lake/build/lib:././.lake/packages/proofwidgets/.lake/build/lib:././.lake/packages/Cli/.lake/build/lib:././.lake/packages/importGraph/.lake/build/lib:././.lake/packages/LeanSearchClient/.lake/build/lib:././.lake/packages/mathlib/.lake/build/lib:././.lake/packages/MD4Lean/.lake/build/lib:././.lake/packages/UnicodeBasic/.lake/build/lib:././.lake/packages/BibtexQuery/.lake/build/lib:././.lake/packages/doc-gen4/.lake/build/lib:././.lake/packages/leanwuzla/.lake/build/lib:././.lake/build/lib LD_LIBRARY_PATH= /home/lfrenot/.elan/toolchains/leanprover--lean4---nightly-2024-10-15/bin/lean ././././SSA/Projects/InstCombine/tests/LLVM/gdivhi1.lean -R ./././. -o ././.lake/build/lib/SSA/Projects/InstCombine/tests/LLVM/gdivhi1.olean -i ././.lake/build/lib/SSA/Projects/InstCombine/tests/LLVM/gdivhi1.ilean -c ././.lake/build/ir/SSA/Projects/InstCombine/tests/LLVM/gdivhi1.c --json -info: ././././SSA/Projects/InstCombine/tests/LLVM/gdivhi1.lean:39:17: theorem extracted_1 (x x_1 : BitVec 1) : (if x = 0#1 then none else some (x_1.sdiv x)) ⊑ some x_1 := sorry -warning: ././././SSA/Projects/InstCombine/tests/LLVM/gdivhi1.lean:29:8: declaration uses 'sorry' -error: ././././SSA/Projects/InstCombine/tests/LLVM/gdivhi1.lean:54:40: cannot convert suffix of i/f to int: false -error: ././././SSA/Projects/InstCombine/tests/LLVM/gdivhi1.lean:59:2: tactic 'unfold' failed to unfold 'srem_i1_is_zero_after' at - (Com.changeDialect (InstcombineTransformDialect.MOp.instantiateCom ⟨[], srem_i1_is_zero_before.proof_1⟩) - (Com.var - (Expr.mk (InstCombine.MOp.binary 1 InstCombine.MOp.BinaryOp.srem) srem_i1_is_zero_before.proof_2 - srem_i1_is_zero_before.proof_3 - (⟨0 + 1, - srem_i1_is_zero_before.proof_4⟩::ₕ(srem_i1_is_zero_before.proof_6 ▸ - ⟨0, srem_i1_is_zero_before.proof_5⟩::ₕHVector.nil)) - HVector.nil) - (Com.ret ⟨0, srem_i1_is_zero_before.proof_7⟩)) ⊑ - srem_i1_is_zero_after) - ⋯ -error: ././././SSA/Projects/InstCombine/tests/LLVM/gdivhi1.lean:83:40: cannot convert suffix of i/f to int: false -error: ././././SSA/Projects/InstCombine/tests/LLVM/gdivhi1.lean:88:2: tactic 'unfold' failed to unfold 'urem_i1_is_zero_after' at - (Com.changeDialect (InstcombineTransformDialect.MOp.instantiateCom ⟨[], urem_i1_is_zero_before.proof_1⟩) - (Com.var - (Expr.mk (InstCombine.MOp.binary 1 InstCombine.MOp.BinaryOp.urem) urem_i1_is_zero_before.proof_2 - urem_i1_is_zero_before.proof_3 - (⟨0 + 1, - urem_i1_is_zero_before.proof_4⟩::ₕ(urem_i1_is_zero_before.proof_6 ▸ - ⟨0, urem_i1_is_zero_before.proof_5⟩::ₕHVector.nil)) - HVector.nil) - (Com.ret ⟨0, urem_i1_is_zero_before.proof_7⟩)) ⊑ - urem_i1_is_zero_after) - ⋯ -error: Lean exited with code 1 -Some required builds logged failures: -- SSA.Projects.InstCombine.tests.LLVM.gdivhi1 -error: build failed diff --git a/SSA/Projects/InstCombine/tests/logs/gdivhi1_proof.txt b/SSA/Projects/InstCombine/tests/logs/gdivhi1_proof.txt new file mode 100644 index 000000000..f47b0406e --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/gdivhi1_proof.txt @@ -0,0 +1,356 @@ +⚠ [49/2462] Replayed Mathlib.Logic.Basic +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Basic.lean:155:8: `dec_em'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Basic.lean:159:8: `em'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Basic.lean:304:8: `or_congr_left'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Basic.lean:307:8: `or_congr_right'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Basic.lean:320:8: `imp_or'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Basic.lean:359:8: `xor_iff_not_iff'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Basic.lean:418:8: `eqRec_heq'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Basic.lean:511:8: `forall_true_iff'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Basic.lean:532:8: `exists_apply_eq_apply'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Basic.lean:539:6: `exists_apply_eq_apply2'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Basic.lean:548:6: `exists_apply_eq_apply3'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Basic.lean:575:8: `forall_apply_eq_imp_iff'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Basic.lean:578:8: `forall_eq_apply_imp_iff'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Basic.lean:638:8: `forall_prop_congr'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Basic.lean:711:6: `Classical.choose_eq'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Basic.lean:847:8: `dite_eq_iff'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Basic.lean:851:8: `ite_eq_iff'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +⚠ [66/2462] Replayed Mathlib.Algebra.NeZero +warning: ././.lake/packages/mathlib/././Mathlib/Algebra/NeZero.lean:44:6: `zero_ne_one'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Algebra/NeZero.lean:46:6: `one_ne_zero'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Algebra/NeZero.lean:48:6: `two_ne_zero'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Algebra/NeZero.lean:50:6: `three_ne_zero'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Algebra/NeZero.lean:52:6: `four_ne_zero'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +⚠ [69/2462] Replayed Mathlib.Logic.ExistsUnique +warning: ././.lake/packages/mathlib/././Mathlib/Logic/ExistsUnique.lean:109:16: `exists_unique_eq'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +⚠ [74/2462] Replayed Mathlib.Logic.Function.Basic +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Function/Basic.lean:78:8: `Function.Injective.eq_iff'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Function/Basic.lean:87:8: `Function.Injective.ne_iff'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Function/Basic.lean:117:8: `Function.Injective.of_comp_iff'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Function/Basic.lean:163:8: `Function.Surjective.of_comp_iff'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Function/Basic.lean:237:8: `Function.Bijective.of_comp_iff'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Function/Basic.lean:541:8: `Function.update_comp_eq_of_forall_ne'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Function/Basic.lean:552:8: `Function.update_comp_eq_of_injective'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Function/Basic.lean:649:8: `Function.extend_apply'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Function/Basic.lean:681:8: `Function.Injective.surjective_comp_right'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +⚠ [94/2462] Replayed Mathlib.Control.Combinators +warning: ././.lake/packages/mathlib/././Mathlib/Control/Combinators.lean:35:4: `Monad.mapM'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Control/Combinators.lean:57:4: `Monad.sequence'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +⚠ [96/2462] Replayed Mathlib.Logic.IsEmpty +warning: ././.lake/packages/mathlib/././Mathlib/Logic/IsEmpty.lean:36:9: `Fin.isEmpty'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +⚠ [229/2462] Replayed Mathlib.Data.Prod.PProd +warning: ././.lake/packages/mathlib/././Mathlib/Data/Prod/PProd.lean:35:8: `PProd.forall'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Data/Prod/PProd.lean:38:8: `PProd.exists'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +⚠ [230/2462] Replayed Mathlib.Data.Bool.Basic +warning: ././.lake/packages/mathlib/././Mathlib/Data/Bool/Basic.lean:156:8: `Bool.eq_true_of_not_eq_false'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Data/Bool/Basic.lean:159:8: `Bool.eq_false_of_not_eq_true'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +⚠ [232/2462] Replayed Mathlib.Logic.Function.Iterate +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Function/Iterate.lean:160:8: `Function.iterate_succ'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Function/Iterate.lean:163:8: `Function.iterate_succ_apply'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +⚠ [234/2462] Replayed Mathlib.Data.Prod.Basic +warning: ././.lake/packages/mathlib/././Mathlib/Data/Prod/Basic.lean:31:8: `Prod.forall'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Data/Prod/Basic.lean:34:8: `Prod.exists'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Data/Prod/Basic.lean:51:8: `Prod.map_apply'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Data/Prod/Basic.lean:54:8: `Prod.map_fst'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Data/Prod/Basic.lean:57:8: `Prod.map_snd'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +⚠ [235/2462] Replayed Mathlib.Data.Sigma.Basic +warning: ././.lake/packages/mathlib/././Mathlib/Data/Sigma/Basic.lean:90:6: `Sigma.exists'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Data/Sigma/Basic.lean:93:6: `Sigma.forall'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +⚠ [239/2462] Replayed Mathlib.Data.FunLike.Basic +warning: ././.lake/packages/mathlib/././Mathlib/Data/FunLike/Basic.lean:187:8: `DFunLike.ext'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +⚠ [244/2462] Replayed Mathlib.Logic.Relation +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Relation.lean:351:8: `Relation.TransGen.head'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Relation.lean:354:8: `Relation.TransGen.tail'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Relation.lean:444:8: `Relation.TransGen.lift'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Relation.lean:453:6: `Relation.TransGen.closed'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Relation.lean:523:8: `Relation.ReflTransGen.lift'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +⚠ [245/2462] Replayed Mathlib.Logic.Unique +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Unique.lean:131:18: `Unique.subsingleton_unique'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Unique.lean:259:9: `Unique.subtypeEq'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +⚠ [252/2462] Replayed Mathlib.Data.Quot +warning: ././.lake/packages/mathlib/././Mathlib/Data/Quot.lean:558:18: `Quotient.liftOn'_mk''` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Data/Quot.lean:562:14: `Quotient.surjective_liftOn'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Data/Quot.lean:573:18: `Quotient.liftOn₂'_mk''` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Data/Quot.lean:639:8: `Quotient.hrecOn'_mk''` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Data/Quot.lean:652:8: `Quotient.hrecOn₂'_mk''` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Data/Quot.lean:664:8: `Quotient.map'_mk''` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Data/Quot.lean:674:8: `Quotient.map₂'_mk''` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Data/Quot.lean:679:8: `Quotient.exact'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Data/Quot.lean:683:8: `Quotient.sound'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Data/Quot.lean:687:18: `Quotient.eq'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Data/Quot.lean:692:18: `Quotient.eq''` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Data/Quot.lean:701:8: `Quotient.out_eq'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Data/Quot.lean:704:8: `Quotient.mk_out'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +⚠ [256/2462] Replayed Mathlib.Tactic.Lift +warning: ././.lake/packages/mathlib/././Mathlib/Tactic/Lift.lean:49:9: `PiSubtype.canLift'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +⚠ [409/2462] Replayed Mathlib.Algebra.Group.Defs +warning: ././.lake/packages/mathlib/././Mathlib/Algebra/Group/Defs.lean:735:33: `pow_succ'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Algebra/Group/Defs.lean:740:6: `pow_mul_comm'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Algebra/Group/Defs.lean:749:6: `pow_three'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Algebra/Group/Defs.lean:772:6: `pow_mul'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +⚠ [443/2462] Replayed Mathlib.Data.List.Defs +warning: ././.lake/packages/mathlib/././Mathlib/Data/List/Defs.lean:241:9: `List.decidableChain'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +⚠ [474/2462] Replayed Mathlib.Control.Applicative +warning: ././.lake/packages/mathlib/././Mathlib/Control/Applicative.lean:34:8: `Applicative.pure_seq_eq_map'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +⚠ [475/2462] Replayed Mathlib.Control.Traversable.Basic +warning: ././.lake/packages/mathlib/././Mathlib/Control/Traversable/Basic.lean:139:8: `ApplicativeTransformation.preserves_map'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +⚠ [618/2462] Replayed Mathlib.Algebra.GroupWithZero.Defs +warning: ././.lake/packages/mathlib/././Mathlib/Algebra/GroupWithZero/Defs.lean:110:8: `mul_left_inj'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Algebra/GroupWithZero/Defs.lean:113:8: `mul_right_inj'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +⚠ [624/2462] Replayed Mathlib.Algebra.Group.Invertible.Defs +warning: ././.lake/packages/mathlib/././Mathlib/Algebra/Group/Invertible/Defs.lean:97:8: `invOf_mul_self'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Algebra/Group/Invertible/Defs.lean:103:8: `mul_invOf_self'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Algebra/Group/Invertible/Defs.lean:109:8: `invOf_mul_cancel_left'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Algebra/Group/Invertible/Defs.lean:120:8: `mul_invOf_cancel_left'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Algebra/Group/Invertible/Defs.lean:131:8: `invOf_mul_cancel_right'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Algebra/Group/Invertible/Defs.lean:142:8: `mul_invOf_cancel_right'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Algebra/Group/Invertible/Defs.lean:198:8: `invOf_one'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +⚠ [1184/2462] Replayed Mathlib.Control.Traversable.Lemmas +warning: ././.lake/packages/mathlib/././Mathlib/Control/Traversable/Lemmas.lean:87:8: `Traversable.naturality'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Control/Traversable/Lemmas.lean:102:8: `Traversable.traverse_eq_map_id'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Control/Traversable/Lemmas.lean:108:8: `Traversable.traverse_map'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Control/Traversable/Lemmas.lean:113:8: `Traversable.map_traverse'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +⚠ [2407/2462] Replayed Mathlib.Data.List.EditDistance.Defs +warning: ././.lake/packages/mathlib/././Mathlib/Data/List/EditDistance/Defs.lean:214:8: `suffixLevenshtein_nil'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +⚠ [2447/2462] Replayed SSA.Experimental.Bits.Fast.FiniteStateMachine +warning: ././././SSA/Experimental/Bits/Fast/FiniteStateMachine.lean:107:8: declaration uses 'sorry' +warning: ././././SSA/Experimental/Bits/Fast/FiniteStateMachine.lean:825:8: declaration uses 'sorry' +⚠ [2451/2462] Replayed SSA.Experimental.Bits.Fast.Tactic +warning: ././././SSA/Experimental/Bits/Fast/Tactic.lean:340:4: declaration uses 'sorry' +⚠ [2452/2462] Replayed SSA.Experimental.Bits.AutoStructs.ForLean +warning: ././././SSA/Experimental/Bits/AutoStructs/ForLean.lean:24:8: declaration uses 'sorry' +warning: ././././SSA/Experimental/Bits/AutoStructs/ForLean.lean:27:8: declaration uses 'sorry' +warning: ././././SSA/Experimental/Bits/AutoStructs/ForLean.lean:29:8: declaration uses 'sorry' +warning: ././././SSA/Experimental/Bits/AutoStructs/ForLean.lean:31:8: declaration uses 'sorry' +warning: ././././SSA/Experimental/Bits/AutoStructs/ForLean.lean:34:8: declaration uses 'sorry' +warning: ././././SSA/Experimental/Bits/AutoStructs/ForLean.lean:36:8: declaration uses 'sorry' +warning: ././././SSA/Experimental/Bits/AutoStructs/ForLean.lean:38:8: declaration uses 'sorry' +warning: ././././SSA/Experimental/Bits/AutoStructs/ForLean.lean:41:8: declaration uses 'sorry' +warning: ././././SSA/Experimental/Bits/AutoStructs/ForLean.lean:52:8: declaration uses 'sorry' +warning: ././././SSA/Experimental/Bits/AutoStructs/ForLean.lean:56:8: declaration uses 'sorry' +⚠ [2457/2462] Replayed SSA.Experimental.Bits.AutoStructs.Constructions +warning: ././././SSA/Experimental/Bits/AutoStructs/Constructions.lean:55:6: declaration uses 'sorry' +warning: ././././SSA/Experimental/Bits/AutoStructs/Constructions.lean:128:6: declaration uses 'sorry' +warning: ././././SSA/Experimental/Bits/AutoStructs/Constructions.lean:163:6: declaration uses 'sorry' +warning: ././././SSA/Experimental/Bits/AutoStructs/Constructions.lean:197:6: declaration uses 'sorry' +⚠ [2458/2462] Replayed SSA.Experimental.Bits.AutoStructs.FiniteStateMachine +warning: ././././SSA/Experimental/Bits/AutoStructs/FiniteStateMachine.lean:111:8: declaration uses 'sorry' +✖ [2462/2462] Building SSA.Projects.InstCombine.tests.LLVM.gdivhi1 +trace: .> LEAN_PATH=././.lake/packages/batteries/.lake/build/lib:././.lake/packages/Qq/.lake/build/lib:././.lake/packages/aesop/.lake/build/lib:././.lake/packages/proofwidgets/.lake/build/lib:././.lake/packages/Cli/.lake/build/lib:././.lake/packages/importGraph/.lake/build/lib:././.lake/packages/LeanSearchClient/.lake/build/lib:././.lake/packages/mathlib/.lake/build/lib:././.lake/packages/MD4Lean/.lake/build/lib:././.lake/packages/UnicodeBasic/.lake/build/lib:././.lake/packages/BibtexQuery/.lake/build/lib:././.lake/packages/doc-gen4/.lake/build/lib:././.lake/packages/leanwuzla/.lake/build/lib:././.lake/build/lib LD_LIBRARY_PATH= /home/lfrenot/.elan/toolchains/leanprover--lean4---nightly-2024-10-17/bin/lean ././././SSA/Projects/InstCombine/tests/LLVM/gdivhi1.lean -R ./././. -o ././.lake/build/lib/SSA/Projects/InstCombine/tests/LLVM/gdivhi1.olean -i ././.lake/build/lib/SSA/Projects/InstCombine/tests/LLVM/gdivhi1.ilean -c ././.lake/build/ir/SSA/Projects/InstCombine/tests/LLVM/gdivhi1.c --json +info: ././././SSA/Projects/InstCombine/tests/LLVM/gdivhi1.lean:39:17: theorem extracted_1 (x x_1 : BitVec 1) : (if x = 0#1 then none else some (x_1.sdiv x)) ⊑ some x_1 := sorry +warning: ././././SSA/Projects/InstCombine/tests/LLVM/gdivhi1.lean:29:8: declaration uses 'sorry' +info: ././././SSA/Projects/InstCombine/tests/LLVM/gdivhi1.lean:67:17: theorem extracted_1 (x x_1 : BitVec 1) : (if x = 0#1 then none else some (x_1 &&& x)) ⊑ some x_1 := sorry +warning: ././././SSA/Projects/InstCombine/tests/LLVM/gdivhi1.lean:57:8: declaration uses 'sorry' +error: ././././SSA/Projects/InstCombine/tests/LLVM/gdivhi1.lean:82:40: cannot convert suffix of i/f to int: false +error: ././././SSA/Projects/InstCombine/tests/LLVM/gdivhi1.lean:87:2: tactic 'unfold' failed to unfold 'srem_i1_is_zero_after' at + (Com.changeDialect (InstcombineTransformDialect.MOp.instantiateCom ⟨[], srem_i1_is_zero_before.proof_1⟩) + (Com.var + (Expr.mk (InstCombine.MOp.binary 1 InstCombine.MOp.BinaryOp.srem) srem_i1_is_zero_before.proof_2 + srem_i1_is_zero_before.proof_3 + (⟨0 + 1, + srem_i1_is_zero_before.proof_4⟩::ₕ(srem_i1_is_zero_before.proof_6 ▸ + ⟨0, srem_i1_is_zero_before.proof_5⟩::ₕHVector.nil)) + HVector.nil) + (Com.ret ⟨0, srem_i1_is_zero_before.proof_7⟩)) ⊑ + srem_i1_is_zero_after) + ⋯ +error: ././././SSA/Projects/InstCombine/tests/LLVM/gdivhi1.lean:111:40: cannot convert suffix of i/f to int: false +error: ././././SSA/Projects/InstCombine/tests/LLVM/gdivhi1.lean:116:2: tactic 'unfold' failed to unfold 'urem_i1_is_zero_after' at + (Com.changeDialect (InstcombineTransformDialect.MOp.instantiateCom ⟨[], urem_i1_is_zero_before.proof_1⟩) + (Com.var + (Expr.mk (InstCombine.MOp.binary 1 InstCombine.MOp.BinaryOp.urem) urem_i1_is_zero_before.proof_2 + urem_i1_is_zero_before.proof_3 + (⟨0 + 1, + urem_i1_is_zero_before.proof_4⟩::ₕ(urem_i1_is_zero_before.proof_6 ▸ + ⟨0, urem_i1_is_zero_before.proof_5⟩::ₕHVector.nil)) + HVector.nil) + (Com.ret ⟨0, urem_i1_is_zero_before.proof_7⟩)) ⊑ + urem_i1_is_zero_after) + ⋯ +error: Lean exited with code 1 +Some required builds logged failures: +- SSA.Projects.InstCombine.tests.LLVM.gdivhi1 +error: build failed diff --git a/SSA/Projects/InstCombine/tests/logs/get-lowbitmask-upto-and-including-bit.txt b/SSA/Projects/InstCombine/tests/logs/get-lowbitmask-upto-and-including-bit.txt index 591484a6d..ed21b29cf 100644 --- a/SSA/Projects/InstCombine/tests/logs/get-lowbitmask-upto-and-including-bit.txt +++ b/SSA/Projects/InstCombine/tests/logs/get-lowbitmask-upto-and-including-bit.txt @@ -20,16 +20,16 @@ 2: llvm.return 1: "t2_vec" -"t2_vec" contains vectors which are unsupported +8: "t2_vec" contains vectors which are unsupported 1: "t3_vec_poison0" -"t3_vec_poison0" contains vectors which are unsupported +8: "t3_vec_poison0" contains vectors which are unsupported 1: "t4_vec_poison1" -"t4_vec_poison1" contains vectors which are unsupported +8: "t4_vec_poison1" contains vectors which are unsupported 1: "t5_vec_poison2" -"t5_vec_poison2" contains vectors which are unsupported +8: "t5_vec_poison2" contains vectors which are unsupported 1: "t6_extrause0" 4: "t6_extrause0" has unsupported operation: llvm.call diff --git a/SSA/Projects/InstCombine/tests/logs/gfreehinversion_proof.txt b/SSA/Projects/InstCombine/tests/logs/gfreehinversion_proof.txt new file mode 100644 index 000000000..586fb5cb3 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/gfreehinversion_proof.txt @@ -0,0 +1,747 @@ +⚠ [49/2462] Replayed Mathlib.Logic.Basic +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Basic.lean:155:8: `dec_em'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Basic.lean:159:8: `em'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Basic.lean:304:8: `or_congr_left'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Basic.lean:307:8: `or_congr_right'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Basic.lean:320:8: `imp_or'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Basic.lean:359:8: `xor_iff_not_iff'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Basic.lean:418:8: `eqRec_heq'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Basic.lean:511:8: `forall_true_iff'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Basic.lean:532:8: `exists_apply_eq_apply'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Basic.lean:539:6: `exists_apply_eq_apply2'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Basic.lean:548:6: `exists_apply_eq_apply3'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Basic.lean:575:8: `forall_apply_eq_imp_iff'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Basic.lean:578:8: `forall_eq_apply_imp_iff'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Basic.lean:638:8: `forall_prop_congr'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Basic.lean:711:6: `Classical.choose_eq'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Basic.lean:847:8: `dite_eq_iff'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Basic.lean:851:8: `ite_eq_iff'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +⚠ [66/2462] Replayed Mathlib.Algebra.NeZero +warning: ././.lake/packages/mathlib/././Mathlib/Algebra/NeZero.lean:44:6: `zero_ne_one'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Algebra/NeZero.lean:46:6: `one_ne_zero'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Algebra/NeZero.lean:48:6: `two_ne_zero'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Algebra/NeZero.lean:50:6: `three_ne_zero'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Algebra/NeZero.lean:52:6: `four_ne_zero'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +⚠ [69/2462] Replayed Mathlib.Logic.ExistsUnique +warning: ././.lake/packages/mathlib/././Mathlib/Logic/ExistsUnique.lean:109:16: `exists_unique_eq'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +⚠ [74/2462] Replayed Mathlib.Logic.Function.Basic +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Function/Basic.lean:78:8: `Function.Injective.eq_iff'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Function/Basic.lean:87:8: `Function.Injective.ne_iff'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Function/Basic.lean:117:8: `Function.Injective.of_comp_iff'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Function/Basic.lean:163:8: `Function.Surjective.of_comp_iff'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Function/Basic.lean:237:8: `Function.Bijective.of_comp_iff'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Function/Basic.lean:541:8: `Function.update_comp_eq_of_forall_ne'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Function/Basic.lean:552:8: `Function.update_comp_eq_of_injective'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Function/Basic.lean:649:8: `Function.extend_apply'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Function/Basic.lean:681:8: `Function.Injective.surjective_comp_right'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +⚠ [94/2462] Replayed Mathlib.Control.Combinators +warning: ././.lake/packages/mathlib/././Mathlib/Control/Combinators.lean:35:4: `Monad.mapM'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Control/Combinators.lean:57:4: `Monad.sequence'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +⚠ [96/2462] Replayed Mathlib.Logic.IsEmpty +warning: ././.lake/packages/mathlib/././Mathlib/Logic/IsEmpty.lean:36:9: `Fin.isEmpty'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +⚠ [229/2462] Replayed Mathlib.Data.Prod.PProd +warning: ././.lake/packages/mathlib/././Mathlib/Data/Prod/PProd.lean:35:8: `PProd.forall'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Data/Prod/PProd.lean:38:8: `PProd.exists'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +⚠ [230/2462] Replayed Mathlib.Data.Bool.Basic +warning: ././.lake/packages/mathlib/././Mathlib/Data/Bool/Basic.lean:156:8: `Bool.eq_true_of_not_eq_false'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Data/Bool/Basic.lean:159:8: `Bool.eq_false_of_not_eq_true'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +⚠ [232/2462] Replayed Mathlib.Logic.Function.Iterate +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Function/Iterate.lean:160:8: `Function.iterate_succ'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Function/Iterate.lean:163:8: `Function.iterate_succ_apply'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +⚠ [234/2462] Replayed Mathlib.Data.Prod.Basic +warning: ././.lake/packages/mathlib/././Mathlib/Data/Prod/Basic.lean:31:8: `Prod.forall'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Data/Prod/Basic.lean:34:8: `Prod.exists'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Data/Prod/Basic.lean:51:8: `Prod.map_apply'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Data/Prod/Basic.lean:54:8: `Prod.map_fst'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Data/Prod/Basic.lean:57:8: `Prod.map_snd'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +⚠ [235/2462] Replayed Mathlib.Data.Sigma.Basic +warning: ././.lake/packages/mathlib/././Mathlib/Data/Sigma/Basic.lean:90:6: `Sigma.exists'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Data/Sigma/Basic.lean:93:6: `Sigma.forall'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +⚠ [239/2462] Replayed Mathlib.Data.FunLike.Basic +warning: ././.lake/packages/mathlib/././Mathlib/Data/FunLike/Basic.lean:187:8: `DFunLike.ext'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +⚠ [244/2462] Replayed Mathlib.Logic.Relation +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Relation.lean:351:8: `Relation.TransGen.head'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Relation.lean:354:8: `Relation.TransGen.tail'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Relation.lean:444:8: `Relation.TransGen.lift'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Relation.lean:453:6: `Relation.TransGen.closed'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Relation.lean:523:8: `Relation.ReflTransGen.lift'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +⚠ [245/2462] Replayed Mathlib.Logic.Unique +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Unique.lean:131:18: `Unique.subsingleton_unique'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Unique.lean:259:9: `Unique.subtypeEq'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +⚠ [252/2462] Replayed Mathlib.Data.Quot +warning: ././.lake/packages/mathlib/././Mathlib/Data/Quot.lean:558:18: `Quotient.liftOn'_mk''` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Data/Quot.lean:562:14: `Quotient.surjective_liftOn'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Data/Quot.lean:573:18: `Quotient.liftOn₂'_mk''` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Data/Quot.lean:639:8: `Quotient.hrecOn'_mk''` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Data/Quot.lean:652:8: `Quotient.hrecOn₂'_mk''` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Data/Quot.lean:664:8: `Quotient.map'_mk''` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Data/Quot.lean:674:8: `Quotient.map₂'_mk''` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Data/Quot.lean:679:8: `Quotient.exact'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Data/Quot.lean:683:8: `Quotient.sound'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Data/Quot.lean:687:18: `Quotient.eq'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Data/Quot.lean:692:18: `Quotient.eq''` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Data/Quot.lean:701:8: `Quotient.out_eq'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Data/Quot.lean:704:8: `Quotient.mk_out'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +⚠ [256/2462] Replayed Mathlib.Tactic.Lift +warning: ././.lake/packages/mathlib/././Mathlib/Tactic/Lift.lean:49:9: `PiSubtype.canLift'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +⚠ [409/2462] Replayed Mathlib.Algebra.Group.Defs +warning: ././.lake/packages/mathlib/././Mathlib/Algebra/Group/Defs.lean:735:33: `pow_succ'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Algebra/Group/Defs.lean:740:6: `pow_mul_comm'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Algebra/Group/Defs.lean:749:6: `pow_three'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Algebra/Group/Defs.lean:772:6: `pow_mul'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +⚠ [443/2462] Replayed Mathlib.Data.List.Defs +warning: ././.lake/packages/mathlib/././Mathlib/Data/List/Defs.lean:241:9: `List.decidableChain'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +⚠ [474/2462] Replayed Mathlib.Control.Applicative +warning: ././.lake/packages/mathlib/././Mathlib/Control/Applicative.lean:34:8: `Applicative.pure_seq_eq_map'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +⚠ [475/2462] Replayed Mathlib.Control.Traversable.Basic +warning: ././.lake/packages/mathlib/././Mathlib/Control/Traversable/Basic.lean:139:8: `ApplicativeTransformation.preserves_map'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +⚠ [618/2462] Replayed Mathlib.Algebra.GroupWithZero.Defs +warning: ././.lake/packages/mathlib/././Mathlib/Algebra/GroupWithZero/Defs.lean:110:8: `mul_left_inj'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Algebra/GroupWithZero/Defs.lean:113:8: `mul_right_inj'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +⚠ [624/2462] Replayed Mathlib.Algebra.Group.Invertible.Defs +warning: ././.lake/packages/mathlib/././Mathlib/Algebra/Group/Invertible/Defs.lean:97:8: `invOf_mul_self'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Algebra/Group/Invertible/Defs.lean:103:8: `mul_invOf_self'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Algebra/Group/Invertible/Defs.lean:109:8: `invOf_mul_cancel_left'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Algebra/Group/Invertible/Defs.lean:120:8: `mul_invOf_cancel_left'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Algebra/Group/Invertible/Defs.lean:131:8: `invOf_mul_cancel_right'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Algebra/Group/Invertible/Defs.lean:142:8: `mul_invOf_cancel_right'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Algebra/Group/Invertible/Defs.lean:198:8: `invOf_one'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +⚠ [1184/2462] Replayed Mathlib.Control.Traversable.Lemmas +warning: ././.lake/packages/mathlib/././Mathlib/Control/Traversable/Lemmas.lean:87:8: `Traversable.naturality'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Control/Traversable/Lemmas.lean:102:8: `Traversable.traverse_eq_map_id'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Control/Traversable/Lemmas.lean:108:8: `Traversable.traverse_map'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Control/Traversable/Lemmas.lean:113:8: `Traversable.map_traverse'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +⚠ [2407/2462] Replayed Mathlib.Data.List.EditDistance.Defs +warning: ././.lake/packages/mathlib/././Mathlib/Data/List/EditDistance/Defs.lean:214:8: `suffixLevenshtein_nil'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +⚠ [2447/2462] Replayed SSA.Experimental.Bits.Fast.FiniteStateMachine +warning: ././././SSA/Experimental/Bits/Fast/FiniteStateMachine.lean:107:8: declaration uses 'sorry' +warning: ././././SSA/Experimental/Bits/Fast/FiniteStateMachine.lean:825:8: declaration uses 'sorry' +⚠ [2451/2462] Replayed SSA.Experimental.Bits.Fast.Tactic +warning: ././././SSA/Experimental/Bits/Fast/Tactic.lean:340:4: declaration uses 'sorry' +⚠ [2452/2462] Replayed SSA.Experimental.Bits.AutoStructs.ForLean +warning: ././././SSA/Experimental/Bits/AutoStructs/ForLean.lean:24:8: declaration uses 'sorry' +warning: ././././SSA/Experimental/Bits/AutoStructs/ForLean.lean:27:8: declaration uses 'sorry' +warning: ././././SSA/Experimental/Bits/AutoStructs/ForLean.lean:29:8: declaration uses 'sorry' +warning: ././././SSA/Experimental/Bits/AutoStructs/ForLean.lean:31:8: declaration uses 'sorry' +warning: ././././SSA/Experimental/Bits/AutoStructs/ForLean.lean:34:8: declaration uses 'sorry' +warning: ././././SSA/Experimental/Bits/AutoStructs/ForLean.lean:36:8: declaration uses 'sorry' +warning: ././././SSA/Experimental/Bits/AutoStructs/ForLean.lean:38:8: declaration uses 'sorry' +warning: ././././SSA/Experimental/Bits/AutoStructs/ForLean.lean:41:8: declaration uses 'sorry' +warning: ././././SSA/Experimental/Bits/AutoStructs/ForLean.lean:52:8: declaration uses 'sorry' +warning: ././././SSA/Experimental/Bits/AutoStructs/ForLean.lean:56:8: declaration uses 'sorry' +⚠ [2457/2462] Replayed SSA.Experimental.Bits.AutoStructs.Constructions +warning: ././././SSA/Experimental/Bits/AutoStructs/Constructions.lean:55:6: declaration uses 'sorry' +warning: ././././SSA/Experimental/Bits/AutoStructs/Constructions.lean:128:6: declaration uses 'sorry' +warning: ././././SSA/Experimental/Bits/AutoStructs/Constructions.lean:163:6: declaration uses 'sorry' +warning: ././././SSA/Experimental/Bits/AutoStructs/Constructions.lean:197:6: declaration uses 'sorry' +⚠ [2458/2462] Replayed SSA.Experimental.Bits.AutoStructs.FiniteStateMachine +warning: ././././SSA/Experimental/Bits/AutoStructs/FiniteStateMachine.lean:111:8: declaration uses 'sorry' +✖ [2462/2462] Building SSA.Projects.InstCombine.tests.LLVM.gfreehinversion +trace: .> LEAN_PATH=././.lake/packages/batteries/.lake/build/lib:././.lake/packages/Qq/.lake/build/lib:././.lake/packages/aesop/.lake/build/lib:././.lake/packages/proofwidgets/.lake/build/lib:././.lake/packages/Cli/.lake/build/lib:././.lake/packages/importGraph/.lake/build/lib:././.lake/packages/LeanSearchClient/.lake/build/lib:././.lake/packages/mathlib/.lake/build/lib:././.lake/packages/MD4Lean/.lake/build/lib:././.lake/packages/UnicodeBasic/.lake/build/lib:././.lake/packages/BibtexQuery/.lake/build/lib:././.lake/packages/doc-gen4/.lake/build/lib:././.lake/packages/leanwuzla/.lake/build/lib:././.lake/build/lib LD_LIBRARY_PATH= /home/lfrenot/.elan/toolchains/leanprover--lean4---nightly-2024-10-17/bin/lean ././././SSA/Projects/InstCombine/tests/LLVM/gfreehinversion.lean -R ./././. -o ././.lake/build/lib/SSA/Projects/InstCombine/tests/LLVM/gfreehinversion.olean -i ././.lake/build/lib/SSA/Projects/InstCombine/tests/LLVM/gfreehinversion.ilean -c ././.lake/build/ir/SSA/Projects/InstCombine/tests/LLVM/gfreehinversion.c --json +info: ././././SSA/Projects/InstCombine/tests/LLVM/gfreehinversion.lean:49:17: theorem extracted_1 (x : BitVec 8) (x_1 : BitVec 1) : + (Option.bind + (match some x_1 with + | none => none + | some { toFin := ⟨1, ⋯⟩ } => none + | some { toFin := ⟨0, ⋯⟩ } => none) + fun a => some (a ^^^ x ^^^ 255#8)) ⊑ + Option.bind + (match some x_1 with + | none => none + | some { toFin := ⟨1, ⋯⟩ } => none + | some { toFin := ⟨0, ⋯⟩ } => none) + fun a => some (a ^^^ x) := sorry +info: ././././SSA/Projects/InstCombine/tests/LLVM/gfreehinversion.lean:49:17: theorem extracted_1 : + ∀ (x x_1 : BitVec 8) (x_2 : BitVec 1), + (Option.bind + (match some x_2 with + | none => none + | some { toFin := ⟨1, ⋯⟩ } => some (x_1 ^^^ 255#8) + | some { toFin := ⟨0, ⋯⟩ } => none) + fun a => some (a ^^^ x ^^^ 255#8)) ⊑ + Option.bind + (match some x_2 with + | none => none + | some { toFin := ⟨1, ⋯⟩ } => some x_1 + | some { toFin := ⟨0, ⋯⟩ } => none) + fun a => some (a ^^^ x) := sorry +info: ././././SSA/Projects/InstCombine/tests/LLVM/gfreehinversion.lean:49:17: theorem extracted_1 : + ∀ (x x_1 : BitVec 8) (x_2 : BitVec 1), + (Option.bind + (match some x_2 with + | none => none + | some { toFin := ⟨1, ⋯⟩ } => none + | some { toFin := ⟨0, ⋯⟩ } => some (x_1 ^^^ 123#8)) + fun a => some (a ^^^ x ^^^ 255#8)) ⊑ + Option.bind + (match some x_2 with + | none => none + | some { toFin := ⟨1, ⋯⟩ } => none + | some { toFin := ⟨0, ⋯⟩ } => some (x_1 ^^^ 132#8)) + fun a => some (a ^^^ x) := sorry +info: ././././SSA/Projects/InstCombine/tests/LLVM/gfreehinversion.lean:49:17: theorem extracted_1 : + ∀ (x x_1 x_2 : BitVec 8) (x_3 : BitVec 1), + (Option.bind + (match some x_3 with + | none => none + | some { toFin := ⟨1, ⋯⟩ } => some (x_2 ^^^ 255#8) + | some { toFin := ⟨0, ⋯⟩ } => some (x_1 ^^^ 123#8)) + fun a => some (a ^^^ x ^^^ 255#8)) ⊑ + Option.bind + (match some x_3 with + | none => none + | some { toFin := ⟨1, ⋯⟩ } => some x_2 + | some { toFin := ⟨0, ⋯⟩ } => some (x_1 ^^^ 132#8)) + fun a => some (a ^^^ x) := sorry +warning: ././././SSA/Projects/InstCombine/tests/LLVM/gfreehinversion.lean:39:8: declaration uses 'sorry' +info: ././././SSA/Projects/InstCombine/tests/LLVM/gfreehinversion.lean:87:17: theorem extracted_1 (x : BitVec 1) (x_1 : BitVec 8) : + (Option.bind + (match some x with + | none => none + | some { toFin := ⟨1, ⋯⟩ } => none + | some { toFin := ⟨0, ⋯⟩ } => none) + fun x => some (x_1 ^^^ x ^^^ 255#8)) ⊑ + Option.bind + (match some x with + | none => none + | some { toFin := ⟨1, ⋯⟩ } => none + | some { toFin := ⟨0, ⋯⟩ } => none) + fun y' => some (x_1 ^^^ y') := sorry +info: ././././SSA/Projects/InstCombine/tests/LLVM/gfreehinversion.lean:87:17: theorem extracted_1 : + ∀ (x : BitVec 8) (x_1 : BitVec 1) (x_2 : BitVec 8), + (Option.bind + (match some x_1 with + | none => none + | some { toFin := ⟨1, ⋯⟩ } => some (x ^^^ 255#8) + | some { toFin := ⟨0, ⋯⟩ } => none) + fun x => some (x_2 ^^^ x ^^^ 255#8)) ⊑ + Option.bind + (match some x_1 with + | none => none + | some { toFin := ⟨1, ⋯⟩ } => some x + | some { toFin := ⟨0, ⋯⟩ } => none) + fun y' => some (x_2 ^^^ y') := sorry +info: ././././SSA/Projects/InstCombine/tests/LLVM/gfreehinversion.lean:87:17: theorem extracted_1 : + ∀ (x : BitVec 8) (x_1 : BitVec 1) (x_2 : BitVec 8), + (Option.bind + (match some x_1 with + | none => none + | some { toFin := ⟨1, ⋯⟩ } => none + | some { toFin := ⟨0, ⋯⟩ } => some (x ^^^ 123#8)) + fun x => some (x_2 ^^^ x ^^^ 255#8)) ⊑ + Option.bind + (match some x_1 with + | none => none + | some { toFin := ⟨1, ⋯⟩ } => none + | some { toFin := ⟨0, ⋯⟩ } => some (x ^^^ 132#8)) + fun y' => some (x_2 ^^^ y') := sorry +info: ././././SSA/Projects/InstCombine/tests/LLVM/gfreehinversion.lean:87:17: theorem extracted_1 : + ∀ (x x_1 : BitVec 8) (x_2 : BitVec 1) (x_3 : BitVec 8), + (Option.bind + (match some x_2 with + | none => none + | some { toFin := ⟨1, ⋯⟩ } => some (x_1 ^^^ 255#8) + | some { toFin := ⟨0, ⋯⟩ } => some (x ^^^ 123#8)) + fun x => some (x_3 ^^^ x ^^^ 255#8)) ⊑ + Option.bind + (match some x_2 with + | none => none + | some { toFin := ⟨1, ⋯⟩ } => some x_1 + | some { toFin := ⟨0, ⋯⟩ } => some (x ^^^ 132#8)) + fun y' => some (x_3 ^^^ y') := sorry +warning: ././././SSA/Projects/InstCombine/tests/LLVM/gfreehinversion.lean:77:8: declaration uses 'sorry' +info: ././././SSA/Projects/InstCombine/tests/LLVM/gfreehinversion.lean:125:17: theorem extracted_1 (x : BitVec 8) (x_1 : BitVec 1) : + (Option.bind + (match some x_1 with + | none => none + | some { toFin := ⟨1, ⋯⟩ } => none + | some { toFin := ⟨0, ⋯⟩ } => none) + fun a => some (a + x ^^^ 255#8)) ⊑ + Option.bind + (match some x_1 with + | none => none + | some { toFin := ⟨1, ⋯⟩ } => none + | some { toFin := ⟨0, ⋯⟩ } => none) + fun a => some (a - x) := sorry +info: ././././SSA/Projects/InstCombine/tests/LLVM/gfreehinversion.lean:125:17: theorem extracted_1 : + ∀ (x x_1 : BitVec 8) (x_2 : BitVec 1), + (Option.bind + (match some x_2 with + | none => none + | some { toFin := ⟨1, ⋯⟩ } => some (x_1 ^^^ 255#8) + | some { toFin := ⟨0, ⋯⟩ } => none) + fun a => some (a + x ^^^ 255#8)) ⊑ + Option.bind + (match some x_2 with + | none => none + | some { toFin := ⟨1, ⋯⟩ } => some x_1 + | some { toFin := ⟨0, ⋯⟩ } => none) + fun a => some (a - x) := sorry +info: ././././SSA/Projects/InstCombine/tests/LLVM/gfreehinversion.lean:125:17: theorem extracted_1 : + ∀ (x x_1 : BitVec 8) (x_2 : BitVec 1), + (Option.bind + (match some x_2 with + | none => none + | some { toFin := ⟨1, ⋯⟩ } => none + | some { toFin := ⟨0, ⋯⟩ } => some (x_1 ^^^ 123#8)) + fun a => some (a + x ^^^ 255#8)) ⊑ + Option.bind + (match some x_2 with + | none => none + | some { toFin := ⟨1, ⋯⟩ } => none + | some { toFin := ⟨0, ⋯⟩ } => some (x_1 ^^^ 132#8)) + fun a => some (a - x) := sorry +info: ././././SSA/Projects/InstCombine/tests/LLVM/gfreehinversion.lean:125:17: theorem extracted_1 : + ∀ (x x_1 x_2 : BitVec 8) (x_3 : BitVec 1), + (Option.bind + (match some x_3 with + | none => none + | some { toFin := ⟨1, ⋯⟩ } => some (x_2 ^^^ 255#8) + | some { toFin := ⟨0, ⋯⟩ } => some (x_1 ^^^ 123#8)) + fun a => some (a + x ^^^ 255#8)) ⊑ + Option.bind + (match some x_3 with + | none => none + | some { toFin := ⟨1, ⋯⟩ } => some x_2 + | some { toFin := ⟨0, ⋯⟩ } => some (x_1 ^^^ 132#8)) + fun a => some (a - x) := sorry +warning: ././././SSA/Projects/InstCombine/tests/LLVM/gfreehinversion.lean:115:8: declaration uses 'sorry' +info: ././././SSA/Projects/InstCombine/tests/LLVM/gfreehinversion.lean:163:17: theorem extracted_1 (x : BitVec 1) (x_1 : BitVec 8) : + (Option.bind + (match some x with + | none => none + | some { toFin := ⟨1, ⋯⟩ } => none + | some { toFin := ⟨0, ⋯⟩ } => none) + fun x => some (x_1 + x ^^^ 255#8)) ⊑ + Option.bind + (match some x with + | none => none + | some { toFin := ⟨1, ⋯⟩ } => none + | some { toFin := ⟨0, ⋯⟩ } => none) + fun a => some (a - x_1) := sorry +info: ././././SSA/Projects/InstCombine/tests/LLVM/gfreehinversion.lean:163:17: theorem extracted_1 : + ∀ (x : BitVec 8) (x_1 : BitVec 1) (x_2 : BitVec 8), + (Option.bind + (match some x_1 with + | none => none + | some { toFin := ⟨1, ⋯⟩ } => some (x ^^^ 255#8) + | some { toFin := ⟨0, ⋯⟩ } => none) + fun x => some (x_2 + x ^^^ 255#8)) ⊑ + Option.bind + (match some x_1 with + | none => none + | some { toFin := ⟨1, ⋯⟩ } => some x + | some { toFin := ⟨0, ⋯⟩ } => none) + fun a => some (a - x_2) := sorry +info: ././././SSA/Projects/InstCombine/tests/LLVM/gfreehinversion.lean:163:17: theorem extracted_1 : + ∀ (x : BitVec 8) (x_1 : BitVec 1) (x_2 : BitVec 8), + (Option.bind + (match some x_1 with + | none => none + | some { toFin := ⟨1, ⋯⟩ } => none + | some { toFin := ⟨0, ⋯⟩ } => some (x ^^^ 123#8)) + fun x => some (x_2 + x ^^^ 255#8)) ⊑ + Option.bind + (match some x_1 with + | none => none + | some { toFin := ⟨1, ⋯⟩ } => none + | some { toFin := ⟨0, ⋯⟩ } => some (x ^^^ 132#8)) + fun a => some (a - x_2) := sorry +info: ././././SSA/Projects/InstCombine/tests/LLVM/gfreehinversion.lean:163:17: theorem extracted_1 : + ∀ (x x_1 : BitVec 8) (x_2 : BitVec 1) (x_3 : BitVec 8), + (Option.bind + (match some x_2 with + | none => none + | some { toFin := ⟨1, ⋯⟩ } => some (x_1 ^^^ 255#8) + | some { toFin := ⟨0, ⋯⟩ } => some (x ^^^ 123#8)) + fun x => some (x_3 + x ^^^ 255#8)) ⊑ + Option.bind + (match some x_2 with + | none => none + | some { toFin := ⟨1, ⋯⟩ } => some x_1 + | some { toFin := ⟨0, ⋯⟩ } => some (x ^^^ 132#8)) + fun a => some (a - x_3) := sorry +warning: ././././SSA/Projects/InstCombine/tests/LLVM/gfreehinversion.lean:153:8: declaration uses 'sorry' +info: ././././SSA/Projects/InstCombine/tests/LLVM/gfreehinversion.lean:201:17: theorem extracted_1 (x : BitVec 8) (x_1 : BitVec 1) : + (Option.bind + (match some x_1 with + | none => none + | some { toFin := ⟨1, ⋯⟩ } => none + | some { toFin := ⟨0, ⋯⟩ } => none) + fun a => some (a - x ^^^ 255#8)) ⊑ + Option.bind + (match some x_1 with + | none => none + | some { toFin := ⟨1, ⋯⟩ } => none + | some { toFin := ⟨0, ⋯⟩ } => none) + fun a => some (a + x) := sorry +info: ././././SSA/Projects/InstCombine/tests/LLVM/gfreehinversion.lean:201:17: theorem extracted_1 : + ∀ (x x_1 : BitVec 8) (x_2 : BitVec 1), + (Option.bind + (match some x_2 with + | none => none + | some { toFin := ⟨1, ⋯⟩ } => some (x_1 ^^^ 255#8) + | some { toFin := ⟨0, ⋯⟩ } => none) + fun a => some (a - x ^^^ 255#8)) ⊑ + Option.bind + (match some x_2 with + | none => none + | some { toFin := ⟨1, ⋯⟩ } => some x_1 + | some { toFin := ⟨0, ⋯⟩ } => none) + fun a => some (a + x) := sorry +info: ././././SSA/Projects/InstCombine/tests/LLVM/gfreehinversion.lean:201:17: theorem extracted_1 : + ∀ (x x_1 : BitVec 8) (x_2 : BitVec 1), + (Option.bind + (match some x_2 with + | none => none + | some { toFin := ⟨1, ⋯⟩ } => none + | some { toFin := ⟨0, ⋯⟩ } => some (x_1 ^^^ 123#8)) + fun a => some (a - x ^^^ 255#8)) ⊑ + Option.bind + (match some x_2 with + | none => none + | some { toFin := ⟨1, ⋯⟩ } => none + | some { toFin := ⟨0, ⋯⟩ } => some (x_1 ^^^ 132#8)) + fun a => some (a + x) := sorry +info: ././././SSA/Projects/InstCombine/tests/LLVM/gfreehinversion.lean:201:17: theorem extracted_1 : + ∀ (x x_1 x_2 : BitVec 8) (x_3 : BitVec 1), + (Option.bind + (match some x_3 with + | none => none + | some { toFin := ⟨1, ⋯⟩ } => some (x_2 ^^^ 255#8) + | some { toFin := ⟨0, ⋯⟩ } => some (x_1 ^^^ 123#8)) + fun a => some (a - x ^^^ 255#8)) ⊑ + Option.bind + (match some x_3 with + | none => none + | some { toFin := ⟨1, ⋯⟩ } => some x_2 + | some { toFin := ⟨0, ⋯⟩ } => some (x_1 ^^^ 132#8)) + fun a => some (a + x) := sorry +warning: ././././SSA/Projects/InstCombine/tests/LLVM/gfreehinversion.lean:191:8: declaration uses 'sorry' +info: ././././SSA/Projects/InstCombine/tests/LLVM/gfreehinversion.lean:241:17: theorem extracted_1 (x : BitVec 1) (x_1 : BitVec 8) : + (Option.bind + (match some x with + | none => none + | some { toFin := ⟨1, ⋯⟩ } => none + | some { toFin := ⟨0, ⋯⟩ } => none) + fun x => some (x_1 - x ^^^ 255#8)) ⊑ + Option.bind + (match some x with + | none => none + | some { toFin := ⟨1, ⋯⟩ } => none + | some { toFin := ⟨0, ⋯⟩ } => none) + fun a => some (254#8 - (a + x_1)) := sorry +info: ././././SSA/Projects/InstCombine/tests/LLVM/gfreehinversion.lean:241:17: theorem extracted_1 : + ∀ (x : BitVec 8) (x_1 : BitVec 1) (x_2 : BitVec 8), + (Option.bind + (match some x_1 with + | none => none + | some { toFin := ⟨1, ⋯⟩ } => some (x ^^^ 255#8) + | some { toFin := ⟨0, ⋯⟩ } => none) + fun x => some (x_2 - x ^^^ 255#8)) ⊑ + Option.bind + (match some x_1 with + | none => none + | some { toFin := ⟨1, ⋯⟩ } => some x + | some { toFin := ⟨0, ⋯⟩ } => none) + fun a => some (254#8 - (a + x_2)) := sorry +info: ././././SSA/Projects/InstCombine/tests/LLVM/gfreehinversion.lean:241:17: theorem extracted_1 : + ∀ (x : BitVec 8) (x_1 : BitVec 1) (x_2 : BitVec 8), + (Option.bind + (match some x_1 with + | none => none + | some { toFin := ⟨1, ⋯⟩ } => none + | some { toFin := ⟨0, ⋯⟩ } => some (x ^^^ 123#8)) + fun x => some (x_2 - x ^^^ 255#8)) ⊑ + Option.bind + (match some x_1 with + | none => none + | some { toFin := ⟨1, ⋯⟩ } => none + | some { toFin := ⟨0, ⋯⟩ } => some (x ^^^ 132#8)) + fun a => some (254#8 - (a + x_2)) := sorry +info: ././././SSA/Projects/InstCombine/tests/LLVM/gfreehinversion.lean:241:17: theorem extracted_1 : + ∀ (x x_1 : BitVec 8) (x_2 : BitVec 1) (x_3 : BitVec 8), + (Option.bind + (match some x_2 with + | none => none + | some { toFin := ⟨1, ⋯⟩ } => some (x_1 ^^^ 255#8) + | some { toFin := ⟨0, ⋯⟩ } => some (x ^^^ 123#8)) + fun x => some (x_3 - x ^^^ 255#8)) ⊑ + Option.bind + (match some x_2 with + | none => none + | some { toFin := ⟨1, ⋯⟩ } => some x_1 + | some { toFin := ⟨0, ⋯⟩ } => some (x ^^^ 132#8)) + fun a => some (254#8 - (a + x_3)) := sorry +warning: ././././SSA/Projects/InstCombine/tests/LLVM/gfreehinversion.lean:231:8: declaration uses 'sorry' +info: ././././SSA/Projects/InstCombine/tests/LLVM/gfreehinversion.lean:281:17: theorem extracted_1 (x : BitVec 1) (x_1 : BitVec 128) : + (Option.bind + (match some x with + | none => none + | some { toFin := ⟨1, ⋯⟩ } => none + | some { toFin := ⟨0, ⋯⟩ } => none) + fun x => some (x_1 - x ^^^ 340282366920938463463374607431768211455#128)) ⊑ + Option.bind + (match some x with + | none => none + | some { toFin := ⟨1, ⋯⟩ } => none + | some { toFin := ⟨0, ⋯⟩ } => none) + fun a => some (340282366920938463463374607431768211454#128 - (a + x_1)) := sorry +info: ././././SSA/Projects/InstCombine/tests/LLVM/gfreehinversion.lean:281:17: theorem extracted_1 : + ∀ (x : BitVec 128) (x_1 : BitVec 1) (x_2 : BitVec 128), + (Option.bind + (match some x_1 with + | none => none + | some { toFin := ⟨1, ⋯⟩ } => some (x ^^^ 340282366920938463463374607431768211455#128) + | some { toFin := ⟨0, ⋯⟩ } => none) + fun x => some (x_2 - x ^^^ 340282366920938463463374607431768211455#128)) ⊑ + Option.bind + (match some x_1 with + | none => none + | some { toFin := ⟨1, ⋯⟩ } => some x + | some { toFin := ⟨0, ⋯⟩ } => none) + fun a => some (340282366920938463463374607431768211454#128 - (a + x_2)) := sorry +info: ././././SSA/Projects/InstCombine/tests/LLVM/gfreehinversion.lean:281:17: theorem extracted_1 : + ∀ (x : BitVec 128) (x_1 : BitVec 1) (x_2 : BitVec 128), + (Option.bind + (match some x_1 with + | none => none + | some { toFin := ⟨1, ⋯⟩ } => none + | some { toFin := ⟨0, ⋯⟩ } => some (x ^^^ 123#128)) + fun x => some (x_2 - x ^^^ 340282366920938463463374607431768211455#128)) ⊑ + Option.bind + (match some x_1 with + | none => none + | some { toFin := ⟨1, ⋯⟩ } => none + | some { toFin := ⟨0, ⋯⟩ } => some (x ^^^ 340282366920938463463374607431768211332#128)) + fun a => some (340282366920938463463374607431768211454#128 - (a + x_2)) := sorry +info: ././././SSA/Projects/InstCombine/tests/LLVM/gfreehinversion.lean:281:17: theorem extracted_1 : + ∀ (x x_1 : BitVec 128) (x_2 : BitVec 1) (x_3 : BitVec 128), + (Option.bind + (match some x_2 with + | none => none + | some { toFin := ⟨1, ⋯⟩ } => some (x_1 ^^^ 340282366920938463463374607431768211455#128) + | some { toFin := ⟨0, ⋯⟩ } => some (x ^^^ 123#128)) + fun x => some (x_3 - x ^^^ 340282366920938463463374607431768211455#128)) ⊑ + Option.bind + (match some x_2 with + | none => none + | some { toFin := ⟨1, ⋯⟩ } => some x_1 + | some { toFin := ⟨0, ⋯⟩ } => some (x ^^^ 340282366920938463463374607431768211332#128)) + fun a => some (340282366920938463463374607431768211454#128 - (a + x_3)) := sorry +warning: ././././SSA/Projects/InstCombine/tests/LLVM/gfreehinversion.lean:271:8: declaration uses 'sorry' +info: ././././SSA/Projects/InstCombine/tests/LLVM/gfreehinversion.lean:319:17: theorem extracted_1 (x : BitVec 8) (x_1 : BitVec 1) : + (Option.bind + (match some x_1 with + | none => none + | some { toFin := ⟨1, ⋯⟩ } => none + | some { toFin := ⟨0, ⋯⟩ } => none) + fun a => Option.bind (if 8#8 ≤ x then none else some (a.sshiftRight x.toNat)) fun x' => some (x' ^^^ 255#8)) ⊑ + Option.bind + (match some x_1 with + | none => none + | some { toFin := ⟨1, ⋯⟩ } => none + | some { toFin := ⟨0, ⋯⟩ } => none) + fun a => if 8#8 ≤ x then none else some (a.sshiftRight x.toNat) := sorry +info: ././././SSA/Projects/InstCombine/tests/LLVM/gfreehinversion.lean:319:17: theorem extracted_1 : + ∀ (x x_1 : BitVec 8) (x_2 : BitVec 1), + (Option.bind + (match some x_2 with + | none => none + | some { toFin := ⟨1, ⋯⟩ } => some (x_1 ^^^ 255#8) + | some { toFin := ⟨0, ⋯⟩ } => none) + fun a => Option.bind (if 8#8 ≤ x then none else some (a.sshiftRight x.toNat)) fun x' => some (x' ^^^ 255#8)) ⊑ + Option.bind + (match some x_2 with + | none => none + | some { toFin := ⟨1, ⋯⟩ } => some x_1 + | some { toFin := ⟨0, ⋯⟩ } => none) + fun a => if 8#8 ≤ x then none else some (a.sshiftRight x.toNat) := sorry +info: stdout: +{"severity":"information","pos":{"line":319,"column":17},"keepFullRange":false,"fileNa +error: Lean exited with code 137 +Some required builds logged failures: +- SSA.Projects.InstCombine.tests.LLVM.gfreehinversion +error: build failed diff --git a/SSA/Projects/InstCombine/tests/logs/glogicalhselecthinseltpoison_proof.txt b/SSA/Projects/InstCombine/tests/logs/glogicalhselecthinseltpoison_proof.txt new file mode 100644 index 000000000..dedc0a6f7 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/glogicalhselecthinseltpoison_proof.txt @@ -0,0 +1,369 @@ +⚠ [49/2462] Replayed Mathlib.Logic.Basic +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Basic.lean:155:8: `dec_em'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Basic.lean:159:8: `em'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Basic.lean:304:8: `or_congr_left'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Basic.lean:307:8: `or_congr_right'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Basic.lean:320:8: `imp_or'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Basic.lean:359:8: `xor_iff_not_iff'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Basic.lean:418:8: `eqRec_heq'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Basic.lean:511:8: `forall_true_iff'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Basic.lean:532:8: `exists_apply_eq_apply'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Basic.lean:539:6: `exists_apply_eq_apply2'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Basic.lean:548:6: `exists_apply_eq_apply3'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Basic.lean:575:8: `forall_apply_eq_imp_iff'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Basic.lean:578:8: `forall_eq_apply_imp_iff'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Basic.lean:638:8: `forall_prop_congr'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Basic.lean:711:6: `Classical.choose_eq'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Basic.lean:847:8: `dite_eq_iff'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Basic.lean:851:8: `ite_eq_iff'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +⚠ [66/2462] Replayed Mathlib.Algebra.NeZero +warning: ././.lake/packages/mathlib/././Mathlib/Algebra/NeZero.lean:44:6: `zero_ne_one'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Algebra/NeZero.lean:46:6: `one_ne_zero'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Algebra/NeZero.lean:48:6: `two_ne_zero'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Algebra/NeZero.lean:50:6: `three_ne_zero'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Algebra/NeZero.lean:52:6: `four_ne_zero'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +⚠ [69/2462] Replayed Mathlib.Logic.ExistsUnique +warning: ././.lake/packages/mathlib/././Mathlib/Logic/ExistsUnique.lean:109:16: `exists_unique_eq'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +⚠ [74/2462] Replayed Mathlib.Logic.Function.Basic +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Function/Basic.lean:78:8: `Function.Injective.eq_iff'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Function/Basic.lean:87:8: `Function.Injective.ne_iff'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Function/Basic.lean:117:8: `Function.Injective.of_comp_iff'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Function/Basic.lean:163:8: `Function.Surjective.of_comp_iff'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Function/Basic.lean:237:8: `Function.Bijective.of_comp_iff'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Function/Basic.lean:541:8: `Function.update_comp_eq_of_forall_ne'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Function/Basic.lean:552:8: `Function.update_comp_eq_of_injective'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Function/Basic.lean:649:8: `Function.extend_apply'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Function/Basic.lean:681:8: `Function.Injective.surjective_comp_right'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +⚠ [94/2462] Replayed Mathlib.Control.Combinators +warning: ././.lake/packages/mathlib/././Mathlib/Control/Combinators.lean:35:4: `Monad.mapM'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Control/Combinators.lean:57:4: `Monad.sequence'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +⚠ [96/2462] Replayed Mathlib.Logic.IsEmpty +warning: ././.lake/packages/mathlib/././Mathlib/Logic/IsEmpty.lean:36:9: `Fin.isEmpty'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +⚠ [229/2462] Replayed Mathlib.Data.Prod.PProd +warning: ././.lake/packages/mathlib/././Mathlib/Data/Prod/PProd.lean:35:8: `PProd.forall'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Data/Prod/PProd.lean:38:8: `PProd.exists'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +⚠ [230/2462] Replayed Mathlib.Data.Bool.Basic +warning: ././.lake/packages/mathlib/././Mathlib/Data/Bool/Basic.lean:156:8: `Bool.eq_true_of_not_eq_false'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Data/Bool/Basic.lean:159:8: `Bool.eq_false_of_not_eq_true'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +⚠ [232/2462] Replayed Mathlib.Logic.Function.Iterate +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Function/Iterate.lean:160:8: `Function.iterate_succ'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Function/Iterate.lean:163:8: `Function.iterate_succ_apply'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +⚠ [234/2462] Replayed Mathlib.Data.Prod.Basic +warning: ././.lake/packages/mathlib/././Mathlib/Data/Prod/Basic.lean:31:8: `Prod.forall'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Data/Prod/Basic.lean:34:8: `Prod.exists'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Data/Prod/Basic.lean:51:8: `Prod.map_apply'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Data/Prod/Basic.lean:54:8: `Prod.map_fst'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Data/Prod/Basic.lean:57:8: `Prod.map_snd'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +⚠ [235/2462] Replayed Mathlib.Data.Sigma.Basic +warning: ././.lake/packages/mathlib/././Mathlib/Data/Sigma/Basic.lean:90:6: `Sigma.exists'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Data/Sigma/Basic.lean:93:6: `Sigma.forall'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +⚠ [239/2462] Replayed Mathlib.Data.FunLike.Basic +warning: ././.lake/packages/mathlib/././Mathlib/Data/FunLike/Basic.lean:187:8: `DFunLike.ext'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +⚠ [244/2462] Replayed Mathlib.Logic.Relation +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Relation.lean:351:8: `Relation.TransGen.head'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Relation.lean:354:8: `Relation.TransGen.tail'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Relation.lean:444:8: `Relation.TransGen.lift'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Relation.lean:453:6: `Relation.TransGen.closed'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Relation.lean:523:8: `Relation.ReflTransGen.lift'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +⚠ [245/2462] Replayed Mathlib.Logic.Unique +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Unique.lean:131:18: `Unique.subsingleton_unique'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Unique.lean:259:9: `Unique.subtypeEq'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +⚠ [252/2462] Replayed Mathlib.Data.Quot +warning: ././.lake/packages/mathlib/././Mathlib/Data/Quot.lean:558:18: `Quotient.liftOn'_mk''` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Data/Quot.lean:562:14: `Quotient.surjective_liftOn'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Data/Quot.lean:573:18: `Quotient.liftOn₂'_mk''` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Data/Quot.lean:639:8: `Quotient.hrecOn'_mk''` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Data/Quot.lean:652:8: `Quotient.hrecOn₂'_mk''` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Data/Quot.lean:664:8: `Quotient.map'_mk''` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Data/Quot.lean:674:8: `Quotient.map₂'_mk''` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Data/Quot.lean:679:8: `Quotient.exact'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Data/Quot.lean:683:8: `Quotient.sound'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Data/Quot.lean:687:18: `Quotient.eq'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Data/Quot.lean:692:18: `Quotient.eq''` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Data/Quot.lean:701:8: `Quotient.out_eq'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Data/Quot.lean:704:8: `Quotient.mk_out'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +⚠ [256/2462] Replayed Mathlib.Tactic.Lift +warning: ././.lake/packages/mathlib/././Mathlib/Tactic/Lift.lean:49:9: `PiSubtype.canLift'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +⚠ [409/2462] Replayed Mathlib.Algebra.Group.Defs +warning: ././.lake/packages/mathlib/././Mathlib/Algebra/Group/Defs.lean:735:33: `pow_succ'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Algebra/Group/Defs.lean:740:6: `pow_mul_comm'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Algebra/Group/Defs.lean:749:6: `pow_three'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Algebra/Group/Defs.lean:772:6: `pow_mul'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +⚠ [443/2462] Replayed Mathlib.Data.List.Defs +warning: ././.lake/packages/mathlib/././Mathlib/Data/List/Defs.lean:241:9: `List.decidableChain'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +⚠ [474/2462] Replayed Mathlib.Control.Applicative +warning: ././.lake/packages/mathlib/././Mathlib/Control/Applicative.lean:34:8: `Applicative.pure_seq_eq_map'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +⚠ [475/2462] Replayed Mathlib.Control.Traversable.Basic +warning: ././.lake/packages/mathlib/././Mathlib/Control/Traversable/Basic.lean:139:8: `ApplicativeTransformation.preserves_map'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +⚠ [618/2462] Replayed Mathlib.Algebra.GroupWithZero.Defs +warning: ././.lake/packages/mathlib/././Mathlib/Algebra/GroupWithZero/Defs.lean:110:8: `mul_left_inj'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Algebra/GroupWithZero/Defs.lean:113:8: `mul_right_inj'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +⚠ [624/2462] Replayed Mathlib.Algebra.Group.Invertible.Defs +warning: ././.lake/packages/mathlib/././Mathlib/Algebra/Group/Invertible/Defs.lean:97:8: `invOf_mul_self'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Algebra/Group/Invertible/Defs.lean:103:8: `mul_invOf_self'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Algebra/Group/Invertible/Defs.lean:109:8: `invOf_mul_cancel_left'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Algebra/Group/Invertible/Defs.lean:120:8: `mul_invOf_cancel_left'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Algebra/Group/Invertible/Defs.lean:131:8: `invOf_mul_cancel_right'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Algebra/Group/Invertible/Defs.lean:142:8: `mul_invOf_cancel_right'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Algebra/Group/Invertible/Defs.lean:198:8: `invOf_one'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +⚠ [1184/2462] Replayed Mathlib.Control.Traversable.Lemmas +warning: ././.lake/packages/mathlib/././Mathlib/Control/Traversable/Lemmas.lean:87:8: `Traversable.naturality'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Control/Traversable/Lemmas.lean:102:8: `Traversable.traverse_eq_map_id'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Control/Traversable/Lemmas.lean:108:8: `Traversable.traverse_map'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Control/Traversable/Lemmas.lean:113:8: `Traversable.map_traverse'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +⚠ [2407/2462] Replayed Mathlib.Data.List.EditDistance.Defs +warning: ././.lake/packages/mathlib/././Mathlib/Data/List/EditDistance/Defs.lean:214:8: `suffixLevenshtein_nil'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +⚠ [2447/2462] Replayed SSA.Experimental.Bits.Fast.FiniteStateMachine +warning: ././././SSA/Experimental/Bits/Fast/FiniteStateMachine.lean:107:8: declaration uses 'sorry' +warning: ././././SSA/Experimental/Bits/Fast/FiniteStateMachine.lean:825:8: declaration uses 'sorry' +⚠ [2451/2462] Replayed SSA.Experimental.Bits.Fast.Tactic +warning: ././././SSA/Experimental/Bits/Fast/Tactic.lean:340:4: declaration uses 'sorry' +⚠ [2452/2462] Replayed SSA.Experimental.Bits.AutoStructs.ForLean +warning: ././././SSA/Experimental/Bits/AutoStructs/ForLean.lean:24:8: declaration uses 'sorry' +warning: ././././SSA/Experimental/Bits/AutoStructs/ForLean.lean:27:8: declaration uses 'sorry' +warning: ././././SSA/Experimental/Bits/AutoStructs/ForLean.lean:29:8: declaration uses 'sorry' +warning: ././././SSA/Experimental/Bits/AutoStructs/ForLean.lean:31:8: declaration uses 'sorry' +warning: ././././SSA/Experimental/Bits/AutoStructs/ForLean.lean:34:8: declaration uses 'sorry' +warning: ././././SSA/Experimental/Bits/AutoStructs/ForLean.lean:36:8: declaration uses 'sorry' +warning: ././././SSA/Experimental/Bits/AutoStructs/ForLean.lean:38:8: declaration uses 'sorry' +warning: ././././SSA/Experimental/Bits/AutoStructs/ForLean.lean:41:8: declaration uses 'sorry' +warning: ././././SSA/Experimental/Bits/AutoStructs/ForLean.lean:52:8: declaration uses 'sorry' +warning: ././././SSA/Experimental/Bits/AutoStructs/ForLean.lean:56:8: declaration uses 'sorry' +⚠ [2457/2462] Replayed SSA.Experimental.Bits.AutoStructs.Constructions +warning: ././././SSA/Experimental/Bits/AutoStructs/Constructions.lean:55:6: declaration uses 'sorry' +warning: ././././SSA/Experimental/Bits/AutoStructs/Constructions.lean:128:6: declaration uses 'sorry' +warning: ././././SSA/Experimental/Bits/AutoStructs/Constructions.lean:163:6: declaration uses 'sorry' +warning: ././././SSA/Experimental/Bits/AutoStructs/Constructions.lean:197:6: declaration uses 'sorry' +⚠ [2458/2462] Replayed SSA.Experimental.Bits.AutoStructs.FiniteStateMachine +warning: ././././SSA/Experimental/Bits/AutoStructs/FiniteStateMachine.lean:111:8: declaration uses 'sorry' +✖ [2462/2462] Building SSA.Projects.InstCombine.tests.LLVM.glogicalhselecthinseltpoison +trace: .> LEAN_PATH=././.lake/packages/batteries/.lake/build/lib:././.lake/packages/Qq/.lake/build/lib:././.lake/packages/aesop/.lake/build/lib:././.lake/packages/proofwidgets/.lake/build/lib:././.lake/packages/Cli/.lake/build/lib:././.lake/packages/importGraph/.lake/build/lib:././.lake/packages/LeanSearchClient/.lake/build/lib:././.lake/packages/mathlib/.lake/build/lib:././.lake/packages/MD4Lean/.lake/build/lib:././.lake/packages/UnicodeBasic/.lake/build/lib:././.lake/packages/BibtexQuery/.lake/build/lib:././.lake/packages/doc-gen4/.lake/build/lib:././.lake/packages/leanwuzla/.lake/build/lib:././.lake/build/lib LD_LIBRARY_PATH= /home/lfrenot/.elan/toolchains/leanprover--lean4---nightly-2024-10-17/bin/lean ././././SSA/Projects/InstCombine/tests/LLVM/glogicalhselecthinseltpoison.lean -R ./././. -o ././.lake/build/lib/SSA/Projects/InstCombine/tests/LLVM/glogicalhselecthinseltpoison.olean -i ././.lake/build/lib/SSA/Projects/InstCombine/tests/LLVM/glogicalhselecthinseltpoison.ilean -c ././.lake/build/ir/SSA/Projects/InstCombine/tests/LLVM/glogicalhselecthinseltpoison.c --json +error: ././././SSA/Projects/InstCombine/tests/LLVM/glogicalhselecthinseltpoison.lean:19:40: expected i or f, found: true +error: ././././SSA/Projects/InstCombine/tests/LLVM/glogicalhselecthinseltpoison.lean:35:2: tactic 'unfold' failed to unfold 'bools_before' at + (bools_before ⊑ bools_after) ⋯ +error: ././././SSA/Projects/InstCombine/tests/LLVM/glogicalhselecthinseltpoison.lean:52:40: expected i or f, found: true +error: ././././SSA/Projects/InstCombine/tests/LLVM/glogicalhselecthinseltpoison.lean:53:40: cannot convert suffix of i/f to int: false +error: ././././SSA/Projects/InstCombine/tests/LLVM/glogicalhselecthinseltpoison.lean:69:2: tactic 'unfold' failed to unfold 'bools_logical_before' at + (bools_logical_before ⊑ bools_logical_after) ⋯ +error: ././././SSA/Projects/InstCombine/tests/LLVM/glogicalhselecthinseltpoison.lean:86:40: expected i or f, found: true +error: ././././SSA/Projects/InstCombine/tests/LLVM/glogicalhselecthinseltpoison.lean:98:40: expected i or f, found: true +error: ././././SSA/Projects/InstCombine/tests/LLVM/glogicalhselecthinseltpoison.lean:106:34: could not synthesize default value for parameter 'h' using tactics +error: ././././SSA/Projects/InstCombine/tests/LLVM/glogicalhselecthinseltpoison.lean:106:34: tactic 'rfl' failed, the left-hand side + ⟦?m.10143⟧ +is not definitionally equal to the right-hand side + Option ?m.10141 +bools_multi_uses1_before bools_multi_uses1_after : Com InstCombine.LLVM ?m.10142 EffectKind.pure ?m.10143 +⊢ ⟦?m.10143⟧ = Option ?m.10141 +error: ././././SSA/Projects/InstCombine/tests/LLVM/glogicalhselecthinseltpoison.lean:124:40: expected i or f, found: true +error: ././././SSA/Projects/InstCombine/tests/LLVM/glogicalhselecthinseltpoison.lean:125:40: cannot convert suffix of i/f to int: false +error: ././././SSA/Projects/InstCombine/tests/LLVM/glogicalhselecthinseltpoison.lean:137:40: expected i or f, found: true +error: ././././SSA/Projects/InstCombine/tests/LLVM/glogicalhselecthinseltpoison.lean:138:40: cannot convert suffix of i/f to int: false +error: ././././SSA/Projects/InstCombine/tests/LLVM/glogicalhselecthinseltpoison.lean:146:42: could not synthesize default value for parameter 'h' using tactics +error: ././././SSA/Projects/InstCombine/tests/LLVM/glogicalhselecthinseltpoison.lean:146:42: tactic 'rfl' failed, the left-hand side + ⟦?m.13195⟧ +is not definitionally equal to the right-hand side + Option ?m.13193 +bools_multi_uses1_logical_before bools_multi_uses1_logical_after : + Com InstCombine.LLVM ?m.13194 EffectKind.pure ?m.13195 +⊢ ⟦?m.13195⟧ = Option ?m.13193 +error: ././././SSA/Projects/InstCombine/tests/LLVM/glogicalhselecthinseltpoison.lean:164:40: expected i or f, found: true +error: ././././SSA/Projects/InstCombine/tests/LLVM/glogicalhselecthinseltpoison.lean:182:2: tactic 'unfold' failed to unfold 'bools_multi_uses2_before' at + (bools_multi_uses2_before ⊑ bools_multi_uses2_after) ⋯ +error: ././././SSA/Projects/InstCombine/tests/LLVM/glogicalhselecthinseltpoison.lean:199:40: expected i or f, found: true +error: ././././SSA/Projects/InstCombine/tests/LLVM/glogicalhselecthinseltpoison.lean:200:40: cannot convert suffix of i/f to int: false +error: ././././SSA/Projects/InstCombine/tests/LLVM/glogicalhselecthinseltpoison.lean:213:40: expected i or f, found: true +error: ././././SSA/Projects/InstCombine/tests/LLVM/glogicalhselecthinseltpoison.lean:214:40: cannot convert suffix of i/f to int: false +error: ././././SSA/Projects/InstCombine/tests/LLVM/glogicalhselecthinseltpoison.lean:224:42: could not synthesize default value for parameter 'h' using tactics +error: ././././SSA/Projects/InstCombine/tests/LLVM/glogicalhselecthinseltpoison.lean:224:42: tactic 'rfl' failed, the left-hand side + ⟦?m.20126⟧ +is not definitionally equal to the right-hand side + Option ?m.20124 +bools_multi_uses2_logical_before bools_multi_uses2_logical_after : + Com InstCombine.LLVM ?m.20125 EffectKind.pure ?m.20126 +⊢ ⟦?m.20126⟧ = Option ?m.20124 +error: Lean exited with code 1 +Some required builds logged failures: +- SSA.Projects.InstCombine.tests.LLVM.glogicalhselecthinseltpoison +error: build failed diff --git a/SSA/Projects/InstCombine/tests/logs/gmul_fold.txt b/SSA/Projects/InstCombine/tests/logs/gmul_fold.txt deleted file mode 100644 index 2e24b4bf5..000000000 --- a/SSA/Projects/InstCombine/tests/logs/gmul_fold.txt +++ /dev/null @@ -1,73 +0,0 @@ -error: build failed -⚠ [2443/2457] Replayed SSA.Experimental.Bits.Fast.FiniteStateMachine -warning: ././././SSA/Experimental/Bits/Fast/FiniteStateMachine.lean:107:8: declaration uses 'sorry' -warning: ././././SSA/Experimental/Bits/Fast/FiniteStateMachine.lean:825:8: declaration uses 'sorry' -⚠ [2447/2457] Replayed SSA.Experimental.Bits.Fast.Tactic -warning: ././././SSA/Experimental/Bits/Fast/Tactic.lean:340:4: declaration uses 'sorry' -⚠ [2451/2457] Replayed SSA.Experimental.Bits.AutoStructs.Basic -warning: ././././SSA/Experimental/Bits/AutoStructs/Basic.lean:99:8: declaration uses 'sorry' -warning: ././././SSA/Experimental/Bits/AutoStructs/Basic.lean:102:8: declaration uses 'sorry' -warning: ././././SSA/Experimental/Bits/AutoStructs/Basic.lean:104:8: declaration uses 'sorry' -warning: ././././SSA/Experimental/Bits/AutoStructs/Basic.lean:106:8: declaration uses 'sorry' -warning: ././././SSA/Experimental/Bits/AutoStructs/Basic.lean:109:8: declaration uses 'sorry' -warning: ././././SSA/Experimental/Bits/AutoStructs/Basic.lean:111:8: declaration uses 'sorry' -warning: ././././SSA/Experimental/Bits/AutoStructs/Basic.lean:113:8: declaration uses 'sorry' -warning: ././././SSA/Experimental/Bits/AutoStructs/Basic.lean:116:8: declaration uses 'sorry' -warning: ././././SSA/Experimental/Bits/AutoStructs/Basic.lean:127:8: declaration uses 'sorry' -warning: ././././SSA/Experimental/Bits/AutoStructs/Basic.lean:164:8: declaration uses 'sorry' -warning: ././././SSA/Experimental/Bits/AutoStructs/Basic.lean:335:6: declaration uses 'sorry' -warning: ././././SSA/Experimental/Bits/AutoStructs/Basic.lean:408:6: declaration uses 'sorry' -warning: ././././SSA/Experimental/Bits/AutoStructs/Basic.lean:443:6: declaration uses 'sorry' -warning: ././././SSA/Experimental/Bits/AutoStructs/Basic.lean:477:6: declaration uses 'sorry' -⚠ [2453/2457] Replayed SSA.Experimental.Bits.AutoStructs.FiniteStateMachine -warning: ././././SSA/Experimental/Bits/AutoStructs/FiniteStateMachine.lean:24:38: structure ... :=' has been deprecated in favor of 'structure ... where'. -note: this linter can be disabled with `set_option linter.deprecated false` -warning: ././././SSA/Experimental/Bits/AutoStructs/FiniteStateMachine.lean:111:8: declaration uses 'sorry' -warning: ././././SSA/Experimental/Bits/AutoStructs/FiniteStateMachine.lean:511:59: structure ... :=' has been deprecated in favor of 'structure ... where'. -note: this linter can be disabled with `set_option linter.deprecated false` -✖ [2457/2457] Building SSA.Projects.InstCombine.tests.LLVM.gmul_fold -trace: .> LEAN_PATH=././.lake/packages/batteries/.lake/build/lib:././.lake/packages/Qq/.lake/build/lib:././.lake/packages/aesop/.lake/build/lib:././.lake/packages/proofwidgets/.lake/build/lib:././.lake/packages/Cli/.lake/build/lib:././.lake/packages/importGraph/.lake/build/lib:././.lake/packages/LeanSearchClient/.lake/build/lib:././.lake/packages/mathlib/.lake/build/lib:././.lake/packages/MD4Lean/.lake/build/lib:././.lake/packages/UnicodeBasic/.lake/build/lib:././.lake/packages/BibtexQuery/.lake/build/lib:././.lake/packages/doc-gen4/.lake/build/lib:././.lake/packages/leanwuzla/.lake/build/lib:././.lake/build/lib LD_LIBRARY_PATH= /home/lfrenot/.elan/toolchains/leanprover--lean4---nightly-2024-10-15/bin/lean ././././SSA/Projects/InstCombine/tests/LLVM/gmul_fold.lean -R ./././. -o ././.lake/build/lib/SSA/Projects/InstCombine/tests/LLVM/gmul_fold.olean -i ././.lake/build/lib/SSA/Projects/InstCombine/tests/LLVM/gmul_fold.ilean -c ././.lake/build/ir/SSA/Projects/InstCombine/tests/LLVM/gmul_fold.c --json -info: ././././SSA/Projects/InstCombine/tests/LLVM/gmul_fold.lean:51:17: theorem extracted_1 (x x_1 : BitVec 8) : - (x_1 >>> 4 * x) <<< 4 + (x >>> 4 * x_1) <<< 4 + (x_1 &&& 15#8) * (x &&& 15#8) = x * x_1 := sorry -warning: ././././SSA/Projects/InstCombine/tests/LLVM/gmul_fold.lean:41:8: declaration uses 'sorry' -info: ././././SSA/Projects/InstCombine/tests/LLVM/gmul_fold.lean:91:17: theorem extracted_1 (x x_1 : BitVec 8) : - (x_1 >>> 4 * (x &&& 15#8)) <<< 4 + ((x_1 &&& 15#8) * x >>> 4) <<< 4 + (x_1 &&& 15#8) * (x &&& 15#8) = x * x_1 := sorry -warning: ././././SSA/Projects/InstCombine/tests/LLVM/gmul_fold.lean:81:8: declaration uses 'sorry' -info: ././././SSA/Projects/InstCombine/tests/LLVM/gmul_fold.lean:131:17: theorem extracted_1 (x x_1 : BitVec 16) : - (x_1 >>> 8 * (x &&& 255#16)) <<< 8 + ((x_1 &&& 255#16) * x >>> 8) <<< 8 + (x_1 &&& 255#16) * (x &&& 255#16) = - x * x_1 := sorry -warning: ././././SSA/Projects/InstCombine/tests/LLVM/gmul_fold.lean:121:8: declaration uses 'sorry' -info: ././././SSA/Projects/InstCombine/tests/LLVM/gmul_fold.lean:171:17: theorem extracted_1 (x x_1 : BitVec 32) : - (x_1 >>> 16 * (x &&& 65535#32)) <<< 16 + ((x_1 &&& 65535#32) * x >>> 16) <<< 16 + - (x_1 &&& 65535#32) * (x &&& 65535#32) = - x * x_1 := sorry -warning: ././././SSA/Projects/InstCombine/tests/LLVM/gmul_fold.lean:161:8: declaration uses 'sorry' -info: ././././SSA/Projects/InstCombine/tests/LLVM/gmul_fold.lean:211:17: theorem extracted_1 (x x_1 : BitVec 64) : - (x_1 >>> 32 * (x &&& 4294967295#64)) <<< 32 + ((x_1 &&& 4294967295#64) * x >>> 32) <<< 32 + - (x_1 &&& 4294967295#64) * (x &&& 4294967295#64) = - x * x_1 := sorry -warning: ././././SSA/Projects/InstCombine/tests/LLVM/gmul_fold.lean:201:8: declaration uses 'sorry' -info: ././././SSA/Projects/InstCombine/tests/LLVM/gmul_fold.lean:251:17: theorem extracted_1 (x x_1 : BitVec 128) : - (x_1 >>> 64 * (x &&& 18446744073709551615#128)) <<< 64 + ((x_1 &&& 18446744073709551615#128) * x >>> 64) <<< 64 + - (x_1 &&& 18446744073709551615#128) * (x &&& 18446744073709551615#128) = - x * x_1 := sorry -warning: ././././SSA/Projects/InstCombine/tests/LLVM/gmul_fold.lean:241:8: declaration uses 'sorry' -warning: ././././SSA/Projects/InstCombine/tests/LLVM/gmul_fold.lean:286:6: exponent 260 exceeds the threshold 256, exponentiation operation was not evaluated, use `set_option exponentiation.threshold ` to set a new threshold -info: ././././SSA/Projects/InstCombine/tests/LLVM/gmul_fold.lean:291:17: theorem extracted_1 (x x_1 : BitVec 130) : - (x_1 >>> 65 * (x &&& 36893488147419103231#130)) <<< 65 + ((x_1 &&& 36893488147419103231#130) * x >>> 65) <<< 65 + - (x_1 &&& 36893488147419103231#130) * (x &&& 36893488147419103231#130) = - x * x_1 := sorry -warning: ././././SSA/Projects/InstCombine/tests/LLVM/gmul_fold.lean:281:8: declaration uses 'sorry' -error: ././././SSA/Projects/InstCombine/tests/LLVM/gmul_fold.lean:332:61: (deterministic) timeout at `whnf`, maximum number of heartbeats (200000) has been reached -Use `set_option maxHeartbeats ` to set the limit. -Additional diagnostic information may be available using the `set_option diagnostics true` command. -error: ././././SSA/Projects/InstCombine/tests/LLVM/gmul_fold.lean:383:118: (deterministic) timeout at `whnf`, maximum number of heartbeats (200000) has been reached -Use `set_option maxHeartbeats ` to set the limit. -Additional diagnostic information may be available using the `set_option diagnostics true` command. -error: ././././SSA/Projects/InstCombine/tests/LLVM/gmul_fold.lean:434:109: (deterministic) timeout at `whnf`, maximum number of heartbeats (200000) has been reached -Use `set_option maxHeartbeats ` to set the limit. -Additional diagnostic information may be available using the `set_option diagnostics true` command. -error: Lean exited with code 1 -Some required builds logged failures: -- SSA.Projects.InstCombine.tests.LLVM.gmul_fold -error: build failed diff --git a/SSA/Projects/InstCombine/tests/logs/gmul_fold_proof.txt b/SSA/Projects/InstCombine/tests/logs/gmul_fold_proof.txt new file mode 100644 index 000000000..1e000e7f5 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/gmul_fold_proof.txt @@ -0,0 +1,366 @@ +⚠ [49/2462] Replayed Mathlib.Logic.Basic +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Basic.lean:155:8: `dec_em'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Basic.lean:159:8: `em'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Basic.lean:304:8: `or_congr_left'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Basic.lean:307:8: `or_congr_right'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Basic.lean:320:8: `imp_or'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Basic.lean:359:8: `xor_iff_not_iff'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Basic.lean:418:8: `eqRec_heq'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Basic.lean:511:8: `forall_true_iff'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Basic.lean:532:8: `exists_apply_eq_apply'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Basic.lean:539:6: `exists_apply_eq_apply2'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Basic.lean:548:6: `exists_apply_eq_apply3'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Basic.lean:575:8: `forall_apply_eq_imp_iff'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Basic.lean:578:8: `forall_eq_apply_imp_iff'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Basic.lean:638:8: `forall_prop_congr'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Basic.lean:711:6: `Classical.choose_eq'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Basic.lean:847:8: `dite_eq_iff'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Basic.lean:851:8: `ite_eq_iff'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +⚠ [66/2462] Replayed Mathlib.Algebra.NeZero +warning: ././.lake/packages/mathlib/././Mathlib/Algebra/NeZero.lean:44:6: `zero_ne_one'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Algebra/NeZero.lean:46:6: `one_ne_zero'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Algebra/NeZero.lean:48:6: `two_ne_zero'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Algebra/NeZero.lean:50:6: `three_ne_zero'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Algebra/NeZero.lean:52:6: `four_ne_zero'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +⚠ [69/2462] Replayed Mathlib.Logic.ExistsUnique +warning: ././.lake/packages/mathlib/././Mathlib/Logic/ExistsUnique.lean:109:16: `exists_unique_eq'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +⚠ [74/2462] Replayed Mathlib.Logic.Function.Basic +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Function/Basic.lean:78:8: `Function.Injective.eq_iff'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Function/Basic.lean:87:8: `Function.Injective.ne_iff'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Function/Basic.lean:117:8: `Function.Injective.of_comp_iff'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Function/Basic.lean:163:8: `Function.Surjective.of_comp_iff'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Function/Basic.lean:237:8: `Function.Bijective.of_comp_iff'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Function/Basic.lean:541:8: `Function.update_comp_eq_of_forall_ne'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Function/Basic.lean:552:8: `Function.update_comp_eq_of_injective'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Function/Basic.lean:649:8: `Function.extend_apply'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Function/Basic.lean:681:8: `Function.Injective.surjective_comp_right'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +⚠ [94/2462] Replayed Mathlib.Control.Combinators +warning: ././.lake/packages/mathlib/././Mathlib/Control/Combinators.lean:35:4: `Monad.mapM'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Control/Combinators.lean:57:4: `Monad.sequence'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +⚠ [96/2462] Replayed Mathlib.Logic.IsEmpty +warning: ././.lake/packages/mathlib/././Mathlib/Logic/IsEmpty.lean:36:9: `Fin.isEmpty'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +⚠ [229/2462] Replayed Mathlib.Data.Prod.PProd +warning: ././.lake/packages/mathlib/././Mathlib/Data/Prod/PProd.lean:35:8: `PProd.forall'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Data/Prod/PProd.lean:38:8: `PProd.exists'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +⚠ [230/2462] Replayed Mathlib.Data.Bool.Basic +warning: ././.lake/packages/mathlib/././Mathlib/Data/Bool/Basic.lean:156:8: `Bool.eq_true_of_not_eq_false'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Data/Bool/Basic.lean:159:8: `Bool.eq_false_of_not_eq_true'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +⚠ [232/2462] Replayed Mathlib.Logic.Function.Iterate +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Function/Iterate.lean:160:8: `Function.iterate_succ'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Function/Iterate.lean:163:8: `Function.iterate_succ_apply'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +⚠ [234/2462] Replayed Mathlib.Data.Prod.Basic +warning: ././.lake/packages/mathlib/././Mathlib/Data/Prod/Basic.lean:31:8: `Prod.forall'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Data/Prod/Basic.lean:34:8: `Prod.exists'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Data/Prod/Basic.lean:51:8: `Prod.map_apply'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Data/Prod/Basic.lean:54:8: `Prod.map_fst'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Data/Prod/Basic.lean:57:8: `Prod.map_snd'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +⚠ [235/2462] Replayed Mathlib.Data.Sigma.Basic +warning: ././.lake/packages/mathlib/././Mathlib/Data/Sigma/Basic.lean:90:6: `Sigma.exists'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Data/Sigma/Basic.lean:93:6: `Sigma.forall'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +⚠ [239/2462] Replayed Mathlib.Data.FunLike.Basic +warning: ././.lake/packages/mathlib/././Mathlib/Data/FunLike/Basic.lean:187:8: `DFunLike.ext'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +⚠ [244/2462] Replayed Mathlib.Logic.Relation +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Relation.lean:351:8: `Relation.TransGen.head'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Relation.lean:354:8: `Relation.TransGen.tail'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Relation.lean:444:8: `Relation.TransGen.lift'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Relation.lean:453:6: `Relation.TransGen.closed'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Relation.lean:523:8: `Relation.ReflTransGen.lift'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +⚠ [245/2462] Replayed Mathlib.Logic.Unique +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Unique.lean:131:18: `Unique.subsingleton_unique'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Unique.lean:259:9: `Unique.subtypeEq'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +⚠ [252/2462] Replayed Mathlib.Data.Quot +warning: ././.lake/packages/mathlib/././Mathlib/Data/Quot.lean:558:18: `Quotient.liftOn'_mk''` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Data/Quot.lean:562:14: `Quotient.surjective_liftOn'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Data/Quot.lean:573:18: `Quotient.liftOn₂'_mk''` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Data/Quot.lean:639:8: `Quotient.hrecOn'_mk''` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Data/Quot.lean:652:8: `Quotient.hrecOn₂'_mk''` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Data/Quot.lean:664:8: `Quotient.map'_mk''` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Data/Quot.lean:674:8: `Quotient.map₂'_mk''` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Data/Quot.lean:679:8: `Quotient.exact'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Data/Quot.lean:683:8: `Quotient.sound'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Data/Quot.lean:687:18: `Quotient.eq'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Data/Quot.lean:692:18: `Quotient.eq''` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Data/Quot.lean:701:8: `Quotient.out_eq'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Data/Quot.lean:704:8: `Quotient.mk_out'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +⚠ [256/2462] Replayed Mathlib.Tactic.Lift +warning: ././.lake/packages/mathlib/././Mathlib/Tactic/Lift.lean:49:9: `PiSubtype.canLift'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +⚠ [409/2462] Replayed Mathlib.Algebra.Group.Defs +warning: ././.lake/packages/mathlib/././Mathlib/Algebra/Group/Defs.lean:735:33: `pow_succ'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Algebra/Group/Defs.lean:740:6: `pow_mul_comm'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Algebra/Group/Defs.lean:749:6: `pow_three'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Algebra/Group/Defs.lean:772:6: `pow_mul'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +⚠ [443/2462] Replayed Mathlib.Data.List.Defs +warning: ././.lake/packages/mathlib/././Mathlib/Data/List/Defs.lean:241:9: `List.decidableChain'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +⚠ [474/2462] Replayed Mathlib.Control.Applicative +warning: ././.lake/packages/mathlib/././Mathlib/Control/Applicative.lean:34:8: `Applicative.pure_seq_eq_map'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +⚠ [475/2462] Replayed Mathlib.Control.Traversable.Basic +warning: ././.lake/packages/mathlib/././Mathlib/Control/Traversable/Basic.lean:139:8: `ApplicativeTransformation.preserves_map'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +⚠ [618/2462] Replayed Mathlib.Algebra.GroupWithZero.Defs +warning: ././.lake/packages/mathlib/././Mathlib/Algebra/GroupWithZero/Defs.lean:110:8: `mul_left_inj'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Algebra/GroupWithZero/Defs.lean:113:8: `mul_right_inj'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +⚠ [624/2462] Replayed Mathlib.Algebra.Group.Invertible.Defs +warning: ././.lake/packages/mathlib/././Mathlib/Algebra/Group/Invertible/Defs.lean:97:8: `invOf_mul_self'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Algebra/Group/Invertible/Defs.lean:103:8: `mul_invOf_self'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Algebra/Group/Invertible/Defs.lean:109:8: `invOf_mul_cancel_left'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Algebra/Group/Invertible/Defs.lean:120:8: `mul_invOf_cancel_left'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Algebra/Group/Invertible/Defs.lean:131:8: `invOf_mul_cancel_right'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Algebra/Group/Invertible/Defs.lean:142:8: `mul_invOf_cancel_right'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Algebra/Group/Invertible/Defs.lean:198:8: `invOf_one'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +⚠ [1184/2462] Replayed Mathlib.Control.Traversable.Lemmas +warning: ././.lake/packages/mathlib/././Mathlib/Control/Traversable/Lemmas.lean:87:8: `Traversable.naturality'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Control/Traversable/Lemmas.lean:102:8: `Traversable.traverse_eq_map_id'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Control/Traversable/Lemmas.lean:108:8: `Traversable.traverse_map'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Control/Traversable/Lemmas.lean:113:8: `Traversable.map_traverse'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +⚠ [2407/2462] Replayed Mathlib.Data.List.EditDistance.Defs +warning: ././.lake/packages/mathlib/././Mathlib/Data/List/EditDistance/Defs.lean:214:8: `suffixLevenshtein_nil'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +⚠ [2447/2462] Replayed SSA.Experimental.Bits.Fast.FiniteStateMachine +warning: ././././SSA/Experimental/Bits/Fast/FiniteStateMachine.lean:107:8: declaration uses 'sorry' +warning: ././././SSA/Experimental/Bits/Fast/FiniteStateMachine.lean:825:8: declaration uses 'sorry' +⚠ [2451/2462] Replayed SSA.Experimental.Bits.Fast.Tactic +warning: ././././SSA/Experimental/Bits/Fast/Tactic.lean:340:4: declaration uses 'sorry' +⚠ [2452/2462] Replayed SSA.Experimental.Bits.AutoStructs.ForLean +warning: ././././SSA/Experimental/Bits/AutoStructs/ForLean.lean:24:8: declaration uses 'sorry' +warning: ././././SSA/Experimental/Bits/AutoStructs/ForLean.lean:27:8: declaration uses 'sorry' +warning: ././././SSA/Experimental/Bits/AutoStructs/ForLean.lean:29:8: declaration uses 'sorry' +warning: ././././SSA/Experimental/Bits/AutoStructs/ForLean.lean:31:8: declaration uses 'sorry' +warning: ././././SSA/Experimental/Bits/AutoStructs/ForLean.lean:34:8: declaration uses 'sorry' +warning: ././././SSA/Experimental/Bits/AutoStructs/ForLean.lean:36:8: declaration uses 'sorry' +warning: ././././SSA/Experimental/Bits/AutoStructs/ForLean.lean:38:8: declaration uses 'sorry' +warning: ././././SSA/Experimental/Bits/AutoStructs/ForLean.lean:41:8: declaration uses 'sorry' +warning: ././././SSA/Experimental/Bits/AutoStructs/ForLean.lean:52:8: declaration uses 'sorry' +warning: ././././SSA/Experimental/Bits/AutoStructs/ForLean.lean:56:8: declaration uses 'sorry' +⚠ [2457/2462] Replayed SSA.Experimental.Bits.AutoStructs.Constructions +warning: ././././SSA/Experimental/Bits/AutoStructs/Constructions.lean:55:6: declaration uses 'sorry' +warning: ././././SSA/Experimental/Bits/AutoStructs/Constructions.lean:128:6: declaration uses 'sorry' +warning: ././././SSA/Experimental/Bits/AutoStructs/Constructions.lean:163:6: declaration uses 'sorry' +warning: ././././SSA/Experimental/Bits/AutoStructs/Constructions.lean:197:6: declaration uses 'sorry' +⚠ [2458/2462] Replayed SSA.Experimental.Bits.AutoStructs.FiniteStateMachine +warning: ././././SSA/Experimental/Bits/AutoStructs/FiniteStateMachine.lean:111:8: declaration uses 'sorry' +✖ [2462/2462] Building SSA.Projects.InstCombine.tests.LLVM.gmul_fold +trace: .> LEAN_PATH=././.lake/packages/batteries/.lake/build/lib:././.lake/packages/Qq/.lake/build/lib:././.lake/packages/aesop/.lake/build/lib:././.lake/packages/proofwidgets/.lake/build/lib:././.lake/packages/Cli/.lake/build/lib:././.lake/packages/importGraph/.lake/build/lib:././.lake/packages/LeanSearchClient/.lake/build/lib:././.lake/packages/mathlib/.lake/build/lib:././.lake/packages/MD4Lean/.lake/build/lib:././.lake/packages/UnicodeBasic/.lake/build/lib:././.lake/packages/BibtexQuery/.lake/build/lib:././.lake/packages/doc-gen4/.lake/build/lib:././.lake/packages/leanwuzla/.lake/build/lib:././.lake/build/lib LD_LIBRARY_PATH= /home/lfrenot/.elan/toolchains/leanprover--lean4---nightly-2024-10-17/bin/lean ././././SSA/Projects/InstCombine/tests/LLVM/gmul_fold.lean -R ./././. -o ././.lake/build/lib/SSA/Projects/InstCombine/tests/LLVM/gmul_fold.olean -i ././.lake/build/lib/SSA/Projects/InstCombine/tests/LLVM/gmul_fold.ilean -c ././.lake/build/ir/SSA/Projects/InstCombine/tests/LLVM/gmul_fold.c --json +info: ././././SSA/Projects/InstCombine/tests/LLVM/gmul_fold.lean:51:17: theorem extracted_1 (x x_1 : BitVec 8) : + (x_1 >>> 4 * x) <<< 4 + (x >>> 4 * x_1) <<< 4 + (x_1 &&& 15#8) * (x &&& 15#8) = x * x_1 := sorry +warning: ././././SSA/Projects/InstCombine/tests/LLVM/gmul_fold.lean:41:8: declaration uses 'sorry' +info: ././././SSA/Projects/InstCombine/tests/LLVM/gmul_fold.lean:91:17: theorem extracted_1 (x x_1 : BitVec 8) : + (x_1 >>> 4 * (x &&& 15#8)) <<< 4 + ((x_1 &&& 15#8) * x >>> 4) <<< 4 + (x_1 &&& 15#8) * (x &&& 15#8) = x * x_1 := sorry +warning: ././././SSA/Projects/InstCombine/tests/LLVM/gmul_fold.lean:81:8: declaration uses 'sorry' +info: ././././SSA/Projects/InstCombine/tests/LLVM/gmul_fold.lean:131:17: theorem extracted_1 (x x_1 : BitVec 16) : + (x_1 >>> 8 * (x &&& 255#16)) <<< 8 + ((x_1 &&& 255#16) * x >>> 8) <<< 8 + (x_1 &&& 255#16) * (x &&& 255#16) = + x * x_1 := sorry +warning: ././././SSA/Projects/InstCombine/tests/LLVM/gmul_fold.lean:121:8: declaration uses 'sorry' +info: ././././SSA/Projects/InstCombine/tests/LLVM/gmul_fold.lean:171:17: theorem extracted_1 (x x_1 : BitVec 32) : + (x_1 >>> 16 * (x &&& 65535#32)) <<< 16 + ((x_1 &&& 65535#32) * x >>> 16) <<< 16 + + (x_1 &&& 65535#32) * (x &&& 65535#32) = + x * x_1 := sorry +warning: ././././SSA/Projects/InstCombine/tests/LLVM/gmul_fold.lean:161:8: declaration uses 'sorry' +info: ././././SSA/Projects/InstCombine/tests/LLVM/gmul_fold.lean:211:17: theorem extracted_1 (x x_1 : BitVec 64) : + (x_1 >>> 32 * (x &&& 4294967295#64)) <<< 32 + ((x_1 &&& 4294967295#64) * x >>> 32) <<< 32 + + (x_1 &&& 4294967295#64) * (x &&& 4294967295#64) = + x * x_1 := sorry +warning: ././././SSA/Projects/InstCombine/tests/LLVM/gmul_fold.lean:201:8: declaration uses 'sorry' +info: ././././SSA/Projects/InstCombine/tests/LLVM/gmul_fold.lean:251:17: theorem extracted_1 (x x_1 : BitVec 128) : + (x_1 >>> 64 * (x &&& 18446744073709551615#128)) <<< 64 + ((x_1 &&& 18446744073709551615#128) * x >>> 64) <<< 64 + + (x_1 &&& 18446744073709551615#128) * (x &&& 18446744073709551615#128) = + x * x_1 := sorry +warning: ././././SSA/Projects/InstCombine/tests/LLVM/gmul_fold.lean:241:8: declaration uses 'sorry' +warning: ././././SSA/Projects/InstCombine/tests/LLVM/gmul_fold.lean:286:6: exponent 260 exceeds the threshold 256, exponentiation operation was not evaluated, use `set_option exponentiation.threshold ` to set a new threshold +info: ././././SSA/Projects/InstCombine/tests/LLVM/gmul_fold.lean:291:17: theorem extracted_1 (x x_1 : BitVec 130) : + (x_1 >>> 65 * (x &&& 36893488147419103231#130)) <<< 65 + ((x_1 &&& 36893488147419103231#130) * x >>> 65) <<< 65 + + (x_1 &&& 36893488147419103231#130) * (x &&& 36893488147419103231#130) = + x * x_1 := sorry +warning: ././././SSA/Projects/InstCombine/tests/LLVM/gmul_fold.lean:281:8: declaration uses 'sorry' +error: ././././SSA/Projects/InstCombine/tests/LLVM/gmul_fold.lean:332:61: (deterministic) timeout at `whnf`, maximum number of heartbeats (200000) has been reached +Use `set_option maxHeartbeats ` to set the limit. +Additional diagnostic information may be available using the `set_option diagnostics true` command. +error: ././././SSA/Projects/InstCombine/tests/LLVM/gmul_fold.lean:383:118: (deterministic) timeout at `whnf`, maximum number of heartbeats (200000) has been reached +Use `set_option maxHeartbeats ` to set the limit. +Additional diagnostic information may be available using the `set_option diagnostics true` command. +error: ././././SSA/Projects/InstCombine/tests/LLVM/gmul_fold.lean:434:109: (deterministic) timeout at `whnf`, maximum number of heartbeats (200000) has been reached +Use `set_option maxHeartbeats ` to set the limit. +Additional diagnostic information may be available using the `set_option diagnostics true` command. +error: Lean exited with code 1 +Some required builds logged failures: +- SSA.Projects.InstCombine.tests.LLVM.gmul_fold +error: build failed diff --git a/SSA/Projects/InstCombine/tests/logs/gnestedhselect_proof.txt b/SSA/Projects/InstCombine/tests/logs/gnestedhselect_proof.txt new file mode 100644 index 000000000..7dbcf38d9 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/gnestedhselect_proof.txt @@ -0,0 +1,326 @@ +⚠ [49/2462] Replayed Mathlib.Logic.Basic +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Basic.lean:155:8: `dec_em'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Basic.lean:159:8: `em'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Basic.lean:304:8: `or_congr_left'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Basic.lean:307:8: `or_congr_right'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Basic.lean:320:8: `imp_or'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Basic.lean:359:8: `xor_iff_not_iff'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Basic.lean:418:8: `eqRec_heq'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Basic.lean:511:8: `forall_true_iff'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Basic.lean:532:8: `exists_apply_eq_apply'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Basic.lean:539:6: `exists_apply_eq_apply2'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Basic.lean:548:6: `exists_apply_eq_apply3'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Basic.lean:575:8: `forall_apply_eq_imp_iff'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Basic.lean:578:8: `forall_eq_apply_imp_iff'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Basic.lean:638:8: `forall_prop_congr'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Basic.lean:711:6: `Classical.choose_eq'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Basic.lean:847:8: `dite_eq_iff'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Basic.lean:851:8: `ite_eq_iff'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +⚠ [66/2462] Replayed Mathlib.Algebra.NeZero +warning: ././.lake/packages/mathlib/././Mathlib/Algebra/NeZero.lean:44:6: `zero_ne_one'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Algebra/NeZero.lean:46:6: `one_ne_zero'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Algebra/NeZero.lean:48:6: `two_ne_zero'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Algebra/NeZero.lean:50:6: `three_ne_zero'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Algebra/NeZero.lean:52:6: `four_ne_zero'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +⚠ [69/2462] Replayed Mathlib.Logic.ExistsUnique +warning: ././.lake/packages/mathlib/././Mathlib/Logic/ExistsUnique.lean:109:16: `exists_unique_eq'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +⚠ [74/2462] Replayed Mathlib.Logic.Function.Basic +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Function/Basic.lean:78:8: `Function.Injective.eq_iff'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Function/Basic.lean:87:8: `Function.Injective.ne_iff'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Function/Basic.lean:117:8: `Function.Injective.of_comp_iff'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Function/Basic.lean:163:8: `Function.Surjective.of_comp_iff'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Function/Basic.lean:237:8: `Function.Bijective.of_comp_iff'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Function/Basic.lean:541:8: `Function.update_comp_eq_of_forall_ne'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Function/Basic.lean:552:8: `Function.update_comp_eq_of_injective'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Function/Basic.lean:649:8: `Function.extend_apply'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Function/Basic.lean:681:8: `Function.Injective.surjective_comp_right'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +⚠ [94/2462] Replayed Mathlib.Control.Combinators +warning: ././.lake/packages/mathlib/././Mathlib/Control/Combinators.lean:35:4: `Monad.mapM'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Control/Combinators.lean:57:4: `Monad.sequence'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +⚠ [96/2462] Replayed Mathlib.Logic.IsEmpty +warning: ././.lake/packages/mathlib/././Mathlib/Logic/IsEmpty.lean:36:9: `Fin.isEmpty'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +⚠ [229/2462] Replayed Mathlib.Data.Prod.PProd +warning: ././.lake/packages/mathlib/././Mathlib/Data/Prod/PProd.lean:35:8: `PProd.forall'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Data/Prod/PProd.lean:38:8: `PProd.exists'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +⚠ [230/2462] Replayed Mathlib.Data.Bool.Basic +warning: ././.lake/packages/mathlib/././Mathlib/Data/Bool/Basic.lean:156:8: `Bool.eq_true_of_not_eq_false'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Data/Bool/Basic.lean:159:8: `Bool.eq_false_of_not_eq_true'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +⚠ [232/2462] Replayed Mathlib.Logic.Function.Iterate +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Function/Iterate.lean:160:8: `Function.iterate_succ'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Function/Iterate.lean:163:8: `Function.iterate_succ_apply'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +⚠ [234/2462] Replayed Mathlib.Data.Prod.Basic +warning: ././.lake/packages/mathlib/././Mathlib/Data/Prod/Basic.lean:31:8: `Prod.forall'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Data/Prod/Basic.lean:34:8: `Prod.exists'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Data/Prod/Basic.lean:51:8: `Prod.map_apply'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Data/Prod/Basic.lean:54:8: `Prod.map_fst'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Data/Prod/Basic.lean:57:8: `Prod.map_snd'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +⚠ [235/2462] Replayed Mathlib.Data.Sigma.Basic +warning: ././.lake/packages/mathlib/././Mathlib/Data/Sigma/Basic.lean:90:6: `Sigma.exists'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Data/Sigma/Basic.lean:93:6: `Sigma.forall'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +⚠ [239/2462] Replayed Mathlib.Data.FunLike.Basic +warning: ././.lake/packages/mathlib/././Mathlib/Data/FunLike/Basic.lean:187:8: `DFunLike.ext'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +⚠ [244/2462] Replayed Mathlib.Logic.Relation +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Relation.lean:351:8: `Relation.TransGen.head'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Relation.lean:354:8: `Relation.TransGen.tail'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Relation.lean:444:8: `Relation.TransGen.lift'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Relation.lean:453:6: `Relation.TransGen.closed'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Relation.lean:523:8: `Relation.ReflTransGen.lift'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +⚠ [245/2462] Replayed Mathlib.Logic.Unique +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Unique.lean:131:18: `Unique.subsingleton_unique'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Unique.lean:259:9: `Unique.subtypeEq'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +⚠ [252/2462] Replayed Mathlib.Data.Quot +warning: ././.lake/packages/mathlib/././Mathlib/Data/Quot.lean:558:18: `Quotient.liftOn'_mk''` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Data/Quot.lean:562:14: `Quotient.surjective_liftOn'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Data/Quot.lean:573:18: `Quotient.liftOn₂'_mk''` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Data/Quot.lean:639:8: `Quotient.hrecOn'_mk''` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Data/Quot.lean:652:8: `Quotient.hrecOn₂'_mk''` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Data/Quot.lean:664:8: `Quotient.map'_mk''` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Data/Quot.lean:674:8: `Quotient.map₂'_mk''` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Data/Quot.lean:679:8: `Quotient.exact'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Data/Quot.lean:683:8: `Quotient.sound'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Data/Quot.lean:687:18: `Quotient.eq'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Data/Quot.lean:692:18: `Quotient.eq''` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Data/Quot.lean:701:8: `Quotient.out_eq'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Data/Quot.lean:704:8: `Quotient.mk_out'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +⚠ [256/2462] Replayed Mathlib.Tactic.Lift +warning: ././.lake/packages/mathlib/././Mathlib/Tactic/Lift.lean:49:9: `PiSubtype.canLift'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +⚠ [409/2462] Replayed Mathlib.Algebra.Group.Defs +warning: ././.lake/packages/mathlib/././Mathlib/Algebra/Group/Defs.lean:735:33: `pow_succ'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Algebra/Group/Defs.lean:740:6: `pow_mul_comm'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Algebra/Group/Defs.lean:749:6: `pow_three'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Algebra/Group/Defs.lean:772:6: `pow_mul'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +⚠ [443/2462] Replayed Mathlib.Data.List.Defs +warning: ././.lake/packages/mathlib/././Mathlib/Data/List/Defs.lean:241:9: `List.decidableChain'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +⚠ [474/2462] Replayed Mathlib.Control.Applicative +warning: ././.lake/packages/mathlib/././Mathlib/Control/Applicative.lean:34:8: `Applicative.pure_seq_eq_map'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +⚠ [475/2462] Replayed Mathlib.Control.Traversable.Basic +warning: ././.lake/packages/mathlib/././Mathlib/Control/Traversable/Basic.lean:139:8: `ApplicativeTransformation.preserves_map'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +⚠ [618/2462] Replayed Mathlib.Algebra.GroupWithZero.Defs +warning: ././.lake/packages/mathlib/././Mathlib/Algebra/GroupWithZero/Defs.lean:110:8: `mul_left_inj'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Algebra/GroupWithZero/Defs.lean:113:8: `mul_right_inj'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +⚠ [624/2462] Replayed Mathlib.Algebra.Group.Invertible.Defs +warning: ././.lake/packages/mathlib/././Mathlib/Algebra/Group/Invertible/Defs.lean:97:8: `invOf_mul_self'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Algebra/Group/Invertible/Defs.lean:103:8: `mul_invOf_self'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Algebra/Group/Invertible/Defs.lean:109:8: `invOf_mul_cancel_left'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Algebra/Group/Invertible/Defs.lean:120:8: `mul_invOf_cancel_left'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Algebra/Group/Invertible/Defs.lean:131:8: `invOf_mul_cancel_right'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Algebra/Group/Invertible/Defs.lean:142:8: `mul_invOf_cancel_right'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Algebra/Group/Invertible/Defs.lean:198:8: `invOf_one'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +⚠ [1184/2462] Replayed Mathlib.Control.Traversable.Lemmas +warning: ././.lake/packages/mathlib/././Mathlib/Control/Traversable/Lemmas.lean:87:8: `Traversable.naturality'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Control/Traversable/Lemmas.lean:102:8: `Traversable.traverse_eq_map_id'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Control/Traversable/Lemmas.lean:108:8: `Traversable.traverse_map'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Control/Traversable/Lemmas.lean:113:8: `Traversable.map_traverse'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +⚠ [2407/2462] Replayed Mathlib.Data.List.EditDistance.Defs +warning: ././.lake/packages/mathlib/././Mathlib/Data/List/EditDistance/Defs.lean:214:8: `suffixLevenshtein_nil'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +⚠ [2447/2462] Replayed SSA.Experimental.Bits.Fast.FiniteStateMachine +warning: ././././SSA/Experimental/Bits/Fast/FiniteStateMachine.lean:107:8: declaration uses 'sorry' +warning: ././././SSA/Experimental/Bits/Fast/FiniteStateMachine.lean:825:8: declaration uses 'sorry' +⚠ [2451/2462] Replayed SSA.Experimental.Bits.Fast.Tactic +warning: ././././SSA/Experimental/Bits/Fast/Tactic.lean:340:4: declaration uses 'sorry' +⚠ [2452/2462] Replayed SSA.Experimental.Bits.AutoStructs.ForLean +warning: ././././SSA/Experimental/Bits/AutoStructs/ForLean.lean:24:8: declaration uses 'sorry' +warning: ././././SSA/Experimental/Bits/AutoStructs/ForLean.lean:27:8: declaration uses 'sorry' +warning: ././././SSA/Experimental/Bits/AutoStructs/ForLean.lean:29:8: declaration uses 'sorry' +warning: ././././SSA/Experimental/Bits/AutoStructs/ForLean.lean:31:8: declaration uses 'sorry' +warning: ././././SSA/Experimental/Bits/AutoStructs/ForLean.lean:34:8: declaration uses 'sorry' +warning: ././././SSA/Experimental/Bits/AutoStructs/ForLean.lean:36:8: declaration uses 'sorry' +warning: ././././SSA/Experimental/Bits/AutoStructs/ForLean.lean:38:8: declaration uses 'sorry' +warning: ././././SSA/Experimental/Bits/AutoStructs/ForLean.lean:41:8: declaration uses 'sorry' +warning: ././././SSA/Experimental/Bits/AutoStructs/ForLean.lean:52:8: declaration uses 'sorry' +warning: ././././SSA/Experimental/Bits/AutoStructs/ForLean.lean:56:8: declaration uses 'sorry' +⚠ [2457/2462] Replayed SSA.Experimental.Bits.AutoStructs.Constructions +warning: ././././SSA/Experimental/Bits/AutoStructs/Constructions.lean:55:6: declaration uses 'sorry' +warning: ././././SSA/Experimental/Bits/AutoStructs/Constructions.lean:128:6: declaration uses 'sorry' +warning: ././././SSA/Experimental/Bits/AutoStructs/Constructions.lean:163:6: declaration uses 'sorry' +warning: ././././SSA/Experimental/Bits/AutoStructs/Constructions.lean:197:6: declaration uses 'sorry' +⚠ [2458/2462] Replayed SSA.Experimental.Bits.AutoStructs.FiniteStateMachine +warning: ././././SSA/Experimental/Bits/AutoStructs/FiniteStateMachine.lean:111:8: declaration uses 'sorry' +✖ [2462/2462] Building SSA.Projects.InstCombine.tests.LLVM.gnestedhselect +trace: .> LEAN_PATH=././.lake/packages/batteries/.lake/build/lib:././.lake/packages/Qq/.lake/build/lib:././.lake/packages/aesop/.lake/build/lib:././.lake/packages/proofwidgets/.lake/build/lib:././.lake/packages/Cli/.lake/build/lib:././.lake/packages/importGraph/.lake/build/lib:././.lake/packages/LeanSearchClient/.lake/build/lib:././.lake/packages/mathlib/.lake/build/lib:././.lake/packages/MD4Lean/.lake/build/lib:././.lake/packages/UnicodeBasic/.lake/build/lib:././.lake/packages/BibtexQuery/.lake/build/lib:././.lake/packages/doc-gen4/.lake/build/lib:././.lake/packages/leanwuzla/.lake/build/lib:././.lake/build/lib LD_LIBRARY_PATH= /home/lfrenot/.elan/toolchains/leanprover--lean4---nightly-2024-10-17/bin/lean ././././SSA/Projects/InstCombine/tests/LLVM/gnestedhselect.lean -R ./././. -o ././.lake/build/lib/SSA/Projects/InstCombine/tests/LLVM/gnestedhselect.olean -i ././.lake/build/lib/SSA/Projects/InstCombine/tests/LLVM/gnestedhselect.ilean -c ././.lake/build/ir/SSA/Projects/InstCombine/tests/LLVM/gnestedhselect.c --json +error: Lean exited with code 137 +Some required builds logged failures: +- SSA.Projects.InstCombine.tests.LLVM.gnestedhselect +error: build failed diff --git a/SSA/Projects/InstCombine/tests/logs/gnot_proof.txt b/SSA/Projects/InstCombine/tests/logs/gnot_proof.txt new file mode 100644 index 000000000..2d8881c2c --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/gnot_proof.txt @@ -0,0 +1,391 @@ +⚠ [49/2462] Replayed Mathlib.Logic.Basic +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Basic.lean:155:8: `dec_em'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Basic.lean:159:8: `em'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Basic.lean:304:8: `or_congr_left'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Basic.lean:307:8: `or_congr_right'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Basic.lean:320:8: `imp_or'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Basic.lean:359:8: `xor_iff_not_iff'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Basic.lean:418:8: `eqRec_heq'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Basic.lean:511:8: `forall_true_iff'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Basic.lean:532:8: `exists_apply_eq_apply'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Basic.lean:539:6: `exists_apply_eq_apply2'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Basic.lean:548:6: `exists_apply_eq_apply3'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Basic.lean:575:8: `forall_apply_eq_imp_iff'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Basic.lean:578:8: `forall_eq_apply_imp_iff'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Basic.lean:638:8: `forall_prop_congr'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Basic.lean:711:6: `Classical.choose_eq'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Basic.lean:847:8: `dite_eq_iff'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Basic.lean:851:8: `ite_eq_iff'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +⚠ [66/2462] Replayed Mathlib.Algebra.NeZero +warning: ././.lake/packages/mathlib/././Mathlib/Algebra/NeZero.lean:44:6: `zero_ne_one'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Algebra/NeZero.lean:46:6: `one_ne_zero'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Algebra/NeZero.lean:48:6: `two_ne_zero'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Algebra/NeZero.lean:50:6: `three_ne_zero'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Algebra/NeZero.lean:52:6: `four_ne_zero'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +⚠ [69/2462] Replayed Mathlib.Logic.ExistsUnique +warning: ././.lake/packages/mathlib/././Mathlib/Logic/ExistsUnique.lean:109:16: `exists_unique_eq'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +⚠ [74/2462] Replayed Mathlib.Logic.Function.Basic +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Function/Basic.lean:78:8: `Function.Injective.eq_iff'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Function/Basic.lean:87:8: `Function.Injective.ne_iff'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Function/Basic.lean:117:8: `Function.Injective.of_comp_iff'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Function/Basic.lean:163:8: `Function.Surjective.of_comp_iff'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Function/Basic.lean:237:8: `Function.Bijective.of_comp_iff'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Function/Basic.lean:541:8: `Function.update_comp_eq_of_forall_ne'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Function/Basic.lean:552:8: `Function.update_comp_eq_of_injective'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Function/Basic.lean:649:8: `Function.extend_apply'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Function/Basic.lean:681:8: `Function.Injective.surjective_comp_right'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +⚠ [94/2462] Replayed Mathlib.Control.Combinators +warning: ././.lake/packages/mathlib/././Mathlib/Control/Combinators.lean:35:4: `Monad.mapM'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Control/Combinators.lean:57:4: `Monad.sequence'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +⚠ [96/2462] Replayed Mathlib.Logic.IsEmpty +warning: ././.lake/packages/mathlib/././Mathlib/Logic/IsEmpty.lean:36:9: `Fin.isEmpty'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +⚠ [229/2462] Replayed Mathlib.Data.Prod.PProd +warning: ././.lake/packages/mathlib/././Mathlib/Data/Prod/PProd.lean:35:8: `PProd.forall'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Data/Prod/PProd.lean:38:8: `PProd.exists'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +⚠ [230/2462] Replayed Mathlib.Data.Bool.Basic +warning: ././.lake/packages/mathlib/././Mathlib/Data/Bool/Basic.lean:156:8: `Bool.eq_true_of_not_eq_false'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Data/Bool/Basic.lean:159:8: `Bool.eq_false_of_not_eq_true'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +⚠ [232/2462] Replayed Mathlib.Logic.Function.Iterate +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Function/Iterate.lean:160:8: `Function.iterate_succ'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Function/Iterate.lean:163:8: `Function.iterate_succ_apply'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +⚠ [234/2462] Replayed Mathlib.Data.Prod.Basic +warning: ././.lake/packages/mathlib/././Mathlib/Data/Prod/Basic.lean:31:8: `Prod.forall'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Data/Prod/Basic.lean:34:8: `Prod.exists'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Data/Prod/Basic.lean:51:8: `Prod.map_apply'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Data/Prod/Basic.lean:54:8: `Prod.map_fst'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Data/Prod/Basic.lean:57:8: `Prod.map_snd'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +⚠ [235/2462] Replayed Mathlib.Data.Sigma.Basic +warning: ././.lake/packages/mathlib/././Mathlib/Data/Sigma/Basic.lean:90:6: `Sigma.exists'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Data/Sigma/Basic.lean:93:6: `Sigma.forall'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +⚠ [239/2462] Replayed Mathlib.Data.FunLike.Basic +warning: ././.lake/packages/mathlib/././Mathlib/Data/FunLike/Basic.lean:187:8: `DFunLike.ext'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +⚠ [244/2462] Replayed Mathlib.Logic.Relation +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Relation.lean:351:8: `Relation.TransGen.head'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Relation.lean:354:8: `Relation.TransGen.tail'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Relation.lean:444:8: `Relation.TransGen.lift'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Relation.lean:453:6: `Relation.TransGen.closed'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Relation.lean:523:8: `Relation.ReflTransGen.lift'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +⚠ [245/2462] Replayed Mathlib.Logic.Unique +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Unique.lean:131:18: `Unique.subsingleton_unique'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Unique.lean:259:9: `Unique.subtypeEq'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +⚠ [252/2462] Replayed Mathlib.Data.Quot +warning: ././.lake/packages/mathlib/././Mathlib/Data/Quot.lean:558:18: `Quotient.liftOn'_mk''` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Data/Quot.lean:562:14: `Quotient.surjective_liftOn'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Data/Quot.lean:573:18: `Quotient.liftOn₂'_mk''` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Data/Quot.lean:639:8: `Quotient.hrecOn'_mk''` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Data/Quot.lean:652:8: `Quotient.hrecOn₂'_mk''` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Data/Quot.lean:664:8: `Quotient.map'_mk''` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Data/Quot.lean:674:8: `Quotient.map₂'_mk''` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Data/Quot.lean:679:8: `Quotient.exact'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Data/Quot.lean:683:8: `Quotient.sound'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Data/Quot.lean:687:18: `Quotient.eq'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Data/Quot.lean:692:18: `Quotient.eq''` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Data/Quot.lean:701:8: `Quotient.out_eq'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Data/Quot.lean:704:8: `Quotient.mk_out'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +⚠ [256/2462] Replayed Mathlib.Tactic.Lift +warning: ././.lake/packages/mathlib/././Mathlib/Tactic/Lift.lean:49:9: `PiSubtype.canLift'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +⚠ [409/2462] Replayed Mathlib.Algebra.Group.Defs +warning: ././.lake/packages/mathlib/././Mathlib/Algebra/Group/Defs.lean:735:33: `pow_succ'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Algebra/Group/Defs.lean:740:6: `pow_mul_comm'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Algebra/Group/Defs.lean:749:6: `pow_three'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Algebra/Group/Defs.lean:772:6: `pow_mul'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +⚠ [443/2462] Replayed Mathlib.Data.List.Defs +warning: ././.lake/packages/mathlib/././Mathlib/Data/List/Defs.lean:241:9: `List.decidableChain'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +⚠ [474/2462] Replayed Mathlib.Control.Applicative +warning: ././.lake/packages/mathlib/././Mathlib/Control/Applicative.lean:34:8: `Applicative.pure_seq_eq_map'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +⚠ [475/2462] Replayed Mathlib.Control.Traversable.Basic +warning: ././.lake/packages/mathlib/././Mathlib/Control/Traversable/Basic.lean:139:8: `ApplicativeTransformation.preserves_map'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +⚠ [618/2462] Replayed Mathlib.Algebra.GroupWithZero.Defs +warning: ././.lake/packages/mathlib/././Mathlib/Algebra/GroupWithZero/Defs.lean:110:8: `mul_left_inj'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Algebra/GroupWithZero/Defs.lean:113:8: `mul_right_inj'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +⚠ [624/2462] Replayed Mathlib.Algebra.Group.Invertible.Defs +warning: ././.lake/packages/mathlib/././Mathlib/Algebra/Group/Invertible/Defs.lean:97:8: `invOf_mul_self'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Algebra/Group/Invertible/Defs.lean:103:8: `mul_invOf_self'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Algebra/Group/Invertible/Defs.lean:109:8: `invOf_mul_cancel_left'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Algebra/Group/Invertible/Defs.lean:120:8: `mul_invOf_cancel_left'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Algebra/Group/Invertible/Defs.lean:131:8: `invOf_mul_cancel_right'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Algebra/Group/Invertible/Defs.lean:142:8: `mul_invOf_cancel_right'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Algebra/Group/Invertible/Defs.lean:198:8: `invOf_one'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +⚠ [1184/2462] Replayed Mathlib.Control.Traversable.Lemmas +warning: ././.lake/packages/mathlib/././Mathlib/Control/Traversable/Lemmas.lean:87:8: `Traversable.naturality'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Control/Traversable/Lemmas.lean:102:8: `Traversable.traverse_eq_map_id'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Control/Traversable/Lemmas.lean:108:8: `Traversable.traverse_map'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Control/Traversable/Lemmas.lean:113:8: `Traversable.map_traverse'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +⚠ [2407/2462] Replayed Mathlib.Data.List.EditDistance.Defs +warning: ././.lake/packages/mathlib/././Mathlib/Data/List/EditDistance/Defs.lean:214:8: `suffixLevenshtein_nil'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +⚠ [2447/2462] Replayed SSA.Experimental.Bits.Fast.FiniteStateMachine +warning: ././././SSA/Experimental/Bits/Fast/FiniteStateMachine.lean:107:8: declaration uses 'sorry' +warning: ././././SSA/Experimental/Bits/Fast/FiniteStateMachine.lean:825:8: declaration uses 'sorry' +⚠ [2451/2462] Replayed SSA.Experimental.Bits.Fast.Tactic +warning: ././././SSA/Experimental/Bits/Fast/Tactic.lean:340:4: declaration uses 'sorry' +⚠ [2452/2462] Replayed SSA.Experimental.Bits.AutoStructs.ForLean +warning: ././././SSA/Experimental/Bits/AutoStructs/ForLean.lean:24:8: declaration uses 'sorry' +warning: ././././SSA/Experimental/Bits/AutoStructs/ForLean.lean:27:8: declaration uses 'sorry' +warning: ././././SSA/Experimental/Bits/AutoStructs/ForLean.lean:29:8: declaration uses 'sorry' +warning: ././././SSA/Experimental/Bits/AutoStructs/ForLean.lean:31:8: declaration uses 'sorry' +warning: ././././SSA/Experimental/Bits/AutoStructs/ForLean.lean:34:8: declaration uses 'sorry' +warning: ././././SSA/Experimental/Bits/AutoStructs/ForLean.lean:36:8: declaration uses 'sorry' +warning: ././././SSA/Experimental/Bits/AutoStructs/ForLean.lean:38:8: declaration uses 'sorry' +warning: ././././SSA/Experimental/Bits/AutoStructs/ForLean.lean:41:8: declaration uses 'sorry' +warning: ././././SSA/Experimental/Bits/AutoStructs/ForLean.lean:52:8: declaration uses 'sorry' +warning: ././././SSA/Experimental/Bits/AutoStructs/ForLean.lean:56:8: declaration uses 'sorry' +⚠ [2457/2462] Replayed SSA.Experimental.Bits.AutoStructs.Constructions +warning: ././././SSA/Experimental/Bits/AutoStructs/Constructions.lean:55:6: declaration uses 'sorry' +warning: ././././SSA/Experimental/Bits/AutoStructs/Constructions.lean:128:6: declaration uses 'sorry' +warning: ././././SSA/Experimental/Bits/AutoStructs/Constructions.lean:163:6: declaration uses 'sorry' +warning: ././././SSA/Experimental/Bits/AutoStructs/Constructions.lean:197:6: declaration uses 'sorry' +⚠ [2458/2462] Replayed SSA.Experimental.Bits.AutoStructs.FiniteStateMachine +warning: ././././SSA/Experimental/Bits/AutoStructs/FiniteStateMachine.lean:111:8: declaration uses 'sorry' +✖ [2462/2462] Building SSA.Projects.InstCombine.tests.LLVM.gnot +trace: .> LEAN_PATH=././.lake/packages/batteries/.lake/build/lib:././.lake/packages/Qq/.lake/build/lib:././.lake/packages/aesop/.lake/build/lib:././.lake/packages/proofwidgets/.lake/build/lib:././.lake/packages/Cli/.lake/build/lib:././.lake/packages/importGraph/.lake/build/lib:././.lake/packages/LeanSearchClient/.lake/build/lib:././.lake/packages/mathlib/.lake/build/lib:././.lake/packages/MD4Lean/.lake/build/lib:././.lake/packages/UnicodeBasic/.lake/build/lib:././.lake/packages/BibtexQuery/.lake/build/lib:././.lake/packages/doc-gen4/.lake/build/lib:././.lake/packages/leanwuzla/.lake/build/lib:././.lake/build/lib LD_LIBRARY_PATH= /home/lfrenot/.elan/toolchains/leanprover--lean4---nightly-2024-10-17/bin/lean ././././SSA/Projects/InstCombine/tests/LLVM/gnot.lean -R ./././. -o ././.lake/build/lib/SSA/Projects/InstCombine/tests/LLVM/gnot.olean -i ././.lake/build/lib/SSA/Projects/InstCombine/tests/LLVM/gnot.ilean -c ././.lake/build/ir/SSA/Projects/InstCombine/tests/LLVM/gnot.c --json +info: ././././SSA/Projects/InstCombine/tests/LLVM/gnot.lean:41:17: theorem extracted_1 (x : BitVec 32) : x ^^^ 4294967295#32 ^^^ 4294967295#32 = x := sorry +warning: ././././SSA/Projects/InstCombine/tests/LLVM/gnot.lean:31:8: declaration uses 'sorry' +info: ././././SSA/Projects/InstCombine/tests/LLVM/gnot.lean:73:17: theorem extracted_1 (x x_1 : BitVec 32) : + (Option.bind (if 32#32 ≤ x then none else some ((x_1 ^^^ 4294967295#32).sshiftRight x.toNat)) fun x' => + some (x' ^^^ 4294967295#32)) ⊑ + if 32#32 ≤ x then none else some (x_1.sshiftRight x.toNat) := sorry +warning: ././././SSA/Projects/InstCombine/tests/LLVM/gnot.lean:63:8: declaration uses 'sorry' +info: ././././SSA/Projects/InstCombine/tests/LLVM/gnot.lean:106:17: theorem extracted_1 (x : BitVec 8) : + (Option.bind (if 8#8 ≤ x then none else some ((214#8).sshiftRight x.toNat)) fun x' => some (x' ^^^ 255#8)) ⊑ + if 8#8 ≤ x then none else some (41#8 >>> x.toNat) := sorry +warning: ././././SSA/Projects/InstCombine/tests/LLVM/gnot.lean:96:8: declaration uses 'sorry' +info: ././././SSA/Projects/InstCombine/tests/LLVM/gnot.lean:139:17: theorem extracted_1 (x : BitVec 8) : + (Option.bind (if 8#8 ≤ x then none else some (42#8 >>> x.toNat)) fun x' => some (x' ^^^ 255#8)) ⊑ + if 8#8 ≤ x then none else some ((213#8).sshiftRight x.toNat) := sorry +warning: ././././SSA/Projects/InstCombine/tests/LLVM/gnot.lean:129:8: declaration uses 'sorry' +info: ././././SSA/Projects/InstCombine/tests/LLVM/gnot.lean:172:17: theorem extracted_1 (x : BitVec 32) : 123#32 - x ^^^ 4294967295#32 = x + 4294967172#32 := sorry +warning: ././././SSA/Projects/InstCombine/tests/LLVM/gnot.lean:162:8: declaration uses 'sorry' +info: ././././SSA/Projects/InstCombine/tests/LLVM/gnot.lean:205:17: theorem extracted_1 (x : BitVec 32) : x + 123#32 ^^^ 4294967295#32 = 4294967172#32 - x := sorry +warning: ././././SSA/Projects/InstCombine/tests/LLVM/gnot.lean:195:8: declaration uses 'sorry' +info: ././././SSA/Projects/InstCombine/tests/LLVM/gnot.lean:241:17: theorem extracted_1 (x x_1 : BitVec 8) : (-x_1 ||| x) ^^^ 255#8 = x_1 + 255#8 &&& (x ^^^ 255#8) := sorry +warning: ././././SSA/Projects/InstCombine/tests/LLVM/gnot.lean:231:8: declaration uses 'sorry' +error: ././././SSA/Projects/InstCombine/tests/LLVM/gnot.lean:249:40: expected i or f, found: true +error: ././././SSA/Projects/InstCombine/tests/LLVM/gnot.lean:258:40: expected i or f, found: true +error: ././././SSA/Projects/InstCombine/tests/LLVM/gnot.lean:259:40: cannot convert suffix of i/f to int: false +error: ././././SSA/Projects/InstCombine/tests/LLVM/gnot.lean:265:39: could not synthesize default value for parameter 'h' using tactics +error: ././././SSA/Projects/InstCombine/tests/LLVM/gnot.lean:265:39: tactic 'rfl' failed, the left-hand side + ⟦?m.280219⟧ +is not definitionally equal to the right-hand side + Option ?m.280217 +not_select_bool_const1_before not_select_bool_const1_after : Com InstCombine.LLVM ?m.280218 EffectKind.pure ?m.280219 +⊢ ⟦?m.280219⟧ = Option ?m.280217 +error: ././././SSA/Projects/InstCombine/tests/LLVM/gnot.lean:283:40: cannot convert suffix of i/f to int: false +error: ././././SSA/Projects/InstCombine/tests/LLVM/gnot.lean:284:40: expected i or f, found: true +error: ././././SSA/Projects/InstCombine/tests/LLVM/gnot.lean:293:40: expected i or f, found: true +error: ././././SSA/Projects/InstCombine/tests/LLVM/gnot.lean:299:39: could not synthesize default value for parameter 'h' using tactics +error: ././././SSA/Projects/InstCombine/tests/LLVM/gnot.lean:299:39: tactic 'rfl' failed, the left-hand side + ⟦?m.282557⟧ +is not definitionally equal to the right-hand side + Option ?m.282555 +not_select_bool_const4_before not_select_bool_const4_after : Com InstCombine.LLVM ?m.282556 EffectKind.pure ?m.282557 +⊢ ⟦?m.282557⟧ = Option ?m.282555 +error: ././././SSA/Projects/InstCombine/tests/LLVM/gnot.lean:317:40: expected i or f, found: true +error: ././././SSA/Projects/InstCombine/tests/LLVM/gnot.lean:318:40: cannot convert suffix of i/f to int: false +error: ././././SSA/Projects/InstCombine/tests/LLVM/gnot.lean:328:40: expected i or f, found: true +error: ././././SSA/Projects/InstCombine/tests/LLVM/gnot.lean:334:39: could not synthesize default value for parameter 'h' using tactics +error: ././././SSA/Projects/InstCombine/tests/LLVM/gnot.lean:334:39: tactic 'rfl' failed, the left-hand side + ⟦?m.284949⟧ +is not definitionally equal to the right-hand side + Option ?m.284947 +not_logicalAnd_not_op1_before not_logicalAnd_not_op1_after : Com InstCombine.LLVM ?m.284948 EffectKind.pure ?m.284949 +⊢ ⟦?m.284949⟧ = Option ?m.284947 +error: ././././SSA/Projects/InstCombine/tests/LLVM/gnot.lean:352:40: expected i or f, found: true +error: ././././SSA/Projects/InstCombine/tests/LLVM/gnot.lean:362:40: expected i or f, found: true +error: ././././SSA/Projects/InstCombine/tests/LLVM/gnot.lean:363:40: cannot convert suffix of i/f to int: false +error: ././././SSA/Projects/InstCombine/tests/LLVM/gnot.lean:369:38: could not synthesize default value for parameter 'h' using tactics +error: ././././SSA/Projects/InstCombine/tests/LLVM/gnot.lean:369:38: tactic 'rfl' failed, the left-hand side + ⟦?m.287341⟧ +is not definitionally equal to the right-hand side + Option ?m.287339 +not_logicalOr_not_op1_before not_logicalOr_not_op1_after : Com InstCombine.LLVM ?m.287340 EffectKind.pure ?m.287341 +⊢ ⟦?m.287341⟧ = Option ?m.287339 +info: ././././SSA/Projects/InstCombine/tests/LLVM/gnot.lean:415:17: theorem extracted_1 (x : BitVec 64) : + x + 9223372036854775807#64 &&& 9223372036854775807#64 ^^^ 18446744073709551615#64 = + -x ||| 9223372036854775808#64 := sorry +warning: ././././SSA/Projects/InstCombine/tests/LLVM/gnot.lean:405:8: declaration uses 'sorry' +error: Lean exited with code 1 +Some required builds logged failures: +- SSA.Projects.InstCombine.tests.LLVM.gnot +error: build failed diff --git a/SSA/Projects/InstCombine/tests/logs/gorhshiftedhmasks.txt b/SSA/Projects/InstCombine/tests/logs/gorhshiftedhmasks.txt deleted file mode 100644 index 4ef49c587..000000000 --- a/SSA/Projects/InstCombine/tests/logs/gorhshiftedhmasks.txt +++ /dev/null @@ -1,103 +0,0 @@ -error: build failed -⚠ [2443/2457] Replayed SSA.Experimental.Bits.Fast.FiniteStateMachine -warning: ././././SSA/Experimental/Bits/Fast/FiniteStateMachine.lean:107:8: declaration uses 'sorry' -warning: ././././SSA/Experimental/Bits/Fast/FiniteStateMachine.lean:825:8: declaration uses 'sorry' -⚠ [2447/2457] Replayed SSA.Experimental.Bits.Fast.Tactic -warning: ././././SSA/Experimental/Bits/Fast/Tactic.lean:340:4: declaration uses 'sorry' -⚠ [2451/2457] Replayed SSA.Experimental.Bits.AutoStructs.Basic -warning: ././././SSA/Experimental/Bits/AutoStructs/Basic.lean:99:8: declaration uses 'sorry' -warning: ././././SSA/Experimental/Bits/AutoStructs/Basic.lean:102:8: declaration uses 'sorry' -warning: ././././SSA/Experimental/Bits/AutoStructs/Basic.lean:104:8: declaration uses 'sorry' -warning: ././././SSA/Experimental/Bits/AutoStructs/Basic.lean:106:8: declaration uses 'sorry' -warning: ././././SSA/Experimental/Bits/AutoStructs/Basic.lean:109:8: declaration uses 'sorry' -warning: ././././SSA/Experimental/Bits/AutoStructs/Basic.lean:111:8: declaration uses 'sorry' -warning: ././././SSA/Experimental/Bits/AutoStructs/Basic.lean:113:8: declaration uses 'sorry' -warning: ././././SSA/Experimental/Bits/AutoStructs/Basic.lean:116:8: declaration uses 'sorry' -warning: ././././SSA/Experimental/Bits/AutoStructs/Basic.lean:127:8: declaration uses 'sorry' -warning: ././././SSA/Experimental/Bits/AutoStructs/Basic.lean:164:8: declaration uses 'sorry' -warning: ././././SSA/Experimental/Bits/AutoStructs/Basic.lean:335:6: declaration uses 'sorry' -warning: ././././SSA/Experimental/Bits/AutoStructs/Basic.lean:408:6: declaration uses 'sorry' -warning: ././././SSA/Experimental/Bits/AutoStructs/Basic.lean:443:6: declaration uses 'sorry' -warning: ././././SSA/Experimental/Bits/AutoStructs/Basic.lean:477:6: declaration uses 'sorry' -⚠ [2453/2457] Replayed SSA.Experimental.Bits.AutoStructs.FiniteStateMachine -warning: ././././SSA/Experimental/Bits/AutoStructs/FiniteStateMachine.lean:24:38: structure ... :=' has been deprecated in favor of 'structure ... where'. -note: this linter can be disabled with `set_option linter.deprecated false` -warning: ././././SSA/Experimental/Bits/AutoStructs/FiniteStateMachine.lean:111:8: declaration uses 'sorry' -warning: ././././SSA/Experimental/Bits/AutoStructs/FiniteStateMachine.lean:511:59: structure ... :=' has been deprecated in favor of 'structure ... where'. -note: this linter can be disabled with `set_option linter.deprecated false` -✖ [2457/2457] Building SSA.Projects.InstCombine.tests.LLVM.gorhshiftedhmasks -trace: .> LEAN_PATH=././.lake/packages/batteries/.lake/build/lib:././.lake/packages/Qq/.lake/build/lib:././.lake/packages/aesop/.lake/build/lib:././.lake/packages/proofwidgets/.lake/build/lib:././.lake/packages/Cli/.lake/build/lib:././.lake/packages/importGraph/.lake/build/lib:././.lake/packages/LeanSearchClient/.lake/build/lib:././.lake/packages/mathlib/.lake/build/lib:././.lake/packages/MD4Lean/.lake/build/lib:././.lake/packages/UnicodeBasic/.lake/build/lib:././.lake/packages/BibtexQuery/.lake/build/lib:././.lake/packages/doc-gen4/.lake/build/lib:././.lake/packages/leanwuzla/.lake/build/lib:././.lake/build/lib LD_LIBRARY_PATH= /home/lfrenot/.elan/toolchains/leanprover--lean4---nightly-2024-10-15/bin/lean ././././SSA/Projects/InstCombine/tests/LLVM/gorhshiftedhmasks.lean -R ./././. -o ././.lake/build/lib/SSA/Projects/InstCombine/tests/LLVM/gorhshiftedhmasks.olean -i ././.lake/build/lib/SSA/Projects/InstCombine/tests/LLVM/gorhshiftedhmasks.ilean -c ././.lake/build/ir/SSA/Projects/InstCombine/tests/LLVM/gorhshiftedhmasks.c --json -info: ././././SSA/Projects/InstCombine/tests/LLVM/gorhshiftedhmasks.lean:56:17: theorem extracted_1 (x : BitVec 32) : - x <<< 3 &&& 15#32 ||| x <<< 5 &&& 60#32 = x <<< 3 &&& 8#32 ||| x <<< 5 &&& 32#32 := sorry -warning: ././././SSA/Projects/InstCombine/tests/LLVM/gorhshiftedhmasks.lean:46:8: declaration uses 'sorry' -info: ././././SSA/Projects/InstCombine/tests/LLVM/gorhshiftedhmasks.lean:101:17: theorem extracted_1 (x : BitVec 32) : - (x &&& 7#32) <<< 3 ||| x <<< 2 &&& 28#32 = x <<< 3 &&& 56#32 ||| x <<< 2 &&& 28#32 := sorry -warning: ././././SSA/Projects/InstCombine/tests/LLVM/gorhshiftedhmasks.lean:91:8: declaration uses 'sorry' -info: ././././SSA/Projects/InstCombine/tests/LLVM/gorhshiftedhmasks.lean:153:17: theorem extracted_1 (x : BitVec 32) : - ((if ((x &&& 2#32) <<< 6).sshiftRight 6 = x &&& 2#32 then none - else if (x &&& 2#32) <<< 6 >>> 6 = x &&& 2#32 then none else some ((x &&& 2#32) <<< 6)).bind - fun a => - (if ((x &&& 4#32) <<< 6).sshiftRight 6 = x &&& 4#32 then none - else if (x &&& 4#32) <<< 6 >>> 6 = x &&& 4#32 then none else some ((x &&& 4#32) <<< 6)).bind - fun x_1 => some ((x &&& 2#32) >>> 1 ||| (x &&& 4#32) >>> 1 ||| (a ||| x_1))) ⊑ - some (x >>> 1 &&& 1#32 ||| x >>> 1 &&& 2#32 ||| x <<< 6 &&& 384#32) := sorry -warning: ././././SSA/Projects/InstCombine/tests/LLVM/gorhshiftedhmasks.lean:143:8: declaration uses 'sorry' -error: ././././SSA/Projects/InstCombine/tests/LLVM/gorhshiftedhmasks.lean:206:64: (deterministic) timeout at `whnf`, maximum number of heartbeats (200000) has been reached -Use `set_option maxHeartbeats ` to set the limit. -Additional diagnostic information may be available using the `set_option diagnostics true` command. -info: ././././SSA/Projects/InstCombine/tests/LLVM/gorhshiftedhmasks.lean:271:17: theorem extracted_1 (x : BitVec 32) : - ((if ((x &&& 96#32) <<< 6).sshiftRight 6 = x &&& 96#32 then none - else if (x &&& 96#32) <<< 6 >>> 6 = x &&& 96#32 then none else some ((x &&& 96#32) <<< 6)).bind - fun a => some ((x &&& 96#32) >>> 1 ||| x >>> 1 &&& 15#32 ||| (a ||| x <<< 6 &&& 1920#32))) ⊑ - some (x >>> 1 &&& 48#32 ||| x >>> 1 &&& 15#32 ||| x <<< 6 &&& 8064#32) := sorry -warning: ././././SSA/Projects/InstCombine/tests/LLVM/gorhshiftedhmasks.lean:261:8: declaration uses 'sorry' -info: ././././SSA/Projects/InstCombine/tests/LLVM/gorhshiftedhmasks.lean:308:17: theorem extracted_1 (x : BitVec 32) : - some (x &&& 255#32 ||| (x &&& 255#32) <<< 8) ⊑ - (if ((x &&& 255#32) <<< 8).sshiftRight 8 = x &&& 255#32 then none - else if (x &&& 255#32) <<< 8 >>> 8 = x &&& 255#32 then none else some ((x &&& 255#32) <<< 8)).bind - fun y' => some (x &&& 255#32 ||| y') := sorry -warning: ././././SSA/Projects/InstCombine/tests/LLVM/gorhshiftedhmasks.lean:298:8: declaration uses 'sorry' -info: ././././SSA/Projects/InstCombine/tests/LLVM/gorhshiftedhmasks.lean:345:17: theorem extracted_1 (x : BitVec 32) : - some (x &&& 255#32 ||| (x &&& 255#32) <<< 7) ⊑ - (if ((x &&& 255#32) <<< 7).sshiftRight 7 = x &&& 255#32 then none - else if (x &&& 255#32) <<< 7 >>> 7 = x &&& 255#32 then none else some ((x &&& 255#32) <<< 7)).bind - fun y' => some (x &&& 255#32 ||| y') := sorry -warning: ././././SSA/Projects/InstCombine/tests/LLVM/gorhshiftedhmasks.lean:335:8: declaration uses 'sorry' -info: ././././SSA/Projects/InstCombine/tests/LLVM/gorhshiftedhmasks.lean:382:17: theorem extracted_1 (x : BitVec 37) : - some (x &&& 255#37 ||| (x &&& 255#37) <<< 8) ⊑ - (if ((x &&& 255#37) <<< 8).sshiftRight 8 = x &&& 255#37 then none - else if (x &&& 255#37) <<< 8 >>> 8 = x &&& 255#37 then none else some ((x &&& 255#37) <<< 8)).bind - fun y' => some (x &&& 255#37 ||| y') := sorry -warning: ././././SSA/Projects/InstCombine/tests/LLVM/gorhshiftedhmasks.lean:372:8: declaration uses 'sorry' -info: ././././SSA/Projects/InstCombine/tests/LLVM/gorhshiftedhmasks.lean:423:17: theorem extracted_1 (x : BitVec 32) : - some ((x &&& 255#32) * 65537#32 ||| (x &&& 255#32) <<< 8) ⊑ - (if - signExtend 64 (x &&& 255#32) * 65537#64 < signExtend 64 (twoPow 32 31) ∨ - twoPow 64 31 ≤ signExtend 64 (x &&& 255#32) * 65537#64 then - none - else - if twoPow 64 31 <<< 1 ≤ (setWidth 64 x &&& 255#64) * 65537#64 then none - else some ((x &&& 255#32) * 65537#32)).bind - fun a => - (if ((x &&& 255#32) <<< 8).sshiftRight 8 = x &&& 255#32 then none - else if (x &&& 255#32) <<< 8 >>> 8 = x &&& 255#32 then none else some ((x &&& 255#32) <<< 8)).bind - fun y' => some (a ||| y') := sorry -warning: ././././SSA/Projects/InstCombine/tests/LLVM/gorhshiftedhmasks.lean:413:8: declaration uses 'sorry' -info: ././././SSA/Projects/InstCombine/tests/LLVM/gorhshiftedhmasks.lean:464:17: theorem extracted_1 (x : BitVec 32) : - some ((x &&& 255#32) * 65535#32 ||| (x &&& 255#32) <<< 8) ⊑ - (if - signExtend 64 (x &&& 255#32) * 65535#64 < signExtend 64 (twoPow 32 31) ∨ - twoPow 64 31 ≤ signExtend 64 (x &&& 255#32) * 65535#64 then - none - else - if twoPow 64 31 <<< 1 ≤ (setWidth 64 x &&& 255#64) * 65535#64 then none - else some ((x &&& 255#32) * 65535#32)).bind - fun a => - (if ((x &&& 255#32) <<< 8).sshiftRight 8 = x &&& 255#32 then none - else if (x &&& 255#32) <<< 8 >>> 8 = x &&& 255#32 then none else some ((x &&& 255#32) <<< 8)).bind - fun y' => some (a ||| y') := sorry -warning: ././././SSA/Projects/InstCombine/tests/LLVM/gorhshiftedhmasks.lean:454:8: declaration uses 'sorry' -error: Lean exited with code 1 -Some required builds logged failures: -- SSA.Projects.InstCombine.tests.LLVM.gorhshiftedhmasks -error: build failed diff --git a/SSA/Projects/InstCombine/tests/logs/gorhshiftedhmasks_proof.txt b/SSA/Projects/InstCombine/tests/logs/gorhshiftedhmasks_proof.txt new file mode 100644 index 000000000..de76e3330 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/gorhshiftedhmasks_proof.txt @@ -0,0 +1,396 @@ +⚠ [49/2462] Replayed Mathlib.Logic.Basic +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Basic.lean:155:8: `dec_em'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Basic.lean:159:8: `em'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Basic.lean:304:8: `or_congr_left'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Basic.lean:307:8: `or_congr_right'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Basic.lean:320:8: `imp_or'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Basic.lean:359:8: `xor_iff_not_iff'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Basic.lean:418:8: `eqRec_heq'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Basic.lean:511:8: `forall_true_iff'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Basic.lean:532:8: `exists_apply_eq_apply'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Basic.lean:539:6: `exists_apply_eq_apply2'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Basic.lean:548:6: `exists_apply_eq_apply3'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Basic.lean:575:8: `forall_apply_eq_imp_iff'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Basic.lean:578:8: `forall_eq_apply_imp_iff'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Basic.lean:638:8: `forall_prop_congr'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Basic.lean:711:6: `Classical.choose_eq'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Basic.lean:847:8: `dite_eq_iff'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Basic.lean:851:8: `ite_eq_iff'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +⚠ [66/2462] Replayed Mathlib.Algebra.NeZero +warning: ././.lake/packages/mathlib/././Mathlib/Algebra/NeZero.lean:44:6: `zero_ne_one'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Algebra/NeZero.lean:46:6: `one_ne_zero'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Algebra/NeZero.lean:48:6: `two_ne_zero'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Algebra/NeZero.lean:50:6: `three_ne_zero'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Algebra/NeZero.lean:52:6: `four_ne_zero'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +⚠ [69/2462] Replayed Mathlib.Logic.ExistsUnique +warning: ././.lake/packages/mathlib/././Mathlib/Logic/ExistsUnique.lean:109:16: `exists_unique_eq'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +⚠ [74/2462] Replayed Mathlib.Logic.Function.Basic +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Function/Basic.lean:78:8: `Function.Injective.eq_iff'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Function/Basic.lean:87:8: `Function.Injective.ne_iff'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Function/Basic.lean:117:8: `Function.Injective.of_comp_iff'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Function/Basic.lean:163:8: `Function.Surjective.of_comp_iff'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Function/Basic.lean:237:8: `Function.Bijective.of_comp_iff'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Function/Basic.lean:541:8: `Function.update_comp_eq_of_forall_ne'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Function/Basic.lean:552:8: `Function.update_comp_eq_of_injective'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Function/Basic.lean:649:8: `Function.extend_apply'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Function/Basic.lean:681:8: `Function.Injective.surjective_comp_right'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +⚠ [94/2462] Replayed Mathlib.Control.Combinators +warning: ././.lake/packages/mathlib/././Mathlib/Control/Combinators.lean:35:4: `Monad.mapM'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Control/Combinators.lean:57:4: `Monad.sequence'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +⚠ [96/2462] Replayed Mathlib.Logic.IsEmpty +warning: ././.lake/packages/mathlib/././Mathlib/Logic/IsEmpty.lean:36:9: `Fin.isEmpty'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +⚠ [229/2462] Replayed Mathlib.Data.Prod.PProd +warning: ././.lake/packages/mathlib/././Mathlib/Data/Prod/PProd.lean:35:8: `PProd.forall'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Data/Prod/PProd.lean:38:8: `PProd.exists'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +⚠ [230/2462] Replayed Mathlib.Data.Bool.Basic +warning: ././.lake/packages/mathlib/././Mathlib/Data/Bool/Basic.lean:156:8: `Bool.eq_true_of_not_eq_false'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Data/Bool/Basic.lean:159:8: `Bool.eq_false_of_not_eq_true'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +⚠ [232/2462] Replayed Mathlib.Logic.Function.Iterate +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Function/Iterate.lean:160:8: `Function.iterate_succ'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Function/Iterate.lean:163:8: `Function.iterate_succ_apply'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +⚠ [234/2462] Replayed Mathlib.Data.Prod.Basic +warning: ././.lake/packages/mathlib/././Mathlib/Data/Prod/Basic.lean:31:8: `Prod.forall'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Data/Prod/Basic.lean:34:8: `Prod.exists'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Data/Prod/Basic.lean:51:8: `Prod.map_apply'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Data/Prod/Basic.lean:54:8: `Prod.map_fst'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Data/Prod/Basic.lean:57:8: `Prod.map_snd'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +⚠ [235/2462] Replayed Mathlib.Data.Sigma.Basic +warning: ././.lake/packages/mathlib/././Mathlib/Data/Sigma/Basic.lean:90:6: `Sigma.exists'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Data/Sigma/Basic.lean:93:6: `Sigma.forall'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +⚠ [239/2462] Replayed Mathlib.Data.FunLike.Basic +warning: ././.lake/packages/mathlib/././Mathlib/Data/FunLike/Basic.lean:187:8: `DFunLike.ext'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +⚠ [244/2462] Replayed Mathlib.Logic.Relation +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Relation.lean:351:8: `Relation.TransGen.head'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Relation.lean:354:8: `Relation.TransGen.tail'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Relation.lean:444:8: `Relation.TransGen.lift'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Relation.lean:453:6: `Relation.TransGen.closed'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Relation.lean:523:8: `Relation.ReflTransGen.lift'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +⚠ [245/2462] Replayed Mathlib.Logic.Unique +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Unique.lean:131:18: `Unique.subsingleton_unique'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Unique.lean:259:9: `Unique.subtypeEq'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +⚠ [252/2462] Replayed Mathlib.Data.Quot +warning: ././.lake/packages/mathlib/././Mathlib/Data/Quot.lean:558:18: `Quotient.liftOn'_mk''` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Data/Quot.lean:562:14: `Quotient.surjective_liftOn'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Data/Quot.lean:573:18: `Quotient.liftOn₂'_mk''` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Data/Quot.lean:639:8: `Quotient.hrecOn'_mk''` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Data/Quot.lean:652:8: `Quotient.hrecOn₂'_mk''` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Data/Quot.lean:664:8: `Quotient.map'_mk''` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Data/Quot.lean:674:8: `Quotient.map₂'_mk''` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Data/Quot.lean:679:8: `Quotient.exact'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Data/Quot.lean:683:8: `Quotient.sound'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Data/Quot.lean:687:18: `Quotient.eq'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Data/Quot.lean:692:18: `Quotient.eq''` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Data/Quot.lean:701:8: `Quotient.out_eq'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Data/Quot.lean:704:8: `Quotient.mk_out'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +⚠ [256/2462] Replayed Mathlib.Tactic.Lift +warning: ././.lake/packages/mathlib/././Mathlib/Tactic/Lift.lean:49:9: `PiSubtype.canLift'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +⚠ [409/2462] Replayed Mathlib.Algebra.Group.Defs +warning: ././.lake/packages/mathlib/././Mathlib/Algebra/Group/Defs.lean:735:33: `pow_succ'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Algebra/Group/Defs.lean:740:6: `pow_mul_comm'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Algebra/Group/Defs.lean:749:6: `pow_three'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Algebra/Group/Defs.lean:772:6: `pow_mul'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +⚠ [443/2462] Replayed Mathlib.Data.List.Defs +warning: ././.lake/packages/mathlib/././Mathlib/Data/List/Defs.lean:241:9: `List.decidableChain'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +⚠ [474/2462] Replayed Mathlib.Control.Applicative +warning: ././.lake/packages/mathlib/././Mathlib/Control/Applicative.lean:34:8: `Applicative.pure_seq_eq_map'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +⚠ [475/2462] Replayed Mathlib.Control.Traversable.Basic +warning: ././.lake/packages/mathlib/././Mathlib/Control/Traversable/Basic.lean:139:8: `ApplicativeTransformation.preserves_map'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +⚠ [618/2462] Replayed Mathlib.Algebra.GroupWithZero.Defs +warning: ././.lake/packages/mathlib/././Mathlib/Algebra/GroupWithZero/Defs.lean:110:8: `mul_left_inj'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Algebra/GroupWithZero/Defs.lean:113:8: `mul_right_inj'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +⚠ [624/2462] Replayed Mathlib.Algebra.Group.Invertible.Defs +warning: ././.lake/packages/mathlib/././Mathlib/Algebra/Group/Invertible/Defs.lean:97:8: `invOf_mul_self'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Algebra/Group/Invertible/Defs.lean:103:8: `mul_invOf_self'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Algebra/Group/Invertible/Defs.lean:109:8: `invOf_mul_cancel_left'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Algebra/Group/Invertible/Defs.lean:120:8: `mul_invOf_cancel_left'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Algebra/Group/Invertible/Defs.lean:131:8: `invOf_mul_cancel_right'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Algebra/Group/Invertible/Defs.lean:142:8: `mul_invOf_cancel_right'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Algebra/Group/Invertible/Defs.lean:198:8: `invOf_one'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +⚠ [1184/2462] Replayed Mathlib.Control.Traversable.Lemmas +warning: ././.lake/packages/mathlib/././Mathlib/Control/Traversable/Lemmas.lean:87:8: `Traversable.naturality'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Control/Traversable/Lemmas.lean:102:8: `Traversable.traverse_eq_map_id'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Control/Traversable/Lemmas.lean:108:8: `Traversable.traverse_map'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Control/Traversable/Lemmas.lean:113:8: `Traversable.map_traverse'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +⚠ [2407/2462] Replayed Mathlib.Data.List.EditDistance.Defs +warning: ././.lake/packages/mathlib/././Mathlib/Data/List/EditDistance/Defs.lean:214:8: `suffixLevenshtein_nil'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +⚠ [2447/2462] Replayed SSA.Experimental.Bits.Fast.FiniteStateMachine +warning: ././././SSA/Experimental/Bits/Fast/FiniteStateMachine.lean:107:8: declaration uses 'sorry' +warning: ././././SSA/Experimental/Bits/Fast/FiniteStateMachine.lean:825:8: declaration uses 'sorry' +⚠ [2451/2462] Replayed SSA.Experimental.Bits.Fast.Tactic +warning: ././././SSA/Experimental/Bits/Fast/Tactic.lean:340:4: declaration uses 'sorry' +⚠ [2452/2462] Replayed SSA.Experimental.Bits.AutoStructs.ForLean +warning: ././././SSA/Experimental/Bits/AutoStructs/ForLean.lean:24:8: declaration uses 'sorry' +warning: ././././SSA/Experimental/Bits/AutoStructs/ForLean.lean:27:8: declaration uses 'sorry' +warning: ././././SSA/Experimental/Bits/AutoStructs/ForLean.lean:29:8: declaration uses 'sorry' +warning: ././././SSA/Experimental/Bits/AutoStructs/ForLean.lean:31:8: declaration uses 'sorry' +warning: ././././SSA/Experimental/Bits/AutoStructs/ForLean.lean:34:8: declaration uses 'sorry' +warning: ././././SSA/Experimental/Bits/AutoStructs/ForLean.lean:36:8: declaration uses 'sorry' +warning: ././././SSA/Experimental/Bits/AutoStructs/ForLean.lean:38:8: declaration uses 'sorry' +warning: ././././SSA/Experimental/Bits/AutoStructs/ForLean.lean:41:8: declaration uses 'sorry' +warning: ././././SSA/Experimental/Bits/AutoStructs/ForLean.lean:52:8: declaration uses 'sorry' +warning: ././././SSA/Experimental/Bits/AutoStructs/ForLean.lean:56:8: declaration uses 'sorry' +⚠ [2457/2462] Replayed SSA.Experimental.Bits.AutoStructs.Constructions +warning: ././././SSA/Experimental/Bits/AutoStructs/Constructions.lean:55:6: declaration uses 'sorry' +warning: ././././SSA/Experimental/Bits/AutoStructs/Constructions.lean:128:6: declaration uses 'sorry' +warning: ././././SSA/Experimental/Bits/AutoStructs/Constructions.lean:163:6: declaration uses 'sorry' +warning: ././././SSA/Experimental/Bits/AutoStructs/Constructions.lean:197:6: declaration uses 'sorry' +⚠ [2458/2462] Replayed SSA.Experimental.Bits.AutoStructs.FiniteStateMachine +warning: ././././SSA/Experimental/Bits/AutoStructs/FiniteStateMachine.lean:111:8: declaration uses 'sorry' +✖ [2462/2462] Building SSA.Projects.InstCombine.tests.LLVM.gorhshiftedhmasks +trace: .> LEAN_PATH=././.lake/packages/batteries/.lake/build/lib:././.lake/packages/Qq/.lake/build/lib:././.lake/packages/aesop/.lake/build/lib:././.lake/packages/proofwidgets/.lake/build/lib:././.lake/packages/Cli/.lake/build/lib:././.lake/packages/importGraph/.lake/build/lib:././.lake/packages/LeanSearchClient/.lake/build/lib:././.lake/packages/mathlib/.lake/build/lib:././.lake/packages/MD4Lean/.lake/build/lib:././.lake/packages/UnicodeBasic/.lake/build/lib:././.lake/packages/BibtexQuery/.lake/build/lib:././.lake/packages/doc-gen4/.lake/build/lib:././.lake/packages/leanwuzla/.lake/build/lib:././.lake/build/lib LD_LIBRARY_PATH= /home/lfrenot/.elan/toolchains/leanprover--lean4---nightly-2024-10-17/bin/lean ././././SSA/Projects/InstCombine/tests/LLVM/gorhshiftedhmasks.lean -R ./././. -o ././.lake/build/lib/SSA/Projects/InstCombine/tests/LLVM/gorhshiftedhmasks.olean -i ././.lake/build/lib/SSA/Projects/InstCombine/tests/LLVM/gorhshiftedhmasks.ilean -c ././.lake/build/ir/SSA/Projects/InstCombine/tests/LLVM/gorhshiftedhmasks.c --json +info: ././././SSA/Projects/InstCombine/tests/LLVM/gorhshiftedhmasks.lean:56:17: theorem extracted_1 (x : BitVec 32) : + x <<< 3 &&& 15#32 ||| x <<< 5 &&& 60#32 = x <<< 3 &&& 8#32 ||| x <<< 5 &&& 32#32 := sorry +warning: ././././SSA/Projects/InstCombine/tests/LLVM/gorhshiftedhmasks.lean:46:8: declaration uses 'sorry' +info: ././././SSA/Projects/InstCombine/tests/LLVM/gorhshiftedhmasks.lean:101:17: theorem extracted_1 (x : BitVec 32) : + (x &&& 7#32) <<< 3 ||| x <<< 2 &&& 28#32 = x <<< 3 &&& 56#32 ||| x <<< 2 &&& 28#32 := sorry +warning: ././././SSA/Projects/InstCombine/tests/LLVM/gorhshiftedhmasks.lean:91:8: declaration uses 'sorry' +info: ././././SSA/Projects/InstCombine/tests/LLVM/gorhshiftedhmasks.lean:153:17: theorem extracted_1 (x : BitVec 32) : + ((if ((x &&& 2#32) <<< 6).sshiftRight 6 = x &&& 2#32 then none + else if (x &&& 2#32) <<< 6 >>> 6 = x &&& 2#32 then none else some ((x &&& 2#32) <<< 6)).bind + fun a => + (if ((x &&& 4#32) <<< 6).sshiftRight 6 = x &&& 4#32 then none + else if (x &&& 4#32) <<< 6 >>> 6 = x &&& 4#32 then none else some ((x &&& 4#32) <<< 6)).bind + fun x_1 => some ((x &&& 2#32) >>> 1 ||| (x &&& 4#32) >>> 1 ||| (a ||| x_1))) ⊑ + some (x >>> 1 &&& 1#32 ||| x >>> 1 &&& 2#32 ||| x <<< 6 &&& 384#32) := sorry +warning: ././././SSA/Projects/InstCombine/tests/LLVM/gorhshiftedhmasks.lean:143:8: declaration uses 'sorry' +error: ././././SSA/Projects/InstCombine/tests/LLVM/gorhshiftedhmasks.lean:206:64: (deterministic) timeout at `whnf`, maximum number of heartbeats (200000) has been reached +Use `set_option maxHeartbeats ` to set the limit. +Additional diagnostic information may be available using the `set_option diagnostics true` command. +info: ././././SSA/Projects/InstCombine/tests/LLVM/gorhshiftedhmasks.lean:271:17: theorem extracted_1 (x : BitVec 32) : + ((if ((x &&& 96#32) <<< 6).sshiftRight 6 = x &&& 96#32 then none + else if (x &&& 96#32) <<< 6 >>> 6 = x &&& 96#32 then none else some ((x &&& 96#32) <<< 6)).bind + fun a => some ((x &&& 96#32) >>> 1 ||| x >>> 1 &&& 15#32 ||| (a ||| x <<< 6 &&& 1920#32))) ⊑ + some (x >>> 1 &&& 48#32 ||| x >>> 1 &&& 15#32 ||| x <<< 6 &&& 8064#32) := sorry +warning: ././././SSA/Projects/InstCombine/tests/LLVM/gorhshiftedhmasks.lean:261:8: declaration uses 'sorry' +info: ././././SSA/Projects/InstCombine/tests/LLVM/gorhshiftedhmasks.lean:308:17: theorem extracted_1 (x : BitVec 32) : + some (x &&& 255#32 ||| (x &&& 255#32) <<< 8) ⊑ + (if ((x &&& 255#32) <<< 8).sshiftRight 8 = x &&& 255#32 then none + else if (x &&& 255#32) <<< 8 >>> 8 = x &&& 255#32 then none else some ((x &&& 255#32) <<< 8)).bind + fun y' => some (x &&& 255#32 ||| y') := sorry +warning: ././././SSA/Projects/InstCombine/tests/LLVM/gorhshiftedhmasks.lean:298:8: declaration uses 'sorry' +info: ././././SSA/Projects/InstCombine/tests/LLVM/gorhshiftedhmasks.lean:345:17: theorem extracted_1 (x : BitVec 32) : + some (x &&& 255#32 ||| (x &&& 255#32) <<< 7) ⊑ + (if ((x &&& 255#32) <<< 7).sshiftRight 7 = x &&& 255#32 then none + else if (x &&& 255#32) <<< 7 >>> 7 = x &&& 255#32 then none else some ((x &&& 255#32) <<< 7)).bind + fun y' => some (x &&& 255#32 ||| y') := sorry +warning: ././././SSA/Projects/InstCombine/tests/LLVM/gorhshiftedhmasks.lean:335:8: declaration uses 'sorry' +info: ././././SSA/Projects/InstCombine/tests/LLVM/gorhshiftedhmasks.lean:382:17: theorem extracted_1 (x : BitVec 37) : + some (x &&& 255#37 ||| (x &&& 255#37) <<< 8) ⊑ + (if ((x &&& 255#37) <<< 8).sshiftRight 8 = x &&& 255#37 then none + else if (x &&& 255#37) <<< 8 >>> 8 = x &&& 255#37 then none else some ((x &&& 255#37) <<< 8)).bind + fun y' => some (x &&& 255#37 ||| y') := sorry +warning: ././././SSA/Projects/InstCombine/tests/LLVM/gorhshiftedhmasks.lean:372:8: declaration uses 'sorry' +info: ././././SSA/Projects/InstCombine/tests/LLVM/gorhshiftedhmasks.lean:423:17: theorem extracted_1 (x : BitVec 32) : + some ((x &&& 255#32) * 65537#32 ||| (x &&& 255#32) <<< 8) ⊑ + (if + signExtend 64 (x &&& 255#32) * 65537#64 < signExtend 64 (twoPow 32 31) ∨ + twoPow 64 31 ≤ signExtend 64 (x &&& 255#32) * 65537#64 then + none + else + if twoPow 64 31 <<< 1 ≤ (setWidth 64 x &&& 255#64) * 65537#64 then none + else some ((x &&& 255#32) * 65537#32)).bind + fun a => + (if ((x &&& 255#32) <<< 8).sshiftRight 8 = x &&& 255#32 then none + else if (x &&& 255#32) <<< 8 >>> 8 = x &&& 255#32 then none else some ((x &&& 255#32) <<< 8)).bind + fun y' => some (a ||| y') := sorry +warning: ././././SSA/Projects/InstCombine/tests/LLVM/gorhshiftedhmasks.lean:413:8: declaration uses 'sorry' +info: ././././SSA/Projects/InstCombine/tests/LLVM/gorhshiftedhmasks.lean:464:17: theorem extracted_1 (x : BitVec 32) : + some ((x &&& 255#32) * 65535#32 ||| (x &&& 255#32) <<< 8) ⊑ + (if + signExtend 64 (x &&& 255#32) * 65535#64 < signExtend 64 (twoPow 32 31) ∨ + twoPow 64 31 ≤ signExtend 64 (x &&& 255#32) * 65535#64 then + none + else + if twoPow 64 31 <<< 1 ≤ (setWidth 64 x &&& 255#64) * 65535#64 then none + else some ((x &&& 255#32) * 65535#32)).bind + fun a => + (if ((x &&& 255#32) <<< 8).sshiftRight 8 = x &&& 255#32 then none + else if (x &&& 255#32) <<< 8 >>> 8 = x &&& 255#32 then none else some ((x &&& 255#32) <<< 8)).bind + fun y' => some (a ||| y') := sorry +warning: ././././SSA/Projects/InstCombine/tests/LLVM/gorhshiftedhmasks.lean:454:8: declaration uses 'sorry' +error: Lean exited with code 1 +Some required builds logged failures: +- SSA.Projects.InstCombine.tests.LLVM.gorhshiftedhmasks +error: build failed diff --git a/SSA/Projects/InstCombine/tests/logs/gorhxorhxor.txt b/SSA/Projects/InstCombine/tests/logs/gorhxorhxor.txt deleted file mode 100644 index 3745d2c35..000000000 --- a/SSA/Projects/InstCombine/tests/logs/gorhxorhxor.txt +++ /dev/null @@ -1,44 +0,0 @@ -error: build failed -⚠ [2443/2457] Replayed SSA.Experimental.Bits.Fast.FiniteStateMachine -warning: ././././SSA/Experimental/Bits/Fast/FiniteStateMachine.lean:107:8: declaration uses 'sorry' -warning: ././././SSA/Experimental/Bits/Fast/FiniteStateMachine.lean:825:8: declaration uses 'sorry' -⚠ [2447/2457] Replayed SSA.Experimental.Bits.Fast.Tactic -warning: ././././SSA/Experimental/Bits/Fast/Tactic.lean:340:4: declaration uses 'sorry' -⚠ [2451/2457] Replayed SSA.Experimental.Bits.AutoStructs.Basic -warning: ././././SSA/Experimental/Bits/AutoStructs/Basic.lean:99:8: declaration uses 'sorry' -warning: ././././SSA/Experimental/Bits/AutoStructs/Basic.lean:102:8: declaration uses 'sorry' -warning: ././././SSA/Experimental/Bits/AutoStructs/Basic.lean:104:8: declaration uses 'sorry' -warning: ././././SSA/Experimental/Bits/AutoStructs/Basic.lean:106:8: declaration uses 'sorry' -warning: ././././SSA/Experimental/Bits/AutoStructs/Basic.lean:109:8: declaration uses 'sorry' -warning: ././././SSA/Experimental/Bits/AutoStructs/Basic.lean:111:8: declaration uses 'sorry' -warning: ././././SSA/Experimental/Bits/AutoStructs/Basic.lean:113:8: declaration uses 'sorry' -warning: ././././SSA/Experimental/Bits/AutoStructs/Basic.lean:116:8: declaration uses 'sorry' -warning: ././././SSA/Experimental/Bits/AutoStructs/Basic.lean:127:8: declaration uses 'sorry' -warning: ././././SSA/Experimental/Bits/AutoStructs/Basic.lean:164:8: declaration uses 'sorry' -warning: ././././SSA/Experimental/Bits/AutoStructs/Basic.lean:335:6: declaration uses 'sorry' -warning: ././././SSA/Experimental/Bits/AutoStructs/Basic.lean:408:6: declaration uses 'sorry' -warning: ././././SSA/Experimental/Bits/AutoStructs/Basic.lean:443:6: declaration uses 'sorry' -warning: ././././SSA/Experimental/Bits/AutoStructs/Basic.lean:477:6: declaration uses 'sorry' -⚠ [2453/2457] Replayed SSA.Experimental.Bits.AutoStructs.FiniteStateMachine -warning: ././././SSA/Experimental/Bits/AutoStructs/FiniteStateMachine.lean:24:38: structure ... :=' has been deprecated in favor of 'structure ... where'. -note: this linter can be disabled with `set_option linter.deprecated false` -warning: ././././SSA/Experimental/Bits/AutoStructs/FiniteStateMachine.lean:111:8: declaration uses 'sorry' -warning: ././././SSA/Experimental/Bits/AutoStructs/FiniteStateMachine.lean:511:59: structure ... :=' has been deprecated in favor of 'structure ... where'. -note: this linter can be disabled with `set_option linter.deprecated false` -✖ [2457/2457] Building SSA.Projects.InstCombine.tests.LLVM.gorhxorhxor -trace: .> LEAN_PATH=././.lake/packages/batteries/.lake/build/lib:././.lake/packages/Qq/.lake/build/lib:././.lake/packages/aesop/.lake/build/lib:././.lake/packages/proofwidgets/.lake/build/lib:././.lake/packages/Cli/.lake/build/lib:././.lake/packages/importGraph/.lake/build/lib:././.lake/packages/LeanSearchClient/.lake/build/lib:././.lake/packages/mathlib/.lake/build/lib:././.lake/packages/MD4Lean/.lake/build/lib:././.lake/packages/UnicodeBasic/.lake/build/lib:././.lake/packages/BibtexQuery/.lake/build/lib:././.lake/packages/doc-gen4/.lake/build/lib:././.lake/packages/leanwuzla/.lake/build/lib:././.lake/build/lib LD_LIBRARY_PATH= /home/lfrenot/.elan/toolchains/leanprover--lean4---nightly-2024-10-15/bin/lean ././././SSA/Projects/InstCombine/tests/LLVM/gorhxorhxor.lean -R ./././. -o ././.lake/build/lib/SSA/Projects/InstCombine/tests/LLVM/gorhxorhxor.olean -i ././.lake/build/lib/SSA/Projects/InstCombine/tests/LLVM/gorhxorhxor.ilean -c ././.lake/build/ir/SSA/Projects/InstCombine/tests/LLVM/gorhxorhxor.c --json -info: ././././SSA/Projects/InstCombine/tests/LLVM/gorhxorhxor.lean:43:17: theorem extracted_1 (x x_1 : BitVec 1) : x_1 &&& x ^^^ x_1 ||| x_1 &&& x ^^^ x = x_1 ^^^ x := sorry -warning: ././././SSA/Projects/InstCombine/tests/LLVM/gorhxorhxor.lean:33:8: declaration uses 'sorry' -info: ././././SSA/Projects/InstCombine/tests/LLVM/gorhxorhxor.lean:75:17: theorem extracted_1 (x x_1 : BitVec 8) : x_1 &&& x ^^^ x ||| x_1 ^^^ x_1 &&& x = x_1 ^^^ x := sorry -warning: ././././SSA/Projects/InstCombine/tests/LLVM/gorhxorhxor.lean:65:8: declaration uses 'sorry' -info: ././././SSA/Projects/InstCombine/tests/LLVM/gorhxorhxor.lean:107:17: theorem extracted_1 (x x_1 : BitVec 16) : x_1 ^^^ x_1 &&& x ||| x ^^^ x_1 &&& x = x_1 ^^^ x := sorry -warning: ././././SSA/Projects/InstCombine/tests/LLVM/gorhxorhxor.lean:97:8: declaration uses 'sorry' -info: ././././SSA/Projects/InstCombine/tests/LLVM/gorhxorhxor.lean:139:17: theorem extracted_1 (x x_1 : BitVec 64) : x_1 &&& x ^^^ x_1 ||| x_1 &&& x ^^^ x = x_1 ^^^ x := sorry -warning: ././././SSA/Projects/InstCombine/tests/LLVM/gorhxorhxor.lean:129:8: declaration uses 'sorry' -error: ././././SSA/Projects/InstCombine/tests/LLVM/gorhxorhxor.lean:163:109: (deterministic) timeout at `whnf`, maximum number of heartbeats (200000) has been reached -Use `set_option maxHeartbeats ` to set the limit. -Additional diagnostic information may be available using the `set_option diagnostics true` command. -error: Lean exited with code 1 -Some required builds logged failures: -- SSA.Projects.InstCombine.tests.LLVM.gorhxorhxor -error: build failed diff --git a/SSA/Projects/InstCombine/tests/logs/gorhxorhxor_proof.txt b/SSA/Projects/InstCombine/tests/logs/gorhxorhxor_proof.txt new file mode 100644 index 000000000..5a4a1c3b5 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/gorhxorhxor_proof.txt @@ -0,0 +1,337 @@ +⚠ [49/2462] Replayed Mathlib.Logic.Basic +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Basic.lean:155:8: `dec_em'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Basic.lean:159:8: `em'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Basic.lean:304:8: `or_congr_left'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Basic.lean:307:8: `or_congr_right'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Basic.lean:320:8: `imp_or'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Basic.lean:359:8: `xor_iff_not_iff'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Basic.lean:418:8: `eqRec_heq'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Basic.lean:511:8: `forall_true_iff'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Basic.lean:532:8: `exists_apply_eq_apply'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Basic.lean:539:6: `exists_apply_eq_apply2'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Basic.lean:548:6: `exists_apply_eq_apply3'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Basic.lean:575:8: `forall_apply_eq_imp_iff'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Basic.lean:578:8: `forall_eq_apply_imp_iff'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Basic.lean:638:8: `forall_prop_congr'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Basic.lean:711:6: `Classical.choose_eq'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Basic.lean:847:8: `dite_eq_iff'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Basic.lean:851:8: `ite_eq_iff'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +⚠ [66/2462] Replayed Mathlib.Algebra.NeZero +warning: ././.lake/packages/mathlib/././Mathlib/Algebra/NeZero.lean:44:6: `zero_ne_one'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Algebra/NeZero.lean:46:6: `one_ne_zero'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Algebra/NeZero.lean:48:6: `two_ne_zero'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Algebra/NeZero.lean:50:6: `three_ne_zero'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Algebra/NeZero.lean:52:6: `four_ne_zero'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +⚠ [69/2462] Replayed Mathlib.Logic.ExistsUnique +warning: ././.lake/packages/mathlib/././Mathlib/Logic/ExistsUnique.lean:109:16: `exists_unique_eq'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +⚠ [74/2462] Replayed Mathlib.Logic.Function.Basic +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Function/Basic.lean:78:8: `Function.Injective.eq_iff'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Function/Basic.lean:87:8: `Function.Injective.ne_iff'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Function/Basic.lean:117:8: `Function.Injective.of_comp_iff'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Function/Basic.lean:163:8: `Function.Surjective.of_comp_iff'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Function/Basic.lean:237:8: `Function.Bijective.of_comp_iff'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Function/Basic.lean:541:8: `Function.update_comp_eq_of_forall_ne'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Function/Basic.lean:552:8: `Function.update_comp_eq_of_injective'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Function/Basic.lean:649:8: `Function.extend_apply'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Function/Basic.lean:681:8: `Function.Injective.surjective_comp_right'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +⚠ [94/2462] Replayed Mathlib.Control.Combinators +warning: ././.lake/packages/mathlib/././Mathlib/Control/Combinators.lean:35:4: `Monad.mapM'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Control/Combinators.lean:57:4: `Monad.sequence'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +⚠ [96/2462] Replayed Mathlib.Logic.IsEmpty +warning: ././.lake/packages/mathlib/././Mathlib/Logic/IsEmpty.lean:36:9: `Fin.isEmpty'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +⚠ [229/2462] Replayed Mathlib.Data.Prod.PProd +warning: ././.lake/packages/mathlib/././Mathlib/Data/Prod/PProd.lean:35:8: `PProd.forall'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Data/Prod/PProd.lean:38:8: `PProd.exists'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +⚠ [230/2462] Replayed Mathlib.Data.Bool.Basic +warning: ././.lake/packages/mathlib/././Mathlib/Data/Bool/Basic.lean:156:8: `Bool.eq_true_of_not_eq_false'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Data/Bool/Basic.lean:159:8: `Bool.eq_false_of_not_eq_true'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +⚠ [232/2462] Replayed Mathlib.Logic.Function.Iterate +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Function/Iterate.lean:160:8: `Function.iterate_succ'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Function/Iterate.lean:163:8: `Function.iterate_succ_apply'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +⚠ [234/2462] Replayed Mathlib.Data.Prod.Basic +warning: ././.lake/packages/mathlib/././Mathlib/Data/Prod/Basic.lean:31:8: `Prod.forall'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Data/Prod/Basic.lean:34:8: `Prod.exists'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Data/Prod/Basic.lean:51:8: `Prod.map_apply'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Data/Prod/Basic.lean:54:8: `Prod.map_fst'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Data/Prod/Basic.lean:57:8: `Prod.map_snd'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +⚠ [235/2462] Replayed Mathlib.Data.Sigma.Basic +warning: ././.lake/packages/mathlib/././Mathlib/Data/Sigma/Basic.lean:90:6: `Sigma.exists'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Data/Sigma/Basic.lean:93:6: `Sigma.forall'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +⚠ [239/2462] Replayed Mathlib.Data.FunLike.Basic +warning: ././.lake/packages/mathlib/././Mathlib/Data/FunLike/Basic.lean:187:8: `DFunLike.ext'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +⚠ [244/2462] Replayed Mathlib.Logic.Relation +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Relation.lean:351:8: `Relation.TransGen.head'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Relation.lean:354:8: `Relation.TransGen.tail'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Relation.lean:444:8: `Relation.TransGen.lift'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Relation.lean:453:6: `Relation.TransGen.closed'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Relation.lean:523:8: `Relation.ReflTransGen.lift'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +⚠ [245/2462] Replayed Mathlib.Logic.Unique +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Unique.lean:131:18: `Unique.subsingleton_unique'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Unique.lean:259:9: `Unique.subtypeEq'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +⚠ [252/2462] Replayed Mathlib.Data.Quot +warning: ././.lake/packages/mathlib/././Mathlib/Data/Quot.lean:558:18: `Quotient.liftOn'_mk''` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Data/Quot.lean:562:14: `Quotient.surjective_liftOn'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Data/Quot.lean:573:18: `Quotient.liftOn₂'_mk''` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Data/Quot.lean:639:8: `Quotient.hrecOn'_mk''` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Data/Quot.lean:652:8: `Quotient.hrecOn₂'_mk''` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Data/Quot.lean:664:8: `Quotient.map'_mk''` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Data/Quot.lean:674:8: `Quotient.map₂'_mk''` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Data/Quot.lean:679:8: `Quotient.exact'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Data/Quot.lean:683:8: `Quotient.sound'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Data/Quot.lean:687:18: `Quotient.eq'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Data/Quot.lean:692:18: `Quotient.eq''` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Data/Quot.lean:701:8: `Quotient.out_eq'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Data/Quot.lean:704:8: `Quotient.mk_out'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +⚠ [256/2462] Replayed Mathlib.Tactic.Lift +warning: ././.lake/packages/mathlib/././Mathlib/Tactic/Lift.lean:49:9: `PiSubtype.canLift'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +⚠ [409/2462] Replayed Mathlib.Algebra.Group.Defs +warning: ././.lake/packages/mathlib/././Mathlib/Algebra/Group/Defs.lean:735:33: `pow_succ'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Algebra/Group/Defs.lean:740:6: `pow_mul_comm'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Algebra/Group/Defs.lean:749:6: `pow_three'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Algebra/Group/Defs.lean:772:6: `pow_mul'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +⚠ [443/2462] Replayed Mathlib.Data.List.Defs +warning: ././.lake/packages/mathlib/././Mathlib/Data/List/Defs.lean:241:9: `List.decidableChain'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +⚠ [474/2462] Replayed Mathlib.Control.Applicative +warning: ././.lake/packages/mathlib/././Mathlib/Control/Applicative.lean:34:8: `Applicative.pure_seq_eq_map'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +⚠ [475/2462] Replayed Mathlib.Control.Traversable.Basic +warning: ././.lake/packages/mathlib/././Mathlib/Control/Traversable/Basic.lean:139:8: `ApplicativeTransformation.preserves_map'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +⚠ [618/2462] Replayed Mathlib.Algebra.GroupWithZero.Defs +warning: ././.lake/packages/mathlib/././Mathlib/Algebra/GroupWithZero/Defs.lean:110:8: `mul_left_inj'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Algebra/GroupWithZero/Defs.lean:113:8: `mul_right_inj'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +⚠ [624/2462] Replayed Mathlib.Algebra.Group.Invertible.Defs +warning: ././.lake/packages/mathlib/././Mathlib/Algebra/Group/Invertible/Defs.lean:97:8: `invOf_mul_self'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Algebra/Group/Invertible/Defs.lean:103:8: `mul_invOf_self'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Algebra/Group/Invertible/Defs.lean:109:8: `invOf_mul_cancel_left'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Algebra/Group/Invertible/Defs.lean:120:8: `mul_invOf_cancel_left'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Algebra/Group/Invertible/Defs.lean:131:8: `invOf_mul_cancel_right'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Algebra/Group/Invertible/Defs.lean:142:8: `mul_invOf_cancel_right'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Algebra/Group/Invertible/Defs.lean:198:8: `invOf_one'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +⚠ [1184/2462] Replayed Mathlib.Control.Traversable.Lemmas +warning: ././.lake/packages/mathlib/././Mathlib/Control/Traversable/Lemmas.lean:87:8: `Traversable.naturality'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Control/Traversable/Lemmas.lean:102:8: `Traversable.traverse_eq_map_id'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Control/Traversable/Lemmas.lean:108:8: `Traversable.traverse_map'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Control/Traversable/Lemmas.lean:113:8: `Traversable.map_traverse'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +⚠ [2407/2462] Replayed Mathlib.Data.List.EditDistance.Defs +warning: ././.lake/packages/mathlib/././Mathlib/Data/List/EditDistance/Defs.lean:214:8: `suffixLevenshtein_nil'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +⚠ [2447/2462] Replayed SSA.Experimental.Bits.Fast.FiniteStateMachine +warning: ././././SSA/Experimental/Bits/Fast/FiniteStateMachine.lean:107:8: declaration uses 'sorry' +warning: ././././SSA/Experimental/Bits/Fast/FiniteStateMachine.lean:825:8: declaration uses 'sorry' +⚠ [2451/2462] Replayed SSA.Experimental.Bits.Fast.Tactic +warning: ././././SSA/Experimental/Bits/Fast/Tactic.lean:340:4: declaration uses 'sorry' +⚠ [2452/2462] Replayed SSA.Experimental.Bits.AutoStructs.ForLean +warning: ././././SSA/Experimental/Bits/AutoStructs/ForLean.lean:24:8: declaration uses 'sorry' +warning: ././././SSA/Experimental/Bits/AutoStructs/ForLean.lean:27:8: declaration uses 'sorry' +warning: ././././SSA/Experimental/Bits/AutoStructs/ForLean.lean:29:8: declaration uses 'sorry' +warning: ././././SSA/Experimental/Bits/AutoStructs/ForLean.lean:31:8: declaration uses 'sorry' +warning: ././././SSA/Experimental/Bits/AutoStructs/ForLean.lean:34:8: declaration uses 'sorry' +warning: ././././SSA/Experimental/Bits/AutoStructs/ForLean.lean:36:8: declaration uses 'sorry' +warning: ././././SSA/Experimental/Bits/AutoStructs/ForLean.lean:38:8: declaration uses 'sorry' +warning: ././././SSA/Experimental/Bits/AutoStructs/ForLean.lean:41:8: declaration uses 'sorry' +warning: ././././SSA/Experimental/Bits/AutoStructs/ForLean.lean:52:8: declaration uses 'sorry' +warning: ././././SSA/Experimental/Bits/AutoStructs/ForLean.lean:56:8: declaration uses 'sorry' +⚠ [2457/2462] Replayed SSA.Experimental.Bits.AutoStructs.Constructions +warning: ././././SSA/Experimental/Bits/AutoStructs/Constructions.lean:55:6: declaration uses 'sorry' +warning: ././././SSA/Experimental/Bits/AutoStructs/Constructions.lean:128:6: declaration uses 'sorry' +warning: ././././SSA/Experimental/Bits/AutoStructs/Constructions.lean:163:6: declaration uses 'sorry' +warning: ././././SSA/Experimental/Bits/AutoStructs/Constructions.lean:197:6: declaration uses 'sorry' +⚠ [2458/2462] Replayed SSA.Experimental.Bits.AutoStructs.FiniteStateMachine +warning: ././././SSA/Experimental/Bits/AutoStructs/FiniteStateMachine.lean:111:8: declaration uses 'sorry' +✖ [2462/2462] Building SSA.Projects.InstCombine.tests.LLVM.gorhxorhxor +trace: .> LEAN_PATH=././.lake/packages/batteries/.lake/build/lib:././.lake/packages/Qq/.lake/build/lib:././.lake/packages/aesop/.lake/build/lib:././.lake/packages/proofwidgets/.lake/build/lib:././.lake/packages/Cli/.lake/build/lib:././.lake/packages/importGraph/.lake/build/lib:././.lake/packages/LeanSearchClient/.lake/build/lib:././.lake/packages/mathlib/.lake/build/lib:././.lake/packages/MD4Lean/.lake/build/lib:././.lake/packages/UnicodeBasic/.lake/build/lib:././.lake/packages/BibtexQuery/.lake/build/lib:././.lake/packages/doc-gen4/.lake/build/lib:././.lake/packages/leanwuzla/.lake/build/lib:././.lake/build/lib LD_LIBRARY_PATH= /home/lfrenot/.elan/toolchains/leanprover--lean4---nightly-2024-10-17/bin/lean ././././SSA/Projects/InstCombine/tests/LLVM/gorhxorhxor.lean -R ./././. -o ././.lake/build/lib/SSA/Projects/InstCombine/tests/LLVM/gorhxorhxor.olean -i ././.lake/build/lib/SSA/Projects/InstCombine/tests/LLVM/gorhxorhxor.ilean -c ././.lake/build/ir/SSA/Projects/InstCombine/tests/LLVM/gorhxorhxor.c --json +info: ././././SSA/Projects/InstCombine/tests/LLVM/gorhxorhxor.lean:43:17: theorem extracted_1 (x x_1 : BitVec 1) : x_1 &&& x ^^^ x_1 ||| x_1 &&& x ^^^ x = x_1 ^^^ x := sorry +warning: ././././SSA/Projects/InstCombine/tests/LLVM/gorhxorhxor.lean:33:8: declaration uses 'sorry' +info: ././././SSA/Projects/InstCombine/tests/LLVM/gorhxorhxor.lean:75:17: theorem extracted_1 (x x_1 : BitVec 8) : x_1 &&& x ^^^ x ||| x_1 ^^^ x_1 &&& x = x_1 ^^^ x := sorry +warning: ././././SSA/Projects/InstCombine/tests/LLVM/gorhxorhxor.lean:65:8: declaration uses 'sorry' +info: ././././SSA/Projects/InstCombine/tests/LLVM/gorhxorhxor.lean:107:17: theorem extracted_1 (x x_1 : BitVec 16) : x_1 ^^^ x_1 &&& x ||| x ^^^ x_1 &&& x = x_1 ^^^ x := sorry +warning: ././././SSA/Projects/InstCombine/tests/LLVM/gorhxorhxor.lean:97:8: declaration uses 'sorry' +info: ././././SSA/Projects/InstCombine/tests/LLVM/gorhxorhxor.lean:139:17: theorem extracted_1 (x x_1 : BitVec 64) : x_1 &&& x ^^^ x_1 ||| x_1 &&& x ^^^ x = x_1 ^^^ x := sorry +warning: ././././SSA/Projects/InstCombine/tests/LLVM/gorhxorhxor.lean:129:8: declaration uses 'sorry' +error: ././././SSA/Projects/InstCombine/tests/LLVM/gorhxorhxor.lean:163:109: (deterministic) timeout at `whnf`, maximum number of heartbeats (200000) has been reached +Use `set_option maxHeartbeats ` to set the limit. +Additional diagnostic information may be available using the `set_option diagnostics true` command. +error: Lean exited with code 1 +Some required builds logged failures: +- SSA.Projects.InstCombine.tests.LLVM.gorhxorhxor +error: build failed diff --git a/SSA/Projects/InstCombine/tests/logs/gselect_meta_proof.txt b/SSA/Projects/InstCombine/tests/logs/gselect_meta_proof.txt new file mode 100644 index 000000000..d2d32cedf --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/gselect_meta_proof.txt @@ -0,0 +1,446 @@ +⚠ [49/2462] Replayed Mathlib.Logic.Basic +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Basic.lean:155:8: `dec_em'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Basic.lean:159:8: `em'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Basic.lean:304:8: `or_congr_left'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Basic.lean:307:8: `or_congr_right'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Basic.lean:320:8: `imp_or'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Basic.lean:359:8: `xor_iff_not_iff'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Basic.lean:418:8: `eqRec_heq'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Basic.lean:511:8: `forall_true_iff'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Basic.lean:532:8: `exists_apply_eq_apply'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Basic.lean:539:6: `exists_apply_eq_apply2'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Basic.lean:548:6: `exists_apply_eq_apply3'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Basic.lean:575:8: `forall_apply_eq_imp_iff'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Basic.lean:578:8: `forall_eq_apply_imp_iff'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Basic.lean:638:8: `forall_prop_congr'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Basic.lean:711:6: `Classical.choose_eq'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Basic.lean:847:8: `dite_eq_iff'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Basic.lean:851:8: `ite_eq_iff'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +⚠ [66/2462] Replayed Mathlib.Algebra.NeZero +warning: ././.lake/packages/mathlib/././Mathlib/Algebra/NeZero.lean:44:6: `zero_ne_one'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Algebra/NeZero.lean:46:6: `one_ne_zero'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Algebra/NeZero.lean:48:6: `two_ne_zero'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Algebra/NeZero.lean:50:6: `three_ne_zero'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Algebra/NeZero.lean:52:6: `four_ne_zero'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +⚠ [69/2462] Replayed Mathlib.Logic.ExistsUnique +warning: ././.lake/packages/mathlib/././Mathlib/Logic/ExistsUnique.lean:109:16: `exists_unique_eq'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +⚠ [74/2462] Replayed Mathlib.Logic.Function.Basic +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Function/Basic.lean:78:8: `Function.Injective.eq_iff'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Function/Basic.lean:87:8: `Function.Injective.ne_iff'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Function/Basic.lean:117:8: `Function.Injective.of_comp_iff'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Function/Basic.lean:163:8: `Function.Surjective.of_comp_iff'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Function/Basic.lean:237:8: `Function.Bijective.of_comp_iff'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Function/Basic.lean:541:8: `Function.update_comp_eq_of_forall_ne'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Function/Basic.lean:552:8: `Function.update_comp_eq_of_injective'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Function/Basic.lean:649:8: `Function.extend_apply'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Function/Basic.lean:681:8: `Function.Injective.surjective_comp_right'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +⚠ [94/2462] Replayed Mathlib.Control.Combinators +warning: ././.lake/packages/mathlib/././Mathlib/Control/Combinators.lean:35:4: `Monad.mapM'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Control/Combinators.lean:57:4: `Monad.sequence'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +⚠ [96/2462] Replayed Mathlib.Logic.IsEmpty +warning: ././.lake/packages/mathlib/././Mathlib/Logic/IsEmpty.lean:36:9: `Fin.isEmpty'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +⚠ [229/2462] Replayed Mathlib.Data.Prod.PProd +warning: ././.lake/packages/mathlib/././Mathlib/Data/Prod/PProd.lean:35:8: `PProd.forall'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Data/Prod/PProd.lean:38:8: `PProd.exists'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +⚠ [230/2462] Replayed Mathlib.Data.Bool.Basic +warning: ././.lake/packages/mathlib/././Mathlib/Data/Bool/Basic.lean:156:8: `Bool.eq_true_of_not_eq_false'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Data/Bool/Basic.lean:159:8: `Bool.eq_false_of_not_eq_true'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +⚠ [232/2462] Replayed Mathlib.Logic.Function.Iterate +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Function/Iterate.lean:160:8: `Function.iterate_succ'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Function/Iterate.lean:163:8: `Function.iterate_succ_apply'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +⚠ [234/2462] Replayed Mathlib.Data.Prod.Basic +warning: ././.lake/packages/mathlib/././Mathlib/Data/Prod/Basic.lean:31:8: `Prod.forall'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Data/Prod/Basic.lean:34:8: `Prod.exists'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Data/Prod/Basic.lean:51:8: `Prod.map_apply'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Data/Prod/Basic.lean:54:8: `Prod.map_fst'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Data/Prod/Basic.lean:57:8: `Prod.map_snd'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +⚠ [235/2462] Replayed Mathlib.Data.Sigma.Basic +warning: ././.lake/packages/mathlib/././Mathlib/Data/Sigma/Basic.lean:90:6: `Sigma.exists'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Data/Sigma/Basic.lean:93:6: `Sigma.forall'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +⚠ [239/2462] Replayed Mathlib.Data.FunLike.Basic +warning: ././.lake/packages/mathlib/././Mathlib/Data/FunLike/Basic.lean:187:8: `DFunLike.ext'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +⚠ [244/2462] Replayed Mathlib.Logic.Relation +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Relation.lean:351:8: `Relation.TransGen.head'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Relation.lean:354:8: `Relation.TransGen.tail'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Relation.lean:444:8: `Relation.TransGen.lift'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Relation.lean:453:6: `Relation.TransGen.closed'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Relation.lean:523:8: `Relation.ReflTransGen.lift'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +⚠ [245/2462] Replayed Mathlib.Logic.Unique +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Unique.lean:131:18: `Unique.subsingleton_unique'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Unique.lean:259:9: `Unique.subtypeEq'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +⚠ [252/2462] Replayed Mathlib.Data.Quot +warning: ././.lake/packages/mathlib/././Mathlib/Data/Quot.lean:558:18: `Quotient.liftOn'_mk''` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Data/Quot.lean:562:14: `Quotient.surjective_liftOn'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Data/Quot.lean:573:18: `Quotient.liftOn₂'_mk''` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Data/Quot.lean:639:8: `Quotient.hrecOn'_mk''` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Data/Quot.lean:652:8: `Quotient.hrecOn₂'_mk''` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Data/Quot.lean:664:8: `Quotient.map'_mk''` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Data/Quot.lean:674:8: `Quotient.map₂'_mk''` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Data/Quot.lean:679:8: `Quotient.exact'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Data/Quot.lean:683:8: `Quotient.sound'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Data/Quot.lean:687:18: `Quotient.eq'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Data/Quot.lean:692:18: `Quotient.eq''` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Data/Quot.lean:701:8: `Quotient.out_eq'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Data/Quot.lean:704:8: `Quotient.mk_out'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +⚠ [256/2462] Replayed Mathlib.Tactic.Lift +warning: ././.lake/packages/mathlib/././Mathlib/Tactic/Lift.lean:49:9: `PiSubtype.canLift'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +⚠ [409/2462] Replayed Mathlib.Algebra.Group.Defs +warning: ././.lake/packages/mathlib/././Mathlib/Algebra/Group/Defs.lean:735:33: `pow_succ'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Algebra/Group/Defs.lean:740:6: `pow_mul_comm'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Algebra/Group/Defs.lean:749:6: `pow_three'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Algebra/Group/Defs.lean:772:6: `pow_mul'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +⚠ [443/2462] Replayed Mathlib.Data.List.Defs +warning: ././.lake/packages/mathlib/././Mathlib/Data/List/Defs.lean:241:9: `List.decidableChain'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +⚠ [474/2462] Replayed Mathlib.Control.Applicative +warning: ././.lake/packages/mathlib/././Mathlib/Control/Applicative.lean:34:8: `Applicative.pure_seq_eq_map'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +⚠ [475/2462] Replayed Mathlib.Control.Traversable.Basic +warning: ././.lake/packages/mathlib/././Mathlib/Control/Traversable/Basic.lean:139:8: `ApplicativeTransformation.preserves_map'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +⚠ [618/2462] Replayed Mathlib.Algebra.GroupWithZero.Defs +warning: ././.lake/packages/mathlib/././Mathlib/Algebra/GroupWithZero/Defs.lean:110:8: `mul_left_inj'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Algebra/GroupWithZero/Defs.lean:113:8: `mul_right_inj'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +⚠ [624/2462] Replayed Mathlib.Algebra.Group.Invertible.Defs +warning: ././.lake/packages/mathlib/././Mathlib/Algebra/Group/Invertible/Defs.lean:97:8: `invOf_mul_self'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Algebra/Group/Invertible/Defs.lean:103:8: `mul_invOf_self'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Algebra/Group/Invertible/Defs.lean:109:8: `invOf_mul_cancel_left'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Algebra/Group/Invertible/Defs.lean:120:8: `mul_invOf_cancel_left'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Algebra/Group/Invertible/Defs.lean:131:8: `invOf_mul_cancel_right'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Algebra/Group/Invertible/Defs.lean:142:8: `mul_invOf_cancel_right'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Algebra/Group/Invertible/Defs.lean:198:8: `invOf_one'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +⚠ [1184/2462] Replayed Mathlib.Control.Traversable.Lemmas +warning: ././.lake/packages/mathlib/././Mathlib/Control/Traversable/Lemmas.lean:87:8: `Traversable.naturality'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Control/Traversable/Lemmas.lean:102:8: `Traversable.traverse_eq_map_id'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Control/Traversable/Lemmas.lean:108:8: `Traversable.traverse_map'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Control/Traversable/Lemmas.lean:113:8: `Traversable.map_traverse'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +⚠ [2407/2462] Replayed Mathlib.Data.List.EditDistance.Defs +warning: ././.lake/packages/mathlib/././Mathlib/Data/List/EditDistance/Defs.lean:214:8: `suffixLevenshtein_nil'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +⚠ [2447/2462] Replayed SSA.Experimental.Bits.Fast.FiniteStateMachine +warning: ././././SSA/Experimental/Bits/Fast/FiniteStateMachine.lean:107:8: declaration uses 'sorry' +warning: ././././SSA/Experimental/Bits/Fast/FiniteStateMachine.lean:825:8: declaration uses 'sorry' +⚠ [2451/2462] Replayed SSA.Experimental.Bits.Fast.Tactic +warning: ././././SSA/Experimental/Bits/Fast/Tactic.lean:340:4: declaration uses 'sorry' +⚠ [2452/2462] Replayed SSA.Experimental.Bits.AutoStructs.ForLean +warning: ././././SSA/Experimental/Bits/AutoStructs/ForLean.lean:24:8: declaration uses 'sorry' +warning: ././././SSA/Experimental/Bits/AutoStructs/ForLean.lean:27:8: declaration uses 'sorry' +warning: ././././SSA/Experimental/Bits/AutoStructs/ForLean.lean:29:8: declaration uses 'sorry' +warning: ././././SSA/Experimental/Bits/AutoStructs/ForLean.lean:31:8: declaration uses 'sorry' +warning: ././././SSA/Experimental/Bits/AutoStructs/ForLean.lean:34:8: declaration uses 'sorry' +warning: ././././SSA/Experimental/Bits/AutoStructs/ForLean.lean:36:8: declaration uses 'sorry' +warning: ././././SSA/Experimental/Bits/AutoStructs/ForLean.lean:38:8: declaration uses 'sorry' +warning: ././././SSA/Experimental/Bits/AutoStructs/ForLean.lean:41:8: declaration uses 'sorry' +warning: ././././SSA/Experimental/Bits/AutoStructs/ForLean.lean:52:8: declaration uses 'sorry' +warning: ././././SSA/Experimental/Bits/AutoStructs/ForLean.lean:56:8: declaration uses 'sorry' +⚠ [2457/2462] Replayed SSA.Experimental.Bits.AutoStructs.Constructions +warning: ././././SSA/Experimental/Bits/AutoStructs/Constructions.lean:55:6: declaration uses 'sorry' +warning: ././././SSA/Experimental/Bits/AutoStructs/Constructions.lean:128:6: declaration uses 'sorry' +warning: ././././SSA/Experimental/Bits/AutoStructs/Constructions.lean:163:6: declaration uses 'sorry' +warning: ././././SSA/Experimental/Bits/AutoStructs/Constructions.lean:197:6: declaration uses 'sorry' +⚠ [2458/2462] Replayed SSA.Experimental.Bits.AutoStructs.FiniteStateMachine +warning: ././././SSA/Experimental/Bits/AutoStructs/FiniteStateMachine.lean:111:8: declaration uses 'sorry' +✖ [2462/2462] Building SSA.Projects.InstCombine.tests.LLVM.gselect_meta +trace: .> LEAN_PATH=././.lake/packages/batteries/.lake/build/lib:././.lake/packages/Qq/.lake/build/lib:././.lake/packages/aesop/.lake/build/lib:././.lake/packages/proofwidgets/.lake/build/lib:././.lake/packages/Cli/.lake/build/lib:././.lake/packages/importGraph/.lake/build/lib:././.lake/packages/LeanSearchClient/.lake/build/lib:././.lake/packages/mathlib/.lake/build/lib:././.lake/packages/MD4Lean/.lake/build/lib:././.lake/packages/UnicodeBasic/.lake/build/lib:././.lake/packages/BibtexQuery/.lake/build/lib:././.lake/packages/doc-gen4/.lake/build/lib:././.lake/packages/leanwuzla/.lake/build/lib:././.lake/build/lib LD_LIBRARY_PATH= /home/lfrenot/.elan/toolchains/leanprover--lean4---nightly-2024-10-17/bin/lean ././././SSA/Projects/InstCombine/tests/LLVM/gselect_meta.lean -R ./././. -o ././.lake/build/lib/SSA/Projects/InstCombine/tests/LLVM/gselect_meta.olean -i ././.lake/build/lib/SSA/Projects/InstCombine/tests/LLVM/gselect_meta.ilean -c ././.lake/build/ir/SSA/Projects/InstCombine/tests/LLVM/gselect_meta.c --json +error: ././././SSA/Projects/InstCombine/tests/LLVM/gselect_meta.lean:19:40: expected i or f, found: true +error: ././././SSA/Projects/InstCombine/tests/LLVM/gselect_meta.lean:33:2: tactic 'unfold' failed to unfold 'not_cond_before' at + (not_cond_before ⊑ not_cond_after) ⋯ +info: ././././SSA/Projects/InstCombine/tests/LLVM/gselect_meta.lean:74:17: theorem extracted_1 (x : BitVec 1) : + (match some x with + | none => none + | some { toFin := ⟨1, ⋯⟩ } => none + | some { toFin := ⟨0, ⋯⟩ } => none) ⊑ + none := sorry +info: ././././SSA/Projects/InstCombine/tests/LLVM/gselect_meta.lean:74:17: theorem extracted_1 : + ∀ (x : BitVec 64) (x_1 : BitVec 1), + (match some x_1 with + | none => none + | some { toFin := ⟨1, ⋯⟩ } => none + | some { toFin := ⟨0, ⋯⟩ } => some x) ⊑ + Option.bind + (match some x_1 with + | none => none + | some { toFin := ⟨1, ⋯⟩ } => none + | some { toFin := ⟨0, ⋯⟩ } => some 0#64) + fun y' => some (x + y') := sorry +info: ././././SSA/Projects/InstCombine/tests/LLVM/gselect_meta.lean:74:17: theorem extracted_1 : + BitVec 64 → + ∀ (x : BitVec 1), + (match some x with + | none => none + | some { toFin := ⟨1, ⋯⟩ } => none + | some { toFin := ⟨0, ⋯⟩ } => none) ⊑ + none := sorry +info: ././././SSA/Projects/InstCombine/tests/LLVM/gselect_meta.lean:74:17: theorem extracted_1 : + ∀ (x x_1 : BitVec 64) (x_2 : BitVec 1), + (match some x_2 with + | none => none + | some { toFin := ⟨1, ⋯⟩ } => some (x_1 + x) + | some { toFin := ⟨0, ⋯⟩ } => some x_1) ⊑ + Option.bind + (match some x_2 with + | none => none + | some { toFin := ⟨1, ⋯⟩ } => some x + | some { toFin := ⟨0, ⋯⟩ } => some 0#64) + fun y' => some (x_1 + y') := sorry +warning: ././././SSA/Projects/InstCombine/tests/LLVM/gselect_meta.lean:64:8: declaration uses 'sorry' +info: ././././SSA/Projects/InstCombine/tests/LLVM/gselect_meta.lean:106:17: theorem extracted_1 (x : BitVec 1) : + (match some x with + | none => none + | some { toFin := ⟨1, ⋯⟩ } => none + | some { toFin := ⟨0, ⋯⟩ } => none) ⊑ + none := sorry +info: ././././SSA/Projects/InstCombine/tests/LLVM/gselect_meta.lean:106:17: theorem extracted_1 : + ∀ (x : BitVec 17) (x_1 : BitVec 1), + (match some x_1 with + | none => none + | some { toFin := ⟨1, ⋯⟩ } => none + | some { toFin := ⟨0, ⋯⟩ } => some x) ⊑ + Option.bind + (match some x_1 with + | none => none + | some { toFin := ⟨1, ⋯⟩ } => none + | some { toFin := ⟨0, ⋯⟩ } => some 0#17) + fun y' => some (x - y') := sorry +info: ././././SSA/Projects/InstCombine/tests/LLVM/gselect_meta.lean:106:17: theorem extracted_1 : + BitVec 17 → + ∀ (x : BitVec 1), + (match some x with + | none => none + | some { toFin := ⟨1, ⋯⟩ } => none + | some { toFin := ⟨0, ⋯⟩ } => none) ⊑ + none := sorry +info: ././././SSA/Projects/InstCombine/tests/LLVM/gselect_meta.lean:106:17: theorem extracted_1 : + ∀ (x x_1 : BitVec 17) (x_2 : BitVec 1), + (match some x_2 with + | none => none + | some { toFin := ⟨1, ⋯⟩ } => some (x_1 - x) + | some { toFin := ⟨0, ⋯⟩ } => some x_1) ⊑ + Option.bind + (match some x_2 with + | none => none + | some { toFin := ⟨1, ⋯⟩ } => some x + | some { toFin := ⟨0, ⋯⟩ } => some 0#17) + fun y' => some (x_1 - y') := sorry +warning: ././././SSA/Projects/InstCombine/tests/LLVM/gselect_meta.lean:96:8: declaration uses 'sorry' +info: ././././SSA/Projects/InstCombine/tests/LLVM/gselect_meta.lean:138:17: theorem extracted_1 (x : BitVec 1) : + (match some x with + | none => none + | some { toFin := ⟨1, ⋯⟩ } => none + | some { toFin := ⟨0, ⋯⟩ } => none) ⊑ + none := sorry +info: ././././SSA/Projects/InstCombine/tests/LLVM/gselect_meta.lean:138:17: theorem extracted_1 : + ∀ (x : BitVec 128) (x_1 : BitVec 1), + (match some x_1 with + | none => none + | some { toFin := ⟨1, ⋯⟩ } => none + | some { toFin := ⟨0, ⋯⟩ } => some x) ⊑ + Option.bind + (match some x_1 with + | none => none + | some { toFin := ⟨1, ⋯⟩ } => none + | some { toFin := ⟨0, ⋯⟩ } => some 0#128) + fun y' => if 128#128 ≤ y' then none else some (x.sshiftRight y'.toNat) := sorry +info: ././././SSA/Projects/InstCombine/tests/LLVM/gselect_meta.lean:138:17: theorem extracted_1 : + BitVec 128 → + ∀ (x : BitVec 1), + (match some x with + | none => none + | some { toFin := ⟨1, ⋯⟩ } => none + | some { toFin := ⟨0, ⋯⟩ } => none) ⊑ + none := sorry +info: ././././SSA/Projects/InstCombine/tests/LLVM/gselect_meta.lean:138:17: theorem extracted_1 : + ∀ (x x_1 : BitVec 128) (x_2 : BitVec 1), + (match some x_2 with + | none => none + | some { toFin := ⟨1, ⋯⟩ } => if 128#128 ≤ x then none else some (x_1.sshiftRight x.toNat) + | some { toFin := ⟨0, ⋯⟩ } => some x_1) ⊑ + Option.bind + (match some x_2 with + | none => none + | some { toFin := ⟨1, ⋯⟩ } => some x + | some { toFin := ⟨0, ⋯⟩ } => some 0#128) + fun y' => if 128#128 ≤ y' then none else some (x_1.sshiftRight y'.toNat) := sorry +warning: ././././SSA/Projects/InstCombine/tests/LLVM/gselect_meta.lean:128:8: declaration uses 'sorry' +error: Lean exited with code 1 +Some required builds logged failures: +- SSA.Projects.InstCombine.tests.LLVM.gselect_meta +error: build failed diff --git a/SSA/Projects/InstCombine/tests/logs/gselecthandhor_proof.txt b/SSA/Projects/InstCombine/tests/logs/gselecthandhor_proof.txt new file mode 100644 index 000000000..ad2a938de --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/gselecthandhor_proof.txt @@ -0,0 +1,545 @@ +⚠ [49/2462] Replayed Mathlib.Logic.Basic +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Basic.lean:155:8: `dec_em'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Basic.lean:159:8: `em'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Basic.lean:304:8: `or_congr_left'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Basic.lean:307:8: `or_congr_right'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Basic.lean:320:8: `imp_or'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Basic.lean:359:8: `xor_iff_not_iff'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Basic.lean:418:8: `eqRec_heq'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Basic.lean:511:8: `forall_true_iff'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Basic.lean:532:8: `exists_apply_eq_apply'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Basic.lean:539:6: `exists_apply_eq_apply2'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Basic.lean:548:6: `exists_apply_eq_apply3'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Basic.lean:575:8: `forall_apply_eq_imp_iff'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Basic.lean:578:8: `forall_eq_apply_imp_iff'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Basic.lean:638:8: `forall_prop_congr'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Basic.lean:711:6: `Classical.choose_eq'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Basic.lean:847:8: `dite_eq_iff'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Basic.lean:851:8: `ite_eq_iff'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +⚠ [66/2462] Replayed Mathlib.Algebra.NeZero +warning: ././.lake/packages/mathlib/././Mathlib/Algebra/NeZero.lean:44:6: `zero_ne_one'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Algebra/NeZero.lean:46:6: `one_ne_zero'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Algebra/NeZero.lean:48:6: `two_ne_zero'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Algebra/NeZero.lean:50:6: `three_ne_zero'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Algebra/NeZero.lean:52:6: `four_ne_zero'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +⚠ [69/2462] Replayed Mathlib.Logic.ExistsUnique +warning: ././.lake/packages/mathlib/././Mathlib/Logic/ExistsUnique.lean:109:16: `exists_unique_eq'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +⚠ [74/2462] Replayed Mathlib.Logic.Function.Basic +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Function/Basic.lean:78:8: `Function.Injective.eq_iff'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Function/Basic.lean:87:8: `Function.Injective.ne_iff'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Function/Basic.lean:117:8: `Function.Injective.of_comp_iff'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Function/Basic.lean:163:8: `Function.Surjective.of_comp_iff'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Function/Basic.lean:237:8: `Function.Bijective.of_comp_iff'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Function/Basic.lean:541:8: `Function.update_comp_eq_of_forall_ne'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Function/Basic.lean:552:8: `Function.update_comp_eq_of_injective'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Function/Basic.lean:649:8: `Function.extend_apply'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Function/Basic.lean:681:8: `Function.Injective.surjective_comp_right'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +⚠ [94/2462] Replayed Mathlib.Control.Combinators +warning: ././.lake/packages/mathlib/././Mathlib/Control/Combinators.lean:35:4: `Monad.mapM'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Control/Combinators.lean:57:4: `Monad.sequence'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +⚠ [96/2462] Replayed Mathlib.Logic.IsEmpty +warning: ././.lake/packages/mathlib/././Mathlib/Logic/IsEmpty.lean:36:9: `Fin.isEmpty'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +⚠ [229/2462] Replayed Mathlib.Data.Prod.PProd +warning: ././.lake/packages/mathlib/././Mathlib/Data/Prod/PProd.lean:35:8: `PProd.forall'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Data/Prod/PProd.lean:38:8: `PProd.exists'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +⚠ [230/2462] Replayed Mathlib.Data.Bool.Basic +warning: ././.lake/packages/mathlib/././Mathlib/Data/Bool/Basic.lean:156:8: `Bool.eq_true_of_not_eq_false'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Data/Bool/Basic.lean:159:8: `Bool.eq_false_of_not_eq_true'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +⚠ [232/2462] Replayed Mathlib.Logic.Function.Iterate +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Function/Iterate.lean:160:8: `Function.iterate_succ'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Function/Iterate.lean:163:8: `Function.iterate_succ_apply'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +⚠ [234/2462] Replayed Mathlib.Data.Prod.Basic +warning: ././.lake/packages/mathlib/././Mathlib/Data/Prod/Basic.lean:31:8: `Prod.forall'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Data/Prod/Basic.lean:34:8: `Prod.exists'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Data/Prod/Basic.lean:51:8: `Prod.map_apply'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Data/Prod/Basic.lean:54:8: `Prod.map_fst'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Data/Prod/Basic.lean:57:8: `Prod.map_snd'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +⚠ [235/2462] Replayed Mathlib.Data.Sigma.Basic +warning: ././.lake/packages/mathlib/././Mathlib/Data/Sigma/Basic.lean:90:6: `Sigma.exists'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Data/Sigma/Basic.lean:93:6: `Sigma.forall'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +⚠ [239/2462] Replayed Mathlib.Data.FunLike.Basic +warning: ././.lake/packages/mathlib/././Mathlib/Data/FunLike/Basic.lean:187:8: `DFunLike.ext'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +⚠ [244/2462] Replayed Mathlib.Logic.Relation +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Relation.lean:351:8: `Relation.TransGen.head'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Relation.lean:354:8: `Relation.TransGen.tail'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Relation.lean:444:8: `Relation.TransGen.lift'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Relation.lean:453:6: `Relation.TransGen.closed'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Relation.lean:523:8: `Relation.ReflTransGen.lift'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +⚠ [245/2462] Replayed Mathlib.Logic.Unique +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Unique.lean:131:18: `Unique.subsingleton_unique'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Unique.lean:259:9: `Unique.subtypeEq'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +⚠ [252/2462] Replayed Mathlib.Data.Quot +warning: ././.lake/packages/mathlib/././Mathlib/Data/Quot.lean:558:18: `Quotient.liftOn'_mk''` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Data/Quot.lean:562:14: `Quotient.surjective_liftOn'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Data/Quot.lean:573:18: `Quotient.liftOn₂'_mk''` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Data/Quot.lean:639:8: `Quotient.hrecOn'_mk''` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Data/Quot.lean:652:8: `Quotient.hrecOn₂'_mk''` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Data/Quot.lean:664:8: `Quotient.map'_mk''` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Data/Quot.lean:674:8: `Quotient.map₂'_mk''` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Data/Quot.lean:679:8: `Quotient.exact'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Data/Quot.lean:683:8: `Quotient.sound'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Data/Quot.lean:687:18: `Quotient.eq'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Data/Quot.lean:692:18: `Quotient.eq''` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Data/Quot.lean:701:8: `Quotient.out_eq'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Data/Quot.lean:704:8: `Quotient.mk_out'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +⚠ [256/2462] Replayed Mathlib.Tactic.Lift +warning: ././.lake/packages/mathlib/././Mathlib/Tactic/Lift.lean:49:9: `PiSubtype.canLift'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +⚠ [409/2462] Replayed Mathlib.Algebra.Group.Defs +warning: ././.lake/packages/mathlib/././Mathlib/Algebra/Group/Defs.lean:735:33: `pow_succ'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Algebra/Group/Defs.lean:740:6: `pow_mul_comm'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Algebra/Group/Defs.lean:749:6: `pow_three'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Algebra/Group/Defs.lean:772:6: `pow_mul'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +⚠ [443/2462] Replayed Mathlib.Data.List.Defs +warning: ././.lake/packages/mathlib/././Mathlib/Data/List/Defs.lean:241:9: `List.decidableChain'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +⚠ [474/2462] Replayed Mathlib.Control.Applicative +warning: ././.lake/packages/mathlib/././Mathlib/Control/Applicative.lean:34:8: `Applicative.pure_seq_eq_map'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +⚠ [475/2462] Replayed Mathlib.Control.Traversable.Basic +warning: ././.lake/packages/mathlib/././Mathlib/Control/Traversable/Basic.lean:139:8: `ApplicativeTransformation.preserves_map'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +⚠ [618/2462] Replayed Mathlib.Algebra.GroupWithZero.Defs +warning: ././.lake/packages/mathlib/././Mathlib/Algebra/GroupWithZero/Defs.lean:110:8: `mul_left_inj'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Algebra/GroupWithZero/Defs.lean:113:8: `mul_right_inj'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +⚠ [624/2462] Replayed Mathlib.Algebra.Group.Invertible.Defs +warning: ././.lake/packages/mathlib/././Mathlib/Algebra/Group/Invertible/Defs.lean:97:8: `invOf_mul_self'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Algebra/Group/Invertible/Defs.lean:103:8: `mul_invOf_self'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Algebra/Group/Invertible/Defs.lean:109:8: `invOf_mul_cancel_left'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Algebra/Group/Invertible/Defs.lean:120:8: `mul_invOf_cancel_left'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Algebra/Group/Invertible/Defs.lean:131:8: `invOf_mul_cancel_right'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Algebra/Group/Invertible/Defs.lean:142:8: `mul_invOf_cancel_right'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Algebra/Group/Invertible/Defs.lean:198:8: `invOf_one'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +⚠ [1184/2462] Replayed Mathlib.Control.Traversable.Lemmas +warning: ././.lake/packages/mathlib/././Mathlib/Control/Traversable/Lemmas.lean:87:8: `Traversable.naturality'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Control/Traversable/Lemmas.lean:102:8: `Traversable.traverse_eq_map_id'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Control/Traversable/Lemmas.lean:108:8: `Traversable.traverse_map'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Control/Traversable/Lemmas.lean:113:8: `Traversable.map_traverse'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +⚠ [2407/2462] Replayed Mathlib.Data.List.EditDistance.Defs +warning: ././.lake/packages/mathlib/././Mathlib/Data/List/EditDistance/Defs.lean:214:8: `suffixLevenshtein_nil'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +⚠ [2447/2462] Replayed SSA.Experimental.Bits.Fast.FiniteStateMachine +warning: ././././SSA/Experimental/Bits/Fast/FiniteStateMachine.lean:107:8: declaration uses 'sorry' +warning: ././././SSA/Experimental/Bits/Fast/FiniteStateMachine.lean:825:8: declaration uses 'sorry' +⚠ [2451/2462] Replayed SSA.Experimental.Bits.Fast.Tactic +warning: ././././SSA/Experimental/Bits/Fast/Tactic.lean:340:4: declaration uses 'sorry' +⚠ [2452/2462] Replayed SSA.Experimental.Bits.AutoStructs.ForLean +warning: ././././SSA/Experimental/Bits/AutoStructs/ForLean.lean:24:8: declaration uses 'sorry' +warning: ././././SSA/Experimental/Bits/AutoStructs/ForLean.lean:27:8: declaration uses 'sorry' +warning: ././././SSA/Experimental/Bits/AutoStructs/ForLean.lean:29:8: declaration uses 'sorry' +warning: ././././SSA/Experimental/Bits/AutoStructs/ForLean.lean:31:8: declaration uses 'sorry' +warning: ././././SSA/Experimental/Bits/AutoStructs/ForLean.lean:34:8: declaration uses 'sorry' +warning: ././././SSA/Experimental/Bits/AutoStructs/ForLean.lean:36:8: declaration uses 'sorry' +warning: ././././SSA/Experimental/Bits/AutoStructs/ForLean.lean:38:8: declaration uses 'sorry' +warning: ././././SSA/Experimental/Bits/AutoStructs/ForLean.lean:41:8: declaration uses 'sorry' +warning: ././././SSA/Experimental/Bits/AutoStructs/ForLean.lean:52:8: declaration uses 'sorry' +warning: ././././SSA/Experimental/Bits/AutoStructs/ForLean.lean:56:8: declaration uses 'sorry' +⚠ [2457/2462] Replayed SSA.Experimental.Bits.AutoStructs.Constructions +warning: ././././SSA/Experimental/Bits/AutoStructs/Constructions.lean:55:6: declaration uses 'sorry' +warning: ././././SSA/Experimental/Bits/AutoStructs/Constructions.lean:128:6: declaration uses 'sorry' +warning: ././././SSA/Experimental/Bits/AutoStructs/Constructions.lean:163:6: declaration uses 'sorry' +warning: ././././SSA/Experimental/Bits/AutoStructs/Constructions.lean:197:6: declaration uses 'sorry' +⚠ [2458/2462] Replayed SSA.Experimental.Bits.AutoStructs.FiniteStateMachine +warning: ././././SSA/Experimental/Bits/AutoStructs/FiniteStateMachine.lean:111:8: declaration uses 'sorry' +✖ [2462/2462] Building SSA.Projects.InstCombine.tests.LLVM.gselecthandhor +trace: .> LEAN_PATH=././.lake/packages/batteries/.lake/build/lib:././.lake/packages/Qq/.lake/build/lib:././.lake/packages/aesop/.lake/build/lib:././.lake/packages/proofwidgets/.lake/build/lib:././.lake/packages/Cli/.lake/build/lib:././.lake/packages/importGraph/.lake/build/lib:././.lake/packages/LeanSearchClient/.lake/build/lib:././.lake/packages/mathlib/.lake/build/lib:././.lake/packages/MD4Lean/.lake/build/lib:././.lake/packages/UnicodeBasic/.lake/build/lib:././.lake/packages/BibtexQuery/.lake/build/lib:././.lake/packages/doc-gen4/.lake/build/lib:././.lake/packages/leanwuzla/.lake/build/lib:././.lake/build/lib LD_LIBRARY_PATH= /home/lfrenot/.elan/toolchains/leanprover--lean4---nightly-2024-10-17/bin/lean ././././SSA/Projects/InstCombine/tests/LLVM/gselecthandhor.lean -R ./././. -o ././.lake/build/lib/SSA/Projects/InstCombine/tests/LLVM/gselecthandhor.olean -i ././.lake/build/lib/SSA/Projects/InstCombine/tests/LLVM/gselecthandhor.ilean -c ././.lake/build/ir/SSA/Projects/InstCombine/tests/LLVM/gselecthandhor.c --json +error: ././././SSA/Projects/InstCombine/tests/LLVM/gselecthandhor.lean:19:40: cannot convert suffix of i/f to int: false +error: ././././SSA/Projects/InstCombine/tests/LLVM/gselecthandhor.lean:27:40: expected i or f, found: true +error: ././././SSA/Projects/InstCombine/tests/LLVM/gselecthandhor.lean:28:40: cannot convert suffix of i/f to int: false +error: ././././SSA/Projects/InstCombine/tests/LLVM/gselecthandhor.lean:34:32: could not synthesize default value for parameter 'h' using tactics +error: ././././SSA/Projects/InstCombine/tests/LLVM/gselecthandhor.lean:34:32: tactic 'rfl' failed, the left-hand side + ⟦?m.2271⟧ +is not definitionally equal to the right-hand side + Option ?m.2269 +logical_and_not_before logical_and_not_after : Com InstCombine.LLVM ?m.2270 EffectKind.pure ?m.2271 +⊢ ⟦?m.2271⟧ = Option ?m.2269 +error: ././././SSA/Projects/InstCombine/tests/LLVM/gselecthandhor.lean:52:40: expected i or f, found: true +error: ././././SSA/Projects/InstCombine/tests/LLVM/gselecthandhor.lean:60:40: expected i or f, found: true +error: ././././SSA/Projects/InstCombine/tests/LLVM/gselecthandhor.lean:66:31: could not synthesize default value for parameter 'h' using tactics +error: ././././SSA/Projects/InstCombine/tests/LLVM/gselecthandhor.lean:66:31: tactic 'rfl' failed, the left-hand side + ⟦?m.4567⟧ +is not definitionally equal to the right-hand side + Option ?m.4565 +logical_or_not_before logical_or_not_after : Com InstCombine.LLVM ?m.4566 EffectKind.pure ?m.4567 +⊢ ⟦?m.4567⟧ = Option ?m.4565 +error: ././././SSA/Projects/InstCombine/tests/LLVM/gselecthandhor.lean:91:40: cannot convert suffix of i/f to int: false +error: ././././SSA/Projects/InstCombine/tests/LLVM/gselecthandhor.lean:97:2: tactic 'unfold' failed to unfold 'logical_and_cond_reuse_after' at + (Com.changeDialect (InstcombineTransformDialect.MOp.instantiateCom ⟨[], logical_and_cond_reuse_before.proof_1⟩) + (Com.var + (Expr.mk (InstCombine.MOp.select 1) logical_and_cond_reuse_before.proof_2 + logical_and_cond_reuse_before.proof_3 + (logical_and_cond_reuse_before.proof_5 ▸ + ⟨0 + 1, + logical_and_cond_reuse_before.proof_4⟩::ₕ(logical_and_cond_reuse_before.proof_5 ▸ + ⟨0, + logical_and_cond_reuse_before.proof_6⟩::ₕ(logical_and_cond_reuse_before.proof_5 ▸ + logical_and_cond_reuse_before.proof_7 ▸ + ⟨0 + 1, logical_and_cond_reuse_before.proof_4⟩::ₕHVector.nil))) + HVector.nil) + (Com.ret ⟨0, logical_and_cond_reuse_before.proof_8⟩)) ⊑ + logical_and_cond_reuse_after) + ⋯ +error: ././././SSA/Projects/InstCombine/tests/LLVM/gselecthandhor.lean:121:40: expected i or f, found: true +error: ././././SSA/Projects/InstCombine/tests/LLVM/gselecthandhor.lean:127:2: tactic 'unfold' failed to unfold 'logical_or_cond_reuse_after' at + (Com.changeDialect (InstcombineTransformDialect.MOp.instantiateCom ⟨[], logical_or_cond_reuse_before.proof_1⟩) + (Com.var + (Expr.mk (InstCombine.MOp.select 1) logical_or_cond_reuse_before.proof_2 logical_or_cond_reuse_before.proof_3 + (logical_or_cond_reuse_before.proof_5 ▸ + ⟨0 + 1, + logical_or_cond_reuse_before.proof_4⟩::ₕ(logical_or_cond_reuse_before.proof_5 ▸ + ⟨0 + 1, + logical_or_cond_reuse_before.proof_4⟩::ₕ(logical_or_cond_reuse_before.proof_5 ▸ + logical_or_cond_reuse_before.proof_7 ▸ ⟨0, logical_or_cond_reuse_before.proof_6⟩::ₕHVector.nil))) + HVector.nil) + (Com.ret ⟨0, logical_or_cond_reuse_before.proof_8⟩)) ⊑ + logical_or_cond_reuse_after) + ⋯ +error: ././././SSA/Projects/InstCombine/tests/LLVM/gselecthandhor.lean:144:40: expected i or f, found: true +error: ././././SSA/Projects/InstCombine/tests/LLVM/gselecthandhor.lean:153:40: expected i or f, found: true +error: ././././SSA/Projects/InstCombine/tests/LLVM/gselecthandhor.lean:159:43: could not synthesize default value for parameter 'h' using tactics +error: ././././SSA/Projects/InstCombine/tests/LLVM/gselecthandhor.lean:159:43: tactic 'rfl' failed, the left-hand side + ⟦?m.12842⟧ +is not definitionally equal to the right-hand side + Option ?m.12840 +logical_and_not_cond_reuse_before logical_and_not_cond_reuse_after : + Com InstCombine.LLVM ?m.12841 EffectKind.pure ?m.12842 +⊢ ⟦?m.12842⟧ = Option ?m.12840 +error: ././././SSA/Projects/InstCombine/tests/LLVM/gselecthandhor.lean:177:40: expected i or f, found: true +error: ././././SSA/Projects/InstCombine/tests/LLVM/gselecthandhor.lean:186:40: expected i or f, found: true +error: ././././SSA/Projects/InstCombine/tests/LLVM/gselecthandhor.lean:187:40: cannot convert suffix of i/f to int: false +error: ././././SSA/Projects/InstCombine/tests/LLVM/gselecthandhor.lean:193:42: could not synthesize default value for parameter 'h' using tactics +error: ././././SSA/Projects/InstCombine/tests/LLVM/gselecthandhor.lean:193:42: tactic 'rfl' failed, the left-hand side + ⟦?m.15209⟧ +is not definitionally equal to the right-hand side + Option ?m.15207 +logical_or_not_cond_reuse_before logical_or_not_cond_reuse_after : + Com InstCombine.LLVM ?m.15208 EffectKind.pure ?m.15209 +⊢ ⟦?m.15209⟧ = Option ?m.15207 +error: ././././SSA/Projects/InstCombine/tests/LLVM/gselecthandhor.lean:211:40: expected i or f, found: true +error: ././././SSA/Projects/InstCombine/tests/LLVM/gselecthandhor.lean:224:2: tactic 'unfold' failed to unfold 'logical_or_noundef_b_before' at + (logical_or_noundef_b_before ⊑ logical_or_noundef_b_after) ⋯ +error: ././././SSA/Projects/InstCombine/tests/LLVM/gselecthandhor.lean:241:40: cannot convert suffix of i/f to int: false +error: ././././SSA/Projects/InstCombine/tests/LLVM/gselecthandhor.lean:254:2: tactic 'unfold' failed to unfold 'logical_and_noundef_b_before' at + (logical_and_noundef_b_before ⊑ logical_and_noundef_b_after) ⋯ +error: ././././SSA/Projects/InstCombine/tests/LLVM/gselecthandhor.lean:271:40: expected i or f, found: true +error: ././././SSA/Projects/InstCombine/tests/LLVM/gselecthandhor.lean:281:40: expected i or f, found: true +error: ././././SSA/Projects/InstCombine/tests/LLVM/gselecthandhor.lean:287:29: could not synthesize default value for parameter 'h' using tactics +error: ././././SSA/Projects/InstCombine/tests/LLVM/gselecthandhor.lean:287:29: tactic 'rfl' failed, the left-hand side + ⟦?m.23384⟧ +is not definitionally equal to the right-hand side + Option ?m.23382 +not_not_true_before not_not_true_after : Com InstCombine.LLVM ?m.23383 EffectKind.pure ?m.23384 +⊢ ⟦?m.23384⟧ = Option ?m.23382 +error: ././././SSA/Projects/InstCombine/tests/LLVM/gselecthandhor.lean:305:40: expected i or f, found: true +error: ././././SSA/Projects/InstCombine/tests/LLVM/gselecthandhor.lean:306:40: cannot convert suffix of i/f to int: false +error: ././././SSA/Projects/InstCombine/tests/LLVM/gselecthandhor.lean:316:40: expected i or f, found: true +error: ././././SSA/Projects/InstCombine/tests/LLVM/gselecthandhor.lean:322:30: could not synthesize default value for parameter 'h' using tactics +error: ././././SSA/Projects/InstCombine/tests/LLVM/gselecthandhor.lean:322:30: tactic 'rfl' failed, the left-hand side + ⟦?m.25820⟧ +is not definitionally equal to the right-hand side + Option ?m.25818 +not_not_false_before not_not_false_after : Com InstCombine.LLVM ?m.25819 EffectKind.pure ?m.25820 +⊢ ⟦?m.25820⟧ = Option ?m.25818 +error: ././././SSA/Projects/InstCombine/tests/LLVM/gselecthandhor.lean:340:40: expected i or f, found: true +error: ././././SSA/Projects/InstCombine/tests/LLVM/gselecthandhor.lean:350:40: cannot convert suffix of i/f to int: false +error: ././././SSA/Projects/InstCombine/tests/LLVM/gselecthandhor.lean:351:40: expected i or f, found: true +error: ././././SSA/Projects/InstCombine/tests/LLVM/gselecthandhor.lean:357:29: could not synthesize default value for parameter 'h' using tactics +error: ././././SSA/Projects/InstCombine/tests/LLVM/gselecthandhor.lean:357:29: tactic 'rfl' failed, the left-hand side + ⟦?m.28256⟧ +is not definitionally equal to the right-hand side + Option ?m.28254 +not_true_not_before not_true_not_after : Com InstCombine.LLVM ?m.28255 EffectKind.pure ?m.28256 +⊢ ⟦?m.28256⟧ = Option ?m.28254 +error: ././././SSA/Projects/InstCombine/tests/LLVM/gselecthandhor.lean:375:40: expected i or f, found: true +error: ././././SSA/Projects/InstCombine/tests/LLVM/gselecthandhor.lean:376:40: cannot convert suffix of i/f to int: false +error: ././././SSA/Projects/InstCombine/tests/LLVM/gselecthandhor.lean:386:40: expected i or f, found: true +error: ././././SSA/Projects/InstCombine/tests/LLVM/gselecthandhor.lean:387:40: cannot convert suffix of i/f to int: false +error: ././././SSA/Projects/InstCombine/tests/LLVM/gselecthandhor.lean:393:30: could not synthesize default value for parameter 'h' using tactics +error: ././././SSA/Projects/InstCombine/tests/LLVM/gselecthandhor.lean:393:30: tactic 'rfl' failed, the left-hand side + ⟦?m.30700⟧ +is not definitionally equal to the right-hand side + Option ?m.30698 +not_false_not_before not_false_not_after : Com InstCombine.LLVM ?m.30699 EffectKind.pure ?m.30700 +⊢ ⟦?m.30700⟧ = Option ?m.30698 +error: ././././SSA/Projects/InstCombine/tests/LLVM/gselecthandhor.lean:411:40: expected i or f, found: true +error: ././././SSA/Projects/InstCombine/tests/LLVM/gselecthandhor.lean:421:40: expected i or f, found: true +error: ././././SSA/Projects/InstCombine/tests/LLVM/gselecthandhor.lean:422:40: cannot convert suffix of i/f to int: false +error: ././././SSA/Projects/InstCombine/tests/LLVM/gselecthandhor.lean:428:24: could not synthesize default value for parameter 'h' using tactics +error: ././././SSA/Projects/InstCombine/tests/LLVM/gselecthandhor.lean:428:24: tactic 'rfl' failed, the left-hand side + ⟦?m.33564⟧ +is not definitionally equal to the right-hand side + Option ?m.33562 +and_or1_before and_or1_after : Com InstCombine.LLVM ?m.33563 EffectKind.pure ?m.33564 +⊢ ⟦?m.33564⟧ = Option ?m.33562 +error: ././././SSA/Projects/InstCombine/tests/LLVM/gselecthandhor.lean:446:40: expected i or f, found: true +error: ././././SSA/Projects/InstCombine/tests/LLVM/gselecthandhor.lean:456:40: expected i or f, found: true +error: ././././SSA/Projects/InstCombine/tests/LLVM/gselecthandhor.lean:457:40: cannot convert suffix of i/f to int: false +error: ././././SSA/Projects/InstCombine/tests/LLVM/gselecthandhor.lean:463:24: could not synthesize default value for parameter 'h' using tactics +error: ././././SSA/Projects/InstCombine/tests/LLVM/gselecthandhor.lean:463:24: tactic 'rfl' failed, the left-hand side + ⟦?m.36404⟧ +is not definitionally equal to the right-hand side + Option ?m.36402 +and_or2_before and_or2_after : Com InstCombine.LLVM ?m.36403 EffectKind.pure ?m.36404 +⊢ ⟦?m.36404⟧ = Option ?m.36402 +error: ././././SSA/Projects/InstCombine/tests/LLVM/gselecthandhor.lean:481:40: expected i or f, found: true +error: ././././SSA/Projects/InstCombine/tests/LLVM/gselecthandhor.lean:491:40: expected i or f, found: true +error: ././././SSA/Projects/InstCombine/tests/LLVM/gselecthandhor.lean:492:40: cannot convert suffix of i/f to int: false +error: ././././SSA/Projects/InstCombine/tests/LLVM/gselecthandhor.lean:498:33: could not synthesize default value for parameter 'h' using tactics +error: ././././SSA/Projects/InstCombine/tests/LLVM/gselecthandhor.lean:498:33: tactic 'rfl' failed, the left-hand side + ⟦?m.39256⟧ +is not definitionally equal to the right-hand side + Option ?m.39254 +and_or1_commuted_before and_or1_commuted_after : Com InstCombine.LLVM ?m.39255 EffectKind.pure ?m.39256 +⊢ ⟦?m.39256⟧ = Option ?m.39254 +error: ././././SSA/Projects/InstCombine/tests/LLVM/gselecthandhor.lean:516:40: expected i or f, found: true +error: ././././SSA/Projects/InstCombine/tests/LLVM/gselecthandhor.lean:526:40: expected i or f, found: true +error: ././././SSA/Projects/InstCombine/tests/LLVM/gselecthandhor.lean:527:40: cannot convert suffix of i/f to int: false +error: ././././SSA/Projects/InstCombine/tests/LLVM/gselecthandhor.lean:533:33: could not synthesize default value for parameter 'h' using tactics +error: ././././SSA/Projects/InstCombine/tests/LLVM/gselecthandhor.lean:533:33: tactic 'rfl' failed, the left-hand side + ⟦?m.42120⟧ +is not definitionally equal to the right-hand side + Option ?m.42118 +and_or2_commuted_before and_or2_commuted_after : Com InstCombine.LLVM ?m.42119 EffectKind.pure ?m.42120 +⊢ ⟦?m.42120⟧ = Option ?m.42118 +error: ././././SSA/Projects/InstCombine/tests/LLVM/gselecthandhor.lean:551:40: expected i or f, found: true +error: ././././SSA/Projects/InstCombine/tests/LLVM/gselecthandhor.lean:561:40: expected i or f, found: true +error: ././././SSA/Projects/InstCombine/tests/LLVM/gselecthandhor.lean:568:38: could not synthesize default value for parameter 'h' using tactics +error: ././././SSA/Projects/InstCombine/tests/LLVM/gselecthandhor.lean:568:38: tactic 'rfl' failed, the left-hand side + ⟦?m.45516⟧ +is not definitionally equal to the right-hand side + Option ?m.45514 +and_or1_wrong_operand_before and_or1_wrong_operand_after : Com InstCombine.LLVM ?m.45515 EffectKind.pure ?m.45516 +⊢ ⟦?m.45516⟧ = Option ?m.45514 +error: ././././SSA/Projects/InstCombine/tests/LLVM/gselecthandhor.lean:586:40: expected i or f, found: true +error: ././././SSA/Projects/InstCombine/tests/LLVM/gselecthandhor.lean:596:40: expected i or f, found: true +error: ././././SSA/Projects/InstCombine/tests/LLVM/gselecthandhor.lean:603:38: could not synthesize default value for parameter 'h' using tactics +error: ././././SSA/Projects/InstCombine/tests/LLVM/gselecthandhor.lean:603:38: tactic 'rfl' failed, the left-hand side + ⟦?m.48924⟧ +is not definitionally equal to the right-hand side + Option ?m.48922 +and_or2_wrong_operand_before and_or2_wrong_operand_after : Com InstCombine.LLVM ?m.48923 EffectKind.pure ?m.48924 +⊢ ⟦?m.48924⟧ = Option ?m.48922 +error: ././././SSA/Projects/InstCombine/tests/LLVM/gselecthandhor.lean:621:40: expected i or f, found: true +error: ././././SSA/Projects/InstCombine/tests/LLVM/gselecthandhor.lean:631:40: cannot convert suffix of i/f to int: false +error: ././././SSA/Projects/InstCombine/tests/LLVM/gselecthandhor.lean:632:40: expected i or f, found: true +error: ././././SSA/Projects/InstCombine/tests/LLVM/gselecthandhor.lean:638:24: could not synthesize default value for parameter 'h' using tactics +error: ././././SSA/Projects/InstCombine/tests/LLVM/gselecthandhor.lean:638:24: tactic 'rfl' failed, the left-hand side + ⟦?m.51776⟧ +is not definitionally equal to the right-hand side + Option ?m.51774 +or_and1_before or_and1_after : Com InstCombine.LLVM ?m.51775 EffectKind.pure ?m.51776 +⊢ ⟦?m.51776⟧ = Option ?m.51774 +error: ././././SSA/Projects/InstCombine/tests/LLVM/gselecthandhor.lean:656:40: expected i or f, found: true +error: ././././SSA/Projects/InstCombine/tests/LLVM/gselecthandhor.lean:666:40: cannot convert suffix of i/f to int: false +error: ././././SSA/Projects/InstCombine/tests/LLVM/gselecthandhor.lean:667:40: expected i or f, found: true +error: ././././SSA/Projects/InstCombine/tests/LLVM/gselecthandhor.lean:673:24: could not synthesize default value for parameter 'h' using tactics +error: ././././SSA/Projects/InstCombine/tests/LLVM/gselecthandhor.lean:673:24: tactic 'rfl' failed, the left-hand side + ⟦?m.54592⟧ +is not definitionally equal to the right-hand side + Option ?m.54590 +or_and2_before or_and2_after : Com InstCombine.LLVM ?m.54591 EffectKind.pure ?m.54592 +⊢ ⟦?m.54592⟧ = Option ?m.54590 +error: ././././SSA/Projects/InstCombine/tests/LLVM/gselecthandhor.lean:691:40: expected i or f, found: true +error: ././././SSA/Projects/InstCombine/tests/LLVM/gselecthandhor.lean:701:40: cannot convert suffix of i/f to int: false +error: ././././SSA/Projects/InstCombine/tests/LLVM/gselecthandhor.lean:702:40: expected i or f, found: true +error: ././././SSA/Projects/InstCombine/tests/LLVM/gselecthandhor.lean:708:33: could not synthesize default value for parameter 'h' using tactics +error: ././././SSA/Projects/InstCombine/tests/LLVM/gselecthandhor.lean:708:33: tactic 'rfl' failed, the left-hand side + ⟦?m.57456⟧ +is not definitionally equal to the right-hand side + Option ?m.57454 +or_and1_commuted_before or_and1_commuted_after : Com InstCombine.LLVM ?m.57455 EffectKind.pure ?m.57456 +⊢ ⟦?m.57456⟧ = Option ?m.57454 +error: ././././SSA/Projects/InstCombine/tests/LLVM/gselecthandhor.lean:726:40: expected i or f, found: true +error: ././././SSA/Projects/InstCombine/tests/LLVM/gselecthandhor.lean:736:40: cannot convert suffix of i/f to int: false +error: ././././SSA/Projects/InstCombine/tests/LLVM/gselecthandhor.lean:737:40: expected i or f, found: true +error: ././././SSA/Projects/InstCombine/tests/LLVM/gselecthandhor.lean:743:33: could not synthesize default value for parameter 'h' using tactics +error: ././././SSA/Projects/InstCombine/tests/LLVM/gselecthandhor.lean:743:33: tactic 'rfl' failed, the left-hand side + ⟦?m.60308⟧ +is not definitionally equal to the right-hand side + Option ?m.60306 +or_and2_commuted_before or_and2_commuted_after : Com InstCombine.LLVM ?m.60307 EffectKind.pure ?m.60308 +⊢ ⟦?m.60308⟧ = Option ?m.60306 +error: ././././SSA/Projects/InstCombine/tests/LLVM/gselecthandhor.lean:761:40: expected i or f, found: true +error: ././././SSA/Projects/InstCombine/tests/LLVM/gselecthandhor.lean:776:2: tactic 'unfold' failed to unfold 'pr64558_before' at + (pr64558_before ⊑ pr64558_after) ⋯ +error: Lean exited with code 1 +Some required builds logged failures: +- SSA.Projects.InstCombine.tests.LLVM.gselecthandhor +error: build failed diff --git a/SSA/Projects/InstCombine/tests/logs/gselecthfactorize_proof.txt b/SSA/Projects/InstCombine/tests/logs/gselecthfactorize_proof.txt new file mode 100644 index 000000000..9bb99a2ee --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/gselecthfactorize_proof.txt @@ -0,0 +1,710 @@ +⚠ [49/2462] Replayed Mathlib.Logic.Basic +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Basic.lean:155:8: `dec_em'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Basic.lean:159:8: `em'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Basic.lean:304:8: `or_congr_left'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Basic.lean:307:8: `or_congr_right'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Basic.lean:320:8: `imp_or'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Basic.lean:359:8: `xor_iff_not_iff'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Basic.lean:418:8: `eqRec_heq'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Basic.lean:511:8: `forall_true_iff'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Basic.lean:532:8: `exists_apply_eq_apply'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Basic.lean:539:6: `exists_apply_eq_apply2'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Basic.lean:548:6: `exists_apply_eq_apply3'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Basic.lean:575:8: `forall_apply_eq_imp_iff'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Basic.lean:578:8: `forall_eq_apply_imp_iff'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Basic.lean:638:8: `forall_prop_congr'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Basic.lean:711:6: `Classical.choose_eq'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Basic.lean:847:8: `dite_eq_iff'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Basic.lean:851:8: `ite_eq_iff'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +⚠ [66/2462] Replayed Mathlib.Algebra.NeZero +warning: ././.lake/packages/mathlib/././Mathlib/Algebra/NeZero.lean:44:6: `zero_ne_one'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Algebra/NeZero.lean:46:6: `one_ne_zero'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Algebra/NeZero.lean:48:6: `two_ne_zero'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Algebra/NeZero.lean:50:6: `three_ne_zero'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Algebra/NeZero.lean:52:6: `four_ne_zero'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +⚠ [69/2462] Replayed Mathlib.Logic.ExistsUnique +warning: ././.lake/packages/mathlib/././Mathlib/Logic/ExistsUnique.lean:109:16: `exists_unique_eq'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +⚠ [74/2462] Replayed Mathlib.Logic.Function.Basic +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Function/Basic.lean:78:8: `Function.Injective.eq_iff'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Function/Basic.lean:87:8: `Function.Injective.ne_iff'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Function/Basic.lean:117:8: `Function.Injective.of_comp_iff'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Function/Basic.lean:163:8: `Function.Surjective.of_comp_iff'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Function/Basic.lean:237:8: `Function.Bijective.of_comp_iff'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Function/Basic.lean:541:8: `Function.update_comp_eq_of_forall_ne'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Function/Basic.lean:552:8: `Function.update_comp_eq_of_injective'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Function/Basic.lean:649:8: `Function.extend_apply'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Function/Basic.lean:681:8: `Function.Injective.surjective_comp_right'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +⚠ [94/2462] Replayed Mathlib.Control.Combinators +warning: ././.lake/packages/mathlib/././Mathlib/Control/Combinators.lean:35:4: `Monad.mapM'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Control/Combinators.lean:57:4: `Monad.sequence'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +⚠ [96/2462] Replayed Mathlib.Logic.IsEmpty +warning: ././.lake/packages/mathlib/././Mathlib/Logic/IsEmpty.lean:36:9: `Fin.isEmpty'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +⚠ [229/2462] Replayed Mathlib.Data.Prod.PProd +warning: ././.lake/packages/mathlib/././Mathlib/Data/Prod/PProd.lean:35:8: `PProd.forall'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Data/Prod/PProd.lean:38:8: `PProd.exists'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +⚠ [230/2462] Replayed Mathlib.Data.Bool.Basic +warning: ././.lake/packages/mathlib/././Mathlib/Data/Bool/Basic.lean:156:8: `Bool.eq_true_of_not_eq_false'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Data/Bool/Basic.lean:159:8: `Bool.eq_false_of_not_eq_true'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +⚠ [232/2462] Replayed Mathlib.Logic.Function.Iterate +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Function/Iterate.lean:160:8: `Function.iterate_succ'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Function/Iterate.lean:163:8: `Function.iterate_succ_apply'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +⚠ [234/2462] Replayed Mathlib.Data.Prod.Basic +warning: ././.lake/packages/mathlib/././Mathlib/Data/Prod/Basic.lean:31:8: `Prod.forall'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Data/Prod/Basic.lean:34:8: `Prod.exists'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Data/Prod/Basic.lean:51:8: `Prod.map_apply'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Data/Prod/Basic.lean:54:8: `Prod.map_fst'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Data/Prod/Basic.lean:57:8: `Prod.map_snd'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +⚠ [235/2462] Replayed Mathlib.Data.Sigma.Basic +warning: ././.lake/packages/mathlib/././Mathlib/Data/Sigma/Basic.lean:90:6: `Sigma.exists'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Data/Sigma/Basic.lean:93:6: `Sigma.forall'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +⚠ [239/2462] Replayed Mathlib.Data.FunLike.Basic +warning: ././.lake/packages/mathlib/././Mathlib/Data/FunLike/Basic.lean:187:8: `DFunLike.ext'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +⚠ [244/2462] Replayed Mathlib.Logic.Relation +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Relation.lean:351:8: `Relation.TransGen.head'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Relation.lean:354:8: `Relation.TransGen.tail'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Relation.lean:444:8: `Relation.TransGen.lift'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Relation.lean:453:6: `Relation.TransGen.closed'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Relation.lean:523:8: `Relation.ReflTransGen.lift'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +⚠ [245/2462] Replayed Mathlib.Logic.Unique +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Unique.lean:131:18: `Unique.subsingleton_unique'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Unique.lean:259:9: `Unique.subtypeEq'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +⚠ [252/2462] Replayed Mathlib.Data.Quot +warning: ././.lake/packages/mathlib/././Mathlib/Data/Quot.lean:558:18: `Quotient.liftOn'_mk''` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Data/Quot.lean:562:14: `Quotient.surjective_liftOn'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Data/Quot.lean:573:18: `Quotient.liftOn₂'_mk''` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Data/Quot.lean:639:8: `Quotient.hrecOn'_mk''` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Data/Quot.lean:652:8: `Quotient.hrecOn₂'_mk''` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Data/Quot.lean:664:8: `Quotient.map'_mk''` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Data/Quot.lean:674:8: `Quotient.map₂'_mk''` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Data/Quot.lean:679:8: `Quotient.exact'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Data/Quot.lean:683:8: `Quotient.sound'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Data/Quot.lean:687:18: `Quotient.eq'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Data/Quot.lean:692:18: `Quotient.eq''` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Data/Quot.lean:701:8: `Quotient.out_eq'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Data/Quot.lean:704:8: `Quotient.mk_out'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +⚠ [256/2462] Replayed Mathlib.Tactic.Lift +warning: ././.lake/packages/mathlib/././Mathlib/Tactic/Lift.lean:49:9: `PiSubtype.canLift'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +⚠ [409/2462] Replayed Mathlib.Algebra.Group.Defs +warning: ././.lake/packages/mathlib/././Mathlib/Algebra/Group/Defs.lean:735:33: `pow_succ'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Algebra/Group/Defs.lean:740:6: `pow_mul_comm'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Algebra/Group/Defs.lean:749:6: `pow_three'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Algebra/Group/Defs.lean:772:6: `pow_mul'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +⚠ [443/2462] Replayed Mathlib.Data.List.Defs +warning: ././.lake/packages/mathlib/././Mathlib/Data/List/Defs.lean:241:9: `List.decidableChain'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +⚠ [474/2462] Replayed Mathlib.Control.Applicative +warning: ././.lake/packages/mathlib/././Mathlib/Control/Applicative.lean:34:8: `Applicative.pure_seq_eq_map'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +⚠ [475/2462] Replayed Mathlib.Control.Traversable.Basic +warning: ././.lake/packages/mathlib/././Mathlib/Control/Traversable/Basic.lean:139:8: `ApplicativeTransformation.preserves_map'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +⚠ [618/2462] Replayed Mathlib.Algebra.GroupWithZero.Defs +warning: ././.lake/packages/mathlib/././Mathlib/Algebra/GroupWithZero/Defs.lean:110:8: `mul_left_inj'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Algebra/GroupWithZero/Defs.lean:113:8: `mul_right_inj'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +⚠ [624/2462] Replayed Mathlib.Algebra.Group.Invertible.Defs +warning: ././.lake/packages/mathlib/././Mathlib/Algebra/Group/Invertible/Defs.lean:97:8: `invOf_mul_self'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Algebra/Group/Invertible/Defs.lean:103:8: `mul_invOf_self'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Algebra/Group/Invertible/Defs.lean:109:8: `invOf_mul_cancel_left'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Algebra/Group/Invertible/Defs.lean:120:8: `mul_invOf_cancel_left'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Algebra/Group/Invertible/Defs.lean:131:8: `invOf_mul_cancel_right'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Algebra/Group/Invertible/Defs.lean:142:8: `mul_invOf_cancel_right'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Algebra/Group/Invertible/Defs.lean:198:8: `invOf_one'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +⚠ [1184/2462] Replayed Mathlib.Control.Traversable.Lemmas +warning: ././.lake/packages/mathlib/././Mathlib/Control/Traversable/Lemmas.lean:87:8: `Traversable.naturality'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Control/Traversable/Lemmas.lean:102:8: `Traversable.traverse_eq_map_id'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Control/Traversable/Lemmas.lean:108:8: `Traversable.traverse_map'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Control/Traversable/Lemmas.lean:113:8: `Traversable.map_traverse'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +⚠ [2407/2462] Replayed Mathlib.Data.List.EditDistance.Defs +warning: ././.lake/packages/mathlib/././Mathlib/Data/List/EditDistance/Defs.lean:214:8: `suffixLevenshtein_nil'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +⚠ [2447/2462] Replayed SSA.Experimental.Bits.Fast.FiniteStateMachine +warning: ././././SSA/Experimental/Bits/Fast/FiniteStateMachine.lean:107:8: declaration uses 'sorry' +warning: ././././SSA/Experimental/Bits/Fast/FiniteStateMachine.lean:825:8: declaration uses 'sorry' +⚠ [2451/2462] Replayed SSA.Experimental.Bits.Fast.Tactic +warning: ././././SSA/Experimental/Bits/Fast/Tactic.lean:340:4: declaration uses 'sorry' +⚠ [2452/2462] Replayed SSA.Experimental.Bits.AutoStructs.ForLean +warning: ././././SSA/Experimental/Bits/AutoStructs/ForLean.lean:24:8: declaration uses 'sorry' +warning: ././././SSA/Experimental/Bits/AutoStructs/ForLean.lean:27:8: declaration uses 'sorry' +warning: ././././SSA/Experimental/Bits/AutoStructs/ForLean.lean:29:8: declaration uses 'sorry' +warning: ././././SSA/Experimental/Bits/AutoStructs/ForLean.lean:31:8: declaration uses 'sorry' +warning: ././././SSA/Experimental/Bits/AutoStructs/ForLean.lean:34:8: declaration uses 'sorry' +warning: ././././SSA/Experimental/Bits/AutoStructs/ForLean.lean:36:8: declaration uses 'sorry' +warning: ././././SSA/Experimental/Bits/AutoStructs/ForLean.lean:38:8: declaration uses 'sorry' +warning: ././././SSA/Experimental/Bits/AutoStructs/ForLean.lean:41:8: declaration uses 'sorry' +warning: ././././SSA/Experimental/Bits/AutoStructs/ForLean.lean:52:8: declaration uses 'sorry' +warning: ././././SSA/Experimental/Bits/AutoStructs/ForLean.lean:56:8: declaration uses 'sorry' +⚠ [2457/2462] Replayed SSA.Experimental.Bits.AutoStructs.Constructions +warning: ././././SSA/Experimental/Bits/AutoStructs/Constructions.lean:55:6: declaration uses 'sorry' +warning: ././././SSA/Experimental/Bits/AutoStructs/Constructions.lean:128:6: declaration uses 'sorry' +warning: ././././SSA/Experimental/Bits/AutoStructs/Constructions.lean:163:6: declaration uses 'sorry' +warning: ././././SSA/Experimental/Bits/AutoStructs/Constructions.lean:197:6: declaration uses 'sorry' +⚠ [2458/2462] Replayed SSA.Experimental.Bits.AutoStructs.FiniteStateMachine +warning: ././././SSA/Experimental/Bits/AutoStructs/FiniteStateMachine.lean:111:8: declaration uses 'sorry' +✖ [2462/2462] Building SSA.Projects.InstCombine.tests.LLVM.gselecthfactorize +trace: .> LEAN_PATH=././.lake/packages/batteries/.lake/build/lib:././.lake/packages/Qq/.lake/build/lib:././.lake/packages/aesop/.lake/build/lib:././.lake/packages/proofwidgets/.lake/build/lib:././.lake/packages/Cli/.lake/build/lib:././.lake/packages/importGraph/.lake/build/lib:././.lake/packages/LeanSearchClient/.lake/build/lib:././.lake/packages/mathlib/.lake/build/lib:././.lake/packages/MD4Lean/.lake/build/lib:././.lake/packages/UnicodeBasic/.lake/build/lib:././.lake/packages/BibtexQuery/.lake/build/lib:././.lake/packages/doc-gen4/.lake/build/lib:././.lake/packages/leanwuzla/.lake/build/lib:././.lake/build/lib LD_LIBRARY_PATH= /home/lfrenot/.elan/toolchains/leanprover--lean4---nightly-2024-10-17/bin/lean ././././SSA/Projects/InstCombine/tests/LLVM/gselecthfactorize.lean -R ./././. -o ././.lake/build/lib/SSA/Projects/InstCombine/tests/LLVM/gselecthfactorize.olean -i ././.lake/build/lib/SSA/Projects/InstCombine/tests/LLVM/gselecthfactorize.ilean -c ././.lake/build/ir/SSA/Projects/InstCombine/tests/LLVM/gselecthfactorize.c --json +error: ././././SSA/Projects/InstCombine/tests/LLVM/gselecthfactorize.lean:19:40: cannot convert suffix of i/f to int: false +error: ././././SSA/Projects/InstCombine/tests/LLVM/gselecthfactorize.lean:20:40: expected i or f, found: true +error: ././././SSA/Projects/InstCombine/tests/LLVM/gselecthfactorize.lean:30:40: expected i or f, found: true +error: ././././SSA/Projects/InstCombine/tests/LLVM/gselecthfactorize.lean:31:40: cannot convert suffix of i/f to int: false +error: ././././SSA/Projects/InstCombine/tests/LLVM/gselecthfactorize.lean:37:37: could not synthesize default value for parameter 'h' using tactics +error: ././././SSA/Projects/InstCombine/tests/LLVM/gselecthfactorize.lean:37:37: tactic 'rfl' failed, the left-hand side + ⟦?m.2873⟧ +is not definitionally equal to the right-hand side + Option ?m.2871 +logic_and_logic_or_1_before logic_and_logic_or_1_after : Com InstCombine.LLVM ?m.2872 EffectKind.pure ?m.2873 +⊢ ⟦?m.2873⟧ = Option ?m.2871 +error: ././././SSA/Projects/InstCombine/tests/LLVM/gselecthfactorize.lean:55:40: cannot convert suffix of i/f to int: false +error: ././././SSA/Projects/InstCombine/tests/LLVM/gselecthfactorize.lean:56:40: expected i or f, found: true +error: ././././SSA/Projects/InstCombine/tests/LLVM/gselecthfactorize.lean:66:40: expected i or f, found: true +error: ././././SSA/Projects/InstCombine/tests/LLVM/gselecthfactorize.lean:67:40: cannot convert suffix of i/f to int: false +error: ././././SSA/Projects/InstCombine/tests/LLVM/gselecthfactorize.lean:73:37: could not synthesize default value for parameter 'h' using tactics +error: ././././SSA/Projects/InstCombine/tests/LLVM/gselecthfactorize.lean:73:37: tactic 'rfl' failed, the left-hand side + ⟦?m.5803⟧ +is not definitionally equal to the right-hand side + Option ?m.5801 +logic_and_logic_or_2_before logic_and_logic_or_2_after : Com InstCombine.LLVM ?m.5802 EffectKind.pure ?m.5803 +⊢ ⟦?m.5803⟧ = Option ?m.5801 +error: ././././SSA/Projects/InstCombine/tests/LLVM/gselecthfactorize.lean:91:40: cannot convert suffix of i/f to int: false +error: ././././SSA/Projects/InstCombine/tests/LLVM/gselecthfactorize.lean:92:40: expected i or f, found: true +error: ././././SSA/Projects/InstCombine/tests/LLVM/gselecthfactorize.lean:102:40: expected i or f, found: true +error: ././././SSA/Projects/InstCombine/tests/LLVM/gselecthfactorize.lean:103:40: cannot convert suffix of i/f to int: false +error: ././././SSA/Projects/InstCombine/tests/LLVM/gselecthfactorize.lean:109:37: could not synthesize default value for parameter 'h' using tactics +error: ././././SSA/Projects/InstCombine/tests/LLVM/gselecthfactorize.lean:109:37: tactic 'rfl' failed, the left-hand side + ⟦?m.8721⟧ +is not definitionally equal to the right-hand side + Option ?m.8719 +logic_and_logic_or_3_before logic_and_logic_or_3_after : Com InstCombine.LLVM ?m.8720 EffectKind.pure ?m.8721 +⊢ ⟦?m.8721⟧ = Option ?m.8719 +error: ././././SSA/Projects/InstCombine/tests/LLVM/gselecthfactorize.lean:127:40: cannot convert suffix of i/f to int: false +error: ././././SSA/Projects/InstCombine/tests/LLVM/gselecthfactorize.lean:128:40: expected i or f, found: true +error: ././././SSA/Projects/InstCombine/tests/LLVM/gselecthfactorize.lean:138:40: expected i or f, found: true +error: ././././SSA/Projects/InstCombine/tests/LLVM/gselecthfactorize.lean:139:40: cannot convert suffix of i/f to int: false +error: ././././SSA/Projects/InstCombine/tests/LLVM/gselecthfactorize.lean:145:37: could not synthesize default value for parameter 'h' using tactics +error: ././././SSA/Projects/InstCombine/tests/LLVM/gselecthfactorize.lean:145:37: tactic 'rfl' failed, the left-hand side + ⟦?m.11603⟧ +is not definitionally equal to the right-hand side + Option ?m.11601 +logic_and_logic_or_4_before logic_and_logic_or_4_after : Com InstCombine.LLVM ?m.11602 EffectKind.pure ?m.11603 +⊢ ⟦?m.11603⟧ = Option ?m.11601 +error: ././././SSA/Projects/InstCombine/tests/LLVM/gselecthfactorize.lean:163:40: cannot convert suffix of i/f to int: false +error: ././././SSA/Projects/InstCombine/tests/LLVM/gselecthfactorize.lean:164:40: expected i or f, found: true +error: ././././SSA/Projects/InstCombine/tests/LLVM/gselecthfactorize.lean:174:40: expected i or f, found: true +error: ././././SSA/Projects/InstCombine/tests/LLVM/gselecthfactorize.lean:175:40: cannot convert suffix of i/f to int: false +error: ././././SSA/Projects/InstCombine/tests/LLVM/gselecthfactorize.lean:181:37: could not synthesize default value for parameter 'h' using tactics +error: ././././SSA/Projects/InstCombine/tests/LLVM/gselecthfactorize.lean:181:37: tactic 'rfl' failed, the left-hand side + ⟦?m.14521⟧ +is not definitionally equal to the right-hand side + Option ?m.14519 +logic_and_logic_or_5_before logic_and_logic_or_5_after : Com InstCombine.LLVM ?m.14520 EffectKind.pure ?m.14521 +⊢ ⟦?m.14521⟧ = Option ?m.14519 +error: ././././SSA/Projects/InstCombine/tests/LLVM/gselecthfactorize.lean:199:40: cannot convert suffix of i/f to int: false +error: ././././SSA/Projects/InstCombine/tests/LLVM/gselecthfactorize.lean:200:40: expected i or f, found: true +error: ././././SSA/Projects/InstCombine/tests/LLVM/gselecthfactorize.lean:210:40: expected i or f, found: true +error: ././././SSA/Projects/InstCombine/tests/LLVM/gselecthfactorize.lean:211:40: cannot convert suffix of i/f to int: false +error: ././././SSA/Projects/InstCombine/tests/LLVM/gselecthfactorize.lean:217:37: could not synthesize default value for parameter 'h' using tactics +error: ././././SSA/Projects/InstCombine/tests/LLVM/gselecthfactorize.lean:217:37: tactic 'rfl' failed, the left-hand side + ⟦?m.17451⟧ +is not definitionally equal to the right-hand side + Option ?m.17449 +logic_and_logic_or_6_before logic_and_logic_or_6_after : Com InstCombine.LLVM ?m.17450 EffectKind.pure ?m.17451 +⊢ ⟦?m.17451⟧ = Option ?m.17449 +error: ././././SSA/Projects/InstCombine/tests/LLVM/gselecthfactorize.lean:235:40: cannot convert suffix of i/f to int: false +error: ././././SSA/Projects/InstCombine/tests/LLVM/gselecthfactorize.lean:236:40: expected i or f, found: true +error: ././././SSA/Projects/InstCombine/tests/LLVM/gselecthfactorize.lean:246:40: expected i or f, found: true +error: ././././SSA/Projects/InstCombine/tests/LLVM/gselecthfactorize.lean:247:40: cannot convert suffix of i/f to int: false +error: ././././SSA/Projects/InstCombine/tests/LLVM/gselecthfactorize.lean:253:37: could not synthesize default value for parameter 'h' using tactics +error: ././././SSA/Projects/InstCombine/tests/LLVM/gselecthfactorize.lean:253:37: tactic 'rfl' failed, the left-hand side + ⟦?m.20321⟧ +is not definitionally equal to the right-hand side + Option ?m.20319 +logic_and_logic_or_7_before logic_and_logic_or_7_after : Com InstCombine.LLVM ?m.20320 EffectKind.pure ?m.20321 +⊢ ⟦?m.20321⟧ = Option ?m.20319 +error: ././././SSA/Projects/InstCombine/tests/LLVM/gselecthfactorize.lean:271:40: cannot convert suffix of i/f to int: false +error: ././././SSA/Projects/InstCombine/tests/LLVM/gselecthfactorize.lean:272:40: expected i or f, found: true +error: ././././SSA/Projects/InstCombine/tests/LLVM/gselecthfactorize.lean:282:40: expected i or f, found: true +error: ././././SSA/Projects/InstCombine/tests/LLVM/gselecthfactorize.lean:283:40: cannot convert suffix of i/f to int: false +error: ././././SSA/Projects/InstCombine/tests/LLVM/gselecthfactorize.lean:289:37: could not synthesize default value for parameter 'h' using tactics +error: ././././SSA/Projects/InstCombine/tests/LLVM/gselecthfactorize.lean:289:37: tactic 'rfl' failed, the left-hand side + ⟦?m.23251⟧ +is not definitionally equal to the right-hand side + Option ?m.23249 +logic_and_logic_or_8_before logic_and_logic_or_8_after : Com InstCombine.LLVM ?m.23250 EffectKind.pure ?m.23251 +⊢ ⟦?m.23251⟧ = Option ?m.23249 +error: ././././SSA/Projects/InstCombine/tests/LLVM/gselecthfactorize.lean:307:40: cannot convert suffix of i/f to int: false +error: ././././SSA/Projects/InstCombine/tests/LLVM/gselecthfactorize.lean:308:40: expected i or f, found: true +error: ././././SSA/Projects/InstCombine/tests/LLVM/gselecthfactorize.lean:318:40: expected i or f, found: true +error: ././././SSA/Projects/InstCombine/tests/LLVM/gselecthfactorize.lean:319:40: cannot convert suffix of i/f to int: false +error: ././././SSA/Projects/InstCombine/tests/LLVM/gselecthfactorize.lean:325:41: could not synthesize default value for parameter 'h' using tactics +error: ././././SSA/Projects/InstCombine/tests/LLVM/gselecthfactorize.lean:325:41: tactic 'rfl' failed, the left-hand side + ⟦?m.26116⟧ +is not definitionally equal to the right-hand side + Option ?m.26114 +and_logic_and_logic_or_1_before and_logic_and_logic_or_1_after : Com InstCombine.LLVM ?m.26115 EffectKind.pure ?m.26116 +⊢ ⟦?m.26116⟧ = Option ?m.26114 +error: ././././SSA/Projects/InstCombine/tests/LLVM/gselecthfactorize.lean:343:40: cannot convert suffix of i/f to int: false +error: ././././SSA/Projects/InstCombine/tests/LLVM/gselecthfactorize.lean:344:40: expected i or f, found: true +error: ././././SSA/Projects/InstCombine/tests/LLVM/gselecthfactorize.lean:354:40: expected i or f, found: true +error: ././././SSA/Projects/InstCombine/tests/LLVM/gselecthfactorize.lean:355:40: cannot convert suffix of i/f to int: false +error: ././././SSA/Projects/InstCombine/tests/LLVM/gselecthfactorize.lean:361:41: could not synthesize default value for parameter 'h' using tactics +error: ././././SSA/Projects/InstCombine/tests/LLVM/gselecthfactorize.lean:361:41: tactic 'rfl' failed, the left-hand side + ⟦?m.29029⟧ +is not definitionally equal to the right-hand side + Option ?m.29027 +and_logic_and_logic_or_2_before and_logic_and_logic_or_2_after : Com InstCombine.LLVM ?m.29028 EffectKind.pure ?m.29029 +⊢ ⟦?m.29029⟧ = Option ?m.29027 +error: ././././SSA/Projects/InstCombine/tests/LLVM/gselecthfactorize.lean:379:40: cannot convert suffix of i/f to int: false +error: ././././SSA/Projects/InstCombine/tests/LLVM/gselecthfactorize.lean:380:40: expected i or f, found: true +error: ././././SSA/Projects/InstCombine/tests/LLVM/gselecthfactorize.lean:390:40: expected i or f, found: true +error: ././././SSA/Projects/InstCombine/tests/LLVM/gselecthfactorize.lean:391:40: cannot convert suffix of i/f to int: false +error: ././././SSA/Projects/InstCombine/tests/LLVM/gselecthfactorize.lean:397:41: could not synthesize default value for parameter 'h' using tactics +error: ././././SSA/Projects/InstCombine/tests/LLVM/gselecthfactorize.lean:397:41: tactic 'rfl' failed, the left-hand side + ⟦?m.31930⟧ +is not definitionally equal to the right-hand side + Option ?m.31928 +and_logic_and_logic_or_3_before and_logic_and_logic_or_3_after : Com InstCombine.LLVM ?m.31929 EffectKind.pure ?m.31930 +⊢ ⟦?m.31930⟧ = Option ?m.31928 +error: ././././SSA/Projects/InstCombine/tests/LLVM/gselecthfactorize.lean:415:40: cannot convert suffix of i/f to int: false +error: ././././SSA/Projects/InstCombine/tests/LLVM/gselecthfactorize.lean:416:40: expected i or f, found: true +error: ././././SSA/Projects/InstCombine/tests/LLVM/gselecthfactorize.lean:426:40: expected i or f, found: true +error: ././././SSA/Projects/InstCombine/tests/LLVM/gselecthfactorize.lean:427:40: cannot convert suffix of i/f to int: false +error: ././././SSA/Projects/InstCombine/tests/LLVM/gselecthfactorize.lean:433:41: could not synthesize default value for parameter 'h' using tactics +error: ././././SSA/Projects/InstCombine/tests/LLVM/gselecthfactorize.lean:433:41: tactic 'rfl' failed, the left-hand side + ⟦?m.34783⟧ +is not definitionally equal to the right-hand side + Option ?m.34781 +and_logic_and_logic_or_4_before and_logic_and_logic_or_4_after : Com InstCombine.LLVM ?m.34782 EffectKind.pure ?m.34783 +⊢ ⟦?m.34783⟧ = Option ?m.34781 +error: ././././SSA/Projects/InstCombine/tests/LLVM/gselecthfactorize.lean:451:40: cannot convert suffix of i/f to int: false +error: ././././SSA/Projects/InstCombine/tests/LLVM/gselecthfactorize.lean:452:40: expected i or f, found: true +error: ././././SSA/Projects/InstCombine/tests/LLVM/gselecthfactorize.lean:462:40: expected i or f, found: true +error: ././././SSA/Projects/InstCombine/tests/LLVM/gselecthfactorize.lean:463:40: cannot convert suffix of i/f to int: false +error: ././././SSA/Projects/InstCombine/tests/LLVM/gselecthfactorize.lean:469:41: could not synthesize default value for parameter 'h' using tactics +error: ././././SSA/Projects/InstCombine/tests/LLVM/gselecthfactorize.lean:469:41: tactic 'rfl' failed, the left-hand side + ⟦?m.37696⟧ +is not definitionally equal to the right-hand side + Option ?m.37694 +and_logic_and_logic_or_5_before and_logic_and_logic_or_5_after : Com InstCombine.LLVM ?m.37695 EffectKind.pure ?m.37696 +⊢ ⟦?m.37696⟧ = Option ?m.37694 +error: ././././SSA/Projects/InstCombine/tests/LLVM/gselecthfactorize.lean:487:40: cannot convert suffix of i/f to int: false +error: ././././SSA/Projects/InstCombine/tests/LLVM/gselecthfactorize.lean:488:40: expected i or f, found: true +error: ././././SSA/Projects/InstCombine/tests/LLVM/gselecthfactorize.lean:498:40: expected i or f, found: true +error: ././././SSA/Projects/InstCombine/tests/LLVM/gselecthfactorize.lean:504:41: could not synthesize default value for parameter 'h' using tactics +error: ././././SSA/Projects/InstCombine/tests/LLVM/gselecthfactorize.lean:504:41: tactic 'rfl' failed, the left-hand side + ⟦?m.40560⟧ +is not definitionally equal to the right-hand side + Option ?m.40558 +and_logic_and_logic_or_6_before and_logic_and_logic_or_6_after : Com InstCombine.LLVM ?m.40559 EffectKind.pure ?m.40560 +⊢ ⟦?m.40560⟧ = Option ?m.40558 +error: ././././SSA/Projects/InstCombine/tests/LLVM/gselecthfactorize.lean:522:40: cannot convert suffix of i/f to int: false +error: ././././SSA/Projects/InstCombine/tests/LLVM/gselecthfactorize.lean:523:40: expected i or f, found: true +error: ././././SSA/Projects/InstCombine/tests/LLVM/gselecthfactorize.lean:533:40: expected i or f, found: true +error: ././././SSA/Projects/InstCombine/tests/LLVM/gselecthfactorize.lean:534:40: cannot convert suffix of i/f to int: false +error: ././././SSA/Projects/InstCombine/tests/LLVM/gselecthfactorize.lean:540:41: could not synthesize default value for parameter 'h' using tactics +error: ././././SSA/Projects/InstCombine/tests/LLVM/gselecthfactorize.lean:540:41: tactic 'rfl' failed, the left-hand side + ⟦?m.43449⟧ +is not definitionally equal to the right-hand side + Option ?m.43447 +and_logic_and_logic_or_7_before and_logic_and_logic_or_7_after : Com InstCombine.LLVM ?m.43448 EffectKind.pure ?m.43449 +⊢ ⟦?m.43449⟧ = Option ?m.43447 +error: ././././SSA/Projects/InstCombine/tests/LLVM/gselecthfactorize.lean:558:40: cannot convert suffix of i/f to int: false +error: ././././SSA/Projects/InstCombine/tests/LLVM/gselecthfactorize.lean:559:40: expected i or f, found: true +error: ././././SSA/Projects/InstCombine/tests/LLVM/gselecthfactorize.lean:569:40: expected i or f, found: true +error: ././././SSA/Projects/InstCombine/tests/LLVM/gselecthfactorize.lean:575:41: could not synthesize default value for parameter 'h' using tactics +error: ././././SSA/Projects/InstCombine/tests/LLVM/gselecthfactorize.lean:575:41: tactic 'rfl' failed, the left-hand side + ⟦?m.46285⟧ +is not definitionally equal to the right-hand side + Option ?m.46283 +and_logic_and_logic_or_8_before and_logic_and_logic_or_8_after : Com InstCombine.LLVM ?m.46284 EffectKind.pure ?m.46285 +⊢ ⟦?m.46285⟧ = Option ?m.46283 +error: ././././SSA/Projects/InstCombine/tests/LLVM/gselecthfactorize.lean:593:40: expected i or f, found: true +error: ././././SSA/Projects/InstCombine/tests/LLVM/gselecthfactorize.lean:603:40: expected i or f, found: true +error: ././././SSA/Projects/InstCombine/tests/LLVM/gselecthfactorize.lean:609:35: could not synthesize default value for parameter 'h' using tactics +error: ././././SSA/Projects/InstCombine/tests/LLVM/gselecthfactorize.lean:609:35: tactic 'rfl' failed, the left-hand side + ⟦?m.49100⟧ +is not definitionally equal to the right-hand side + Option ?m.49098 +and_and_logic_or_1_before and_and_logic_or_1_after : Com InstCombine.LLVM ?m.49099 EffectKind.pure ?m.49100 +⊢ ⟦?m.49100⟧ = Option ?m.49098 +error: ././././SSA/Projects/InstCombine/tests/LLVM/gselecthfactorize.lean:627:40: expected i or f, found: true +error: ././././SSA/Projects/InstCombine/tests/LLVM/gselecthfactorize.lean:637:40: expected i or f, found: true +error: ././././SSA/Projects/InstCombine/tests/LLVM/gselecthfactorize.lean:643:35: could not synthesize default value for parameter 'h' using tactics +error: ././././SSA/Projects/InstCombine/tests/LLVM/gselecthfactorize.lean:643:35: tactic 'rfl' failed, the left-hand side + ⟦?m.51811⟧ +is not definitionally equal to the right-hand side + Option ?m.51809 +and_and_logic_or_2_before and_and_logic_or_2_after : Com InstCombine.LLVM ?m.51810 EffectKind.pure ?m.51811 +⊢ ⟦?m.51811⟧ = Option ?m.51809 +error: ././././SSA/Projects/InstCombine/tests/LLVM/gselecthfactorize.lean:661:40: expected i or f, found: true +error: ././././SSA/Projects/InstCombine/tests/LLVM/gselecthfactorize.lean:662:40: cannot convert suffix of i/f to int: false +error: ././././SSA/Projects/InstCombine/tests/LLVM/gselecthfactorize.lean:672:40: cannot convert suffix of i/f to int: false +error: ././././SSA/Projects/InstCombine/tests/LLVM/gselecthfactorize.lean:673:40: expected i or f, found: true +error: ././././SSA/Projects/InstCombine/tests/LLVM/gselecthfactorize.lean:679:37: could not synthesize default value for parameter 'h' using tactics +error: ././././SSA/Projects/InstCombine/tests/LLVM/gselecthfactorize.lean:679:37: tactic 'rfl' failed, the left-hand side + ⟦?m.54653⟧ +is not definitionally equal to the right-hand side + Option ?m.54651 +logic_or_logic_and_1_before logic_or_logic_and_1_after : Com InstCombine.LLVM ?m.54652 EffectKind.pure ?m.54653 +⊢ ⟦?m.54653⟧ = Option ?m.54651 +error: ././././SSA/Projects/InstCombine/tests/LLVM/gselecthfactorize.lean:697:40: expected i or f, found: true +error: ././././SSA/Projects/InstCombine/tests/LLVM/gselecthfactorize.lean:698:40: cannot convert suffix of i/f to int: false +error: ././././SSA/Projects/InstCombine/tests/LLVM/gselecthfactorize.lean:708:40: cannot convert suffix of i/f to int: false +error: ././././SSA/Projects/InstCombine/tests/LLVM/gselecthfactorize.lean:709:40: expected i or f, found: true +error: ././././SSA/Projects/InstCombine/tests/LLVM/gselecthfactorize.lean:715:37: could not synthesize default value for parameter 'h' using tactics +error: ././././SSA/Projects/InstCombine/tests/LLVM/gselecthfactorize.lean:715:37: tactic 'rfl' failed, the left-hand side + ⟦?m.57507⟧ +is not definitionally equal to the right-hand side + Option ?m.57505 +logic_or_logic_and_2_before logic_or_logic_and_2_after : Com InstCombine.LLVM ?m.57506 EffectKind.pure ?m.57507 +⊢ ⟦?m.57507⟧ = Option ?m.57505 +error: ././././SSA/Projects/InstCombine/tests/LLVM/gselecthfactorize.lean:733:40: expected i or f, found: true +error: ././././SSA/Projects/InstCombine/tests/LLVM/gselecthfactorize.lean:734:40: cannot convert suffix of i/f to int: false +error: ././././SSA/Projects/InstCombine/tests/LLVM/gselecthfactorize.lean:744:40: cannot convert suffix of i/f to int: false +error: ././././SSA/Projects/InstCombine/tests/LLVM/gselecthfactorize.lean:745:40: expected i or f, found: true +error: ././././SSA/Projects/InstCombine/tests/LLVM/gselecthfactorize.lean:751:37: could not synthesize default value for parameter 'h' using tactics +error: ././././SSA/Projects/InstCombine/tests/LLVM/gselecthfactorize.lean:751:37: tactic 'rfl' failed, the left-hand side + ⟦?m.60361⟧ +is not definitionally equal to the right-hand side + Option ?m.60359 +logic_or_logic_and_3_before logic_or_logic_and_3_after : Com InstCombine.LLVM ?m.60360 EffectKind.pure ?m.60361 +⊢ ⟦?m.60361⟧ = Option ?m.60359 +error: ././././SSA/Projects/InstCombine/tests/LLVM/gselecthfactorize.lean:769:40: expected i or f, found: true +error: ././././SSA/Projects/InstCombine/tests/LLVM/gselecthfactorize.lean:770:40: cannot convert suffix of i/f to int: false +error: ././././SSA/Projects/InstCombine/tests/LLVM/gselecthfactorize.lean:780:40: cannot convert suffix of i/f to int: false +error: ././././SSA/Projects/InstCombine/tests/LLVM/gselecthfactorize.lean:781:40: expected i or f, found: true +error: ././././SSA/Projects/InstCombine/tests/LLVM/gselecthfactorize.lean:787:37: could not synthesize default value for parameter 'h' using tactics +error: ././././SSA/Projects/InstCombine/tests/LLVM/gselecthfactorize.lean:787:37: tactic 'rfl' failed, the left-hand side + ⟦?m.63155⟧ +is not definitionally equal to the right-hand side + Option ?m.63153 +logic_or_logic_and_4_before logic_or_logic_and_4_after : Com InstCombine.LLVM ?m.63154 EffectKind.pure ?m.63155 +⊢ ⟦?m.63155⟧ = Option ?m.63153 +error: ././././SSA/Projects/InstCombine/tests/LLVM/gselecthfactorize.lean:805:40: expected i or f, found: true +error: ././././SSA/Projects/InstCombine/tests/LLVM/gselecthfactorize.lean:806:40: cannot convert suffix of i/f to int: false +error: ././././SSA/Projects/InstCombine/tests/LLVM/gselecthfactorize.lean:816:40: cannot convert suffix of i/f to int: false +error: ././././SSA/Projects/InstCombine/tests/LLVM/gselecthfactorize.lean:817:40: expected i or f, found: true +error: ././././SSA/Projects/InstCombine/tests/LLVM/gselecthfactorize.lean:823:37: could not synthesize default value for parameter 'h' using tactics +error: ././././SSA/Projects/InstCombine/tests/LLVM/gselecthfactorize.lean:823:37: tactic 'rfl' failed, the left-hand side + ⟦?m.65997⟧ +is not definitionally equal to the right-hand side + Option ?m.65995 +logic_or_logic_and_5_before logic_or_logic_and_5_after : Com InstCombine.LLVM ?m.65996 EffectKind.pure ?m.65997 +⊢ ⟦?m.65997⟧ = Option ?m.65995 +error: ././././SSA/Projects/InstCombine/tests/LLVM/gselecthfactorize.lean:841:40: expected i or f, found: true +error: ././././SSA/Projects/InstCombine/tests/LLVM/gselecthfactorize.lean:842:40: cannot convert suffix of i/f to int: false +error: ././././SSA/Projects/InstCombine/tests/LLVM/gselecthfactorize.lean:852:40: cannot convert suffix of i/f to int: false +error: ././././SSA/Projects/InstCombine/tests/LLVM/gselecthfactorize.lean:853:40: expected i or f, found: true +error: ././././SSA/Projects/InstCombine/tests/LLVM/gselecthfactorize.lean:859:37: could not synthesize default value for parameter 'h' using tactics +error: ././././SSA/Projects/InstCombine/tests/LLVM/gselecthfactorize.lean:859:37: tactic 'rfl' failed, the left-hand side + ⟦?m.68851⟧ +is not definitionally equal to the right-hand side + Option ?m.68849 +logic_or_logic_and_6_before logic_or_logic_and_6_after : Com InstCombine.LLVM ?m.68850 EffectKind.pure ?m.68851 +⊢ ⟦?m.68851⟧ = Option ?m.68849 +error: ././././SSA/Projects/InstCombine/tests/LLVM/gselecthfactorize.lean:877:40: expected i or f, found: true +error: ././././SSA/Projects/InstCombine/tests/LLVM/gselecthfactorize.lean:878:40: cannot convert suffix of i/f to int: false +error: ././././SSA/Projects/InstCombine/tests/LLVM/gselecthfactorize.lean:888:40: cannot convert suffix of i/f to int: false +error: ././././SSA/Projects/InstCombine/tests/LLVM/gselecthfactorize.lean:889:40: expected i or f, found: true +error: ././././SSA/Projects/InstCombine/tests/LLVM/gselecthfactorize.lean:895:37: could not synthesize default value for parameter 'h' using tactics +error: ././././SSA/Projects/InstCombine/tests/LLVM/gselecthfactorize.lean:895:37: tactic 'rfl' failed, the left-hand side + ⟦?m.71657⟧ +is not definitionally equal to the right-hand side + Option ?m.71655 +logic_or_logic_and_7_before logic_or_logic_and_7_after : Com InstCombine.LLVM ?m.71656 EffectKind.pure ?m.71657 +⊢ ⟦?m.71657⟧ = Option ?m.71655 +error: ././././SSA/Projects/InstCombine/tests/LLVM/gselecthfactorize.lean:913:40: expected i or f, found: true +error: ././././SSA/Projects/InstCombine/tests/LLVM/gselecthfactorize.lean:914:40: cannot convert suffix of i/f to int: false +error: ././././SSA/Projects/InstCombine/tests/LLVM/gselecthfactorize.lean:924:40: cannot convert suffix of i/f to int: false +error: ././././SSA/Projects/InstCombine/tests/LLVM/gselecthfactorize.lean:925:40: expected i or f, found: true +error: ././././SSA/Projects/InstCombine/tests/LLVM/gselecthfactorize.lean:931:37: could not synthesize default value for parameter 'h' using tactics +error: ././././SSA/Projects/InstCombine/tests/LLVM/gselecthfactorize.lean:931:37: tactic 'rfl' failed, the left-hand side + ⟦?m.74499⟧ +is not definitionally equal to the right-hand side + Option ?m.74497 +logic_or_logic_and_8_before logic_or_logic_and_8_after : Com InstCombine.LLVM ?m.74498 EffectKind.pure ?m.74499 +⊢ ⟦?m.74499⟧ = Option ?m.74497 +error: ././././SSA/Projects/InstCombine/tests/LLVM/gselecthfactorize.lean:949:40: expected i or f, found: true +error: ././././SSA/Projects/InstCombine/tests/LLVM/gselecthfactorize.lean:950:40: cannot convert suffix of i/f to int: false +error: ././././SSA/Projects/InstCombine/tests/LLVM/gselecthfactorize.lean:960:40: cannot convert suffix of i/f to int: false +error: ././././SSA/Projects/InstCombine/tests/LLVM/gselecthfactorize.lean:961:40: expected i or f, found: true +error: ././././SSA/Projects/InstCombine/tests/LLVM/gselecthfactorize.lean:967:40: could not synthesize default value for parameter 'h' using tactics +error: ././././SSA/Projects/InstCombine/tests/LLVM/gselecthfactorize.lean:967:40: tactic 'rfl' failed, the left-hand side + ⟦?m.77288⟧ +is not definitionally equal to the right-hand side + Option ?m.77286 +or_logic_or_logic_and_1_before or_logic_or_logic_and_1_after : Com InstCombine.LLVM ?m.77287 EffectKind.pure ?m.77288 +⊢ ⟦?m.77288⟧ = Option ?m.77286 +error: ././././SSA/Projects/InstCombine/tests/LLVM/gselecthfactorize.lean:985:40: expected i or f, found: true +error: ././././SSA/Projects/InstCombine/tests/LLVM/gselecthfactorize.lean:986:40: cannot convert suffix of i/f to int: false +error: ././././SSA/Projects/InstCombine/tests/LLVM/gselecthfactorize.lean:996:40: cannot convert suffix of i/f to int: false +error: ././././SSA/Projects/InstCombine/tests/LLVM/gselecthfactorize.lean:997:40: expected i or f, found: true +error: ././././SSA/Projects/InstCombine/tests/LLVM/gselecthfactorize.lean:1003:40: could not synthesize default value for parameter 'h' using tactics +error: ././././SSA/Projects/InstCombine/tests/LLVM/gselecthfactorize.lean:1003:40: tactic 'rfl' failed, the left-hand side + ⟦?m.80125⟧ +is not definitionally equal to the right-hand side + Option ?m.80123 +or_logic_or_logic_and_2_before or_logic_or_logic_and_2_after : Com InstCombine.LLVM ?m.80124 EffectKind.pure ?m.80125 +⊢ ⟦?m.80125⟧ = Option ?m.80123 +error: ././././SSA/Projects/InstCombine/tests/LLVM/gselecthfactorize.lean:1021:40: expected i or f, found: true +error: ././././SSA/Projects/InstCombine/tests/LLVM/gselecthfactorize.lean:1022:40: cannot convert suffix of i/f to int: false +error: ././././SSA/Projects/InstCombine/tests/LLVM/gselecthfactorize.lean:1032:40: cannot convert suffix of i/f to int: false +error: ././././SSA/Projects/InstCombine/tests/LLVM/gselecthfactorize.lean:1033:40: expected i or f, found: true +error: ././././SSA/Projects/InstCombine/tests/LLVM/gselecthfactorize.lean:1039:40: could not synthesize default value for parameter 'h' using tactics +error: ././././SSA/Projects/InstCombine/tests/LLVM/gselecthfactorize.lean:1039:40: tactic 'rfl' failed, the left-hand side + ⟦?m.82950⟧ +is not definitionally equal to the right-hand side + Option ?m.82948 +or_logic_or_logic_and_3_before or_logic_or_logic_and_3_after : Com InstCombine.LLVM ?m.82949 EffectKind.pure ?m.82950 +⊢ ⟦?m.82950⟧ = Option ?m.82948 +error: ././././SSA/Projects/InstCombine/tests/LLVM/gselecthfactorize.lean:1057:40: expected i or f, found: true +error: ././././SSA/Projects/InstCombine/tests/LLVM/gselecthfactorize.lean:1058:40: cannot convert suffix of i/f to int: false +error: ././././SSA/Projects/InstCombine/tests/LLVM/gselecthfactorize.lean:1068:40: cannot convert suffix of i/f to int: false +error: ././././SSA/Projects/InstCombine/tests/LLVM/gselecthfactorize.lean:1074:40: could not synthesize default value for parameter 'h' using tactics +error: ././././SSA/Projects/InstCombine/tests/LLVM/gselecthfactorize.lean:1074:40: tactic 'rfl' failed, the left-hand side + ⟦?m.85690⟧ +is not definitionally equal to the right-hand side + Option ?m.85688 +or_logic_or_logic_and_4_before or_logic_or_logic_and_4_after : Com InstCombine.LLVM ?m.85689 EffectKind.pure ?m.85690 +⊢ ⟦?m.85690⟧ = Option ?m.85688 +error: ././././SSA/Projects/InstCombine/tests/LLVM/gselecthfactorize.lean:1092:40: expected i or f, found: true +error: ././././SSA/Projects/InstCombine/tests/LLVM/gselecthfactorize.lean:1093:40: cannot convert suffix of i/f to int: false +error: ././././SSA/Projects/InstCombine/tests/LLVM/gselecthfactorize.lean:1103:40: cannot convert suffix of i/f to int: false +error: ././././SSA/Projects/InstCombine/tests/LLVM/gselecthfactorize.lean:1104:40: expected i or f, found: true +error: ././././SSA/Projects/InstCombine/tests/LLVM/gselecthfactorize.lean:1110:40: could not synthesize default value for parameter 'h' using tactics +error: ././././SSA/Projects/InstCombine/tests/LLVM/gselecthfactorize.lean:1110:40: tactic 'rfl' failed, the left-hand side + ⟦?m.88527⟧ +is not definitionally equal to the right-hand side + Option ?m.88525 +or_logic_or_logic_and_5_before or_logic_or_logic_and_5_after : Com InstCombine.LLVM ?m.88526 EffectKind.pure ?m.88527 +⊢ ⟦?m.88527⟧ = Option ?m.88525 +error: ././././SSA/Projects/InstCombine/tests/LLVM/gselecthfactorize.lean:1128:40: expected i or f, found: true +error: ././././SSA/Projects/InstCombine/tests/LLVM/gselecthfactorize.lean:1129:40: cannot convert suffix of i/f to int: false +error: ././././SSA/Projects/InstCombine/tests/LLVM/gselecthfactorize.lean:1139:40: cannot convert suffix of i/f to int: false +error: ././././SSA/Projects/InstCombine/tests/LLVM/gselecthfactorize.lean:1140:40: expected i or f, found: true +error: ././././SSA/Projects/InstCombine/tests/LLVM/gselecthfactorize.lean:1146:40: could not synthesize default value for parameter 'h' using tactics +error: ././././SSA/Projects/InstCombine/tests/LLVM/gselecthfactorize.lean:1146:40: tactic 'rfl' failed, the left-hand side + ⟦?m.91352⟧ +is not definitionally equal to the right-hand side + Option ?m.91350 +or_logic_or_logic_and_6_before or_logic_or_logic_and_6_after : Com InstCombine.LLVM ?m.91351 EffectKind.pure ?m.91352 +⊢ ⟦?m.91352⟧ = Option ?m.91350 +error: ././././SSA/Projects/InstCombine/tests/LLVM/gselecthfactorize.lean:1164:40: expected i or f, found: true +error: ././././SSA/Projects/InstCombine/tests/LLVM/gselecthfactorize.lean:1165:40: cannot convert suffix of i/f to int: false +error: ././././SSA/Projects/InstCombine/tests/LLVM/gselecthfactorize.lean:1175:40: cannot convert suffix of i/f to int: false +error: ././././SSA/Projects/InstCombine/tests/LLVM/gselecthfactorize.lean:1176:40: expected i or f, found: true +error: ././././SSA/Projects/InstCombine/tests/LLVM/gselecthfactorize.lean:1182:40: could not synthesize default value for parameter 'h' using tactics +error: ././././SSA/Projects/InstCombine/tests/LLVM/gselecthfactorize.lean:1182:40: tactic 'rfl' failed, the left-hand side + ⟦?m.94189⟧ +is not definitionally equal to the right-hand side + Option ?m.94187 +or_logic_or_logic_and_7_before or_logic_or_logic_and_7_after : Com InstCombine.LLVM ?m.94188 EffectKind.pure ?m.94189 +⊢ ⟦?m.94189⟧ = Option ?m.94187 +error: ././././SSA/Projects/InstCombine/tests/LLVM/gselecthfactorize.lean:1200:40: expected i or f, found: true +error: ././././SSA/Projects/InstCombine/tests/LLVM/gselecthfactorize.lean:1201:40: cannot convert suffix of i/f to int: false +error: ././././SSA/Projects/InstCombine/tests/LLVM/gselecthfactorize.lean:1211:40: cannot convert suffix of i/f to int: false +error: ././././SSA/Projects/InstCombine/tests/LLVM/gselecthfactorize.lean:1217:40: could not synthesize default value for parameter 'h' using tactics +error: ././././SSA/Projects/InstCombine/tests/LLVM/gselecthfactorize.lean:1217:40: tactic 'rfl' failed, the left-hand side + ⟦?m.96977⟧ +is not definitionally equal to the right-hand side + Option ?m.96975 +or_logic_or_logic_and_8_before or_logic_or_logic_and_8_after : Com InstCombine.LLVM ?m.96976 EffectKind.pure ?m.96977 +⊢ ⟦?m.96977⟧ = Option ?m.96975 +error: ././././SSA/Projects/InstCombine/tests/LLVM/gselecthfactorize.lean:1235:40: cannot convert suffix of i/f to int: false +error: ././././SSA/Projects/InstCombine/tests/LLVM/gselecthfactorize.lean:1245:40: cannot convert suffix of i/f to int: false +error: ././././SSA/Projects/InstCombine/tests/LLVM/gselecthfactorize.lean:1251:34: could not synthesize default value for parameter 'h' using tactics +error: ././././SSA/Projects/InstCombine/tests/LLVM/gselecthfactorize.lean:1251:34: tactic 'rfl' failed, the left-hand side + ⟦?m.99716⟧ +is not definitionally equal to the right-hand side + Option ?m.99714 +or_or_logic_and_1_before or_or_logic_and_1_after : Com InstCombine.LLVM ?m.99715 EffectKind.pure ?m.99716 +⊢ ⟦?m.99716⟧ = Option ?m.99714 +error: ././././SSA/Projects/InstCombine/tests/LLVM/gselecthfactorize.lean:1269:40: cannot convert suffix of i/f to int: false +error: ././././SSA/Projects/InstCombine/tests/LLVM/gselecthfactorize.lean:1279:40: cannot convert suffix of i/f to int: false +error: ././././SSA/Projects/InstCombine/tests/LLVM/gselecthfactorize.lean:1285:34: could not synthesize default value for parameter 'h' using tactics +error: ././././SSA/Projects/InstCombine/tests/LLVM/gselecthfactorize.lean:1285:34: tactic 'rfl' failed, the left-hand side + ⟦?m.102395⟧ +is not definitionally equal to the right-hand side + Option ?m.102393 +or_or_logic_and_2_before or_or_logic_and_2_after : Com InstCombine.LLVM ?m.102394 EffectKind.pure ?m.102395 +⊢ ⟦?m.102395⟧ = Option ?m.102393 +error: Lean exited with code 1 +Some required builds logged failures: +- SSA.Projects.InstCombine.tests.LLVM.gselecthfactorize +error: build failed diff --git a/SSA/Projects/InstCombine/tests/logs/gselecthsafehboolhtransforms_proof.txt b/SSA/Projects/InstCombine/tests/logs/gselecthsafehboolhtransforms_proof.txt new file mode 100644 index 000000000..a43e54668 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/gselecthsafehboolhtransforms_proof.txt @@ -0,0 +1,598 @@ +⚠ [49/2462] Replayed Mathlib.Logic.Basic +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Basic.lean:155:8: `dec_em'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Basic.lean:159:8: `em'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Basic.lean:304:8: `or_congr_left'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Basic.lean:307:8: `or_congr_right'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Basic.lean:320:8: `imp_or'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Basic.lean:359:8: `xor_iff_not_iff'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Basic.lean:418:8: `eqRec_heq'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Basic.lean:511:8: `forall_true_iff'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Basic.lean:532:8: `exists_apply_eq_apply'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Basic.lean:539:6: `exists_apply_eq_apply2'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Basic.lean:548:6: `exists_apply_eq_apply3'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Basic.lean:575:8: `forall_apply_eq_imp_iff'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Basic.lean:578:8: `forall_eq_apply_imp_iff'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Basic.lean:638:8: `forall_prop_congr'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Basic.lean:711:6: `Classical.choose_eq'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Basic.lean:847:8: `dite_eq_iff'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Basic.lean:851:8: `ite_eq_iff'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +⚠ [66/2462] Replayed Mathlib.Algebra.NeZero +warning: ././.lake/packages/mathlib/././Mathlib/Algebra/NeZero.lean:44:6: `zero_ne_one'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Algebra/NeZero.lean:46:6: `one_ne_zero'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Algebra/NeZero.lean:48:6: `two_ne_zero'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Algebra/NeZero.lean:50:6: `three_ne_zero'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Algebra/NeZero.lean:52:6: `four_ne_zero'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +⚠ [69/2462] Replayed Mathlib.Logic.ExistsUnique +warning: ././.lake/packages/mathlib/././Mathlib/Logic/ExistsUnique.lean:109:16: `exists_unique_eq'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +⚠ [74/2462] Replayed Mathlib.Logic.Function.Basic +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Function/Basic.lean:78:8: `Function.Injective.eq_iff'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Function/Basic.lean:87:8: `Function.Injective.ne_iff'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Function/Basic.lean:117:8: `Function.Injective.of_comp_iff'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Function/Basic.lean:163:8: `Function.Surjective.of_comp_iff'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Function/Basic.lean:237:8: `Function.Bijective.of_comp_iff'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Function/Basic.lean:541:8: `Function.update_comp_eq_of_forall_ne'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Function/Basic.lean:552:8: `Function.update_comp_eq_of_injective'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Function/Basic.lean:649:8: `Function.extend_apply'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Function/Basic.lean:681:8: `Function.Injective.surjective_comp_right'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +⚠ [94/2462] Replayed Mathlib.Control.Combinators +warning: ././.lake/packages/mathlib/././Mathlib/Control/Combinators.lean:35:4: `Monad.mapM'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Control/Combinators.lean:57:4: `Monad.sequence'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +⚠ [96/2462] Replayed Mathlib.Logic.IsEmpty +warning: ././.lake/packages/mathlib/././Mathlib/Logic/IsEmpty.lean:36:9: `Fin.isEmpty'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +⚠ [229/2462] Replayed Mathlib.Data.Prod.PProd +warning: ././.lake/packages/mathlib/././Mathlib/Data/Prod/PProd.lean:35:8: `PProd.forall'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Data/Prod/PProd.lean:38:8: `PProd.exists'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +⚠ [230/2462] Replayed Mathlib.Data.Bool.Basic +warning: ././.lake/packages/mathlib/././Mathlib/Data/Bool/Basic.lean:156:8: `Bool.eq_true_of_not_eq_false'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Data/Bool/Basic.lean:159:8: `Bool.eq_false_of_not_eq_true'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +⚠ [232/2462] Replayed Mathlib.Logic.Function.Iterate +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Function/Iterate.lean:160:8: `Function.iterate_succ'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Function/Iterate.lean:163:8: `Function.iterate_succ_apply'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +⚠ [234/2462] Replayed Mathlib.Data.Prod.Basic +warning: ././.lake/packages/mathlib/././Mathlib/Data/Prod/Basic.lean:31:8: `Prod.forall'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Data/Prod/Basic.lean:34:8: `Prod.exists'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Data/Prod/Basic.lean:51:8: `Prod.map_apply'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Data/Prod/Basic.lean:54:8: `Prod.map_fst'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Data/Prod/Basic.lean:57:8: `Prod.map_snd'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +⚠ [235/2462] Replayed Mathlib.Data.Sigma.Basic +warning: ././.lake/packages/mathlib/././Mathlib/Data/Sigma/Basic.lean:90:6: `Sigma.exists'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Data/Sigma/Basic.lean:93:6: `Sigma.forall'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +⚠ [239/2462] Replayed Mathlib.Data.FunLike.Basic +warning: ././.lake/packages/mathlib/././Mathlib/Data/FunLike/Basic.lean:187:8: `DFunLike.ext'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +⚠ [244/2462] Replayed Mathlib.Logic.Relation +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Relation.lean:351:8: `Relation.TransGen.head'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Relation.lean:354:8: `Relation.TransGen.tail'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Relation.lean:444:8: `Relation.TransGen.lift'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Relation.lean:453:6: `Relation.TransGen.closed'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Relation.lean:523:8: `Relation.ReflTransGen.lift'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +⚠ [245/2462] Replayed Mathlib.Logic.Unique +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Unique.lean:131:18: `Unique.subsingleton_unique'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Unique.lean:259:9: `Unique.subtypeEq'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +⚠ [252/2462] Replayed Mathlib.Data.Quot +warning: ././.lake/packages/mathlib/././Mathlib/Data/Quot.lean:558:18: `Quotient.liftOn'_mk''` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Data/Quot.lean:562:14: `Quotient.surjective_liftOn'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Data/Quot.lean:573:18: `Quotient.liftOn₂'_mk''` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Data/Quot.lean:639:8: `Quotient.hrecOn'_mk''` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Data/Quot.lean:652:8: `Quotient.hrecOn₂'_mk''` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Data/Quot.lean:664:8: `Quotient.map'_mk''` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Data/Quot.lean:674:8: `Quotient.map₂'_mk''` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Data/Quot.lean:679:8: `Quotient.exact'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Data/Quot.lean:683:8: `Quotient.sound'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Data/Quot.lean:687:18: `Quotient.eq'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Data/Quot.lean:692:18: `Quotient.eq''` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Data/Quot.lean:701:8: `Quotient.out_eq'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Data/Quot.lean:704:8: `Quotient.mk_out'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +⚠ [256/2462] Replayed Mathlib.Tactic.Lift +warning: ././.lake/packages/mathlib/././Mathlib/Tactic/Lift.lean:49:9: `PiSubtype.canLift'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +⚠ [409/2462] Replayed Mathlib.Algebra.Group.Defs +warning: ././.lake/packages/mathlib/././Mathlib/Algebra/Group/Defs.lean:735:33: `pow_succ'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Algebra/Group/Defs.lean:740:6: `pow_mul_comm'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Algebra/Group/Defs.lean:749:6: `pow_three'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Algebra/Group/Defs.lean:772:6: `pow_mul'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +⚠ [443/2462] Replayed Mathlib.Data.List.Defs +warning: ././.lake/packages/mathlib/././Mathlib/Data/List/Defs.lean:241:9: `List.decidableChain'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +⚠ [474/2462] Replayed Mathlib.Control.Applicative +warning: ././.lake/packages/mathlib/././Mathlib/Control/Applicative.lean:34:8: `Applicative.pure_seq_eq_map'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +⚠ [475/2462] Replayed Mathlib.Control.Traversable.Basic +warning: ././.lake/packages/mathlib/././Mathlib/Control/Traversable/Basic.lean:139:8: `ApplicativeTransformation.preserves_map'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +⚠ [618/2462] Replayed Mathlib.Algebra.GroupWithZero.Defs +warning: ././.lake/packages/mathlib/././Mathlib/Algebra/GroupWithZero/Defs.lean:110:8: `mul_left_inj'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Algebra/GroupWithZero/Defs.lean:113:8: `mul_right_inj'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +⚠ [624/2462] Replayed Mathlib.Algebra.Group.Invertible.Defs +warning: ././.lake/packages/mathlib/././Mathlib/Algebra/Group/Invertible/Defs.lean:97:8: `invOf_mul_self'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Algebra/Group/Invertible/Defs.lean:103:8: `mul_invOf_self'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Algebra/Group/Invertible/Defs.lean:109:8: `invOf_mul_cancel_left'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Algebra/Group/Invertible/Defs.lean:120:8: `mul_invOf_cancel_left'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Algebra/Group/Invertible/Defs.lean:131:8: `invOf_mul_cancel_right'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Algebra/Group/Invertible/Defs.lean:142:8: `mul_invOf_cancel_right'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Algebra/Group/Invertible/Defs.lean:198:8: `invOf_one'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +⚠ [1184/2462] Replayed Mathlib.Control.Traversable.Lemmas +warning: ././.lake/packages/mathlib/././Mathlib/Control/Traversable/Lemmas.lean:87:8: `Traversable.naturality'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Control/Traversable/Lemmas.lean:102:8: `Traversable.traverse_eq_map_id'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Control/Traversable/Lemmas.lean:108:8: `Traversable.traverse_map'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Control/Traversable/Lemmas.lean:113:8: `Traversable.map_traverse'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +⚠ [2407/2462] Replayed Mathlib.Data.List.EditDistance.Defs +warning: ././.lake/packages/mathlib/././Mathlib/Data/List/EditDistance/Defs.lean:214:8: `suffixLevenshtein_nil'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +⚠ [2447/2462] Replayed SSA.Experimental.Bits.Fast.FiniteStateMachine +warning: ././././SSA/Experimental/Bits/Fast/FiniteStateMachine.lean:107:8: declaration uses 'sorry' +warning: ././././SSA/Experimental/Bits/Fast/FiniteStateMachine.lean:825:8: declaration uses 'sorry' +⚠ [2451/2462] Replayed SSA.Experimental.Bits.Fast.Tactic +warning: ././././SSA/Experimental/Bits/Fast/Tactic.lean:340:4: declaration uses 'sorry' +⚠ [2452/2462] Replayed SSA.Experimental.Bits.AutoStructs.ForLean +warning: ././././SSA/Experimental/Bits/AutoStructs/ForLean.lean:24:8: declaration uses 'sorry' +warning: ././././SSA/Experimental/Bits/AutoStructs/ForLean.lean:27:8: declaration uses 'sorry' +warning: ././././SSA/Experimental/Bits/AutoStructs/ForLean.lean:29:8: declaration uses 'sorry' +warning: ././././SSA/Experimental/Bits/AutoStructs/ForLean.lean:31:8: declaration uses 'sorry' +warning: ././././SSA/Experimental/Bits/AutoStructs/ForLean.lean:34:8: declaration uses 'sorry' +warning: ././././SSA/Experimental/Bits/AutoStructs/ForLean.lean:36:8: declaration uses 'sorry' +warning: ././././SSA/Experimental/Bits/AutoStructs/ForLean.lean:38:8: declaration uses 'sorry' +warning: ././././SSA/Experimental/Bits/AutoStructs/ForLean.lean:41:8: declaration uses 'sorry' +warning: ././././SSA/Experimental/Bits/AutoStructs/ForLean.lean:52:8: declaration uses 'sorry' +warning: ././././SSA/Experimental/Bits/AutoStructs/ForLean.lean:56:8: declaration uses 'sorry' +⚠ [2457/2462] Replayed SSA.Experimental.Bits.AutoStructs.Constructions +warning: ././././SSA/Experimental/Bits/AutoStructs/Constructions.lean:55:6: declaration uses 'sorry' +warning: ././././SSA/Experimental/Bits/AutoStructs/Constructions.lean:128:6: declaration uses 'sorry' +warning: ././././SSA/Experimental/Bits/AutoStructs/Constructions.lean:163:6: declaration uses 'sorry' +warning: ././././SSA/Experimental/Bits/AutoStructs/Constructions.lean:197:6: declaration uses 'sorry' +⚠ [2458/2462] Replayed SSA.Experimental.Bits.AutoStructs.FiniteStateMachine +warning: ././././SSA/Experimental/Bits/AutoStructs/FiniteStateMachine.lean:111:8: declaration uses 'sorry' +✖ [2462/2462] Building SSA.Projects.InstCombine.tests.LLVM.gselecthsafehboolhtransforms +trace: .> LEAN_PATH=././.lake/packages/batteries/.lake/build/lib:././.lake/packages/Qq/.lake/build/lib:././.lake/packages/aesop/.lake/build/lib:././.lake/packages/proofwidgets/.lake/build/lib:././.lake/packages/Cli/.lake/build/lib:././.lake/packages/importGraph/.lake/build/lib:././.lake/packages/LeanSearchClient/.lake/build/lib:././.lake/packages/mathlib/.lake/build/lib:././.lake/packages/MD4Lean/.lake/build/lib:././.lake/packages/UnicodeBasic/.lake/build/lib:././.lake/packages/BibtexQuery/.lake/build/lib:././.lake/packages/doc-gen4/.lake/build/lib:././.lake/packages/leanwuzla/.lake/build/lib:././.lake/build/lib LD_LIBRARY_PATH= /home/lfrenot/.elan/toolchains/leanprover--lean4---nightly-2024-10-17/bin/lean ././././SSA/Projects/InstCombine/tests/LLVM/gselecthsafehboolhtransforms.lean -R ./././. -o ././.lake/build/lib/SSA/Projects/InstCombine/tests/LLVM/gselecthsafehboolhtransforms.olean -i ././.lake/build/lib/SSA/Projects/InstCombine/tests/LLVM/gselecthsafehboolhtransforms.ilean -c ././.lake/build/ir/SSA/Projects/InstCombine/tests/LLVM/gselecthsafehboolhtransforms.c --json +error: ././././SSA/Projects/InstCombine/tests/LLVM/gselecthsafehboolhtransforms.lean:19:40: cannot convert suffix of i/f to int: false +error: ././././SSA/Projects/InstCombine/tests/LLVM/gselecthsafehboolhtransforms.lean:28:40: cannot convert suffix of i/f to int: false +error: ././././SSA/Projects/InstCombine/tests/LLVM/gselecthsafehboolhtransforms.lean:33:32: could not synthesize default value for parameter 'h' using tactics +error: ././././SSA/Projects/InstCombine/tests/LLVM/gselecthsafehboolhtransforms.lean:33:32: tactic 'rfl' failed, the left-hand side + ⟦?m.2265⟧ +is not definitionally equal to the right-hand side + Option ?m.2263 +land_land_left1_before land_land_left1_after : Com InstCombine.LLVM ?m.2264 EffectKind.pure ?m.2265 +⊢ ⟦?m.2265⟧ = Option ?m.2263 +error: ././././SSA/Projects/InstCombine/tests/LLVM/gselecthsafehboolhtransforms.lean:51:40: cannot convert suffix of i/f to int: false +error: ././././SSA/Projects/InstCombine/tests/LLVM/gselecthsafehboolhtransforms.lean:60:40: cannot convert suffix of i/f to int: false +error: ././././SSA/Projects/InstCombine/tests/LLVM/gselecthsafehboolhtransforms.lean:65:32: could not synthesize default value for parameter 'h' using tactics +error: ././././SSA/Projects/InstCombine/tests/LLVM/gselecthsafehboolhtransforms.lean:65:32: tactic 'rfl' failed, the left-hand side + ⟦?m.4551⟧ +is not definitionally equal to the right-hand side + Option ?m.4549 +land_land_left2_before land_land_left2_after : Com InstCombine.LLVM ?m.4550 EffectKind.pure ?m.4551 +⊢ ⟦?m.4551⟧ = Option ?m.4549 +error: ././././SSA/Projects/InstCombine/tests/LLVM/gselecthsafehboolhtransforms.lean:83:40: cannot convert suffix of i/f to int: false +error: ././././SSA/Projects/InstCombine/tests/LLVM/gselecthsafehboolhtransforms.lean:92:40: cannot convert suffix of i/f to int: false +error: ././././SSA/Projects/InstCombine/tests/LLVM/gselecthsafehboolhtransforms.lean:97:32: could not synthesize default value for parameter 'h' using tactics +error: ././././SSA/Projects/InstCombine/tests/LLVM/gselecthsafehboolhtransforms.lean:97:32: tactic 'rfl' failed, the left-hand side + ⟦?m.6788⟧ +is not definitionally equal to the right-hand side + Option ?m.6786 +land_band_left1_before land_band_left1_after : Com InstCombine.LLVM ?m.6787 EffectKind.pure ?m.6788 +⊢ ⟦?m.6788⟧ = Option ?m.6786 +error: ././././SSA/Projects/InstCombine/tests/LLVM/gselecthsafehboolhtransforms.lean:115:40: cannot convert suffix of i/f to int: false +error: ././././SSA/Projects/InstCombine/tests/LLVM/gselecthsafehboolhtransforms.lean:124:40: cannot convert suffix of i/f to int: false +error: ././././SSA/Projects/InstCombine/tests/LLVM/gselecthsafehboolhtransforms.lean:129:32: could not synthesize default value for parameter 'h' using tactics +error: ././././SSA/Projects/InstCombine/tests/LLVM/gselecthsafehboolhtransforms.lean:129:32: tactic 'rfl' failed, the left-hand side + ⟦?m.9037⟧ +is not definitionally equal to the right-hand side + Option ?m.9035 +land_band_left2_before land_band_left2_after : Com InstCombine.LLVM ?m.9036 EffectKind.pure ?m.9037 +⊢ ⟦?m.9037⟧ = Option ?m.9035 +error: ././././SSA/Projects/InstCombine/tests/LLVM/gselecthsafehboolhtransforms.lean:147:40: cannot convert suffix of i/f to int: false +error: ././././SSA/Projects/InstCombine/tests/LLVM/gselecthsafehboolhtransforms.lean:148:40: expected i or f, found: true +error: ././././SSA/Projects/InstCombine/tests/LLVM/gselecthsafehboolhtransforms.lean:161:2: tactic 'unfold' failed to unfold 'land_lor_left1_before' at + (land_lor_left1_before ⊑ land_lor_left1_after) ⋯ +error: ././././SSA/Projects/InstCombine/tests/LLVM/gselecthsafehboolhtransforms.lean:178:40: cannot convert suffix of i/f to int: false +error: ././././SSA/Projects/InstCombine/tests/LLVM/gselecthsafehboolhtransforms.lean:179:40: expected i or f, found: true +error: ././././SSA/Projects/InstCombine/tests/LLVM/gselecthsafehboolhtransforms.lean:192:2: tactic 'unfold' failed to unfold 'land_lor_left2_before' at + (land_lor_left2_before ⊑ land_lor_left2_after) ⋯ +error: ././././SSA/Projects/InstCombine/tests/LLVM/gselecthsafehboolhtransforms.lean:209:40: cannot convert suffix of i/f to int: false +error: ././././SSA/Projects/InstCombine/tests/LLVM/gselecthsafehboolhtransforms.lean:222:2: tactic 'unfold' failed to unfold 'land_bor_left1_before' at + (land_bor_left1_before ⊑ land_bor_left1_after) ⋯ +error: ././././SSA/Projects/InstCombine/tests/LLVM/gselecthsafehboolhtransforms.lean:239:40: cannot convert suffix of i/f to int: false +error: ././././SSA/Projects/InstCombine/tests/LLVM/gselecthsafehboolhtransforms.lean:252:2: tactic 'unfold' failed to unfold 'land_bor_left2_before' at + (land_bor_left2_before ⊑ land_bor_left2_after) ⋯ +error: ././././SSA/Projects/InstCombine/tests/LLVM/gselecthsafehboolhtransforms.lean:269:40: cannot convert suffix of i/f to int: false +error: ././././SSA/Projects/InstCombine/tests/LLVM/gselecthsafehboolhtransforms.lean:283:2: tactic 'unfold' failed to unfold 'band_land_left1_before' at + (band_land_left1_before ⊑ band_land_left1_after) ⋯ +error: ././././SSA/Projects/InstCombine/tests/LLVM/gselecthsafehboolhtransforms.lean:300:40: cannot convert suffix of i/f to int: false +error: ././././SSA/Projects/InstCombine/tests/LLVM/gselecthsafehboolhtransforms.lean:314:2: tactic 'unfold' failed to unfold 'band_land_left2_before' at + (band_land_left2_before ⊑ band_land_left2_after) ⋯ +error: ././././SSA/Projects/InstCombine/tests/LLVM/gselecthsafehboolhtransforms.lean:331:40: expected i or f, found: true +error: ././././SSA/Projects/InstCombine/tests/LLVM/gselecthsafehboolhtransforms.lean:344:2: tactic 'unfold' failed to unfold 'band_lor_left1_before' at + (band_lor_left1_before ⊑ band_lor_left1_after) ⋯ +error: ././././SSA/Projects/InstCombine/tests/LLVM/gselecthsafehboolhtransforms.lean:361:40: expected i or f, found: true +error: ././././SSA/Projects/InstCombine/tests/LLVM/gselecthsafehboolhtransforms.lean:374:2: tactic 'unfold' failed to unfold 'band_lor_left2_before' at + (band_lor_left2_before ⊑ band_lor_left2_after) ⋯ +error: ././././SSA/Projects/InstCombine/tests/LLVM/gselecthsafehboolhtransforms.lean:391:40: expected i or f, found: true +error: ././././SSA/Projects/InstCombine/tests/LLVM/gselecthsafehboolhtransforms.lean:392:40: cannot convert suffix of i/f to int: false +error: ././././SSA/Projects/InstCombine/tests/LLVM/gselecthsafehboolhtransforms.lean:405:2: tactic 'unfold' failed to unfold 'lor_land_left1_before' at + (lor_land_left1_before ⊑ lor_land_left1_after) ⋯ +error: ././././SSA/Projects/InstCombine/tests/LLVM/gselecthsafehboolhtransforms.lean:422:40: expected i or f, found: true +error: ././././SSA/Projects/InstCombine/tests/LLVM/gselecthsafehboolhtransforms.lean:423:40: cannot convert suffix of i/f to int: false +error: ././././SSA/Projects/InstCombine/tests/LLVM/gselecthsafehboolhtransforms.lean:436:2: tactic 'unfold' failed to unfold 'lor_land_left2_before' at + (lor_land_left2_before ⊑ lor_land_left2_after) ⋯ +error: ././././SSA/Projects/InstCombine/tests/LLVM/gselecthsafehboolhtransforms.lean:453:40: expected i or f, found: true +error: ././././SSA/Projects/InstCombine/tests/LLVM/gselecthsafehboolhtransforms.lean:466:2: tactic 'unfold' failed to unfold 'lor_band_left1_before' at + (lor_band_left1_before ⊑ lor_band_left1_after) ⋯ +error: ././././SSA/Projects/InstCombine/tests/LLVM/gselecthsafehboolhtransforms.lean:483:40: expected i or f, found: true +error: ././././SSA/Projects/InstCombine/tests/LLVM/gselecthsafehboolhtransforms.lean:496:2: tactic 'unfold' failed to unfold 'lor_band_left2_before' at + (lor_band_left2_before ⊑ lor_band_left2_after) ⋯ +error: ././././SSA/Projects/InstCombine/tests/LLVM/gselecthsafehboolhtransforms.lean:513:40: expected i or f, found: true +error: ././././SSA/Projects/InstCombine/tests/LLVM/gselecthsafehboolhtransforms.lean:522:40: expected i or f, found: true +error: ././././SSA/Projects/InstCombine/tests/LLVM/gselecthsafehboolhtransforms.lean:527:30: could not synthesize default value for parameter 'h' using tactics +error: ././././SSA/Projects/InstCombine/tests/LLVM/gselecthsafehboolhtransforms.lean:527:30: tactic 'rfl' failed, the left-hand side + ⟦?m.39287⟧ +is not definitionally equal to the right-hand side + Option ?m.39285 +lor_lor_left1_before lor_lor_left1_after : Com InstCombine.LLVM ?m.39286 EffectKind.pure ?m.39287 +⊢ ⟦?m.39287⟧ = Option ?m.39285 +error: ././././SSA/Projects/InstCombine/tests/LLVM/gselecthsafehboolhtransforms.lean:545:40: expected i or f, found: true +error: ././././SSA/Projects/InstCombine/tests/LLVM/gselecthsafehboolhtransforms.lean:554:40: expected i or f, found: true +error: ././././SSA/Projects/InstCombine/tests/LLVM/gselecthsafehboolhtransforms.lean:559:30: could not synthesize default value for parameter 'h' using tactics +error: ././././SSA/Projects/InstCombine/tests/LLVM/gselecthsafehboolhtransforms.lean:559:30: tactic 'rfl' failed, the left-hand side + ⟦?m.41553⟧ +is not definitionally equal to the right-hand side + Option ?m.41551 +lor_lor_left2_before lor_lor_left2_after : Com InstCombine.LLVM ?m.41552 EffectKind.pure ?m.41553 +⊢ ⟦?m.41553⟧ = Option ?m.41551 +error: ././././SSA/Projects/InstCombine/tests/LLVM/gselecthsafehboolhtransforms.lean:577:40: expected i or f, found: true +error: ././././SSA/Projects/InstCombine/tests/LLVM/gselecthsafehboolhtransforms.lean:586:40: expected i or f, found: true +error: ././././SSA/Projects/InstCombine/tests/LLVM/gselecthsafehboolhtransforms.lean:591:30: could not synthesize default value for parameter 'h' using tactics +error: ././././SSA/Projects/InstCombine/tests/LLVM/gselecthsafehboolhtransforms.lean:591:30: tactic 'rfl' failed, the left-hand side + ⟦?m.43790⟧ +is not definitionally equal to the right-hand side + Option ?m.43788 +lor_bor_left1_before lor_bor_left1_after : Com InstCombine.LLVM ?m.43789 EffectKind.pure ?m.43790 +⊢ ⟦?m.43790⟧ = Option ?m.43788 +error: ././././SSA/Projects/InstCombine/tests/LLVM/gselecthsafehboolhtransforms.lean:609:40: expected i or f, found: true +error: ././././SSA/Projects/InstCombine/tests/LLVM/gselecthsafehboolhtransforms.lean:618:40: expected i or f, found: true +error: ././././SSA/Projects/InstCombine/tests/LLVM/gselecthsafehboolhtransforms.lean:623:30: could not synthesize default value for parameter 'h' using tactics +error: ././././SSA/Projects/InstCombine/tests/LLVM/gselecthsafehboolhtransforms.lean:623:30: tactic 'rfl' failed, the left-hand side + ⟦?m.46039⟧ +is not definitionally equal to the right-hand side + Option ?m.46037 +lor_bor_left2_before lor_bor_left2_after : Com InstCombine.LLVM ?m.46038 EffectKind.pure ?m.46039 +⊢ ⟦?m.46039⟧ = Option ?m.46037 +error: ././././SSA/Projects/InstCombine/tests/LLVM/gselecthsafehboolhtransforms.lean:641:40: cannot convert suffix of i/f to int: false +error: ././././SSA/Projects/InstCombine/tests/LLVM/gselecthsafehboolhtransforms.lean:654:2: tactic 'unfold' failed to unfold 'bor_land_left1_before' at + (bor_land_left1_before ⊑ bor_land_left1_after) ⋯ +error: ././././SSA/Projects/InstCombine/tests/LLVM/gselecthsafehboolhtransforms.lean:671:40: cannot convert suffix of i/f to int: false +error: ././././SSA/Projects/InstCombine/tests/LLVM/gselecthsafehboolhtransforms.lean:684:2: tactic 'unfold' failed to unfold 'bor_land_left2_before' at + (bor_land_left2_before ⊑ bor_land_left2_after) ⋯ +error: ././././SSA/Projects/InstCombine/tests/LLVM/gselecthsafehboolhtransforms.lean:701:40: expected i or f, found: true +error: ././././SSA/Projects/InstCombine/tests/LLVM/gselecthsafehboolhtransforms.lean:715:2: tactic 'unfold' failed to unfold 'bor_lor_left1_before' at + (bor_lor_left1_before ⊑ bor_lor_left1_after) ⋯ +error: ././././SSA/Projects/InstCombine/tests/LLVM/gselecthsafehboolhtransforms.lean:732:40: expected i or f, found: true +error: ././././SSA/Projects/InstCombine/tests/LLVM/gselecthsafehboolhtransforms.lean:746:2: tactic 'unfold' failed to unfold 'bor_lor_left2_before' at + (bor_lor_left2_before ⊑ bor_lor_left2_after) ⋯ +error: ././././SSA/Projects/InstCombine/tests/LLVM/gselecthsafehboolhtransforms.lean:763:40: cannot convert suffix of i/f to int: false +error: ././././SSA/Projects/InstCombine/tests/LLVM/gselecthsafehboolhtransforms.lean:772:40: cannot convert suffix of i/f to int: false +error: ././././SSA/Projects/InstCombine/tests/LLVM/gselecthsafehboolhtransforms.lean:777:33: could not synthesize default value for parameter 'h' using tactics +error: ././././SSA/Projects/InstCombine/tests/LLVM/gselecthsafehboolhtransforms.lean:777:33: tactic 'rfl' failed, the left-hand side + ⟦?m.58529⟧ +is not definitionally equal to the right-hand side + Option ?m.58527 +land_land_right1_before land_land_right1_after : Com InstCombine.LLVM ?m.58528 EffectKind.pure ?m.58529 +⊢ ⟦?m.58529⟧ = Option ?m.58527 +error: ././././SSA/Projects/InstCombine/tests/LLVM/gselecthsafehboolhtransforms.lean:795:40: cannot convert suffix of i/f to int: false +error: ././././SSA/Projects/InstCombine/tests/LLVM/gselecthsafehboolhtransforms.lean:804:40: cannot convert suffix of i/f to int: false +error: ././././SSA/Projects/InstCombine/tests/LLVM/gselecthsafehboolhtransforms.lean:809:33: could not synthesize default value for parameter 'h' using tactics +error: ././././SSA/Projects/InstCombine/tests/LLVM/gselecthsafehboolhtransforms.lean:809:33: tactic 'rfl' failed, the left-hand side + ⟦?m.60795⟧ +is not definitionally equal to the right-hand side + Option ?m.60793 +land_land_right2_before land_land_right2_after : Com InstCombine.LLVM ?m.60794 EffectKind.pure ?m.60795 +⊢ ⟦?m.60795⟧ = Option ?m.60793 +error: ././././SSA/Projects/InstCombine/tests/LLVM/gselecthsafehboolhtransforms.lean:827:40: cannot convert suffix of i/f to int: false +error: ././././SSA/Projects/InstCombine/tests/LLVM/gselecthsafehboolhtransforms.lean:836:40: cannot convert suffix of i/f to int: false +error: ././././SSA/Projects/InstCombine/tests/LLVM/gselecthsafehboolhtransforms.lean:841:33: could not synthesize default value for parameter 'h' using tactics +error: ././././SSA/Projects/InstCombine/tests/LLVM/gselecthsafehboolhtransforms.lean:841:33: tactic 'rfl' failed, the left-hand side + ⟦?m.63044⟧ +is not definitionally equal to the right-hand side + Option ?m.63042 +land_band_right1_before land_band_right1_after : Com InstCombine.LLVM ?m.63043 EffectKind.pure ?m.63044 +⊢ ⟦?m.63044⟧ = Option ?m.63042 +error: ././././SSA/Projects/InstCombine/tests/LLVM/gselecthsafehboolhtransforms.lean:859:40: cannot convert suffix of i/f to int: false +error: ././././SSA/Projects/InstCombine/tests/LLVM/gselecthsafehboolhtransforms.lean:868:40: cannot convert suffix of i/f to int: false +error: ././././SSA/Projects/InstCombine/tests/LLVM/gselecthsafehboolhtransforms.lean:873:33: could not synthesize default value for parameter 'h' using tactics +error: ././././SSA/Projects/InstCombine/tests/LLVM/gselecthsafehboolhtransforms.lean:873:33: tactic 'rfl' failed, the left-hand side + ⟦?m.65293⟧ +is not definitionally equal to the right-hand side + Option ?m.65291 +land_band_right2_before land_band_right2_after : Com InstCombine.LLVM ?m.65292 EffectKind.pure ?m.65293 +⊢ ⟦?m.65293⟧ = Option ?m.65291 +error: ././././SSA/Projects/InstCombine/tests/LLVM/gselecthsafehboolhtransforms.lean:891:40: cannot convert suffix of i/f to int: false +error: ././././SSA/Projects/InstCombine/tests/LLVM/gselecthsafehboolhtransforms.lean:892:40: expected i or f, found: true +error: ././././SSA/Projects/InstCombine/tests/LLVM/gselecthsafehboolhtransforms.lean:905:2: tactic 'unfold' failed to unfold 'land_lor_right1_before' at + (land_lor_right1_before ⊑ land_lor_right1_after) ⋯ +error: ././././SSA/Projects/InstCombine/tests/LLVM/gselecthsafehboolhtransforms.lean:922:40: cannot convert suffix of i/f to int: false +error: ././././SSA/Projects/InstCombine/tests/LLVM/gselecthsafehboolhtransforms.lean:923:40: expected i or f, found: true +error: ././././SSA/Projects/InstCombine/tests/LLVM/gselecthsafehboolhtransforms.lean:936:2: tactic 'unfold' failed to unfold 'land_lor_right2_before' at + (land_lor_right2_before ⊑ land_lor_right2_after) ⋯ +error: ././././SSA/Projects/InstCombine/tests/LLVM/gselecthsafehboolhtransforms.lean:953:40: cannot convert suffix of i/f to int: false +error: ././././SSA/Projects/InstCombine/tests/LLVM/gselecthsafehboolhtransforms.lean:966:2: tactic 'unfold' failed to unfold 'land_bor_right1_before' at + (land_bor_right1_before ⊑ land_bor_right1_after) ⋯ +error: ././././SSA/Projects/InstCombine/tests/LLVM/gselecthsafehboolhtransforms.lean:983:40: cannot convert suffix of i/f to int: false +error: ././././SSA/Projects/InstCombine/tests/LLVM/gselecthsafehboolhtransforms.lean:996:2: tactic 'unfold' failed to unfold 'land_bor_right2_before' at + (land_bor_right2_before ⊑ land_bor_right2_after) ⋯ +error: ././././SSA/Projects/InstCombine/tests/LLVM/gselecthsafehboolhtransforms.lean:1013:40: cannot convert suffix of i/f to int: false +error: ././././SSA/Projects/InstCombine/tests/LLVM/gselecthsafehboolhtransforms.lean:1022:40: cannot convert suffix of i/f to int: false +error: ././././SSA/Projects/InstCombine/tests/LLVM/gselecthsafehboolhtransforms.lean:1027:33: could not synthesize default value for parameter 'h' using tactics +error: ././././SSA/Projects/InstCombine/tests/LLVM/gselecthsafehboolhtransforms.lean:1027:33: tactic 'rfl' failed, the left-hand side + ⟦?m.76460⟧ +is not definitionally equal to the right-hand side + Option ?m.76458 +band_land_right1_before band_land_right1_after : Com InstCombine.LLVM ?m.76459 EffectKind.pure ?m.76460 +⊢ ⟦?m.76460⟧ = Option ?m.76458 +error: ././././SSA/Projects/InstCombine/tests/LLVM/gselecthsafehboolhtransforms.lean:1045:40: cannot convert suffix of i/f to int: false +error: ././././SSA/Projects/InstCombine/tests/LLVM/gselecthsafehboolhtransforms.lean:1054:40: cannot convert suffix of i/f to int: false +error: ././././SSA/Projects/InstCombine/tests/LLVM/gselecthsafehboolhtransforms.lean:1059:33: could not synthesize default value for parameter 'h' using tactics +error: ././././SSA/Projects/InstCombine/tests/LLVM/gselecthsafehboolhtransforms.lean:1059:33: tactic 'rfl' failed, the left-hand side + ⟦?m.78697⟧ +is not definitionally equal to the right-hand side + Option ?m.78695 +band_land_right2_before band_land_right2_after : Com InstCombine.LLVM ?m.78696 EffectKind.pure ?m.78697 +⊢ ⟦?m.78697⟧ = Option ?m.78695 +error: ././././SSA/Projects/InstCombine/tests/LLVM/gselecthsafehboolhtransforms.lean:1077:40: expected i or f, found: true +error: ././././SSA/Projects/InstCombine/tests/LLVM/gselecthsafehboolhtransforms.lean:1090:2: tactic 'unfold' failed to unfold 'band_lor_right1_before' at + (band_lor_right1_before ⊑ band_lor_right1_after) ⋯ +error: ././././SSA/Projects/InstCombine/tests/LLVM/gselecthsafehboolhtransforms.lean:1107:40: expected i or f, found: true +error: ././././SSA/Projects/InstCombine/tests/LLVM/gselecthsafehboolhtransforms.lean:1120:2: tactic 'unfold' failed to unfold 'band_lor_right2_before' at + (band_lor_right2_before ⊑ band_lor_right2_after) ⋯ +error: ././././SSA/Projects/InstCombine/tests/LLVM/gselecthsafehboolhtransforms.lean:1137:40: expected i or f, found: true +error: ././././SSA/Projects/InstCombine/tests/LLVM/gselecthsafehboolhtransforms.lean:1138:40: cannot convert suffix of i/f to int: false +error: ././././SSA/Projects/InstCombine/tests/LLVM/gselecthsafehboolhtransforms.lean:1151:2: tactic 'unfold' failed to unfold 'lor_land_right1_before' at + (lor_land_right1_before ⊑ lor_land_right1_after) ⋯ +error: ././././SSA/Projects/InstCombine/tests/LLVM/gselecthsafehboolhtransforms.lean:1168:40: expected i or f, found: true +error: ././././SSA/Projects/InstCombine/tests/LLVM/gselecthsafehboolhtransforms.lean:1169:40: cannot convert suffix of i/f to int: false +error: ././././SSA/Projects/InstCombine/tests/LLVM/gselecthsafehboolhtransforms.lean:1182:2: tactic 'unfold' failed to unfold 'lor_land_right2_before' at + (lor_land_right2_before ⊑ lor_land_right2_after) ⋯ +error: ././././SSA/Projects/InstCombine/tests/LLVM/gselecthsafehboolhtransforms.lean:1199:40: expected i or f, found: true +error: ././././SSA/Projects/InstCombine/tests/LLVM/gselecthsafehboolhtransforms.lean:1212:2: tactic 'unfold' failed to unfold 'lor_band_right1_before' at + (lor_band_right1_before ⊑ lor_band_right1_after) ⋯ +error: ././././SSA/Projects/InstCombine/tests/LLVM/gselecthsafehboolhtransforms.lean:1229:40: expected i or f, found: true +error: ././././SSA/Projects/InstCombine/tests/LLVM/gselecthsafehboolhtransforms.lean:1242:2: tactic 'unfold' failed to unfold 'lor_band_right2_before' at + (lor_band_right2_before ⊑ lor_band_right2_after) ⋯ +error: ././././SSA/Projects/InstCombine/tests/LLVM/gselecthsafehboolhtransforms.lean:1259:40: expected i or f, found: true +error: ././././SSA/Projects/InstCombine/tests/LLVM/gselecthsafehboolhtransforms.lean:1268:40: expected i or f, found: true +error: ././././SSA/Projects/InstCombine/tests/LLVM/gselecthsafehboolhtransforms.lean:1273:31: could not synthesize default value for parameter 'h' using tactics +error: ././././SSA/Projects/InstCombine/tests/LLVM/gselecthsafehboolhtransforms.lean:1273:31: tactic 'rfl' failed, the left-hand side + ⟦?m.94301⟧ +is not definitionally equal to the right-hand side + Option ?m.94299 +lor_lor_right1_before lor_lor_right1_after : Com InstCombine.LLVM ?m.94300 EffectKind.pure ?m.94301 +⊢ ⟦?m.94301⟧ = Option ?m.94299 +error: ././././SSA/Projects/InstCombine/tests/LLVM/gselecthsafehboolhtransforms.lean:1291:40: expected i or f, found: true +error: ././././SSA/Projects/InstCombine/tests/LLVM/gselecthsafehboolhtransforms.lean:1300:40: expected i or f, found: true +error: ././././SSA/Projects/InstCombine/tests/LLVM/gselecthsafehboolhtransforms.lean:1305:31: could not synthesize default value for parameter 'h' using tactics +error: ././././SSA/Projects/InstCombine/tests/LLVM/gselecthsafehboolhtransforms.lean:1305:31: tactic 'rfl' failed, the left-hand side + ⟦?m.96567⟧ +is not definitionally equal to the right-hand side + Option ?m.96565 +lor_lor_right2_before lor_lor_right2_after : Com InstCombine.LLVM ?m.96566 EffectKind.pure ?m.96567 +⊢ ⟦?m.96567⟧ = Option ?m.96565 +error: ././././SSA/Projects/InstCombine/tests/LLVM/gselecthsafehboolhtransforms.lean:1323:40: expected i or f, found: true +error: ././././SSA/Projects/InstCombine/tests/LLVM/gselecthsafehboolhtransforms.lean:1332:40: expected i or f, found: true +error: ././././SSA/Projects/InstCombine/tests/LLVM/gselecthsafehboolhtransforms.lean:1337:31: could not synthesize default value for parameter 'h' using tactics +error: ././././SSA/Projects/InstCombine/tests/LLVM/gselecthsafehboolhtransforms.lean:1337:31: tactic 'rfl' failed, the left-hand side + ⟦?m.98816⟧ +is not definitionally equal to the right-hand side + Option ?m.98814 +lor_bor_right1_before lor_bor_right1_after : Com InstCombine.LLVM ?m.98815 EffectKind.pure ?m.98816 +⊢ ⟦?m.98816⟧ = Option ?m.98814 +error: ././././SSA/Projects/InstCombine/tests/LLVM/gselecthsafehboolhtransforms.lean:1355:40: expected i or f, found: true +error: ././././SSA/Projects/InstCombine/tests/LLVM/gselecthsafehboolhtransforms.lean:1364:40: expected i or f, found: true +error: ././././SSA/Projects/InstCombine/tests/LLVM/gselecthsafehboolhtransforms.lean:1369:31: could not synthesize default value for parameter 'h' using tactics +error: ././././SSA/Projects/InstCombine/tests/LLVM/gselecthsafehboolhtransforms.lean:1369:31: tactic 'rfl' failed, the left-hand side + ⟦?m.101065⟧ +is not definitionally equal to the right-hand side + Option ?m.101063 +lor_bor_right2_before lor_bor_right2_after : Com InstCombine.LLVM ?m.101064 EffectKind.pure ?m.101065 +⊢ ⟦?m.101065⟧ = Option ?m.101063 +error: ././././SSA/Projects/InstCombine/tests/LLVM/gselecthsafehboolhtransforms.lean:1387:40: cannot convert suffix of i/f to int: false +error: ././././SSA/Projects/InstCombine/tests/LLVM/gselecthsafehboolhtransforms.lean:1400:2: tactic 'unfold' failed to unfold 'bor_land_right1_before' at + (bor_land_right1_before ⊑ bor_land_right1_after) ⋯ +error: ././././SSA/Projects/InstCombine/tests/LLVM/gselecthsafehboolhtransforms.lean:1417:40: cannot convert suffix of i/f to int: false +error: ././././SSA/Projects/InstCombine/tests/LLVM/gselecthsafehboolhtransforms.lean:1430:2: tactic 'unfold' failed to unfold 'bor_land_right2_before' at + (bor_land_right2_before ⊑ bor_land_right2_after) ⋯ +error: ././././SSA/Projects/InstCombine/tests/LLVM/gselecthsafehboolhtransforms.lean:1447:40: expected i or f, found: true +error: ././././SSA/Projects/InstCombine/tests/LLVM/gselecthsafehboolhtransforms.lean:1456:40: expected i or f, found: true +error: ././././SSA/Projects/InstCombine/tests/LLVM/gselecthsafehboolhtransforms.lean:1461:31: could not synthesize default value for parameter 'h' using tactics +error: ././././SSA/Projects/InstCombine/tests/LLVM/gselecthsafehboolhtransforms.lean:1461:31: tactic 'rfl' failed, the left-hand side + ⟦?m.107618⟧ +is not definitionally equal to the right-hand side + Option ?m.107616 +bor_lor_right1_before bor_lor_right1_after : Com InstCombine.LLVM ?m.107617 EffectKind.pure ?m.107618 +⊢ ⟦?m.107618⟧ = Option ?m.107616 +error: ././././SSA/Projects/InstCombine/tests/LLVM/gselecthsafehboolhtransforms.lean:1479:40: expected i or f, found: true +error: ././././SSA/Projects/InstCombine/tests/LLVM/gselecthsafehboolhtransforms.lean:1488:40: expected i or f, found: true +error: ././././SSA/Projects/InstCombine/tests/LLVM/gselecthsafehboolhtransforms.lean:1493:31: could not synthesize default value for parameter 'h' using tactics +error: ././././SSA/Projects/InstCombine/tests/LLVM/gselecthsafehboolhtransforms.lean:1493:31: tactic 'rfl' failed, the left-hand side + ⟦?m.109823⟧ +is not definitionally equal to the right-hand side + Option ?m.109821 +bor_lor_right2_before bor_lor_right2_after : Com InstCombine.LLVM ?m.109822 EffectKind.pure ?m.109823 +⊢ ⟦?m.109823⟧ = Option ?m.109821 +error: Lean exited with code 1 +Some required builds logged failures: +- SSA.Projects.InstCombine.tests.LLVM.gselecthsafehboolhtransforms +error: build failed diff --git a/SSA/Projects/InstCombine/tests/logs/gselecthsafehtransforms_proof.txt b/SSA/Projects/InstCombine/tests/logs/gselecthsafehtransforms_proof.txt new file mode 100644 index 000000000..31e3d80e0 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/gselecthsafehtransforms_proof.txt @@ -0,0 +1,399 @@ +⚠ [49/2462] Replayed Mathlib.Logic.Basic +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Basic.lean:155:8: `dec_em'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Basic.lean:159:8: `em'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Basic.lean:304:8: `or_congr_left'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Basic.lean:307:8: `or_congr_right'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Basic.lean:320:8: `imp_or'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Basic.lean:359:8: `xor_iff_not_iff'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Basic.lean:418:8: `eqRec_heq'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Basic.lean:511:8: `forall_true_iff'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Basic.lean:532:8: `exists_apply_eq_apply'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Basic.lean:539:6: `exists_apply_eq_apply2'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Basic.lean:548:6: `exists_apply_eq_apply3'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Basic.lean:575:8: `forall_apply_eq_imp_iff'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Basic.lean:578:8: `forall_eq_apply_imp_iff'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Basic.lean:638:8: `forall_prop_congr'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Basic.lean:711:6: `Classical.choose_eq'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Basic.lean:847:8: `dite_eq_iff'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Basic.lean:851:8: `ite_eq_iff'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +⚠ [66/2462] Replayed Mathlib.Algebra.NeZero +warning: ././.lake/packages/mathlib/././Mathlib/Algebra/NeZero.lean:44:6: `zero_ne_one'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Algebra/NeZero.lean:46:6: `one_ne_zero'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Algebra/NeZero.lean:48:6: `two_ne_zero'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Algebra/NeZero.lean:50:6: `three_ne_zero'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Algebra/NeZero.lean:52:6: `four_ne_zero'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +⚠ [69/2462] Replayed Mathlib.Logic.ExistsUnique +warning: ././.lake/packages/mathlib/././Mathlib/Logic/ExistsUnique.lean:109:16: `exists_unique_eq'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +⚠ [74/2462] Replayed Mathlib.Logic.Function.Basic +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Function/Basic.lean:78:8: `Function.Injective.eq_iff'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Function/Basic.lean:87:8: `Function.Injective.ne_iff'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Function/Basic.lean:117:8: `Function.Injective.of_comp_iff'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Function/Basic.lean:163:8: `Function.Surjective.of_comp_iff'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Function/Basic.lean:237:8: `Function.Bijective.of_comp_iff'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Function/Basic.lean:541:8: `Function.update_comp_eq_of_forall_ne'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Function/Basic.lean:552:8: `Function.update_comp_eq_of_injective'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Function/Basic.lean:649:8: `Function.extend_apply'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Function/Basic.lean:681:8: `Function.Injective.surjective_comp_right'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +⚠ [94/2462] Replayed Mathlib.Control.Combinators +warning: ././.lake/packages/mathlib/././Mathlib/Control/Combinators.lean:35:4: `Monad.mapM'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Control/Combinators.lean:57:4: `Monad.sequence'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +⚠ [96/2462] Replayed Mathlib.Logic.IsEmpty +warning: ././.lake/packages/mathlib/././Mathlib/Logic/IsEmpty.lean:36:9: `Fin.isEmpty'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +⚠ [229/2462] Replayed Mathlib.Data.Prod.PProd +warning: ././.lake/packages/mathlib/././Mathlib/Data/Prod/PProd.lean:35:8: `PProd.forall'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Data/Prod/PProd.lean:38:8: `PProd.exists'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +⚠ [230/2462] Replayed Mathlib.Data.Bool.Basic +warning: ././.lake/packages/mathlib/././Mathlib/Data/Bool/Basic.lean:156:8: `Bool.eq_true_of_not_eq_false'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Data/Bool/Basic.lean:159:8: `Bool.eq_false_of_not_eq_true'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +⚠ [232/2462] Replayed Mathlib.Logic.Function.Iterate +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Function/Iterate.lean:160:8: `Function.iterate_succ'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Function/Iterate.lean:163:8: `Function.iterate_succ_apply'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +⚠ [234/2462] Replayed Mathlib.Data.Prod.Basic +warning: ././.lake/packages/mathlib/././Mathlib/Data/Prod/Basic.lean:31:8: `Prod.forall'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Data/Prod/Basic.lean:34:8: `Prod.exists'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Data/Prod/Basic.lean:51:8: `Prod.map_apply'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Data/Prod/Basic.lean:54:8: `Prod.map_fst'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Data/Prod/Basic.lean:57:8: `Prod.map_snd'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +⚠ [235/2462] Replayed Mathlib.Data.Sigma.Basic +warning: ././.lake/packages/mathlib/././Mathlib/Data/Sigma/Basic.lean:90:6: `Sigma.exists'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Data/Sigma/Basic.lean:93:6: `Sigma.forall'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +⚠ [239/2462] Replayed Mathlib.Data.FunLike.Basic +warning: ././.lake/packages/mathlib/././Mathlib/Data/FunLike/Basic.lean:187:8: `DFunLike.ext'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +⚠ [244/2462] Replayed Mathlib.Logic.Relation +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Relation.lean:351:8: `Relation.TransGen.head'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Relation.lean:354:8: `Relation.TransGen.tail'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Relation.lean:444:8: `Relation.TransGen.lift'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Relation.lean:453:6: `Relation.TransGen.closed'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Relation.lean:523:8: `Relation.ReflTransGen.lift'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +⚠ [245/2462] Replayed Mathlib.Logic.Unique +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Unique.lean:131:18: `Unique.subsingleton_unique'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Unique.lean:259:9: `Unique.subtypeEq'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +⚠ [252/2462] Replayed Mathlib.Data.Quot +warning: ././.lake/packages/mathlib/././Mathlib/Data/Quot.lean:558:18: `Quotient.liftOn'_mk''` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Data/Quot.lean:562:14: `Quotient.surjective_liftOn'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Data/Quot.lean:573:18: `Quotient.liftOn₂'_mk''` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Data/Quot.lean:639:8: `Quotient.hrecOn'_mk''` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Data/Quot.lean:652:8: `Quotient.hrecOn₂'_mk''` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Data/Quot.lean:664:8: `Quotient.map'_mk''` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Data/Quot.lean:674:8: `Quotient.map₂'_mk''` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Data/Quot.lean:679:8: `Quotient.exact'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Data/Quot.lean:683:8: `Quotient.sound'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Data/Quot.lean:687:18: `Quotient.eq'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Data/Quot.lean:692:18: `Quotient.eq''` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Data/Quot.lean:701:8: `Quotient.out_eq'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Data/Quot.lean:704:8: `Quotient.mk_out'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +⚠ [256/2462] Replayed Mathlib.Tactic.Lift +warning: ././.lake/packages/mathlib/././Mathlib/Tactic/Lift.lean:49:9: `PiSubtype.canLift'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +⚠ [409/2462] Replayed Mathlib.Algebra.Group.Defs +warning: ././.lake/packages/mathlib/././Mathlib/Algebra/Group/Defs.lean:735:33: `pow_succ'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Algebra/Group/Defs.lean:740:6: `pow_mul_comm'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Algebra/Group/Defs.lean:749:6: `pow_three'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Algebra/Group/Defs.lean:772:6: `pow_mul'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +⚠ [443/2462] Replayed Mathlib.Data.List.Defs +warning: ././.lake/packages/mathlib/././Mathlib/Data/List/Defs.lean:241:9: `List.decidableChain'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +⚠ [474/2462] Replayed Mathlib.Control.Applicative +warning: ././.lake/packages/mathlib/././Mathlib/Control/Applicative.lean:34:8: `Applicative.pure_seq_eq_map'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +⚠ [475/2462] Replayed Mathlib.Control.Traversable.Basic +warning: ././.lake/packages/mathlib/././Mathlib/Control/Traversable/Basic.lean:139:8: `ApplicativeTransformation.preserves_map'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +⚠ [618/2462] Replayed Mathlib.Algebra.GroupWithZero.Defs +warning: ././.lake/packages/mathlib/././Mathlib/Algebra/GroupWithZero/Defs.lean:110:8: `mul_left_inj'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Algebra/GroupWithZero/Defs.lean:113:8: `mul_right_inj'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +⚠ [624/2462] Replayed Mathlib.Algebra.Group.Invertible.Defs +warning: ././.lake/packages/mathlib/././Mathlib/Algebra/Group/Invertible/Defs.lean:97:8: `invOf_mul_self'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Algebra/Group/Invertible/Defs.lean:103:8: `mul_invOf_self'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Algebra/Group/Invertible/Defs.lean:109:8: `invOf_mul_cancel_left'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Algebra/Group/Invertible/Defs.lean:120:8: `mul_invOf_cancel_left'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Algebra/Group/Invertible/Defs.lean:131:8: `invOf_mul_cancel_right'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Algebra/Group/Invertible/Defs.lean:142:8: `mul_invOf_cancel_right'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Algebra/Group/Invertible/Defs.lean:198:8: `invOf_one'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +⚠ [1184/2462] Replayed Mathlib.Control.Traversable.Lemmas +warning: ././.lake/packages/mathlib/././Mathlib/Control/Traversable/Lemmas.lean:87:8: `Traversable.naturality'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Control/Traversable/Lemmas.lean:102:8: `Traversable.traverse_eq_map_id'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Control/Traversable/Lemmas.lean:108:8: `Traversable.traverse_map'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Control/Traversable/Lemmas.lean:113:8: `Traversable.map_traverse'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +⚠ [2407/2462] Replayed Mathlib.Data.List.EditDistance.Defs +warning: ././.lake/packages/mathlib/././Mathlib/Data/List/EditDistance/Defs.lean:214:8: `suffixLevenshtein_nil'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +⚠ [2447/2462] Replayed SSA.Experimental.Bits.Fast.FiniteStateMachine +warning: ././././SSA/Experimental/Bits/Fast/FiniteStateMachine.lean:107:8: declaration uses 'sorry' +warning: ././././SSA/Experimental/Bits/Fast/FiniteStateMachine.lean:825:8: declaration uses 'sorry' +⚠ [2451/2462] Replayed SSA.Experimental.Bits.Fast.Tactic +warning: ././././SSA/Experimental/Bits/Fast/Tactic.lean:340:4: declaration uses 'sorry' +⚠ [2452/2462] Replayed SSA.Experimental.Bits.AutoStructs.ForLean +warning: ././././SSA/Experimental/Bits/AutoStructs/ForLean.lean:24:8: declaration uses 'sorry' +warning: ././././SSA/Experimental/Bits/AutoStructs/ForLean.lean:27:8: declaration uses 'sorry' +warning: ././././SSA/Experimental/Bits/AutoStructs/ForLean.lean:29:8: declaration uses 'sorry' +warning: ././././SSA/Experimental/Bits/AutoStructs/ForLean.lean:31:8: declaration uses 'sorry' +warning: ././././SSA/Experimental/Bits/AutoStructs/ForLean.lean:34:8: declaration uses 'sorry' +warning: ././././SSA/Experimental/Bits/AutoStructs/ForLean.lean:36:8: declaration uses 'sorry' +warning: ././././SSA/Experimental/Bits/AutoStructs/ForLean.lean:38:8: declaration uses 'sorry' +warning: ././././SSA/Experimental/Bits/AutoStructs/ForLean.lean:41:8: declaration uses 'sorry' +warning: ././././SSA/Experimental/Bits/AutoStructs/ForLean.lean:52:8: declaration uses 'sorry' +warning: ././././SSA/Experimental/Bits/AutoStructs/ForLean.lean:56:8: declaration uses 'sorry' +⚠ [2457/2462] Replayed SSA.Experimental.Bits.AutoStructs.Constructions +warning: ././././SSA/Experimental/Bits/AutoStructs/Constructions.lean:55:6: declaration uses 'sorry' +warning: ././././SSA/Experimental/Bits/AutoStructs/Constructions.lean:128:6: declaration uses 'sorry' +warning: ././././SSA/Experimental/Bits/AutoStructs/Constructions.lean:163:6: declaration uses 'sorry' +warning: ././././SSA/Experimental/Bits/AutoStructs/Constructions.lean:197:6: declaration uses 'sorry' +⚠ [2458/2462] Replayed SSA.Experimental.Bits.AutoStructs.FiniteStateMachine +warning: ././././SSA/Experimental/Bits/AutoStructs/FiniteStateMachine.lean:111:8: declaration uses 'sorry' +✖ [2462/2462] Building SSA.Projects.InstCombine.tests.LLVM.gselecthsafehtransforms +trace: .> LEAN_PATH=././.lake/packages/batteries/.lake/build/lib:././.lake/packages/Qq/.lake/build/lib:././.lake/packages/aesop/.lake/build/lib:././.lake/packages/proofwidgets/.lake/build/lib:././.lake/packages/Cli/.lake/build/lib:././.lake/packages/importGraph/.lake/build/lib:././.lake/packages/LeanSearchClient/.lake/build/lib:././.lake/packages/mathlib/.lake/build/lib:././.lake/packages/MD4Lean/.lake/build/lib:././.lake/packages/UnicodeBasic/.lake/build/lib:././.lake/packages/BibtexQuery/.lake/build/lib:././.lake/packages/doc-gen4/.lake/build/lib:././.lake/packages/leanwuzla/.lake/build/lib:././.lake/build/lib LD_LIBRARY_PATH= /home/lfrenot/.elan/toolchains/leanprover--lean4---nightly-2024-10-17/bin/lean ././././SSA/Projects/InstCombine/tests/LLVM/gselecthsafehtransforms.lean -R ./././. -o ././.lake/build/lib/SSA/Projects/InstCombine/tests/LLVM/gselecthsafehtransforms.olean -i ././.lake/build/lib/SSA/Projects/InstCombine/tests/LLVM/gselecthsafehtransforms.ilean -c ././.lake/build/ir/SSA/Projects/InstCombine/tests/LLVM/gselecthsafehtransforms.c --json +error: ././././SSA/Projects/InstCombine/tests/LLVM/gselecthsafehtransforms.lean:19:40: expected i or f, found: true +error: ././././SSA/Projects/InstCombine/tests/LLVM/gselecthsafehtransforms.lean:20:40: cannot convert suffix of i/f to int: false +error: ././././SSA/Projects/InstCombine/tests/LLVM/gselecthsafehtransforms.lean:36:2: tactic 'unfold' failed to unfold 'bools_logical_commute0_before' at + (bools_logical_commute0_before ⊑ bools_logical_commute0_after) ⋯ +error: ././././SSA/Projects/InstCombine/tests/LLVM/gselecthsafehtransforms.lean:53:40: expected i or f, found: true +error: ././././SSA/Projects/InstCombine/tests/LLVM/gselecthsafehtransforms.lean:54:40: cannot convert suffix of i/f to int: false +error: ././././SSA/Projects/InstCombine/tests/LLVM/gselecthsafehtransforms.lean:70:2: tactic 'unfold' failed to unfold 'bools_logical_commute0_and1_before' at + (bools_logical_commute0_and1_before ⊑ bools_logical_commute0_and1_after) ⋯ +error: ././././SSA/Projects/InstCombine/tests/LLVM/gselecthsafehtransforms.lean:87:40: expected i or f, found: true +error: ././././SSA/Projects/InstCombine/tests/LLVM/gselecthsafehtransforms.lean:88:40: cannot convert suffix of i/f to int: false +error: ././././SSA/Projects/InstCombine/tests/LLVM/gselecthsafehtransforms.lean:104:2: tactic 'unfold' failed to unfold 'bools_logical_commute0_and2_before' at + (bools_logical_commute0_and2_before ⊑ bools_logical_commute0_and2_after) ⋯ +error: ././././SSA/Projects/InstCombine/tests/LLVM/gselecthsafehtransforms.lean:121:40: expected i or f, found: true +error: ././././SSA/Projects/InstCombine/tests/LLVM/gselecthsafehtransforms.lean:137:2: tactic 'unfold' failed to unfold 'bools_logical_commute0_and1_and2_before' at + (bools_logical_commute0_and1_and2_before ⊑ bools_logical_commute0_and1_and2_after) ⋯ +error: ././././SSA/Projects/InstCombine/tests/LLVM/gselecthsafehtransforms.lean:154:40: expected i or f, found: true +error: ././././SSA/Projects/InstCombine/tests/LLVM/gselecthsafehtransforms.lean:155:40: cannot convert suffix of i/f to int: false +error: ././././SSA/Projects/InstCombine/tests/LLVM/gselecthsafehtransforms.lean:171:2: tactic 'unfold' failed to unfold 'bools_logical_commute1_before' at + (bools_logical_commute1_before ⊑ bools_logical_commute1_after) ⋯ +error: ././././SSA/Projects/InstCombine/tests/LLVM/gselecthsafehtransforms.lean:188:40: expected i or f, found: true +error: ././././SSA/Projects/InstCombine/tests/LLVM/gselecthsafehtransforms.lean:189:40: cannot convert suffix of i/f to int: false +error: ././././SSA/Projects/InstCombine/tests/LLVM/gselecthsafehtransforms.lean:205:2: tactic 'unfold' failed to unfold 'bools_logical_commute1_and2_before' at + (bools_logical_commute1_and2_before ⊑ bools_logical_commute1_and2_after) ⋯ +error: ././././SSA/Projects/InstCombine/tests/LLVM/gselecthsafehtransforms.lean:222:40: expected i or f, found: true +error: ././././SSA/Projects/InstCombine/tests/LLVM/gselecthsafehtransforms.lean:223:40: cannot convert suffix of i/f to int: false +error: ././././SSA/Projects/InstCombine/tests/LLVM/gselecthsafehtransforms.lean:239:2: tactic 'unfold' failed to unfold 'bools_logical_commute3_and2_before' at + (bools_logical_commute3_and2_before ⊑ bools_logical_commute3_and2_after) ⋯ +error: ././././SSA/Projects/InstCombine/tests/LLVM/gselecthsafehtransforms.lean:256:40: expected i or f, found: true +error: ././././SSA/Projects/InstCombine/tests/LLVM/gselecthsafehtransforms.lean:257:40: cannot convert suffix of i/f to int: false +error: ././././SSA/Projects/InstCombine/tests/LLVM/gselecthsafehtransforms.lean:273:2: tactic 'unfold' failed to unfold 'bools2_logical_commute0_before' at + (bools2_logical_commute0_before ⊑ bools2_logical_commute0_after) ⋯ +error: ././././SSA/Projects/InstCombine/tests/LLVM/gselecthsafehtransforms.lean:290:40: expected i or f, found: true +error: ././././SSA/Projects/InstCombine/tests/LLVM/gselecthsafehtransforms.lean:291:40: cannot convert suffix of i/f to int: false +error: ././././SSA/Projects/InstCombine/tests/LLVM/gselecthsafehtransforms.lean:307:2: tactic 'unfold' failed to unfold 'bools2_logical_commute0_and1_before' at + (bools2_logical_commute0_and1_before ⊑ bools2_logical_commute0_and1_after) ⋯ +error: ././././SSA/Projects/InstCombine/tests/LLVM/gselecthsafehtransforms.lean:324:40: expected i or f, found: true +error: ././././SSA/Projects/InstCombine/tests/LLVM/gselecthsafehtransforms.lean:325:40: cannot convert suffix of i/f to int: false +error: ././././SSA/Projects/InstCombine/tests/LLVM/gselecthsafehtransforms.lean:341:2: tactic 'unfold' failed to unfold 'bools2_logical_commute0_and2_before' at + (bools2_logical_commute0_and2_before ⊑ bools2_logical_commute0_and2_after) ⋯ +error: ././././SSA/Projects/InstCombine/tests/LLVM/gselecthsafehtransforms.lean:358:40: expected i or f, found: true +error: ././././SSA/Projects/InstCombine/tests/LLVM/gselecthsafehtransforms.lean:374:2: tactic 'unfold' failed to unfold 'bools2_logical_commute0_and1_and2_before' at + (bools2_logical_commute0_and1_and2_before ⊑ bools2_logical_commute0_and1_and2_after) ⋯ +error: ././././SSA/Projects/InstCombine/tests/LLVM/gselecthsafehtransforms.lean:391:40: expected i or f, found: true +error: ././././SSA/Projects/InstCombine/tests/LLVM/gselecthsafehtransforms.lean:392:40: cannot convert suffix of i/f to int: false +error: ././././SSA/Projects/InstCombine/tests/LLVM/gselecthsafehtransforms.lean:408:2: tactic 'unfold' failed to unfold 'bools2_logical_commute1_before' at + (bools2_logical_commute1_before ⊑ bools2_logical_commute1_after) ⋯ +error: ././././SSA/Projects/InstCombine/tests/LLVM/gselecthsafehtransforms.lean:425:40: expected i or f, found: true +error: ././././SSA/Projects/InstCombine/tests/LLVM/gselecthsafehtransforms.lean:426:40: cannot convert suffix of i/f to int: false +error: ././././SSA/Projects/InstCombine/tests/LLVM/gselecthsafehtransforms.lean:442:2: tactic 'unfold' failed to unfold 'bools2_logical_commute1_and1_before' at + (bools2_logical_commute1_and1_before ⊑ bools2_logical_commute1_and1_after) ⋯ +error: ././././SSA/Projects/InstCombine/tests/LLVM/gselecthsafehtransforms.lean:459:40: expected i or f, found: true +error: ././././SSA/Projects/InstCombine/tests/LLVM/gselecthsafehtransforms.lean:460:40: cannot convert suffix of i/f to int: false +error: ././././SSA/Projects/InstCombine/tests/LLVM/gselecthsafehtransforms.lean:476:2: tactic 'unfold' failed to unfold 'bools2_logical_commute1_and2_before' at + (bools2_logical_commute1_and2_before ⊑ bools2_logical_commute1_and2_after) ⋯ +error: ././././SSA/Projects/InstCombine/tests/LLVM/gselecthsafehtransforms.lean:493:40: expected i or f, found: true +error: ././././SSA/Projects/InstCombine/tests/LLVM/gselecthsafehtransforms.lean:509:2: tactic 'unfold' failed to unfold 'bools2_logical_commute1_and1_and2_before' at + (bools2_logical_commute1_and1_and2_before ⊑ bools2_logical_commute1_and1_and2_after) ⋯ +error: ././././SSA/Projects/InstCombine/tests/LLVM/gselecthsafehtransforms.lean:526:40: expected i or f, found: true +error: ././././SSA/Projects/InstCombine/tests/LLVM/gselecthsafehtransforms.lean:527:40: cannot convert suffix of i/f to int: false +error: ././././SSA/Projects/InstCombine/tests/LLVM/gselecthsafehtransforms.lean:543:2: tactic 'unfold' failed to unfold 'bools2_logical_commute2_before' at + (bools2_logical_commute2_before ⊑ bools2_logical_commute2_after) ⋯ +error: ././././SSA/Projects/InstCombine/tests/LLVM/gselecthsafehtransforms.lean:560:40: expected i or f, found: true +error: ././././SSA/Projects/InstCombine/tests/LLVM/gselecthsafehtransforms.lean:561:40: cannot convert suffix of i/f to int: false +error: ././././SSA/Projects/InstCombine/tests/LLVM/gselecthsafehtransforms.lean:577:2: tactic 'unfold' failed to unfold 'bools2_logical_commute2_and1_before' at + (bools2_logical_commute2_and1_before ⊑ bools2_logical_commute2_and1_after) ⋯ +error: ././././SSA/Projects/InstCombine/tests/LLVM/gselecthsafehtransforms.lean:594:40: expected i or f, found: true +error: ././././SSA/Projects/InstCombine/tests/LLVM/gselecthsafehtransforms.lean:595:40: cannot convert suffix of i/f to int: false +error: ././././SSA/Projects/InstCombine/tests/LLVM/gselecthsafehtransforms.lean:611:2: tactic 'unfold' failed to unfold 'bools2_logical_commute3_nopoison_before' at + (bools2_logical_commute3_nopoison_before ⊑ bools2_logical_commute3_nopoison_after) ⋯ +error: ././././SSA/Projects/InstCombine/tests/LLVM/gselecthsafehtransforms.lean:628:40: expected i or f, found: true +error: ././././SSA/Projects/InstCombine/tests/LLVM/gselecthsafehtransforms.lean:629:40: cannot convert suffix of i/f to int: false +error: ././././SSA/Projects/InstCombine/tests/LLVM/gselecthsafehtransforms.lean:645:2: tactic 'unfold' failed to unfold 'bools2_logical_commute3_and1_before' at + (bools2_logical_commute3_and1_before ⊑ bools2_logical_commute3_and1_after) ⋯ +error: Lean exited with code 1 +Some required builds logged failures: +- SSA.Projects.InstCombine.tests.LLVM.gselecthsafehtransforms +error: build failed diff --git a/SSA/Projects/InstCombine/tests/logs/gshifthadd.txt b/SSA/Projects/InstCombine/tests/logs/gshifthadd.txt deleted file mode 100644 index 37c76dd75..000000000 --- a/SSA/Projects/InstCombine/tests/logs/gshifthadd.txt +++ /dev/null @@ -1,61 +0,0 @@ -error: build failed -⚠ [2443/2457] Replayed SSA.Experimental.Bits.Fast.FiniteStateMachine -warning: ././././SSA/Experimental/Bits/Fast/FiniteStateMachine.lean:107:8: declaration uses 'sorry' -warning: ././././SSA/Experimental/Bits/Fast/FiniteStateMachine.lean:825:8: declaration uses 'sorry' -⚠ [2447/2457] Replayed SSA.Experimental.Bits.Fast.Tactic -warning: ././././SSA/Experimental/Bits/Fast/Tactic.lean:340:4: declaration uses 'sorry' -⚠ [2451/2457] Replayed SSA.Experimental.Bits.AutoStructs.Basic -warning: ././././SSA/Experimental/Bits/AutoStructs/Basic.lean:99:8: declaration uses 'sorry' -warning: ././././SSA/Experimental/Bits/AutoStructs/Basic.lean:102:8: declaration uses 'sorry' -warning: ././././SSA/Experimental/Bits/AutoStructs/Basic.lean:104:8: declaration uses 'sorry' -warning: ././././SSA/Experimental/Bits/AutoStructs/Basic.lean:106:8: declaration uses 'sorry' -warning: ././././SSA/Experimental/Bits/AutoStructs/Basic.lean:109:8: declaration uses 'sorry' -warning: ././././SSA/Experimental/Bits/AutoStructs/Basic.lean:111:8: declaration uses 'sorry' -warning: ././././SSA/Experimental/Bits/AutoStructs/Basic.lean:113:8: declaration uses 'sorry' -warning: ././././SSA/Experimental/Bits/AutoStructs/Basic.lean:116:8: declaration uses 'sorry' -warning: ././././SSA/Experimental/Bits/AutoStructs/Basic.lean:127:8: declaration uses 'sorry' -warning: ././././SSA/Experimental/Bits/AutoStructs/Basic.lean:164:8: declaration uses 'sorry' -warning: ././././SSA/Experimental/Bits/AutoStructs/Basic.lean:335:6: declaration uses 'sorry' -warning: ././././SSA/Experimental/Bits/AutoStructs/Basic.lean:408:6: declaration uses 'sorry' -warning: ././././SSA/Experimental/Bits/AutoStructs/Basic.lean:443:6: declaration uses 'sorry' -warning: ././././SSA/Experimental/Bits/AutoStructs/Basic.lean:477:6: declaration uses 'sorry' -⚠ [2453/2457] Replayed SSA.Experimental.Bits.AutoStructs.FiniteStateMachine -warning: ././././SSA/Experimental/Bits/AutoStructs/FiniteStateMachine.lean:24:38: structure ... :=' has been deprecated in favor of 'structure ... where'. -note: this linter can be disabled with `set_option linter.deprecated false` -warning: ././././SSA/Experimental/Bits/AutoStructs/FiniteStateMachine.lean:111:8: declaration uses 'sorry' -warning: ././././SSA/Experimental/Bits/AutoStructs/FiniteStateMachine.lean:511:59: structure ... :=' has been deprecated in favor of 'structure ... where'. -note: this linter can be disabled with `set_option linter.deprecated false` -✖ [2457/2457] Building SSA.Projects.InstCombine.tests.LLVM.gshifthadd -trace: .> LEAN_PATH=././.lake/packages/batteries/.lake/build/lib:././.lake/packages/Qq/.lake/build/lib:././.lake/packages/aesop/.lake/build/lib:././.lake/packages/proofwidgets/.lake/build/lib:././.lake/packages/Cli/.lake/build/lib:././.lake/packages/importGraph/.lake/build/lib:././.lake/packages/LeanSearchClient/.lake/build/lib:././.lake/packages/mathlib/.lake/build/lib:././.lake/packages/MD4Lean/.lake/build/lib:././.lake/packages/UnicodeBasic/.lake/build/lib:././.lake/packages/BibtexQuery/.lake/build/lib:././.lake/packages/doc-gen4/.lake/build/lib:././.lake/packages/leanwuzla/.lake/build/lib:././.lake/build/lib LD_LIBRARY_PATH= /home/lfrenot/.elan/toolchains/leanprover--lean4---nightly-2024-10-15/bin/lean ././././SSA/Projects/InstCombine/tests/LLVM/gshifthadd.lean -R ./././. -o ././.lake/build/lib/SSA/Projects/InstCombine/tests/LLVM/gshifthadd.olean -i ././.lake/build/lib/SSA/Projects/InstCombine/tests/LLVM/gshifthadd.ilean -c ././.lake/build/ir/SSA/Projects/InstCombine/tests/LLVM/gshifthadd.c --json -info: ././././SSA/Projects/InstCombine/tests/LLVM/gshifthadd.lean:45:17: theorem extracted_1 (x : BitVec 32) : - (if 32#32 ≤ (x &&& 65535#32) + 5#32 then none - else some ((6#32).sshiftRight (((x.toNat &&& 65535) + 5) % 4294967296))) ⊑ - some 0#32 := sorry -warning: ././././SSA/Projects/InstCombine/tests/LLVM/gshifthadd.lean:35:8: declaration uses 'sorry' -info: ././././SSA/Projects/InstCombine/tests/LLVM/gshifthadd.lean:82:17: theorem extracted_1 (x : BitVec 32) : - (if 32#32 ≤ (x &&& 65535#32) + 5#32 then none else some (6#32 <<< (((x.toNat &&& 65535) + 5) % 4294967296))) ⊑ - if 32#32 ≤ x &&& 65535#32 then none else some (192#32 <<< (x.toNat &&& 65535)) := sorry -warning: ././././SSA/Projects/InstCombine/tests/LLVM/gshifthadd.lean:72:8: declaration uses 'sorry' -info: ././././SSA/Projects/InstCombine/tests/LLVM/gshifthadd.lean:115:17: theorem extracted_1 (x : BitVec 32) : - ((if x + 5#32 < x ∨ x + 5#32 < 5#32 then none else some (x + 5#32)).bind fun y' => - if 32#32 ≤ y' then none else some (6#32 <<< y'.toNat)) ⊑ - if 32#32 ≤ x then none else some (192#32 <<< x.toNat) := sorry -warning: ././././SSA/Projects/InstCombine/tests/LLVM/gshifthadd.lean:105:8: declaration uses 'sorry' -info: ././././SSA/Projects/InstCombine/tests/LLVM/gshifthadd.lean:147:17: theorem extracted_1 (x : BitVec 32) : - ((if x + 1#32 < x ∨ x + 1#32 < 1#32 then none else some (x + 1#32)).bind fun y' => - if 1#32 <<< y'.toNat >>> y'.toNat = 1#32 then none else if 32#32 ≤ y' then none else some (1#32 <<< y'.toNat)) ⊑ - if 2#32 <<< x.toNat >>> x.toNat = 2#32 then none else if 32#32 ≤ x then none else some (2#32 <<< x.toNat) := sorry -warning: ././././SSA/Projects/InstCombine/tests/LLVM/gshifthadd.lean:137:8: declaration uses 'sorry' -info: ././././SSA/Projects/InstCombine/tests/LLVM/gshifthadd.lean:180:17: theorem extracted_1 (x : BitVec 32) : - ((if x + 1#32 < x ∨ x + 1#32 < 1#32 then none else some (x + 1#32)).bind fun y' => - if (4294967295#32 <<< y'.toNat).sshiftRight y'.toNat = 4294967295#32 then none - else if 32#32 ≤ y' then none else some (4294967295#32 <<< y'.toNat)) ⊑ - if (4294967294#32 <<< x.toNat).sshiftRight x.toNat = 4294967294#32 then none - else if 32#32 ≤ x then none else some (4294967294#32 <<< x.toNat) := sorry -warning: ././././SSA/Projects/InstCombine/tests/LLVM/gshifthadd.lean:170:8: declaration uses 'sorry' -info: stdout: -{"severity":"information","pos":{"line":213,"column":17},"keepFullRange":false,"fileName":"././././SSA/Projects/InstCombine/tests/LLVM/gshifthadd.lean","endPos":{"line":213,"column":29},"data":"theorem extracted_1 (x : BitVec 32) :\n ((if x + 1#32 < x ∨ x + 1#32 < 1#32 then none else some (x + 1#32)).bind fun y' =>\n if 32#32 ≤ y' then none else some (4#32 >>> y -error: Lean exited with code 137 -Some required builds logged failures: -- SSA.Projects.InstCombine.tests.LLVM.gshifthadd -error: build failed diff --git a/SSA/Projects/InstCombine/tests/logs/gshifthadd_proof.txt b/SSA/Projects/InstCombine/tests/logs/gshifthadd_proof.txt new file mode 100644 index 000000000..56f063705 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/gshifthadd_proof.txt @@ -0,0 +1,354 @@ +⚠ [49/2462] Replayed Mathlib.Logic.Basic +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Basic.lean:155:8: `dec_em'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Basic.lean:159:8: `em'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Basic.lean:304:8: `or_congr_left'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Basic.lean:307:8: `or_congr_right'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Basic.lean:320:8: `imp_or'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Basic.lean:359:8: `xor_iff_not_iff'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Basic.lean:418:8: `eqRec_heq'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Basic.lean:511:8: `forall_true_iff'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Basic.lean:532:8: `exists_apply_eq_apply'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Basic.lean:539:6: `exists_apply_eq_apply2'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Basic.lean:548:6: `exists_apply_eq_apply3'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Basic.lean:575:8: `forall_apply_eq_imp_iff'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Basic.lean:578:8: `forall_eq_apply_imp_iff'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Basic.lean:638:8: `forall_prop_congr'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Basic.lean:711:6: `Classical.choose_eq'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Basic.lean:847:8: `dite_eq_iff'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Basic.lean:851:8: `ite_eq_iff'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +⚠ [66/2462] Replayed Mathlib.Algebra.NeZero +warning: ././.lake/packages/mathlib/././Mathlib/Algebra/NeZero.lean:44:6: `zero_ne_one'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Algebra/NeZero.lean:46:6: `one_ne_zero'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Algebra/NeZero.lean:48:6: `two_ne_zero'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Algebra/NeZero.lean:50:6: `three_ne_zero'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Algebra/NeZero.lean:52:6: `four_ne_zero'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +⚠ [69/2462] Replayed Mathlib.Logic.ExistsUnique +warning: ././.lake/packages/mathlib/././Mathlib/Logic/ExistsUnique.lean:109:16: `exists_unique_eq'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +⚠ [74/2462] Replayed Mathlib.Logic.Function.Basic +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Function/Basic.lean:78:8: `Function.Injective.eq_iff'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Function/Basic.lean:87:8: `Function.Injective.ne_iff'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Function/Basic.lean:117:8: `Function.Injective.of_comp_iff'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Function/Basic.lean:163:8: `Function.Surjective.of_comp_iff'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Function/Basic.lean:237:8: `Function.Bijective.of_comp_iff'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Function/Basic.lean:541:8: `Function.update_comp_eq_of_forall_ne'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Function/Basic.lean:552:8: `Function.update_comp_eq_of_injective'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Function/Basic.lean:649:8: `Function.extend_apply'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Function/Basic.lean:681:8: `Function.Injective.surjective_comp_right'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +⚠ [94/2462] Replayed Mathlib.Control.Combinators +warning: ././.lake/packages/mathlib/././Mathlib/Control/Combinators.lean:35:4: `Monad.mapM'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Control/Combinators.lean:57:4: `Monad.sequence'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +⚠ [96/2462] Replayed Mathlib.Logic.IsEmpty +warning: ././.lake/packages/mathlib/././Mathlib/Logic/IsEmpty.lean:36:9: `Fin.isEmpty'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +⚠ [229/2462] Replayed Mathlib.Data.Prod.PProd +warning: ././.lake/packages/mathlib/././Mathlib/Data/Prod/PProd.lean:35:8: `PProd.forall'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Data/Prod/PProd.lean:38:8: `PProd.exists'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +⚠ [230/2462] Replayed Mathlib.Data.Bool.Basic +warning: ././.lake/packages/mathlib/././Mathlib/Data/Bool/Basic.lean:156:8: `Bool.eq_true_of_not_eq_false'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Data/Bool/Basic.lean:159:8: `Bool.eq_false_of_not_eq_true'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +⚠ [232/2462] Replayed Mathlib.Logic.Function.Iterate +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Function/Iterate.lean:160:8: `Function.iterate_succ'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Function/Iterate.lean:163:8: `Function.iterate_succ_apply'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +⚠ [234/2462] Replayed Mathlib.Data.Prod.Basic +warning: ././.lake/packages/mathlib/././Mathlib/Data/Prod/Basic.lean:31:8: `Prod.forall'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Data/Prod/Basic.lean:34:8: `Prod.exists'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Data/Prod/Basic.lean:51:8: `Prod.map_apply'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Data/Prod/Basic.lean:54:8: `Prod.map_fst'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Data/Prod/Basic.lean:57:8: `Prod.map_snd'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +⚠ [235/2462] Replayed Mathlib.Data.Sigma.Basic +warning: ././.lake/packages/mathlib/././Mathlib/Data/Sigma/Basic.lean:90:6: `Sigma.exists'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Data/Sigma/Basic.lean:93:6: `Sigma.forall'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +⚠ [239/2462] Replayed Mathlib.Data.FunLike.Basic +warning: ././.lake/packages/mathlib/././Mathlib/Data/FunLike/Basic.lean:187:8: `DFunLike.ext'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +⚠ [244/2462] Replayed Mathlib.Logic.Relation +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Relation.lean:351:8: `Relation.TransGen.head'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Relation.lean:354:8: `Relation.TransGen.tail'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Relation.lean:444:8: `Relation.TransGen.lift'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Relation.lean:453:6: `Relation.TransGen.closed'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Relation.lean:523:8: `Relation.ReflTransGen.lift'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +⚠ [245/2462] Replayed Mathlib.Logic.Unique +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Unique.lean:131:18: `Unique.subsingleton_unique'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Unique.lean:259:9: `Unique.subtypeEq'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +⚠ [252/2462] Replayed Mathlib.Data.Quot +warning: ././.lake/packages/mathlib/././Mathlib/Data/Quot.lean:558:18: `Quotient.liftOn'_mk''` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Data/Quot.lean:562:14: `Quotient.surjective_liftOn'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Data/Quot.lean:573:18: `Quotient.liftOn₂'_mk''` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Data/Quot.lean:639:8: `Quotient.hrecOn'_mk''` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Data/Quot.lean:652:8: `Quotient.hrecOn₂'_mk''` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Data/Quot.lean:664:8: `Quotient.map'_mk''` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Data/Quot.lean:674:8: `Quotient.map₂'_mk''` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Data/Quot.lean:679:8: `Quotient.exact'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Data/Quot.lean:683:8: `Quotient.sound'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Data/Quot.lean:687:18: `Quotient.eq'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Data/Quot.lean:692:18: `Quotient.eq''` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Data/Quot.lean:701:8: `Quotient.out_eq'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Data/Quot.lean:704:8: `Quotient.mk_out'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +⚠ [256/2462] Replayed Mathlib.Tactic.Lift +warning: ././.lake/packages/mathlib/././Mathlib/Tactic/Lift.lean:49:9: `PiSubtype.canLift'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +⚠ [409/2462] Replayed Mathlib.Algebra.Group.Defs +warning: ././.lake/packages/mathlib/././Mathlib/Algebra/Group/Defs.lean:735:33: `pow_succ'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Algebra/Group/Defs.lean:740:6: `pow_mul_comm'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Algebra/Group/Defs.lean:749:6: `pow_three'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Algebra/Group/Defs.lean:772:6: `pow_mul'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +⚠ [443/2462] Replayed Mathlib.Data.List.Defs +warning: ././.lake/packages/mathlib/././Mathlib/Data/List/Defs.lean:241:9: `List.decidableChain'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +⚠ [474/2462] Replayed Mathlib.Control.Applicative +warning: ././.lake/packages/mathlib/././Mathlib/Control/Applicative.lean:34:8: `Applicative.pure_seq_eq_map'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +⚠ [475/2462] Replayed Mathlib.Control.Traversable.Basic +warning: ././.lake/packages/mathlib/././Mathlib/Control/Traversable/Basic.lean:139:8: `ApplicativeTransformation.preserves_map'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +⚠ [618/2462] Replayed Mathlib.Algebra.GroupWithZero.Defs +warning: ././.lake/packages/mathlib/././Mathlib/Algebra/GroupWithZero/Defs.lean:110:8: `mul_left_inj'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Algebra/GroupWithZero/Defs.lean:113:8: `mul_right_inj'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +⚠ [624/2462] Replayed Mathlib.Algebra.Group.Invertible.Defs +warning: ././.lake/packages/mathlib/././Mathlib/Algebra/Group/Invertible/Defs.lean:97:8: `invOf_mul_self'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Algebra/Group/Invertible/Defs.lean:103:8: `mul_invOf_self'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Algebra/Group/Invertible/Defs.lean:109:8: `invOf_mul_cancel_left'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Algebra/Group/Invertible/Defs.lean:120:8: `mul_invOf_cancel_left'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Algebra/Group/Invertible/Defs.lean:131:8: `invOf_mul_cancel_right'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Algebra/Group/Invertible/Defs.lean:142:8: `mul_invOf_cancel_right'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Algebra/Group/Invertible/Defs.lean:198:8: `invOf_one'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +⚠ [1184/2462] Replayed Mathlib.Control.Traversable.Lemmas +warning: ././.lake/packages/mathlib/././Mathlib/Control/Traversable/Lemmas.lean:87:8: `Traversable.naturality'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Control/Traversable/Lemmas.lean:102:8: `Traversable.traverse_eq_map_id'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Control/Traversable/Lemmas.lean:108:8: `Traversable.traverse_map'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Control/Traversable/Lemmas.lean:113:8: `Traversable.map_traverse'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +⚠ [2407/2462] Replayed Mathlib.Data.List.EditDistance.Defs +warning: ././.lake/packages/mathlib/././Mathlib/Data/List/EditDistance/Defs.lean:214:8: `suffixLevenshtein_nil'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +⚠ [2447/2462] Replayed SSA.Experimental.Bits.Fast.FiniteStateMachine +warning: ././././SSA/Experimental/Bits/Fast/FiniteStateMachine.lean:107:8: declaration uses 'sorry' +warning: ././././SSA/Experimental/Bits/Fast/FiniteStateMachine.lean:825:8: declaration uses 'sorry' +⚠ [2451/2462] Replayed SSA.Experimental.Bits.Fast.Tactic +warning: ././././SSA/Experimental/Bits/Fast/Tactic.lean:340:4: declaration uses 'sorry' +⚠ [2452/2462] Replayed SSA.Experimental.Bits.AutoStructs.ForLean +warning: ././././SSA/Experimental/Bits/AutoStructs/ForLean.lean:24:8: declaration uses 'sorry' +warning: ././././SSA/Experimental/Bits/AutoStructs/ForLean.lean:27:8: declaration uses 'sorry' +warning: ././././SSA/Experimental/Bits/AutoStructs/ForLean.lean:29:8: declaration uses 'sorry' +warning: ././././SSA/Experimental/Bits/AutoStructs/ForLean.lean:31:8: declaration uses 'sorry' +warning: ././././SSA/Experimental/Bits/AutoStructs/ForLean.lean:34:8: declaration uses 'sorry' +warning: ././././SSA/Experimental/Bits/AutoStructs/ForLean.lean:36:8: declaration uses 'sorry' +warning: ././././SSA/Experimental/Bits/AutoStructs/ForLean.lean:38:8: declaration uses 'sorry' +warning: ././././SSA/Experimental/Bits/AutoStructs/ForLean.lean:41:8: declaration uses 'sorry' +warning: ././././SSA/Experimental/Bits/AutoStructs/ForLean.lean:52:8: declaration uses 'sorry' +warning: ././././SSA/Experimental/Bits/AutoStructs/ForLean.lean:56:8: declaration uses 'sorry' +⚠ [2457/2462] Replayed SSA.Experimental.Bits.AutoStructs.Constructions +warning: ././././SSA/Experimental/Bits/AutoStructs/Constructions.lean:55:6: declaration uses 'sorry' +warning: ././././SSA/Experimental/Bits/AutoStructs/Constructions.lean:128:6: declaration uses 'sorry' +warning: ././././SSA/Experimental/Bits/AutoStructs/Constructions.lean:163:6: declaration uses 'sorry' +warning: ././././SSA/Experimental/Bits/AutoStructs/Constructions.lean:197:6: declaration uses 'sorry' +⚠ [2458/2462] Replayed SSA.Experimental.Bits.AutoStructs.FiniteStateMachine +warning: ././././SSA/Experimental/Bits/AutoStructs/FiniteStateMachine.lean:111:8: declaration uses 'sorry' +✖ [2462/2462] Building SSA.Projects.InstCombine.tests.LLVM.gshifthadd +trace: .> LEAN_PATH=././.lake/packages/batteries/.lake/build/lib:././.lake/packages/Qq/.lake/build/lib:././.lake/packages/aesop/.lake/build/lib:././.lake/packages/proofwidgets/.lake/build/lib:././.lake/packages/Cli/.lake/build/lib:././.lake/packages/importGraph/.lake/build/lib:././.lake/packages/LeanSearchClient/.lake/build/lib:././.lake/packages/mathlib/.lake/build/lib:././.lake/packages/MD4Lean/.lake/build/lib:././.lake/packages/UnicodeBasic/.lake/build/lib:././.lake/packages/BibtexQuery/.lake/build/lib:././.lake/packages/doc-gen4/.lake/build/lib:././.lake/packages/leanwuzla/.lake/build/lib:././.lake/build/lib LD_LIBRARY_PATH= /home/lfrenot/.elan/toolchains/leanprover--lean4---nightly-2024-10-17/bin/lean ././././SSA/Projects/InstCombine/tests/LLVM/gshifthadd.lean -R ./././. -o ././.lake/build/lib/SSA/Projects/InstCombine/tests/LLVM/gshifthadd.olean -i ././.lake/build/lib/SSA/Projects/InstCombine/tests/LLVM/gshifthadd.ilean -c ././.lake/build/ir/SSA/Projects/InstCombine/tests/LLVM/gshifthadd.c --json +info: ././././SSA/Projects/InstCombine/tests/LLVM/gshifthadd.lean:45:17: theorem extracted_1 (x : BitVec 32) : + (if 32#32 ≤ (x &&& 65535#32) + 5#32 then none + else some ((6#32).sshiftRight (((x.toNat &&& 65535) + 5) % 4294967296))) ⊑ + some 0#32 := sorry +warning: ././././SSA/Projects/InstCombine/tests/LLVM/gshifthadd.lean:35:8: declaration uses 'sorry' +info: ././././SSA/Projects/InstCombine/tests/LLVM/gshifthadd.lean:82:17: theorem extracted_1 (x : BitVec 32) : + (if 32#32 ≤ (x &&& 65535#32) + 5#32 then none else some (6#32 <<< (((x.toNat &&& 65535) + 5) % 4294967296))) ⊑ + if 32#32 ≤ x &&& 65535#32 then none else some (192#32 <<< (x.toNat &&& 65535)) := sorry +warning: ././././SSA/Projects/InstCombine/tests/LLVM/gshifthadd.lean:72:8: declaration uses 'sorry' +info: ././././SSA/Projects/InstCombine/tests/LLVM/gshifthadd.lean:115:17: theorem extracted_1 (x : BitVec 32) : + ((if x + 5#32 < x ∨ x + 5#32 < 5#32 then none else some (x + 5#32)).bind fun y' => + if 32#32 ≤ y' then none else some (6#32 <<< y'.toNat)) ⊑ + if 32#32 ≤ x then none else some (192#32 <<< x.toNat) := sorry +warning: ././././SSA/Projects/InstCombine/tests/LLVM/gshifthadd.lean:105:8: declaration uses 'sorry' +info: ././././SSA/Projects/InstCombine/tests/LLVM/gshifthadd.lean:147:17: theorem extracted_1 (x : BitVec 32) : + ((if x + 1#32 < x ∨ x + 1#32 < 1#32 then none else some (x + 1#32)).bind fun y' => + if 1#32 <<< y'.toNat >>> y'.toNat = 1#32 then none else if 32#32 ≤ y' then none else some (1#32 <<< y'.toNat)) ⊑ + if 2#32 <<< x.toNat >>> x.toNat = 2#32 then none else if 32#32 ≤ x then none else some (2#32 <<< x.toNat) := sorry +warning: ././././SSA/Projects/InstCombine/tests/LLVM/gshifthadd.lean:137:8: declaration uses 'sorry' +info: ././././SSA/Projects/InstCombine/tests/LLVM/gshifthadd.lean:180:17: theorem extracted_1 (x : BitVec 32) : + ((if x + 1#32 < x ∨ x + 1#32 < 1#32 then none else some (x + 1#32)).bind fun y' => + if (4294967295#32 <<< y'.toNat).sshiftRight y'.toNat = 4294967295#32 then none + else if 32#32 ≤ y' then none else some (4294967295#32 <<< y'.toNat)) ⊑ + if (4294967294#32 <<< x.toNat).sshiftRight x.toNat = 4294967294#32 then none + else if 32#32 ≤ x then none else some (4294967294#32 <<< x.toNat) := sorry +warning: ././././SSA/Projects/InstCombine/tests/LLVM/gshifthadd.lean:170:8: declaration uses 'sorry' +info: stdout: +{"severity":"information","pos":{"line":213,"column":17},"keepFullRange":false,"fileName":"././././SSA/Projects/InstCombine/tests/LLVM/gshifthadd.lean","endPos":{"line":213,"column":29},"data":"theorem extracted_1 (x : BitVec 32) :\n ((if x + 1#32 < x ∨ x + 1#32 < 1#32 then none else some (x + 1#32)).bind fun y' =>\n if 32#32 ≤ y' then none else some (4#32 >>> y +error: Lean exited with code 137 +Some required builds logged failures: +- SSA.Projects.InstCombine.tests.LLVM.gshifthadd +error: build failed diff --git a/SSA/Projects/InstCombine/tests/logs/gshifthamounthreassociation.txt b/SSA/Projects/InstCombine/tests/logs/gshifthamounthreassociation.txt deleted file mode 100644 index 91e6c8c73..000000000 --- a/SSA/Projects/InstCombine/tests/logs/gshifthamounthreassociation.txt +++ /dev/null @@ -1,33 +0,0 @@ -error: build failed -⚠ [2443/2457] Replayed SSA.Experimental.Bits.Fast.FiniteStateMachine -warning: ././././SSA/Experimental/Bits/Fast/FiniteStateMachine.lean:107:8: declaration uses 'sorry' -warning: ././././SSA/Experimental/Bits/Fast/FiniteStateMachine.lean:825:8: declaration uses 'sorry' -⚠ [2447/2457] Replayed SSA.Experimental.Bits.Fast.Tactic -warning: ././././SSA/Experimental/Bits/Fast/Tactic.lean:340:4: declaration uses 'sorry' -⚠ [2451/2457] Replayed SSA.Experimental.Bits.AutoStructs.Basic -warning: ././././SSA/Experimental/Bits/AutoStructs/Basic.lean:99:8: declaration uses 'sorry' -warning: ././././SSA/Experimental/Bits/AutoStructs/Basic.lean:102:8: declaration uses 'sorry' -warning: ././././SSA/Experimental/Bits/AutoStructs/Basic.lean:104:8: declaration uses 'sorry' -warning: ././././SSA/Experimental/Bits/AutoStructs/Basic.lean:106:8: declaration uses 'sorry' -warning: ././././SSA/Experimental/Bits/AutoStructs/Basic.lean:109:8: declaration uses 'sorry' -warning: ././././SSA/Experimental/Bits/AutoStructs/Basic.lean:111:8: declaration uses 'sorry' -warning: ././././SSA/Experimental/Bits/AutoStructs/Basic.lean:113:8: declaration uses 'sorry' -warning: ././././SSA/Experimental/Bits/AutoStructs/Basic.lean:116:8: declaration uses 'sorry' -warning: ././././SSA/Experimental/Bits/AutoStructs/Basic.lean:127:8: declaration uses 'sorry' -warning: ././././SSA/Experimental/Bits/AutoStructs/Basic.lean:164:8: declaration uses 'sorry' -warning: ././././SSA/Experimental/Bits/AutoStructs/Basic.lean:335:6: declaration uses 'sorry' -warning: ././././SSA/Experimental/Bits/AutoStructs/Basic.lean:408:6: declaration uses 'sorry' -warning: ././././SSA/Experimental/Bits/AutoStructs/Basic.lean:443:6: declaration uses 'sorry' -warning: ././././SSA/Experimental/Bits/AutoStructs/Basic.lean:477:6: declaration uses 'sorry' -⚠ [2453/2457] Replayed SSA.Experimental.Bits.AutoStructs.FiniteStateMachine -warning: ././././SSA/Experimental/Bits/AutoStructs/FiniteStateMachine.lean:24:38: structure ... :=' has been deprecated in favor of 'structure ... where'. -note: this linter can be disabled with `set_option linter.deprecated false` -warning: ././././SSA/Experimental/Bits/AutoStructs/FiniteStateMachine.lean:111:8: declaration uses 'sorry' -warning: ././././SSA/Experimental/Bits/AutoStructs/FiniteStateMachine.lean:511:59: structure ... :=' has been deprecated in favor of 'structure ... where'. -note: this linter can be disabled with `set_option linter.deprecated false` -✖ [2457/2457] Building SSA.Projects.InstCombine.tests.LLVM.gshifthamounthreassociation -trace: .> LEAN_PATH=././.lake/packages/batteries/.lake/build/lib:././.lake/packages/Qq/.lake/build/lib:././.lake/packages/aesop/.lake/build/lib:././.lake/packages/proofwidgets/.lake/build/lib:././.lake/packages/Cli/.lake/build/lib:././.lake/packages/importGraph/.lake/build/lib:././.lake/packages/LeanSearchClient/.lake/build/lib:././.lake/packages/mathlib/.lake/build/lib:././.lake/packages/MD4Lean/.lake/build/lib:././.lake/packages/UnicodeBasic/.lake/build/lib:././.lake/packages/BibtexQuery/.lake/build/lib:././.lake/packages/doc-gen4/.lake/build/lib:././.lake/packages/leanwuzla/.lake/build/lib:././.lake/build/lib LD_LIBRARY_PATH= /home/lfrenot/.elan/toolchains/leanprover--lean4---nightly-2024-10-15/bin/lean ././././SSA/Projects/InstCombine/tests/LLVM/gshifthamounthreassociation.lean -R ./././. -o ././.lake/build/lib/SSA/Projects/InstCombine/tests/LLVM/gshifthamounthreassociation.olean -i ././.lake/build/lib/SSA/Projects/InstCombine/tests/LLVM/gshifthamounthreassociation.ilean -c ././.lake/build/ir/SSA/Projects/InstCombine/tests/LLVM/gshifthamounthreassociation.c --json -error: Lean exited with code 137 -Some required builds logged failures: -- SSA.Projects.InstCombine.tests.LLVM.gshifthamounthreassociation -error: build failed diff --git a/SSA/Projects/InstCombine/tests/logs/gshifthamounthreassociation_proof.txt b/SSA/Projects/InstCombine/tests/logs/gshifthamounthreassociation_proof.txt new file mode 100644 index 000000000..accca55c9 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/gshifthamounthreassociation_proof.txt @@ -0,0 +1,326 @@ +⚠ [49/2462] Replayed Mathlib.Logic.Basic +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Basic.lean:155:8: `dec_em'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Basic.lean:159:8: `em'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Basic.lean:304:8: `or_congr_left'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Basic.lean:307:8: `or_congr_right'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Basic.lean:320:8: `imp_or'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Basic.lean:359:8: `xor_iff_not_iff'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Basic.lean:418:8: `eqRec_heq'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Basic.lean:511:8: `forall_true_iff'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Basic.lean:532:8: `exists_apply_eq_apply'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Basic.lean:539:6: `exists_apply_eq_apply2'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Basic.lean:548:6: `exists_apply_eq_apply3'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Basic.lean:575:8: `forall_apply_eq_imp_iff'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Basic.lean:578:8: `forall_eq_apply_imp_iff'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Basic.lean:638:8: `forall_prop_congr'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Basic.lean:711:6: `Classical.choose_eq'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Basic.lean:847:8: `dite_eq_iff'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Basic.lean:851:8: `ite_eq_iff'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +⚠ [66/2462] Replayed Mathlib.Algebra.NeZero +warning: ././.lake/packages/mathlib/././Mathlib/Algebra/NeZero.lean:44:6: `zero_ne_one'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Algebra/NeZero.lean:46:6: `one_ne_zero'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Algebra/NeZero.lean:48:6: `two_ne_zero'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Algebra/NeZero.lean:50:6: `three_ne_zero'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Algebra/NeZero.lean:52:6: `four_ne_zero'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +⚠ [69/2462] Replayed Mathlib.Logic.ExistsUnique +warning: ././.lake/packages/mathlib/././Mathlib/Logic/ExistsUnique.lean:109:16: `exists_unique_eq'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +⚠ [74/2462] Replayed Mathlib.Logic.Function.Basic +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Function/Basic.lean:78:8: `Function.Injective.eq_iff'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Function/Basic.lean:87:8: `Function.Injective.ne_iff'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Function/Basic.lean:117:8: `Function.Injective.of_comp_iff'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Function/Basic.lean:163:8: `Function.Surjective.of_comp_iff'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Function/Basic.lean:237:8: `Function.Bijective.of_comp_iff'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Function/Basic.lean:541:8: `Function.update_comp_eq_of_forall_ne'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Function/Basic.lean:552:8: `Function.update_comp_eq_of_injective'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Function/Basic.lean:649:8: `Function.extend_apply'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Function/Basic.lean:681:8: `Function.Injective.surjective_comp_right'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +⚠ [94/2462] Replayed Mathlib.Control.Combinators +warning: ././.lake/packages/mathlib/././Mathlib/Control/Combinators.lean:35:4: `Monad.mapM'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Control/Combinators.lean:57:4: `Monad.sequence'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +⚠ [96/2462] Replayed Mathlib.Logic.IsEmpty +warning: ././.lake/packages/mathlib/././Mathlib/Logic/IsEmpty.lean:36:9: `Fin.isEmpty'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +⚠ [229/2462] Replayed Mathlib.Data.Prod.PProd +warning: ././.lake/packages/mathlib/././Mathlib/Data/Prod/PProd.lean:35:8: `PProd.forall'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Data/Prod/PProd.lean:38:8: `PProd.exists'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +⚠ [230/2462] Replayed Mathlib.Data.Bool.Basic +warning: ././.lake/packages/mathlib/././Mathlib/Data/Bool/Basic.lean:156:8: `Bool.eq_true_of_not_eq_false'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Data/Bool/Basic.lean:159:8: `Bool.eq_false_of_not_eq_true'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +⚠ [232/2462] Replayed Mathlib.Logic.Function.Iterate +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Function/Iterate.lean:160:8: `Function.iterate_succ'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Function/Iterate.lean:163:8: `Function.iterate_succ_apply'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +⚠ [234/2462] Replayed Mathlib.Data.Prod.Basic +warning: ././.lake/packages/mathlib/././Mathlib/Data/Prod/Basic.lean:31:8: `Prod.forall'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Data/Prod/Basic.lean:34:8: `Prod.exists'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Data/Prod/Basic.lean:51:8: `Prod.map_apply'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Data/Prod/Basic.lean:54:8: `Prod.map_fst'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Data/Prod/Basic.lean:57:8: `Prod.map_snd'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +⚠ [235/2462] Replayed Mathlib.Data.Sigma.Basic +warning: ././.lake/packages/mathlib/././Mathlib/Data/Sigma/Basic.lean:90:6: `Sigma.exists'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Data/Sigma/Basic.lean:93:6: `Sigma.forall'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +⚠ [239/2462] Replayed Mathlib.Data.FunLike.Basic +warning: ././.lake/packages/mathlib/././Mathlib/Data/FunLike/Basic.lean:187:8: `DFunLike.ext'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +⚠ [244/2462] Replayed Mathlib.Logic.Relation +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Relation.lean:351:8: `Relation.TransGen.head'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Relation.lean:354:8: `Relation.TransGen.tail'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Relation.lean:444:8: `Relation.TransGen.lift'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Relation.lean:453:6: `Relation.TransGen.closed'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Relation.lean:523:8: `Relation.ReflTransGen.lift'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +⚠ [245/2462] Replayed Mathlib.Logic.Unique +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Unique.lean:131:18: `Unique.subsingleton_unique'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Unique.lean:259:9: `Unique.subtypeEq'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +⚠ [252/2462] Replayed Mathlib.Data.Quot +warning: ././.lake/packages/mathlib/././Mathlib/Data/Quot.lean:558:18: `Quotient.liftOn'_mk''` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Data/Quot.lean:562:14: `Quotient.surjective_liftOn'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Data/Quot.lean:573:18: `Quotient.liftOn₂'_mk''` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Data/Quot.lean:639:8: `Quotient.hrecOn'_mk''` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Data/Quot.lean:652:8: `Quotient.hrecOn₂'_mk''` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Data/Quot.lean:664:8: `Quotient.map'_mk''` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Data/Quot.lean:674:8: `Quotient.map₂'_mk''` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Data/Quot.lean:679:8: `Quotient.exact'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Data/Quot.lean:683:8: `Quotient.sound'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Data/Quot.lean:687:18: `Quotient.eq'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Data/Quot.lean:692:18: `Quotient.eq''` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Data/Quot.lean:701:8: `Quotient.out_eq'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Data/Quot.lean:704:8: `Quotient.mk_out'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +⚠ [256/2462] Replayed Mathlib.Tactic.Lift +warning: ././.lake/packages/mathlib/././Mathlib/Tactic/Lift.lean:49:9: `PiSubtype.canLift'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +⚠ [409/2462] Replayed Mathlib.Algebra.Group.Defs +warning: ././.lake/packages/mathlib/././Mathlib/Algebra/Group/Defs.lean:735:33: `pow_succ'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Algebra/Group/Defs.lean:740:6: `pow_mul_comm'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Algebra/Group/Defs.lean:749:6: `pow_three'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Algebra/Group/Defs.lean:772:6: `pow_mul'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +⚠ [443/2462] Replayed Mathlib.Data.List.Defs +warning: ././.lake/packages/mathlib/././Mathlib/Data/List/Defs.lean:241:9: `List.decidableChain'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +⚠ [474/2462] Replayed Mathlib.Control.Applicative +warning: ././.lake/packages/mathlib/././Mathlib/Control/Applicative.lean:34:8: `Applicative.pure_seq_eq_map'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +⚠ [475/2462] Replayed Mathlib.Control.Traversable.Basic +warning: ././.lake/packages/mathlib/././Mathlib/Control/Traversable/Basic.lean:139:8: `ApplicativeTransformation.preserves_map'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +⚠ [618/2462] Replayed Mathlib.Algebra.GroupWithZero.Defs +warning: ././.lake/packages/mathlib/././Mathlib/Algebra/GroupWithZero/Defs.lean:110:8: `mul_left_inj'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Algebra/GroupWithZero/Defs.lean:113:8: `mul_right_inj'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +⚠ [624/2462] Replayed Mathlib.Algebra.Group.Invertible.Defs +warning: ././.lake/packages/mathlib/././Mathlib/Algebra/Group/Invertible/Defs.lean:97:8: `invOf_mul_self'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Algebra/Group/Invertible/Defs.lean:103:8: `mul_invOf_self'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Algebra/Group/Invertible/Defs.lean:109:8: `invOf_mul_cancel_left'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Algebra/Group/Invertible/Defs.lean:120:8: `mul_invOf_cancel_left'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Algebra/Group/Invertible/Defs.lean:131:8: `invOf_mul_cancel_right'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Algebra/Group/Invertible/Defs.lean:142:8: `mul_invOf_cancel_right'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Algebra/Group/Invertible/Defs.lean:198:8: `invOf_one'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +⚠ [1184/2462] Replayed Mathlib.Control.Traversable.Lemmas +warning: ././.lake/packages/mathlib/././Mathlib/Control/Traversable/Lemmas.lean:87:8: `Traversable.naturality'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Control/Traversable/Lemmas.lean:102:8: `Traversable.traverse_eq_map_id'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Control/Traversable/Lemmas.lean:108:8: `Traversable.traverse_map'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Control/Traversable/Lemmas.lean:113:8: `Traversable.map_traverse'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +⚠ [2407/2462] Replayed Mathlib.Data.List.EditDistance.Defs +warning: ././.lake/packages/mathlib/././Mathlib/Data/List/EditDistance/Defs.lean:214:8: `suffixLevenshtein_nil'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +⚠ [2447/2462] Replayed SSA.Experimental.Bits.Fast.FiniteStateMachine +warning: ././././SSA/Experimental/Bits/Fast/FiniteStateMachine.lean:107:8: declaration uses 'sorry' +warning: ././././SSA/Experimental/Bits/Fast/FiniteStateMachine.lean:825:8: declaration uses 'sorry' +⚠ [2451/2462] Replayed SSA.Experimental.Bits.Fast.Tactic +warning: ././././SSA/Experimental/Bits/Fast/Tactic.lean:340:4: declaration uses 'sorry' +⚠ [2452/2462] Replayed SSA.Experimental.Bits.AutoStructs.ForLean +warning: ././././SSA/Experimental/Bits/AutoStructs/ForLean.lean:24:8: declaration uses 'sorry' +warning: ././././SSA/Experimental/Bits/AutoStructs/ForLean.lean:27:8: declaration uses 'sorry' +warning: ././././SSA/Experimental/Bits/AutoStructs/ForLean.lean:29:8: declaration uses 'sorry' +warning: ././././SSA/Experimental/Bits/AutoStructs/ForLean.lean:31:8: declaration uses 'sorry' +warning: ././././SSA/Experimental/Bits/AutoStructs/ForLean.lean:34:8: declaration uses 'sorry' +warning: ././././SSA/Experimental/Bits/AutoStructs/ForLean.lean:36:8: declaration uses 'sorry' +warning: ././././SSA/Experimental/Bits/AutoStructs/ForLean.lean:38:8: declaration uses 'sorry' +warning: ././././SSA/Experimental/Bits/AutoStructs/ForLean.lean:41:8: declaration uses 'sorry' +warning: ././././SSA/Experimental/Bits/AutoStructs/ForLean.lean:52:8: declaration uses 'sorry' +warning: ././././SSA/Experimental/Bits/AutoStructs/ForLean.lean:56:8: declaration uses 'sorry' +⚠ [2457/2462] Replayed SSA.Experimental.Bits.AutoStructs.Constructions +warning: ././././SSA/Experimental/Bits/AutoStructs/Constructions.lean:55:6: declaration uses 'sorry' +warning: ././././SSA/Experimental/Bits/AutoStructs/Constructions.lean:128:6: declaration uses 'sorry' +warning: ././././SSA/Experimental/Bits/AutoStructs/Constructions.lean:163:6: declaration uses 'sorry' +warning: ././././SSA/Experimental/Bits/AutoStructs/Constructions.lean:197:6: declaration uses 'sorry' +⚠ [2458/2462] Replayed SSA.Experimental.Bits.AutoStructs.FiniteStateMachine +warning: ././././SSA/Experimental/Bits/AutoStructs/FiniteStateMachine.lean:111:8: declaration uses 'sorry' +✖ [2462/2462] Building SSA.Projects.InstCombine.tests.LLVM.gshifthamounthreassociation +trace: .> LEAN_PATH=././.lake/packages/batteries/.lake/build/lib:././.lake/packages/Qq/.lake/build/lib:././.lake/packages/aesop/.lake/build/lib:././.lake/packages/proofwidgets/.lake/build/lib:././.lake/packages/Cli/.lake/build/lib:././.lake/packages/importGraph/.lake/build/lib:././.lake/packages/LeanSearchClient/.lake/build/lib:././.lake/packages/mathlib/.lake/build/lib:././.lake/packages/MD4Lean/.lake/build/lib:././.lake/packages/UnicodeBasic/.lake/build/lib:././.lake/packages/BibtexQuery/.lake/build/lib:././.lake/packages/doc-gen4/.lake/build/lib:././.lake/packages/leanwuzla/.lake/build/lib:././.lake/build/lib LD_LIBRARY_PATH= /home/lfrenot/.elan/toolchains/leanprover--lean4---nightly-2024-10-17/bin/lean ././././SSA/Projects/InstCombine/tests/LLVM/gshifthamounthreassociation.lean -R ./././. -o ././.lake/build/lib/SSA/Projects/InstCombine/tests/LLVM/gshifthamounthreassociation.olean -i ././.lake/build/lib/SSA/Projects/InstCombine/tests/LLVM/gshifthamounthreassociation.ilean -c ././.lake/build/ir/SSA/Projects/InstCombine/tests/LLVM/gshifthamounthreassociation.c --json +error: Lean exited with code 137 +Some required builds logged failures: +- SSA.Projects.InstCombine.tests.LLVM.gshifthamounthreassociation +error: build failed diff --git a/SSA/Projects/InstCombine/tests/logs/gshlhsub.txt b/SSA/Projects/InstCombine/tests/logs/gshlhsub.txt deleted file mode 100644 index 6f3b33453..000000000 --- a/SSA/Projects/InstCombine/tests/logs/gshlhsub.txt +++ /dev/null @@ -1,33 +0,0 @@ -error: build failed -⚠ [2443/2457] Replayed SSA.Experimental.Bits.Fast.FiniteStateMachine -warning: ././././SSA/Experimental/Bits/Fast/FiniteStateMachine.lean:107:8: declaration uses 'sorry' -warning: ././././SSA/Experimental/Bits/Fast/FiniteStateMachine.lean:825:8: declaration uses 'sorry' -⚠ [2447/2457] Replayed SSA.Experimental.Bits.Fast.Tactic -warning: ././././SSA/Experimental/Bits/Fast/Tactic.lean:340:4: declaration uses 'sorry' -⚠ [2451/2457] Replayed SSA.Experimental.Bits.AutoStructs.Basic -warning: ././././SSA/Experimental/Bits/AutoStructs/Basic.lean:99:8: declaration uses 'sorry' -warning: ././././SSA/Experimental/Bits/AutoStructs/Basic.lean:102:8: declaration uses 'sorry' -warning: ././././SSA/Experimental/Bits/AutoStructs/Basic.lean:104:8: declaration uses 'sorry' -warning: ././././SSA/Experimental/Bits/AutoStructs/Basic.lean:106:8: declaration uses 'sorry' -warning: ././././SSA/Experimental/Bits/AutoStructs/Basic.lean:109:8: declaration uses 'sorry' -warning: ././././SSA/Experimental/Bits/AutoStructs/Basic.lean:111:8: declaration uses 'sorry' -warning: ././././SSA/Experimental/Bits/AutoStructs/Basic.lean:113:8: declaration uses 'sorry' -warning: ././././SSA/Experimental/Bits/AutoStructs/Basic.lean:116:8: declaration uses 'sorry' -warning: ././././SSA/Experimental/Bits/AutoStructs/Basic.lean:127:8: declaration uses 'sorry' -warning: ././././SSA/Experimental/Bits/AutoStructs/Basic.lean:164:8: declaration uses 'sorry' -warning: ././././SSA/Experimental/Bits/AutoStructs/Basic.lean:335:6: declaration uses 'sorry' -warning: ././././SSA/Experimental/Bits/AutoStructs/Basic.lean:408:6: declaration uses 'sorry' -warning: ././././SSA/Experimental/Bits/AutoStructs/Basic.lean:443:6: declaration uses 'sorry' -warning: ././././SSA/Experimental/Bits/AutoStructs/Basic.lean:477:6: declaration uses 'sorry' -⚠ [2453/2457] Replayed SSA.Experimental.Bits.AutoStructs.FiniteStateMachine -warning: ././././SSA/Experimental/Bits/AutoStructs/FiniteStateMachine.lean:24:38: structure ... :=' has been deprecated in favor of 'structure ... where'. -note: this linter can be disabled with `set_option linter.deprecated false` -warning: ././././SSA/Experimental/Bits/AutoStructs/FiniteStateMachine.lean:111:8: declaration uses 'sorry' -warning: ././././SSA/Experimental/Bits/AutoStructs/FiniteStateMachine.lean:511:59: structure ... :=' has been deprecated in favor of 'structure ... where'. -note: this linter can be disabled with `set_option linter.deprecated false` -✖ [2457/2457] Building SSA.Projects.InstCombine.tests.LLVM.gshlhsub -trace: .> LEAN_PATH=././.lake/packages/batteries/.lake/build/lib:././.lake/packages/Qq/.lake/build/lib:././.lake/packages/aesop/.lake/build/lib:././.lake/packages/proofwidgets/.lake/build/lib:././.lake/packages/Cli/.lake/build/lib:././.lake/packages/importGraph/.lake/build/lib:././.lake/packages/LeanSearchClient/.lake/build/lib:././.lake/packages/mathlib/.lake/build/lib:././.lake/packages/MD4Lean/.lake/build/lib:././.lake/packages/UnicodeBasic/.lake/build/lib:././.lake/packages/BibtexQuery/.lake/build/lib:././.lake/packages/doc-gen4/.lake/build/lib:././.lake/packages/leanwuzla/.lake/build/lib:././.lake/build/lib LD_LIBRARY_PATH= /home/lfrenot/.elan/toolchains/leanprover--lean4---nightly-2024-10-15/bin/lean ././././SSA/Projects/InstCombine/tests/LLVM/gshlhsub.lean -R ./././. -o ././.lake/build/lib/SSA/Projects/InstCombine/tests/LLVM/gshlhsub.olean -i ././.lake/build/lib/SSA/Projects/InstCombine/tests/LLVM/gshlhsub.ilean -c ././.lake/build/ir/SSA/Projects/InstCombine/tests/LLVM/gshlhsub.c --json -error: Lean exited with code 137 -Some required builds logged failures: -- SSA.Projects.InstCombine.tests.LLVM.gshlhsub -error: build failed diff --git a/SSA/Projects/InstCombine/tests/logs/gshlhsub_proof.txt b/SSA/Projects/InstCombine/tests/logs/gshlhsub_proof.txt new file mode 100644 index 000000000..d67ac25a7 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/gshlhsub_proof.txt @@ -0,0 +1,326 @@ +⚠ [49/2462] Replayed Mathlib.Logic.Basic +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Basic.lean:155:8: `dec_em'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Basic.lean:159:8: `em'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Basic.lean:304:8: `or_congr_left'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Basic.lean:307:8: `or_congr_right'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Basic.lean:320:8: `imp_or'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Basic.lean:359:8: `xor_iff_not_iff'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Basic.lean:418:8: `eqRec_heq'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Basic.lean:511:8: `forall_true_iff'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Basic.lean:532:8: `exists_apply_eq_apply'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Basic.lean:539:6: `exists_apply_eq_apply2'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Basic.lean:548:6: `exists_apply_eq_apply3'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Basic.lean:575:8: `forall_apply_eq_imp_iff'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Basic.lean:578:8: `forall_eq_apply_imp_iff'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Basic.lean:638:8: `forall_prop_congr'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Basic.lean:711:6: `Classical.choose_eq'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Basic.lean:847:8: `dite_eq_iff'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Basic.lean:851:8: `ite_eq_iff'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +⚠ [66/2462] Replayed Mathlib.Algebra.NeZero +warning: ././.lake/packages/mathlib/././Mathlib/Algebra/NeZero.lean:44:6: `zero_ne_one'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Algebra/NeZero.lean:46:6: `one_ne_zero'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Algebra/NeZero.lean:48:6: `two_ne_zero'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Algebra/NeZero.lean:50:6: `three_ne_zero'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Algebra/NeZero.lean:52:6: `four_ne_zero'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +⚠ [69/2462] Replayed Mathlib.Logic.ExistsUnique +warning: ././.lake/packages/mathlib/././Mathlib/Logic/ExistsUnique.lean:109:16: `exists_unique_eq'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +⚠ [74/2462] Replayed Mathlib.Logic.Function.Basic +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Function/Basic.lean:78:8: `Function.Injective.eq_iff'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Function/Basic.lean:87:8: `Function.Injective.ne_iff'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Function/Basic.lean:117:8: `Function.Injective.of_comp_iff'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Function/Basic.lean:163:8: `Function.Surjective.of_comp_iff'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Function/Basic.lean:237:8: `Function.Bijective.of_comp_iff'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Function/Basic.lean:541:8: `Function.update_comp_eq_of_forall_ne'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Function/Basic.lean:552:8: `Function.update_comp_eq_of_injective'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Function/Basic.lean:649:8: `Function.extend_apply'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Function/Basic.lean:681:8: `Function.Injective.surjective_comp_right'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +⚠ [94/2462] Replayed Mathlib.Control.Combinators +warning: ././.lake/packages/mathlib/././Mathlib/Control/Combinators.lean:35:4: `Monad.mapM'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Control/Combinators.lean:57:4: `Monad.sequence'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +⚠ [96/2462] Replayed Mathlib.Logic.IsEmpty +warning: ././.lake/packages/mathlib/././Mathlib/Logic/IsEmpty.lean:36:9: `Fin.isEmpty'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +⚠ [229/2462] Replayed Mathlib.Data.Prod.PProd +warning: ././.lake/packages/mathlib/././Mathlib/Data/Prod/PProd.lean:35:8: `PProd.forall'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Data/Prod/PProd.lean:38:8: `PProd.exists'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +⚠ [230/2462] Replayed Mathlib.Data.Bool.Basic +warning: ././.lake/packages/mathlib/././Mathlib/Data/Bool/Basic.lean:156:8: `Bool.eq_true_of_not_eq_false'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Data/Bool/Basic.lean:159:8: `Bool.eq_false_of_not_eq_true'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +⚠ [232/2462] Replayed Mathlib.Logic.Function.Iterate +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Function/Iterate.lean:160:8: `Function.iterate_succ'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Function/Iterate.lean:163:8: `Function.iterate_succ_apply'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +⚠ [234/2462] Replayed Mathlib.Data.Prod.Basic +warning: ././.lake/packages/mathlib/././Mathlib/Data/Prod/Basic.lean:31:8: `Prod.forall'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Data/Prod/Basic.lean:34:8: `Prod.exists'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Data/Prod/Basic.lean:51:8: `Prod.map_apply'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Data/Prod/Basic.lean:54:8: `Prod.map_fst'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Data/Prod/Basic.lean:57:8: `Prod.map_snd'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +⚠ [235/2462] Replayed Mathlib.Data.Sigma.Basic +warning: ././.lake/packages/mathlib/././Mathlib/Data/Sigma/Basic.lean:90:6: `Sigma.exists'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Data/Sigma/Basic.lean:93:6: `Sigma.forall'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +⚠ [239/2462] Replayed Mathlib.Data.FunLike.Basic +warning: ././.lake/packages/mathlib/././Mathlib/Data/FunLike/Basic.lean:187:8: `DFunLike.ext'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +⚠ [244/2462] Replayed Mathlib.Logic.Relation +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Relation.lean:351:8: `Relation.TransGen.head'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Relation.lean:354:8: `Relation.TransGen.tail'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Relation.lean:444:8: `Relation.TransGen.lift'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Relation.lean:453:6: `Relation.TransGen.closed'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Relation.lean:523:8: `Relation.ReflTransGen.lift'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +⚠ [245/2462] Replayed Mathlib.Logic.Unique +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Unique.lean:131:18: `Unique.subsingleton_unique'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Unique.lean:259:9: `Unique.subtypeEq'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +⚠ [252/2462] Replayed Mathlib.Data.Quot +warning: ././.lake/packages/mathlib/././Mathlib/Data/Quot.lean:558:18: `Quotient.liftOn'_mk''` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Data/Quot.lean:562:14: `Quotient.surjective_liftOn'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Data/Quot.lean:573:18: `Quotient.liftOn₂'_mk''` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Data/Quot.lean:639:8: `Quotient.hrecOn'_mk''` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Data/Quot.lean:652:8: `Quotient.hrecOn₂'_mk''` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Data/Quot.lean:664:8: `Quotient.map'_mk''` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Data/Quot.lean:674:8: `Quotient.map₂'_mk''` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Data/Quot.lean:679:8: `Quotient.exact'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Data/Quot.lean:683:8: `Quotient.sound'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Data/Quot.lean:687:18: `Quotient.eq'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Data/Quot.lean:692:18: `Quotient.eq''` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Data/Quot.lean:701:8: `Quotient.out_eq'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Data/Quot.lean:704:8: `Quotient.mk_out'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +⚠ [256/2462] Replayed Mathlib.Tactic.Lift +warning: ././.lake/packages/mathlib/././Mathlib/Tactic/Lift.lean:49:9: `PiSubtype.canLift'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +⚠ [409/2462] Replayed Mathlib.Algebra.Group.Defs +warning: ././.lake/packages/mathlib/././Mathlib/Algebra/Group/Defs.lean:735:33: `pow_succ'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Algebra/Group/Defs.lean:740:6: `pow_mul_comm'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Algebra/Group/Defs.lean:749:6: `pow_three'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Algebra/Group/Defs.lean:772:6: `pow_mul'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +⚠ [443/2462] Replayed Mathlib.Data.List.Defs +warning: ././.lake/packages/mathlib/././Mathlib/Data/List/Defs.lean:241:9: `List.decidableChain'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +⚠ [474/2462] Replayed Mathlib.Control.Applicative +warning: ././.lake/packages/mathlib/././Mathlib/Control/Applicative.lean:34:8: `Applicative.pure_seq_eq_map'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +⚠ [475/2462] Replayed Mathlib.Control.Traversable.Basic +warning: ././.lake/packages/mathlib/././Mathlib/Control/Traversable/Basic.lean:139:8: `ApplicativeTransformation.preserves_map'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +⚠ [618/2462] Replayed Mathlib.Algebra.GroupWithZero.Defs +warning: ././.lake/packages/mathlib/././Mathlib/Algebra/GroupWithZero/Defs.lean:110:8: `mul_left_inj'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Algebra/GroupWithZero/Defs.lean:113:8: `mul_right_inj'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +⚠ [624/2462] Replayed Mathlib.Algebra.Group.Invertible.Defs +warning: ././.lake/packages/mathlib/././Mathlib/Algebra/Group/Invertible/Defs.lean:97:8: `invOf_mul_self'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Algebra/Group/Invertible/Defs.lean:103:8: `mul_invOf_self'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Algebra/Group/Invertible/Defs.lean:109:8: `invOf_mul_cancel_left'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Algebra/Group/Invertible/Defs.lean:120:8: `mul_invOf_cancel_left'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Algebra/Group/Invertible/Defs.lean:131:8: `invOf_mul_cancel_right'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Algebra/Group/Invertible/Defs.lean:142:8: `mul_invOf_cancel_right'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Algebra/Group/Invertible/Defs.lean:198:8: `invOf_one'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +⚠ [1184/2462] Replayed Mathlib.Control.Traversable.Lemmas +warning: ././.lake/packages/mathlib/././Mathlib/Control/Traversable/Lemmas.lean:87:8: `Traversable.naturality'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Control/Traversable/Lemmas.lean:102:8: `Traversable.traverse_eq_map_id'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Control/Traversable/Lemmas.lean:108:8: `Traversable.traverse_map'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Control/Traversable/Lemmas.lean:113:8: `Traversable.map_traverse'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +⚠ [2407/2462] Replayed Mathlib.Data.List.EditDistance.Defs +warning: ././.lake/packages/mathlib/././Mathlib/Data/List/EditDistance/Defs.lean:214:8: `suffixLevenshtein_nil'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +⚠ [2447/2462] Replayed SSA.Experimental.Bits.Fast.FiniteStateMachine +warning: ././././SSA/Experimental/Bits/Fast/FiniteStateMachine.lean:107:8: declaration uses 'sorry' +warning: ././././SSA/Experimental/Bits/Fast/FiniteStateMachine.lean:825:8: declaration uses 'sorry' +⚠ [2451/2462] Replayed SSA.Experimental.Bits.Fast.Tactic +warning: ././././SSA/Experimental/Bits/Fast/Tactic.lean:340:4: declaration uses 'sorry' +⚠ [2452/2462] Replayed SSA.Experimental.Bits.AutoStructs.ForLean +warning: ././././SSA/Experimental/Bits/AutoStructs/ForLean.lean:24:8: declaration uses 'sorry' +warning: ././././SSA/Experimental/Bits/AutoStructs/ForLean.lean:27:8: declaration uses 'sorry' +warning: ././././SSA/Experimental/Bits/AutoStructs/ForLean.lean:29:8: declaration uses 'sorry' +warning: ././././SSA/Experimental/Bits/AutoStructs/ForLean.lean:31:8: declaration uses 'sorry' +warning: ././././SSA/Experimental/Bits/AutoStructs/ForLean.lean:34:8: declaration uses 'sorry' +warning: ././././SSA/Experimental/Bits/AutoStructs/ForLean.lean:36:8: declaration uses 'sorry' +warning: ././././SSA/Experimental/Bits/AutoStructs/ForLean.lean:38:8: declaration uses 'sorry' +warning: ././././SSA/Experimental/Bits/AutoStructs/ForLean.lean:41:8: declaration uses 'sorry' +warning: ././././SSA/Experimental/Bits/AutoStructs/ForLean.lean:52:8: declaration uses 'sorry' +warning: ././././SSA/Experimental/Bits/AutoStructs/ForLean.lean:56:8: declaration uses 'sorry' +⚠ [2457/2462] Replayed SSA.Experimental.Bits.AutoStructs.Constructions +warning: ././././SSA/Experimental/Bits/AutoStructs/Constructions.lean:55:6: declaration uses 'sorry' +warning: ././././SSA/Experimental/Bits/AutoStructs/Constructions.lean:128:6: declaration uses 'sorry' +warning: ././././SSA/Experimental/Bits/AutoStructs/Constructions.lean:163:6: declaration uses 'sorry' +warning: ././././SSA/Experimental/Bits/AutoStructs/Constructions.lean:197:6: declaration uses 'sorry' +⚠ [2458/2462] Replayed SSA.Experimental.Bits.AutoStructs.FiniteStateMachine +warning: ././././SSA/Experimental/Bits/AutoStructs/FiniteStateMachine.lean:111:8: declaration uses 'sorry' +✖ [2462/2462] Building SSA.Projects.InstCombine.tests.LLVM.gshlhsub +trace: .> LEAN_PATH=././.lake/packages/batteries/.lake/build/lib:././.lake/packages/Qq/.lake/build/lib:././.lake/packages/aesop/.lake/build/lib:././.lake/packages/proofwidgets/.lake/build/lib:././.lake/packages/Cli/.lake/build/lib:././.lake/packages/importGraph/.lake/build/lib:././.lake/packages/LeanSearchClient/.lake/build/lib:././.lake/packages/mathlib/.lake/build/lib:././.lake/packages/MD4Lean/.lake/build/lib:././.lake/packages/UnicodeBasic/.lake/build/lib:././.lake/packages/BibtexQuery/.lake/build/lib:././.lake/packages/doc-gen4/.lake/build/lib:././.lake/packages/leanwuzla/.lake/build/lib:././.lake/build/lib LD_LIBRARY_PATH= /home/lfrenot/.elan/toolchains/leanprover--lean4---nightly-2024-10-17/bin/lean ././././SSA/Projects/InstCombine/tests/LLVM/gshlhsub.lean -R ./././. -o ././.lake/build/lib/SSA/Projects/InstCombine/tests/LLVM/gshlhsub.olean -i ././.lake/build/lib/SSA/Projects/InstCombine/tests/LLVM/gshlhsub.ilean -c ././.lake/build/ir/SSA/Projects/InstCombine/tests/LLVM/gshlhsub.c --json +error: Lean exited with code 137 +Some required builds logged failures: +- SSA.Projects.InstCombine.tests.LLVM.gshlhsub +error: build failed diff --git a/SSA/Projects/InstCombine/tests/logs/gxor.txt b/SSA/Projects/InstCombine/tests/logs/gxor.txt deleted file mode 100644 index 64b9f780b..000000000 --- a/SSA/Projects/InstCombine/tests/logs/gxor.txt +++ /dev/null @@ -1,114 +0,0 @@ -error: build failed -⚠ [2443/2457] Replayed SSA.Experimental.Bits.Fast.FiniteStateMachine -warning: ././././SSA/Experimental/Bits/Fast/FiniteStateMachine.lean:107:8: declaration uses 'sorry' -warning: ././././SSA/Experimental/Bits/Fast/FiniteStateMachine.lean:825:8: declaration uses 'sorry' -⚠ [2447/2457] Replayed SSA.Experimental.Bits.Fast.Tactic -warning: ././././SSA/Experimental/Bits/Fast/Tactic.lean:340:4: declaration uses 'sorry' -⚠ [2451/2457] Replayed SSA.Experimental.Bits.AutoStructs.Basic -warning: ././././SSA/Experimental/Bits/AutoStructs/Basic.lean:99:8: declaration uses 'sorry' -warning: ././././SSA/Experimental/Bits/AutoStructs/Basic.lean:102:8: declaration uses 'sorry' -warning: ././././SSA/Experimental/Bits/AutoStructs/Basic.lean:104:8: declaration uses 'sorry' -warning: ././././SSA/Experimental/Bits/AutoStructs/Basic.lean:106:8: declaration uses 'sorry' -warning: ././././SSA/Experimental/Bits/AutoStructs/Basic.lean:109:8: declaration uses 'sorry' -warning: ././././SSA/Experimental/Bits/AutoStructs/Basic.lean:111:8: declaration uses 'sorry' -warning: ././././SSA/Experimental/Bits/AutoStructs/Basic.lean:113:8: declaration uses 'sorry' -warning: ././././SSA/Experimental/Bits/AutoStructs/Basic.lean:116:8: declaration uses 'sorry' -warning: ././././SSA/Experimental/Bits/AutoStructs/Basic.lean:127:8: declaration uses 'sorry' -warning: ././././SSA/Experimental/Bits/AutoStructs/Basic.lean:164:8: declaration uses 'sorry' -warning: ././././SSA/Experimental/Bits/AutoStructs/Basic.lean:335:6: declaration uses 'sorry' -warning: ././././SSA/Experimental/Bits/AutoStructs/Basic.lean:408:6: declaration uses 'sorry' -warning: ././././SSA/Experimental/Bits/AutoStructs/Basic.lean:443:6: declaration uses 'sorry' -warning: ././././SSA/Experimental/Bits/AutoStructs/Basic.lean:477:6: declaration uses 'sorry' -⚠ [2453/2457] Replayed SSA.Experimental.Bits.AutoStructs.FiniteStateMachine -warning: ././././SSA/Experimental/Bits/AutoStructs/FiniteStateMachine.lean:24:38: structure ... :=' has been deprecated in favor of 'structure ... where'. -note: this linter can be disabled with `set_option linter.deprecated false` -warning: ././././SSA/Experimental/Bits/AutoStructs/FiniteStateMachine.lean:111:8: declaration uses 'sorry' -warning: ././././SSA/Experimental/Bits/AutoStructs/FiniteStateMachine.lean:511:59: structure ... :=' has been deprecated in favor of 'structure ... where'. -note: this linter can be disabled with `set_option linter.deprecated false` -✖ [2457/2457] Building SSA.Projects.InstCombine.tests.LLVM.gxor -trace: .> LEAN_PATH=././.lake/packages/batteries/.lake/build/lib:././.lake/packages/Qq/.lake/build/lib:././.lake/packages/aesop/.lake/build/lib:././.lake/packages/proofwidgets/.lake/build/lib:././.lake/packages/Cli/.lake/build/lib:././.lake/packages/importGraph/.lake/build/lib:././.lake/packages/LeanSearchClient/.lake/build/lib:././.lake/packages/mathlib/.lake/build/lib:././.lake/packages/MD4Lean/.lake/build/lib:././.lake/packages/UnicodeBasic/.lake/build/lib:././.lake/packages/BibtexQuery/.lake/build/lib:././.lake/packages/doc-gen4/.lake/build/lib:././.lake/packages/leanwuzla/.lake/build/lib:././.lake/build/lib LD_LIBRARY_PATH= /home/lfrenot/.elan/toolchains/leanprover--lean4---nightly-2024-10-15/bin/lean ././././SSA/Projects/InstCombine/tests/LLVM/gxor.lean -R ./././. -o ././.lake/build/lib/SSA/Projects/InstCombine/tests/LLVM/gxor.olean -i ././.lake/build/lib/SSA/Projects/InstCombine/tests/LLVM/gxor.ilean -c ././.lake/build/ir/SSA/Projects/InstCombine/tests/LLVM/gxor.c --json -error: ././././SSA/Projects/InstCombine/tests/LLVM/gxor.lean:19:40: cannot convert suffix of i/f to int: false -error: ././././SSA/Projects/InstCombine/tests/LLVM/gxor.lean:31:2: tactic 'unfold' failed to unfold 'test0_before' at - (test0_before ⊑ test0_after) ⋯ -error: ././././SSA/Projects/InstCombine/tests/LLVM/gxor.lean:84:40: cannot convert suffix of i/f to int: false -error: ././././SSA/Projects/InstCombine/tests/LLVM/gxor.lean:89:2: tactic 'unfold' failed to unfold 'test2_after' at - (Com.changeDialect (InstcombineTransformDialect.MOp.instantiateCom ⟨[], test2_before.proof_1⟩) - (Com.var - (Expr.mk (InstCombine.MOp.binary 1 InstCombine.MOp.BinaryOp.xor) test2_before.proof_2 test2_before.proof_3 - (⟨0, test2_before.proof_4⟩::ₕ(test2_before.proof_5 ▸ ⟨0, test2_before.proof_4⟩::ₕHVector.nil)) HVector.nil) - (Com.ret ⟨0, test2_before.proof_6⟩)) ⊑ - test2_after) - ⋯ -info: ././././SSA/Projects/InstCombine/tests/LLVM/gxor.lean:158:17: theorem extracted_1 (x : BitVec 32) : x ^^^ (4294967295#32 ^^^ x) = 4294967295#32 := sorry -warning: ././././SSA/Projects/InstCombine/tests/LLVM/gxor.lean:148:8: declaration uses 'sorry' -info: ././././SSA/Projects/InstCombine/tests/LLVM/gxor.lean:190:17: theorem extracted_1 (x : BitVec 32) : (x ||| 123#32) ^^^ 123#32 = x &&& 4294967172#32 := sorry -warning: ././././SSA/Projects/InstCombine/tests/LLVM/gxor.lean:180:8: declaration uses 'sorry' -info: ././././SSA/Projects/InstCombine/tests/LLVM/gxor.lean:220:17: theorem extracted_1 (x : BitVec 8) : x ^^^ 17#8 ^^^ 17#8 = x := sorry -warning: ././././SSA/Projects/InstCombine/tests/LLVM/gxor.lean:210:8: declaration uses 'sorry' -info: ././././SSA/Projects/InstCombine/tests/LLVM/gxor.lean:257:17: theorem extracted_1 (x x_1 : BitVec 32) : x_1 &&& 7#32 ^^^ x &&& 128#32 = x_1 &&& 7#32 ||| x &&& 128#32 := sorry -warning: ././././SSA/Projects/InstCombine/tests/LLVM/gxor.lean:247:8: declaration uses 'sorry' -info: ././././SSA/Projects/InstCombine/tests/LLVM/gxor.lean:292:17: theorem extracted_1 (x : BitVec 8) : x &&& 3#8 ^^^ 4#8 = x &&& 3#8 ||| 4#8 := sorry -warning: ././././SSA/Projects/InstCombine/tests/LLVM/gxor.lean:282:8: declaration uses 'sorry' -info: ././././SSA/Projects/InstCombine/tests/LLVM/gxor.lean:327:17: theorem extracted_1 (x : BitVec 8) : (x ||| 12#8) ^^^ 4#8 = x &&& 243#8 ||| 8#8 := sorry -warning: ././././SSA/Projects/InstCombine/tests/LLVM/gxor.lean:317:8: declaration uses 'sorry' -info: ././././SSA/Projects/InstCombine/tests/LLVM/gxor.lean:360:17: theorem extracted_1 (x : BitVec 32) : 123#32 - (x ^^^ 4294967295#32) = x + 124#32 := sorry -warning: ././././SSA/Projects/InstCombine/tests/LLVM/gxor.lean:350:8: declaration uses 'sorry' -info: ././././SSA/Projects/InstCombine/tests/LLVM/gxor.lean:389:17: theorem extracted_1 (x x_1 : BitVec 32) : x_1 ^^^ x ^^^ x_1 = x := sorry -warning: ././././SSA/Projects/InstCombine/tests/LLVM/gxor.lean:379:8: declaration uses 'sorry' -info: ././././SSA/Projects/InstCombine/tests/LLVM/gxor.lean:421:17: theorem extracted_1 (x x_1 : BitVec 32) : (x_1 ^^^ 4294967295#32) &&& x ^^^ x = x &&& x_1 := sorry -warning: ././././SSA/Projects/InstCombine/tests/LLVM/gxor.lean:411:8: declaration uses 'sorry' -info: ././././SSA/Projects/InstCombine/tests/LLVM/gxor.lean:454:17: theorem extracted_1 (x : BitVec 32) : x + 2147483649#32 ^^^ 2147483648#32 = x + 1#32 := sorry -warning: ././././SSA/Projects/InstCombine/tests/LLVM/gxor.lean:444:8: declaration uses 'sorry' -info: ././././SSA/Projects/InstCombine/tests/LLVM/gxor.lean:487:17: theorem extracted_1 (x : BitVec 32) : 2147483649#32 - x ^^^ 2147483648#32 = 1#32 - x := sorry -warning: ././././SSA/Projects/InstCombine/tests/LLVM/gxor.lean:477:8: declaration uses 'sorry' -info: ././././SSA/Projects/InstCombine/tests/LLVM/gxor.lean:521:17: theorem extracted_1 (x x_1 x_2 : BitVec 4) : (x_2 ||| x_1) ^^^ (x_2 ||| x) = (x_1 ^^^ x) &&& (x_2 ^^^ 15#4) := sorry -warning: ././././SSA/Projects/InstCombine/tests/LLVM/gxor.lean:511:8: declaration uses 'sorry' -info: ././././SSA/Projects/InstCombine/tests/LLVM/gxor.lean:555:17: theorem extracted_1 (x x_1 x_2 : BitVec 4) : (x_2 ||| x_1) ^^^ (x_1 ||| x) = (x_2 ^^^ x) &&& (x_1 ^^^ 15#4) := sorry -warning: ././././SSA/Projects/InstCombine/tests/LLVM/gxor.lean:545:8: declaration uses 'sorry' -info: ././././SSA/Projects/InstCombine/tests/LLVM/gxor.lean:589:17: theorem extracted_1 (x x_1 x_2 : BitVec 4) : (x_2 ||| x_1) ^^^ (x ||| x_2) = (x_1 ^^^ x) &&& (x_2 ^^^ 15#4) := sorry -warning: ././././SSA/Projects/InstCombine/tests/LLVM/gxor.lean:579:8: declaration uses 'sorry' -info: ././././SSA/Projects/InstCombine/tests/LLVM/gxor.lean:626:17: theorem extracted_1 (x x_1 : BitVec 32) : - (x_1 ^^^ 1073741823#32) <<< 2 + x <<< 2 = x <<< 2 + (x_1 ^^^ 4294967295#32) <<< 2 := sorry -warning: ././././SSA/Projects/InstCombine/tests/LLVM/gxor.lean:616:8: declaration uses 'sorry' -info: ././././SSA/Projects/InstCombine/tests/LLVM/gxor.lean:661:17: theorem extracted_1 (x : BitVec 8) : x <<< 7 ^^^ 128#8 = (x ^^^ 255#8) <<< 7 := sorry -warning: ././././SSA/Projects/InstCombine/tests/LLVM/gxor.lean:651:8: declaration uses 'sorry' -info: ././././SSA/Projects/InstCombine/tests/LLVM/gxor.lean:696:17: theorem extracted_1 (x : BitVec 8) : x >>> 5 ^^^ 7#8 = (x ^^^ 255#8) >>> 5 := sorry -warning: ././././SSA/Projects/InstCombine/tests/LLVM/gxor.lean:686:8: declaration uses 'sorry' -info: ././././SSA/Projects/InstCombine/tests/LLVM/gxor.lean:731:17: theorem extracted_1 (x : BitVec 8) : (x ^^^ 255#8).sshiftRight 5 = x.sshiftRight 5 ^^^ 255#8 := sorry -warning: ././././SSA/Projects/InstCombine/tests/LLVM/gxor.lean:721:8: declaration uses 'sorry' -info: ././././SSA/Projects/InstCombine/tests/LLVM/gxor.lean:765:17: theorem extracted_1 (x : BitVec 32) : - (Option.bind (if 32#32 ≤ x then none else some ((4294967293#32).sshiftRight x.toNat)) fun a => - Option.bind (if 32#32 ≤ x then none else some (5#32 >>> x.toNat)) fun y' => some (a ^^^ y')) ⊑ - if 32#32 ≤ x then none else some ((4294967288#32).sshiftRight x.toNat) := sorry -warning: ././././SSA/Projects/InstCombine/tests/LLVM/gxor.lean:755:8: declaration uses 'sorry' -info: ././././SSA/Projects/InstCombine/tests/LLVM/gxor.lean:799:17: theorem extracted_1 (x : BitVec 32) : - (Option.bind (if 32#32 ≤ x then none else some (5#32 >>> x.toNat)) fun a => - Option.bind (if 32#32 ≤ x then none else some ((4294967293#32).sshiftRight x.toNat)) fun y' => some (a ^^^ y')) ⊑ - if 32#32 ≤ x then none else some ((4294967288#32).sshiftRight x.toNat) := sorry -warning: ././././SSA/Projects/InstCombine/tests/LLVM/gxor.lean:789:8: declaration uses 'sorry' -info: ././././SSA/Projects/InstCombine/tests/LLVM/gxor.lean:833:17: theorem extracted_1 (x : BitVec 32) : - (Option.bind (if 32#32 ≤ x then none else some (4294967293#32 >>> x.toNat)) fun a => - Option.bind (if 32#32 ≤ x then none else some (5#32 >>> x.toNat)) fun y' => some (a ^^^ y')) ⊑ - if 32#32 ≤ x then none else some (4294967288#32 >>> x.toNat) := sorry -warning: ././././SSA/Projects/InstCombine/tests/LLVM/gxor.lean:823:8: declaration uses 'sorry' -info: ././././SSA/Projects/InstCombine/tests/LLVM/gxor.lean:867:17: theorem extracted_1 (x : BitVec 32) : - (Option.bind (if 32#32 ≤ x then none else some ((4294967293#32).sshiftRight x.toNat)) fun a => - Option.bind (if 32#32 ≤ x then none else some ((4294967291#32).sshiftRight x.toNat)) fun y' => some (a ^^^ y')) ⊑ - if 32#32 ≤ x then none else some (6#32 >>> x.toNat) := sorry -warning: ././././SSA/Projects/InstCombine/tests/LLVM/gxor.lean:857:8: declaration uses 'sorry' -info: ././././SSA/Projects/InstCombine/tests/LLVM/gxor.lean:904:17: theorem extracted_1 (x x_1 x_2 : BitVec 4) : - x_2 &&& x_1 ^^^ (x_2 ^^^ 15#4) &&& x = x_2 &&& x_1 ||| x &&& (x_2 ^^^ 15#4) := sorry -warning: ././././SSA/Projects/InstCombine/tests/LLVM/gxor.lean:894:8: declaration uses 'sorry' -info: ././././SSA/Projects/InstCombine/tests/LLVM/gxor.lean:941:17: theorem extracted_1 (x x_1 x_2 : BitVec 4) : - x_2 &&& x_1 ^^^ (x_2 ^^^ 15#4) &&& x = x_2 &&& x_1 ||| x &&& (x_2 ^^^ 15#4) := sorry -warning: ././././SSA/Projects/InstCombine/tests/LLVM/gxor.lean:931:8: declaration uses 'sorry' -info: ././././SSA/Projects/InstCombine/tests/LLVM/gxor.lean:970:17: theorem extracted_1 (x x_1 : BitVec 32) : (x_1 ||| x) ^^^ x_1 = x := sorry -warning: ././././SSA/Projects/InstCombine/tests/LLVM/gxor.lean:960:8: declaration uses 'sorry' -info: ././././SSA/Projects/InstCombine/tests/LLVM/gxor.lean:999:17: theorem extracted_1 (x x_1 : BitVec 32) : x_1 ^^^ (x_1 ||| x) = x := sorry -warning: ././././SSA/Projects/InstCombine/tests/LLVM/gxor.lean:989:8: declaration uses 'sorry' -info: ././././SSA/Projects/InstCombine/tests/LLVM/gxor.lean:1028:17: theorem extracted_1 (x x_1 : BitVec 32) : x_1 ^^^ (x_1 ||| x) = x := sorry -warning: ././././SSA/Projects/InstCombine/tests/LLVM/gxor.lean:1018:8: declaration uses 'sorry' -error: Lean exited with code 1 -Some required builds logged failures: -- SSA.Projects.InstCombine.tests.LLVM.gxor -error: build failed diff --git a/SSA/Projects/InstCombine/tests/logs/gxor_proof.txt b/SSA/Projects/InstCombine/tests/logs/gxor_proof.txt new file mode 100644 index 000000000..2dbbbac99 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/gxor_proof.txt @@ -0,0 +1,534 @@ +⚠ [49/2462] Replayed Mathlib.Logic.Basic +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Basic.lean:155:8: `dec_em'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Basic.lean:159:8: `em'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Basic.lean:304:8: `or_congr_left'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Basic.lean:307:8: `or_congr_right'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Basic.lean:320:8: `imp_or'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Basic.lean:359:8: `xor_iff_not_iff'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Basic.lean:418:8: `eqRec_heq'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Basic.lean:511:8: `forall_true_iff'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Basic.lean:532:8: `exists_apply_eq_apply'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Basic.lean:539:6: `exists_apply_eq_apply2'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Basic.lean:548:6: `exists_apply_eq_apply3'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Basic.lean:575:8: `forall_apply_eq_imp_iff'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Basic.lean:578:8: `forall_eq_apply_imp_iff'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Basic.lean:638:8: `forall_prop_congr'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Basic.lean:711:6: `Classical.choose_eq'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Basic.lean:847:8: `dite_eq_iff'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Basic.lean:851:8: `ite_eq_iff'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +⚠ [66/2462] Replayed Mathlib.Algebra.NeZero +warning: ././.lake/packages/mathlib/././Mathlib/Algebra/NeZero.lean:44:6: `zero_ne_one'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Algebra/NeZero.lean:46:6: `one_ne_zero'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Algebra/NeZero.lean:48:6: `two_ne_zero'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Algebra/NeZero.lean:50:6: `three_ne_zero'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Algebra/NeZero.lean:52:6: `four_ne_zero'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +⚠ [69/2462] Replayed Mathlib.Logic.ExistsUnique +warning: ././.lake/packages/mathlib/././Mathlib/Logic/ExistsUnique.lean:109:16: `exists_unique_eq'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +⚠ [74/2462] Replayed Mathlib.Logic.Function.Basic +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Function/Basic.lean:78:8: `Function.Injective.eq_iff'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Function/Basic.lean:87:8: `Function.Injective.ne_iff'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Function/Basic.lean:117:8: `Function.Injective.of_comp_iff'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Function/Basic.lean:163:8: `Function.Surjective.of_comp_iff'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Function/Basic.lean:237:8: `Function.Bijective.of_comp_iff'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Function/Basic.lean:541:8: `Function.update_comp_eq_of_forall_ne'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Function/Basic.lean:552:8: `Function.update_comp_eq_of_injective'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Function/Basic.lean:649:8: `Function.extend_apply'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Function/Basic.lean:681:8: `Function.Injective.surjective_comp_right'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +⚠ [94/2462] Replayed Mathlib.Control.Combinators +warning: ././.lake/packages/mathlib/././Mathlib/Control/Combinators.lean:35:4: `Monad.mapM'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Control/Combinators.lean:57:4: `Monad.sequence'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +⚠ [96/2462] Replayed Mathlib.Logic.IsEmpty +warning: ././.lake/packages/mathlib/././Mathlib/Logic/IsEmpty.lean:36:9: `Fin.isEmpty'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +⚠ [229/2462] Replayed Mathlib.Data.Prod.PProd +warning: ././.lake/packages/mathlib/././Mathlib/Data/Prod/PProd.lean:35:8: `PProd.forall'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Data/Prod/PProd.lean:38:8: `PProd.exists'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +⚠ [230/2462] Replayed Mathlib.Data.Bool.Basic +warning: ././.lake/packages/mathlib/././Mathlib/Data/Bool/Basic.lean:156:8: `Bool.eq_true_of_not_eq_false'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Data/Bool/Basic.lean:159:8: `Bool.eq_false_of_not_eq_true'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +⚠ [232/2462] Replayed Mathlib.Logic.Function.Iterate +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Function/Iterate.lean:160:8: `Function.iterate_succ'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Function/Iterate.lean:163:8: `Function.iterate_succ_apply'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +⚠ [234/2462] Replayed Mathlib.Data.Prod.Basic +warning: ././.lake/packages/mathlib/././Mathlib/Data/Prod/Basic.lean:31:8: `Prod.forall'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Data/Prod/Basic.lean:34:8: `Prod.exists'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Data/Prod/Basic.lean:51:8: `Prod.map_apply'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Data/Prod/Basic.lean:54:8: `Prod.map_fst'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Data/Prod/Basic.lean:57:8: `Prod.map_snd'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +⚠ [235/2462] Replayed Mathlib.Data.Sigma.Basic +warning: ././.lake/packages/mathlib/././Mathlib/Data/Sigma/Basic.lean:90:6: `Sigma.exists'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Data/Sigma/Basic.lean:93:6: `Sigma.forall'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +⚠ [239/2462] Replayed Mathlib.Data.FunLike.Basic +warning: ././.lake/packages/mathlib/././Mathlib/Data/FunLike/Basic.lean:187:8: `DFunLike.ext'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +⚠ [244/2462] Replayed Mathlib.Logic.Relation +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Relation.lean:351:8: `Relation.TransGen.head'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Relation.lean:354:8: `Relation.TransGen.tail'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Relation.lean:444:8: `Relation.TransGen.lift'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Relation.lean:453:6: `Relation.TransGen.closed'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Relation.lean:523:8: `Relation.ReflTransGen.lift'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +⚠ [245/2462] Replayed Mathlib.Logic.Unique +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Unique.lean:131:18: `Unique.subsingleton_unique'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Unique.lean:259:9: `Unique.subtypeEq'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +⚠ [252/2462] Replayed Mathlib.Data.Quot +warning: ././.lake/packages/mathlib/././Mathlib/Data/Quot.lean:558:18: `Quotient.liftOn'_mk''` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Data/Quot.lean:562:14: `Quotient.surjective_liftOn'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Data/Quot.lean:573:18: `Quotient.liftOn₂'_mk''` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Data/Quot.lean:639:8: `Quotient.hrecOn'_mk''` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Data/Quot.lean:652:8: `Quotient.hrecOn₂'_mk''` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Data/Quot.lean:664:8: `Quotient.map'_mk''` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Data/Quot.lean:674:8: `Quotient.map₂'_mk''` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Data/Quot.lean:679:8: `Quotient.exact'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Data/Quot.lean:683:8: `Quotient.sound'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Data/Quot.lean:687:18: `Quotient.eq'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Data/Quot.lean:692:18: `Quotient.eq''` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Data/Quot.lean:701:8: `Quotient.out_eq'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Data/Quot.lean:704:8: `Quotient.mk_out'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +⚠ [256/2462] Replayed Mathlib.Tactic.Lift +warning: ././.lake/packages/mathlib/././Mathlib/Tactic/Lift.lean:49:9: `PiSubtype.canLift'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +⚠ [409/2462] Replayed Mathlib.Algebra.Group.Defs +warning: ././.lake/packages/mathlib/././Mathlib/Algebra/Group/Defs.lean:735:33: `pow_succ'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Algebra/Group/Defs.lean:740:6: `pow_mul_comm'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Algebra/Group/Defs.lean:749:6: `pow_three'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Algebra/Group/Defs.lean:772:6: `pow_mul'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +⚠ [443/2462] Replayed Mathlib.Data.List.Defs +warning: ././.lake/packages/mathlib/././Mathlib/Data/List/Defs.lean:241:9: `List.decidableChain'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +⚠ [474/2462] Replayed Mathlib.Control.Applicative +warning: ././.lake/packages/mathlib/././Mathlib/Control/Applicative.lean:34:8: `Applicative.pure_seq_eq_map'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +⚠ [475/2462] Replayed Mathlib.Control.Traversable.Basic +warning: ././.lake/packages/mathlib/././Mathlib/Control/Traversable/Basic.lean:139:8: `ApplicativeTransformation.preserves_map'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +⚠ [618/2462] Replayed Mathlib.Algebra.GroupWithZero.Defs +warning: ././.lake/packages/mathlib/././Mathlib/Algebra/GroupWithZero/Defs.lean:110:8: `mul_left_inj'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Algebra/GroupWithZero/Defs.lean:113:8: `mul_right_inj'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +⚠ [624/2462] Replayed Mathlib.Algebra.Group.Invertible.Defs +warning: ././.lake/packages/mathlib/././Mathlib/Algebra/Group/Invertible/Defs.lean:97:8: `invOf_mul_self'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Algebra/Group/Invertible/Defs.lean:103:8: `mul_invOf_self'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Algebra/Group/Invertible/Defs.lean:109:8: `invOf_mul_cancel_left'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Algebra/Group/Invertible/Defs.lean:120:8: `mul_invOf_cancel_left'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Algebra/Group/Invertible/Defs.lean:131:8: `invOf_mul_cancel_right'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Algebra/Group/Invertible/Defs.lean:142:8: `mul_invOf_cancel_right'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Algebra/Group/Invertible/Defs.lean:198:8: `invOf_one'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +⚠ [1184/2462] Replayed Mathlib.Control.Traversable.Lemmas +warning: ././.lake/packages/mathlib/././Mathlib/Control/Traversable/Lemmas.lean:87:8: `Traversable.naturality'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Control/Traversable/Lemmas.lean:102:8: `Traversable.traverse_eq_map_id'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Control/Traversable/Lemmas.lean:108:8: `Traversable.traverse_map'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Control/Traversable/Lemmas.lean:113:8: `Traversable.map_traverse'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +⚠ [2407/2462] Replayed Mathlib.Data.List.EditDistance.Defs +warning: ././.lake/packages/mathlib/././Mathlib/Data/List/EditDistance/Defs.lean:214:8: `suffixLevenshtein_nil'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +⚠ [2447/2462] Replayed SSA.Experimental.Bits.Fast.FiniteStateMachine +warning: ././././SSA/Experimental/Bits/Fast/FiniteStateMachine.lean:107:8: declaration uses 'sorry' +warning: ././././SSA/Experimental/Bits/Fast/FiniteStateMachine.lean:825:8: declaration uses 'sorry' +⚠ [2451/2462] Replayed SSA.Experimental.Bits.Fast.Tactic +warning: ././././SSA/Experimental/Bits/Fast/Tactic.lean:340:4: declaration uses 'sorry' +⚠ [2452/2462] Replayed SSA.Experimental.Bits.AutoStructs.ForLean +warning: ././././SSA/Experimental/Bits/AutoStructs/ForLean.lean:24:8: declaration uses 'sorry' +warning: ././././SSA/Experimental/Bits/AutoStructs/ForLean.lean:27:8: declaration uses 'sorry' +warning: ././././SSA/Experimental/Bits/AutoStructs/ForLean.lean:29:8: declaration uses 'sorry' +warning: ././././SSA/Experimental/Bits/AutoStructs/ForLean.lean:31:8: declaration uses 'sorry' +warning: ././././SSA/Experimental/Bits/AutoStructs/ForLean.lean:34:8: declaration uses 'sorry' +warning: ././././SSA/Experimental/Bits/AutoStructs/ForLean.lean:36:8: declaration uses 'sorry' +warning: ././././SSA/Experimental/Bits/AutoStructs/ForLean.lean:38:8: declaration uses 'sorry' +warning: ././././SSA/Experimental/Bits/AutoStructs/ForLean.lean:41:8: declaration uses 'sorry' +warning: ././././SSA/Experimental/Bits/AutoStructs/ForLean.lean:52:8: declaration uses 'sorry' +warning: ././././SSA/Experimental/Bits/AutoStructs/ForLean.lean:56:8: declaration uses 'sorry' +⚠ [2457/2462] Replayed SSA.Experimental.Bits.AutoStructs.Constructions +warning: ././././SSA/Experimental/Bits/AutoStructs/Constructions.lean:55:6: declaration uses 'sorry' +warning: ././././SSA/Experimental/Bits/AutoStructs/Constructions.lean:128:6: declaration uses 'sorry' +warning: ././././SSA/Experimental/Bits/AutoStructs/Constructions.lean:163:6: declaration uses 'sorry' +warning: ././././SSA/Experimental/Bits/AutoStructs/Constructions.lean:197:6: declaration uses 'sorry' +⚠ [2458/2462] Replayed SSA.Experimental.Bits.AutoStructs.FiniteStateMachine +warning: ././././SSA/Experimental/Bits/AutoStructs/FiniteStateMachine.lean:111:8: declaration uses 'sorry' +✖ [2462/2462] Building SSA.Projects.InstCombine.tests.LLVM.gxor +trace: .> LEAN_PATH=././.lake/packages/batteries/.lake/build/lib:././.lake/packages/Qq/.lake/build/lib:././.lake/packages/aesop/.lake/build/lib:././.lake/packages/proofwidgets/.lake/build/lib:././.lake/packages/Cli/.lake/build/lib:././.lake/packages/importGraph/.lake/build/lib:././.lake/packages/LeanSearchClient/.lake/build/lib:././.lake/packages/mathlib/.lake/build/lib:././.lake/packages/MD4Lean/.lake/build/lib:././.lake/packages/UnicodeBasic/.lake/build/lib:././.lake/packages/BibtexQuery/.lake/build/lib:././.lake/packages/doc-gen4/.lake/build/lib:././.lake/packages/leanwuzla/.lake/build/lib:././.lake/build/lib LD_LIBRARY_PATH= /home/lfrenot/.elan/toolchains/leanprover--lean4---nightly-2024-10-17/bin/lean ././././SSA/Projects/InstCombine/tests/LLVM/gxor.lean -R ./././. -o ././.lake/build/lib/SSA/Projects/InstCombine/tests/LLVM/gxor.olean -i ././.lake/build/lib/SSA/Projects/InstCombine/tests/LLVM/gxor.ilean -c ././.lake/build/ir/SSA/Projects/InstCombine/tests/LLVM/gxor.c --json +error: ././././SSA/Projects/InstCombine/tests/LLVM/gxor.lean:19:40: cannot convert suffix of i/f to int: false +error: ././././SSA/Projects/InstCombine/tests/LLVM/gxor.lean:31:2: tactic 'unfold' failed to unfold 'test0_before' at + (test0_before ⊑ test0_after) ⋯ +error: ././././SSA/Projects/InstCombine/tests/LLVM/gxor.lean:84:40: cannot convert suffix of i/f to int: false +error: ././././SSA/Projects/InstCombine/tests/LLVM/gxor.lean:89:2: tactic 'unfold' failed to unfold 'test2_after' at + (Com.changeDialect (InstcombineTransformDialect.MOp.instantiateCom ⟨[], test2_before.proof_1⟩) + (Com.var + (Expr.mk (InstCombine.MOp.binary 1 InstCombine.MOp.BinaryOp.xor) test2_before.proof_2 test2_before.proof_3 + (⟨0, test2_before.proof_4⟩::ₕ(test2_before.proof_5 ▸ ⟨0, test2_before.proof_4⟩::ₕHVector.nil)) HVector.nil) + (Com.ret ⟨0, test2_before.proof_6⟩)) ⊑ + test2_after) + ⋯ +info: ././././SSA/Projects/InstCombine/tests/LLVM/gxor.lean:158:17: theorem extracted_1 (x : BitVec 32) : x ^^^ (4294967295#32 ^^^ x) = 4294967295#32 := sorry +warning: ././././SSA/Projects/InstCombine/tests/LLVM/gxor.lean:148:8: declaration uses 'sorry' +info: ././././SSA/Projects/InstCombine/tests/LLVM/gxor.lean:190:17: theorem extracted_1 (x : BitVec 32) : (x ||| 123#32) ^^^ 123#32 = x &&& 4294967172#32 := sorry +warning: ././././SSA/Projects/InstCombine/tests/LLVM/gxor.lean:180:8: declaration uses 'sorry' +info: ././././SSA/Projects/InstCombine/tests/LLVM/gxor.lean:220:17: theorem extracted_1 (x : BitVec 8) : x ^^^ 17#8 ^^^ 17#8 = x := sorry +warning: ././././SSA/Projects/InstCombine/tests/LLVM/gxor.lean:210:8: declaration uses 'sorry' +info: ././././SSA/Projects/InstCombine/tests/LLVM/gxor.lean:257:17: theorem extracted_1 (x x_1 : BitVec 32) : x_1 &&& 7#32 ^^^ x &&& 128#32 = x_1 &&& 7#32 ||| x &&& 128#32 := sorry +warning: ././././SSA/Projects/InstCombine/tests/LLVM/gxor.lean:247:8: declaration uses 'sorry' +info: ././././SSA/Projects/InstCombine/tests/LLVM/gxor.lean:292:17: theorem extracted_1 (x : BitVec 8) : x &&& 3#8 ^^^ 4#8 = x &&& 3#8 ||| 4#8 := sorry +warning: ././././SSA/Projects/InstCombine/tests/LLVM/gxor.lean:282:8: declaration uses 'sorry' +info: ././././SSA/Projects/InstCombine/tests/LLVM/gxor.lean:327:17: theorem extracted_1 (x : BitVec 8) : (x ||| 12#8) ^^^ 4#8 = x &&& 243#8 ||| 8#8 := sorry +warning: ././././SSA/Projects/InstCombine/tests/LLVM/gxor.lean:317:8: declaration uses 'sorry' +info: ././././SSA/Projects/InstCombine/tests/LLVM/gxor.lean:360:17: theorem extracted_1 (x : BitVec 32) : 123#32 - (x ^^^ 4294967295#32) = x + 124#32 := sorry +warning: ././././SSA/Projects/InstCombine/tests/LLVM/gxor.lean:350:8: declaration uses 'sorry' +info: ././././SSA/Projects/InstCombine/tests/LLVM/gxor.lean:389:17: theorem extracted_1 (x x_1 : BitVec 32) : x_1 ^^^ x ^^^ x_1 = x := sorry +warning: ././././SSA/Projects/InstCombine/tests/LLVM/gxor.lean:379:8: declaration uses 'sorry' +info: ././././SSA/Projects/InstCombine/tests/LLVM/gxor.lean:421:17: theorem extracted_1 (x x_1 : BitVec 32) : (x_1 ^^^ 4294967295#32) &&& x ^^^ x = x &&& x_1 := sorry +warning: ././././SSA/Projects/InstCombine/tests/LLVM/gxor.lean:411:8: declaration uses 'sorry' +info: ././././SSA/Projects/InstCombine/tests/LLVM/gxor.lean:454:17: theorem extracted_1 (x : BitVec 32) : x + 2147483649#32 ^^^ 2147483648#32 = x + 1#32 := sorry +warning: ././././SSA/Projects/InstCombine/tests/LLVM/gxor.lean:444:8: declaration uses 'sorry' +info: ././././SSA/Projects/InstCombine/tests/LLVM/gxor.lean:487:17: theorem extracted_1 (x : BitVec 32) : 2147483649#32 - x ^^^ 2147483648#32 = 1#32 - x := sorry +warning: ././././SSA/Projects/InstCombine/tests/LLVM/gxor.lean:477:8: declaration uses 'sorry' +info: ././././SSA/Projects/InstCombine/tests/LLVM/gxor.lean:522:17: theorem extracted_1 (x : BitVec 1) : + (Option.bind + (match some x with + | none => none + | some { toFin := ⟨1, ⋯⟩ } => some 1000#32 + | some { toFin := ⟨0, ⋯⟩ } => some 10#32) + fun x' => some (x' ^^^ 123#32)) ⊑ + match some x with + | none => none + | some { toFin := ⟨1, ⋯⟩ } => some 915#32 + | some { toFin := ⟨0, ⋯⟩ } => some 113#32 := sorry +warning: ././././SSA/Projects/InstCombine/tests/LLVM/gxor.lean:512:8: declaration uses 'sorry' +info: ././././SSA/Projects/InstCombine/tests/LLVM/gxor.lean:560:17: theorem extracted_1 (x x_1 : BitVec 32) : + (Option.bind (if x_1 = 0#32 then none else some (42#32 / x_1)) fun a => + Option.bind (if x_1 = 0#32 then none else some (42#32 / x_1)) fun a_1 => + Option.bind (if x = 0#32 then none else some (42#32 / x)) fun x => some (a ^^^ (a_1 ||| x))) ⊑ + Option.bind (if x = 0#32 then none else some (42#32 / x)) fun a => + Option.bind (if x_1 = 0#32 then none else some (42#32 / x_1)) fun x => some (a &&& (x ^^^ 4294967295#32)) := sorry +warning: ././././SSA/Projects/InstCombine/tests/LLVM/gxor.lean:550:8: declaration uses 'sorry' +info: ././././SSA/Projects/InstCombine/tests/LLVM/gxor.lean:598:17: theorem extracted_1 (x x_1 : BitVec 32) : + (Option.bind (if x_1 = 0#32 then none else some (42#32 / x_1)) fun a => + Option.bind (if x = 0#32 then none else some (42#32 / x)) fun a_1 => + Option.bind (if x = 0#32 then none else some (42#32 / x)) fun y' => some ((a ||| a_1) ^^^ y')) ⊑ + Option.bind (if x_1 = 0#32 then none else some (42#32 / x_1)) fun a => + Option.bind (if x = 0#32 then none else some (42#32 / x)) fun x => some (a &&& (x ^^^ 4294967295#32)) := sorry +warning: ././././SSA/Projects/InstCombine/tests/LLVM/gxor.lean:588:8: declaration uses 'sorry' +info: ././././SSA/Projects/InstCombine/tests/LLVM/gxor.lean:636:17: theorem extracted_1 (x x_1 : BitVec 32) : + (Option.bind (if x_1 = 0#32 then none else some (42#32 / x_1)) fun a => + Option.bind (if x = 0#32 then none else some (42#32 / x)) fun a_1 => + Option.bind (if x_1 = 0#32 then none else some (42#32 / x_1)) fun y' => some ((a ||| a_1) ^^^ y')) ⊑ + Option.bind (if x = 0#32 then none else some (42#32 / x)) fun a => + Option.bind (if x_1 = 0#32 then none else some (42#32 / x_1)) fun x => some (a &&& (x ^^^ 4294967295#32)) := sorry +warning: ././././SSA/Projects/InstCombine/tests/LLVM/gxor.lean:626:8: declaration uses 'sorry' +info: ././././SSA/Projects/InstCombine/tests/LLVM/gxor.lean:674:17: theorem extracted_1 (x x_1 : BitVec 32) : + (Option.bind (if x_1 = 0#32 then none else some (42#32 / x_1)) fun a => + Option.bind (if x = 0#32 then none else some (42#32 / x)) fun a_1 => + Option.bind (if x_1 = 0#32 then none else some (42#32 / x_1)) fun x => some (a ^^^ (a_1 ||| x))) ⊑ + Option.bind (if x = 0#32 then none else some (42#32 / x)) fun a => + Option.bind (if x_1 = 0#32 then none else some (42#32 / x_1)) fun x => some (a &&& (x ^^^ 4294967295#32)) := sorry +warning: ././././SSA/Projects/InstCombine/tests/LLVM/gxor.lean:664:8: declaration uses 'sorry' +info: ././././SSA/Projects/InstCombine/tests/LLVM/gxor.lean:712:17: theorem extracted_1 (x x_1 : BitVec 32) : + (Option.bind (if x_1 = 0#32 then none else some (42#32 / x_1)) fun a => + Option.bind (if x_1 = 0#32 then none else some (42#32 / x_1)) fun a_1 => + Option.bind (if x = 0#32 then none else some (42#32 / x)) fun x => some (a ^^^ a_1 &&& x)) ⊑ + Option.bind (if x_1 = 0#32 then none else some (42#32 / x_1)) fun a => + Option.bind (if x = 0#32 then none else some (42#32 / x)) fun x => some (a &&& (x ^^^ 4294967295#32)) := sorry +warning: ././././SSA/Projects/InstCombine/tests/LLVM/gxor.lean:702:8: declaration uses 'sorry' +info: ././././SSA/Projects/InstCombine/tests/LLVM/gxor.lean:750:17: theorem extracted_1 (x x_1 : BitVec 32) : + (Option.bind (if x_1 = 0#32 then none else some (42#32 / x_1)) fun a => + Option.bind (if x = 0#32 then none else some (42#32 / x)) fun a_1 => + Option.bind (if x = 0#32 then none else some (42#32 / x)) fun y' => some (a &&& a_1 ^^^ y')) ⊑ + Option.bind (if x = 0#32 then none else some (42#32 / x)) fun a => + Option.bind (if x_1 = 0#32 then none else some (42#32 / x_1)) fun x => some (a &&& (x ^^^ 4294967295#32)) := sorry +warning: ././././SSA/Projects/InstCombine/tests/LLVM/gxor.lean:740:8: declaration uses 'sorry' +info: ././././SSA/Projects/InstCombine/tests/LLVM/gxor.lean:788:17: theorem extracted_1 (x x_1 : BitVec 32) : + (Option.bind (if x_1 = 0#32 then none else some (42#32 / x_1)) fun a => + Option.bind (if x = 0#32 then none else some (42#32 / x)) fun a_1 => + Option.bind (if x_1 = 0#32 then none else some (42#32 / x_1)) fun y' => some (a &&& a_1 ^^^ y')) ⊑ + Option.bind (if x_1 = 0#32 then none else some (42#32 / x_1)) fun a => + Option.bind (if x = 0#32 then none else some (42#32 / x)) fun x => some (a &&& (x ^^^ 4294967295#32)) := sorry +warning: ././././SSA/Projects/InstCombine/tests/LLVM/gxor.lean:778:8: declaration uses 'sorry' +info: ././././SSA/Projects/InstCombine/tests/LLVM/gxor.lean:826:17: theorem extracted_1 (x x_1 : BitVec 32) : + (Option.bind (if x_1 = 0#32 then none else some (42#32 / x_1)) fun a => + Option.bind (if x = 0#32 then none else some (42#32 / x)) fun a_1 => + Option.bind (if x_1 = 0#32 then none else some (42#32 / x_1)) fun x => some (a ^^^ a_1 &&& x)) ⊑ + Option.bind (if x_1 = 0#32 then none else some (42#32 / x_1)) fun a => + Option.bind (if x = 0#32 then none else some (42#32 / x)) fun x => some (a &&& (x ^^^ 4294967295#32)) := sorry +warning: ././././SSA/Projects/InstCombine/tests/LLVM/gxor.lean:816:8: declaration uses 'sorry' +info: ././././SSA/Projects/InstCombine/tests/LLVM/gxor.lean:860:17: theorem extracted_1 (x x_1 x_2 : BitVec 4) : (x_2 ||| x_1) ^^^ (x_2 ||| x) = (x_1 ^^^ x) &&& (x_2 ^^^ 15#4) := sorry +warning: ././././SSA/Projects/InstCombine/tests/LLVM/gxor.lean:850:8: declaration uses 'sorry' +info: ././././SSA/Projects/InstCombine/tests/LLVM/gxor.lean:894:17: theorem extracted_1 (x x_1 x_2 : BitVec 4) : (x_2 ||| x_1) ^^^ (x_1 ||| x) = (x_2 ^^^ x) &&& (x_1 ^^^ 15#4) := sorry +warning: ././././SSA/Projects/InstCombine/tests/LLVM/gxor.lean:884:8: declaration uses 'sorry' +info: ././././SSA/Projects/InstCombine/tests/LLVM/gxor.lean:928:17: theorem extracted_1 (x x_1 x_2 : BitVec 4) : (x_2 ||| x_1) ^^^ (x ||| x_2) = (x_1 ^^^ x) &&& (x_2 ^^^ 15#4) := sorry +warning: ././././SSA/Projects/InstCombine/tests/LLVM/gxor.lean:918:8: declaration uses 'sorry' +info: ././././SSA/Projects/InstCombine/tests/LLVM/gxor.lean:965:17: theorem extracted_1 (x x_1 : BitVec 32) : + (x_1 ^^^ 1073741823#32) <<< 2 + x <<< 2 = x <<< 2 + (x_1 ^^^ 4294967295#32) <<< 2 := sorry +warning: ././././SSA/Projects/InstCombine/tests/LLVM/gxor.lean:955:8: declaration uses 'sorry' +info: ././././SSA/Projects/InstCombine/tests/LLVM/gxor.lean:1000:17: theorem extracted_1 (x : BitVec 8) : x <<< 7 ^^^ 128#8 = (x ^^^ 255#8) <<< 7 := sorry +warning: ././././SSA/Projects/InstCombine/tests/LLVM/gxor.lean:990:8: declaration uses 'sorry' +info: ././././SSA/Projects/InstCombine/tests/LLVM/gxor.lean:1035:17: theorem extracted_1 (x : BitVec 8) : x >>> 5 ^^^ 7#8 = (x ^^^ 255#8) >>> 5 := sorry +warning: ././././SSA/Projects/InstCombine/tests/LLVM/gxor.lean:1025:8: declaration uses 'sorry' +info: ././././SSA/Projects/InstCombine/tests/LLVM/gxor.lean:1070:17: theorem extracted_1 (x : BitVec 8) : (x ^^^ 255#8).sshiftRight 5 = x.sshiftRight 5 ^^^ 255#8 := sorry +warning: ././././SSA/Projects/InstCombine/tests/LLVM/gxor.lean:1060:8: declaration uses 'sorry' +info: ././././SSA/Projects/InstCombine/tests/LLVM/gxor.lean:1106:17: theorem extracted_1 (x x_1 : BitVec 33) : + (Option.bind (if x_1 = 0#33 then none else some (42#33 / x_1)) fun a => some (a &&& (x ^^^ 8589934591#33) ^^^ x)) ⊑ + Option.bind (if x_1 = 0#33 then none else some (42#33 / x_1)) fun y' => some (x ||| y') := sorry +warning: ././././SSA/Projects/InstCombine/tests/LLVM/gxor.lean:1096:8: declaration uses 'sorry' +info: ././././SSA/Projects/InstCombine/tests/LLVM/gxor.lean:1142:17: theorem extracted_1 (x x_1 : BitVec 32) : + (Option.bind (if x_1 = 0#32 then none else some (42#32 / x_1)) fun a => + Option.bind (if x_1 = 0#32 then none else some (42#32 / x_1)) fun a_1 => + some (a ^^^ (a_1 ^^^ 4294967295#32) &&& x)) ⊑ + Option.bind (if x_1 = 0#32 then none else some (42#32 / x_1)) fun a => some (a ||| x) := sorry +warning: ././././SSA/Projects/InstCombine/tests/LLVM/gxor.lean:1132:8: declaration uses 'sorry' +info: ././././SSA/Projects/InstCombine/tests/LLVM/gxor.lean:1180:17: theorem extracted_1 (x x_1 : BitVec 32) : + (Option.bind (if x_1 = 0#32 then none else some (42#32 / x_1)) fun a => + Option.bind (if x = 0#32 then none else some (42#32 / x)) fun a_1 => + Option.bind (if x_1 = 0#32 then none else some (42#32 / x_1)) fun x => + some (a ^^^ a_1 &&& (x ^^^ 4294967295#32))) ⊑ + Option.bind (if x_1 = 0#32 then none else some (42#32 / x_1)) fun a => + Option.bind (if x = 0#32 then none else some (42#32 / x)) fun y' => some (a ||| y') := sorry +warning: ././././SSA/Projects/InstCombine/tests/LLVM/gxor.lean:1170:8: declaration uses 'sorry' +info: ././././SSA/Projects/InstCombine/tests/LLVM/gxor.lean:1218:17: theorem extracted_1 (x x_1 : BitVec 8) : + (Option.bind (if x_1 = 0#8 then none else some (42#8 / x_1)) fun a => + Option.bind (if x_1 = 0#8 then none else some (42#8 / x_1)) fun a_1 => some (a ^^^ (a_1 ^^^ 255#8 ||| x))) ⊑ + Option.bind (if x_1 = 0#8 then none else some (42#8 / x_1)) fun a => some (a &&& x ^^^ 255#8) := sorry +warning: ././././SSA/Projects/InstCombine/tests/LLVM/gxor.lean:1208:8: declaration uses 'sorry' +error: ././././SSA/Projects/InstCombine/tests/LLVM/gxor.lean:1223:31: Expected `Except.ok`, found Except.error TransformError.unsupportedType +error: ././././SSA/Projects/InstCombine/tests/LLVM/gxor.lean:1235:30: Expected `Except.ok`, found Except.error TransformError.unsupportedType +error: ././././SSA/Projects/InstCombine/tests/LLVM/gxor.lean:1246:33: could not synthesize default value for parameter 'h' using tactics +error: ././././SSA/Projects/InstCombine/tests/LLVM/gxor.lean:1246:33: tactic 'rfl' failed, the left-hand side + ⟦?m.1918369⟧ +is not definitionally equal to the right-hand side + Option ?m.1918367 +xor_orn_commute2_before xor_orn_commute2_after : Com InstCombine.LLVM ?m.1918368 EffectKind.pure ?m.1918369 +⊢ ⟦?m.1918369⟧ = Option ?m.1918367 +error: ././././SSA/Projects/InstCombine/tests/LLVM/gxor.lean:1261:31: Expected `Except.ok`, found Except.error TransformError.unsupportedType +error: ././././SSA/Projects/InstCombine/tests/LLVM/gxor.lean:1274:30: Expected `Except.ok`, found Except.error TransformError.unsupportedType +error: ././././SSA/Projects/InstCombine/tests/LLVM/gxor.lean:1286:33: could not synthesize default value for parameter 'h' using tactics +error: ././././SSA/Projects/InstCombine/tests/LLVM/gxor.lean:1286:33: tactic 'rfl' failed, the left-hand side + ⟦?m.1920175⟧ +is not definitionally equal to the right-hand side + Option ?m.1920173 +xor_orn_commute3_before xor_orn_commute3_after : Com InstCombine.LLVM ?m.1920174 EffectKind.pure ?m.1920175 +⊢ ⟦?m.1920175⟧ = Option ?m.1920173 +info: ././././SSA/Projects/InstCombine/tests/LLVM/gxor.lean:1330:17: theorem extracted_1 (x : BitVec 32) : + (Option.bind (if 32#32 ≤ x then none else some ((4294967293#32).sshiftRight x.toNat)) fun a => + Option.bind (if 32#32 ≤ x then none else some (5#32 >>> x.toNat)) fun y' => some (a ^^^ y')) ⊑ + if 32#32 ≤ x then none else some ((4294967288#32).sshiftRight x.toNat) := sorry +warning: ././././SSA/Projects/InstCombine/tests/LLVM/gxor.lean:1320:8: declaration uses 'sorry' +info: ././././SSA/Projects/InstCombine/tests/LLVM/gxor.lean:1364:17: theorem extracted_1 (x : BitVec 32) : + (Option.bind (if 32#32 ≤ x then none else some (5#32 >>> x.toNat)) fun a => + Option.bind (if 32#32 ≤ x then none else some ((4294967293#32).sshiftRight x.toNat)) fun y' => some (a ^^^ y')) ⊑ + if 32#32 ≤ x then none else some ((4294967288#32).sshiftRight x.toNat) := sorry +warning: ././././SSA/Projects/InstCombine/tests/LLVM/gxor.lean:1354:8: declaration uses 'sorry' +info: ././././SSA/Projects/InstCombine/tests/LLVM/gxor.lean:1398:17: theorem extracted_1 (x : BitVec 32) : + (Option.bind (if 32#32 ≤ x then none else some (4294967293#32 >>> x.toNat)) fun a => + Option.bind (if 32#32 ≤ x then none else some (5#32 >>> x.toNat)) fun y' => some (a ^^^ y')) ⊑ + if 32#32 ≤ x then none else some (4294967288#32 >>> x.toNat) := sorry +warning: ././././SSA/Projects/InstCombine/tests/LLVM/gxor.lean:1388:8: declaration uses 'sorry' +info: ././././SSA/Projects/InstCombine/tests/LLVM/gxor.lean:1432:17: theorem extracted_1 (x : BitVec 32) : + (Option.bind (if 32#32 ≤ x then none else some ((4294967293#32).sshiftRight x.toNat)) fun a => + Option.bind (if 32#32 ≤ x then none else some ((4294967291#32).sshiftRight x.toNat)) fun y' => some (a ^^^ y')) ⊑ + if 32#32 ≤ x then none else some (6#32 >>> x.toNat) := sorry +warning: ././././SSA/Projects/InstCombine/tests/LLVM/gxor.lean:1422:8: declaration uses 'sorry' +info: ././././SSA/Projects/InstCombine/tests/LLVM/gxor.lean:1469:17: theorem extracted_1 (x x_1 x_2 : BitVec 4) : + x_2 &&& x_1 ^^^ (x_2 ^^^ 15#4) &&& x = x_2 &&& x_1 ||| x &&& (x_2 ^^^ 15#4) := sorry +warning: ././././SSA/Projects/InstCombine/tests/LLVM/gxor.lean:1459:8: declaration uses 'sorry' +info: ././././SSA/Projects/InstCombine/tests/LLVM/gxor.lean:1506:17: theorem extracted_1 (x x_1 x_2 : BitVec 4) : + x_2 &&& x_1 ^^^ (x_2 ^^^ 15#4) &&& x = x_2 &&& x_1 ||| x &&& (x_2 ^^^ 15#4) := sorry +warning: ././././SSA/Projects/InstCombine/tests/LLVM/gxor.lean:1496:8: declaration uses 'sorry' +info: ././././SSA/Projects/InstCombine/tests/LLVM/gxor.lean:1535:17: theorem extracted_1 (x x_1 : BitVec 32) : (x_1 ||| x) ^^^ x_1 = x := sorry +warning: ././././SSA/Projects/InstCombine/tests/LLVM/gxor.lean:1525:8: declaration uses 'sorry' +info: ././././SSA/Projects/InstCombine/tests/LLVM/gxor.lean:1564:17: theorem extracted_1 (x x_1 : BitVec 32) : x_1 ^^^ (x_1 ||| x) = x := sorry +warning: ././././SSA/Projects/InstCombine/tests/LLVM/gxor.lean:1554:8: declaration uses 'sorry' +info: ././././SSA/Projects/InstCombine/tests/LLVM/gxor.lean:1593:17: theorem extracted_1 (x x_1 : BitVec 32) : x_1 ^^^ (x_1 ||| x) = x := sorry +warning: ././././SSA/Projects/InstCombine/tests/LLVM/gxor.lean:1583:8: declaration uses 'sorry' +info: ././././SSA/Projects/InstCombine/tests/LLVM/gxor.lean:1632:17: theorem extracted_1 (x : BitVec 32) (x_1 : BitVec 1) : + (Option.bind + (match some x_1 with + | none => none + | some { toFin := ⟨1, ⋯⟩ } => some 0#32 + | some { toFin := ⟨0, ⋯⟩ } => some 4#32) + fun a => some ((a ||| x <<< 4) + 4#32)) ⊑ + Option.bind + (match some x_1 with + | none => none + | some { toFin := ⟨1, ⋯⟩ } => some 0#32 + | some { toFin := ⟨0, ⋯⟩ } => some 4#32) + fun a => + if (a.msb || x.getMsbD 4) = (4#32).msb ∧ ¬((a ||| x <<< 4) + 4#32).msb = (a.msb || x.getMsbD 4) then none + else + if (a ||| x <<< 4) + 4#32 < a ||| x <<< 4 ∨ (a ||| x <<< 4) + 4#32 < 4#32 then none + else some ((a ||| x <<< 4) + 4#32) := sorry +warning: ././././SSA/Projects/InstCombine/tests/LLVM/gxor.lean:1622:8: declaration uses 'sorry' +error: Lean exited with code 1 +Some required builds logged failures: +- SSA.Projects.InstCombine.tests.LLVM.gxor +error: build failed diff --git a/SSA/Projects/InstCombine/tests/logs/gxorhandhor_proof.txt b/SSA/Projects/InstCombine/tests/logs/gxorhandhor_proof.txt new file mode 100644 index 000000000..afd3eb419 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/gxorhandhor_proof.txt @@ -0,0 +1,419 @@ +⚠ [49/2462] Replayed Mathlib.Logic.Basic +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Basic.lean:155:8: `dec_em'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Basic.lean:159:8: `em'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Basic.lean:304:8: `or_congr_left'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Basic.lean:307:8: `or_congr_right'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Basic.lean:320:8: `imp_or'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Basic.lean:359:8: `xor_iff_not_iff'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Basic.lean:418:8: `eqRec_heq'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Basic.lean:511:8: `forall_true_iff'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Basic.lean:532:8: `exists_apply_eq_apply'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Basic.lean:539:6: `exists_apply_eq_apply2'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Basic.lean:548:6: `exists_apply_eq_apply3'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Basic.lean:575:8: `forall_apply_eq_imp_iff'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Basic.lean:578:8: `forall_eq_apply_imp_iff'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Basic.lean:638:8: `forall_prop_congr'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Basic.lean:711:6: `Classical.choose_eq'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Basic.lean:847:8: `dite_eq_iff'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Basic.lean:851:8: `ite_eq_iff'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +⚠ [66/2462] Replayed Mathlib.Algebra.NeZero +warning: ././.lake/packages/mathlib/././Mathlib/Algebra/NeZero.lean:44:6: `zero_ne_one'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Algebra/NeZero.lean:46:6: `one_ne_zero'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Algebra/NeZero.lean:48:6: `two_ne_zero'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Algebra/NeZero.lean:50:6: `three_ne_zero'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Algebra/NeZero.lean:52:6: `four_ne_zero'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +⚠ [69/2462] Replayed Mathlib.Logic.ExistsUnique +warning: ././.lake/packages/mathlib/././Mathlib/Logic/ExistsUnique.lean:109:16: `exists_unique_eq'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +⚠ [74/2462] Replayed Mathlib.Logic.Function.Basic +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Function/Basic.lean:78:8: `Function.Injective.eq_iff'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Function/Basic.lean:87:8: `Function.Injective.ne_iff'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Function/Basic.lean:117:8: `Function.Injective.of_comp_iff'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Function/Basic.lean:163:8: `Function.Surjective.of_comp_iff'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Function/Basic.lean:237:8: `Function.Bijective.of_comp_iff'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Function/Basic.lean:541:8: `Function.update_comp_eq_of_forall_ne'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Function/Basic.lean:552:8: `Function.update_comp_eq_of_injective'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Function/Basic.lean:649:8: `Function.extend_apply'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Function/Basic.lean:681:8: `Function.Injective.surjective_comp_right'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +⚠ [94/2462] Replayed Mathlib.Control.Combinators +warning: ././.lake/packages/mathlib/././Mathlib/Control/Combinators.lean:35:4: `Monad.mapM'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Control/Combinators.lean:57:4: `Monad.sequence'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +⚠ [96/2462] Replayed Mathlib.Logic.IsEmpty +warning: ././.lake/packages/mathlib/././Mathlib/Logic/IsEmpty.lean:36:9: `Fin.isEmpty'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +⚠ [229/2462] Replayed Mathlib.Data.Prod.PProd +warning: ././.lake/packages/mathlib/././Mathlib/Data/Prod/PProd.lean:35:8: `PProd.forall'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Data/Prod/PProd.lean:38:8: `PProd.exists'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +⚠ [230/2462] Replayed Mathlib.Data.Bool.Basic +warning: ././.lake/packages/mathlib/././Mathlib/Data/Bool/Basic.lean:156:8: `Bool.eq_true_of_not_eq_false'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Data/Bool/Basic.lean:159:8: `Bool.eq_false_of_not_eq_true'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +⚠ [232/2462] Replayed Mathlib.Logic.Function.Iterate +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Function/Iterate.lean:160:8: `Function.iterate_succ'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Function/Iterate.lean:163:8: `Function.iterate_succ_apply'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +⚠ [234/2462] Replayed Mathlib.Data.Prod.Basic +warning: ././.lake/packages/mathlib/././Mathlib/Data/Prod/Basic.lean:31:8: `Prod.forall'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Data/Prod/Basic.lean:34:8: `Prod.exists'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Data/Prod/Basic.lean:51:8: `Prod.map_apply'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Data/Prod/Basic.lean:54:8: `Prod.map_fst'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Data/Prod/Basic.lean:57:8: `Prod.map_snd'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +⚠ [235/2462] Replayed Mathlib.Data.Sigma.Basic +warning: ././.lake/packages/mathlib/././Mathlib/Data/Sigma/Basic.lean:90:6: `Sigma.exists'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Data/Sigma/Basic.lean:93:6: `Sigma.forall'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +⚠ [239/2462] Replayed Mathlib.Data.FunLike.Basic +warning: ././.lake/packages/mathlib/././Mathlib/Data/FunLike/Basic.lean:187:8: `DFunLike.ext'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +⚠ [244/2462] Replayed Mathlib.Logic.Relation +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Relation.lean:351:8: `Relation.TransGen.head'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Relation.lean:354:8: `Relation.TransGen.tail'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Relation.lean:444:8: `Relation.TransGen.lift'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Relation.lean:453:6: `Relation.TransGen.closed'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Relation.lean:523:8: `Relation.ReflTransGen.lift'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +⚠ [245/2462] Replayed Mathlib.Logic.Unique +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Unique.lean:131:18: `Unique.subsingleton_unique'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Logic/Unique.lean:259:9: `Unique.subtypeEq'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +⚠ [252/2462] Replayed Mathlib.Data.Quot +warning: ././.lake/packages/mathlib/././Mathlib/Data/Quot.lean:558:18: `Quotient.liftOn'_mk''` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Data/Quot.lean:562:14: `Quotient.surjective_liftOn'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Data/Quot.lean:573:18: `Quotient.liftOn₂'_mk''` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Data/Quot.lean:639:8: `Quotient.hrecOn'_mk''` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Data/Quot.lean:652:8: `Quotient.hrecOn₂'_mk''` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Data/Quot.lean:664:8: `Quotient.map'_mk''` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Data/Quot.lean:674:8: `Quotient.map₂'_mk''` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Data/Quot.lean:679:8: `Quotient.exact'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Data/Quot.lean:683:8: `Quotient.sound'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Data/Quot.lean:687:18: `Quotient.eq'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Data/Quot.lean:692:18: `Quotient.eq''` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Data/Quot.lean:701:8: `Quotient.out_eq'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Data/Quot.lean:704:8: `Quotient.mk_out'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +⚠ [256/2462] Replayed Mathlib.Tactic.Lift +warning: ././.lake/packages/mathlib/././Mathlib/Tactic/Lift.lean:49:9: `PiSubtype.canLift'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +⚠ [409/2462] Replayed Mathlib.Algebra.Group.Defs +warning: ././.lake/packages/mathlib/././Mathlib/Algebra/Group/Defs.lean:735:33: `pow_succ'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Algebra/Group/Defs.lean:740:6: `pow_mul_comm'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Algebra/Group/Defs.lean:749:6: `pow_three'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Algebra/Group/Defs.lean:772:6: `pow_mul'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +⚠ [443/2462] Replayed Mathlib.Data.List.Defs +warning: ././.lake/packages/mathlib/././Mathlib/Data/List/Defs.lean:241:9: `List.decidableChain'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +⚠ [474/2462] Replayed Mathlib.Control.Applicative +warning: ././.lake/packages/mathlib/././Mathlib/Control/Applicative.lean:34:8: `Applicative.pure_seq_eq_map'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +⚠ [475/2462] Replayed Mathlib.Control.Traversable.Basic +warning: ././.lake/packages/mathlib/././Mathlib/Control/Traversable/Basic.lean:139:8: `ApplicativeTransformation.preserves_map'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +⚠ [618/2462] Replayed Mathlib.Algebra.GroupWithZero.Defs +warning: ././.lake/packages/mathlib/././Mathlib/Algebra/GroupWithZero/Defs.lean:110:8: `mul_left_inj'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Algebra/GroupWithZero/Defs.lean:113:8: `mul_right_inj'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +⚠ [624/2462] Replayed Mathlib.Algebra.Group.Invertible.Defs +warning: ././.lake/packages/mathlib/././Mathlib/Algebra/Group/Invertible/Defs.lean:97:8: `invOf_mul_self'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Algebra/Group/Invertible/Defs.lean:103:8: `mul_invOf_self'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Algebra/Group/Invertible/Defs.lean:109:8: `invOf_mul_cancel_left'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Algebra/Group/Invertible/Defs.lean:120:8: `mul_invOf_cancel_left'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Algebra/Group/Invertible/Defs.lean:131:8: `invOf_mul_cancel_right'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Algebra/Group/Invertible/Defs.lean:142:8: `mul_invOf_cancel_right'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Algebra/Group/Invertible/Defs.lean:198:8: `invOf_one'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +⚠ [1184/2462] Replayed Mathlib.Control.Traversable.Lemmas +warning: ././.lake/packages/mathlib/././Mathlib/Control/Traversable/Lemmas.lean:87:8: `Traversable.naturality'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Control/Traversable/Lemmas.lean:102:8: `Traversable.traverse_eq_map_id'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Control/Traversable/Lemmas.lean:108:8: `Traversable.traverse_map'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +warning: ././.lake/packages/mathlib/././Mathlib/Control/Traversable/Lemmas.lean:113:8: `Traversable.map_traverse'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +⚠ [2407/2462] Replayed Mathlib.Data.List.EditDistance.Defs +warning: ././.lake/packages/mathlib/././Mathlib/Data/List/EditDistance/Defs.lean:214:8: `suffixLevenshtein_nil'` is missing a doc-string, please add one. +Declarations whose name ends with a `'` are expected to contain an explanation for the presence of a `'` in their doc-string. This may consist of discussion of the difference relative to the unprimed version, or an explanation as to why no better naming scheme is possible. +note: this linter can be disabled with `set_option linter.docPrime false` +⚠ [2447/2462] Replayed SSA.Experimental.Bits.Fast.FiniteStateMachine +warning: ././././SSA/Experimental/Bits/Fast/FiniteStateMachine.lean:107:8: declaration uses 'sorry' +warning: ././././SSA/Experimental/Bits/Fast/FiniteStateMachine.lean:825:8: declaration uses 'sorry' +⚠ [2451/2462] Replayed SSA.Experimental.Bits.Fast.Tactic +warning: ././././SSA/Experimental/Bits/Fast/Tactic.lean:340:4: declaration uses 'sorry' +⚠ [2452/2462] Replayed SSA.Experimental.Bits.AutoStructs.ForLean +warning: ././././SSA/Experimental/Bits/AutoStructs/ForLean.lean:24:8: declaration uses 'sorry' +warning: ././././SSA/Experimental/Bits/AutoStructs/ForLean.lean:27:8: declaration uses 'sorry' +warning: ././././SSA/Experimental/Bits/AutoStructs/ForLean.lean:29:8: declaration uses 'sorry' +warning: ././././SSA/Experimental/Bits/AutoStructs/ForLean.lean:31:8: declaration uses 'sorry' +warning: ././././SSA/Experimental/Bits/AutoStructs/ForLean.lean:34:8: declaration uses 'sorry' +warning: ././././SSA/Experimental/Bits/AutoStructs/ForLean.lean:36:8: declaration uses 'sorry' +warning: ././././SSA/Experimental/Bits/AutoStructs/ForLean.lean:38:8: declaration uses 'sorry' +warning: ././././SSA/Experimental/Bits/AutoStructs/ForLean.lean:41:8: declaration uses 'sorry' +warning: ././././SSA/Experimental/Bits/AutoStructs/ForLean.lean:52:8: declaration uses 'sorry' +warning: ././././SSA/Experimental/Bits/AutoStructs/ForLean.lean:56:8: declaration uses 'sorry' +⚠ [2457/2462] Replayed SSA.Experimental.Bits.AutoStructs.Constructions +warning: ././././SSA/Experimental/Bits/AutoStructs/Constructions.lean:55:6: declaration uses 'sorry' +warning: ././././SSA/Experimental/Bits/AutoStructs/Constructions.lean:128:6: declaration uses 'sorry' +warning: ././././SSA/Experimental/Bits/AutoStructs/Constructions.lean:163:6: declaration uses 'sorry' +warning: ././././SSA/Experimental/Bits/AutoStructs/Constructions.lean:197:6: declaration uses 'sorry' +⚠ [2458/2462] Replayed SSA.Experimental.Bits.AutoStructs.FiniteStateMachine +warning: ././././SSA/Experimental/Bits/AutoStructs/FiniteStateMachine.lean:111:8: declaration uses 'sorry' +✖ [2462/2462] Building SSA.Projects.InstCombine.tests.LLVM.gxorhandhor +trace: .> LEAN_PATH=././.lake/packages/batteries/.lake/build/lib:././.lake/packages/Qq/.lake/build/lib:././.lake/packages/aesop/.lake/build/lib:././.lake/packages/proofwidgets/.lake/build/lib:././.lake/packages/Cli/.lake/build/lib:././.lake/packages/importGraph/.lake/build/lib:././.lake/packages/LeanSearchClient/.lake/build/lib:././.lake/packages/mathlib/.lake/build/lib:././.lake/packages/MD4Lean/.lake/build/lib:././.lake/packages/UnicodeBasic/.lake/build/lib:././.lake/packages/BibtexQuery/.lake/build/lib:././.lake/packages/doc-gen4/.lake/build/lib:././.lake/packages/leanwuzla/.lake/build/lib:././.lake/build/lib LD_LIBRARY_PATH= /home/lfrenot/.elan/toolchains/leanprover--lean4---nightly-2024-10-17/bin/lean ././././SSA/Projects/InstCombine/tests/LLVM/gxorhandhor.lean -R ./././. -o ././.lake/build/lib/SSA/Projects/InstCombine/tests/LLVM/gxorhandhor.olean -i ././.lake/build/lib/SSA/Projects/InstCombine/tests/LLVM/gxorhandhor.ilean -c ././.lake/build/ir/SSA/Projects/InstCombine/tests/LLVM/gxorhandhor.c --json +error: ././././SSA/Projects/InstCombine/tests/LLVM/gxorhandhor.lean:19:40: expected i or f, found: true +error: ././././SSA/Projects/InstCombine/tests/LLVM/gxorhandhor.lean:20:40: cannot convert suffix of i/f to int: false +error: ././././SSA/Projects/InstCombine/tests/LLVM/gxorhandhor.lean:30:40: expected i or f, found: true +error: ././././SSA/Projects/InstCombine/tests/LLVM/gxorhandhor.lean:36:40: could not synthesize default value for parameter 'h' using tactics +error: ././././SSA/Projects/InstCombine/tests/LLVM/gxorhandhor.lean:36:40: tactic 'rfl' failed, the left-hand side + ⟦?m.2731⟧ +is not definitionally equal to the right-hand side + Option ?m.2729 +xor_logic_and_logic_or1_before xor_logic_and_logic_or1_after : Com InstCombine.LLVM ?m.2730 EffectKind.pure ?m.2731 +⊢ ⟦?m.2731⟧ = Option ?m.2729 +error: ././././SSA/Projects/InstCombine/tests/LLVM/gxorhandhor.lean:54:40: expected i or f, found: true +error: ././././SSA/Projects/InstCombine/tests/LLVM/gxorhandhor.lean:55:40: cannot convert suffix of i/f to int: false +error: ././././SSA/Projects/InstCombine/tests/LLVM/gxorhandhor.lean:65:40: expected i or f, found: true +error: ././././SSA/Projects/InstCombine/tests/LLVM/gxorhandhor.lean:71:40: could not synthesize default value for parameter 'h' using tactics +error: ././././SSA/Projects/InstCombine/tests/LLVM/gxorhandhor.lean:71:40: tactic 'rfl' failed, the left-hand side + ⟦?m.5519⟧ +is not definitionally equal to the right-hand side + Option ?m.5517 +xor_logic_and_logic_or2_before xor_logic_and_logic_or2_after : Com InstCombine.LLVM ?m.5518 EffectKind.pure ?m.5519 +⊢ ⟦?m.5519⟧ = Option ?m.5517 +error: ././././SSA/Projects/InstCombine/tests/LLVM/gxorhandhor.lean:89:40: expected i or f, found: true +error: ././././SSA/Projects/InstCombine/tests/LLVM/gxorhandhor.lean:90:40: cannot convert suffix of i/f to int: false +error: ././././SSA/Projects/InstCombine/tests/LLVM/gxorhandhor.lean:100:40: expected i or f, found: true +error: ././././SSA/Projects/InstCombine/tests/LLVM/gxorhandhor.lean:106:40: could not synthesize default value for parameter 'h' using tactics +error: ././././SSA/Projects/InstCombine/tests/LLVM/gxorhandhor.lean:106:40: tactic 'rfl' failed, the left-hand side + ⟦?m.8307⟧ +is not definitionally equal to the right-hand side + Option ?m.8305 +xor_logic_and_logic_or4_before xor_logic_and_logic_or4_after : Com InstCombine.LLVM ?m.8306 EffectKind.pure ?m.8307 +⊢ ⟦?m.8307⟧ = Option ?m.8305 +error: ././././SSA/Projects/InstCombine/tests/LLVM/gxorhandhor.lean:124:40: expected i or f, found: true +error: ././././SSA/Projects/InstCombine/tests/LLVM/gxorhandhor.lean:134:40: expected i or f, found: true +error: ././././SSA/Projects/InstCombine/tests/LLVM/gxorhandhor.lean:140:34: could not synthesize default value for parameter 'h' using tactics +error: ././././SSA/Projects/InstCombine/tests/LLVM/gxorhandhor.lean:140:34: tactic 'rfl' failed, the left-hand side + ⟦?m.11046⟧ +is not definitionally equal to the right-hand side + Option ?m.11044 +xor_and_logic_or1_before xor_and_logic_or1_after : Com InstCombine.LLVM ?m.11045 EffectKind.pure ?m.11046 +⊢ ⟦?m.11046⟧ = Option ?m.11044 +error: ././././SSA/Projects/InstCombine/tests/LLVM/gxorhandhor.lean:158:40: expected i or f, found: true +error: ././././SSA/Projects/InstCombine/tests/LLVM/gxorhandhor.lean:168:40: expected i or f, found: true +error: ././././SSA/Projects/InstCombine/tests/LLVM/gxorhandhor.lean:174:34: could not synthesize default value for parameter 'h' using tactics +error: ././././SSA/Projects/InstCombine/tests/LLVM/gxorhandhor.lean:174:34: tactic 'rfl' failed, the left-hand side + ⟦?m.13785⟧ +is not definitionally equal to the right-hand side + Option ?m.13783 +xor_and_logic_or2_before xor_and_logic_or2_after : Com InstCombine.LLVM ?m.13784 EffectKind.pure ?m.13785 +⊢ ⟦?m.13785⟧ = Option ?m.13783 +error: ././././SSA/Projects/InstCombine/tests/LLVM/gxorhandhor.lean:192:40: cannot convert suffix of i/f to int: false +error: ././././SSA/Projects/InstCombine/tests/LLVM/gxorhandhor.lean:202:40: expected i or f, found: true +error: ././././SSA/Projects/InstCombine/tests/LLVM/gxorhandhor.lean:208:34: could not synthesize default value for parameter 'h' using tactics +error: ././././SSA/Projects/InstCombine/tests/LLVM/gxorhandhor.lean:208:34: tactic 'rfl' failed, the left-hand side + ⟦?m.16476⟧ +is not definitionally equal to the right-hand side + Option ?m.16474 +xor_logic_and_or1_before xor_logic_and_or1_after : Com InstCombine.LLVM ?m.16475 EffectKind.pure ?m.16476 +⊢ ⟦?m.16476⟧ = Option ?m.16474 +error: ././././SSA/Projects/InstCombine/tests/LLVM/gxorhandhor.lean:226:40: cannot convert suffix of i/f to int: false +error: ././././SSA/Projects/InstCombine/tests/LLVM/gxorhandhor.lean:236:40: expected i or f, found: true +error: ././././SSA/Projects/InstCombine/tests/LLVM/gxorhandhor.lean:242:34: could not synthesize default value for parameter 'h' using tactics +error: ././././SSA/Projects/InstCombine/tests/LLVM/gxorhandhor.lean:242:34: tactic 'rfl' failed, the left-hand side + ⟦?m.19215⟧ +is not definitionally equal to the right-hand side + Option ?m.19213 +xor_logic_and_or2_before xor_logic_and_or2_after : Com InstCombine.LLVM ?m.19214 EffectKind.pure ?m.19215 +⊢ ⟦?m.19215⟧ = Option ?m.19213 +error: ././././SSA/Projects/InstCombine/tests/LLVM/gxorhandhor.lean:269:40: expected i or f, found: true +error: ././././SSA/Projects/InstCombine/tests/LLVM/gxorhandhor.lean:276:2: tactic 'unfold' failed to unfold 'xor_and_or_after' at + (Com.changeDialect (InstcombineTransformDialect.MOp.instantiateCom ⟨[], xor_and_or_before.proof_1⟩) + (Com.var + (Expr.mk (InstCombine.MOp.binary 1 InstCombine.MOp.BinaryOp.or) xor_and_or_before.proof_2 + xor_and_or_before.proof_3 + (⟨0, + xor_and_or_before.proof_4⟩::ₕ(xor_and_or_before.proof_6 ▸ + ⟨0 + 1 + 1, xor_and_or_before.proof_5⟩::ₕHVector.nil)) + HVector.nil) + (Com.var + (Expr.mk (InstCombine.MOp.binary 1 InstCombine.MOp.BinaryOp.and) xor_and_or_before.proof_2 + xor_and_or_before.proof_7 + (⟨0 + 1 + 1 + 1, + xor_and_or_before.proof_8⟩::ₕ(xor_and_or_before.proof_6 ▸ + ⟨0 + 1 + 1, xor_and_or_before.proof_9⟩::ₕHVector.nil)) + HVector.nil) + (Com.var + (Expr.mk (InstCombine.MOp.binary 1 InstCombine.MOp.BinaryOp.xor) xor_and_or_before.proof_2 + xor_and_or_before.proof_10 + (⟨0, + xor_and_or_before.proof_11⟩::ₕ(xor_and_or_before.proof_6 ▸ + ⟨0 + 1, xor_and_or_before.proof_12⟩::ₕHVector.nil)) + HVector.nil) + (Com.ret ⟨0, xor_and_or_before.proof_13⟩)))) ⊑ + xor_and_or_after) + ⋯ +error: Lean exited with code 1 +Some required builds logged failures: +- SSA.Projects.InstCombine.tests.LLVM.gxorhandhor +error: build failed diff --git a/SSA/Projects/InstCombine/tests/logs/high-bit-signmask.txt b/SSA/Projects/InstCombine/tests/logs/high-bit-signmask.txt index f5a03a85d..d0bc26330 100644 --- a/SSA/Projects/InstCombine/tests/logs/high-bit-signmask.txt +++ b/SSA/Projects/InstCombine/tests/logs/high-bit-signmask.txt @@ -31,7 +31,7 @@ 2: llvm.return 1: "t4" -"t4" contains vectors which are unsupported +8: "t4" contains vectors which are unsupported 1: "t5" 4: "t5" has unsupported operation: llvm.mlir.undef diff --git a/SSA/Projects/InstCombine/tests/logs/hoist-negation-out-of-bias-calculation-with-constant.txt b/SSA/Projects/InstCombine/tests/logs/hoist-negation-out-of-bias-calculation-with-constant.txt index d9dc95087..a0b124d2b 100644 --- a/SSA/Projects/InstCombine/tests/logs/hoist-negation-out-of-bias-calculation-with-constant.txt +++ b/SSA/Projects/InstCombine/tests/logs/hoist-negation-out-of-bias-calculation-with-constant.txt @@ -6,7 +6,7 @@ 2: llvm.return 1: "t1_vec" -"t1_vec" contains vectors which are unsupported +8: "t1_vec" contains vectors which are unsupported 1: "t2_vec_undef" 4: "t2_vec_undef" has unsupported operation: llvm.mlir.undef @@ -18,7 +18,7 @@ 4: "t2_vec_undef" has unsupported operation: builtin.unregistered: llvm.insertelement 1: "t3_vec_nonsplat" -"t3_vec_nonsplat" contains vectors which are unsupported +8: "t3_vec_nonsplat" contains vectors which are unsupported 1: "use8" 5: "use8" is empty diff --git a/SSA/Projects/InstCombine/tests/logs/hoist-negation-out-of-bias-calculation.txt b/SSA/Projects/InstCombine/tests/logs/hoist-negation-out-of-bias-calculation.txt index 561e28c27..3c315316f 100644 --- a/SSA/Projects/InstCombine/tests/logs/hoist-negation-out-of-bias-calculation.txt +++ b/SSA/Projects/InstCombine/tests/logs/hoist-negation-out-of-bias-calculation.txt @@ -13,10 +13,10 @@ 4: "t1_commutative" has unsupported operation: llvm.call 1: "t2_vec" -"t2_vec" contains vectors which are unsupported +8: "t2_vec" contains vectors which are unsupported 1: "t3_vec_poison" -"t3_vec_poison" contains vectors which are unsupported +8: "t3_vec_poison" contains vectors which are unsupported 1: "use8" 5: "use8" is empty diff --git a/SSA/Projects/InstCombine/tests/logs/hoist-not-from-ashr-operand.txt b/SSA/Projects/InstCombine/tests/logs/hoist-not-from-ashr-operand.txt index 1d37f0956..1828718fc 100644 --- a/SSA/Projects/InstCombine/tests/logs/hoist-not-from-ashr-operand.txt +++ b/SSA/Projects/InstCombine/tests/logs/hoist-not-from-ashr-operand.txt @@ -16,10 +16,10 @@ 2: llvm.return 1: "t2_vec" -"t2_vec" contains vectors which are unsupported +8: "t2_vec" contains vectors which are unsupported 1: "t3_vec_poison" -"t3_vec_poison" contains vectors which are unsupported +8: "t3_vec_poison" contains vectors which are unsupported 1: "n4" 4: "n4" has unsupported operation: llvm.call diff --git a/SSA/Projects/InstCombine/tests/logs/hoist-xor-by-constant-from-xor-by-value.txt b/SSA/Projects/InstCombine/tests/logs/hoist-xor-by-constant-from-xor-by-value.txt index d4a128274..0dbabf9f3 100644 --- a/SSA/Projects/InstCombine/tests/logs/hoist-xor-by-constant-from-xor-by-value.txt +++ b/SSA/Projects/InstCombine/tests/logs/hoist-xor-by-constant-from-xor-by-value.txt @@ -12,10 +12,10 @@ 2: llvm.return 1: "t1_splatvec" -"t1_splatvec" contains vectors which are unsupported +8: "t1_splatvec" contains vectors which are unsupported 1: "t2_vec" -"t2_vec" contains vectors which are unsupported +8: "t2_vec" contains vectors which are unsupported 1: "t3_vec_undef" 4: "t3_vec_undef" has unsupported operation: llvm.mlir.undef diff --git a/SSA/Projects/InstCombine/tests/logs/icmp-and-lowbit-mask.txt b/SSA/Projects/InstCombine/tests/logs/icmp-and-lowbit-mask.txt index 91433bd9f..751f5a933 100644 --- a/SSA/Projects/InstCombine/tests/logs/icmp-and-lowbit-mask.txt +++ b/SSA/Projects/InstCombine/tests/logs/icmp-and-lowbit-mask.txt @@ -42,13 +42,9 @@ 4: "src_is_mask_xor_fail_notmask" has unsupported operation: builtin.unregistered: llvm.icmp 1: "src_is_mask_select" -4: "src_is_mask_select" has unsupported operation: builtin.unregistered: llvm.select - 4: "src_is_mask_select" has unsupported operation: builtin.unregistered: llvm.icmp 1: "src_is_mask_select_fail_wrong_pattern" -4: "src_is_mask_select_fail_wrong_pattern" has unsupported operation: builtin.unregistered: llvm.select - 4: "src_is_mask_select_fail_wrong_pattern" has unsupported operation: builtin.unregistered: llvm.icmp 1: "src_is_mask_shl_lshr" @@ -58,13 +54,9 @@ 4: "src_is_mask_shl_lshr_fail_not_allones" has unsupported operation: builtin.unregistered: llvm.icmp 1: "src_is_mask_lshr" -4: "src_is_mask_lshr" has unsupported operation: builtin.unregistered: llvm.select - 4: "src_is_mask_lshr" has unsupported operation: builtin.unregistered: llvm.icmp 1: "src_is_mask_ashr" -4: "src_is_mask_ashr" has unsupported operation: builtin.unregistered: llvm.select - 4: "src_is_mask_ashr" has unsupported operation: builtin.unregistered: llvm.icmp 1: "src_is_mask_p2_m1" @@ -108,25 +100,17 @@ 1: "src_is_notmask_shl" 4: "src_is_notmask_shl" has unsupported operation: builtin.unregistered: llvm.intr.bitreverse -4: "src_is_notmask_shl" has unsupported operation: builtin.unregistered: llvm.select - 4: "src_is_notmask_shl" has unsupported operation: builtin.unregistered: llvm.icmp 1: "src_is_notmask_x_xor_neg_x" -4: "src_is_notmask_x_xor_neg_x" has unsupported operation: builtin.unregistered: llvm.select - 4: "src_is_notmask_x_xor_neg_x" has unsupported operation: builtin.unregistered: llvm.icmp 1: "src_is_notmask_x_xor_neg_x_inv" -4: "src_is_notmask_x_xor_neg_x_inv" has unsupported operation: builtin.unregistered: llvm.select - 4: "src_is_notmask_x_xor_neg_x_inv" has unsupported operation: builtin.unregistered: llvm.icmp 1: "src_is_notmask_shl_fail_multiuse_invert" 4: "src_is_notmask_shl_fail_multiuse_invert" has unsupported operation: builtin.unregistered: llvm.intr.bitreverse -4: "src_is_notmask_shl_fail_multiuse_invert" has unsupported operation: builtin.unregistered: llvm.select - 4: "src_is_notmask_shl_fail_multiuse_invert" has unsupported operation: llvm.call 4: "src_is_notmask_shl_fail_multiuse_invert" has unsupported operation: builtin.unregistered: llvm.icmp @@ -168,8 +152,6 @@ 4: "src_is_mask_const_sge" has unsupported operation: builtin.unregistered: llvm.icmp 1: "src_x_and_mask_slt" -4: "src_x_and_mask_slt" has unsupported operation: builtin.unregistered: llvm.select - 4: "src_x_and_mask_slt" has unsupported operation: builtin.unregistered: llvm.icmp 4: "src_x_and_mask_slt" has unsupported operation: builtin.unregistered: llvm.intr.assume @@ -177,8 +159,6 @@ 4: "src_x_and_mask_slt" has unsupported operation: builtin.unregistered: llvm.icmp 1: "src_x_and_mask_sge" -4: "src_x_and_mask_sge" has unsupported operation: builtin.unregistered: llvm.select - 4: "src_x_and_mask_sge" has unsupported operation: builtin.unregistered: llvm.icmp 4: "src_x_and_mask_sge" has unsupported operation: builtin.unregistered: llvm.intr.assume @@ -186,35 +166,23 @@ 4: "src_x_and_mask_sge" has unsupported operation: builtin.unregistered: llvm.icmp 1: "src_x_and_mask_slt_fail_maybe_neg" -4: "src_x_and_mask_slt_fail_maybe_neg" has unsupported operation: builtin.unregistered: llvm.select - 4: "src_x_and_mask_slt_fail_maybe_neg" has unsupported operation: builtin.unregistered: llvm.icmp 1: "src_x_and_mask_sge_fail_maybe_neg" -4: "src_x_and_mask_sge_fail_maybe_neg" has unsupported operation: builtin.unregistered: llvm.select - 4: "src_x_and_mask_sge_fail_maybe_neg" has unsupported operation: builtin.unregistered: llvm.icmp 1: "src_x_and_nmask_eq" 4: "src_x_and_nmask_eq" has unsupported operation: builtin.unregistered: llvm.icmp -4: "src_x_and_nmask_eq" has unsupported operation: builtin.unregistered: llvm.select - 1: "src_x_and_nmask_ne" 4: "src_x_and_nmask_ne" has unsupported operation: builtin.unregistered: llvm.icmp -4: "src_x_and_nmask_ne" has unsupported operation: builtin.unregistered: llvm.select - 1: "src_x_and_nmask_ult" 4: "src_x_and_nmask_ult" has unsupported operation: builtin.unregistered: llvm.icmp -4: "src_x_and_nmask_ult" has unsupported operation: builtin.unregistered: llvm.select - 1: "src_x_and_nmask_uge" 4: "src_x_and_nmask_uge" has unsupported operation: builtin.unregistered: llvm.icmp -4: "src_x_and_nmask_uge" has unsupported operation: builtin.unregistered: llvm.select - 1: "src_x_and_nmask_slt" 4: "src_x_and_nmask_slt" has unsupported operation: builtin.unregistered: llvm.icmp @@ -222,32 +190,20 @@ 4: "src_x_and_nmask_sge" has unsupported operation: builtin.unregistered: llvm.icmp 1: "src_x_and_nmask_slt_fail_maybe_z" -4: "src_x_and_nmask_slt_fail_maybe_z" has unsupported operation: builtin.unregistered: llvm.select - 4: "src_x_and_nmask_slt_fail_maybe_z" has unsupported operation: builtin.unregistered: llvm.icmp 1: "src_x_and_nmask_sge_fail_maybe_z" -4: "src_x_and_nmask_sge_fail_maybe_z" has unsupported operation: builtin.unregistered: llvm.select - 4: "src_x_and_nmask_sge_fail_maybe_z" has unsupported operation: builtin.unregistered: llvm.icmp 1: "src_x_or_mask_eq" -4: "src_x_or_mask_eq" has unsupported operation: builtin.unregistered: llvm.select - -4: "src_x_or_mask_eq" has unsupported operation: builtin.unregistered: llvm.select - 4: "src_x_or_mask_eq" has unsupported operation: builtin.unregistered: llvm.intr.umax 4: "src_x_or_mask_eq" has unsupported operation: builtin.unregistered: llvm.icmp 1: "src_x_or_mask_ne" -4: "src_x_or_mask_ne" has unsupported operation: builtin.unregistered: llvm.select - 4: "src_x_or_mask_ne" has unsupported operation: builtin.unregistered: llvm.icmp 1: "src_x_or_mask_ne_fail_multiuse" -4: "src_x_or_mask_ne_fail_multiuse" has unsupported operation: builtin.unregistered: llvm.select - 4: "src_x_or_mask_ne_fail_multiuse" has unsupported operation: llvm.call 4: "src_x_or_mask_ne_fail_multiuse" has unsupported operation: builtin.unregistered: llvm.icmp diff --git a/SSA/Projects/InstCombine/tests/logs/icmp-bc-vec-inseltpoison.txt b/SSA/Projects/InstCombine/tests/logs/icmp-bc-vec-inseltpoison.txt index bfdea9250..be71131fe 100644 --- a/SSA/Projects/InstCombine/tests/logs/icmp-bc-vec-inseltpoison.txt +++ b/SSA/Projects/InstCombine/tests/logs/icmp-bc-vec-inseltpoison.txt @@ -1,11 +1,11 @@ 1: "test_i1_0" -"test_i1_0" contains vectors which are unsupported +8: "test_i1_0" contains vectors which are unsupported 1: "test_i1_0_2" -"test_i1_0_2" contains vectors which are unsupported +8: "test_i1_0_2" contains vectors which are unsupported 1: "test_i1_m1" -"test_i1_m1" contains vectors which are unsupported +8: "test_i1_m1" contains vectors which are unsupported 1: "test_i8_pattern" 4: "test_i8_pattern" has unsupported operation: builtin.unregistered: llvm.icmp diff --git a/SSA/Projects/InstCombine/tests/logs/icmp-bc-vec.txt b/SSA/Projects/InstCombine/tests/logs/icmp-bc-vec.txt index bfdea9250..be71131fe 100644 --- a/SSA/Projects/InstCombine/tests/logs/icmp-bc-vec.txt +++ b/SSA/Projects/InstCombine/tests/logs/icmp-bc-vec.txt @@ -1,11 +1,11 @@ 1: "test_i1_0" -"test_i1_0" contains vectors which are unsupported +8: "test_i1_0" contains vectors which are unsupported 1: "test_i1_0_2" -"test_i1_0_2" contains vectors which are unsupported +8: "test_i1_0_2" contains vectors which are unsupported 1: "test_i1_m1" -"test_i1_m1" contains vectors which are unsupported +8: "test_i1_m1" contains vectors which are unsupported 1: "test_i8_pattern" 4: "test_i8_pattern" has unsupported operation: builtin.unregistered: llvm.icmp diff --git a/SSA/Projects/InstCombine/tests/logs/icmp-binop.txt b/SSA/Projects/InstCombine/tests/logs/icmp-binop.txt index a1f7ab784..26be87b18 100644 --- a/SSA/Projects/InstCombine/tests/logs/icmp-binop.txt +++ b/SSA/Projects/InstCombine/tests/logs/icmp-binop.txt @@ -83,8 +83,6 @@ 4: "mul_selectnzV_unkV_nsw_ne" has unsupported operation: builtin.unregistered: llvm.icmp -4: "mul_selectnzV_unkV_nsw_ne" has unsupported operation: builtin.unregistered: llvm.select - 1: "mul_unkV_unkV_nsw_nuw_ne" 4: "mul_unkV_unkV_nsw_nuw_ne" has unsupported operation: builtin.unregistered: llvm.icmp diff --git a/SSA/Projects/InstCombine/tests/logs/icmp-bitcast-glob.txt b/SSA/Projects/InstCombine/tests/logs/icmp-bitcast-glob.txt index 70ccf403d..5355d403f 100644 --- a/SSA/Projects/InstCombine/tests/logs/icmp-bitcast-glob.txt +++ b/SSA/Projects/InstCombine/tests/logs/icmp-bitcast-glob.txt @@ -23,5 +23,3 @@ 4: "icmp_glob" has unsupported operation after optimization: builtin.unregistered: llvm.icmp -4: "icmp_glob" has unsupported operation after optimization: builtin.unregistered: llvm.select - diff --git a/SSA/Projects/InstCombine/tests/logs/icmp-div-constant.txt b/SSA/Projects/InstCombine/tests/logs/icmp-div-constant.txt index 22ee9e096..c8820d0ed 100644 --- a/SSA/Projects/InstCombine/tests/logs/icmp-div-constant.txt +++ b/SSA/Projects/InstCombine/tests/logs/icmp-div-constant.txt @@ -77,18 +77,12 @@ 4: "udiv_ne_big" has unsupported operation: builtin.unregistered: llvm.icmp 1: "udiv_eq_not_big" -4: "udiv_eq_not_big" has unsupported operation: llvm.udiv - 4: "udiv_eq_not_big" has unsupported operation: builtin.unregistered: llvm.icmp 1: "udiv_slt_umax" -4: "udiv_slt_umax" has unsupported operation: llvm.udiv - 4: "udiv_slt_umax" has unsupported operation: builtin.unregistered: llvm.icmp 1: "udiv_eq_umax_use" -4: "udiv_eq_umax_use" has unsupported operation: llvm.udiv - 4: "udiv_eq_umax_use" has unsupported operation: llvm.call 4: "udiv_eq_umax_use" has unsupported operation: builtin.unregistered: llvm.icmp @@ -151,8 +145,6 @@ 4: "ashr_x_by_const_cmp_sge_x" has unsupported operation: builtin.unregistered: llvm.icmp 1: "udiv_x_by_const_cmp_eq_value_neg" -4: "udiv_x_by_const_cmp_eq_value_neg" has unsupported operation: llvm.udiv - 4: "udiv_x_by_const_cmp_eq_value_neg" has unsupported operation: builtin.unregistered: llvm.icmp 1: "sdiv_x_by_const_cmp_eq_value_neg" diff --git a/SSA/Projects/InstCombine/tests/logs/icmp-equality-test.txt b/SSA/Projects/InstCombine/tests/logs/icmp-equality-test.txt index 0aaa56929..bdfe77c64 100644 --- a/SSA/Projects/InstCombine/tests/logs/icmp-equality-test.txt +++ b/SSA/Projects/InstCombine/tests/logs/icmp-equality-test.txt @@ -29,10 +29,6 @@ 4: "icmp_equality_test_wrong_constant" has unsupported operation: builtin.unregistered: llvm.icmp -4: "icmp_equality_test_wrong_constant" has unsupported operation: builtin.unregistered: llvm.select - -4: "icmp_equality_test_wrong_constant" has unsupported operation: builtin.unregistered: llvm.select - 1: "icmp_equality_test_missing_not" 4: "icmp_equality_test_missing_not" has unsupported operation: builtin.unregistered: llvm.icmp @@ -40,10 +36,6 @@ 4: "icmp_equality_test_missing_not" has unsupported operation: builtin.unregistered: llvm.icmp -4: "icmp_equality_test_missing_not" has unsupported operation: builtin.unregistered: llvm.select - -4: "icmp_equality_test_missing_not" has unsupported operation: builtin.unregistered: llvm.select - 1: "icmp_equality_test_wrong_and" 4: "icmp_equality_test_wrong_and" has unsupported operation: builtin.unregistered: llvm.icmp @@ -51,10 +43,6 @@ 4: "icmp_equality_test_wrong_and" has unsupported operation: builtin.unregistered: llvm.icmp -4: "icmp_equality_test_wrong_and" has unsupported operation: builtin.unregistered: llvm.select - -4: "icmp_equality_test_wrong_and" has unsupported operation: builtin.unregistered: llvm.select - 1: "icmp_equality_test_wrong_cmp" 4: "icmp_equality_test_wrong_cmp" has unsupported operation: builtin.unregistered: llvm.icmp @@ -62,10 +50,6 @@ 4: "icmp_equality_test_wrong_cmp" has unsupported operation: builtin.unregistered: llvm.icmp -4: "icmp_equality_test_wrong_cmp" has unsupported operation: builtin.unregistered: llvm.select - -4: "icmp_equality_test_wrong_cmp" has unsupported operation: builtin.unregistered: llvm.select - 1: "icmp_equality_test_wrong_equal" 4: "icmp_equality_test_wrong_equal" has unsupported operation: builtin.unregistered: llvm.icmp @@ -73,7 +57,3 @@ 4: "icmp_equality_test_wrong_equal" has unsupported operation: builtin.unregistered: llvm.icmp -4: "icmp_equality_test_wrong_equal" has unsupported operation: builtin.unregistered: llvm.select - -4: "icmp_equality_test_wrong_equal" has unsupported operation: builtin.unregistered: llvm.select - diff --git a/SSA/Projects/InstCombine/tests/logs/icmp-ext-ext.txt b/SSA/Projects/InstCombine/tests/logs/icmp-ext-ext.txt index 3514487a5..b0c643724 100644 --- a/SSA/Projects/InstCombine/tests/logs/icmp-ext-ext.txt +++ b/SSA/Projects/InstCombine/tests/logs/icmp-ext-ext.txt @@ -145,8 +145,6 @@ 4: "sext_zext_nneg_uge_op0_wide" has unsupported operation: builtin.unregistered: llvm.icmp 1: "zext_sext_sgt_known_nonneg" -4: "zext_sext_sgt_known_nonneg" has unsupported operation: llvm.udiv - 4: "zext_sext_sgt_known_nonneg" has unsupported operation: builtin.unregistered: llvm.icmp 1: "zext_sext_ugt_known_nonneg" @@ -172,8 +170,6 @@ 4: "sext_zext_ult_known_nonneg" has unsupported operation: builtin.unregistered: llvm.icmp 1: "sext_zext_ne_known_nonneg" -4: "sext_zext_ne_known_nonneg" has unsupported operation: llvm.udiv - 4: "sext_zext_ne_known_nonneg" has unsupported operation: builtin.unregistered: llvm.icmp 1: "sext_zext_sge_known_nonneg_op0_narrow" @@ -201,5 +197,5 @@ 4: "zext_eq_sext_fail_not_i1" has unsupported operation: builtin.unregistered: llvm.icmp 1: "zext_ne_sext" -"zext_ne_sext" contains vectors which are unsupported +8: "zext_ne_sext" contains vectors which are unsupported diff --git a/SSA/Projects/InstCombine/tests/logs/icmp-logical.txt b/SSA/Projects/InstCombine/tests/logs/icmp-logical.txt index 2755c69e7..433451f29 100644 --- a/SSA/Projects/InstCombine/tests/logs/icmp-logical.txt +++ b/SSA/Projects/InstCombine/tests/logs/icmp-logical.txt @@ -81,8 +81,6 @@ 4: "fold_mask_cmps_to_false_logical" has unsupported operation after optimization: builtin.unregistered: llvm.icmp -4: "fold_mask_cmps_to_false_logical" has unsupported operation after optimization: builtin.unregistered: llvm.select - 1: "fold_mask_cmps_to_true" 4: "fold_mask_cmps_to_true" has unsupported operation after optimization: builtin.unregistered: llvm.icmp @@ -93,8 +91,6 @@ 4: "fold_mask_cmps_to_true_logical" has unsupported operation after optimization: builtin.unregistered: llvm.icmp -4: "fold_mask_cmps_to_true_logical" has unsupported operation after optimization: builtin.unregistered: llvm.select - 1: "nomask_splat_and_B_allones" 4: "nomask_splat_and_B_allones" has unsupported operation: builtin.unregistered: llvm.icmp @@ -150,8 +146,6 @@ 4: "masked_icmps_mask_notallzeros_bmask_mixed_2_logical" has unsupported operation after optimization: builtin.unregistered: llvm.icmp -4: "masked_icmps_mask_notallzeros_bmask_mixed_2_logical" has unsupported operation after optimization: builtin.unregistered: llvm.select - 1: "masked_icmps_mask_notallzeros_bmask_mixed_3" 4: "masked_icmps_mask_notallzeros_bmask_mixed_3" has unsupported operation: builtin.unregistered: llvm.icmp @@ -196,8 +190,6 @@ 4: "masked_icmps_mask_notallzeros_bmask_mixed_7_logical" has unsupported operation after optimization: builtin.unregistered: llvm.icmp -4: "masked_icmps_mask_notallzeros_bmask_mixed_7_logical" has unsupported operation after optimization: builtin.unregistered: llvm.select - 1: "masked_icmps_mask_notallzeros_bmask_mixed_7b" 4: "masked_icmps_mask_notallzeros_bmask_mixed_7b" has unsupported operation after optimization: builtin.unregistered: llvm.icmp @@ -208,8 +200,6 @@ 4: "masked_icmps_mask_notallzeros_bmask_mixed_7b_logical" has unsupported operation after optimization: builtin.unregistered: llvm.icmp -4: "masked_icmps_mask_notallzeros_bmask_mixed_7b_logical" has unsupported operation after optimization: builtin.unregistered: llvm.select - 1: "masked_icmps_mask_notallzeros_bmask_mixed_negated_0" 4: "masked_icmps_mask_notallzeros_bmask_mixed_negated_0" has unsupported operation: builtin.unregistered: llvm.icmp @@ -246,8 +236,6 @@ 4: "masked_icmps_mask_notallzeros_bmask_mixed_negated_2_logical" has unsupported operation after optimization: builtin.unregistered: llvm.icmp -4: "masked_icmps_mask_notallzeros_bmask_mixed_negated_2_logical" has unsupported operation after optimization: builtin.unregistered: llvm.select - 1: "masked_icmps_mask_notallzeros_bmask_mixed_negated_3" 4: "masked_icmps_mask_notallzeros_bmask_mixed_negated_3" has unsupported operation: builtin.unregistered: llvm.icmp @@ -292,8 +280,6 @@ 4: "masked_icmps_mask_notallzeros_bmask_mixed_negated_7_logical" has unsupported operation after optimization: builtin.unregistered: llvm.icmp -4: "masked_icmps_mask_notallzeros_bmask_mixed_negated_7_logical" has unsupported operation after optimization: builtin.unregistered: llvm.select - 1: "masked_icmps_mask_notallzeros_bmask_mixed_negated_7b" 4: "masked_icmps_mask_notallzeros_bmask_mixed_negated_7b" has unsupported operation after optimization: builtin.unregistered: llvm.icmp @@ -304,8 +290,6 @@ 4: "masked_icmps_mask_notallzeros_bmask_mixed_negated_7b_logical" has unsupported operation after optimization: builtin.unregistered: llvm.icmp -4: "masked_icmps_mask_notallzeros_bmask_mixed_negated_7b_logical" has unsupported operation after optimization: builtin.unregistered: llvm.select - 1: "masked_icmps_mask_notallzeros_bmask_mixed_swapped_0" 4: "masked_icmps_mask_notallzeros_bmask_mixed_swapped_0" has unsupported operation: builtin.unregistered: llvm.icmp @@ -342,8 +326,6 @@ 4: "masked_icmps_mask_notallzeros_bmask_mixed_swapped_2_logical" has unsupported operation after optimization: builtin.unregistered: llvm.icmp -4: "masked_icmps_mask_notallzeros_bmask_mixed_swapped_2_logical" has unsupported operation after optimization: builtin.unregistered: llvm.select - 1: "masked_icmps_mask_notallzeros_bmask_mixed_swapped_3" 4: "masked_icmps_mask_notallzeros_bmask_mixed_swapped_3" has unsupported operation: builtin.unregistered: llvm.icmp @@ -388,8 +370,6 @@ 4: "masked_icmps_mask_notallzeros_bmask_mixed_swapped_7_logical" has unsupported operation after optimization: builtin.unregistered: llvm.icmp -4: "masked_icmps_mask_notallzeros_bmask_mixed_swapped_7_logical" has unsupported operation after optimization: builtin.unregistered: llvm.select - 1: "masked_icmps_mask_notallzeros_bmask_mixed_swapped_7b" 4: "masked_icmps_mask_notallzeros_bmask_mixed_swapped_7b" has unsupported operation after optimization: builtin.unregistered: llvm.icmp @@ -400,8 +380,6 @@ 4: "masked_icmps_mask_notallzeros_bmask_mixed_swapped_7b_logical" has unsupported operation after optimization: builtin.unregistered: llvm.icmp -4: "masked_icmps_mask_notallzeros_bmask_mixed_swapped_7b_logical" has unsupported operation after optimization: builtin.unregistered: llvm.select - 1: "masked_icmps_mask_notallzeros_bmask_mixed_negated_swapped_0" 4: "masked_icmps_mask_notallzeros_bmask_mixed_negated_swapped_0" has unsupported operation: builtin.unregistered: llvm.icmp @@ -438,8 +416,6 @@ 4: "masked_icmps_mask_notallzeros_bmask_mixed_negated_swapped_2_logical" has unsupported operation after optimization: builtin.unregistered: llvm.icmp -4: "masked_icmps_mask_notallzeros_bmask_mixed_negated_swapped_2_logical" has unsupported operation after optimization: builtin.unregistered: llvm.select - 1: "masked_icmps_mask_notallzeros_bmask_mixed_negated_swapped_3" 4: "masked_icmps_mask_notallzeros_bmask_mixed_negated_swapped_3" has unsupported operation: builtin.unregistered: llvm.icmp @@ -484,8 +460,6 @@ 4: "masked_icmps_mask_notallzeros_bmask_mixed_negated_swapped_7_logical" has unsupported operation after optimization: builtin.unregistered: llvm.icmp -4: "masked_icmps_mask_notallzeros_bmask_mixed_negated_swapped_7_logical" has unsupported operation after optimization: builtin.unregistered: llvm.select - 1: "masked_icmps_mask_notallzeros_bmask_mixed_negated_swapped_7b" 4: "masked_icmps_mask_notallzeros_bmask_mixed_negated_swapped_7b" has unsupported operation after optimization: builtin.unregistered: llvm.icmp @@ -496,8 +470,6 @@ 4: "masked_icmps_mask_notallzeros_bmask_mixed_negated_swapped_7b_logical" has unsupported operation after optimization: builtin.unregistered: llvm.icmp -4: "masked_icmps_mask_notallzeros_bmask_mixed_negated_swapped_7b_logical" has unsupported operation after optimization: builtin.unregistered: llvm.select - 1: "masked_icmps_bmask_notmixed_or" 4: "masked_icmps_bmask_notmixed_or" has unsupported operation: builtin.unregistered: llvm.icmp diff --git a/SSA/Projects/InstCombine/tests/logs/icmp-mul-and.txt b/SSA/Projects/InstCombine/tests/logs/icmp-mul-and.txt index e6dddcc02..fddb284d9 100644 --- a/SSA/Projects/InstCombine/tests/logs/icmp-mul-and.txt +++ b/SSA/Projects/InstCombine/tests/logs/icmp-mul-and.txt @@ -118,8 +118,6 @@ 4: "pr51551_neg2" has unsupported operation: builtin.unregistered: llvm.icmp -4: "pr51551_neg2" has unsupported operation: builtin.unregistered: llvm.select - 1: "pr51551_demand3bits" 2: llvm.func 2: llvm.mlir.constant diff --git a/SSA/Projects/InstCombine/tests/logs/icmp-mul.txt b/SSA/Projects/InstCombine/tests/logs/icmp-mul.txt index f2d887173..851341a17 100644 --- a/SSA/Projects/InstCombine/tests/logs/icmp-mul.txt +++ b/SSA/Projects/InstCombine/tests/logs/icmp-mul.txt @@ -394,8 +394,6 @@ 4: "reused_mul_nuw_xy_z_selectnonzero_ugt" has unsupported operation: builtin.unregistered: llvm.icmp -4: "reused_mul_nuw_xy_z_selectnonzero_ugt" has unsupported operation: builtin.unregistered: llvm.select - 1: "mul_mixed_nsw_nuw_xy_z_setnonzero_vec_ule" 4: "mul_mixed_nsw_nuw_xy_z_setnonzero_vec_ule" has unsupported operation: builtin.unregistered: llvm.icmp diff --git a/SSA/Projects/InstCombine/tests/logs/icmp-not-bool-constant.txt b/SSA/Projects/InstCombine/tests/logs/icmp-not-bool-constant.txt index cec60e3dc..3234bd347 100644 --- a/SSA/Projects/InstCombine/tests/logs/icmp-not-bool-constant.txt +++ b/SSA/Projects/InstCombine/tests/logs/icmp-not-bool-constant.txt @@ -1,60 +1,60 @@ 1: "eq_t_not" -"eq_t_not" contains vectors which are unsupported +8: "eq_t_not" contains vectors which are unsupported 1: "eq_f_not" -"eq_f_not" contains vectors which are unsupported +8: "eq_f_not" contains vectors which are unsupported 1: "ne_t_not" -"ne_t_not" contains vectors which are unsupported +8: "ne_t_not" contains vectors which are unsupported 1: "ne_f_not" -"ne_f_not" contains vectors which are unsupported +8: "ne_f_not" contains vectors which are unsupported 1: "ugt_t_not" -"ugt_t_not" contains vectors which are unsupported +8: "ugt_t_not" contains vectors which are unsupported 1: "ugt_f_not" -"ugt_f_not" contains vectors which are unsupported +8: "ugt_f_not" contains vectors which are unsupported 1: "ult_t_not" -"ult_t_not" contains vectors which are unsupported +8: "ult_t_not" contains vectors which are unsupported 1: "ult_f_not" -"ult_f_not" contains vectors which are unsupported +8: "ult_f_not" contains vectors which are unsupported 1: "sgt_t_not" -"sgt_t_not" contains vectors which are unsupported +8: "sgt_t_not" contains vectors which are unsupported 1: "sgt_f_not" -"sgt_f_not" contains vectors which are unsupported +8: "sgt_f_not" contains vectors which are unsupported 1: "slt_t_not" -"slt_t_not" contains vectors which are unsupported +8: "slt_t_not" contains vectors which are unsupported 1: "slt_f_not" -"slt_f_not" contains vectors which are unsupported +8: "slt_f_not" contains vectors which are unsupported 1: "uge_t_not" -"uge_t_not" contains vectors which are unsupported +8: "uge_t_not" contains vectors which are unsupported 1: "uge_f_not" -"uge_f_not" contains vectors which are unsupported +8: "uge_f_not" contains vectors which are unsupported 1: "ule_t_not" -"ule_t_not" contains vectors which are unsupported +8: "ule_t_not" contains vectors which are unsupported 1: "ule_f_not" -"ule_f_not" contains vectors which are unsupported +8: "ule_f_not" contains vectors which are unsupported 1: "sge_t_not" -"sge_t_not" contains vectors which are unsupported +8: "sge_t_not" contains vectors which are unsupported 1: "sge_f_not" -"sge_f_not" contains vectors which are unsupported +8: "sge_f_not" contains vectors which are unsupported 1: "sle_t_not" -"sle_t_not" contains vectors which are unsupported +8: "sle_t_not" contains vectors which are unsupported 1: "sle_f_not" -"sle_f_not" contains vectors which are unsupported +8: "sle_f_not" contains vectors which are unsupported diff --git a/SSA/Projects/InstCombine/tests/logs/icmp-of-and-x.txt b/SSA/Projects/InstCombine/tests/logs/icmp-of-and-x.txt index 8c771a67a..c56f1925c 100644 --- a/SSA/Projects/InstCombine/tests/logs/icmp-of-and-x.txt +++ b/SSA/Projects/InstCombine/tests/logs/icmp-of-and-x.txt @@ -45,7 +45,7 @@ 4: "icmp_sle_x_negy" has unsupported operation after optimization: builtin.unregistered: llvm.icmp 1: "icmp_sgt_x_negy" -"icmp_sgt_x_negy" contains vectors which are unsupported +8: "icmp_sgt_x_negy" contains vectors which are unsupported 1: "icmp_sgt_x_negy_fail_partial" 4: "icmp_sgt_x_negy_fail_partial" has unsupported operation: builtin.unregistered: llvm.icmp @@ -81,8 +81,6 @@ 4: "icmp_sle_negx_y_fail_maybe_zero" has unsupported operation: builtin.unregistered: llvm.icmp 1: "icmp_eq_x_invertable_y_todo" -4: "icmp_eq_x_invertable_y_todo" has unsupported operation: builtin.unregistered: llvm.select - 4: "icmp_eq_x_invertable_y_todo" has unsupported operation: builtin.unregistered: llvm.icmp 1: "icmp_eq_x_invertable_y" @@ -94,8 +92,6 @@ 4: "icmp_eq_x_invertable_y_fail_multiuse" has unsupported operation: builtin.unregistered: llvm.icmp 1: "icmp_eq_x_invertable_y2_todo" -4: "icmp_eq_x_invertable_y2_todo" has unsupported operation: builtin.unregistered: llvm.select - 4: "icmp_eq_x_invertable_y2_todo" has unsupported operation: builtin.unregistered: llvm.icmp 1: "icmp_eq_x_invertable_y2" diff --git a/SSA/Projects/InstCombine/tests/logs/icmp-of-or-x.txt b/SSA/Projects/InstCombine/tests/logs/icmp-of-or-x.txt index 15fc040bc..9cbb32abd 100644 --- a/SSA/Projects/InstCombine/tests/logs/icmp-of-or-x.txt +++ b/SSA/Projects/InstCombine/tests/logs/icmp-of-or-x.txt @@ -108,13 +108,9 @@ 1: "pr64610" 4: "pr64610" has unsupported operation after optimization: llvm.load -4: "pr64610" has unsupported operation after optimization: builtin.unregistered: llvm.select - 4: "pr64610" has unsupported operation after optimization: builtin.unregistered: llvm.icmp 1: "icmp_eq_x_invertable_y2_todo" -4: "icmp_eq_x_invertable_y2_todo" has unsupported operation: builtin.unregistered: llvm.select - 4: "icmp_eq_x_invertable_y2_todo" has unsupported operation: builtin.unregistered: llvm.icmp 1: "icmp_eq_x_invertable_y2" diff --git a/SSA/Projects/InstCombine/tests/logs/icmp-or-of-select-with-zero.txt b/SSA/Projects/InstCombine/tests/logs/icmp-or-of-select-with-zero.txt index 3027bda91..33dc7809a 100644 --- a/SSA/Projects/InstCombine/tests/logs/icmp-or-of-select-with-zero.txt +++ b/SSA/Projects/InstCombine/tests/logs/icmp-or-of-select-with-zero.txt @@ -8,39 +8,29 @@ 4: "src_tv_eq" has unsupported operation: builtin.unregistered: llvm.icmp 1: "src_tv_eq_multiuse_or_fail" -4: "src_tv_eq_multiuse_or_fail" has unsupported operation: builtin.unregistered: llvm.select - 4: "src_tv_eq_multiuse_or_fail" has unsupported operation: builtin.unregistered: llvm.icmp 4: "src_tv_eq_multiuse_or_fail" has unsupported operation: llvm.call 1: "src_tv_eq_fail_tv_nonzero" -4: "src_tv_eq_fail_tv_nonzero" has unsupported operation: builtin.unregistered: llvm.select - 4: "src_tv_eq_fail_tv_nonzero" has unsupported operation: builtin.unregistered: llvm.icmp 1: "src_fv_ne" 4: "src_fv_ne" has unsupported operation: builtin.unregistered: llvm.icmp 1: "src_fv_ne_fail_maybe_zero" -4: "src_fv_ne_fail_maybe_zero" has unsupported operation: builtin.unregistered: llvm.select - 4: "src_fv_ne_fail_maybe_zero" has unsupported operation: builtin.unregistered: llvm.icmp 1: "src_tv_ne" 4: "src_tv_ne" has unsupported operation: builtin.unregistered: llvm.icmp 1: "src_tv_ne_fail_cmp_nonzero" -4: "src_tv_ne_fail_cmp_nonzero" has unsupported operation: builtin.unregistered: llvm.select - 4: "src_tv_ne_fail_cmp_nonzero" has unsupported operation: builtin.unregistered: llvm.icmp 1: "src_fv_eq" 4: "src_fv_eq" has unsupported operation: builtin.unregistered: llvm.icmp 1: "src_fv_eq_fail_cant_invert" -4: "src_fv_eq_fail_cant_invert" has unsupported operation: builtin.unregistered: llvm.select - 4: "src_fv_eq_fail_cant_invert" has unsupported operation: builtin.unregistered: llvm.icmp 4: "src_fv_eq_fail_cant_invert" has unsupported operation: llvm.call @@ -48,10 +38,6 @@ 1: "src_fv_eq_fail_cant_invert2" 4: "src_fv_eq_fail_cant_invert2" has unsupported operation: builtin.unregistered: llvm.icmp -4: "src_fv_eq_fail_cant_invert2" has unsupported operation: builtin.unregistered: llvm.select - -4: "src_fv_eq_fail_cant_invert2" has unsupported operation: builtin.unregistered: llvm.select - 4: "src_fv_eq_fail_cant_invert2" has unsupported operation: builtin.unregistered: llvm.icmp 4: "src_fv_eq_fail_cant_invert2" has unsupported operation: llvm.call @@ -61,8 +47,6 @@ 1: "src_fv_eq_invert2" 4: "src_fv_eq_invert2" has unsupported operation: builtin.unregistered: llvm.icmp -4: "src_fv_eq_invert2" has unsupported operation: builtin.unregistered: llvm.select - 4: "src_fv_eq_invert2" has unsupported operation: builtin.unregistered: llvm.icmp 4: "src_fv_eq_invert2" has unsupported operation: llvm.call @@ -70,10 +54,6 @@ 1: "src_fv_eq_invert2_fail_wrong_binop" 4: "src_fv_eq_invert2_fail_wrong_binop" has unsupported operation: builtin.unregistered: llvm.icmp -4: "src_fv_eq_invert2_fail_wrong_binop" has unsupported operation: builtin.unregistered: llvm.select - -4: "src_fv_eq_invert2_fail_wrong_binop" has unsupported operation: builtin.unregistered: llvm.select - 4: "src_fv_eq_invert2_fail_wrong_binop" has unsupported operation: builtin.unregistered: llvm.icmp 4: "src_fv_eq_invert2_fail_wrong_binop" has unsupported operation: llvm.call @@ -81,10 +61,6 @@ 1: "src_fv_eq_invert2_fail_bad_sel" 4: "src_fv_eq_invert2_fail_bad_sel" has unsupported operation: builtin.unregistered: llvm.icmp -4: "src_fv_eq_invert2_fail_bad_sel" has unsupported operation: builtin.unregistered: llvm.select - -4: "src_fv_eq_invert2_fail_bad_sel" has unsupported operation: builtin.unregistered: llvm.select - 4: "src_fv_eq_invert2_fail_bad_sel" has unsupported operation: builtin.unregistered: llvm.icmp 4: "src_fv_eq_invert2_fail_bad_sel" has unsupported operation: llvm.call @@ -94,10 +70,6 @@ 1: "src_fv_eq_invert3" 4: "src_fv_eq_invert3" has unsupported operation: builtin.unregistered: llvm.icmp -4: "src_fv_eq_invert3" has unsupported operation: builtin.unregistered: llvm.select - -4: "src_fv_eq_invert3" has unsupported operation: builtin.unregistered: llvm.select - 4: "src_fv_eq_invert3" has unsupported operation: builtin.unregistered: llvm.icmp 4: "src_fv_eq_invert3" has unsupported operation: llvm.call @@ -109,10 +81,6 @@ 4: "src_tv_ne_invert" has unsupported operation: llvm.call -4: "src_tv_ne_invert" has unsupported operation: builtin.unregistered: llvm.select - -4: "src_tv_ne_invert" has unsupported operation: builtin.unregistered: llvm.select - 4: "src_tv_ne_invert" has unsupported operation: builtin.unregistered: llvm.icmp 4: "src_tv_ne_invert" has unsupported operation: llvm.call diff --git a/SSA/Projects/InstCombine/tests/logs/icmp-range.txt b/SSA/Projects/InstCombine/tests/logs/icmp-range.txt index c8a472d25..e9465915d 100644 --- a/SSA/Projects/InstCombine/tests/logs/icmp-range.txt +++ b/SSA/Projects/InstCombine/tests/logs/icmp-range.txt @@ -109,19 +109,19 @@ 4: "test_two_ranges_vec" has unsupported operation: builtin.unregistered: llvm.icmp 1: "test_two_ranges_vec_false" -"test_two_ranges_vec_false" contains vectors which are unsupported +8: "test_two_ranges_vec_false" contains vectors which are unsupported 1: "test_two_ranges_vec_true" -"test_two_ranges_vec_true" contains vectors which are unsupported +8: "test_two_ranges_vec_true" contains vectors which are unsupported 1: "test_two_argument_ranges_vec" 4: "test_two_argument_ranges_vec" has unsupported operation: builtin.unregistered: llvm.icmp 1: "test_two_argument_ranges_vec_false" -"test_two_argument_ranges_vec_false" contains vectors which are unsupported +8: "test_two_argument_ranges_vec_false" contains vectors which are unsupported 1: "test_two_argument_ranges_vec_true" -"test_two_argument_ranges_vec_true" contains vectors which are unsupported +8: "test_two_argument_ranges_vec_true" contains vectors which are unsupported 1: "create_range1" 5: "create_range1" is empty @@ -417,7 +417,7 @@ 4: "zext_sext_add_icmp_ugt_1" has unsupported operation after optimization: builtin.unregistered: llvm.icmp 1: "vector_zext_sext_add_icmp_slt_1" -"vector_zext_sext_add_icmp_slt_1" contains vectors which are unsupported +8: "vector_zext_sext_add_icmp_slt_1" contains vectors which are unsupported 1: "vector_zext_sext_add_icmp_slt_1_poison" 4: "vector_zext_sext_add_icmp_slt_1_poison" has unsupported operation: builtin.unregistered: llvm.mlir.poison @@ -558,7 +558,7 @@ 4: "icmp_eq_zext_ne_non_boolean" has unsupported operation: builtin.unregistered: llvm.icmp 1: "icmp_ne_zext_eq_zero_vec" -"icmp_ne_zext_eq_zero_vec" contains vectors which are unsupported +8: "icmp_ne_zext_eq_zero_vec" contains vectors which are unsupported 1: "icmp_ne_zext_ne_zero_vec" 4: "icmp_ne_zext_ne_zero_vec" has unsupported operation: builtin.unregistered: llvm.icmp @@ -567,7 +567,7 @@ 4: "icmp_ne_zext_eq_one_vec" has unsupported operation: builtin.unregistered: llvm.icmp 1: "icmp_ne_zext_ne_one_vec" -"icmp_ne_zext_ne_one_vec" contains vectors which are unsupported +8: "icmp_ne_zext_ne_one_vec" contains vectors which are unsupported 1: "icmp_ne_zext_eq_non_boolean_vec" 4: "icmp_ne_zext_eq_non_boolean_vec" has unsupported operation: builtin.unregistered: llvm.icmp @@ -625,7 +625,7 @@ 4: "icmp_eq_sext_ne_otherwise" has unsupported operation: builtin.unregistered: llvm.icmp 1: "icmp_ne_sext_eq_zero_vec" -"icmp_ne_sext_eq_zero_vec" contains vectors which are unsupported +8: "icmp_ne_sext_eq_zero_vec" contains vectors which are unsupported 1: "icmp_ne_sext_ne_zero_vec" 4: "icmp_ne_sext_ne_zero_vec" has unsupported operation: builtin.unregistered: llvm.icmp @@ -634,7 +634,7 @@ 4: "icmp_ne_sext_eq_allones_vec" has unsupported operation: builtin.unregistered: llvm.icmp 1: "icmp_ne_sext_ne_allones_vec" -"icmp_ne_sext_ne_allones_vec" contains vectors which are unsupported +8: "icmp_ne_sext_ne_allones_vec" contains vectors which are unsupported 1: "icmp_ne_sext_eq_otherwise_vec" 4: "icmp_ne_sext_eq_otherwise_vec" has unsupported operation: builtin.unregistered: llvm.icmp diff --git a/SSA/Projects/InstCombine/tests/logs/icmp-select-implies-common-op.txt b/SSA/Projects/InstCombine/tests/logs/icmp-select-implies-common-op.txt index 5b2cf67ed..f46c42dc2 100644 --- a/SSA/Projects/InstCombine/tests/logs/icmp-select-implies-common-op.txt +++ b/SSA/Projects/InstCombine/tests/logs/icmp-select-implies-common-op.txt @@ -3,47 +3,33 @@ 4: "sgt_3_impliesF_eq_2" has unsupported operation: builtin.unregistered: llvm.icmp -4: "sgt_3_impliesF_eq_2" has unsupported operation: builtin.unregistered: llvm.select - 1: "sgt_3_impliesT_sgt_2" 4: "sgt_3_impliesT_sgt_2" has unsupported operation: builtin.unregistered: llvm.icmp 4: "sgt_3_impliesT_sgt_2" has unsupported operation: builtin.unregistered: llvm.icmp -4: "sgt_3_impliesT_sgt_2" has unsupported operation: builtin.unregistered: llvm.select - 1: "sgt_x_impliesF_eq_smin_todo" 4: "sgt_x_impliesF_eq_smin_todo" has unsupported operation: builtin.unregistered: llvm.icmp 4: "sgt_x_impliesF_eq_smin_todo" has unsupported operation: builtin.unregistered: llvm.icmp -4: "sgt_x_impliesF_eq_smin_todo" has unsupported operation: builtin.unregistered: llvm.select - 1: "slt_x_impliesT_ne_smin_todo" 4: "slt_x_impliesT_ne_smin_todo" has unsupported operation: builtin.unregistered: llvm.icmp 4: "slt_x_impliesT_ne_smin_todo" has unsupported operation: builtin.unregistered: llvm.icmp -4: "slt_x_impliesT_ne_smin_todo" has unsupported operation: builtin.unregistered: llvm.select - 1: "ult_x_impliesT_eq_umax_todo" 4: "ult_x_impliesT_eq_umax_todo" has unsupported operation: builtin.unregistered: llvm.icmp 4: "ult_x_impliesT_eq_umax_todo" has unsupported operation: builtin.unregistered: llvm.icmp -4: "ult_x_impliesT_eq_umax_todo" has unsupported operation: builtin.unregistered: llvm.select - 1: "ult_1_impliesF_eq_1" 4: "ult_1_impliesF_eq_1" has unsupported operation: builtin.unregistered: llvm.icmp 4: "ult_1_impliesF_eq_1" has unsupported operation: builtin.unregistered: llvm.icmp -4: "ult_1_impliesF_eq_1" has unsupported operation: builtin.unregistered: llvm.select - 1: "ugt_x_impliesF_eq_umin_todo" 4: "ugt_x_impliesF_eq_umin_todo" has unsupported operation: builtin.unregistered: llvm.icmp -4: "ugt_x_impliesF_eq_umin_todo" has unsupported operation: builtin.unregistered: llvm.select - 4: "ugt_x_impliesF_eq_umin_todo" has unsupported operation: builtin.unregistered: llvm.icmp diff --git a/SSA/Projects/InstCombine/tests/logs/icmp-select.txt b/SSA/Projects/InstCombine/tests/logs/icmp-select.txt index c54a50aa7..8147e8dc6 100644 --- a/SSA/Projects/InstCombine/tests/logs/icmp-select.txt +++ b/SSA/Projects/InstCombine/tests/logs/icmp-select.txt @@ -9,41 +9,27 @@ 4: "icmp_select_const" has unsupported operation: builtin.unregistered: llvm.icmp -4: "icmp_select_const" has unsupported operation: builtin.unregistered: llvm.select - 1: "icmp_select_var" 4: "icmp_select_var" has unsupported operation: builtin.unregistered: llvm.icmp 4: "icmp_select_var" has unsupported operation: builtin.unregistered: llvm.icmp -4: "icmp_select_var" has unsupported operation: builtin.unregistered: llvm.select - 1: "icmp_select_var_commuted" -4: "icmp_select_var_commuted" has unsupported operation: llvm.udiv - 4: "icmp_select_var_commuted" has unsupported operation: builtin.unregistered: llvm.icmp 4: "icmp_select_var_commuted" has unsupported operation: builtin.unregistered: llvm.icmp -4: "icmp_select_var_commuted" has unsupported operation: builtin.unregistered: llvm.select - 1: "icmp_select_var_select" 4: "icmp_select_var_select" has unsupported operation: builtin.unregistered: llvm.icmp 4: "icmp_select_var_select" has unsupported operation: builtin.unregistered: llvm.icmp -4: "icmp_select_var_select" has unsupported operation: builtin.unregistered: llvm.select - -4: "icmp_select_var_select" has unsupported operation: builtin.unregistered: llvm.select - 1: "icmp_select_var_both_fold" 4: "icmp_select_var_both_fold" has unsupported operation: builtin.unregistered: llvm.icmp 1: "icmp_select_var_extra_use" 4: "icmp_select_var_extra_use" has unsupported operation: builtin.unregistered: llvm.icmp -4: "icmp_select_var_extra_use" has unsupported operation: builtin.unregistered: llvm.select - 4: "icmp_select_var_extra_use" has unsupported operation: llvm.call 4: "icmp_select_var_extra_use" has unsupported operation: builtin.unregistered: llvm.icmp @@ -51,8 +37,6 @@ 1: "icmp_select_var_both_fold_extra_use" 4: "icmp_select_var_both_fold_extra_use" has unsupported operation: builtin.unregistered: llvm.icmp -4: "icmp_select_var_both_fold_extra_use" has unsupported operation: builtin.unregistered: llvm.select - 4: "icmp_select_var_both_fold_extra_use" has unsupported operation: llvm.call 1: "icmp_select_var_pred_ne" @@ -60,50 +44,36 @@ 4: "icmp_select_var_pred_ne" has unsupported operation: builtin.unregistered: llvm.icmp -4: "icmp_select_var_pred_ne" has unsupported operation: builtin.unregistered: llvm.select - 1: "icmp_select_var_pred_ult" 4: "icmp_select_var_pred_ult" has unsupported operation: builtin.unregistered: llvm.icmp 4: "icmp_select_var_pred_ult" has unsupported operation: builtin.unregistered: llvm.icmp -4: "icmp_select_var_pred_ult" has unsupported operation: builtin.unregistered: llvm.select - 1: "icmp_select_var_pred_uge" 4: "icmp_select_var_pred_uge" has unsupported operation: builtin.unregistered: llvm.icmp 4: "icmp_select_var_pred_uge" has unsupported operation: builtin.unregistered: llvm.icmp -4: "icmp_select_var_pred_uge" has unsupported operation: builtin.unregistered: llvm.select - 1: "icmp_select_var_pred_uge_commuted" 4: "icmp_select_var_pred_uge_commuted" has unsupported operation: builtin.unregistered: llvm.icmp 4: "icmp_select_var_pred_uge_commuted" has unsupported operation: builtin.unregistered: llvm.icmp -4: "icmp_select_var_pred_uge_commuted" has unsupported operation: builtin.unregistered: llvm.select - 1: "icmp_select_implied_cond" 4: "icmp_select_implied_cond" has unsupported operation: builtin.unregistered: llvm.icmp 4: "icmp_select_implied_cond" has unsupported operation: builtin.unregistered: llvm.icmp -4: "icmp_select_implied_cond" has unsupported operation: builtin.unregistered: llvm.select - 1: "icmp_select_implied_cond_ne" 4: "icmp_select_implied_cond_ne" has unsupported operation: builtin.unregistered: llvm.icmp 4: "icmp_select_implied_cond_ne" has unsupported operation: builtin.unregistered: llvm.icmp -4: "icmp_select_implied_cond_ne" has unsupported operation: builtin.unregistered: llvm.select - 1: "icmp_select_implied_cond_swapped_select" 4: "icmp_select_implied_cond_swapped_select" has unsupported operation: builtin.unregistered: llvm.icmp 4: "icmp_select_implied_cond_swapped_select" has unsupported operation: builtin.unregistered: llvm.icmp -4: "icmp_select_implied_cond_swapped_select" has unsupported operation: builtin.unregistered: llvm.select - 1: "icmp_select_implied_cond_swapped_select_with_inv_cond" 4: "icmp_select_implied_cond_swapped_select_with_inv_cond" has unsupported operation: builtin.unregistered: llvm.icmp @@ -111,22 +81,16 @@ 4: "icmp_select_implied_cond_swapped_select_with_inv_cond" has unsupported operation: builtin.unregistered: llvm.icmp -4: "icmp_select_implied_cond_swapped_select_with_inv_cond" has unsupported operation: builtin.unregistered: llvm.select - 1: "icmp_select_implied_cond_relational" 4: "icmp_select_implied_cond_relational" has unsupported operation: builtin.unregistered: llvm.icmp 4: "icmp_select_implied_cond_relational" has unsupported operation: builtin.unregistered: llvm.icmp -4: "icmp_select_implied_cond_relational" has unsupported operation: builtin.unregistered: llvm.select - 1: "icmp_select_implied_cond_relational_off_by_one" 4: "icmp_select_implied_cond_relational_off_by_one" has unsupported operation: builtin.unregistered: llvm.icmp 4: "icmp_select_implied_cond_relational_off_by_one" has unsupported operation: llvm.call -4: "icmp_select_implied_cond_relational_off_by_one" has unsupported operation: builtin.unregistered: llvm.select - 4: "icmp_select_implied_cond_relational_off_by_one" has unsupported operation: builtin.unregistered: llvm.icmp 1: "umin_seq_comparison" @@ -134,93 +98,51 @@ 4: "umin_seq_comparison" has unsupported operation: builtin.unregistered: llvm.icmp -4: "umin_seq_comparison" has unsupported operation: builtin.unregistered: llvm.select - 1: "select_constants_and_icmp_eq0" -4: "select_constants_and_icmp_eq0" has unsupported operation after optimization: builtin.unregistered: llvm.select - -4: "select_constants_and_icmp_eq0" has unsupported operation after optimization: builtin.unregistered: llvm.select - 4: "select_constants_and_icmp_eq0" has unsupported operation after optimization: builtin.unregistered: llvm.icmp 1: "select_constants_and_icmp_eq0_uses" -4: "select_constants_and_icmp_eq0_uses" has unsupported operation: builtin.unregistered: llvm.select - 4: "select_constants_and_icmp_eq0_uses" has unsupported operation: llvm.call -4: "select_constants_and_icmp_eq0_uses" has unsupported operation: builtin.unregistered: llvm.select - 4: "select_constants_and_icmp_eq0_uses" has unsupported operation: llvm.call 4: "select_constants_and_icmp_eq0_uses" has unsupported operation: llvm.call 1: "select_constants_and_icmp_eq0_vec_splat" -"select_constants_and_icmp_eq0_vec_splat" contains vectors which are unsupported +8: "select_constants_and_icmp_eq0_vec_splat" contains vectors which are unsupported 1: "select_constants_and_icmp_eq0_common_bit" -4: "select_constants_and_icmp_eq0_common_bit" has unsupported operation after optimization: builtin.unregistered: llvm.select - -4: "select_constants_and_icmp_eq0_common_bit" has unsupported operation after optimization: builtin.unregistered: llvm.select - 4: "select_constants_and_icmp_eq0_common_bit" has unsupported operation after optimization: builtin.unregistered: llvm.icmp 1: "select_constants_and_icmp_eq0_no_common_op1" -4: "select_constants_and_icmp_eq0_no_common_op1" has unsupported operation: builtin.unregistered: llvm.select - -4: "select_constants_and_icmp_eq0_no_common_op1" has unsupported operation: builtin.unregistered: llvm.select - 4: "select_constants_and_icmp_eq0_no_common_op1" has unsupported operation: builtin.unregistered: llvm.icmp 1: "select_constants_and_icmp_eq0_no_common_op2" -4: "select_constants_and_icmp_eq0_no_common_op2" has unsupported operation: builtin.unregistered: llvm.select - -4: "select_constants_and_icmp_eq0_no_common_op2" has unsupported operation: builtin.unregistered: llvm.select - 4: "select_constants_and_icmp_eq0_no_common_op2" has unsupported operation: builtin.unregistered: llvm.icmp 1: "select_constants_and_icmp_eq0_zero_tval" -4: "select_constants_and_icmp_eq0_zero_tval" has unsupported operation: builtin.unregistered: llvm.select +4: "select_constants_and_icmp_eq0_zero_tval" has unsupported operation after optimization: builtin.unregistered: llvm.icmp 1: "select_constants_and_icmp_eq0_zero_fval" -4: "select_constants_and_icmp_eq0_zero_fval" has unsupported operation: builtin.unregistered: llvm.select +4: "select_constants_and_icmp_eq0_zero_fval" has unsupported operation after optimization: builtin.unregistered: llvm.icmp 1: "select_constants_and_icmp_eq_tval" -4: "select_constants_and_icmp_eq_tval" has unsupported operation: builtin.unregistered: llvm.select - -4: "select_constants_and_icmp_eq_tval" has unsupported operation: builtin.unregistered: llvm.select - 4: "select_constants_and_icmp_eq_tval" has unsupported operation: builtin.unregistered: llvm.icmp 1: "select_constants_and_icmp_eq_fval" -4: "select_constants_and_icmp_eq_fval" has unsupported operation: builtin.unregistered: llvm.select - -4: "select_constants_and_icmp_eq_fval" has unsupported operation: builtin.unregistered: llvm.select - 4: "select_constants_and_icmp_eq_fval" has unsupported operation: builtin.unregistered: llvm.icmp 1: "select_constants_and_icmp_ne0" -4: "select_constants_and_icmp_ne0" has unsupported operation after optimization: builtin.unregistered: llvm.select - -4: "select_constants_and_icmp_ne0" has unsupported operation after optimization: builtin.unregistered: llvm.select - 4: "select_constants_and_icmp_ne0" has unsupported operation after optimization: builtin.unregistered: llvm.icmp 1: "select_constants_and_icmp_ne0_uses" -4: "select_constants_and_icmp_ne0_uses" has unsupported operation: builtin.unregistered: llvm.select - 4: "select_constants_and_icmp_ne0_uses" has unsupported operation: llvm.call -4: "select_constants_and_icmp_ne0_uses" has unsupported operation: builtin.unregistered: llvm.select - 4: "select_constants_and_icmp_ne0_uses" has unsupported operation: llvm.call 1: "select_constants_and_icmp_ne0_all_uses" -4: "select_constants_and_icmp_ne0_all_uses" has unsupported operation: builtin.unregistered: llvm.select - 4: "select_constants_and_icmp_ne0_all_uses" has unsupported operation: llvm.call -4: "select_constants_and_icmp_ne0_all_uses" has unsupported operation: builtin.unregistered: llvm.select - 4: "select_constants_and_icmp_ne0_all_uses" has unsupported operation: llvm.call 4: "select_constants_and_icmp_ne0_all_uses" has unsupported operation: llvm.call @@ -228,56 +150,32 @@ 4: "select_constants_and_icmp_ne0_all_uses" has unsupported operation: builtin.unregistered: llvm.icmp 1: "select_constants_and_icmp_ne0_vec_splat" -"select_constants_and_icmp_ne0_vec_splat" contains vectors which are unsupported +8: "select_constants_and_icmp_ne0_vec_splat" contains vectors which are unsupported 1: "select_constants_and_icmp_ne0_common_bit" -4: "select_constants_and_icmp_ne0_common_bit" has unsupported operation after optimization: builtin.unregistered: llvm.select - -4: "select_constants_and_icmp_ne0_common_bit" has unsupported operation after optimization: builtin.unregistered: llvm.select - 4: "select_constants_and_icmp_ne0_common_bit" has unsupported operation after optimization: builtin.unregistered: llvm.icmp 1: "select_constants_and_icmp_ne0_no_common_op1" -4: "select_constants_and_icmp_ne0_no_common_op1" has unsupported operation: builtin.unregistered: llvm.select - -4: "select_constants_and_icmp_ne0_no_common_op1" has unsupported operation: builtin.unregistered: llvm.select - 4: "select_constants_and_icmp_ne0_no_common_op1" has unsupported operation: builtin.unregistered: llvm.icmp 1: "select_constants_and_icmp_ne0_no_common_op2" -4: "select_constants_and_icmp_ne0_no_common_op2" has unsupported operation: builtin.unregistered: llvm.select - -4: "select_constants_and_icmp_ne0_no_common_op2" has unsupported operation: builtin.unregistered: llvm.select - 4: "select_constants_and_icmp_ne0_no_common_op2" has unsupported operation: builtin.unregistered: llvm.icmp 1: "select_constants_and_icmp_ne0_zero_tval" -4: "select_constants_and_icmp_ne0_zero_tval" has unsupported operation: builtin.unregistered: llvm.select +4: "select_constants_and_icmp_ne0_zero_tval" has unsupported operation after optimization: builtin.unregistered: llvm.icmp 1: "select_constants_and_icmp_ne0_zero_fval" -4: "select_constants_and_icmp_ne0_zero_fval" has unsupported operation: builtin.unregistered: llvm.select +4: "select_constants_and_icmp_ne0_zero_fval" has unsupported operation after optimization: builtin.unregistered: llvm.icmp 1: "select_constants_and_icmp_ne_tval" -4: "select_constants_and_icmp_ne_tval" has unsupported operation: builtin.unregistered: llvm.select - -4: "select_constants_and_icmp_ne_tval" has unsupported operation: builtin.unregistered: llvm.select - 4: "select_constants_and_icmp_ne_tval" has unsupported operation: builtin.unregistered: llvm.icmp 1: "select_constants_and_icmp_ne_fval" -4: "select_constants_and_icmp_ne_fval" has unsupported operation: builtin.unregistered: llvm.select - -4: "select_constants_and_icmp_ne_fval" has unsupported operation: builtin.unregistered: llvm.select - 4: "select_constants_and_icmp_ne_fval" has unsupported operation: builtin.unregistered: llvm.icmp 1: "icmp_eq_select" 4: "icmp_eq_select" has unsupported operation: builtin.unregistered: llvm.icmp 1: "icmp_slt_select" -4: "icmp_slt_select" has unsupported operation: builtin.unregistered: llvm.select - -4: "icmp_slt_select" has unsupported operation: builtin.unregistered: llvm.select - 4: "icmp_slt_select" has unsupported operation: builtin.unregistered: llvm.icmp diff --git a/SSA/Projects/InstCombine/tests/logs/icmp-vec-inseltpoison.txt b/SSA/Projects/InstCombine/tests/logs/icmp-vec-inseltpoison.txt index c6f6cb248..35cdabd36 100644 --- a/SSA/Projects/InstCombine/tests/logs/icmp-vec-inseltpoison.txt +++ b/SSA/Projects/InstCombine/tests/logs/icmp-vec-inseltpoison.txt @@ -17,7 +17,7 @@ 4: "sge_zero" has unsupported operation: builtin.unregistered: llvm.icmp 1: "uge_zero" -"uge_zero" contains vectors which are unsupported +8: "uge_zero" contains vectors which are unsupported 1: "sle_zero" 4: "sle_zero" has unsupported operation: builtin.unregistered: llvm.icmp diff --git a/SSA/Projects/InstCombine/tests/logs/icmp-with-selects.txt b/SSA/Projects/InstCombine/tests/logs/icmp-with-selects.txt index 342405b3f..2c2f70e08 100644 --- a/SSA/Projects/InstCombine/tests/logs/icmp-with-selects.txt +++ b/SSA/Projects/InstCombine/tests/logs/icmp-with-selects.txt @@ -2,66 +2,36 @@ 5: "use" is empty 1: "both_sides_fold_slt" -4: "both_sides_fold_slt" has unsupported operation after optimization: builtin.unregistered: llvm.select - -4: "both_sides_fold_slt" has unsupported operation after optimization: builtin.unregistered: llvm.select - 4: "both_sides_fold_slt" has unsupported operation after optimization: builtin.unregistered: llvm.icmp 1: "both_sides_fold_eq" -4: "both_sides_fold_eq" has unsupported operation after optimization: builtin.unregistered: llvm.select - -4: "both_sides_fold_eq" has unsupported operation after optimization: builtin.unregistered: llvm.select - 4: "both_sides_fold_eq" has unsupported operation after optimization: builtin.unregistered: llvm.icmp 1: "one_side_fold_slt" 4: "one_side_fold_slt" has unsupported operation: builtin.unregistered: llvm.icmp -4: "one_side_fold_slt" has unsupported operation: builtin.unregistered: llvm.select - 1: "one_side_fold_sgt" 4: "one_side_fold_sgt" has unsupported operation: builtin.unregistered: llvm.icmp -4: "one_side_fold_sgt" has unsupported operation: builtin.unregistered: llvm.select - 1: "one_side_fold_eq" 4: "one_side_fold_eq" has unsupported operation: builtin.unregistered: llvm.icmp -4: "one_side_fold_eq" has unsupported operation: builtin.unregistered: llvm.select - 1: "no_side_fold_cond" -4: "no_side_fold_cond" has unsupported operation: builtin.unregistered: llvm.select - -4: "no_side_fold_cond" has unsupported operation: builtin.unregistered: llvm.select - 4: "no_side_fold_cond" has unsupported operation: builtin.unregistered: llvm.icmp 1: "no_side_fold_op" -4: "no_side_fold_op" has unsupported operation: builtin.unregistered: llvm.select - -4: "no_side_fold_op" has unsupported operation: builtin.unregistered: llvm.select - 4: "no_side_fold_op" has unsupported operation: builtin.unregistered: llvm.icmp 1: "one_select_mult_use" 4: "one_select_mult_use" has unsupported operation: llvm.mlir.addressof -4: "one_select_mult_use" has unsupported operation: builtin.unregistered: llvm.select - 4: "one_select_mult_use" has unsupported operation: llvm.call 4: "one_select_mult_use" has unsupported operation: builtin.unregistered: llvm.icmp -4: "one_select_mult_use" has unsupported operation: builtin.unregistered: llvm.select - 1: "both_select_mult_use" 4: "both_select_mult_use" has unsupported operation: llvm.mlir.addressof -4: "both_select_mult_use" has unsupported operation: builtin.unregistered: llvm.select - -4: "both_select_mult_use" has unsupported operation: builtin.unregistered: llvm.select - 4: "both_select_mult_use" has unsupported operation: llvm.call 4: "both_select_mult_use" has unsupported operation: builtin.unregistered: llvm.icmp @@ -69,10 +39,6 @@ 1: "fold_vector_ops" 4: "fold_vector_ops" has unsupported operation: builtin.unregistered: llvm.icmp -4: "fold_vector_ops" has unsupported operation: builtin.unregistered: llvm.select - 1: "fold_vector_cond_ops" 4: "fold_vector_cond_ops" has unsupported operation: builtin.unregistered: llvm.icmp -4: "fold_vector_cond_ops" has unsupported operation: builtin.unregistered: llvm.select - diff --git a/SSA/Projects/InstCombine/tests/logs/icmp-xor-signbit.txt b/SSA/Projects/InstCombine/tests/logs/icmp-xor-signbit.txt index 1af5d129d..c88f1b877 100644 --- a/SSA/Projects/InstCombine/tests/logs/icmp-xor-signbit.txt +++ b/SSA/Projects/InstCombine/tests/logs/icmp-xor-signbit.txt @@ -54,7 +54,7 @@ 4: "sgt_to_ugt_bitcasted_splat" has unsupported operation: builtin.unregistered: llvm.icmp 1: "negative_simplify_splat" -"negative_simplify_splat" contains vectors which are unsupported +8: "negative_simplify_splat" contains vectors which are unsupported 1: "slt_zero_eq_i1" 4: "slt_zero_eq_i1" has unsupported operation: builtin.unregistered: llvm.icmp diff --git a/SSA/Projects/InstCombine/tests/logs/inselt-binop-inseltpoison.txt b/SSA/Projects/InstCombine/tests/logs/inselt-binop-inseltpoison.txt index 4fb44f751..02dbff23f 100644 --- a/SSA/Projects/InstCombine/tests/logs/inselt-binop-inseltpoison.txt +++ b/SSA/Projects/InstCombine/tests/logs/inselt-binop-inseltpoison.txt @@ -255,15 +255,11 @@ 4: "udiv_constant_op0" has unsupported operation: builtin.unregistered: llvm.insertelement -4: "udiv_constant_op0" has unsupported operation: llvm.udiv - 1: "udiv_constant_op0_not_undef_lane" 4: "udiv_constant_op0_not_undef_lane" has unsupported operation: builtin.unregistered: llvm.mlir.poison 4: "udiv_constant_op0_not_undef_lane" has unsupported operation: builtin.unregistered: llvm.insertelement -4: "udiv_constant_op0_not_undef_lane" has unsupported operation: llvm.udiv - 1: "udiv_constant_op1" 4: "udiv_constant_op1" has unsupported operation: builtin.unregistered: llvm.mlir.poison @@ -272,8 +268,6 @@ 4: "udiv_constant_op1_not_undef_lane" has unsupported operation: builtin.unregistered: llvm.insertelement -4: "udiv_constant_op1_not_undef_lane" has unsupported operation: llvm.udiv - 1: "sdiv_constant_op0" 4: "sdiv_constant_op0" has unsupported operation: builtin.unregistered: llvm.mlir.poison diff --git a/SSA/Projects/InstCombine/tests/logs/inselt-binop.txt b/SSA/Projects/InstCombine/tests/logs/inselt-binop.txt index 9ca1370f8..5825f99c2 100644 --- a/SSA/Projects/InstCombine/tests/logs/inselt-binop.txt +++ b/SSA/Projects/InstCombine/tests/logs/inselt-binop.txt @@ -447,8 +447,6 @@ 4: "udiv_constant_op0" has unsupported operation: builtin.unregistered: llvm.insertelement -4: "udiv_constant_op0" has unsupported operation: llvm.udiv - 1: "udiv_constant_op0_not_undef_lane" 4: "udiv_constant_op0_not_undef_lane" has unsupported operation: llvm.mlir.undef @@ -462,8 +460,6 @@ 4: "udiv_constant_op0_not_undef_lane" has unsupported operation: builtin.unregistered: llvm.insertelement -4: "udiv_constant_op0_not_undef_lane" has unsupported operation: llvm.udiv - 1: "udiv_constant_op1" 4: "udiv_constant_op1" has unsupported operation: builtin.unregistered: llvm.mlir.poison @@ -480,8 +476,6 @@ 4: "udiv_constant_op1_not_undef_lane" has unsupported operation: builtin.unregistered: llvm.insertelement -4: "udiv_constant_op1_not_undef_lane" has unsupported operation: llvm.udiv - 1: "sdiv_constant_op0" 4: "sdiv_constant_op0" has unsupported operation: llvm.mlir.undef diff --git a/SSA/Projects/InstCombine/tests/logs/insert-extract-shuffle-inseltpoison.txt b/SSA/Projects/InstCombine/tests/logs/insert-extract-shuffle-inseltpoison.txt index e306b8187..e698454d0 100644 --- a/SSA/Projects/InstCombine/tests/logs/insert-extract-shuffle-inseltpoison.txt +++ b/SSA/Projects/InstCombine/tests/logs/insert-extract-shuffle-inseltpoison.txt @@ -224,8 +224,6 @@ 4: "extractelt_insertion" has unsupported operation: builtin.unregistered: llvm.icmp -4: "extractelt_insertion" has unsupported operation: builtin.unregistered: llvm.select - 1: "collectShuffleElts" 4: "collectShuffleElts" has unsupported operation: builtin.unregistered: llvm.mlir.poison diff --git a/SSA/Projects/InstCombine/tests/logs/insert-extract-shuffle.txt b/SSA/Projects/InstCombine/tests/logs/insert-extract-shuffle.txt index 380841e5f..230bc7100 100644 --- a/SSA/Projects/InstCombine/tests/logs/insert-extract-shuffle.txt +++ b/SSA/Projects/InstCombine/tests/logs/insert-extract-shuffle.txt @@ -224,8 +224,6 @@ 4: "extractelt_insertion" has unsupported operation: builtin.unregistered: llvm.icmp -4: "extractelt_insertion" has unsupported operation: builtin.unregistered: llvm.select - 1: "collectShuffleElts" 4: "collectShuffleElts" has unsupported operation: builtin.unregistered: llvm.mlir.poison diff --git a/SSA/Projects/InstCombine/tests/logs/insertelement.txt b/SSA/Projects/InstCombine/tests/logs/insertelement.txt index 20be72014..1d2c7db32 100644 --- a/SSA/Projects/InstCombine/tests/logs/insertelement.txt +++ b/SSA/Projects/InstCombine/tests/logs/insertelement.txt @@ -17,7 +17,7 @@ 4: "insert_unknown_idx" has unsupported operation: builtin.unregistered: llvm.insertelement 1: "insert_known_any_idx" -"insert_known_any_idx" contains vectors which are unsupported +8: "insert_known_any_idx" contains vectors which are unsupported 1: "insert_known_any_idx_fail1" 4: "insert_known_any_idx_fail1" has unsupported operation: builtin.unregistered: llvm.insertelement diff --git a/SSA/Projects/InstCombine/tests/logs/integer-round-up-pow2-alignment.txt b/SSA/Projects/InstCombine/tests/logs/integer-round-up-pow2-alignment.txt index 0f0490893..d0001cc72 100644 --- a/SSA/Projects/InstCombine/tests/logs/integer-round-up-pow2-alignment.txt +++ b/SSA/Projects/InstCombine/tests/logs/integer-round-up-pow2-alignment.txt @@ -10,48 +10,38 @@ 1: "t0" 4: "t0" has unsupported operation after optimization: builtin.unregistered: llvm.icmp -4: "t0" has unsupported operation after optimization: builtin.unregistered: llvm.select - 1: "t1" 4: "t1" has unsupported operation after optimization: builtin.unregistered: llvm.icmp -4: "t1" has unsupported operation after optimization: builtin.unregistered: llvm.select - 1: "t2" 4: "t2" has unsupported operation after optimization: builtin.unregistered: llvm.icmp -4: "t2" has unsupported operation after optimization: builtin.unregistered: llvm.select - 1: "t3_commutative" 4: "t3_commutative" has unsupported operation: builtin.unregistered: llvm.icmp 4: "t3_commutative" has unsupported operation: llvm.call 1: "t4_splat" -"t4_splat" contains vectors which are unsupported +8: "t4_splat" contains vectors which are unsupported 1: "t5_splat_poison_0b0001" -"t5_splat_poison_0b0001" contains vectors which are unsupported +8: "t5_splat_poison_0b0001" contains vectors which are unsupported 1: "t5_splat_poison_0b0010" -"t5_splat_poison_0b0010" contains vectors which are unsupported +8: "t5_splat_poison_0b0010" contains vectors which are unsupported 1: "t5_splat_poison_0b0100" -"t5_splat_poison_0b0100" contains vectors which are unsupported +8: "t5_splat_poison_0b0100" contains vectors which are unsupported 1: "t5_splat_poison_0b1000" -"t5_splat_poison_0b1000" contains vectors which are unsupported +8: "t5_splat_poison_0b1000" contains vectors which are unsupported 1: "t6_nonsplat" 4: "t6_nonsplat" has unsupported operation: builtin.unregistered: llvm.icmp -4: "t6_nonsplat" has unsupported operation: builtin.unregistered: llvm.select - 1: "t7_nonsplat_bias" 4: "t7_nonsplat_bias" has unsupported operation: builtin.unregistered: llvm.icmp -4: "t7_nonsplat_bias" has unsupported operation: builtin.unregistered: llvm.select - 1: "t8_nonsplat_masked_by_poison_0b0001" 4: "t8_nonsplat_masked_by_poison_0b0001" has unsupported operation: builtin.unregistered: llvm.mlir.poison @@ -63,8 +53,6 @@ 4: "t8_nonsplat_masked_by_poison_0b0001" has unsupported operation: builtin.unregistered: llvm.icmp -4: "t8_nonsplat_masked_by_poison_0b0001" has unsupported operation: builtin.unregistered: llvm.select - 1: "t8_nonsplat_masked_by_poison_0b0010" 4: "t8_nonsplat_masked_by_poison_0b0010" has unsupported operation: builtin.unregistered: llvm.mlir.poison @@ -76,8 +64,6 @@ 4: "t8_nonsplat_masked_by_poison_0b0010" has unsupported operation: builtin.unregistered: llvm.icmp -4: "t8_nonsplat_masked_by_poison_0b0010" has unsupported operation: builtin.unregistered: llvm.select - 1: "t8_nonsplat_masked_by_poison_0b0100" 4: "t8_nonsplat_masked_by_poison_0b0100" has unsupported operation: builtin.unregistered: llvm.mlir.poison @@ -89,8 +75,6 @@ 4: "t8_nonsplat_masked_by_poison_0b0100" has unsupported operation: builtin.unregistered: llvm.icmp -4: "t8_nonsplat_masked_by_poison_0b0100" has unsupported operation: builtin.unregistered: llvm.select - 1: "t8_nonsplat_masked_by_poison_0b1000" 4: "t8_nonsplat_masked_by_poison_0b1000" has unsupported operation: builtin.unregistered: llvm.mlir.poison @@ -102,60 +86,38 @@ 4: "t8_nonsplat_masked_by_poison_0b1000" has unsupported operation: builtin.unregistered: llvm.icmp -4: "t8_nonsplat_masked_by_poison_0b1000" has unsupported operation: builtin.unregistered: llvm.select - 1: "n9_wrong_x0" 4: "n9_wrong_x0" has unsupported operation: builtin.unregistered: llvm.icmp -4: "n9_wrong_x0" has unsupported operation: builtin.unregistered: llvm.select - 1: "n9_wrong_x1" 4: "n9_wrong_x1" has unsupported operation: builtin.unregistered: llvm.icmp -4: "n9_wrong_x1" has unsupported operation: builtin.unregistered: llvm.select - 1: "n9_wrong_x2" 4: "n9_wrong_x2" has unsupported operation: builtin.unregistered: llvm.icmp -4: "n9_wrong_x2" has unsupported operation: builtin.unregistered: llvm.select - 1: "n10_wrong_low_bit_mask" 4: "n10_wrong_low_bit_mask" has unsupported operation: builtin.unregistered: llvm.icmp -4: "n10_wrong_low_bit_mask" has unsupported operation: builtin.unregistered: llvm.select - 1: "n11_wrong_high_bit_mask" 4: "n11_wrong_high_bit_mask" has unsupported operation: builtin.unregistered: llvm.icmp -4: "n11_wrong_high_bit_mask" has unsupported operation: builtin.unregistered: llvm.select - 1: "n12_wrong_bias" 4: "n12_wrong_bias" has unsupported operation: builtin.unregistered: llvm.icmp -4: "n12_wrong_bias" has unsupported operation: builtin.unregistered: llvm.select - 1: "n13_wrong_constants_alignment_is_not_power_of_two" 4: "n13_wrong_constants_alignment_is_not_power_of_two" has unsupported operation: builtin.unregistered: llvm.icmp -4: "n13_wrong_constants_alignment_is_not_power_of_two" has unsupported operation: builtin.unregistered: llvm.select - 1: "n14_wrong_comparison_constant" 4: "n14_wrong_comparison_constant" has unsupported operation: builtin.unregistered: llvm.icmp -4: "n14_wrong_comparison_constant" has unsupported operation: builtin.unregistered: llvm.select - 1: "n15_wrong_comparison_predicate_and_constant" 4: "n15_wrong_comparison_predicate_and_constant" has unsupported operation: builtin.unregistered: llvm.icmp -4: "n15_wrong_comparison_predicate_and_constant" has unsupported operation: builtin.unregistered: llvm.select - 1: "n16_oneuse" 4: "n16_oneuse" has unsupported operation: builtin.unregistered: llvm.icmp 4: "n16_oneuse" has unsupported operation: llvm.call -4: "n16_oneuse" has unsupported operation: builtin.unregistered: llvm.select - 1: "t17_oneuse" 4: "t17_oneuse" has unsupported operation: llvm.call @@ -172,8 +134,6 @@ 4: "t18_replacement_0b0001" has unsupported operation: llvm.call -4: "t18_replacement_0b0001" has unsupported operation: builtin.unregistered: llvm.select - 1: "t18_replacement_0b0010" 4: "t18_replacement_0b0010" has unsupported operation: builtin.unregistered: llvm.mlir.poison @@ -187,8 +147,6 @@ 4: "t18_replacement_0b0010" has unsupported operation: llvm.call -4: "t18_replacement_0b0010" has unsupported operation: builtin.unregistered: llvm.select - 1: "t18_replacement_0b0100" 4: "t18_replacement_0b0100" has unsupported operation: llvm.call diff --git a/SSA/Projects/InstCombine/tests/logs/intrinsic-select.txt b/SSA/Projects/InstCombine/tests/logs/intrinsic-select.txt index 9069b7e24..bd196b725 100644 --- a/SSA/Projects/InstCombine/tests/logs/intrinsic-select.txt +++ b/SSA/Projects/InstCombine/tests/logs/intrinsic-select.txt @@ -2,13 +2,11 @@ 5: "use" is empty 1: "ctlz_sel_const_true_false" -4: "ctlz_sel_const_true_false" has unsupported operation: builtin.unregistered: llvm.select +4: "ctlz_sel_const_true_false" has unsupported operation after optimization: builtin.unregistered: llvm.intr.ctlz 1: "ctlz_sel_const_true" 4: "ctlz_sel_const_true" has unsupported operation: builtin.unregistered: llvm.intr.ctlz -4: "ctlz_sel_const_true" has unsupported operation: builtin.unregistered: llvm.select - 1: "ctlz_sel_const_false" 4: "ctlz_sel_const_false" has unsupported operation: builtin.unregistered: llvm.mlir.poison @@ -22,75 +20,53 @@ 4: "ctlz_sel_const_false" has unsupported operation: builtin.unregistered: llvm.intr.ctlz -4: "ctlz_sel_const_false" has unsupported operation: builtin.unregistered: llvm.select - 1: "ctlz_sel_const_true_false_extra_use" -4: "ctlz_sel_const_true_false_extra_use" has unsupported operation: builtin.unregistered: llvm.select - 4: "ctlz_sel_const_true_false_extra_use" has unsupported operation: llvm.call 4: "ctlz_sel_const_true_false_extra_use" has unsupported operation: builtin.unregistered: llvm.intr.ctlz 1: "cttz_sel_const_true_false" -4: "cttz_sel_const_true_false" has unsupported operation: builtin.unregistered: llvm.select +4: "cttz_sel_const_true_false" has unsupported operation after optimization: builtin.unregistered: llvm.intr.cttz 1: "cttz_sel_const_true" 4: "cttz_sel_const_true" has unsupported operation: builtin.unregistered: llvm.intr.cttz -4: "cttz_sel_const_true" has unsupported operation: builtin.unregistered: llvm.select - 1: "cttz_sel_const_false" 4: "cttz_sel_const_false" has unsupported operation: builtin.unregistered: llvm.intr.cttz -4: "cttz_sel_const_false" has unsupported operation: builtin.unregistered: llvm.select - 1: "cttz_sel_const_true_false_extra_use" -4: "cttz_sel_const_true_false_extra_use" has unsupported operation: builtin.unregistered: llvm.select - 4: "cttz_sel_const_true_false_extra_use" has unsupported operation: llvm.call 4: "cttz_sel_const_true_false_extra_use" has unsupported operation: builtin.unregistered: llvm.intr.cttz 1: "ctpop_sel_const_true_false" -4: "ctpop_sel_const_true_false" has unsupported operation: builtin.unregistered: llvm.select +4: "ctpop_sel_const_true_false" has unsupported operation after optimization: builtin.unregistered: llvm.intr.ctpop 1: "ctpop_sel_const_true" 4: "ctpop_sel_const_true" has unsupported operation: builtin.unregistered: llvm.intr.ctpop -4: "ctpop_sel_const_true" has unsupported operation: builtin.unregistered: llvm.select - 1: "ctpop_sel_const_false" 4: "ctpop_sel_const_false" has unsupported operation: builtin.unregistered: llvm.intr.ctpop -4: "ctpop_sel_const_false" has unsupported operation: builtin.unregistered: llvm.select - 1: "ctpop_sel_const_true_false_extra_use" -4: "ctpop_sel_const_true_false_extra_use" has unsupported operation: builtin.unregistered: llvm.select - 4: "ctpop_sel_const_true_false_extra_use" has unsupported operation: llvm.call 4: "ctpop_sel_const_true_false_extra_use" has unsupported operation: builtin.unregistered: llvm.intr.ctpop 1: "usub_sat_rhs_const_select_all_const" -4: "usub_sat_rhs_const_select_all_const" has unsupported operation: builtin.unregistered: llvm.select +4: "usub_sat_rhs_const_select_all_const" has unsupported operation after optimization: builtin.unregistered: llvm.intr.usub.sat 1: "usub_sat_rhs_var_select_all_const" -4: "usub_sat_rhs_var_select_all_const" has unsupported operation: builtin.unregistered: llvm.select - 4: "usub_sat_rhs_var_select_all_const" has unsupported operation: builtin.unregistered: llvm.intr.usub.sat 1: "usub_sat_rhs_const_select_one_const" 4: "usub_sat_rhs_const_select_one_const" has unsupported operation: builtin.unregistered: llvm.intr.usub.sat -4: "usub_sat_rhs_const_select_one_const" has unsupported operation: builtin.unregistered: llvm.select - 1: "usub_sat_rhs_const_select_no_const" -4: "usub_sat_rhs_const_select_no_const" has unsupported operation: builtin.unregistered: llvm.select - 4: "usub_sat_rhs_const_select_no_const" has unsupported operation: builtin.unregistered: llvm.intr.usub.sat 1: "usub_sat_lhs_const_select_all_const" -4: "usub_sat_lhs_const_select_all_const" has unsupported operation: builtin.unregistered: llvm.select +4: "usub_sat_lhs_const_select_all_const" has unsupported operation after optimization: builtin.unregistered: llvm.intr.usub.sat 1: "non_speculatable" 4: "non_speculatable" has unsupported operation: llvm.mlir.addressof @@ -99,25 +75,17 @@ 4: "non_speculatable" has unsupported operation: builtin.unregistered: llvm.mlir.poison -4: "non_speculatable" has unsupported operation: builtin.unregistered: llvm.select - 4: "non_speculatable" has unsupported operation: builtin.unregistered: llvm.intr.masked.load 1: "vec_to_scalar_select_scalar" -4: "vec_to_scalar_select_scalar" has unsupported operation: builtin.unregistered: llvm.select - 4: "vec_to_scalar_select_scalar" has unsupported operation: builtin.unregistered: llvm.intr.vector.reduce.add 1: "vec_to_scalar_select_vector" -4: "vec_to_scalar_select_vector" has unsupported operation: builtin.unregistered: llvm.select - 4: "vec_to_scalar_select_vector" has unsupported operation: builtin.unregistered: llvm.intr.vector.reduce.add 1: "test_drop_noundef" 4: "test_drop_noundef" has unsupported operation: builtin.unregistered: llvm.intr.smin -4: "test_drop_noundef" has unsupported operation: builtin.unregistered: llvm.select - 1: "pr85536" 4: "pr85536" has unsupported operation: builtin.unregistered: llvm.icmp @@ -127,32 +95,20 @@ 4: "pr85536" has unsupported operation: builtin.unregistered: llvm.icmp -4: "pr85536" has unsupported operation: builtin.unregistered: llvm.select - 1: "test_fabs_select1" 4: "test_fabs_select1" has unsupported operation: builtin.unregistered: llvm.fcmp -4: "test_fabs_select1" has unsupported operation: builtin.unregistered: llvm.select - 1: "test_fabs_select1_vec" 4: "test_fabs_select1_vec" has unsupported operation: builtin.unregistered: llvm.fcmp -4: "test_fabs_select1_vec" has unsupported operation: builtin.unregistered: llvm.select - 1: "test_fabs_select2" 4: "test_fabs_select2" has unsupported operation: builtin.unregistered: llvm.intr.fabs 4: "test_fabs_select2" has unsupported operation: builtin.unregistered: llvm.fcmp -4: "test_fabs_select2" has unsupported operation: builtin.unregistered: llvm.select - 1: "test_fabs_select_fmf1" 4: "test_fabs_select_fmf1" has unsupported operation: builtin.unregistered: llvm.intr.fabs -4: "test_fabs_select_fmf1" has unsupported operation: builtin.unregistered: llvm.select - 1: "test_fabs_select_fmf2" 4: "test_fabs_select_fmf2" has unsupported operation: builtin.unregistered: llvm.intr.fabs -4: "test_fabs_select_fmf2" has unsupported operation: builtin.unregistered: llvm.select - diff --git a/SSA/Projects/InstCombine/tests/logs/invert-variable-mask-in-masked-merge-vector.txt b/SSA/Projects/InstCombine/tests/logs/invert-variable-mask-in-masked-merge-vector.txt index cc98eebdf..6f977c572 100644 --- a/SSA/Projects/InstCombine/tests/logs/invert-variable-mask-in-masked-merge-vector.txt +++ b/SSA/Projects/InstCombine/tests/logs/invert-variable-mask-in-masked-merge-vector.txt @@ -1,17 +1,17 @@ 1: "vector" -"vector" contains vectors which are unsupported +8: "vector" contains vectors which are unsupported 1: "vector_poison" -"vector_poison" contains vectors which are unsupported +8: "vector_poison" contains vectors which are unsupported 1: "in_constant_varx_mone_invmask" -"in_constant_varx_mone_invmask" contains vectors which are unsupported +8: "in_constant_varx_mone_invmask" contains vectors which are unsupported 1: "in_constant_varx_6_invmask" -"in_constant_varx_6_invmask" contains vectors which are unsupported +8: "in_constant_varx_6_invmask" contains vectors which are unsupported 1: "in_constant_varx_6_invmask_nonsplat" -"in_constant_varx_6_invmask_nonsplat" contains vectors which are unsupported +8: "in_constant_varx_6_invmask_nonsplat" contains vectors which are unsupported 1: "in_constant_varx_6_invmask_poison" 4: "in_constant_varx_6_invmask_poison" has unsupported operation: builtin.unregistered: llvm.mlir.poison @@ -25,13 +25,13 @@ 4: "in_constant_varx_6_invmask_poison" has unsupported operation: builtin.unregistered: llvm.insertelement 1: "in_constant_mone_vary_invmask" -"in_constant_mone_vary_invmask" contains vectors which are unsupported +8: "in_constant_mone_vary_invmask" contains vectors which are unsupported 1: "in_constant_6_vary_invmask" -"in_constant_6_vary_invmask" contains vectors which are unsupported +8: "in_constant_6_vary_invmask" contains vectors which are unsupported 1: "in_constant_6_vary_invmask_nonsplat" -"in_constant_6_vary_invmask_nonsplat" contains vectors which are unsupported +8: "in_constant_6_vary_invmask_nonsplat" contains vectors which are unsupported 1: "in_constant_6_vary_invmask_poison" 4: "in_constant_6_vary_invmask_poison" has unsupported operation: builtin.unregistered: llvm.mlir.poison @@ -48,10 +48,10 @@ 5: "gen4" is empty 1: "c_1_0_0" -"c_1_0_0" contains vectors which are unsupported +8: "c_1_0_0" contains vectors which are unsupported 1: "c_0_1_0" -"c_0_1_0" contains vectors which are unsupported +8: "c_0_1_0" contains vectors which are unsupported 1: "c_0_0_1" 4: "c_0_0_1" has unsupported operation: llvm.call @@ -59,7 +59,7 @@ 4: "c_0_0_1" has unsupported operation: llvm.call 1: "c_1_1_0" -"c_1_1_0" contains vectors which are unsupported +8: "c_1_1_0" contains vectors which are unsupported 1: "c_1_0_1" 4: "c_1_0_1" has unsupported operation: llvm.call @@ -73,10 +73,10 @@ 4: "c_1_1_1" has unsupported operation: llvm.call 1: "commutativity_constant_varx_6_invmask" -"commutativity_constant_varx_6_invmask" contains vectors which are unsupported +8: "commutativity_constant_varx_6_invmask" contains vectors which are unsupported 1: "commutativity_constant_6_vary_invmask" -"commutativity_constant_6_vary_invmask" contains vectors which are unsupported +8: "commutativity_constant_6_vary_invmask" contains vectors which are unsupported 1: "use4" 5: "use4" is empty diff --git a/SSA/Projects/InstCombine/tests/logs/ispow2.txt b/SSA/Projects/InstCombine/tests/logs/ispow2.txt index d030e8de7..0fbc110c6 100644 --- a/SSA/Projects/InstCombine/tests/logs/ispow2.txt +++ b/SSA/Projects/InstCombine/tests/logs/ispow2.txt @@ -162,8 +162,6 @@ 4: "is_pow2_ctpop_wrong_cmp_op1_logical" has unsupported operation: builtin.unregistered: llvm.icmp -4: "is_pow2_ctpop_wrong_cmp_op1_logical" has unsupported operation: builtin.unregistered: llvm.select - 1: "is_pow2_ctpop_wrong_cmp_op2" 4: "is_pow2_ctpop_wrong_cmp_op2" has unsupported operation: builtin.unregistered: llvm.intr.ctpop @@ -178,8 +176,6 @@ 4: "is_pow2_ctpop_wrong_cmp_op2_logical" has unsupported operation: builtin.unregistered: llvm.icmp -4: "is_pow2_ctpop_wrong_cmp_op2_logical" has unsupported operation: builtin.unregistered: llvm.select - 1: "is_pow2_ctpop_wrong_pred1" 4: "is_pow2_ctpop_wrong_pred1" has unsupported operation: builtin.unregistered: llvm.intr.ctpop @@ -204,8 +200,6 @@ 4: "is_pow2_ctpop_wrong_pred2_logical" has unsupported operation: builtin.unregistered: llvm.icmp -4: "is_pow2_ctpop_wrong_pred2_logical" has unsupported operation: builtin.unregistered: llvm.select - 1: "isnot_pow2_ctpop" 4: "isnot_pow2_ctpop" has unsupported operation: builtin.unregistered: llvm.intr.ctpop @@ -261,8 +255,6 @@ 4: "isnot_pow2_ctpop_wrong_cmp_op1_logical" has unsupported operation: builtin.unregistered: llvm.icmp -4: "isnot_pow2_ctpop_wrong_cmp_op1_logical" has unsupported operation: builtin.unregistered: llvm.select - 1: "isnot_pow2_ctpop_wrong_cmp_op2" 4: "isnot_pow2_ctpop_wrong_cmp_op2" has unsupported operation: builtin.unregistered: llvm.intr.ctpop @@ -277,8 +269,6 @@ 4: "isnot_pow2_ctpop_wrong_cmp_op2_logical" has unsupported operation: builtin.unregistered: llvm.icmp -4: "isnot_pow2_ctpop_wrong_cmp_op2_logical" has unsupported operation: builtin.unregistered: llvm.select - 1: "isnot_pow2_ctpop_wrong_pred2" 4: "isnot_pow2_ctpop_wrong_pred2" has unsupported operation: builtin.unregistered: llvm.intr.ctpop @@ -293,8 +283,6 @@ 4: "isnot_pow2_ctpop_wrong_pred2_logical" has unsupported operation: builtin.unregistered: llvm.icmp -4: "isnot_pow2_ctpop_wrong_pred2_logical" has unsupported operation: builtin.unregistered: llvm.select - 1: "is_pow2_negate_op" 4: "is_pow2_negate_op" has unsupported operation: builtin.unregistered: llvm.intr.ctpop @@ -419,8 +407,6 @@ 4: "is_pow2or0_ctpop_wrong_cmp_op1_logical" has unsupported operation: builtin.unregistered: llvm.icmp -4: "is_pow2or0_ctpop_wrong_cmp_op1_logical" has unsupported operation: builtin.unregistered: llvm.select - 1: "is_pow2or0_ctpop_commute_vec_wrong_cmp_op1" 4: "is_pow2or0_ctpop_commute_vec_wrong_cmp_op1" has unsupported operation: builtin.unregistered: llvm.intr.ctpop @@ -447,10 +433,8 @@ 4: "is_pow2or0_ctpop_wrong_pred2_logical" has unsupported operation after optimization: builtin.unregistered: llvm.icmp -4: "is_pow2or0_ctpop_wrong_pred2_logical" has unsupported operation after optimization: builtin.unregistered: llvm.select - 1: "is_pow2or0_ctpop_commute_vec_wrong_pred3" -"is_pow2or0_ctpop_commute_vec_wrong_pred3" contains vectors which are unsupported +8: "is_pow2or0_ctpop_commute_vec_wrong_pred3" contains vectors which are unsupported 1: "isnot_pow2nor0_ctpop" 4: "isnot_pow2nor0_ctpop" has unsupported operation: builtin.unregistered: llvm.intr.ctpop @@ -516,8 +500,6 @@ 4: "isnot_pow2nor0_ctpop_wrong_cmp_op1_logical" has unsupported operation: builtin.unregistered: llvm.icmp -4: "isnot_pow2nor0_ctpop_wrong_cmp_op1_logical" has unsupported operation: builtin.unregistered: llvm.select - 1: "isnot_pow2nor0_ctpop_commute_vec_wrong_cmp_op1" 4: "isnot_pow2nor0_ctpop_commute_vec_wrong_cmp_op1" has unsupported operation: builtin.unregistered: llvm.intr.ctpop @@ -544,10 +526,8 @@ 4: "isnot_pow2nor0_ctpop_wrong_pred2_logical" has unsupported operation after optimization: builtin.unregistered: llvm.icmp -4: "isnot_pow2nor0_ctpop_wrong_pred2_logical" has unsupported operation after optimization: builtin.unregistered: llvm.select - 1: "isnot_pow2nor0_wrong_pred3_ctpop_commute_vec" -"isnot_pow2nor0_wrong_pred3_ctpop_commute_vec" contains vectors which are unsupported +8: "isnot_pow2nor0_wrong_pred3_ctpop_commute_vec" contains vectors which are unsupported 1: "is_pow2_fail_pr63327" 4: "is_pow2_fail_pr63327" has unsupported operation: builtin.unregistered: llvm.icmp diff --git a/SSA/Projects/InstCombine/tests/logs/known-fpclass-reduce-signbit.txt b/SSA/Projects/InstCombine/tests/logs/known-fpclass-reduce-signbit.txt index 8f9d61c8b..246bcb920 100644 --- a/SSA/Projects/InstCombine/tests/logs/known-fpclass-reduce-signbit.txt +++ b/SSA/Projects/InstCombine/tests/logs/known-fpclass-reduce-signbit.txt @@ -1,5 +1,5 @@ 1: "vector_reduce_maximum_signbit" -"vector_reduce_maximum_signbit" contains vectors which are unsupported +8: "vector_reduce_maximum_signbit" contains vectors which are unsupported 1: "vector_reduce_maximum_signbit_fail_maybe_nan" 4: "vector_reduce_maximum_signbit_fail_maybe_nan" has unsupported operation: builtin.unregistered: llvm.intr.fabs @@ -9,7 +9,7 @@ 4: "vector_reduce_maximum_signbit_fail_maybe_nan" has unsupported operation: builtin.unregistered: llvm.fcmp 1: "vector_reduce_minimum_signbit" -"vector_reduce_minimum_signbit" contains vectors which are unsupported +8: "vector_reduce_minimum_signbit" contains vectors which are unsupported 1: "vector_reduce_minimum_signbit_fail_maybe_nan" 4: "vector_reduce_minimum_signbit_fail_maybe_nan" has unsupported operation: builtin.unregistered: llvm.intr.fabs @@ -19,7 +19,7 @@ 4: "vector_reduce_minimum_signbit_fail_maybe_nan" has unsupported operation: builtin.unregistered: llvm.fcmp 1: "vector_reduce_max_signbit" -"vector_reduce_max_signbit" contains vectors which are unsupported +8: "vector_reduce_max_signbit" contains vectors which are unsupported 1: "vector_reduce_max_signbit_fail_maybe_nan" 4: "vector_reduce_max_signbit_fail_maybe_nan" has unsupported operation: builtin.unregistered: llvm.intr.fabs @@ -29,7 +29,7 @@ 4: "vector_reduce_max_signbit_fail_maybe_nan" has unsupported operation: builtin.unregistered: llvm.fcmp 1: "vector_reduce_min_signbit" -"vector_reduce_min_signbit" contains vectors which are unsupported +8: "vector_reduce_min_signbit" contains vectors which are unsupported 1: "vector_reduce_min_signbit_fail_maybe_nan" 4: "vector_reduce_min_signbit_fail_maybe_nan" has unsupported operation: builtin.unregistered: llvm.intr.fabs @@ -39,5 +39,5 @@ 4: "vector_reduce_min_signbit_fail_maybe_nan" has unsupported operation: builtin.unregistered: llvm.fcmp 1: "vector_reduce_min_signbit_nnan_from_fmf" -"vector_reduce_min_signbit_nnan_from_fmf" contains vectors which are unsupported +8: "vector_reduce_min_signbit_nnan_from_fmf" contains vectors which are unsupported diff --git a/SSA/Projects/InstCombine/tests/logs/known-never-nan.txt b/SSA/Projects/InstCombine/tests/logs/known-never-nan.txt index d479b59a3..e38107b1a 100644 --- a/SSA/Projects/InstCombine/tests/logs/known-never-nan.txt +++ b/SSA/Projects/InstCombine/tests/logs/known-never-nan.txt @@ -4,15 +4,11 @@ 1: "select_maybe_nan_lhs" 4: "select_maybe_nan_lhs" has unsupported operation: builtin.unregistered: llvm.fadd -4: "select_maybe_nan_lhs" has unsupported operation: builtin.unregistered: llvm.select - 4: "select_maybe_nan_lhs" has unsupported operation: builtin.unregistered: llvm.fcmp 1: "select_maybe_nan_rhs" 4: "select_maybe_nan_rhs" has unsupported operation: builtin.unregistered: llvm.fadd -4: "select_maybe_nan_rhs" has unsupported operation: builtin.unregistered: llvm.select - 4: "select_maybe_nan_rhs" has unsupported operation: builtin.unregistered: llvm.fcmp 1: "nnan_fadd" diff --git a/SSA/Projects/InstCombine/tests/logs/load-bitcast-select.txt b/SSA/Projects/InstCombine/tests/logs/load-bitcast-select.txt index b7807d4c5..1affff6f9 100644 --- a/SSA/Projects/InstCombine/tests/logs/load-bitcast-select.txt +++ b/SSA/Projects/InstCombine/tests/logs/load-bitcast-select.txt @@ -23,20 +23,14 @@ 4: "_Z3foov" has unsupported operation: builtin.unregistered: llvm.fcmp -4: "_Z3foov" has unsupported operation: builtin.unregistered: llvm.select - 4: "_Z3foov" has unsupported operation: llvm.store 4: "_Z3foov" has unsupported operation: builtin.unregistered: llvm.br 1: "store_bitcasted_load" -4: "store_bitcasted_load" has unsupported operation: builtin.unregistered: llvm.select - 4: "store_bitcasted_load" has unsupported operation: llvm.load 1: "bitcasted_store" -4: "bitcasted_store" has unsupported operation: builtin.unregistered: llvm.select - 4: "bitcasted_store" has unsupported operation: llvm.load 4: "bitcasted_store" has unsupported operation: llvm.store @@ -50,8 +44,6 @@ 4: "bitcasted_minmax_with_select_of_pointers" has unsupported operation: builtin.unregistered: llvm.fcmp -4: "bitcasted_minmax_with_select_of_pointers" has unsupported operation: builtin.unregistered: llvm.select - 4: "bitcasted_minmax_with_select_of_pointers" has unsupported operation: llvm.store 4: "bitcasted_minmax_with_select_of_pointers" has unsupported operation: llvm.return diff --git a/SSA/Projects/InstCombine/tests/logs/load-select.txt b/SSA/Projects/InstCombine/tests/logs/load-select.txt index eddca0f8b..c72f4182f 100644 --- a/SSA/Projects/InstCombine/tests/logs/load-select.txt +++ b/SSA/Projects/InstCombine/tests/logs/load-select.txt @@ -1,5 +1,3 @@ 1: "b" 4: "b" has unsupported operation: builtin.unregistered: llvm.icmp -4: "b" has unsupported operation: builtin.unregistered: llvm.select - diff --git a/SSA/Projects/InstCombine/tests/logs/logical-select-inseltpoison.txt b/SSA/Projects/InstCombine/tests/logs/logical-select-inseltpoison.txt index 1ad008cef..fe2b6fabe 100644 --- a/SSA/Projects/InstCombine/tests/logs/logical-select-inseltpoison.txt +++ b/SSA/Projects/InstCombine/tests/logs/logical-select-inseltpoison.txt @@ -1,64 +1,38 @@ 1: "foo" 4: "foo" has unsupported operation: builtin.unregistered: llvm.icmp -4: "foo" has unsupported operation: builtin.unregistered: llvm.select - 1: "bar" 4: "bar" has unsupported operation: builtin.unregistered: llvm.icmp -4: "bar" has unsupported operation: builtin.unregistered: llvm.select - 1: "goo" 4: "goo" has unsupported operation: builtin.unregistered: llvm.icmp -4: "goo" has unsupported operation: builtin.unregistered: llvm.select - 1: "poo" 4: "poo" has unsupported operation: builtin.unregistered: llvm.icmp -4: "poo" has unsupported operation: builtin.unregistered: llvm.select - 1: "fold_inverted_icmp_preds" 4: "fold_inverted_icmp_preds" has unsupported operation: builtin.unregistered: llvm.icmp -4: "fold_inverted_icmp_preds" has unsupported operation: builtin.unregistered: llvm.select - 4: "fold_inverted_icmp_preds" has unsupported operation: builtin.unregistered: llvm.icmp -4: "fold_inverted_icmp_preds" has unsupported operation: builtin.unregistered: llvm.select - 1: "fold_inverted_icmp_preds_reverse" 4: "fold_inverted_icmp_preds_reverse" has unsupported operation: builtin.unregistered: llvm.icmp -4: "fold_inverted_icmp_preds_reverse" has unsupported operation: builtin.unregistered: llvm.select - 4: "fold_inverted_icmp_preds_reverse" has unsupported operation: builtin.unregistered: llvm.icmp -4: "fold_inverted_icmp_preds_reverse" has unsupported operation: builtin.unregistered: llvm.select - 1: "fold_inverted_fcmp_preds" 4: "fold_inverted_fcmp_preds" has unsupported operation: builtin.unregistered: llvm.fcmp -4: "fold_inverted_fcmp_preds" has unsupported operation: builtin.unregistered: llvm.select - 4: "fold_inverted_fcmp_preds" has unsupported operation: builtin.unregistered: llvm.fcmp -4: "fold_inverted_fcmp_preds" has unsupported operation: builtin.unregistered: llvm.select - 1: "fold_inverted_icmp_vector_preds" 4: "fold_inverted_icmp_vector_preds" has unsupported operation: builtin.unregistered: llvm.icmp -4: "fold_inverted_icmp_vector_preds" has unsupported operation: builtin.unregistered: llvm.select - 4: "fold_inverted_icmp_vector_preds" has unsupported operation: builtin.unregistered: llvm.icmp -4: "fold_inverted_icmp_vector_preds" has unsupported operation: builtin.unregistered: llvm.select - 1: "par" 4: "par" has unsupported operation: builtin.unregistered: llvm.icmp -4: "par" has unsupported operation: builtin.unregistered: llvm.select - 1: "bitcast_select_swap0" 4: "bitcast_select_swap0" has unsupported operation: builtin.unregistered: llvm.fptosi @@ -68,8 +42,6 @@ 4: "bitcast_select_swap0" has unsupported operation: builtin.unregistered: llvm.bitcast -4: "bitcast_select_swap0" has unsupported operation: builtin.unregistered: llvm.select - 4: "bitcast_select_swap0" has unsupported operation: builtin.unregistered: llvm.bitcast 1: "bitcast_select_swap1" @@ -81,8 +53,6 @@ 4: "bitcast_select_swap1" has unsupported operation: builtin.unregistered: llvm.bitcast -4: "bitcast_select_swap1" has unsupported operation: builtin.unregistered: llvm.select - 4: "bitcast_select_swap1" has unsupported operation: builtin.unregistered: llvm.bitcast 1: "bitcast_select_swap2" @@ -94,8 +64,6 @@ 4: "bitcast_select_swap2" has unsupported operation: builtin.unregistered: llvm.bitcast -4: "bitcast_select_swap2" has unsupported operation: builtin.unregistered: llvm.select - 4: "bitcast_select_swap2" has unsupported operation: builtin.unregistered: llvm.bitcast 1: "bitcast_select_swap3" @@ -107,8 +75,6 @@ 4: "bitcast_select_swap3" has unsupported operation: builtin.unregistered: llvm.bitcast -4: "bitcast_select_swap3" has unsupported operation: builtin.unregistered: llvm.select - 4: "bitcast_select_swap3" has unsupported operation: builtin.unregistered: llvm.bitcast 1: "bitcast_select_swap4" @@ -120,8 +86,6 @@ 4: "bitcast_select_swap4" has unsupported operation: builtin.unregistered: llvm.bitcast -4: "bitcast_select_swap4" has unsupported operation: builtin.unregistered: llvm.select - 4: "bitcast_select_swap4" has unsupported operation: builtin.unregistered: llvm.bitcast 1: "bitcast_select_swap5" @@ -133,8 +97,6 @@ 4: "bitcast_select_swap5" has unsupported operation: builtin.unregistered: llvm.bitcast -4: "bitcast_select_swap5" has unsupported operation: builtin.unregistered: llvm.select - 4: "bitcast_select_swap5" has unsupported operation: builtin.unregistered: llvm.bitcast 1: "bitcast_select_swap6" @@ -146,8 +108,6 @@ 4: "bitcast_select_swap6" has unsupported operation: builtin.unregistered: llvm.bitcast -4: "bitcast_select_swap6" has unsupported operation: builtin.unregistered: llvm.select - 4: "bitcast_select_swap6" has unsupported operation: builtin.unregistered: llvm.bitcast 1: "bitcast_select_swap7" @@ -159,8 +119,6 @@ 4: "bitcast_select_swap7" has unsupported operation: builtin.unregistered: llvm.bitcast -4: "bitcast_select_swap7" has unsupported operation: builtin.unregistered: llvm.select - 4: "bitcast_select_swap7" has unsupported operation: builtin.unregistered: llvm.bitcast 1: "bitcast_select_multi_uses" @@ -171,41 +129,76 @@ 4: "bitcast_select_multi_uses" has unsupported operation: builtin.unregistered: llvm.bitcast 1: "bools" -4: "bools" has unsupported operation: builtin.unregistered: llvm.select +2: llvm.func +2: llvm.mlir.constant +2: llvm.xor +2: llvm.and +2: llvm.and +2: llvm.or +2: llvm.return 1: "bools_logical" -4: "bools_logical" has unsupported operation: builtin.unregistered: llvm.select +2: llvm.func +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.xor +2: builtin.unregistered: llvm.select +2: builtin.unregistered: llvm.select +2: builtin.unregistered: llvm.select +2: llvm.return 1: "bools_multi_uses1" -4: "bools_multi_uses1" has unsupported operation: builtin.unregistered: llvm.select +2: llvm.func +2: llvm.mlir.constant +2: llvm.xor +2: llvm.and +2: llvm.and +2: llvm.or +2: llvm.xor +2: llvm.return 1: "bools_multi_uses1_logical" -4: "bools_multi_uses1_logical" has unsupported operation: builtin.unregistered: llvm.select - -4: "bools_multi_uses1_logical" has unsupported operation: builtin.unregistered: llvm.select +2: llvm.func +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.xor +2: builtin.unregistered: llvm.select +2: builtin.unregistered: llvm.select +2: builtin.unregistered: llvm.select +2: llvm.xor +2: llvm.return 1: "bools_multi_uses2" -4: "bools_multi_uses2" has unsupported operation: builtin.unregistered: llvm.select +2: llvm.func +2: llvm.mlir.constant +2: llvm.xor +2: llvm.and +2: llvm.and +2: llvm.or +2: llvm.add +2: llvm.and +2: llvm.return 1: "bools_multi_uses2_logical" -4: "bools_multi_uses2_logical" has unsupported operation: builtin.unregistered: llvm.select - -4: "bools_multi_uses2_logical" has unsupported operation: builtin.unregistered: llvm.select - -4: "bools_multi_uses2_logical" has unsupported operation: builtin.unregistered: llvm.select - -4: "bools_multi_uses2_logical" has unsupported operation: builtin.unregistered: llvm.select +2: llvm.func +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.xor +2: builtin.unregistered: llvm.select +2: builtin.unregistered: llvm.select +2: builtin.unregistered: llvm.select +2: llvm.add +2: builtin.unregistered: llvm.select +2: llvm.return 1: "vec_of_bools" -4: "vec_of_bools" has unsupported operation: builtin.unregistered: llvm.select +8: "vec_of_bools" contains vectors which are unsupported 1: "vec_of_casted_bools" 4: "vec_of_casted_bools" has unsupported operation: builtin.unregistered: llvm.bitcast 4: "vec_of_casted_bools" has unsupported operation: builtin.unregistered: llvm.bitcast -4: "vec_of_casted_bools" has unsupported operation: builtin.unregistered: llvm.select - 4: "vec_of_casted_bools" has unsupported operation: builtin.unregistered: llvm.bitcast 1: "vec_sel_consts" @@ -241,31 +234,21 @@ 4: "vec_not_sel_consts_undef_elts" has unsupported operation: builtin.unregistered: llvm.insertelement 1: "vec_sel_xor" -4: "vec_sel_xor" has unsupported operation: builtin.unregistered: llvm.select +8: "vec_sel_xor" contains vectors which are unsupported 1: "vec_sel_xor_multi_use" 4: "vec_sel_xor_multi_use" has unsupported operation: builtin.unregistered: llvm.sext -4: "vec_sel_xor_multi_use" has unsupported operation: builtin.unregistered: llvm.select - 1: "allSignBits" 4: "allSignBits" has unsupported operation: builtin.unregistered: llvm.icmp -4: "allSignBits" has unsupported operation: builtin.unregistered: llvm.select - 4: "allSignBits" has unsupported operation: builtin.unregistered: llvm.icmp -4: "allSignBits" has unsupported operation: builtin.unregistered: llvm.select - 1: "allSignBits_vec" 4: "allSignBits_vec" has unsupported operation: builtin.unregistered: llvm.icmp -4: "allSignBits_vec" has unsupported operation: builtin.unregistered: llvm.select - 4: "allSignBits_vec" has unsupported operation: builtin.unregistered: llvm.icmp -4: "allSignBits_vec" has unsupported operation: builtin.unregistered: llvm.select - 1: "fp_bitcast" 4: "fp_bitcast" has unsupported operation: builtin.unregistered: llvm.fptosi @@ -292,12 +275,8 @@ 4: "computesignbits_through_shuffles" has unsupported operation: builtin.unregistered: llvm.trunc -4: "computesignbits_through_shuffles" has unsupported operation: builtin.unregistered: llvm.select - 4: "computesignbits_through_shuffles" has unsupported operation: builtin.unregistered: llvm.bitcast 1: "computesignbits_through_two_input_shuffle" 4: "computesignbits_through_two_input_shuffle" has unsupported operation: builtin.unregistered: llvm.shufflevector -4: "computesignbits_through_two_input_shuffle" has unsupported operation: builtin.unregistered: llvm.select - diff --git a/SSA/Projects/InstCombine/tests/logs/low-bit-splat.txt b/SSA/Projects/InstCombine/tests/logs/low-bit-splat.txt index 0f427178f..36511f47e 100644 --- a/SSA/Projects/InstCombine/tests/logs/low-bit-splat.txt +++ b/SSA/Projects/InstCombine/tests/logs/low-bit-splat.txt @@ -16,7 +16,7 @@ 2: llvm.return 1: "t2_vec" -"t2_vec" contains vectors which are unsupported +8: "t2_vec" contains vectors which are unsupported 1: "t3_vec_poison0" 4: "t3_vec_poison0" has unsupported operation: llvm.mlir.undef diff --git a/SSA/Projects/InstCombine/tests/logs/lshr.txt b/SSA/Projects/InstCombine/tests/logs/lshr.txt index 7a89cc6da..b801e1603 100644 --- a/SSA/Projects/InstCombine/tests/logs/lshr.txt +++ b/SSA/Projects/InstCombine/tests/logs/lshr.txt @@ -41,16 +41,16 @@ 4: "lshr_cttz_zero_is_undef" has unsupported operation after optimization: builtin.unregistered: llvm.intr.cttz 1: "lshr_ctlz_zero_is_undef_splat_vec" -"lshr_ctlz_zero_is_undef_splat_vec" contains vectors which are unsupported +8: "lshr_ctlz_zero_is_undef_splat_vec" contains vectors which are unsupported 1: "lshr_ctlz_zero_is_undef_vec" -"lshr_ctlz_zero_is_undef_vec" contains vectors which are unsupported +8: "lshr_ctlz_zero_is_undef_vec" contains vectors which are unsupported 1: "lshr_cttz_zero_is_undef_splat_vec" -"lshr_cttz_zero_is_undef_splat_vec" contains vectors which are unsupported +8: "lshr_cttz_zero_is_undef_splat_vec" contains vectors which are unsupported 1: "lshr_cttz_zero_is_undef_vec" -"lshr_cttz_zero_is_undef_vec" contains vectors which are unsupported +8: "lshr_cttz_zero_is_undef_vec" contains vectors which are unsupported 1: "lshr_exact" 2: llvm.func @@ -62,10 +62,10 @@ 2: llvm.return 1: "lshr_exact_splat_vec" -"lshr_exact_splat_vec" contains vectors which are unsupported +8: "lshr_exact_splat_vec" contains vectors which are unsupported 1: "lshr_exact_splat_vec_nuw" -"lshr_exact_splat_vec_nuw" contains vectors which are unsupported +8: "lshr_exact_splat_vec_nuw" contains vectors which are unsupported 1: "shl_add" 2: llvm.func @@ -76,7 +76,7 @@ 2: llvm.return 1: "shl_add_commute_vec" -"shl_add_commute_vec" contains vectors which are unsupported +8: "shl_add_commute_vec" contains vectors which are unsupported 1: "shl_add_use1" 4: "shl_add_use1" has unsupported operation: llvm.call @@ -306,7 +306,7 @@ 2: llvm.return 1: "negative_and_odd_vec" -"negative_and_odd_vec" contains vectors which are unsupported +8: "negative_and_odd_vec" contains vectors which are unsupported 1: "negative_and_odd_uses" 4: "negative_and_odd_uses" has unsupported operation: llvm.store @@ -378,25 +378,21 @@ 4: "trunc_sandwich_big_sum_shift2_use1" has unsupported operation: llvm.call 1: "lshr_sext_i1_to_i16" -4: "lshr_sext_i1_to_i16" has unsupported operation: builtin.unregistered: llvm.select +4: "lshr_sext_i1_to_i16" has unsupported operation after optimization: builtin.unregistered: llvm.sext 1: "lshr_sext_i1_to_i128" -4: "lshr_sext_i1_to_i128" has unsupported operation: builtin.unregistered: llvm.select +4: "lshr_sext_i1_to_i128" has unsupported operation after optimization: builtin.unregistered: llvm.sext 1: "lshr_sext_i1_to_i32_use" 4: "lshr_sext_i1_to_i32_use" has unsupported operation: builtin.unregistered: llvm.sext 4: "lshr_sext_i1_to_i32_use" has unsupported operation: llvm.call -4: "lshr_sext_i1_to_i32_use" has unsupported operation: builtin.unregistered: llvm.select - 1: "lshr_sext_i1_to_i14_splat_vec_use1" 4: "lshr_sext_i1_to_i14_splat_vec_use1" has unsupported operation: builtin.unregistered: llvm.sext 4: "lshr_sext_i1_to_i14_splat_vec_use1" has unsupported operation: llvm.call -4: "lshr_sext_i1_to_i14_splat_vec_use1" has unsupported operation: builtin.unregistered: llvm.select - 1: "icmp_ule" 4: "icmp_ule" has unsupported operation after optimization: builtin.unregistered: llvm.icmp diff --git a/SSA/Projects/InstCombine/tests/logs/masked-merge-add.txt b/SSA/Projects/InstCombine/tests/logs/masked-merge-add.txt index e348d6095..6ac17ec15 100644 --- a/SSA/Projects/InstCombine/tests/logs/masked-merge-add.txt +++ b/SSA/Projects/InstCombine/tests/logs/masked-merge-add.txt @@ -8,7 +8,7 @@ 2: llvm.return 1: "p_splatvec" -"p_splatvec" contains vectors which are unsupported +8: "p_splatvec" contains vectors which are unsupported 1: "p_vec_undef" 4: "p_vec_undef" has unsupported operation: llvm.mlir.undef @@ -42,7 +42,7 @@ 2: llvm.return 1: "p_constmask_splatvec" -"p_constmask_splatvec" contains vectors which are unsupported +8: "p_constmask_splatvec" contains vectors which are unsupported 1: "p_constmask_vec" 7: "p_constmask_vec" is unchanged by InstCombine @@ -76,7 +76,7 @@ 2: llvm.return 1: "p_constmask2_splatvec" -"p_constmask2_splatvec" contains vectors which are unsupported +8: "p_constmask2_splatvec" contains vectors which are unsupported 1: "p_constmask2_vec" 7: "p_constmask2_vec" is unchanged by InstCombine diff --git a/SSA/Projects/InstCombine/tests/logs/masked-merge-and-of-ors.txt b/SSA/Projects/InstCombine/tests/logs/masked-merge-and-of-ors.txt index a0bc1bc16..23c7ec80f 100644 --- a/SSA/Projects/InstCombine/tests/logs/masked-merge-and-of-ors.txt +++ b/SSA/Projects/InstCombine/tests/logs/masked-merge-and-of-ors.txt @@ -8,7 +8,7 @@ 2: llvm.return 1: "p_splatvec" -"p_splatvec" contains vectors which are unsupported +8: "p_splatvec" contains vectors which are unsupported 1: "p_vec_undef" 4: "p_vec_undef" has unsupported operation: llvm.mlir.undef diff --git a/SSA/Projects/InstCombine/tests/logs/masked-merge-or.txt b/SSA/Projects/InstCombine/tests/logs/masked-merge-or.txt index 269c496b2..1323d0ad3 100644 --- a/SSA/Projects/InstCombine/tests/logs/masked-merge-or.txt +++ b/SSA/Projects/InstCombine/tests/logs/masked-merge-or.txt @@ -8,7 +8,7 @@ 2: llvm.return 1: "p_splatvec" -"p_splatvec" contains vectors which are unsupported +8: "p_splatvec" contains vectors which are unsupported 1: "p_vec_undef" 4: "p_vec_undef" has unsupported operation: llvm.mlir.undef diff --git a/SSA/Projects/InstCombine/tests/logs/masked-merge-xor.txt b/SSA/Projects/InstCombine/tests/logs/masked-merge-xor.txt index 2b88d82fe..f2a798811 100644 --- a/SSA/Projects/InstCombine/tests/logs/masked-merge-xor.txt +++ b/SSA/Projects/InstCombine/tests/logs/masked-merge-xor.txt @@ -8,7 +8,7 @@ 2: llvm.return 1: "p_splatvec" -"p_splatvec" contains vectors which are unsupported +8: "p_splatvec" contains vectors which are unsupported 1: "p_vec_undef" 4: "p_vec_undef" has unsupported operation: llvm.mlir.undef @@ -42,7 +42,7 @@ 2: llvm.return 1: "p_constmask_splatvec" -"p_constmask_splatvec" contains vectors which are unsupported +8: "p_constmask_splatvec" contains vectors which are unsupported 1: "p_constmask_vec" 7: "p_constmask_vec" is unchanged by InstCombine @@ -76,7 +76,7 @@ 2: llvm.return 1: "p_constmask2_splatvec" -"p_constmask2_splatvec" contains vectors which are unsupported +8: "p_constmask2_splatvec" contains vectors which are unsupported 1: "p_constmask2_vec" 7: "p_constmask2_vec" is unchanged by InstCombine diff --git a/SSA/Projects/InstCombine/tests/logs/max-of-nots.txt b/SSA/Projects/InstCombine/tests/logs/max-of-nots.txt index dd86d2b83..17223f007 100644 --- a/SSA/Projects/InstCombine/tests/logs/max-of-nots.txt +++ b/SSA/Projects/InstCombine/tests/logs/max-of-nots.txt @@ -89,41 +89,25 @@ 1: "max_of_min" 4: "max_of_min" has unsupported operation after optimization: builtin.unregistered: llvm.icmp -4: "max_of_min" has unsupported operation after optimization: builtin.unregistered: llvm.select - 4: "max_of_min" has unsupported operation after optimization: builtin.unregistered: llvm.icmp -4: "max_of_min" has unsupported operation after optimization: builtin.unregistered: llvm.select - 1: "max_of_min_swap" 4: "max_of_min_swap" has unsupported operation after optimization: builtin.unregistered: llvm.icmp -4: "max_of_min_swap" has unsupported operation after optimization: builtin.unregistered: llvm.select - 4: "max_of_min_swap" has unsupported operation after optimization: builtin.unregistered: llvm.icmp -4: "max_of_min_swap" has unsupported operation after optimization: builtin.unregistered: llvm.select - 1: "min_of_max" 4: "min_of_max" has unsupported operation after optimization: builtin.unregistered: llvm.icmp -4: "min_of_max" has unsupported operation after optimization: builtin.unregistered: llvm.select - 4: "min_of_max" has unsupported operation after optimization: builtin.unregistered: llvm.icmp -4: "min_of_max" has unsupported operation after optimization: builtin.unregistered: llvm.select - 1: "min_of_max_swap" 4: "min_of_max_swap" has unsupported operation after optimization: builtin.unregistered: llvm.icmp -4: "min_of_max_swap" has unsupported operation after optimization: builtin.unregistered: llvm.select - 4: "min_of_max_swap" has unsupported operation after optimization: builtin.unregistered: llvm.icmp -4: "min_of_max_swap" has unsupported operation after optimization: builtin.unregistered: llvm.select - 1: "max_of_min_vec" -"max_of_min_vec" contains vectors which are unsupported +8: "max_of_min_vec" contains vectors which are unsupported 1: "use" 5: "use" is empty diff --git a/SSA/Projects/InstCombine/tests/logs/max_known_bits.txt b/SSA/Projects/InstCombine/tests/logs/max_known_bits.txt index 1e9fdd359..eb28aac99 100644 --- a/SSA/Projects/InstCombine/tests/logs/max_known_bits.txt +++ b/SSA/Projects/InstCombine/tests/logs/max_known_bits.txt @@ -3,8 +3,6 @@ 4: "foo" has unsupported operation after optimization: builtin.unregistered: llvm.icmp -4: "foo" has unsupported operation after optimization: builtin.unregistered: llvm.select - 4: "foo" has unsupported operation after optimization: builtin.unregistered: llvm.trunc 1: "min_max_clamp" diff --git a/SSA/Projects/InstCombine/tests/logs/maximum.txt b/SSA/Projects/InstCombine/tests/logs/maximum.txt index 4d6d11944..239084a8c 100644 --- a/SSA/Projects/InstCombine/tests/logs/maximum.txt +++ b/SSA/Projects/InstCombine/tests/logs/maximum.txt @@ -26,7 +26,7 @@ 4: "constant_fold_maximum_f32_n0_n0" has unsupported operation after optimization: builtin.unregistered: llvm.intr.maximum 1: "constant_fold_maximum_v4f32" -"constant_fold_maximum_v4f32" contains vectors which are unsupported +8: "constant_fold_maximum_v4f32" contains vectors which are unsupported 1: "constant_fold_maximum_f64" 4: "constant_fold_maximum_f64" has unsupported operation after optimization: builtin.unregistered: llvm.intr.maximum diff --git a/SSA/Projects/InstCombine/tests/logs/maxnum.txt b/SSA/Projects/InstCombine/tests/logs/maxnum.txt index 14bd52e6a..5149701c1 100644 --- a/SSA/Projects/InstCombine/tests/logs/maxnum.txt +++ b/SSA/Projects/InstCombine/tests/logs/maxnum.txt @@ -26,7 +26,7 @@ 4: "constant_fold_maxnum_f32_n0_n0" has unsupported operation after optimization: builtin.unregistered: llvm.intr.maxnum 1: "constant_fold_maxnum_v4f32" -"constant_fold_maxnum_v4f32" contains vectors which are unsupported +8: "constant_fold_maxnum_v4f32" contains vectors which are unsupported 1: "constant_fold_maxnum_f64" 4: "constant_fold_maxnum_f64" has unsupported operation after optimization: builtin.unregistered: llvm.intr.maxnum diff --git a/SSA/Projects/InstCombine/tests/logs/memchr-11.txt b/SSA/Projects/InstCombine/tests/logs/memchr-11.txt index 5d2dcfdbd..8aebfe2be 100644 --- a/SSA/Projects/InstCombine/tests/logs/memchr-11.txt +++ b/SSA/Projects/InstCombine/tests/logs/memchr-11.txt @@ -13,8 +13,6 @@ 4: "fold_memchr_a_c_n_eq_a" has unsupported operation: builtin.unregistered: llvm.icmp -4: "fold_memchr_a_c_n_eq_a" has unsupported operation: builtin.unregistered: llvm.select - 1: "call_memchr_api_c_n_eq_a" 4: "call_memchr_api_c_n_eq_a" has unsupported operation: llvm.mlir.addressof diff --git a/SSA/Projects/InstCombine/tests/logs/memchr-2.txt b/SSA/Projects/InstCombine/tests/logs/memchr-2.txt index a16ab1e65..8f403538c 100644 --- a/SSA/Projects/InstCombine/tests/logs/memchr-2.txt +++ b/SSA/Projects/InstCombine/tests/logs/memchr-2.txt @@ -34,8 +34,6 @@ 4: "fold_a12345_3_n" has unsupported operation: builtin.unregistered: llvm.icmp -4: "fold_a12345_3_n" has unsupported operation: builtin.unregistered: llvm.select - 1: "fold_a12345_259_n" 4: "fold_a12345_259_n" has unsupported operation: llvm.mlir.zero @@ -45,8 +43,6 @@ 4: "fold_a12345_259_n" has unsupported operation: builtin.unregistered: llvm.icmp -4: "fold_a12345_259_n" has unsupported operation: builtin.unregistered: llvm.select - 1: "call_ax_1_n" 4: "call_ax_1_n" has unsupported operation: llvm.mlir.addressof diff --git a/SSA/Projects/InstCombine/tests/logs/memchr-3.txt b/SSA/Projects/InstCombine/tests/logs/memchr-3.txt index 9cea67b40..309e7b43a 100644 --- a/SSA/Projects/InstCombine/tests/logs/memchr-3.txt +++ b/SSA/Projects/InstCombine/tests/logs/memchr-3.txt @@ -16,8 +16,6 @@ 4: "fold_memchr_ax_257_1" has unsupported operation: builtin.unregistered: llvm.icmp -4: "fold_memchr_ax_257_1" has unsupported operation: builtin.unregistered: llvm.select - 1: "fold_memchr_ax_c_1" 4: "fold_memchr_ax_c_1" has unsupported operation: llvm.mlir.addressof @@ -29,5 +27,3 @@ 4: "fold_memchr_ax_c_1" has unsupported operation: builtin.unregistered: llvm.icmp -4: "fold_memchr_ax_c_1" has unsupported operation: builtin.unregistered: llvm.select - diff --git a/SSA/Projects/InstCombine/tests/logs/memchr-6.txt b/SSA/Projects/InstCombine/tests/logs/memchr-6.txt index 0f22d3a29..9f4cd9451 100644 --- a/SSA/Projects/InstCombine/tests/logs/memchr-6.txt +++ b/SSA/Projects/InstCombine/tests/logs/memchr-6.txt @@ -15,8 +15,6 @@ 4: "fold_memchr_a11111_c_5" has unsupported operation: builtin.unregistered: llvm.icmp -4: "fold_memchr_a11111_c_5" has unsupported operation: builtin.unregistered: llvm.select - 1: "fold_memchr_a11111_c_n" 4: "fold_memchr_a11111_c_n" has unsupported operation: llvm.mlir.addressof @@ -28,8 +26,6 @@ 4: "fold_memchr_a11111_c_n" has unsupported operation: builtin.unregistered: llvm.icmp -4: "fold_memchr_a11111_c_n" has unsupported operation: builtin.unregistered: llvm.select - 1: "fold_memchr_a111122_c_n" 4: "fold_memchr_a111122_c_n" has unsupported operation: llvm.mlir.addressof @@ -43,14 +39,10 @@ 4: "fold_memchr_a111122_c_n" has unsupported operation: builtin.unregistered: llvm.icmp -4: "fold_memchr_a111122_c_n" has unsupported operation: builtin.unregistered: llvm.select - 4: "fold_memchr_a111122_c_n" has unsupported operation: builtin.unregistered: llvm.icmp 4: "fold_memchr_a111122_c_n" has unsupported operation: builtin.unregistered: llvm.icmp -4: "fold_memchr_a111122_c_n" has unsupported operation: builtin.unregistered: llvm.select - 1: "fold_memchr_a1110111_c_3" 4: "fold_memchr_a1110111_c_3" has unsupported operation: llvm.mlir.addressof @@ -60,8 +52,6 @@ 4: "fold_memchr_a1110111_c_3" has unsupported operation: builtin.unregistered: llvm.icmp -4: "fold_memchr_a1110111_c_3" has unsupported operation: builtin.unregistered: llvm.select - 1: "call_memchr_a1110111_c_4" 4: "call_memchr_a1110111_c_4" has unsupported operation: llvm.mlir.addressof @@ -73,12 +63,8 @@ 4: "call_memchr_a1110111_c_4" has unsupported operation: builtin.unregistered: llvm.icmp -4: "call_memchr_a1110111_c_4" has unsupported operation: builtin.unregistered: llvm.select - 4: "call_memchr_a1110111_c_4" has unsupported operation: builtin.unregistered: llvm.icmp -4: "call_memchr_a1110111_c_4" has unsupported operation: builtin.unregistered: llvm.select - 1: "call_memchr_a1110111_c_7" 4: "call_memchr_a1110111_c_7" has unsupported operation: llvm.mlir.addressof diff --git a/SSA/Projects/InstCombine/tests/logs/memchr-7.txt b/SSA/Projects/InstCombine/tests/logs/memchr-7.txt index eec0a6d3b..fa9400e16 100644 --- a/SSA/Projects/InstCombine/tests/logs/memchr-7.txt +++ b/SSA/Projects/InstCombine/tests/logs/memchr-7.txt @@ -46,12 +46,8 @@ 4: "memchr_no_zero_cmp2" has unsupported operation: builtin.unregistered: llvm.icmp -4: "memchr_no_zero_cmp2" has unsupported operation: builtin.unregistered: llvm.select - 4: "memchr_no_zero_cmp2" has unsupported operation: builtin.unregistered: llvm.icmp -4: "memchr_no_zero_cmp2" has unsupported operation: builtin.unregistered: llvm.select - 1: "memchr_n_equals_len_minsize" 4: "memchr_n_equals_len_minsize" has unsupported operation: llvm.mlir.addressof diff --git a/SSA/Projects/InstCombine/tests/logs/memchr.txt b/SSA/Projects/InstCombine/tests/logs/memchr.txt index 2032b4b32..8d2c01aea 100644 --- a/SSA/Projects/InstCombine/tests/logs/memchr.txt +++ b/SSA/Projects/InstCombine/tests/logs/memchr.txt @@ -112,8 +112,6 @@ 4: "test11" has unsupported operation: builtin.unregistered: llvm.icmp -4: "test11" has unsupported operation: builtin.unregistered: llvm.select - 1: "test12" 4: "test12" has unsupported operation: llvm.mlir.addressof diff --git a/SSA/Projects/InstCombine/tests/logs/memrchr-3.txt b/SSA/Projects/InstCombine/tests/logs/memrchr-3.txt index 94f8ff599..f4a565f15 100644 --- a/SSA/Projects/InstCombine/tests/logs/memrchr-3.txt +++ b/SSA/Projects/InstCombine/tests/logs/memrchr-3.txt @@ -30,8 +30,6 @@ 4: "fold_memrchr_ax_c_1" has unsupported operation: builtin.unregistered: llvm.icmp -4: "fold_memrchr_ax_c_1" has unsupported operation: builtin.unregistered: llvm.select - 1: "fold_memrchr_a12345_5_5" 4: "fold_memrchr_a12345_5_5" has unsupported operation: llvm.mlir.addressof @@ -70,8 +68,6 @@ 4: "fold_memrchr_a12345_3_n" has unsupported operation: builtin.unregistered: llvm.icmp -4: "fold_memrchr_a12345_3_n" has unsupported operation: builtin.unregistered: llvm.select - 1: "fold_memrchr_a12345_5_n" 4: "fold_memrchr_a12345_5_n" has unsupported operation: llvm.mlir.zero @@ -81,8 +77,6 @@ 4: "fold_memrchr_a12345_5_n" has unsupported operation: builtin.unregistered: llvm.icmp -4: "fold_memrchr_a12345_5_n" has unsupported operation: builtin.unregistered: llvm.select - 1: "fold_memrchr_a123123_3_5" 4: "fold_memrchr_a123123_3_5" has unsupported operation: llvm.mlir.addressof diff --git a/SSA/Projects/InstCombine/tests/logs/memrchr-4.txt b/SSA/Projects/InstCombine/tests/logs/memrchr-4.txt index 5496c2a5c..5c8b3eedb 100644 --- a/SSA/Projects/InstCombine/tests/logs/memrchr-4.txt +++ b/SSA/Projects/InstCombine/tests/logs/memrchr-4.txt @@ -12,8 +12,6 @@ 4: "fold_memrchr_a11111_c_5" has unsupported operation: builtin.unregistered: llvm.icmp -4: "fold_memrchr_a11111_c_5" has unsupported operation: builtin.unregistered: llvm.select - 1: "fold_memrchr_a11111_c_n" 4: "fold_memrchr_a11111_c_n" has unsupported operation: llvm.mlir.addressof @@ -25,14 +23,10 @@ 4: "fold_memrchr_a11111_c_n" has unsupported operation: builtin.unregistered: llvm.icmp -4: "fold_memrchr_a11111_c_n" has unsupported operation: builtin.unregistered: llvm.select - 4: "fold_memrchr_a11111_c_n" has unsupported operation: llvm.getelementptr 4: "fold_memrchr_a11111_c_n" has unsupported operation: llvm.getelementptr -4: "fold_memrchr_a11111_c_n" has unsupported operation: builtin.unregistered: llvm.select - 1: "fold_memrchr_a1110111_c_3" 4: "fold_memrchr_a1110111_c_3" has unsupported operation: llvm.mlir.addressof @@ -44,8 +38,6 @@ 4: "fold_memrchr_a1110111_c_3" has unsupported operation: builtin.unregistered: llvm.icmp -4: "fold_memrchr_a1110111_c_3" has unsupported operation: builtin.unregistered: llvm.select - 1: "call_memrchr_a1110111_c_4" 4: "call_memrchr_a1110111_c_4" has unsupported operation: llvm.mlir.addressof diff --git a/SSA/Projects/InstCombine/tests/logs/memset-1.txt b/SSA/Projects/InstCombine/tests/logs/memset-1.txt index bde0527e2..68a2ac767 100644 --- a/SSA/Projects/InstCombine/tests/logs/memset-1.txt +++ b/SSA/Projects/InstCombine/tests/logs/memset-1.txt @@ -53,23 +53,15 @@ 4: "buffer_is_modified_then_memset" has unsupported operation: builtin.unregistered: llvm.intr.memset 1: "memset_size_select" -4: "memset_size_select" has unsupported operation: builtin.unregistered: llvm.select - 4: "memset_size_select" has unsupported operation: builtin.unregistered: llvm.intr.memset 1: "memset_size_select2" -4: "memset_size_select2" has unsupported operation: builtin.unregistered: llvm.select - 4: "memset_size_select2" has unsupported operation: builtin.unregistered: llvm.intr.memset 1: "memset_size_select3" -4: "memset_size_select3" has unsupported operation: builtin.unregistered: llvm.select - 4: "memset_size_select3" has unsupported operation: builtin.unregistered: llvm.intr.memset 1: "memset_size_select4" -4: "memset_size_select4" has unsupported operation: builtin.unregistered: llvm.select - 4: "memset_size_select4" has unsupported operation: builtin.unregistered: llvm.intr.memset 1: "memset_size_ashr" diff --git a/SSA/Projects/InstCombine/tests/logs/minimum.txt b/SSA/Projects/InstCombine/tests/logs/minimum.txt index f7cf53149..68d5cb061 100644 --- a/SSA/Projects/InstCombine/tests/logs/minimum.txt +++ b/SSA/Projects/InstCombine/tests/logs/minimum.txt @@ -26,7 +26,7 @@ 4: "constant_fold_minimum_f32_n0_n0" has unsupported operation after optimization: builtin.unregistered: llvm.intr.minimum 1: "constant_fold_minimum_v4f32" -"constant_fold_minimum_v4f32" contains vectors which are unsupported +8: "constant_fold_minimum_v4f32" contains vectors which are unsupported 1: "constant_fold_minimum_f64" 4: "constant_fold_minimum_f64" has unsupported operation after optimization: builtin.unregistered: llvm.intr.minimum diff --git a/SSA/Projects/InstCombine/tests/logs/minmax-demandbits.txt b/SSA/Projects/InstCombine/tests/logs/minmax-demandbits.txt index 65bceefdd..4272d275e 100644 --- a/SSA/Projects/InstCombine/tests/logs/minmax-demandbits.txt +++ b/SSA/Projects/InstCombine/tests/logs/minmax-demandbits.txt @@ -1,51 +1,33 @@ 1: "and_umax_less" 4: "and_umax_less" has unsupported operation after optimization: builtin.unregistered: llvm.icmp -4: "and_umax_less" has unsupported operation after optimization: builtin.unregistered: llvm.select - 1: "and_umax_muchless" 4: "and_umax_muchless" has unsupported operation after optimization: builtin.unregistered: llvm.icmp -4: "and_umax_muchless" has unsupported operation after optimization: builtin.unregistered: llvm.select - 1: "and_umax_more" 4: "and_umax_more" has unsupported operation: builtin.unregistered: llvm.intr.umax 1: "shr_umax" 4: "shr_umax" has unsupported operation after optimization: builtin.unregistered: llvm.icmp -4: "shr_umax" has unsupported operation after optimization: builtin.unregistered: llvm.select - 1: "t_0_1" 4: "t_0_1" has unsupported operation after optimization: builtin.unregistered: llvm.icmp -4: "t_0_1" has unsupported operation after optimization: builtin.unregistered: llvm.select - 1: "t_0_10" 4: "t_0_10" has unsupported operation after optimization: builtin.unregistered: llvm.icmp -4: "t_0_10" has unsupported operation after optimization: builtin.unregistered: llvm.select - 1: "t_1_10" 4: "t_1_10" has unsupported operation after optimization: builtin.unregistered: llvm.icmp -4: "t_1_10" has unsupported operation after optimization: builtin.unregistered: llvm.select - 1: "t_2_4" 4: "t_2_4" has unsupported operation after optimization: builtin.unregistered: llvm.icmp -4: "t_2_4" has unsupported operation after optimization: builtin.unregistered: llvm.select - 1: "t_2_192" 4: "t_2_192" has unsupported operation after optimization: builtin.unregistered: llvm.icmp -4: "t_2_192" has unsupported operation after optimization: builtin.unregistered: llvm.select - 1: "t_2_63_or" 4: "t_2_63_or" has unsupported operation after optimization: builtin.unregistered: llvm.icmp -4: "t_2_63_or" has unsupported operation after optimization: builtin.unregistered: llvm.select - 1: "f_1_1" 4: "f_1_1" has unsupported operation: builtin.unregistered: llvm.intr.umax @@ -61,28 +43,18 @@ 1: "and_umin" 4: "and_umin" has unsupported operation after optimization: builtin.unregistered: llvm.icmp -4: "and_umin" has unsupported operation after optimization: builtin.unregistered: llvm.select - 1: "or_umin" 4: "or_umin" has unsupported operation after optimization: builtin.unregistered: llvm.icmp -4: "or_umin" has unsupported operation after optimization: builtin.unregistered: llvm.select - 1: "or_min_31_30" 4: "or_min_31_30" has unsupported operation after optimization: builtin.unregistered: llvm.icmp -4: "or_min_31_30" has unsupported operation after optimization: builtin.unregistered: llvm.select - 1: "and_min_7_7" 4: "and_min_7_7" has unsupported operation after optimization: builtin.unregistered: llvm.icmp -4: "and_min_7_7" has unsupported operation after optimization: builtin.unregistered: llvm.select - 1: "and_min_7_8" 4: "and_min_7_8" has unsupported operation after optimization: builtin.unregistered: llvm.icmp -4: "and_min_7_8" has unsupported operation after optimization: builtin.unregistered: llvm.select - 1: "and_min_7_9" 4: "and_min_7_9" has unsupported operation: builtin.unregistered: llvm.intr.umin diff --git a/SSA/Projects/InstCombine/tests/logs/minmax-fold.txt b/SSA/Projects/InstCombine/tests/logs/minmax-fold.txt index 72208ef53..d6ef0c593 100644 --- a/SSA/Projects/InstCombine/tests/logs/minmax-fold.txt +++ b/SSA/Projects/InstCombine/tests/logs/minmax-fold.txt @@ -42,8 +42,6 @@ 4: "t8" has unsupported operation: builtin.unregistered: llvm.icmp -4: "t8" has unsupported operation: builtin.unregistered: llvm.select - 4: "t8" has unsupported operation: builtin.unregistered: llvm.zext 1: "t9" @@ -51,8 +49,6 @@ 4: "t9" has unsupported operation: builtin.unregistered: llvm.sext -4: "t9" has unsupported operation: builtin.unregistered: llvm.select - 1: "t10" 4: "t10" has unsupported operation: builtin.unregistered: llvm.intr.smax @@ -70,8 +66,6 @@ 4: "bitcasts_fcmp_1" has unsupported operation: builtin.unregistered: llvm.fcmp -4: "bitcasts_fcmp_1" has unsupported operation: builtin.unregistered: llvm.select - 4: "bitcasts_fcmp_1" has unsupported operation: builtin.unregistered: llvm.bitcast 1: "bitcasts_fcmp_2" @@ -81,8 +75,6 @@ 4: "bitcasts_fcmp_2" has unsupported operation: builtin.unregistered: llvm.fcmp -4: "bitcasts_fcmp_2" has unsupported operation: builtin.unregistered: llvm.select - 4: "bitcasts_fcmp_2" has unsupported operation: builtin.unregistered: llvm.bitcast 1: "bitcasts_icmp" @@ -227,8 +219,6 @@ 4: "bitcast_scalar_umax" has unsupported operation: builtin.unregistered: llvm.icmp -4: "bitcast_scalar_umax" has unsupported operation: builtin.unregistered: llvm.select - 1: "bitcast_vector_smin" 4: "bitcast_vector_smin" has unsupported operation: builtin.unregistered: llvm.bitcast @@ -245,8 +235,6 @@ 4: "bitcast_vector_umin" has unsupported operation: builtin.unregistered: llvm.icmp -4: "bitcast_vector_umin" has unsupported operation: builtin.unregistered: llvm.select - 1: "look_through_cast1" 4: "look_through_cast1" has unsupported operation: builtin.unregistered: llvm.intr.smin @@ -257,8 +245,6 @@ 4: "look_through_cast2" has unsupported operation: builtin.unregistered: llvm.trunc -4: "look_through_cast2" has unsupported operation: builtin.unregistered: llvm.select - 1: "min_through_cast_vec1" 4: "min_through_cast_vec1" has unsupported operation: builtin.unregistered: llvm.intr.smin @@ -320,34 +306,22 @@ 1: "not_min_of_min" 4: "not_min_of_min" has unsupported operation: builtin.unregistered: llvm.fcmp -4: "not_min_of_min" has unsupported operation: builtin.unregistered: llvm.select - 4: "not_min_of_min" has unsupported operation: builtin.unregistered: llvm.fcmp -4: "not_min_of_min" has unsupported operation: builtin.unregistered: llvm.select - 4: "not_min_of_min" has unsupported operation: builtin.unregistered: llvm.icmp -4: "not_min_of_min" has unsupported operation: builtin.unregistered: llvm.select - 1: "add_umin" 4: "add_umin" has unsupported operation: builtin.unregistered: llvm.intr.umin 1: "add_umin_constant_limit" 4: "add_umin_constant_limit" has unsupported operation: builtin.unregistered: llvm.icmp -4: "add_umin_constant_limit" has unsupported operation: builtin.unregistered: llvm.select - 1: "add_umin_simplify" 4: "add_umin_simplify" has unsupported operation after optimization: builtin.unregistered: llvm.icmp -4: "add_umin_simplify" has unsupported operation after optimization: builtin.unregistered: llvm.select - 1: "add_umin_simplify2" 4: "add_umin_simplify2" has unsupported operation after optimization: builtin.unregistered: llvm.icmp -4: "add_umin_simplify2" has unsupported operation after optimization: builtin.unregistered: llvm.select - 1: "add_umin_wrong_pred" 4: "add_umin_wrong_pred" has unsupported operation: builtin.unregistered: llvm.intr.smin @@ -371,13 +345,9 @@ 1: "add_umax_simplify" 4: "add_umax_simplify" has unsupported operation after optimization: builtin.unregistered: llvm.icmp -4: "add_umax_simplify" has unsupported operation after optimization: builtin.unregistered: llvm.select - 1: "add_umax_simplify2" 4: "add_umax_simplify2" has unsupported operation after optimization: builtin.unregistered: llvm.icmp -4: "add_umax_simplify2" has unsupported operation after optimization: builtin.unregistered: llvm.select - 1: "add_umax_wrong_pred" 4: "add_umax_wrong_pred" has unsupported operation: builtin.unregistered: llvm.intr.smax @@ -407,13 +377,9 @@ 1: "add_smin_simplify" 4: "add_smin_simplify" has unsupported operation after optimization: builtin.unregistered: llvm.icmp -4: "add_smin_simplify" has unsupported operation after optimization: builtin.unregistered: llvm.select - 1: "add_smin_simplify2" 4: "add_smin_simplify2" has unsupported operation after optimization: builtin.unregistered: llvm.icmp -4: "add_smin_simplify2" has unsupported operation after optimization: builtin.unregistered: llvm.select - 1: "add_smin_wrong_pred" 4: "add_smin_wrong_pred" has unsupported operation: builtin.unregistered: llvm.intr.umin @@ -437,13 +403,9 @@ 1: "add_smax_simplify" 4: "add_smax_simplify" has unsupported operation after optimization: builtin.unregistered: llvm.icmp -4: "add_smax_simplify" has unsupported operation after optimization: builtin.unregistered: llvm.select - 1: "add_smax_simplify2" 4: "add_smax_simplify2" has unsupported operation after optimization: builtin.unregistered: llvm.icmp -4: "add_smax_simplify2" has unsupported operation after optimization: builtin.unregistered: llvm.select - 1: "add_smax_wrong_pred" 4: "add_smax_wrong_pred" has unsupported operation: builtin.unregistered: llvm.intr.umax @@ -481,15 +443,11 @@ 4: "PR46271" has unsupported operation: builtin.unregistered: llvm.icmp -4: "PR46271" has unsupported operation: builtin.unregistered: llvm.select - 4: "PR46271" has unsupported operation: builtin.unregistered: llvm.extractelement 1: "twoway_clamp_lt" 4: "twoway_clamp_lt" has unsupported operation: builtin.unregistered: llvm.icmp -4: "twoway_clamp_lt" has unsupported operation: builtin.unregistered: llvm.select - 1: "twoway_clamp_gt" 4: "twoway_clamp_gt" has unsupported operation: builtin.unregistered: llvm.intr.smax diff --git a/SSA/Projects/InstCombine/tests/logs/minmax-fp.txt b/SSA/Projects/InstCombine/tests/logs/minmax-fp.txt index 643f42148..be3b8b1dd 100644 --- a/SSA/Projects/InstCombine/tests/logs/minmax-fp.txt +++ b/SSA/Projects/InstCombine/tests/logs/minmax-fp.txt @@ -1,22 +1,16 @@ 1: "t1" 4: "t1" has unsupported operation: builtin.unregistered: llvm.fcmp -4: "t1" has unsupported operation: builtin.unregistered: llvm.select - 4: "t1" has unsupported operation: builtin.unregistered: llvm.fpext 1: "t2" 4: "t2" has unsupported operation: builtin.unregistered: llvm.fcmp -4: "t2" has unsupported operation: builtin.unregistered: llvm.select - 4: "t2" has unsupported operation: builtin.unregistered: llvm.fpext 1: "t4" 4: "t4" has unsupported operation: builtin.unregistered: llvm.fcmp -4: "t4" has unsupported operation: builtin.unregistered: llvm.select - 4: "t4" has unsupported operation: builtin.unregistered: llvm.fptrunc 1: "t5" @@ -24,18 +18,12 @@ 4: "t5" has unsupported operation: builtin.unregistered: llvm.fpext -4: "t5" has unsupported operation: builtin.unregistered: llvm.select - 1: "not_maxnum" 4: "not_maxnum" has unsupported operation: builtin.unregistered: llvm.fcmp -4: "not_maxnum" has unsupported operation: builtin.unregistered: llvm.select - 1: "t6" 4: "t6" has unsupported operation: builtin.unregistered: llvm.fcmp -4: "t6" has unsupported operation: builtin.unregistered: llvm.select - 4: "t6" has unsupported operation: builtin.unregistered: llvm.fpext 1: "t7" @@ -43,44 +31,30 @@ 4: "t7" has unsupported operation: builtin.unregistered: llvm.fpext -4: "t7" has unsupported operation: builtin.unregistered: llvm.select - 1: "fmin_fmin_zero_mismatch" 4: "fmin_fmin_zero_mismatch" has unsupported operation: builtin.unregistered: llvm.fcmp -4: "fmin_fmin_zero_mismatch" has unsupported operation: builtin.unregistered: llvm.select - 1: "fmax_fmax_zero_mismatch" 4: "fmax_fmax_zero_mismatch" has unsupported operation: builtin.unregistered: llvm.fcmp -4: "fmax_fmax_zero_mismatch" has unsupported operation: builtin.unregistered: llvm.select - 1: "t8" 4: "t8" has unsupported operation: builtin.unregistered: llvm.fcmp -4: "t8" has unsupported operation: builtin.unregistered: llvm.select - 4: "t8" has unsupported operation: builtin.unregistered: llvm.fptoui 1: "t9" 4: "t9" has unsupported operation: builtin.unregistered: llvm.fcmp -4: "t9" has unsupported operation: builtin.unregistered: llvm.select - 4: "t9" has unsupported operation: builtin.unregistered: llvm.fptosi 1: "t11" 4: "t11" has unsupported operation: builtin.unregistered: llvm.fcmp -4: "t11" has unsupported operation: builtin.unregistered: llvm.select - 4: "t11" has unsupported operation: builtin.unregistered: llvm.fptosi 1: "t12" 4: "t12" has unsupported operation: builtin.unregistered: llvm.fcmp -4: "t12" has unsupported operation: builtin.unregistered: llvm.select - 4: "t12" has unsupported operation: builtin.unregistered: llvm.fptosi 1: "t13" @@ -88,27 +62,19 @@ 4: "t13" has unsupported operation: builtin.unregistered: llvm.fptosi -4: "t13" has unsupported operation: builtin.unregistered: llvm.select - 1: "t14" 4: "t14" has unsupported operation: builtin.unregistered: llvm.fcmp -4: "t14" has unsupported operation: builtin.unregistered: llvm.select - 4: "t14" has unsupported operation: builtin.unregistered: llvm.fptosi 1: "t14_commute" 4: "t14_commute" has unsupported operation: builtin.unregistered: llvm.fcmp -4: "t14_commute" has unsupported operation: builtin.unregistered: llvm.select - 4: "t14_commute" has unsupported operation: builtin.unregistered: llvm.fptosi 1: "t15" 4: "t15" has unsupported operation: builtin.unregistered: llvm.fcmp -4: "t15" has unsupported operation: builtin.unregistered: llvm.select - 4: "t15" has unsupported operation: builtin.unregistered: llvm.fptosi 1: "t16" @@ -116,8 +82,6 @@ 4: "t16" has unsupported operation: builtin.unregistered: llvm.sitofp -4: "t16" has unsupported operation: builtin.unregistered: llvm.select - 1: "t17" 4: "t17" has unsupported operation: builtin.unregistered: llvm.intr.smax @@ -126,29 +90,21 @@ 1: "fneg_fmax" 4: "fneg_fmax" has unsupported operation: builtin.unregistered: llvm.fcmp -4: "fneg_fmax" has unsupported operation: builtin.unregistered: llvm.select - 4: "fneg_fmax" has unsupported operation: builtin.unregistered: llvm.fneg 1: "fsub_fmax" 4: "fsub_fmax" has unsupported operation: builtin.unregistered: llvm.fcmp -4: "fsub_fmax" has unsupported operation: builtin.unregistered: llvm.select - 4: "fsub_fmax" has unsupported operation: builtin.unregistered: llvm.fneg 1: "fsub_fmin" 4: "fsub_fmin" has unsupported operation: builtin.unregistered: llvm.fcmp -4: "fsub_fmin" has unsupported operation: builtin.unregistered: llvm.select - 4: "fsub_fmin" has unsupported operation: builtin.unregistered: llvm.fneg 1: "fneg_fmin" 4: "fneg_fmin" has unsupported operation: builtin.unregistered: llvm.fcmp -4: "fneg_fmin" has unsupported operation: builtin.unregistered: llvm.select - 4: "fneg_fmin" has unsupported operation: builtin.unregistered: llvm.fneg 1: "maxnum_ogt_fmf_on_select" @@ -160,23 +116,15 @@ 1: "maxnum_ogt_fmf_on_fcmp" 4: "maxnum_ogt_fmf_on_fcmp" has unsupported operation: builtin.unregistered: llvm.fcmp -4: "maxnum_ogt_fmf_on_fcmp" has unsupported operation: builtin.unregistered: llvm.select - 1: "maxnum_oge_fmf_on_fcmp" 4: "maxnum_oge_fmf_on_fcmp" has unsupported operation: builtin.unregistered: llvm.fcmp -4: "maxnum_oge_fmf_on_fcmp" has unsupported operation: builtin.unregistered: llvm.select - 1: "maxnum_no_nsz" 4: "maxnum_no_nsz" has unsupported operation: builtin.unregistered: llvm.fcmp -4: "maxnum_no_nsz" has unsupported operation: builtin.unregistered: llvm.select - 1: "maxnum_no_nnan" 4: "maxnum_no_nnan" has unsupported operation: builtin.unregistered: llvm.fcmp -4: "maxnum_no_nnan" has unsupported operation: builtin.unregistered: llvm.select - 1: "minnum_olt_fmf_on_select" 4: "minnum_olt_fmf_on_select" has unsupported operation: builtin.unregistered: llvm.intr.minnum @@ -186,27 +134,17 @@ 1: "minnum_olt_fmf_on_fcmp" 4: "minnum_olt_fmf_on_fcmp" has unsupported operation: builtin.unregistered: llvm.fcmp -4: "minnum_olt_fmf_on_fcmp" has unsupported operation: builtin.unregistered: llvm.select - 1: "minnum_ole_fmf_on_fcmp" 4: "minnum_ole_fmf_on_fcmp" has unsupported operation: builtin.unregistered: llvm.fcmp -4: "minnum_ole_fmf_on_fcmp" has unsupported operation: builtin.unregistered: llvm.select - 1: "minnum_no_nsz" 4: "minnum_no_nsz" has unsupported operation: builtin.unregistered: llvm.fcmp -4: "minnum_no_nsz" has unsupported operation: builtin.unregistered: llvm.select - 1: "minnum_no_nnan" 4: "minnum_no_nnan" has unsupported operation: builtin.unregistered: llvm.fcmp -4: "minnum_no_nnan" has unsupported operation: builtin.unregistered: llvm.select - 1: "pr64937_preserve_min_idiom" 4: "pr64937_preserve_min_idiom" has unsupported operation: builtin.unregistered: llvm.fcmp -4: "pr64937_preserve_min_idiom" has unsupported operation: builtin.unregistered: llvm.select - 4: "pr64937_preserve_min_idiom" has unsupported operation: builtin.unregistered: llvm.fmul diff --git a/SSA/Projects/InstCombine/tests/logs/minmax-intrinsics.txt b/SSA/Projects/InstCombine/tests/logs/minmax-intrinsics.txt index c3b5aae55..6470072a4 100644 --- a/SSA/Projects/InstCombine/tests/logs/minmax-intrinsics.txt +++ b/SSA/Projects/InstCombine/tests/logs/minmax-intrinsics.txt @@ -300,23 +300,15 @@ 1: "clamp_two_vals_smax_smin" 4: "clamp_two_vals_smax_smin" has unsupported operation: builtin.unregistered: llvm.icmp -4: "clamp_two_vals_smax_smin" has unsupported operation: builtin.unregistered: llvm.select - 1: "clamp_two_vals_smin_smax" 4: "clamp_two_vals_smin_smax" has unsupported operation: builtin.unregistered: llvm.icmp -4: "clamp_two_vals_smin_smax" has unsupported operation: builtin.unregistered: llvm.select - 1: "clamp_two_vals_umax_umin" 4: "clamp_two_vals_umax_umin" has unsupported operation: builtin.unregistered: llvm.icmp -4: "clamp_two_vals_umax_umin" has unsupported operation: builtin.unregistered: llvm.select - 1: "clamp_two_vals_umin_umax" 4: "clamp_two_vals_umin_umax" has unsupported operation: builtin.unregistered: llvm.icmp -4: "clamp_two_vals_umin_umax" has unsupported operation: builtin.unregistered: llvm.select - 1: "clamp_two_vals_smax_umin" 4: "clamp_two_vals_smax_umin" has unsupported operation: builtin.unregistered: llvm.intr.smax @@ -811,8 +803,6 @@ 1: "umin_offset" 4: "umin_offset" has unsupported operation: builtin.unregistered: llvm.icmp -4: "umin_offset" has unsupported operation: builtin.unregistered: llvm.select - 1: "umin_offset_limit" 4: "umin_offset_limit" has unsupported operation after optimization: builtin.unregistered: llvm.intr.umin @@ -1033,13 +1023,13 @@ 4: "fold_umax_with_knownbits_info" has unsupported operation after optimization: builtin.unregistered: llvm.intr.umax 1: "fold_umax_with_knownbits_info_poison_in_splat" -"fold_umax_with_knownbits_info_poison_in_splat" contains vectors which are unsupported +8: "fold_umax_with_knownbits_info_poison_in_splat" contains vectors which are unsupported 1: "fold_umin_with_knownbits_info" 4: "fold_umin_with_knownbits_info" has unsupported operation after optimization: builtin.unregistered: llvm.intr.umin 1: "fold_umin_with_knownbits_info_poison_in_splat" -"fold_umin_with_knownbits_info_poison_in_splat" contains vectors which are unsupported +8: "fold_umin_with_knownbits_info_poison_in_splat" contains vectors which are unsupported 1: "fold_umax_with_knownbits_info_fail" 4: "fold_umax_with_knownbits_info_fail" has unsupported operation: builtin.unregistered: llvm.intr.umax diff --git a/SSA/Projects/InstCombine/tests/logs/minmax-of-xor-x.txt b/SSA/Projects/InstCombine/tests/logs/minmax-of-xor-x.txt index 5d4dd0613..c60d10550 100644 --- a/SSA/Projects/InstCombine/tests/logs/minmax-of-xor-x.txt +++ b/SSA/Projects/InstCombine/tests/logs/minmax-of-xor-x.txt @@ -2,7 +2,7 @@ 5: "barrier" is empty 1: "umax_xor_Cpow2" -"umax_xor_Cpow2" contains vectors which are unsupported +8: "umax_xor_Cpow2" contains vectors which are unsupported 1: "umin_xor_Cpow2" 4: "umin_xor_Cpow2" has unsupported operation after optimization: builtin.unregistered: llvm.intr.umin @@ -11,10 +11,10 @@ 4: "smax_xor_Cpow2_pos" has unsupported operation after optimization: builtin.unregistered: llvm.intr.smax 1: "smin_xor_Cpow2_pos" -"smin_xor_Cpow2_pos" contains vectors which are unsupported +8: "smin_xor_Cpow2_pos" contains vectors which are unsupported 1: "smax_xor_Cpow2_neg" -"smax_xor_Cpow2_neg" contains vectors which are unsupported +8: "smax_xor_Cpow2_neg" contains vectors which are unsupported 1: "smin_xor_Cpow2_neg" 4: "smin_xor_Cpow2_neg" has unsupported operation after optimization: builtin.unregistered: llvm.intr.smin @@ -23,7 +23,7 @@ 4: "umax_xor_pow2" has unsupported operation after optimization: builtin.unregistered: llvm.intr.umax 1: "umin_xor_pow2" -"umin_xor_pow2" contains vectors which are unsupported +8: "umin_xor_pow2" contains vectors which are unsupported 1: "smax_xor_pow2_unk" 4: "smax_xor_pow2_unk" has unsupported operation: builtin.unregistered: llvm.intr.smax diff --git a/SSA/Projects/InstCombine/tests/logs/minnum.txt b/SSA/Projects/InstCombine/tests/logs/minnum.txt index 99a584cea..9ee459afd 100644 --- a/SSA/Projects/InstCombine/tests/logs/minnum.txt +++ b/SSA/Projects/InstCombine/tests/logs/minnum.txt @@ -26,7 +26,7 @@ 4: "constant_fold_minnum_f32_n0_n0" has unsupported operation after optimization: builtin.unregistered: llvm.intr.minnum 1: "constant_fold_minnum_v4f32" -"constant_fold_minnum_v4f32" contains vectors which are unsupported +8: "constant_fold_minnum_v4f32" contains vectors which are unsupported 1: "constant_fold_minnum_f64" 4: "constant_fold_minnum_f64" has unsupported operation after optimization: builtin.unregistered: llvm.intr.minnum diff --git a/SSA/Projects/InstCombine/tests/logs/modulo.txt b/SSA/Projects/InstCombine/tests/logs/modulo.txt index 27ec1656f..864970f7d 100644 --- a/SSA/Projects/InstCombine/tests/logs/modulo.txt +++ b/SSA/Projects/InstCombine/tests/logs/modulo.txt @@ -1,49 +1,33 @@ 1: "modulo2" 4: "modulo2" has unsupported operation after optimization: builtin.unregistered: llvm.icmp -4: "modulo2" has unsupported operation after optimization: builtin.unregistered: llvm.select - 1: "modulo2_vec" -"modulo2_vec" contains vectors which are unsupported +8: "modulo2_vec" contains vectors which are unsupported 1: "modulo3" 4: "modulo3" has unsupported operation: builtin.unregistered: llvm.icmp -4: "modulo3" has unsupported operation: builtin.unregistered: llvm.select - 1: "modulo3_vec" 4: "modulo3_vec" has unsupported operation: builtin.unregistered: llvm.icmp -4: "modulo3_vec" has unsupported operation: builtin.unregistered: llvm.select - 1: "modulo4" 4: "modulo4" has unsupported operation after optimization: builtin.unregistered: llvm.icmp -4: "modulo4" has unsupported operation after optimization: builtin.unregistered: llvm.select - 1: "modulo4_vec" -"modulo4_vec" contains vectors which are unsupported +8: "modulo4_vec" contains vectors which are unsupported 1: "modulo7" 4: "modulo7" has unsupported operation: builtin.unregistered: llvm.icmp -4: "modulo7" has unsupported operation: builtin.unregistered: llvm.select - 1: "modulo7_vec" 4: "modulo7_vec" has unsupported operation: builtin.unregistered: llvm.icmp -4: "modulo7_vec" has unsupported operation: builtin.unregistered: llvm.select - 1: "modulo32" 4: "modulo32" has unsupported operation after optimization: builtin.unregistered: llvm.icmp -4: "modulo32" has unsupported operation after optimization: builtin.unregistered: llvm.select - 1: "modulo32_vec" -"modulo32_vec" contains vectors which are unsupported +8: "modulo32_vec" contains vectors which are unsupported 1: "modulo16_32_vec" 4: "modulo16_32_vec" has unsupported operation: builtin.unregistered: llvm.icmp -4: "modulo16_32_vec" has unsupported operation: builtin.unregistered: llvm.select - diff --git a/SSA/Projects/InstCombine/tests/logs/mul-pow2.txt b/SSA/Projects/InstCombine/tests/logs/mul-pow2.txt index 47ba843a2..2bbabffbb 100644 --- a/SSA/Projects/InstCombine/tests/logs/mul-pow2.txt +++ b/SSA/Projects/InstCombine/tests/logs/mul-pow2.txt @@ -2,34 +2,50 @@ 5: "use_i8" is empty 1: "mul_selectp2_x" -4: "mul_selectp2_x" has unsupported operation: builtin.unregistered: llvm.select +2: llvm.func +2: llvm.mlir.constant +2: llvm.mlir.constant +2: builtin.unregistered: llvm.select +2: llvm.mul +2: llvm.return 1: "mul_selectp2_x_propegate_nuw" -4: "mul_selectp2_x_propegate_nuw" has unsupported operation: builtin.unregistered: llvm.select +2: llvm.func +2: llvm.mlir.constant +2: llvm.mlir.constant +2: builtin.unregistered: llvm.select +2: llvm.mul +2: llvm.return 1: "mul_selectp2_x_multiuse_fixme" -4: "mul_selectp2_x_multiuse_fixme" has unsupported operation: builtin.unregistered: llvm.select - -4: "mul_selectp2_x_multiuse_fixme" has unsupported operation: builtin.unregistered: llvm.select - 4: "mul_selectp2_x_multiuse_fixme" has unsupported operation: llvm.call 1: "mul_selectp2_x_non_const" -4: "mul_selectp2_x_non_const" has unsupported operation: builtin.unregistered: llvm.select +2: llvm.func +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.shl +2: builtin.unregistered: llvm.select +2: llvm.mul +2: llvm.return 1: "mul_selectp2_x_non_const_multiuse" -4: "mul_selectp2_x_non_const_multiuse" has unsupported operation: builtin.unregistered: llvm.select - 4: "mul_selectp2_x_non_const_multiuse" has unsupported operation: llvm.call 1: "mul_x_selectp2" -4: "mul_x_selectp2" has unsupported operation: builtin.unregistered: llvm.select +2: llvm.func +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.mul +2: builtin.unregistered: llvm.select +2: llvm.mul +2: llvm.return 1: "mul_select_nonp2_x_fail" -4: "mul_select_nonp2_x_fail" has unsupported operation: builtin.unregistered: llvm.select +7: "mul_select_nonp2_x_fail" is unchanged by InstCombine 1: "mul_x_selectp2_vec" -4: "mul_x_selectp2_vec" has unsupported operation: builtin.unregistered: llvm.select +8: "mul_x_selectp2_vec" contains vectors which are unsupported 1: "shl_add_log_may_cause_poison_pr62175_fail" 7: "shl_add_log_may_cause_poison_pr62175_fail" is unchanged by InstCombine diff --git a/SSA/Projects/InstCombine/tests/logs/mul_fold.txt b/SSA/Projects/InstCombine/tests/logs/mul_fold.txt index 46f9126c1..418695d6e 100644 --- a/SSA/Projects/InstCombine/tests/logs/mul_fold.txt +++ b/SSA/Projects/InstCombine/tests/logs/mul_fold.txt @@ -208,7 +208,7 @@ 2: llvm.return 1: "mul_v2i8_low" -"mul_v2i8_low" contains vectors which are unsupported +8: "mul_v2i8_low" contains vectors which are unsupported 1: "mul_v2i8_low_one_extra_user" 4: "mul_v2i8_low_one_extra_user" has unsupported operation: llvm.mlir.addressof diff --git a/SSA/Projects/InstCombine/tests/logs/multiple-uses-load-bitcast-select.txt b/SSA/Projects/InstCombine/tests/logs/multiple-uses-load-bitcast-select.txt index 0240e176e..d80bcba6f 100644 --- a/SSA/Projects/InstCombine/tests/logs/multiple-uses-load-bitcast-select.txt +++ b/SSA/Projects/InstCombine/tests/logs/multiple-uses-load-bitcast-select.txt @@ -9,8 +9,6 @@ 4: "PR35618" has unsupported operation: builtin.unregistered: llvm.fcmp -4: "PR35618" has unsupported operation: builtin.unregistered: llvm.select - 4: "PR35618" has unsupported operation: llvm.store 4: "PR35618" has unsupported operation: llvm.store @@ -28,8 +26,6 @@ 4: "PR35618_asan" has unsupported operation: builtin.unregistered: llvm.fcmp -4: "PR35618_asan" has unsupported operation: builtin.unregistered: llvm.select - 4: "PR35618_asan" has unsupported operation: llvm.store 4: "PR35618_asan" has unsupported operation: llvm.store diff --git a/SSA/Projects/InstCombine/tests/logs/narrow.txt b/SSA/Projects/InstCombine/tests/logs/narrow.txt index a9b80fd57..eefb8477a 100644 --- a/SSA/Projects/InstCombine/tests/logs/narrow.txt +++ b/SSA/Projects/InstCombine/tests/logs/narrow.txt @@ -55,8 +55,6 @@ 4: "searchArray2" has unsupported operation: builtin.unregistered: llvm.icmp -4: "searchArray2" has unsupported operation: builtin.unregistered: llvm.select - 4: "searchArray2" has unsupported operation: builtin.unregistered: llvm.icmp 4: "searchArray2" has unsupported operation: builtin.unregistered: llvm.cond_br diff --git a/SSA/Projects/InstCombine/tests/logs/negated-bitmask.txt b/SSA/Projects/InstCombine/tests/logs/negated-bitmask.txt index d93416376..9ca41d21c 100644 --- a/SSA/Projects/InstCombine/tests/logs/negated-bitmask.txt +++ b/SSA/Projects/InstCombine/tests/logs/negated-bitmask.txt @@ -18,13 +18,13 @@ 2: llvm.return 1: "neg_mask1_lshr_vector_uniform" -"neg_mask1_lshr_vector_uniform" contains vectors which are unsupported +8: "neg_mask1_lshr_vector_uniform" contains vectors which are unsupported 1: "neg_mask1_lshr_vector_nonuniform" -"neg_mask1_lshr_vector_nonuniform" contains vectors which are unsupported +8: "neg_mask1_lshr_vector_nonuniform" contains vectors which are unsupported 1: "sub_mask1_lshr_vector_nonuniform" -"sub_mask1_lshr_vector_nonuniform" contains vectors which are unsupported +8: "sub_mask1_lshr_vector_nonuniform" contains vectors which are unsupported 1: "sub_mask1_trunc_lshr" 4: "sub_mask1_trunc_lshr" has unsupported operation: builtin.unregistered: llvm.trunc @@ -51,7 +51,7 @@ 4: "neg_mask2_lshr_outofbounds" has unsupported operation: builtin.unregistered: llvm.mlir.poison 1: "neg_mask1_lshr_vector_var" -"neg_mask1_lshr_vector_var" contains vectors which are unsupported +8: "neg_mask1_lshr_vector_var" contains vectors which are unsupported 1: "neg_mask1_lshr_extrause_mask" 4: "neg_mask1_lshr_extrause_mask" has unsupported operation: llvm.call @@ -96,15 +96,11 @@ 4: "neg_mask" has unsupported operation: builtin.unregistered: llvm.icmp -4: "neg_mask" has unsupported operation: builtin.unregistered: llvm.select - 1: "neg_mask_const" 4: "neg_mask_const" has unsupported operation: builtin.unregistered: llvm.sext 4: "neg_mask_const" has unsupported operation: builtin.unregistered: llvm.icmp -4: "neg_mask_const" has unsupported operation: builtin.unregistered: llvm.select - 1: "usei8" 5: "usei8" is empty diff --git a/SSA/Projects/InstCombine/tests/logs/nested-select.txt b/SSA/Projects/InstCombine/tests/logs/nested-select.txt index 5c227164a..7c7a39a0a 100644 --- a/SSA/Projects/InstCombine/tests/logs/nested-select.txt +++ b/SSA/Projects/InstCombine/tests/logs/nested-select.txt @@ -5,274 +5,192 @@ 5: "use.i8" is empty 1: "andcond" -4: "andcond" has unsupported operation: builtin.unregistered: llvm.select - -4: "andcond" has unsupported operation: builtin.unregistered: llvm.select +2: llvm.func +2: llvm.mlir.constant +2: builtin.unregistered: llvm.select +2: builtin.unregistered: llvm.select +2: builtin.unregistered: llvm.select +2: llvm.return 1: "orcond" -4: "orcond" has unsupported operation: builtin.unregistered: llvm.select - -4: "orcond" has unsupported operation: builtin.unregistered: llvm.select +2: llvm.func +2: llvm.mlir.constant +2: builtin.unregistered: llvm.select +2: builtin.unregistered: llvm.select +2: builtin.unregistered: llvm.select +2: llvm.return 1: "andcond.extrause0" -4: "andcond.extrause0" has unsupported operation: builtin.unregistered: llvm.select - 4: "andcond.extrause0" has unsupported operation: llvm.call -4: "andcond.extrause0" has unsupported operation: builtin.unregistered: llvm.select - -4: "andcond.extrause0" has unsupported operation: builtin.unregistered: llvm.select - 1: "orcond.extrause0" -4: "orcond.extrause0" has unsupported operation: builtin.unregistered: llvm.select - 4: "orcond.extrause0" has unsupported operation: llvm.call -4: "orcond.extrause0" has unsupported operation: builtin.unregistered: llvm.select - -4: "orcond.extrause0" has unsupported operation: builtin.unregistered: llvm.select - 1: "andcond.extrause1" -4: "andcond.extrause1" has unsupported operation: builtin.unregistered: llvm.select - 4: "andcond.extrause1" has unsupported operation: llvm.call -4: "andcond.extrause1" has unsupported operation: builtin.unregistered: llvm.select - -4: "andcond.extrause1" has unsupported operation: builtin.unregistered: llvm.select - 1: "orcond.extrause1" -4: "orcond.extrause1" has unsupported operation: builtin.unregistered: llvm.select - 4: "orcond.extrause1" has unsupported operation: llvm.call -4: "orcond.extrause1" has unsupported operation: builtin.unregistered: llvm.select - -4: "orcond.extrause1" has unsupported operation: builtin.unregistered: llvm.select - 1: "andcond.extrause2" -4: "andcond.extrause2" has unsupported operation: builtin.unregistered: llvm.select - 4: "andcond.extrause2" has unsupported operation: llvm.call -4: "andcond.extrause2" has unsupported operation: builtin.unregistered: llvm.select - 4: "andcond.extrause2" has unsupported operation: llvm.call -4: "andcond.extrause2" has unsupported operation: builtin.unregistered: llvm.select - 1: "orcond.extrause2" -4: "orcond.extrause2" has unsupported operation: builtin.unregistered: llvm.select - 4: "orcond.extrause2" has unsupported operation: llvm.call -4: "orcond.extrause2" has unsupported operation: builtin.unregistered: llvm.select - 4: "orcond.extrause2" has unsupported operation: llvm.call -4: "orcond.extrause2" has unsupported operation: builtin.unregistered: llvm.select - 1: "andcond.different.inner.cond" -4: "andcond.different.inner.cond" has unsupported operation: builtin.unregistered: llvm.select - -4: "andcond.different.inner.cond" has unsupported operation: builtin.unregistered: llvm.select - -4: "andcond.different.inner.cond" has unsupported operation: builtin.unregistered: llvm.select +7: "andcond.different.inner.cond" is unchanged by InstCombine 1: "orcond.different.inner.cond" -4: "orcond.different.inner.cond" has unsupported operation: builtin.unregistered: llvm.select - -4: "orcond.different.inner.cond" has unsupported operation: builtin.unregistered: llvm.select - -4: "orcond.different.inner.cond" has unsupported operation: builtin.unregistered: llvm.select +7: "orcond.different.inner.cond" is unchanged by InstCombine 1: "andcond.different.inner.cond.both.inverted" -4: "andcond.different.inner.cond.both.inverted" has unsupported operation: builtin.unregistered: llvm.select - -4: "andcond.different.inner.cond.both.inverted" has unsupported operation: builtin.unregistered: llvm.select - -4: "andcond.different.inner.cond.both.inverted" has unsupported operation: builtin.unregistered: llvm.select +7: "andcond.different.inner.cond.both.inverted" is unchanged by InstCombine 1: "orcond.different.inner.cond.both.inverted" -4: "orcond.different.inner.cond.both.inverted" has unsupported operation: builtin.unregistered: llvm.select - -4: "orcond.different.inner.cond.both.inverted" has unsupported operation: builtin.unregistered: llvm.select - -4: "orcond.different.inner.cond.both.inverted" has unsupported operation: builtin.unregistered: llvm.select +7: "orcond.different.inner.cond.both.inverted" is unchanged by InstCombine 1: "andcond.different.inner.cond.inverted.in.outer.cond" -4: "andcond.different.inner.cond.inverted.in.outer.cond" has unsupported operation: builtin.unregistered: llvm.select - -4: "andcond.different.inner.cond.inverted.in.outer.cond" has unsupported operation: builtin.unregistered: llvm.select - -4: "andcond.different.inner.cond.inverted.in.outer.cond" has unsupported operation: builtin.unregistered: llvm.select +7: "andcond.different.inner.cond.inverted.in.outer.cond" is unchanged by InstCombine 1: "orcond.different.inner.cond.inverted.in.outer.cond" -4: "orcond.different.inner.cond.inverted.in.outer.cond" has unsupported operation: builtin.unregistered: llvm.select - -4: "orcond.different.inner.cond.inverted.in.outer.cond" has unsupported operation: builtin.unregistered: llvm.select - -4: "orcond.different.inner.cond.inverted.in.outer.cond" has unsupported operation: builtin.unregistered: llvm.select +7: "orcond.different.inner.cond.inverted.in.outer.cond" is unchanged by InstCombine 1: "andcond.different.inner.cond.inverted.in.inner.sel" -4: "andcond.different.inner.cond.inverted.in.inner.sel" has unsupported operation: builtin.unregistered: llvm.select - -4: "andcond.different.inner.cond.inverted.in.inner.sel" has unsupported operation: builtin.unregistered: llvm.select - -4: "andcond.different.inner.cond.inverted.in.inner.sel" has unsupported operation: builtin.unregistered: llvm.select +7: "andcond.different.inner.cond.inverted.in.inner.sel" is unchanged by InstCombine 1: "orcond.different.inner.cond.inverted.in.inner.sel" -4: "orcond.different.inner.cond.inverted.in.inner.sel" has unsupported operation: builtin.unregistered: llvm.select - -4: "orcond.different.inner.cond.inverted.in.inner.sel" has unsupported operation: builtin.unregistered: llvm.select - -4: "orcond.different.inner.cond.inverted.in.inner.sel" has unsupported operation: builtin.unregistered: llvm.select +7: "orcond.different.inner.cond.inverted.in.inner.sel" is unchanged by InstCombine 1: "D139275_c4001580" -4: "D139275_c4001580" has unsupported operation: builtin.unregistered: llvm.select - -4: "D139275_c4001580" has unsupported operation: builtin.unregistered: llvm.select +7: "D139275_c4001580" is unchanged by InstCombine 1: "andcond.001.inv.outer.cond" -4: "andcond.001.inv.outer.cond" has unsupported operation: builtin.unregistered: llvm.select - -4: "andcond.001.inv.outer.cond" has unsupported operation: builtin.unregistered: llvm.select +2: llvm.func +2: llvm.mlir.constant +2: llvm.mlir.constant +2: builtin.unregistered: llvm.select +2: builtin.unregistered: llvm.select +2: llvm.xor +2: builtin.unregistered: llvm.select +2: llvm.return 1: "orcond.001.inv.outer.cond" -4: "orcond.001.inv.outer.cond" has unsupported operation: builtin.unregistered: llvm.select - -4: "orcond.001.inv.outer.cond" has unsupported operation: builtin.unregistered: llvm.select +2: llvm.func +2: llvm.mlir.constant +2: builtin.unregistered: llvm.select +2: builtin.unregistered: llvm.select +2: llvm.xor +2: builtin.unregistered: llvm.select +2: llvm.return 1: "andcond.010.inv.inner.cond.in.inner.sel" -4: "andcond.010.inv.inner.cond.in.inner.sel" has unsupported operation: builtin.unregistered: llvm.select - -4: "andcond.010.inv.inner.cond.in.inner.sel" has unsupported operation: builtin.unregistered: llvm.select +2: llvm.func +2: llvm.mlir.constant +2: llvm.mlir.constant +2: builtin.unregistered: llvm.select +2: llvm.xor +2: builtin.unregistered: llvm.select +2: builtin.unregistered: llvm.select +2: llvm.return 1: "orcond.010.inv.inner.cond.in.inner.sel" -4: "orcond.010.inv.inner.cond.in.inner.sel" has unsupported operation: builtin.unregistered: llvm.select - -4: "orcond.010.inv.inner.cond.in.inner.sel" has unsupported operation: builtin.unregistered: llvm.select +2: llvm.func +2: llvm.mlir.constant +2: builtin.unregistered: llvm.select +2: llvm.xor +2: builtin.unregistered: llvm.select +2: builtin.unregistered: llvm.select +2: llvm.return 1: "andcond.100.inv.inner.cond.in.outer.cond" -4: "andcond.100.inv.inner.cond.in.outer.cond" has unsupported operation: builtin.unregistered: llvm.select - -4: "andcond.100.inv.inner.cond.in.outer.cond" has unsupported operation: builtin.unregistered: llvm.select +2: llvm.func +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.xor +2: builtin.unregistered: llvm.select +2: builtin.unregistered: llvm.select +2: builtin.unregistered: llvm.select +2: llvm.return 1: "orcond.100.inv.inner.cond.in.outer.cond" -4: "orcond.100.inv.inner.cond.in.outer.cond" has unsupported operation: builtin.unregistered: llvm.select - -4: "orcond.100.inv.inner.cond.in.outer.cond" has unsupported operation: builtin.unregistered: llvm.select +2: llvm.func +2: llvm.mlir.constant +2: llvm.xor +2: builtin.unregistered: llvm.select +2: builtin.unregistered: llvm.select +2: builtin.unregistered: llvm.select +2: llvm.return 1: "andcond.011.inv.outer.cond.inv.inner.cond.in.inner.sel" -4: "andcond.011.inv.outer.cond.inv.inner.cond.in.inner.sel" has unsupported operation: builtin.unregistered: llvm.select - 4: "andcond.011.inv.outer.cond.inv.inner.cond.in.inner.sel" has unsupported operation: llvm.call -4: "andcond.011.inv.outer.cond.inv.inner.cond.in.inner.sel" has unsupported operation: builtin.unregistered: llvm.select - -4: "andcond.011.inv.outer.cond.inv.inner.cond.in.inner.sel" has unsupported operation: builtin.unregistered: llvm.select - 1: "orcond.011.inv.outer.cond.inv.inner.cond.in.inner.sel" -4: "orcond.011.inv.outer.cond.inv.inner.cond.in.inner.sel" has unsupported operation: builtin.unregistered: llvm.select - 4: "orcond.011.inv.outer.cond.inv.inner.cond.in.inner.sel" has unsupported operation: llvm.call -4: "orcond.011.inv.outer.cond.inv.inner.cond.in.inner.sel" has unsupported operation: builtin.unregistered: llvm.select - -4: "orcond.011.inv.outer.cond.inv.inner.cond.in.inner.sel" has unsupported operation: builtin.unregistered: llvm.select - 1: "andcond.101.inv.outer.cond.inv.inner.cond.in.outer.cond" -4: "andcond.101.inv.outer.cond.inv.inner.cond.in.outer.cond" has unsupported operation: builtin.unregistered: llvm.select - 4: "andcond.101.inv.outer.cond.inv.inner.cond.in.outer.cond" has unsupported operation: llvm.call -4: "andcond.101.inv.outer.cond.inv.inner.cond.in.outer.cond" has unsupported operation: builtin.unregistered: llvm.select - -4: "andcond.101.inv.outer.cond.inv.inner.cond.in.outer.cond" has unsupported operation: builtin.unregistered: llvm.select - 1: "orcond.101.inv.outer.cond.inv.inner.cond.in.outer.cond" -4: "orcond.101.inv.outer.cond.inv.inner.cond.in.outer.cond" has unsupported operation: builtin.unregistered: llvm.select - 4: "orcond.101.inv.outer.cond.inv.inner.cond.in.outer.cond" has unsupported operation: llvm.call -4: "orcond.101.inv.outer.cond.inv.inner.cond.in.outer.cond" has unsupported operation: builtin.unregistered: llvm.select - -4: "orcond.101.inv.outer.cond.inv.inner.cond.in.outer.cond" has unsupported operation: builtin.unregistered: llvm.select - 1: "andcond.110.inv.inner.cond.in.inner.sel.inv.inner.cond.in.outer.cond" -4: "andcond.110.inv.inner.cond.in.inner.sel.inv.inner.cond.in.outer.cond" has unsupported operation: builtin.unregistered: llvm.select - -4: "andcond.110.inv.inner.cond.in.inner.sel.inv.inner.cond.in.outer.cond" has unsupported operation: builtin.unregistered: llvm.select +2: llvm.func +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.xor +2: builtin.unregistered: llvm.select +2: llvm.xor +2: builtin.unregistered: llvm.select +2: builtin.unregistered: llvm.select +2: llvm.return 1: "orcond.110.inv.inner.cond.in.inner.sel.inv.inner.cond.in.outer.cond" -4: "orcond.110.inv.inner.cond.in.inner.sel.inv.inner.cond.in.outer.cond" has unsupported operation: builtin.unregistered: llvm.select - -4: "orcond.110.inv.inner.cond.in.inner.sel.inv.inner.cond.in.outer.cond" has unsupported operation: builtin.unregistered: llvm.select +2: llvm.func +2: llvm.mlir.constant +2: llvm.xor +2: builtin.unregistered: llvm.select +2: llvm.xor +2: builtin.unregistered: llvm.select +2: builtin.unregistered: llvm.select +2: llvm.return 1: "andcond.111.inv.all.conds" -4: "andcond.111.inv.all.conds" has unsupported operation: builtin.unregistered: llvm.select - 4: "andcond.111.inv.all.conds" has unsupported operation: llvm.call -4: "andcond.111.inv.all.conds" has unsupported operation: builtin.unregistered: llvm.select - 4: "andcond.111.inv.all.conds" has unsupported operation: llvm.call -4: "andcond.111.inv.all.conds" has unsupported operation: builtin.unregistered: llvm.select - -4: "andcond.111.inv.all.conds" has unsupported operation: builtin.unregistered: llvm.select - 1: "orcond.111.inv.all.conds" -4: "orcond.111.inv.all.conds" has unsupported operation: builtin.unregistered: llvm.select - 4: "orcond.111.inv.all.conds" has unsupported operation: llvm.call -4: "orcond.111.inv.all.conds" has unsupported operation: builtin.unregistered: llvm.select - 4: "orcond.111.inv.all.conds" has unsupported operation: llvm.call -4: "orcond.111.inv.all.conds" has unsupported operation: builtin.unregistered: llvm.select - -4: "orcond.111.inv.all.conds" has unsupported operation: builtin.unregistered: llvm.select - 1: "test_implied_true" 4: "test_implied_true" has unsupported operation: builtin.unregistered: llvm.icmp -4: "test_implied_true" has unsupported operation: builtin.unregistered: llvm.select - 1: "test_implied_true_vec" 4: "test_implied_true_vec" has unsupported operation: builtin.unregistered: llvm.icmp -4: "test_implied_true_vec" has unsupported operation: builtin.unregistered: llvm.select - 1: "test_implied_true_falseval" 4: "test_implied_true_falseval" has unsupported operation: builtin.unregistered: llvm.icmp -4: "test_implied_true_falseval" has unsupported operation: builtin.unregistered: llvm.select - 1: "test_implied_false" 4: "test_implied_false" has unsupported operation: builtin.unregistered: llvm.icmp -4: "test_implied_false" has unsupported operation: builtin.unregistered: llvm.select - 1: "test_imply_fail" 4: "test_imply_fail" has unsupported operation: builtin.unregistered: llvm.icmp 4: "test_imply_fail" has unsupported operation: builtin.unregistered: llvm.icmp -4: "test_imply_fail" has unsupported operation: builtin.unregistered: llvm.select - -4: "test_imply_fail" has unsupported operation: builtin.unregistered: llvm.select - 1: "test_imply_type_mismatch" 4: "test_imply_type_mismatch" has unsupported operation: builtin.unregistered: llvm.icmp 4: "test_imply_type_mismatch" has unsupported operation: builtin.unregistered: llvm.icmp -4: "test_imply_type_mismatch" has unsupported operation: builtin.unregistered: llvm.select - -4: "test_imply_type_mismatch" has unsupported operation: builtin.unregistered: llvm.select - 1: "test_dont_crash" -4: "test_dont_crash" has unsupported operation: builtin.unregistered: llvm.select +7: "test_dont_crash" is unchanged by InstCombine diff --git a/SSA/Projects/InstCombine/tests/logs/nonnull-select.txt b/SSA/Projects/InstCombine/tests/logs/nonnull-select.txt index f519d5c4c..22f1e04ff 100644 --- a/SSA/Projects/InstCombine/tests/logs/nonnull-select.txt +++ b/SSA/Projects/InstCombine/tests/logs/nonnull-select.txt @@ -5,33 +5,21 @@ 4: "pr48975" has unsupported operation: builtin.unregistered: llvm.icmp -4: "pr48975" has unsupported operation: builtin.unregistered: llvm.select - 1: "nonnull_ret" 4: "nonnull_ret" has unsupported operation: llvm.mlir.zero -4: "nonnull_ret" has unsupported operation: builtin.unregistered: llvm.select - 1: "nonnull_ret2" 4: "nonnull_ret2" has unsupported operation: llvm.mlir.zero -4: "nonnull_ret2" has unsupported operation: builtin.unregistered: llvm.select - 1: "nonnull_noundef_ret" 4: "nonnull_noundef_ret" has unsupported operation: llvm.mlir.zero -4: "nonnull_noundef_ret" has unsupported operation: builtin.unregistered: llvm.select - 1: "nonnull_noundef_ret2" 4: "nonnull_noundef_ret2" has unsupported operation: llvm.mlir.zero -4: "nonnull_noundef_ret2" has unsupported operation: builtin.unregistered: llvm.select - 1: "nonnull_call" 4: "nonnull_call" has unsupported operation: llvm.mlir.zero -4: "nonnull_call" has unsupported operation: builtin.unregistered: llvm.select - 4: "nonnull_call" has unsupported operation: llvm.call 4: "nonnull_call" has unsupported operation: llvm.return @@ -39,8 +27,6 @@ 1: "nonnull_call2" 4: "nonnull_call2" has unsupported operation: llvm.mlir.zero -4: "nonnull_call2" has unsupported operation: builtin.unregistered: llvm.select - 4: "nonnull_call2" has unsupported operation: llvm.call 4: "nonnull_call2" has unsupported operation: llvm.return @@ -48,8 +34,6 @@ 1: "nonnull_noundef_call" 4: "nonnull_noundef_call" has unsupported operation: llvm.mlir.zero -4: "nonnull_noundef_call" has unsupported operation: builtin.unregistered: llvm.select - 4: "nonnull_noundef_call" has unsupported operation: llvm.call 4: "nonnull_noundef_call" has unsupported operation: llvm.return @@ -57,8 +41,6 @@ 1: "nonnull_noundef_call2" 4: "nonnull_noundef_call2" has unsupported operation: llvm.mlir.zero -4: "nonnull_noundef_call2" has unsupported operation: builtin.unregistered: llvm.select - 4: "nonnull_noundef_call2" has unsupported operation: llvm.call 4: "nonnull_noundef_call2" has unsupported operation: llvm.return diff --git a/SSA/Projects/InstCombine/tests/logs/not-add.txt b/SSA/Projects/InstCombine/tests/logs/not-add.txt index 12ca8e08f..9c83d8ef6 100644 --- a/SSA/Projects/InstCombine/tests/logs/not-add.txt +++ b/SSA/Projects/InstCombine/tests/logs/not-add.txt @@ -53,13 +53,13 @@ 2: llvm.return 1: "vector_test" -"vector_test" contains vectors which are unsupported +8: "vector_test" contains vectors which are unsupported 1: "vector_test_poison" -"vector_test_poison" contains vectors which are unsupported +8: "vector_test_poison" contains vectors which are unsupported 1: "vector_test_poison_nsw_nuw" -"vector_test_poison_nsw_nuw" contains vectors which are unsupported +8: "vector_test_poison_nsw_nuw" contains vectors which are unsupported 1: "pr50308" 4: "pr50308" has unsupported operation: builtin.unregistered: llvm.cond_br diff --git a/SSA/Projects/InstCombine/tests/logs/not.txt b/SSA/Projects/InstCombine/tests/logs/not.txt index 0b64ef7c3..0c52f6241 100644 --- a/SSA/Projects/InstCombine/tests/logs/not.txt +++ b/SSA/Projects/InstCombine/tests/logs/not.txt @@ -55,7 +55,7 @@ 2: llvm.return 1: "not_ashr_const_splat" -"not_ashr_const_splat" contains vectors which are unsupported +8: "not_ashr_const_splat" contains vectors which are unsupported 1: "not_lshr_const_negative" 7: "not_lshr_const_negative" is unchanged by InstCombine @@ -69,7 +69,7 @@ 2: llvm.return 1: "not_lshr_const_splat" -"not_lshr_const_splat" contains vectors which are unsupported +8: "not_lshr_const_splat" contains vectors which are unsupported 1: "not_sub" 2: llvm.func @@ -83,13 +83,13 @@ 4: "not_sub_extra_use" has unsupported operation: llvm.store 1: "not_sub_splat" -"not_sub_splat" contains vectors which are unsupported +8: "not_sub_splat" contains vectors which are unsupported 1: "not_sub_extra_use_splat" 4: "not_sub_extra_use_splat" has unsupported operation: llvm.store 1: "not_sub_vec" -"not_sub_vec" contains vectors which are unsupported +8: "not_sub_vec" contains vectors which are unsupported 1: "not_sub_extra_use_vec" 4: "not_sub_extra_use_vec" has unsupported operation: llvm.store @@ -103,18 +103,16 @@ 2: llvm.return 1: "not_add_splat" -"not_add_splat" contains vectors which are unsupported +8: "not_add_splat" contains vectors which are unsupported 1: "not_add_vec" -"not_add_vec" contains vectors which are unsupported +8: "not_add_vec" contains vectors which are unsupported 1: "not_select_cmp_cmp" 4: "not_select_cmp_cmp" has unsupported operation: builtin.unregistered: llvm.icmp 4: "not_select_cmp_cmp" has unsupported operation: builtin.unregistered: llvm.fcmp -4: "not_select_cmp_cmp" has unsupported operation: builtin.unregistered: llvm.select - 1: "not_select_cmp_cmp_extra_use1" 4: "not_select_cmp_cmp_extra_use1" has unsupported operation: builtin.unregistered: llvm.icmp @@ -122,8 +120,6 @@ 4: "not_select_cmp_cmp_extra_use1" has unsupported operation: builtin.unregistered: llvm.fcmp -4: "not_select_cmp_cmp_extra_use1" has unsupported operation: builtin.unregistered: llvm.select - 1: "not_select_cmp_cmp_extra_use2" 4: "not_select_cmp_cmp_extra_use2" has unsupported operation: builtin.unregistered: llvm.icmp @@ -131,8 +127,6 @@ 4: "not_select_cmp_cmp_extra_use2" has unsupported operation: llvm.call -4: "not_select_cmp_cmp_extra_use2" has unsupported operation: builtin.unregistered: llvm.select - 1: "not_select_cmp_cmp_extra_use3" 4: "not_select_cmp_cmp_extra_use3" has unsupported operation: builtin.unregistered: llvm.icmp @@ -142,41 +136,29 @@ 4: "not_select_cmp_cmp_extra_use3" has unsupported operation: llvm.call -4: "not_select_cmp_cmp_extra_use3" has unsupported operation: builtin.unregistered: llvm.select - 1: "not_select_cmp_cmp_extra_use4" 4: "not_select_cmp_cmp_extra_use4" has unsupported operation: builtin.unregistered: llvm.icmp 4: "not_select_cmp_cmp_extra_use4" has unsupported operation: builtin.unregistered: llvm.fcmp -4: "not_select_cmp_cmp_extra_use4" has unsupported operation: builtin.unregistered: llvm.select - 4: "not_select_cmp_cmp_extra_use4" has unsupported operation: llvm.call 1: "not_select_cmpt" 4: "not_select_cmpt" has unsupported operation: builtin.unregistered: llvm.fcmp -4: "not_select_cmpt" has unsupported operation: builtin.unregistered: llvm.select - 1: "not_select_cmpf" 4: "not_select_cmpf" has unsupported operation: builtin.unregistered: llvm.icmp -4: "not_select_cmpf" has unsupported operation: builtin.unregistered: llvm.select - 1: "not_select_cmpt_extra_use" 4: "not_select_cmpt_extra_use" has unsupported operation: builtin.unregistered: llvm.fcmp 4: "not_select_cmpt_extra_use" has unsupported operation: llvm.call -4: "not_select_cmpt_extra_use" has unsupported operation: builtin.unregistered: llvm.select - 1: "not_select_cmpf_extra_use" 4: "not_select_cmpf_extra_use" has unsupported operation: builtin.unregistered: llvm.icmp 4: "not_select_cmpf_extra_use" has unsupported operation: llvm.call -4: "not_select_cmpf_extra_use" has unsupported operation: builtin.unregistered: llvm.select - 1: "not_or_neg" 2: llvm.func 2: llvm.mlir.constant @@ -187,7 +169,7 @@ 2: llvm.return 1: "not_or_neg_commute_vec" -"not_or_neg_commute_vec" contains vectors which are unsupported +8: "not_or_neg_commute_vec" contains vectors which are unsupported 1: "not_or_neg_use1" 4: "not_or_neg_use1" has unsupported operation: llvm.call @@ -196,50 +178,62 @@ 4: "not_or_neg_use2" has unsupported operation: llvm.call 1: "not_select_bool" -4: "not_select_bool" has unsupported operation: builtin.unregistered: llvm.select +7: "not_select_bool" is unchanged by InstCombine 1: "not_select_bool_const1" -4: "not_select_bool_const1" has unsupported operation: builtin.unregistered: llvm.select +2: llvm.func +2: llvm.mlir.constant +2: builtin.unregistered: llvm.select +2: llvm.xor +2: llvm.return 1: "not_select_bool_const2" -4: "not_select_bool_const2" has unsupported operation: builtin.unregistered: llvm.select +7: "not_select_bool_const2" is unchanged by InstCombine 1: "not_select_bool_const3" -4: "not_select_bool_const3" has unsupported operation: builtin.unregistered: llvm.select +7: "not_select_bool_const3" is unchanged by InstCombine 1: "not_select_bool_const4" -4: "not_select_bool_const4" has unsupported operation: builtin.unregistered: llvm.select +2: llvm.func +2: llvm.mlir.constant +2: llvm.mlir.constant +2: builtin.unregistered: llvm.select +2: llvm.xor +2: llvm.return 1: "not_logicalAnd_not_op0" -4: "not_logicalAnd_not_op0" has unsupported operation: builtin.unregistered: llvm.select +8: "not_logicalAnd_not_op0" contains vectors which are unsupported 1: "not_logicalAnd_not_op1" -4: "not_logicalAnd_not_op1" has unsupported operation: builtin.unregistered: llvm.select +2: llvm.func +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.xor +2: builtin.unregistered: llvm.select +2: llvm.xor +2: llvm.return 1: "not_logicalAnd_not_op0_use1" 4: "not_logicalAnd_not_op0_use1" has unsupported operation: llvm.call -4: "not_logicalAnd_not_op0_use1" has unsupported operation: builtin.unregistered: llvm.select - 1: "not_logicalAnd_not_op0_use2" -4: "not_logicalAnd_not_op0_use2" has unsupported operation: builtin.unregistered: llvm.select - 4: "not_logicalAnd_not_op0_use2" has unsupported operation: llvm.call 1: "not_logicalOr_not_op0" -4: "not_logicalOr_not_op0" has unsupported operation: builtin.unregistered: llvm.select +8: "not_logicalOr_not_op0" contains vectors which are unsupported 1: "not_logicalOr_not_op1" -4: "not_logicalOr_not_op1" has unsupported operation: builtin.unregistered: llvm.select +2: llvm.func +2: llvm.mlir.constant +2: llvm.xor +2: builtin.unregistered: llvm.select +2: llvm.xor +2: llvm.return 1: "not_logicalOr_not_op0_use1" 4: "not_logicalOr_not_op0_use1" has unsupported operation: llvm.call -4: "not_logicalOr_not_op0_use1" has unsupported operation: builtin.unregistered: llvm.select - 1: "not_logicalOr_not_op0_use2" -4: "not_logicalOr_not_op0_use2" has unsupported operation: builtin.unregistered: llvm.select - 4: "not_logicalOr_not_op0_use2" has unsupported operation: llvm.call 1: "bitcast_to_wide_elts_sext_bool" @@ -283,8 +277,6 @@ 4: "invert_both_cmp_operands_sub" has unsupported operation: builtin.unregistered: llvm.icmp 1: "invert_both_cmp_operands_complex" -4: "invert_both_cmp_operands_complex" has unsupported operation: builtin.unregistered: llvm.select - 4: "invert_both_cmp_operands_complex" has unsupported operation: builtin.unregistered: llvm.icmp 1: "test_sext" @@ -351,8 +343,6 @@ 4: "test_invert_demorgan_logical_or" has unsupported operation: builtin.unregistered: llvm.icmp -4: "test_invert_demorgan_logical_or" has unsupported operation: builtin.unregistered: llvm.select - 4: "test_invert_demorgan_logical_or" has unsupported operation: builtin.unregistered: llvm.icmp 1: "test_invert_demorgan_and" @@ -387,8 +377,6 @@ 4: "test_invert_demorgan_logical_and" has unsupported operation: builtin.unregistered: llvm.icmp -4: "test_invert_demorgan_logical_and" has unsupported operation: builtin.unregistered: llvm.select - 4: "test_invert_demorgan_logical_and" has unsupported operation: builtin.unregistered: llvm.icmp 1: "test_invert_demorgan_and_multiuse" diff --git a/SSA/Projects/InstCombine/tests/logs/onehot_merge.txt b/SSA/Projects/InstCombine/tests/logs/onehot_merge.txt index 93fdcdb09..ed395e81a 100644 --- a/SSA/Projects/InstCombine/tests/logs/onehot_merge.txt +++ b/SSA/Projects/InstCombine/tests/logs/onehot_merge.txt @@ -92,8 +92,6 @@ 4: "foo1_and_signbit_lshr_without_shifting_signbit_logical" has unsupported operation: builtin.unregistered: llvm.icmp -4: "foo1_and_signbit_lshr_without_shifting_signbit_logical" has unsupported operation: builtin.unregistered: llvm.select - 1: "foo1_or_signbit_lshr_without_shifting_signbit" 4: "foo1_or_signbit_lshr_without_shifting_signbit" has unsupported operation: builtin.unregistered: llvm.icmp @@ -104,8 +102,6 @@ 4: "foo1_or_signbit_lshr_without_shifting_signbit_logical" has unsupported operation: builtin.unregistered: llvm.icmp -4: "foo1_or_signbit_lshr_without_shifting_signbit_logical" has unsupported operation: builtin.unregistered: llvm.select - 1: "foo1_and_signbit_lshr_without_shifting_signbit_both_sides" 4: "foo1_and_signbit_lshr_without_shifting_signbit_both_sides" has unsupported operation: builtin.unregistered: llvm.icmp @@ -114,8 +110,6 @@ 4: "foo1_and_signbit_lshr_without_shifting_signbit_both_sides_logical" has unsupported operation: builtin.unregistered: llvm.icmp -4: "foo1_and_signbit_lshr_without_shifting_signbit_both_sides_logical" has unsupported operation: builtin.unregistered: llvm.select - 1: "foo1_or_signbit_lshr_without_shifting_signbit_both_sides" 4: "foo1_or_signbit_lshr_without_shifting_signbit_both_sides" has unsupported operation: builtin.unregistered: llvm.icmp @@ -127,8 +121,6 @@ 4: "foo1_or_signbit_lshr_without_shifting_signbit_both_sides_logical" has unsupported operation: builtin.unregistered: llvm.icmp -4: "foo1_or_signbit_lshr_without_shifting_signbit_both_sides_logical" has unsupported operation: builtin.unregistered: llvm.select - 1: "foo1_and_extra_use_shl" 4: "foo1_and_extra_use_shl" has unsupported operation: llvm.store @@ -223,8 +215,6 @@ 4: "foo1_and_signbit_lshr_without_shifting_signbit_extra_use_shl1_logical" has unsupported operation: builtin.unregistered: llvm.icmp -4: "foo1_and_signbit_lshr_without_shifting_signbit_extra_use_shl1_logical" has unsupported operation: builtin.unregistered: llvm.select - 1: "foo1_and_signbit_lshr_without_shifting_signbit_extra_use_and" 4: "foo1_and_signbit_lshr_without_shifting_signbit_extra_use_and" has unsupported operation: llvm.store @@ -239,8 +229,6 @@ 4: "foo1_and_signbit_lshr_without_shifting_signbit_extra_use_and_logical" has unsupported operation: builtin.unregistered: llvm.icmp -4: "foo1_and_signbit_lshr_without_shifting_signbit_extra_use_and_logical" has unsupported operation: builtin.unregistered: llvm.select - 1: "foo1_and_signbit_lshr_without_shifting_signbit_extra_use_cmp1" 4: "foo1_and_signbit_lshr_without_shifting_signbit_extra_use_cmp1" has unsupported operation: builtin.unregistered: llvm.icmp @@ -255,8 +243,6 @@ 4: "foo1_and_signbit_lshr_without_shifting_signbit_extra_use_cmp1_logical" has unsupported operation: builtin.unregistered: llvm.icmp -4: "foo1_and_signbit_lshr_without_shifting_signbit_extra_use_cmp1_logical" has unsupported operation: builtin.unregistered: llvm.select - 1: "foo1_and_signbit_lshr_without_shifting_signbit_extra_use_shl2" 4: "foo1_and_signbit_lshr_without_shifting_signbit_extra_use_shl2" has unsupported operation: builtin.unregistered: llvm.icmp @@ -271,8 +257,6 @@ 4: "foo1_and_signbit_lshr_without_shifting_signbit_extra_use_shl2_logical" has unsupported operation: builtin.unregistered: llvm.icmp -4: "foo1_and_signbit_lshr_without_shifting_signbit_extra_use_shl2_logical" has unsupported operation: builtin.unregistered: llvm.select - 1: "foo1_and_signbit_lshr_without_shifting_signbit_extra_use_cmp2" 4: "foo1_and_signbit_lshr_without_shifting_signbit_extra_use_cmp2" has unsupported operation: builtin.unregistered: llvm.icmp @@ -287,8 +271,6 @@ 4: "foo1_and_signbit_lshr_without_shifting_signbit_extra_use_cmp2_logical" has unsupported operation: llvm.store -4: "foo1_and_signbit_lshr_without_shifting_signbit_extra_use_cmp2_logical" has unsupported operation: builtin.unregistered: llvm.select - 1: "foo1_and_signbit_lshr_without_shifting_signbit_not_pwr2" 4: "foo1_and_signbit_lshr_without_shifting_signbit_not_pwr2" has unsupported operation: builtin.unregistered: llvm.icmp @@ -299,5 +281,3 @@ 4: "foo1_and_signbit_lshr_without_shifting_signbit_not_pwr2_logical" has unsupported operation: builtin.unregistered: llvm.icmp -4: "foo1_and_signbit_lshr_without_shifting_signbit_not_pwr2_logical" has unsupported operation: builtin.unregistered: llvm.select - diff --git a/SSA/Projects/InstCombine/tests/logs/operand-complexity.txt b/SSA/Projects/InstCombine/tests/logs/operand-complexity.txt index eba420fe7..04998d95e 100644 --- a/SSA/Projects/InstCombine/tests/logs/operand-complexity.txt +++ b/SSA/Projects/InstCombine/tests/logs/operand-complexity.txt @@ -1,8 +1,14 @@ 1: "neg" -4: "neg" has unsupported operation: llvm.udiv +2: llvm.func +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.udiv +2: llvm.sub +2: llvm.xor +2: llvm.return 1: "neg_vec" -4: "neg_vec" has unsupported operation: llvm.udiv +8: "neg_vec" contains vectors which are unsupported 1: "neg_vec_poison" 4: "neg_vec_poison" has unsupported operation: builtin.unregistered: llvm.mlir.poison @@ -13,13 +19,17 @@ 4: "neg_vec_poison" has unsupported operation: builtin.unregistered: llvm.insertelement -4: "neg_vec_poison" has unsupported operation: llvm.udiv - 1: "not" -4: "not" has unsupported operation: llvm.udiv +2: llvm.func +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.udiv +2: llvm.xor +2: llvm.mul +2: llvm.return 1: "not_vec" -4: "not_vec" has unsupported operation: llvm.udiv +8: "not_vec" contains vectors which are unsupported 1: "not_vec_poison" 4: "not_vec_poison" has unsupported operation: builtin.unregistered: llvm.mlir.poison @@ -30,8 +40,6 @@ 4: "not_vec_poison" has unsupported operation: builtin.unregistered: llvm.insertelement -4: "not_vec_poison" has unsupported operation: llvm.udiv - 1: "use" 5: "use" is empty diff --git a/SSA/Projects/InstCombine/tests/logs/or-fcmp.txt b/SSA/Projects/InstCombine/tests/logs/or-fcmp.txt index c6efc7d07..e12046e11 100644 --- a/SSA/Projects/InstCombine/tests/logs/or-fcmp.txt +++ b/SSA/Projects/InstCombine/tests/logs/or-fcmp.txt @@ -6,8 +6,6 @@ 4: "PR1738_logical" has unsupported operation: builtin.unregistered: llvm.fcmp -4: "PR1738_logical" has unsupported operation: builtin.unregistered: llvm.select - 1: "PR1738_vec_undef" 4: "PR1738_vec_undef" has unsupported operation: llvm.mlir.undef @@ -40,12 +38,8 @@ 4: "PR41069_logical" has unsupported operation: builtin.unregistered: llvm.fcmp -4: "PR41069_logical" has unsupported operation: builtin.unregistered: llvm.select - 4: "PR41069_logical" has unsupported operation: builtin.unregistered: llvm.fcmp -4: "PR41069_logical" has unsupported operation: builtin.unregistered: llvm.select - 1: "PR41069_commute" 4: "PR41069_commute" has unsupported operation: builtin.unregistered: llvm.fcmp @@ -58,10 +52,6 @@ 4: "PR41069_commute_logical" has unsupported operation: builtin.unregistered: llvm.fcmp -4: "PR41069_commute_logical" has unsupported operation: builtin.unregistered: llvm.select - -4: "PR41069_commute_logical" has unsupported operation: builtin.unregistered: llvm.select - 1: "PR41069_vec" 4: "PR41069_vec" has unsupported operation: llvm.mlir.undef @@ -102,8 +92,6 @@ 4: "fcmp_uno_nonzero_logical" has unsupported operation: builtin.unregistered: llvm.fcmp -4: "fcmp_uno_nonzero_logical" has unsupported operation: builtin.unregistered: llvm.select - 1: "fcmp_uno_nonzero_vec" 4: "fcmp_uno_nonzero_vec" has unsupported operation: builtin.unregistered: llvm.fcmp @@ -117,15 +105,11 @@ 4: "auto_gen_0_logical" has unsupported operation after optimization: builtin.unregistered: llvm.fcmp -4: "auto_gen_0_logical" has unsupported operation after optimization: builtin.unregistered: llvm.select - 1: "auto_gen_0_logical_fmf" 4: "auto_gen_0_logical_fmf" has unsupported operation after optimization: builtin.unregistered: llvm.fcmp 4: "auto_gen_0_logical_fmf" has unsupported operation after optimization: builtin.unregistered: llvm.fcmp -4: "auto_gen_0_logical_fmf" has unsupported operation after optimization: builtin.unregistered: llvm.select - 1: "auto_gen_1" 4: "auto_gen_1" has unsupported operation: builtin.unregistered: llvm.fcmp @@ -245,8 +229,6 @@ 4: "auto_gen_13_logical_fmf" has unsupported operation after optimization: builtin.unregistered: llvm.fcmp -4: "auto_gen_13_logical_fmf" has unsupported operation after optimization: builtin.unregistered: llvm.select - 1: "auto_gen_14" 4: "auto_gen_14" has unsupported operation: builtin.unregistered: llvm.fcmp @@ -285,8 +267,6 @@ 4: "auto_gen_17_logical_fmf" has unsupported operation after optimization: builtin.unregistered: llvm.fcmp -4: "auto_gen_17_logical_fmf" has unsupported operation after optimization: builtin.unregistered: llvm.select - 1: "auto_gen_18" 4: "auto_gen_18" has unsupported operation: builtin.unregistered: llvm.fcmp @@ -397,8 +377,6 @@ 4: "auto_gen_29_logical_fmf" has unsupported operation after optimization: builtin.unregistered: llvm.fcmp -4: "auto_gen_29_logical_fmf" has unsupported operation after optimization: builtin.unregistered: llvm.select - 1: "auto_gen_30" 4: "auto_gen_30" has unsupported operation: builtin.unregistered: llvm.fcmp @@ -419,8 +397,6 @@ 4: "auto_gen_31_logical_fmf" has unsupported operation after optimization: builtin.unregistered: llvm.fcmp -4: "auto_gen_31_logical_fmf" has unsupported operation after optimization: builtin.unregistered: llvm.select - 1: "auto_gen_32" 4: "auto_gen_32" has unsupported operation: builtin.unregistered: llvm.fcmp @@ -441,8 +417,6 @@ 4: "auto_gen_33_logical_fmf" has unsupported operation after optimization: builtin.unregistered: llvm.fcmp -4: "auto_gen_33_logical_fmf" has unsupported operation after optimization: builtin.unregistered: llvm.select - 1: "auto_gen_34" 4: "auto_gen_34" has unsupported operation: builtin.unregistered: llvm.fcmp @@ -463,8 +437,6 @@ 4: "auto_gen_35_logical_fmf" has unsupported operation after optimization: builtin.unregistered: llvm.fcmp -4: "auto_gen_35_logical_fmf" has unsupported operation after optimization: builtin.unregistered: llvm.select - 1: "auto_gen_36" 4: "auto_gen_36" has unsupported operation: builtin.unregistered: llvm.fcmp @@ -529,15 +501,11 @@ 4: "auto_gen_42_logical" has unsupported operation after optimization: builtin.unregistered: llvm.fcmp -4: "auto_gen_42_logical" has unsupported operation after optimization: builtin.unregistered: llvm.select - 1: "auto_gen_42_logical_fmf" 4: "auto_gen_42_logical_fmf" has unsupported operation after optimization: builtin.unregistered: llvm.fcmp 4: "auto_gen_42_logical_fmf" has unsupported operation after optimization: builtin.unregistered: llvm.fcmp -4: "auto_gen_42_logical_fmf" has unsupported operation after optimization: builtin.unregistered: llvm.select - 1: "auto_gen_43" 4: "auto_gen_43" has unsupported operation after optimization: builtin.unregistered: llvm.fcmp @@ -548,15 +516,11 @@ 4: "auto_gen_43_logical" has unsupported operation after optimization: builtin.unregistered: llvm.fcmp -4: "auto_gen_43_logical" has unsupported operation after optimization: builtin.unregistered: llvm.select - 1: "auto_gen_43_logical_fmf" 4: "auto_gen_43_logical_fmf" has unsupported operation after optimization: builtin.unregistered: llvm.fcmp 4: "auto_gen_43_logical_fmf" has unsupported operation after optimization: builtin.unregistered: llvm.fcmp -4: "auto_gen_43_logical_fmf" has unsupported operation after optimization: builtin.unregistered: llvm.select - 1: "auto_gen_44" 4: "auto_gen_44" has unsupported operation: builtin.unregistered: llvm.fcmp @@ -621,15 +585,11 @@ 4: "auto_gen_50_logical" has unsupported operation after optimization: builtin.unregistered: llvm.fcmp -4: "auto_gen_50_logical" has unsupported operation after optimization: builtin.unregistered: llvm.select - 1: "auto_gen_50_logical_fmf" 4: "auto_gen_50_logical_fmf" has unsupported operation after optimization: builtin.unregistered: llvm.fcmp 4: "auto_gen_50_logical_fmf" has unsupported operation after optimization: builtin.unregistered: llvm.fcmp -4: "auto_gen_50_logical_fmf" has unsupported operation after optimization: builtin.unregistered: llvm.select - 1: "auto_gen_51" 4: "auto_gen_51" has unsupported operation: builtin.unregistered: llvm.fcmp @@ -649,15 +609,11 @@ 4: "auto_gen_52_logical" has unsupported operation after optimization: builtin.unregistered: llvm.fcmp -4: "auto_gen_52_logical" has unsupported operation after optimization: builtin.unregistered: llvm.select - 1: "auto_gen_52_logical_fmf" 4: "auto_gen_52_logical_fmf" has unsupported operation after optimization: builtin.unregistered: llvm.fcmp 4: "auto_gen_52_logical_fmf" has unsupported operation after optimization: builtin.unregistered: llvm.fcmp -4: "auto_gen_52_logical_fmf" has unsupported operation after optimization: builtin.unregistered: llvm.select - 1: "auto_gen_53" 4: "auto_gen_53" has unsupported operation: builtin.unregistered: llvm.fcmp @@ -722,15 +678,11 @@ 4: "auto_gen_59_logical" has unsupported operation after optimization: builtin.unregistered: llvm.fcmp -4: "auto_gen_59_logical" has unsupported operation after optimization: builtin.unregistered: llvm.select - 1: "auto_gen_59_logical_fmf" 4: "auto_gen_59_logical_fmf" has unsupported operation after optimization: builtin.unregistered: llvm.fcmp 4: "auto_gen_59_logical_fmf" has unsupported operation after optimization: builtin.unregistered: llvm.fcmp -4: "auto_gen_59_logical_fmf" has unsupported operation after optimization: builtin.unregistered: llvm.select - 1: "auto_gen_60" 4: "auto_gen_60" has unsupported operation after optimization: builtin.unregistered: llvm.fcmp @@ -741,15 +693,11 @@ 4: "auto_gen_60_logical" has unsupported operation after optimization: builtin.unregistered: llvm.fcmp -4: "auto_gen_60_logical" has unsupported operation after optimization: builtin.unregistered: llvm.select - 1: "auto_gen_60_logical_fmf" 4: "auto_gen_60_logical_fmf" has unsupported operation after optimization: builtin.unregistered: llvm.fcmp 4: "auto_gen_60_logical_fmf" has unsupported operation after optimization: builtin.unregistered: llvm.fcmp -4: "auto_gen_60_logical_fmf" has unsupported operation after optimization: builtin.unregistered: llvm.select - 1: "auto_gen_61" 4: "auto_gen_61" has unsupported operation after optimization: builtin.unregistered: llvm.fcmp @@ -760,15 +708,11 @@ 4: "auto_gen_61_logical" has unsupported operation after optimization: builtin.unregistered: llvm.fcmp -4: "auto_gen_61_logical" has unsupported operation after optimization: builtin.unregistered: llvm.select - 1: "auto_gen_61_logical_fmf" 4: "auto_gen_61_logical_fmf" has unsupported operation after optimization: builtin.unregistered: llvm.fcmp 4: "auto_gen_61_logical_fmf" has unsupported operation after optimization: builtin.unregistered: llvm.fcmp -4: "auto_gen_61_logical_fmf" has unsupported operation after optimization: builtin.unregistered: llvm.select - 1: "auto_gen_62" 4: "auto_gen_62" has unsupported operation after optimization: builtin.unregistered: llvm.fcmp @@ -779,15 +723,11 @@ 4: "auto_gen_62_logical" has unsupported operation after optimization: builtin.unregistered: llvm.fcmp -4: "auto_gen_62_logical" has unsupported operation after optimization: builtin.unregistered: llvm.select - 1: "auto_gen_62_logical_fmf" 4: "auto_gen_62_logical_fmf" has unsupported operation after optimization: builtin.unregistered: llvm.fcmp 4: "auto_gen_62_logical_fmf" has unsupported operation after optimization: builtin.unregistered: llvm.fcmp -4: "auto_gen_62_logical_fmf" has unsupported operation after optimization: builtin.unregistered: llvm.select - 1: "auto_gen_63" 4: "auto_gen_63" has unsupported operation: builtin.unregistered: llvm.fcmp @@ -852,15 +792,11 @@ 4: "auto_gen_69_logical" has unsupported operation after optimization: builtin.unregistered: llvm.fcmp -4: "auto_gen_69_logical" has unsupported operation after optimization: builtin.unregistered: llvm.select - 1: "auto_gen_69_logical_fmf" 4: "auto_gen_69_logical_fmf" has unsupported operation after optimization: builtin.unregistered: llvm.fcmp 4: "auto_gen_69_logical_fmf" has unsupported operation after optimization: builtin.unregistered: llvm.fcmp -4: "auto_gen_69_logical_fmf" has unsupported operation after optimization: builtin.unregistered: llvm.select - 1: "auto_gen_70" 4: "auto_gen_70" has unsupported operation: builtin.unregistered: llvm.fcmp @@ -898,15 +834,11 @@ 4: "auto_gen_73_logical" has unsupported operation after optimization: builtin.unregistered: llvm.fcmp -4: "auto_gen_73_logical" has unsupported operation after optimization: builtin.unregistered: llvm.select - 1: "auto_gen_73_logical_fmf" 4: "auto_gen_73_logical_fmf" has unsupported operation after optimization: builtin.unregistered: llvm.fcmp 4: "auto_gen_73_logical_fmf" has unsupported operation after optimization: builtin.unregistered: llvm.fcmp -4: "auto_gen_73_logical_fmf" has unsupported operation after optimization: builtin.unregistered: llvm.select - 1: "auto_gen_74" 4: "auto_gen_74" has unsupported operation: builtin.unregistered: llvm.fcmp @@ -935,15 +867,11 @@ 4: "auto_gen_76_logical" has unsupported operation after optimization: builtin.unregistered: llvm.fcmp -4: "auto_gen_76_logical" has unsupported operation after optimization: builtin.unregistered: llvm.select - 1: "auto_gen_76_logical_fmf" 4: "auto_gen_76_logical_fmf" has unsupported operation after optimization: builtin.unregistered: llvm.fcmp 4: "auto_gen_76_logical_fmf" has unsupported operation after optimization: builtin.unregistered: llvm.fcmp -4: "auto_gen_76_logical_fmf" has unsupported operation after optimization: builtin.unregistered: llvm.select - 1: "auto_gen_77" 4: "auto_gen_77" has unsupported operation: builtin.unregistered: llvm.fcmp @@ -981,15 +909,11 @@ 4: "auto_gen_80_logical" has unsupported operation after optimization: builtin.unregistered: llvm.fcmp -4: "auto_gen_80_logical" has unsupported operation after optimization: builtin.unregistered: llvm.select - 1: "auto_gen_80_logical_fmf" 4: "auto_gen_80_logical_fmf" has unsupported operation after optimization: builtin.unregistered: llvm.fcmp 4: "auto_gen_80_logical_fmf" has unsupported operation after optimization: builtin.unregistered: llvm.fcmp -4: "auto_gen_80_logical_fmf" has unsupported operation after optimization: builtin.unregistered: llvm.select - 1: "auto_gen_81" 4: "auto_gen_81" has unsupported operation after optimization: builtin.unregistered: llvm.fcmp @@ -1000,15 +924,11 @@ 4: "auto_gen_81_logical" has unsupported operation after optimization: builtin.unregistered: llvm.fcmp -4: "auto_gen_81_logical" has unsupported operation after optimization: builtin.unregistered: llvm.select - 1: "auto_gen_81_logical_fmf" 4: "auto_gen_81_logical_fmf" has unsupported operation after optimization: builtin.unregistered: llvm.fcmp 4: "auto_gen_81_logical_fmf" has unsupported operation after optimization: builtin.unregistered: llvm.fcmp -4: "auto_gen_81_logical_fmf" has unsupported operation after optimization: builtin.unregistered: llvm.select - 1: "auto_gen_82" 4: "auto_gen_82" has unsupported operation: builtin.unregistered: llvm.fcmp @@ -1037,15 +957,11 @@ 4: "auto_gen_84_logical" has unsupported operation after optimization: builtin.unregistered: llvm.fcmp -4: "auto_gen_84_logical" has unsupported operation after optimization: builtin.unregistered: llvm.select - 1: "auto_gen_84_logical_fmf" 4: "auto_gen_84_logical_fmf" has unsupported operation after optimization: builtin.unregistered: llvm.fcmp 4: "auto_gen_84_logical_fmf" has unsupported operation after optimization: builtin.unregistered: llvm.fcmp -4: "auto_gen_84_logical_fmf" has unsupported operation after optimization: builtin.unregistered: llvm.select - 1: "auto_gen_85" 4: "auto_gen_85" has unsupported operation after optimization: builtin.unregistered: llvm.fcmp @@ -1056,15 +972,11 @@ 4: "auto_gen_85_logical" has unsupported operation after optimization: builtin.unregistered: llvm.fcmp -4: "auto_gen_85_logical" has unsupported operation after optimization: builtin.unregistered: llvm.select - 1: "auto_gen_85_logical_fmf" 4: "auto_gen_85_logical_fmf" has unsupported operation after optimization: builtin.unregistered: llvm.fcmp 4: "auto_gen_85_logical_fmf" has unsupported operation after optimization: builtin.unregistered: llvm.fcmp -4: "auto_gen_85_logical_fmf" has unsupported operation after optimization: builtin.unregistered: llvm.select - 1: "auto_gen_86" 4: "auto_gen_86" has unsupported operation: builtin.unregistered: llvm.fcmp @@ -1084,15 +996,11 @@ 4: "auto_gen_87_logical" has unsupported operation after optimization: builtin.unregistered: llvm.fcmp -4: "auto_gen_87_logical" has unsupported operation after optimization: builtin.unregistered: llvm.select - 1: "auto_gen_87_logical_fmf" 4: "auto_gen_87_logical_fmf" has unsupported operation after optimization: builtin.unregistered: llvm.fcmp 4: "auto_gen_87_logical_fmf" has unsupported operation after optimization: builtin.unregistered: llvm.fcmp -4: "auto_gen_87_logical_fmf" has unsupported operation after optimization: builtin.unregistered: llvm.select - 1: "auto_gen_88" 4: "auto_gen_88" has unsupported operation after optimization: builtin.unregistered: llvm.fcmp @@ -1103,15 +1011,11 @@ 4: "auto_gen_88_logical" has unsupported operation after optimization: builtin.unregistered: llvm.fcmp -4: "auto_gen_88_logical" has unsupported operation after optimization: builtin.unregistered: llvm.select - 1: "auto_gen_88_logical_fmf" 4: "auto_gen_88_logical_fmf" has unsupported operation after optimization: builtin.unregistered: llvm.fcmp 4: "auto_gen_88_logical_fmf" has unsupported operation after optimization: builtin.unregistered: llvm.fcmp -4: "auto_gen_88_logical_fmf" has unsupported operation after optimization: builtin.unregistered: llvm.select - 1: "auto_gen_89" 4: "auto_gen_89" has unsupported operation: builtin.unregistered: llvm.fcmp @@ -1149,15 +1053,11 @@ 4: "auto_gen_92_logical" has unsupported operation after optimization: builtin.unregistered: llvm.fcmp -4: "auto_gen_92_logical" has unsupported operation after optimization: builtin.unregistered: llvm.select - 1: "auto_gen_92_logical_fmf" 4: "auto_gen_92_logical_fmf" has unsupported operation after optimization: builtin.unregistered: llvm.fcmp 4: "auto_gen_92_logical_fmf" has unsupported operation after optimization: builtin.unregistered: llvm.fcmp -4: "auto_gen_92_logical_fmf" has unsupported operation after optimization: builtin.unregistered: llvm.select - 1: "auto_gen_93" 4: "auto_gen_93" has unsupported operation: builtin.unregistered: llvm.fcmp @@ -1177,15 +1077,11 @@ 4: "auto_gen_94_logical" has unsupported operation after optimization: builtin.unregistered: llvm.fcmp -4: "auto_gen_94_logical" has unsupported operation after optimization: builtin.unregistered: llvm.select - 1: "auto_gen_94_logical_fmf" 4: "auto_gen_94_logical_fmf" has unsupported operation after optimization: builtin.unregistered: llvm.fcmp 4: "auto_gen_94_logical_fmf" has unsupported operation after optimization: builtin.unregistered: llvm.fcmp -4: "auto_gen_94_logical_fmf" has unsupported operation after optimization: builtin.unregistered: llvm.select - 1: "auto_gen_95" 4: "auto_gen_95" has unsupported operation: builtin.unregistered: llvm.fcmp @@ -1205,15 +1101,11 @@ 4: "auto_gen_96_logical" has unsupported operation after optimization: builtin.unregistered: llvm.fcmp -4: "auto_gen_96_logical" has unsupported operation after optimization: builtin.unregistered: llvm.select - 1: "auto_gen_96_logical_fmf" 4: "auto_gen_96_logical_fmf" has unsupported operation after optimization: builtin.unregistered: llvm.fcmp 4: "auto_gen_96_logical_fmf" has unsupported operation after optimization: builtin.unregistered: llvm.fcmp -4: "auto_gen_96_logical_fmf" has unsupported operation after optimization: builtin.unregistered: llvm.select - 1: "auto_gen_97" 4: "auto_gen_97" has unsupported operation: builtin.unregistered: llvm.fcmp @@ -1233,15 +1125,11 @@ 4: "auto_gen_98_logical" has unsupported operation after optimization: builtin.unregistered: llvm.fcmp -4: "auto_gen_98_logical" has unsupported operation after optimization: builtin.unregistered: llvm.select - 1: "auto_gen_98_logical_fmf" 4: "auto_gen_98_logical_fmf" has unsupported operation after optimization: builtin.unregistered: llvm.fcmp 4: "auto_gen_98_logical_fmf" has unsupported operation after optimization: builtin.unregistered: llvm.fcmp -4: "auto_gen_98_logical_fmf" has unsupported operation after optimization: builtin.unregistered: llvm.select - 1: "auto_gen_99" 4: "auto_gen_99" has unsupported operation after optimization: builtin.unregistered: llvm.fcmp @@ -1252,15 +1140,11 @@ 4: "auto_gen_99_logical" has unsupported operation after optimization: builtin.unregistered: llvm.fcmp -4: "auto_gen_99_logical" has unsupported operation after optimization: builtin.unregistered: llvm.select - 1: "auto_gen_99_logical_fmf" 4: "auto_gen_99_logical_fmf" has unsupported operation after optimization: builtin.unregistered: llvm.fcmp 4: "auto_gen_99_logical_fmf" has unsupported operation after optimization: builtin.unregistered: llvm.fcmp -4: "auto_gen_99_logical_fmf" has unsupported operation after optimization: builtin.unregistered: llvm.select - 1: "auto_gen_100" 4: "auto_gen_100" has unsupported operation: builtin.unregistered: llvm.fcmp @@ -1280,15 +1164,11 @@ 4: "auto_gen_101_logical" has unsupported operation after optimization: builtin.unregistered: llvm.fcmp -4: "auto_gen_101_logical" has unsupported operation after optimization: builtin.unregistered: llvm.select - 1: "auto_gen_101_logical_fmf" 4: "auto_gen_101_logical_fmf" has unsupported operation after optimization: builtin.unregistered: llvm.fcmp 4: "auto_gen_101_logical_fmf" has unsupported operation after optimization: builtin.unregistered: llvm.fcmp -4: "auto_gen_101_logical_fmf" has unsupported operation after optimization: builtin.unregistered: llvm.select - 1: "auto_gen_102" 4: "auto_gen_102" has unsupported operation: builtin.unregistered: llvm.fcmp @@ -1308,15 +1188,11 @@ 4: "auto_gen_103_logical" has unsupported operation after optimization: builtin.unregistered: llvm.fcmp -4: "auto_gen_103_logical" has unsupported operation after optimization: builtin.unregistered: llvm.select - 1: "auto_gen_103_logical_fmf" 4: "auto_gen_103_logical_fmf" has unsupported operation after optimization: builtin.unregistered: llvm.fcmp 4: "auto_gen_103_logical_fmf" has unsupported operation after optimization: builtin.unregistered: llvm.fcmp -4: "auto_gen_103_logical_fmf" has unsupported operation after optimization: builtin.unregistered: llvm.select - 1: "auto_gen_104" 4: "auto_gen_104" has unsupported operation: builtin.unregistered: llvm.fcmp @@ -1337,8 +1213,6 @@ 4: "auto_gen_105_logical_fmf" has unsupported operation after optimization: builtin.unregistered: llvm.fcmp -4: "auto_gen_105_logical_fmf" has unsupported operation after optimization: builtin.unregistered: llvm.select - 1: "auto_gen_106" 4: "auto_gen_106" has unsupported operation: builtin.unregistered: llvm.fcmp @@ -1403,15 +1277,11 @@ 4: "auto_gen_112_logical" has unsupported operation after optimization: builtin.unregistered: llvm.fcmp -4: "auto_gen_112_logical" has unsupported operation after optimization: builtin.unregistered: llvm.select - 1: "auto_gen_112_logical_fmf" 4: "auto_gen_112_logical_fmf" has unsupported operation after optimization: builtin.unregistered: llvm.fcmp 4: "auto_gen_112_logical_fmf" has unsupported operation after optimization: builtin.unregistered: llvm.fcmp -4: "auto_gen_112_logical_fmf" has unsupported operation after optimization: builtin.unregistered: llvm.select - 1: "auto_gen_113" 4: "auto_gen_113" has unsupported operation: builtin.unregistered: llvm.fcmp @@ -1477,8 +1347,6 @@ 4: "auto_gen_119_logical_fmf" has unsupported operation after optimization: builtin.unregistered: llvm.fcmp -4: "auto_gen_119_logical_fmf" has unsupported operation after optimization: builtin.unregistered: llvm.select - 1: "auto_gen_120" 4: "auto_gen_120" has unsupported operation after optimization: builtin.unregistered: llvm.fcmp @@ -1489,15 +1357,11 @@ 4: "auto_gen_120_logical" has unsupported operation after optimization: builtin.unregistered: llvm.fcmp -4: "auto_gen_120_logical" has unsupported operation after optimization: builtin.unregistered: llvm.select - 1: "auto_gen_120_logical_fmf" 4: "auto_gen_120_logical_fmf" has unsupported operation after optimization: builtin.unregistered: llvm.fcmp 4: "auto_gen_120_logical_fmf" has unsupported operation after optimization: builtin.unregistered: llvm.fcmp -4: "auto_gen_120_logical_fmf" has unsupported operation after optimization: builtin.unregistered: llvm.select - 1: "auto_gen_121" 4: "auto_gen_121" has unsupported operation after optimization: builtin.unregistered: llvm.fcmp @@ -1508,15 +1372,11 @@ 4: "auto_gen_121_logical" has unsupported operation after optimization: builtin.unregistered: llvm.fcmp -4: "auto_gen_121_logical" has unsupported operation after optimization: builtin.unregistered: llvm.select - 1: "auto_gen_121_logical_fmf" 4: "auto_gen_121_logical_fmf" has unsupported operation after optimization: builtin.unregistered: llvm.fcmp 4: "auto_gen_121_logical_fmf" has unsupported operation after optimization: builtin.unregistered: llvm.fcmp -4: "auto_gen_121_logical_fmf" has unsupported operation after optimization: builtin.unregistered: llvm.select - 1: "auto_gen_122" 4: "auto_gen_122" has unsupported operation after optimization: builtin.unregistered: llvm.fcmp @@ -1527,15 +1387,11 @@ 4: "auto_gen_122_logical" has unsupported operation after optimization: builtin.unregistered: llvm.fcmp -4: "auto_gen_122_logical" has unsupported operation after optimization: builtin.unregistered: llvm.select - 1: "auto_gen_122_logical_fmf" 4: "auto_gen_122_logical_fmf" has unsupported operation after optimization: builtin.unregistered: llvm.fcmp 4: "auto_gen_122_logical_fmf" has unsupported operation after optimization: builtin.unregistered: llvm.fcmp -4: "auto_gen_122_logical_fmf" has unsupported operation after optimization: builtin.unregistered: llvm.select - 1: "auto_gen_123" 4: "auto_gen_123" has unsupported operation after optimization: builtin.unregistered: llvm.fcmp @@ -1546,15 +1402,11 @@ 4: "auto_gen_123_logical" has unsupported operation after optimization: builtin.unregistered: llvm.fcmp -4: "auto_gen_123_logical" has unsupported operation after optimization: builtin.unregistered: llvm.select - 1: "auto_gen_123_logical_fmf" 4: "auto_gen_123_logical_fmf" has unsupported operation after optimization: builtin.unregistered: llvm.fcmp 4: "auto_gen_123_logical_fmf" has unsupported operation after optimization: builtin.unregistered: llvm.fcmp -4: "auto_gen_123_logical_fmf" has unsupported operation after optimization: builtin.unregistered: llvm.select - 1: "auto_gen_124" 4: "auto_gen_124" has unsupported operation after optimization: builtin.unregistered: llvm.fcmp @@ -1565,15 +1417,11 @@ 4: "auto_gen_124_logical" has unsupported operation after optimization: builtin.unregistered: llvm.fcmp -4: "auto_gen_124_logical" has unsupported operation after optimization: builtin.unregistered: llvm.select - 1: "auto_gen_124_logical_fmf" 4: "auto_gen_124_logical_fmf" has unsupported operation after optimization: builtin.unregistered: llvm.fcmp 4: "auto_gen_124_logical_fmf" has unsupported operation after optimization: builtin.unregistered: llvm.fcmp -4: "auto_gen_124_logical_fmf" has unsupported operation after optimization: builtin.unregistered: llvm.select - 1: "auto_gen_125" 4: "auto_gen_125" has unsupported operation after optimization: builtin.unregistered: llvm.fcmp @@ -1584,15 +1432,11 @@ 4: "auto_gen_125_logical" has unsupported operation after optimization: builtin.unregistered: llvm.fcmp -4: "auto_gen_125_logical" has unsupported operation after optimization: builtin.unregistered: llvm.select - 1: "auto_gen_125_logical_fmf" 4: "auto_gen_125_logical_fmf" has unsupported operation after optimization: builtin.unregistered: llvm.fcmp 4: "auto_gen_125_logical_fmf" has unsupported operation after optimization: builtin.unregistered: llvm.fcmp -4: "auto_gen_125_logical_fmf" has unsupported operation after optimization: builtin.unregistered: llvm.select - 1: "auto_gen_126" 4: "auto_gen_126" has unsupported operation after optimization: builtin.unregistered: llvm.fcmp @@ -1603,15 +1447,11 @@ 4: "auto_gen_126_logical" has unsupported operation after optimization: builtin.unregistered: llvm.fcmp -4: "auto_gen_126_logical" has unsupported operation after optimization: builtin.unregistered: llvm.select - 1: "auto_gen_126_logical_fmf" 4: "auto_gen_126_logical_fmf" has unsupported operation after optimization: builtin.unregistered: llvm.fcmp 4: "auto_gen_126_logical_fmf" has unsupported operation after optimization: builtin.unregistered: llvm.fcmp -4: "auto_gen_126_logical_fmf" has unsupported operation after optimization: builtin.unregistered: llvm.select - 1: "auto_gen_127" 4: "auto_gen_127" has unsupported operation after optimization: builtin.unregistered: llvm.fcmp @@ -1622,15 +1462,11 @@ 4: "auto_gen_127_logical" has unsupported operation after optimization: builtin.unregistered: llvm.fcmp -4: "auto_gen_127_logical" has unsupported operation after optimization: builtin.unregistered: llvm.select - 1: "auto_gen_127_logical_fmf" 4: "auto_gen_127_logical_fmf" has unsupported operation after optimization: builtin.unregistered: llvm.fcmp 4: "auto_gen_127_logical_fmf" has unsupported operation after optimization: builtin.unregistered: llvm.fcmp -4: "auto_gen_127_logical_fmf" has unsupported operation after optimization: builtin.unregistered: llvm.select - 1: "auto_gen_128" 4: "auto_gen_128" has unsupported operation after optimization: builtin.unregistered: llvm.fcmp @@ -1641,15 +1477,11 @@ 4: "auto_gen_128_logical" has unsupported operation after optimization: builtin.unregistered: llvm.fcmp -4: "auto_gen_128_logical" has unsupported operation after optimization: builtin.unregistered: llvm.select - 1: "auto_gen_128_logical_fmf" 4: "auto_gen_128_logical_fmf" has unsupported operation after optimization: builtin.unregistered: llvm.fcmp 4: "auto_gen_128_logical_fmf" has unsupported operation after optimization: builtin.unregistered: llvm.fcmp -4: "auto_gen_128_logical_fmf" has unsupported operation after optimization: builtin.unregistered: llvm.select - 1: "auto_gen_129" 4: "auto_gen_129" has unsupported operation after optimization: builtin.unregistered: llvm.fcmp @@ -1660,15 +1492,11 @@ 4: "auto_gen_129_logical" has unsupported operation after optimization: builtin.unregistered: llvm.fcmp -4: "auto_gen_129_logical" has unsupported operation after optimization: builtin.unregistered: llvm.select - 1: "auto_gen_129_logical_fmf" 4: "auto_gen_129_logical_fmf" has unsupported operation after optimization: builtin.unregistered: llvm.fcmp 4: "auto_gen_129_logical_fmf" has unsupported operation after optimization: builtin.unregistered: llvm.fcmp -4: "auto_gen_129_logical_fmf" has unsupported operation after optimization: builtin.unregistered: llvm.select - 1: "auto_gen_130" 4: "auto_gen_130" has unsupported operation after optimization: builtin.unregistered: llvm.fcmp @@ -1679,15 +1507,11 @@ 4: "auto_gen_130_logical" has unsupported operation after optimization: builtin.unregistered: llvm.fcmp -4: "auto_gen_130_logical" has unsupported operation after optimization: builtin.unregistered: llvm.select - 1: "auto_gen_130_logical_fmf" 4: "auto_gen_130_logical_fmf" has unsupported operation after optimization: builtin.unregistered: llvm.fcmp 4: "auto_gen_130_logical_fmf" has unsupported operation after optimization: builtin.unregistered: llvm.fcmp -4: "auto_gen_130_logical_fmf" has unsupported operation after optimization: builtin.unregistered: llvm.select - 1: "auto_gen_131" 4: "auto_gen_131" has unsupported operation after optimization: builtin.unregistered: llvm.fcmp @@ -1698,15 +1522,11 @@ 4: "auto_gen_131_logical" has unsupported operation after optimization: builtin.unregistered: llvm.fcmp -4: "auto_gen_131_logical" has unsupported operation after optimization: builtin.unregistered: llvm.select - 1: "auto_gen_131_logical_fmf" 4: "auto_gen_131_logical_fmf" has unsupported operation after optimization: builtin.unregistered: llvm.fcmp 4: "auto_gen_131_logical_fmf" has unsupported operation after optimization: builtin.unregistered: llvm.fcmp -4: "auto_gen_131_logical_fmf" has unsupported operation after optimization: builtin.unregistered: llvm.select - 1: "auto_gen_132" 4: "auto_gen_132" has unsupported operation after optimization: builtin.unregistered: llvm.fcmp @@ -1717,15 +1537,11 @@ 4: "auto_gen_132_logical" has unsupported operation after optimization: builtin.unregistered: llvm.fcmp -4: "auto_gen_132_logical" has unsupported operation after optimization: builtin.unregistered: llvm.select - 1: "auto_gen_132_logical_fmf" 4: "auto_gen_132_logical_fmf" has unsupported operation after optimization: builtin.unregistered: llvm.fcmp 4: "auto_gen_132_logical_fmf" has unsupported operation after optimization: builtin.unregistered: llvm.fcmp -4: "auto_gen_132_logical_fmf" has unsupported operation after optimization: builtin.unregistered: llvm.select - 1: "auto_gen_133" 4: "auto_gen_133" has unsupported operation after optimization: builtin.unregistered: llvm.fcmp @@ -1736,15 +1552,11 @@ 4: "auto_gen_133_logical" has unsupported operation after optimization: builtin.unregistered: llvm.fcmp -4: "auto_gen_133_logical" has unsupported operation after optimization: builtin.unregistered: llvm.select - 1: "auto_gen_133_logical_fmf" 4: "auto_gen_133_logical_fmf" has unsupported operation after optimization: builtin.unregistered: llvm.fcmp 4: "auto_gen_133_logical_fmf" has unsupported operation after optimization: builtin.unregistered: llvm.fcmp -4: "auto_gen_133_logical_fmf" has unsupported operation after optimization: builtin.unregistered: llvm.select - 1: "auto_gen_134" 4: "auto_gen_134" has unsupported operation after optimization: builtin.unregistered: llvm.fcmp @@ -1755,15 +1567,11 @@ 4: "auto_gen_134_logical" has unsupported operation after optimization: builtin.unregistered: llvm.fcmp -4: "auto_gen_134_logical" has unsupported operation after optimization: builtin.unregistered: llvm.select - 1: "auto_gen_134_logical_fmf" 4: "auto_gen_134_logical_fmf" has unsupported operation after optimization: builtin.unregistered: llvm.fcmp 4: "auto_gen_134_logical_fmf" has unsupported operation after optimization: builtin.unregistered: llvm.fcmp -4: "auto_gen_134_logical_fmf" has unsupported operation after optimization: builtin.unregistered: llvm.select - 1: "auto_gen_135" 4: "auto_gen_135" has unsupported operation after optimization: builtin.unregistered: llvm.fcmp @@ -1774,15 +1582,11 @@ 4: "auto_gen_135_logical" has unsupported operation after optimization: builtin.unregistered: llvm.fcmp -4: "auto_gen_135_logical" has unsupported operation after optimization: builtin.unregistered: llvm.select - 1: "auto_gen_135_logical_fmf" 4: "auto_gen_135_logical_fmf" has unsupported operation after optimization: builtin.unregistered: llvm.fcmp 4: "auto_gen_135_logical_fmf" has unsupported operation after optimization: builtin.unregistered: llvm.fcmp -4: "auto_gen_135_logical_fmf" has unsupported operation after optimization: builtin.unregistered: llvm.select - 1: "intersect_fmf_1" 4: "intersect_fmf_1" has unsupported operation: builtin.unregistered: llvm.fcmp diff --git a/SSA/Projects/InstCombine/tests/logs/or-xor-xor.txt b/SSA/Projects/InstCombine/tests/logs/or-xor-xor.txt index f8ec51df2..a5470fdaf 100644 --- a/SSA/Projects/InstCombine/tests/logs/or-xor-xor.txt +++ b/SSA/Projects/InstCombine/tests/logs/or-xor-xor.txt @@ -50,7 +50,7 @@ 2: llvm.return 1: "or_xor_xor_normal_vector" -"or_xor_xor_normal_vector" contains vectors which are unsupported +8: "or_xor_xor_normal_vector" contains vectors which are unsupported 1: "or_xor_xor_normal_multiple_uses_and" 4: "or_xor_xor_normal_multiple_uses_and" has unsupported operation: llvm.mlir.addressof diff --git a/SSA/Projects/InstCombine/tests/logs/or-xor.txt b/SSA/Projects/InstCombine/tests/logs/or-xor.txt index a7b88b260..1f1ca6a8b 100644 --- a/SSA/Projects/InstCombine/tests/logs/or-xor.txt +++ b/SSA/Projects/InstCombine/tests/logs/or-xor.txt @@ -42,7 +42,7 @@ 2: llvm.return 1: "test5_commuted" -"test5_commuted" contains vectors which are unsupported +8: "test5_commuted" contains vectors which are unsupported 1: "test5_commuted_x_y" 2: llvm.func @@ -227,10 +227,10 @@ 2: llvm.return 1: "or_and_xor_not_constant_commute2_splat" -"or_and_xor_not_constant_commute2_splat" contains vectors which are unsupported +8: "or_and_xor_not_constant_commute2_splat" contains vectors which are unsupported 1: "or_and_xor_not_constant_commute3_splat" -"or_and_xor_not_constant_commute3_splat" contains vectors which are unsupported +8: "or_and_xor_not_constant_commute3_splat" contains vectors which are unsupported 1: "not_or" 7: "not_or" is unchanged by InstCombine @@ -354,7 +354,7 @@ 2: llvm.return 1: "test23v" -"test23v" contains vectors which are unsupported +8: "test23v" contains vectors which are unsupported 1: "PR45977_f1" 2: llvm.func @@ -394,7 +394,7 @@ 4: "or_xor_common_op_commute3" has unsupported operation: llvm.call 1: "or_xor_common_op_commute4" -"or_xor_common_op_commute4" contains vectors which are unsupported +8: "or_xor_common_op_commute4" contains vectors which are unsupported 1: "or_xor_common_op_commute5" 2: llvm.func @@ -455,7 +455,7 @@ 2: llvm.return 1: "or_not_xor_common_op_commute4" -"or_not_xor_common_op_commute4" contains vectors which are unsupported +8: "or_not_xor_common_op_commute4" contains vectors which are unsupported 1: "or_not_xor_common_op_commute5" 2: llvm.func @@ -504,7 +504,7 @@ 2: llvm.return 1: "or_nand_xor_common_op_commute1" -"or_nand_xor_common_op_commute1" contains vectors which are unsupported +8: "or_nand_xor_common_op_commute1" contains vectors which are unsupported 1: "or_nand_xor_common_op_commute2" 4: "or_nand_xor_common_op_commute2" has unsupported operation: llvm.call diff --git a/SSA/Projects/InstCombine/tests/logs/overflow-mul.txt b/SSA/Projects/InstCombine/tests/logs/overflow-mul.txt index ddf9435c0..0d3d00c3e 100644 --- a/SSA/Projects/InstCombine/tests/logs/overflow-mul.txt +++ b/SSA/Projects/InstCombine/tests/logs/overflow-mul.txt @@ -22,8 +22,6 @@ 4: "pr4917_2" has unsupported operation: llvm.extractvalue -4: "pr4917_2" has unsupported operation: builtin.unregistered: llvm.select - 1: "pr4917_3" 4: "pr4917_3" has unsupported operation: builtin.unregistered: llvm.zext @@ -31,8 +29,6 @@ 4: "pr4917_3" has unsupported operation: builtin.unregistered: llvm.icmp -4: "pr4917_3" has unsupported operation: builtin.unregistered: llvm.select - 1: "pr4917_4" 4: "pr4917_4" has unsupported operation: builtin.unregistered: llvm.intr.umul.with.overflow @@ -56,8 +52,6 @@ 4: "pr4917_5" has unsupported operation: llvm.extractvalue -4: "pr4917_5" has unsupported operation: builtin.unregistered: llvm.select - 1: "pr4918_1" 4: "pr4918_1" has unsupported operation: builtin.unregistered: llvm.intr.umul.with.overflow diff --git a/SSA/Projects/InstCombine/tests/logs/overflow_to_sat.txt b/SSA/Projects/InstCombine/tests/logs/overflow_to_sat.txt index 6f460a39e..a1c7eb557 100644 --- a/SSA/Projects/InstCombine/tests/logs/overflow_to_sat.txt +++ b/SSA/Projects/InstCombine/tests/logs/overflow_to_sat.txt @@ -13,10 +13,6 @@ 4: "sadd_x_lt_min" has unsupported operation: builtin.unregistered: llvm.icmp -4: "sadd_x_lt_min" has unsupported operation: builtin.unregistered: llvm.select - -4: "sadd_x_lt_min" has unsupported operation: builtin.unregistered: llvm.select - 1: "sadd_x_lt_max" 4: "sadd_x_lt_max" has unsupported operation: builtin.unregistered: llvm.intr.sadd.sat @@ -29,10 +25,6 @@ 4: "sadd_x_le_min" has unsupported operation: builtin.unregistered: llvm.icmp -4: "sadd_x_le_min" has unsupported operation: builtin.unregistered: llvm.select - -4: "sadd_x_le_min" has unsupported operation: builtin.unregistered: llvm.select - 1: "sadd_x_le_max" 4: "sadd_x_le_max" has unsupported operation: builtin.unregistered: llvm.intr.sadd.sat @@ -48,10 +40,6 @@ 4: "sadd_x_gt_max" has unsupported operation: builtin.unregistered: llvm.icmp -4: "sadd_x_gt_max" has unsupported operation: builtin.unregistered: llvm.select - -4: "sadd_x_gt_max" has unsupported operation: builtin.unregistered: llvm.select - 1: "sadd_x_ge_min" 4: "sadd_x_ge_min" has unsupported operation: builtin.unregistered: llvm.intr.sadd.sat @@ -64,10 +52,6 @@ 4: "sadd_x_ge_max" has unsupported operation: builtin.unregistered: llvm.icmp -4: "sadd_x_ge_max" has unsupported operation: builtin.unregistered: llvm.select - -4: "sadd_x_ge_max" has unsupported operation: builtin.unregistered: llvm.select - 1: "sadd_y_lt_min" 4: "sadd_y_lt_min" has unsupported operation: builtin.unregistered: llvm.intr.sadd.with.overflow @@ -77,10 +61,6 @@ 4: "sadd_y_lt_min" has unsupported operation: builtin.unregistered: llvm.icmp -4: "sadd_y_lt_min" has unsupported operation: builtin.unregistered: llvm.select - -4: "sadd_y_lt_min" has unsupported operation: builtin.unregistered: llvm.select - 1: "sadd_y_lt_max" 4: "sadd_y_lt_max" has unsupported operation: builtin.unregistered: llvm.intr.sadd.sat @@ -93,10 +73,6 @@ 4: "sadd_y_le_min" has unsupported operation: builtin.unregistered: llvm.icmp -4: "sadd_y_le_min" has unsupported operation: builtin.unregistered: llvm.select - -4: "sadd_y_le_min" has unsupported operation: builtin.unregistered: llvm.select - 1: "sadd_y_le_max" 4: "sadd_y_le_max" has unsupported operation: builtin.unregistered: llvm.intr.sadd.sat @@ -112,10 +88,6 @@ 4: "sadd_y_gt_max" has unsupported operation: builtin.unregistered: llvm.icmp -4: "sadd_y_gt_max" has unsupported operation: builtin.unregistered: llvm.select - -4: "sadd_y_gt_max" has unsupported operation: builtin.unregistered: llvm.select - 1: "sadd_y_ge_min" 4: "sadd_y_ge_min" has unsupported operation: builtin.unregistered: llvm.intr.sadd.sat @@ -128,10 +100,6 @@ 4: "sadd_y_ge_max" has unsupported operation: builtin.unregistered: llvm.icmp -4: "sadd_y_ge_max" has unsupported operation: builtin.unregistered: llvm.select - -4: "sadd_y_ge_max" has unsupported operation: builtin.unregistered: llvm.select - 1: "ssub_x_lt_min" 4: "ssub_x_lt_min" has unsupported operation: builtin.unregistered: llvm.intr.ssub.with.overflow @@ -141,10 +109,6 @@ 4: "ssub_x_lt_min" has unsupported operation: builtin.unregistered: llvm.icmp -4: "ssub_x_lt_min" has unsupported operation: builtin.unregistered: llvm.select - -4: "ssub_x_lt_min" has unsupported operation: builtin.unregistered: llvm.select - 1: "ssub_x_lt_max" 4: "ssub_x_lt_max" has unsupported operation: builtin.unregistered: llvm.intr.ssub.sat @@ -157,10 +121,6 @@ 4: "ssub_x_le_min" has unsupported operation: builtin.unregistered: llvm.icmp -4: "ssub_x_le_min" has unsupported operation: builtin.unregistered: llvm.select - -4: "ssub_x_le_min" has unsupported operation: builtin.unregistered: llvm.select - 1: "ssub_x_le_max" 4: "ssub_x_le_max" has unsupported operation: builtin.unregistered: llvm.intr.ssub.with.overflow @@ -170,10 +130,6 @@ 4: "ssub_x_le_max" has unsupported operation: builtin.unregistered: llvm.icmp -4: "ssub_x_le_max" has unsupported operation: builtin.unregistered: llvm.select - -4: "ssub_x_le_max" has unsupported operation: builtin.unregistered: llvm.select - 1: "ssub_x_lt2_min" 4: "ssub_x_lt2_min" has unsupported operation: builtin.unregistered: llvm.intr.ssub.with.overflow @@ -183,10 +139,6 @@ 4: "ssub_x_lt2_min" has unsupported operation: builtin.unregistered: llvm.icmp -4: "ssub_x_lt2_min" has unsupported operation: builtin.unregistered: llvm.select - -4: "ssub_x_lt2_min" has unsupported operation: builtin.unregistered: llvm.select - 1: "ssub_x_lt2_max" 4: "ssub_x_lt2_max" has unsupported operation: builtin.unregistered: llvm.intr.ssub.sat @@ -199,10 +151,6 @@ 4: "ssub_x_gt_min" has unsupported operation: builtin.unregistered: llvm.icmp -4: "ssub_x_gt_min" has unsupported operation: builtin.unregistered: llvm.select - -4: "ssub_x_gt_min" has unsupported operation: builtin.unregistered: llvm.select - 1: "ssub_x_gt_max" 4: "ssub_x_gt_max" has unsupported operation: builtin.unregistered: llvm.intr.ssub.with.overflow @@ -212,10 +160,6 @@ 4: "ssub_x_gt_max" has unsupported operation: builtin.unregistered: llvm.icmp -4: "ssub_x_gt_max" has unsupported operation: builtin.unregistered: llvm.select - -4: "ssub_x_gt_max" has unsupported operation: builtin.unregistered: llvm.select - 1: "ssub_x_ge_min" 4: "ssub_x_ge_min" has unsupported operation: builtin.unregistered: llvm.intr.ssub.sat @@ -228,10 +172,6 @@ 4: "ssub_x_ge_max" has unsupported operation: builtin.unregistered: llvm.icmp -4: "ssub_x_ge_max" has unsupported operation: builtin.unregistered: llvm.select - -4: "ssub_x_ge_max" has unsupported operation: builtin.unregistered: llvm.select - 1: "ssub_x_gt2_min" 4: "ssub_x_gt2_min" has unsupported operation: builtin.unregistered: llvm.intr.ssub.sat @@ -244,10 +184,6 @@ 4: "ssub_x_gt2_max" has unsupported operation: builtin.unregistered: llvm.icmp -4: "ssub_x_gt2_max" has unsupported operation: builtin.unregistered: llvm.select - -4: "ssub_x_gt2_max" has unsupported operation: builtin.unregistered: llvm.select - 1: "ssub_y_lt_min" 4: "ssub_y_lt_min" has unsupported operation: builtin.unregistered: llvm.intr.ssub.sat @@ -260,10 +196,6 @@ 4: "ssub_y_lt_max" has unsupported operation: builtin.unregistered: llvm.icmp -4: "ssub_y_lt_max" has unsupported operation: builtin.unregistered: llvm.select - -4: "ssub_y_lt_max" has unsupported operation: builtin.unregistered: llvm.select - 1: "ssub_y_le_min" 4: "ssub_y_le_min" has unsupported operation: builtin.unregistered: llvm.intr.ssub.sat @@ -276,10 +208,6 @@ 4: "ssub_y_le_max" has unsupported operation: builtin.unregistered: llvm.icmp -4: "ssub_y_le_max" has unsupported operation: builtin.unregistered: llvm.select - -4: "ssub_y_le_max" has unsupported operation: builtin.unregistered: llvm.select - 1: "ssub_y_gt_min" 4: "ssub_y_gt_min" has unsupported operation: builtin.unregistered: llvm.intr.ssub.with.overflow @@ -289,10 +217,6 @@ 4: "ssub_y_gt_min" has unsupported operation: builtin.unregistered: llvm.icmp -4: "ssub_y_gt_min" has unsupported operation: builtin.unregistered: llvm.select - -4: "ssub_y_gt_min" has unsupported operation: builtin.unregistered: llvm.select - 1: "ssub_y_gt_max" 4: "ssub_y_gt_max" has unsupported operation: builtin.unregistered: llvm.intr.ssub.sat @@ -305,10 +229,6 @@ 4: "ssub_y_ge_min" has unsupported operation: builtin.unregistered: llvm.icmp -4: "ssub_y_ge_min" has unsupported operation: builtin.unregistered: llvm.select - -4: "ssub_y_ge_min" has unsupported operation: builtin.unregistered: llvm.select - 1: "ssub_y_ge_max" 4: "ssub_y_ge_max" has unsupported operation: builtin.unregistered: llvm.intr.ssub.sat @@ -327,10 +247,6 @@ 4: "sadd_bounds" has unsupported operation: builtin.unregistered: llvm.icmp -4: "sadd_bounds" has unsupported operation: builtin.unregistered: llvm.select - -4: "sadd_bounds" has unsupported operation: builtin.unregistered: llvm.select - 1: "ssub_bounds" 4: "ssub_bounds" has unsupported operation: builtin.unregistered: llvm.intr.ssub.with.overflow @@ -340,7 +256,3 @@ 4: "ssub_bounds" has unsupported operation: builtin.unregistered: llvm.icmp -4: "ssub_bounds" has unsupported operation: builtin.unregistered: llvm.select - -4: "ssub_bounds" has unsupported operation: builtin.unregistered: llvm.select - diff --git a/SSA/Projects/InstCombine/tests/logs/phi-equal-incoming-pointers.txt b/SSA/Projects/InstCombine/tests/logs/phi-equal-incoming-pointers.txt index c7599bfe9..095ad53c5 100644 --- a/SSA/Projects/InstCombine/tests/logs/phi-equal-incoming-pointers.txt +++ b/SSA/Projects/InstCombine/tests/logs/phi-equal-incoming-pointers.txt @@ -25,8 +25,6 @@ 4: "test_gep_and_bitcast" has unsupported operation: llvm.store -4: "test_gep_and_bitcast" has unsupported operation: builtin.unregistered: llvm.select - 1: "test_gep_and_bitcast_arg" 4: "test_gep_and_bitcast_arg" has unsupported operation: builtin.unregistered: llvm.cond_br @@ -40,8 +38,6 @@ 4: "test_gep_and_bitcast_arg" has unsupported operation: llvm.store -4: "test_gep_and_bitcast_arg" has unsupported operation: builtin.unregistered: llvm.select - 1: "test_gep_and_bitcast_phi" 4: "test_gep_and_bitcast_phi" has unsupported operation: llvm.mlir.zero @@ -69,8 +65,6 @@ 4: "test_gep_and_bitcast_phi" has unsupported operation: llvm.store -4: "test_gep_and_bitcast_phi" has unsupported operation: builtin.unregistered: llvm.select - 1: "test_gep_i32ptr" 4: "test_gep_i32ptr" has unsupported operation: llvm.call @@ -86,8 +80,6 @@ 4: "test_gep_i32ptr" has unsupported operation: llvm.store -4: "test_gep_i32ptr" has unsupported operation: builtin.unregistered: llvm.select - 1: "test_gep_and_bitcast_gep_base_ptr" 4: "test_gep_and_bitcast_gep_base_ptr" has unsupported operation: llvm.call @@ -103,8 +95,6 @@ 4: "test_gep_and_bitcast_gep_base_ptr" has unsupported operation: llvm.store -4: "test_gep_and_bitcast_gep_base_ptr" has unsupported operation: builtin.unregistered: llvm.select - 1: "test_gep_and_bitcast_same_bb" 4: "test_gep_and_bitcast_same_bb" has unsupported operation: llvm.call @@ -118,8 +108,6 @@ 4: "test_gep_and_bitcast_same_bb" has unsupported operation: llvm.store -4: "test_gep_and_bitcast_same_bb" has unsupported operation: builtin.unregistered: llvm.select - 1: "test_gep_and_bitcast_same_bb_and_extra_use" 4: "test_gep_and_bitcast_same_bb_and_extra_use" has unsupported operation: llvm.call @@ -137,8 +125,6 @@ 4: "test_gep_and_bitcast_same_bb_and_extra_use" has unsupported operation: llvm.store -4: "test_gep_and_bitcast_same_bb_and_extra_use" has unsupported operation: builtin.unregistered: llvm.select - 1: "test_gep" 4: "test_gep" has unsupported operation: llvm.call @@ -154,8 +140,6 @@ 4: "test_gep" has unsupported operation: llvm.store -4: "test_gep" has unsupported operation: builtin.unregistered: llvm.select - 1: "test_extra_uses" 4: "test_extra_uses" has unsupported operation: llvm.call @@ -179,8 +163,6 @@ 4: "test_extra_uses" has unsupported operation: llvm.store -4: "test_extra_uses" has unsupported operation: builtin.unregistered: llvm.select - 1: "test_extra_uses_non_inbounds" 4: "test_extra_uses_non_inbounds" has unsupported operation: llvm.call @@ -204,8 +186,6 @@ 4: "test_extra_uses_non_inbounds" has unsupported operation: llvm.store -4: "test_extra_uses_non_inbounds" has unsupported operation: builtin.unregistered: llvm.select - 1: "test_extra_uses_multiple_geps" 4: "test_extra_uses_multiple_geps" has unsupported operation: llvm.call @@ -229,8 +209,6 @@ 4: "test_extra_uses_multiple_geps" has unsupported operation: llvm.store -4: "test_extra_uses_multiple_geps" has unsupported operation: builtin.unregistered: llvm.select - 1: "test_gep_extra_uses" 4: "test_gep_extra_uses" has unsupported operation: llvm.call @@ -254,8 +232,6 @@ 4: "test_gep_extra_uses" has unsupported operation: llvm.store -4: "test_gep_extra_uses" has unsupported operation: builtin.unregistered: llvm.select - 1: "takeAddress" 5: "takeAddress" is empty @@ -284,5 +260,3 @@ 4: "test_dont_optimize_swifterror" has unsupported operation: llvm.store -4: "test_dont_optimize_swifterror" has unsupported operation: builtin.unregistered: llvm.select - diff --git a/SSA/Projects/InstCombine/tests/logs/phi-select-constant.txt b/SSA/Projects/InstCombine/tests/logs/phi-select-constant.txt index 572f52857..7b2186d37 100644 --- a/SSA/Projects/InstCombine/tests/logs/phi-select-constant.txt +++ b/SSA/Projects/InstCombine/tests/logs/phi-select-constant.txt @@ -7,8 +7,6 @@ 4: "foo" has unsupported operation: builtin.unregistered: llvm.icmp -4: "foo" has unsupported operation: builtin.unregistered: llvm.select - 4: "foo" has unsupported operation: builtin.unregistered: llvm.br 1: "vec1" @@ -28,15 +26,11 @@ 4: "vec3" has unsupported operation: builtin.unregistered: llvm.br -4: "vec3" has unsupported operation: builtin.unregistered: llvm.select - 1: "PR48369" 4: "PR48369" has unsupported operation: builtin.unregistered: llvm.icmp 4: "PR48369" has unsupported operation: builtin.unregistered: llvm.br -4: "PR48369" has unsupported operation: builtin.unregistered: llvm.select - 4: "PR48369" has unsupported operation: llvm.store 4: "PR48369" has unsupported operation: builtin.unregistered: llvm.br @@ -53,8 +47,6 @@ 4: "phi_trans" has unsupported operation: builtin.unregistered: llvm.br -4: "phi_trans" has unsupported operation: builtin.unregistered: llvm.select - 4: "phi_trans" has unsupported operation: builtin.unregistered: llvm.br 1: "dominating_values_select_same_block" @@ -64,8 +56,6 @@ 4: "dominating_values_select_same_block" has unsupported operation: llvm.load -4: "dominating_values_select_same_block" has unsupported operation: builtin.unregistered: llvm.select - 4: "dominating_values_select_same_block" has unsupported operation: builtin.unregistered: llvm.br 1: "dominating_values_select_not_same_block" @@ -75,8 +65,6 @@ 4: "dominating_values_select_not_same_block" has unsupported operation: llvm.load -4: "dominating_values_select_not_same_block" has unsupported operation: builtin.unregistered: llvm.select - 4: "dominating_values_select_not_same_block" has unsupported operation: builtin.unregistered: llvm.br 4: "dominating_values_select_not_same_block" has unsupported operation: builtin.unregistered: llvm.br @@ -90,5 +78,3 @@ 4: "not_dominating_values" has unsupported operation: llvm.load -4: "not_dominating_values" has unsupported operation: builtin.unregistered: llvm.select - diff --git a/SSA/Projects/InstCombine/tests/logs/phi.txt b/SSA/Projects/InstCombine/tests/logs/phi.txt index 7c26ac1d9..b671d8f13 100644 --- a/SSA/Projects/InstCombine/tests/logs/phi.txt +++ b/SSA/Projects/InstCombine/tests/logs/phi.txt @@ -519,8 +519,6 @@ 4: "phi_knownnonzero_eq_multiuse_andicmp" has unsupported operation: builtin.unregistered: llvm.icmp -4: "phi_knownnonzero_eq_multiuse_andicmp" has unsupported operation: builtin.unregistered: llvm.select - 4: "phi_knownnonzero_eq_multiuse_andicmp" has unsupported operation: builtin.unregistered: llvm.br 4: "phi_knownnonzero_eq_multiuse_andicmp" has unsupported operation: builtin.unregistered: llvm.icmp @@ -540,8 +538,6 @@ 4: "phi_knownnonzero_ne_multiuse_andicmp" has unsupported operation: builtin.unregistered: llvm.icmp -4: "phi_knownnonzero_ne_multiuse_andicmp" has unsupported operation: builtin.unregistered: llvm.select - 4: "phi_knownnonzero_ne_multiuse_andicmp" has unsupported operation: builtin.unregistered: llvm.br 4: "phi_knownnonzero_ne_multiuse_andicmp" has unsupported operation: builtin.unregistered: llvm.icmp @@ -632,8 +628,6 @@ 4: "simplify_context_instr" has unsupported operation: builtin.unregistered: llvm.cond_br -4: "simplify_context_instr" has unsupported operation: builtin.unregistered: llvm.select - 4: "simplify_context_instr" has unsupported operation: llvm.call 4: "simplify_context_instr" has unsupported operation: builtin.unregistered: llvm.br diff --git a/SSA/Projects/InstCombine/tests/logs/pow-0.txt b/SSA/Projects/InstCombine/tests/logs/pow-0.txt index d44a2e022..140ec7a08 100644 --- a/SSA/Projects/InstCombine/tests/logs/pow-0.txt +++ b/SSA/Projects/InstCombine/tests/logs/pow-0.txt @@ -11,14 +11,14 @@ 4: "fast_minus_zero" has unsupported operation after optimization: builtin.unregistered: llvm.intr.pow 1: "vec_zero" -"vec_zero" contains vectors which are unsupported +8: "vec_zero" contains vectors which are unsupported 1: "vec_minus_zero" -"vec_minus_zero" contains vectors which are unsupported +8: "vec_minus_zero" contains vectors which are unsupported 1: "vec_fast_zero" -"vec_fast_zero" contains vectors which are unsupported +8: "vec_fast_zero" contains vectors which are unsupported 1: "vec_fast_minus_zero" -"vec_fast_minus_zero" contains vectors which are unsupported +8: "vec_fast_minus_zero" contains vectors which are unsupported diff --git a/SSA/Projects/InstCombine/tests/logs/pow-1.txt b/SSA/Projects/InstCombine/tests/logs/pow-1.txt index d4b483ee8..868213250 100644 --- a/SSA/Projects/InstCombine/tests/logs/pow-1.txt +++ b/SSA/Projects/InstCombine/tests/logs/pow-1.txt @@ -11,7 +11,7 @@ 4: "test_simplify1_noerrno" has unsupported operation after optimization: llvm.call 1: "test_simplify1v" -"test_simplify1v" contains vectors which are unsupported +8: "test_simplify1v" contains vectors which are unsupported 1: "test_simplify2" 4: "test_simplify2" has unsupported operation after optimization: llvm.call @@ -20,7 +20,7 @@ 4: "test_simplify2_noerrno" has unsupported operation after optimization: llvm.call 1: "test_simplify2v" -"test_simplify2v" contains vectors which are unsupported +8: "test_simplify2v" contains vectors which are unsupported 1: "test_simplify3" 4: "test_simplify3" has unsupported operation: llvm.call @@ -72,7 +72,7 @@ 4: "test_simplify5_noerrno" has unsupported operation after optimization: llvm.call 1: "test_simplify5v" -"test_simplify5v" contains vectors which are unsupported +8: "test_simplify5v" contains vectors which are unsupported 1: "test_simplify6" 4: "test_simplify6" has unsupported operation after optimization: llvm.call @@ -81,7 +81,7 @@ 4: "test_simplify6_noerrno" has unsupported operation after optimization: llvm.call 1: "test_simplify6v" -"test_simplify6v" contains vectors which are unsupported +8: "test_simplify6v" contains vectors which are unsupported 1: "powf_libcall_half_ninf" 4: "powf_libcall_half_ninf" has unsupported operation: llvm.call @@ -141,8 +141,6 @@ 4: "pow_libcall_half_no_FMF_noerrno" has unsupported operation: builtin.unregistered: llvm.fcmp -4: "pow_libcall_half_no_FMF_noerrno" has unsupported operation: builtin.unregistered: llvm.select - 1: "test_simplify9" 4: "test_simplify9" has unsupported operation after optimization: builtin.unregistered: llvm.intr.pow @@ -156,7 +154,7 @@ 4: "test_simplify11_noerrno" has unsupported operation after optimization: llvm.call 1: "test_simplify11v" -"test_simplify11v" contains vectors which are unsupported +8: "test_simplify11v" contains vectors which are unsupported 1: "test_simplify12" 4: "test_simplify12" has unsupported operation after optimization: llvm.call @@ -165,7 +163,7 @@ 4: "test_simplify12_noerrno" has unsupported operation after optimization: llvm.call 1: "test_simplify12v" -"test_simplify12v" contains vectors which are unsupported +8: "test_simplify12v" contains vectors which are unsupported 1: "pow2_strict" 4: "pow2_strict" has unsupported operation: builtin.unregistered: llvm.fmul @@ -216,8 +214,6 @@ 4: "pow_intrinsic_half_no_FMF" has unsupported operation: builtin.unregistered: llvm.fcmp -4: "pow_intrinsic_half_no_FMF" has unsupported operation: builtin.unregistered: llvm.select - 1: "test_simplify18" 4: "test_simplify18" has unsupported operation: llvm.call diff --git a/SSA/Projects/InstCombine/tests/logs/pow-3.txt b/SSA/Projects/InstCombine/tests/logs/pow-3.txt index b2ad68783..bf3387f2e 100644 --- a/SSA/Projects/InstCombine/tests/logs/pow-3.txt +++ b/SSA/Projects/InstCombine/tests/logs/pow-3.txt @@ -11,8 +11,6 @@ 4: "sqrt_intrinsic" has unsupported operation: builtin.unregistered: llvm.fcmp -4: "sqrt_intrinsic" has unsupported operation: builtin.unregistered: llvm.select - 1: "shrink_libcall" 4: "shrink_libcall" has unsupported operation: llvm.call diff --git a/SSA/Projects/InstCombine/tests/logs/pow-sqrt.txt b/SSA/Projects/InstCombine/tests/logs/pow-sqrt.txt index 3f8758b39..1934af27a 100644 --- a/SSA/Projects/InstCombine/tests/logs/pow-sqrt.txt +++ b/SSA/Projects/InstCombine/tests/logs/pow-sqrt.txt @@ -8,8 +8,6 @@ 4: "pow_intrinsic_half_no_FMF" has unsupported operation: builtin.unregistered: llvm.fcmp -4: "pow_intrinsic_half_no_FMF" has unsupported operation: builtin.unregistered: llvm.select - 1: "pow_libcall_half_approx" 4: "pow_libcall_half_approx" has unsupported operation: llvm.call @@ -20,8 +18,6 @@ 4: "pow_intrinsic_half_approx" has unsupported operation: builtin.unregistered: llvm.fcmp -4: "pow_intrinsic_half_approx" has unsupported operation: builtin.unregistered: llvm.select - 1: "powf_intrinsic_half_fast" 4: "powf_intrinsic_half_fast" has unsupported operation: builtin.unregistered: llvm.intr.sqrt @@ -50,8 +46,6 @@ 4: "pow_intrinsic_half_nsz" has unsupported operation: builtin.unregistered: llvm.fcmp -4: "pow_intrinsic_half_nsz" has unsupported operation: builtin.unregistered: llvm.select - 1: "pow_libcall_half_ninf_nsz" 4: "pow_libcall_half_ninf_nsz" has unsupported operation: llvm.call @@ -89,8 +83,6 @@ 4: "pow_intrinsic_neghalf_reassoc" has unsupported operation: builtin.unregistered: llvm.fdiv -4: "pow_intrinsic_neghalf_reassoc" has unsupported operation: builtin.unregistered: llvm.select - 1: "pow_intrinsic_neghalf_afn" 4: "pow_intrinsic_neghalf_afn" has unsupported operation: builtin.unregistered: llvm.intr.sqrt @@ -100,8 +92,6 @@ 4: "pow_intrinsic_neghalf_afn" has unsupported operation: builtin.unregistered: llvm.fdiv -4: "pow_intrinsic_neghalf_afn" has unsupported operation: builtin.unregistered: llvm.select - 1: "pow_libcall_neghalf_ninf" 4: "pow_libcall_neghalf_ninf" has unsupported operation: llvm.call @@ -126,8 +116,6 @@ 4: "pow_intrinsic_neghalf_nsz" has unsupported operation: builtin.unregistered: llvm.fdiv -4: "pow_intrinsic_neghalf_nsz" has unsupported operation: builtin.unregistered: llvm.select - 1: "pow_intrinsic_neghalf_ninf_nsz" 4: "pow_intrinsic_neghalf_ninf_nsz" has unsupported operation: builtin.unregistered: llvm.intr.sqrt diff --git a/SSA/Projects/InstCombine/tests/logs/pr100298.txt b/SSA/Projects/InstCombine/tests/logs/pr100298.txt index b0d3eda39..5e21aa0d0 100644 --- a/SSA/Projects/InstCombine/tests/logs/pr100298.txt +++ b/SSA/Projects/InstCombine/tests/logs/pr100298.txt @@ -9,5 +9,3 @@ 4: "pr100298" has unsupported operation: builtin.unregistered: llvm.icmp -4: "pr100298" has unsupported operation: builtin.unregistered: llvm.select - diff --git a/SSA/Projects/InstCombine/tests/logs/pr14365.txt b/SSA/Projects/InstCombine/tests/logs/pr14365.txt index c2cfa33fc..faa26b941 100644 --- a/SSA/Projects/InstCombine/tests/logs/pr14365.txt +++ b/SSA/Projects/InstCombine/tests/logs/pr14365.txt @@ -10,7 +10,7 @@ 2: llvm.return 1: "test0_vec" -"test0_vec" contains vectors which are unsupported +8: "test0_vec" contains vectors which are unsupported 1: "test1" 2: llvm.func @@ -25,5 +25,5 @@ 2: llvm.return 1: "test1_vec" -"test1_vec" contains vectors which are unsupported +8: "test1_vec" contains vectors which are unsupported diff --git a/SSA/Projects/InstCombine/tests/logs/pr20678.txt b/SSA/Projects/InstCombine/tests/logs/pr20678.txt index 2f54718d9..d4d6fe2c8 100644 --- a/SSA/Projects/InstCombine/tests/logs/pr20678.txt +++ b/SSA/Projects/InstCombine/tests/logs/pr20678.txt @@ -1,3 +1,3 @@ 1: "test1" -"test1" contains vectors which are unsupported +8: "test1" contains vectors which are unsupported diff --git a/SSA/Projects/InstCombine/tests/logs/pr21210.txt b/SSA/Projects/InstCombine/tests/logs/pr21210.txt index 7abfe9139..1accc16cd 100644 --- a/SSA/Projects/InstCombine/tests/logs/pr21210.txt +++ b/SSA/Projects/InstCombine/tests/logs/pr21210.txt @@ -28,8 +28,6 @@ 4: "test2" has unsupported operation: builtin.unregistered: llvm.icmp -4: "test2" has unsupported operation: builtin.unregistered: llvm.select - 4: "test2" has unsupported operation: builtin.unregistered: llvm.icmp 4: "test2" has unsupported operation: builtin.unregistered: llvm.cond_br diff --git a/SSA/Projects/InstCombine/tests/logs/pr24354.txt b/SSA/Projects/InstCombine/tests/logs/pr24354.txt index 20c509ce4..831b6db98 100644 --- a/SSA/Projects/InstCombine/tests/logs/pr24354.txt +++ b/SSA/Projects/InstCombine/tests/logs/pr24354.txt @@ -23,8 +23,6 @@ 4: "fn3" has unsupported operation: builtin.unregistered: llvm.icmp -4: "fn3" has unsupported operation: builtin.unregistered: llvm.select - 4: "fn3" has unsupported operation: builtin.unregistered: llvm.zext 4: "fn3" has unsupported operation: llvm.store diff --git a/SSA/Projects/InstCombine/tests/logs/pr25745.txt b/SSA/Projects/InstCombine/tests/logs/pr25745.txt index 54f820923..b37b2a85e 100644 --- a/SSA/Projects/InstCombine/tests/logs/pr25745.txt +++ b/SSA/Projects/InstCombine/tests/logs/pr25745.txt @@ -11,8 +11,6 @@ 4: "f" has unsupported operation: builtin.unregistered: llvm.icmp -4: "f" has unsupported operation: builtin.unregistered: llvm.select - 4: "f" has unsupported operation: llvm.call 4: "f" has unsupported operation: llvm.call diff --git a/SSA/Projects/InstCombine/tests/logs/pr27332.txt b/SSA/Projects/InstCombine/tests/logs/pr27332.txt index 3205e0671..67fef76c4 100644 --- a/SSA/Projects/InstCombine/tests/logs/pr27332.txt +++ b/SSA/Projects/InstCombine/tests/logs/pr27332.txt @@ -1,5 +1,5 @@ 1: "test1" -"test1" contains vectors which are unsupported +8: "test1" contains vectors which are unsupported 1: "fabsf" 5: "fabsf" is empty diff --git a/SSA/Projects/InstCombine/tests/logs/pr28725.txt b/SSA/Projects/InstCombine/tests/logs/pr28725.txt index 2f54718d9..d4d6fe2c8 100644 --- a/SSA/Projects/InstCombine/tests/logs/pr28725.txt +++ b/SSA/Projects/InstCombine/tests/logs/pr28725.txt @@ -1,3 +1,3 @@ 1: "test1" -"test1" contains vectors which are unsupported +8: "test1" contains vectors which are unsupported diff --git a/SSA/Projects/InstCombine/tests/logs/pr34627.txt b/SSA/Projects/InstCombine/tests/logs/pr34627.txt index 401ac5c8e..f94697250 100644 --- a/SSA/Projects/InstCombine/tests/logs/pr34627.txt +++ b/SSA/Projects/InstCombine/tests/logs/pr34627.txt @@ -1,3 +1,3 @@ 1: "patatino" -"patatino" contains vectors which are unsupported +8: "patatino" contains vectors which are unsupported diff --git a/SSA/Projects/InstCombine/tests/logs/pr35515.txt b/SSA/Projects/InstCombine/tests/logs/pr35515.txt index da26c959b..6d525305d 100644 --- a/SSA/Projects/InstCombine/tests/logs/pr35515.txt +++ b/SSA/Projects/InstCombine/tests/logs/pr35515.txt @@ -11,5 +11,3 @@ 4: "func_24" has unsupported operation: builtin.unregistered: llvm.icmp -4: "func_24" has unsupported operation: builtin.unregistered: llvm.select - diff --git a/SSA/Projects/InstCombine/tests/logs/pr36362.txt b/SSA/Projects/InstCombine/tests/logs/pr36362.txt index dc96c6cef..8fd558522 100644 --- a/SSA/Projects/InstCombine/tests/logs/pr36362.txt +++ b/SSA/Projects/InstCombine/tests/logs/pr36362.txt @@ -1,5 +1,3 @@ 1: "foo" -4: "foo" has unsupported operation: builtin.unregistered: llvm.select - -4: "foo" has unsupported operation: builtin.unregistered: llvm.select +7: "foo" is unchanged by InstCombine diff --git a/SSA/Projects/InstCombine/tests/logs/pr38897.txt b/SSA/Projects/InstCombine/tests/logs/pr38897.txt index 24915592e..f6febf8fe 100644 --- a/SSA/Projects/InstCombine/tests/logs/pr38897.txt +++ b/SSA/Projects/InstCombine/tests/logs/pr38897.txt @@ -1,8 +1,4 @@ 1: "sharpening" -4: "sharpening" has unsupported operation: builtin.unregistered: llvm.select - -4: "sharpening" has unsupported operation: builtin.unregistered: llvm.select - 4: "sharpening" has unsupported operation: builtin.unregistered: llvm.intr.smin 4: "sharpening" has unsupported operation: builtin.unregistered: llvm.intr.smax diff --git a/SSA/Projects/InstCombine/tests/logs/pr38984-inseltpoison.txt b/SSA/Projects/InstCombine/tests/logs/pr38984-inseltpoison.txt index 214eda91b..c4fa8a869 100644 --- a/SSA/Projects/InstCombine/tests/logs/pr38984-inseltpoison.txt +++ b/SSA/Projects/InstCombine/tests/logs/pr38984-inseltpoison.txt @@ -1,5 +1,5 @@ 1: "PR38984_1" -"PR38984_1" contains vectors which are unsupported +8: "PR38984_1" contains vectors which are unsupported 1: "PR38984_2" 4: "PR38984_2" has unsupported operation: llvm.mlir.addressof diff --git a/SSA/Projects/InstCombine/tests/logs/pr38984.txt b/SSA/Projects/InstCombine/tests/logs/pr38984.txt index 9bf6b808b..dbe5fe7a6 100644 --- a/SSA/Projects/InstCombine/tests/logs/pr38984.txt +++ b/SSA/Projects/InstCombine/tests/logs/pr38984.txt @@ -1,5 +1,5 @@ 1: "PR38984_1" -"PR38984_1" contains vectors which are unsupported +8: "PR38984_1" contains vectors which are unsupported 1: "PR38984_2" 4: "PR38984_2" has unsupported operation: llvm.mlir.addressof diff --git a/SSA/Projects/InstCombine/tests/logs/pr49688.txt b/SSA/Projects/InstCombine/tests/logs/pr49688.txt index 7dc8632eb..36a3d7cb7 100644 --- a/SSA/Projects/InstCombine/tests/logs/pr49688.txt +++ b/SSA/Projects/InstCombine/tests/logs/pr49688.txt @@ -3,14 +3,10 @@ 4: "f" has unsupported operation: builtin.unregistered: llvm.icmp -4: "f" has unsupported operation: builtin.unregistered: llvm.select - 1: "f2" 4: "f2" has unsupported operation: builtin.unregistered: llvm.icmp 4: "f2" has unsupported operation: builtin.unregistered: llvm.icmp -4: "f2" has unsupported operation: builtin.unregistered: llvm.select - 4: "f2" has unsupported operation: builtin.unregistered: llvm.zext diff --git a/SSA/Projects/InstCombine/tests/logs/pr53357.txt b/SSA/Projects/InstCombine/tests/logs/pr53357.txt index c2b6e7c1a..974acb0f9 100644 --- a/SSA/Projects/InstCombine/tests/logs/pr53357.txt +++ b/SSA/Projects/InstCombine/tests/logs/pr53357.txt @@ -8,10 +8,10 @@ 2: llvm.return 1: "src_vec" -"src_vec" contains vectors which are unsupported +8: "src_vec" contains vectors which are unsupported 1: "src_vec_poison" -"src_vec_poison" contains vectors which are unsupported +8: "src_vec_poison" contains vectors which are unsupported 1: "src2" 2: llvm.func diff --git a/SSA/Projects/InstCombine/tests/logs/pr80597.txt b/SSA/Projects/InstCombine/tests/logs/pr80597.txt index 7fe4342b8..437d351dd 100644 --- a/SSA/Projects/InstCombine/tests/logs/pr80597.txt +++ b/SSA/Projects/InstCombine/tests/logs/pr80597.txt @@ -1,6 +1,4 @@ 1: "pr80597" -4: "pr80597" has unsupported operation: builtin.unregistered: llvm.select - 4: "pr80597" has unsupported operation: builtin.unregistered: llvm.icmp 4: "pr80597" has unsupported operation: builtin.unregistered: llvm.cond_br diff --git a/SSA/Projects/InstCombine/tests/logs/pr82877.txt b/SSA/Projects/InstCombine/tests/logs/pr82877.txt index ae84c023d..77208a17b 100644 --- a/SSA/Projects/InstCombine/tests/logs/pr82877.txt +++ b/SSA/Projects/InstCombine/tests/logs/pr82877.txt @@ -1,8 +1,6 @@ 1: "func" 4: "func" has unsupported operation: builtin.unregistered: llvm.br -4: "func" has unsupported operation: builtin.unregistered: llvm.select - 4: "func" has unsupported operation: builtin.unregistered: llvm.icmp 4: "func" has unsupported operation: builtin.unregistered: llvm.zext diff --git a/SSA/Projects/InstCombine/tests/logs/pr98139.txt b/SSA/Projects/InstCombine/tests/logs/pr98139.txt index e5737ccfc..9beae54ae 100644 --- a/SSA/Projects/InstCombine/tests/logs/pr98139.txt +++ b/SSA/Projects/InstCombine/tests/logs/pr98139.txt @@ -1,11 +1,7 @@ 1: "pr98139" -4: "pr98139" has unsupported operation: builtin.unregistered: llvm.select - 4: "pr98139" has unsupported operation: builtin.unregistered: llvm.icmp 4: "pr98139" has unsupported operation: builtin.unregistered: llvm.icmp -4: "pr98139" has unsupported operation: builtin.unregistered: llvm.select - 4: "pr98139" has unsupported operation: builtin.unregistered: llvm.trunc diff --git a/SSA/Projects/InstCombine/tests/logs/pr98435.txt b/SSA/Projects/InstCombine/tests/logs/pr98435.txt index 7beb24101..0ff946c8c 100644 --- a/SSA/Projects/InstCombine/tests/logs/pr98435.txt +++ b/SSA/Projects/InstCombine/tests/logs/pr98435.txt @@ -7,5 +7,3 @@ 4: "pr98435" has unsupported operation: builtin.unregistered: llvm.insertelement -4: "pr98435" has unsupported operation: builtin.unregistered: llvm.select - diff --git a/SSA/Projects/InstCombine/tests/logs/prevent-cmp-merge.txt b/SSA/Projects/InstCombine/tests/logs/prevent-cmp-merge.txt index cb2f7bb24..09751e1ba 100644 --- a/SSA/Projects/InstCombine/tests/logs/prevent-cmp-merge.txt +++ b/SSA/Projects/InstCombine/tests/logs/prevent-cmp-merge.txt @@ -8,8 +8,6 @@ 4: "test1_logical" has unsupported operation: builtin.unregistered: llvm.icmp -4: "test1_logical" has unsupported operation: builtin.unregistered: llvm.select - 1: "test2" 4: "test2" has unsupported operation: builtin.unregistered: llvm.icmp @@ -25,5 +23,3 @@ 4: "test3_logical" has unsupported operation: builtin.unregistered: llvm.icmp -4: "test3_logical" has unsupported operation: builtin.unregistered: llvm.select - diff --git a/SSA/Projects/InstCombine/tests/logs/ptr-replace-alloca.txt b/SSA/Projects/InstCombine/tests/logs/ptr-replace-alloca.txt index 5e46bdc50..904c08cee 100644 --- a/SSA/Projects/InstCombine/tests/logs/ptr-replace-alloca.txt +++ b/SSA/Projects/InstCombine/tests/logs/ptr-replace-alloca.txt @@ -167,8 +167,6 @@ 1: "select_same_addrspace_remove_alloca" 4: "select_same_addrspace_remove_alloca" has unsupported operation: llvm.mlir.addressof -4: "select_same_addrspace_remove_alloca" has unsupported operation: builtin.unregistered: llvm.select - 4: "select_same_addrspace_remove_alloca" has unsupported operation: llvm.load 1: "select_after_memcpy_keep_alloca" @@ -176,8 +174,6 @@ 4: "select_after_memcpy_keep_alloca" has unsupported operation: llvm.alloca -4: "select_after_memcpy_keep_alloca" has unsupported operation: builtin.unregistered: llvm.select - 4: "select_after_memcpy_keep_alloca" has unsupported operation: builtin.unregistered: llvm.intr.memcpy 4: "select_after_memcpy_keep_alloca" has unsupported operation: llvm.load @@ -189,8 +185,6 @@ 4: "select_diff_addrspace_keep_alloca" has unsupported operation: builtin.unregistered: llvm.intr.memcpy -4: "select_diff_addrspace_keep_alloca" has unsupported operation: builtin.unregistered: llvm.select - 4: "select_diff_addrspace_keep_alloca" has unsupported operation: llvm.load 1: "select_diff_addrspace_remove_alloca" @@ -202,8 +196,6 @@ 4: "select_diff_addrspace_remove_alloca" has unsupported operation after optimization: llvm.getelementptr -4: "select_diff_addrspace_remove_alloca" has unsupported operation after optimization: builtin.unregistered: llvm.select - 4: "select_diff_addrspace_remove_alloca" has unsupported operation after optimization: llvm.getelementptr 4: "select_diff_addrspace_remove_alloca" has unsupported operation after optimization: llvm.load @@ -215,8 +207,6 @@ 4: "select_diff_addrspace_remove_alloca_asan" has unsupported operation: llvm.getelementptr -4: "select_diff_addrspace_remove_alloca_asan" has unsupported operation: builtin.unregistered: llvm.select - 4: "select_diff_addrspace_remove_alloca_asan" has unsupported operation: llvm.load 1: "readonly_callee" diff --git a/SSA/Projects/InstCombine/tests/logs/pull-conditional-binop-through-shift.txt b/SSA/Projects/InstCombine/tests/logs/pull-conditional-binop-through-shift.txt index 0b796bd3a..f50b59b10 100644 --- a/SSA/Projects/InstCombine/tests/logs/pull-conditional-binop-through-shift.txt +++ b/SSA/Projects/InstCombine/tests/logs/pull-conditional-binop-through-shift.txt @@ -1,72 +1,192 @@ 1: "and_signbit_select_shl" -4: "and_signbit_select_shl" has unsupported operation: builtin.unregistered: llvm.select +2: llvm.func +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.and +2: builtin.unregistered: llvm.select +2: llvm.shl +2: llvm.return 1: "and_nosignbit_select_shl" -4: "and_nosignbit_select_shl" has unsupported operation: builtin.unregistered: llvm.select +2: llvm.func +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.and +2: builtin.unregistered: llvm.select +2: llvm.shl +2: llvm.return 1: "or_signbit_select_shl" -4: "or_signbit_select_shl" has unsupported operation: builtin.unregistered: llvm.select +2: llvm.func +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.or +2: builtin.unregistered: llvm.select +2: llvm.shl +2: llvm.return 1: "or_nosignbit_select_shl" -4: "or_nosignbit_select_shl" has unsupported operation: builtin.unregistered: llvm.select +2: llvm.func +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.or +2: builtin.unregistered: llvm.select +2: llvm.shl +2: llvm.return 1: "xor_signbit_select_shl" -4: "xor_signbit_select_shl" has unsupported operation: builtin.unregistered: llvm.select +2: llvm.func +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.xor +2: builtin.unregistered: llvm.select +2: llvm.shl +2: llvm.return 1: "xor_nosignbit_select_shl" -4: "xor_nosignbit_select_shl" has unsupported operation: builtin.unregistered: llvm.select +2: llvm.func +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.xor +2: builtin.unregistered: llvm.select +2: llvm.shl +2: llvm.return 1: "add_signbit_select_shl" -4: "add_signbit_select_shl" has unsupported operation: builtin.unregistered: llvm.select +2: llvm.func +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.add +2: builtin.unregistered: llvm.select +2: llvm.shl +2: llvm.return 1: "add_nosignbit_select_shl" -4: "add_nosignbit_select_shl" has unsupported operation: builtin.unregistered: llvm.select +2: llvm.func +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.add +2: builtin.unregistered: llvm.select +2: llvm.shl +2: llvm.return 1: "and_signbit_select_lshr" -4: "and_signbit_select_lshr" has unsupported operation: builtin.unregistered: llvm.select +2: llvm.func +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.and +2: builtin.unregistered: llvm.select +2: llvm.lshr +2: llvm.return 1: "and_nosignbit_select_lshr" -4: "and_nosignbit_select_lshr" has unsupported operation: builtin.unregistered: llvm.select +2: llvm.func +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.and +2: builtin.unregistered: llvm.select +2: llvm.lshr +2: llvm.return 1: "or_signbit_select_lshr" -4: "or_signbit_select_lshr" has unsupported operation: builtin.unregistered: llvm.select +2: llvm.func +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.or +2: builtin.unregistered: llvm.select +2: llvm.lshr +2: llvm.return 1: "or_nosignbit_select_lshr" -4: "or_nosignbit_select_lshr" has unsupported operation: builtin.unregistered: llvm.select +2: llvm.func +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.or +2: builtin.unregistered: llvm.select +2: llvm.lshr +2: llvm.return 1: "xor_signbit_select_lshr" -4: "xor_signbit_select_lshr" has unsupported operation: builtin.unregistered: llvm.select +2: llvm.func +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.xor +2: builtin.unregistered: llvm.select +2: llvm.lshr +2: llvm.return 1: "xor_nosignbit_select_lshr" -4: "xor_nosignbit_select_lshr" has unsupported operation: builtin.unregistered: llvm.select +2: llvm.func +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.xor +2: builtin.unregistered: llvm.select +2: llvm.lshr +2: llvm.return 1: "add_signbit_select_lshr" -4: "add_signbit_select_lshr" has unsupported operation: builtin.unregistered: llvm.select +7: "add_signbit_select_lshr" is unchanged by InstCombine 1: "add_nosignbit_select_lshr" -4: "add_nosignbit_select_lshr" has unsupported operation: builtin.unregistered: llvm.select +7: "add_nosignbit_select_lshr" is unchanged by InstCombine 1: "and_signbit_select_ashr" -4: "and_signbit_select_ashr" has unsupported operation: builtin.unregistered: llvm.select +2: llvm.func +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.and +2: builtin.unregistered: llvm.select +2: llvm.ashr +2: llvm.return 1: "and_nosignbit_select_ashr" -4: "and_nosignbit_select_ashr" has unsupported operation: builtin.unregistered: llvm.select +2: llvm.func +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.and +2: builtin.unregistered: llvm.select +2: llvm.ashr +2: llvm.return 1: "or_signbit_select_ashr" -4: "or_signbit_select_ashr" has unsupported operation: builtin.unregistered: llvm.select +2: llvm.func +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.or +2: builtin.unregistered: llvm.select +2: llvm.ashr +2: llvm.return 1: "or_nosignbit_select_ashr" -4: "or_nosignbit_select_ashr" has unsupported operation: builtin.unregistered: llvm.select +2: llvm.func +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.or +2: builtin.unregistered: llvm.select +2: llvm.ashr +2: llvm.return 1: "xor_signbit_select_ashr" -4: "xor_signbit_select_ashr" has unsupported operation: builtin.unregistered: llvm.select +2: llvm.func +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.xor +2: builtin.unregistered: llvm.select +2: llvm.ashr +2: llvm.return 1: "xor_nosignbit_select_ashr" -4: "xor_nosignbit_select_ashr" has unsupported operation: builtin.unregistered: llvm.select +2: llvm.func +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.xor +2: builtin.unregistered: llvm.select +2: llvm.ashr +2: llvm.return 1: "add_signbit_select_ashr" -4: "add_signbit_select_ashr" has unsupported operation: builtin.unregistered: llvm.select +7: "add_signbit_select_ashr" is unchanged by InstCombine 1: "add_nosignbit_select_ashr" -4: "add_nosignbit_select_ashr" has unsupported operation: builtin.unregistered: llvm.select +7: "add_nosignbit_select_ashr" is unchanged by InstCombine diff --git a/SSA/Projects/InstCombine/tests/logs/range-check.txt b/SSA/Projects/InstCombine/tests/logs/range-check.txt index 5befc751b..64a71bf01 100644 --- a/SSA/Projects/InstCombine/tests/logs/range-check.txt +++ b/SSA/Projects/InstCombine/tests/logs/range-check.txt @@ -6,8 +6,6 @@ 4: "test_and1_logical" has unsupported operation: builtin.unregistered: llvm.icmp -4: "test_and1_logical" has unsupported operation: builtin.unregistered: llvm.select - 1: "test_and2" 4: "test_and2" has unsupported operation: builtin.unregistered: llvm.icmp @@ -16,8 +14,6 @@ 4: "test_and2_logical" has unsupported operation: builtin.unregistered: llvm.icmp -4: "test_and2_logical" has unsupported operation: builtin.unregistered: llvm.select - 1: "test_and3" 4: "test_and3" has unsupported operation: builtin.unregistered: llvm.icmp @@ -38,8 +34,6 @@ 4: "test_or1_logical" has unsupported operation: builtin.unregistered: llvm.icmp -4: "test_or1_logical" has unsupported operation: builtin.unregistered: llvm.select - 1: "test_or2" 4: "test_or2" has unsupported operation: builtin.unregistered: llvm.icmp @@ -48,8 +42,6 @@ 4: "test_or2_logical" has unsupported operation: builtin.unregistered: llvm.icmp -4: "test_or2_logical" has unsupported operation: builtin.unregistered: llvm.select - 1: "test_or3" 4: "test_or3" has unsupported operation: builtin.unregistered: llvm.icmp @@ -92,8 +84,6 @@ 4: "negative3_logical" has unsupported operation: builtin.unregistered: llvm.icmp -4: "negative3_logical" has unsupported operation: builtin.unregistered: llvm.select - 1: "negative4" 4: "negative4" has unsupported operation: builtin.unregistered: llvm.icmp @@ -114,5 +104,3 @@ 4: "negative5_logical" has unsupported operation after optimization: builtin.unregistered: llvm.icmp -4: "negative5_logical" has unsupported operation after optimization: builtin.unregistered: llvm.select - diff --git a/SSA/Projects/InstCombine/tests/logs/redundant-right-shift-input-masking.txt b/SSA/Projects/InstCombine/tests/logs/redundant-right-shift-input-masking.txt index ba3de4072..5fff62c01 100644 --- a/SSA/Projects/InstCombine/tests/logs/redundant-right-shift-input-masking.txt +++ b/SSA/Projects/InstCombine/tests/logs/redundant-right-shift-input-masking.txt @@ -15,7 +15,7 @@ 2: llvm.return 1: "t2_vec" -"t2_vec" contains vectors which are unsupported +8: "t2_vec" contains vectors which are unsupported 1: "t3_vec_undef" 4: "t3_vec_undef" has unsupported operation: llvm.mlir.undef diff --git a/SSA/Projects/InstCombine/tests/logs/rem.txt b/SSA/Projects/InstCombine/tests/logs/rem.txt index c64c576f4..3ec09bc1c 100644 --- a/SSA/Projects/InstCombine/tests/logs/rem.txt +++ b/SSA/Projects/InstCombine/tests/logs/rem.txt @@ -15,36 +15,26 @@ 4: "big_divisor" has unsupported operation: builtin.unregistered: llvm.icmp -4: "big_divisor" has unsupported operation: builtin.unregistered: llvm.select - 1: "biggest_divisor" 4: "biggest_divisor" has unsupported operation: builtin.unregistered: llvm.freeze 4: "biggest_divisor" has unsupported operation: builtin.unregistered: llvm.icmp -4: "biggest_divisor" has unsupported operation: builtin.unregistered: llvm.select - 1: "urem_with_sext_bool_divisor" 4: "urem_with_sext_bool_divisor" has unsupported operation: builtin.unregistered: llvm.freeze 4: "urem_with_sext_bool_divisor" has unsupported operation: builtin.unregistered: llvm.icmp -4: "urem_with_sext_bool_divisor" has unsupported operation: builtin.unregistered: llvm.select - 1: "urem_with_sext_bool_divisor_vec" 4: "urem_with_sext_bool_divisor_vec" has unsupported operation: builtin.unregistered: llvm.freeze 4: "urem_with_sext_bool_divisor_vec" has unsupported operation: builtin.unregistered: llvm.icmp -4: "urem_with_sext_bool_divisor_vec" has unsupported operation: builtin.unregistered: llvm.select - 1: "big_divisor_vec" 4: "big_divisor_vec" has unsupported operation: builtin.unregistered: llvm.freeze 4: "big_divisor_vec" has unsupported operation: builtin.unregistered: llvm.icmp -4: "big_divisor_vec" has unsupported operation: builtin.unregistered: llvm.select - 1: "urem1" 4: "urem1" has unsupported operation: builtin.unregistered: llvm.freeze @@ -63,8 +53,6 @@ 1: "udiv_mul_udiv" 4: "udiv_mul_udiv" has unsupported operation: builtin.unregistered: llvm.freeze -4: "udiv_mul_udiv" has unsupported operation: llvm.udiv - 1: "test1" 2: llvm.func 2: llvm.mlir.constant @@ -78,10 +66,10 @@ 2: llvm.return 1: "vec_power_of_2_constant_splat_divisor" -"vec_power_of_2_constant_splat_divisor" contains vectors which are unsupported +8: "vec_power_of_2_constant_splat_divisor" contains vectors which are unsupported 1: "weird_vec_power_of_2_constant_splat_divisor" -"weird_vec_power_of_2_constant_splat_divisor" contains vectors which are unsupported +8: "weird_vec_power_of_2_constant_splat_divisor" contains vectors which are unsupported 1: "test3a" 4: "test3a" has unsupported operation: builtin.unregistered: llvm.icmp @@ -90,7 +78,12 @@ 4: "test3a_vec" has unsupported operation: builtin.unregistered: llvm.icmp 1: "test4" -4: "test4" has unsupported operation: builtin.unregistered: llvm.select +2: llvm.func +2: llvm.mlir.constant +2: llvm.mlir.constant +2: builtin.unregistered: llvm.select +2: llvm.urem +2: llvm.return 1: "test5" 4: "test5" has unsupported operation: builtin.unregistered: llvm.zext @@ -176,8 +169,6 @@ 1: "test18" 4: "test18" has unsupported operation: builtin.unregistered: llvm.icmp -4: "test18" has unsupported operation: builtin.unregistered: llvm.select - 1: "test19" 2: llvm.func 2: llvm.mlir.constant @@ -219,7 +210,7 @@ 2: llvm.return 1: "test20" -4: "test20" has unsupported operation: builtin.unregistered: llvm.select +8: "test20" contains vectors which are unsupported 1: "test21" 4: "test21" has unsupported operation: builtin.unregistered: llvm.cond_br @@ -288,7 +279,7 @@ 2: llvm.return 1: "test23" -"test23" contains vectors which are unsupported +8: "test23" contains vectors which are unsupported 1: "test24" 4: "test24" has unsupported operation: builtin.unregistered: llvm.icmp @@ -326,34 +317,40 @@ 4: "negative_and_odd_ne" has unsupported operation: builtin.unregistered: llvm.icmp 1: "PR34870" -4: "PR34870" has unsupported operation: builtin.unregistered: llvm.select - 4: "PR34870" has unsupported operation: builtin.unregistered: llvm.frem 1: "srem_constant_dividend_select_of_constants_divisor" -4: "srem_constant_dividend_select_of_constants_divisor" has unsupported operation: builtin.unregistered: llvm.select +2: llvm.func +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.mlir.constant +2: builtin.unregistered: llvm.select +2: llvm.srem +2: llvm.return 1: "srem_constant_dividend_select_of_constants_divisor_use" -4: "srem_constant_dividend_select_of_constants_divisor_use" has unsupported operation: builtin.unregistered: llvm.select - 4: "srem_constant_dividend_select_of_constants_divisor_use" has unsupported operation: llvm.call -4: "srem_constant_dividend_select_of_constants_divisor_use" has unsupported operation: builtin.unregistered: llvm.select - 1: "srem_constant_dividend_select_of_constants_divisor_0_arm" -4: "srem_constant_dividend_select_of_constants_divisor_0_arm" has unsupported operation after optimization: builtin.unregistered: llvm.select +2: llvm.func +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.mlir.constant +2: builtin.unregistered: llvm.select +2: llvm.srem +2: llvm.return 1: "srem_constant_dividend_select_divisor1" -4: "srem_constant_dividend_select_divisor1" has unsupported operation: builtin.unregistered: llvm.select +7: "srem_constant_dividend_select_divisor1" is unchanged by InstCombine 1: "srem_constant_dividend_select_divisor2" -4: "srem_constant_dividend_select_divisor2" has unsupported operation: builtin.unregistered: llvm.select +7: "srem_constant_dividend_select_divisor2" is unchanged by InstCombine 1: "srem_constant_dividend_select_of_constants_divisor_vec" -4: "srem_constant_dividend_select_of_constants_divisor_vec" has unsupported operation: builtin.unregistered: llvm.select +8: "srem_constant_dividend_select_of_constants_divisor_vec" contains vectors which are unsupported 1: "srem_constant_dividend_select_of_constants_divisor_vec_ub1" -"srem_constant_dividend_select_of_constants_divisor_vec_ub1" contains vectors which are unsupported +8: "srem_constant_dividend_select_of_constants_divisor_vec_ub1" contains vectors which are unsupported 1: "srem_constant_dividend_select_of_constants_divisor_vec_ub2" 4: "srem_constant_dividend_select_of_constants_divisor_vec_ub2" has unsupported operation: builtin.unregistered: llvm.mlir.poison @@ -364,49 +361,53 @@ 4: "srem_constant_dividend_select_of_constants_divisor_vec_ub2" has unsupported operation: builtin.unregistered: llvm.insertelement -4: "srem_constant_dividend_select_of_constants_divisor_vec_ub2" has unsupported operation: builtin.unregistered: llvm.select - 1: "srem_select_of_constants_divisor" -4: "srem_select_of_constants_divisor" has unsupported operation: builtin.unregistered: llvm.select +7: "srem_select_of_constants_divisor" is unchanged by InstCombine 1: "urem_constant_dividend_select_of_constants_divisor" -4: "urem_constant_dividend_select_of_constants_divisor" has unsupported operation: builtin.unregistered: llvm.select +2: llvm.func +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.mlir.constant +2: builtin.unregistered: llvm.select +2: llvm.urem +2: llvm.return 1: "urem_constant_dividend_select_of_constants_divisor_use" -4: "urem_constant_dividend_select_of_constants_divisor_use" has unsupported operation: builtin.unregistered: llvm.select - 4: "urem_constant_dividend_select_of_constants_divisor_use" has unsupported operation: llvm.call -4: "urem_constant_dividend_select_of_constants_divisor_use" has unsupported operation: builtin.unregistered: llvm.select - 1: "urem_constant_dividend_select_of_constants_divisor_0_arm" -4: "urem_constant_dividend_select_of_constants_divisor_0_arm" has unsupported operation after optimization: builtin.unregistered: llvm.select +2: llvm.func +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.mlir.constant +2: builtin.unregistered: llvm.select +2: llvm.urem +2: llvm.return 1: "urem_constant_dividend_select_divisor1" -4: "urem_constant_dividend_select_divisor1" has unsupported operation: builtin.unregistered: llvm.select +7: "urem_constant_dividend_select_divisor1" is unchanged by InstCombine 1: "urem_constant_dividend_select_divisor2" -4: "urem_constant_dividend_select_divisor2" has unsupported operation: builtin.unregistered: llvm.select +7: "urem_constant_dividend_select_divisor2" is unchanged by InstCombine 1: "urem_constant_dividend_select_of_constants_divisor_vec" -4: "urem_constant_dividend_select_of_constants_divisor_vec" has unsupported operation: builtin.unregistered: llvm.select +8: "urem_constant_dividend_select_of_constants_divisor_vec" contains vectors which are unsupported 1: "urem_constant_dividend_select_of_constants_divisor_vec_ub1" -"urem_constant_dividend_select_of_constants_divisor_vec_ub1" contains vectors which are unsupported +8: "urem_constant_dividend_select_of_constants_divisor_vec_ub1" contains vectors which are unsupported 1: "urem_constant_dividend_select_of_constants_divisor_vec_ub2" -4: "urem_constant_dividend_select_of_constants_divisor_vec_ub2" has unsupported operation: builtin.unregistered: llvm.select +8: "urem_constant_dividend_select_of_constants_divisor_vec_ub2" contains vectors which are unsupported 1: "urem_select_of_constants_divisor" -4: "urem_select_of_constants_divisor" has unsupported operation: builtin.unregistered: llvm.select +7: "urem_select_of_constants_divisor" is unchanged by InstCombine 1: "PR62401" 4: "PR62401" has unsupported operation: builtin.unregistered: llvm.freeze 4: "PR62401" has unsupported operation: builtin.unregistered: llvm.icmp -4: "PR62401" has unsupported operation: builtin.unregistered: llvm.select - 1: "rem_pow2_or_zero" 4: "rem_pow2_or_zero" has unsupported operation: builtin.unregistered: llvm.intr.ctpop diff --git a/SSA/Projects/InstCombine/tests/logs/reuse-constant-from-select-in-icmp.txt b/SSA/Projects/InstCombine/tests/logs/reuse-constant-from-select-in-icmp.txt index 565efb72c..71de1165e 100644 --- a/SSA/Projects/InstCombine/tests/logs/reuse-constant-from-select-in-icmp.txt +++ b/SSA/Projects/InstCombine/tests/logs/reuse-constant-from-select-in-icmp.txt @@ -1,48 +1,30 @@ 1: "p0_ult_65536" 4: "p0_ult_65536" has unsupported operation: builtin.unregistered: llvm.icmp -4: "p0_ult_65536" has unsupported operation: builtin.unregistered: llvm.select - 1: "p1_ugt" 4: "p1_ugt" has unsupported operation: builtin.unregistered: llvm.icmp -4: "p1_ugt" has unsupported operation: builtin.unregistered: llvm.select - 1: "p2_slt_65536" 4: "p2_slt_65536" has unsupported operation: builtin.unregistered: llvm.icmp -4: "p2_slt_65536" has unsupported operation: builtin.unregistered: llvm.select - 1: "p3_sgt" 4: "p3_sgt" has unsupported operation: builtin.unregistered: llvm.icmp -4: "p3_sgt" has unsupported operation: builtin.unregistered: llvm.select - 1: "p4_vec_splat_ult_65536" 4: "p4_vec_splat_ult_65536" has unsupported operation: builtin.unregistered: llvm.icmp -4: "p4_vec_splat_ult_65536" has unsupported operation: builtin.unregistered: llvm.select - 1: "p5_vec_splat_ugt" 4: "p5_vec_splat_ugt" has unsupported operation: builtin.unregistered: llvm.icmp -4: "p5_vec_splat_ugt" has unsupported operation: builtin.unregistered: llvm.select - 1: "p6_vec_splat_slt_65536" 4: "p6_vec_splat_slt_65536" has unsupported operation: builtin.unregistered: llvm.icmp -4: "p6_vec_splat_slt_65536" has unsupported operation: builtin.unregistered: llvm.select - 1: "p7_vec_splat_sgt" 4: "p7_vec_splat_sgt" has unsupported operation: builtin.unregistered: llvm.icmp -4: "p7_vec_splat_sgt" has unsupported operation: builtin.unregistered: llvm.select - 1: "p8_vec_nonsplat_poison0" 4: "p8_vec_nonsplat_poison0" has unsupported operation: builtin.unregistered: llvm.icmp -4: "p8_vec_nonsplat_poison0" has unsupported operation: builtin.unregistered: llvm.select - 1: "p9_vec_nonsplat_poison1" 4: "p9_vec_nonsplat_poison1" has unsupported operation: builtin.unregistered: llvm.mlir.poison @@ -54,8 +36,6 @@ 4: "p9_vec_nonsplat_poison1" has unsupported operation: builtin.unregistered: llvm.icmp -4: "p9_vec_nonsplat_poison1" has unsupported operation: builtin.unregistered: llvm.select - 1: "p10_vec_nonsplat_poison2" 4: "p10_vec_nonsplat_poison2" has unsupported operation: builtin.unregistered: llvm.mlir.poison @@ -67,13 +47,9 @@ 4: "p10_vec_nonsplat_poison2" has unsupported operation: builtin.unregistered: llvm.icmp -4: "p10_vec_nonsplat_poison2" has unsupported operation: builtin.unregistered: llvm.select - 1: "p11_vec_nonsplat" 4: "p11_vec_nonsplat" has unsupported operation: builtin.unregistered: llvm.icmp -4: "p11_vec_nonsplat" has unsupported operation: builtin.unregistered: llvm.select - 1: "use1" 5: "use1" is empty @@ -82,85 +58,51 @@ 4: "n12_extrause" has unsupported operation: llvm.call -4: "n12_extrause" has unsupported operation: builtin.unregistered: llvm.select - 1: "p13_commutativity0" 4: "p13_commutativity0" has unsupported operation: builtin.unregistered: llvm.icmp -4: "p13_commutativity0" has unsupported operation: builtin.unregistered: llvm.select - 1: "p14_commutativity1" 4: "p14_commutativity1" has unsupported operation: builtin.unregistered: llvm.icmp -4: "p14_commutativity1" has unsupported operation: builtin.unregistered: llvm.select - 1: "p15_commutativity2" 4: "p15_commutativity2" has unsupported operation: builtin.unregistered: llvm.icmp -4: "p15_commutativity2" has unsupported operation: builtin.unregistered: llvm.select - 1: "n17_ult_zero" 4: "n17_ult_zero" has unsupported operation: builtin.unregistered: llvm.icmp -4: "n17_ult_zero" has unsupported operation: builtin.unregistered: llvm.select - 1: "n18_ugt_allones" 4: "n18_ugt_allones" has unsupported operation: builtin.unregistered: llvm.icmp -4: "n18_ugt_allones" has unsupported operation: builtin.unregistered: llvm.select - 1: "n19_slt_int_min" 4: "n19_slt_int_min" has unsupported operation: builtin.unregistered: llvm.icmp -4: "n19_slt_int_min" has unsupported operation: builtin.unregistered: llvm.select - 1: "n20_sgt_int_max" 4: "n20_sgt_int_max" has unsupported operation: builtin.unregistered: llvm.icmp -4: "n20_sgt_int_max" has unsupported operation: builtin.unregistered: llvm.select - 1: "n21_equality" 4: "n21_equality" has unsupported operation: builtin.unregistered: llvm.icmp -4: "n21_equality" has unsupported operation: builtin.unregistered: llvm.select - 1: "t22_sign_check" 4: "t22_sign_check" has unsupported operation: builtin.unregistered: llvm.icmp -4: "t22_sign_check" has unsupported operation: builtin.unregistered: llvm.select - 1: "t22_sign_check2" 4: "t22_sign_check2" has unsupported operation: builtin.unregistered: llvm.icmp -4: "t22_sign_check2" has unsupported operation: builtin.unregistered: llvm.select - 1: "n23_type_mismatch" 4: "n23_type_mismatch" has unsupported operation: builtin.unregistered: llvm.icmp -4: "n23_type_mismatch" has unsupported operation: builtin.unregistered: llvm.select - 1: "n24_ult_65534" 4: "n24_ult_65534" has unsupported operation: builtin.unregistered: llvm.icmp -4: "n24_ult_65534" has unsupported operation: builtin.unregistered: llvm.select - 1: "n25_all_good0" 4: "n25_all_good0" has unsupported operation: builtin.unregistered: llvm.icmp -4: "n25_all_good0" has unsupported operation: builtin.unregistered: llvm.select - 1: "n26_all_good1" 4: "n26_all_good1" has unsupported operation: builtin.unregistered: llvm.icmp -4: "n26_all_good1" has unsupported operation: builtin.unregistered: llvm.select - 1: "ult_inf_loop" 4: "ult_inf_loop" has unsupported operation: builtin.unregistered: llvm.icmp -4: "ult_inf_loop" has unsupported operation: builtin.unregistered: llvm.select - 1: "ult_inf_loop_vec" 4: "ult_inf_loop_vec" has unsupported operation: builtin.unregistered: llvm.icmp -4: "ult_inf_loop_vec" has unsupported operation: builtin.unregistered: llvm.select - diff --git a/SSA/Projects/InstCombine/tests/logs/rotate.txt b/SSA/Projects/InstCombine/tests/logs/rotate.txt index 73caf32ca..5ad22ff14 100644 --- a/SSA/Projects/InstCombine/tests/logs/rotate.txt +++ b/SSA/Projects/InstCombine/tests/logs/rotate.txt @@ -210,8 +210,6 @@ 1: "rotl_select_weird_type" 4: "rotl_select_weird_type" has unsupported operation: builtin.unregistered: llvm.icmp -4: "rotl_select_weird_type" has unsupported operation: builtin.unregistered: llvm.select - 1: "rotl_select_zext_shamt" 4: "rotl_select_zext_shamt" has unsupported operation: builtin.unregistered: llvm.zext diff --git a/SSA/Projects/InstCombine/tests/logs/saturating-add-sub.txt b/SSA/Projects/InstCombine/tests/logs/saturating-add-sub.txt index 051ed6607..8eb7e9247 100644 --- a/SSA/Projects/InstCombine/tests/logs/saturating-add-sub.txt +++ b/SSA/Projects/InstCombine/tests/logs/saturating-add-sub.txt @@ -27,7 +27,7 @@ 4: "test_scalar_uadd_overflow" has unsupported operation after optimization: builtin.unregistered: llvm.intr.uadd.sat 1: "test_vector_uadd_overflow" -"test_vector_uadd_overflow" contains vectors which are unsupported +8: "test_vector_uadd_overflow" contains vectors which are unsupported 1: "test_scalar_sadd_both_positive" 4: "test_scalar_sadd_both_positive" has unsupported operation: builtin.unregistered: llvm.intr.sadd.sat @@ -55,13 +55,13 @@ 4: "test_scalar_uadd_neg_neg" has unsupported operation after optimization: builtin.unregistered: llvm.intr.uadd.sat 1: "test_vector_uadd_neg_neg" -"test_vector_uadd_neg_neg" contains vectors which are unsupported +8: "test_vector_uadd_neg_neg" contains vectors which are unsupported 1: "test_scalar_uadd_nneg_nneg" 4: "test_scalar_uadd_nneg_nneg" has unsupported operation after optimization: builtin.unregistered: llvm.intr.uadd.sat 1: "test_vector_uadd_nneg_nneg" -"test_vector_uadd_nneg_nneg" contains vectors which are unsupported +8: "test_vector_uadd_nneg_nneg" contains vectors which are unsupported 1: "test_scalar_uadd_neg_nneg" 4: "test_scalar_uadd_neg_nneg" has unsupported operation: builtin.unregistered: llvm.intr.uadd.sat @@ -73,25 +73,25 @@ 4: "test_scalar_uadd_never_overflows" has unsupported operation after optimization: builtin.unregistered: llvm.intr.uadd.sat 1: "test_vector_uadd_never_overflows" -"test_vector_uadd_never_overflows" contains vectors which are unsupported +8: "test_vector_uadd_never_overflows" contains vectors which are unsupported 1: "test_scalar_uadd_always_overflows" 4: "test_scalar_uadd_always_overflows" has unsupported operation after optimization: builtin.unregistered: llvm.intr.uadd.sat 1: "test_vector_uadd_always_overflows" -"test_vector_uadd_always_overflows" contains vectors which are unsupported +8: "test_vector_uadd_always_overflows" contains vectors which are unsupported 1: "test_scalar_sadd_neg_nneg" 4: "test_scalar_sadd_neg_nneg" has unsupported operation after optimization: builtin.unregistered: llvm.intr.sadd.sat 1: "test_vector_sadd_neg_nneg" -"test_vector_sadd_neg_nneg" contains vectors which are unsupported +8: "test_vector_sadd_neg_nneg" contains vectors which are unsupported 1: "test_scalar_sadd_nneg_neg" 4: "test_scalar_sadd_nneg_neg" has unsupported operation after optimization: builtin.unregistered: llvm.intr.sadd.sat 1: "test_vector_sadd_nneg_neg" -"test_vector_sadd_nneg_neg" contains vectors which are unsupported +8: "test_vector_sadd_nneg_neg" contains vectors which are unsupported 1: "test_scalar_sadd_neg_neg" 4: "test_scalar_sadd_neg_neg" has unsupported operation: builtin.unregistered: llvm.intr.sadd.sat @@ -102,15 +102,11 @@ 1: "test_scalar_sadd_always_overflows_low" 4: "test_scalar_sadd_always_overflows_low" has unsupported operation after optimization: builtin.unregistered: llvm.icmp -4: "test_scalar_sadd_always_overflows_low" has unsupported operation after optimization: builtin.unregistered: llvm.select - 4: "test_scalar_sadd_always_overflows_low" has unsupported operation after optimization: builtin.unregistered: llvm.intr.sadd.sat 1: "test_scalar_sadd_always_overflows_high" 4: "test_scalar_sadd_always_overflows_high" has unsupported operation after optimization: builtin.unregistered: llvm.icmp -4: "test_scalar_sadd_always_overflows_high" has unsupported operation after optimization: builtin.unregistered: llvm.select - 4: "test_scalar_sadd_always_overflows_high" has unsupported operation after optimization: builtin.unregistered: llvm.intr.sadd.sat 1: "test_scalar_uadd_sub_nuw_lost_no_ov" @@ -123,7 +119,7 @@ 4: "test_scalar_uadd_urem_may_ov" has unsupported operation: builtin.unregistered: llvm.intr.uadd.sat 1: "test_scalar_uadd_udiv_known_bits" -4: "test_scalar_uadd_udiv_known_bits" has unsupported operation: llvm.udiv +4: "test_scalar_uadd_udiv_known_bits" has unsupported operation after optimization: builtin.unregistered: llvm.intr.uadd.sat 1: "test_scalar_sadd_srem_no_ov" 4: "test_scalar_sadd_srem_no_ov" has unsupported operation after optimization: builtin.unregistered: llvm.intr.sadd.sat @@ -182,23 +178,15 @@ 1: "test_invalid_simplify_sub2" 4: "test_invalid_simplify_sub2" has unsupported operation: builtin.unregistered: llvm.icmp -4: "test_invalid_simplify_sub2" has unsupported operation: builtin.unregistered: llvm.select - 1: "test_invalid_simplify_eq2" 4: "test_invalid_simplify_eq2" has unsupported operation: builtin.unregistered: llvm.icmp -4: "test_invalid_simplify_eq2" has unsupported operation: builtin.unregistered: llvm.select - 1: "test_invalid_simplify_select_1" 4: "test_invalid_simplify_select_1" has unsupported operation: builtin.unregistered: llvm.icmp -4: "test_invalid_simplify_select_1" has unsupported operation: builtin.unregistered: llvm.select - 1: "test_invalid_simplify_other" 4: "test_invalid_simplify_other" has unsupported operation: builtin.unregistered: llvm.icmp -4: "test_invalid_simplify_other" has unsupported operation: builtin.unregistered: llvm.select - 1: "test_vector_usub_combine" 4: "test_vector_usub_combine" has unsupported operation: builtin.unregistered: llvm.intr.usub.sat @@ -213,7 +201,7 @@ 4: "test_scalar_usub_overflow" has unsupported operation after optimization: builtin.unregistered: llvm.intr.usub.sat 1: "test_vector_usub_overflow" -"test_vector_usub_overflow" contains vectors which are unsupported +8: "test_vector_usub_overflow" contains vectors which are unsupported 1: "test_scalar_ssub_both_positive" 4: "test_scalar_ssub_both_positive" has unsupported operation: builtin.unregistered: llvm.intr.sadd.sat @@ -247,13 +235,13 @@ 4: "test_scalar_usub_nneg_neg" has unsupported operation after optimization: builtin.unregistered: llvm.intr.usub.sat 1: "test_vector_usub_nneg_neg" -"test_vector_usub_nneg_neg" contains vectors which are unsupported +8: "test_vector_usub_nneg_neg" contains vectors which are unsupported 1: "test_scalar_usub_neg_nneg" 4: "test_scalar_usub_neg_nneg" has unsupported operation after optimization: builtin.unregistered: llvm.intr.usub.sat 1: "test_vector_usub_neg_nneg" -"test_vector_usub_neg_nneg" contains vectors which are unsupported +8: "test_vector_usub_neg_nneg" contains vectors which are unsupported 1: "test_scalar_usub_nneg_nneg" 4: "test_scalar_usub_nneg_nneg" has unsupported operation: builtin.unregistered: llvm.intr.usub.sat @@ -265,25 +253,25 @@ 4: "test_scalar_usub_never_overflows" has unsupported operation after optimization: builtin.unregistered: llvm.intr.usub.sat 1: "test_vector_usub_never_overflows" -"test_vector_usub_never_overflows" contains vectors which are unsupported +8: "test_vector_usub_never_overflows" contains vectors which are unsupported 1: "test_scalar_usub_always_overflows" 4: "test_scalar_usub_always_overflows" has unsupported operation after optimization: builtin.unregistered: llvm.intr.usub.sat 1: "test_vector_usub_always_overflows" -"test_vector_usub_always_overflows" contains vectors which are unsupported +8: "test_vector_usub_always_overflows" contains vectors which are unsupported 1: "test_scalar_ssub_neg_neg" 4: "test_scalar_ssub_neg_neg" has unsupported operation after optimization: builtin.unregistered: llvm.intr.ssub.sat 1: "test_vector_ssub_neg_neg" -"test_vector_ssub_neg_neg" contains vectors which are unsupported +8: "test_vector_ssub_neg_neg" contains vectors which are unsupported 1: "test_scalar_ssub_nneg_nneg" 4: "test_scalar_ssub_nneg_nneg" has unsupported operation after optimization: builtin.unregistered: llvm.intr.ssub.sat 1: "test_vector_ssub_nneg_nneg" -"test_vector_ssub_nneg_nneg" contains vectors which are unsupported +8: "test_vector_ssub_nneg_nneg" contains vectors which are unsupported 1: "test_scalar_ssub_neg_nneg" 4: "test_scalar_ssub_neg_nneg" has unsupported operation: builtin.unregistered: llvm.intr.sadd.sat @@ -294,15 +282,11 @@ 1: "test_scalar_ssub_always_overflows_low" 4: "test_scalar_ssub_always_overflows_low" has unsupported operation after optimization: builtin.unregistered: llvm.icmp -4: "test_scalar_ssub_always_overflows_low" has unsupported operation after optimization: builtin.unregistered: llvm.select - 4: "test_scalar_ssub_always_overflows_low" has unsupported operation after optimization: builtin.unregistered: llvm.intr.ssub.sat 1: "test_scalar_ssub_always_overflows_high" 4: "test_scalar_ssub_always_overflows_high" has unsupported operation after optimization: builtin.unregistered: llvm.icmp -4: "test_scalar_ssub_always_overflows_high" has unsupported operation after optimization: builtin.unregistered: llvm.select - 4: "test_scalar_ssub_always_overflows_high" has unsupported operation after optimization: builtin.unregistered: llvm.intr.ssub.sat 1: "test_scalar_usub_add_nuw_no_ov" @@ -330,10 +314,10 @@ 4: "test_scalar_usub_add_nuw_inferred" has unsupported operation: builtin.unregistered: llvm.intr.usub.sat 1: "test_vector_usub_add_nuw_no_ov" -"test_vector_usub_add_nuw_no_ov" contains vectors which are unsupported +8: "test_vector_usub_add_nuw_no_ov" contains vectors which are unsupported 1: "test_vector_usub_add_nuw_no_ov_nonsplat1" -"test_vector_usub_add_nuw_no_ov_nonsplat1" contains vectors which are unsupported +8: "test_vector_usub_add_nuw_no_ov_nonsplat1" contains vectors which are unsupported 1: "test_vector_usub_add_nuw_no_ov_nonsplat1_poison" 4: "test_vector_usub_add_nuw_no_ov_nonsplat1_poison" has unsupported operation: builtin.unregistered: llvm.mlir.poison @@ -359,10 +343,10 @@ 4: "test_scalar_ssub_add_nsw_may_ov" has unsupported operation: builtin.unregistered: llvm.intr.ssub.sat 1: "test_vector_ssub_add_nsw_no_ov_splat" -"test_vector_ssub_add_nsw_no_ov_splat" contains vectors which are unsupported +8: "test_vector_ssub_add_nsw_no_ov_splat" contains vectors which are unsupported 1: "test_vector_ssub_add_nsw_no_ov_nonsplat1" -"test_vector_ssub_add_nsw_no_ov_nonsplat1" contains vectors which are unsupported +8: "test_vector_ssub_add_nsw_no_ov_nonsplat1" contains vectors which are unsupported 1: "test_vector_ssub_add_nsw_no_ov_nonsplat2" 4: "test_vector_ssub_add_nsw_no_ov_nonsplat2" has unsupported operation: builtin.unregistered: llvm.intr.ssub.sat @@ -445,13 +429,9 @@ 1: "uadd_sat_flipped3" 4: "uadd_sat_flipped3" has unsupported operation: builtin.unregistered: llvm.icmp -4: "uadd_sat_flipped3" has unsupported operation: builtin.unregistered: llvm.select - 1: "uadd_sat_flipped3_neg_no_nuw" 4: "uadd_sat_flipped3_neg_no_nuw" has unsupported operation: builtin.unregistered: llvm.icmp -4: "uadd_sat_flipped3_neg_no_nuw" has unsupported operation: builtin.unregistered: llvm.select - 1: "uadd_sat_negative_one" 4: "uadd_sat_negative_one" has unsupported operation: builtin.unregistered: llvm.intr.uadd.sat @@ -465,53 +445,35 @@ 4: "uadd_sat_flipped4_poison_vector_compare" has unsupported operation: builtin.unregistered: llvm.intr.uadd.sat 1: "uadd_sat_flipped4_poison_vector_compare2" -"uadd_sat_flipped4_poison_vector_compare2" contains vectors which are unsupported +8: "uadd_sat_flipped4_poison_vector_compare2" contains vectors which are unsupported 1: "uadd_sat_flipped_too_big" 4: "uadd_sat_flipped_too_big" has unsupported operation: builtin.unregistered: llvm.icmp -4: "uadd_sat_flipped_too_big" has unsupported operation: builtin.unregistered: llvm.select - 1: "uadd_sat_flipped_wrong_bounds" 4: "uadd_sat_flipped_wrong_bounds" has unsupported operation: builtin.unregistered: llvm.icmp -4: "uadd_sat_flipped_wrong_bounds" has unsupported operation: builtin.unregistered: llvm.select - 1: "uadd_sat_flipped_wrong_bounds2" 4: "uadd_sat_flipped_wrong_bounds2" has unsupported operation: builtin.unregistered: llvm.icmp -4: "uadd_sat_flipped_wrong_bounds2" has unsupported operation: builtin.unregistered: llvm.select - 1: "uadd_sat_flipped_wrong_bounds3" 4: "uadd_sat_flipped_wrong_bounds3" has unsupported operation: builtin.unregistered: llvm.icmp -4: "uadd_sat_flipped_wrong_bounds3" has unsupported operation: builtin.unregistered: llvm.select - 1: "uadd_sat_flipped_wrong_bounds4" 4: "uadd_sat_flipped_wrong_bounds4" has unsupported operation: builtin.unregistered: llvm.icmp -4: "uadd_sat_flipped_wrong_bounds4" has unsupported operation: builtin.unregistered: llvm.select - 1: "uadd_sat_flipped_wrong_bounds5" 4: "uadd_sat_flipped_wrong_bounds5" has unsupported operation: builtin.unregistered: llvm.icmp -4: "uadd_sat_flipped_wrong_bounds5" has unsupported operation: builtin.unregistered: llvm.select - 1: "uadd_sat_flipped_wrong_bounds6" 4: "uadd_sat_flipped_wrong_bounds6" has unsupported operation: builtin.unregistered: llvm.icmp -4: "uadd_sat_flipped_wrong_bounds6" has unsupported operation: builtin.unregistered: llvm.select - 1: "uadd_sat_flipped_wrong_bounds7" 4: "uadd_sat_flipped_wrong_bounds7" has unsupported operation: builtin.unregistered: llvm.icmp -4: "uadd_sat_flipped_wrong_bounds7" has unsupported operation: builtin.unregistered: llvm.select - 1: "uadd_sat_flipped_wrong_bounds8" 4: "uadd_sat_flipped_wrong_bounds8" has unsupported operation: builtin.unregistered: llvm.icmp -4: "uadd_sat_flipped_wrong_bounds8" has unsupported operation: builtin.unregistered: llvm.select - 1: "uadd_sat_nonstrict" 4: "uadd_sat_nonstrict" has unsupported operation: builtin.unregistered: llvm.intr.uadd.sat @@ -545,13 +507,9 @@ 1: "not_uadd_sat" 4: "not_uadd_sat" has unsupported operation: builtin.unregistered: llvm.icmp -4: "not_uadd_sat" has unsupported operation: builtin.unregistered: llvm.select - 1: "not_uadd_sat2" 4: "not_uadd_sat2" has unsupported operation: builtin.unregistered: llvm.icmp -4: "not_uadd_sat2" has unsupported operation: builtin.unregistered: llvm.select - 1: "uadd_sat_not" 4: "uadd_sat_not" has unsupported operation: builtin.unregistered: llvm.intr.uadd.sat @@ -603,13 +561,9 @@ 1: "uadd_sat_canon_nuw" 4: "uadd_sat_canon_nuw" has unsupported operation after optimization: builtin.unregistered: llvm.icmp -4: "uadd_sat_canon_nuw" has unsupported operation after optimization: builtin.unregistered: llvm.select - 1: "uadd_sat_canon_y_nuw" 4: "uadd_sat_canon_y_nuw" has unsupported operation after optimization: builtin.unregistered: llvm.icmp -4: "uadd_sat_canon_y_nuw" has unsupported operation after optimization: builtin.unregistered: llvm.select - 1: "uadd_sat_constant_vec" 4: "uadd_sat_constant_vec" has unsupported operation: builtin.unregistered: llvm.intr.uadd.sat @@ -670,29 +624,21 @@ 1: "uadd_sat_via_add_nonstrict" 4: "uadd_sat_via_add_nonstrict" has unsupported operation: builtin.unregistered: llvm.icmp -4: "uadd_sat_via_add_nonstrict" has unsupported operation: builtin.unregistered: llvm.select - 1: "uadd_sat_via_add_swapped_select" 4: "uadd_sat_via_add_swapped_select" has unsupported operation: builtin.unregistered: llvm.intr.uadd.sat 1: "uadd_sat_via_add_swapped_select_strict" 4: "uadd_sat_via_add_swapped_select_strict" has unsupported operation: builtin.unregistered: llvm.icmp -4: "uadd_sat_via_add_swapped_select_strict" has unsupported operation: builtin.unregistered: llvm.select - 1: "uadd_sat_via_add_swapped_cmp" 4: "uadd_sat_via_add_swapped_cmp" has unsupported operation: builtin.unregistered: llvm.intr.uadd.sat 1: "uadd_sat_via_add_swapped_cmp_nonstrict" 4: "uadd_sat_via_add_swapped_cmp_nonstrict" has unsupported operation: builtin.unregistered: llvm.icmp -4: "uadd_sat_via_add_swapped_cmp_nonstrict" has unsupported operation: builtin.unregistered: llvm.select - 1: "uadd_sat_via_add_swapped_cmp_nonstric" 4: "uadd_sat_via_add_swapped_cmp_nonstric" has unsupported operation: builtin.unregistered: llvm.intr.uadd.sat 1: "uadd_sat_via_add_swapped_cmp_select_nonstrict" 4: "uadd_sat_via_add_swapped_cmp_select_nonstrict" has unsupported operation: builtin.unregistered: llvm.icmp -4: "uadd_sat_via_add_swapped_cmp_select_nonstrict" has unsupported operation: builtin.unregistered: llvm.select - diff --git a/SSA/Projects/InstCombine/tests/logs/sdiv-2.txt b/SSA/Projects/InstCombine/tests/logs/sdiv-2.txt index 64a032af2..3aba195cf 100644 --- a/SSA/Projects/InstCombine/tests/logs/sdiv-2.txt +++ b/SSA/Projects/InstCombine/tests/logs/sdiv-2.txt @@ -1,10 +1,6 @@ 1: "func" 4: "func" has unsupported operation: builtin.unregistered: llvm.icmp -4: "func" has unsupported operation: builtin.unregistered: llvm.select - -4: "func" has unsupported operation: llvm.udiv - 4: "func" has unsupported operation: builtin.unregistered: llvm.br 4: "func" has unsupported operation: builtin.unregistered: llvm.icmp diff --git a/SSA/Projects/InstCombine/tests/logs/sdiv-canonicalize.txt b/SSA/Projects/InstCombine/tests/logs/sdiv-canonicalize.txt index e6485684a..7434dbf1f 100644 --- a/SSA/Projects/InstCombine/tests/logs/sdiv-canonicalize.txt +++ b/SSA/Projects/InstCombine/tests/logs/sdiv-canonicalize.txt @@ -22,7 +22,7 @@ 7: "test_sdiv_canonicalize_nonsw" is unchanged by InstCombine 1: "test_sdiv_canonicalize_vec" -"test_sdiv_canonicalize_vec" contains vectors which are unsupported +8: "test_sdiv_canonicalize_vec" contains vectors which are unsupported 1: "test_sdiv_canonicalize_multiple_uses" 7: "test_sdiv_canonicalize_multiple_uses" is unchanged by InstCombine @@ -35,13 +35,9 @@ 1: "sdiv_abs_nsw" 4: "sdiv_abs_nsw" has unsupported operation: builtin.unregistered: llvm.icmp -4: "sdiv_abs_nsw" has unsupported operation: builtin.unregistered: llvm.select - 1: "sdiv_abs_nsw_vec" 4: "sdiv_abs_nsw_vec" has unsupported operation: builtin.unregistered: llvm.icmp -4: "sdiv_abs_nsw_vec" has unsupported operation: builtin.unregistered: llvm.select - 1: "sdiv_abs" 4: "sdiv_abs" has unsupported operation: builtin.unregistered: llvm.intr.abs diff --git a/SSA/Projects/InstCombine/tests/logs/sdiv-exact-by-negative-power-of-two.txt b/SSA/Projects/InstCombine/tests/logs/sdiv-exact-by-negative-power-of-two.txt index c8d1ad511..e1ca1ba52 100644 --- a/SSA/Projects/InstCombine/tests/logs/sdiv-exact-by-negative-power-of-two.txt +++ b/SSA/Projects/InstCombine/tests/logs/sdiv-exact-by-negative-power-of-two.txt @@ -8,10 +8,10 @@ 7: "n1" is unchanged by InstCombine 1: "t2_vec_splat" -"t2_vec_splat" contains vectors which are unsupported +8: "t2_vec_splat" contains vectors which are unsupported 1: "t3_vec" -"t3_vec" contains vectors which are unsupported +8: "t3_vec" contains vectors which are unsupported 1: "n4_vec_mixed" 7: "n4_vec_mixed" is unchanged by InstCombine @@ -38,7 +38,7 @@ 7: "not_prove_exact_with_high_mask" is unchanged by InstCombine 1: "prove_exact_with_high_mask_splat_vec" -"prove_exact_with_high_mask_splat_vec" contains vectors which are unsupported +8: "prove_exact_with_high_mask_splat_vec" contains vectors which are unsupported 1: "prove_exact_with_high_mask_vec" 7: "prove_exact_with_high_mask_vec" is unchanged by InstCombine diff --git a/SSA/Projects/InstCombine/tests/logs/sdiv-exact-by-power-of-two.txt b/SSA/Projects/InstCombine/tests/logs/sdiv-exact-by-power-of-two.txt index 6a5ec4f23..cecfd4d58 100644 --- a/SSA/Projects/InstCombine/tests/logs/sdiv-exact-by-power-of-two.txt +++ b/SSA/Projects/InstCombine/tests/logs/sdiv-exact-by-power-of-two.txt @@ -13,10 +13,10 @@ 4: "n2" has unsupported operation: builtin.unregistered: llvm.zext 1: "t3_vec_splat" -"t3_vec_splat" contains vectors which are unsupported +8: "t3_vec_splat" contains vectors which are unsupported 1: "t4_vec" -"t4_vec" contains vectors which are unsupported +8: "t4_vec" contains vectors which are unsupported 1: "n5_vec_undef" 4: "n5_vec_undef" has unsupported operation: builtin.unregistered: llvm.mlir.poison @@ -61,7 +61,7 @@ 7: "not_prove_exact_with_high_mask" is unchanged by InstCombine 1: "prove_exact_with_high_mask_splat_vec" -"prove_exact_with_high_mask_splat_vec" contains vectors which are unsupported +8: "prove_exact_with_high_mask_splat_vec" contains vectors which are unsupported 1: "prove_exact_with_high_mask_vec" 7: "prove_exact_with_high_mask_vec" is unchanged by InstCombine diff --git a/SSA/Projects/InstCombine/tests/logs/select-2.txt b/SSA/Projects/InstCombine/tests/logs/select-2.txt index 80cc7b1bc..864bb6fb6 100644 --- a/SSA/Projects/InstCombine/tests/logs/select-2.txt +++ b/SSA/Projects/InstCombine/tests/logs/select-2.txt @@ -1,35 +1,59 @@ 1: "t1" 4: "t1" has unsupported operation: builtin.unregistered: llvm.icmp -4: "t1" has unsupported operation: builtin.unregistered: llvm.select - 1: "t2" 4: "t2" has unsupported operation: builtin.unregistered: llvm.icmp -4: "t2" has unsupported operation: builtin.unregistered: llvm.select - 1: "t3" 4: "t3" has unsupported operation: builtin.unregistered: llvm.fcmp 4: "t3" has unsupported operation: builtin.unregistered: llvm.fadd -4: "t3" has unsupported operation: builtin.unregistered: llvm.select - 1: "ashr_exact_poison_constant_fold" -4: "ashr_exact_poison_constant_fold" has unsupported operation: builtin.unregistered: llvm.select +2: llvm.func +2: llvm.mlir.constant +2: llvm.mlir.constant +2: builtin.unregistered: llvm.select +2: llvm.ashr +2: llvm.return 1: "ashr_exact" -4: "ashr_exact" has unsupported operation: builtin.unregistered: llvm.select +2: llvm.func +2: llvm.mlir.constant +2: llvm.mlir.constant +2: builtin.unregistered: llvm.select +2: llvm.ashr +2: llvm.return 1: "shl_nsw_nuw_poison_constant_fold" -4: "shl_nsw_nuw_poison_constant_fold" has unsupported operation: builtin.unregistered: llvm.select +2: llvm.func +2: llvm.mlir.constant +2: llvm.mlir.constant +2: builtin.unregistered: llvm.select +2: llvm.shl +2: llvm.return 1: "shl_nsw_nuw" -4: "shl_nsw_nuw" has unsupported operation: builtin.unregistered: llvm.select +2: llvm.func +2: llvm.mlir.constant +2: llvm.mlir.constant +2: builtin.unregistered: llvm.select +2: llvm.shl +2: llvm.return 1: "add_nsw_poison_constant_fold" -4: "add_nsw_poison_constant_fold" has unsupported operation: builtin.unregistered: llvm.select +2: llvm.func +2: llvm.mlir.constant +2: llvm.mlir.constant +2: builtin.unregistered: llvm.select +2: llvm.add +2: llvm.return 1: "add_nsw" -4: "add_nsw" has unsupported operation: builtin.unregistered: llvm.select +2: llvm.func +2: llvm.mlir.constant +2: llvm.mlir.constant +2: builtin.unregistered: llvm.select +2: llvm.add +2: llvm.return diff --git a/SSA/Projects/InstCombine/tests/logs/select-and-or.txt b/SSA/Projects/InstCombine/tests/logs/select-and-or.txt index 54904db36..4aeccdc32 100644 --- a/SSA/Projects/InstCombine/tests/logs/select-and-or.txt +++ b/SSA/Projects/InstCombine/tests/logs/select-and-or.txt @@ -8,28 +8,46 @@ 5: "gen_v2i1" is empty 1: "logical_and" -4: "logical_and" has unsupported operation: builtin.unregistered: llvm.select +7: "logical_and" is unchanged by InstCombine 1: "logical_or" -4: "logical_or" has unsupported operation: builtin.unregistered: llvm.select +7: "logical_or" is unchanged by InstCombine 1: "logical_and_not" -4: "logical_and_not" has unsupported operation: builtin.unregistered: llvm.select +2: llvm.func +2: llvm.mlir.constant +2: builtin.unregistered: llvm.select +2: llvm.return 1: "logical_or_not" -4: "logical_or_not" has unsupported operation: builtin.unregistered: llvm.select +2: llvm.func +2: llvm.mlir.constant +2: builtin.unregistered: llvm.select +2: llvm.return 1: "logical_and_cond_reuse" -4: "logical_and_cond_reuse" has unsupported operation: builtin.unregistered: llvm.select +2: llvm.func +2: builtin.unregistered: llvm.select +2: llvm.return 1: "logical_or_cond_reuse" -4: "logical_or_cond_reuse" has unsupported operation: builtin.unregistered: llvm.select +2: llvm.func +2: builtin.unregistered: llvm.select +2: llvm.return 1: "logical_and_not_cond_reuse" -4: "logical_and_not_cond_reuse" has unsupported operation: builtin.unregistered: llvm.select +2: llvm.func +2: llvm.mlir.constant +2: llvm.xor +2: builtin.unregistered: llvm.select +2: llvm.return 1: "logical_or_not_cond_reuse" -4: "logical_or_not_cond_reuse" has unsupported operation: builtin.unregistered: llvm.select +2: llvm.func +2: llvm.mlir.constant +2: llvm.xor +2: builtin.unregistered: llvm.select +2: llvm.return 1: "logical_or_implies" 4: "logical_or_implies" has unsupported operation: builtin.unregistered: llvm.icmp @@ -41,8 +59,6 @@ 4: "logical_or_implies_folds" has unsupported operation after optimization: builtin.unregistered: llvm.icmp -4: "logical_or_implies_folds" has unsupported operation after optimization: builtin.unregistered: llvm.select - 1: "logical_and_implies" 4: "logical_and_implies" has unsupported operation: builtin.unregistered: llvm.icmp @@ -52,97 +68,101 @@ 4: "logical_and_implies_folds" has unsupported operation: builtin.unregistered: llvm.icmp 1: "logical_or_noundef_a" -4: "logical_or_noundef_a" has unsupported operation: builtin.unregistered: llvm.select +7: "logical_or_noundef_a" is unchanged by InstCombine 1: "logical_or_noundef_b" -4: "logical_or_noundef_b" has unsupported operation after optimization: builtin.unregistered: llvm.select +2: llvm.func +2: llvm.mlir.constant +2: builtin.unregistered: llvm.select +2: llvm.return 1: "logical_and_noundef_a" -4: "logical_and_noundef_a" has unsupported operation: builtin.unregistered: llvm.select +7: "logical_and_noundef_a" is unchanged by InstCombine 1: "logical_and_noundef_b" -4: "logical_and_noundef_b" has unsupported operation after optimization: builtin.unregistered: llvm.select +2: llvm.func +2: llvm.mlir.constant +2: builtin.unregistered: llvm.select +2: llvm.return 1: "not_not_true" -4: "not_not_true" has unsupported operation: builtin.unregistered: llvm.select +2: llvm.func +2: llvm.mlir.constant +2: llvm.xor +2: llvm.xor +2: builtin.unregistered: llvm.select +2: llvm.return 1: "not_not_false" -4: "not_not_false" has unsupported operation: builtin.unregistered: llvm.select +2: llvm.func +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.xor +2: llvm.xor +2: builtin.unregistered: llvm.select +2: llvm.return 1: "not_true_not" -4: "not_true_not" has unsupported operation: builtin.unregistered: llvm.select +2: llvm.func +2: llvm.mlir.constant +2: llvm.xor +2: llvm.xor +2: builtin.unregistered: llvm.select +2: llvm.return 1: "not_false_not" -4: "not_false_not" has unsupported operation: builtin.unregistered: llvm.select +2: llvm.func +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.xor +2: llvm.xor +2: builtin.unregistered: llvm.select +2: llvm.return 1: "not_not_true_use1" 4: "not_not_true_use1" has unsupported operation: llvm.call -4: "not_not_true_use1" has unsupported operation: builtin.unregistered: llvm.select - 1: "not_not_false_use1" 4: "not_not_false_use1" has unsupported operation: llvm.call -4: "not_not_false_use1" has unsupported operation: builtin.unregistered: llvm.select - 1: "not_true_not_use1" 4: "not_true_not_use1" has unsupported operation: llvm.call -4: "not_true_not_use1" has unsupported operation: builtin.unregistered: llvm.select - 1: "not_false_not_use1" 4: "not_false_not_use1" has unsupported operation: llvm.call -4: "not_false_not_use1" has unsupported operation: builtin.unregistered: llvm.select - 1: "not_not_true_use2" 4: "not_not_true_use2" has unsupported operation: llvm.call -4: "not_not_true_use2" has unsupported operation: builtin.unregistered: llvm.select - 1: "not_not_false_use2" 4: "not_not_false_use2" has unsupported operation: llvm.call -4: "not_not_false_use2" has unsupported operation: builtin.unregistered: llvm.select - 1: "not_true_not_use2" 4: "not_true_not_use2" has unsupported operation: llvm.call -4: "not_true_not_use2" has unsupported operation: builtin.unregistered: llvm.select - 1: "not_false_not_use2" 4: "not_false_not_use2" has unsupported operation: llvm.call -4: "not_false_not_use2" has unsupported operation: builtin.unregistered: llvm.select - 1: "not_not_true_use3" 4: "not_not_true_use3" has unsupported operation: llvm.call 4: "not_not_true_use3" has unsupported operation: llvm.call -4: "not_not_true_use3" has unsupported operation: builtin.unregistered: llvm.select - 1: "not_not_false_use3" 4: "not_not_false_use3" has unsupported operation: llvm.call 4: "not_not_false_use3" has unsupported operation: llvm.call -4: "not_not_false_use3" has unsupported operation: builtin.unregistered: llvm.select - 1: "not_true_not_use3" 4: "not_true_not_use3" has unsupported operation: llvm.call 4: "not_true_not_use3" has unsupported operation: llvm.call -4: "not_true_not_use3" has unsupported operation: builtin.unregistered: llvm.select - 1: "not_false_not_use3" 4: "not_false_not_use3" has unsupported operation: llvm.call 4: "not_false_not_use3" has unsupported operation: llvm.call -4: "not_false_not_use3" has unsupported operation: builtin.unregistered: llvm.select - 1: "demorgan_select_infloop1" 4: "demorgan_select_infloop1" has unsupported operation after optimization: llvm.mlir.addressof @@ -152,8 +172,6 @@ 4: "demorgan_select_infloop1" has unsupported operation after optimization: builtin.unregistered: llvm.icmp -4: "demorgan_select_infloop1" has unsupported operation after optimization: builtin.unregistered: llvm.select - 1: "demorgan_select_infloop2" 4: "demorgan_select_infloop2" has unsupported operation: llvm.mlir.addressof @@ -163,330 +181,249 @@ 4: "demorgan_select_infloop2" has unsupported operation: builtin.unregistered: llvm.icmp -4: "demorgan_select_infloop2" has unsupported operation: builtin.unregistered: llvm.select - 1: "and_or1" -4: "and_or1" has unsupported operation: builtin.unregistered: llvm.select - -4: "and_or1" has unsupported operation: builtin.unregistered: llvm.select +2: llvm.func +2: llvm.mlir.constant +2: llvm.xor +2: llvm.or +2: builtin.unregistered: llvm.select +2: llvm.return 1: "and_or2" -4: "and_or2" has unsupported operation: builtin.unregistered: llvm.select - -4: "and_or2" has unsupported operation: builtin.unregistered: llvm.select +2: llvm.func +2: llvm.mlir.constant +2: llvm.xor +2: llvm.and +2: builtin.unregistered: llvm.select +2: llvm.return 1: "and_or1_commuted" -4: "and_or1_commuted" has unsupported operation: builtin.unregistered: llvm.select - -4: "and_or1_commuted" has unsupported operation: builtin.unregistered: llvm.select +2: llvm.func +2: llvm.mlir.constant +2: llvm.xor +2: llvm.or +2: builtin.unregistered: llvm.select +2: llvm.return 1: "and_or2_commuted" -4: "and_or2_commuted" has unsupported operation: builtin.unregistered: llvm.select - -4: "and_or2_commuted" has unsupported operation: builtin.unregistered: llvm.select +2: llvm.func +2: llvm.mlir.constant +2: llvm.xor +2: llvm.and +2: builtin.unregistered: llvm.select +2: llvm.return 1: "and_or1_multiuse" 4: "and_or1_multiuse" has unsupported operation: llvm.call -4: "and_or1_multiuse" has unsupported operation: builtin.unregistered: llvm.select - 1: "and_or2_multiuse" 4: "and_or2_multiuse" has unsupported operation: llvm.call -4: "and_or2_multiuse" has unsupported operation: builtin.unregistered: llvm.select - 1: "and_or1_vec" 4: "and_or1_vec" has unsupported operation: llvm.call -4: "and_or1_vec" has unsupported operation: builtin.unregistered: llvm.select - -4: "and_or1_vec" has unsupported operation: builtin.unregistered: llvm.select - 1: "and_or2_vec" 4: "and_or2_vec" has unsupported operation: llvm.call -4: "and_or2_vec" has unsupported operation: builtin.unregistered: llvm.select - -4: "and_or2_vec" has unsupported operation: builtin.unregistered: llvm.select - 1: "and_or1_vec_commuted" 4: "and_or1_vec_commuted" has unsupported operation: llvm.call -4: "and_or1_vec_commuted" has unsupported operation: builtin.unregistered: llvm.select - -4: "and_or1_vec_commuted" has unsupported operation: builtin.unregistered: llvm.select - 1: "and_or2_vec_commuted" 4: "and_or2_vec_commuted" has unsupported operation: llvm.call -4: "and_or2_vec_commuted" has unsupported operation: builtin.unregistered: llvm.select - -4: "and_or2_vec_commuted" has unsupported operation: builtin.unregistered: llvm.select - 1: "and_or1_wrong_operand" -4: "and_or1_wrong_operand" has unsupported operation: builtin.unregistered: llvm.select +2: llvm.func +2: llvm.mlir.constant +2: llvm.xor +2: llvm.or +2: builtin.unregistered: llvm.select +2: llvm.return 1: "and_or2_wrong_operand" -4: "and_or2_wrong_operand" has unsupported operation: builtin.unregistered: llvm.select +2: llvm.func +2: llvm.mlir.constant +2: llvm.xor +2: llvm.and +2: builtin.unregistered: llvm.select +2: llvm.return 1: "and_or3" 4: "and_or3" has unsupported operation: builtin.unregistered: llvm.icmp -4: "and_or3" has unsupported operation: builtin.unregistered: llvm.select - -4: "and_or3" has unsupported operation: builtin.unregistered: llvm.select - 1: "and_or3_commuted" 4: "and_or3_commuted" has unsupported operation: builtin.unregistered: llvm.icmp -4: "and_or3_commuted" has unsupported operation: builtin.unregistered: llvm.select - -4: "and_or3_commuted" has unsupported operation: builtin.unregistered: llvm.select - 1: "and_or3_not_free_to_invert" -4: "and_or3_not_free_to_invert" has unsupported operation: builtin.unregistered: llvm.select +7: "and_or3_not_free_to_invert" is unchanged by InstCombine 1: "and_or3_multiuse" 4: "and_or3_multiuse" has unsupported operation: builtin.unregistered: llvm.icmp 4: "and_or3_multiuse" has unsupported operation: llvm.call -4: "and_or3_multiuse" has unsupported operation: builtin.unregistered: llvm.select - 1: "and_or3_vec" 4: "and_or3_vec" has unsupported operation: builtin.unregistered: llvm.icmp -4: "and_or3_vec" has unsupported operation: builtin.unregistered: llvm.select - -4: "and_or3_vec" has unsupported operation: builtin.unregistered: llvm.select - 1: "and_or3_vec_commuted" 4: "and_or3_vec_commuted" has unsupported operation: builtin.unregistered: llvm.icmp -4: "and_or3_vec_commuted" has unsupported operation: builtin.unregistered: llvm.select - -4: "and_or3_vec_commuted" has unsupported operation: builtin.unregistered: llvm.select - 1: "and_or3_wrong_operand" 4: "and_or3_wrong_operand" has unsupported operation: builtin.unregistered: llvm.icmp -4: "and_or3_wrong_operand" has unsupported operation: builtin.unregistered: llvm.select - 1: "or_and1" -4: "or_and1" has unsupported operation: builtin.unregistered: llvm.select - -4: "or_and1" has unsupported operation: builtin.unregistered: llvm.select +2: llvm.func +2: llvm.mlir.constant +2: llvm.xor +2: llvm.and +2: builtin.unregistered: llvm.select +2: llvm.return 1: "or_and2" -4: "or_and2" has unsupported operation: builtin.unregistered: llvm.select - -4: "or_and2" has unsupported operation: builtin.unregistered: llvm.select +2: llvm.func +2: llvm.mlir.constant +2: llvm.xor +2: llvm.or +2: builtin.unregistered: llvm.select +2: llvm.return 1: "or_and1_commuted" -4: "or_and1_commuted" has unsupported operation: builtin.unregistered: llvm.select - -4: "or_and1_commuted" has unsupported operation: builtin.unregistered: llvm.select +2: llvm.func +2: llvm.mlir.constant +2: llvm.xor +2: llvm.and +2: builtin.unregistered: llvm.select +2: llvm.return 1: "or_and2_commuted" -4: "or_and2_commuted" has unsupported operation: builtin.unregistered: llvm.select - -4: "or_and2_commuted" has unsupported operation: builtin.unregistered: llvm.select +2: llvm.func +2: llvm.mlir.constant +2: llvm.xor +2: llvm.or +2: builtin.unregistered: llvm.select +2: llvm.return 1: "or_and1_multiuse" 4: "or_and1_multiuse" has unsupported operation: llvm.call -4: "or_and1_multiuse" has unsupported operation: builtin.unregistered: llvm.select - 1: "or_and2_multiuse" 4: "or_and2_multiuse" has unsupported operation: llvm.call -4: "or_and2_multiuse" has unsupported operation: builtin.unregistered: llvm.select - 1: "or_and1_vec" 4: "or_and1_vec" has unsupported operation: llvm.call -4: "or_and1_vec" has unsupported operation: builtin.unregistered: llvm.select - -4: "or_and1_vec" has unsupported operation: builtin.unregistered: llvm.select - 1: "or_and2_vec" 4: "or_and2_vec" has unsupported operation: llvm.call -4: "or_and2_vec" has unsupported operation: builtin.unregistered: llvm.select - -4: "or_and2_vec" has unsupported operation: builtin.unregistered: llvm.select - 1: "or_and1_vec_commuted" 4: "or_and1_vec_commuted" has unsupported operation: llvm.call -4: "or_and1_vec_commuted" has unsupported operation: builtin.unregistered: llvm.select - -4: "or_and1_vec_commuted" has unsupported operation: builtin.unregistered: llvm.select - 1: "or_and2_vec_commuted" 4: "or_and2_vec_commuted" has unsupported operation: llvm.call -4: "or_and2_vec_commuted" has unsupported operation: builtin.unregistered: llvm.select - -4: "or_and2_vec_commuted" has unsupported operation: builtin.unregistered: llvm.select - 1: "or_and1_wrong_operand" -4: "or_and1_wrong_operand" has unsupported operation: builtin.unregistered: llvm.select +7: "or_and1_wrong_operand" is unchanged by InstCombine 1: "or_and2_wrong_operand" -4: "or_and2_wrong_operand" has unsupported operation: builtin.unregistered: llvm.select +7: "or_and2_wrong_operand" is unchanged by InstCombine 1: "pr64558" -4: "pr64558" has unsupported operation after optimization: builtin.unregistered: llvm.select +2: llvm.func +2: llvm.mlir.constant +2: llvm.xor +2: llvm.and +2: builtin.unregistered: llvm.select +2: llvm.return 1: "or_and3" 4: "or_and3" has unsupported operation: builtin.unregistered: llvm.icmp -4: "or_and3" has unsupported operation: builtin.unregistered: llvm.select - -4: "or_and3" has unsupported operation: builtin.unregistered: llvm.select - 1: "or_and3_commuted" 4: "or_and3_commuted" has unsupported operation: builtin.unregistered: llvm.icmp -4: "or_and3_commuted" has unsupported operation: builtin.unregistered: llvm.select - -4: "or_and3_commuted" has unsupported operation: builtin.unregistered: llvm.select - 1: "or_and3_not_free_to_invert" -4: "or_and3_not_free_to_invert" has unsupported operation: builtin.unregistered: llvm.select +7: "or_and3_not_free_to_invert" is unchanged by InstCombine 1: "or_and3_multiuse" 4: "or_and3_multiuse" has unsupported operation: builtin.unregistered: llvm.icmp 4: "or_and3_multiuse" has unsupported operation: llvm.call -4: "or_and3_multiuse" has unsupported operation: builtin.unregistered: llvm.select - 1: "or_and3_vec" 4: "or_and3_vec" has unsupported operation: builtin.unregistered: llvm.icmp -4: "or_and3_vec" has unsupported operation: builtin.unregistered: llvm.select - -4: "or_and3_vec" has unsupported operation: builtin.unregistered: llvm.select - 1: "or_and3_vec_commuted" 4: "or_and3_vec_commuted" has unsupported operation: builtin.unregistered: llvm.icmp -4: "or_and3_vec_commuted" has unsupported operation: builtin.unregistered: llvm.select - -4: "or_and3_vec_commuted" has unsupported operation: builtin.unregistered: llvm.select - 1: "or_and3_wrong_operand" 4: "or_and3_wrong_operand" has unsupported operation: builtin.unregistered: llvm.icmp -4: "or_and3_wrong_operand" has unsupported operation: builtin.unregistered: llvm.select - 1: "test_or_umax" 4: "test_or_umax" has unsupported operation: builtin.unregistered: llvm.intr.umax -4: "test_or_umax" has unsupported operation: builtin.unregistered: llvm.select - 1: "test_or_umin" 4: "test_or_umin" has unsupported operation: builtin.unregistered: llvm.intr.umin -4: "test_or_umin" has unsupported operation: builtin.unregistered: llvm.select - 1: "test_and_umax" 4: "test_and_umax" has unsupported operation: builtin.unregistered: llvm.intr.umax -4: "test_and_umax" has unsupported operation: builtin.unregistered: llvm.select - 1: "test_and_umin" 4: "test_and_umin" has unsupported operation: builtin.unregistered: llvm.intr.umin -4: "test_and_umin" has unsupported operation: builtin.unregistered: llvm.select - 1: "test_or_umax_bitwise1" 4: "test_or_umax_bitwise1" has unsupported operation: builtin.unregistered: llvm.icmp 4: "test_or_umax_bitwise1" has unsupported operation: builtin.unregistered: llvm.intr.umax -4: "test_or_umax_bitwise1" has unsupported operation: builtin.unregistered: llvm.select - 1: "test_or_umax_bitwise2" 4: "test_or_umax_bitwise2" has unsupported operation: builtin.unregistered: llvm.icmp 4: "test_or_umax_bitwise2" has unsupported operation: builtin.unregistered: llvm.intr.umax -4: "test_or_umax_bitwise2" has unsupported operation: builtin.unregistered: llvm.select - 1: "test_and_umax_bitwise1" 4: "test_and_umax_bitwise1" has unsupported operation: builtin.unregistered: llvm.icmp 4: "test_and_umax_bitwise1" has unsupported operation: builtin.unregistered: llvm.intr.umax -4: "test_and_umax_bitwise1" has unsupported operation: builtin.unregistered: llvm.select - 1: "test_and_umax_bitwise2" 4: "test_and_umax_bitwise2" has unsupported operation: builtin.unregistered: llvm.icmp 4: "test_and_umax_bitwise2" has unsupported operation: builtin.unregistered: llvm.intr.umax -4: "test_and_umax_bitwise2" has unsupported operation: builtin.unregistered: llvm.select - 1: "test_or_smax" 4: "test_or_smax" has unsupported operation: builtin.unregistered: llvm.intr.smax -4: "test_or_smax" has unsupported operation: builtin.unregistered: llvm.select - 1: "test_or_abs" 4: "test_or_abs" has unsupported operation: builtin.unregistered: llvm.intr.abs -4: "test_or_abs" has unsupported operation: builtin.unregistered: llvm.select - 1: "test_or_fmaxnum" 4: "test_or_fmaxnum" has unsupported operation: builtin.unregistered: llvm.fcmp -4: "test_or_fmaxnum" has unsupported operation: builtin.unregistered: llvm.select - -4: "test_or_fmaxnum" has unsupported operation: builtin.unregistered: llvm.select - 1: "test_or_umax_invalid_logical" 4: "test_or_umax_invalid_logical" has unsupported operation: builtin.unregistered: llvm.icmp -4: "test_or_umax_invalid_logical" has unsupported operation: builtin.unregistered: llvm.select - -4: "test_or_umax_invalid_logical" has unsupported operation: builtin.unregistered: llvm.select - 1: "test_and_umax_invalid_logical" 4: "test_and_umax_invalid_logical" has unsupported operation: builtin.unregistered: llvm.icmp -4: "test_and_umax_invalid_logical" has unsupported operation: builtin.unregistered: llvm.select - -4: "test_and_umax_invalid_logical" has unsupported operation: builtin.unregistered: llvm.select - 1: "test_or_umax_multiuse_cond" 4: "test_or_umax_multiuse_cond" has unsupported operation: builtin.unregistered: llvm.icmp -4: "test_or_umax_multiuse_cond" has unsupported operation: builtin.unregistered: llvm.select - 4: "test_or_umax_multiuse_cond" has unsupported operation: llvm.call -4: "test_or_umax_multiuse_cond" has unsupported operation: builtin.unregistered: llvm.select - 1: "test_or_eq_a_b" -4: "test_or_eq_a_b" has unsupported operation: builtin.unregistered: llvm.select +4: "test_or_eq_a_b" has unsupported operation after optimization: builtin.unregistered: llvm.icmp 1: "test_and_ne_a_b" -4: "test_and_ne_a_b" has unsupported operation: builtin.unregistered: llvm.select +4: "test_and_ne_a_b" has unsupported operation after optimization: builtin.unregistered: llvm.icmp 1: "test_or_eq_a_b_commuted" -4: "test_or_eq_a_b_commuted" has unsupported operation: builtin.unregistered: llvm.select +4: "test_or_eq_a_b_commuted" has unsupported operation after optimization: builtin.unregistered: llvm.icmp 1: "test_and_ne_a_b_commuted" -4: "test_and_ne_a_b_commuted" has unsupported operation: builtin.unregistered: llvm.select +4: "test_and_ne_a_b_commuted" has unsupported operation after optimization: builtin.unregistered: llvm.icmp 1: "test_or_eq_different_operands" 4: "test_or_eq_different_operands" has unsupported operation: builtin.unregistered: llvm.icmp -4: "test_or_eq_different_operands" has unsupported operation: builtin.unregistered: llvm.select - 1: "test_or_eq_a_b_multi_use" 4: "test_or_eq_a_b_multi_use" has unsupported operation: builtin.unregistered: llvm.icmp @@ -494,40 +431,26 @@ 4: "test_or_eq_a_b_multi_use" has unsupported operation: llvm.call -4: "test_or_eq_a_b_multi_use" has unsupported operation: builtin.unregistered: llvm.select - 1: "test_or_eq_a_b_vec" -4: "test_or_eq_a_b_vec" has unsupported operation: builtin.unregistered: llvm.select +8: "test_or_eq_a_b_vec" contains vectors which are unsupported 1: "test_or_ne_a_b" 4: "test_or_ne_a_b" has unsupported operation after optimization: builtin.unregistered: llvm.icmp -4: "test_or_ne_a_b" has unsupported operation after optimization: builtin.unregistered: llvm.select - 1: "test_and_ne_different_operands_fail" 4: "test_and_ne_different_operands_fail" has unsupported operation: builtin.unregistered: llvm.icmp 4: "test_and_ne_different_operands_fail" has unsupported operation: builtin.unregistered: llvm.icmp -4: "test_and_ne_different_operands_fail" has unsupported operation: builtin.unregistered: llvm.select - 1: "test_logical_or_eq_a_b" -4: "test_logical_or_eq_a_b" has unsupported operation: builtin.unregistered: llvm.select +4: "test_logical_or_eq_a_b" has unsupported operation after optimization: builtin.unregistered: llvm.icmp 1: "test_logical_commuted_or_eq_a_b" 4: "test_logical_commuted_or_eq_a_b" has unsupported operation: builtin.unregistered: llvm.icmp -4: "test_logical_commuted_or_eq_a_b" has unsupported operation: builtin.unregistered: llvm.select - -4: "test_logical_commuted_or_eq_a_b" has unsupported operation: builtin.unregistered: llvm.select - 1: "test_logical_and_ne_a_b" -4: "test_logical_and_ne_a_b" has unsupported operation: builtin.unregistered: llvm.select +4: "test_logical_and_ne_a_b" has unsupported operation after optimization: builtin.unregistered: llvm.icmp 1: "test_logical_commuted_and_ne_a_b" 4: "test_logical_commuted_and_ne_a_b" has unsupported operation: builtin.unregistered: llvm.icmp -4: "test_logical_commuted_and_ne_a_b" has unsupported operation: builtin.unregistered: llvm.select - -4: "test_logical_commuted_and_ne_a_b" has unsupported operation: builtin.unregistered: llvm.select - diff --git a/SSA/Projects/InstCombine/tests/logs/select-binop-cmp.txt b/SSA/Projects/InstCombine/tests/logs/select-binop-cmp.txt index 3e0832cc5..799703219 100644 --- a/SSA/Projects/InstCombine/tests/logs/select-binop-cmp.txt +++ b/SSA/Projects/InstCombine/tests/logs/select-binop-cmp.txt @@ -10,240 +10,154 @@ 1: "select_xor_icmp" 4: "select_xor_icmp" has unsupported operation: builtin.unregistered: llvm.icmp -4: "select_xor_icmp" has unsupported operation: builtin.unregistered: llvm.select - 1: "select_xor_icmp2" 4: "select_xor_icmp2" has unsupported operation: builtin.unregistered: llvm.icmp -4: "select_xor_icmp2" has unsupported operation: builtin.unregistered: llvm.select - 1: "select_xor_icmp_meta" 4: "select_xor_icmp_meta" has unsupported operation: builtin.unregistered: llvm.icmp -4: "select_xor_icmp_meta" has unsupported operation: builtin.unregistered: llvm.select - 1: "select_mul_icmp" 4: "select_mul_icmp" has unsupported operation: builtin.unregistered: llvm.icmp -4: "select_mul_icmp" has unsupported operation: builtin.unregistered: llvm.select - 1: "select_add_icmp" 4: "select_add_icmp" has unsupported operation: builtin.unregistered: llvm.icmp -4: "select_add_icmp" has unsupported operation: builtin.unregistered: llvm.select - 1: "select_or_icmp" 4: "select_or_icmp" has unsupported operation: builtin.unregistered: llvm.icmp -4: "select_or_icmp" has unsupported operation: builtin.unregistered: llvm.select - 1: "select_and_icmp" 4: "select_and_icmp" has unsupported operation: builtin.unregistered: llvm.icmp -4: "select_and_icmp" has unsupported operation: builtin.unregistered: llvm.select - 1: "select_xor_icmp_vec" 4: "select_xor_icmp_vec" has unsupported operation: builtin.unregistered: llvm.icmp -4: "select_xor_icmp_vec" has unsupported operation: builtin.unregistered: llvm.select - 1: "select_xor_icmp_vec_use" 4: "select_xor_icmp_vec_use" has unsupported operation: builtin.unregistered: llvm.icmp 4: "select_xor_icmp_vec_use" has unsupported operation: llvm.call -4: "select_xor_icmp_vec_use" has unsupported operation: builtin.unregistered: llvm.select - 1: "select_xor_inv_icmp" 4: "select_xor_inv_icmp" has unsupported operation: builtin.unregistered: llvm.icmp -4: "select_xor_inv_icmp" has unsupported operation: builtin.unregistered: llvm.select - 1: "select_xor_inv_icmp2" 4: "select_xor_inv_icmp2" has unsupported operation: builtin.unregistered: llvm.icmp 4: "select_xor_inv_icmp2" has unsupported operation: llvm.call -4: "select_xor_inv_icmp2" has unsupported operation: builtin.unregistered: llvm.select - 1: "select_fadd_fcmp" 4: "select_fadd_fcmp" has unsupported operation: builtin.unregistered: llvm.fcmp -4: "select_fadd_fcmp" has unsupported operation: builtin.unregistered: llvm.select - 1: "select_fadd_fcmp_poszero" 4: "select_fadd_fcmp_poszero" has unsupported operation: builtin.unregistered: llvm.fcmp -4: "select_fadd_fcmp_poszero" has unsupported operation: builtin.unregistered: llvm.select - 1: "select_fadd_fcmp_2" 4: "select_fadd_fcmp_2" has unsupported operation: builtin.unregistered: llvm.fcmp 4: "select_fadd_fcmp_2" has unsupported operation: builtin.unregistered: llvm.fadd -4: "select_fadd_fcmp_2" has unsupported operation: builtin.unregistered: llvm.select - 1: "select_fadd_fcmp_2_poszero" 4: "select_fadd_fcmp_2_poszero" has unsupported operation: builtin.unregistered: llvm.fcmp 4: "select_fadd_fcmp_2_poszero" has unsupported operation: builtin.unregistered: llvm.fadd -4: "select_fadd_fcmp_2_poszero" has unsupported operation: builtin.unregistered: llvm.select - 1: "select_fadd_fcmp_3" 4: "select_fadd_fcmp_3" has unsupported operation: builtin.unregistered: llvm.fcmp -4: "select_fadd_fcmp_3" has unsupported operation: builtin.unregistered: llvm.select - 1: "select_fadd_fcmp_3_poszero" 4: "select_fadd_fcmp_3_poszero" has unsupported operation: builtin.unregistered: llvm.fcmp -4: "select_fadd_fcmp_3_poszero" has unsupported operation: builtin.unregistered: llvm.select - 1: "select_fadd_fcmp_4" 4: "select_fadd_fcmp_4" has unsupported operation: builtin.unregistered: llvm.fcmp -4: "select_fadd_fcmp_4" has unsupported operation: builtin.unregistered: llvm.select - 1: "select_fadd_fcmp_4_poszero" 4: "select_fadd_fcmp_4_poszero" has unsupported operation: builtin.unregistered: llvm.fcmp -4: "select_fadd_fcmp_4_poszero" has unsupported operation: builtin.unregistered: llvm.select - 1: "select_fadd_fcmp_5" 4: "select_fadd_fcmp_5" has unsupported operation: builtin.unregistered: llvm.fcmp 4: "select_fadd_fcmp_5" has unsupported operation: builtin.unregistered: llvm.fadd -4: "select_fadd_fcmp_5" has unsupported operation: builtin.unregistered: llvm.select - 1: "select_fadd_fcmp_5_poszero" 4: "select_fadd_fcmp_5_poszero" has unsupported operation: builtin.unregistered: llvm.fcmp 4: "select_fadd_fcmp_5_poszero" has unsupported operation: builtin.unregistered: llvm.fadd -4: "select_fadd_fcmp_5_poszero" has unsupported operation: builtin.unregistered: llvm.select - 1: "select_fadd_fcmp_6" 4: "select_fadd_fcmp_6" has unsupported operation: builtin.unregistered: llvm.fcmp -4: "select_fadd_fcmp_6" has unsupported operation: builtin.unregistered: llvm.select - 1: "select_fadd_fcmp_6_poszero" 4: "select_fadd_fcmp_6_poszero" has unsupported operation: builtin.unregistered: llvm.fcmp -4: "select_fadd_fcmp_6_poszero" has unsupported operation: builtin.unregistered: llvm.select - 1: "select_fmul_fcmp" 4: "select_fmul_fcmp" has unsupported operation: builtin.unregistered: llvm.fcmp -4: "select_fmul_fcmp" has unsupported operation: builtin.unregistered: llvm.select - 1: "select_fsub_fcmp" 4: "select_fsub_fcmp" has unsupported operation: builtin.unregistered: llvm.fcmp -4: "select_fsub_fcmp" has unsupported operation: builtin.unregistered: llvm.select - 1: "select_fsub_fcmp_negzero" 4: "select_fsub_fcmp_negzero" has unsupported operation: builtin.unregistered: llvm.fcmp -4: "select_fsub_fcmp_negzero" has unsupported operation: builtin.unregistered: llvm.select - 1: "select_fdiv_fcmp" 4: "select_fdiv_fcmp" has unsupported operation: builtin.unregistered: llvm.fcmp -4: "select_fdiv_fcmp" has unsupported operation: builtin.unregistered: llvm.select - 1: "select_sub_icmp" 4: "select_sub_icmp" has unsupported operation: builtin.unregistered: llvm.icmp -4: "select_sub_icmp" has unsupported operation: builtin.unregistered: llvm.select - 1: "select_sub_icmp_2" 4: "select_sub_icmp_2" has unsupported operation: builtin.unregistered: llvm.icmp 4: "select_sub_icmp_2" has unsupported operation: llvm.call -4: "select_sub_icmp_2" has unsupported operation: builtin.unregistered: llvm.select - 1: "select_sub_icmp_3" 4: "select_sub_icmp_3" has unsupported operation: builtin.unregistered: llvm.icmp 4: "select_sub_icmp_3" has unsupported operation: llvm.call -4: "select_sub_icmp_3" has unsupported operation: builtin.unregistered: llvm.select - 1: "select_sub_icmp_vec" 4: "select_sub_icmp_vec" has unsupported operation: builtin.unregistered: llvm.icmp -4: "select_sub_icmp_vec" has unsupported operation: builtin.unregistered: llvm.select - 1: "select_shl_icmp" 4: "select_shl_icmp" has unsupported operation: builtin.unregistered: llvm.icmp 4: "select_shl_icmp" has unsupported operation: llvm.call -4: "select_shl_icmp" has unsupported operation: builtin.unregistered: llvm.select - 1: "select_lshr_icmp" 4: "select_lshr_icmp" has unsupported operation: builtin.unregistered: llvm.icmp -4: "select_lshr_icmp" has unsupported operation: builtin.unregistered: llvm.select - 1: "select_ashr_icmp" 4: "select_ashr_icmp" has unsupported operation: builtin.unregistered: llvm.icmp 4: "select_ashr_icmp" has unsupported operation: llvm.call -4: "select_ashr_icmp" has unsupported operation: builtin.unregistered: llvm.select - 1: "select_udiv_icmp" 4: "select_udiv_icmp" has unsupported operation: builtin.unregistered: llvm.icmp -4: "select_udiv_icmp" has unsupported operation: builtin.unregistered: llvm.select - 1: "select_sdiv_icmp" 4: "select_sdiv_icmp" has unsupported operation: builtin.unregistered: llvm.icmp 4: "select_sdiv_icmp" has unsupported operation: llvm.call -4: "select_sdiv_icmp" has unsupported operation: builtin.unregistered: llvm.select - 1: "select_xor_icmp_bad_1" 4: "select_xor_icmp_bad_1" has unsupported operation: builtin.unregistered: llvm.icmp -4: "select_xor_icmp_bad_1" has unsupported operation: builtin.unregistered: llvm.select - 1: "select_xor_icmp_bad_2" 4: "select_xor_icmp_bad_2" has unsupported operation: builtin.unregistered: llvm.icmp -4: "select_xor_icmp_bad_2" has unsupported operation: builtin.unregistered: llvm.select - 1: "select_xor_icmp_bad_3" 4: "select_xor_icmp_bad_3" has unsupported operation: builtin.unregistered: llvm.icmp -4: "select_xor_icmp_bad_3" has unsupported operation: builtin.unregistered: llvm.select - 1: "select_xor_fcmp_bad_4" 4: "select_xor_fcmp_bad_4" has unsupported operation: builtin.unregistered: llvm.fcmp -4: "select_xor_fcmp_bad_4" has unsupported operation: builtin.unregistered: llvm.select - 1: "select_xor_icmp_bad_5" 4: "select_xor_icmp_bad_5" has unsupported operation: builtin.unregistered: llvm.icmp -4: "select_xor_icmp_bad_5" has unsupported operation: builtin.unregistered: llvm.select - 1: "select_xor_icmp_bad_6" 4: "select_xor_icmp_bad_6" has unsupported operation: builtin.unregistered: llvm.icmp -4: "select_xor_icmp_bad_6" has unsupported operation: builtin.unregistered: llvm.select - 1: "select_xor_icmp_vec_bad" 4: "select_xor_icmp_vec_bad" has unsupported operation: builtin.unregistered: llvm.icmp -4: "select_xor_icmp_vec_bad" has unsupported operation: builtin.unregistered: llvm.select - 1: "vec_select_no_equivalence" 4: "vec_select_no_equivalence" has unsupported operation: builtin.unregistered: llvm.mlir.poison @@ -251,8 +165,6 @@ 4: "vec_select_no_equivalence" has unsupported operation: builtin.unregistered: llvm.icmp -4: "vec_select_no_equivalence" has unsupported operation: builtin.unregistered: llvm.select - 1: "select_xor_icmp_vec_undef" 4: "select_xor_icmp_vec_undef" has unsupported operation: llvm.mlir.undef @@ -264,102 +176,68 @@ 4: "select_xor_icmp_vec_undef" has unsupported operation: builtin.unregistered: llvm.icmp -4: "select_xor_icmp_vec_undef" has unsupported operation: builtin.unregistered: llvm.select - 1: "select_mul_icmp_bad" 4: "select_mul_icmp_bad" has unsupported operation: builtin.unregistered: llvm.icmp -4: "select_mul_icmp_bad" has unsupported operation: builtin.unregistered: llvm.select - 1: "select_add_icmp_bad" 4: "select_add_icmp_bad" has unsupported operation: builtin.unregistered: llvm.icmp -4: "select_add_icmp_bad" has unsupported operation: builtin.unregistered: llvm.select - 1: "select_and_icmp_zero" 4: "select_and_icmp_zero" has unsupported operation: builtin.unregistered: llvm.icmp -4: "select_and_icmp_zero" has unsupported operation: builtin.unregistered: llvm.select - 1: "select_or_icmp_bad" 4: "select_or_icmp_bad" has unsupported operation: builtin.unregistered: llvm.icmp -4: "select_or_icmp_bad" has unsupported operation: builtin.unregistered: llvm.select - 1: "select_lshr_icmp_const" 4: "select_lshr_icmp_const" has unsupported operation after optimization: builtin.unregistered: llvm.icmp -4: "select_lshr_icmp_const" has unsupported operation after optimization: builtin.unregistered: llvm.select - 1: "select_lshr_icmp_const_reordered" 4: "select_lshr_icmp_const_reordered" has unsupported operation after optimization: builtin.unregistered: llvm.icmp -4: "select_lshr_icmp_const_reordered" has unsupported operation after optimization: builtin.unregistered: llvm.select - 1: "select_exact_lshr_icmp_const" 4: "select_exact_lshr_icmp_const" has unsupported operation after optimization: builtin.unregistered: llvm.icmp -4: "select_exact_lshr_icmp_const" has unsupported operation after optimization: builtin.unregistered: llvm.select - 1: "select_lshr_icmp_const_large_exact_range" 4: "select_lshr_icmp_const_large_exact_range" has unsupported operation: builtin.unregistered: llvm.icmp -4: "select_lshr_icmp_const_large_exact_range" has unsupported operation: builtin.unregistered: llvm.select - 1: "select_lshr_icmp_const_different_values" 4: "select_lshr_icmp_const_different_values" has unsupported operation: builtin.unregistered: llvm.icmp -4: "select_lshr_icmp_const_different_values" has unsupported operation: builtin.unregistered: llvm.select - 1: "select_fadd_fcmp_bad" 4: "select_fadd_fcmp_bad" has unsupported operation: builtin.unregistered: llvm.fcmp 4: "select_fadd_fcmp_bad" has unsupported operation: builtin.unregistered: llvm.fadd -4: "select_fadd_fcmp_bad" has unsupported operation: builtin.unregistered: llvm.select - 1: "select_fadd_fcmp_bad_2" 4: "select_fadd_fcmp_bad_2" has unsupported operation: builtin.unregistered: llvm.fcmp 4: "select_fadd_fcmp_bad_2" has unsupported operation: builtin.unregistered: llvm.fadd -4: "select_fadd_fcmp_bad_2" has unsupported operation: builtin.unregistered: llvm.select - 1: "select_fadd_fcmp_bad_3" 4: "select_fadd_fcmp_bad_3" has unsupported operation: builtin.unregistered: llvm.fcmp 4: "select_fadd_fcmp_bad_3" has unsupported operation: builtin.unregistered: llvm.fadd -4: "select_fadd_fcmp_bad_3" has unsupported operation: builtin.unregistered: llvm.select - 1: "select_fadd_fcmp_bad_4" 4: "select_fadd_fcmp_bad_4" has unsupported operation: builtin.unregistered: llvm.fcmp 4: "select_fadd_fcmp_bad_4" has unsupported operation: builtin.unregistered: llvm.fadd -4: "select_fadd_fcmp_bad_4" has unsupported operation: builtin.unregistered: llvm.select - 1: "select_fadd_fcmp_bad_5" 4: "select_fadd_fcmp_bad_5" has unsupported operation: builtin.unregistered: llvm.fcmp 4: "select_fadd_fcmp_bad_5" has unsupported operation: builtin.unregistered: llvm.fadd -4: "select_fadd_fcmp_bad_5" has unsupported operation: builtin.unregistered: llvm.select - 1: "select_fadd_fcmp_bad_6" 4: "select_fadd_fcmp_bad_6" has unsupported operation: builtin.unregistered: llvm.fcmp 4: "select_fadd_fcmp_bad_6" has unsupported operation: builtin.unregistered: llvm.fadd -4: "select_fadd_fcmp_bad_6" has unsupported operation: builtin.unregistered: llvm.select - 1: "select_fadd_fcmp_bad_7" 4: "select_fadd_fcmp_bad_7" has unsupported operation: builtin.unregistered: llvm.fcmp 4: "select_fadd_fcmp_bad_7" has unsupported operation: builtin.unregistered: llvm.fadd -4: "select_fadd_fcmp_bad_7" has unsupported operation: builtin.unregistered: llvm.select - 1: "select_fadd_fcmp_bad_8" 4: "select_fadd_fcmp_bad_8" has unsupported operation: builtin.unregistered: llvm.fcmp @@ -367,15 +245,11 @@ 4: "select_fadd_fcmp_bad_8" has unsupported operation: builtin.unregistered: llvm.fadd -4: "select_fadd_fcmp_bad_8" has unsupported operation: builtin.unregistered: llvm.select - 1: "select_fadd_fcmp_bad_9" 4: "select_fadd_fcmp_bad_9" has unsupported operation: builtin.unregistered: llvm.fcmp 4: "select_fadd_fcmp_bad_9" has unsupported operation: builtin.unregistered: llvm.fadd -4: "select_fadd_fcmp_bad_9" has unsupported operation: builtin.unregistered: llvm.select - 1: "select_fadd_fcmp_bad_10" 4: "select_fadd_fcmp_bad_10" has unsupported operation: builtin.unregistered: llvm.fcmp @@ -383,192 +257,128 @@ 4: "select_fadd_fcmp_bad_10" has unsupported operation: builtin.unregistered: llvm.fadd -4: "select_fadd_fcmp_bad_10" has unsupported operation: builtin.unregistered: llvm.select - 1: "select_fadd_fcmp_bad_11" 4: "select_fadd_fcmp_bad_11" has unsupported operation: builtin.unregistered: llvm.fcmp 4: "select_fadd_fcmp_bad_11" has unsupported operation: builtin.unregistered: llvm.fadd -4: "select_fadd_fcmp_bad_11" has unsupported operation: builtin.unregistered: llvm.select - 1: "select_fadd_fcmp_bad_12" 4: "select_fadd_fcmp_bad_12" has unsupported operation: builtin.unregistered: llvm.fcmp 4: "select_fadd_fcmp_bad_12" has unsupported operation: builtin.unregistered: llvm.fadd -4: "select_fadd_fcmp_bad_12" has unsupported operation: builtin.unregistered: llvm.select - 1: "select_fadd_fcmp_bad_13" 4: "select_fadd_fcmp_bad_13" has unsupported operation: builtin.unregistered: llvm.fcmp 4: "select_fadd_fcmp_bad_13" has unsupported operation: builtin.unregistered: llvm.fadd -4: "select_fadd_fcmp_bad_13" has unsupported operation: builtin.unregistered: llvm.select - 1: "select_fadd_fcmp_bad_14" 4: "select_fadd_fcmp_bad_14" has unsupported operation: builtin.unregistered: llvm.fcmp 4: "select_fadd_fcmp_bad_14" has unsupported operation: builtin.unregistered: llvm.fadd -4: "select_fadd_fcmp_bad_14" has unsupported operation: builtin.unregistered: llvm.select - 1: "select_fmul_fcmp_bad" 4: "select_fmul_fcmp_bad" has unsupported operation: builtin.unregistered: llvm.fcmp 4: "select_fmul_fcmp_bad" has unsupported operation: builtin.unregistered: llvm.fmul -4: "select_fmul_fcmp_bad" has unsupported operation: builtin.unregistered: llvm.select - 1: "select_fmul_fcmp_bad_2" 4: "select_fmul_fcmp_bad_2" has unsupported operation: builtin.unregistered: llvm.fcmp 4: "select_fmul_fcmp_bad_2" has unsupported operation: builtin.unregistered: llvm.fmul -4: "select_fmul_fcmp_bad_2" has unsupported operation: builtin.unregistered: llvm.select - 1: "select_fmul_icmp_bad" 4: "select_fmul_icmp_bad" has unsupported operation: builtin.unregistered: llvm.icmp 4: "select_fmul_icmp_bad" has unsupported operation: builtin.unregistered: llvm.fmul -4: "select_fmul_icmp_bad" has unsupported operation: builtin.unregistered: llvm.select - 1: "select_fmul_icmp_bad_2" 4: "select_fmul_icmp_bad_2" has unsupported operation: builtin.unregistered: llvm.icmp 4: "select_fmul_icmp_bad_2" has unsupported operation: builtin.unregistered: llvm.fmul -4: "select_fmul_icmp_bad_2" has unsupported operation: builtin.unregistered: llvm.select - 1: "select_fdiv_fcmp_bad" 4: "select_fdiv_fcmp_bad" has unsupported operation: builtin.unregistered: llvm.fcmp 4: "select_fdiv_fcmp_bad" has unsupported operation: builtin.unregistered: llvm.fdiv -4: "select_fdiv_fcmp_bad" has unsupported operation: builtin.unregistered: llvm.select - 1: "select_fdiv_fcmp_bad_2" 4: "select_fdiv_fcmp_bad_2" has unsupported operation: builtin.unregistered: llvm.fcmp 4: "select_fdiv_fcmp_bad_2" has unsupported operation: builtin.unregistered: llvm.fdiv -4: "select_fdiv_fcmp_bad_2" has unsupported operation: builtin.unregistered: llvm.select - 1: "select_fsub_fcmp_bad" 4: "select_fsub_fcmp_bad" has unsupported operation: builtin.unregistered: llvm.fcmp 4: "select_fsub_fcmp_bad" has unsupported operation: builtin.unregistered: llvm.fsub -4: "select_fsub_fcmp_bad" has unsupported operation: builtin.unregistered: llvm.select - 1: "select_fsub_fcmp_bad_2" 4: "select_fsub_fcmp_bad_2" has unsupported operation: builtin.unregistered: llvm.fcmp 4: "select_fsub_fcmp_bad_2" has unsupported operation: builtin.unregistered: llvm.fsub -4: "select_fsub_fcmp_bad_2" has unsupported operation: builtin.unregistered: llvm.select - 1: "select_sub_icmp_bad" 4: "select_sub_icmp_bad" has unsupported operation: builtin.unregistered: llvm.icmp -4: "select_sub_icmp_bad" has unsupported operation: builtin.unregistered: llvm.select - 1: "select_sub_icmp_bad_2" 4: "select_sub_icmp_bad_2" has unsupported operation: builtin.unregistered: llvm.icmp -4: "select_sub_icmp_bad_2" has unsupported operation: builtin.unregistered: llvm.select - 1: "select_sub_icmp_bad_3" 4: "select_sub_icmp_bad_3" has unsupported operation: builtin.unregistered: llvm.icmp 4: "select_sub_icmp_bad_3" has unsupported operation: llvm.call -4: "select_sub_icmp_bad_3" has unsupported operation: builtin.unregistered: llvm.select - 1: "select_sub_icmp_4" 4: "select_sub_icmp_4" has unsupported operation: builtin.unregistered: llvm.icmp 4: "select_sub_icmp_4" has unsupported operation: llvm.call -4: "select_sub_icmp_4" has unsupported operation: builtin.unregistered: llvm.select - 1: "select_sub_icmp_bad_4" 4: "select_sub_icmp_bad_4" has unsupported operation: builtin.unregistered: llvm.icmp -4: "select_sub_icmp_bad_4" has unsupported operation: builtin.unregistered: llvm.select - 1: "select_sub_icmp_bad_5" 4: "select_sub_icmp_bad_5" has unsupported operation: builtin.unregistered: llvm.icmp -4: "select_sub_icmp_bad_5" has unsupported operation: builtin.unregistered: llvm.select - 1: "select_shl_icmp_bad" 4: "select_shl_icmp_bad" has unsupported operation: builtin.unregistered: llvm.icmp -4: "select_shl_icmp_bad" has unsupported operation: builtin.unregistered: llvm.select - 1: "select_lshr_icmp_bad" 4: "select_lshr_icmp_bad" has unsupported operation: builtin.unregistered: llvm.icmp -4: "select_lshr_icmp_bad" has unsupported operation: builtin.unregistered: llvm.select - 1: "select_ashr_icmp_bad" 4: "select_ashr_icmp_bad" has unsupported operation: builtin.unregistered: llvm.icmp -4: "select_ashr_icmp_bad" has unsupported operation: builtin.unregistered: llvm.select - 1: "select_udiv_icmp_bad" 4: "select_udiv_icmp_bad" has unsupported operation: builtin.unregistered: llvm.icmp -4: "select_udiv_icmp_bad" has unsupported operation: llvm.udiv - -4: "select_udiv_icmp_bad" has unsupported operation: builtin.unregistered: llvm.select - 1: "select_sdiv_icmp_bad" 4: "select_sdiv_icmp_bad" has unsupported operation: builtin.unregistered: llvm.icmp -4: "select_sdiv_icmp_bad" has unsupported operation: builtin.unregistered: llvm.select - 1: "select_replace_one_use" 4: "select_replace_one_use" has unsupported operation: builtin.unregistered: llvm.icmp -4: "select_replace_one_use" has unsupported operation: builtin.unregistered: llvm.select - 1: "select_replace_multi_use" 4: "select_replace_multi_use" has unsupported operation: builtin.unregistered: llvm.icmp 4: "select_replace_multi_use" has unsupported operation: llvm.call -4: "select_replace_multi_use" has unsupported operation: builtin.unregistered: llvm.select - 1: "select_replace_fold" 4: "select_replace_fold" has unsupported operation: builtin.unregistered: llvm.icmp -4: "select_replace_fold" has unsupported operation: builtin.unregistered: llvm.select - 1: "select_replace_nested" 4: "select_replace_nested" has unsupported operation: builtin.unregistered: llvm.icmp -4: "select_replace_nested" has unsupported operation: builtin.unregistered: llvm.select - 1: "select_replace_nested_extra_use" 4: "select_replace_nested_extra_use" has unsupported operation: builtin.unregistered: llvm.icmp 4: "select_replace_nested_extra_use" has unsupported operation: llvm.call -4: "select_replace_nested_extra_use" has unsupported operation: builtin.unregistered: llvm.select - 1: "select_replace_nested_no_simplify" 4: "select_replace_nested_no_simplify" has unsupported operation: builtin.unregistered: llvm.icmp -4: "select_replace_nested_no_simplify" has unsupported operation: builtin.unregistered: llvm.select - 1: "select_replace_deeply_nested" 4: "select_replace_deeply_nested" has unsupported operation: builtin.unregistered: llvm.icmp -4: "select_replace_deeply_nested" has unsupported operation: builtin.unregistered: llvm.select - 1: "select_replace_constexpr" 4: "select_replace_constexpr" has unsupported operation: llvm.mlir.addressof @@ -576,8 +386,6 @@ 4: "select_replace_constexpr" has unsupported operation: builtin.unregistered: llvm.icmp -4: "select_replace_constexpr" has unsupported operation: builtin.unregistered: llvm.select - 1: "select_replace_undef" 4: "select_replace_undef" has unsupported operation: llvm.mlir.undef @@ -589,60 +397,38 @@ 4: "select_replace_undef" has unsupported operation: builtin.unregistered: llvm.icmp -4: "select_replace_undef" has unsupported operation: builtin.unregistered: llvm.select - 1: "select_replace_call_speculatable" 4: "select_replace_call_speculatable" has unsupported operation: builtin.unregistered: llvm.icmp 4: "select_replace_call_speculatable" has unsupported operation: llvm.call -4: "select_replace_call_speculatable" has unsupported operation: builtin.unregistered: llvm.select - 1: "select_replace_call_speculatable_intrinsic" 4: "select_replace_call_speculatable_intrinsic" has unsupported operation: builtin.unregistered: llvm.icmp 4: "select_replace_call_speculatable_intrinsic" has unsupported operation: builtin.unregistered: llvm.intr.smax -4: "select_replace_call_speculatable_intrinsic" has unsupported operation: builtin.unregistered: llvm.select - 1: "select_replace_call_non_speculatable" 4: "select_replace_call_non_speculatable" has unsupported operation: builtin.unregistered: llvm.icmp 4: "select_replace_call_non_speculatable" has unsupported operation: llvm.call -4: "select_replace_call_non_speculatable" has unsupported operation: builtin.unregistered: llvm.select - 1: "select_replace_sdiv_speculatable" 4: "select_replace_sdiv_speculatable" has unsupported operation: builtin.unregistered: llvm.icmp -4: "select_replace_sdiv_speculatable" has unsupported operation: builtin.unregistered: llvm.select - 1: "select_replace_sdiv_non_speculatable" 4: "select_replace_sdiv_non_speculatable" has unsupported operation: builtin.unregistered: llvm.icmp -4: "select_replace_sdiv_non_speculatable" has unsupported operation: builtin.unregistered: llvm.select - 1: "select_replace_udiv_speculatable" 4: "select_replace_udiv_speculatable" has unsupported operation: builtin.unregistered: llvm.icmp -4: "select_replace_udiv_speculatable" has unsupported operation: llvm.udiv - -4: "select_replace_udiv_speculatable" has unsupported operation: builtin.unregistered: llvm.select - 1: "select_replace_udiv_non_speculatable" 4: "select_replace_udiv_non_speculatable" has unsupported operation after optimization: builtin.unregistered: llvm.icmp -4: "select_replace_udiv_non_speculatable" has unsupported operation after optimization: llvm.udiv - -4: "select_replace_udiv_non_speculatable" has unsupported operation after optimization: builtin.unregistered: llvm.select - 1: "select_replace_phi" 4: "select_replace_phi" has unsupported operation: builtin.unregistered: llvm.br 4: "select_replace_phi" has unsupported operation: builtin.unregistered: llvm.icmp -4: "select_replace_phi" has unsupported operation: builtin.unregistered: llvm.select - 4: "select_replace_phi" has unsupported operation: llvm.call 4: "select_replace_phi" has unsupported operation: builtin.unregistered: llvm.br diff --git a/SSA/Projects/InstCombine/tests/logs/select-bitext.txt b/SSA/Projects/InstCombine/tests/logs/select-bitext.txt index 11c78237e..769d0dea2 100644 --- a/SSA/Projects/InstCombine/tests/logs/select-bitext.txt +++ b/SSA/Projects/InstCombine/tests/logs/select-bitext.txt @@ -2,196 +2,140 @@ 5: "use32" is empty 1: "sel_sext_constants" -4: "sel_sext_constants" has unsupported operation: builtin.unregistered: llvm.select +4: "sel_sext_constants" has unsupported operation after optimization: builtin.unregistered: llvm.sext 1: "sel_zext_constants" -4: "sel_zext_constants" has unsupported operation: builtin.unregistered: llvm.select +4: "sel_zext_constants" has unsupported operation after optimization: builtin.unregistered: llvm.zext 1: "sel_fpext_constants" -4: "sel_fpext_constants" has unsupported operation: builtin.unregistered: llvm.select +4: "sel_fpext_constants" has unsupported operation after optimization: builtin.unregistered: llvm.fpext 1: "sel_sext" 4: "sel_sext" has unsupported operation: builtin.unregistered: llvm.sext -4: "sel_sext" has unsupported operation: builtin.unregistered: llvm.select - 1: "sel_sext_vec" 4: "sel_sext_vec" has unsupported operation: builtin.unregistered: llvm.sext -4: "sel_sext_vec" has unsupported operation: builtin.unregistered: llvm.select - 1: "sel_zext" 4: "sel_zext" has unsupported operation: builtin.unregistered: llvm.zext -4: "sel_zext" has unsupported operation: builtin.unregistered: llvm.select - 1: "sel_zext_vec" 4: "sel_zext_vec" has unsupported operation: builtin.unregistered: llvm.zext -4: "sel_zext_vec" has unsupported operation: builtin.unregistered: llvm.select - 1: "trunc_sel_larger_sext" 4: "trunc_sel_larger_sext" has unsupported operation: builtin.unregistered: llvm.trunc 4: "trunc_sel_larger_sext" has unsupported operation: builtin.unregistered: llvm.sext -4: "trunc_sel_larger_sext" has unsupported operation: builtin.unregistered: llvm.select - 1: "trunc_sel_larger_sext_vec" 4: "trunc_sel_larger_sext_vec" has unsupported operation: builtin.unregistered: llvm.trunc 4: "trunc_sel_larger_sext_vec" has unsupported operation: builtin.unregistered: llvm.sext -4: "trunc_sel_larger_sext_vec" has unsupported operation: builtin.unregistered: llvm.select - 1: "trunc_sel_smaller_sext" 4: "trunc_sel_smaller_sext" has unsupported operation: builtin.unregistered: llvm.trunc 4: "trunc_sel_smaller_sext" has unsupported operation: builtin.unregistered: llvm.sext -4: "trunc_sel_smaller_sext" has unsupported operation: builtin.unregistered: llvm.select - 1: "trunc_sel_smaller_sext_vec" 4: "trunc_sel_smaller_sext_vec" has unsupported operation: builtin.unregistered: llvm.trunc 4: "trunc_sel_smaller_sext_vec" has unsupported operation: builtin.unregistered: llvm.sext -4: "trunc_sel_smaller_sext_vec" has unsupported operation: builtin.unregistered: llvm.select - 1: "trunc_sel_equal_sext" -4: "trunc_sel_equal_sext" has unsupported operation: builtin.unregistered: llvm.select +4: "trunc_sel_equal_sext" has unsupported operation after optimization: builtin.unregistered: llvm.trunc + +4: "trunc_sel_equal_sext" has unsupported operation after optimization: builtin.unregistered: llvm.sext 1: "trunc_sel_equal_sext_vec" -4: "trunc_sel_equal_sext_vec" has unsupported operation: builtin.unregistered: llvm.select +8: "trunc_sel_equal_sext_vec" contains vectors which are unsupported 1: "trunc_sel_larger_zext" 4: "trunc_sel_larger_zext" has unsupported operation: builtin.unregistered: llvm.zext -4: "trunc_sel_larger_zext" has unsupported operation: builtin.unregistered: llvm.select - 1: "trunc_sel_larger_zext_vec" 4: "trunc_sel_larger_zext_vec" has unsupported operation: builtin.unregistered: llvm.zext -4: "trunc_sel_larger_zext_vec" has unsupported operation: builtin.unregistered: llvm.select - 1: "trunc_sel_smaller_zext" 4: "trunc_sel_smaller_zext" has unsupported operation: builtin.unregistered: llvm.trunc -4: "trunc_sel_smaller_zext" has unsupported operation: builtin.unregistered: llvm.select - 1: "trunc_sel_smaller_zext_vec" 4: "trunc_sel_smaller_zext_vec" has unsupported operation: builtin.unregistered: llvm.trunc -4: "trunc_sel_smaller_zext_vec" has unsupported operation: builtin.unregistered: llvm.select - 1: "trunc_sel_equal_zext" -4: "trunc_sel_equal_zext" has unsupported operation: builtin.unregistered: llvm.select +4: "trunc_sel_equal_zext" has unsupported operation after optimization: builtin.unregistered: llvm.trunc + +4: "trunc_sel_equal_zext" has unsupported operation after optimization: builtin.unregistered: llvm.zext 1: "trunc_sel_equal_zext_vec" -4: "trunc_sel_equal_zext_vec" has unsupported operation: builtin.unregistered: llvm.select +8: "trunc_sel_equal_zext_vec" contains vectors which are unsupported 1: "trunc_sel_larger_fpext" 4: "trunc_sel_larger_fpext" has unsupported operation: builtin.unregistered: llvm.fptrunc 4: "trunc_sel_larger_fpext" has unsupported operation: builtin.unregistered: llvm.fpext -4: "trunc_sel_larger_fpext" has unsupported operation: builtin.unregistered: llvm.select - 1: "trunc_sel_larger_fpext_vec" 4: "trunc_sel_larger_fpext_vec" has unsupported operation: builtin.unregistered: llvm.fptrunc 4: "trunc_sel_larger_fpext_vec" has unsupported operation: builtin.unregistered: llvm.fpext -4: "trunc_sel_larger_fpext_vec" has unsupported operation: builtin.unregistered: llvm.select - 1: "trunc_sel_smaller_fpext" 4: "trunc_sel_smaller_fpext" has unsupported operation: builtin.unregistered: llvm.fptrunc 4: "trunc_sel_smaller_fpext" has unsupported operation: builtin.unregistered: llvm.fpext -4: "trunc_sel_smaller_fpext" has unsupported operation: builtin.unregistered: llvm.select - 1: "trunc_sel_smaller_fpext_vec" 4: "trunc_sel_smaller_fpext_vec" has unsupported operation: builtin.unregistered: llvm.fptrunc 4: "trunc_sel_smaller_fpext_vec" has unsupported operation: builtin.unregistered: llvm.fpext -4: "trunc_sel_smaller_fpext_vec" has unsupported operation: builtin.unregistered: llvm.select - 1: "trunc_sel_equal_fpext" 4: "trunc_sel_equal_fpext" has unsupported operation: builtin.unregistered: llvm.fptrunc 4: "trunc_sel_equal_fpext" has unsupported operation: builtin.unregistered: llvm.fpext -4: "trunc_sel_equal_fpext" has unsupported operation: builtin.unregistered: llvm.select - 1: "trunc_sel_equal_fpext_vec" 4: "trunc_sel_equal_fpext_vec" has unsupported operation: builtin.unregistered: llvm.fptrunc 4: "trunc_sel_equal_fpext_vec" has unsupported operation: builtin.unregistered: llvm.fpext -4: "trunc_sel_equal_fpext_vec" has unsupported operation: builtin.unregistered: llvm.select - 1: "test_sext1" -4: "test_sext1" has unsupported operation: builtin.unregistered: llvm.select - 4: "test_sext1" has unsupported operation: builtin.unregistered: llvm.sext 1: "test_sext2" -4: "test_sext2" has unsupported operation: builtin.unregistered: llvm.select - 4: "test_sext2" has unsupported operation: builtin.unregistered: llvm.sext 1: "test_sext3" -4: "test_sext3" has unsupported operation: builtin.unregistered: llvm.select - 4: "test_sext3" has unsupported operation: builtin.unregistered: llvm.sext 1: "test_sext4" -4: "test_sext4" has unsupported operation: builtin.unregistered: llvm.select - 4: "test_sext4" has unsupported operation: builtin.unregistered: llvm.sext 1: "test_zext1" -4: "test_zext1" has unsupported operation: builtin.unregistered: llvm.select - 4: "test_zext1" has unsupported operation: builtin.unregistered: llvm.zext 1: "test_zext2" -4: "test_zext2" has unsupported operation: builtin.unregistered: llvm.select - 4: "test_zext2" has unsupported operation: builtin.unregistered: llvm.zext 1: "test_zext3" -4: "test_zext3" has unsupported operation: builtin.unregistered: llvm.select - 4: "test_zext3" has unsupported operation: builtin.unregistered: llvm.zext 1: "test_zext4" -4: "test_zext4" has unsupported operation: builtin.unregistered: llvm.select - 4: "test_zext4" has unsupported operation: builtin.unregistered: llvm.zext 1: "test_negative_sext" 4: "test_negative_sext" has unsupported operation: builtin.unregistered: llvm.sext -4: "test_negative_sext" has unsupported operation: builtin.unregistered: llvm.select - 1: "test_negative_zext" 4: "test_negative_zext" has unsupported operation: builtin.unregistered: llvm.zext -4: "test_negative_zext" has unsupported operation: builtin.unregistered: llvm.select - 1: "test_bits_sext" 4: "test_bits_sext" has unsupported operation: builtin.unregistered: llvm.sext -4: "test_bits_sext" has unsupported operation: builtin.unregistered: llvm.select - 1: "test_bits_zext" 4: "test_bits_zext" has unsupported operation: builtin.unregistered: llvm.zext -4: "test_bits_zext" has unsupported operation: builtin.unregistered: llvm.select - 1: "sel_sext_const_uses" 4: "sel_sext_const_uses" has unsupported operation: builtin.unregistered: llvm.icmp @@ -199,8 +143,6 @@ 4: "sel_sext_const_uses" has unsupported operation: llvm.call -4: "sel_sext_const_uses" has unsupported operation: builtin.unregistered: llvm.select - 1: "sel_zext_const_uses" 4: "sel_zext_const_uses" has unsupported operation: builtin.unregistered: llvm.icmp @@ -208,68 +150,52 @@ 4: "sel_zext_const_uses" has unsupported operation: llvm.call -4: "sel_zext_const_uses" has unsupported operation: builtin.unregistered: llvm.select - 1: "test_op_op" 4: "test_op_op" has unsupported operation: builtin.unregistered: llvm.icmp -4: "test_op_op" has unsupported operation: builtin.unregistered: llvm.select - 4: "test_op_op" has unsupported operation: builtin.unregistered: llvm.icmp 4: "test_op_op" has unsupported operation: builtin.unregistered: llvm.sext 1: "test_vectors_sext" -4: "test_vectors_sext" has unsupported operation: builtin.unregistered: llvm.select - 4: "test_vectors_sext" has unsupported operation: builtin.unregistered: llvm.sext 1: "test_vectors_sext_nonsplat" -4: "test_vectors_sext_nonsplat" has unsupported operation: builtin.unregistered: llvm.select - 4: "test_vectors_sext_nonsplat" has unsupported operation: builtin.unregistered: llvm.sext 1: "test_vectors_zext" -4: "test_vectors_zext" has unsupported operation: builtin.unregistered: llvm.select - 4: "test_vectors_zext" has unsupported operation: builtin.unregistered: llvm.zext 1: "test_vectors_zext_nonsplat" -4: "test_vectors_zext_nonsplat" has unsupported operation: builtin.unregistered: llvm.select - 4: "test_vectors_zext_nonsplat" has unsupported operation: builtin.unregistered: llvm.zext 1: "scalar_select_of_vectors_sext" -4: "scalar_select_of_vectors_sext" has unsupported operation: builtin.unregistered: llvm.select - 4: "scalar_select_of_vectors_sext" has unsupported operation: builtin.unregistered: llvm.sext 1: "scalar_select_of_vectors_zext" -4: "scalar_select_of_vectors_zext" has unsupported operation: builtin.unregistered: llvm.select - 4: "scalar_select_of_vectors_zext" has unsupported operation: builtin.unregistered: llvm.zext 1: "sext_true_val_must_be_all_ones" -4: "sext_true_val_must_be_all_ones" has unsupported operation: builtin.unregistered: llvm.select +4: "sext_true_val_must_be_all_ones" has unsupported operation after optimization: builtin.unregistered: llvm.sext 1: "sext_true_val_must_be_all_ones_vec" -4: "sext_true_val_must_be_all_ones_vec" has unsupported operation: builtin.unregistered: llvm.select +8: "sext_true_val_must_be_all_ones_vec" contains vectors which are unsupported 1: "zext_true_val_must_be_one" -4: "zext_true_val_must_be_one" has unsupported operation: builtin.unregistered: llvm.select +4: "zext_true_val_must_be_one" has unsupported operation after optimization: builtin.unregistered: llvm.zext 1: "zext_true_val_must_be_one_vec" -4: "zext_true_val_must_be_one_vec" has unsupported operation: builtin.unregistered: llvm.select +8: "zext_true_val_must_be_one_vec" contains vectors which are unsupported 1: "sext_false_val_must_be_zero" -4: "sext_false_val_must_be_zero" has unsupported operation: builtin.unregistered: llvm.select +4: "sext_false_val_must_be_zero" has unsupported operation after optimization: builtin.unregistered: llvm.sext 1: "sext_false_val_must_be_zero_vec" -4: "sext_false_val_must_be_zero_vec" has unsupported operation: builtin.unregistered: llvm.select +8: "sext_false_val_must_be_zero_vec" contains vectors which are unsupported 1: "zext_false_val_must_be_zero" -4: "zext_false_val_must_be_zero" has unsupported operation: builtin.unregistered: llvm.select +4: "zext_false_val_must_be_zero" has unsupported operation after optimization: builtin.unregistered: llvm.zext 1: "zext_false_val_must_be_zero_vec" -4: "zext_false_val_must_be_zero_vec" has unsupported operation: builtin.unregistered: llvm.select +8: "zext_false_val_must_be_zero_vec" contains vectors which are unsupported diff --git a/SSA/Projects/InstCombine/tests/logs/select-cmp-cttz-ctlz.txt b/SSA/Projects/InstCombine/tests/logs/select-cmp-cttz-ctlz.txt index 668afef35..1e2015747 100644 --- a/SSA/Projects/InstCombine/tests/logs/select-cmp-cttz-ctlz.txt +++ b/SSA/Projects/InstCombine/tests/logs/select-cmp-cttz-ctlz.txt @@ -112,8 +112,6 @@ 4: "not_op_ctlz_wrong_xor_op1" has unsupported operation: builtin.unregistered: llvm.icmp -4: "not_op_ctlz_wrong_xor_op1" has unsupported operation: builtin.unregistered: llvm.select - 1: "not_op_ctlz_wrong_xor_op0" 4: "not_op_ctlz_wrong_xor_op0" has unsupported operation: builtin.unregistered: llvm.intr.ctlz @@ -121,8 +119,6 @@ 4: "not_op_ctlz_wrong_xor_op0" has unsupported operation: builtin.unregistered: llvm.icmp -4: "not_op_ctlz_wrong_xor_op0" has unsupported operation: builtin.unregistered: llvm.select - 1: "not_op_cttz_wrong_cmp" 4: "not_op_cttz_wrong_cmp" has unsupported operation: builtin.unregistered: llvm.intr.cttz @@ -130,8 +126,6 @@ 4: "not_op_cttz_wrong_cmp" has unsupported operation: builtin.unregistered: llvm.icmp -4: "not_op_cttz_wrong_cmp" has unsupported operation: builtin.unregistered: llvm.select - 1: "test6d" 4: "test6d" has unsupported operation: builtin.unregistered: llvm.intr.ctlz @@ -158,29 +152,21 @@ 4: "test_ctlz_not_bw" has unsupported operation: builtin.unregistered: llvm.icmp -4: "test_ctlz_not_bw" has unsupported operation: builtin.unregistered: llvm.select - 1: "test_ctlz_not_bw_multiuse" 4: "test_ctlz_not_bw_multiuse" has unsupported operation: builtin.unregistered: llvm.intr.ctlz 4: "test_ctlz_not_bw_multiuse" has unsupported operation: builtin.unregistered: llvm.icmp -4: "test_ctlz_not_bw_multiuse" has unsupported operation: builtin.unregistered: llvm.select - 1: "test_cttz_not_bw" 4: "test_cttz_not_bw" has unsupported operation: builtin.unregistered: llvm.intr.cttz 4: "test_cttz_not_bw" has unsupported operation: builtin.unregistered: llvm.icmp -4: "test_cttz_not_bw" has unsupported operation: builtin.unregistered: llvm.select - 1: "test_cttz_not_bw_multiuse" 4: "test_cttz_not_bw_multiuse" has unsupported operation: builtin.unregistered: llvm.intr.cttz 4: "test_cttz_not_bw_multiuse" has unsupported operation: builtin.unregistered: llvm.icmp -4: "test_cttz_not_bw_multiuse" has unsupported operation: builtin.unregistered: llvm.select - 1: "test_ctlz_bw_vec" 4: "test_ctlz_bw_vec" has unsupported operation: builtin.unregistered: llvm.intr.ctlz @@ -189,8 +175,6 @@ 4: "test_ctlz_not_bw_vec" has unsupported operation: builtin.unregistered: llvm.icmp -4: "test_ctlz_not_bw_vec" has unsupported operation: builtin.unregistered: llvm.select - 1: "test_cttz_bw_vec" 4: "test_cttz_bw_vec" has unsupported operation: builtin.unregistered: llvm.intr.cttz @@ -199,8 +183,6 @@ 4: "test_cttz_not_bw_vec" has unsupported operation: builtin.unregistered: llvm.icmp -4: "test_cttz_not_bw_vec" has unsupported operation: builtin.unregistered: llvm.select - 1: "test_multiuse_def" 4: "test_multiuse_def" has unsupported operation: builtin.unregistered: llvm.intr.ctlz diff --git a/SSA/Projects/InstCombine/tests/logs/select-cmp-eq-op-fold.txt b/SSA/Projects/InstCombine/tests/logs/select-cmp-eq-op-fold.txt index edd1354ed..6117307bd 100644 --- a/SSA/Projects/InstCombine/tests/logs/select-cmp-eq-op-fold.txt +++ b/SSA/Projects/InstCombine/tests/logs/select-cmp-eq-op-fold.txt @@ -7,68 +7,44 @@ 1: "replace_with_y_noundef" 4: "replace_with_y_noundef" has unsupported operation: builtin.unregistered: llvm.icmp -4: "replace_with_y_noundef" has unsupported operation: builtin.unregistered: llvm.select - 1: "replace_with_x_noundef" 4: "replace_with_x_noundef" has unsupported operation: builtin.unregistered: llvm.icmp 4: "replace_with_x_noundef" has unsupported operation: llvm.call -4: "replace_with_x_noundef" has unsupported operation: builtin.unregistered: llvm.select - 1: "replace_with_x_maybe_undef_fail" 4: "replace_with_x_maybe_undef_fail" has unsupported operation: builtin.unregistered: llvm.icmp 4: "replace_with_x_maybe_undef_fail" has unsupported operation: llvm.call -4: "replace_with_x_maybe_undef_fail" has unsupported operation: builtin.unregistered: llvm.select - 1: "replace_with_y_for_new_oneuse" 4: "replace_with_y_for_new_oneuse" has unsupported operation: builtin.unregistered: llvm.icmp -4: "replace_with_y_for_new_oneuse" has unsupported operation: builtin.unregistered: llvm.select - 1: "replace_with_y_for_new_oneuse2" 4: "replace_with_y_for_new_oneuse2" has unsupported operation: builtin.unregistered: llvm.icmp -4: "replace_with_y_for_new_oneuse2" has unsupported operation: builtin.unregistered: llvm.select - 1: "replace_with_x_for_new_oneuse" 4: "replace_with_x_for_new_oneuse" has unsupported operation: builtin.unregistered: llvm.icmp -4: "replace_with_x_for_new_oneuse" has unsupported operation: builtin.unregistered: llvm.select - 1: "replace_with_x_for_new_oneuse2" 4: "replace_with_x_for_new_oneuse2" has unsupported operation: builtin.unregistered: llvm.icmp -4: "replace_with_x_for_new_oneuse2" has unsupported operation: builtin.unregistered: llvm.select - 1: "replace_with_x_for_simple_binop" 4: "replace_with_x_for_simple_binop" has unsupported operation: builtin.unregistered: llvm.icmp 4: "replace_with_x_for_simple_binop" has unsupported operation: llvm.call -4: "replace_with_x_for_simple_binop" has unsupported operation: builtin.unregistered: llvm.select - 1: "replace_with_none_for_new_oneuse_fail_maybe_undef" 4: "replace_with_none_for_new_oneuse_fail_maybe_undef" has unsupported operation: builtin.unregistered: llvm.icmp -4: "replace_with_none_for_new_oneuse_fail_maybe_undef" has unsupported operation: builtin.unregistered: llvm.select - 1: "replace_with_y_for_simple_binop" 4: "replace_with_y_for_simple_binop" has unsupported operation: builtin.unregistered: llvm.icmp -4: "replace_with_y_for_simple_binop" has unsupported operation: builtin.unregistered: llvm.select - 1: "replace_with_y_for_simple_binop_fail_multiuse" 4: "replace_with_y_for_simple_binop_fail_multiuse" has unsupported operation: builtin.unregistered: llvm.icmp -4: "replace_with_y_for_simple_binop_fail_multiuse" has unsupported operation: builtin.unregistered: llvm.select - 4: "replace_with_y_for_simple_binop_fail_multiuse" has unsupported operation: llvm.call 1: "replace_with_y_for_simple_binop_fail" 4: "replace_with_y_for_simple_binop_fail" has unsupported operation: builtin.unregistered: llvm.icmp -4: "replace_with_y_for_simple_binop_fail" has unsupported operation: builtin.unregistered: llvm.select - diff --git a/SSA/Projects/InstCombine/tests/logs/select-crash.txt b/SSA/Projects/InstCombine/tests/logs/select-crash.txt index b0cd109f0..7f5786598 100644 --- a/SSA/Projects/InstCombine/tests/logs/select-crash.txt +++ b/SSA/Projects/InstCombine/tests/logs/select-crash.txt @@ -13,8 +13,6 @@ 4: "gimp_operation_color_balance_map" has unsupported operation: builtin.unregistered: llvm.fneg -4: "gimp_operation_color_balance_map" has unsupported operation: builtin.unregistered: llvm.select - 4: "gimp_operation_color_balance_map" has unsupported operation: builtin.unregistered: llvm.fadd 4: "gimp_operation_color_balance_map" has unsupported operation: builtin.unregistered: llvm.fmul @@ -24,7 +22,5 @@ 1: "foo" 4: "foo" has unsupported operation: builtin.unregistered: llvm.fneg -4: "foo" has unsupported operation: builtin.unregistered: llvm.select - 4: "foo" has unsupported operation: builtin.unregistered: llvm.fadd diff --git a/SSA/Projects/InstCombine/tests/logs/select-ctlz-to-cttz.txt b/SSA/Projects/InstCombine/tests/logs/select-ctlz-to-cttz.txt index f7c854c9d..9d4d9f8cb 100644 --- a/SSA/Projects/InstCombine/tests/logs/select-ctlz-to-cttz.txt +++ b/SSA/Projects/InstCombine/tests/logs/select-ctlz-to-cttz.txt @@ -45,15 +45,11 @@ 4: "select_clz_to_ctz_i64_wrong_icmp_cst" has unsupported operation: builtin.unregistered: llvm.intr.cttz -4: "select_clz_to_ctz_i64_wrong_icmp_cst" has unsupported operation: builtin.unregistered: llvm.select - 1: "select_clz_to_ctz_i64_wrong_icmp_pred" 4: "select_clz_to_ctz_i64_wrong_icmp_pred" has unsupported operation: builtin.unregistered: llvm.intr.ctlz 4: "select_clz_to_ctz_i64_wrong_icmp_pred" has unsupported operation: builtin.unregistered: llvm.icmp -4: "select_clz_to_ctz_i64_wrong_icmp_pred" has unsupported operation: builtin.unregistered: llvm.select - 1: "select_clz_to_ctz_vec_with_undef" 4: "select_clz_to_ctz_vec_with_undef" has unsupported operation: llvm.mlir.undef @@ -70,8 +66,6 @@ 4: "select_clz_to_ctz_wrong_constant_for_zero" has unsupported operation: builtin.unregistered: llvm.icmp -4: "select_clz_to_ctz_wrong_constant_for_zero" has unsupported operation: builtin.unregistered: llvm.select - 1: "PR45762" 4: "PR45762" has unsupported operation: builtin.unregistered: llvm.intr.cttz @@ -79,8 +73,6 @@ 4: "PR45762" has unsupported operation: builtin.unregistered: llvm.icmp -4: "PR45762" has unsupported operation: builtin.unregistered: llvm.select - 1: "PR45762_logical" 4: "PR45762_logical" has unsupported operation: builtin.unregistered: llvm.intr.cttz @@ -88,5 +80,3 @@ 4: "PR45762_logical" has unsupported operation: builtin.unregistered: llvm.icmp -4: "PR45762_logical" has unsupported operation: builtin.unregistered: llvm.select - diff --git a/SSA/Projects/InstCombine/tests/logs/select-divrem.txt b/SSA/Projects/InstCombine/tests/logs/select-divrem.txt index 5f2edb878..f9e02aed7 100644 --- a/SSA/Projects/InstCombine/tests/logs/select-divrem.txt +++ b/SSA/Projects/InstCombine/tests/logs/select-divrem.txt @@ -1,121 +1,121 @@ 1: "sdiv_common_divisor" 4: "sdiv_common_divisor" has unsupported operation: builtin.unregistered: llvm.freeze -4: "sdiv_common_divisor" has unsupported operation: builtin.unregistered: llvm.select - 1: "srem_common_divisor" 4: "srem_common_divisor" has unsupported operation: builtin.unregistered: llvm.freeze -4: "srem_common_divisor" has unsupported operation: builtin.unregistered: llvm.select - 1: "udiv_common_divisor" -4: "udiv_common_divisor" has unsupported operation: builtin.unregistered: llvm.select - -4: "udiv_common_divisor" has unsupported operation: llvm.udiv +2: llvm.func +2: llvm.udiv +2: llvm.udiv +2: builtin.unregistered: llvm.select +2: llvm.return 1: "urem_common_divisor" -4: "urem_common_divisor" has unsupported operation: builtin.unregistered: llvm.select +2: llvm.func +2: llvm.urem +2: llvm.urem +2: builtin.unregistered: llvm.select +2: llvm.return 1: "sdiv_common_dividend" 4: "sdiv_common_dividend" has unsupported operation: builtin.unregistered: llvm.freeze -4: "sdiv_common_dividend" has unsupported operation: builtin.unregistered: llvm.select - 1: "srem_common_dividend" 4: "srem_common_dividend" has unsupported operation: builtin.unregistered: llvm.freeze -4: "srem_common_dividend" has unsupported operation: builtin.unregistered: llvm.select - 1: "udiv_common_dividend" 4: "udiv_common_dividend" has unsupported operation: builtin.unregistered: llvm.freeze -4: "udiv_common_dividend" has unsupported operation: builtin.unregistered: llvm.select - -4: "udiv_common_dividend" has unsupported operation: llvm.udiv - 1: "urem_common_dividend" 4: "urem_common_dividend" has unsupported operation: builtin.unregistered: llvm.freeze -4: "urem_common_dividend" has unsupported operation: builtin.unregistered: llvm.select - 1: "sdiv_common_divisor_defined_cond" -4: "sdiv_common_divisor_defined_cond" has unsupported operation: builtin.unregistered: llvm.select +2: llvm.func +2: llvm.sdiv +2: llvm.sdiv +2: builtin.unregistered: llvm.select +2: llvm.return 1: "srem_common_divisor_defined_cond" -4: "srem_common_divisor_defined_cond" has unsupported operation: builtin.unregistered: llvm.select +2: llvm.func +2: llvm.srem +2: llvm.srem +2: builtin.unregistered: llvm.select +2: llvm.return 1: "udiv_common_divisor_defined_cond" -4: "udiv_common_divisor_defined_cond" has unsupported operation: builtin.unregistered: llvm.select - -4: "udiv_common_divisor_defined_cond" has unsupported operation: llvm.udiv +2: llvm.func +2: llvm.udiv +2: llvm.udiv +2: builtin.unregistered: llvm.select +2: llvm.return 1: "urem_common_divisor_defined_cond" -4: "urem_common_divisor_defined_cond" has unsupported operation: builtin.unregistered: llvm.select +2: llvm.func +2: llvm.urem +2: llvm.urem +2: builtin.unregistered: llvm.select +2: llvm.return 1: "sdiv_common_dividend_defined_cond" -4: "sdiv_common_dividend_defined_cond" has unsupported operation: builtin.unregistered: llvm.select +2: llvm.func +2: llvm.sdiv +2: llvm.sdiv +2: builtin.unregistered: llvm.select +2: llvm.return 1: "srem_common_dividend_defined_cond" -4: "srem_common_dividend_defined_cond" has unsupported operation: builtin.unregistered: llvm.select +2: llvm.func +2: llvm.srem +2: llvm.srem +2: builtin.unregistered: llvm.select +2: llvm.return 1: "udiv_common_dividend_defined_cond" -4: "udiv_common_dividend_defined_cond" has unsupported operation: builtin.unregistered: llvm.select - -4: "udiv_common_dividend_defined_cond" has unsupported operation: llvm.udiv +2: llvm.func +2: llvm.udiv +2: llvm.udiv +2: builtin.unregistered: llvm.select +2: llvm.return 1: "urem_common_dividend_defined_cond" -4: "urem_common_dividend_defined_cond" has unsupported operation: builtin.unregistered: llvm.select +2: llvm.func +2: llvm.urem +2: llvm.urem +2: builtin.unregistered: llvm.select +2: llvm.return 1: "rem_euclid_1" 4: "rem_euclid_1" has unsupported operation after optimization: builtin.unregistered: llvm.icmp -4: "rem_euclid_1" has unsupported operation after optimization: builtin.unregistered: llvm.select - 1: "rem_euclid_2" 4: "rem_euclid_2" has unsupported operation after optimization: builtin.unregistered: llvm.icmp -4: "rem_euclid_2" has unsupported operation after optimization: builtin.unregistered: llvm.select - 1: "rem_euclid_wrong_sign_test" 4: "rem_euclid_wrong_sign_test" has unsupported operation: builtin.unregistered: llvm.icmp -4: "rem_euclid_wrong_sign_test" has unsupported operation: builtin.unregistered: llvm.select - 1: "rem_euclid_add_different_const" 4: "rem_euclid_add_different_const" has unsupported operation: builtin.unregistered: llvm.icmp -4: "rem_euclid_add_different_const" has unsupported operation: builtin.unregistered: llvm.select - 1: "rem_euclid_wrong_operands_select" 4: "rem_euclid_wrong_operands_select" has unsupported operation: builtin.unregistered: llvm.icmp -4: "rem_euclid_wrong_operands_select" has unsupported operation: builtin.unregistered: llvm.select - 1: "rem_euclid_vec" -"rem_euclid_vec" contains vectors which are unsupported +8: "rem_euclid_vec" contains vectors which are unsupported 1: "rem_euclid_i128" 4: "rem_euclid_i128" has unsupported operation after optimization: builtin.unregistered: llvm.icmp -4: "rem_euclid_i128" has unsupported operation after optimization: builtin.unregistered: llvm.select - 1: "rem_euclid_non_const_pow2" 4: "rem_euclid_non_const_pow2" has unsupported operation after optimization: builtin.unregistered: llvm.icmp -4: "rem_euclid_non_const_pow2" has unsupported operation after optimization: builtin.unregistered: llvm.select - 1: "rem_euclid_pow2_true_arm_folded" 4: "rem_euclid_pow2_true_arm_folded" has unsupported operation after optimization: builtin.unregistered: llvm.icmp -4: "rem_euclid_pow2_true_arm_folded" has unsupported operation after optimization: builtin.unregistered: llvm.select - 1: "rem_euclid_pow2_false_arm_folded" 4: "rem_euclid_pow2_false_arm_folded" has unsupported operation after optimization: builtin.unregistered: llvm.icmp -4: "rem_euclid_pow2_false_arm_folded" has unsupported operation after optimization: builtin.unregistered: llvm.select - 1: "pr89516" 4: "pr89516" has unsupported operation: builtin.unregistered: llvm.icmp -4: "pr89516" has unsupported operation: builtin.unregistered: llvm.select - diff --git a/SSA/Projects/InstCombine/tests/logs/select-extractelement-inseltpoison.txt b/SSA/Projects/InstCombine/tests/logs/select-extractelement-inseltpoison.txt index f242c175f..947894ca5 100644 --- a/SSA/Projects/InstCombine/tests/logs/select-extractelement-inseltpoison.txt +++ b/SSA/Projects/InstCombine/tests/logs/select-extractelement-inseltpoison.txt @@ -4,8 +4,6 @@ 1: "extract_one_select" 4: "extract_one_select" has unsupported operation: builtin.unregistered: llvm.icmp -4: "extract_one_select" has unsupported operation: builtin.unregistered: llvm.select - 4: "extract_one_select" has unsupported operation: builtin.unregistered: llvm.extractelement 1: "extract_two_select" @@ -13,15 +11,11 @@ 4: "extract_two_select" has unsupported operation: builtin.unregistered: llvm.icmp -4: "extract_two_select" has unsupported operation: builtin.unregistered: llvm.select - 4: "extract_two_select" has unsupported operation: builtin.unregistered: llvm.shufflevector 1: "extract_one_select_user" 4: "extract_one_select_user" has unsupported operation: builtin.unregistered: llvm.icmp -4: "extract_one_select_user" has unsupported operation: builtin.unregistered: llvm.select - 4: "extract_one_select_user" has unsupported operation: builtin.unregistered: llvm.extractelement 4: "extract_one_select_user" has unsupported operation: llvm.call @@ -29,8 +23,6 @@ 1: "extract_one_vselect_user" 4: "extract_one_vselect_user" has unsupported operation: builtin.unregistered: llvm.icmp -4: "extract_one_vselect_user" has unsupported operation: builtin.unregistered: llvm.select - 4: "extract_one_vselect_user" has unsupported operation: builtin.unregistered: llvm.extractelement 4: "extract_one_vselect_user" has unsupported operation: llvm.call @@ -38,8 +30,6 @@ 1: "extract_one_vselect" 4: "extract_one_vselect" has unsupported operation: builtin.unregistered: llvm.icmp -4: "extract_one_vselect" has unsupported operation: builtin.unregistered: llvm.select - 4: "extract_one_vselect" has unsupported operation: builtin.unregistered: llvm.extractelement 1: "extract_two_vselect" @@ -47,8 +37,6 @@ 4: "extract_two_vselect" has unsupported operation: builtin.unregistered: llvm.icmp -4: "extract_two_vselect" has unsupported operation: builtin.unregistered: llvm.select - 4: "extract_two_vselect" has unsupported operation: builtin.unregistered: llvm.shufflevector 1: "simple_vector_select" @@ -56,30 +44,22 @@ 4: "simple_vector_select" has unsupported operation: builtin.unregistered: llvm.icmp -4: "simple_vector_select" has unsupported operation: builtin.unregistered: llvm.select - 4: "simple_vector_select" has unsupported operation: builtin.unregistered: llvm.extractelement 4: "simple_vector_select" has unsupported operation: builtin.unregistered: llvm.icmp -4: "simple_vector_select" has unsupported operation: builtin.unregistered: llvm.select - 4: "simple_vector_select" has unsupported operation: builtin.unregistered: llvm.shufflevector 4: "simple_vector_select" has unsupported operation: builtin.unregistered: llvm.extractelement 4: "simple_vector_select" has unsupported operation: builtin.unregistered: llvm.icmp -4: "simple_vector_select" has unsupported operation: builtin.unregistered: llvm.select - 4: "simple_vector_select" has unsupported operation: builtin.unregistered: llvm.shufflevector 4: "simple_vector_select" has unsupported operation: builtin.unregistered: llvm.extractelement 4: "simple_vector_select" has unsupported operation: builtin.unregistered: llvm.icmp -4: "simple_vector_select" has unsupported operation: builtin.unregistered: llvm.select - 4: "simple_vector_select" has unsupported operation: builtin.unregistered: llvm.shufflevector 1: "extract_cond" @@ -87,15 +67,11 @@ 4: "extract_cond" has unsupported operation: builtin.unregistered: llvm.shufflevector -4: "extract_cond" has unsupported operation: builtin.unregistered: llvm.select - 1: "splat_cond" 4: "splat_cond" has unsupported operation: builtin.unregistered: llvm.mlir.poison 4: "splat_cond" has unsupported operation: builtin.unregistered: llvm.shufflevector -4: "splat_cond" has unsupported operation: builtin.unregistered: llvm.select - 1: "extra_use" 5: "extra_use" is empty @@ -104,17 +80,11 @@ 4: "extract_cond_extra_use" has unsupported operation: llvm.call -4: "extract_cond_extra_use" has unsupported operation: builtin.unregistered: llvm.select - 1: "extract_cond_variable_index" 4: "extract_cond_variable_index" has unsupported operation: builtin.unregistered: llvm.extractelement -4: "extract_cond_variable_index" has unsupported operation: builtin.unregistered: llvm.select - 1: "extract_cond_type_mismatch" 4: "extract_cond_type_mismatch" has unsupported operation: builtin.unregistered: llvm.mlir.poison 4: "extract_cond_type_mismatch" has unsupported operation: builtin.unregistered: llvm.shufflevector -4: "extract_cond_type_mismatch" has unsupported operation: builtin.unregistered: llvm.select - diff --git a/SSA/Projects/InstCombine/tests/logs/select-extractelement.txt b/SSA/Projects/InstCombine/tests/logs/select-extractelement.txt index be73bef35..eb5c2fd64 100644 --- a/SSA/Projects/InstCombine/tests/logs/select-extractelement.txt +++ b/SSA/Projects/InstCombine/tests/logs/select-extractelement.txt @@ -4,8 +4,6 @@ 1: "extract_one_select" 4: "extract_one_select" has unsupported operation: builtin.unregistered: llvm.icmp -4: "extract_one_select" has unsupported operation: builtin.unregistered: llvm.select - 4: "extract_one_select" has unsupported operation: builtin.unregistered: llvm.extractelement 1: "extract_two_select" @@ -13,15 +11,11 @@ 4: "extract_two_select" has unsupported operation: builtin.unregistered: llvm.icmp -4: "extract_two_select" has unsupported operation: builtin.unregistered: llvm.select - 4: "extract_two_select" has unsupported operation: builtin.unregistered: llvm.shufflevector 1: "extract_one_select_user" 4: "extract_one_select_user" has unsupported operation: builtin.unregistered: llvm.icmp -4: "extract_one_select_user" has unsupported operation: builtin.unregistered: llvm.select - 4: "extract_one_select_user" has unsupported operation: builtin.unregistered: llvm.extractelement 4: "extract_one_select_user" has unsupported operation: llvm.call @@ -29,8 +23,6 @@ 1: "extract_one_vselect_user" 4: "extract_one_vselect_user" has unsupported operation: builtin.unregistered: llvm.icmp -4: "extract_one_vselect_user" has unsupported operation: builtin.unregistered: llvm.select - 4: "extract_one_vselect_user" has unsupported operation: builtin.unregistered: llvm.extractelement 4: "extract_one_vselect_user" has unsupported operation: llvm.call @@ -38,8 +30,6 @@ 1: "extract_one_vselect" 4: "extract_one_vselect" has unsupported operation: builtin.unregistered: llvm.icmp -4: "extract_one_vselect" has unsupported operation: builtin.unregistered: llvm.select - 4: "extract_one_vselect" has unsupported operation: builtin.unregistered: llvm.extractelement 1: "extract_two_vselect" @@ -47,8 +37,6 @@ 4: "extract_two_vselect" has unsupported operation: builtin.unregistered: llvm.icmp -4: "extract_two_vselect" has unsupported operation: builtin.unregistered: llvm.select - 4: "extract_two_vselect" has unsupported operation: builtin.unregistered: llvm.shufflevector 1: "simple_vector_select" @@ -56,30 +44,22 @@ 4: "simple_vector_select" has unsupported operation: builtin.unregistered: llvm.icmp -4: "simple_vector_select" has unsupported operation: builtin.unregistered: llvm.select - 4: "simple_vector_select" has unsupported operation: builtin.unregistered: llvm.extractelement 4: "simple_vector_select" has unsupported operation: builtin.unregistered: llvm.icmp -4: "simple_vector_select" has unsupported operation: builtin.unregistered: llvm.select - 4: "simple_vector_select" has unsupported operation: builtin.unregistered: llvm.shufflevector 4: "simple_vector_select" has unsupported operation: builtin.unregistered: llvm.extractelement 4: "simple_vector_select" has unsupported operation: builtin.unregistered: llvm.icmp -4: "simple_vector_select" has unsupported operation: builtin.unregistered: llvm.select - 4: "simple_vector_select" has unsupported operation: builtin.unregistered: llvm.shufflevector 4: "simple_vector_select" has unsupported operation: builtin.unregistered: llvm.extractelement 4: "simple_vector_select" has unsupported operation: builtin.unregistered: llvm.icmp -4: "simple_vector_select" has unsupported operation: builtin.unregistered: llvm.select - 4: "simple_vector_select" has unsupported operation: builtin.unregistered: llvm.shufflevector 1: "extract_cond" @@ -87,15 +67,11 @@ 4: "extract_cond" has unsupported operation: builtin.unregistered: llvm.shufflevector -4: "extract_cond" has unsupported operation: builtin.unregistered: llvm.select - 1: "splat_cond" 4: "splat_cond" has unsupported operation: builtin.unregistered: llvm.mlir.poison 4: "splat_cond" has unsupported operation: builtin.unregistered: llvm.shufflevector -4: "splat_cond" has unsupported operation: builtin.unregistered: llvm.select - 1: "extra_use" 5: "extra_use" is empty @@ -104,20 +80,14 @@ 4: "extract_cond_extra_use" has unsupported operation: llvm.call -4: "extract_cond_extra_use" has unsupported operation: builtin.unregistered: llvm.select - 1: "extract_cond_variable_index" 4: "extract_cond_variable_index" has unsupported operation: builtin.unregistered: llvm.extractelement -4: "extract_cond_variable_index" has unsupported operation: builtin.unregistered: llvm.select - 1: "extract_cond_type_mismatch" 4: "extract_cond_type_mismatch" has unsupported operation: builtin.unregistered: llvm.mlir.poison 4: "extract_cond_type_mismatch" has unsupported operation: builtin.unregistered: llvm.shufflevector -4: "extract_cond_type_mismatch" has unsupported operation: builtin.unregistered: llvm.select - 1: "inf_loop_partial_undef" 4: "inf_loop_partial_undef" has unsupported operation: builtin.unregistered: llvm.mlir.poison @@ -137,9 +107,5 @@ 4: "inf_loop_partial_undef" has unsupported operation: builtin.unregistered: llvm.icmp -4: "inf_loop_partial_undef" has unsupported operation: builtin.unregistered: llvm.select - -4: "inf_loop_partial_undef" has unsupported operation: builtin.unregistered: llvm.select - 4: "inf_loop_partial_undef" has unsupported operation: builtin.unregistered: llvm.extractelement diff --git a/SSA/Projects/InstCombine/tests/logs/select-factorize.txt b/SSA/Projects/InstCombine/tests/logs/select-factorize.txt index 428c6e1d3..7e6b2e51f 100644 --- a/SSA/Projects/InstCombine/tests/logs/select-factorize.txt +++ b/SSA/Projects/InstCombine/tests/logs/select-factorize.txt @@ -2,54 +2,82 @@ 5: "use" is empty 1: "logic_and_logic_or_1" -4: "logic_and_logic_or_1" has unsupported operation: builtin.unregistered: llvm.select - -4: "logic_and_logic_or_1" has unsupported operation: builtin.unregistered: llvm.select +2: llvm.func +2: llvm.mlir.constant +2: llvm.mlir.constant +2: builtin.unregistered: llvm.select +2: builtin.unregistered: llvm.select +2: builtin.unregistered: llvm.select +2: llvm.return 1: "logic_and_logic_or_2" -4: "logic_and_logic_or_2" has unsupported operation: builtin.unregistered: llvm.select - -4: "logic_and_logic_or_2" has unsupported operation: builtin.unregistered: llvm.select +2: llvm.func +2: llvm.mlir.constant +2: llvm.mlir.constant +2: builtin.unregistered: llvm.select +2: builtin.unregistered: llvm.select +2: builtin.unregistered: llvm.select +2: llvm.return 1: "logic_and_logic_or_3" -4: "logic_and_logic_or_3" has unsupported operation: builtin.unregistered: llvm.select - -4: "logic_and_logic_or_3" has unsupported operation: builtin.unregistered: llvm.select +2: llvm.func +2: llvm.mlir.constant +2: llvm.mlir.constant +2: builtin.unregistered: llvm.select +2: builtin.unregistered: llvm.select +2: builtin.unregistered: llvm.select +2: llvm.return 1: "logic_and_logic_or_4" -4: "logic_and_logic_or_4" has unsupported operation: builtin.unregistered: llvm.select - -4: "logic_and_logic_or_4" has unsupported operation: builtin.unregistered: llvm.select +2: llvm.func +2: llvm.mlir.constant +2: llvm.mlir.constant +2: builtin.unregistered: llvm.select +2: builtin.unregistered: llvm.select +2: builtin.unregistered: llvm.select +2: llvm.return 1: "logic_and_logic_or_5" -4: "logic_and_logic_or_5" has unsupported operation: builtin.unregistered: llvm.select - -4: "logic_and_logic_or_5" has unsupported operation: builtin.unregistered: llvm.select +2: llvm.func +2: llvm.mlir.constant +2: llvm.mlir.constant +2: builtin.unregistered: llvm.select +2: builtin.unregistered: llvm.select +2: builtin.unregistered: llvm.select +2: llvm.return 1: "logic_and_logic_or_6" -4: "logic_and_logic_or_6" has unsupported operation: builtin.unregistered: llvm.select - -4: "logic_and_logic_or_6" has unsupported operation: builtin.unregistered: llvm.select +2: llvm.func +2: llvm.mlir.constant +2: llvm.mlir.constant +2: builtin.unregistered: llvm.select +2: builtin.unregistered: llvm.select +2: builtin.unregistered: llvm.select +2: llvm.return 1: "logic_and_logic_or_7" -4: "logic_and_logic_or_7" has unsupported operation: builtin.unregistered: llvm.select - -4: "logic_and_logic_or_7" has unsupported operation: builtin.unregistered: llvm.select +2: llvm.func +2: llvm.mlir.constant +2: llvm.mlir.constant +2: builtin.unregistered: llvm.select +2: builtin.unregistered: llvm.select +2: builtin.unregistered: llvm.select +2: llvm.return 1: "logic_and_logic_or_8" -4: "logic_and_logic_or_8" has unsupported operation: builtin.unregistered: llvm.select - -4: "logic_and_logic_or_8" has unsupported operation: builtin.unregistered: llvm.select +2: llvm.func +2: llvm.mlir.constant +2: llvm.mlir.constant +2: builtin.unregistered: llvm.select +2: builtin.unregistered: llvm.select +2: builtin.unregistered: llvm.select +2: llvm.return 1: "logic_and_logic_or_vector" -4: "logic_and_logic_or_vector" has unsupported operation: builtin.unregistered: llvm.select - -4: "logic_and_logic_or_vector" has unsupported operation: builtin.unregistered: llvm.select +8: "logic_and_logic_or_vector" contains vectors which are unsupported 1: "logic_and_logic_or_vector_poison1" -4: "logic_and_logic_or_vector_poison1" has unsupported operation: builtin.unregistered: llvm.select - -4: "logic_and_logic_or_vector_poison1" has unsupported operation: builtin.unregistered: llvm.select +8: "logic_and_logic_or_vector_poison1" contains vectors which are unsupported 1: "logic_and_logic_or_vector_poison2" 4: "logic_and_logic_or_vector_poison2" has unsupported operation: builtin.unregistered: llvm.mlir.poison @@ -62,12 +90,6 @@ 4: "logic_and_logic_or_vector_poison2" has unsupported operation: builtin.unregistered: llvm.insertelement -4: "logic_and_logic_or_vector_poison2" has unsupported operation: builtin.unregistered: llvm.select - -4: "logic_and_logic_or_vector_poison2" has unsupported operation: builtin.unregistered: llvm.select - -4: "logic_and_logic_or_vector_poison2" has unsupported operation: builtin.unregistered: llvm.select - 1: "logic_and_logic_or_vector_poison3" 4: "logic_and_logic_or_vector_poison3" has unsupported operation: builtin.unregistered: llvm.mlir.poison @@ -79,61 +101,85 @@ 4: "logic_and_logic_or_vector_poison3" has unsupported operation: builtin.unregistered: llvm.insertelement -4: "logic_and_logic_or_vector_poison3" has unsupported operation: builtin.unregistered: llvm.select - -4: "logic_and_logic_or_vector_poison3" has unsupported operation: builtin.unregistered: llvm.select - 1: "logic_and_logic_or_not_one_use" -4: "logic_and_logic_or_not_one_use" has unsupported operation: builtin.unregistered: llvm.select - -4: "logic_and_logic_or_not_one_use" has unsupported operation: builtin.unregistered: llvm.select - -4: "logic_and_logic_or_not_one_use" has unsupported operation: builtin.unregistered: llvm.select - 4: "logic_and_logic_or_not_one_use" has unsupported operation: llvm.call 4: "logic_and_logic_or_not_one_use" has unsupported operation: llvm.call 1: "and_logic_and_logic_or_1" -4: "and_logic_and_logic_or_1" has unsupported operation: builtin.unregistered: llvm.select - -4: "and_logic_and_logic_or_1" has unsupported operation: builtin.unregistered: llvm.select +2: llvm.func +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.and +2: builtin.unregistered: llvm.select +2: builtin.unregistered: llvm.select +2: llvm.return 1: "and_logic_and_logic_or_2" -4: "and_logic_and_logic_or_2" has unsupported operation: builtin.unregistered: llvm.select - -4: "and_logic_and_logic_or_2" has unsupported operation: builtin.unregistered: llvm.select +2: llvm.func +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.and +2: builtin.unregistered: llvm.select +2: builtin.unregistered: llvm.select +2: llvm.return 1: "and_logic_and_logic_or_3" -4: "and_logic_and_logic_or_3" has unsupported operation: builtin.unregistered: llvm.select - -4: "and_logic_and_logic_or_3" has unsupported operation: builtin.unregistered: llvm.select +2: llvm.func +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.and +2: builtin.unregistered: llvm.select +2: builtin.unregistered: llvm.select +2: llvm.return 1: "and_logic_and_logic_or_4" -4: "and_logic_and_logic_or_4" has unsupported operation: builtin.unregistered: llvm.select - -4: "and_logic_and_logic_or_4" has unsupported operation: builtin.unregistered: llvm.select +2: llvm.func +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.and +2: builtin.unregistered: llvm.select +2: builtin.unregistered: llvm.select +2: llvm.return 1: "and_logic_and_logic_or_5" -4: "and_logic_and_logic_or_5" has unsupported operation: builtin.unregistered: llvm.select - -4: "and_logic_and_logic_or_5" has unsupported operation: builtin.unregistered: llvm.select +2: llvm.func +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.and +2: builtin.unregistered: llvm.select +2: builtin.unregistered: llvm.select +2: llvm.return 1: "and_logic_and_logic_or_6" -4: "and_logic_and_logic_or_6" has unsupported operation: builtin.unregistered: llvm.select +2: llvm.func +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.and +2: builtin.unregistered: llvm.select +2: builtin.unregistered: llvm.select +2: llvm.return 1: "and_logic_and_logic_or_7" -4: "and_logic_and_logic_or_7" has unsupported operation: builtin.unregistered: llvm.select - -4: "and_logic_and_logic_or_7" has unsupported operation: builtin.unregistered: llvm.select +2: llvm.func +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.and +2: builtin.unregistered: llvm.select +2: builtin.unregistered: llvm.select +2: llvm.return 1: "and_logic_and_logic_or_8" -4: "and_logic_and_logic_or_8" has unsupported operation: builtin.unregistered: llvm.select +2: llvm.func +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.and +2: builtin.unregistered: llvm.select +2: builtin.unregistered: llvm.select +2: llvm.return 1: "and_logic_and_logic_or_vector" -4: "and_logic_and_logic_or_vector" has unsupported operation: builtin.unregistered: llvm.select - -4: "and_logic_and_logic_or_vector" has unsupported operation: builtin.unregistered: llvm.select +8: "and_logic_and_logic_or_vector" contains vectors which are unsupported 1: "and_logic_and_logic_or_vector_poison1" 4: "and_logic_and_logic_or_vector_poison1" has unsupported operation: builtin.unregistered: llvm.mlir.poison @@ -146,87 +192,115 @@ 4: "and_logic_and_logic_or_vector_poison1" has unsupported operation: builtin.unregistered: llvm.insertelement -4: "and_logic_and_logic_or_vector_poison1" has unsupported operation: builtin.unregistered: llvm.select - -4: "and_logic_and_logic_or_vector_poison1" has unsupported operation: builtin.unregistered: llvm.select - 1: "and_logic_and_logic_or_vector_poison2" -4: "and_logic_and_logic_or_vector_poison2" has unsupported operation: builtin.unregistered: llvm.select - -4: "and_logic_and_logic_or_vector_poison2" has unsupported operation: builtin.unregistered: llvm.select +8: "and_logic_and_logic_or_vector_poison2" contains vectors which are unsupported 1: "and_logic_and_logic_or_not_one_use" -4: "and_logic_and_logic_or_not_one_use" has unsupported operation: builtin.unregistered: llvm.select - -4: "and_logic_and_logic_or_not_one_use" has unsupported operation: builtin.unregistered: llvm.select - 4: "and_logic_and_logic_or_not_one_use" has unsupported operation: llvm.call 4: "and_logic_and_logic_or_not_one_use" has unsupported operation: llvm.call 1: "and_and_logic_or_1" -4: "and_and_logic_or_1" has unsupported operation: builtin.unregistered: llvm.select +2: llvm.func +2: llvm.mlir.constant +2: llvm.and +2: llvm.and +2: builtin.unregistered: llvm.select +2: llvm.return 1: "and_and_logic_or_2" -4: "and_and_logic_or_2" has unsupported operation: builtin.unregistered: llvm.select +2: llvm.func +2: llvm.mlir.constant +2: llvm.and +2: llvm.and +2: builtin.unregistered: llvm.select +2: llvm.return 1: "and_and_logic_or_vector" -4: "and_and_logic_or_vector" has unsupported operation: builtin.unregistered: llvm.select +8: "and_and_logic_or_vector" contains vectors which are unsupported 1: "and_and_logic_or_vector_poison" -4: "and_and_logic_or_vector_poison" has unsupported operation: builtin.unregistered: llvm.select +8: "and_and_logic_or_vector_poison" contains vectors which are unsupported 1: "and_and_logic_or_not_one_use" -4: "and_and_logic_or_not_one_use" has unsupported operation: builtin.unregistered: llvm.select - 4: "and_and_logic_or_not_one_use" has unsupported operation: llvm.call 4: "and_and_logic_or_not_one_use" has unsupported operation: llvm.call 1: "logic_or_logic_and_1" -4: "logic_or_logic_and_1" has unsupported operation: builtin.unregistered: llvm.select - -4: "logic_or_logic_and_1" has unsupported operation: builtin.unregistered: llvm.select +2: llvm.func +2: llvm.mlir.constant +2: llvm.mlir.constant +2: builtin.unregistered: llvm.select +2: builtin.unregistered: llvm.select +2: builtin.unregistered: llvm.select +2: llvm.return 1: "logic_or_logic_and_2" -4: "logic_or_logic_and_2" has unsupported operation: builtin.unregistered: llvm.select - -4: "logic_or_logic_and_2" has unsupported operation: builtin.unregistered: llvm.select +2: llvm.func +2: llvm.mlir.constant +2: llvm.mlir.constant +2: builtin.unregistered: llvm.select +2: builtin.unregistered: llvm.select +2: builtin.unregistered: llvm.select +2: llvm.return 1: "logic_or_logic_and_3" -4: "logic_or_logic_and_3" has unsupported operation: builtin.unregistered: llvm.select - -4: "logic_or_logic_and_3" has unsupported operation: builtin.unregistered: llvm.select +2: llvm.func +2: llvm.mlir.constant +2: llvm.mlir.constant +2: builtin.unregistered: llvm.select +2: builtin.unregistered: llvm.select +2: builtin.unregistered: llvm.select +2: llvm.return 1: "logic_or_logic_and_4" -4: "logic_or_logic_and_4" has unsupported operation: builtin.unregistered: llvm.select - -4: "logic_or_logic_and_4" has unsupported operation: builtin.unregistered: llvm.select +2: llvm.func +2: llvm.mlir.constant +2: llvm.mlir.constant +2: builtin.unregistered: llvm.select +2: builtin.unregistered: llvm.select +2: builtin.unregistered: llvm.select +2: llvm.return 1: "logic_or_logic_and_5" -4: "logic_or_logic_and_5" has unsupported operation: builtin.unregistered: llvm.select - -4: "logic_or_logic_and_5" has unsupported operation: builtin.unregistered: llvm.select +2: llvm.func +2: llvm.mlir.constant +2: llvm.mlir.constant +2: builtin.unregistered: llvm.select +2: builtin.unregistered: llvm.select +2: builtin.unregistered: llvm.select +2: llvm.return 1: "logic_or_logic_and_6" -4: "logic_or_logic_and_6" has unsupported operation: builtin.unregistered: llvm.select - -4: "logic_or_logic_and_6" has unsupported operation: builtin.unregistered: llvm.select +2: llvm.func +2: llvm.mlir.constant +2: llvm.mlir.constant +2: builtin.unregistered: llvm.select +2: builtin.unregistered: llvm.select +2: builtin.unregistered: llvm.select +2: llvm.return 1: "logic_or_logic_and_7" -4: "logic_or_logic_and_7" has unsupported operation: builtin.unregistered: llvm.select - -4: "logic_or_logic_and_7" has unsupported operation: builtin.unregistered: llvm.select +2: llvm.func +2: llvm.mlir.constant +2: llvm.mlir.constant +2: builtin.unregistered: llvm.select +2: builtin.unregistered: llvm.select +2: builtin.unregistered: llvm.select +2: llvm.return 1: "logic_or_logic_and_8" -4: "logic_or_logic_and_8" has unsupported operation: builtin.unregistered: llvm.select - -4: "logic_or_logic_and_8" has unsupported operation: builtin.unregistered: llvm.select +2: llvm.func +2: llvm.mlir.constant +2: llvm.mlir.constant +2: builtin.unregistered: llvm.select +2: builtin.unregistered: llvm.select +2: builtin.unregistered: llvm.select +2: llvm.return 1: "logic_or_logic_and_vector" -4: "logic_or_logic_and_vector" has unsupported operation: builtin.unregistered: llvm.select - -4: "logic_or_logic_and_vector" has unsupported operation: builtin.unregistered: llvm.select +8: "logic_or_logic_and_vector" contains vectors which are unsupported 1: "logic_or_logic_and_vector_poison1" 4: "logic_or_logic_and_vector_poison1" has unsupported operation: builtin.unregistered: llvm.mlir.poison @@ -239,12 +313,6 @@ 4: "logic_or_logic_and_vector_poison1" has unsupported operation: builtin.unregistered: llvm.insertelement -4: "logic_or_logic_and_vector_poison1" has unsupported operation: builtin.unregistered: llvm.select - -4: "logic_or_logic_and_vector_poison1" has unsupported operation: builtin.unregistered: llvm.select - -4: "logic_or_logic_and_vector_poison1" has unsupported operation: builtin.unregistered: llvm.select - 1: "logic_or_logic_and_vector_poison2" 4: "logic_or_logic_and_vector_poison2" has unsupported operation: builtin.unregistered: llvm.mlir.poison @@ -256,66 +324,88 @@ 4: "logic_or_logic_and_vector_poison2" has unsupported operation: builtin.unregistered: llvm.insertelement -4: "logic_or_logic_and_vector_poison2" has unsupported operation: builtin.unregistered: llvm.select - -4: "logic_or_logic_and_vector_poison2" has unsupported operation: builtin.unregistered: llvm.select - 1: "logic_or_logic_and_vector_poison3" -4: "logic_or_logic_and_vector_poison3" has unsupported operation: builtin.unregistered: llvm.select - -4: "logic_or_logic_and_vector_poison3" has unsupported operation: builtin.unregistered: llvm.select +8: "logic_or_logic_and_vector_poison3" contains vectors which are unsupported 1: "logic_or_logic_and_not_one_use" -4: "logic_or_logic_and_not_one_use" has unsupported operation: builtin.unregistered: llvm.select - -4: "logic_or_logic_and_not_one_use" has unsupported operation: builtin.unregistered: llvm.select - -4: "logic_or_logic_and_not_one_use" has unsupported operation: builtin.unregistered: llvm.select - 4: "logic_or_logic_and_not_one_use" has unsupported operation: llvm.call 4: "logic_or_logic_and_not_one_use" has unsupported operation: llvm.call 1: "or_logic_or_logic_and_1" -4: "or_logic_or_logic_and_1" has unsupported operation: builtin.unregistered: llvm.select - -4: "or_logic_or_logic_and_1" has unsupported operation: builtin.unregistered: llvm.select +2: llvm.func +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.or +2: builtin.unregistered: llvm.select +2: builtin.unregistered: llvm.select +2: llvm.return 1: "or_logic_or_logic_and_2" -4: "or_logic_or_logic_and_2" has unsupported operation: builtin.unregistered: llvm.select - -4: "or_logic_or_logic_and_2" has unsupported operation: builtin.unregistered: llvm.select +2: llvm.func +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.or +2: builtin.unregistered: llvm.select +2: builtin.unregistered: llvm.select +2: llvm.return 1: "or_logic_or_logic_and_3" -4: "or_logic_or_logic_and_3" has unsupported operation: builtin.unregistered: llvm.select - -4: "or_logic_or_logic_and_3" has unsupported operation: builtin.unregistered: llvm.select +2: llvm.func +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.or +2: builtin.unregistered: llvm.select +2: builtin.unregistered: llvm.select +2: llvm.return 1: "or_logic_or_logic_and_4" -4: "or_logic_or_logic_and_4" has unsupported operation: builtin.unregistered: llvm.select +2: llvm.func +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.or +2: builtin.unregistered: llvm.select +2: builtin.unregistered: llvm.select +2: llvm.return 1: "or_logic_or_logic_and_5" -4: "or_logic_or_logic_and_5" has unsupported operation: builtin.unregistered: llvm.select - -4: "or_logic_or_logic_and_5" has unsupported operation: builtin.unregistered: llvm.select +2: llvm.func +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.or +2: builtin.unregistered: llvm.select +2: builtin.unregistered: llvm.select +2: llvm.return 1: "or_logic_or_logic_and_6" -4: "or_logic_or_logic_and_6" has unsupported operation: builtin.unregistered: llvm.select - -4: "or_logic_or_logic_and_6" has unsupported operation: builtin.unregistered: llvm.select +2: llvm.func +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.or +2: builtin.unregistered: llvm.select +2: builtin.unregistered: llvm.select +2: llvm.return 1: "or_logic_or_logic_and_7" -4: "or_logic_or_logic_and_7" has unsupported operation: builtin.unregistered: llvm.select - -4: "or_logic_or_logic_and_7" has unsupported operation: builtin.unregistered: llvm.select +2: llvm.func +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.or +2: builtin.unregistered: llvm.select +2: builtin.unregistered: llvm.select +2: llvm.return 1: "or_logic_or_logic_and_8" -4: "or_logic_or_logic_and_8" has unsupported operation: builtin.unregistered: llvm.select +2: llvm.func +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.or +2: builtin.unregistered: llvm.select +2: builtin.unregistered: llvm.select +2: llvm.return 1: "or_logic_or_logic_and_vector" -4: "or_logic_or_logic_and_vector" has unsupported operation: builtin.unregistered: llvm.select - -4: "or_logic_or_logic_and_vector" has unsupported operation: builtin.unregistered: llvm.select +8: "or_logic_or_logic_and_vector" contains vectors which are unsupported 1: "or_logic_or_logic_and_vector_poison1" 4: "or_logic_or_logic_and_vector_poison1" has unsupported operation: builtin.unregistered: llvm.mlir.poison @@ -328,39 +418,37 @@ 4: "or_logic_or_logic_and_vector_poison1" has unsupported operation: builtin.unregistered: llvm.insertelement -4: "or_logic_or_logic_and_vector_poison1" has unsupported operation: builtin.unregistered: llvm.select - -4: "or_logic_or_logic_and_vector_poison1" has unsupported operation: builtin.unregistered: llvm.select - 1: "or_logic_or_logic_and_vector_poison2" -4: "or_logic_or_logic_and_vector_poison2" has unsupported operation: builtin.unregistered: llvm.select - -4: "or_logic_or_logic_and_vector_poison2" has unsupported operation: builtin.unregistered: llvm.select +8: "or_logic_or_logic_and_vector_poison2" contains vectors which are unsupported 1: "or_logic_or_logic_and_not_one_use" -4: "or_logic_or_logic_and_not_one_use" has unsupported operation: builtin.unregistered: llvm.select - -4: "or_logic_or_logic_and_not_one_use" has unsupported operation: builtin.unregistered: llvm.select - 4: "or_logic_or_logic_and_not_one_use" has unsupported operation: llvm.call 4: "or_logic_or_logic_and_not_one_use" has unsupported operation: llvm.call 1: "or_or_logic_and_1" -4: "or_or_logic_and_1" has unsupported operation: builtin.unregistered: llvm.select +2: llvm.func +2: llvm.mlir.constant +2: llvm.or +2: llvm.or +2: builtin.unregistered: llvm.select +2: llvm.return 1: "or_or_logic_and_2" -4: "or_or_logic_and_2" has unsupported operation: builtin.unregistered: llvm.select +2: llvm.func +2: llvm.mlir.constant +2: llvm.or +2: llvm.or +2: builtin.unregistered: llvm.select +2: llvm.return 1: "or_or_logic_and_vector" -4: "or_or_logic_and_vector" has unsupported operation: builtin.unregistered: llvm.select +8: "or_or_logic_and_vector" contains vectors which are unsupported 1: "or_or_logic_and_vector_poison" -4: "or_or_logic_and_vector_poison" has unsupported operation: builtin.unregistered: llvm.select +8: "or_or_logic_and_vector_poison" contains vectors which are unsupported 1: "or_or_logic_and_not_one_use" -4: "or_or_logic_and_not_one_use" has unsupported operation: builtin.unregistered: llvm.select - 4: "or_or_logic_and_not_one_use" has unsupported operation: llvm.call 4: "or_or_logic_and_not_one_use" has unsupported operation: llvm.call diff --git a/SSA/Projects/InstCombine/tests/logs/select-icmp-and-zero-shl.txt b/SSA/Projects/InstCombine/tests/logs/select-icmp-and-zero-shl.txt index 211b0fa0d..b2e59a7da 100644 --- a/SSA/Projects/InstCombine/tests/logs/select-icmp-and-zero-shl.txt +++ b/SSA/Projects/InstCombine/tests/logs/select-icmp-and-zero-shl.txt @@ -1,29 +1,21 @@ 1: "test_eq" 4: "test_eq" has unsupported operation after optimization: builtin.unregistered: llvm.icmp -4: "test_eq" has unsupported operation after optimization: builtin.unregistered: llvm.select - 1: "test_eq_vect" -"test_eq_vect" contains vectors which are unsupported +8: "test_eq_vect" contains vectors which are unsupported 1: "test_ne" 4: "test_ne" has unsupported operation after optimization: builtin.unregistered: llvm.icmp -4: "test_ne" has unsupported operation after optimization: builtin.unregistered: llvm.select - 1: "test_ne_vect" -"test_ne_vect" contains vectors which are unsupported +8: "test_ne_vect" contains vectors which are unsupported 1: "test_nuw_dropped" 4: "test_nuw_dropped" has unsupported operation after optimization: builtin.unregistered: llvm.icmp -4: "test_nuw_dropped" has unsupported operation after optimization: builtin.unregistered: llvm.select - 1: "test_nsw_dropped" 4: "test_nsw_dropped" has unsupported operation after optimization: builtin.unregistered: llvm.icmp -4: "test_nsw_dropped" has unsupported operation after optimization: builtin.unregistered: llvm.select - 1: "use_multi" 5: "use_multi" is empty @@ -40,20 +32,12 @@ 1: "neg_test_bits_not_match" 4: "neg_test_bits_not_match" has unsupported operation: builtin.unregistered: llvm.icmp -4: "neg_test_bits_not_match" has unsupported operation: builtin.unregistered: llvm.select - 1: "neg_test_icmp_non_equality" 4: "neg_test_icmp_non_equality" has unsupported operation after optimization: builtin.unregistered: llvm.icmp -4: "neg_test_icmp_non_equality" has unsupported operation after optimization: builtin.unregistered: llvm.select - 1: "neg_test_select_non_zero_constant" 4: "neg_test_select_non_zero_constant" has unsupported operation: builtin.unregistered: llvm.icmp -4: "neg_test_select_non_zero_constant" has unsupported operation: builtin.unregistered: llvm.select - 1: "neg_test_icmp_non_zero_constant" 4: "neg_test_icmp_non_zero_constant" has unsupported operation: builtin.unregistered: llvm.icmp -4: "neg_test_icmp_non_zero_constant" has unsupported operation: builtin.unregistered: llvm.select - diff --git a/SSA/Projects/InstCombine/tests/logs/select-icmp-and.txt b/SSA/Projects/InstCombine/tests/logs/select-icmp-and.txt index cf9b637fe..2b76d3fa0 100644 --- a/SSA/Projects/InstCombine/tests/logs/select-icmp-and.txt +++ b/SSA/Projects/InstCombine/tests/logs/select-icmp-and.txt @@ -1,178 +1,108 @@ 1: "test5" 4: "test5" has unsupported operation after optimization: builtin.unregistered: llvm.icmp -4: "test5" has unsupported operation after optimization: builtin.unregistered: llvm.select - 1: "test6" 4: "test6" has unsupported operation after optimization: builtin.unregistered: llvm.icmp -4: "test6" has unsupported operation after optimization: builtin.unregistered: llvm.select - 1: "test35" 4: "test35" has unsupported operation: builtin.unregistered: llvm.icmp -4: "test35" has unsupported operation: builtin.unregistered: llvm.select - 1: "test35vec" 4: "test35vec" has unsupported operation: builtin.unregistered: llvm.icmp -4: "test35vec" has unsupported operation: builtin.unregistered: llvm.select - 1: "test35_with_trunc" 4: "test35_with_trunc" has unsupported operation: builtin.unregistered: llvm.icmp -4: "test35_with_trunc" has unsupported operation: builtin.unregistered: llvm.select - 1: "test36" 4: "test36" has unsupported operation: builtin.unregistered: llvm.icmp -4: "test36" has unsupported operation: builtin.unregistered: llvm.select - 1: "test36vec" 4: "test36vec" has unsupported operation: builtin.unregistered: llvm.icmp -4: "test36vec" has unsupported operation: builtin.unregistered: llvm.select - 1: "test37" 4: "test37" has unsupported operation: builtin.unregistered: llvm.icmp -4: "test37" has unsupported operation: builtin.unregistered: llvm.select - 1: "test37vec" 4: "test37vec" has unsupported operation: builtin.unregistered: llvm.icmp -4: "test37vec" has unsupported operation: builtin.unregistered: llvm.select - 1: "test65" 4: "test65" has unsupported operation: builtin.unregistered: llvm.icmp -4: "test65" has unsupported operation: builtin.unregistered: llvm.select - 1: "test65vec" 4: "test65vec" has unsupported operation: builtin.unregistered: llvm.icmp -4: "test65vec" has unsupported operation: builtin.unregistered: llvm.select - 1: "test66" 4: "test66" has unsupported operation: builtin.unregistered: llvm.icmp -4: "test66" has unsupported operation: builtin.unregistered: llvm.select - 1: "test66vec" 4: "test66vec" has unsupported operation: builtin.unregistered: llvm.icmp -4: "test66vec" has unsupported operation: builtin.unregistered: llvm.select - 1: "test66vec_scalar_and" 4: "test66vec_scalar_and" has unsupported operation: builtin.unregistered: llvm.icmp -4: "test66vec_scalar_and" has unsupported operation: builtin.unregistered: llvm.select - 1: "test67" 4: "test67" has unsupported operation: builtin.unregistered: llvm.icmp -4: "test67" has unsupported operation: builtin.unregistered: llvm.select - 1: "test67vec" 4: "test67vec" has unsupported operation: builtin.unregistered: llvm.icmp -4: "test67vec" has unsupported operation: builtin.unregistered: llvm.select - 1: "test71" 4: "test71" has unsupported operation: builtin.unregistered: llvm.icmp -4: "test71" has unsupported operation: builtin.unregistered: llvm.select - 1: "test71vec" 4: "test71vec" has unsupported operation: builtin.unregistered: llvm.icmp -4: "test71vec" has unsupported operation: builtin.unregistered: llvm.select - 1: "test72" 4: "test72" has unsupported operation: builtin.unregistered: llvm.icmp -4: "test72" has unsupported operation: builtin.unregistered: llvm.select - 1: "test72vec" 4: "test72vec" has unsupported operation: builtin.unregistered: llvm.icmp -4: "test72vec" has unsupported operation: builtin.unregistered: llvm.select - 1: "test73" 4: "test73" has unsupported operation: builtin.unregistered: llvm.icmp -4: "test73" has unsupported operation: builtin.unregistered: llvm.select - 1: "test73vec" 4: "test73vec" has unsupported operation: builtin.unregistered: llvm.icmp -4: "test73vec" has unsupported operation: builtin.unregistered: llvm.select - 1: "test74" 4: "test74" has unsupported operation: builtin.unregistered: llvm.icmp -4: "test74" has unsupported operation: builtin.unregistered: llvm.select - 1: "test74vec" 4: "test74vec" has unsupported operation: builtin.unregistered: llvm.icmp -4: "test74vec" has unsupported operation: builtin.unregistered: llvm.select - 1: "test75" 4: "test75" has unsupported operation: builtin.unregistered: llvm.icmp -4: "test75" has unsupported operation: builtin.unregistered: llvm.select - 1: "test15a" 4: "test15a" has unsupported operation after optimization: builtin.unregistered: llvm.icmp -4: "test15a" has unsupported operation after optimization: builtin.unregistered: llvm.select - 1: "test15b" 4: "test15b" has unsupported operation after optimization: builtin.unregistered: llvm.icmp -4: "test15b" has unsupported operation after optimization: builtin.unregistered: llvm.select - 1: "test15c" 4: "test15c" has unsupported operation after optimization: builtin.unregistered: llvm.icmp -4: "test15c" has unsupported operation after optimization: builtin.unregistered: llvm.select - 1: "test15d" 4: "test15d" has unsupported operation after optimization: builtin.unregistered: llvm.icmp -4: "test15d" has unsupported operation after optimization: builtin.unregistered: llvm.select - 1: "test15e" 4: "test15e" has unsupported operation after optimization: builtin.unregistered: llvm.icmp -4: "test15e" has unsupported operation after optimization: builtin.unregistered: llvm.select - 1: "test15f" 4: "test15f" has unsupported operation after optimization: builtin.unregistered: llvm.icmp -4: "test15f" has unsupported operation after optimization: builtin.unregistered: llvm.select - 1: "test15g" 4: "test15g" has unsupported operation after optimization: builtin.unregistered: llvm.icmp -4: "test15g" has unsupported operation after optimization: builtin.unregistered: llvm.select - 1: "test15h" 4: "test15h" has unsupported operation after optimization: builtin.unregistered: llvm.icmp -4: "test15h" has unsupported operation after optimization: builtin.unregistered: llvm.select - 1: "test15i" 4: "test15i" has unsupported operation: builtin.unregistered: llvm.icmp -4: "test15i" has unsupported operation: builtin.unregistered: llvm.select - 1: "test15j" 4: "test15j" has unsupported operation: builtin.unregistered: llvm.icmp -4: "test15j" has unsupported operation: builtin.unregistered: llvm.select - 1: "use1" 5: "use1" is empty @@ -199,78 +129,50 @@ 1: "clear_to_set_decomposebittest" 4: "clear_to_set_decomposebittest" has unsupported operation after optimization: builtin.unregistered: llvm.icmp -4: "clear_to_set_decomposebittest" has unsupported operation after optimization: builtin.unregistered: llvm.select - 1: "clear_to_clear_decomposebittest" 4: "clear_to_clear_decomposebittest" has unsupported operation after optimization: builtin.unregistered: llvm.icmp -4: "clear_to_clear_decomposebittest" has unsupported operation after optimization: builtin.unregistered: llvm.select - 1: "set_to_set_decomposebittest" 4: "set_to_set_decomposebittest" has unsupported operation after optimization: builtin.unregistered: llvm.icmp -4: "set_to_set_decomposebittest" has unsupported operation after optimization: builtin.unregistered: llvm.select - 1: "set_to_clear_decomposebittest" 4: "set_to_clear_decomposebittest" has unsupported operation after optimization: builtin.unregistered: llvm.icmp -4: "set_to_clear_decomposebittest" has unsupported operation after optimization: builtin.unregistered: llvm.select - 1: "clear_to_set_decomposebittest_extra_use" 4: "clear_to_set_decomposebittest_extra_use" has unsupported operation: builtin.unregistered: llvm.icmp -4: "clear_to_set_decomposebittest_extra_use" has unsupported operation: builtin.unregistered: llvm.select - 4: "clear_to_set_decomposebittest_extra_use" has unsupported operation: llvm.call 1: "clear_to_clear_decomposebittest_extra_use" 4: "clear_to_clear_decomposebittest_extra_use" has unsupported operation: builtin.unregistered: llvm.icmp -4: "clear_to_clear_decomposebittest_extra_use" has unsupported operation: builtin.unregistered: llvm.select - 4: "clear_to_clear_decomposebittest_extra_use" has unsupported operation: llvm.call 1: "set_to_set_decomposebittest_extra_use" 4: "set_to_set_decomposebittest_extra_use" has unsupported operation: builtin.unregistered: llvm.icmp -4: "set_to_set_decomposebittest_extra_use" has unsupported operation: builtin.unregistered: llvm.select - 4: "set_to_set_decomposebittest_extra_use" has unsupported operation: llvm.call 1: "set_to_clear_decomposebittest_extra_use" 4: "set_to_clear_decomposebittest_extra_use" has unsupported operation: builtin.unregistered: llvm.icmp -4: "set_to_clear_decomposebittest_extra_use" has unsupported operation: builtin.unregistered: llvm.select - 4: "set_to_clear_decomposebittest_extra_use" has unsupported operation: llvm.call 1: "select_bittest_to_add" 4: "select_bittest_to_add" has unsupported operation after optimization: builtin.unregistered: llvm.icmp -4: "select_bittest_to_add" has unsupported operation after optimization: builtin.unregistered: llvm.select - 1: "select_bittest_to_sub" 4: "select_bittest_to_sub" has unsupported operation after optimization: builtin.unregistered: llvm.icmp -4: "select_bittest_to_sub" has unsupported operation after optimization: builtin.unregistered: llvm.select - 1: "select_bittest_to_shl" 4: "select_bittest_to_shl" has unsupported operation: builtin.unregistered: llvm.icmp -4: "select_bittest_to_shl" has unsupported operation: builtin.unregistered: llvm.select - 1: "select_bittest_to_lshr" 4: "select_bittest_to_lshr" has unsupported operation: builtin.unregistered: llvm.icmp -4: "select_bittest_to_lshr" has unsupported operation: builtin.unregistered: llvm.select - 1: "select_bittest_to_ashr" 4: "select_bittest_to_ashr" has unsupported operation: builtin.unregistered: llvm.icmp -4: "select_bittest_to_ashr" has unsupported operation: builtin.unregistered: llvm.select - 1: "select_bittest_to_shl_negative_test" 4: "select_bittest_to_shl_negative_test" has unsupported operation: builtin.unregistered: llvm.icmp -4: "select_bittest_to_shl_negative_test" has unsupported operation: builtin.unregistered: llvm.select - diff --git a/SSA/Projects/InstCombine/tests/logs/select-imm-canon.txt b/SSA/Projects/InstCombine/tests/logs/select-imm-canon.txt index 25f86d381..f10dbab98 100644 --- a/SSA/Projects/InstCombine/tests/logs/select-imm-canon.txt +++ b/SSA/Projects/InstCombine/tests/logs/select-imm-canon.txt @@ -15,8 +15,6 @@ 4: "thisdoesnotloop" has unsupported operation: builtin.unregistered: llvm.trunc -4: "thisdoesnotloop" has unsupported operation: builtin.unregistered: llvm.select - 1: "original" 4: "original" has unsupported operation: builtin.unregistered: llvm.intr.smax diff --git a/SSA/Projects/InstCombine/tests/logs/select-load.txt b/SSA/Projects/InstCombine/tests/logs/select-load.txt index 6e1cf8dda..3bf9d5b16 100644 --- a/SSA/Projects/InstCombine/tests/logs/select-load.txt +++ b/SSA/Projects/InstCombine/tests/logs/select-load.txt @@ -7,15 +7,11 @@ 4: "test_plain" has unsupported operation: llvm.load -4: "test_plain" has unsupported operation: builtin.unregistered: llvm.select - 1: "test_asan" 4: "test_asan" has unsupported operation: llvm.alloca 4: "test_asan" has unsupported operation: llvm.alloca -4: "test_asan" has unsupported operation: builtin.unregistered: llvm.select - 4: "test_asan" has unsupported operation: llvm.load 1: "test_hwasan" @@ -23,8 +19,6 @@ 4: "test_hwasan" has unsupported operation: llvm.alloca -4: "test_hwasan" has unsupported operation: builtin.unregistered: llvm.select - 4: "test_hwasan" has unsupported operation: llvm.load 1: "test_tsan" @@ -32,8 +26,6 @@ 4: "test_tsan" has unsupported operation: llvm.alloca -4: "test_tsan" has unsupported operation: builtin.unregistered: llvm.select - 4: "test_tsan" has unsupported operation: llvm.load 1: "test_msan" @@ -45,5 +37,3 @@ 4: "test_msan" has unsupported operation: llvm.load -4: "test_msan" has unsupported operation: builtin.unregistered: llvm.select - diff --git a/SSA/Projects/InstCombine/tests/logs/select-masked_load.txt b/SSA/Projects/InstCombine/tests/logs/select-masked_load.txt index ec3a82953..56d5f093e 100644 --- a/SSA/Projects/InstCombine/tests/logs/select-masked_load.txt +++ b/SSA/Projects/InstCombine/tests/logs/select-masked_load.txt @@ -7,8 +7,6 @@ 1: "masked_load_and_zero_inactive_3" 4: "masked_load_and_zero_inactive_3" has unsupported operation: builtin.unregistered: llvm.intr.masked.load -4: "masked_load_and_zero_inactive_3" has unsupported operation: builtin.unregistered: llvm.select - 1: "masked_load_and_zero_inactive_4" 4: "masked_load_and_zero_inactive_4" has unsupported operation: builtin.unregistered: llvm.intr.masked.load @@ -18,13 +16,9 @@ 1: "masked_load_and_zero_inactive_6" 4: "masked_load_and_zero_inactive_6" has unsupported operation: builtin.unregistered: llvm.intr.masked.load -4: "masked_load_and_zero_inactive_6" has unsupported operation: builtin.unregistered: llvm.select - 1: "masked_load_and_zero_inactive_7" 4: "masked_load_and_zero_inactive_7" has unsupported operation: builtin.unregistered: llvm.intr.masked.load -4: "masked_load_and_zero_inactive_7" has unsupported operation: builtin.unregistered: llvm.select - 1: "masked_load_and_zero_inactive_8" 4: "masked_load_and_zero_inactive_8" has unsupported operation: builtin.unregistered: llvm.intr.masked.load @@ -33,5 +27,3 @@ 4: "masked_load_and_scalar_select_cond" has unsupported operation: builtin.unregistered: llvm.intr.masked.load -4: "masked_load_and_scalar_select_cond" has unsupported operation: builtin.unregistered: llvm.select - diff --git a/SSA/Projects/InstCombine/tests/logs/select-min-max.txt b/SSA/Projects/InstCombine/tests/logs/select-min-max.txt index 5d096e18c..61548b0ec 100644 --- a/SSA/Projects/InstCombine/tests/logs/select-min-max.txt +++ b/SSA/Projects/InstCombine/tests/logs/select-min-max.txt @@ -1,11 +1,7 @@ 1: "smin_smin_common_op_00" -4: "smin_smin_common_op_00" has unsupported operation: builtin.unregistered: llvm.select - 4: "smin_smin_common_op_00" has unsupported operation: builtin.unregistered: llvm.intr.smin 1: "smax_smax_common_op_01" -4: "smax_smax_common_op_01" has unsupported operation: builtin.unregistered: llvm.select - 4: "smax_smax_common_op_01" has unsupported operation: builtin.unregistered: llvm.intr.smax 1: "umin_umin_common_op_10" @@ -13,8 +9,6 @@ 4: "umin_umin_common_op_10" has unsupported operation: llvm.store -4: "umin_umin_common_op_10" has unsupported operation: builtin.unregistered: llvm.select - 4: "umin_umin_common_op_10" has unsupported operation: builtin.unregistered: llvm.intr.umin 1: "umax_umax_common_op_11" @@ -22,8 +16,6 @@ 4: "umax_umax_common_op_11" has unsupported operation: llvm.store -4: "umax_umax_common_op_11" has unsupported operation: builtin.unregistered: llvm.select - 4: "umax_umax_common_op_11" has unsupported operation: builtin.unregistered: llvm.intr.umax 1: "smin_umin_common_op_11" @@ -31,15 +23,11 @@ 4: "smin_umin_common_op_11" has unsupported operation: builtin.unregistered: llvm.intr.umin -4: "smin_umin_common_op_11" has unsupported operation: builtin.unregistered: llvm.select - 1: "smin_smin_no_common_op" 4: "smin_smin_no_common_op" has unsupported operation: builtin.unregistered: llvm.intr.smin 4: "smin_smin_no_common_op" has unsupported operation: builtin.unregistered: llvm.intr.smin -4: "smin_smin_no_common_op" has unsupported operation: builtin.unregistered: llvm.select - 1: "umin_umin_common_op_10_uses" 4: "umin_umin_common_op_10_uses" has unsupported operation: builtin.unregistered: llvm.intr.umin @@ -49,40 +37,30 @@ 4: "umin_umin_common_op_10_uses" has unsupported operation: llvm.store -4: "umin_umin_common_op_10_uses" has unsupported operation: builtin.unregistered: llvm.select - 1: "smin_select_const_const" -4: "smin_select_const_const" has unsupported operation: builtin.unregistered: llvm.select +4: "smin_select_const_const" has unsupported operation after optimization: builtin.unregistered: llvm.intr.smin 1: "smax_select_const_const" -4: "smax_select_const_const" has unsupported operation: builtin.unregistered: llvm.select +8: "smax_select_const_const" contains vectors which are unsupported 1: "umin_select_const_const" -4: "umin_select_const_const" has unsupported operation: builtin.unregistered: llvm.select +4: "umin_select_const_const" has unsupported operation after optimization: builtin.unregistered: llvm.intr.umin 1: "umax_select_const_const" -4: "umax_select_const_const" has unsupported operation: builtin.unregistered: llvm.select +8: "umax_select_const_const" contains vectors which are unsupported 1: "smin_select_const" 4: "smin_select_const" has unsupported operation: builtin.unregistered: llvm.intr.smin -4: "smin_select_const" has unsupported operation: builtin.unregistered: llvm.select - 1: "smax_select_const" 4: "smax_select_const" has unsupported operation: builtin.unregistered: llvm.intr.smax -4: "smax_select_const" has unsupported operation: builtin.unregistered: llvm.select - 1: "umin_select_const" 4: "umin_select_const" has unsupported operation: builtin.unregistered: llvm.intr.umin -4: "umin_select_const" has unsupported operation: builtin.unregistered: llvm.select - 1: "umax_select_const" 4: "umax_select_const" has unsupported operation: builtin.unregistered: llvm.intr.umax -4: "umax_select_const" has unsupported operation: builtin.unregistered: llvm.select - 1: "smax_smin" 4: "smax_smin" has unsupported operation: builtin.unregistered: llvm.icmp @@ -91,35 +69,21 @@ 1: "smin_smax" 4: "smin_smax" has unsupported operation: builtin.unregistered: llvm.icmp -4: "smin_smax" has unsupported operation: builtin.unregistered: llvm.select - 1: "umax_umin" 4: "umax_umin" has unsupported operation: builtin.unregistered: llvm.icmp -4: "umax_umin" has unsupported operation: builtin.unregistered: llvm.select - 1: "umin_umax" 4: "umin_umax" has unsupported operation: builtin.unregistered: llvm.icmp -4: "umin_umax" has unsupported operation: builtin.unregistered: llvm.select - 1: "not_smax" 4: "not_smax" has unsupported operation: builtin.unregistered: llvm.icmp -4: "not_smax" has unsupported operation: builtin.unregistered: llvm.select - 1: "not_smax_swap" 4: "not_smax_swap" has unsupported operation: builtin.unregistered: llvm.icmp -4: "not_smax_swap" has unsupported operation: builtin.unregistered: llvm.select - 1: "not_smin" 4: "not_smin" has unsupported operation: builtin.unregistered: llvm.icmp -4: "not_smin" has unsupported operation: builtin.unregistered: llvm.select - 1: "not_smin_swap" 4: "not_smin_swap" has unsupported operation: builtin.unregistered: llvm.icmp -4: "not_smin_swap" has unsupported operation: builtin.unregistered: llvm.select - diff --git a/SSA/Projects/InstCombine/tests/logs/select-obo-peo-ops.txt b/SSA/Projects/InstCombine/tests/logs/select-obo-peo-ops.txt index e9073270c..4f528c004 100644 --- a/SSA/Projects/InstCombine/tests/logs/select-obo-peo-ops.txt +++ b/SSA/Projects/InstCombine/tests/logs/select-obo-peo-ops.txt @@ -25,23 +25,15 @@ 1: "test_shl_nuw_nsw__nsw_is_safe" 4: "test_shl_nuw_nsw__nsw_is_safe" has unsupported operation after optimization: builtin.unregistered: llvm.icmp -4: "test_shl_nuw_nsw__nsw_is_safe" has unsupported operation after optimization: builtin.unregistered: llvm.select - 1: "test_shl_nuw__nsw_is_safe" 4: "test_shl_nuw__nsw_is_safe" has unsupported operation after optimization: builtin.unregistered: llvm.icmp -4: "test_shl_nuw__nsw_is_safe" has unsupported operation after optimization: builtin.unregistered: llvm.select - 1: "test_shl_nsw__nsw_is_safe" 4: "test_shl_nsw__nsw_is_safe" has unsupported operation after optimization: builtin.unregistered: llvm.icmp -4: "test_shl_nsw__nsw_is_safe" has unsupported operation after optimization: builtin.unregistered: llvm.select - 1: "test_shl__nsw_is_safe" 4: "test_shl__nsw_is_safe" has unsupported operation after optimization: builtin.unregistered: llvm.icmp -4: "test_shl__nsw_is_safe" has unsupported operation after optimization: builtin.unregistered: llvm.select - 1: "test_shl_nuw_nsw__none_are_safe" 4: "test_shl_nuw_nsw__none_are_safe" has unsupported operation: builtin.unregistered: llvm.zext @@ -81,240 +73,144 @@ 1: "test_add_nuw_nsw__all_are_safe" 4: "test_add_nuw_nsw__all_are_safe" has unsupported operation after optimization: builtin.unregistered: llvm.icmp -4: "test_add_nuw_nsw__all_are_safe" has unsupported operation after optimization: builtin.unregistered: llvm.select - 1: "test_add_nuw__all_are_safe" 4: "test_add_nuw__all_are_safe" has unsupported operation after optimization: builtin.unregistered: llvm.icmp -4: "test_add_nuw__all_are_safe" has unsupported operation after optimization: builtin.unregistered: llvm.select - 1: "test_add_nsw__all_are_safe" 4: "test_add_nsw__all_are_safe" has unsupported operation after optimization: builtin.unregistered: llvm.icmp -4: "test_add_nsw__all_are_safe" has unsupported operation after optimization: builtin.unregistered: llvm.select - 1: "test_add__all_are_safe" 4: "test_add__all_are_safe" has unsupported operation after optimization: builtin.unregistered: llvm.icmp -4: "test_add__all_are_safe" has unsupported operation after optimization: builtin.unregistered: llvm.select - 1: "test_add_nuw_nsw__nuw_is_safe" 4: "test_add_nuw_nsw__nuw_is_safe" has unsupported operation after optimization: builtin.unregistered: llvm.icmp -4: "test_add_nuw_nsw__nuw_is_safe" has unsupported operation after optimization: builtin.unregistered: llvm.select - 1: "test_add_nuw__nuw_is_safe" 4: "test_add_nuw__nuw_is_safe" has unsupported operation after optimization: builtin.unregistered: llvm.icmp -4: "test_add_nuw__nuw_is_safe" has unsupported operation after optimization: builtin.unregistered: llvm.select - 1: "test_add_nsw__nuw_is_safe" 4: "test_add_nsw__nuw_is_safe" has unsupported operation after optimization: builtin.unregistered: llvm.icmp -4: "test_add_nsw__nuw_is_safe" has unsupported operation after optimization: builtin.unregistered: llvm.select - 1: "test_add__nuw_is_safe" 4: "test_add__nuw_is_safe" has unsupported operation after optimization: builtin.unregistered: llvm.icmp -4: "test_add__nuw_is_safe" has unsupported operation after optimization: builtin.unregistered: llvm.select - 1: "test_add_nuw_nsw__nsw_is_safe" 4: "test_add_nuw_nsw__nsw_is_safe" has unsupported operation after optimization: builtin.unregistered: llvm.icmp -4: "test_add_nuw_nsw__nsw_is_safe" has unsupported operation after optimization: builtin.unregistered: llvm.select - 1: "test_add_nuw__nsw_is_safe" 4: "test_add_nuw__nsw_is_safe" has unsupported operation after optimization: builtin.unregistered: llvm.icmp -4: "test_add_nuw__nsw_is_safe" has unsupported operation after optimization: builtin.unregistered: llvm.select - 1: "test_add_nsw__nsw_is_safe" 4: "test_add_nsw__nsw_is_safe" has unsupported operation after optimization: builtin.unregistered: llvm.icmp -4: "test_add_nsw__nsw_is_safe" has unsupported operation after optimization: builtin.unregistered: llvm.select - 1: "test_add__nsw_is_safe" 4: "test_add__nsw_is_safe" has unsupported operation after optimization: builtin.unregistered: llvm.icmp -4: "test_add__nsw_is_safe" has unsupported operation after optimization: builtin.unregistered: llvm.select - 1: "test_add_nuw_nsw__none_are_safe" 4: "test_add_nuw_nsw__none_are_safe" has unsupported operation after optimization: builtin.unregistered: llvm.icmp -4: "test_add_nuw_nsw__none_are_safe" has unsupported operation after optimization: builtin.unregistered: llvm.select - 1: "test_add_nuw__none_are_safe" 4: "test_add_nuw__none_are_safe" has unsupported operation after optimization: builtin.unregistered: llvm.icmp -4: "test_add_nuw__none_are_safe" has unsupported operation after optimization: builtin.unregistered: llvm.select - 1: "test_add_nsw__none_are_safe" 4: "test_add_nsw__none_are_safe" has unsupported operation after optimization: builtin.unregistered: llvm.icmp -4: "test_add_nsw__none_are_safe" has unsupported operation after optimization: builtin.unregistered: llvm.select - 1: "test_add__none_are_safe" 4: "test_add__none_are_safe" has unsupported operation after optimization: builtin.unregistered: llvm.icmp -4: "test_add__none_are_safe" has unsupported operation after optimization: builtin.unregistered: llvm.select - 1: "test_sub_nuw_nsw__all_are_safe" 4: "test_sub_nuw_nsw__all_are_safe" has unsupported operation after optimization: builtin.unregistered: llvm.icmp -4: "test_sub_nuw_nsw__all_are_safe" has unsupported operation after optimization: builtin.unregistered: llvm.select - 1: "test_sub_nuw__all_are_safe" 4: "test_sub_nuw__all_are_safe" has unsupported operation after optimization: builtin.unregistered: llvm.icmp -4: "test_sub_nuw__all_are_safe" has unsupported operation after optimization: builtin.unregistered: llvm.select - 1: "test_sub_nsw__all_are_safe" 4: "test_sub_nsw__all_are_safe" has unsupported operation after optimization: builtin.unregistered: llvm.icmp -4: "test_sub_nsw__all_are_safe" has unsupported operation after optimization: builtin.unregistered: llvm.select - 1: "test_sub__all_are_safe" 4: "test_sub__all_are_safe" has unsupported operation after optimization: builtin.unregistered: llvm.icmp -4: "test_sub__all_are_safe" has unsupported operation after optimization: builtin.unregistered: llvm.select - 1: "test_sub_nuw_nsw__nuw_is_safe" 4: "test_sub_nuw_nsw__nuw_is_safe" has unsupported operation after optimization: builtin.unregistered: llvm.icmp -4: "test_sub_nuw_nsw__nuw_is_safe" has unsupported operation after optimization: builtin.unregistered: llvm.select - 1: "test_sub_nuw__nuw_is_safe" 4: "test_sub_nuw__nuw_is_safe" has unsupported operation after optimization: builtin.unregistered: llvm.icmp -4: "test_sub_nuw__nuw_is_safe" has unsupported operation after optimization: builtin.unregistered: llvm.select - 1: "test_sub_nsw__nuw_is_safe" 4: "test_sub_nsw__nuw_is_safe" has unsupported operation after optimization: builtin.unregistered: llvm.icmp -4: "test_sub_nsw__nuw_is_safe" has unsupported operation after optimization: builtin.unregistered: llvm.select - 1: "test_sub__nuw_is_safe" 4: "test_sub__nuw_is_safe" has unsupported operation after optimization: builtin.unregistered: llvm.icmp -4: "test_sub__nuw_is_safe" has unsupported operation after optimization: builtin.unregistered: llvm.select - 1: "test_sub_nuw_nsw__nsw_is_safe" 4: "test_sub_nuw_nsw__nsw_is_safe" has unsupported operation after optimization: builtin.unregistered: llvm.icmp -4: "test_sub_nuw_nsw__nsw_is_safe" has unsupported operation after optimization: builtin.unregistered: llvm.select - 1: "test_sub_nuw__nsw_is_safe" 4: "test_sub_nuw__nsw_is_safe" has unsupported operation after optimization: builtin.unregistered: llvm.icmp -4: "test_sub_nuw__nsw_is_safe" has unsupported operation after optimization: builtin.unregistered: llvm.select - 1: "test_sub_nsw__nsw_is_safe" 4: "test_sub_nsw__nsw_is_safe" has unsupported operation after optimization: builtin.unregistered: llvm.icmp -4: "test_sub_nsw__nsw_is_safe" has unsupported operation after optimization: builtin.unregistered: llvm.select - 1: "test_sub__nsw_is_safe" 4: "test_sub__nsw_is_safe" has unsupported operation after optimization: builtin.unregistered: llvm.icmp -4: "test_sub__nsw_is_safe" has unsupported operation after optimization: builtin.unregistered: llvm.select - 1: "test_sub_nuw_nsw__none_are_safe" 4: "test_sub_nuw_nsw__none_are_safe" has unsupported operation after optimization: builtin.unregistered: llvm.icmp -4: "test_sub_nuw_nsw__none_are_safe" has unsupported operation after optimization: builtin.unregistered: llvm.select - 1: "test_sub_nuw__none_are_safe" 4: "test_sub_nuw__none_are_safe" has unsupported operation after optimization: builtin.unregistered: llvm.icmp -4: "test_sub_nuw__none_are_safe" has unsupported operation after optimization: builtin.unregistered: llvm.select - 1: "test_sub_nsw__none_are_safe" 4: "test_sub_nsw__none_are_safe" has unsupported operation after optimization: builtin.unregistered: llvm.icmp -4: "test_sub_nsw__none_are_safe" has unsupported operation after optimization: builtin.unregistered: llvm.select - 1: "test_sub__none_are_safe" 4: "test_sub__none_are_safe" has unsupported operation after optimization: builtin.unregistered: llvm.icmp -4: "test_sub__none_are_safe" has unsupported operation after optimization: builtin.unregistered: llvm.select - 1: "test_mul_nuw_nsw__all_are_safe" 4: "test_mul_nuw_nsw__all_are_safe" has unsupported operation after optimization: builtin.unregistered: llvm.icmp -4: "test_mul_nuw_nsw__all_are_safe" has unsupported operation after optimization: builtin.unregistered: llvm.select - 1: "test_mul_nuw__all_are_safe" 4: "test_mul_nuw__all_are_safe" has unsupported operation after optimization: builtin.unregistered: llvm.icmp -4: "test_mul_nuw__all_are_safe" has unsupported operation after optimization: builtin.unregistered: llvm.select - 1: "test_mul_nsw__all_are_safe" 4: "test_mul_nsw__all_are_safe" has unsupported operation after optimization: builtin.unregistered: llvm.icmp -4: "test_mul_nsw__all_are_safe" has unsupported operation after optimization: builtin.unregistered: llvm.select - 1: "test_mul__all_are_safe" 4: "test_mul__all_are_safe" has unsupported operation after optimization: builtin.unregistered: llvm.icmp -4: "test_mul__all_are_safe" has unsupported operation after optimization: builtin.unregistered: llvm.select - 1: "test_mul_nuw_nsw__nuw_is_safe" 4: "test_mul_nuw_nsw__nuw_is_safe" has unsupported operation after optimization: builtin.unregistered: llvm.icmp -4: "test_mul_nuw_nsw__nuw_is_safe" has unsupported operation after optimization: builtin.unregistered: llvm.select - 1: "test_mul_nuw__nuw_is_safe" 4: "test_mul_nuw__nuw_is_safe" has unsupported operation after optimization: builtin.unregistered: llvm.icmp -4: "test_mul_nuw__nuw_is_safe" has unsupported operation after optimization: builtin.unregistered: llvm.select - 1: "test_mul_nsw__nuw_is_safe" 4: "test_mul_nsw__nuw_is_safe" has unsupported operation after optimization: builtin.unregistered: llvm.icmp -4: "test_mul_nsw__nuw_is_safe" has unsupported operation after optimization: builtin.unregistered: llvm.select - 1: "test_mul__nuw_is_safe" 4: "test_mul__nuw_is_safe" has unsupported operation after optimization: builtin.unregistered: llvm.icmp -4: "test_mul__nuw_is_safe" has unsupported operation after optimization: builtin.unregistered: llvm.select - 1: "test_mul_nuw_nsw__nsw_is_safe" 4: "test_mul_nuw_nsw__nsw_is_safe" has unsupported operation after optimization: builtin.unregistered: llvm.icmp -4: "test_mul_nuw_nsw__nsw_is_safe" has unsupported operation after optimization: builtin.unregistered: llvm.select - 1: "test_mul_nuw__nsw_is_safe" 4: "test_mul_nuw__nsw_is_safe" has unsupported operation after optimization: builtin.unregistered: llvm.icmp -4: "test_mul_nuw__nsw_is_safe" has unsupported operation after optimization: builtin.unregistered: llvm.select - 1: "test_mul_nsw__nsw_is_safe" 4: "test_mul_nsw__nsw_is_safe" has unsupported operation after optimization: builtin.unregistered: llvm.icmp -4: "test_mul_nsw__nsw_is_safe" has unsupported operation after optimization: builtin.unregistered: llvm.select - 1: "test_mul__nsw_is_safe" 4: "test_mul__nsw_is_safe" has unsupported operation after optimization: builtin.unregistered: llvm.icmp -4: "test_mul__nsw_is_safe" has unsupported operation after optimization: builtin.unregistered: llvm.select - 1: "test_mul_nuw_nsw__none_are_safe" 4: "test_mul_nuw_nsw__none_are_safe" has unsupported operation after optimization: builtin.unregistered: llvm.icmp -4: "test_mul_nuw_nsw__none_are_safe" has unsupported operation after optimization: builtin.unregistered: llvm.select - 1: "test_mul_nuw__none_are_safe" 4: "test_mul_nuw__none_are_safe" has unsupported operation after optimization: builtin.unregistered: llvm.icmp -4: "test_mul_nuw__none_are_safe" has unsupported operation after optimization: builtin.unregistered: llvm.select - 1: "test_mul_nsw__none_are_safe" 4: "test_mul_nsw__none_are_safe" has unsupported operation after optimization: builtin.unregistered: llvm.icmp -4: "test_mul_nsw__none_are_safe" has unsupported operation after optimization: builtin.unregistered: llvm.select - 1: "test_mul__none_are_safe" 4: "test_mul__none_are_safe" has unsupported operation after optimization: builtin.unregistered: llvm.icmp -4: "test_mul__none_are_safe" has unsupported operation after optimization: builtin.unregistered: llvm.select - diff --git a/SSA/Projects/InstCombine/tests/logs/select-of-bittest.txt b/SSA/Projects/InstCombine/tests/logs/select-of-bittest.txt index 468f4c8d6..298080e63 100644 --- a/SSA/Projects/InstCombine/tests/logs/select-of-bittest.txt +++ b/SSA/Projects/InstCombine/tests/logs/select-of-bittest.txt @@ -126,18 +126,12 @@ 1: "f_var2" 4: "f_var2" has unsupported operation: builtin.unregistered: llvm.icmp -4: "f_var2" has unsupported operation: builtin.unregistered: llvm.select - 1: "f_var2_splatvec" 4: "f_var2_splatvec" has unsupported operation: builtin.unregistered: llvm.icmp -4: "f_var2_splatvec" has unsupported operation: builtin.unregistered: llvm.select - 1: "f_var2_vec" 4: "f_var2_vec" has unsupported operation: builtin.unregistered: llvm.icmp -4: "f_var2_vec" has unsupported operation: builtin.unregistered: llvm.select - 1: "f_var2_vec_poison" 4: "f_var2_vec_poison" has unsupported operation: builtin.unregistered: llvm.mlir.poison @@ -159,23 +153,15 @@ 4: "f_var2_vec_poison" has unsupported operation: builtin.unregistered: llvm.icmp -4: "f_var2_vec_poison" has unsupported operation: builtin.unregistered: llvm.select - 1: "f_var3" 4: "f_var3" has unsupported operation: builtin.unregistered: llvm.icmp -4: "f_var3" has unsupported operation: builtin.unregistered: llvm.select - 1: "f_var3_commutative_and" 4: "f_var3_commutative_and" has unsupported operation: builtin.unregistered: llvm.icmp -4: "f_var3_commutative_and" has unsupported operation: builtin.unregistered: llvm.select - 1: "f_var3_splatvec" 4: "f_var3_splatvec" has unsupported operation: builtin.unregistered: llvm.icmp -4: "f_var3_splatvec" has unsupported operation: builtin.unregistered: llvm.select - 1: "f_var3_vec_poison" 4: "f_var3_vec_poison" has unsupported operation: builtin.unregistered: llvm.mlir.poison @@ -197,8 +183,6 @@ 4: "f_var3_vec_poison" has unsupported operation: builtin.unregistered: llvm.icmp -4: "f_var3_vec_poison" has unsupported operation: builtin.unregistered: llvm.select - 1: "use32" 5: "use32" is empty @@ -208,8 +192,6 @@ 1: "n_var0_oneuse" 4: "n_var0_oneuse" has unsupported operation: builtin.unregistered: llvm.icmp -4: "n_var0_oneuse" has unsupported operation: builtin.unregistered: llvm.select - 4: "n_var0_oneuse" has unsupported operation: llvm.call 4: "n_var0_oneuse" has unsupported operation: llvm.call @@ -221,8 +203,6 @@ 1: "n_var1_oneuse" 4: "n_var1_oneuse" has unsupported operation: builtin.unregistered: llvm.icmp -4: "n_var1_oneuse" has unsupported operation: builtin.unregistered: llvm.select - 4: "n_var1_oneuse" has unsupported operation: llvm.call 4: "n_var1_oneuse" has unsupported operation: llvm.call @@ -232,45 +212,27 @@ 1: "n0" 4: "n0" has unsupported operation: builtin.unregistered: llvm.icmp -4: "n0" has unsupported operation: builtin.unregistered: llvm.select - 1: "n1" 4: "n1" has unsupported operation: builtin.unregistered: llvm.icmp -4: "n1" has unsupported operation: builtin.unregistered: llvm.select - 1: "n2" 4: "n2" has unsupported operation: builtin.unregistered: llvm.icmp -4: "n2" has unsupported operation: builtin.unregistered: llvm.select - 1: "n3" 4: "n3" has unsupported operation: builtin.unregistered: llvm.icmp -4: "n3" has unsupported operation: builtin.unregistered: llvm.select - 1: "n4" 4: "n4" has unsupported operation: builtin.unregistered: llvm.icmp -4: "n4" has unsupported operation: builtin.unregistered: llvm.select - 1: "n5" 4: "n5" has unsupported operation after optimization: builtin.unregistered: llvm.icmp -4: "n5" has unsupported operation after optimization: builtin.unregistered: llvm.select - 1: "n6" 4: "n6" has unsupported operation: builtin.unregistered: llvm.icmp -4: "n6" has unsupported operation: builtin.unregistered: llvm.select - 1: "n7" 4: "n7" has unsupported operation: builtin.unregistered: llvm.icmp -4: "n7" has unsupported operation: builtin.unregistered: llvm.select - 1: "n8" 4: "n8" has unsupported operation: builtin.unregistered: llvm.icmp -4: "n8" has unsupported operation: builtin.unregistered: llvm.select - diff --git a/SSA/Projects/InstCombine/tests/logs/select-of-symmetric-selects.txt b/SSA/Projects/InstCombine/tests/logs/select-of-symmetric-selects.txt index 26a20c453..ea44c6a71 100644 --- a/SSA/Projects/InstCombine/tests/logs/select-of-symmetric-selects.txt +++ b/SSA/Projects/InstCombine/tests/logs/select-of-symmetric-selects.txt @@ -1,54 +1,44 @@ 1: "select_of_symmetric_selects" -4: "select_of_symmetric_selects" has unsupported operation: builtin.unregistered: llvm.select +2: llvm.func +2: builtin.unregistered: llvm.select +2: builtin.unregistered: llvm.select +2: builtin.unregistered: llvm.select +2: llvm.return 1: "select_of_symmetric_selects_negative1" -4: "select_of_symmetric_selects_negative1" has unsupported operation: builtin.unregistered: llvm.select - -4: "select_of_symmetric_selects_negative1" has unsupported operation: builtin.unregistered: llvm.select +2: llvm.func +2: builtin.unregistered: llvm.select +2: builtin.unregistered: llvm.select +2: builtin.unregistered: llvm.select +2: llvm.return 1: "select_of_symmetric_selects_negative2" -4: "select_of_symmetric_selects_negative2" has unsupported operation: builtin.unregistered: llvm.select - -4: "select_of_symmetric_selects_negative2" has unsupported operation: builtin.unregistered: llvm.select - -4: "select_of_symmetric_selects_negative2" has unsupported operation: builtin.unregistered: llvm.select +7: "select_of_symmetric_selects_negative2" is unchanged by InstCombine 1: "use" 5: "use" is empty 1: "select_of_symmetric_selects_multi_use1" -4: "select_of_symmetric_selects_multi_use1" has unsupported operation: builtin.unregistered: llvm.select - -4: "select_of_symmetric_selects_multi_use1" has unsupported operation: builtin.unregistered: llvm.select - 4: "select_of_symmetric_selects_multi_use1" has unsupported operation: llvm.call -4: "select_of_symmetric_selects_multi_use1" has unsupported operation: builtin.unregistered: llvm.select - 1: "select_of_symmetric_selects_multi_use2" -4: "select_of_symmetric_selects_multi_use2" has unsupported operation: builtin.unregistered: llvm.select - 4: "select_of_symmetric_selects_multi_use2" has unsupported operation: llvm.call -4: "select_of_symmetric_selects_multi_use2" has unsupported operation: builtin.unregistered: llvm.select - 4: "select_of_symmetric_selects_multi_use2" has unsupported operation: llvm.call -4: "select_of_symmetric_selects_multi_use2" has unsupported operation: builtin.unregistered: llvm.select - 1: "select_of_symmetric_selects_commuted" -4: "select_of_symmetric_selects_commuted" has unsupported operation: builtin.unregistered: llvm.select +2: llvm.func +2: builtin.unregistered: llvm.select +2: builtin.unregistered: llvm.select +2: builtin.unregistered: llvm.select +2: llvm.return 1: "select_of_symmetric_selects_vector1" -4: "select_of_symmetric_selects_vector1" has unsupported operation: builtin.unregistered: llvm.select +8: "select_of_symmetric_selects_vector1" contains vectors which are unsupported 1: "select_of_symmetric_selects_vector2" -4: "select_of_symmetric_selects_vector2" has unsupported operation: builtin.unregistered: llvm.select +8: "select_of_symmetric_selects_vector2" contains vectors which are unsupported 1: "select_of_symmetric_selects_vector3" -4: "select_of_symmetric_selects_vector3" has unsupported operation: builtin.unregistered: llvm.select - -4: "select_of_symmetric_selects_vector3" has unsupported operation: builtin.unregistered: llvm.select - -4: "select_of_symmetric_selects_vector3" has unsupported operation: builtin.unregistered: llvm.select +7: "select_of_symmetric_selects_vector3" is unchanged by InstCombine diff --git a/SSA/Projects/InstCombine/tests/logs/select-safe-bool-transforms.txt b/SSA/Projects/InstCombine/tests/logs/select-safe-bool-transforms.txt index 711f0594a..d3705eadf 100644 --- a/SSA/Projects/InstCombine/tests/logs/select-safe-bool-transforms.txt +++ b/SSA/Projects/InstCombine/tests/logs/select-safe-bool-transforms.txt @@ -1,180 +1,360 @@ 1: "land_land_left1" -4: "land_land_left1" has unsupported operation: builtin.unregistered: llvm.select +2: llvm.func +2: llvm.mlir.constant +2: builtin.unregistered: llvm.select +2: builtin.unregistered: llvm.select +2: llvm.return 1: "land_land_left2" -4: "land_land_left2" has unsupported operation: builtin.unregistered: llvm.select +2: llvm.func +2: llvm.mlir.constant +2: builtin.unregistered: llvm.select +2: builtin.unregistered: llvm.select +2: llvm.return 1: "land_band_left1" -4: "land_band_left1" has unsupported operation: builtin.unregistered: llvm.select +2: llvm.func +2: llvm.mlir.constant +2: builtin.unregistered: llvm.select +2: llvm.and +2: llvm.return 1: "land_band_left2" -4: "land_band_left2" has unsupported operation: builtin.unregistered: llvm.select +2: llvm.func +2: llvm.mlir.constant +2: builtin.unregistered: llvm.select +2: llvm.and +2: llvm.return 1: "land_lor_left1" -4: "land_lor_left1" has unsupported operation after optimization: builtin.unregistered: llvm.select - -4: "land_lor_left1" has unsupported operation after optimization: builtin.unregistered: llvm.select +2: llvm.func +2: llvm.mlir.constant +2: llvm.mlir.constant +2: builtin.unregistered: llvm.select +2: builtin.unregistered: llvm.select +2: llvm.return 1: "land_lor_left2" -4: "land_lor_left2" has unsupported operation after optimization: builtin.unregistered: llvm.select - -4: "land_lor_left2" has unsupported operation after optimization: builtin.unregistered: llvm.select +2: llvm.func +2: llvm.mlir.constant +2: llvm.mlir.constant +2: builtin.unregistered: llvm.select +2: builtin.unregistered: llvm.select +2: llvm.return 1: "land_bor_left1" -4: "land_bor_left1" has unsupported operation after optimization: builtin.unregistered: llvm.select +2: llvm.func +2: llvm.mlir.constant +2: builtin.unregistered: llvm.select +2: llvm.or +2: llvm.return 1: "land_bor_left2" -4: "land_bor_left2" has unsupported operation after optimization: builtin.unregistered: llvm.select +2: llvm.func +2: llvm.mlir.constant +2: builtin.unregistered: llvm.select +2: llvm.or +2: llvm.return 1: "band_land_left1" -4: "band_land_left1" has unsupported operation after optimization: builtin.unregistered: llvm.select +2: llvm.func +2: llvm.mlir.constant +2: llvm.and +2: builtin.unregistered: llvm.select +2: llvm.return 1: "band_land_left2" -4: "band_land_left2" has unsupported operation after optimization: builtin.unregistered: llvm.select +2: llvm.func +2: llvm.mlir.constant +2: llvm.and +2: builtin.unregistered: llvm.select +2: llvm.return 1: "band_lor_left1" -4: "band_lor_left1" has unsupported operation after optimization: builtin.unregistered: llvm.select +2: llvm.func +2: llvm.mlir.constant +2: llvm.and +2: builtin.unregistered: llvm.select +2: llvm.return 1: "band_lor_left2" -4: "band_lor_left2" has unsupported operation after optimization: builtin.unregistered: llvm.select +2: llvm.func +2: llvm.mlir.constant +2: llvm.and +2: builtin.unregistered: llvm.select +2: llvm.return 1: "lor_land_left1" -4: "lor_land_left1" has unsupported operation after optimization: builtin.unregistered: llvm.select - -4: "lor_land_left1" has unsupported operation after optimization: builtin.unregistered: llvm.select +2: llvm.func +2: llvm.mlir.constant +2: llvm.mlir.constant +2: builtin.unregistered: llvm.select +2: builtin.unregistered: llvm.select +2: llvm.return 1: "lor_land_left2" -4: "lor_land_left2" has unsupported operation after optimization: builtin.unregistered: llvm.select - -4: "lor_land_left2" has unsupported operation after optimization: builtin.unregistered: llvm.select +2: llvm.func +2: llvm.mlir.constant +2: llvm.mlir.constant +2: builtin.unregistered: llvm.select +2: builtin.unregistered: llvm.select +2: llvm.return 1: "lor_band_left1" -4: "lor_band_left1" has unsupported operation after optimization: builtin.unregistered: llvm.select +2: llvm.func +2: llvm.mlir.constant +2: builtin.unregistered: llvm.select +2: llvm.and +2: llvm.return 1: "lor_band_left2" -4: "lor_band_left2" has unsupported operation after optimization: builtin.unregistered: llvm.select +2: llvm.func +2: llvm.mlir.constant +2: builtin.unregistered: llvm.select +2: llvm.and +2: llvm.return 1: "lor_lor_left1" -4: "lor_lor_left1" has unsupported operation: builtin.unregistered: llvm.select +2: llvm.func +2: llvm.mlir.constant +2: builtin.unregistered: llvm.select +2: builtin.unregistered: llvm.select +2: llvm.return 1: "lor_lor_left2" -4: "lor_lor_left2" has unsupported operation: builtin.unregistered: llvm.select +2: llvm.func +2: llvm.mlir.constant +2: builtin.unregistered: llvm.select +2: builtin.unregistered: llvm.select +2: llvm.return 1: "lor_bor_left1" -4: "lor_bor_left1" has unsupported operation: builtin.unregistered: llvm.select +2: llvm.func +2: llvm.mlir.constant +2: builtin.unregistered: llvm.select +2: llvm.or +2: llvm.return 1: "lor_bor_left2" -4: "lor_bor_left2" has unsupported operation: builtin.unregistered: llvm.select +2: llvm.func +2: llvm.mlir.constant +2: builtin.unregistered: llvm.select +2: llvm.or +2: llvm.return 1: "bor_land_left1" -4: "bor_land_left1" has unsupported operation after optimization: builtin.unregistered: llvm.select +2: llvm.func +2: llvm.mlir.constant +2: llvm.or +2: builtin.unregistered: llvm.select +2: llvm.return 1: "bor_land_left2" -4: "bor_land_left2" has unsupported operation after optimization: builtin.unregistered: llvm.select +2: llvm.func +2: llvm.mlir.constant +2: llvm.or +2: builtin.unregistered: llvm.select +2: llvm.return 1: "bor_lor_left1" -4: "bor_lor_left1" has unsupported operation after optimization: builtin.unregistered: llvm.select +2: llvm.func +2: llvm.mlir.constant +2: llvm.or +2: builtin.unregistered: llvm.select +2: llvm.return 1: "bor_lor_left2" -4: "bor_lor_left2" has unsupported operation after optimization: builtin.unregistered: llvm.select +2: llvm.func +2: llvm.mlir.constant +2: llvm.or +2: builtin.unregistered: llvm.select +2: llvm.return 1: "land_land_right1" -4: "land_land_right1" has unsupported operation: builtin.unregistered: llvm.select +2: llvm.func +2: llvm.mlir.constant +2: builtin.unregistered: llvm.select +2: builtin.unregistered: llvm.select +2: llvm.return 1: "land_land_right2" -4: "land_land_right2" has unsupported operation: builtin.unregistered: llvm.select +2: llvm.func +2: llvm.mlir.constant +2: builtin.unregistered: llvm.select +2: builtin.unregistered: llvm.select +2: llvm.return 1: "land_band_right1" -4: "land_band_right1" has unsupported operation: builtin.unregistered: llvm.select +2: llvm.func +2: llvm.mlir.constant +2: builtin.unregistered: llvm.select +2: llvm.and +2: llvm.return 1: "land_band_right2" -4: "land_band_right2" has unsupported operation: builtin.unregistered: llvm.select +2: llvm.func +2: llvm.mlir.constant +2: builtin.unregistered: llvm.select +2: llvm.and +2: llvm.return 1: "land_lor_right1" -4: "land_lor_right1" has unsupported operation after optimization: builtin.unregistered: llvm.select - -4: "land_lor_right1" has unsupported operation after optimization: builtin.unregistered: llvm.select +2: llvm.func +2: llvm.mlir.constant +2: llvm.mlir.constant +2: builtin.unregistered: llvm.select +2: builtin.unregistered: llvm.select +2: llvm.return 1: "land_lor_right2" -4: "land_lor_right2" has unsupported operation after optimization: builtin.unregistered: llvm.select - -4: "land_lor_right2" has unsupported operation after optimization: builtin.unregistered: llvm.select +2: llvm.func +2: llvm.mlir.constant +2: llvm.mlir.constant +2: builtin.unregistered: llvm.select +2: builtin.unregistered: llvm.select +2: llvm.return 1: "land_lor_right1_vec" -"land_lor_right1_vec" contains vectors which are unsupported +8: "land_lor_right1_vec" contains vectors which are unsupported 1: "land_lor_right2_vec" -"land_lor_right2_vec" contains vectors which are unsupported +8: "land_lor_right2_vec" contains vectors which are unsupported 1: "land_bor_right1" -4: "land_bor_right1" has unsupported operation after optimization: builtin.unregistered: llvm.select +2: llvm.func +2: llvm.mlir.constant +2: builtin.unregistered: llvm.select +2: llvm.or +2: llvm.return 1: "land_bor_right2" -4: "land_bor_right2" has unsupported operation after optimization: builtin.unregistered: llvm.select +2: llvm.func +2: llvm.mlir.constant +2: builtin.unregistered: llvm.select +2: llvm.or +2: llvm.return 1: "band_land_right1" -4: "band_land_right1" has unsupported operation: builtin.unregistered: llvm.select +2: llvm.func +2: llvm.mlir.constant +2: llvm.and +2: builtin.unregistered: llvm.select +2: llvm.return 1: "band_land_right2" -4: "band_land_right2" has unsupported operation: builtin.unregistered: llvm.select +2: llvm.func +2: llvm.mlir.constant +2: llvm.and +2: builtin.unregistered: llvm.select +2: llvm.return 1: "band_lor_right1" -4: "band_lor_right1" has unsupported operation after optimization: builtin.unregistered: llvm.select +2: llvm.func +2: llvm.mlir.constant +2: llvm.and +2: builtin.unregistered: llvm.select +2: llvm.return 1: "band_lor_right2" -4: "band_lor_right2" has unsupported operation after optimization: builtin.unregistered: llvm.select +2: llvm.func +2: llvm.mlir.constant +2: llvm.and +2: builtin.unregistered: llvm.select +2: llvm.return 1: "lor_land_right1" -4: "lor_land_right1" has unsupported operation after optimization: builtin.unregistered: llvm.select - -4: "lor_land_right1" has unsupported operation after optimization: builtin.unregistered: llvm.select +2: llvm.func +2: llvm.mlir.constant +2: llvm.mlir.constant +2: builtin.unregistered: llvm.select +2: builtin.unregistered: llvm.select +2: llvm.return 1: "lor_land_right2" -4: "lor_land_right2" has unsupported operation after optimization: builtin.unregistered: llvm.select - -4: "lor_land_right2" has unsupported operation after optimization: builtin.unregistered: llvm.select +2: llvm.func +2: llvm.mlir.constant +2: llvm.mlir.constant +2: builtin.unregistered: llvm.select +2: builtin.unregistered: llvm.select +2: llvm.return 1: "lor_band_right1" -4: "lor_band_right1" has unsupported operation after optimization: builtin.unregistered: llvm.select +2: llvm.func +2: llvm.mlir.constant +2: builtin.unregistered: llvm.select +2: llvm.and +2: llvm.return 1: "lor_band_right2" -4: "lor_band_right2" has unsupported operation after optimization: builtin.unregistered: llvm.select +2: llvm.func +2: llvm.mlir.constant +2: builtin.unregistered: llvm.select +2: llvm.and +2: llvm.return 1: "lor_lor_right1" -4: "lor_lor_right1" has unsupported operation: builtin.unregistered: llvm.select +2: llvm.func +2: llvm.mlir.constant +2: builtin.unregistered: llvm.select +2: builtin.unregistered: llvm.select +2: llvm.return 1: "lor_lor_right2" -4: "lor_lor_right2" has unsupported operation: builtin.unregistered: llvm.select +2: llvm.func +2: llvm.mlir.constant +2: builtin.unregistered: llvm.select +2: builtin.unregistered: llvm.select +2: llvm.return 1: "lor_bor_right1" -4: "lor_bor_right1" has unsupported operation: builtin.unregistered: llvm.select +2: llvm.func +2: llvm.mlir.constant +2: builtin.unregistered: llvm.select +2: llvm.or +2: llvm.return 1: "lor_bor_right2" -4: "lor_bor_right2" has unsupported operation: builtin.unregistered: llvm.select +2: llvm.func +2: llvm.mlir.constant +2: builtin.unregistered: llvm.select +2: llvm.or +2: llvm.return 1: "bor_land_right1" -4: "bor_land_right1" has unsupported operation after optimization: builtin.unregistered: llvm.select +2: llvm.func +2: llvm.mlir.constant +2: llvm.or +2: builtin.unregistered: llvm.select +2: llvm.return 1: "bor_land_right2" -4: "bor_land_right2" has unsupported operation after optimization: builtin.unregistered: llvm.select +2: llvm.func +2: llvm.mlir.constant +2: llvm.or +2: builtin.unregistered: llvm.select +2: llvm.return 1: "bor_lor_right1" -4: "bor_lor_right1" has unsupported operation: builtin.unregistered: llvm.select +2: llvm.func +2: llvm.mlir.constant +2: llvm.or +2: builtin.unregistered: llvm.select +2: llvm.return 1: "bor_lor_right2" -4: "bor_lor_right2" has unsupported operation: builtin.unregistered: llvm.select +2: llvm.func +2: llvm.mlir.constant +2: llvm.or +2: builtin.unregistered: llvm.select +2: llvm.return 1: "PR50500_trueval" 4: "PR50500_trueval" has unsupported operation: builtin.unregistered: llvm.mlir.poison 4: "PR50500_trueval" has unsupported operation: builtin.unregistered: llvm.shufflevector -4: "PR50500_trueval" has unsupported operation: builtin.unregistered: llvm.select - 1: "PR50500_falseval" 4: "PR50500_falseval" has unsupported operation: builtin.unregistered: llvm.mlir.poison 4: "PR50500_falseval" has unsupported operation: builtin.unregistered: llvm.shufflevector -4: "PR50500_falseval" has unsupported operation: builtin.unregistered: llvm.select - diff --git a/SSA/Projects/InstCombine/tests/logs/select-safe-impliedcond-transforms.txt b/SSA/Projects/InstCombine/tests/logs/select-safe-impliedcond-transforms.txt index 94d0d32bc..3e114e0cc 100644 --- a/SSA/Projects/InstCombine/tests/logs/select-safe-impliedcond-transforms.txt +++ b/SSA/Projects/InstCombine/tests/logs/select-safe-impliedcond-transforms.txt @@ -1,8 +1,6 @@ 1: "a_true_implies_b_true" 4: "a_true_implies_b_true" has unsupported operation: builtin.unregistered: llvm.icmp -4: "a_true_implies_b_true" has unsupported operation: builtin.unregistered: llvm.select - 1: "a_true_implies_b_true_vec" 4: "a_true_implies_b_true_vec" has unsupported operation: builtin.unregistered: llvm.mlir.poison @@ -14,62 +12,36 @@ 4: "a_true_implies_b_true_vec" has unsupported operation: builtin.unregistered: llvm.icmp -4: "a_true_implies_b_true_vec" has unsupported operation: builtin.unregistered: llvm.select - -4: "a_true_implies_b_true_vec" has unsupported operation: builtin.unregistered: llvm.select - 1: "a_true_implies_b_true2" 4: "a_true_implies_b_true2" has unsupported operation: builtin.unregistered: llvm.icmp -4: "a_true_implies_b_true2" has unsupported operation: builtin.unregistered: llvm.select - 1: "a_true_implies_b_true2_comm" 4: "a_true_implies_b_true2_comm" has unsupported operation: builtin.unregistered: llvm.icmp -4: "a_true_implies_b_true2_comm" has unsupported operation: builtin.unregistered: llvm.select - 1: "a_true_implies_b_false" 4: "a_true_implies_b_false" has unsupported operation: builtin.unregistered: llvm.icmp -4: "a_true_implies_b_false" has unsupported operation: builtin.unregistered: llvm.select - 1: "a_true_implies_b_false2" 4: "a_true_implies_b_false2" has unsupported operation: builtin.unregistered: llvm.icmp -4: "a_true_implies_b_false2" has unsupported operation: builtin.unregistered: llvm.select - 1: "a_true_implies_b_false2_comm" 4: "a_true_implies_b_false2_comm" has unsupported operation: builtin.unregistered: llvm.icmp -4: "a_true_implies_b_false2_comm" has unsupported operation: builtin.unregistered: llvm.select - 1: "a_false_implies_b_true" 4: "a_false_implies_b_true" has unsupported operation: builtin.unregistered: llvm.icmp -4: "a_false_implies_b_true" has unsupported operation: builtin.unregistered: llvm.select - 1: "a_false_implies_b_true2" 4: "a_false_implies_b_true2" has unsupported operation: builtin.unregistered: llvm.icmp -4: "a_false_implies_b_true2" has unsupported operation: builtin.unregistered: llvm.select - 1: "a_false_implies_b_true2_comm" 4: "a_false_implies_b_true2_comm" has unsupported operation: builtin.unregistered: llvm.icmp -4: "a_false_implies_b_true2_comm" has unsupported operation: builtin.unregistered: llvm.select - 1: "a_false_implies_b_false" 4: "a_false_implies_b_false" has unsupported operation: builtin.unregistered: llvm.icmp -4: "a_false_implies_b_false" has unsupported operation: builtin.unregistered: llvm.select - 1: "a_false_implies_b_false2" 4: "a_false_implies_b_false2" has unsupported operation: builtin.unregistered: llvm.icmp -4: "a_false_implies_b_false2" has unsupported operation: builtin.unregistered: llvm.select - 1: "a_false_implies_b_false2_comm" 4: "a_false_implies_b_false2_comm" has unsupported operation: builtin.unregistered: llvm.icmp -4: "a_false_implies_b_false2_comm" has unsupported operation: builtin.unregistered: llvm.select - diff --git a/SSA/Projects/InstCombine/tests/logs/select-safe-transforms.txt b/SSA/Projects/InstCombine/tests/logs/select-safe-transforms.txt index e72c8e350..a534b4de0 100644 --- a/SSA/Projects/InstCombine/tests/logs/select-safe-transforms.txt +++ b/SSA/Projects/InstCombine/tests/logs/select-safe-transforms.txt @@ -6,39 +6,27 @@ 4: "cond_eq_and" has unsupported operation: builtin.unregistered: llvm.icmp -4: "cond_eq_and" has unsupported operation: builtin.unregistered: llvm.select - 1: "cond_eq_and_const" 4: "cond_eq_and_const" has unsupported operation: builtin.unregistered: llvm.icmp 4: "cond_eq_and_const" has unsupported operation: builtin.unregistered: llvm.icmp -4: "cond_eq_and_const" has unsupported operation: builtin.unregistered: llvm.select - 1: "cond_eq_or" 4: "cond_eq_or" has unsupported operation: builtin.unregistered: llvm.icmp 4: "cond_eq_or" has unsupported operation: builtin.unregistered: llvm.icmp -4: "cond_eq_or" has unsupported operation: builtin.unregistered: llvm.select - 1: "cond_eq_or_const" 4: "cond_eq_or_const" has unsupported operation: builtin.unregistered: llvm.icmp 4: "cond_eq_or_const" has unsupported operation: builtin.unregistered: llvm.icmp -4: "cond_eq_or_const" has unsupported operation: builtin.unregistered: llvm.select - 1: "xor_and" 4: "xor_and" has unsupported operation: builtin.unregistered: llvm.icmp -4: "xor_and" has unsupported operation: builtin.unregistered: llvm.select - 1: "xor_and2" 4: "xor_and2" has unsupported operation: builtin.unregistered: llvm.icmp -4: "xor_and2" has unsupported operation: builtin.unregistered: llvm.select - 1: "xor_and3" 4: "xor_and3" has unsupported operation: llvm.mlir.addressof @@ -52,18 +40,12 @@ 4: "xor_and3" has unsupported operation: builtin.unregistered: llvm.icmp -4: "xor_and3" has unsupported operation: builtin.unregistered: llvm.select - 1: "xor_or" 4: "xor_or" has unsupported operation: builtin.unregistered: llvm.icmp -4: "xor_or" has unsupported operation: builtin.unregistered: llvm.select - 1: "xor_or2" 4: "xor_or2" has unsupported operation: builtin.unregistered: llvm.icmp -4: "xor_or2" has unsupported operation: builtin.unregistered: llvm.select - 1: "xor_or3" 4: "xor_or3" has unsupported operation: llvm.mlir.addressof @@ -77,32 +59,22 @@ 4: "xor_or3" has unsupported operation: builtin.unregistered: llvm.icmp -4: "xor_or3" has unsupported operation: builtin.unregistered: llvm.select - 1: "and_orn_cmp_1_logical" 4: "and_orn_cmp_1_logical" has unsupported operation: builtin.unregistered: llvm.icmp -4: "and_orn_cmp_1_logical" has unsupported operation: builtin.unregistered: llvm.select - 1: "and_orn_cmp_1_partial_logical" 4: "and_orn_cmp_1_partial_logical" has unsupported operation: builtin.unregistered: llvm.icmp 4: "and_orn_cmp_1_partial_logical" has unsupported operation: builtin.unregistered: llvm.icmp -4: "and_orn_cmp_1_partial_logical" has unsupported operation: builtin.unregistered: llvm.select - 1: "and_orn_cmp_1_partial_logical_commute" 4: "and_orn_cmp_1_partial_logical_commute" has unsupported operation: llvm.call 4: "and_orn_cmp_1_partial_logical_commute" has unsupported operation: builtin.unregistered: llvm.icmp -4: "and_orn_cmp_1_partial_logical_commute" has unsupported operation: builtin.unregistered: llvm.select - 1: "andn_or_cmp_2_logical" 4: "andn_or_cmp_2_logical" has unsupported operation: builtin.unregistered: llvm.icmp -4: "andn_or_cmp_2_logical" has unsupported operation: builtin.unregistered: llvm.select - 1: "andn_or_cmp_2_partial_logical" 4: "andn_or_cmp_2_partial_logical" has unsupported operation: builtin.unregistered: llvm.icmp @@ -116,162 +88,256 @@ 4: "not_logical_or" has unsupported operation: builtin.unregistered: llvm.icmp -4: "not_logical_or" has unsupported operation: builtin.unregistered: llvm.select - -4: "not_logical_or" has unsupported operation: builtin.unregistered: llvm.select - 1: "not_logical_or2" 4: "not_logical_or2" has unsupported operation: builtin.unregistered: llvm.icmp 4: "not_logical_or2" has unsupported operation: builtin.unregistered: llvm.icmp -4: "not_logical_or2" has unsupported operation: builtin.unregistered: llvm.select - -4: "not_logical_or2" has unsupported operation: builtin.unregistered: llvm.select - 1: "bools_logical_commute0" -4: "bools_logical_commute0" has unsupported operation: builtin.unregistered: llvm.select +2: llvm.func +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.xor +2: builtin.unregistered: llvm.select +2: builtin.unregistered: llvm.select +2: builtin.unregistered: llvm.select +2: llvm.return 1: "bools_logical_commute0_and1" -4: "bools_logical_commute0_and1" has unsupported operation: builtin.unregistered: llvm.select +2: llvm.func +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.xor +2: llvm.and +2: builtin.unregistered: llvm.select +2: builtin.unregistered: llvm.select +2: llvm.return 1: "bools_logical_commute0_and2" -4: "bools_logical_commute0_and2" has unsupported operation: builtin.unregistered: llvm.select +2: llvm.func +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.xor +2: builtin.unregistered: llvm.select +2: llvm.and +2: builtin.unregistered: llvm.select +2: llvm.return 1: "bools_logical_commute0_and1_and2" -4: "bools_logical_commute0_and1_and2" has unsupported operation: builtin.unregistered: llvm.select +2: llvm.func +2: llvm.mlir.constant +2: llvm.xor +2: llvm.and +2: llvm.and +2: builtin.unregistered: llvm.select +2: llvm.return 1: "bools_logical_commute1" -4: "bools_logical_commute1" has unsupported operation: builtin.unregistered: llvm.select +2: llvm.func +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.xor +2: builtin.unregistered: llvm.select +2: builtin.unregistered: llvm.select +2: builtin.unregistered: llvm.select +2: llvm.return 1: "bools_logical_commute1_and1" 4: "bools_logical_commute1_and1" has unsupported operation: llvm.call -4: "bools_logical_commute1_and1" has unsupported operation: builtin.unregistered: llvm.select - 1: "bools_logical_commute1_and2" -4: "bools_logical_commute1_and2" has unsupported operation: builtin.unregistered: llvm.select +2: llvm.func +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.xor +2: builtin.unregistered: llvm.select +2: llvm.and +2: builtin.unregistered: llvm.select +2: llvm.return 1: "bools_logical_commute1_and1_and2" 4: "bools_logical_commute1_and1_and2" has unsupported operation: llvm.call -4: "bools_logical_commute1_and1_and2" has unsupported operation: builtin.unregistered: llvm.select - 1: "bools_logical_commute2" -4: "bools_logical_commute2" has unsupported operation: builtin.unregistered: llvm.select +8: "bools_logical_commute2" contains vectors which are unsupported 1: "bools_logical_commute2_and1" -4: "bools_logical_commute2_and1" has unsupported operation: builtin.unregistered: llvm.select +8: "bools_logical_commute2_and1" contains vectors which are unsupported 1: "bools_logical_commute2_and2" -4: "bools_logical_commute2_and2" has unsupported operation: builtin.unregistered: llvm.select +8: "bools_logical_commute2_and2" contains vectors which are unsupported 1: "bools_logical_commute2_and1_and2" -4: "bools_logical_commute2_and1_and2" has unsupported operation: builtin.unregistered: llvm.select +8: "bools_logical_commute2_and1_and2" contains vectors which are unsupported 1: "bools_logical_commute3" 4: "bools_logical_commute3" has unsupported operation: builtin.unregistered: llvm.freeze -4: "bools_logical_commute3" has unsupported operation: builtin.unregistered: llvm.select - 1: "bools_logical_commute3_and1" 4: "bools_logical_commute3_and1" has unsupported operation: llvm.call -4: "bools_logical_commute3_and1" has unsupported operation: builtin.unregistered: llvm.select - 1: "bools_logical_commute3_and2" -4: "bools_logical_commute3_and2" has unsupported operation: builtin.unregistered: llvm.select +2: llvm.func +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.xor +2: builtin.unregistered: llvm.select +2: llvm.and +2: builtin.unregistered: llvm.select +2: llvm.return 1: "bools_logical_commute3_and1_and2" 4: "bools_logical_commute3_and1_and2" has unsupported operation: llvm.call -4: "bools_logical_commute3_and1_and2" has unsupported operation: builtin.unregistered: llvm.select - 1: "bools2_logical_commute0" -4: "bools2_logical_commute0" has unsupported operation: builtin.unregistered: llvm.select +2: llvm.func +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.xor +2: builtin.unregistered: llvm.select +2: builtin.unregistered: llvm.select +2: builtin.unregistered: llvm.select +2: llvm.return 1: "bools2_logical_commute0_and1" -4: "bools2_logical_commute0_and1" has unsupported operation: builtin.unregistered: llvm.select +2: llvm.func +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.xor +2: llvm.and +2: builtin.unregistered: llvm.select +2: builtin.unregistered: llvm.select +2: llvm.return 1: "bools2_logical_commute0_and2" -4: "bools2_logical_commute0_and2" has unsupported operation: builtin.unregistered: llvm.select +2: llvm.func +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.xor +2: builtin.unregistered: llvm.select +2: llvm.and +2: builtin.unregistered: llvm.select +2: llvm.return 1: "bools2_logical_commute0_and1_and2" -4: "bools2_logical_commute0_and1_and2" has unsupported operation: builtin.unregistered: llvm.select +2: llvm.func +2: llvm.mlir.constant +2: llvm.xor +2: llvm.and +2: llvm.and +2: builtin.unregistered: llvm.select +2: llvm.return 1: "bools2_logical_commute1" -4: "bools2_logical_commute1" has unsupported operation: builtin.unregistered: llvm.select +2: llvm.func +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.xor +2: builtin.unregistered: llvm.select +2: builtin.unregistered: llvm.select +2: builtin.unregistered: llvm.select +2: llvm.return 1: "bools2_logical_commute1_and1" -4: "bools2_logical_commute1_and1" has unsupported operation: builtin.unregistered: llvm.select +2: llvm.func +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.xor +2: llvm.and +2: builtin.unregistered: llvm.select +2: builtin.unregistered: llvm.select +2: llvm.return 1: "bools2_logical_commute1_and2" -4: "bools2_logical_commute1_and2" has unsupported operation: builtin.unregistered: llvm.select +2: llvm.func +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.xor +2: builtin.unregistered: llvm.select +2: llvm.and +2: builtin.unregistered: llvm.select +2: llvm.return 1: "bools2_logical_commute1_and1_and2" -4: "bools2_logical_commute1_and1_and2" has unsupported operation: builtin.unregistered: llvm.select +2: llvm.func +2: llvm.mlir.constant +2: llvm.xor +2: llvm.and +2: llvm.and +2: builtin.unregistered: llvm.select +2: llvm.return 1: "bools2_logical_commute2" -4: "bools2_logical_commute2" has unsupported operation: builtin.unregistered: llvm.select +2: llvm.func +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.xor +2: builtin.unregistered: llvm.select +2: builtin.unregistered: llvm.select +2: builtin.unregistered: llvm.select +2: llvm.return 1: "bools2_logical_commute2_and1" -4: "bools2_logical_commute2_and1" has unsupported operation: builtin.unregistered: llvm.select +2: llvm.func +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.xor +2: llvm.and +2: builtin.unregistered: llvm.select +2: builtin.unregistered: llvm.select +2: llvm.return 1: "bools2_logical_commute2_and2" 4: "bools2_logical_commute2_and2" has unsupported operation: llvm.call -4: "bools2_logical_commute2_and2" has unsupported operation: builtin.unregistered: llvm.select - 1: "bools2_logical_commute2_and1_and2" 4: "bools2_logical_commute2_and1_and2" has unsupported operation: llvm.call -4: "bools2_logical_commute2_and1_and2" has unsupported operation: builtin.unregistered: llvm.select - 1: "bools2_logical_commute3" 4: "bools2_logical_commute3" has unsupported operation: builtin.unregistered: llvm.freeze -4: "bools2_logical_commute3" has unsupported operation: builtin.unregistered: llvm.select - 1: "bools2_logical_commute3_nopoison" -4: "bools2_logical_commute3_nopoison" has unsupported operation: builtin.unregistered: llvm.select +2: llvm.func +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.xor +2: builtin.unregistered: llvm.select +2: builtin.unregistered: llvm.select +2: builtin.unregistered: llvm.select +2: llvm.return 1: "bools2_logical_commute3_and1" -4: "bools2_logical_commute3_and1" has unsupported operation: builtin.unregistered: llvm.select +2: llvm.func +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.xor +2: llvm.and +2: builtin.unregistered: llvm.select +2: builtin.unregistered: llvm.select +2: llvm.return 1: "bools2_logical_commute3_and2" 4: "bools2_logical_commute3_and2" has unsupported operation: llvm.call -4: "bools2_logical_commute3_and2" has unsupported operation: builtin.unregistered: llvm.select - 1: "bools2_logical_commute3_and1_and2" 4: "bools2_logical_commute3_and1_and2" has unsupported operation: llvm.call -4: "bools2_logical_commute3_and1_and2" has unsupported operation: builtin.unregistered: llvm.select - 1: "orn_and_cmp_1_logical" 4: "orn_and_cmp_1_logical" has unsupported operation: builtin.unregistered: llvm.icmp -4: "orn_and_cmp_1_logical" has unsupported operation: builtin.unregistered: llvm.select - 1: "orn_and_cmp_1_partial_logical" 4: "orn_and_cmp_1_partial_logical" has unsupported operation: builtin.unregistered: llvm.icmp 4: "orn_and_cmp_1_partial_logical" has unsupported operation: builtin.unregistered: llvm.icmp -4: "orn_and_cmp_1_partial_logical" has unsupported operation: builtin.unregistered: llvm.select - 1: "orn_and_cmp_1_partial_logical_commute" 4: "orn_and_cmp_1_partial_logical_commute" has unsupported operation: llvm.call 4: "orn_and_cmp_1_partial_logical_commute" has unsupported operation: builtin.unregistered: llvm.icmp -4: "orn_and_cmp_1_partial_logical_commute" has unsupported operation: builtin.unregistered: llvm.select - 1: "orn_and_cmp_2_logical" 4: "orn_and_cmp_2_logical" has unsupported operation: builtin.unregistered: llvm.icmp -4: "orn_and_cmp_2_logical" has unsupported operation: builtin.unregistered: llvm.select - 1: "orn_and_cmp_2_partial_logical" 4: "orn_and_cmp_2_partial_logical" has unsupported operation: builtin.unregistered: llvm.icmp @@ -285,16 +351,8 @@ 4: "not_logical_and" has unsupported operation: builtin.unregistered: llvm.icmp -4: "not_logical_and" has unsupported operation: builtin.unregistered: llvm.select - -4: "not_logical_and" has unsupported operation: builtin.unregistered: llvm.select - 1: "not_logical_and2" 4: "not_logical_and2" has unsupported operation: builtin.unregistered: llvm.icmp 4: "not_logical_and2" has unsupported operation: builtin.unregistered: llvm.icmp -4: "not_logical_and2" has unsupported operation: builtin.unregistered: llvm.select - -4: "not_logical_and2" has unsupported operation: builtin.unregistered: llvm.select - diff --git a/SSA/Projects/InstCombine/tests/logs/select-with-bitwise-ops.txt b/SSA/Projects/InstCombine/tests/logs/select-with-bitwise-ops.txt index 9d921de51..b68259127 100644 --- a/SSA/Projects/InstCombine/tests/logs/select-with-bitwise-ops.txt +++ b/SSA/Projects/InstCombine/tests/logs/select-with-bitwise-ops.txt @@ -7,10 +7,8 @@ 1: "select_icmp_eq_and_1_0_or_2" 4: "select_icmp_eq_and_1_0_or_2" has unsupported operation after optimization: builtin.unregistered: llvm.icmp -4: "select_icmp_eq_and_1_0_or_2" has unsupported operation after optimization: builtin.unregistered: llvm.select - 1: "select_icmp_eq_and_1_0_or_2_vec" -"select_icmp_eq_and_1_0_or_2_vec" contains vectors which are unsupported +8: "select_icmp_eq_and_1_0_or_2_vec" contains vectors which are unsupported 1: "select_icmp_eq_and_1_0_or_2_vec_poison1" 4: "select_icmp_eq_and_1_0_or_2_vec_poison1" has unsupported operation: builtin.unregistered: llvm.mlir.poison @@ -22,75 +20,53 @@ 4: "select_icmp_eq_and_1_0_or_2_vec_poison1" has unsupported operation: builtin.unregistered: llvm.insertelement 1: "select_icmp_eq_and_1_0_or_2_vec_poison2" -"select_icmp_eq_and_1_0_or_2_vec_poison2" contains vectors which are unsupported +8: "select_icmp_eq_and_1_0_or_2_vec_poison2" contains vectors which are unsupported 1: "select_icmp_eq_and_1_0_or_2_vec_poison3" -"select_icmp_eq_and_1_0_or_2_vec_poison3" contains vectors which are unsupported +8: "select_icmp_eq_and_1_0_or_2_vec_poison3" contains vectors which are unsupported 1: "select_icmp_eq_and_1_0_xor_2" 4: "select_icmp_eq_and_1_0_xor_2" has unsupported operation after optimization: builtin.unregistered: llvm.icmp -4: "select_icmp_eq_and_1_0_xor_2" has unsupported operation after optimization: builtin.unregistered: llvm.select - 1: "select_icmp_eq_and_1_0_and_not_2" 4: "select_icmp_eq_and_1_0_and_not_2" has unsupported operation: builtin.unregistered: llvm.icmp -4: "select_icmp_eq_and_1_0_and_not_2" has unsupported operation: builtin.unregistered: llvm.select - 1: "select_icmp_eq_and_32_0_or_8" 4: "select_icmp_eq_and_32_0_or_8" has unsupported operation after optimization: builtin.unregistered: llvm.icmp -4: "select_icmp_eq_and_32_0_or_8" has unsupported operation after optimization: builtin.unregistered: llvm.select - 1: "select_icmp_eq_and_32_0_or_8_vec" -"select_icmp_eq_and_32_0_or_8_vec" contains vectors which are unsupported +8: "select_icmp_eq_and_32_0_or_8_vec" contains vectors which are unsupported 1: "select_icmp_eq_and_32_0_xor_8" 4: "select_icmp_eq_and_32_0_xor_8" has unsupported operation after optimization: builtin.unregistered: llvm.icmp -4: "select_icmp_eq_and_32_0_xor_8" has unsupported operation after optimization: builtin.unregistered: llvm.select - 1: "select_icmp_eq_and_32_0_and_not_8" 4: "select_icmp_eq_and_32_0_and_not_8" has unsupported operation: builtin.unregistered: llvm.icmp -4: "select_icmp_eq_and_32_0_and_not_8" has unsupported operation: builtin.unregistered: llvm.select - 1: "select_icmp_ne_0_and_4096_or_4096" 4: "select_icmp_ne_0_and_4096_or_4096" has unsupported operation after optimization: builtin.unregistered: llvm.icmp -4: "select_icmp_ne_0_and_4096_or_4096" has unsupported operation after optimization: builtin.unregistered: llvm.select - 1: "select_icmp_ne_0_and_4096_or_4096_vec" -"select_icmp_ne_0_and_4096_or_4096_vec" contains vectors which are unsupported +8: "select_icmp_ne_0_and_4096_or_4096_vec" contains vectors which are unsupported 1: "select_icmp_ne_0_and_4096_xor_4096" 4: "select_icmp_ne_0_and_4096_xor_4096" has unsupported operation after optimization: builtin.unregistered: llvm.icmp -4: "select_icmp_ne_0_and_4096_xor_4096" has unsupported operation after optimization: builtin.unregistered: llvm.select - 1: "select_icmp_ne_0_and_4096_and_not_4096" 4: "select_icmp_ne_0_and_4096_and_not_4096" has unsupported operation: builtin.unregistered: llvm.icmp -4: "select_icmp_ne_0_and_4096_and_not_4096" has unsupported operation: builtin.unregistered: llvm.select - 1: "select_icmp_eq_and_4096_0_or_4096" 4: "select_icmp_eq_and_4096_0_or_4096" has unsupported operation after optimization: builtin.unregistered: llvm.icmp -4: "select_icmp_eq_and_4096_0_or_4096" has unsupported operation after optimization: builtin.unregistered: llvm.select - 1: "select_icmp_eq_and_4096_0_or_4096_vec" -"select_icmp_eq_and_4096_0_or_4096_vec" contains vectors which are unsupported +8: "select_icmp_eq_and_4096_0_or_4096_vec" contains vectors which are unsupported 1: "select_icmp_eq_and_4096_0_xor_4096" 4: "select_icmp_eq_and_4096_0_xor_4096" has unsupported operation after optimization: builtin.unregistered: llvm.icmp -4: "select_icmp_eq_and_4096_0_xor_4096" has unsupported operation after optimization: builtin.unregistered: llvm.select - 1: "select_icmp_eq_and_4096_0_and_not_4096" 4: "select_icmp_eq_and_4096_0_and_not_4096" has unsupported operation: builtin.unregistered: llvm.icmp -4: "select_icmp_eq_and_4096_0_and_not_4096" has unsupported operation: builtin.unregistered: llvm.select - 1: "select_icmp_eq_0_and_1_or_1" 4: "select_icmp_eq_0_and_1_or_1" has unsupported operation: builtin.unregistered: llvm.trunc @@ -103,86 +79,54 @@ 1: "select_icmp_eq_0_and_1_and_not_1" 4: "select_icmp_eq_0_and_1_and_not_1" has unsupported operation: builtin.unregistered: llvm.icmp -4: "select_icmp_eq_0_and_1_and_not_1" has unsupported operation: builtin.unregistered: llvm.select - 1: "select_icmp_ne_0_and_4096_or_32" 4: "select_icmp_ne_0_and_4096_or_32" has unsupported operation after optimization: builtin.unregistered: llvm.icmp -4: "select_icmp_ne_0_and_4096_or_32" has unsupported operation after optimization: builtin.unregistered: llvm.select - 1: "select_icmp_ne_0_and_4096_xor_32" 4: "select_icmp_ne_0_and_4096_xor_32" has unsupported operation after optimization: builtin.unregistered: llvm.icmp -4: "select_icmp_ne_0_and_4096_xor_32" has unsupported operation after optimization: builtin.unregistered: llvm.select - 1: "select_icmp_ne_0_and_4096_and_not_32" 4: "select_icmp_ne_0_and_4096_and_not_32" has unsupported operation: builtin.unregistered: llvm.icmp -4: "select_icmp_ne_0_and_4096_and_not_32" has unsupported operation: builtin.unregistered: llvm.select - 1: "select_icmp_ne_0_and_32_or_4096" 4: "select_icmp_ne_0_and_32_or_4096" has unsupported operation after optimization: builtin.unregistered: llvm.icmp -4: "select_icmp_ne_0_and_32_or_4096" has unsupported operation after optimization: builtin.unregistered: llvm.select - 1: "select_icmp_ne_0_and_32_or_4096_vec" -"select_icmp_ne_0_and_32_or_4096_vec" contains vectors which are unsupported +8: "select_icmp_ne_0_and_32_or_4096_vec" contains vectors which are unsupported 1: "select_icmp_ne_0_and_32_xor_4096" 4: "select_icmp_ne_0_and_32_xor_4096" has unsupported operation after optimization: builtin.unregistered: llvm.icmp -4: "select_icmp_ne_0_and_32_xor_4096" has unsupported operation after optimization: builtin.unregistered: llvm.select - 1: "select_icmp_ne_0_and_32_and_not_4096" 4: "select_icmp_ne_0_and_32_and_not_4096" has unsupported operation: builtin.unregistered: llvm.icmp -4: "select_icmp_ne_0_and_32_and_not_4096" has unsupported operation: builtin.unregistered: llvm.select - 1: "select_icmp_ne_0_and_1073741824_or_8" 4: "select_icmp_ne_0_and_1073741824_or_8" has unsupported operation: builtin.unregistered: llvm.icmp -4: "select_icmp_ne_0_and_1073741824_or_8" has unsupported operation: builtin.unregistered: llvm.select - 1: "select_icmp_ne_0_and_1073741824_xor_8" 4: "select_icmp_ne_0_and_1073741824_xor_8" has unsupported operation: builtin.unregistered: llvm.icmp -4: "select_icmp_ne_0_and_1073741824_xor_8" has unsupported operation: builtin.unregistered: llvm.select - 1: "select_icmp_ne_0_and_1073741824_and_not_8" 4: "select_icmp_ne_0_and_1073741824_and_not_8" has unsupported operation: builtin.unregistered: llvm.icmp -4: "select_icmp_ne_0_and_1073741824_and_not_8" has unsupported operation: builtin.unregistered: llvm.select - 1: "select_icmp_ne_0_and_8_or_1073741824" 4: "select_icmp_ne_0_and_8_or_1073741824" has unsupported operation: builtin.unregistered: llvm.icmp -4: "select_icmp_ne_0_and_8_or_1073741824" has unsupported operation: builtin.unregistered: llvm.select - 1: "select_icmp_ne_0_and_8_xor_1073741824" 4: "select_icmp_ne_0_and_8_xor_1073741824" has unsupported operation: builtin.unregistered: llvm.icmp -4: "select_icmp_ne_0_and_8_xor_1073741824" has unsupported operation: builtin.unregistered: llvm.select - 1: "select_icmp_ne_0_and_8_and_not_1073741824" 4: "select_icmp_ne_0_and_8_and_not_1073741824" has unsupported operation: builtin.unregistered: llvm.icmp -4: "select_icmp_ne_0_and_8_and_not_1073741824" has unsupported operation: builtin.unregistered: llvm.select - 1: "select_icmp_eq_and_1_0_or_vector_of_2s" 4: "select_icmp_eq_and_1_0_or_vector_of_2s" has unsupported operation: builtin.unregistered: llvm.icmp -4: "select_icmp_eq_and_1_0_or_vector_of_2s" has unsupported operation: builtin.unregistered: llvm.select - 1: "select_icmp_and_8_ne_0_xor_8" 4: "select_icmp_and_8_ne_0_xor_8" has unsupported operation after optimization: builtin.unregistered: llvm.icmp -4: "select_icmp_and_8_ne_0_xor_8" has unsupported operation after optimization: builtin.unregistered: llvm.select - 1: "select_icmp_and_8_eq_0_xor_8" 4: "select_icmp_and_8_eq_0_xor_8" has unsupported operation after optimization: builtin.unregistered: llvm.icmp -4: "select_icmp_and_8_eq_0_xor_8" has unsupported operation after optimization: builtin.unregistered: llvm.select - 1: "select_icmp_x_and_8_eq_0_y_xor_8" 4: "select_icmp_x_and_8_eq_0_y_xor_8" has unsupported operation: builtin.unregistered: llvm.zext @@ -198,301 +142,175 @@ 1: "select_icmp_x_and_8_ne_0_y_and_not_8" 4: "select_icmp_x_and_8_ne_0_y_and_not_8" has unsupported operation: builtin.unregistered: llvm.icmp -4: "select_icmp_x_and_8_ne_0_y_and_not_8" has unsupported operation: builtin.unregistered: llvm.select - 1: "select_icmp_and_2147483648_ne_0_xor_2147483648" 4: "select_icmp_and_2147483648_ne_0_xor_2147483648" has unsupported operation after optimization: builtin.unregistered: llvm.icmp -4: "select_icmp_and_2147483648_ne_0_xor_2147483648" has unsupported operation after optimization: builtin.unregistered: llvm.select - 1: "select_icmp_and_2147483648_eq_0_xor_2147483648" 4: "select_icmp_and_2147483648_eq_0_xor_2147483648" has unsupported operation after optimization: builtin.unregistered: llvm.icmp -4: "select_icmp_and_2147483648_eq_0_xor_2147483648" has unsupported operation after optimization: builtin.unregistered: llvm.select - 1: "select_icmp_x_and_2147483648_ne_0_or_2147483648" 4: "select_icmp_x_and_2147483648_ne_0_or_2147483648" has unsupported operation after optimization: builtin.unregistered: llvm.icmp -4: "select_icmp_x_and_2147483648_ne_0_or_2147483648" has unsupported operation after optimization: builtin.unregistered: llvm.select - 1: "test68" 4: "test68" has unsupported operation after optimization: builtin.unregistered: llvm.icmp -4: "test68" has unsupported operation after optimization: builtin.unregistered: llvm.select - 1: "test68vec" -"test68vec" contains vectors which are unsupported +8: "test68vec" contains vectors which are unsupported 1: "test68_xor" 4: "test68_xor" has unsupported operation after optimization: builtin.unregistered: llvm.icmp -4: "test68_xor" has unsupported operation after optimization: builtin.unregistered: llvm.select - 1: "test68_and" 4: "test68_and" has unsupported operation: builtin.unregistered: llvm.icmp -4: "test68_and" has unsupported operation: builtin.unregistered: llvm.select - 1: "test69" 4: "test69" has unsupported operation after optimization: builtin.unregistered: llvm.icmp -4: "test69" has unsupported operation after optimization: builtin.unregistered: llvm.select - 1: "test69vec" -"test69vec" contains vectors which are unsupported +8: "test69vec" contains vectors which are unsupported 1: "test69_xor" 4: "test69_xor" has unsupported operation after optimization: builtin.unregistered: llvm.icmp -4: "test69_xor" has unsupported operation after optimization: builtin.unregistered: llvm.select - 1: "test69_and" 4: "test69_and" has unsupported operation: builtin.unregistered: llvm.icmp -4: "test69_and" has unsupported operation: builtin.unregistered: llvm.select - 1: "test70" 4: "test70" has unsupported operation after optimization: builtin.unregistered: llvm.icmp -4: "test70" has unsupported operation after optimization: builtin.unregistered: llvm.select - 1: "test70_multiuse" 4: "test70_multiuse" has unsupported operation: builtin.unregistered: llvm.icmp 4: "test70_multiuse" has unsupported operation: llvm.call -4: "test70_multiuse" has unsupported operation: builtin.unregistered: llvm.select - 1: "shift_no_xor_multiuse_or" 4: "shift_no_xor_multiuse_or" has unsupported operation after optimization: builtin.unregistered: llvm.icmp -4: "shift_no_xor_multiuse_or" has unsupported operation after optimization: builtin.unregistered: llvm.select - 1: "shift_no_xor_multiuse_xor" 4: "shift_no_xor_multiuse_xor" has unsupported operation after optimization: builtin.unregistered: llvm.icmp -4: "shift_no_xor_multiuse_xor" has unsupported operation after optimization: builtin.unregistered: llvm.select - 1: "shift_no_xor_multiuse_and" 4: "shift_no_xor_multiuse_and" has unsupported operation: builtin.unregistered: llvm.icmp -4: "shift_no_xor_multiuse_and" has unsupported operation: builtin.unregistered: llvm.select - 1: "no_shift_no_xor_multiuse_or" 4: "no_shift_no_xor_multiuse_or" has unsupported operation after optimization: builtin.unregistered: llvm.icmp -4: "no_shift_no_xor_multiuse_or" has unsupported operation after optimization: builtin.unregistered: llvm.select - 1: "no_shift_no_xor_multiuse_xor" 4: "no_shift_no_xor_multiuse_xor" has unsupported operation after optimization: builtin.unregistered: llvm.icmp -4: "no_shift_no_xor_multiuse_xor" has unsupported operation after optimization: builtin.unregistered: llvm.select - 1: "no_shift_no_xor_multiuse_and" 4: "no_shift_no_xor_multiuse_and" has unsupported operation: builtin.unregistered: llvm.icmp -4: "no_shift_no_xor_multiuse_and" has unsupported operation: builtin.unregistered: llvm.select - 1: "no_shift_xor_multiuse_or" 4: "no_shift_xor_multiuse_or" has unsupported operation after optimization: builtin.unregistered: llvm.icmp -4: "no_shift_xor_multiuse_or" has unsupported operation after optimization: builtin.unregistered: llvm.select - 1: "no_shift_xor_multiuse_xor" 4: "no_shift_xor_multiuse_xor" has unsupported operation after optimization: builtin.unregistered: llvm.icmp -4: "no_shift_xor_multiuse_xor" has unsupported operation after optimization: builtin.unregistered: llvm.select - 1: "no_shift_xor_multiuse_and" 4: "no_shift_xor_multiuse_and" has unsupported operation: builtin.unregistered: llvm.icmp -4: "no_shift_xor_multiuse_and" has unsupported operation: builtin.unregistered: llvm.select - 1: "shift_xor_multiuse_or" 4: "shift_xor_multiuse_or" has unsupported operation: builtin.unregistered: llvm.icmp -4: "shift_xor_multiuse_or" has unsupported operation: builtin.unregistered: llvm.select - 1: "shift_xor_multiuse_xor" 4: "shift_xor_multiuse_xor" has unsupported operation: builtin.unregistered: llvm.icmp -4: "shift_xor_multiuse_xor" has unsupported operation: builtin.unregistered: llvm.select - 1: "shift_xor_multiuse_and" 4: "shift_xor_multiuse_and" has unsupported operation: builtin.unregistered: llvm.icmp -4: "shift_xor_multiuse_and" has unsupported operation: builtin.unregistered: llvm.select - 1: "shift_no_xor_multiuse_cmp" 4: "shift_no_xor_multiuse_cmp" has unsupported operation: builtin.unregistered: llvm.icmp -4: "shift_no_xor_multiuse_cmp" has unsupported operation: builtin.unregistered: llvm.select - 1: "shift_no_xor_multiuse_cmp_with_xor" 4: "shift_no_xor_multiuse_cmp_with_xor" has unsupported operation: builtin.unregistered: llvm.icmp -4: "shift_no_xor_multiuse_cmp_with_xor" has unsupported operation: builtin.unregistered: llvm.select - 1: "shift_no_xor_multiuse_cmp_with_and" 4: "shift_no_xor_multiuse_cmp_with_and" has unsupported operation: builtin.unregistered: llvm.icmp -4: "shift_no_xor_multiuse_cmp_with_and" has unsupported operation: builtin.unregistered: llvm.select - -4: "shift_no_xor_multiuse_cmp_with_and" has unsupported operation: builtin.unregistered: llvm.select - 1: "no_shift_no_xor_multiuse_cmp" 4: "no_shift_no_xor_multiuse_cmp" has unsupported operation: builtin.unregistered: llvm.icmp -4: "no_shift_no_xor_multiuse_cmp" has unsupported operation: builtin.unregistered: llvm.select - 1: "no_shift_no_xor_multiuse_cmp_with_xor" 4: "no_shift_no_xor_multiuse_cmp_with_xor" has unsupported operation: builtin.unregistered: llvm.icmp -4: "no_shift_no_xor_multiuse_cmp_with_xor" has unsupported operation: builtin.unregistered: llvm.select - 1: "no_shift_no_xor_multiuse_cmp_with_and" 4: "no_shift_no_xor_multiuse_cmp_with_and" has unsupported operation: builtin.unregistered: llvm.icmp -4: "no_shift_no_xor_multiuse_cmp_with_and" has unsupported operation: builtin.unregistered: llvm.select - -4: "no_shift_no_xor_multiuse_cmp_with_and" has unsupported operation: builtin.unregistered: llvm.select - 1: "no_shift_xor_multiuse_cmp" 4: "no_shift_xor_multiuse_cmp" has unsupported operation: builtin.unregistered: llvm.icmp -4: "no_shift_xor_multiuse_cmp" has unsupported operation: builtin.unregistered: llvm.select - 1: "no_shift_xor_multiuse_cmp_with_xor" 4: "no_shift_xor_multiuse_cmp_with_xor" has unsupported operation: builtin.unregistered: llvm.icmp -4: "no_shift_xor_multiuse_cmp_with_xor" has unsupported operation: builtin.unregistered: llvm.select - 1: "no_shift_xor_multiuse_cmp_with_and" 4: "no_shift_xor_multiuse_cmp_with_and" has unsupported operation: builtin.unregistered: llvm.icmp -4: "no_shift_xor_multiuse_cmp_with_and" has unsupported operation: builtin.unregistered: llvm.select - -4: "no_shift_xor_multiuse_cmp_with_and" has unsupported operation: builtin.unregistered: llvm.select - 1: "shift_xor_multiuse_cmp" 4: "shift_xor_multiuse_cmp" has unsupported operation: builtin.unregistered: llvm.icmp -4: "shift_xor_multiuse_cmp" has unsupported operation: builtin.unregistered: llvm.select - -4: "shift_xor_multiuse_cmp" has unsupported operation: builtin.unregistered: llvm.select - 1: "shift_xor_multiuse_cmp_with_xor" 4: "shift_xor_multiuse_cmp_with_xor" has unsupported operation: builtin.unregistered: llvm.icmp -4: "shift_xor_multiuse_cmp_with_xor" has unsupported operation: builtin.unregistered: llvm.select - -4: "shift_xor_multiuse_cmp_with_xor" has unsupported operation: builtin.unregistered: llvm.select - 1: "shift_xor_multiuse_cmp_with_and" 4: "shift_xor_multiuse_cmp_with_and" has unsupported operation: builtin.unregistered: llvm.icmp -4: "shift_xor_multiuse_cmp_with_and" has unsupported operation: builtin.unregistered: llvm.select - -4: "shift_xor_multiuse_cmp_with_and" has unsupported operation: builtin.unregistered: llvm.select - 1: "shift_no_xor_multiuse_cmp_or" 4: "shift_no_xor_multiuse_cmp_or" has unsupported operation: builtin.unregistered: llvm.icmp -4: "shift_no_xor_multiuse_cmp_or" has unsupported operation: builtin.unregistered: llvm.select - -4: "shift_no_xor_multiuse_cmp_or" has unsupported operation: builtin.unregistered: llvm.select - 1: "shift_no_xor_multiuse_cmp_xor" 4: "shift_no_xor_multiuse_cmp_xor" has unsupported operation: builtin.unregistered: llvm.icmp -4: "shift_no_xor_multiuse_cmp_xor" has unsupported operation: builtin.unregistered: llvm.select - -4: "shift_no_xor_multiuse_cmp_xor" has unsupported operation: builtin.unregistered: llvm.select - 1: "shift_no_xor_multiuse_cmp_and" 4: "shift_no_xor_multiuse_cmp_and" has unsupported operation: builtin.unregistered: llvm.icmp -4: "shift_no_xor_multiuse_cmp_and" has unsupported operation: builtin.unregistered: llvm.select - -4: "shift_no_xor_multiuse_cmp_and" has unsupported operation: builtin.unregistered: llvm.select - 1: "no_shift_no_xor_multiuse_cmp_or" 4: "no_shift_no_xor_multiuse_cmp_or" has unsupported operation: builtin.unregistered: llvm.icmp -4: "no_shift_no_xor_multiuse_cmp_or" has unsupported operation: builtin.unregistered: llvm.select - 1: "no_shift_no_xor_multiuse_cmp_xor" 4: "no_shift_no_xor_multiuse_cmp_xor" has unsupported operation: builtin.unregistered: llvm.icmp -4: "no_shift_no_xor_multiuse_cmp_xor" has unsupported operation: builtin.unregistered: llvm.select - 1: "no_shift_no_xor_multiuse_cmp_and" 4: "no_shift_no_xor_multiuse_cmp_and" has unsupported operation: builtin.unregistered: llvm.icmp -4: "no_shift_no_xor_multiuse_cmp_and" has unsupported operation: builtin.unregistered: llvm.select - -4: "no_shift_no_xor_multiuse_cmp_and" has unsupported operation: builtin.unregistered: llvm.select - 1: "no_shift_xor_multiuse_cmp_or" 4: "no_shift_xor_multiuse_cmp_or" has unsupported operation: builtin.unregistered: llvm.icmp -4: "no_shift_xor_multiuse_cmp_or" has unsupported operation: builtin.unregistered: llvm.select - -4: "no_shift_xor_multiuse_cmp_or" has unsupported operation: builtin.unregistered: llvm.select - 1: "no_shift_xor_multiuse_cmp_xor" 4: "no_shift_xor_multiuse_cmp_xor" has unsupported operation: builtin.unregistered: llvm.icmp -4: "no_shift_xor_multiuse_cmp_xor" has unsupported operation: builtin.unregistered: llvm.select - -4: "no_shift_xor_multiuse_cmp_xor" has unsupported operation: builtin.unregistered: llvm.select - 1: "no_shift_xor_multiuse_cmp_and" 4: "no_shift_xor_multiuse_cmp_and" has unsupported operation: builtin.unregistered: llvm.icmp -4: "no_shift_xor_multiuse_cmp_and" has unsupported operation: builtin.unregistered: llvm.select - -4: "no_shift_xor_multiuse_cmp_and" has unsupported operation: builtin.unregistered: llvm.select - 1: "shift_xor_multiuse_cmp_or" 4: "shift_xor_multiuse_cmp_or" has unsupported operation: builtin.unregistered: llvm.icmp -4: "shift_xor_multiuse_cmp_or" has unsupported operation: builtin.unregistered: llvm.select - -4: "shift_xor_multiuse_cmp_or" has unsupported operation: builtin.unregistered: llvm.select - 1: "shift_xor_multiuse_cmp_xor" 4: "shift_xor_multiuse_cmp_xor" has unsupported operation: builtin.unregistered: llvm.icmp -4: "shift_xor_multiuse_cmp_xor" has unsupported operation: builtin.unregistered: llvm.select - -4: "shift_xor_multiuse_cmp_xor" has unsupported operation: builtin.unregistered: llvm.select - 1: "shift_xor_multiuse_cmp_and" 4: "shift_xor_multiuse_cmp_and" has unsupported operation: builtin.unregistered: llvm.icmp -4: "shift_xor_multiuse_cmp_and" has unsupported operation: builtin.unregistered: llvm.select - -4: "shift_xor_multiuse_cmp_and" has unsupported operation: builtin.unregistered: llvm.select - 1: "set_bits" -4: "set_bits" has unsupported operation: builtin.unregistered: llvm.select +2: llvm.func +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.and +2: llvm.or +2: builtin.unregistered: llvm.select +2: llvm.return 1: "set_bits_not_inverse_constant" -4: "set_bits_not_inverse_constant" has unsupported operation: builtin.unregistered: llvm.select +7: "set_bits_not_inverse_constant" is unchanged by InstCombine 1: "set_bits_extra_use1" 4: "set_bits_extra_use1" has unsupported operation: llvm.call -4: "set_bits_extra_use1" has unsupported operation: builtin.unregistered: llvm.select - 1: "set_bits_extra_use2" 4: "set_bits_extra_use2" has unsupported operation: llvm.call -4: "set_bits_extra_use2" has unsupported operation: builtin.unregistered: llvm.select - 1: "clear_bits" -4: "clear_bits" has unsupported operation: builtin.unregistered: llvm.select +8: "clear_bits" contains vectors which are unsupported 1: "clear_bits_not_inverse_constant" 4: "clear_bits_not_inverse_constant" has unsupported operation: llvm.mlir.undef @@ -503,43 +321,27 @@ 4: "clear_bits_not_inverse_constant" has unsupported operation: builtin.unregistered: llvm.insertelement -4: "clear_bits_not_inverse_constant" has unsupported operation: builtin.unregistered: llvm.select - 1: "clear_bits_extra_use1" 4: "clear_bits_extra_use1" has unsupported operation: llvm.call -4: "clear_bits_extra_use1" has unsupported operation: builtin.unregistered: llvm.select - 1: "clear_bits_extra_use2" 4: "clear_bits_extra_use2" has unsupported operation: llvm.call -4: "clear_bits_extra_use2" has unsupported operation: builtin.unregistered: llvm.select - 1: "xor_i8_to_i64_shl_save_and_eq" 4: "xor_i8_to_i64_shl_save_and_eq" has unsupported operation: builtin.unregistered: llvm.icmp -4: "xor_i8_to_i64_shl_save_and_eq" has unsupported operation: builtin.unregistered: llvm.select - 1: "xor_i8_to_i64_shl_save_and_ne" 4: "xor_i8_to_i64_shl_save_and_ne" has unsupported operation: builtin.unregistered: llvm.zext 1: "select_icmp_eq_and_1_0_srem_2_fail_null_identity" 4: "select_icmp_eq_and_1_0_srem_2_fail_null_identity" has unsupported operation: builtin.unregistered: llvm.icmp -4: "select_icmp_eq_and_1_0_srem_2_fail_null_identity" has unsupported operation: builtin.unregistered: llvm.select - 1: "select_icmp_eq_and_1_0_sdiv_2_fail_null_1_identity" 4: "select_icmp_eq_and_1_0_sdiv_2_fail_null_1_identity" has unsupported operation: builtin.unregistered: llvm.icmp -4: "select_icmp_eq_and_1_0_sdiv_2_fail_null_1_identity" has unsupported operation: builtin.unregistered: llvm.select - 1: "select_icmp_eq_and_1_0_lshr_fv" 4: "select_icmp_eq_and_1_0_lshr_fv" has unsupported operation after optimization: builtin.unregistered: llvm.icmp -4: "select_icmp_eq_and_1_0_lshr_fv" has unsupported operation after optimization: builtin.unregistered: llvm.select - 1: "select_icmp_eq_and_1_0_lshr_tv" 4: "select_icmp_eq_and_1_0_lshr_tv" has unsupported operation after optimization: builtin.unregistered: llvm.icmp -4: "select_icmp_eq_and_1_0_lshr_tv" has unsupported operation after optimization: builtin.unregistered: llvm.select - diff --git a/SSA/Projects/InstCombine/tests/logs/select_arithmetic.txt b/SSA/Projects/InstCombine/tests/logs/select_arithmetic.txt index 83101fba1..2fe9e0eea 100644 --- a/SSA/Projects/InstCombine/tests/logs/select_arithmetic.txt +++ b/SSA/Projects/InstCombine/tests/logs/select_arithmetic.txt @@ -1,51 +1,39 @@ 1: "test1a" -4: "test1a" has unsupported operation: builtin.unregistered: llvm.select +4: "test1a" has unsupported operation after optimization: builtin.unregistered: llvm.fadd 1: "test1b" -4: "test1b" has unsupported operation: builtin.unregistered: llvm.select +4: "test1b" has unsupported operation after optimization: builtin.unregistered: llvm.fadd + +4: "test1b" has unsupported operation after optimization: builtin.unregistered: llvm.fadd + +4: "test1b" has unsupported operation after optimization: builtin.unregistered: llvm.fadd 1: "test2" -4: "test2" has unsupported operation: builtin.unregistered: llvm.select +4: "test2" has unsupported operation after optimization: builtin.unregistered: llvm.fsub 1: "test3" -4: "test3" has unsupported operation: builtin.unregistered: llvm.select +4: "test3" has unsupported operation after optimization: builtin.unregistered: llvm.fmul 1: "use_float" 5: "use_float" is empty 1: "test4" -4: "test4" has unsupported operation: builtin.unregistered: llvm.select - -4: "test4" has unsupported operation: builtin.unregistered: llvm.select - 4: "test4" has unsupported operation: llvm.call 1: "test5" -4: "test5" has unsupported operation: builtin.unregistered: llvm.select - 4: "test5" has unsupported operation: builtin.unregistered: llvm.fmul 4: "test5" has unsupported operation: llvm.call 1: "fmul_nnan_nsz" -4: "fmul_nnan_nsz" has unsupported operation after optimization: builtin.unregistered: llvm.select - -4: "fmul_nnan_nsz" has unsupported operation after optimization: builtin.unregistered: llvm.select - 4: "fmul_nnan_nsz" has unsupported operation after optimization: builtin.unregistered: llvm.fmul 1: "fadd_nsz" -"fadd_nsz" contains vectors which are unsupported +8: "fadd_nsz" contains vectors which are unsupported 1: "fsub_nnan" 4: "fsub_nnan" has unsupported operation: builtin.unregistered: llvm.fadd -4: "fsub_nnan" has unsupported operation: builtin.unregistered: llvm.select - 1: "fdiv_nnan_nsz" -4: "fdiv_nnan_nsz" has unsupported operation: builtin.unregistered: llvm.select - -4: "fdiv_nnan_nsz" has unsupported operation: builtin.unregistered: llvm.select - 4: "fdiv_nnan_nsz" has unsupported operation: builtin.unregistered: llvm.fdiv diff --git a/SSA/Projects/InstCombine/tests/logs/select_meta.txt b/SSA/Projects/InstCombine/tests/logs/select_meta.txt index 78d17f7f9..d68fda3b0 100644 --- a/SSA/Projects/InstCombine/tests/logs/select_meta.txt +++ b/SSA/Projects/InstCombine/tests/logs/select_meta.txt @@ -1,20 +1,12 @@ 1: "foo" 4: "foo" has unsupported operation: builtin.unregistered: llvm.icmp -4: "foo" has unsupported operation: builtin.unregistered: llvm.select - 1: "shrink_select" 4: "shrink_select" has unsupported operation: builtin.unregistered: llvm.trunc -4: "shrink_select" has unsupported operation: builtin.unregistered: llvm.select - 1: "min_max_bitcast" 4: "min_max_bitcast" has unsupported operation: builtin.unregistered: llvm.fcmp -4: "min_max_bitcast" has unsupported operation: builtin.unregistered: llvm.select - -4: "min_max_bitcast" has unsupported operation: builtin.unregistered: llvm.select - 4: "min_max_bitcast" has unsupported operation: llvm.store 4: "min_max_bitcast" has unsupported operation: llvm.store @@ -24,16 +16,12 @@ 1: "foo2" 4: "foo2" has unsupported operation: builtin.unregistered: llvm.icmp -4: "foo2" has unsupported operation: builtin.unregistered: llvm.select - 1: "test43" 4: "test43" has unsupported operation: builtin.unregistered: llvm.intr.smax 4: "test43" has unsupported operation: builtin.unregistered: llvm.zext 1: "scalar_select_of_vectors_sext" -4: "scalar_select_of_vectors_sext" has unsupported operation: builtin.unregistered: llvm.select - 4: "scalar_select_of_vectors_sext" has unsupported operation: builtin.unregistered: llvm.sext 1: "t7" @@ -84,33 +72,42 @@ 4: "umax2" has unsupported operation: builtin.unregistered: llvm.intr.umax 1: "not_cond" -4: "not_cond" has unsupported operation: builtin.unregistered: llvm.select +2: llvm.func +2: llvm.mlir.constant +2: llvm.xor +2: builtin.unregistered: llvm.select +2: llvm.return 1: "not_cond_vec" -4: "not_cond_vec" has unsupported operation: builtin.unregistered: llvm.select +8: "not_cond_vec" contains vectors which are unsupported 1: "not_cond_vec_poison" -4: "not_cond_vec_poison" has unsupported operation: builtin.unregistered: llvm.select +8: "not_cond_vec_poison" contains vectors which are unsupported 1: "select_add" -4: "select_add" has unsupported operation: builtin.unregistered: llvm.select +2: llvm.func +2: llvm.add +2: builtin.unregistered: llvm.select +2: llvm.return 1: "select_or" -4: "select_or" has unsupported operation: builtin.unregistered: llvm.select +8: "select_or" contains vectors which are unsupported 1: "select_sub" -4: "select_sub" has unsupported operation: builtin.unregistered: llvm.select +2: llvm.func +2: llvm.sub +2: builtin.unregistered: llvm.select +2: llvm.return 1: "select_ashr" -4: "select_ashr" has unsupported operation: builtin.unregistered: llvm.select +2: llvm.func +2: llvm.ashr +2: builtin.unregistered: llvm.select +2: llvm.return 1: "select_fmul" -4: "select_fmul" has unsupported operation: builtin.unregistered: llvm.select - 4: "select_fmul" has unsupported operation: builtin.unregistered: llvm.fmul 1: "select_fdiv" -4: "select_fdiv" has unsupported operation: builtin.unregistered: llvm.select - 4: "select_fdiv" has unsupported operation: builtin.unregistered: llvm.fdiv diff --git a/SSA/Projects/InstCombine/tests/logs/set-lowbits-mask-canonicalize.txt b/SSA/Projects/InstCombine/tests/logs/set-lowbits-mask-canonicalize.txt index 0a863a1cb..f3e0a1f98 100644 --- a/SSA/Projects/InstCombine/tests/logs/set-lowbits-mask-canonicalize.txt +++ b/SSA/Projects/InstCombine/tests/logs/set-lowbits-mask-canonicalize.txt @@ -127,16 +127,16 @@ 2: llvm.return 1: "shl_add_vec" -"shl_add_vec" contains vectors which are unsupported +8: "shl_add_vec" contains vectors which are unsupported 1: "shl_add_vec_poison0" -"shl_add_vec_poison0" contains vectors which are unsupported +8: "shl_add_vec_poison0" contains vectors which are unsupported 1: "shl_add_vec_poison1" -"shl_add_vec_poison1" contains vectors which are unsupported +8: "shl_add_vec_poison1" contains vectors which are unsupported 1: "shl_add_vec_poison2" -"shl_add_vec_poison2" contains vectors which are unsupported +8: "shl_add_vec_poison2" contains vectors which are unsupported 1: "use32" 5: "use32" is empty diff --git a/SSA/Projects/InstCombine/tests/logs/set.txt b/SSA/Projects/InstCombine/tests/logs/set.txt index 8cdc9db02..d30babfee 100644 --- a/SSA/Projects/InstCombine/tests/logs/set.txt +++ b/SSA/Projects/InstCombine/tests/logs/set.txt @@ -19,8 +19,6 @@ 4: "test1_logical" has unsupported operation after optimization: builtin.unregistered: llvm.icmp -4: "test1_logical" has unsupported operation after optimization: builtin.unregistered: llvm.select - 1: "test2" 4: "test2" has unsupported operation after optimization: llvm.mlir.addressof @@ -39,8 +37,6 @@ 4: "test2_logical" has unsupported operation after optimization: builtin.unregistered: llvm.icmp -4: "test2_logical" has unsupported operation after optimization: builtin.unregistered: llvm.select - 1: "test3" 4: "test3" has unsupported operation after optimization: builtin.unregistered: llvm.icmp @@ -75,13 +71,13 @@ 4: "test13" has unsupported operation after optimization: builtin.unregistered: llvm.icmp 1: "test13vec" -"test13vec" contains vectors which are unsupported +8: "test13vec" contains vectors which are unsupported 1: "test14" 4: "test14" has unsupported operation after optimization: builtin.unregistered: llvm.icmp 1: "test14vec" -"test14vec" contains vectors which are unsupported +8: "test14vec" contains vectors which are unsupported 1: "bool_eq0" 4: "bool_eq0" has unsupported operation: builtin.unregistered: llvm.icmp @@ -169,7 +165,7 @@ 4: "test20" has unsupported operation after optimization: builtin.unregistered: llvm.zext 1: "test20vec" -"test20vec" contains vectors which are unsupported +8: "test20vec" contains vectors which are unsupported 1: "test21" 4: "test21" has unsupported operation after optimization: builtin.unregistered: llvm.icmp @@ -177,7 +173,7 @@ 4: "test21" has unsupported operation after optimization: builtin.unregistered: llvm.zext 1: "test21vec" -"test21vec" contains vectors which are unsupported +8: "test21vec" contains vectors which are unsupported 1: "test22" 4: "test22" has unsupported operation after optimization: builtin.unregistered: llvm.icmp @@ -189,15 +185,13 @@ 4: "test22_logical" has unsupported operation after optimization: builtin.unregistered: llvm.icmp -4: "test22_logical" has unsupported operation after optimization: builtin.unregistered: llvm.select - 1: "test23" 4: "test23" has unsupported operation after optimization: builtin.unregistered: llvm.icmp 4: "test23" has unsupported operation after optimization: builtin.unregistered: llvm.zext 1: "test23vec" -"test23vec" contains vectors which are unsupported +8: "test23vec" contains vectors which are unsupported 1: "test24" 4: "test24" has unsupported operation after optimization: builtin.unregistered: llvm.icmp @@ -205,7 +199,7 @@ 4: "test24" has unsupported operation after optimization: builtin.unregistered: llvm.zext 1: "test24vec" -"test24vec" contains vectors which are unsupported +8: "test24vec" contains vectors which are unsupported 1: "test25" 4: "test25" has unsupported operation after optimization: builtin.unregistered: llvm.icmp diff --git a/SSA/Projects/InstCombine/tests/logs/sext.txt b/SSA/Projects/InstCombine/tests/logs/sext.txt index b82b8379b..2eb2c1b0e 100644 --- a/SSA/Projects/InstCombine/tests/logs/sext.txt +++ b/SSA/Projects/InstCombine/tests/logs/sext.txt @@ -20,8 +20,6 @@ 4: "test3" has unsupported operation: builtin.unregistered: llvm.zext 1: "test4" -4: "test4" has unsupported operation: llvm.udiv - 4: "test4" has unsupported operation: builtin.unregistered: llvm.zext 1: "test5" @@ -34,7 +32,9 @@ 4: "test7" has unsupported operation: builtin.unregistered: llvm.zext 1: "test8" -4: "test8" has unsupported operation: builtin.unregistered: llvm.select +4: "test8" has unsupported operation after optimization: builtin.unregistered: llvm.trunc + +4: "test8" has unsupported operation after optimization: builtin.unregistered: llvm.sext 1: "test9" 4: "test9" has unsupported operation: builtin.unregistered: llvm.cond_br @@ -47,10 +47,10 @@ 4: "test10" has unsupported operation after optimization: builtin.unregistered: llvm.sext 1: "test10_vec" -"test10_vec" contains vectors which are unsupported +8: "test10_vec" contains vectors which are unsupported 1: "test10_vec_nonuniform" -"test10_vec_nonuniform" contains vectors which are unsupported +8: "test10_vec_nonuniform" contains vectors which are unsupported 1: "test10_vec_poison0" 4: "test10_vec_poison0" has unsupported operation: builtin.unregistered: llvm.mlir.poison diff --git a/SSA/Projects/InstCombine/tests/logs/shift-add.txt b/SSA/Projects/InstCombine/tests/logs/shift-add.txt index ccf88ce09..24e254864 100644 --- a/SSA/Projects/InstCombine/tests/logs/shift-add.txt +++ b/SSA/Projects/InstCombine/tests/logs/shift-add.txt @@ -137,7 +137,7 @@ 2: llvm.return 1: "lshr_add_nuw" -"lshr_add_nuw" contains vectors which are unsupported +8: "lshr_add_nuw" contains vectors which are unsupported 1: "ashr_add_nuw" 4: "ashr_add_nuw" has unsupported operation: llvm.store @@ -200,7 +200,7 @@ 4: "lshr_exact_add_negative_shift_positive_extra_use" has unsupported operation: llvm.call 1: "lshr_exact_add_negative_shift_positive_vec" -"lshr_exact_add_negative_shift_positive_vec" contains vectors which are unsupported +8: "lshr_exact_add_negative_shift_positive_vec" contains vectors which are unsupported 1: "lshr_exact_add_negative_shift_lzcnt" 7: "lshr_exact_add_negative_shift_lzcnt" is unchanged by InstCombine @@ -226,7 +226,7 @@ 4: "ashr_exact_add_negative_shift_negative_extra_use" has unsupported operation: llvm.call 1: "ashr_exact_add_negative_shift_negative_vec" -"ashr_exact_add_negative_shift_negative_vec" contains vectors which are unsupported +8: "ashr_exact_add_negative_shift_negative_vec" contains vectors which are unsupported 1: "ashr_exact_add_negative_leading_ones_vec" 7: "ashr_exact_add_negative_leading_ones_vec" is unchanged by InstCombine @@ -406,8 +406,8 @@ 2: llvm.return 1: "ashr_fold_or_disjoint_cnt" -"ashr_fold_or_disjoint_cnt" contains vectors which are unsupported +8: "ashr_fold_or_disjoint_cnt" contains vectors which are unsupported 1: "lshr_fold_or_disjoint_cnt_out_of_bounds" -"lshr_fold_or_disjoint_cnt_out_of_bounds" contains vectors which are unsupported +8: "lshr_fold_or_disjoint_cnt_out_of_bounds" contains vectors which are unsupported diff --git a/SSA/Projects/InstCombine/tests/logs/shift-amount-reassociation-in-bittest-with-truncation-lshr.txt b/SSA/Projects/InstCombine/tests/logs/shift-amount-reassociation-in-bittest-with-truncation-lshr.txt index 805a1d4e4..44faf94c9 100644 --- a/SSA/Projects/InstCombine/tests/logs/shift-amount-reassociation-in-bittest-with-truncation-lshr.txt +++ b/SSA/Projects/InstCombine/tests/logs/shift-amount-reassociation-in-bittest-with-truncation-lshr.txt @@ -103,7 +103,7 @@ 4: "t15_vec_x_is_one_or_zero" has unsupported operation: builtin.unregistered: llvm.icmp 1: "t16_vec_y_is_one_or_zero" -"t16_vec_y_is_one_or_zero" contains vectors which are unsupported +8: "t16_vec_y_is_one_or_zero" contains vectors which are unsupported 1: "rawspeed_signbit" 4: "rawspeed_signbit" has unsupported operation: builtin.unregistered: llvm.icmp diff --git a/SSA/Projects/InstCombine/tests/logs/shift-amount-reassociation.txt b/SSA/Projects/InstCombine/tests/logs/shift-amount-reassociation.txt index 2332957d5..158ab96c8 100644 --- a/SSA/Projects/InstCombine/tests/logs/shift-amount-reassociation.txt +++ b/SSA/Projects/InstCombine/tests/logs/shift-amount-reassociation.txt @@ -9,10 +9,10 @@ 2: llvm.return 1: "t1_vec_splat" -"t1_vec_splat" contains vectors which are unsupported +8: "t1_vec_splat" contains vectors which are unsupported 1: "t2_vec_nonsplat" -"t2_vec_nonsplat" contains vectors which are unsupported +8: "t2_vec_nonsplat" contains vectors which are unsupported 1: "t3_vec_nonsplat_poison0" 4: "t3_vec_nonsplat_poison0" has unsupported operation: builtin.unregistered: llvm.mlir.poison diff --git a/SSA/Projects/InstCombine/tests/logs/shift-logic.txt b/SSA/Projects/InstCombine/tests/logs/shift-logic.txt index e08d01975..67757b710 100644 --- a/SSA/Projects/InstCombine/tests/logs/shift-logic.txt +++ b/SSA/Projects/InstCombine/tests/logs/shift-logic.txt @@ -11,7 +11,7 @@ 2: llvm.return 1: "shl_and_nonuniform" -"shl_and_nonuniform" contains vectors which are unsupported +8: "shl_and_nonuniform" contains vectors which are unsupported 1: "shl_or" 2: llvm.func @@ -49,7 +49,7 @@ 2: llvm.return 1: "shl_xor_nonuniform" -"shl_xor_nonuniform" contains vectors which are unsupported +8: "shl_xor_nonuniform" contains vectors which are unsupported 1: "lshr_and" 2: llvm.func @@ -78,16 +78,16 @@ 4: "lshr_and_poison" has unsupported operation: builtin.unregistered: llvm.insertelement 1: "lshr_or" -"lshr_or" contains vectors which are unsupported +8: "lshr_or" contains vectors which are unsupported 1: "lshr_xor" -"lshr_xor" contains vectors which are unsupported +8: "lshr_xor" contains vectors which are unsupported 1: "ashr_and" -"ashr_and" contains vectors which are unsupported +8: "ashr_and" contains vectors which are unsupported 1: "ashr_or" -"ashr_or" contains vectors which are unsupported +8: "ashr_or" contains vectors which are unsupported 1: "ashr_xor" 2: llvm.func @@ -146,7 +146,7 @@ 2: llvm.return 1: "lshr_mul_vector" -"lshr_mul_vector" contains vectors which are unsupported +8: "lshr_mul_vector" contains vectors which are unsupported 1: "lshr_mul_negative_noexact" 7: "lshr_mul_negative_noexact" is unchanged by InstCombine @@ -180,7 +180,7 @@ 4: "shl_add_multiuse_nonconstant" has unsupported operation: llvm.call 1: "shl_add_nonuniform" -"shl_add_nonuniform" contains vectors which are unsupported +8: "shl_add_nonuniform" contains vectors which are unsupported 1: "shl_add_poison" 4: "shl_add_poison" has unsupported operation: builtin.unregistered: llvm.mlir.poison @@ -237,7 +237,7 @@ 2: llvm.return 1: "shl_sub_nonuniform" -"shl_sub_nonuniform" contains vectors which are unsupported +8: "shl_sub_nonuniform" contains vectors which are unsupported 1: "shl_sub_poison" 4: "shl_sub_poison" has unsupported operation: builtin.unregistered: llvm.mlir.poison diff --git a/SSA/Projects/InstCombine/tests/logs/shift-shift.txt b/SSA/Projects/InstCombine/tests/logs/shift-shift.txt index 6d3456e5f..c3f6d2b48 100644 --- a/SSA/Projects/InstCombine/tests/logs/shift-shift.txt +++ b/SSA/Projects/InstCombine/tests/logs/shift-shift.txt @@ -32,7 +32,7 @@ 2: llvm.return 1: "shl_shl_splat_vec" -"shl_shl_splat_vec" contains vectors which are unsupported +8: "shl_shl_splat_vec" contains vectors which are unsupported 1: "shl_shl_vec" 7: "shl_shl_vec" is unchanged by InstCombine @@ -46,10 +46,10 @@ 2: llvm.return 1: "lshr_lshr_splat_vec" -"lshr_lshr_splat_vec" contains vectors which are unsupported +8: "lshr_lshr_splat_vec" contains vectors which are unsupported 1: "lshr_lshr_vec" -"lshr_lshr_vec" contains vectors which are unsupported +8: "lshr_lshr_vec" contains vectors which are unsupported 1: "shl_trunc_bigger_lshr" 4: "shl_trunc_bigger_lshr" has unsupported operation: builtin.unregistered: llvm.trunc @@ -132,7 +132,13 @@ 4: "shl_shl_constants_vec" has unsupported operation: builtin.unregistered: llvm.insertelement 1: "shl_shl_constants_div" -4: "shl_shl_constants_div" has unsupported operation after optimization: llvm.udiv +2: llvm.func +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.shl +2: llvm.shl +2: llvm.udiv +2: llvm.return 1: "ashr_lshr_constants" 7: "ashr_lshr_constants" is unchanged by InstCombine @@ -246,7 +252,7 @@ 7: "lshr_shl_demand4" is unchanged by InstCombine 1: "lshr_shl_demand5" -"lshr_shl_demand5" contains vectors which are unsupported +8: "lshr_shl_demand5" contains vectors which are unsupported 1: "lshr_shl_demand5_undef_left" 4: "lshr_shl_demand5_undef_left" has unsupported operation: llvm.mlir.undef @@ -270,7 +276,7 @@ 7: "lshr_shl_demand5_nonuniform_vec_left" is unchanged by InstCombine 1: "lshr_shl_demand5_nonuniform_vec_right" -"lshr_shl_demand5_nonuniform_vec_right" contains vectors which are unsupported +8: "lshr_shl_demand5_nonuniform_vec_right" contains vectors which are unsupported 1: "lshr_shl_demand5_nonuniform_vec_both" 7: "lshr_shl_demand5_nonuniform_vec_both" is unchanged by InstCombine diff --git a/SSA/Projects/InstCombine/tests/logs/shift-sra.txt b/SSA/Projects/InstCombine/tests/logs/shift-sra.txt index 8c889756b..608e20d7c 100644 --- a/SSA/Projects/InstCombine/tests/logs/shift-sra.txt +++ b/SSA/Projects/InstCombine/tests/logs/shift-sra.txt @@ -48,10 +48,10 @@ 2: llvm.return 1: "ashr_ashr_splat_vec" -"ashr_ashr_splat_vec" contains vectors which are unsupported +8: "ashr_ashr_splat_vec" contains vectors which are unsupported 1: "ashr_overshift_splat_vec" -"ashr_overshift_splat_vec" contains vectors which are unsupported +8: "ashr_overshift_splat_vec" contains vectors which are unsupported 1: "hoist_ashr_ahead_of_sext_1" 4: "hoist_ashr_ahead_of_sext_1" has unsupported operation: builtin.unregistered: llvm.sext diff --git a/SSA/Projects/InstCombine/tests/logs/shl-bo.txt b/SSA/Projects/InstCombine/tests/logs/shl-bo.txt index bb8b4e73e..952262bd1 100644 --- a/SSA/Projects/InstCombine/tests/logs/shl-bo.txt +++ b/SSA/Projects/InstCombine/tests/logs/shl-bo.txt @@ -12,7 +12,7 @@ 2: llvm.return 1: "lshr_add_commute_splat" -"lshr_add_commute_splat" contains vectors which are unsupported +8: "lshr_add_commute_splat" contains vectors which are unsupported 1: "lshr_sub" 2: llvm.func @@ -25,7 +25,7 @@ 2: llvm.return 1: "lshr_sub_commute_splat" -"lshr_sub_commute_splat" contains vectors which are unsupported +8: "lshr_sub_commute_splat" contains vectors which are unsupported 1: "lshr_and" 2: llvm.func @@ -38,7 +38,7 @@ 2: llvm.return 1: "lshr_and_commute_splat" -"lshr_and_commute_splat" contains vectors which are unsupported +8: "lshr_and_commute_splat" contains vectors which are unsupported 1: "lshr_or" 2: llvm.func @@ -51,7 +51,7 @@ 2: llvm.return 1: "lshr_or_commute_splat" -"lshr_or_commute_splat" contains vectors which are unsupported +8: "lshr_or_commute_splat" contains vectors which are unsupported 1: "lshr_xor" 2: llvm.func @@ -64,7 +64,7 @@ 2: llvm.return 1: "lshr_xor_commute_splat" -"lshr_xor_commute_splat" contains vectors which are unsupported +8: "lshr_xor_commute_splat" contains vectors which are unsupported 1: "lshr_add_use1" 4: "lshr_add_use1" has unsupported operation: llvm.call @@ -85,7 +85,7 @@ 2: llvm.return 1: "lshr_and_add_commute_splat" -"lshr_and_add_commute_splat" contains vectors which are unsupported +8: "lshr_and_add_commute_splat" contains vectors which are unsupported 1: "lshr_and_sub" 2: llvm.func @@ -100,7 +100,7 @@ 2: llvm.return 1: "lshr_and_sub_commute_splat" -"lshr_and_sub_commute_splat" contains vectors which are unsupported +8: "lshr_and_sub_commute_splat" contains vectors which are unsupported 1: "lshr_and_and" 2: llvm.func @@ -115,7 +115,7 @@ 2: llvm.return 1: "lshr_and_and_commute_splat" -"lshr_and_and_commute_splat" contains vectors which are unsupported +8: "lshr_and_and_commute_splat" contains vectors which are unsupported 1: "lshr_and_or" 2: llvm.func @@ -154,7 +154,7 @@ 2: llvm.return 1: "lshr_and_or_commute_splat" -"lshr_and_or_commute_splat" contains vectors which are unsupported +8: "lshr_and_or_commute_splat" contains vectors which are unsupported 1: "lshr_and_xor" 2: llvm.func @@ -169,7 +169,7 @@ 2: llvm.return 1: "lshr_and_xor_commute_splat" -"lshr_and_xor_commute_splat" contains vectors which are unsupported +8: "lshr_and_xor_commute_splat" contains vectors which are unsupported 1: "lshr_and_add_use1" 4: "lshr_and_add_use1" has unsupported operation: llvm.call @@ -224,7 +224,7 @@ 2: llvm.return 1: "lshr_add_and_shl_v2i32" -"lshr_add_and_shl_v2i32" contains vectors which are unsupported +8: "lshr_add_and_shl_v2i32" contains vectors which are unsupported 1: "lshr_add_and_shl_v2i32_undef" 4: "lshr_add_and_shl_v2i32_undef" has unsupported operation: llvm.mlir.undef @@ -255,7 +255,7 @@ 2: llvm.return 1: "shl_add_and_lshr_v2i32" -"shl_add_and_lshr_v2i32" contains vectors which are unsupported +8: "shl_add_and_lshr_v2i32" contains vectors which are unsupported 1: "shl_add_and_lshr_v2i32_undef" 4: "shl_add_and_lshr_v2i32_undef" has unsupported operation: llvm.mlir.undef @@ -276,11 +276,11 @@ 7: "shl_add_and_lshr_v2i32_nonuniform" is unchanged by InstCombine 1: "test_FoldShiftByConstant_CreateSHL" -"test_FoldShiftByConstant_CreateSHL" contains vectors which are unsupported +8: "test_FoldShiftByConstant_CreateSHL" contains vectors which are unsupported 1: "test_FoldShiftByConstant_CreateSHL2" -"test_FoldShiftByConstant_CreateSHL2" contains vectors which are unsupported +8: "test_FoldShiftByConstant_CreateSHL2" contains vectors which are unsupported 1: "test_FoldShiftByConstant_CreateAnd" -"test_FoldShiftByConstant_CreateAnd" contains vectors which are unsupported +8: "test_FoldShiftByConstant_CreateAnd" contains vectors which are unsupported diff --git a/SSA/Projects/InstCombine/tests/logs/shl-demand.txt b/SSA/Projects/InstCombine/tests/logs/shl-demand.txt index b22c47c56..8fe004d03 100644 --- a/SSA/Projects/InstCombine/tests/logs/shl-demand.txt +++ b/SSA/Projects/InstCombine/tests/logs/shl-demand.txt @@ -69,7 +69,7 @@ 2: llvm.return 1: "src_srem_shl_mask_vector" -"src_srem_shl_mask_vector" contains vectors which are unsupported +8: "src_srem_shl_mask_vector" contains vectors which are unsupported 1: "src_srem_shl_mask_vector_nonconstant" 7: "src_srem_shl_mask_vector_nonconstant" is unchanged by InstCombine diff --git a/SSA/Projects/InstCombine/tests/logs/shl-factor.txt b/SSA/Projects/InstCombine/tests/logs/shl-factor.txt index 2ec23abe5..8f7a30739 100644 --- a/SSA/Projects/InstCombine/tests/logs/shl-factor.txt +++ b/SSA/Projects/InstCombine/tests/logs/shl-factor.txt @@ -9,7 +9,7 @@ 2: llvm.return 1: "add_shl_same_amount_nsw" -"add_shl_same_amount_nsw" contains vectors which are unsupported +8: "add_shl_same_amount_nsw" contains vectors which are unsupported 1: "add_shl_same_amount_nuw" 2: llvm.func @@ -65,7 +65,7 @@ 2: llvm.return 1: "sub_shl_same_amount_nsw" -"sub_shl_same_amount_nsw" contains vectors which are unsupported +8: "sub_shl_same_amount_nsw" contains vectors which are unsupported 1: "sub_shl_same_amount_nuw" 2: llvm.func diff --git a/SSA/Projects/InstCombine/tests/logs/shl-sub.txt b/SSA/Projects/InstCombine/tests/logs/shl-sub.txt index 847724da7..3b405e448 100644 --- a/SSA/Projects/InstCombine/tests/logs/shl-sub.txt +++ b/SSA/Projects/InstCombine/tests/logs/shl-sub.txt @@ -29,10 +29,10 @@ 2: llvm.return 1: "shl_sub_i64_vec" -"shl_sub_i64_vec" contains vectors which are unsupported +8: "shl_sub_i64_vec" contains vectors which are unsupported 1: "shl_sub_i64_vec_poison" -"shl_sub_i64_vec_poison" contains vectors which are unsupported +8: "shl_sub_i64_vec_poison" contains vectors which are unsupported 1: "shl_bad_sub_i32" 2: llvm.func @@ -78,7 +78,7 @@ 2: llvm.return 1: "shl_bad_sub_i64_vec" -"shl_bad_sub_i64_vec" contains vectors which are unsupported +8: "shl_bad_sub_i64_vec" contains vectors which are unsupported 1: "bad_shl_sub_i64_vec" 7: "bad_shl_sub_i64_vec" is unchanged by InstCombine @@ -122,7 +122,7 @@ 2: llvm.return 1: "shl_const_op1_sub_const_op0_splat" -"shl_const_op1_sub_const_op0_splat" contains vectors which are unsupported +8: "shl_const_op1_sub_const_op0_splat" contains vectors which are unsupported 1: "shl_const_op1_sub_const_op0_use" 4: "shl_const_op1_sub_const_op0_use" has unsupported operation: llvm.call diff --git a/SSA/Projects/InstCombine/tests/logs/shuffle-select-narrow-inseltpoison.txt b/SSA/Projects/InstCombine/tests/logs/shuffle-select-narrow-inseltpoison.txt index 78e45a3dc..8d513fd16 100644 --- a/SSA/Projects/InstCombine/tests/logs/shuffle-select-narrow-inseltpoison.txt +++ b/SSA/Projects/InstCombine/tests/logs/shuffle-select-narrow-inseltpoison.txt @@ -5,8 +5,6 @@ 4: "narrow_shuffle_of_select" has unsupported operation: builtin.unregistered: llvm.shufflevector -4: "narrow_shuffle_of_select" has unsupported operation: builtin.unregistered: llvm.select - 1: "narrow_shuffle_of_select_overspecified_extend" 4: "narrow_shuffle_of_select_overspecified_extend" has unsupported operation: builtin.unregistered: llvm.mlir.poison @@ -14,8 +12,6 @@ 4: "narrow_shuffle_of_select_overspecified_extend" has unsupported operation: builtin.unregistered: llvm.shufflevector -4: "narrow_shuffle_of_select_overspecified_extend" has unsupported operation: builtin.unregistered: llvm.select - 1: "narrow_shuffle_of_select_undefs" 4: "narrow_shuffle_of_select_undefs" has unsupported operation: builtin.unregistered: llvm.mlir.poison @@ -23,8 +19,6 @@ 4: "narrow_shuffle_of_select_undefs" has unsupported operation: builtin.unregistered: llvm.shufflevector -4: "narrow_shuffle_of_select_undefs" has unsupported operation: builtin.unregistered: llvm.select - 1: "use" 5: "use" is empty @@ -38,8 +32,6 @@ 4: "narrow_shuffle_of_select_use1" has unsupported operation: builtin.unregistered: llvm.shufflevector -4: "narrow_shuffle_of_select_use1" has unsupported operation: builtin.unregistered: llvm.select - 4: "narrow_shuffle_of_select_use1" has unsupported operation: llvm.call 4: "narrow_shuffle_of_select_use1" has unsupported operation: builtin.unregistered: llvm.shufflevector @@ -53,8 +45,6 @@ 4: "narrow_shuffle_of_select_use2" has unsupported operation: llvm.call -4: "narrow_shuffle_of_select_use2" has unsupported operation: builtin.unregistered: llvm.select - 4: "narrow_shuffle_of_select_use2" has unsupported operation: builtin.unregistered: llvm.shufflevector 1: "narrow_shuffle_of_select_mismatch_types1" @@ -64,8 +54,6 @@ 4: "narrow_shuffle_of_select_mismatch_types1" has unsupported operation: builtin.unregistered: llvm.shufflevector -4: "narrow_shuffle_of_select_mismatch_types1" has unsupported operation: builtin.unregistered: llvm.select - 4: "narrow_shuffle_of_select_mismatch_types1" has unsupported operation: builtin.unregistered: llvm.shufflevector 1: "narrow_shuffle_of_select_mismatch_types2" @@ -75,13 +63,11 @@ 4: "narrow_shuffle_of_select_mismatch_types2" has unsupported operation: builtin.unregistered: llvm.shufflevector -4: "narrow_shuffle_of_select_mismatch_types2" has unsupported operation: builtin.unregistered: llvm.select - 4: "narrow_shuffle_of_select_mismatch_types2" has unsupported operation: builtin.unregistered: llvm.shufflevector 1: "narrow_shuffle_of_select_consts" -4: "narrow_shuffle_of_select_consts" has unsupported operation: builtin.unregistered: llvm.select +8: "narrow_shuffle_of_select_consts" contains vectors which are unsupported 1: "narrow_shuffle_of_select_with_widened_ops" -4: "narrow_shuffle_of_select_with_widened_ops" has unsupported operation: builtin.unregistered: llvm.select +8: "narrow_shuffle_of_select_with_widened_ops" contains vectors which are unsupported diff --git a/SSA/Projects/InstCombine/tests/logs/shuffle-select-narrow.txt b/SSA/Projects/InstCombine/tests/logs/shuffle-select-narrow.txt index 78e45a3dc..8d513fd16 100644 --- a/SSA/Projects/InstCombine/tests/logs/shuffle-select-narrow.txt +++ b/SSA/Projects/InstCombine/tests/logs/shuffle-select-narrow.txt @@ -5,8 +5,6 @@ 4: "narrow_shuffle_of_select" has unsupported operation: builtin.unregistered: llvm.shufflevector -4: "narrow_shuffle_of_select" has unsupported operation: builtin.unregistered: llvm.select - 1: "narrow_shuffle_of_select_overspecified_extend" 4: "narrow_shuffle_of_select_overspecified_extend" has unsupported operation: builtin.unregistered: llvm.mlir.poison @@ -14,8 +12,6 @@ 4: "narrow_shuffle_of_select_overspecified_extend" has unsupported operation: builtin.unregistered: llvm.shufflevector -4: "narrow_shuffle_of_select_overspecified_extend" has unsupported operation: builtin.unregistered: llvm.select - 1: "narrow_shuffle_of_select_undefs" 4: "narrow_shuffle_of_select_undefs" has unsupported operation: builtin.unregistered: llvm.mlir.poison @@ -23,8 +19,6 @@ 4: "narrow_shuffle_of_select_undefs" has unsupported operation: builtin.unregistered: llvm.shufflevector -4: "narrow_shuffle_of_select_undefs" has unsupported operation: builtin.unregistered: llvm.select - 1: "use" 5: "use" is empty @@ -38,8 +32,6 @@ 4: "narrow_shuffle_of_select_use1" has unsupported operation: builtin.unregistered: llvm.shufflevector -4: "narrow_shuffle_of_select_use1" has unsupported operation: builtin.unregistered: llvm.select - 4: "narrow_shuffle_of_select_use1" has unsupported operation: llvm.call 4: "narrow_shuffle_of_select_use1" has unsupported operation: builtin.unregistered: llvm.shufflevector @@ -53,8 +45,6 @@ 4: "narrow_shuffle_of_select_use2" has unsupported operation: llvm.call -4: "narrow_shuffle_of_select_use2" has unsupported operation: builtin.unregistered: llvm.select - 4: "narrow_shuffle_of_select_use2" has unsupported operation: builtin.unregistered: llvm.shufflevector 1: "narrow_shuffle_of_select_mismatch_types1" @@ -64,8 +54,6 @@ 4: "narrow_shuffle_of_select_mismatch_types1" has unsupported operation: builtin.unregistered: llvm.shufflevector -4: "narrow_shuffle_of_select_mismatch_types1" has unsupported operation: builtin.unregistered: llvm.select - 4: "narrow_shuffle_of_select_mismatch_types1" has unsupported operation: builtin.unregistered: llvm.shufflevector 1: "narrow_shuffle_of_select_mismatch_types2" @@ -75,13 +63,11 @@ 4: "narrow_shuffle_of_select_mismatch_types2" has unsupported operation: builtin.unregistered: llvm.shufflevector -4: "narrow_shuffle_of_select_mismatch_types2" has unsupported operation: builtin.unregistered: llvm.select - 4: "narrow_shuffle_of_select_mismatch_types2" has unsupported operation: builtin.unregistered: llvm.shufflevector 1: "narrow_shuffle_of_select_consts" -4: "narrow_shuffle_of_select_consts" has unsupported operation: builtin.unregistered: llvm.select +8: "narrow_shuffle_of_select_consts" contains vectors which are unsupported 1: "narrow_shuffle_of_select_with_widened_ops" -4: "narrow_shuffle_of_select_with_widened_ops" has unsupported operation: builtin.unregistered: llvm.select +8: "narrow_shuffle_of_select_with_widened_ops" contains vectors which are unsupported diff --git a/SSA/Projects/InstCombine/tests/logs/shuffle_select-inseltpoison.txt b/SSA/Projects/InstCombine/tests/logs/shuffle_select-inseltpoison.txt index 882a11de4..f6a0ea168 100644 --- a/SSA/Projects/InstCombine/tests/logs/shuffle_select-inseltpoison.txt +++ b/SSA/Projects/InstCombine/tests/logs/shuffle_select-inseltpoison.txt @@ -1,8 +1,8 @@ 1: "add" -"add" contains vectors which are unsupported +8: "add" contains vectors which are unsupported 1: "add_nuw_nsw" -"add_nuw_nsw" contains vectors which are unsupported +8: "add_nuw_nsw" contains vectors which are unsupported 1: "add_undef_mask_elt" 4: "add_undef_mask_elt" has unsupported operation: llvm.mlir.undef @@ -59,34 +59,34 @@ 4: "mul" has unsupported operation: builtin.unregistered: llvm.insertelement 1: "shl" -"shl" contains vectors which are unsupported +8: "shl" contains vectors which are unsupported 1: "shl_nsw" -"shl_nsw" contains vectors which are unsupported +8: "shl_nsw" contains vectors which are unsupported 1: "shl_undef_mask_elt" -"shl_undef_mask_elt" contains vectors which are unsupported +8: "shl_undef_mask_elt" contains vectors which are unsupported 1: "shl_nuw_undef_mask_elt" -"shl_nuw_undef_mask_elt" contains vectors which are unsupported +8: "shl_nuw_undef_mask_elt" contains vectors which are unsupported 1: "lshr_constant_op0" -"lshr_constant_op0" contains vectors which are unsupported +8: "lshr_constant_op0" contains vectors which are unsupported 1: "lshr_exact_constant_op0" -"lshr_exact_constant_op0" contains vectors which are unsupported +8: "lshr_exact_constant_op0" contains vectors which are unsupported 1: "lshr_undef_mask_elt" -"lshr_undef_mask_elt" contains vectors which are unsupported +8: "lshr_undef_mask_elt" contains vectors which are unsupported 1: "lshr_exact_undef_mask_elt" -"lshr_exact_undef_mask_elt" contains vectors which are unsupported +8: "lshr_exact_undef_mask_elt" contains vectors which are unsupported 1: "lshr_constant_op1" 4: "lshr_constant_op1" has unsupported operation: builtin.unregistered: llvm.shufflevector 1: "ashr" -"ashr" contains vectors which are unsupported +8: "ashr" contains vectors which are unsupported 1: "and" 4: "and" has unsupported operation: llvm.mlir.undef @@ -106,39 +106,31 @@ 4: "or" has unsupported operation: llvm.call 1: "xor" -"xor" contains vectors which are unsupported +8: "xor" contains vectors which are unsupported 1: "udiv" -4: "udiv" has unsupported operation: llvm.udiv - 4: "udiv" has unsupported operation: builtin.unregistered: llvm.shufflevector 1: "udiv_exact" -4: "udiv_exact" has unsupported operation: llvm.udiv - 4: "udiv_exact" has unsupported operation: builtin.unregistered: llvm.shufflevector 1: "udiv_undef_mask_elt" -4: "udiv_undef_mask_elt" has unsupported operation: llvm.udiv - 4: "udiv_undef_mask_elt" has unsupported operation: builtin.unregistered: llvm.shufflevector 1: "udiv_exact_undef_mask_elt" -4: "udiv_exact_undef_mask_elt" has unsupported operation: llvm.udiv - 4: "udiv_exact_undef_mask_elt" has unsupported operation: builtin.unregistered: llvm.shufflevector 1: "sdiv" -"sdiv" contains vectors which are unsupported +8: "sdiv" contains vectors which are unsupported 1: "sdiv_exact" -"sdiv_exact" contains vectors which are unsupported +8: "sdiv_exact" contains vectors which are unsupported 1: "sdiv_undef_mask_elt" -"sdiv_undef_mask_elt" contains vectors which are unsupported +8: "sdiv_undef_mask_elt" contains vectors which are unsupported 1: "sdiv_exact_undef_mask_elt" -"sdiv_exact_undef_mask_elt" contains vectors which are unsupported +8: "sdiv_exact_undef_mask_elt" contains vectors which are unsupported 1: "urem" 4: "urem" has unsupported operation: builtin.unregistered: llvm.shufflevector @@ -239,10 +231,10 @@ 4: "frem" has unsupported operation: builtin.unregistered: llvm.shufflevector 1: "add_add" -"add_add" contains vectors which are unsupported +8: "add_add" contains vectors which are unsupported 1: "add_add_nsw" -"add_add_nsw" contains vectors which are unsupported +8: "add_add_nsw" contains vectors which are unsupported 1: "add_add_undef_mask_elt" 4: "add_add_undef_mask_elt" has unsupported operation: llvm.mlir.undef @@ -271,10 +263,10 @@ 4: "add_add_nsw_undef_mask_elt" has unsupported operation: builtin.unregistered: llvm.insertelement 1: "sub_sub" -"sub_sub" contains vectors which are unsupported +8: "sub_sub" contains vectors which are unsupported 1: "sub_sub_nuw" -"sub_sub_nuw" contains vectors which are unsupported +8: "sub_sub_nuw" contains vectors which are unsupported 1: "sub_sub_undef_mask_elt" 4: "sub_sub_undef_mask_elt" has unsupported operation: llvm.mlir.undef @@ -316,22 +308,22 @@ 4: "mul_mul" has unsupported operation: builtin.unregistered: llvm.insertelement 1: "shl_shl" -"shl_shl" contains vectors which are unsupported +8: "shl_shl" contains vectors which are unsupported 1: "shl_shl_nuw" -"shl_shl_nuw" contains vectors which are unsupported +8: "shl_shl_nuw" contains vectors which are unsupported 1: "shl_shl_undef_mask_elt" -"shl_shl_undef_mask_elt" contains vectors which are unsupported +8: "shl_shl_undef_mask_elt" contains vectors which are unsupported 1: "shl_shl_nuw_undef_mask_elt" -"shl_shl_nuw_undef_mask_elt" contains vectors which are unsupported +8: "shl_shl_nuw_undef_mask_elt" contains vectors which are unsupported 1: "lshr_lshr" -"lshr_lshr" contains vectors which are unsupported +8: "lshr_lshr" contains vectors which are unsupported 1: "ashr_ashr" -"ashr_ashr" contains vectors which are unsupported +8: "ashr_ashr" contains vectors which are unsupported 1: "and_and" 4: "and_and" has unsupported operation: llvm.mlir.undef @@ -351,39 +343,33 @@ 4: "xor_xor" has unsupported operation: llvm.call 1: "udiv_udiv" -4: "udiv_udiv" has unsupported operation: llvm.udiv - -4: "udiv_udiv" has unsupported operation: llvm.udiv - -4: "udiv_udiv" has unsupported operation: llvm.udiv - 4: "udiv_udiv" has unsupported operation: llvm.call 4: "udiv_udiv" has unsupported operation: llvm.call 1: "sdiv_sdiv" -"sdiv_sdiv" contains vectors which are unsupported +8: "sdiv_sdiv" contains vectors which are unsupported 1: "sdiv_sdiv_exact" -"sdiv_sdiv_exact" contains vectors which are unsupported +8: "sdiv_sdiv_exact" contains vectors which are unsupported 1: "sdiv_sdiv_undef_mask_elt" -"sdiv_sdiv_undef_mask_elt" contains vectors which are unsupported +8: "sdiv_sdiv_undef_mask_elt" contains vectors which are unsupported 1: "sdiv_sdiv_exact_undef_mask_elt" -"sdiv_sdiv_exact_undef_mask_elt" contains vectors which are unsupported +8: "sdiv_sdiv_exact_undef_mask_elt" contains vectors which are unsupported 1: "urem_urem" -"urem_urem" contains vectors which are unsupported +8: "urem_urem" contains vectors which are unsupported 1: "urem_urem_undef_mask_elt" -"urem_urem_undef_mask_elt" contains vectors which are unsupported +8: "urem_urem_undef_mask_elt" contains vectors which are unsupported 1: "srem_srem" -"srem_srem" contains vectors which are unsupported +8: "srem_srem" contains vectors which are unsupported 1: "srem_srem_undef_mask_elt" -"srem_srem_undef_mask_elt" contains vectors which are unsupported +8: "srem_srem_undef_mask_elt" contains vectors which are unsupported 1: "fadd_fadd" 4: "fadd_fadd" has unsupported operation: builtin.unregistered: llvm.fadd @@ -580,25 +566,13 @@ 1: "udiv_2_vars" 4: "udiv_2_vars" has unsupported operation: builtin.unregistered: llvm.shufflevector -4: "udiv_2_vars" has unsupported operation: llvm.udiv - 1: "udiv_2_vars_exact" 4: "udiv_2_vars_exact" has unsupported operation: builtin.unregistered: llvm.shufflevector -4: "udiv_2_vars_exact" has unsupported operation: llvm.udiv - 1: "udiv_2_vars_undef_mask_elt" -4: "udiv_2_vars_undef_mask_elt" has unsupported operation: llvm.udiv - -4: "udiv_2_vars_undef_mask_elt" has unsupported operation: llvm.udiv - 4: "udiv_2_vars_undef_mask_elt" has unsupported operation: builtin.unregistered: llvm.shufflevector 1: "udiv_2_vars_exact_undef_mask_elt" -4: "udiv_2_vars_exact_undef_mask_elt" has unsupported operation: llvm.udiv - -4: "udiv_2_vars_exact_undef_mask_elt" has unsupported operation: llvm.udiv - 4: "udiv_2_vars_exact_undef_mask_elt" has unsupported operation: builtin.unregistered: llvm.shufflevector 1: "sdiv_2_vars" @@ -693,7 +667,7 @@ 4: "fdiv_2_vars" has unsupported operation: builtin.unregistered: llvm.shufflevector 1: "mul_shl" -"mul_shl" contains vectors which are unsupported +8: "mul_shl" contains vectors which are unsupported 1: "shl_mul" 4: "shl_mul" has unsupported operation: llvm.mlir.undef @@ -709,7 +683,7 @@ 4: "shl_mul" has unsupported operation: builtin.unregistered: llvm.insertelement 1: "mul_is_nop_shl" -"mul_is_nop_shl" contains vectors which are unsupported +8: "mul_is_nop_shl" contains vectors which are unsupported 1: "shl_mul_not_constant_shift_amount" 4: "shl_mul_not_constant_shift_amount" has unsupported operation: builtin.unregistered: llvm.mlir.poison @@ -745,10 +719,10 @@ 4: "shl_mul_2_vars" has unsupported operation: builtin.unregistered: llvm.shufflevector 1: "add_or" -"add_or" contains vectors which are unsupported +8: "add_or" contains vectors which are unsupported 1: "or_add" -"or_add" contains vectors which are unsupported +8: "or_add" contains vectors which are unsupported 1: "or_add_not_enough_masking" 4: "or_add_not_enough_masking" has unsupported operation: builtin.unregistered: llvm.mlir.poison diff --git a/SSA/Projects/InstCombine/tests/logs/shuffle_select.txt b/SSA/Projects/InstCombine/tests/logs/shuffle_select.txt index 0b19a780b..4749d2408 100644 --- a/SSA/Projects/InstCombine/tests/logs/shuffle_select.txt +++ b/SSA/Projects/InstCombine/tests/logs/shuffle_select.txt @@ -1,8 +1,8 @@ 1: "add" -"add" contains vectors which are unsupported +8: "add" contains vectors which are unsupported 1: "add_nuw_nsw" -"add_nuw_nsw" contains vectors which are unsupported +8: "add_nuw_nsw" contains vectors which are unsupported 1: "add_undef_mask_elt" 4: "add_undef_mask_elt" has unsupported operation: llvm.mlir.undef @@ -59,34 +59,34 @@ 4: "mul" has unsupported operation: builtin.unregistered: llvm.insertelement 1: "shl" -"shl" contains vectors which are unsupported +8: "shl" contains vectors which are unsupported 1: "shl_nsw" -"shl_nsw" contains vectors which are unsupported +8: "shl_nsw" contains vectors which are unsupported 1: "shl_undef_mask_elt" -"shl_undef_mask_elt" contains vectors which are unsupported +8: "shl_undef_mask_elt" contains vectors which are unsupported 1: "shl_nuw_undef_mask_elt" -"shl_nuw_undef_mask_elt" contains vectors which are unsupported +8: "shl_nuw_undef_mask_elt" contains vectors which are unsupported 1: "lshr_constant_op0" -"lshr_constant_op0" contains vectors which are unsupported +8: "lshr_constant_op0" contains vectors which are unsupported 1: "lshr_exact_constant_op0" -"lshr_exact_constant_op0" contains vectors which are unsupported +8: "lshr_exact_constant_op0" contains vectors which are unsupported 1: "lshr_undef_mask_elt" -"lshr_undef_mask_elt" contains vectors which are unsupported +8: "lshr_undef_mask_elt" contains vectors which are unsupported 1: "lshr_exact_undef_mask_elt" -"lshr_exact_undef_mask_elt" contains vectors which are unsupported +8: "lshr_exact_undef_mask_elt" contains vectors which are unsupported 1: "lshr_constant_op1" 4: "lshr_constant_op1" has unsupported operation: builtin.unregistered: llvm.shufflevector 1: "ashr" -"ashr" contains vectors which are unsupported +8: "ashr" contains vectors which are unsupported 1: "and" 4: "and" has unsupported operation: llvm.mlir.undef @@ -106,39 +106,31 @@ 4: "or" has unsupported operation: llvm.call 1: "xor" -"xor" contains vectors which are unsupported +8: "xor" contains vectors which are unsupported 1: "udiv" -4: "udiv" has unsupported operation: llvm.udiv - 4: "udiv" has unsupported operation: builtin.unregistered: llvm.shufflevector 1: "udiv_exact" -4: "udiv_exact" has unsupported operation: llvm.udiv - 4: "udiv_exact" has unsupported operation: builtin.unregistered: llvm.shufflevector 1: "udiv_undef_mask_elt" -4: "udiv_undef_mask_elt" has unsupported operation: llvm.udiv - 4: "udiv_undef_mask_elt" has unsupported operation: builtin.unregistered: llvm.shufflevector 1: "udiv_exact_undef_mask_elt" -4: "udiv_exact_undef_mask_elt" has unsupported operation: llvm.udiv - 4: "udiv_exact_undef_mask_elt" has unsupported operation: builtin.unregistered: llvm.shufflevector 1: "sdiv" -"sdiv" contains vectors which are unsupported +8: "sdiv" contains vectors which are unsupported 1: "sdiv_exact" -"sdiv_exact" contains vectors which are unsupported +8: "sdiv_exact" contains vectors which are unsupported 1: "sdiv_undef_mask_elt" -"sdiv_undef_mask_elt" contains vectors which are unsupported +8: "sdiv_undef_mask_elt" contains vectors which are unsupported 1: "sdiv_exact_undef_mask_elt" -"sdiv_exact_undef_mask_elt" contains vectors which are unsupported +8: "sdiv_exact_undef_mask_elt" contains vectors which are unsupported 1: "urem" 4: "urem" has unsupported operation: builtin.unregistered: llvm.shufflevector @@ -239,10 +231,10 @@ 4: "frem" has unsupported operation: builtin.unregistered: llvm.shufflevector 1: "add_add" -"add_add" contains vectors which are unsupported +8: "add_add" contains vectors which are unsupported 1: "add_add_nsw" -"add_add_nsw" contains vectors which are unsupported +8: "add_add_nsw" contains vectors which are unsupported 1: "add_add_undef_mask_elt" 4: "add_add_undef_mask_elt" has unsupported operation: llvm.mlir.undef @@ -271,10 +263,10 @@ 4: "add_add_nsw_undef_mask_elt" has unsupported operation: builtin.unregistered: llvm.insertelement 1: "sub_sub" -"sub_sub" contains vectors which are unsupported +8: "sub_sub" contains vectors which are unsupported 1: "sub_sub_nuw" -"sub_sub_nuw" contains vectors which are unsupported +8: "sub_sub_nuw" contains vectors which are unsupported 1: "sub_sub_undef_mask_elt" 4: "sub_sub_undef_mask_elt" has unsupported operation: llvm.mlir.undef @@ -316,22 +308,22 @@ 4: "mul_mul" has unsupported operation: builtin.unregistered: llvm.insertelement 1: "shl_shl" -"shl_shl" contains vectors which are unsupported +8: "shl_shl" contains vectors which are unsupported 1: "shl_shl_nuw" -"shl_shl_nuw" contains vectors which are unsupported +8: "shl_shl_nuw" contains vectors which are unsupported 1: "shl_shl_undef_mask_elt" -"shl_shl_undef_mask_elt" contains vectors which are unsupported +8: "shl_shl_undef_mask_elt" contains vectors which are unsupported 1: "shl_shl_nuw_undef_mask_elt" -"shl_shl_nuw_undef_mask_elt" contains vectors which are unsupported +8: "shl_shl_nuw_undef_mask_elt" contains vectors which are unsupported 1: "lshr_lshr" -"lshr_lshr" contains vectors which are unsupported +8: "lshr_lshr" contains vectors which are unsupported 1: "ashr_ashr" -"ashr_ashr" contains vectors which are unsupported +8: "ashr_ashr" contains vectors which are unsupported 1: "and_and" 4: "and_and" has unsupported operation: llvm.mlir.undef @@ -351,39 +343,33 @@ 4: "xor_xor" has unsupported operation: llvm.call 1: "udiv_udiv" -4: "udiv_udiv" has unsupported operation: llvm.udiv - -4: "udiv_udiv" has unsupported operation: llvm.udiv - -4: "udiv_udiv" has unsupported operation: llvm.udiv - 4: "udiv_udiv" has unsupported operation: llvm.call 4: "udiv_udiv" has unsupported operation: llvm.call 1: "sdiv_sdiv" -"sdiv_sdiv" contains vectors which are unsupported +8: "sdiv_sdiv" contains vectors which are unsupported 1: "sdiv_sdiv_exact" -"sdiv_sdiv_exact" contains vectors which are unsupported +8: "sdiv_sdiv_exact" contains vectors which are unsupported 1: "sdiv_sdiv_undef_mask_elt" -"sdiv_sdiv_undef_mask_elt" contains vectors which are unsupported +8: "sdiv_sdiv_undef_mask_elt" contains vectors which are unsupported 1: "sdiv_sdiv_exact_undef_mask_elt" -"sdiv_sdiv_exact_undef_mask_elt" contains vectors which are unsupported +8: "sdiv_sdiv_exact_undef_mask_elt" contains vectors which are unsupported 1: "urem_urem" -"urem_urem" contains vectors which are unsupported +8: "urem_urem" contains vectors which are unsupported 1: "urem_urem_undef_mask_elt" -"urem_urem_undef_mask_elt" contains vectors which are unsupported +8: "urem_urem_undef_mask_elt" contains vectors which are unsupported 1: "srem_srem" -"srem_srem" contains vectors which are unsupported +8: "srem_srem" contains vectors which are unsupported 1: "srem_srem_undef_mask_elt" -"srem_srem_undef_mask_elt" contains vectors which are unsupported +8: "srem_srem_undef_mask_elt" contains vectors which are unsupported 1: "fadd_fadd" 4: "fadd_fadd" has unsupported operation: builtin.unregistered: llvm.fadd @@ -597,25 +583,13 @@ 1: "udiv_2_vars" 4: "udiv_2_vars" has unsupported operation: builtin.unregistered: llvm.shufflevector -4: "udiv_2_vars" has unsupported operation: llvm.udiv - 1: "udiv_2_vars_exact" 4: "udiv_2_vars_exact" has unsupported operation: builtin.unregistered: llvm.shufflevector -4: "udiv_2_vars_exact" has unsupported operation: llvm.udiv - 1: "udiv_2_vars_undef_mask_elt" -4: "udiv_2_vars_undef_mask_elt" has unsupported operation: llvm.udiv - -4: "udiv_2_vars_undef_mask_elt" has unsupported operation: llvm.udiv - 4: "udiv_2_vars_undef_mask_elt" has unsupported operation: builtin.unregistered: llvm.shufflevector 1: "udiv_2_vars_exact_undef_mask_elt" -4: "udiv_2_vars_exact_undef_mask_elt" has unsupported operation: llvm.udiv - -4: "udiv_2_vars_exact_undef_mask_elt" has unsupported operation: llvm.udiv - 4: "udiv_2_vars_exact_undef_mask_elt" has unsupported operation: builtin.unregistered: llvm.shufflevector 1: "sdiv_2_vars" @@ -710,7 +684,7 @@ 4: "fdiv_2_vars" has unsupported operation: builtin.unregistered: llvm.shufflevector 1: "mul_shl" -"mul_shl" contains vectors which are unsupported +8: "mul_shl" contains vectors which are unsupported 1: "shl_mul" 4: "shl_mul" has unsupported operation: llvm.mlir.undef @@ -726,7 +700,7 @@ 4: "shl_mul" has unsupported operation: builtin.unregistered: llvm.insertelement 1: "mul_is_nop_shl" -"mul_is_nop_shl" contains vectors which are unsupported +8: "mul_is_nop_shl" contains vectors which are unsupported 1: "shl_mul_not_constant_shift_amount" 4: "shl_mul_not_constant_shift_amount" has unsupported operation: builtin.unregistered: llvm.mlir.poison @@ -762,10 +736,10 @@ 4: "shl_mul_2_vars" has unsupported operation: builtin.unregistered: llvm.shufflevector 1: "mul_neg" -"mul_neg" contains vectors which are unsupported +8: "mul_neg" contains vectors which are unsupported 1: "neg_mul" -"neg_mul" contains vectors which are unsupported +8: "neg_mul" contains vectors which are unsupported 1: "mul_neg_2_vars" 4: "mul_neg_2_vars" has unsupported operation: builtin.unregistered: llvm.shufflevector @@ -774,13 +748,13 @@ 4: "neg_mul_2_vars" has unsupported operation: builtin.unregistered: llvm.shufflevector 1: "add_or" -"add_or" contains vectors which are unsupported +8: "add_or" contains vectors which are unsupported 1: "add_or_disjoint" -"add_or_disjoint" contains vectors which are unsupported +8: "add_or_disjoint" contains vectors which are unsupported 1: "or_add" -"or_add" contains vectors which are unsupported +8: "or_add" contains vectors which are unsupported 1: "or_add_not_enough_masking" 4: "or_add_not_enough_masking" has unsupported operation: builtin.unregistered: llvm.mlir.poison diff --git a/SSA/Projects/InstCombine/tests/logs/shufflevec-constant-inseltpoison.txt b/SSA/Projects/InstCombine/tests/logs/shufflevec-constant-inseltpoison.txt index 6c7119679..25c9d1cbb 100644 --- a/SSA/Projects/InstCombine/tests/logs/shufflevec-constant-inseltpoison.txt +++ b/SSA/Projects/InstCombine/tests/logs/shufflevec-constant-inseltpoison.txt @@ -1,3 +1,3 @@ 1: "__inff4" -"__inff4" contains vectors which are unsupported +8: "__inff4" contains vectors which are unsupported diff --git a/SSA/Projects/InstCombine/tests/logs/shufflevector-div-rem-inseltpoison.txt b/SSA/Projects/InstCombine/tests/logs/shufflevector-div-rem-inseltpoison.txt index 305753708..8fd5c4190 100644 --- a/SSA/Projects/InstCombine/tests/logs/shufflevector-div-rem-inseltpoison.txt +++ b/SSA/Projects/InstCombine/tests/logs/shufflevector-div-rem-inseltpoison.txt @@ -1,5 +1,5 @@ 1: "test_srem_orig" -4: "test_srem_orig" has unsupported operation: builtin.unregistered: llvm.select +8: "test_srem_orig" contains vectors which are unsupported 1: "test_srem" 4: "test_srem" has unsupported operation: builtin.unregistered: llvm.mlir.poison @@ -8,8 +8,6 @@ 4: "test_srem" has unsupported operation: builtin.unregistered: llvm.shufflevector -4: "test_srem" has unsupported operation: builtin.unregistered: llvm.select - 1: "test_urem" 4: "test_urem" has unsupported operation: builtin.unregistered: llvm.mlir.poison @@ -17,8 +15,6 @@ 4: "test_urem" has unsupported operation: builtin.unregistered: llvm.shufflevector -4: "test_urem" has unsupported operation: builtin.unregistered: llvm.select - 1: "test_sdiv" 4: "test_sdiv" has unsupported operation: builtin.unregistered: llvm.mlir.poison @@ -26,19 +22,13 @@ 4: "test_sdiv" has unsupported operation: builtin.unregistered: llvm.shufflevector -4: "test_sdiv" has unsupported operation: builtin.unregistered: llvm.select - 1: "test_udiv" 4: "test_udiv" has unsupported operation: builtin.unregistered: llvm.mlir.poison 4: "test_udiv" has unsupported operation: builtin.unregistered: llvm.insertelement -4: "test_udiv" has unsupported operation: llvm.udiv - 4: "test_udiv" has unsupported operation: builtin.unregistered: llvm.shufflevector -4: "test_udiv" has unsupported operation: builtin.unregistered: llvm.select - 1: "test_fdiv" 4: "test_fdiv" has unsupported operation: builtin.unregistered: llvm.mlir.poison @@ -54,8 +44,6 @@ 4: "test_fdiv" has unsupported operation: builtin.unregistered: llvm.fdiv -4: "test_fdiv" has unsupported operation: builtin.unregistered: llvm.select - 1: "test_frem" 4: "test_frem" has unsupported operation: builtin.unregistered: llvm.mlir.poison @@ -71,5 +59,3 @@ 4: "test_frem" has unsupported operation: builtin.unregistered: llvm.frem -4: "test_frem" has unsupported operation: builtin.unregistered: llvm.select - diff --git a/SSA/Projects/InstCombine/tests/logs/shufflevector-div-rem.txt b/SSA/Projects/InstCombine/tests/logs/shufflevector-div-rem.txt index ff0f1c0ba..006bc97ca 100644 --- a/SSA/Projects/InstCombine/tests/logs/shufflevector-div-rem.txt +++ b/SSA/Projects/InstCombine/tests/logs/shufflevector-div-rem.txt @@ -1,5 +1,5 @@ 1: "test_srem_orig" -4: "test_srem_orig" has unsupported operation: builtin.unregistered: llvm.select +8: "test_srem_orig" contains vectors which are unsupported 1: "test_srem" 4: "test_srem" has unsupported operation: llvm.mlir.undef @@ -18,8 +18,6 @@ 4: "test_srem" has unsupported operation: builtin.unregistered: llvm.shufflevector -4: "test_srem" has unsupported operation: builtin.unregistered: llvm.select - 1: "test_urem" 4: "test_urem" has unsupported operation: llvm.mlir.undef @@ -37,8 +35,6 @@ 4: "test_urem" has unsupported operation: builtin.unregistered: llvm.shufflevector -4: "test_urem" has unsupported operation: builtin.unregistered: llvm.select - 1: "test_sdiv" 4: "test_sdiv" has unsupported operation: llvm.mlir.undef @@ -56,8 +52,6 @@ 4: "test_sdiv" has unsupported operation: builtin.unregistered: llvm.shufflevector -4: "test_sdiv" has unsupported operation: builtin.unregistered: llvm.select - 1: "test_udiv" 4: "test_udiv" has unsupported operation: llvm.mlir.undef @@ -73,12 +67,8 @@ 4: "test_udiv" has unsupported operation: builtin.unregistered: llvm.insertelement -4: "test_udiv" has unsupported operation: llvm.udiv - 4: "test_udiv" has unsupported operation: builtin.unregistered: llvm.shufflevector -4: "test_udiv" has unsupported operation: builtin.unregistered: llvm.select - 1: "test_fdiv" 4: "test_fdiv" has unsupported operation: builtin.unregistered: llvm.mlir.poison @@ -94,8 +84,6 @@ 4: "test_fdiv" has unsupported operation: builtin.unregistered: llvm.fdiv -4: "test_fdiv" has unsupported operation: builtin.unregistered: llvm.select - 1: "test_frem" 4: "test_frem" has unsupported operation: builtin.unregistered: llvm.mlir.poison @@ -111,5 +99,3 @@ 4: "test_frem" has unsupported operation: builtin.unregistered: llvm.frem -4: "test_frem" has unsupported operation: builtin.unregistered: llvm.select - diff --git a/SSA/Projects/InstCombine/tests/logs/sign-test-and-or.txt b/SSA/Projects/InstCombine/tests/logs/sign-test-and-or.txt index 8f7b6945b..ea286e87c 100644 --- a/SSA/Projects/InstCombine/tests/logs/sign-test-and-or.txt +++ b/SSA/Projects/InstCombine/tests/logs/sign-test-and-or.txt @@ -12,8 +12,6 @@ 4: "test1_logical" has unsupported operation: builtin.unregistered: llvm.icmp -4: "test1_logical" has unsupported operation: builtin.unregistered: llvm.select - 1: "test2" 4: "test2" has unsupported operation: builtin.unregistered: llvm.icmp @@ -22,8 +20,6 @@ 4: "test2_logical" has unsupported operation: builtin.unregistered: llvm.icmp -4: "test2_logical" has unsupported operation: builtin.unregistered: llvm.select - 1: "test3" 4: "test3" has unsupported operation: builtin.unregistered: llvm.icmp @@ -32,8 +28,6 @@ 4: "test3_logical" has unsupported operation: builtin.unregistered: llvm.icmp -4: "test3_logical" has unsupported operation: builtin.unregistered: llvm.select - 1: "test4" 4: "test4" has unsupported operation: builtin.unregistered: llvm.icmp @@ -42,8 +36,6 @@ 4: "test4_logical" has unsupported operation: builtin.unregistered: llvm.icmp -4: "test4_logical" has unsupported operation: builtin.unregistered: llvm.select - 1: "test5" 4: "test5" has unsupported operation: builtin.unregistered: llvm.icmp diff --git a/SSA/Projects/InstCombine/tests/logs/signed-truncation-check.txt b/SSA/Projects/InstCombine/tests/logs/signed-truncation-check.txt index b8011942a..797bef932 100644 --- a/SSA/Projects/InstCombine/tests/logs/signed-truncation-check.txt +++ b/SSA/Projects/InstCombine/tests/logs/signed-truncation-check.txt @@ -28,8 +28,6 @@ 1: "positive_with_extra_and_logical" 4: "positive_with_extra_and_logical" has unsupported operation: builtin.unregistered: llvm.icmp -4: "positive_with_extra_and_logical" has unsupported operation: builtin.unregistered: llvm.select - 1: "positive_vec_splat" 4: "positive_vec_splat" has unsupported operation: builtin.unregistered: llvm.icmp @@ -108,8 +106,6 @@ 4: "positive_different_trunc_both_logical" has unsupported operation: builtin.unregistered: llvm.icmp -4: "positive_different_trunc_both_logical" has unsupported operation: builtin.unregistered: llvm.select - 1: "use32" 5: "use32" is empty @@ -209,8 +205,6 @@ 4: "oneuse_shl_ashr_logical" has unsupported operation: llvm.call -4: "oneuse_shl_ashr_logical" has unsupported operation: builtin.unregistered: llvm.select - 1: "oneuse_trunc_sext" 4: "oneuse_trunc_sext" has unsupported operation: builtin.unregistered: llvm.trunc @@ -253,8 +247,6 @@ 4: "oneuse_trunc_sext_logical" has unsupported operation: llvm.call -4: "oneuse_trunc_sext_logical" has unsupported operation: builtin.unregistered: llvm.select - 1: "negative_not_arg" 4: "negative_not_arg" has unsupported operation: builtin.unregistered: llvm.icmp @@ -265,8 +257,6 @@ 4: "negative_not_arg_logical" has unsupported operation: builtin.unregistered: llvm.icmp -4: "negative_not_arg_logical" has unsupported operation: builtin.unregistered: llvm.select - 1: "negative_trunc_not_arg" 4: "negative_trunc_not_arg" has unsupported operation: builtin.unregistered: llvm.icmp @@ -277,8 +267,6 @@ 4: "negative_trunc_not_arg_logical" has unsupported operation: builtin.unregistered: llvm.icmp -4: "negative_trunc_not_arg_logical" has unsupported operation: builtin.unregistered: llvm.select - 1: "positive_with_mask_not_arg" 4: "positive_with_mask_not_arg" has unsupported operation: builtin.unregistered: llvm.icmp @@ -289,8 +277,6 @@ 4: "positive_with_mask_not_arg_logical" has unsupported operation: builtin.unregistered: llvm.icmp -4: "positive_with_mask_not_arg_logical" has unsupported operation: builtin.unregistered: llvm.select - 1: "negative_with_nonuniform_bad_mask" 4: "negative_with_nonuniform_bad_mask" has unsupported operation: builtin.unregistered: llvm.icmp @@ -331,8 +317,6 @@ 4: "negative_not_less_than_logical" has unsupported operation after optimization: builtin.unregistered: llvm.icmp -4: "negative_not_less_than_logical" has unsupported operation after optimization: builtin.unregistered: llvm.select - 1: "negative_not_power_of_two" 4: "negative_not_power_of_two" has unsupported operation: builtin.unregistered: llvm.icmp @@ -365,5 +349,3 @@ 4: "bad_trunc_stc_logical" has unsupported operation: builtin.unregistered: llvm.icmp -4: "bad_trunc_stc_logical" has unsupported operation: builtin.unregistered: llvm.select - diff --git a/SSA/Projects/InstCombine/tests/logs/signext.txt b/SSA/Projects/InstCombine/tests/logs/signext.txt index 18cf3b077..e14691cee 100644 --- a/SSA/Projects/InstCombine/tests/logs/signext.txt +++ b/SSA/Projects/InstCombine/tests/logs/signext.txt @@ -15,7 +15,7 @@ 4: "sextinreg_extra_use" has unsupported operation: llvm.call 1: "sextinreg_splat" -"sextinreg_splat" contains vectors which are unsupported +8: "sextinreg_splat" contains vectors which are unsupported 1: "sextinreg_alt" 2: llvm.func @@ -28,7 +28,7 @@ 2: llvm.return 1: "sextinreg_alt_splat" -"sextinreg_alt_splat" contains vectors which are unsupported +8: "sextinreg_alt_splat" contains vectors which are unsupported 1: "sext" 4: "sext" has unsupported operation: builtin.unregistered: llvm.sext @@ -54,7 +54,7 @@ 2: llvm.return 1: "sextinreg2_splat" -"sextinreg2_splat" contains vectors which are unsupported +8: "sextinreg2_splat" contains vectors which are unsupported 1: "test5" 7: "test5" is unchanged by InstCombine @@ -76,5 +76,5 @@ 2: llvm.return 1: "ashr_splat" -"ashr_splat" contains vectors which are unsupported +8: "ashr_splat" contains vectors which are unsupported diff --git a/SSA/Projects/InstCombine/tests/logs/simplify-libcalls-i16.txt b/SSA/Projects/InstCombine/tests/logs/simplify-libcalls-i16.txt index 67ad0d883..4d4f5a49c 100644 --- a/SSA/Projects/InstCombine/tests/logs/simplify-libcalls-i16.txt +++ b/SSA/Projects/InstCombine/tests/logs/simplify-libcalls-i16.txt @@ -62,8 +62,6 @@ 4: "PR4641" has unsupported operation: llvm.call -4: "PR4641" has unsupported operation: builtin.unregistered: llvm.select - 4: "PR4641" has unsupported operation: llvm.call 4: "PR4641" has unsupported operation: builtin.unregistered: llvm.unreachable diff --git a/SSA/Projects/InstCombine/tests/logs/simplify-libcalls.txt b/SSA/Projects/InstCombine/tests/logs/simplify-libcalls.txt index 033900085..530ac53a1 100644 --- a/SSA/Projects/InstCombine/tests/logs/simplify-libcalls.txt +++ b/SSA/Projects/InstCombine/tests/logs/simplify-libcalls.txt @@ -52,8 +52,6 @@ 4: "PR4641" has unsupported operation: llvm.call -4: "PR4641" has unsupported operation: builtin.unregistered: llvm.select - 4: "PR4641" has unsupported operation: llvm.call 4: "PR4641" has unsupported operation: builtin.unregistered: llvm.unreachable diff --git a/SSA/Projects/InstCombine/tests/logs/sink-not-into-and.txt b/SSA/Projects/InstCombine/tests/logs/sink-not-into-and.txt index 6188a8e9c..03faedda7 100644 --- a/SSA/Projects/InstCombine/tests/logs/sink-not-into-and.txt +++ b/SSA/Projects/InstCombine/tests/logs/sink-not-into-and.txt @@ -73,7 +73,5 @@ 4: "t11" has unsupported operation: builtin.unregistered: llvm.icmp -4: "t11" has unsupported operation: builtin.unregistered: llvm.select - 4: "t11" has unsupported operation: llvm.call diff --git a/SSA/Projects/InstCombine/tests/logs/sink-not-into-another-hand-of-and.txt b/SSA/Projects/InstCombine/tests/logs/sink-not-into-another-hand-of-and.txt index ed37621ba..6b7551889 100644 --- a/SSA/Projects/InstCombine/tests/logs/sink-not-into-another-hand-of-and.txt +++ b/SSA/Projects/InstCombine/tests/logs/sink-not-into-another-hand-of-and.txt @@ -7,8 +7,6 @@ 1: "t0" 4: "t0" has unsupported operation: builtin.unregistered: llvm.icmp -4: "t0" has unsupported operation: builtin.unregistered: llvm.select - 1: "t1" 4: "t1" has unsupported operation: builtin.unregistered: llvm.icmp @@ -16,8 +14,6 @@ 4: "t1" has unsupported operation: llvm.call -4: "t1" has unsupported operation: builtin.unregistered: llvm.select - 1: "n2" 4: "n2" has unsupported operation: builtin.unregistered: llvm.icmp @@ -26,23 +22,13 @@ 4: "n3" has unsupported operation: llvm.call -4: "n3" has unsupported operation: builtin.unregistered: llvm.select - 1: "t4" 4: "t4" has unsupported operation: builtin.unregistered: llvm.icmp -4: "t4" has unsupported operation: builtin.unregistered: llvm.select - 4: "t4" has unsupported operation: llvm.call -4: "t4" has unsupported operation: builtin.unregistered: llvm.select - 1: "t4_commutative" 4: "t4_commutative" has unsupported operation: builtin.unregistered: llvm.icmp -4: "t4_commutative" has unsupported operation: builtin.unregistered: llvm.select - 4: "t4_commutative" has unsupported operation: llvm.call -4: "t4_commutative" has unsupported operation: builtin.unregistered: llvm.select - diff --git a/SSA/Projects/InstCombine/tests/logs/sink-not-into-another-hand-of-logical-and.txt b/SSA/Projects/InstCombine/tests/logs/sink-not-into-another-hand-of-logical-and.txt index fb3d8bfff..b581e8395 100644 --- a/SSA/Projects/InstCombine/tests/logs/sink-not-into-another-hand-of-logical-and.txt +++ b/SSA/Projects/InstCombine/tests/logs/sink-not-into-another-hand-of-logical-and.txt @@ -7,17 +7,9 @@ 1: "t0" 4: "t0" has unsupported operation: builtin.unregistered: llvm.icmp -4: "t0" has unsupported operation: builtin.unregistered: llvm.select - -4: "t0" has unsupported operation: builtin.unregistered: llvm.select - 1: "t0_commutative" 4: "t0_commutative" has unsupported operation: builtin.unregistered: llvm.icmp -4: "t0_commutative" has unsupported operation: builtin.unregistered: llvm.select - -4: "t0_commutative" has unsupported operation: builtin.unregistered: llvm.select - 1: "t1" 4: "t1" has unsupported operation: builtin.unregistered: llvm.icmp @@ -25,10 +17,6 @@ 4: "t1" has unsupported operation: llvm.call -4: "t1" has unsupported operation: builtin.unregistered: llvm.select - -4: "t1" has unsupported operation: builtin.unregistered: llvm.select - 1: "t1_commutative" 4: "t1_commutative" has unsupported operation: builtin.unregistered: llvm.icmp @@ -36,43 +24,21 @@ 4: "t1_commutative" has unsupported operation: llvm.call -4: "t1_commutative" has unsupported operation: builtin.unregistered: llvm.select - -4: "t1_commutative" has unsupported operation: builtin.unregistered: llvm.select - 1: "n2" 4: "n2" has unsupported operation: builtin.unregistered: llvm.icmp -4: "n2" has unsupported operation: builtin.unregistered: llvm.select - 1: "n3" 4: "n3" has unsupported operation: builtin.unregistered: llvm.icmp 4: "n3" has unsupported operation: llvm.call -4: "n3" has unsupported operation: builtin.unregistered: llvm.select - -4: "n3" has unsupported operation: builtin.unregistered: llvm.select - 1: "t4" 4: "t4" has unsupported operation: builtin.unregistered: llvm.icmp -4: "t4" has unsupported operation: builtin.unregistered: llvm.select - 4: "t4" has unsupported operation: llvm.call -4: "t4" has unsupported operation: builtin.unregistered: llvm.select - -4: "t4" has unsupported operation: builtin.unregistered: llvm.select - 1: "t4_commutative" 4: "t4_commutative" has unsupported operation: builtin.unregistered: llvm.icmp -4: "t4_commutative" has unsupported operation: builtin.unregistered: llvm.select - 4: "t4_commutative" has unsupported operation: llvm.call -4: "t4_commutative" has unsupported operation: builtin.unregistered: llvm.select - -4: "t4_commutative" has unsupported operation: builtin.unregistered: llvm.select - diff --git a/SSA/Projects/InstCombine/tests/logs/sink-not-into-another-hand-of-logical-or.txt b/SSA/Projects/InstCombine/tests/logs/sink-not-into-another-hand-of-logical-or.txt index fb3d8bfff..b581e8395 100644 --- a/SSA/Projects/InstCombine/tests/logs/sink-not-into-another-hand-of-logical-or.txt +++ b/SSA/Projects/InstCombine/tests/logs/sink-not-into-another-hand-of-logical-or.txt @@ -7,17 +7,9 @@ 1: "t0" 4: "t0" has unsupported operation: builtin.unregistered: llvm.icmp -4: "t0" has unsupported operation: builtin.unregistered: llvm.select - -4: "t0" has unsupported operation: builtin.unregistered: llvm.select - 1: "t0_commutative" 4: "t0_commutative" has unsupported operation: builtin.unregistered: llvm.icmp -4: "t0_commutative" has unsupported operation: builtin.unregistered: llvm.select - -4: "t0_commutative" has unsupported operation: builtin.unregistered: llvm.select - 1: "t1" 4: "t1" has unsupported operation: builtin.unregistered: llvm.icmp @@ -25,10 +17,6 @@ 4: "t1" has unsupported operation: llvm.call -4: "t1" has unsupported operation: builtin.unregistered: llvm.select - -4: "t1" has unsupported operation: builtin.unregistered: llvm.select - 1: "t1_commutative" 4: "t1_commutative" has unsupported operation: builtin.unregistered: llvm.icmp @@ -36,43 +24,21 @@ 4: "t1_commutative" has unsupported operation: llvm.call -4: "t1_commutative" has unsupported operation: builtin.unregistered: llvm.select - -4: "t1_commutative" has unsupported operation: builtin.unregistered: llvm.select - 1: "n2" 4: "n2" has unsupported operation: builtin.unregistered: llvm.icmp -4: "n2" has unsupported operation: builtin.unregistered: llvm.select - 1: "n3" 4: "n3" has unsupported operation: builtin.unregistered: llvm.icmp 4: "n3" has unsupported operation: llvm.call -4: "n3" has unsupported operation: builtin.unregistered: llvm.select - -4: "n3" has unsupported operation: builtin.unregistered: llvm.select - 1: "t4" 4: "t4" has unsupported operation: builtin.unregistered: llvm.icmp -4: "t4" has unsupported operation: builtin.unregistered: llvm.select - 4: "t4" has unsupported operation: llvm.call -4: "t4" has unsupported operation: builtin.unregistered: llvm.select - -4: "t4" has unsupported operation: builtin.unregistered: llvm.select - 1: "t4_commutative" 4: "t4_commutative" has unsupported operation: builtin.unregistered: llvm.icmp -4: "t4_commutative" has unsupported operation: builtin.unregistered: llvm.select - 4: "t4_commutative" has unsupported operation: llvm.call -4: "t4_commutative" has unsupported operation: builtin.unregistered: llvm.select - -4: "t4_commutative" has unsupported operation: builtin.unregistered: llvm.select - diff --git a/SSA/Projects/InstCombine/tests/logs/sink-not-into-another-hand-of-or.txt b/SSA/Projects/InstCombine/tests/logs/sink-not-into-another-hand-of-or.txt index ed37621ba..6b7551889 100644 --- a/SSA/Projects/InstCombine/tests/logs/sink-not-into-another-hand-of-or.txt +++ b/SSA/Projects/InstCombine/tests/logs/sink-not-into-another-hand-of-or.txt @@ -7,8 +7,6 @@ 1: "t0" 4: "t0" has unsupported operation: builtin.unregistered: llvm.icmp -4: "t0" has unsupported operation: builtin.unregistered: llvm.select - 1: "t1" 4: "t1" has unsupported operation: builtin.unregistered: llvm.icmp @@ -16,8 +14,6 @@ 4: "t1" has unsupported operation: llvm.call -4: "t1" has unsupported operation: builtin.unregistered: llvm.select - 1: "n2" 4: "n2" has unsupported operation: builtin.unregistered: llvm.icmp @@ -26,23 +22,13 @@ 4: "n3" has unsupported operation: llvm.call -4: "n3" has unsupported operation: builtin.unregistered: llvm.select - 1: "t4" 4: "t4" has unsupported operation: builtin.unregistered: llvm.icmp -4: "t4" has unsupported operation: builtin.unregistered: llvm.select - 4: "t4" has unsupported operation: llvm.call -4: "t4" has unsupported operation: builtin.unregistered: llvm.select - 1: "t4_commutative" 4: "t4_commutative" has unsupported operation: builtin.unregistered: llvm.icmp -4: "t4_commutative" has unsupported operation: builtin.unregistered: llvm.select - 4: "t4_commutative" has unsupported operation: llvm.call -4: "t4_commutative" has unsupported operation: builtin.unregistered: llvm.select - diff --git a/SSA/Projects/InstCombine/tests/logs/sink-not-into-logical-and.txt b/SSA/Projects/InstCombine/tests/logs/sink-not-into-logical-and.txt index 8d787f153..c4ba711a3 100644 --- a/SSA/Projects/InstCombine/tests/logs/sink-not-into-logical-and.txt +++ b/SSA/Projects/InstCombine/tests/logs/sink-not-into-logical-and.txt @@ -6,20 +6,14 @@ 4: "t0" has unsupported operation: builtin.unregistered: llvm.icmp -4: "t0" has unsupported operation: builtin.unregistered: llvm.select - 1: "n1" 4: "n1" has unsupported operation: builtin.unregistered: llvm.icmp -4: "n1" has unsupported operation: builtin.unregistered: llvm.select - 1: "n2" 4: "n2" has unsupported operation: builtin.unregistered: llvm.icmp -4: "n2" has unsupported operation: builtin.unregistered: llvm.select - 1: "n3" -4: "n3" has unsupported operation: builtin.unregistered: llvm.select +7: "n3" is unchanged by InstCombine 1: "n4" 4: "n4" has unsupported operation: builtin.unregistered: llvm.icmp @@ -28,8 +22,6 @@ 4: "n4" has unsupported operation: llvm.call -4: "n4" has unsupported operation: builtin.unregistered: llvm.select - 1: "n5" 4: "n5" has unsupported operation: builtin.unregistered: llvm.icmp @@ -37,8 +29,6 @@ 4: "n5" has unsupported operation: llvm.call -4: "n5" has unsupported operation: builtin.unregistered: llvm.select - 1: "n6" 4: "n6" has unsupported operation: builtin.unregistered: llvm.icmp @@ -48,8 +38,6 @@ 4: "n6" has unsupported operation: llvm.call -4: "n6" has unsupported operation: builtin.unregistered: llvm.select - 1: "t7" 4: "t7" has unsupported operation: builtin.unregistered: llvm.icmp @@ -57,8 +45,6 @@ 4: "t7" has unsupported operation: builtin.unregistered: llvm.icmp -4: "t7" has unsupported operation: builtin.unregistered: llvm.select - 1: "t8" 4: "t8" has unsupported operation: builtin.unregistered: llvm.icmp @@ -66,8 +52,6 @@ 4: "t8" has unsupported operation: llvm.call -4: "t8" has unsupported operation: builtin.unregistered: llvm.select - 1: "t9" 4: "t9" has unsupported operation: builtin.unregistered: llvm.icmp @@ -77,15 +61,11 @@ 4: "t9" has unsupported operation: llvm.call -4: "t9" has unsupported operation: builtin.unregistered: llvm.select - 1: "n10" 4: "n10" has unsupported operation: builtin.unregistered: llvm.icmp 4: "n10" has unsupported operation: builtin.unregistered: llvm.icmp -4: "n10" has unsupported operation: builtin.unregistered: llvm.select - 4: "n10" has unsupported operation: llvm.call 1: "t11" @@ -93,10 +73,6 @@ 4: "t11" has unsupported operation: builtin.unregistered: llvm.icmp -4: "t11" has unsupported operation: builtin.unregistered: llvm.select - -4: "t11" has unsupported operation: builtin.unregistered: llvm.select - 4: "t11" has unsupported operation: llvm.call 1: "PR59704" diff --git a/SSA/Projects/InstCombine/tests/logs/sink-not-into-logical-or.txt b/SSA/Projects/InstCombine/tests/logs/sink-not-into-logical-or.txt index 8e7854f64..03faedda7 100644 --- a/SSA/Projects/InstCombine/tests/logs/sink-not-into-logical-or.txt +++ b/SSA/Projects/InstCombine/tests/logs/sink-not-into-logical-or.txt @@ -6,20 +6,14 @@ 4: "t0" has unsupported operation: builtin.unregistered: llvm.icmp -4: "t0" has unsupported operation: builtin.unregistered: llvm.select - 1: "n1" 4: "n1" has unsupported operation: builtin.unregistered: llvm.icmp -4: "n1" has unsupported operation: builtin.unregistered: llvm.select - 1: "n2" 4: "n2" has unsupported operation: builtin.unregistered: llvm.icmp -4: "n2" has unsupported operation: builtin.unregistered: llvm.select - 1: "n3" -4: "n3" has unsupported operation: builtin.unregistered: llvm.select +7: "n3" is unchanged by InstCombine 1: "n4" 4: "n4" has unsupported operation: builtin.unregistered: llvm.icmp @@ -28,8 +22,6 @@ 4: "n4" has unsupported operation: llvm.call -4: "n4" has unsupported operation: builtin.unregistered: llvm.select - 1: "n5" 4: "n5" has unsupported operation: builtin.unregistered: llvm.icmp @@ -37,8 +29,6 @@ 4: "n5" has unsupported operation: llvm.call -4: "n5" has unsupported operation: builtin.unregistered: llvm.select - 1: "n6" 4: "n6" has unsupported operation: builtin.unregistered: llvm.icmp @@ -48,8 +38,6 @@ 4: "n6" has unsupported operation: llvm.call -4: "n6" has unsupported operation: builtin.unregistered: llvm.select - 1: "t7" 4: "t7" has unsupported operation: builtin.unregistered: llvm.icmp @@ -57,8 +45,6 @@ 4: "t7" has unsupported operation: builtin.unregistered: llvm.icmp -4: "t7" has unsupported operation: builtin.unregistered: llvm.select - 1: "t8" 4: "t8" has unsupported operation: builtin.unregistered: llvm.icmp @@ -66,8 +52,6 @@ 4: "t8" has unsupported operation: llvm.call -4: "t8" has unsupported operation: builtin.unregistered: llvm.select - 1: "t9" 4: "t9" has unsupported operation: builtin.unregistered: llvm.icmp @@ -77,15 +61,11 @@ 4: "t9" has unsupported operation: llvm.call -4: "t9" has unsupported operation: builtin.unregistered: llvm.select - 1: "n10" 4: "n10" has unsupported operation: builtin.unregistered: llvm.icmp 4: "n10" has unsupported operation: builtin.unregistered: llvm.icmp -4: "n10" has unsupported operation: builtin.unregistered: llvm.select - 4: "n10" has unsupported operation: llvm.call 1: "t11" @@ -93,9 +73,5 @@ 4: "t11" has unsupported operation: builtin.unregistered: llvm.icmp -4: "t11" has unsupported operation: builtin.unregistered: llvm.select - -4: "t11" has unsupported operation: builtin.unregistered: llvm.select - 4: "t11" has unsupported operation: llvm.call diff --git a/SSA/Projects/InstCombine/tests/logs/sink-not-into-or.txt b/SSA/Projects/InstCombine/tests/logs/sink-not-into-or.txt index 6188a8e9c..03faedda7 100644 --- a/SSA/Projects/InstCombine/tests/logs/sink-not-into-or.txt +++ b/SSA/Projects/InstCombine/tests/logs/sink-not-into-or.txt @@ -73,7 +73,5 @@ 4: "t11" has unsupported operation: builtin.unregistered: llvm.icmp -4: "t11" has unsupported operation: builtin.unregistered: llvm.select - 4: "t11" has unsupported operation: llvm.call diff --git a/SSA/Projects/InstCombine/tests/logs/sitofp.txt b/SSA/Projects/InstCombine/tests/logs/sitofp.txt index 740508ed1..7e7b3102b 100644 --- a/SSA/Projects/InstCombine/tests/logs/sitofp.txt +++ b/SSA/Projects/InstCombine/tests/logs/sitofp.txt @@ -143,13 +143,13 @@ 4: "u32_half_u12" has unsupported operation: builtin.unregistered: llvm.fptoui 1: "i8_vec_sitofp_test1" -"i8_vec_sitofp_test1" contains vectors which are unsupported +8: "i8_vec_sitofp_test1" contains vectors which are unsupported 1: "i8_vec_sitofp_test2" -"i8_vec_sitofp_test2" contains vectors which are unsupported +8: "i8_vec_sitofp_test2" contains vectors which are unsupported 1: "i8_vec_sitofp_test3" -"i8_vec_sitofp_test3" contains vectors which are unsupported +8: "i8_vec_sitofp_test3" contains vectors which are unsupported 1: "i8_vec_sitofp_test4" 4: "i8_vec_sitofp_test4" has unsupported operation: builtin.unregistered: llvm.icmp diff --git a/SSA/Projects/InstCombine/tests/logs/smin-icmp.txt b/SSA/Projects/InstCombine/tests/logs/smin-icmp.txt index be5aea2be..c50759123 100644 --- a/SSA/Projects/InstCombine/tests/logs/smin-icmp.txt +++ b/SSA/Projects/InstCombine/tests/logs/smin-icmp.txt @@ -49,57 +49,41 @@ 1: "sle_smin1" 4: "sle_smin1" has unsupported operation after optimization: builtin.unregistered: llvm.icmp -4: "sle_smin1" has unsupported operation after optimization: builtin.unregistered: llvm.select - 4: "sle_smin1" has unsupported operation after optimization: builtin.unregistered: llvm.icmp 1: "sle_smin2" 4: "sle_smin2" has unsupported operation after optimization: builtin.unregistered: llvm.icmp -4: "sle_smin2" has unsupported operation after optimization: builtin.unregistered: llvm.select - 4: "sle_smin2" has unsupported operation after optimization: builtin.unregistered: llvm.icmp 1: "sle_smin3" 4: "sle_smin3" has unsupported operation after optimization: builtin.unregistered: llvm.icmp -4: "sle_smin3" has unsupported operation after optimization: builtin.unregistered: llvm.select - 4: "sle_smin3" has unsupported operation after optimization: builtin.unregistered: llvm.icmp 1: "sle_smin4" 4: "sle_smin4" has unsupported operation after optimization: builtin.unregistered: llvm.icmp -4: "sle_smin4" has unsupported operation after optimization: builtin.unregistered: llvm.select - 4: "sle_smin4" has unsupported operation after optimization: builtin.unregistered: llvm.icmp 1: "sgt_smin1" 4: "sgt_smin1" has unsupported operation after optimization: builtin.unregistered: llvm.icmp -4: "sgt_smin1" has unsupported operation after optimization: builtin.unregistered: llvm.select - 4: "sgt_smin1" has unsupported operation after optimization: builtin.unregistered: llvm.icmp 1: "sgt_smin2" 4: "sgt_smin2" has unsupported operation after optimization: builtin.unregistered: llvm.icmp -4: "sgt_smin2" has unsupported operation after optimization: builtin.unregistered: llvm.select - 4: "sgt_smin2" has unsupported operation after optimization: builtin.unregistered: llvm.icmp 1: "sgt_smin3" 4: "sgt_smin3" has unsupported operation after optimization: builtin.unregistered: llvm.icmp -4: "sgt_smin3" has unsupported operation after optimization: builtin.unregistered: llvm.select - 4: "sgt_smin3" has unsupported operation after optimization: builtin.unregistered: llvm.icmp 1: "sgt_smin4" 4: "sgt_smin4" has unsupported operation after optimization: builtin.unregistered: llvm.icmp -4: "sgt_smin4" has unsupported operation after optimization: builtin.unregistered: llvm.select - 4: "sgt_smin4" has unsupported operation after optimization: builtin.unregistered: llvm.icmp 1: "use" diff --git a/SSA/Projects/InstCombine/tests/logs/smulo.txt b/SSA/Projects/InstCombine/tests/logs/smulo.txt index 7e164c12b..10497014d 100644 --- a/SSA/Projects/InstCombine/tests/logs/smulo.txt +++ b/SSA/Projects/InstCombine/tests/logs/smulo.txt @@ -37,7 +37,7 @@ 4: "i1_res" has unsupported operation after optimization: llvm.extractvalue 1: "v2i1_res" -"v2i1_res" contains vectors which are unsupported +8: "v2i1_res" contains vectors which are unsupported 1: "i1_res_by_one" 4: "i1_res_by_one" has unsupported operation after optimization: builtin.unregistered: llvm.intr.smul.with.overflow @@ -45,7 +45,7 @@ 4: "i1_res_by_one" has unsupported operation after optimization: llvm.extractvalue 1: "v2i1_res_by_one" -"v2i1_res_by_one" contains vectors which are unsupported +8: "v2i1_res_by_one" contains vectors which are unsupported 1: "i1_ov" 4: "i1_ov" has unsupported operation after optimization: builtin.unregistered: llvm.intr.smul.with.overflow @@ -53,7 +53,7 @@ 4: "i1_ov" has unsupported operation after optimization: llvm.extractvalue 1: "v2i1_ov" -"v2i1_ov" contains vectors which are unsupported +8: "v2i1_ov" contains vectors which are unsupported 1: "i1_ov_by_one" 4: "i1_ov_by_one" has unsupported operation after optimization: builtin.unregistered: llvm.intr.smul.with.overflow @@ -61,5 +61,5 @@ 4: "i1_ov_by_one" has unsupported operation after optimization: llvm.extractvalue 1: "v2i1_ov_by_one" -"v2i1_ov_by_one" contains vectors which are unsupported +8: "v2i1_ov_by_one" contains vectors which are unsupported diff --git a/SSA/Projects/InstCombine/tests/logs/srem-canonicalize.txt b/SSA/Projects/InstCombine/tests/logs/srem-canonicalize.txt index 3b9eb326a..dee3aab10 100644 --- a/SSA/Projects/InstCombine/tests/logs/srem-canonicalize.txt +++ b/SSA/Projects/InstCombine/tests/logs/srem-canonicalize.txt @@ -12,7 +12,7 @@ 7: "test_srem_canonicalize_nonsw" is unchanged by InstCombine 1: "test_srem_canonicalize_vec" -"test_srem_canonicalize_vec" contains vectors which are unsupported +8: "test_srem_canonicalize_vec" contains vectors which are unsupported 1: "test_srem_canonicalize_multiple_uses" 7: "test_srem_canonicalize_multiple_uses" is unchanged by InstCombine diff --git a/SSA/Projects/InstCombine/tests/logs/strchr-1.txt b/SSA/Projects/InstCombine/tests/logs/strchr-1.txt index e80530dde..3d8265374 100644 --- a/SSA/Projects/InstCombine/tests/logs/strchr-1.txt +++ b/SSA/Projects/InstCombine/tests/logs/strchr-1.txt @@ -72,8 +72,6 @@ 4: "test_simplify7" has unsupported operation: builtin.unregistered: llvm.icmp -4: "test_simplify7" has unsupported operation: builtin.unregistered: llvm.select - 1: "test1" 4: "test1" has unsupported operation: llvm.call diff --git a/SSA/Projects/InstCombine/tests/logs/strchr-3.txt b/SSA/Projects/InstCombine/tests/logs/strchr-3.txt index 63c4b8686..a4500d1f2 100644 --- a/SSA/Projects/InstCombine/tests/logs/strchr-3.txt +++ b/SSA/Projects/InstCombine/tests/logs/strchr-3.txt @@ -12,12 +12,8 @@ 4: "fold_strchr_s1_C" has unsupported operation: builtin.unregistered: llvm.icmp -4: "fold_strchr_s1_C" has unsupported operation: builtin.unregistered: llvm.select - 4: "fold_strchr_s1_C" has unsupported operation: builtin.unregistered: llvm.icmp -4: "fold_strchr_s1_C" has unsupported operation: builtin.unregistered: llvm.select - 1: "fold_strchr_s11_C" 4: "fold_strchr_s11_C" has unsupported operation: llvm.mlir.addressof @@ -29,12 +25,8 @@ 4: "fold_strchr_s11_C" has unsupported operation: builtin.unregistered: llvm.icmp -4: "fold_strchr_s11_C" has unsupported operation: builtin.unregistered: llvm.select - 4: "fold_strchr_s11_C" has unsupported operation: builtin.unregistered: llvm.icmp -4: "fold_strchr_s11_C" has unsupported operation: builtin.unregistered: llvm.select - 1: "fold_strchr_s111_C" 4: "fold_strchr_s111_C" has unsupported operation: llvm.mlir.addressof @@ -46,12 +38,8 @@ 4: "fold_strchr_s111_C" has unsupported operation: builtin.unregistered: llvm.icmp -4: "fold_strchr_s111_C" has unsupported operation: builtin.unregistered: llvm.select - 4: "fold_strchr_s111_C" has unsupported operation: builtin.unregistered: llvm.icmp -4: "fold_strchr_s111_C" has unsupported operation: builtin.unregistered: llvm.select - 1: "fold_strchr_s000_C" 4: "fold_strchr_s000_C" has unsupported operation: llvm.mlir.addressof @@ -61,8 +49,6 @@ 4: "fold_strchr_s000_C" has unsupported operation: builtin.unregistered: llvm.icmp -4: "fold_strchr_s000_C" has unsupported operation: builtin.unregistered: llvm.select - 1: "xform_strchr_s21111_C" 4: "xform_strchr_s21111_C" has unsupported operation: llvm.mlir.addressof @@ -81,12 +67,8 @@ 4: "fold_strchr_s21111p1_C" has unsupported operation: builtin.unregistered: llvm.icmp -4: "fold_strchr_s21111p1_C" has unsupported operation: builtin.unregistered: llvm.select - 4: "fold_strchr_s21111p1_C" has unsupported operation: builtin.unregistered: llvm.icmp -4: "fold_strchr_s21111p1_C" has unsupported operation: builtin.unregistered: llvm.select - 1: "fold_strchr_s11102_C" 4: "fold_strchr_s11102_C" has unsupported operation: llvm.mlir.addressof @@ -98,12 +80,8 @@ 4: "fold_strchr_s11102_C" has unsupported operation: builtin.unregistered: llvm.icmp -4: "fold_strchr_s11102_C" has unsupported operation: builtin.unregistered: llvm.select - 4: "fold_strchr_s11102_C" has unsupported operation: builtin.unregistered: llvm.icmp -4: "fold_strchr_s11102_C" has unsupported operation: builtin.unregistered: llvm.select - 1: "memchr" 5: "memchr" is empty diff --git a/SSA/Projects/InstCombine/tests/logs/strcmp-1.txt b/SSA/Projects/InstCombine/tests/logs/strcmp-1.txt index ecc49447e..77b431cb0 100644 --- a/SSA/Projects/InstCombine/tests/logs/strcmp-1.txt +++ b/SSA/Projects/InstCombine/tests/logs/strcmp-1.txt @@ -32,8 +32,6 @@ 4: "test5" has unsupported operation: llvm.mlir.addressof -4: "test5" has unsupported operation: builtin.unregistered: llvm.select - 4: "test5" has unsupported operation: llvm.call 1: "test6" @@ -46,8 +44,6 @@ 4: "test7" has unsupported operation: llvm.mlir.addressof -4: "test7" has unsupported operation: builtin.unregistered: llvm.select - 4: "test7" has unsupported operation: llvm.call 4: "test7" has unsupported operation: builtin.unregistered: llvm.icmp diff --git a/SSA/Projects/InstCombine/tests/logs/strcmp-4.txt b/SSA/Projects/InstCombine/tests/logs/strcmp-4.txt index 5a3fe282f..2be1a12a7 100644 --- a/SSA/Projects/InstCombine/tests/logs/strcmp-4.txt +++ b/SSA/Projects/InstCombine/tests/logs/strcmp-4.txt @@ -8,7 +8,5 @@ 4: "fold_strcmp_s3_x_s4_s3" has unsupported operation: llvm.getelementptr -4: "fold_strcmp_s3_x_s4_s3" has unsupported operation: builtin.unregistered: llvm.select - 4: "fold_strcmp_s3_x_s4_s3" has unsupported operation: llvm.call diff --git a/SSA/Projects/InstCombine/tests/logs/strlen-1.txt b/SSA/Projects/InstCombine/tests/logs/strlen-1.txt index 186fe072f..9ab8aa3b1 100644 --- a/SSA/Projects/InstCombine/tests/logs/strlen-1.txt +++ b/SSA/Projects/InstCombine/tests/logs/strlen-1.txt @@ -46,7 +46,11 @@ 4: "test_simplify8" has unsupported operation: builtin.unregistered: llvm.icmp 1: "test_simplify9" -4: "test_simplify9" has unsupported operation: builtin.unregistered: llvm.select +4: "test_simplify9" has unsupported operation after optimization: llvm.mlir.addressof + +4: "test_simplify9" has unsupported operation after optimization: llvm.mlir.addressof + +4: "test_simplify9" has unsupported operation after optimization: llvm.call 1: "test_simplify10_inbounds" 4: "test_simplify10_inbounds" has unsupported operation after optimization: llvm.mlir.addressof diff --git a/SSA/Projects/InstCombine/tests/logs/strlen-4.txt b/SSA/Projects/InstCombine/tests/logs/strlen-4.txt index ac7bf2ad3..ffb1893db 100644 --- a/SSA/Projects/InstCombine/tests/logs/strlen-4.txt +++ b/SSA/Projects/InstCombine/tests/logs/strlen-4.txt @@ -8,8 +8,6 @@ 4: "fold_strlen_s3_pi_s5" has unsupported operation: llvm.getelementptr -4: "fold_strlen_s3_pi_s5" has unsupported operation: builtin.unregistered: llvm.select - 4: "fold_strlen_s3_pi_s5" has unsupported operation: llvm.call 1: "fold_strlen_s3_pi_p1_s5" @@ -21,8 +19,6 @@ 4: "fold_strlen_s3_pi_p1_s5" has unsupported operation: llvm.getelementptr -4: "fold_strlen_s3_pi_p1_s5" has unsupported operation: builtin.unregistered: llvm.select - 4: "fold_strlen_s3_pi_p1_s5" has unsupported operation: llvm.call 1: "call_strlen_s5_3_pi_s5" @@ -32,8 +28,6 @@ 4: "call_strlen_s5_3_pi_s5" has unsupported operation: llvm.getelementptr -4: "call_strlen_s5_3_pi_s5" has unsupported operation: builtin.unregistered: llvm.select - 4: "call_strlen_s5_3_pi_s5" has unsupported operation: llvm.call 1: "call_strlen_s5_3_s5_pj" @@ -43,8 +37,6 @@ 4: "call_strlen_s5_3_s5_pj" has unsupported operation: llvm.getelementptr -4: "call_strlen_s5_3_s5_pj" has unsupported operation: builtin.unregistered: llvm.select - 4: "call_strlen_s5_3_s5_pj" has unsupported operation: llvm.call 1: "fold_strlen_s3_s5_pj" @@ -54,8 +46,6 @@ 4: "fold_strlen_s3_s5_pj" has unsupported operation: llvm.getelementptr -4: "fold_strlen_s3_s5_pj" has unsupported operation: builtin.unregistered: llvm.select - 4: "fold_strlen_s3_s5_pj" has unsupported operation: llvm.call 1: "call_strlen_s3_s5_3_pj" @@ -65,8 +55,6 @@ 4: "call_strlen_s3_s5_3_pj" has unsupported operation: llvm.getelementptr -4: "call_strlen_s3_s5_3_pj" has unsupported operation: builtin.unregistered: llvm.select - 4: "call_strlen_s3_s5_3_pj" has unsupported operation: llvm.call 1: "fold_strlen_s3_pi_s5_pj" @@ -78,8 +66,6 @@ 4: "fold_strlen_s3_pi_s5_pj" has unsupported operation: llvm.getelementptr -4: "fold_strlen_s3_pi_s5_pj" has unsupported operation: builtin.unregistered: llvm.select - 4: "fold_strlen_s3_pi_s5_pj" has unsupported operation: llvm.call 1: "fold_strlen_s3_s5_s7" @@ -93,10 +79,6 @@ 4: "fold_strlen_s3_s5_s7" has unsupported operation: builtin.unregistered: llvm.icmp -4: "fold_strlen_s3_s5_s7" has unsupported operation: builtin.unregistered: llvm.select - -4: "fold_strlen_s3_s5_s7" has unsupported operation: builtin.unregistered: llvm.select - 4: "fold_strlen_s3_s5_s7" has unsupported operation: llvm.call 1: "call_strlen_sx_s5_s7" @@ -110,9 +92,5 @@ 4: "call_strlen_sx_s5_s7" has unsupported operation: builtin.unregistered: llvm.icmp -4: "call_strlen_sx_s5_s7" has unsupported operation: builtin.unregistered: llvm.select - -4: "call_strlen_sx_s5_s7" has unsupported operation: builtin.unregistered: llvm.select - 4: "call_strlen_sx_s5_s7" has unsupported operation: llvm.call diff --git a/SSA/Projects/InstCombine/tests/logs/strnlen-2.txt b/SSA/Projects/InstCombine/tests/logs/strnlen-2.txt index 699fe99ef..26758053e 100644 --- a/SSA/Projects/InstCombine/tests/logs/strnlen-2.txt +++ b/SSA/Projects/InstCombine/tests/logs/strnlen-2.txt @@ -6,8 +6,6 @@ 4: "fold_strnlen_s3_s5_0" has unsupported operation after optimization: llvm.mlir.addressof -4: "fold_strnlen_s3_s5_0" has unsupported operation after optimization: builtin.unregistered: llvm.select - 4: "fold_strnlen_s3_s5_0" has unsupported operation after optimization: llvm.call 1: "fold_strnlen_s3_s5_1" @@ -15,8 +13,6 @@ 4: "fold_strnlen_s3_s5_1" has unsupported operation after optimization: llvm.mlir.addressof -4: "fold_strnlen_s3_s5_1" has unsupported operation after optimization: builtin.unregistered: llvm.select - 4: "fold_strnlen_s3_s5_1" has unsupported operation after optimization: llvm.call 1: "fold_strnlen_s3_s5_1_asan" @@ -24,8 +20,6 @@ 4: "fold_strnlen_s3_s5_1_asan" has unsupported operation: llvm.mlir.addressof -4: "fold_strnlen_s3_s5_1_asan" has unsupported operation: builtin.unregistered: llvm.select - 4: "fold_strnlen_s3_s5_1_asan" has unsupported operation: llvm.load 4: "fold_strnlen_s3_s5_1_asan" has unsupported operation: builtin.unregistered: llvm.icmp @@ -37,8 +31,6 @@ 4: "fold_strnlen_s3_s5_3" has unsupported operation: llvm.mlir.addressof -4: "fold_strnlen_s3_s5_3" has unsupported operation: builtin.unregistered: llvm.select - 4: "fold_strnlen_s3_s5_3" has unsupported operation: llvm.call 1: "fold_strnlen_s3_s5_4" @@ -46,8 +38,6 @@ 4: "fold_strnlen_s3_s5_4" has unsupported operation: llvm.mlir.addressof -4: "fold_strnlen_s3_s5_4" has unsupported operation: builtin.unregistered: llvm.select - 4: "fold_strnlen_s3_s5_4" has unsupported operation: llvm.call 1: "fold_strnlen_s3_s5_5" @@ -55,8 +45,6 @@ 4: "fold_strnlen_s3_s5_5" has unsupported operation: llvm.mlir.addressof -4: "fold_strnlen_s3_s5_5" has unsupported operation: builtin.unregistered: llvm.select - 4: "fold_strnlen_s3_s5_5" has unsupported operation: llvm.call 1: "fold_strnlen_s5_6" @@ -64,8 +52,6 @@ 4: "fold_strnlen_s5_6" has unsupported operation: llvm.mlir.addressof -4: "fold_strnlen_s5_6" has unsupported operation: builtin.unregistered: llvm.select - 4: "fold_strnlen_s5_6" has unsupported operation: llvm.call 1: "fold_strnlen_s3_s5_s7_4" @@ -79,10 +65,6 @@ 4: "fold_strnlen_s3_s5_s7_4" has unsupported operation: builtin.unregistered: llvm.icmp -4: "fold_strnlen_s3_s5_s7_4" has unsupported operation: builtin.unregistered: llvm.select - -4: "fold_strnlen_s3_s5_s7_4" has unsupported operation: builtin.unregistered: llvm.select - 4: "fold_strnlen_s3_s5_s7_4" has unsupported operation: llvm.call 1: "fold_strnlen_s3_s5_s7_6" @@ -96,10 +78,6 @@ 4: "fold_strnlen_s3_s5_s7_6" has unsupported operation: builtin.unregistered: llvm.icmp -4: "fold_strnlen_s3_s5_s7_6" has unsupported operation: builtin.unregistered: llvm.select - -4: "fold_strnlen_s3_s5_s7_6" has unsupported operation: builtin.unregistered: llvm.select - 4: "fold_strnlen_s3_s5_s7_6" has unsupported operation: llvm.call 1: "fold_strnlen_s3_s5_s7_8" @@ -113,9 +91,5 @@ 4: "fold_strnlen_s3_s5_s7_8" has unsupported operation: builtin.unregistered: llvm.icmp -4: "fold_strnlen_s3_s5_s7_8" has unsupported operation: builtin.unregistered: llvm.select - -4: "fold_strnlen_s3_s5_s7_8" has unsupported operation: builtin.unregistered: llvm.select - 4: "fold_strnlen_s3_s5_s7_8" has unsupported operation: llvm.call diff --git a/SSA/Projects/InstCombine/tests/logs/strnlen-4.txt b/SSA/Projects/InstCombine/tests/logs/strnlen-4.txt index 39408ad1b..14ea7471a 100644 --- a/SSA/Projects/InstCombine/tests/logs/strnlen-4.txt +++ b/SSA/Projects/InstCombine/tests/logs/strnlen-4.txt @@ -8,8 +8,6 @@ 4: "fold_strnlen_s3_pi_s5_n" has unsupported operation: llvm.getelementptr -4: "fold_strnlen_s3_pi_s5_n" has unsupported operation: builtin.unregistered: llvm.select - 4: "fold_strnlen_s3_pi_s5_n" has unsupported operation: llvm.call 1: "call_strnlen_s3_pi_xbounds_s5_n" @@ -19,8 +17,6 @@ 4: "call_strnlen_s3_pi_xbounds_s5_n" has unsupported operation: llvm.getelementptr -4: "call_strnlen_s3_pi_xbounds_s5_n" has unsupported operation: builtin.unregistered: llvm.select - 4: "call_strnlen_s3_pi_xbounds_s5_n" has unsupported operation: llvm.call 1: "call_strnlen_s3_pi_sx_n" @@ -30,8 +26,6 @@ 4: "call_strnlen_s3_pi_sx_n" has unsupported operation: llvm.getelementptr -4: "call_strnlen_s3_pi_sx_n" has unsupported operation: builtin.unregistered: llvm.select - 4: "call_strnlen_s3_pi_sx_n" has unsupported operation: llvm.call 1: "fold_strnlen_s3_s5_pi_n" @@ -39,7 +33,5 @@ 4: "fold_strnlen_s3_s5_pi_n" has unsupported operation: llvm.mlir.addressof -4: "fold_strnlen_s3_s5_pi_n" has unsupported operation: builtin.unregistered: llvm.select - 4: "fold_strnlen_s3_s5_pi_n" has unsupported operation: llvm.call diff --git a/SSA/Projects/InstCombine/tests/logs/strrchr-3.txt b/SSA/Projects/InstCombine/tests/logs/strrchr-3.txt index 6d3ecbfdf..a7520ee6d 100644 --- a/SSA/Projects/InstCombine/tests/logs/strrchr-3.txt +++ b/SSA/Projects/InstCombine/tests/logs/strrchr-3.txt @@ -12,8 +12,6 @@ 4: "fold_strrchr_sp10_x" has unsupported operation: builtin.unregistered: llvm.icmp -4: "fold_strrchr_sp10_x" has unsupported operation: builtin.unregistered: llvm.select - 1: "call_strrchr_sp9_x" 4: "call_strrchr_sp9_x" has unsupported operation: llvm.mlir.addressof diff --git a/SSA/Projects/InstCombine/tests/logs/sub-and-or-neg-xor.txt b/SSA/Projects/InstCombine/tests/logs/sub-and-or-neg-xor.txt index be4a7d56f..92f60c214 100644 --- a/SSA/Projects/InstCombine/tests/logs/sub-and-or-neg-xor.txt +++ b/SSA/Projects/InstCombine/tests/logs/sub-and-or-neg-xor.txt @@ -32,7 +32,7 @@ 2: llvm.return 1: "sub_to_xor_vec" -"sub_to_xor_vec" contains vectors which are unsupported +8: "sub_to_xor_vec" contains vectors which are unsupported 1: "sub_to_xor_extra_use_and_or" 4: "sub_to_xor_extra_use_and_or" has unsupported operation: llvm.call diff --git a/SSA/Projects/InstCombine/tests/logs/sub-ashr-and-to-icmp-select.txt b/SSA/Projects/InstCombine/tests/logs/sub-ashr-and-to-icmp-select.txt index 3d2c65655..f7b6a3988 100644 --- a/SSA/Projects/InstCombine/tests/logs/sub-ashr-and-to-icmp-select.txt +++ b/SSA/Projects/InstCombine/tests/logs/sub-ashr-and-to-icmp-select.txt @@ -1,60 +1,38 @@ 1: "sub_ashr_and_i8" 4: "sub_ashr_and_i8" has unsupported operation: builtin.unregistered: llvm.icmp -4: "sub_ashr_and_i8" has unsupported operation: builtin.unregistered: llvm.select - 1: "sub_ashr_and_i16" 4: "sub_ashr_and_i16" has unsupported operation: builtin.unregistered: llvm.icmp -4: "sub_ashr_and_i16" has unsupported operation: builtin.unregistered: llvm.select - 1: "sub_ashr_and_i32" 4: "sub_ashr_and_i32" has unsupported operation: builtin.unregistered: llvm.icmp -4: "sub_ashr_and_i32" has unsupported operation: builtin.unregistered: llvm.select - 1: "sub_ashr_and_i64" 4: "sub_ashr_and_i64" has unsupported operation: builtin.unregistered: llvm.icmp -4: "sub_ashr_and_i64" has unsupported operation: builtin.unregistered: llvm.select - 1: "sub_ashr_and_i32_nuw_nsw" 4: "sub_ashr_and_i32_nuw_nsw" has unsupported operation: builtin.unregistered: llvm.icmp -4: "sub_ashr_and_i32_nuw_nsw" has unsupported operation: builtin.unregistered: llvm.select - 1: "sub_ashr_and_i32_commute" 4: "sub_ashr_and_i32_commute" has unsupported operation: builtin.unregistered: llvm.icmp -4: "sub_ashr_and_i32_commute" has unsupported operation: builtin.unregistered: llvm.select - 1: "sub_ashr_and_i32_vec" 4: "sub_ashr_and_i32_vec" has unsupported operation: builtin.unregistered: llvm.icmp -4: "sub_ashr_and_i32_vec" has unsupported operation: builtin.unregistered: llvm.select - 1: "sub_ashr_and_i32_vec_nuw_nsw" 4: "sub_ashr_and_i32_vec_nuw_nsw" has unsupported operation: builtin.unregistered: llvm.icmp -4: "sub_ashr_and_i32_vec_nuw_nsw" has unsupported operation: builtin.unregistered: llvm.select - 1: "sub_ashr_and_i32_vec_commute" 4: "sub_ashr_and_i32_vec_commute" has unsupported operation: builtin.unregistered: llvm.icmp -4: "sub_ashr_and_i32_vec_commute" has unsupported operation: builtin.unregistered: llvm.select - 1: "sub_ashr_and_i32_extra_use_sub" 4: "sub_ashr_and_i32_extra_use_sub" has unsupported operation: llvm.store 4: "sub_ashr_and_i32_extra_use_sub" has unsupported operation: builtin.unregistered: llvm.icmp -4: "sub_ashr_and_i32_extra_use_sub" has unsupported operation: builtin.unregistered: llvm.select - 1: "sub_ashr_and_i32_extra_use_and" 4: "sub_ashr_and_i32_extra_use_and" has unsupported operation: builtin.unregistered: llvm.icmp -4: "sub_ashr_and_i32_extra_use_and" has unsupported operation: builtin.unregistered: llvm.select - 4: "sub_ashr_and_i32_extra_use_and" has unsupported operation: llvm.store 1: "sub_ashr_and_i32_extra_use_ashr" @@ -64,16 +42,12 @@ 4: "sub_ashr_and_i32_extra_use_ashr" has unsupported operation: llvm.store -4: "sub_ashr_and_i32_extra_use_ashr" has unsupported operation: builtin.unregistered: llvm.select - 1: "sub_ashr_and_i32_no_nuw_nsw" 7: "sub_ashr_and_i32_no_nuw_nsw" is unchanged by InstCombine 1: "sub_ashr_and_i32_vec_poison" 4: "sub_ashr_and_i32_vec_poison" has unsupported operation: builtin.unregistered: llvm.icmp -4: "sub_ashr_and_i32_vec_poison" has unsupported operation: builtin.unregistered: llvm.select - 1: "sub_ashr_and_i32_shift_wrong_bit" 7: "sub_ashr_and_i32_shift_wrong_bit" is unchanged by InstCombine diff --git a/SSA/Projects/InstCombine/tests/logs/sub-ashr-or-to-icmp-select.txt b/SSA/Projects/InstCombine/tests/logs/sub-ashr-or-to-icmp-select.txt index 5e04a088b..4b536e7cf 100644 --- a/SSA/Projects/InstCombine/tests/logs/sub-ashr-or-to-icmp-select.txt +++ b/SSA/Projects/InstCombine/tests/logs/sub-ashr-or-to-icmp-select.txt @@ -4,23 +4,15 @@ 1: "sub_ashr_or_i8" 4: "sub_ashr_or_i8" has unsupported operation: builtin.unregistered: llvm.icmp -4: "sub_ashr_or_i8" has unsupported operation: builtin.unregistered: llvm.select - 1: "sub_ashr_or_i16" 4: "sub_ashr_or_i16" has unsupported operation: builtin.unregistered: llvm.icmp -4: "sub_ashr_or_i16" has unsupported operation: builtin.unregistered: llvm.select - 1: "sub_ashr_or_i32" 4: "sub_ashr_or_i32" has unsupported operation: builtin.unregistered: llvm.icmp -4: "sub_ashr_or_i32" has unsupported operation: builtin.unregistered: llvm.select - 1: "sub_ashr_or_i64" 4: "sub_ashr_or_i64" has unsupported operation: builtin.unregistered: llvm.icmp -4: "sub_ashr_or_i64" has unsupported operation: builtin.unregistered: llvm.select - 1: "neg_or_ashr_i32" 4: "neg_or_ashr_i32" has unsupported operation: builtin.unregistered: llvm.icmp @@ -29,13 +21,9 @@ 1: "sub_ashr_or_i32_nuw_nsw" 4: "sub_ashr_or_i32_nuw_nsw" has unsupported operation: builtin.unregistered: llvm.icmp -4: "sub_ashr_or_i32_nuw_nsw" has unsupported operation: builtin.unregistered: llvm.select - 1: "sub_ashr_or_i32_commute" 4: "sub_ashr_or_i32_commute" has unsupported operation: builtin.unregistered: llvm.icmp -4: "sub_ashr_or_i32_commute" has unsupported operation: builtin.unregistered: llvm.select - 1: "neg_or_ashr_i32_commute" 4: "neg_or_ashr_i32_commute" has unsupported operation: builtin.unregistered: llvm.icmp @@ -44,13 +32,9 @@ 1: "sub_ashr_or_i32_vec" 4: "sub_ashr_or_i32_vec" has unsupported operation: builtin.unregistered: llvm.icmp -4: "sub_ashr_or_i32_vec" has unsupported operation: builtin.unregistered: llvm.select - 1: "sub_ashr_or_i32_vec_nuw_nsw" 4: "sub_ashr_or_i32_vec_nuw_nsw" has unsupported operation: builtin.unregistered: llvm.icmp -4: "sub_ashr_or_i32_vec_nuw_nsw" has unsupported operation: builtin.unregistered: llvm.select - 1: "neg_or_ashr_i32_vec" 4: "neg_or_ashr_i32_vec" has unsupported operation: builtin.unregistered: llvm.icmp @@ -59,8 +43,6 @@ 1: "sub_ashr_or_i32_vec_commute" 4: "sub_ashr_or_i32_vec_commute" has unsupported operation: builtin.unregistered: llvm.icmp -4: "sub_ashr_or_i32_vec_commute" has unsupported operation: builtin.unregistered: llvm.select - 1: "neg_or_ashr_i32_vec_commute" 4: "neg_or_ashr_i32_vec_commute" has unsupported operation: builtin.unregistered: llvm.icmp @@ -71,13 +53,9 @@ 4: "sub_ashr_or_i32_extra_use_sub" has unsupported operation: builtin.unregistered: llvm.icmp -4: "sub_ashr_or_i32_extra_use_sub" has unsupported operation: builtin.unregistered: llvm.select - 1: "sub_ashr_or_i32_extra_use_or" 4: "sub_ashr_or_i32_extra_use_or" has unsupported operation: builtin.unregistered: llvm.icmp -4: "sub_ashr_or_i32_extra_use_or" has unsupported operation: builtin.unregistered: llvm.select - 4: "sub_ashr_or_i32_extra_use_or" has unsupported operation: llvm.store 1: "neg_extra_use_or_ashr_i32" diff --git a/SSA/Projects/InstCombine/tests/logs/sub-not.txt b/SSA/Projects/InstCombine/tests/logs/sub-not.txt index 697ff95a1..ca05a8e74 100644 --- a/SSA/Projects/InstCombine/tests/logs/sub-not.txt +++ b/SSA/Projects/InstCombine/tests/logs/sub-not.txt @@ -12,7 +12,7 @@ 4: "sub_not_extra_use" has unsupported operation: llvm.call 1: "sub_not_vec" -"sub_not_vec" contains vectors which are unsupported +8: "sub_not_vec" contains vectors which are unsupported 1: "dec_sub" 2: llvm.func @@ -25,7 +25,7 @@ 4: "dec_sub_extra_use" has unsupported operation: llvm.call 1: "dec_sub_vec" -"dec_sub_vec" contains vectors which are unsupported +8: "dec_sub_vec" contains vectors which are unsupported 1: "sub_inc" 2: llvm.func @@ -38,7 +38,7 @@ 4: "sub_inc_extra_use" has unsupported operation: llvm.call 1: "sub_inc_vec" -"sub_inc_vec" contains vectors which are unsupported +8: "sub_inc_vec" contains vectors which are unsupported 1: "sub_dec" 2: llvm.func @@ -51,5 +51,5 @@ 4: "sub_dec_extra_use" has unsupported operation: llvm.call 1: "sub_dec_vec" -"sub_dec_vec" contains vectors which are unsupported +8: "sub_dec_vec" contains vectors which are unsupported diff --git a/SSA/Projects/InstCombine/tests/logs/sub-of-negatible-inseltpoison.txt b/SSA/Projects/InstCombine/tests/logs/sub-of-negatible-inseltpoison.txt index 1498ad7e8..be9a69195 100644 --- a/SSA/Projects/InstCombine/tests/logs/sub-of-negatible-inseltpoison.txt +++ b/SSA/Projects/InstCombine/tests/logs/sub-of-negatible-inseltpoison.txt @@ -38,29 +38,34 @@ 4: "n3" has unsupported operation: llvm.call 1: "t4" -4: "t4" has unsupported operation: builtin.unregistered: llvm.select +2: llvm.func +2: llvm.mlir.constant +2: llvm.mlir.constant +2: builtin.unregistered: llvm.select +2: llvm.sub +2: llvm.return 1: "n4" -4: "n4" has unsupported operation: builtin.unregistered: llvm.select - 4: "n4" has unsupported operation: llvm.call 1: "n5" -4: "n5" has unsupported operation: builtin.unregistered: llvm.select +7: "n5" is unchanged by InstCombine 1: "t6" 4: "t6" has unsupported operation: llvm.call -4: "t6" has unsupported operation: builtin.unregistered: llvm.select - 1: "t7" -4: "t7" has unsupported operation: builtin.unregistered: llvm.select +2: llvm.func +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.shl +2: builtin.unregistered: llvm.select +2: llvm.sub +2: llvm.return 1: "n8" 4: "n8" has unsupported operation: llvm.call -4: "n8" has unsupported operation: builtin.unregistered: llvm.select - 1: "t9" 2: llvm.func 2: llvm.mlir.constant @@ -205,7 +210,7 @@ 2: llvm.return 1: "negate_xor_vec" -"negate_xor_vec" contains vectors which are unsupported +8: "negate_xor_vec" contains vectors which are unsupported 1: "negate_xor_use" 4: "negate_xor_use" has unsupported operation: llvm.call @@ -459,10 +464,8 @@ 1: "negate_select_of_op_vs_negated_op" 4: "negate_select_of_op_vs_negated_op" has unsupported operation: llvm.call -4: "negate_select_of_op_vs_negated_op" has unsupported operation: builtin.unregistered: llvm.select - 1: "dont_negate_ordinary_select" -4: "dont_negate_ordinary_select" has unsupported operation: builtin.unregistered: llvm.select +7: "dont_negate_ordinary_select" is unchanged by InstCombine 1: "negate_freeze" 4: "negate_freeze" has unsupported operation: builtin.unregistered: llvm.freeze diff --git a/SSA/Projects/InstCombine/tests/logs/sub-of-negatible.txt b/SSA/Projects/InstCombine/tests/logs/sub-of-negatible.txt index b49db649c..a27713ee4 100644 --- a/SSA/Projects/InstCombine/tests/logs/sub-of-negatible.txt +++ b/SSA/Projects/InstCombine/tests/logs/sub-of-negatible.txt @@ -38,39 +38,47 @@ 4: "n3" has unsupported operation: llvm.call 1: "t4" -4: "t4" has unsupported operation: builtin.unregistered: llvm.select +2: llvm.func +2: llvm.mlir.constant +2: llvm.mlir.constant +2: builtin.unregistered: llvm.select +2: llvm.sub +2: llvm.return 1: "select_of_constants_multi_use" -4: "select_of_constants_multi_use" has unsupported operation: builtin.unregistered: llvm.select - -4: "select_of_constants_multi_use" has unsupported operation: builtin.unregistered: llvm.select - 4: "select_of_constants_multi_use" has unsupported operation: llvm.call 1: "PR52261" -4: "PR52261" has unsupported operation after optimization: builtin.unregistered: llvm.select +2: llvm.func +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.mlir.constant +2: builtin.unregistered: llvm.select +2: llvm.sub +2: llvm.and +2: llvm.return 1: "n4" -4: "n4" has unsupported operation: builtin.unregistered: llvm.select - 4: "n4" has unsupported operation: llvm.call 1: "n5" -4: "n5" has unsupported operation: builtin.unregistered: llvm.select +7: "n5" is unchanged by InstCombine 1: "t6" 4: "t6" has unsupported operation: llvm.call -4: "t6" has unsupported operation: builtin.unregistered: llvm.select - 1: "t7" -4: "t7" has unsupported operation: builtin.unregistered: llvm.select +2: llvm.func +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.shl +2: builtin.unregistered: llvm.select +2: llvm.sub +2: llvm.return 1: "n8" 4: "n8" has unsupported operation: llvm.call -4: "n8" has unsupported operation: builtin.unregistered: llvm.select - 1: "t9" 2: llvm.func 2: llvm.mlir.constant @@ -215,7 +223,7 @@ 2: llvm.return 1: "negate_xor_vec" -"negate_xor_vec" contains vectors which are unsupported +8: "negate_xor_vec" contains vectors which are unsupported 1: "negate_xor_use" 4: "negate_xor_use" has unsupported operation: llvm.call @@ -476,10 +484,8 @@ 1: "negate_select_of_op_vs_negated_op" 4: "negate_select_of_op_vs_negated_op" has unsupported operation: llvm.call -4: "negate_select_of_op_vs_negated_op" has unsupported operation: builtin.unregistered: llvm.select - 1: "dont_negate_ordinary_select" -4: "dont_negate_ordinary_select" has unsupported operation: builtin.unregistered: llvm.select +7: "dont_negate_ordinary_select" is unchanged by InstCombine 1: "negate_select_of_negation_poison" 4: "negate_select_of_negation_poison" has unsupported operation: builtin.unregistered: llvm.mlir.poison @@ -490,8 +496,6 @@ 4: "negate_select_of_negation_poison" has unsupported operation: builtin.unregistered: llvm.insertelement -4: "negate_select_of_negation_poison" has unsupported operation: builtin.unregistered: llvm.select - 1: "negate_freeze" 4: "negate_freeze" has unsupported operation: builtin.unregistered: llvm.freeze diff --git a/SSA/Projects/InstCombine/tests/logs/sub-or-and-xor.txt b/SSA/Projects/InstCombine/tests/logs/sub-or-and-xor.txt index 679d06275..6d14ddce1 100644 --- a/SSA/Projects/InstCombine/tests/logs/sub-or-and-xor.txt +++ b/SSA/Projects/InstCombine/tests/logs/sub-or-and-xor.txt @@ -32,7 +32,7 @@ 2: llvm.return 1: "sub_to_xor_vec" -"sub_to_xor_vec" contains vectors which are unsupported +8: "sub_to_xor_vec" contains vectors which are unsupported 1: "sub_to_xor_wrong_arg" 7: "sub_to_xor_wrong_arg" is unchanged by InstCombine diff --git a/SSA/Projects/InstCombine/tests/logs/sub-xor-cmp.txt b/SSA/Projects/InstCombine/tests/logs/sub-xor-cmp.txt index 7eb0ddbd5..a80210824 100644 --- a/SSA/Projects/InstCombine/tests/logs/sub-xor-cmp.txt +++ b/SSA/Projects/InstCombine/tests/logs/sub-xor-cmp.txt @@ -1,14 +1,14 @@ 1: "sext_xor_sub" -4: "sext_xor_sub" has unsupported operation: builtin.unregistered: llvm.select +4: "sext_xor_sub" has unsupported operation after optimization: builtin.unregistered: llvm.sext 1: "sext_xor_sub_1" -4: "sext_xor_sub_1" has unsupported operation: builtin.unregistered: llvm.select +4: "sext_xor_sub_1" has unsupported operation after optimization: builtin.unregistered: llvm.sext 1: "sext_xor_sub_2" -4: "sext_xor_sub_2" has unsupported operation: builtin.unregistered: llvm.select +4: "sext_xor_sub_2" has unsupported operation after optimization: builtin.unregistered: llvm.sext 1: "sext_xor_sub_3" -4: "sext_xor_sub_3" has unsupported operation: builtin.unregistered: llvm.select +4: "sext_xor_sub_3" has unsupported operation after optimization: builtin.unregistered: llvm.sext 1: "sext_non_bool_xor_sub" 4: "sext_non_bool_xor_sub" has unsupported operation: builtin.unregistered: llvm.sext @@ -27,7 +27,7 @@ 4: "sext_diff_i1_xor_sub_1" has unsupported operation: builtin.unregistered: llvm.zext 1: "sext_multi_uses" -4: "sext_multi_uses" has unsupported operation: builtin.unregistered: llvm.select +4: "sext_multi_uses" has unsupported operation after optimization: builtin.unregistered: llvm.sext 1: "xor_multi_uses" 4: "xor_multi_uses" has unsupported operation: builtin.unregistered: llvm.sext @@ -35,15 +35,9 @@ 1: "absdiff" 4: "absdiff" has unsupported operation: builtin.unregistered: llvm.icmp -4: "absdiff" has unsupported operation: builtin.unregistered: llvm.select - 1: "absdiff1" 4: "absdiff1" has unsupported operation: builtin.unregistered: llvm.icmp -4: "absdiff1" has unsupported operation: builtin.unregistered: llvm.select - 1: "absdiff2" 4: "absdiff2" has unsupported operation: builtin.unregistered: llvm.icmp -4: "absdiff2" has unsupported operation: builtin.unregistered: llvm.select - diff --git a/SSA/Projects/InstCombine/tests/logs/sub-xor-or-neg-and.txt b/SSA/Projects/InstCombine/tests/logs/sub-xor-or-neg-and.txt index ad344365d..2142c3046 100644 --- a/SSA/Projects/InstCombine/tests/logs/sub-xor-or-neg-and.txt +++ b/SSA/Projects/InstCombine/tests/logs/sub-xor-or-neg-and.txt @@ -32,7 +32,7 @@ 2: llvm.return 1: "sub_to_and_vec" -"sub_to_and_vec" contains vectors which are unsupported +8: "sub_to_and_vec" contains vectors which are unsupported 1: "sub_to_and_extra_use_and_or" 4: "sub_to_and_extra_use_and_or" has unsupported operation: llvm.call diff --git a/SSA/Projects/InstCombine/tests/logs/sub-xor.txt b/SSA/Projects/InstCombine/tests/logs/sub-xor.txt index 61ea658f5..628a9bf59 100644 --- a/SSA/Projects/InstCombine/tests/logs/sub-xor.txt +++ b/SSA/Projects/InstCombine/tests/logs/sub-xor.txt @@ -10,7 +10,7 @@ 2: llvm.return 1: "low_mask_nsw_nuw_vec" -"low_mask_nsw_nuw_vec" contains vectors which are unsupported +8: "low_mask_nsw_nuw_vec" contains vectors which are unsupported 1: "arbitrary_mask_sub_i8" 2: llvm.func @@ -30,7 +30,7 @@ 7: "arbitrary_mask_sub_nuw_high_bit_dont_care_i8" is unchanged by InstCombine 1: "arbitrary_mask_sub_v2i5" -"arbitrary_mask_sub_v2i5" contains vectors which are unsupported +8: "arbitrary_mask_sub_v2i5" contains vectors which are unsupported 1: "not_masked_sub_i8" 2: llvm.func @@ -56,7 +56,7 @@ 4: "xor_add_extra_use" has unsupported operation: llvm.call 1: "xor_add_splat" -"xor_add_splat" contains vectors which are unsupported +8: "xor_add_splat" contains vectors which are unsupported 1: "xor_add_splat_undef" 4: "xor_add_splat_undef" has unsupported operation: llvm.mlir.undef diff --git a/SSA/Projects/InstCombine/tests/logs/subtract-from-one-hand-of-select.txt b/SSA/Projects/InstCombine/tests/logs/subtract-from-one-hand-of-select.txt index f53e8fb18..9a4eded28 100644 --- a/SSA/Projects/InstCombine/tests/logs/subtract-from-one-hand-of-select.txt +++ b/SSA/Projects/InstCombine/tests/logs/subtract-from-one-hand-of-select.txt @@ -1,20 +1,24 @@ 1: "t0_sub_from_trueval" -4: "t0_sub_from_trueval" has unsupported operation: builtin.unregistered: llvm.select +2: llvm.func +2: builtin.unregistered: llvm.select +2: llvm.sub +2: llvm.return 1: "t1_sub_from_falseval" -4: "t1_sub_from_falseval" has unsupported operation: builtin.unregistered: llvm.select +2: llvm.func +2: builtin.unregistered: llvm.select +2: llvm.sub +2: llvm.return 1: "t2_vec" -4: "t2_vec" has unsupported operation: builtin.unregistered: llvm.select +8: "t2_vec" contains vectors which are unsupported 1: "use8" 5: "use8" is empty 1: "n3_extrause" -4: "n3_extrause" has unsupported operation: builtin.unregistered: llvm.select - 4: "n3_extrause" has unsupported operation: llvm.call 1: "n4_wrong_hands" -4: "n4_wrong_hands" has unsupported operation: builtin.unregistered: llvm.select +7: "n4_wrong_hands" is unchanged by InstCombine diff --git a/SSA/Projects/InstCombine/tests/logs/subtract-of-one-hand-of-select.txt b/SSA/Projects/InstCombine/tests/logs/subtract-of-one-hand-of-select.txt index 09bae39bc..66282e677 100644 --- a/SSA/Projects/InstCombine/tests/logs/subtract-of-one-hand-of-select.txt +++ b/SSA/Projects/InstCombine/tests/logs/subtract-of-one-hand-of-select.txt @@ -1,20 +1,24 @@ 1: "t0_sub_of_trueval" -4: "t0_sub_of_trueval" has unsupported operation: builtin.unregistered: llvm.select +2: llvm.func +2: builtin.unregistered: llvm.select +2: llvm.sub +2: llvm.return 1: "t1_sub_of_falseval" -4: "t1_sub_of_falseval" has unsupported operation: builtin.unregistered: llvm.select +2: llvm.func +2: builtin.unregistered: llvm.select +2: llvm.sub +2: llvm.return 1: "t2_vec" -4: "t2_vec" has unsupported operation: builtin.unregistered: llvm.select +8: "t2_vec" contains vectors which are unsupported 1: "use8" 5: "use8" is empty 1: "n3_extrause" -4: "n3_extrause" has unsupported operation: builtin.unregistered: llvm.select - 4: "n3_extrause" has unsupported operation: llvm.call 1: "n4_wrong_hands" -4: "n4_wrong_hands" has unsupported operation: builtin.unregistered: llvm.select +7: "n4_wrong_hands" is unchanged by InstCombine diff --git a/SSA/Projects/InstCombine/tests/logs/switch-select.txt b/SSA/Projects/InstCombine/tests/logs/switch-select.txt index f51c4b2e4..52d870dfd 100644 --- a/SSA/Projects/InstCombine/tests/logs/switch-select.txt +++ b/SSA/Projects/InstCombine/tests/logs/switch-select.txt @@ -31,8 +31,6 @@ 1: "test_ult_rhsc_invalid_cond" 4: "test_ult_rhsc_invalid_cond" has unsupported operation: builtin.unregistered: llvm.icmp -4: "test_ult_rhsc_invalid_cond" has unsupported operation: builtin.unregistered: llvm.select - 4: "test_ult_rhsc_invalid_cond" has unsupported operation: builtin.unregistered: llvm.switch 4: "test_ult_rhsc_invalid_cond" has unsupported operation: llvm.call @@ -50,8 +48,6 @@ 1: "test_ult_rhsc_fail" 4: "test_ult_rhsc_fail" has unsupported operation: builtin.unregistered: llvm.icmp -4: "test_ult_rhsc_fail" has unsupported operation: builtin.unregistered: llvm.select - 4: "test_ult_rhsc_fail" has unsupported operation: builtin.unregistered: llvm.switch 4: "test_ult_rhsc_fail" has unsupported operation: llvm.call diff --git a/SSA/Projects/InstCombine/tests/logs/tmp-alloca-bypass.txt b/SSA/Projects/InstCombine/tests/logs/tmp-alloca-bypass.txt index 4ed2d1ad6..d49b37a0c 100644 --- a/SSA/Projects/InstCombine/tests/logs/tmp-alloca-bypass.txt +++ b/SSA/Projects/InstCombine/tests/logs/tmp-alloca-bypass.txt @@ -7,8 +7,6 @@ 4: "test" has unsupported operation: llvm.call -4: "test" has unsupported operation: builtin.unregistered: llvm.select - 4: "test" has unsupported operation: builtin.unregistered: llvm.intr.memcpy 4: "test" has unsupported operation: builtin.unregistered: llvm.intr.memcpy @@ -28,8 +26,6 @@ 4: "test2" has unsupported operation: builtin.unregistered: llvm.icmp -4: "test2" has unsupported operation: builtin.unregistered: llvm.select - 4: "test2" has unsupported operation: builtin.unregistered: llvm.intr.memcpy 4: "test2" has unsupported operation: llvm.call diff --git a/SSA/Projects/InstCombine/tests/logs/trunc-inseltpoison.txt b/SSA/Projects/InstCombine/tests/logs/trunc-inseltpoison.txt index 6cf2ccb0b..6ffcd8d74 100644 --- a/SSA/Projects/InstCombine/tests/logs/trunc-inseltpoison.txt +++ b/SSA/Projects/InstCombine/tests/logs/trunc-inseltpoison.txt @@ -94,7 +94,7 @@ 4: "trunc_ashr" has unsupported operation after optimization: builtin.unregistered: llvm.trunc 1: "trunc_ashr_vec" -"trunc_ashr_vec" contains vectors which are unsupported +8: "trunc_ashr_vec" contains vectors which are unsupported 1: "test7" 4: "test7" has unsupported operation: builtin.unregistered: llvm.zext @@ -321,10 +321,10 @@ 4: "trunc_shl_v8i15_v8i32_15" has unsupported operation: builtin.unregistered: llvm.trunc 1: "trunc_shl_v8i16_v8i32_16" -"trunc_shl_v8i16_v8i32_16" contains vectors which are unsupported +8: "trunc_shl_v8i16_v8i32_16" contains vectors which are unsupported 1: "trunc_shl_v8i16_v8i32_17" -"trunc_shl_v8i16_v8i32_17" contains vectors which are unsupported +8: "trunc_shl_v8i16_v8i32_17" contains vectors which are unsupported 1: "trunc_shl_v8i16_v8i32_4" 4: "trunc_shl_v8i16_v8i32_4" has unsupported operation: builtin.unregistered: llvm.trunc @@ -388,5 +388,3 @@ 4: "PR44545" has unsupported operation: builtin.unregistered: llvm.trunc -4: "PR44545" has unsupported operation: builtin.unregistered: llvm.select - diff --git a/SSA/Projects/InstCombine/tests/logs/trunc.txt b/SSA/Projects/InstCombine/tests/logs/trunc.txt index 4fa2349e6..19e22c607 100644 --- a/SSA/Projects/InstCombine/tests/logs/trunc.txt +++ b/SSA/Projects/InstCombine/tests/logs/trunc.txt @@ -97,7 +97,7 @@ 4: "trunc_ashr" has unsupported operation after optimization: builtin.unregistered: llvm.trunc 1: "trunc_ashr_vec" -"trunc_ashr_vec" contains vectors which are unsupported +8: "trunc_ashr_vec" contains vectors which are unsupported 1: "test7" 4: "test7" has unsupported operation: builtin.unregistered: llvm.zext @@ -324,10 +324,10 @@ 4: "trunc_shl_v8i15_v8i32_15" has unsupported operation: builtin.unregistered: llvm.trunc 1: "trunc_shl_v8i16_v8i32_16" -"trunc_shl_v8i16_v8i32_16" contains vectors which are unsupported +8: "trunc_shl_v8i16_v8i32_16" contains vectors which are unsupported 1: "trunc_shl_v8i16_v8i32_17" -"trunc_shl_v8i16_v8i32_17" contains vectors which are unsupported +8: "trunc_shl_v8i16_v8i32_17" contains vectors which are unsupported 1: "trunc_shl_v8i16_v8i32_4" 4: "trunc_shl_v8i16_v8i32_4" has unsupported operation: builtin.unregistered: llvm.trunc @@ -391,8 +391,6 @@ 4: "PR44545" has unsupported operation: builtin.unregistered: llvm.trunc -4: "PR44545" has unsupported operation: builtin.unregistered: llvm.select - 1: "drop_nsw_trunc" 4: "drop_nsw_trunc" has unsupported operation: builtin.unregistered: llvm.trunc @@ -417,8 +415,6 @@ 1: "pr95547" 4: "pr95547" has unsupported operation: builtin.unregistered: llvm.trunc -4: "pr95547" has unsupported operation: llvm.udiv - 4: "pr95547" has unsupported operation: builtin.unregistered: llvm.icmp 4: "pr95547" has unsupported operation: builtin.unregistered: llvm.cond_br diff --git a/SSA/Projects/InstCombine/tests/logs/truncating-saturate.txt b/SSA/Projects/InstCombine/tests/logs/truncating-saturate.txt index af2595d96..fa147f346 100644 --- a/SSA/Projects/InstCombine/tests/logs/truncating-saturate.txt +++ b/SSA/Projects/InstCombine/tests/logs/truncating-saturate.txt @@ -54,10 +54,6 @@ 4: "testtrunclowhigh" has unsupported operation: builtin.unregistered: llvm.icmp -4: "testtrunclowhigh" has unsupported operation: builtin.unregistered: llvm.select - -4: "testtrunclowhigh" has unsupported operation: builtin.unregistered: llvm.select - 1: "testi64i32addsat" 4: "testi64i32addsat" has unsupported operation: builtin.unregistered: llvm.intr.sadd.sat @@ -94,8 +90,6 @@ 4: "testi32i8" has unsupported operation: builtin.unregistered: llvm.trunc -4: "testi32i8" has unsupported operation: builtin.unregistered: llvm.select - 1: "differentconsts" 4: "differentconsts" has unsupported operation: builtin.unregistered: llvm.icmp @@ -103,10 +97,6 @@ 4: "differentconsts" has unsupported operation: builtin.unregistered: llvm.trunc -4: "differentconsts" has unsupported operation: builtin.unregistered: llvm.select - -4: "differentconsts" has unsupported operation: builtin.unregistered: llvm.select - 1: "badimm1" 4: "badimm1" has unsupported operation: builtin.unregistered: llvm.trunc @@ -116,10 +106,6 @@ 4: "badimm1" has unsupported operation: builtin.unregistered: llvm.icmp -4: "badimm1" has unsupported operation: builtin.unregistered: llvm.select - -4: "badimm1" has unsupported operation: builtin.unregistered: llvm.select - 1: "badimm2" 4: "badimm2" has unsupported operation: builtin.unregistered: llvm.trunc @@ -129,10 +115,6 @@ 4: "badimm2" has unsupported operation: builtin.unregistered: llvm.icmp -4: "badimm2" has unsupported operation: builtin.unregistered: llvm.select - -4: "badimm2" has unsupported operation: builtin.unregistered: llvm.select - 1: "badimm3" 4: "badimm3" has unsupported operation: builtin.unregistered: llvm.trunc @@ -140,8 +122,6 @@ 4: "badimm3" has unsupported operation: builtin.unregistered: llvm.trunc -4: "badimm3" has unsupported operation: builtin.unregistered: llvm.select - 1: "badimm4" 4: "badimm4" has unsupported operation: builtin.unregistered: llvm.icmp @@ -149,10 +129,6 @@ 4: "badimm4" has unsupported operation: builtin.unregistered: llvm.trunc -4: "badimm4" has unsupported operation: builtin.unregistered: llvm.select - -4: "badimm4" has unsupported operation: builtin.unregistered: llvm.select - 1: "oneusexor" 4: "oneusexor" has unsupported operation: builtin.unregistered: llvm.trunc @@ -160,10 +136,6 @@ 4: "oneusexor" has unsupported operation: builtin.unregistered: llvm.icmp -4: "oneusexor" has unsupported operation: builtin.unregistered: llvm.select - -4: "oneusexor" has unsupported operation: builtin.unregistered: llvm.select - 4: "oneusexor" has unsupported operation: llvm.call 1: "oneuseconv" @@ -173,10 +145,6 @@ 4: "oneuseconv" has unsupported operation: builtin.unregistered: llvm.icmp -4: "oneuseconv" has unsupported operation: builtin.unregistered: llvm.select - -4: "oneuseconv" has unsupported operation: builtin.unregistered: llvm.select - 4: "oneuseconv" has unsupported operation: llvm.call 1: "oneusecmp" @@ -186,10 +154,6 @@ 4: "oneusecmp" has unsupported operation: builtin.unregistered: llvm.icmp -4: "oneusecmp" has unsupported operation: builtin.unregistered: llvm.select - -4: "oneusecmp" has unsupported operation: builtin.unregistered: llvm.select - 4: "oneusecmp" has unsupported operation: llvm.call 1: "oneuseboth" @@ -199,10 +163,6 @@ 4: "oneuseboth" has unsupported operation: builtin.unregistered: llvm.icmp -4: "oneuseboth" has unsupported operation: builtin.unregistered: llvm.select - -4: "oneuseboth" has unsupported operation: builtin.unregistered: llvm.select - 4: "oneuseboth" has unsupported operation: llvm.call 4: "oneuseboth" has unsupported operation: llvm.call @@ -214,10 +174,6 @@ 4: "oneusethree" has unsupported operation: builtin.unregistered: llvm.icmp -4: "oneusethree" has unsupported operation: builtin.unregistered: llvm.select - -4: "oneusethree" has unsupported operation: builtin.unregistered: llvm.select - 4: "oneusethree" has unsupported operation: llvm.call 4: "oneusethree" has unsupported operation: llvm.call @@ -227,14 +183,10 @@ 1: "differentconsts_usetrunc" 4: "differentconsts_usetrunc" has unsupported operation: builtin.unregistered: llvm.icmp -4: "differentconsts_usetrunc" has unsupported operation: builtin.unregistered: llvm.select - 4: "differentconsts_usetrunc" has unsupported operation: builtin.unregistered: llvm.icmp 4: "differentconsts_usetrunc" has unsupported operation: builtin.unregistered: llvm.trunc -4: "differentconsts_usetrunc" has unsupported operation: builtin.unregistered: llvm.select - 4: "differentconsts_usetrunc" has unsupported operation: llvm.call 1: "differentconsts_useadd" @@ -244,23 +196,15 @@ 4: "differentconsts_useadd" has unsupported operation: builtin.unregistered: llvm.trunc -4: "differentconsts_useadd" has unsupported operation: builtin.unregistered: llvm.select - -4: "differentconsts_useadd" has unsupported operation: builtin.unregistered: llvm.select - 4: "differentconsts_useadd" has unsupported operation: llvm.call 1: "differentconsts_useaddtrunc" 4: "differentconsts_useaddtrunc" has unsupported operation: builtin.unregistered: llvm.icmp -4: "differentconsts_useaddtrunc" has unsupported operation: builtin.unregistered: llvm.select - 4: "differentconsts_useaddtrunc" has unsupported operation: builtin.unregistered: llvm.icmp 4: "differentconsts_useaddtrunc" has unsupported operation: builtin.unregistered: llvm.trunc -4: "differentconsts_useaddtrunc" has unsupported operation: builtin.unregistered: llvm.select - 4: "differentconsts_useaddtrunc" has unsupported operation: llvm.call 4: "differentconsts_useaddtrunc" has unsupported operation: llvm.call @@ -268,30 +212,18 @@ 1: "C0zero" 4: "C0zero" has unsupported operation: builtin.unregistered: llvm.icmp -4: "C0zero" has unsupported operation: builtin.unregistered: llvm.select - 1: "C0zeroV" 4: "C0zeroV" has unsupported operation: builtin.unregistered: llvm.icmp -4: "C0zeroV" has unsupported operation: builtin.unregistered: llvm.select - 1: "C0zeroVu" 4: "C0zeroVu" has unsupported operation: builtin.unregistered: llvm.icmp 4: "C0zeroVu" has unsupported operation: builtin.unregistered: llvm.icmp -4: "C0zeroVu" has unsupported operation: builtin.unregistered: llvm.select - -4: "C0zeroVu" has unsupported operation: builtin.unregistered: llvm.select - 1: "f" 4: "f" has unsupported operation: builtin.unregistered: llvm.icmp -4: "f" has unsupported operation: builtin.unregistered: llvm.select - 4: "f" has unsupported operation: builtin.unregistered: llvm.icmp 4: "f" has unsupported operation: builtin.unregistered: llvm.trunc -4: "f" has unsupported operation: builtin.unregistered: llvm.select - diff --git a/SSA/Projects/InstCombine/tests/logs/uaddo.txt b/SSA/Projects/InstCombine/tests/logs/uaddo.txt index 1e766e514..74219fccf 100644 --- a/SSA/Projects/InstCombine/tests/logs/uaddo.txt +++ b/SSA/Projects/InstCombine/tests/logs/uaddo.txt @@ -1,53 +1,33 @@ 1: "uaddo_commute1" 4: "uaddo_commute1" has unsupported operation: builtin.unregistered: llvm.icmp -4: "uaddo_commute1" has unsupported operation: builtin.unregistered: llvm.select - 1: "uaddo_commute2" 4: "uaddo_commute2" has unsupported operation: builtin.unregistered: llvm.icmp -4: "uaddo_commute2" has unsupported operation: builtin.unregistered: llvm.select - 1: "uaddo_commute3" 4: "uaddo_commute3" has unsupported operation: builtin.unregistered: llvm.icmp -4: "uaddo_commute3" has unsupported operation: builtin.unregistered: llvm.select - 1: "uaddo_commute4" 4: "uaddo_commute4" has unsupported operation: builtin.unregistered: llvm.icmp -4: "uaddo_commute4" has unsupported operation: builtin.unregistered: llvm.select - 1: "uaddo_commute5" 4: "uaddo_commute5" has unsupported operation: builtin.unregistered: llvm.icmp -4: "uaddo_commute5" has unsupported operation: builtin.unregistered: llvm.select - 1: "uaddo_commute6" 4: "uaddo_commute6" has unsupported operation: builtin.unregistered: llvm.icmp -4: "uaddo_commute6" has unsupported operation: builtin.unregistered: llvm.select - 1: "uaddo_commute7" 4: "uaddo_commute7" has unsupported operation: builtin.unregistered: llvm.icmp -4: "uaddo_commute7" has unsupported operation: builtin.unregistered: llvm.select - 1: "uaddo_commute8" 4: "uaddo_commute8" has unsupported operation: builtin.unregistered: llvm.icmp -4: "uaddo_commute8" has unsupported operation: builtin.unregistered: llvm.select - 1: "uaddo_wrong_pred1" 4: "uaddo_wrong_pred1" has unsupported operation: builtin.unregistered: llvm.icmp -4: "uaddo_wrong_pred1" has unsupported operation: builtin.unregistered: llvm.select - 1: "uaddo_wrong_pred2" 4: "uaddo_wrong_pred2" has unsupported operation: builtin.unregistered: llvm.icmp -4: "uaddo_wrong_pred2" has unsupported operation: builtin.unregistered: llvm.select - 1: "uaddo_1" 4: "uaddo_1" has unsupported operation: llvm.store diff --git a/SSA/Projects/InstCombine/tests/logs/udiv_select_to_select_shift.txt b/SSA/Projects/InstCombine/tests/logs/udiv_select_to_select_shift.txt index c388c075b..e933c0473 100644 --- a/SSA/Projects/InstCombine/tests/logs/udiv_select_to_select_shift.txt +++ b/SSA/Projects/InstCombine/tests/logs/udiv_select_to_select_shift.txt @@ -1,11 +1,14 @@ 1: "test" -4: "test" has unsupported operation after optimization: builtin.unregistered: llvm.select - -4: "test" has unsupported operation after optimization: llvm.udiv - -4: "test" has unsupported operation after optimization: builtin.unregistered: llvm.select - -4: "test" has unsupported operation after optimization: llvm.udiv +2: llvm.func +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.mlir.constant +2: builtin.unregistered: llvm.select +2: llvm.udiv +2: builtin.unregistered: llvm.select +2: llvm.udiv +2: llvm.add +2: llvm.return 1: "PR34856" 4: "PR34856" has unsupported operation: builtin.unregistered: llvm.icmp diff --git a/SSA/Projects/InstCombine/tests/logs/udivrem-change-width.txt b/SSA/Projects/InstCombine/tests/logs/udivrem-change-width.txt index a01c4ec1b..abe3175f3 100644 --- a/SSA/Projects/InstCombine/tests/logs/udivrem-change-width.txt +++ b/SSA/Projects/InstCombine/tests/logs/udivrem-change-width.txt @@ -1,8 +1,12 @@ 1: "udiv_i8" -4: "udiv_i8" has unsupported operation: llvm.udiv +4: "udiv_i8" has unsupported operation after optimization: builtin.unregistered: llvm.zext + +4: "udiv_i8" has unsupported operation after optimization: builtin.unregistered: llvm.zext + +4: "udiv_i8" has unsupported operation after optimization: builtin.unregistered: llvm.trunc 1: "udiv_i8_vec" -4: "udiv_i8_vec" has unsupported operation: llvm.udiv +8: "udiv_i8_vec" contains vectors which are unsupported 1: "urem_i8" 4: "urem_i8" has unsupported operation after optimization: builtin.unregistered: llvm.zext @@ -12,16 +16,12 @@ 4: "urem_i8" has unsupported operation after optimization: builtin.unregistered: llvm.trunc 1: "urem_i8_vec" -"urem_i8_vec" contains vectors which are unsupported +8: "urem_i8_vec" contains vectors which are unsupported 1: "udiv_i32" -4: "udiv_i32" has unsupported operation: llvm.udiv - 4: "udiv_i32" has unsupported operation: builtin.unregistered: llvm.zext 1: "udiv_i32_vec" -4: "udiv_i32_vec" has unsupported operation: llvm.udiv - 4: "udiv_i32_vec" has unsupported operation: builtin.unregistered: llvm.zext 1: "udiv_i32_multiuse" @@ -29,11 +29,7 @@ 4: "udiv_i32_multiuse" has unsupported operation: builtin.unregistered: llvm.zext -4: "udiv_i32_multiuse" has unsupported operation: llvm.udiv - 1: "udiv_illegal_type" -4: "udiv_illegal_type" has unsupported operation: llvm.udiv - 4: "udiv_illegal_type" has unsupported operation: builtin.unregistered: llvm.zext 1: "urem_i32" @@ -51,23 +47,15 @@ 4: "urem_illegal_type" has unsupported operation: builtin.unregistered: llvm.zext 1: "udiv_i32_c" -4: "udiv_i32_c" has unsupported operation: llvm.udiv - 4: "udiv_i32_c" has unsupported operation: builtin.unregistered: llvm.zext 1: "udiv_i32_c_vec" -4: "udiv_i32_c_vec" has unsupported operation: llvm.udiv - 4: "udiv_i32_c_vec" has unsupported operation: builtin.unregistered: llvm.zext 1: "udiv_i32_c_multiuse" 4: "udiv_i32_c_multiuse" has unsupported operation: builtin.unregistered: llvm.zext -4: "udiv_i32_c_multiuse" has unsupported operation: llvm.udiv - 1: "udiv_illegal_type_c" -4: "udiv_illegal_type_c" has unsupported operation: llvm.udiv - 4: "udiv_illegal_type_c" has unsupported operation: builtin.unregistered: llvm.zext 1: "urem_i32_c" @@ -83,8 +71,6 @@ 4: "urem_illegal_type_c" has unsupported operation: builtin.unregistered: llvm.zext 1: "udiv_c_i32" -4: "udiv_c_i32" has unsupported operation: llvm.udiv - 4: "udiv_c_i32" has unsupported operation: builtin.unregistered: llvm.zext 1: "urem_c_i32" @@ -95,8 +81,6 @@ 4: "udiv_constexpr" has unsupported operation: builtin.unregistered: llvm.ptrtoint -4: "udiv_constexpr" has unsupported operation: llvm.udiv - 4: "udiv_constexpr" has unsupported operation: builtin.unregistered: llvm.zext 1: "udiv_const_constexpr" @@ -104,8 +88,6 @@ 4: "udiv_const_constexpr" has unsupported operation: builtin.unregistered: llvm.ptrtoint -4: "udiv_const_constexpr" has unsupported operation: llvm.udiv - 4: "udiv_const_constexpr" has unsupported operation: builtin.unregistered: llvm.zext 1: "urem_const_constexpr" @@ -120,8 +102,6 @@ 4: "udiv_constexpr_const" has unsupported operation: builtin.unregistered: llvm.ptrtoint -4: "udiv_constexpr_const" has unsupported operation: llvm.udiv - 4: "udiv_constexpr_const" has unsupported operation: builtin.unregistered: llvm.zext 1: "urem_constexpr_const" diff --git a/SSA/Projects/InstCombine/tests/logs/umulo.txt b/SSA/Projects/InstCombine/tests/logs/umulo.txt index 5310a97a2..9d6cd251b 100644 --- a/SSA/Projects/InstCombine/tests/logs/umulo.txt +++ b/SSA/Projects/InstCombine/tests/logs/umulo.txt @@ -37,7 +37,7 @@ 4: "i1_res" has unsupported operation after optimization: llvm.extractvalue 1: "v2i1_res" -"v2i1_res" contains vectors which are unsupported +8: "v2i1_res" contains vectors which are unsupported 1: "i1_res_by_one" 4: "i1_res_by_one" has unsupported operation after optimization: builtin.unregistered: llvm.intr.umul.with.overflow @@ -45,7 +45,7 @@ 4: "i1_res_by_one" has unsupported operation after optimization: llvm.extractvalue 1: "v2i1_res_by_one" -"v2i1_res_by_one" contains vectors which are unsupported +8: "v2i1_res_by_one" contains vectors which are unsupported 1: "i1_ov" 4: "i1_ov" has unsupported operation after optimization: builtin.unregistered: llvm.intr.umul.with.overflow @@ -53,7 +53,7 @@ 4: "i1_ov" has unsupported operation after optimization: llvm.extractvalue 1: "v2i1_ov" -"v2i1_ov" contains vectors which are unsupported +8: "v2i1_ov" contains vectors which are unsupported 1: "i1_ov_by_one" 4: "i1_ov_by_one" has unsupported operation after optimization: builtin.unregistered: llvm.intr.umul.with.overflow @@ -61,5 +61,5 @@ 4: "i1_ov_by_one" has unsupported operation after optimization: llvm.extractvalue 1: "v2i1_ov_by_one" -"v2i1_ov_by_one" contains vectors which are unsupported +8: "v2i1_ov_by_one" contains vectors which are unsupported diff --git a/SSA/Projects/InstCombine/tests/logs/unfold-masked-merge-with-const-mask-vector.txt b/SSA/Projects/InstCombine/tests/logs/unfold-masked-merge-with-const-mask-vector.txt index c45135311..18d333914 100644 --- a/SSA/Projects/InstCombine/tests/logs/unfold-masked-merge-with-const-mask-vector.txt +++ b/SSA/Projects/InstCombine/tests/logs/unfold-masked-merge-with-const-mask-vector.txt @@ -1,32 +1,32 @@ 1: "splat" -"splat" contains vectors which are unsupported +8: "splat" contains vectors which are unsupported 1: "splat_undef" -"splat_undef" contains vectors which are unsupported +8: "splat_undef" contains vectors which are unsupported 1: "nonsplat" -"nonsplat" contains vectors which are unsupported +8: "nonsplat" contains vectors which are unsupported 1: "in_constant_varx_mone" -"in_constant_varx_mone" contains vectors which are unsupported +8: "in_constant_varx_mone" contains vectors which are unsupported 1: "in_constant_varx_14" -"in_constant_varx_14" contains vectors which are unsupported +8: "in_constant_varx_14" contains vectors which are unsupported 1: "in_constant_varx_14_nonsplat" -"in_constant_varx_14_nonsplat" contains vectors which are unsupported +8: "in_constant_varx_14_nonsplat" contains vectors which are unsupported 1: "in_constant_varx_14_undef" -"in_constant_varx_14_undef" contains vectors which are unsupported +8: "in_constant_varx_14_undef" contains vectors which are unsupported 1: "in_constant_mone_vary" -"in_constant_mone_vary" contains vectors which are unsupported +8: "in_constant_mone_vary" contains vectors which are unsupported 1: "in_constant_14_vary" -"in_constant_14_vary" contains vectors which are unsupported +8: "in_constant_14_vary" contains vectors which are unsupported 1: "in_constant_14_vary_nonsplat" -"in_constant_14_vary_nonsplat" contains vectors which are unsupported +8: "in_constant_14_vary_nonsplat" contains vectors which are unsupported 1: "in_constant_14_vary_undef" 4: "in_constant_14_vary_undef" has unsupported operation: llvm.mlir.undef @@ -43,10 +43,10 @@ 5: "gen4" is empty 1: "c_1_0_0" -"c_1_0_0" contains vectors which are unsupported +8: "c_1_0_0" contains vectors which are unsupported 1: "c_0_1_0" -"c_0_1_0" contains vectors which are unsupported +8: "c_0_1_0" contains vectors which are unsupported 1: "c_0_0_1" 4: "c_0_0_1" has unsupported operation: llvm.call @@ -54,7 +54,7 @@ 4: "c_0_0_1" has unsupported operation: llvm.call 1: "c_1_1_0" -"c_1_1_0" contains vectors which are unsupported +8: "c_1_1_0" contains vectors which are unsupported 1: "c_1_0_1" 4: "c_1_0_1" has unsupported operation: llvm.call @@ -68,7 +68,7 @@ 4: "c_1_1_1" has unsupported operation: llvm.call 1: "commutativity_constant_14_vary" -"commutativity_constant_14_vary" contains vectors which are unsupported +8: "commutativity_constant_14_vary" contains vectors which are unsupported 1: "use4" 5: "use4" is empty diff --git a/SSA/Projects/InstCombine/tests/logs/unordered-fcmp-select.txt b/SSA/Projects/InstCombine/tests/logs/unordered-fcmp-select.txt index 97be76404..f9f5a935f 100644 --- a/SSA/Projects/InstCombine/tests/logs/unordered-fcmp-select.txt +++ b/SSA/Projects/InstCombine/tests/logs/unordered-fcmp-select.txt @@ -1,49 +1,33 @@ 1: "select_max_ugt" 4: "select_max_ugt" has unsupported operation: builtin.unregistered: llvm.fcmp -4: "select_max_ugt" has unsupported operation: builtin.unregistered: llvm.select - 1: "select_max_uge" 4: "select_max_uge" has unsupported operation: builtin.unregistered: llvm.fcmp -4: "select_max_uge" has unsupported operation: builtin.unregistered: llvm.select - 1: "select_min_ugt" 4: "select_min_ugt" has unsupported operation: builtin.unregistered: llvm.intr.minnum 1: "select_min_uge" 4: "select_min_uge" has unsupported operation: builtin.unregistered: llvm.fcmp -4: "select_min_uge" has unsupported operation: builtin.unregistered: llvm.select - 1: "select_max_ult" 4: "select_max_ult" has unsupported operation: builtin.unregistered: llvm.fcmp -4: "select_max_ult" has unsupported operation: builtin.unregistered: llvm.select - 1: "select_max_ule" 4: "select_max_ule" has unsupported operation: builtin.unregistered: llvm.intr.maxnum 1: "select_min_ult" 4: "select_min_ult" has unsupported operation: builtin.unregistered: llvm.fcmp -4: "select_min_ult" has unsupported operation: builtin.unregistered: llvm.select - 1: "select_min_ule" 4: "select_min_ule" has unsupported operation: builtin.unregistered: llvm.fcmp -4: "select_min_ule" has unsupported operation: builtin.unregistered: llvm.select - 1: "select_fcmp_une" 4: "select_fcmp_une" has unsupported operation: builtin.unregistered: llvm.fcmp -4: "select_fcmp_une" has unsupported operation: builtin.unregistered: llvm.select - 1: "select_fcmp_ueq" 4: "select_fcmp_ueq" has unsupported operation: builtin.unregistered: llvm.fcmp -4: "select_fcmp_ueq" has unsupported operation: builtin.unregistered: llvm.select - 1: "foo" 5: "foo" is empty @@ -52,12 +36,8 @@ 4: "select_max_ugt_2_use_cmp" has unsupported operation: llvm.call -4: "select_max_ugt_2_use_cmp" has unsupported operation: builtin.unregistered: llvm.select - 1: "select_min_uge_2_use_cmp" 4: "select_min_uge_2_use_cmp" has unsupported operation: builtin.unregistered: llvm.fcmp 4: "select_min_uge_2_use_cmp" has unsupported operation: llvm.call -4: "select_min_uge_2_use_cmp" has unsupported operation: builtin.unregistered: llvm.select - diff --git a/SSA/Projects/InstCombine/tests/logs/unsigned-mul-lack-of-overflow-check-via-mul-udiv.txt b/SSA/Projects/InstCombine/tests/logs/unsigned-mul-lack-of-overflow-check-via-mul-udiv.txt index 682168afc..ad6fde2e2 100644 --- a/SSA/Projects/InstCombine/tests/logs/unsigned-mul-lack-of-overflow-check-via-mul-udiv.txt +++ b/SSA/Projects/InstCombine/tests/logs/unsigned-mul-lack-of-overflow-check-via-mul-udiv.txt @@ -45,8 +45,6 @@ 4: "t5_extrause0" has unsupported operation: llvm.call 1: "t6_extrause1" -4: "t6_extrause1" has unsupported operation: llvm.udiv - 4: "t6_extrause1" has unsupported operation: llvm.call 4: "t6_extrause1" has unsupported operation: builtin.unregistered: llvm.icmp @@ -54,24 +52,16 @@ 1: "t7_extrause2" 4: "t7_extrause2" has unsupported operation: llvm.call -4: "t7_extrause2" has unsupported operation: llvm.udiv - 4: "t7_extrause2" has unsupported operation: llvm.call 4: "t7_extrause2" has unsupported operation: builtin.unregistered: llvm.icmp 1: "n8_different_x" -4: "n8_different_x" has unsupported operation: llvm.udiv - 4: "n8_different_x" has unsupported operation: builtin.unregistered: llvm.icmp 1: "n9_different_y" -4: "n9_different_y" has unsupported operation: llvm.udiv - 4: "n9_different_y" has unsupported operation: builtin.unregistered: llvm.icmp 1: "n10_wrong_pred" -4: "n10_wrong_pred" has unsupported operation: llvm.udiv - 4: "n10_wrong_pred" has unsupported operation: builtin.unregistered: llvm.icmp diff --git a/SSA/Projects/InstCombine/tests/logs/unsigned-mul-lack-of-overflow-check-via-udiv-of-allones.txt b/SSA/Projects/InstCombine/tests/logs/unsigned-mul-lack-of-overflow-check-via-udiv-of-allones.txt index 6cc03425e..ce39c5771 100644 --- a/SSA/Projects/InstCombine/tests/logs/unsigned-mul-lack-of-overflow-check-via-udiv-of-allones.txt +++ b/SSA/Projects/InstCombine/tests/logs/unsigned-mul-lack-of-overflow-check-via-udiv-of-allones.txt @@ -27,24 +27,16 @@ 5: "use8" is empty 1: "n4_extrause" -4: "n4_extrause" has unsupported operation: llvm.udiv - 4: "n4_extrause" has unsupported operation: llvm.call 4: "n4_extrause" has unsupported operation: builtin.unregistered: llvm.icmp 1: "n5_not_negone" -4: "n5_not_negone" has unsupported operation: llvm.udiv - 4: "n5_not_negone" has unsupported operation: builtin.unregistered: llvm.icmp 1: "n6_wrong_pred0" -4: "n6_wrong_pred0" has unsupported operation: llvm.udiv - 4: "n6_wrong_pred0" has unsupported operation: builtin.unregistered: llvm.icmp 1: "n6_wrong_pred1" -4: "n6_wrong_pred1" has unsupported operation: llvm.udiv - 4: "n6_wrong_pred1" has unsupported operation: builtin.unregistered: llvm.icmp diff --git a/SSA/Projects/InstCombine/tests/logs/unsigned-mul-overflow-check-via-mul-udiv.txt b/SSA/Projects/InstCombine/tests/logs/unsigned-mul-overflow-check-via-mul-udiv.txt index 682168afc..ad6fde2e2 100644 --- a/SSA/Projects/InstCombine/tests/logs/unsigned-mul-overflow-check-via-mul-udiv.txt +++ b/SSA/Projects/InstCombine/tests/logs/unsigned-mul-overflow-check-via-mul-udiv.txt @@ -45,8 +45,6 @@ 4: "t5_extrause0" has unsupported operation: llvm.call 1: "t6_extrause1" -4: "t6_extrause1" has unsupported operation: llvm.udiv - 4: "t6_extrause1" has unsupported operation: llvm.call 4: "t6_extrause1" has unsupported operation: builtin.unregistered: llvm.icmp @@ -54,24 +52,16 @@ 1: "t7_extrause2" 4: "t7_extrause2" has unsupported operation: llvm.call -4: "t7_extrause2" has unsupported operation: llvm.udiv - 4: "t7_extrause2" has unsupported operation: llvm.call 4: "t7_extrause2" has unsupported operation: builtin.unregistered: llvm.icmp 1: "n8_different_x" -4: "n8_different_x" has unsupported operation: llvm.udiv - 4: "n8_different_x" has unsupported operation: builtin.unregistered: llvm.icmp 1: "n9_different_y" -4: "n9_different_y" has unsupported operation: llvm.udiv - 4: "n9_different_y" has unsupported operation: builtin.unregistered: llvm.icmp 1: "n10_wrong_pred" -4: "n10_wrong_pred" has unsupported operation: llvm.udiv - 4: "n10_wrong_pred" has unsupported operation: builtin.unregistered: llvm.icmp diff --git a/SSA/Projects/InstCombine/tests/logs/unsigned-mul-overflow-check-via-udiv-of-allones.txt b/SSA/Projects/InstCombine/tests/logs/unsigned-mul-overflow-check-via-udiv-of-allones.txt index 6cc03425e..ce39c5771 100644 --- a/SSA/Projects/InstCombine/tests/logs/unsigned-mul-overflow-check-via-udiv-of-allones.txt +++ b/SSA/Projects/InstCombine/tests/logs/unsigned-mul-overflow-check-via-udiv-of-allones.txt @@ -27,24 +27,16 @@ 5: "use8" is empty 1: "n4_extrause" -4: "n4_extrause" has unsupported operation: llvm.udiv - 4: "n4_extrause" has unsupported operation: llvm.call 4: "n4_extrause" has unsupported operation: builtin.unregistered: llvm.icmp 1: "n5_not_negone" -4: "n5_not_negone" has unsupported operation: llvm.udiv - 4: "n5_not_negone" has unsupported operation: builtin.unregistered: llvm.icmp 1: "n6_wrong_pred0" -4: "n6_wrong_pred0" has unsupported operation: llvm.udiv - 4: "n6_wrong_pred0" has unsupported operation: builtin.unregistered: llvm.icmp 1: "n6_wrong_pred1" -4: "n6_wrong_pred1" has unsupported operation: llvm.udiv - 4: "n6_wrong_pred1" has unsupported operation: builtin.unregistered: llvm.icmp diff --git a/SSA/Projects/InstCombine/tests/logs/unsigned_saturated_sub.txt b/SSA/Projects/InstCombine/tests/logs/unsigned_saturated_sub.txt index bfdaa8a4a..8840d04fc 100644 --- a/SSA/Projects/InstCombine/tests/logs/unsigned_saturated_sub.txt +++ b/SSA/Projects/InstCombine/tests/logs/unsigned_saturated_sub.txt @@ -23,13 +23,13 @@ 4: "usub_sat_C1_C2_non_splat" has unsupported operation: builtin.unregistered: llvm.intr.usub.sat 1: "usub_sat_C1_C2_splat_produce_0" -"usub_sat_C1_C2_splat_produce_0" contains vectors which are unsupported +8: "usub_sat_C1_C2_splat_produce_0" contains vectors which are unsupported 1: "usub_sat_C1_C2_splat_produce_0_too" -"usub_sat_C1_C2_splat_produce_0_too" contains vectors which are unsupported +8: "usub_sat_C1_C2_splat_produce_0_too" contains vectors which are unsupported 1: "usub_sat_C1_C2_non_splat_produce_0_too" -"usub_sat_C1_C2_non_splat_produce_0_too" contains vectors which are unsupported +8: "usub_sat_C1_C2_non_splat_produce_0_too" contains vectors which are unsupported 1: "usub_sat_C1_C2_without_nuw" 4: "usub_sat_C1_C2_without_nuw" has unsupported operation: builtin.unregistered: llvm.intr.usub.sat @@ -103,8 +103,6 @@ 1: "neg_max_sub_ugt_sel_swapped_extrause3" 4: "neg_max_sub_ugt_sel_swapped_extrause3" has unsupported operation: builtin.unregistered: llvm.icmp -4: "neg_max_sub_ugt_sel_swapped_extrause3" has unsupported operation: builtin.unregistered: llvm.select - 4: "neg_max_sub_ugt_sel_swapped_extrause3" has unsupported operation: llvm.call 4: "neg_max_sub_ugt_sel_swapped_extrause3" has unsupported operation: llvm.call @@ -126,23 +124,15 @@ 1: "max_sub_ugt_c910" 4: "max_sub_ugt_c910" has unsupported operation: builtin.unregistered: llvm.icmp -4: "max_sub_ugt_c910" has unsupported operation: builtin.unregistered: llvm.select - 1: "max_sub_ugt_c1110" 4: "max_sub_ugt_c1110" has unsupported operation: builtin.unregistered: llvm.icmp -4: "max_sub_ugt_c1110" has unsupported operation: builtin.unregistered: llvm.select - 1: "max_sub_ugt_c0" 4: "max_sub_ugt_c0" has unsupported operation after optimization: builtin.unregistered: llvm.icmp -4: "max_sub_ugt_c0" has unsupported operation after optimization: builtin.unregistered: llvm.select - 1: "max_sub_ugt_cmiss" 4: "max_sub_ugt_cmiss" has unsupported operation: builtin.unregistered: llvm.icmp -4: "max_sub_ugt_cmiss" has unsupported operation: builtin.unregistered: llvm.select - 1: "max_sub_ult_c1" 4: "max_sub_ult_c1" has unsupported operation: builtin.unregistered: llvm.icmp @@ -166,25 +156,15 @@ 1: "max_sub_ult_c32" 4: "max_sub_ult_c32" has unsupported operation: builtin.unregistered: llvm.icmp -4: "max_sub_ult_c32" has unsupported operation: builtin.unregistered: llvm.select - 1: "max_sub_ugt_c32" 4: "max_sub_ugt_c32" has unsupported operation: builtin.unregistered: llvm.icmp -4: "max_sub_ugt_c32" has unsupported operation: builtin.unregistered: llvm.select - 1: "max_sub_uge_c32" 4: "max_sub_uge_c32" has unsupported operation: builtin.unregistered: llvm.icmp -4: "max_sub_uge_c32" has unsupported operation: builtin.unregistered: llvm.select - 1: "max_sub_ult_c12" 4: "max_sub_ult_c12" has unsupported operation: builtin.unregistered: llvm.icmp -4: "max_sub_ult_c12" has unsupported operation: builtin.unregistered: llvm.select - 1: "max_sub_ult_c0" 4: "max_sub_ult_c0" has unsupported operation after optimization: builtin.unregistered: llvm.icmp -4: "max_sub_ult_c0" has unsupported operation after optimization: builtin.unregistered: llvm.select - diff --git a/SSA/Projects/InstCombine/tests/logs/urem-via-cmp-select.txt b/SSA/Projects/InstCombine/tests/logs/urem-via-cmp-select.txt index c1aa18adb..86abe3f57 100644 --- a/SSA/Projects/InstCombine/tests/logs/urem-via-cmp-select.txt +++ b/SSA/Projects/InstCombine/tests/logs/urem-via-cmp-select.txt @@ -7,8 +7,6 @@ 4: "urem_assume" has unsupported operation: builtin.unregistered: llvm.icmp -4: "urem_assume" has unsupported operation: builtin.unregistered: llvm.select - 1: "urem_assume_without_nuw" 4: "urem_assume_without_nuw" has unsupported operation: builtin.unregistered: llvm.freeze @@ -18,8 +16,6 @@ 4: "urem_assume_without_nuw" has unsupported operation: builtin.unregistered: llvm.icmp -4: "urem_assume_without_nuw" has unsupported operation: builtin.unregistered: llvm.select - 1: "urem_assume_eq" 4: "urem_assume_eq" has unsupported operation: builtin.unregistered: llvm.icmp @@ -40,8 +36,6 @@ 4: "urem_without_assume" has unsupported operation: builtin.unregistered: llvm.icmp -4: "urem_without_assume" has unsupported operation: builtin.unregistered: llvm.select - 1: "urem_with_dominating_condition" 4: "urem_with_dominating_condition" has unsupported operation: builtin.unregistered: llvm.freeze @@ -51,8 +45,6 @@ 4: "urem_with_dominating_condition" has unsupported operation: builtin.unregistered: llvm.icmp -4: "urem_with_dominating_condition" has unsupported operation: builtin.unregistered: llvm.select - 1: "urem_with_dominating_condition_false" 4: "urem_with_dominating_condition_false" has unsupported operation: builtin.unregistered: llvm.freeze @@ -62,8 +54,6 @@ 4: "urem_with_dominating_condition_false" has unsupported operation: builtin.unregistered: llvm.icmp -4: "urem_with_dominating_condition_false" has unsupported operation: builtin.unregistered: llvm.select - 1: "urem_with_opposite_condition" 4: "urem_with_opposite_condition" has unsupported operation: builtin.unregistered: llvm.icmp diff --git a/SSA/Projects/InstCombine/tests/logs/urem-via-udiv-mul-sub.txt b/SSA/Projects/InstCombine/tests/logs/urem-via-udiv-mul-sub.txt index e4d076adf..98710f8b2 100644 --- a/SSA/Projects/InstCombine/tests/logs/urem-via-udiv-mul-sub.txt +++ b/SSA/Projects/InstCombine/tests/logs/urem-via-udiv-mul-sub.txt @@ -5,18 +5,12 @@ 5: "use2xi8" is empty 1: "t0_basic" -4: "t0_basic" has unsupported operation: llvm.udiv - 4: "t0_basic" has unsupported operation: llvm.call 1: "t1_vector" -4: "t1_vector" has unsupported operation: llvm.udiv - 4: "t1_vector" has unsupported operation: llvm.call 1: "t4_extrause" -4: "t4_extrause" has unsupported operation: llvm.udiv - 4: "t4_extrause" has unsupported operation: llvm.call 4: "t4_extrause" has unsupported operation: llvm.call @@ -27,17 +21,11 @@ 1: "t5_commutative" 4: "t5_commutative" has unsupported operation: llvm.call -4: "t5_commutative" has unsupported operation: llvm.udiv - 4: "t5_commutative" has unsupported operation: llvm.call 1: "n6_different_x" -4: "n6_different_x" has unsupported operation: llvm.udiv - 4: "n6_different_x" has unsupported operation: llvm.call 1: "n6_different_y" -4: "n6_different_y" has unsupported operation: llvm.udiv - 4: "n6_different_y" has unsupported operation: llvm.call diff --git a/SSA/Projects/InstCombine/tests/logs/usub-overflow-known-by-implied-cond.txt b/SSA/Projects/InstCombine/tests/logs/usub-overflow-known-by-implied-cond.txt index c41e045fc..af8c3e607 100644 --- a/SSA/Projects/InstCombine/tests/logs/usub-overflow-known-by-implied-cond.txt +++ b/SSA/Projects/InstCombine/tests/logs/usub-overflow-known-by-implied-cond.txt @@ -82,8 +82,6 @@ 1: "test9_logical" 4: "test9_logical" has unsupported operation: builtin.unregistered: llvm.icmp -4: "test9_logical" has unsupported operation: builtin.unregistered: llvm.select - 4: "test9_logical" has unsupported operation: builtin.unregistered: llvm.cond_br 4: "test9_logical" has unsupported operation: builtin.unregistered: llvm.cond_br @@ -104,8 +102,6 @@ 1: "test10_logical" 4: "test10_logical" has unsupported operation: builtin.unregistered: llvm.icmp -4: "test10_logical" has unsupported operation: builtin.unregistered: llvm.select - 4: "test10_logical" has unsupported operation: builtin.unregistered: llvm.cond_br 4: "test10_logical" has unsupported operation: builtin.unregistered: llvm.intr.usub.with.overflow @@ -132,8 +128,6 @@ 1: "test11_logical" 4: "test11_logical" has unsupported operation: builtin.unregistered: llvm.icmp -4: "test11_logical" has unsupported operation: builtin.unregistered: llvm.select - 4: "test11_logical" has unsupported operation: builtin.unregistered: llvm.cond_br 4: "test11_logical" has unsupported operation: builtin.unregistered: llvm.intr.usub.with.overflow @@ -160,8 +154,6 @@ 1: "test12_logical" 4: "test12_logical" has unsupported operation: builtin.unregistered: llvm.icmp -4: "test12_logical" has unsupported operation: builtin.unregistered: llvm.select - 4: "test12_logical" has unsupported operation: builtin.unregistered: llvm.cond_br 4: "test12_logical" has unsupported operation: builtin.unregistered: llvm.intr.usub.with.overflow diff --git a/SSA/Projects/InstCombine/tests/logs/vec_sext.txt b/SSA/Projects/InstCombine/tests/logs/vec_sext.txt index 4e92c5736..1a07da6b5 100644 --- a/SSA/Projects/InstCombine/tests/logs/vec_sext.txt +++ b/SSA/Projects/InstCombine/tests/logs/vec_sext.txt @@ -1,19 +1,13 @@ 1: "vec_select" 4: "vec_select" has unsupported operation: builtin.unregistered: llvm.icmp -4: "vec_select" has unsupported operation: builtin.unregistered: llvm.select - 4: "vec_select" has unsupported operation: builtin.unregistered: llvm.icmp -4: "vec_select" has unsupported operation: builtin.unregistered: llvm.select - 1: "vec_select_alternate_sign_bit_test" 4: "vec_select_alternate_sign_bit_test" has unsupported operation: builtin.unregistered: llvm.icmp -4: "vec_select_alternate_sign_bit_test" has unsupported operation: builtin.unregistered: llvm.select - 1: "is_negative_poison_elt" -"is_negative_poison_elt" contains vectors which are unsupported +8: "is_negative_poison_elt" contains vectors which are unsupported 1: "is_positive_poison_elt" 4: "is_positive_poison_elt" has unsupported operation: builtin.unregistered: llvm.mlir.poison diff --git a/SSA/Projects/InstCombine/tests/logs/vec_udiv_to_shift.txt b/SSA/Projects/InstCombine/tests/logs/vec_udiv_to_shift.txt index f9ab05404..17a911876 100644 --- a/SSA/Projects/InstCombine/tests/logs/vec_udiv_to_shift.txt +++ b/SSA/Projects/InstCombine/tests/logs/vec_udiv_to_shift.txt @@ -1,6 +1,6 @@ 1: "udiv_vec8x16" -"udiv_vec8x16" contains vectors which are unsupported +8: "udiv_vec8x16" contains vectors which are unsupported 1: "udiv_vec4x32" -"udiv_vec4x32" contains vectors which are unsupported +8: "udiv_vec4x32" contains vectors which are unsupported diff --git a/SSA/Projects/InstCombine/tests/logs/vector-casts-inseltpoison.txt b/SSA/Projects/InstCombine/tests/logs/vector-casts-inseltpoison.txt index 616646d39..cd10431c5 100644 --- a/SSA/Projects/InstCombine/tests/logs/vector-casts-inseltpoison.txt +++ b/SSA/Projects/InstCombine/tests/logs/vector-casts-inseltpoison.txt @@ -25,7 +25,7 @@ 4: "and_cmp_is_trunc_even_with_poison_elts" has unsupported operation: builtin.unregistered: llvm.icmp 1: "test2" -"test2" contains vectors which are unsupported +8: "test2" contains vectors which are unsupported 1: "test3" 4: "test3" has unsupported operation: builtin.unregistered: llvm.fcmp @@ -87,7 +87,7 @@ 4: "bars" has unsupported operation: builtin.unregistered: llvm.sext 1: "quxs" -"quxs" contains vectors which are unsupported +8: "quxs" contains vectors which are unsupported 1: "quxt" 7: "quxt" is unchanged by InstCombine @@ -111,7 +111,7 @@ 4: "f" has unsupported operation: llvm.mlir.undef 1: "pr24458" -"pr24458" contains vectors which are unsupported +8: "pr24458" contains vectors which are unsupported 1: "trunc_inselt_undef" 4: "trunc_inselt_undef" has unsupported operation: llvm.mlir.undef diff --git a/SSA/Projects/InstCombine/tests/logs/vector-concat-binop-inseltpoison.txt b/SSA/Projects/InstCombine/tests/logs/vector-concat-binop-inseltpoison.txt index eaad2cc47..8c0b9567a 100644 --- a/SSA/Projects/InstCombine/tests/logs/vector-concat-binop-inseltpoison.txt +++ b/SSA/Projects/InstCombine/tests/logs/vector-concat-binop-inseltpoison.txt @@ -45,10 +45,6 @@ 4: "srem" has unsupported operation: builtin.unregistered: llvm.shufflevector 1: "udiv" -4: "udiv" has unsupported operation: llvm.udiv - -4: "udiv" has unsupported operation: llvm.udiv - 4: "udiv" has unsupported operation: builtin.unregistered: llvm.shufflevector 1: "urem" @@ -95,5 +91,5 @@ 4: "frem" has unsupported operation: builtin.unregistered: llvm.shufflevector 1: "PR33026" -"PR33026" contains vectors which are unsupported +8: "PR33026" contains vectors which are unsupported diff --git a/SSA/Projects/InstCombine/tests/logs/vector-concat-binop.txt b/SSA/Projects/InstCombine/tests/logs/vector-concat-binop.txt index eaad2cc47..8c0b9567a 100644 --- a/SSA/Projects/InstCombine/tests/logs/vector-concat-binop.txt +++ b/SSA/Projects/InstCombine/tests/logs/vector-concat-binop.txt @@ -45,10 +45,6 @@ 4: "srem" has unsupported operation: builtin.unregistered: llvm.shufflevector 1: "udiv" -4: "udiv" has unsupported operation: llvm.udiv - -4: "udiv" has unsupported operation: llvm.udiv - 4: "udiv" has unsupported operation: builtin.unregistered: llvm.shufflevector 1: "urem" @@ -95,5 +91,5 @@ 4: "frem" has unsupported operation: builtin.unregistered: llvm.shufflevector 1: "PR33026" -"PR33026" contains vectors which are unsupported +8: "PR33026" contains vectors which are unsupported diff --git a/SSA/Projects/InstCombine/tests/logs/vector-mul.txt b/SSA/Projects/InstCombine/tests/logs/vector-mul.txt index 525313e73..c557b9310 100644 --- a/SSA/Projects/InstCombine/tests/logs/vector-mul.txt +++ b/SSA/Projects/InstCombine/tests/logs/vector-mul.txt @@ -1,120 +1,120 @@ 1: "Zero_i8" -"Zero_i8" contains vectors which are unsupported +8: "Zero_i8" contains vectors which are unsupported 1: "Identity_i8" -"Identity_i8" contains vectors which are unsupported +8: "Identity_i8" contains vectors which are unsupported 1: "AddToSelf_i8" -"AddToSelf_i8" contains vectors which are unsupported +8: "AddToSelf_i8" contains vectors which are unsupported 1: "SplatPow2Test1_i8" -"SplatPow2Test1_i8" contains vectors which are unsupported +8: "SplatPow2Test1_i8" contains vectors which are unsupported 1: "SplatPow2Test2_i8" -"SplatPow2Test2_i8" contains vectors which are unsupported +8: "SplatPow2Test2_i8" contains vectors which are unsupported 1: "MulTest1_i8" -"MulTest1_i8" contains vectors which are unsupported +8: "MulTest1_i8" contains vectors which are unsupported 1: "MulTest2_i8" 7: "MulTest2_i8" is unchanged by InstCombine 1: "MulTest3_i8" -"MulTest3_i8" contains vectors which are unsupported +8: "MulTest3_i8" contains vectors which are unsupported 1: "MulTest4_i8" 7: "MulTest4_i8" is unchanged by InstCombine 1: "Zero_i16" -"Zero_i16" contains vectors which are unsupported +8: "Zero_i16" contains vectors which are unsupported 1: "Identity_i16" -"Identity_i16" contains vectors which are unsupported +8: "Identity_i16" contains vectors which are unsupported 1: "AddToSelf_i16" -"AddToSelf_i16" contains vectors which are unsupported +8: "AddToSelf_i16" contains vectors which are unsupported 1: "SplatPow2Test1_i16" -"SplatPow2Test1_i16" contains vectors which are unsupported +8: "SplatPow2Test1_i16" contains vectors which are unsupported 1: "SplatPow2Test2_i16" -"SplatPow2Test2_i16" contains vectors which are unsupported +8: "SplatPow2Test2_i16" contains vectors which are unsupported 1: "MulTest1_i16" -"MulTest1_i16" contains vectors which are unsupported +8: "MulTest1_i16" contains vectors which are unsupported 1: "MulTest2_i16" 7: "MulTest2_i16" is unchanged by InstCombine 1: "MulTest3_i16" -"MulTest3_i16" contains vectors which are unsupported +8: "MulTest3_i16" contains vectors which are unsupported 1: "MulTest4_i16" 7: "MulTest4_i16" is unchanged by InstCombine 1: "Zero_i32" -"Zero_i32" contains vectors which are unsupported +8: "Zero_i32" contains vectors which are unsupported 1: "Identity_i32" -"Identity_i32" contains vectors which are unsupported +8: "Identity_i32" contains vectors which are unsupported 1: "AddToSelf_i32" -"AddToSelf_i32" contains vectors which are unsupported +8: "AddToSelf_i32" contains vectors which are unsupported 1: "SplatPow2Test1_i32" -"SplatPow2Test1_i32" contains vectors which are unsupported +8: "SplatPow2Test1_i32" contains vectors which are unsupported 1: "SplatPow2Test2_i32" -"SplatPow2Test2_i32" contains vectors which are unsupported +8: "SplatPow2Test2_i32" contains vectors which are unsupported 1: "MulTest1_i32" -"MulTest1_i32" contains vectors which are unsupported +8: "MulTest1_i32" contains vectors which are unsupported 1: "MulTest2_i32" 7: "MulTest2_i32" is unchanged by InstCombine 1: "MulTest3_i32" -"MulTest3_i32" contains vectors which are unsupported +8: "MulTest3_i32" contains vectors which are unsupported 1: "MulTest4_i32" 7: "MulTest4_i32" is unchanged by InstCombine 1: "Zero_i64" -"Zero_i64" contains vectors which are unsupported +8: "Zero_i64" contains vectors which are unsupported 1: "Identity_i64" -"Identity_i64" contains vectors which are unsupported +8: "Identity_i64" contains vectors which are unsupported 1: "AddToSelf_i64" -"AddToSelf_i64" contains vectors which are unsupported +8: "AddToSelf_i64" contains vectors which are unsupported 1: "SplatPow2Test1_i64" -"SplatPow2Test1_i64" contains vectors which are unsupported +8: "SplatPow2Test1_i64" contains vectors which are unsupported 1: "SplatPow2Test2_i64" -"SplatPow2Test2_i64" contains vectors which are unsupported +8: "SplatPow2Test2_i64" contains vectors which are unsupported 1: "MulTest1_i64" -"MulTest1_i64" contains vectors which are unsupported +8: "MulTest1_i64" contains vectors which are unsupported 1: "MulTest2_i64" 7: "MulTest2_i64" is unchanged by InstCombine 1: "MulTest3_i64" -"MulTest3_i64" contains vectors which are unsupported +8: "MulTest3_i64" contains vectors which are unsupported 1: "MulTest4_i64" 7: "MulTest4_i64" is unchanged by InstCombine 1: "ShiftMulTest1" -"ShiftMulTest1" contains vectors which are unsupported +8: "ShiftMulTest1" contains vectors which are unsupported 1: "ShiftMulTest2" -"ShiftMulTest2" contains vectors which are unsupported +8: "ShiftMulTest2" contains vectors which are unsupported 1: "ShiftMulTest3" -"ShiftMulTest3" contains vectors which are unsupported +8: "ShiftMulTest3" contains vectors which are unsupported 1: "ShiftMulTest4" -"ShiftMulTest4" contains vectors which are unsupported +8: "ShiftMulTest4" contains vectors which are unsupported diff --git a/SSA/Projects/InstCombine/tests/logs/vector-reduce-min-max-known.txt b/SSA/Projects/InstCombine/tests/logs/vector-reduce-min-max-known.txt index 6432d4c55..665d5d848 100644 --- a/SSA/Projects/InstCombine/tests/logs/vector-reduce-min-max-known.txt +++ b/SSA/Projects/InstCombine/tests/logs/vector-reduce-min-max-known.txt @@ -9,7 +9,7 @@ 4: "vec_reduce_umax_non_zero_fail" has unsupported operation: builtin.unregistered: llvm.icmp 1: "vec_reduce_umin_non_zero" -"vec_reduce_umin_non_zero" contains vectors which are unsupported +8: "vec_reduce_umin_non_zero" contains vectors which are unsupported 1: "vec_reduce_umin_non_zero_fail" 4: "vec_reduce_umin_non_zero_fail" has unsupported operation: builtin.unregistered: llvm.intr.vector.reduce.umin @@ -17,7 +17,7 @@ 4: "vec_reduce_umin_non_zero_fail" has unsupported operation: builtin.unregistered: llvm.icmp 1: "vec_reduce_smax_non_zero0" -"vec_reduce_smax_non_zero0" contains vectors which are unsupported +8: "vec_reduce_smax_non_zero0" contains vectors which are unsupported 1: "vec_reduce_smax_non_zero1" 4: "vec_reduce_smax_non_zero1" has unsupported operation: builtin.unregistered: llvm.intr.vector.reduce.smax @@ -30,7 +30,7 @@ 4: "vec_reduce_smax_non_zero_fail" has unsupported operation: builtin.unregistered: llvm.icmp 1: "vec_reduce_smin_non_zero0" -"vec_reduce_smin_non_zero0" contains vectors which are unsupported +8: "vec_reduce_smin_non_zero0" contains vectors which are unsupported 1: "vec_reduce_smin_non_zero1" 4: "vec_reduce_smin_non_zero1" has unsupported operation: builtin.unregistered: llvm.intr.vector.reduce.smin @@ -43,7 +43,7 @@ 4: "vec_reduce_smin_non_zero_fail" has unsupported operation: builtin.unregistered: llvm.icmp 1: "vec_reduce_umax_known0" -"vec_reduce_umax_known0" contains vectors which are unsupported +8: "vec_reduce_umax_known0" contains vectors which are unsupported 1: "vec_reduce_umax_known1" 4: "vec_reduce_umax_known1" has unsupported operation: builtin.unregistered: llvm.intr.vector.reduce.umax @@ -55,7 +55,7 @@ 4: "vec_reduce_umax_known_fail1" has unsupported operation: builtin.unregistered: llvm.intr.vector.reduce.umax 1: "vec_reduce_umin_known0" -"vec_reduce_umin_known0" contains vectors which are unsupported +8: "vec_reduce_umin_known0" contains vectors which are unsupported 1: "vec_reduce_umin_known1" 4: "vec_reduce_umin_known1" has unsupported operation: builtin.unregistered: llvm.intr.vector.reduce.umin @@ -67,13 +67,13 @@ 4: "vec_reduce_umin_known_fail1" has unsupported operation: builtin.unregistered: llvm.intr.vector.reduce.umin 1: "vec_reduce_smax_known" -"vec_reduce_smax_known" contains vectors which are unsupported +8: "vec_reduce_smax_known" contains vectors which are unsupported 1: "vec_reduce_smax_known_fail" 4: "vec_reduce_smax_known_fail" has unsupported operation: builtin.unregistered: llvm.intr.vector.reduce.umax 1: "vec_reduce_smin_known" -"vec_reduce_smin_known" contains vectors which are unsupported +8: "vec_reduce_smin_known" contains vectors which are unsupported 1: "vec_reduce_smin_known_fail" 4: "vec_reduce_smin_known_fail" has unsupported operation: builtin.unregistered: llvm.intr.vector.reduce.smin diff --git a/SSA/Projects/InstCombine/tests/logs/vector-type.txt b/SSA/Projects/InstCombine/tests/logs/vector-type.txt index 12b50ddba..87c8c87e5 100644 --- a/SSA/Projects/InstCombine/tests/logs/vector-type.txt +++ b/SSA/Projects/InstCombine/tests/logs/vector-type.txt @@ -7,7 +7,5 @@ 4: "vselect1" has unsupported operation: builtin.unregistered: llvm.icmp -4: "vselect1" has unsupported operation: builtin.unregistered: llvm.select - 4: "vselect1" has unsupported operation: builtin.unregistered: llvm.bitcast diff --git a/SSA/Projects/InstCombine/tests/logs/vector-udiv.txt b/SSA/Projects/InstCombine/tests/logs/vector-udiv.txt index 231926139..8f957c713 100644 --- a/SSA/Projects/InstCombine/tests/logs/vector-udiv.txt +++ b/SSA/Projects/InstCombine/tests/logs/vector-udiv.txt @@ -1,8 +1,8 @@ 1: "test_v4i32_splatconst_pow2" -"test_v4i32_splatconst_pow2" contains vectors which are unsupported +8: "test_v4i32_splatconst_pow2" contains vectors which are unsupported 1: "test_v4i32_const_pow2" -"test_v4i32_const_pow2" contains vectors which are unsupported +8: "test_v4i32_const_pow2" contains vectors which are unsupported 1: "test_v4i32_negconstsplat" 4: "test_v4i32_negconstsplat" has unsupported operation: builtin.unregistered: llvm.icmp @@ -18,10 +18,10 @@ 4: "test_v4i32_negconst_undef" has unsupported operation: builtin.unregistered: llvm.mlir.poison 1: "test_v4i32_shl_splatconst_pow2" -"test_v4i32_shl_splatconst_pow2" contains vectors which are unsupported +8: "test_v4i32_shl_splatconst_pow2" contains vectors which are unsupported 1: "test_v4i32_shl_const_pow2" -"test_v4i32_shl_const_pow2" contains vectors which are unsupported +8: "test_v4i32_shl_const_pow2" contains vectors which are unsupported 1: "test_v4i32_zext_shl_splatconst_pow2" 4: "test_v4i32_zext_shl_splatconst_pow2" has unsupported operation: builtin.unregistered: llvm.zext diff --git a/SSA/Projects/InstCombine/tests/logs/vector-urem.txt b/SSA/Projects/InstCombine/tests/logs/vector-urem.txt index 9b248e17d..ccb0cb32a 100644 --- a/SSA/Projects/InstCombine/tests/logs/vector-urem.txt +++ b/SSA/Projects/InstCombine/tests/logs/vector-urem.txt @@ -1,8 +1,8 @@ 1: "test_v4i32_splatconst_pow2" -"test_v4i32_splatconst_pow2" contains vectors which are unsupported +8: "test_v4i32_splatconst_pow2" contains vectors which are unsupported 1: "test_v4i32_const_pow2" -"test_v4i32_const_pow2" contains vectors which are unsupported +8: "test_v4i32_const_pow2" contains vectors which are unsupported 1: "test_v4i32_const_pow2_poison" 4: "test_v4i32_const_pow2_poison" has unsupported operation: builtin.unregistered: llvm.mlir.poison @@ -22,15 +22,11 @@ 4: "test_v4i32_negconstsplat" has unsupported operation: builtin.unregistered: llvm.icmp -4: "test_v4i32_negconstsplat" has unsupported operation: builtin.unregistered: llvm.select - 1: "test_v4i32_negconst" 4: "test_v4i32_negconst" has unsupported operation: builtin.unregistered: llvm.freeze 4: "test_v4i32_negconst" has unsupported operation: builtin.unregistered: llvm.icmp -4: "test_v4i32_negconst" has unsupported operation: builtin.unregistered: llvm.select - 1: "test_v4i32_negconst_poison" 4: "test_v4i32_negconst_poison" has unsupported operation: builtin.unregistered: llvm.mlir.poison diff --git a/SSA/Projects/InstCombine/tests/logs/vector-xor.txt b/SSA/Projects/InstCombine/tests/logs/vector-xor.txt index 8dfea008f..b3a173181 100644 --- a/SSA/Projects/InstCombine/tests/logs/vector-xor.txt +++ b/SSA/Projects/InstCombine/tests/logs/vector-xor.txt @@ -1,8 +1,8 @@ 1: "test_v4i32_xor_repeated_and_0" -"test_v4i32_xor_repeated_and_0" contains vectors which are unsupported +8: "test_v4i32_xor_repeated_and_0" contains vectors which are unsupported 1: "test_v4i32_xor_repeated_and_1" -"test_v4i32_xor_repeated_and_1" contains vectors which are unsupported +8: "test_v4i32_xor_repeated_and_1" contains vectors which are unsupported 1: "test_v4i32_xor_bswap_splatconst" 4: "test_v4i32_xor_bswap_splatconst" has unsupported operation: builtin.unregistered: llvm.intr.bswap @@ -26,22 +26,22 @@ 4: "test_v4i32_xor_bswap_const_poison" has unsupported operation: builtin.unregistered: llvm.intr.bswap 1: "test_v4i32_demorgan_and" -"test_v4i32_demorgan_and" contains vectors which are unsupported +8: "test_v4i32_demorgan_and" contains vectors which are unsupported 1: "test_v4i32_demorgan_or" -"test_v4i32_demorgan_or" contains vectors which are unsupported +8: "test_v4i32_demorgan_or" contains vectors which are unsupported 1: "test_v4i32_not_ashr_not" -"test_v4i32_not_ashr_not" contains vectors which are unsupported +8: "test_v4i32_not_ashr_not" contains vectors which are unsupported 1: "test_v4i32_not_ashr_not_poison" -"test_v4i32_not_ashr_not_poison" contains vectors which are unsupported +8: "test_v4i32_not_ashr_not_poison" contains vectors which are unsupported 1: "test_v4i32_not_ashr_negative_splatconst" -"test_v4i32_not_ashr_negative_splatconst" contains vectors which are unsupported +8: "test_v4i32_not_ashr_negative_splatconst" contains vectors which are unsupported 1: "test_v4i32_not_ashr_negative_const" -"test_v4i32_not_ashr_negative_const" contains vectors which are unsupported +8: "test_v4i32_not_ashr_negative_const" contains vectors which are unsupported 1: "test_v4i32_not_ashr_negative_const_poison" 4: "test_v4i32_not_ashr_negative_const_poison" has unsupported operation: builtin.unregistered: llvm.mlir.poison @@ -57,10 +57,10 @@ 4: "test_v4i32_not_ashr_negative_const_poison" has unsupported operation: builtin.unregistered: llvm.insertelement 1: "test_v4i32_not_lshr_nonnegative_splatconst" -"test_v4i32_not_lshr_nonnegative_splatconst" contains vectors which are unsupported +8: "test_v4i32_not_lshr_nonnegative_splatconst" contains vectors which are unsupported 1: "test_v4i32_not_lshr_nonnegative_const" -"test_v4i32_not_lshr_nonnegative_const" contains vectors which are unsupported +8: "test_v4i32_not_lshr_nonnegative_const" contains vectors which are unsupported 1: "test_v4i32_not_lshr_nonnegative_const_poison" 4: "test_v4i32_not_lshr_nonnegative_const_poison" has unsupported operation: builtin.unregistered: llvm.mlir.poison @@ -76,10 +76,10 @@ 4: "test_v4i32_not_lshr_nonnegative_const_poison" has unsupported operation: builtin.unregistered: llvm.insertelement 1: "test_v4i32_not_sub_splatconst" -"test_v4i32_not_sub_splatconst" contains vectors which are unsupported +8: "test_v4i32_not_sub_splatconst" contains vectors which are unsupported 1: "test_v4i32_not_sub_const" -"test_v4i32_not_sub_const" contains vectors which are unsupported +8: "test_v4i32_not_sub_const" contains vectors which are unsupported 1: "test_v4i32_not_sub_const_poison" 4: "test_v4i32_not_sub_const_poison" has unsupported operation: builtin.unregistered: llvm.mlir.poison @@ -95,10 +95,10 @@ 4: "test_v4i32_not_sub_const_poison" has unsupported operation: builtin.unregistered: llvm.insertelement 1: "test_v4i32_xor_signmask_sub_splatconst" -"test_v4i32_xor_signmask_sub_splatconst" contains vectors which are unsupported +8: "test_v4i32_xor_signmask_sub_splatconst" contains vectors which are unsupported 1: "test_v4i32_xor_signmask_sub_const" -"test_v4i32_xor_signmask_sub_const" contains vectors which are unsupported +8: "test_v4i32_xor_signmask_sub_const" contains vectors which are unsupported 1: "test_v4i32_xor_signmask_sub_const_poison" 4: "test_v4i32_xor_signmask_sub_const_poison" has unsupported operation: builtin.unregistered: llvm.mlir.poison @@ -124,10 +124,10 @@ 4: "test_v4i32_xor_signmask_sub_const_poison" has unsupported operation: builtin.unregistered: llvm.insertelement 1: "test_v4i32_xor_signmask_add_splatconst" -"test_v4i32_xor_signmask_add_splatconst" contains vectors which are unsupported +8: "test_v4i32_xor_signmask_add_splatconst" contains vectors which are unsupported 1: "test_v4i32_xor_signmask_add_const" -"test_v4i32_xor_signmask_add_const" contains vectors which are unsupported +8: "test_v4i32_xor_signmask_add_const" contains vectors which are unsupported 1: "test_v4i32_xor_signmask_add_const_poison" 4: "test_v4i32_xor_signmask_add_const_poison" has unsupported operation: builtin.unregistered: llvm.mlir.poison diff --git a/SSA/Projects/InstCombine/tests/logs/vector_insertelt_shuffle-inseltpoison.txt b/SSA/Projects/InstCombine/tests/logs/vector_insertelt_shuffle-inseltpoison.txt index 7dc9e6849..bfd468fc5 100644 --- a/SSA/Projects/InstCombine/tests/logs/vector_insertelt_shuffle-inseltpoison.txt +++ b/SSA/Projects/InstCombine/tests/logs/vector_insertelt_shuffle-inseltpoison.txt @@ -71,7 +71,7 @@ 4: "bazzzz" has unsupported operation: builtin.unregistered: llvm.insertelement 1: "bazzzzz" -"bazzzzz" contains vectors which are unsupported +8: "bazzzzz" contains vectors which are unsupported 1: "bazzzzzz" 4: "bazzzzzz" has unsupported operation: llvm.mlir.undef diff --git a/SSA/Projects/InstCombine/tests/logs/vector_insertelt_shuffle.txt b/SSA/Projects/InstCombine/tests/logs/vector_insertelt_shuffle.txt index e519b7ab1..ce001a192 100644 --- a/SSA/Projects/InstCombine/tests/logs/vector_insertelt_shuffle.txt +++ b/SSA/Projects/InstCombine/tests/logs/vector_insertelt_shuffle.txt @@ -71,7 +71,7 @@ 4: "bazzzz" has unsupported operation: builtin.unregistered: llvm.insertelement 1: "bazzzzz" -"bazzzzz" contains vectors which are unsupported +8: "bazzzzz" contains vectors which are unsupported 1: "bazzzzzz" 4: "bazzzzzz" has unsupported operation: llvm.mlir.undef diff --git a/SSA/Projects/InstCombine/tests/logs/wcslen-1.txt b/SSA/Projects/InstCombine/tests/logs/wcslen-1.txt index 7522fb789..9ac0a5c15 100644 --- a/SSA/Projects/InstCombine/tests/logs/wcslen-1.txt +++ b/SSA/Projects/InstCombine/tests/logs/wcslen-1.txt @@ -46,7 +46,11 @@ 4: "test_simplify8" has unsupported operation: builtin.unregistered: llvm.icmp 1: "test_simplify9" -4: "test_simplify9" has unsupported operation: builtin.unregistered: llvm.select +4: "test_simplify9" has unsupported operation after optimization: llvm.mlir.addressof + +4: "test_simplify9" has unsupported operation after optimization: llvm.mlir.addressof + +4: "test_simplify9" has unsupported operation after optimization: llvm.call 1: "test_simplify10" 4: "test_simplify10" has unsupported operation: builtin.unregistered: llvm.sext diff --git a/SSA/Projects/InstCombine/tests/logs/wcslen-3.txt b/SSA/Projects/InstCombine/tests/logs/wcslen-3.txt index 86f6d5911..4fc488cc0 100644 --- a/SSA/Projects/InstCombine/tests/logs/wcslen-3.txt +++ b/SSA/Projects/InstCombine/tests/logs/wcslen-3.txt @@ -46,7 +46,11 @@ 4: "test_simplify8" has unsupported operation: builtin.unregistered: llvm.icmp 1: "test_simplify9" -4: "test_simplify9" has unsupported operation: builtin.unregistered: llvm.select +4: "test_simplify9" has unsupported operation after optimization: llvm.mlir.addressof + +4: "test_simplify9" has unsupported operation after optimization: llvm.mlir.addressof + +4: "test_simplify9" has unsupported operation after optimization: llvm.call 1: "test_simplify10" 4: "test_simplify10" has unsupported operation: builtin.unregistered: llvm.sext diff --git a/SSA/Projects/InstCombine/tests/logs/wcslen-5.txt b/SSA/Projects/InstCombine/tests/logs/wcslen-5.txt index 2380cbc31..2720a71a6 100644 --- a/SSA/Projects/InstCombine/tests/logs/wcslen-5.txt +++ b/SSA/Projects/InstCombine/tests/logs/wcslen-5.txt @@ -8,8 +8,6 @@ 4: "fold_wcslen_s3_pi_s5" has unsupported operation: llvm.getelementptr -4: "fold_wcslen_s3_pi_s5" has unsupported operation: builtin.unregistered: llvm.select - 4: "fold_wcslen_s3_pi_s5" has unsupported operation: llvm.call 1: "fold_wcslen_s3_pi_p1_s5" @@ -21,8 +19,6 @@ 4: "fold_wcslen_s3_pi_p1_s5" has unsupported operation: llvm.getelementptr -4: "fold_wcslen_s3_pi_p1_s5" has unsupported operation: builtin.unregistered: llvm.select - 4: "fold_wcslen_s3_pi_p1_s5" has unsupported operation: llvm.call 1: "call_wcslen_s5_3_pi_s5" @@ -32,8 +28,6 @@ 4: "call_wcslen_s5_3_pi_s5" has unsupported operation: llvm.getelementptr -4: "call_wcslen_s5_3_pi_s5" has unsupported operation: builtin.unregistered: llvm.select - 4: "call_wcslen_s5_3_pi_s5" has unsupported operation: llvm.call 1: "call_wcslen_s5_3_s5_pj" @@ -43,8 +37,6 @@ 4: "call_wcslen_s5_3_s5_pj" has unsupported operation: llvm.getelementptr -4: "call_wcslen_s5_3_s5_pj" has unsupported operation: builtin.unregistered: llvm.select - 4: "call_wcslen_s5_3_s5_pj" has unsupported operation: llvm.call 1: "fold_wcslen_s3_s5_pj" @@ -54,8 +46,6 @@ 4: "fold_wcslen_s3_s5_pj" has unsupported operation: llvm.getelementptr -4: "fold_wcslen_s3_s5_pj" has unsupported operation: builtin.unregistered: llvm.select - 4: "fold_wcslen_s3_s5_pj" has unsupported operation: llvm.call 1: "call_wcslen_s3_s5_3_pj" @@ -65,8 +55,6 @@ 4: "call_wcslen_s3_s5_3_pj" has unsupported operation: llvm.getelementptr -4: "call_wcslen_s3_s5_3_pj" has unsupported operation: builtin.unregistered: llvm.select - 4: "call_wcslen_s3_s5_3_pj" has unsupported operation: llvm.call 1: "fold_wcslen_s3_pi_s5_pj" @@ -78,7 +66,5 @@ 4: "fold_wcslen_s3_pi_s5_pj" has unsupported operation: llvm.getelementptr -4: "fold_wcslen_s3_pi_s5_pj" has unsupported operation: builtin.unregistered: llvm.select - 4: "fold_wcslen_s3_pi_s5_pj" has unsupported operation: llvm.call diff --git a/SSA/Projects/InstCombine/tests/logs/xor-and-or.txt b/SSA/Projects/InstCombine/tests/logs/xor-and-or.txt index 60a101cc6..a058ec452 100644 --- a/SSA/Projects/InstCombine/tests/logs/xor-and-or.txt +++ b/SSA/Projects/InstCombine/tests/logs/xor-and-or.txt @@ -1,25 +1,39 @@ 1: "xor_logic_and_logic_or1" -4: "xor_logic_and_logic_or1" has unsupported operation: builtin.unregistered: llvm.select +2: llvm.func +2: llvm.mlir.constant +2: llvm.mlir.constant +2: builtin.unregistered: llvm.select +2: builtin.unregistered: llvm.select +2: llvm.xor +2: llvm.return 1: "xor_logic_and_logic_or2" -4: "xor_logic_and_logic_or2" has unsupported operation: builtin.unregistered: llvm.select +2: llvm.func +2: llvm.mlir.constant +2: llvm.mlir.constant +2: builtin.unregistered: llvm.select +2: builtin.unregistered: llvm.select +2: llvm.xor +2: llvm.return 1: "xor_logic_and_logic_or3" 4: "xor_logic_and_logic_or3" has unsupported operation: builtin.unregistered: llvm.freeze -4: "xor_logic_and_logic_or3" has unsupported operation: builtin.unregistered: llvm.select - 1: "xor_logic_and_logic_or4" -4: "xor_logic_and_logic_or4" has unsupported operation: builtin.unregistered: llvm.select +2: llvm.func +2: llvm.mlir.constant +2: llvm.mlir.constant +2: builtin.unregistered: llvm.select +2: builtin.unregistered: llvm.select +2: llvm.xor +2: llvm.return 1: "xor_logic_and_logic_or_vector1" -4: "xor_logic_and_logic_or_vector1" has unsupported operation: builtin.unregistered: llvm.select +8: "xor_logic_and_logic_or_vector1" contains vectors which are unsupported 1: "xor_logic_and_logic_or_vector2" 4: "xor_logic_and_logic_or_vector2" has unsupported operation: builtin.unregistered: llvm.freeze -4: "xor_logic_and_logic_or_vector2" has unsupported operation: builtin.unregistered: llvm.select - 1: "xor_logic_and_logic_or_vector_poison1" 4: "xor_logic_and_logic_or_vector_poison1" has unsupported operation: builtin.unregistered: llvm.mlir.poison @@ -31,19 +45,27 @@ 4: "xor_logic_and_logic_or_vector_poison1" has unsupported operation: builtin.unregistered: llvm.insertelement -4: "xor_logic_and_logic_or_vector_poison1" has unsupported operation: builtin.unregistered: llvm.select - 1: "xor_logic_and_logic_or_vector_poison2" -4: "xor_logic_and_logic_or_vector_poison2" has unsupported operation: builtin.unregistered: llvm.select +8: "xor_logic_and_logic_or_vector_poison2" contains vectors which are unsupported 1: "xor_and_logic_or1" -4: "xor_and_logic_or1" has unsupported operation: builtin.unregistered: llvm.select +2: llvm.func +2: llvm.mlir.constant +2: builtin.unregistered: llvm.select +2: llvm.and +2: llvm.xor +2: llvm.return 1: "xor_and_logic_or2" -4: "xor_and_logic_or2" has unsupported operation: builtin.unregistered: llvm.select +2: llvm.func +2: llvm.mlir.constant +2: builtin.unregistered: llvm.select +2: llvm.and +2: llvm.xor +2: llvm.return 1: "xor_and_logic_or_vector" -4: "xor_and_logic_or_vector" has unsupported operation: builtin.unregistered: llvm.select +8: "xor_and_logic_or_vector" contains vectors which are unsupported 1: "xor_and_logic_or_vector_poison" 4: "xor_and_logic_or_vector_poison" has unsupported operation: builtin.unregistered: llvm.mlir.poison @@ -54,16 +76,24 @@ 4: "xor_and_logic_or_vector_poison" has unsupported operation: builtin.unregistered: llvm.insertelement -4: "xor_and_logic_or_vector_poison" has unsupported operation: builtin.unregistered: llvm.select - 1: "xor_logic_and_or1" -4: "xor_logic_and_or1" has unsupported operation: builtin.unregistered: llvm.select +2: llvm.func +2: llvm.mlir.constant +2: llvm.or +2: builtin.unregistered: llvm.select +2: llvm.xor +2: llvm.return 1: "xor_logic_and_or2" -4: "xor_logic_and_or2" has unsupported operation: builtin.unregistered: llvm.select +2: llvm.func +2: llvm.mlir.constant +2: llvm.or +2: builtin.unregistered: llvm.select +2: llvm.xor +2: llvm.return 1: "xor_logic_and_or_vector" -4: "xor_logic_and_or_vector" has unsupported operation: builtin.unregistered: llvm.select +8: "xor_logic_and_or_vector" contains vectors which are unsupported 1: "xor_logic_and_or_vector_poison" 4: "xor_logic_and_or_vector_poison" has unsupported operation: builtin.unregistered: llvm.mlir.poison @@ -74,13 +104,15 @@ 4: "xor_logic_and_or_vector_poison" has unsupported operation: builtin.unregistered: llvm.insertelement -4: "xor_logic_and_or_vector_poison" has unsupported operation: builtin.unregistered: llvm.select - 1: "xor_and_or" -4: "xor_and_or" has unsupported operation: builtin.unregistered: llvm.select +2: llvm.func +2: llvm.or +2: llvm.and +2: llvm.xor +2: llvm.return 1: "xor_and_or_vector" -4: "xor_and_or_vector" has unsupported operation: builtin.unregistered: llvm.select +8: "xor_and_or_vector" contains vectors which are unsupported 1: "xor_and_or_negative_oneuse" 4: "xor_and_or_negative_oneuse" has unsupported operation: llvm.call diff --git a/SSA/Projects/InstCombine/tests/logs/xor-ashr.txt b/SSA/Projects/InstCombine/tests/logs/xor-ashr.txt index 6475d1395..dced2f235 100644 --- a/SSA/Projects/InstCombine/tests/logs/xor-ashr.txt +++ b/SSA/Projects/InstCombine/tests/logs/xor-ashr.txt @@ -7,28 +7,18 @@ 1: "testi8i8" 4: "testi8i8" has unsupported operation: builtin.unregistered: llvm.icmp -4: "testi8i8" has unsupported operation: builtin.unregistered: llvm.select - 1: "testi16i8" 4: "testi16i8" has unsupported operation: builtin.unregistered: llvm.icmp -4: "testi16i8" has unsupported operation: builtin.unregistered: llvm.select - 1: "testi64i32" 4: "testi64i32" has unsupported operation: builtin.unregistered: llvm.icmp -4: "testi64i32" has unsupported operation: builtin.unregistered: llvm.select - 1: "testi128i128" 4: "testi128i128" has unsupported operation: builtin.unregistered: llvm.icmp -4: "testi128i128" has unsupported operation: builtin.unregistered: llvm.select - 1: "testv4i16i8" 4: "testv4i16i8" has unsupported operation: builtin.unregistered: llvm.icmp -4: "testv4i16i8" has unsupported operation: builtin.unregistered: llvm.select - 1: "testv4i16i8_poison" 4: "testv4i16i8_poison" has unsupported operation: builtin.unregistered: llvm.mlir.poison @@ -54,8 +44,6 @@ 4: "testv4i16i8_poison" has unsupported operation: builtin.unregistered: llvm.icmp -4: "testv4i16i8_poison" has unsupported operation: builtin.unregistered: llvm.select - 1: "wrongimm" 4: "wrongimm" has unsupported operation: builtin.unregistered: llvm.trunc @@ -76,8 +64,6 @@ 4: "extrause_trunc1" has unsupported operation: builtin.unregistered: llvm.icmp -4: "extrause_trunc1" has unsupported operation: builtin.unregistered: llvm.select - 1: "extrause_trunc2" 4: "extrause_trunc2" has unsupported operation: builtin.unregistered: llvm.trunc diff --git a/SSA/Projects/InstCombine/tests/logs/xor-of-icmps-with-extra-uses.txt b/SSA/Projects/InstCombine/tests/logs/xor-of-icmps-with-extra-uses.txt index cb0497ea7..2bd799a05 100644 --- a/SSA/Projects/InstCombine/tests/logs/xor-of-icmps-with-extra-uses.txt +++ b/SSA/Projects/InstCombine/tests/logs/xor-of-icmps-with-extra-uses.txt @@ -1,8 +1,6 @@ 1: "v0_select_of_consts" 4: "v0_select_of_consts" has unsupported operation: builtin.unregistered: llvm.icmp -4: "v0_select_of_consts" has unsupported operation: builtin.unregistered: llvm.select - 4: "v0_select_of_consts" has unsupported operation: llvm.store 4: "v0_select_of_consts" has unsupported operation: builtin.unregistered: llvm.icmp @@ -10,8 +8,6 @@ 1: "v1_select_of_var_and_const" 4: "v1_select_of_var_and_const" has unsupported operation: builtin.unregistered: llvm.icmp -4: "v1_select_of_var_and_const" has unsupported operation: builtin.unregistered: llvm.select - 4: "v1_select_of_var_and_const" has unsupported operation: llvm.store 4: "v1_select_of_var_and_const" has unsupported operation: builtin.unregistered: llvm.icmp @@ -19,8 +15,6 @@ 1: "v2_select_of_const_and_var" 4: "v2_select_of_const_and_var" has unsupported operation: builtin.unregistered: llvm.icmp -4: "v2_select_of_const_and_var" has unsupported operation: builtin.unregistered: llvm.select - 4: "v2_select_of_const_and_var" has unsupported operation: llvm.store 4: "v2_select_of_const_and_var" has unsupported operation: builtin.unregistered: llvm.icmp @@ -50,8 +44,6 @@ 1: "v5_select_and_not" 4: "v5_select_and_not" has unsupported operation: builtin.unregistered: llvm.icmp -4: "v5_select_and_not" has unsupported operation: builtin.unregistered: llvm.select - 4: "v5_select_and_not" has unsupported operation: llvm.store 4: "v5_select_and_not" has unsupported operation: llvm.store @@ -63,8 +55,6 @@ 4: "n6_select_and_not" has unsupported operation: builtin.unregistered: llvm.icmp -4: "n6_select_and_not" has unsupported operation: builtin.unregistered: llvm.select - 4: "n6_select_and_not" has unsupported operation: llvm.store 4: "n6_select_and_not" has unsupported operation: llvm.store diff --git a/SSA/Projects/InstCombine/tests/logs/xor-of-or.txt b/SSA/Projects/InstCombine/tests/logs/xor-of-or.txt index d33f4a8cd..f1e3dcfbc 100644 --- a/SSA/Projects/InstCombine/tests/logs/xor-of-or.txt +++ b/SSA/Projects/InstCombine/tests/logs/xor-of-or.txt @@ -13,10 +13,10 @@ 4: "t2" has unsupported operation: llvm.call 1: "t3" -"t3" contains vectors which are unsupported +8: "t3" contains vectors which are unsupported 1: "t4" -"t4" contains vectors which are unsupported +8: "t4" contains vectors which are unsupported 1: "t5" 4: "t5" has unsupported operation: llvm.mlir.undef @@ -34,7 +34,7 @@ 4: "t5" has unsupported operation: builtin.unregistered: llvm.insertelement 1: "t6" -"t6" contains vectors which are unsupported +8: "t6" contains vectors which are unsupported 1: "t7" 4: "t7" has unsupported operation: llvm.mlir.undef @@ -69,7 +69,7 @@ 4: "t8" has unsupported operation: builtin.unregistered: llvm.insertelement 1: "t9" -"t9" contains vectors which are unsupported +8: "t9" contains vectors which are unsupported 1: "t10" 4: "t10" has unsupported operation: llvm.mlir.undef diff --git a/SSA/Projects/InstCombine/tests/logs/xor-undef.txt b/SSA/Projects/InstCombine/tests/logs/xor-undef.txt index 1b5d126a5..caef3099d 100644 --- a/SSA/Projects/InstCombine/tests/logs/xor-undef.txt +++ b/SSA/Projects/InstCombine/tests/logs/xor-undef.txt @@ -1,3 +1,3 @@ 1: "f" -"f" contains vectors which are unsupported +8: "f" contains vectors which are unsupported diff --git a/SSA/Projects/InstCombine/tests/logs/xor.txt b/SSA/Projects/InstCombine/tests/logs/xor.txt index 70ecdb8b6..c1c1ea19e 100644 --- a/SSA/Projects/InstCombine/tests/logs/xor.txt +++ b/SSA/Projects/InstCombine/tests/logs/xor.txt @@ -146,7 +146,7 @@ 2: llvm.return 1: "test28vec" -"test28vec" contains vectors which are unsupported +8: "test28vec" contains vectors which are unsupported 1: "test28_sub" 2: llvm.func @@ -157,16 +157,22 @@ 2: llvm.return 1: "test28_subvec" -"test28_subvec" contains vectors which are unsupported +8: "test28_subvec" contains vectors which are unsupported 1: "test29" -4: "test29" has unsupported operation: builtin.unregistered: llvm.select +2: llvm.func +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.mlir.constant +2: builtin.unregistered: llvm.select +2: llvm.xor +2: llvm.return 1: "test29vec" -4: "test29vec" has unsupported operation: builtin.unregistered: llvm.select +8: "test29vec" contains vectors which are unsupported 1: "test29vec2" -4: "test29vec2" has unsupported operation: builtin.unregistered: llvm.select +8: "test29vec2" contains vectors which are unsupported 1: "test30" 4: "test30" has unsupported operation: builtin.unregistered: llvm.cond_br @@ -184,47 +190,79 @@ 4: "test30vec2" has unsupported operation: builtin.unregistered: llvm.br 1: "or_xor_commute1" -4: "or_xor_commute1" has unsupported operation: llvm.udiv - -4: "or_xor_commute1" has unsupported operation: llvm.udiv +2: llvm.func +2: llvm.mlir.constant +2: llvm.udiv +2: llvm.udiv +2: llvm.or +2: llvm.xor +2: llvm.return 1: "or_xor_commute2" -4: "or_xor_commute2" has unsupported operation: llvm.udiv - -4: "or_xor_commute2" has unsupported operation: llvm.udiv +2: llvm.func +2: llvm.mlir.constant +2: llvm.udiv +2: llvm.udiv +2: llvm.or +2: llvm.xor +2: llvm.return 1: "or_xor_commute3" -4: "or_xor_commute3" has unsupported operation: llvm.udiv - -4: "or_xor_commute3" has unsupported operation: llvm.udiv +2: llvm.func +2: llvm.mlir.constant +2: llvm.udiv +2: llvm.udiv +2: llvm.or +2: llvm.xor +2: llvm.return 1: "or_xor_commute4" -4: "or_xor_commute4" has unsupported operation: llvm.udiv - -4: "or_xor_commute4" has unsupported operation: llvm.udiv +2: llvm.func +2: llvm.mlir.constant +2: llvm.udiv +2: llvm.udiv +2: llvm.or +2: llvm.xor +2: llvm.return 1: "or_xor_extra_use" 4: "or_xor_extra_use" has unsupported operation: llvm.store 1: "and_xor_commute1" -4: "and_xor_commute1" has unsupported operation: llvm.udiv - -4: "and_xor_commute1" has unsupported operation: llvm.udiv +2: llvm.func +2: llvm.mlir.constant +2: llvm.udiv +2: llvm.udiv +2: llvm.and +2: llvm.xor +2: llvm.return 1: "and_xor_commute2" -4: "and_xor_commute2" has unsupported operation: llvm.udiv - -4: "and_xor_commute2" has unsupported operation: llvm.udiv +2: llvm.func +2: llvm.mlir.constant +2: llvm.udiv +2: llvm.udiv +2: llvm.and +2: llvm.xor +2: llvm.return 1: "and_xor_commute3" -4: "and_xor_commute3" has unsupported operation: llvm.udiv - -4: "and_xor_commute3" has unsupported operation: llvm.udiv +2: llvm.func +2: llvm.mlir.constant +2: llvm.udiv +2: llvm.udiv +2: llvm.and +2: llvm.xor +2: llvm.return 1: "and_xor_commute4" -4: "and_xor_commute4" has unsupported operation: llvm.udiv - -4: "and_xor_commute4" has unsupported operation: llvm.udiv +2: llvm.func +2: llvm.mlir.constant +2: llvm.udiv +2: llvm.udiv +2: llvm.and +2: llvm.xor +2: llvm.return 1: "and_xor_extra_use" 4: "and_xor_extra_use" has unsupported operation: llvm.store @@ -314,7 +352,7 @@ 2: llvm.return 1: "or_or_xor_commute3" -"or_or_xor_commute3" contains vectors which are unsupported +8: "or_or_xor_commute3" contains vectors which are unsupported 1: "or_or_xor_use1" 4: "or_or_xor_use1" has unsupported operation: llvm.store @@ -340,7 +378,7 @@ 2: llvm.return 1: "not_shl_vec" -"not_shl_vec" contains vectors which are unsupported +8: "not_shl_vec" contains vectors which are unsupported 1: "not_shl_extra_use" 4: "not_shl_extra_use" has unsupported operation: llvm.call @@ -390,43 +428,77 @@ 7: "not_ashr_wrong_const" is unchanged by InstCombine 1: "xor_andn_commute1" -"xor_andn_commute1" contains vectors which are unsupported +8: "xor_andn_commute1" contains vectors which are unsupported 1: "xor_andn_commute2" -4: "xor_andn_commute2" has unsupported operation: llvm.udiv +2: llvm.func +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.udiv +2: llvm.xor +2: llvm.and +2: llvm.xor +2: llvm.return 1: "xor_andn_commute3" -4: "xor_andn_commute3" has unsupported operation: llvm.udiv +2: llvm.func +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.udiv +2: llvm.xor +2: llvm.and +2: llvm.xor +2: llvm.return 1: "xor_andn_commute4" -4: "xor_andn_commute4" has unsupported operation: llvm.udiv - -4: "xor_andn_commute4" has unsupported operation: llvm.udiv +2: llvm.func +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.udiv +2: llvm.udiv +2: llvm.xor +2: llvm.and +2: llvm.xor +2: llvm.return 1: "xor_orn" -"xor_orn" contains vectors which are unsupported +8: "xor_orn" contains vectors which are unsupported 1: "xor_orn_commute1" -4: "xor_orn_commute1" has unsupported operation: llvm.udiv +2: llvm.func +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.udiv +2: llvm.xor +2: llvm.or +2: llvm.xor +2: llvm.return 1: "xor_orn_commute2" -4: "xor_orn_commute2" has unsupported operation: llvm.udiv +2: llvm.func +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.udiv +2: llvm.xor +2: llvm.or +2: llvm.xor +2: llvm.return 1: "xor_orn_commute2_1use" -4: "xor_orn_commute2_1use" has unsupported operation: llvm.udiv - 4: "xor_orn_commute2_1use" has unsupported operation: llvm.store 1: "xor_orn_commute3" -4: "xor_orn_commute3" has unsupported operation: llvm.udiv - -4: "xor_orn_commute3" has unsupported operation: llvm.udiv +2: llvm.func +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.udiv +2: llvm.udiv +2: llvm.xor +2: llvm.or +2: llvm.xor +2: llvm.return 1: "xor_orn_commute3_1use" -4: "xor_orn_commute3_1use" has unsupported operation: llvm.udiv - -4: "xor_orn_commute3_1use" has unsupported operation: llvm.udiv - 4: "xor_orn_commute3_1use" has unsupported operation: llvm.store 1: "xor_orn_2use" @@ -438,8 +510,6 @@ 4: "ctlz_pow2" has unsupported operation: builtin.unregistered: llvm.intr.cttz 1: "cttz_pow2" -4: "cttz_pow2" has unsupported operation: llvm.udiv - 4: "cttz_pow2" has unsupported operation: builtin.unregistered: llvm.intr.ctlz 1: "ctlz_pow2_or_zero" @@ -524,22 +594,29 @@ 2: llvm.return 1: "or_disjoint_with_xor_vec" -"or_disjoint_with_xor_vec" contains vectors which are unsupported +8: "or_disjoint_with_xor_vec" contains vectors which are unsupported 1: "xor_with_or_disjoint_vec" -"xor_with_or_disjoint_vec" contains vectors which are unsupported +8: "xor_with_or_disjoint_vec" contains vectors which are unsupported 1: "select_or_disjoint_xor" -4: "select_or_disjoint_xor" has unsupported operation: builtin.unregistered: llvm.select +7: "select_or_disjoint_xor" is unchanged by InstCombine 1: "select_or_disjoint_xor_vec" -4: "select_or_disjoint_xor_vec" has unsupported operation: builtin.unregistered: llvm.select +7: "select_or_disjoint_xor_vec" is unchanged by InstCombine 1: "select_or_disjoint_or" -4: "select_or_disjoint_or" has unsupported operation: builtin.unregistered: llvm.select +2: llvm.func +2: llvm.mlir.constant +2: llvm.mlir.constant +2: builtin.unregistered: llvm.select +2: llvm.shl +2: llvm.or +2: llvm.add +2: llvm.return 1: "select_or_disjoint_or_vec" -4: "select_or_disjoint_or_vec" has unsupported operation: builtin.unregistered: llvm.select +8: "select_or_disjoint_or_vec" contains vectors which are unsupported 1: "or_multi_use_disjoint_with_xor" 7: "or_multi_use_disjoint_with_xor" is unchanged by InstCombine diff --git a/SSA/Projects/InstCombine/tests/logs/xor2.txt b/SSA/Projects/InstCombine/tests/logs/xor2.txt index 10f95a004..015a34b9c 100644 --- a/SSA/Projects/InstCombine/tests/logs/xor2.txt +++ b/SSA/Projects/InstCombine/tests/logs/xor2.txt @@ -307,10 +307,10 @@ 2: llvm.return 1: "not_xor_to_or_not_vector" -"not_xor_to_or_not_vector" contains vectors which are unsupported +8: "not_xor_to_or_not_vector" contains vectors which are unsupported 1: "not_xor_to_or_not_vector_poison" -"not_xor_to_or_not_vector_poison" contains vectors which are unsupported +8: "not_xor_to_or_not_vector_poison" contains vectors which are unsupported 1: "not_xor_to_or_not_2use" 4: "not_xor_to_or_not_2use" has unsupported operation: llvm.call @@ -352,10 +352,10 @@ 2: llvm.return 1: "xor_notand_to_or_not_vector" -"xor_notand_to_or_not_vector" contains vectors which are unsupported +8: "xor_notand_to_or_not_vector" contains vectors which are unsupported 1: "xor_notand_to_or_not_vector_poison" -"xor_notand_to_or_not_vector_poison" contains vectors which are unsupported +8: "xor_notand_to_or_not_vector_poison" contains vectors which are unsupported 1: "xor_notand_to_or_not_2use" 4: "xor_notand_to_or_not_2use" has unsupported operation: llvm.call diff --git a/SSA/Projects/InstCombine/tests/logs/zext-bool-add-sub.txt b/SSA/Projects/InstCombine/tests/logs/zext-bool-add-sub.txt index 753470f68..b6e5354bf 100644 --- a/SSA/Projects/InstCombine/tests/logs/zext-bool-add-sub.txt +++ b/SSA/Projects/InstCombine/tests/logs/zext-bool-add-sub.txt @@ -1,15 +1,9 @@ 1: "a" 4: "a" has unsupported operation: builtin.unregistered: llvm.sext -4: "a" has unsupported operation: builtin.unregistered: llvm.select - 1: "PR30273_select" 4: "PR30273_select" has unsupported operation: builtin.unregistered: llvm.zext -4: "PR30273_select" has unsupported operation: builtin.unregistered: llvm.select - -4: "PR30273_select" has unsupported operation: builtin.unregistered: llvm.select - 1: "PR30273_zext_add" 4: "PR30273_zext_add" has unsupported operation: builtin.unregistered: llvm.zext @@ -18,20 +12,16 @@ 1: "PR30273_three_bools" 4: "PR30273_three_bools" has unsupported operation: builtin.unregistered: llvm.zext -4: "PR30273_three_bools" has unsupported operation: builtin.unregistered: llvm.select - -4: "PR30273_three_bools" has unsupported operation: builtin.unregistered: llvm.select - 4: "PR30273_three_bools" has unsupported operation: builtin.unregistered: llvm.zext 1: "zext_add_scalar" -4: "zext_add_scalar" has unsupported operation: builtin.unregistered: llvm.select +4: "zext_add_scalar" has unsupported operation after optimization: builtin.unregistered: llvm.zext 1: "zext_add_vec_splat" -4: "zext_add_vec_splat" has unsupported operation: builtin.unregistered: llvm.select +8: "zext_add_vec_splat" contains vectors which are unsupported 1: "zext_add_vec" -4: "zext_add_vec" has unsupported operation: builtin.unregistered: llvm.select +8: "zext_add_vec" contains vectors which are unsupported 1: "use" 5: "use" is empty @@ -53,17 +43,15 @@ 4: "zext_negate_vec_poison_elt" has unsupported operation: builtin.unregistered: llvm.sext 1: "zext_sub_const" -4: "zext_sub_const" has unsupported operation: builtin.unregistered: llvm.select +4: "zext_sub_const" has unsupported operation after optimization: builtin.unregistered: llvm.zext 1: "zext_sub_const_extra_use" 4: "zext_sub_const_extra_use" has unsupported operation: builtin.unregistered: llvm.zext -4: "zext_sub_const_extra_use" has unsupported operation: builtin.unregistered: llvm.select - 4: "zext_sub_const_extra_use" has unsupported operation: llvm.call 1: "zext_sub_const_vec" -4: "zext_sub_const_vec" has unsupported operation: builtin.unregistered: llvm.select +8: "zext_sub_const_vec" contains vectors which are unsupported 1: "zext_sub_const_vec_poison_elt" 4: "zext_sub_const_vec_poison_elt" has unsupported operation: builtin.unregistered: llvm.mlir.poison @@ -80,8 +68,6 @@ 4: "zext_sub_const_vec_poison_elt" has unsupported operation: builtin.unregistered: llvm.insertelement -4: "zext_sub_const_vec_poison_elt" has unsupported operation: builtin.unregistered: llvm.select - 1: "sext_negate" 4: "sext_negate" has unsupported operation: builtin.unregistered: llvm.zext @@ -99,17 +85,15 @@ 4: "sext_negate_vec_poison_elt" has unsupported operation: builtin.unregistered: llvm.zext 1: "sext_sub_const" -4: "sext_sub_const" has unsupported operation: builtin.unregistered: llvm.select +4: "sext_sub_const" has unsupported operation after optimization: builtin.unregistered: llvm.sext 1: "sext_sub_const_extra_use" 4: "sext_sub_const_extra_use" has unsupported operation: builtin.unregistered: llvm.sext -4: "sext_sub_const_extra_use" has unsupported operation: builtin.unregistered: llvm.select - 4: "sext_sub_const_extra_use" has unsupported operation: llvm.call 1: "sext_sub_const_vec" -4: "sext_sub_const_vec" has unsupported operation: builtin.unregistered: llvm.select +8: "sext_sub_const_vec" contains vectors which are unsupported 1: "sext_sub_const_vec_poison_elt" 4: "sext_sub_const_vec_poison_elt" has unsupported operation: builtin.unregistered: llvm.mlir.poison @@ -126,8 +110,6 @@ 4: "sext_sub_const_vec_poison_elt" has unsupported operation: builtin.unregistered: llvm.insertelement -4: "sext_sub_const_vec_poison_elt" has unsupported operation: builtin.unregistered: llvm.select - 1: "sext_sub" 4: "sext_sub" has unsupported operation: builtin.unregistered: llvm.zext diff --git a/SSA/Projects/InstCombine/tests/logs/zext.txt b/SSA/Projects/InstCombine/tests/logs/zext.txt index 69eb744c6..750cdc77f 100644 --- a/SSA/Projects/InstCombine/tests/logs/zext.txt +++ b/SSA/Projects/InstCombine/tests/logs/zext.txt @@ -17,10 +17,10 @@ 4: "test2" has unsupported operation: builtin.unregistered: llvm.zext 1: "test3" -"test3" contains vectors which are unsupported +8: "test3" contains vectors which are unsupported 1: "test4" -"test4" contains vectors which are unsupported +8: "test4" contains vectors which are unsupported 1: "fold_xor_zext_sandwich" 4: "fold_xor_zext_sandwich" has unsupported operation: builtin.unregistered: llvm.zext @@ -70,10 +70,10 @@ 4: "masked_bit_set" has unsupported operation after optimization: builtin.unregistered: llvm.zext 1: "masked_bit_clear" -"masked_bit_clear" contains vectors which are unsupported +8: "masked_bit_clear" contains vectors which are unsupported 1: "masked_bit_set_commute" -"masked_bit_set_commute" contains vectors which are unsupported +8: "masked_bit_set_commute" contains vectors which are unsupported 1: "masked_bit_clear_commute" 4: "masked_bit_clear_commute" has unsupported operation after optimization: builtin.unregistered: llvm.icmp @@ -301,8 +301,6 @@ 4: "evaluate_zexted_const_expr" has unsupported operation: builtin.unregistered: llvm.trunc -4: "evaluate_zexted_const_expr" has unsupported operation: builtin.unregistered: llvm.select - 4: "evaluate_zexted_const_expr" has unsupported operation: builtin.unregistered: llvm.zext 1: "zext_nneg_flag_drop" @@ -326,7 +324,7 @@ 4: "zext_nneg_i1" has unsupported operation after optimization: builtin.unregistered: llvm.zext 1: "zext_nneg_i1_vec" -"zext_nneg_i1_vec" contains vectors which are unsupported +8: "zext_nneg_i1_vec" contains vectors which are unsupported 1: "zext_nneg_i2" 4: "zext_nneg_i2" has unsupported operation: builtin.unregistered: llvm.zext diff --git a/SSA/Projects/InstCombine/tests/proofs/g2005h04h07hUDivSelectCrash.lean b/SSA/Projects/InstCombine/tests/proofs/g2005h04h07hUDivSelectCrash.lean new file mode 100644 index 000000000..fdedd2ff0 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/proofs/g2005h04h07hUDivSelectCrash.lean @@ -0,0 +1,49 @@ +import SSA.Projects.InstCombine.tests.proofs.g2005h04h07hUDivSelectCrash_proof +import SSA.Projects.InstCombine.LLVM.PrettyEDSL +import SSA.Projects.InstCombine.TacticAuto +import SSA.Projects.InstCombine.LLVM.Semantics +open LLVM +open BitVec + +open MLIR AST +open Ctxt (Var) + +set_option linter.deprecated false +set_option linter.unreachableTactic false +set_option linter.unusedTactic false +section g2005h04h07hUDivSelectCrash_statements + +def test_before := [llvm| +{ +^0(%arg0 : i1, %arg1 : i32): + %0 = "llvm.mlir.constant"() <{value = 8 : i32}> : () -> i32 + %1 = "llvm.mlir.constant"() <{value = 1 : i32}> : () -> i32 + %2 = "llvm.select"(%arg0, %0, %1) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i32, i32) -> i32 + %3 = llvm.udiv %arg1, %2 : i32 + "llvm.return"(%3) : (i32) -> () +} +] +def test_after := [llvm| +{ +^0(%arg0 : i1, %arg1 : i32): + %0 = "llvm.mlir.constant"() <{value = 3 : i32}> : () -> i32 + %1 = "llvm.mlir.constant"() <{value = 0 : i32}> : () -> i32 + %2 = "llvm.select"(%arg0, %0, %1) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i32, i32) -> i32 + %3 = llvm.lshr %arg1, %2 : i32 + "llvm.return"(%3) : (i32) -> () +} +] +theorem test_proof : test_before ⊑ test_after := by + unfold test_before test_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN test + apply test_thm + ---END test + + diff --git a/SSA/Projects/InstCombine/tests/proofs/g2005h04h07hUDivSelectCrash_proof.lean b/SSA/Projects/InstCombine/tests/proofs/g2005h04h07hUDivSelectCrash_proof.lean new file mode 100644 index 000000000..87652e5de --- /dev/null +++ b/SSA/Projects/InstCombine/tests/proofs/g2005h04h07hUDivSelectCrash_proof.lean @@ -0,0 +1,20 @@ + +import SSA.Projects.InstCombine.TacticAuto +import SSA.Projects.InstCombine.LLVM.Semantics +open BitVec + +section g2005h04h07hUDivSelectCrash_proof +theorem test_thm (x : BitVec 1) (x_1 : BitVec 32) : + (Option.bind + (match some x with + | none => none + | some { toFin := ⟨1, ⋯⟩ } => some 8#32 + | some { toFin := ⟨0, ⋯⟩ } => some 1#32) + fun y' => if y' = 0#32 then none else some (x_1 / y')) ⊑ + Option.bind + (match some x with + | none => none + | some { toFin := ⟨1, ⋯⟩ } => some 3#32 + | some { toFin := ⟨0, ⋯⟩ } => some 0#32) + fun y' => if 32#32 ≤ y' then none else some (x_1 >>> y'.toNat) := sorry + diff --git a/SSA/Projects/InstCombine/tests/proofs/g2008h05h31hBools.lean b/SSA/Projects/InstCombine/tests/proofs/g2008h05h31hBools.lean index 58b4a2cfd..9b5b83cd2 100644 --- a/SSA/Projects/InstCombine/tests/proofs/g2008h05h31hBools.lean +++ b/SSA/Projects/InstCombine/tests/proofs/g2008h05h31hBools.lean @@ -71,6 +71,34 @@ theorem foo2_proof : foo2_before ⊑ foo2_after := by +def foo3_before := [llvm| +{ +^0(%arg2 : i1, %arg3 : i1): + %0 = llvm.udiv %arg2, %arg3 : i1 + "llvm.return"(%0) : (i1) -> () +} +] +def foo3_after := [llvm| +{ +^0(%arg2 : i1, %arg3 : i1): + "llvm.return"(%arg2) : (i1) -> () +} +] +theorem foo3_proof : foo3_before ⊑ foo3_after := by + unfold foo3_before foo3_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN foo3 + apply foo3_thm + ---END foo3 + + + def foo4_before := [llvm| { ^0(%arg0 : i1, %arg1 : i1): diff --git a/SSA/Projects/InstCombine/tests/proofs/g2008h05h31hBools_proof.lean b/SSA/Projects/InstCombine/tests/proofs/g2008h05h31hBools_proof.lean index d9a7c5714..ccfb9cb2c 100644 --- a/SSA/Projects/InstCombine/tests/proofs/g2008h05h31hBools_proof.lean +++ b/SSA/Projects/InstCombine/tests/proofs/g2008h05h31hBools_proof.lean @@ -8,5 +8,7 @@ theorem foo1_thm (x x_1 : BitVec 1) : x_1 - x = x ^^^ x_1 := sorry theorem foo2_thm (x x_1 : BitVec 1) : x_1 * x = x_1 &&& x := sorry +theorem foo3_thm (x x_1 : BitVec 1) : (if x = 0#1 then none else some (x_1 &&& x)) ⊑ some x_1 := sorry + theorem foo4_thm (x x_1 : BitVec 1) : (if x = 0#1 then none else some (x_1.sdiv x)) ⊑ some x_1 := sorry diff --git a/SSA/Projects/InstCombine/tests/proofs/g2012h08h28hudiv_ashl.lean b/SSA/Projects/InstCombine/tests/proofs/g2012h08h28hudiv_ashl.lean new file mode 100644 index 000000000..7e4f466e8 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/proofs/g2012h08h28hudiv_ashl.lean @@ -0,0 +1,113 @@ +import SSA.Projects.InstCombine.tests.proofs.g2012h08h28hudiv_ashl_proof +import SSA.Projects.InstCombine.LLVM.PrettyEDSL +import SSA.Projects.InstCombine.TacticAuto +import SSA.Projects.InstCombine.LLVM.Semantics +open LLVM +open BitVec + +open MLIR AST +open Ctxt (Var) + +set_option linter.deprecated false +set_option linter.unreachableTactic false +set_option linter.unusedTactic false +section g2012h08h28hudiv_ashl_statements + +def udiv400_before := [llvm| +{ +^0(%arg5 : i32): + %0 = "llvm.mlir.constant"() <{value = 2 : i32}> : () -> i32 + %1 = "llvm.mlir.constant"() <{value = 100 : i32}> : () -> i32 + %2 = llvm.lshr %arg5, %0 : i32 + %3 = llvm.udiv %2, %1 : i32 + "llvm.return"(%3) : (i32) -> () +} +] +def udiv400_after := [llvm| +{ +^0(%arg5 : i32): + %0 = "llvm.mlir.constant"() <{value = 400 : i32}> : () -> i32 + %1 = llvm.udiv %arg5, %0 : i32 + "llvm.return"(%1) : (i32) -> () +} +] +theorem udiv400_proof : udiv400_before ⊑ udiv400_after := by + unfold udiv400_before udiv400_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN udiv400 + apply udiv400_thm + ---END udiv400 + + + +def sdiv400_yes_before := [llvm| +{ +^0(%arg3 : i32): + %0 = "llvm.mlir.constant"() <{value = 2 : i32}> : () -> i32 + %1 = "llvm.mlir.constant"() <{value = 100 : i32}> : () -> i32 + %2 = llvm.lshr %arg3, %0 : i32 + %3 = llvm.sdiv %2, %1 : i32 + "llvm.return"(%3) : (i32) -> () +} +] +def sdiv400_yes_after := [llvm| +{ +^0(%arg3 : i32): + %0 = "llvm.mlir.constant"() <{value = 400 : i32}> : () -> i32 + %1 = llvm.udiv %arg3, %0 : i32 + "llvm.return"(%1) : (i32) -> () +} +] +theorem sdiv400_yes_proof : sdiv400_yes_before ⊑ sdiv400_yes_after := by + unfold sdiv400_yes_before sdiv400_yes_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN sdiv400_yes + apply sdiv400_yes_thm + ---END sdiv400_yes + + + +def udiv_i80_before := [llvm| +{ +^0(%arg2 : i80): + %0 = "llvm.mlir.constant"() <{value = 2 : i80}> : () -> i80 + %1 = "llvm.mlir.constant"() <{value = 100 : i80}> : () -> i80 + %2 = llvm.lshr %arg2, %0 : i80 + %3 = llvm.udiv %2, %1 : i80 + "llvm.return"(%3) : (i80) -> () +} +] +def udiv_i80_after := [llvm| +{ +^0(%arg2 : i80): + %0 = "llvm.mlir.constant"() <{value = 400 : i80}> : () -> i80 + %1 = llvm.udiv %arg2, %0 : i80 + "llvm.return"(%1) : (i80) -> () +} +] +theorem udiv_i80_proof : udiv_i80_before ⊑ udiv_i80_after := by + unfold udiv_i80_before udiv_i80_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN udiv_i80 + apply udiv_i80_thm + ---END udiv_i80 + + diff --git a/SSA/Projects/InstCombine/tests/proofs/g2012h08h28hudiv_ashl_proof.lean b/SSA/Projects/InstCombine/tests/proofs/g2012h08h28hudiv_ashl_proof.lean new file mode 100644 index 000000000..3e6345367 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/proofs/g2012h08h28hudiv_ashl_proof.lean @@ -0,0 +1,12 @@ + +import SSA.Projects.InstCombine.TacticAuto +import SSA.Projects.InstCombine.LLVM.Semantics +open BitVec + +section g2012h08h28hudiv_ashl_proof +theorem udiv400_thm (x : BitVec 32) : x >>> 2 / 100#32 = x / 400#32 := sorry + +theorem sdiv400_yes_thm (x : BitVec 32) : (x >>> 2).sdiv 100#32 = x / 400#32 := sorry + +theorem udiv_i80_thm (x : BitVec 80) : x >>> 2 / 100#80 = x / 400#80 := sorry + diff --git a/SSA/Projects/InstCombine/tests/proofs/gadd2.lean b/SSA/Projects/InstCombine/tests/proofs/gadd2.lean index 79378d227..28f2bac7f 100644 --- a/SSA/Projects/InstCombine/tests/proofs/gadd2.lean +++ b/SSA/Projects/InstCombine/tests/proofs/gadd2.lean @@ -1059,6 +1059,41 @@ theorem add_of_mul_proof : add_of_mul_before ⊑ add_of_mul_after := by +def add_of_selects_before := [llvm| +{ +^0(%arg2 : i1, %arg3 : i32): + %0 = "llvm.mlir.constant"() <{value = 0 : i32}> : () -> i32 + %1 = "llvm.mlir.constant"() <{value = -2 : i32}> : () -> i32 + %2 = "llvm.mlir.constant"() <{value = 2 : i32}> : () -> i32 + %3 = "llvm.select"(%arg2, %0, %1) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i32, i32) -> i32 + %4 = "llvm.select"(%arg2, %arg3, %2) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i32, i32) -> i32 + %5 = llvm.add %3, %4 : i32 + "llvm.return"(%5) : (i32) -> () +} +] +def add_of_selects_after := [llvm| +{ +^0(%arg2 : i1, %arg3 : i32): + %0 = "llvm.mlir.constant"() <{value = 0 : i32}> : () -> i32 + %1 = "llvm.select"(%arg2, %arg3, %0) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i32, i32) -> i32 + "llvm.return"(%1) : (i32) -> () +} +] +theorem add_of_selects_proof : add_of_selects_before ⊑ add_of_selects_after := by + unfold add_of_selects_before add_of_selects_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN add_of_selects + apply add_of_selects_thm + ---END add_of_selects + + + def add_undemanded_low_bits_before := [llvm| { ^0(%arg1 : i32): diff --git a/SSA/Projects/InstCombine/tests/proofs/gadd2_proof.lean b/SSA/Projects/InstCombine/tests/proofs/gadd2_proof.lean index f95b5a24b..4e465ca08 100644 --- a/SSA/Projects/InstCombine/tests/proofs/gadd2_proof.lean +++ b/SSA/Projects/InstCombine/tests/proofs/gadd2_proof.lean @@ -207,6 +207,42 @@ theorem add_of_mul_thm (x x_1 x_2 : BitVec 8) : fun y' => if a.msb = y'.msb ∧ ¬(a + y').msb = a.msb then none else some (a + y')) ⊑ some (x_2 * (x_1 + x)) := sorry +theorem add_of_selects_thm (x : BitVec 1) : + (Option.bind + (match some x with + | none => none + | some { toFin := ⟨1, ⋯⟩ } => some 0#32 + | some { toFin := ⟨0, ⋯⟩ } => some 4294967294#32) + fun x' => + Option.bind + (match some x with + | none => none + | some { toFin := ⟨1, ⋯⟩ } => none + | some { toFin := ⟨0, ⋯⟩ } => some 2#32) + fun y' => some (x' + y')) ⊑ + match some x with + | none => none + | some { toFin := ⟨1, ⋯⟩ } => none + | some { toFin := ⟨0, ⋯⟩ } => some 0#32 := sorry +info: ././././SSA/Projects/InstCombine/tests/LLVM/gadd2.lean:1092:17: theorem add_of_selects_thm : + ∀ (x : BitVec 32) (x_1 : BitVec 1), + (Option.bind + (match some x_1 with + | none => none + | some { toFin := ⟨1, ⋯⟩ } => some 0#32 + | some { toFin := ⟨0, ⋯⟩ } => some 4294967294#32) + fun x' => + Option.bind + (match some x_1 with + | none => none + | some { toFin := ⟨1, ⋯⟩ } => some x + | some { toFin := ⟨0, ⋯⟩ } => some 2#32) + fun y' => some (x' + y')) ⊑ + match some x_1 with + | none => none + | some { toFin := ⟨1, ⋯⟩ } => some x + | some { toFin := ⟨0, ⋯⟩ } => some 0#32 := sorry + theorem add_undemanded_low_bits_thm (x : BitVec 32) : ((x ||| 15#32) + 1616#32) >>> 4 = (x + 1616#32) >>> 4 := sorry theorem sub_undemanded_low_bits_thm (x : BitVec 32) : ((x ||| 15#32) - 1616#32) >>> 4 = (x + 4294965680#32) >>> 4 := sorry diff --git a/SSA/Projects/InstCombine/tests/proofs/gadd4.lean b/SSA/Projects/InstCombine/tests/proofs/gadd4.lean index 6425d50e4..269ad671a 100644 --- a/SSA/Projects/InstCombine/tests/proofs/gadd4.lean +++ b/SSA/Projects/InstCombine/tests/proofs/gadd4.lean @@ -13,6 +13,42 @@ set_option linter.unreachableTactic false set_option linter.unusedTactic false section gadd4_statements +def match_unsigned_before := [llvm| +{ +^0(%arg18 : i64): + %0 = "llvm.mlir.constant"() <{value = 299 : i64}> : () -> i64 + %1 = "llvm.mlir.constant"() <{value = 64 : i64}> : () -> i64 + %2 = llvm.urem %arg18, %0 : i64 + %3 = llvm.udiv %arg18, %0 : i64 + %4 = llvm.urem %3, %1 : i64 + %5 = llvm.mul %4, %0 : i64 + %6 = llvm.add %2, %5 : i64 + "llvm.return"(%6) : (i64) -> () +} +] +def match_unsigned_after := [llvm| +{ +^0(%arg18 : i64): + %0 = "llvm.mlir.constant"() <{value = 19136 : i64}> : () -> i64 + %1 = llvm.urem %arg18, %0 : i64 + "llvm.return"(%1) : (i64) -> () +} +] +theorem match_unsigned_proof : match_unsigned_before ⊑ match_unsigned_after := by + unfold match_unsigned_before match_unsigned_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN match_unsigned + apply match_unsigned_thm + ---END match_unsigned + + + def match_andAsRem_lshrAsDiv_shlAsMul_before := [llvm| { ^0(%arg16 : i64): @@ -133,6 +169,87 @@ theorem not_match_inconsistent_signs_proof : not_match_inconsistent_signs_before +def not_match_inconsistent_values_before := [llvm| +{ +^0(%arg12 : i64): + %0 = "llvm.mlir.constant"() <{value = 299 : i64}> : () -> i64 + %1 = "llvm.mlir.constant"() <{value = 29 : i64}> : () -> i64 + %2 = "llvm.mlir.constant"() <{value = 64 : i64}> : () -> i64 + %3 = llvm.urem %arg12, %0 : i64 + %4 = llvm.udiv %arg12, %1 : i64 + %5 = llvm.urem %4, %2 : i64 + %6 = llvm.mul %5, %0 : i64 + %7 = llvm.add %3, %6 : i64 + "llvm.return"(%7) : (i64) -> () +} +] +def not_match_inconsistent_values_after := [llvm| +{ +^0(%arg12 : i64): + %0 = "llvm.mlir.constant"() <{value = 299 : i64}> : () -> i64 + %1 = "llvm.mlir.constant"() <{value = 29 : i64}> : () -> i64 + %2 = "llvm.mlir.constant"() <{value = 63 : i64}> : () -> i64 + %3 = llvm.urem %arg12, %0 : i64 + %4 = llvm.udiv %arg12, %1 : i64 + %5 = llvm.and %4, %2 : i64 + %6 = llvm.mul %5, %0 overflow : i64 + %7 = llvm.add %3, %6 overflow : i64 + "llvm.return"(%7) : (i64) -> () +} +] +theorem not_match_inconsistent_values_proof : not_match_inconsistent_values_before ⊑ not_match_inconsistent_values_after := by + unfold not_match_inconsistent_values_before not_match_inconsistent_values_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN not_match_inconsistent_values + apply not_match_inconsistent_values_thm + ---END not_match_inconsistent_values + + + +def fold_add_udiv_urem_before := [llvm| +{ +^0(%arg10 : i32): + %0 = "llvm.mlir.constant"() <{value = 10 : i32}> : () -> i32 + %1 = "llvm.mlir.constant"() <{value = 4 : i32}> : () -> i32 + %2 = llvm.udiv %arg10, %0 : i32 + %3 = llvm.shl %2, %1 : i32 + %4 = llvm.urem %arg10, %0 : i32 + %5 = llvm.add %3, %4 : i32 + "llvm.return"(%5) : (i32) -> () +} +] +def fold_add_udiv_urem_after := [llvm| +{ +^0(%arg10 : i32): + %0 = "llvm.mlir.constant"() <{value = 10 : i32}> : () -> i32 + %1 = "llvm.mlir.constant"() <{value = 6 : i32}> : () -> i32 + %2 = llvm.udiv %arg10, %0 : i32 + %3 = llvm.mul %2, %1 overflow : i32 + %4 = llvm.add %3, %arg10 : i32 + "llvm.return"(%4) : (i32) -> () +} +] +theorem fold_add_udiv_urem_proof : fold_add_udiv_urem_before ⊑ fold_add_udiv_urem_after := by + unfold fold_add_udiv_urem_before fold_add_udiv_urem_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN fold_add_udiv_urem + apply fold_add_udiv_urem_thm + ---END fold_add_udiv_urem + + + def fold_add_sdiv_srem_before := [llvm| { ^0(%arg9 : i32): @@ -170,3 +287,155 @@ theorem fold_add_sdiv_srem_proof : fold_add_sdiv_srem_before ⊑ fold_add_sdiv_s ---END fold_add_sdiv_srem + +def fold_add_udiv_urem_to_mul_before := [llvm| +{ +^0(%arg8 : i32): + %0 = "llvm.mlir.constant"() <{value = 7 : i32}> : () -> i32 + %1 = "llvm.mlir.constant"() <{value = 21 : i32}> : () -> i32 + %2 = "llvm.mlir.constant"() <{value = 3 : i32}> : () -> i32 + %3 = llvm.udiv %arg8, %0 : i32 + %4 = llvm.mul %3, %1 : i32 + %5 = llvm.urem %arg8, %0 : i32 + %6 = llvm.mul %5, %2 : i32 + %7 = llvm.add %4, %6 : i32 + "llvm.return"(%7) : (i32) -> () +} +] +def fold_add_udiv_urem_to_mul_after := [llvm| +{ +^0(%arg8 : i32): + %0 = "llvm.mlir.constant"() <{value = 3 : i32}> : () -> i32 + %1 = llvm.mul %arg8, %0 : i32 + "llvm.return"(%1) : (i32) -> () +} +] +theorem fold_add_udiv_urem_to_mul_proof : fold_add_udiv_urem_to_mul_before ⊑ fold_add_udiv_urem_to_mul_after := by + unfold fold_add_udiv_urem_to_mul_before fold_add_udiv_urem_to_mul_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN fold_add_udiv_urem_to_mul + apply fold_add_udiv_urem_to_mul_thm + ---END fold_add_udiv_urem_to_mul + + + +def fold_add_udiv_urem_commuted_before := [llvm| +{ +^0(%arg6 : i32): + %0 = "llvm.mlir.constant"() <{value = 10 : i32}> : () -> i32 + %1 = "llvm.mlir.constant"() <{value = 4 : i32}> : () -> i32 + %2 = llvm.udiv %arg6, %0 : i32 + %3 = llvm.shl %2, %1 : i32 + %4 = llvm.urem %arg6, %0 : i32 + %5 = llvm.add %4, %3 : i32 + "llvm.return"(%5) : (i32) -> () +} +] +def fold_add_udiv_urem_commuted_after := [llvm| +{ +^0(%arg6 : i32): + %0 = "llvm.mlir.constant"() <{value = 10 : i32}> : () -> i32 + %1 = "llvm.mlir.constant"() <{value = 6 : i32}> : () -> i32 + %2 = llvm.udiv %arg6, %0 : i32 + %3 = llvm.mul %2, %1 overflow : i32 + %4 = llvm.add %3, %arg6 : i32 + "llvm.return"(%4) : (i32) -> () +} +] +theorem fold_add_udiv_urem_commuted_proof : fold_add_udiv_urem_commuted_before ⊑ fold_add_udiv_urem_commuted_after := by + unfold fold_add_udiv_urem_commuted_before fold_add_udiv_urem_commuted_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN fold_add_udiv_urem_commuted + apply fold_add_udiv_urem_commuted_thm + ---END fold_add_udiv_urem_commuted + + + +def fold_add_udiv_urem_or_disjoint_before := [llvm| +{ +^0(%arg5 : i32): + %0 = "llvm.mlir.constant"() <{value = 10 : i32}> : () -> i32 + %1 = "llvm.mlir.constant"() <{value = 4 : i32}> : () -> i32 + %2 = llvm.udiv %arg5, %0 : i32 + %3 = llvm.shl %2, %1 : i32 + %4 = llvm.urem %arg5, %0 : i32 + %5 = llvm.or %3, %4 : i32 + "llvm.return"(%5) : (i32) -> () +} +] +def fold_add_udiv_urem_or_disjoint_after := [llvm| +{ +^0(%arg5 : i32): + %0 = "llvm.mlir.constant"() <{value = 10 : i32}> : () -> i32 + %1 = "llvm.mlir.constant"() <{value = 6 : i32}> : () -> i32 + %2 = llvm.udiv %arg5, %0 : i32 + %3 = llvm.mul %2, %1 overflow : i32 + %4 = llvm.add %3, %arg5 : i32 + "llvm.return"(%4) : (i32) -> () +} +] +theorem fold_add_udiv_urem_or_disjoint_proof : fold_add_udiv_urem_or_disjoint_before ⊑ fold_add_udiv_urem_or_disjoint_after := by + unfold fold_add_udiv_urem_or_disjoint_before fold_add_udiv_urem_or_disjoint_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN fold_add_udiv_urem_or_disjoint + apply fold_add_udiv_urem_or_disjoint_thm + ---END fold_add_udiv_urem_or_disjoint + + + +def fold_add_udiv_urem_without_noundef_before := [llvm| +{ +^0(%arg4 : i32): + %0 = "llvm.mlir.constant"() <{value = 10 : i32}> : () -> i32 + %1 = "llvm.mlir.constant"() <{value = 4 : i32}> : () -> i32 + %2 = llvm.udiv %arg4, %0 : i32 + %3 = llvm.shl %2, %1 : i32 + %4 = llvm.urem %arg4, %0 : i32 + %5 = llvm.add %3, %4 : i32 + "llvm.return"(%5) : (i32) -> () +} +] +def fold_add_udiv_urem_without_noundef_after := [llvm| +{ +^0(%arg4 : i32): + %0 = "llvm.mlir.constant"() <{value = 10 : i32}> : () -> i32 + %1 = "llvm.mlir.constant"() <{value = 4 : i32}> : () -> i32 + %2 = llvm.udiv %arg4, %0 : i32 + %3 = llvm.shl %2, %1 : i32 + %4 = llvm.urem %arg4, %0 : i32 + %5 = llvm.or %3, %4 : i32 + "llvm.return"(%5) : (i32) -> () +} +] +theorem fold_add_udiv_urem_without_noundef_proof : fold_add_udiv_urem_without_noundef_before ⊑ fold_add_udiv_urem_without_noundef_after := by + unfold fold_add_udiv_urem_without_noundef_before fold_add_udiv_urem_without_noundef_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN fold_add_udiv_urem_without_noundef + apply fold_add_udiv_urem_without_noundef_thm + ---END fold_add_udiv_urem_without_noundef + + diff --git a/SSA/Projects/InstCombine/tests/proofs/gadd4_proof.lean b/SSA/Projects/InstCombine/tests/proofs/gadd4_proof.lean index d650cf664..d084d15ba 100644 --- a/SSA/Projects/InstCombine/tests/proofs/gadd4_proof.lean +++ b/SSA/Projects/InstCombine/tests/proofs/gadd4_proof.lean @@ -4,6 +4,8 @@ import SSA.Projects.InstCombine.LLVM.Semantics open BitVec section gadd4_proof +theorem match_unsigned_thm (x : BitVec 64) : x % 299#64 + x / 299#64 % 64#64 * 299#64 = x % 19136#64 := sorry + theorem match_andAsRem_lshrAsDiv_shlAsMul_thm (x : BitVec 64) : (x &&& 63#64) + (x >>> 6 % 9#64) <<< 6 = x % 576#64 := sorry theorem match_signed_thm (x : BitVec 64) : @@ -24,6 +26,24 @@ theorem not_match_inconsistent_signs_thm (x : BitVec 64) : if (x % 299#64).msb = y'.msb ∧ ¬(x % 299#64 + y').msb = (x % 299#64).msb then none else if x % 299#64 + y' < x % 299#64 ∨ x % 299#64 + y' < y' then none else some (x % 299#64 + y') := sorry +theorem not_match_inconsistent_values_thm (x : BitVec 64) : + some (x % 299#64 + x / 29#64 % 64#64 * 299#64) ⊑ + (if + signExtend 128 (x / 29#64 &&& 63#64) * 299#128 < signExtend 128 (twoPow 64 63) ∨ + twoPow 128 63 ≤ signExtend 128 (x / 29#64 &&& 63#64) * 299#128 then + none + else + if twoPow 128 63 <<< 1 ≤ (setWidth 128 (x / 29#64) &&& 63#128) * 299#128 then none + else some ((x / 29#64 &&& 63#64) * 299#64)).bind + fun y' => + if (x % 299#64).msb = y'.msb ∧ ¬(x % 299#64 + y').msb = (x % 299#64).msb then none + else if x % 299#64 + y' < x % 299#64 ∨ x % 299#64 + y' < y' then none else some (x % 299#64 + y') := sorry + +theorem fold_add_udiv_urem_thm (x : BitVec 32) : + some ((x / 10#32) <<< 4 + x % 10#32) ⊑ + (if twoPow 64 31 <<< 1 ≤ setWidth 64 (x / 10#32) * 6#64 then none else some (x / 10#32 * 6#32)).bind fun a => + some (a + x) := sorry + theorem fold_add_sdiv_srem_thm (x : BitVec 32) : some (x.sdiv 10#32 <<< 4 + (x - x.sdiv 10#32 * 10#32)) ⊑ (if @@ -33,3 +53,17 @@ theorem fold_add_sdiv_srem_thm (x : BitVec 32) : else some (x.sdiv 10#32 * 6#32)).bind fun a => some (a + x) := sorry +theorem fold_add_udiv_urem_to_mul_thm (x : BitVec 32) : x / 7#32 * 21#32 + x % 7#32 * 3#32 = x * 3#32 := sorry + +theorem fold_add_udiv_urem_commuted_thm (x : BitVec 32) : + some (x % 10#32 + (x / 10#32) <<< 4) ⊑ + (if twoPow 64 31 <<< 1 ≤ setWidth 64 (x / 10#32) * 6#64 then none else some (x / 10#32 * 6#32)).bind fun a => + some (a + x) := sorry + +theorem fold_add_udiv_urem_or_disjoint_thm (x : BitVec 32) : + some ((x / 10#32) <<< 4 ||| x % 10#32) ⊑ + (if twoPow 64 31 <<< 1 ≤ setWidth 64 (x / 10#32) * 6#64 then none else some (x / 10#32 * 6#32)).bind fun a => + some (a + x) := sorry + +theorem fold_add_udiv_urem_without_noundef_thm (x : BitVec 32) : (x / 10#32) <<< 4 + x % 10#32 = (x / 10#32) <<< 4 ||| x % 10#32 := sorry + diff --git a/SSA/Projects/InstCombine/tests/proofs/gand2.lean b/SSA/Projects/InstCombine/tests/proofs/gand2.lean deleted file mode 100644 index dd0fcdafe..000000000 --- a/SSA/Projects/InstCombine/tests/proofs/gand2.lean +++ /dev/null @@ -1,398 +0,0 @@ -import SSA.Projects.InstCombine.tests.proofs.gand2_proof -import SSA.Projects.InstCombine.LLVM.PrettyEDSL -import SSA.Projects.InstCombine.TacticAuto -import SSA.Projects.InstCombine.LLVM.Semantics -open LLVM -open BitVec - -open MLIR AST -open Ctxt (Var) - -set_option linter.deprecated false -set_option linter.unreachableTactic false -set_option linter.unusedTactic false -section gand2_statements - -def test2_before := [llvm| -{ -^0(%arg30 : i1, %arg31 : i1): - %0 = llvm.and %arg30, %arg31 : i1 - %1 = llvm.and %0, %arg30 : i1 - "llvm.return"(%1) : (i1) -> () -} -] -def test2_after := [llvm| -{ -^0(%arg30 : i1, %arg31 : i1): - %0 = llvm.and %arg30, %arg31 : i1 - "llvm.return"(%0) : (i1) -> () -} -] -theorem test2_proof : test2_before ⊑ test2_after := by - unfold test2_before test2_after - simp_alive_peephole - simp_alive_undef - simp_alive_ops - try simp - simp_alive_case_bash - try intros - try simp - ---BEGIN test2 - apply test2_thm - ---END test2 - - - -def test3_before := [llvm| -{ -^0(%arg26 : i32, %arg27 : i32): - %0 = llvm.and %arg26, %arg27 : i32 - %1 = llvm.and %arg27, %0 : i32 - "llvm.return"(%1) : (i32) -> () -} -] -def test3_after := [llvm| -{ -^0(%arg26 : i32, %arg27 : i32): - %0 = llvm.and %arg26, %arg27 : i32 - "llvm.return"(%0) : (i32) -> () -} -] -theorem test3_proof : test3_before ⊑ test3_after := by - unfold test3_before test3_after - simp_alive_peephole - simp_alive_undef - simp_alive_ops - try simp - simp_alive_case_bash - try intros - try simp - ---BEGIN test3 - apply test3_thm - ---END test3 - - - -def test9_before := [llvm| -{ -^0(%arg18 : i64): - %0 = "llvm.mlir.constant"() <{value = 0 : i64}> : () -> i64 - %1 = "llvm.mlir.constant"() <{value = 1 : i64}> : () -> i64 - %2 = llvm.sub %0, %arg18 overflow : i64 - %3 = llvm.and %2, %1 : i64 - "llvm.return"(%3) : (i64) -> () -} -] -def test9_after := [llvm| -{ -^0(%arg18 : i64): - %0 = "llvm.mlir.constant"() <{value = 1 : i64}> : () -> i64 - %1 = llvm.and %arg18, %0 : i64 - "llvm.return"(%1) : (i64) -> () -} -] -theorem test9_proof : test9_before ⊑ test9_after := by - unfold test9_before test9_after - simp_alive_peephole - simp_alive_undef - simp_alive_ops - try simp - simp_alive_case_bash - try intros - try simp - ---BEGIN test9 - apply test9_thm - ---END test9 - - - -def test10_before := [llvm| -{ -^0(%arg16 : i64): - %0 = "llvm.mlir.constant"() <{value = 0 : i64}> : () -> i64 - %1 = "llvm.mlir.constant"() <{value = 1 : i64}> : () -> i64 - %2 = llvm.sub %0, %arg16 overflow : i64 - %3 = llvm.and %2, %1 : i64 - %4 = llvm.add %2, %3 : i64 - "llvm.return"(%4) : (i64) -> () -} -] -def test10_after := [llvm| -{ -^0(%arg16 : i64): - %0 = "llvm.mlir.constant"() <{value = -2 : i64}> : () -> i64 - %1 = "llvm.mlir.constant"() <{value = 0 : i64}> : () -> i64 - %2 = llvm.and %arg16, %0 : i64 - %3 = llvm.sub %1, %2 : i64 - "llvm.return"(%3) : (i64) -> () -} -] -theorem test10_proof : test10_before ⊑ test10_after := by - unfold test10_before test10_after - simp_alive_peephole - simp_alive_undef - simp_alive_ops - try simp - simp_alive_case_bash - try intros - try simp - ---BEGIN test10 - apply test10_thm - ---END test10 - - - -def and1_shl1_is_cmp_eq_0_multiuse_before := [llvm| -{ -^0(%arg14 : i8): - %0 = "llvm.mlir.constant"() <{value = 1 : i8}> : () -> i8 - %1 = llvm.shl %0, %arg14 : i8 - %2 = llvm.and %1, %0 : i8 - %3 = llvm.add %1, %2 : i8 - "llvm.return"(%3) : (i8) -> () -} -] -def and1_shl1_is_cmp_eq_0_multiuse_after := [llvm| -{ -^0(%arg14 : i8): - %0 = "llvm.mlir.constant"() <{value = 1 : i8}> : () -> i8 - %1 = llvm.shl %0, %arg14 overflow : i8 - %2 = llvm.and %1, %0 : i8 - %3 = llvm.add %1, %2 overflow : i8 - "llvm.return"(%3) : (i8) -> () -} -] -theorem and1_shl1_is_cmp_eq_0_multiuse_proof : and1_shl1_is_cmp_eq_0_multiuse_before ⊑ and1_shl1_is_cmp_eq_0_multiuse_after := by - unfold and1_shl1_is_cmp_eq_0_multiuse_before and1_shl1_is_cmp_eq_0_multiuse_after - simp_alive_peephole - simp_alive_undef - simp_alive_ops - try simp - simp_alive_case_bash - try intros - try simp - ---BEGIN and1_shl1_is_cmp_eq_0_multiuse - apply and1_shl1_is_cmp_eq_0_multiuse_thm - ---END and1_shl1_is_cmp_eq_0_multiuse - - - -def and1_lshr1_is_cmp_eq_0_before := [llvm| -{ -^0(%arg11 : i8): - %0 = "llvm.mlir.constant"() <{value = 1 : i8}> : () -> i8 - %1 = llvm.lshr %0, %arg11 : i8 - %2 = llvm.and %1, %0 : i8 - "llvm.return"(%2) : (i8) -> () -} -] -def and1_lshr1_is_cmp_eq_0_after := [llvm| -{ -^0(%arg11 : i8): - %0 = "llvm.mlir.constant"() <{value = 1 : i8}> : () -> i8 - %1 = llvm.lshr %0, %arg11 : i8 - "llvm.return"(%1) : (i8) -> () -} -] -theorem and1_lshr1_is_cmp_eq_0_proof : and1_lshr1_is_cmp_eq_0_before ⊑ and1_lshr1_is_cmp_eq_0_after := by - unfold and1_lshr1_is_cmp_eq_0_before and1_lshr1_is_cmp_eq_0_after - simp_alive_peephole - simp_alive_undef - simp_alive_ops - try simp - simp_alive_case_bash - try intros - try simp - ---BEGIN and1_lshr1_is_cmp_eq_0 - apply and1_lshr1_is_cmp_eq_0_thm - ---END and1_lshr1_is_cmp_eq_0 - - - -def and1_lshr1_is_cmp_eq_0_multiuse_before := [llvm| -{ -^0(%arg10 : i8): - %0 = "llvm.mlir.constant"() <{value = 1 : i8}> : () -> i8 - %1 = llvm.lshr %0, %arg10 : i8 - %2 = llvm.and %1, %0 : i8 - %3 = llvm.add %1, %2 : i8 - "llvm.return"(%3) : (i8) -> () -} -] -def and1_lshr1_is_cmp_eq_0_multiuse_after := [llvm| -{ -^0(%arg10 : i8): - %0 = "llvm.mlir.constant"() <{value = 1 : i8}> : () -> i8 - %1 = llvm.lshr %0, %arg10 : i8 - %2 = llvm.shl %1, %0 overflow : i8 - "llvm.return"(%2) : (i8) -> () -} -] -theorem and1_lshr1_is_cmp_eq_0_multiuse_proof : and1_lshr1_is_cmp_eq_0_multiuse_before ⊑ and1_lshr1_is_cmp_eq_0_multiuse_after := by - unfold and1_lshr1_is_cmp_eq_0_multiuse_before and1_lshr1_is_cmp_eq_0_multiuse_after - simp_alive_peephole - simp_alive_undef - simp_alive_ops - try simp - simp_alive_case_bash - try intros - try simp - ---BEGIN and1_lshr1_is_cmp_eq_0_multiuse - apply and1_lshr1_is_cmp_eq_0_multiuse_thm - ---END and1_lshr1_is_cmp_eq_0_multiuse - - - -def test11_before := [llvm| -{ -^0(%arg6 : i32, %arg7 : i32): - %0 = "llvm.mlir.constant"() <{value = 8 : i32}> : () -> i32 - %1 = "llvm.mlir.constant"() <{value = 128 : i32}> : () -> i32 - %2 = llvm.shl %arg6, %0 : i32 - %3 = llvm.add %2, %arg7 : i32 - %4 = llvm.and %3, %1 : i32 - %5 = llvm.mul %4, %2 : i32 - "llvm.return"(%5) : (i32) -> () -} -] -def test11_after := [llvm| -{ -^0(%arg6 : i32, %arg7 : i32): - %0 = "llvm.mlir.constant"() <{value = 8 : i32}> : () -> i32 - %1 = "llvm.mlir.constant"() <{value = 128 : i32}> : () -> i32 - %2 = llvm.shl %arg6, %0 : i32 - %3 = llvm.and %arg7, %1 : i32 - %4 = llvm.mul %3, %2 : i32 - "llvm.return"(%4) : (i32) -> () -} -] -theorem test11_proof : test11_before ⊑ test11_after := by - unfold test11_before test11_after - simp_alive_peephole - simp_alive_undef - simp_alive_ops - try simp - simp_alive_case_bash - try intros - try simp - ---BEGIN test11 - apply test11_thm - ---END test11 - - - -def test12_before := [llvm| -{ -^0(%arg4 : i32, %arg5 : i32): - %0 = "llvm.mlir.constant"() <{value = 8 : i32}> : () -> i32 - %1 = "llvm.mlir.constant"() <{value = 128 : i32}> : () -> i32 - %2 = llvm.shl %arg4, %0 : i32 - %3 = llvm.add %arg5, %2 : i32 - %4 = llvm.and %3, %1 : i32 - %5 = llvm.mul %4, %2 : i32 - "llvm.return"(%5) : (i32) -> () -} -] -def test12_after := [llvm| -{ -^0(%arg4 : i32, %arg5 : i32): - %0 = "llvm.mlir.constant"() <{value = 8 : i32}> : () -> i32 - %1 = "llvm.mlir.constant"() <{value = 128 : i32}> : () -> i32 - %2 = llvm.shl %arg4, %0 : i32 - %3 = llvm.and %arg5, %1 : i32 - %4 = llvm.mul %3, %2 : i32 - "llvm.return"(%4) : (i32) -> () -} -] -theorem test12_proof : test12_before ⊑ test12_after := by - unfold test12_before test12_after - simp_alive_peephole - simp_alive_undef - simp_alive_ops - try simp - simp_alive_case_bash - try intros - try simp - ---BEGIN test12 - apply test12_thm - ---END test12 - - - -def test13_before := [llvm| -{ -^0(%arg2 : i32, %arg3 : i32): - %0 = "llvm.mlir.constant"() <{value = 8 : i32}> : () -> i32 - %1 = "llvm.mlir.constant"() <{value = 128 : i32}> : () -> i32 - %2 = llvm.shl %arg2, %0 : i32 - %3 = llvm.sub %arg3, %2 : i32 - %4 = llvm.and %3, %1 : i32 - %5 = llvm.mul %4, %2 : i32 - "llvm.return"(%5) : (i32) -> () -} -] -def test13_after := [llvm| -{ -^0(%arg2 : i32, %arg3 : i32): - %0 = "llvm.mlir.constant"() <{value = 8 : i32}> : () -> i32 - %1 = "llvm.mlir.constant"() <{value = 128 : i32}> : () -> i32 - %2 = llvm.shl %arg2, %0 : i32 - %3 = llvm.and %arg3, %1 : i32 - %4 = llvm.mul %3, %2 : i32 - "llvm.return"(%4) : (i32) -> () -} -] -theorem test13_proof : test13_before ⊑ test13_after := by - unfold test13_before test13_after - simp_alive_peephole - simp_alive_undef - simp_alive_ops - try simp - simp_alive_case_bash - try intros - try simp - ---BEGIN test13 - apply test13_thm - ---END test13 - - - -def test14_before := [llvm| -{ -^0(%arg0 : i32, %arg1 : i32): - %0 = "llvm.mlir.constant"() <{value = 8 : i32}> : () -> i32 - %1 = "llvm.mlir.constant"() <{value = 128 : i32}> : () -> i32 - %2 = llvm.shl %arg0, %0 : i32 - %3 = llvm.sub %2, %arg1 : i32 - %4 = llvm.and %3, %1 : i32 - %5 = llvm.mul %4, %2 : i32 - "llvm.return"(%5) : (i32) -> () -} -] -def test14_after := [llvm| -{ -^0(%arg0 : i32, %arg1 : i32): - %0 = "llvm.mlir.constant"() <{value = 8 : i32}> : () -> i32 - %1 = "llvm.mlir.constant"() <{value = 0 : i32}> : () -> i32 - %2 = "llvm.mlir.constant"() <{value = 128 : i32}> : () -> i32 - %3 = llvm.shl %arg0, %0 : i32 - %4 = llvm.sub %1, %arg1 : i32 - %5 = llvm.and %4, %2 : i32 - %6 = llvm.mul %5, %3 : i32 - "llvm.return"(%6) : (i32) -> () -} -] -theorem test14_proof : test14_before ⊑ test14_after := by - unfold test14_before test14_after - simp_alive_peephole - simp_alive_undef - simp_alive_ops - try simp - simp_alive_case_bash - try intros - try simp - ---BEGIN test14 - apply test14_thm - ---END test14 - - diff --git a/SSA/Projects/InstCombine/tests/proofs/gand2_proof.lean b/SSA/Projects/InstCombine/tests/proofs/gand2_proof.lean deleted file mode 100644 index 2a76cf6e6..000000000 --- a/SSA/Projects/InstCombine/tests/proofs/gand2_proof.lean +++ /dev/null @@ -1,46 +0,0 @@ - -import SSA.Projects.InstCombine.TacticAuto -import SSA.Projects.InstCombine.LLVM.Semantics -open BitVec - -section gand2_proof -theorem test2_thm (x x_1 : BitVec 1) : x_1 &&& x &&& x_1 = x_1 &&& x := sorry - -theorem test3_thm (x x_1 : BitVec 32) : x_1 &&& (x &&& x_1) = x &&& x_1 := sorry - -theorem test9_thm (x : BitVec 64) : - ((if (-signExtend 65 x).msb = (-signExtend 65 x).getMsbD 1 then some (-x) else none).bind fun x' => - some (x' &&& 1#64)) ⊑ - some (x &&& 1#64) := sorry - -theorem test10_thm (x : BitVec 64) : - ((if (-signExtend 65 x).msb = (-signExtend 65 x).getMsbD 1 then some (-x) else none).bind fun a => - (if (-signExtend 65 x).msb = (-signExtend 65 x).getMsbD 1 then some (-x) else none).bind fun x => - some (a + (x &&& 1#64))) ⊑ - some (-(x &&& 18446744073709551614#64)) := sorry - -theorem and1_shl1_is_cmp_eq_0_multiuse_thm (x : BitVec 8) : - (Option.bind (if 8#8 ≤ x then none else some (1#8 <<< x.toNat)) fun a => - Option.bind (if 8#8 ≤ x then none else some (1#8 <<< x.toNat)) fun x => some (a + (x &&& 1#8))) ⊑ - (if 1#8 <<< x.toNat >>> x.toNat = 1#8 then none else if 8#8 ≤ x then none else some (1#8 <<< x.toNat)).bind fun a => - (if 1#8 <<< x.toNat >>> x.toNat = 1#8 then none else if 8#8 ≤ x then none else some (1#8 <<< x.toNat)).bind - fun x => if a + (x &&& 1#8) < a ∨ a + (x &&& 1#8) < x &&& 1#8 then none else some (a + (x &&& 1#8)) := sorry - -theorem and1_lshr1_is_cmp_eq_0_thm (x : BitVec 8) : - (Option.bind (if 8#8 ≤ x then none else some (1#8 >>> x.toNat)) fun x' => some (x' &&& 1#8)) ⊑ - if 8#8 ≤ x then none else some (1#8 >>> x.toNat) := sorry - -theorem and1_lshr1_is_cmp_eq_0_multiuse_thm (x : BitVec 8) : - (Option.bind (if 8#8 ≤ x then none else some (1#8 >>> x.toNat)) fun a => - Option.bind (if 8#8 ≤ x then none else some (1#8 >>> x.toNat)) fun x => some (a + (x &&& 1#8))) ⊑ - Option.bind (if 8#8 ≤ x then none else some (1#8 >>> x.toNat)) fun x' => - if (x' <<< 1).sshiftRight 1 = x' then none else if x' <<< 1 >>> 1 = x' then none else some (x' <<< 1) := sorry - -theorem test11_thm (x x_1 : BitVec 32) : (x_1 <<< 8 + x &&& 128#32) * x_1 <<< 8 = (x &&& 128#32) * x_1 <<< 8 := sorry - -theorem test12_thm (x x_1 : BitVec 32) : (x_1 + x <<< 8 &&& 128#32) * x <<< 8 = (x_1 &&& 128#32) * x <<< 8 := sorry - -theorem test13_thm (x x_1 : BitVec 32) : (x_1 - x <<< 8 &&& 128#32) * x <<< 8 = (x_1 &&& 128#32) * x <<< 8 := sorry - -theorem test14_thm (x x_1 : BitVec 32) : (x_1 <<< 8 - x &&& 128#32) * x_1 <<< 8 = (-x &&& 128#32) * x_1 <<< 8 := sorry - diff --git a/SSA/Projects/InstCombine/tests/proofs/gapinthdiv1.lean b/SSA/Projects/InstCombine/tests/proofs/gapinthdiv1.lean new file mode 100644 index 000000000..03f53c182 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/proofs/gapinthdiv1.lean @@ -0,0 +1,113 @@ +import SSA.Projects.InstCombine.tests.proofs.gapinthdiv1_proof +import SSA.Projects.InstCombine.LLVM.PrettyEDSL +import SSA.Projects.InstCombine.TacticAuto +import SSA.Projects.InstCombine.LLVM.Semantics +open LLVM +open BitVec + +open MLIR AST +open Ctxt (Var) + +set_option linter.deprecated false +set_option linter.unreachableTactic false +set_option linter.unusedTactic false +section gapinthdiv1_statements + +def test1_before := [llvm| +{ +^0(%arg3 : i33): + %0 = "llvm.mlir.constant"() <{value = 4096 : i33}> : () -> i33 + %1 = llvm.udiv %arg3, %0 : i33 + "llvm.return"(%1) : (i33) -> () +} +] +def test1_after := [llvm| +{ +^0(%arg3 : i33): + %0 = "llvm.mlir.constant"() <{value = 12 : i33}> : () -> i33 + %1 = llvm.lshr %arg3, %0 : i33 + "llvm.return"(%1) : (i33) -> () +} +] +theorem test1_proof : test1_before ⊑ test1_after := by + unfold test1_before test1_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN test1 + apply test1_thm + ---END test1 + + + +def test2_before := [llvm| +{ +^0(%arg2 : i49): + %0 = "llvm.mlir.constant"() <{value = 4096 : i49}> : () -> i49 + %1 = "llvm.mlir.constant"() <{value = 17 : i49}> : () -> i49 + %2 = llvm.shl %0, %1 : i49 + %3 = llvm.udiv %arg2, %2 : i49 + "llvm.return"(%3) : (i49) -> () +} +] +def test2_after := [llvm| +{ +^0(%arg2 : i49): + %0 = "llvm.mlir.constant"() <{value = 29 : i49}> : () -> i49 + %1 = llvm.lshr %arg2, %0 : i49 + "llvm.return"(%1) : (i49) -> () +} +] +theorem test2_proof : test2_before ⊑ test2_after := by + unfold test2_before test2_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN test2 + apply test2_thm + ---END test2 + + + +def test3_before := [llvm| +{ +^0(%arg0 : i59, %arg1 : i1): + %0 = "llvm.mlir.constant"() <{value = 1024 : i59}> : () -> i59 + %1 = "llvm.mlir.constant"() <{value = 4096 : i59}> : () -> i59 + %2 = "llvm.select"(%arg1, %0, %1) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i59, i59) -> i59 + %3 = llvm.udiv %arg0, %2 : i59 + "llvm.return"(%3) : (i59) -> () +} +] +def test3_after := [llvm| +{ +^0(%arg0 : i59, %arg1 : i1): + %0 = "llvm.mlir.constant"() <{value = 10 : i59}> : () -> i59 + %1 = "llvm.mlir.constant"() <{value = 12 : i59}> : () -> i59 + %2 = "llvm.select"(%arg1, %0, %1) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i59, i59) -> i59 + %3 = llvm.lshr %arg0, %2 : i59 + "llvm.return"(%3) : (i59) -> () +} +] +theorem test3_proof : test3_before ⊑ test3_after := by + unfold test3_before test3_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN test3 + apply test3_thm + ---END test3 + + diff --git a/SSA/Projects/InstCombine/tests/proofs/gapinthdiv1_proof.lean b/SSA/Projects/InstCombine/tests/proofs/gapinthdiv1_proof.lean new file mode 100644 index 000000000..28ecb8d0c --- /dev/null +++ b/SSA/Projects/InstCombine/tests/proofs/gapinthdiv1_proof.lean @@ -0,0 +1,24 @@ + +import SSA.Projects.InstCombine.TacticAuto +import SSA.Projects.InstCombine.LLVM.Semantics +open BitVec + +section gapinthdiv1_proof +theorem test1_thm (x : BitVec 33) : x / 4096#33 = x >>> 12 := sorry + +theorem test2_thm (x : BitVec 49) : x / 536870912#49 = x >>> 29 := sorry + +theorem test3_thm (x : BitVec 1) (x_1 : BitVec 59) : + (Option.bind + (match some x with + | none => none + | some { toFin := ⟨1, ⋯⟩ } => some 1024#59 + | some { toFin := ⟨0, ⋯⟩ } => some 4096#59) + fun y' => if y' = 0#59 then none else some (x_1 / y')) ⊑ + Option.bind + (match some x with + | none => none + | some { toFin := ⟨1, ⋯⟩ } => some 10#59 + | some { toFin := ⟨0, ⋯⟩ } => some 12#59) + fun y' => if 59#59 ≤ y' then none else some (x_1 >>> y'.toNat) := sorry + diff --git a/SSA/Projects/InstCombine/tests/proofs/gapinthdiv2.lean b/SSA/Projects/InstCombine/tests/proofs/gapinthdiv2.lean new file mode 100644 index 000000000..6e89bb362 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/proofs/gapinthdiv2.lean @@ -0,0 +1,113 @@ +import SSA.Projects.InstCombine.tests.proofs.gapinthdiv2_proof +import SSA.Projects.InstCombine.LLVM.PrettyEDSL +import SSA.Projects.InstCombine.TacticAuto +import SSA.Projects.InstCombine.LLVM.Semantics +open LLVM +open BitVec + +open MLIR AST +open Ctxt (Var) + +set_option linter.deprecated false +set_option linter.unreachableTactic false +set_option linter.unusedTactic false +section gapinthdiv2_statements + +def test1_before := [llvm| +{ +^0(%arg3 : i333): + %0 = "llvm.mlir.constant"() <{value = 70368744177664 : i333}> : () -> i333 + %1 = llvm.udiv %arg3, %0 : i333 + "llvm.return"(%1) : (i333) -> () +} +] +def test1_after := [llvm| +{ +^0(%arg3 : i333): + %0 = "llvm.mlir.constant"() <{value = 46 : i333}> : () -> i333 + %1 = llvm.lshr %arg3, %0 : i333 + "llvm.return"(%1) : (i333) -> () +} +] +theorem test1_proof : test1_before ⊑ test1_after := by + unfold test1_before test1_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN test1 + apply test1_thm + ---END test1 + + + +def test2_before := [llvm| +{ +^0(%arg2 : i499): + %0 = "llvm.mlir.constant"() <{value = 4096 : i499}> : () -> i499 + %1 = "llvm.mlir.constant"() <{value = 197 : i499}> : () -> i499 + %2 = llvm.shl %0, %1 : i499 + %3 = llvm.udiv %arg2, %2 : i499 + "llvm.return"(%3) : (i499) -> () +} +] +def test2_after := [llvm| +{ +^0(%arg2 : i499): + %0 = "llvm.mlir.constant"() <{value = 209 : i499}> : () -> i499 + %1 = llvm.lshr %arg2, %0 : i499 + "llvm.return"(%1) : (i499) -> () +} +] +theorem test2_proof : test2_before ⊑ test2_after := by + unfold test2_before test2_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN test2 + apply test2_thm + ---END test2 + + + +def test3_before := [llvm| +{ +^0(%arg0 : i599, %arg1 : i1): + %0 = "llvm.mlir.constant"() <{value = 70368744177664 : i599}> : () -> i599 + %1 = "llvm.mlir.constant"() <{value = 4096 : i599}> : () -> i599 + %2 = "llvm.select"(%arg1, %0, %1) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i599, i599) -> i599 + %3 = llvm.udiv %arg0, %2 : i599 + "llvm.return"(%3) : (i599) -> () +} +] +def test3_after := [llvm| +{ +^0(%arg0 : i599, %arg1 : i1): + %0 = "llvm.mlir.constant"() <{value = 46 : i599}> : () -> i599 + %1 = "llvm.mlir.constant"() <{value = 12 : i599}> : () -> i599 + %2 = "llvm.select"(%arg1, %0, %1) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i599, i599) -> i599 + %3 = llvm.lshr %arg0, %2 : i599 + "llvm.return"(%3) : (i599) -> () +} +] +theorem test3_proof : test3_before ⊑ test3_after := by + unfold test3_before test3_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN test3 + apply test3_thm + ---END test3 + + diff --git a/SSA/Projects/InstCombine/tests/proofs/gapinthdiv2_proof.lean b/SSA/Projects/InstCombine/tests/proofs/gapinthdiv2_proof.lean new file mode 100644 index 000000000..758e9c596 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/proofs/gapinthdiv2_proof.lean @@ -0,0 +1,28 @@ + +import SSA.Projects.InstCombine.TacticAuto +import SSA.Projects.InstCombine.LLVM.Semantics +open BitVec + +section gapinthdiv2_proof +theorem test1_thm (x : BitVec 333) : + some (x / 70368744177664#333) ⊑ if 333 % 2 ^ 333 ≤ 46 % 2 ^ 333 then none else some (x >>> (46 % 2 ^ 333)) := sorry + +theorem test2_thm (x : BitVec 499) : + (Option.bind (if 499 % 2 ^ 499 ≤ 197 % 2 ^ 499 then none else some (4096#499 <<< (197 % 2 ^ 499))) fun y' => + if y' = 0#499 then none else some (x / y')) ⊑ + if 499 % 2 ^ 499 ≤ 209 % 2 ^ 499 then none else some (x >>> (209 % 2 ^ 499)) := sorry + +theorem test3_thm (x : BitVec 1) (x_1 : BitVec 599) : + (Option.bind + (match some x with + | none => none + | some { toFin := ⟨1, ⋯⟩ } => some 70368744177664#599 + | some { toFin := ⟨0, ⋯⟩ } => some 4096#599) + fun y' => if y' = 0#599 then none else some (x_1 / y')) ⊑ + Option.bind + (match some x with + | none => none + | some { toFin := ⟨1, ⋯⟩ } => some 46#599 + | some { toFin := ⟨0, ⋯⟩ } => some 12#599) + fun y' => if 599#599 ≤ y' then none else some (x_1 >>> y'.toNat) := sorry + diff --git a/SSA/Projects/InstCombine/tests/proofs/gapinthrem1.lean b/SSA/Projects/InstCombine/tests/proofs/gapinthrem1.lean index bc05e5a25..352ded520 100644 --- a/SSA/Projects/InstCombine/tests/proofs/gapinthrem1.lean +++ b/SSA/Projects/InstCombine/tests/proofs/gapinthrem1.lean @@ -76,3 +76,38 @@ theorem test2_proof : test2_before ⊑ test2_after := by ---END test2 + +def test3_before := [llvm| +{ +^0(%arg0 : i59, %arg1 : i1): + %0 = "llvm.mlir.constant"() <{value = 70368744177664 : i59}> : () -> i59 + %1 = "llvm.mlir.constant"() <{value = 4096 : i59}> : () -> i59 + %2 = "llvm.select"(%arg1, %0, %1) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i59, i59) -> i59 + %3 = llvm.urem %arg0, %2 : i59 + "llvm.return"(%3) : (i59) -> () +} +] +def test3_after := [llvm| +{ +^0(%arg0 : i59, %arg1 : i1): + %0 = "llvm.mlir.constant"() <{value = 70368744177663 : i59}> : () -> i59 + %1 = "llvm.mlir.constant"() <{value = 4095 : i59}> : () -> i59 + %2 = "llvm.select"(%arg1, %0, %1) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i59, i59) -> i59 + %3 = llvm.and %arg0, %2 : i59 + "llvm.return"(%3) : (i59) -> () +} +] +theorem test3_proof : test3_before ⊑ test3_after := by + unfold test3_before test3_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN test3 + apply test3_thm + ---END test3 + + diff --git a/SSA/Projects/InstCombine/tests/proofs/gapinthrem1_proof.lean b/SSA/Projects/InstCombine/tests/proofs/gapinthrem1_proof.lean index a78d007f5..18d7cc4b0 100644 --- a/SSA/Projects/InstCombine/tests/proofs/gapinthrem1_proof.lean +++ b/SSA/Projects/InstCombine/tests/proofs/gapinthrem1_proof.lean @@ -8,3 +8,17 @@ theorem test1_thm (x : BitVec 33) : x % 4096#33 = x &&& 4095#33 := sorry theorem test2_thm (x : BitVec 49) : x % 8388608#49 = x &&& 8388607#49 := sorry +theorem test3_thm (x : BitVec 1) (x_1 : BitVec 59) : + (Option.bind + (match some x with + | none => none + | some { toFin := ⟨1, ⋯⟩ } => some 70368744177664#59 + | some { toFin := ⟨0, ⋯⟩ } => some 4096#59) + fun y' => if y' = 0#59 then none else some (x_1 % y')) ⊑ + Option.bind + (match some x with + | none => none + | some { toFin := ⟨1, ⋯⟩ } => some 70368744177663#59 + | some { toFin := ⟨0, ⋯⟩ } => some 4095#59) + fun y' => some (x_1 &&& y') := sorry + diff --git a/SSA/Projects/InstCombine/tests/proofs/gapinthrem2.lean b/SSA/Projects/InstCombine/tests/proofs/gapinthrem2.lean index a3fb177c0..b27989ab5 100644 --- a/SSA/Projects/InstCombine/tests/proofs/gapinthrem2.lean +++ b/SSA/Projects/InstCombine/tests/proofs/gapinthrem2.lean @@ -76,3 +76,38 @@ theorem test2_proof : test2_before ⊑ test2_after := by ---END test2 + +def test3_before := [llvm| +{ +^0(%arg0 : i599, %arg1 : i1): + %0 = "llvm.mlir.constant"() <{value = 70368744177664 : i599}> : () -> i599 + %1 = "llvm.mlir.constant"() <{value = 4096 : i599}> : () -> i599 + %2 = "llvm.select"(%arg1, %0, %1) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i599, i599) -> i599 + %3 = llvm.urem %arg0, %2 : i599 + "llvm.return"(%3) : (i599) -> () +} +] +def test3_after := [llvm| +{ +^0(%arg0 : i599, %arg1 : i1): + %0 = "llvm.mlir.constant"() <{value = 70368744177663 : i599}> : () -> i599 + %1 = "llvm.mlir.constant"() <{value = 4095 : i599}> : () -> i599 + %2 = "llvm.select"(%arg1, %0, %1) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i599, i599) -> i599 + %3 = llvm.and %arg0, %2 : i599 + "llvm.return"(%3) : (i599) -> () +} +] +theorem test3_proof : test3_before ⊑ test3_after := by + unfold test3_before test3_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN test3 + apply test3_thm + ---END test3 + + diff --git a/SSA/Projects/InstCombine/tests/proofs/gapinthrem2_proof.lean b/SSA/Projects/InstCombine/tests/proofs/gapinthrem2_proof.lean index 80ea80a7c..aab8d7e25 100644 --- a/SSA/Projects/InstCombine/tests/proofs/gapinthrem2_proof.lean +++ b/SSA/Projects/InstCombine/tests/proofs/gapinthrem2_proof.lean @@ -11,3 +11,17 @@ theorem test2_thm (x : BitVec 499) : if y' = 0#499 then none else some (x % y')) ⊑ some (x &&& 10633823966279326983230456482242756607#499) := sorry +theorem test3_thm (x : BitVec 1) (x_1 : BitVec 599) : + (Option.bind + (match some x with + | none => none + | some { toFin := ⟨1, ⋯⟩ } => some 70368744177664#599 + | some { toFin := ⟨0, ⋯⟩ } => some 4096#599) + fun y' => if y' = 0#599 then none else some (x_1 % y')) ⊑ + Option.bind + (match some x with + | none => none + | some { toFin := ⟨1, ⋯⟩ } => some 70368744177663#599 + | some { toFin := ⟨0, ⋯⟩ } => some 4095#599) + fun y' => some (x_1 &&& y') := sorry + diff --git a/SSA/Projects/InstCombine/tests/proofs/gapinthshift.lean b/SSA/Projects/InstCombine/tests/proofs/gapinthshift.lean index d9c29c537..ea796442d 100644 --- a/SSA/Projects/InstCombine/tests/proofs/gapinthshift.lean +++ b/SSA/Projects/InstCombine/tests/proofs/gapinthshift.lean @@ -425,6 +425,41 @@ theorem test14a_proof : test14a_before ⊑ test14a_after := by +def test15_before := [llvm| +{ +^0(%arg24 : i1): + %0 = "llvm.mlir.constant"() <{value = 3 : i45}> : () -> i45 + %1 = "llvm.mlir.constant"() <{value = 1 : i45}> : () -> i45 + %2 = "llvm.mlir.constant"() <{value = 2 : i45}> : () -> i45 + %3 = "llvm.select"(%arg24, %0, %1) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i45, i45) -> i45 + %4 = llvm.shl %3, %2 : i45 + "llvm.return"(%4) : (i45) -> () +} +] +def test15_after := [llvm| +{ +^0(%arg24 : i1): + %0 = "llvm.mlir.constant"() <{value = 12 : i45}> : () -> i45 + %1 = "llvm.mlir.constant"() <{value = 4 : i45}> : () -> i45 + %2 = "llvm.select"(%arg24, %0, %1) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i45, i45) -> i45 + "llvm.return"(%2) : (i45) -> () +} +] +theorem test15_proof : test15_before ⊑ test15_after := by + unfold test15_before test15_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN test15 + apply test15_thm + ---END test15 + + + def shl_lshr_eq_amt_multi_use_before := [llvm| { ^0(%arg7 : i44): diff --git a/SSA/Projects/InstCombine/tests/proofs/gapinthshift_proof.lean b/SSA/Projects/InstCombine/tests/proofs/gapinthshift_proof.lean index e90068fb6..df228d54f 100644 --- a/SSA/Projects/InstCombine/tests/proofs/gapinthshift_proof.lean +++ b/SSA/Projects/InstCombine/tests/proofs/gapinthshift_proof.lean @@ -22,6 +22,18 @@ theorem test14_thm (x : BitVec 35) : (x >>> 4 ||| 1234#35) <<< 4 = x &&& 3435971 theorem test14a_thm (x : BitVec 79) : (x <<< 4 &&& 1234#79) >>> 4 = x &&& 77#79 := sorry +theorem test15_thm (x : BitVec 1) : + (Option.bind + (match some x with + | none => none + | some { toFin := ⟨1, ⋯⟩ } => some 3#45 + | some { toFin := ⟨0, ⋯⟩ } => some 1#45) + fun x' => some (x' <<< 2)) ⊑ + match some x with + | none => none + | some { toFin := ⟨1, ⋯⟩ } => some 12#45 + | some { toFin := ⟨0, ⋯⟩ } => some 4#45 := sorry + theorem shl_lshr_eq_amt_multi_use_thm (x : BitVec 44) : x <<< 33 + x <<< 33 >>> 33 = x <<< 33 ||| x &&& 2047#44 := sorry theorem test25_thm (x x_1 : BitVec 37) : diff --git a/SSA/Projects/InstCombine/tests/proofs/gbinophselect.lean b/SSA/Projects/InstCombine/tests/proofs/gbinophselect.lean new file mode 100644 index 000000000..35fc84ce3 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/proofs/gbinophselect.lean @@ -0,0 +1,84 @@ +import SSA.Projects.InstCombine.tests.proofs.gbinophselect_proof +import SSA.Projects.InstCombine.LLVM.PrettyEDSL +import SSA.Projects.InstCombine.TacticAuto +import SSA.Projects.InstCombine.LLVM.Semantics +open LLVM +open BitVec + +open MLIR AST +open Ctxt (Var) + +set_option linter.deprecated false +set_option linter.unreachableTactic false +set_option linter.unusedTactic false +section gbinophselect_statements + +def mul_sel_op0_before := [llvm| +{ +^0(%arg14 : i1, %arg15 : i32): + %0 = "llvm.mlir.constant"() <{value = 42 : i32}> : () -> i32 + %1 = "llvm.mlir.constant"() <{value = 0 : i32}> : () -> i32 + %2 = llvm.udiv %0, %arg15 : i32 + %3 = "llvm.select"(%arg14, %1, %2) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i32, i32) -> i32 + %4 = llvm.mul %3, %arg15 : i32 + "llvm.return"(%4) : (i32) -> () +} +] +def mul_sel_op0_after := [llvm| +{ +^0(%arg14 : i1, %arg15 : i32): + %0 = "llvm.mlir.constant"() <{value = 0 : i32}> : () -> i32 + %1 = "llvm.mlir.constant"() <{value = 42 : i32}> : () -> i32 + %2 = "llvm.select"(%arg14, %0, %1) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i32, i32) -> i32 + "llvm.return"(%2) : (i32) -> () +} +] +theorem mul_sel_op0_proof : mul_sel_op0_before ⊑ mul_sel_op0_after := by + unfold mul_sel_op0_before mul_sel_op0_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN mul_sel_op0 + apply mul_sel_op0_thm + ---END mul_sel_op0 + + + +def ashr_sel_op1_before := [llvm| +{ +^0(%arg1 : i1): + %0 = "llvm.mlir.constant"() <{value = 2 : i32}> : () -> i32 + %1 = "llvm.mlir.constant"() <{value = 0 : i32}> : () -> i32 + %2 = "llvm.mlir.constant"() <{value = -2 : i32}> : () -> i32 + %3 = "llvm.select"(%arg1, %0, %1) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i32, i32) -> i32 + %4 = llvm.ashr %2, %3 : i32 + "llvm.return"(%4) : (i32) -> () +} +] +def ashr_sel_op1_after := [llvm| +{ +^0(%arg1 : i1): + %0 = "llvm.mlir.constant"() <{value = -1 : i32}> : () -> i32 + %1 = "llvm.mlir.constant"() <{value = -2 : i32}> : () -> i32 + %2 = "llvm.select"(%arg1, %0, %1) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i32, i32) -> i32 + "llvm.return"(%2) : (i32) -> () +} +] +theorem ashr_sel_op1_proof : ashr_sel_op1_before ⊑ ashr_sel_op1_after := by + unfold ashr_sel_op1_before ashr_sel_op1_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN ashr_sel_op1 + apply ashr_sel_op1_thm + ---END ashr_sel_op1 + + diff --git a/SSA/Projects/InstCombine/tests/proofs/gbinophselect_proof.lean b/SSA/Projects/InstCombine/tests/proofs/gbinophselect_proof.lean new file mode 100644 index 000000000..f8b83e242 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/proofs/gbinophselect_proof.lean @@ -0,0 +1,30 @@ + +import SSA.Projects.InstCombine.TacticAuto +import SSA.Projects.InstCombine.LLVM.Semantics +open BitVec + +section gbinophselect_proof +theorem mul_sel_op0_thm (x : BitVec 32) (x_1 : BitVec 1) : + (Option.bind + (match some x_1 with + | none => none + | some { toFin := ⟨1, ⋯⟩ } => some 0#32 + | some { toFin := ⟨0, ⋯⟩ } => if x = 0#32 then none else some (42#32 / x)) + fun a => some (a * x)) ⊑ + match some x_1 with + | none => none + | some { toFin := ⟨1, ⋯⟩ } => some 0#32 + | some { toFin := ⟨0, ⋯⟩ } => some 42#32 := sorry + +theorem ashr_sel_op1_thm (x : BitVec 1) : + (Option.bind + (match some x with + | none => none + | some { toFin := ⟨1, ⋯⟩ } => some 2#32 + | some { toFin := ⟨0, ⋯⟩ } => some 0#32) + fun y' => if 32#32 ≤ y' then none else some ((4294967294#32).sshiftRight y'.toNat)) ⊑ + match some x with + | none => none + | some { toFin := ⟨1, ⋯⟩ } => some 4294967295#32 + | some { toFin := ⟨0, ⋯⟩ } => some 4294967294#32 := sorry + diff --git a/SSA/Projects/InstCombine/tests/proofs/gdivhshift.lean b/SSA/Projects/InstCombine/tests/proofs/gdivhshift.lean index 4734c2a24..cb44cd7aa 100644 --- a/SSA/Projects/InstCombine/tests/proofs/gdivhshift.lean +++ b/SSA/Projects/InstCombine/tests/proofs/gdivhshift.lean @@ -13,6 +13,45 @@ set_option linter.unreachableTactic false set_option linter.unusedTactic false section gdivhshift_statements +def t5_before := [llvm| +{ +^0(%arg230 : i1, %arg231 : i1, %arg232 : i32): + %0 = "llvm.mlir.constant"() <{value = 1 : i32}> : () -> i32 + %1 = "llvm.mlir.constant"() <{value = 32 : i32}> : () -> i32 + %2 = "llvm.mlir.constant"() <{value = 64 : i32}> : () -> i32 + %3 = llvm.shl %0, %arg232 : i32 + %4 = "llvm.select"(%arg230, %1, %2) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i32, i32) -> i32 + %5 = "llvm.select"(%arg231, %4, %3) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i32, i32) -> i32 + %6 = llvm.udiv %arg232, %5 : i32 + "llvm.return"(%6) : (i32) -> () +} +] +def t5_after := [llvm| +{ +^0(%arg230 : i1, %arg231 : i1, %arg232 : i32): + %0 = "llvm.mlir.constant"() <{value = 5 : i32}> : () -> i32 + %1 = "llvm.mlir.constant"() <{value = 6 : i32}> : () -> i32 + %2 = "llvm.select"(%arg230, %0, %1) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i32, i32) -> i32 + %3 = "llvm.select"(%arg231, %2, %arg232) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i32, i32) -> i32 + %4 = llvm.lshr %arg232, %3 : i32 + "llvm.return"(%4) : (i32) -> () +} +] +theorem t5_proof : t5_before ⊑ t5_after := by + unfold t5_before t5_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN t5 + apply t5_thm + ---END t5 + + + def t7_before := [llvm| { ^0(%arg209 : i32): @@ -75,6 +114,68 @@ theorem t10_proof : t10_before ⊑ t10_after := by +def t12_before := [llvm| +{ +^0(%arg202 : i32): + %0 = "llvm.mlir.constant"() <{value = 2 : i32}> : () -> i32 + %1 = llvm.shl %arg202, %0 overflow : i32 + %2 = llvm.udiv %1, %arg202 : i32 + "llvm.return"(%2) : (i32) -> () +} +] +def t12_after := [llvm| +{ +^0(%arg202 : i32): + %0 = "llvm.mlir.constant"() <{value = 4 : i32}> : () -> i32 + "llvm.return"(%0) : (i32) -> () +} +] +theorem t12_proof : t12_before ⊑ t12_after := by + unfold t12_before t12_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN t12 + apply t12_thm + ---END t12 + + + +def t15_before := [llvm| +{ +^0(%arg198 : i32, %arg199 : i32): + %0 = llvm.shl %arg198, %arg199 overflow : i32 + %1 = llvm.udiv %0, %arg198 : i32 + "llvm.return"(%1) : (i32) -> () +} +] +def t15_after := [llvm| +{ +^0(%arg198 : i32, %arg199 : i32): + %0 = "llvm.mlir.constant"() <{value = 1 : i32}> : () -> i32 + %1 = llvm.shl %0, %arg199 overflow : i32 + "llvm.return"(%1) : (i32) -> () +} +] +theorem t15_proof : t15_before ⊑ t15_after := by + unfold t15_before t15_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN t15 + apply t15_thm + ---END t15 + + + def sdiv_mul_shl_nsw_before := [llvm| { ^0(%arg193 : i5, %arg194 : i5, %arg195 : i5): @@ -141,6 +242,198 @@ theorem sdiv_mul_shl_nsw_exact_commute1_proof : sdiv_mul_shl_nsw_exact_commute1_ +def udiv_mul_shl_nuw_before := [llvm| +{ +^0(%arg166 : i5, %arg167 : i5, %arg168 : i5): + %0 = llvm.mul %arg166, %arg167 overflow : i5 + %1 = llvm.shl %arg166, %arg168 overflow : i5 + %2 = llvm.udiv %0, %1 : i5 + "llvm.return"(%2) : (i5) -> () +} +] +def udiv_mul_shl_nuw_after := [llvm| +{ +^0(%arg166 : i5, %arg167 : i5, %arg168 : i5): + %0 = llvm.lshr %arg167, %arg168 : i5 + "llvm.return"(%0) : (i5) -> () +} +] +theorem udiv_mul_shl_nuw_proof : udiv_mul_shl_nuw_before ⊑ udiv_mul_shl_nuw_after := by + unfold udiv_mul_shl_nuw_before udiv_mul_shl_nuw_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN udiv_mul_shl_nuw + apply udiv_mul_shl_nuw_thm + ---END udiv_mul_shl_nuw + + + +def udiv_mul_shl_nuw_exact_commute1_before := [llvm| +{ +^0(%arg163 : i5, %arg164 : i5, %arg165 : i5): + %0 = llvm.mul %arg164, %arg163 overflow : i5 + %1 = llvm.shl %arg163, %arg165 overflow : i5 + %2 = llvm.udiv %0, %1 : i5 + "llvm.return"(%2) : (i5) -> () +} +] +def udiv_mul_shl_nuw_exact_commute1_after := [llvm| +{ +^0(%arg163 : i5, %arg164 : i5, %arg165 : i5): + %0 = llvm.lshr %arg164, %arg165 : i5 + "llvm.return"(%0) : (i5) -> () +} +] +theorem udiv_mul_shl_nuw_exact_commute1_proof : udiv_mul_shl_nuw_exact_commute1_before ⊑ udiv_mul_shl_nuw_exact_commute1_after := by + unfold udiv_mul_shl_nuw_exact_commute1_before udiv_mul_shl_nuw_exact_commute1_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN udiv_mul_shl_nuw_exact_commute1 + apply udiv_mul_shl_nuw_exact_commute1_thm + ---END udiv_mul_shl_nuw_exact_commute1 + + + +def udiv_shl_mul_nuw_before := [llvm| +{ +^0(%arg148 : i5, %arg149 : i5, %arg150 : i5): + %0 = llvm.shl %arg148, %arg150 overflow : i5 + %1 = llvm.mul %arg148, %arg149 overflow : i5 + %2 = llvm.udiv %0, %1 : i5 + "llvm.return"(%2) : (i5) -> () +} +] +def udiv_shl_mul_nuw_after := [llvm| +{ +^0(%arg148 : i5, %arg149 : i5, %arg150 : i5): + %0 = "llvm.mlir.constant"() <{value = 1 : i5}> : () -> i5 + %1 = llvm.shl %0, %arg150 overflow : i5 + %2 = llvm.udiv %1, %arg149 : i5 + "llvm.return"(%2) : (i5) -> () +} +] +theorem udiv_shl_mul_nuw_proof : udiv_shl_mul_nuw_before ⊑ udiv_shl_mul_nuw_after := by + unfold udiv_shl_mul_nuw_before udiv_shl_mul_nuw_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN udiv_shl_mul_nuw + apply udiv_shl_mul_nuw_thm + ---END udiv_shl_mul_nuw + + + +def udiv_shl_mul_nuw_swap_before := [llvm| +{ +^0(%arg145 : i5, %arg146 : i5, %arg147 : i5): + %0 = llvm.shl %arg145, %arg147 overflow : i5 + %1 = llvm.mul %arg146, %arg145 overflow : i5 + %2 = llvm.udiv %0, %1 : i5 + "llvm.return"(%2) : (i5) -> () +} +] +def udiv_shl_mul_nuw_swap_after := [llvm| +{ +^0(%arg145 : i5, %arg146 : i5, %arg147 : i5): + %0 = "llvm.mlir.constant"() <{value = 1 : i5}> : () -> i5 + %1 = llvm.shl %0, %arg147 overflow : i5 + %2 = llvm.udiv %1, %arg146 : i5 + "llvm.return"(%2) : (i5) -> () +} +] +theorem udiv_shl_mul_nuw_swap_proof : udiv_shl_mul_nuw_swap_before ⊑ udiv_shl_mul_nuw_swap_after := by + unfold udiv_shl_mul_nuw_swap_before udiv_shl_mul_nuw_swap_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN udiv_shl_mul_nuw_swap + apply udiv_shl_mul_nuw_swap_thm + ---END udiv_shl_mul_nuw_swap + + + +def udiv_shl_mul_nuw_exact_before := [llvm| +{ +^0(%arg142 : i5, %arg143 : i5, %arg144 : i5): + %0 = llvm.shl %arg142, %arg144 overflow : i5 + %1 = llvm.mul %arg142, %arg143 overflow : i5 + %2 = llvm.udiv %0, %1 : i5 + "llvm.return"(%2) : (i5) -> () +} +] +def udiv_shl_mul_nuw_exact_after := [llvm| +{ +^0(%arg142 : i5, %arg143 : i5, %arg144 : i5): + %0 = "llvm.mlir.constant"() <{value = 1 : i5}> : () -> i5 + %1 = llvm.shl %0, %arg144 overflow : i5 + %2 = llvm.udiv %1, %arg143 : i5 + "llvm.return"(%2) : (i5) -> () +} +] +theorem udiv_shl_mul_nuw_exact_proof : udiv_shl_mul_nuw_exact_before ⊑ udiv_shl_mul_nuw_exact_after := by + unfold udiv_shl_mul_nuw_exact_before udiv_shl_mul_nuw_exact_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN udiv_shl_mul_nuw_exact + apply udiv_shl_mul_nuw_exact_thm + ---END udiv_shl_mul_nuw_exact + + + +def udiv_lshr_mul_nuw_before := [llvm| +{ +^0(%arg106 : i8, %arg107 : i8, %arg108 : i8): + %0 = llvm.mul %arg106, %arg107 overflow : i8 + %1 = llvm.lshr %0, %arg108 : i8 + %2 = llvm.udiv %1, %arg106 : i8 + "llvm.return"(%2) : (i8) -> () +} +] +def udiv_lshr_mul_nuw_after := [llvm| +{ +^0(%arg106 : i8, %arg107 : i8, %arg108 : i8): + %0 = llvm.lshr %arg107, %arg108 : i8 + "llvm.return"(%0) : (i8) -> () +} +] +theorem udiv_lshr_mul_nuw_proof : udiv_lshr_mul_nuw_before ⊑ udiv_lshr_mul_nuw_after := by + unfold udiv_lshr_mul_nuw_before udiv_lshr_mul_nuw_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN udiv_lshr_mul_nuw + apply udiv_lshr_mul_nuw_thm + ---END udiv_lshr_mul_nuw + + + def sdiv_shl_shl_nsw2_nuw_before := [llvm| { ^0(%arg82 : i8, %arg83 : i8, %arg84 : i8): @@ -172,6 +465,37 @@ theorem sdiv_shl_shl_nsw2_nuw_proof : sdiv_shl_shl_nsw2_nuw_before ⊑ sdiv_shl_ +def udiv_shl_shl_nuw_nsw2_before := [llvm| +{ +^0(%arg55 : i8, %arg56 : i8, %arg57 : i8): + %0 = llvm.shl %arg55, %arg57 overflow : i8 + %1 = llvm.shl %arg56, %arg57 overflow : i8 + %2 = llvm.udiv %0, %1 : i8 + "llvm.return"(%2) : (i8) -> () +} +] +def udiv_shl_shl_nuw_nsw2_after := [llvm| +{ +^0(%arg55 : i8, %arg56 : i8, %arg57 : i8): + %0 = llvm.udiv %arg55, %arg56 : i8 + "llvm.return"(%0) : (i8) -> () +} +] +theorem udiv_shl_shl_nuw_nsw2_proof : udiv_shl_shl_nuw_nsw2_before ⊑ udiv_shl_shl_nuw_nsw2_after := by + unfold udiv_shl_shl_nuw_nsw2_before udiv_shl_shl_nuw_nsw2_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN udiv_shl_shl_nuw_nsw2 + apply udiv_shl_shl_nuw_nsw2_thm + ---END udiv_shl_shl_nuw_nsw2 + + + def sdiv_shl_pair_const_before := [llvm| { ^0(%arg47 : i32): @@ -205,6 +529,39 @@ theorem sdiv_shl_pair_const_proof : sdiv_shl_pair_const_before ⊑ sdiv_shl_pair +def udiv_shl_pair_const_before := [llvm| +{ +^0(%arg46 : i32): + %0 = "llvm.mlir.constant"() <{value = 2 : i32}> : () -> i32 + %1 = "llvm.mlir.constant"() <{value = 1 : i32}> : () -> i32 + %2 = llvm.shl %arg46, %0 overflow : i32 + %3 = llvm.shl %arg46, %1 overflow : i32 + %4 = llvm.udiv %2, %3 : i32 + "llvm.return"(%4) : (i32) -> () +} +] +def udiv_shl_pair_const_after := [llvm| +{ +^0(%arg46 : i32): + %0 = "llvm.mlir.constant"() <{value = 2 : i32}> : () -> i32 + "llvm.return"(%0) : (i32) -> () +} +] +theorem udiv_shl_pair_const_proof : udiv_shl_pair_const_before ⊑ udiv_shl_pair_const_after := by + unfold udiv_shl_pair_const_before udiv_shl_pair_const_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN udiv_shl_pair_const + apply udiv_shl_pair_const_thm + ---END udiv_shl_pair_const + + + def sdiv_shl_pair1_before := [llvm| { ^0(%arg43 : i32, %arg44 : i32, %arg45 : i32): @@ -303,3 +660,102 @@ theorem sdiv_shl_pair3_proof : sdiv_shl_pair3_before ⊑ sdiv_shl_pair3_after := ---END sdiv_shl_pair3 + +def udiv_shl_pair1_before := [llvm| +{ +^0(%arg30 : i32, %arg31 : i32, %arg32 : i32): + %0 = llvm.shl %arg30, %arg31 overflow : i32 + %1 = llvm.shl %arg30, %arg32 overflow : i32 + %2 = llvm.udiv %0, %1 : i32 + "llvm.return"(%2) : (i32) -> () +} +] +def udiv_shl_pair1_after := [llvm| +{ +^0(%arg30 : i32, %arg31 : i32, %arg32 : i32): + %0 = "llvm.mlir.constant"() <{value = 1 : i32}> : () -> i32 + %1 = llvm.shl %0, %arg31 overflow : i32 + %2 = llvm.lshr %1, %arg32 : i32 + "llvm.return"(%2) : (i32) -> () +} +] +theorem udiv_shl_pair1_proof : udiv_shl_pair1_before ⊑ udiv_shl_pair1_after := by + unfold udiv_shl_pair1_before udiv_shl_pair1_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN udiv_shl_pair1 + apply udiv_shl_pair1_thm + ---END udiv_shl_pair1 + + + +def udiv_shl_pair2_before := [llvm| +{ +^0(%arg27 : i32, %arg28 : i32, %arg29 : i32): + %0 = llvm.shl %arg27, %arg28 overflow : i32 + %1 = llvm.shl %arg27, %arg29 overflow : i32 + %2 = llvm.udiv %0, %1 : i32 + "llvm.return"(%2) : (i32) -> () +} +] +def udiv_shl_pair2_after := [llvm| +{ +^0(%arg27 : i32, %arg28 : i32, %arg29 : i32): + %0 = "llvm.mlir.constant"() <{value = 1 : i32}> : () -> i32 + %1 = llvm.shl %0, %arg28 overflow : i32 + %2 = llvm.lshr %1, %arg29 : i32 + "llvm.return"(%2) : (i32) -> () +} +] +theorem udiv_shl_pair2_proof : udiv_shl_pair2_before ⊑ udiv_shl_pair2_after := by + unfold udiv_shl_pair2_before udiv_shl_pair2_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN udiv_shl_pair2 + apply udiv_shl_pair2_thm + ---END udiv_shl_pair2 + + + +def udiv_shl_pair3_before := [llvm| +{ +^0(%arg24 : i32, %arg25 : i32, %arg26 : i32): + %0 = llvm.shl %arg24, %arg25 overflow : i32 + %1 = llvm.shl %arg24, %arg26 overflow : i32 + %2 = llvm.udiv %0, %1 : i32 + "llvm.return"(%2) : (i32) -> () +} +] +def udiv_shl_pair3_after := [llvm| +{ +^0(%arg24 : i32, %arg25 : i32, %arg26 : i32): + %0 = "llvm.mlir.constant"() <{value = 1 : i32}> : () -> i32 + %1 = llvm.shl %0, %arg25 overflow : i32 + %2 = llvm.lshr %1, %arg26 : i32 + "llvm.return"(%2) : (i32) -> () +} +] +theorem udiv_shl_pair3_proof : udiv_shl_pair3_before ⊑ udiv_shl_pair3_after := by + unfold udiv_shl_pair3_before udiv_shl_pair3_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN udiv_shl_pair3 + apply udiv_shl_pair3_thm + ---END udiv_shl_pair3 + + diff --git a/SSA/Projects/InstCombine/tests/proofs/gdivhshift_proof.lean b/SSA/Projects/InstCombine/tests/proofs/gdivhshift_proof.lean index c752ccbf8..4eb54bc14 100644 --- a/SSA/Projects/InstCombine/tests/proofs/gdivhshift_proof.lean +++ b/SSA/Projects/InstCombine/tests/proofs/gdivhshift_proof.lean @@ -4,6 +4,42 @@ import SSA.Projects.InstCombine.LLVM.Semantics open BitVec section gdivhshift_proof +theorem t5_thm (x : BitVec 1) (x_1 : BitVec 32) : + (Option.bind + (match some x with + | none => none + | some { toFin := ⟨1, ⋯⟩ } => none + | some { toFin := ⟨0, ⋯⟩ } => if 32#32 ≤ x_1 then none else some (1#32 <<< x_1.toNat)) + fun y' => if y' = 0#32 then none else some (x_1 / y')) ⊑ + Option.bind + (match some x with + | none => none + | some { toFin := ⟨1, ⋯⟩ } => none + | some { toFin := ⟨0, ⋯⟩ } => some x_1) + fun y' => if 32#32 ≤ y' then none else some (x_1 >>> y'.toNat) := sorry +info: ././././SSA/Projects/InstCombine/tests/LLVM/gdivhshift.lean:50:17: theorem t5_thm : + ∀ (x x_1 : BitVec 1) (x_2 : BitVec 32), + (Option.bind + (match some x_1 with + | none => none + | some { toFin := ⟨1, ⋯⟩ } => + match some x with + | none => none + | some { toFin := ⟨1, ⋯⟩ } => some 32#32 + | some { toFin := ⟨0, ⋯⟩ } => some 64#32 + | some { toFin := ⟨0, ⋯⟩ } => if 32#32 ≤ x_2 then none else some (1#32 <<< x_2.toNat)) + fun y' => if y' = 0#32 then none else some (x_2 / y')) ⊑ + Option.bind + (match some x_1 with + | none => none + | some { toFin := ⟨1, ⋯⟩ } => + match some x with + | none => none + | some { toFin := ⟨1, ⋯⟩ } => some 5#32 + | some { toFin := ⟨0, ⋯⟩ } => some 6#32 + | some { toFin := ⟨0, ⋯⟩ } => some x_2) + fun y' => if 32#32 ≤ y' then none else some (x_2 >>> y'.toNat) := sorry + theorem t7_thm (x : BitVec 32) : ((if (x <<< 2).sshiftRight 2 = x then none else some (x <<< 2)).bind fun a => if x = 0#32 ∨ a = intMin 32 ∧ x = 4294967295#32 then none else some (a.sdiv x)) ⊑ @@ -17,6 +53,15 @@ theorem t10_thm (x x_1 : BitVec 32) : else if 1#32 <<< x.toNat >>> x.toNat = 1#32 then none else if 32#32 ≤ x then none else some (1#32 <<< x.toNat) := sorry +theorem t12_thm (x : BitVec 32) : + ((if x <<< 2 >>> 2 = x then none else some (x <<< 2)).bind fun a => if x = 0#32 then none else some (a / x)) ⊑ + some 4#32 := sorry + +theorem t15_thm (x x_1 : BitVec 32) : + ((if x_1 <<< x.toNat >>> x.toNat = x_1 then none else if 32#32 ≤ x then none else some (x_1 <<< x.toNat)).bind + fun a => if x_1 = 0#32 then none else some (a / x_1)) ⊑ + if 1#32 <<< x.toNat >>> x.toNat = 1#32 then none else if 32#32 ≤ x then none else some (1#32 <<< x.toNat) := sorry + theorem sdiv_mul_shl_nsw_thm (x x_1 x_2 : BitVec 5) : ((if signExtend 10 x_2 * signExtend 10 x_1 < signExtend 10 (twoPow 5 4) ∨ @@ -43,6 +88,48 @@ theorem sdiv_mul_shl_nsw_exact_commute1_thm (x x_1 x_2 : BitVec 5) : (if 1#5 <<< x.toNat >>> x.toNat = 1#5 then none else if 5#5 ≤ x then none else some (1#5 <<< x.toNat)).bind fun y' => if y' = 0#5 ∨ x_2 = intMin 5 ∧ y' = 31#5 then none else some (x_2.sdiv y') := sorry +theorem udiv_mul_shl_nuw_thm (x x_1 x_2 : BitVec 5) : + ((if twoPow 10 4 <<< 1 ≤ setWidth 10 x_2 * setWidth 10 x_1 then none else some (x_2 * x_1)).bind fun a => + (if x_2 <<< x.toNat >>> x.toNat = x_2 then none else if 5#5 ≤ x then none else some (x_2 <<< x.toNat)).bind + fun y' => if y' = 0#5 then none else some (a / y')) ⊑ + if 5#5 ≤ x then none else some (x_1 >>> x.toNat) := sorry + +theorem udiv_mul_shl_nuw_exact_commute1_thm (x x_1 x_2 : BitVec 5) : + ((if twoPow 10 4 <<< 1 ≤ setWidth 10 x_2 * setWidth 10 x_1 then none else some (x_2 * x_1)).bind fun a => + (if x_1 <<< x.toNat >>> x.toNat = x_1 then none else if 5#5 ≤ x then none else some (x_1 <<< x.toNat)).bind + fun y' => if y' = 0#5 then none else some (a / y')) ⊑ + if 5#5 ≤ x then none else some (x_2 >>> x.toNat) := sorry + +theorem udiv_shl_mul_nuw_thm (x x_1 x_2 : BitVec 5) : + ((if x_2 <<< x_1.toNat >>> x_1.toNat = x_2 then none else if 5#5 ≤ x_1 then none else some (x_2 <<< x_1.toNat)).bind + fun a => + (if twoPow 10 4 <<< 1 ≤ setWidth 10 x_2 * setWidth 10 x then none else some (x_2 * x)).bind fun y' => + if y' = 0#5 then none else some (a / y')) ⊑ + (if 1#5 <<< x_1.toNat >>> x_1.toNat = 1#5 then none else if 5#5 ≤ x_1 then none else some (1#5 <<< x_1.toNat)).bind + fun a => if x = 0#5 then none else some (a / x) := sorry + +theorem udiv_shl_mul_nuw_swap_thm (x x_1 x_2 : BitVec 5) : + ((if x_2 <<< x_1.toNat >>> x_1.toNat = x_2 then none else if 5#5 ≤ x_1 then none else some (x_2 <<< x_1.toNat)).bind + fun a => + (if twoPow 10 4 <<< 1 ≤ setWidth 10 x * setWidth 10 x_2 then none else some (x * x_2)).bind fun y' => + if y' = 0#5 then none else some (a / y')) ⊑ + (if 1#5 <<< x_1.toNat >>> x_1.toNat = 1#5 then none else if 5#5 ≤ x_1 then none else some (1#5 <<< x_1.toNat)).bind + fun a => if x = 0#5 then none else some (a / x) := sorry + +theorem udiv_shl_mul_nuw_exact_thm (x x_1 x_2 : BitVec 5) : + ((if x_2 <<< x_1.toNat >>> x_1.toNat = x_2 then none else if 5#5 ≤ x_1 then none else some (x_2 <<< x_1.toNat)).bind + fun a => + (if twoPow 10 4 <<< 1 ≤ setWidth 10 x_2 * setWidth 10 x then none else some (x_2 * x)).bind fun y' => + if y' = 0#5 then none else some (a / y')) ⊑ + (if 1#5 <<< x_1.toNat >>> x_1.toNat = 1#5 then none else if 5#5 ≤ x_1 then none else some (1#5 <<< x_1.toNat)).bind + fun a => if x = 0#5 then none else some (a / x) := sorry + +theorem udiv_lshr_mul_nuw_thm (x x_1 x_2 : BitVec 8) : + ((if twoPow 16 7 <<< 1 ≤ setWidth 16 x_2 * setWidth 16 x_1 then none else some (x_2 * x_1)).bind fun a => + Option.bind (if 8#8 ≤ x then none else some (a >>> x.toNat)) fun a => + if x_2 = 0#8 then none else some (a / x_2)) ⊑ + if 8#8 ≤ x then none else some (x_1 >>> x.toNat) := sorry + theorem sdiv_shl_shl_nsw2_nuw_thm (x x_1 x_2 : BitVec 8) : ((if (x_2 <<< x_1.toNat).sshiftRight x_1.toNat = x_2 then none else if 8#8 ≤ x_1 then none else some (x_2 <<< x_1.toNat)).bind @@ -53,12 +140,28 @@ theorem sdiv_shl_shl_nsw2_nuw_thm (x x_1 x_2 : BitVec 8) : fun y' => if y' = 0#8 ∨ a = intMin 8 ∧ y' = 255#8 then none else some (a.sdiv y')) ⊑ if x = 0#8 ∨ x_2 = intMin 8 ∧ x = 255#8 then none else some (x_2.sdiv x) := sorry +theorem udiv_shl_shl_nuw_nsw2_thm (x x_1 x_2 : BitVec 8) : + ((if (x_2 <<< x_1.toNat).sshiftRight x_1.toNat = x_2 then none + else + if x_2 <<< x_1.toNat >>> x_1.toNat = x_2 then none + else if 8#8 ≤ x_1 then none else some (x_2 <<< x_1.toNat)).bind + fun a => + (if (x <<< x_1.toNat).sshiftRight x_1.toNat = x then none + else if 8#8 ≤ x_1 then none else some (x <<< x_1.toNat)).bind + fun y' => if y' = 0#8 then none else some (a / y')) ⊑ + if x = 0#8 then none else some (x_2 / x) := sorry + theorem sdiv_shl_pair_const_thm (x : BitVec 32) : ((if (x <<< 2).sshiftRight 2 = x then none else some (x <<< 2)).bind fun a => (if (x <<< 1).sshiftRight 1 = x then none else some (x <<< 1)).bind fun y' => if y' = 0#32 ∨ a = intMin 32 ∧ y' = 4294967295#32 then none else some (a.sdiv y')) ⊑ some 2#32 := sorry +theorem udiv_shl_pair_const_thm (x : BitVec 32) : + ((if x <<< 2 >>> 2 = x then none else some (x <<< 2)).bind fun a => + (if x <<< 1 >>> 1 = x then none else some (x <<< 1)).bind fun y' => if y' = 0#32 then none else some (a / y')) ⊑ + some 2#32 := sorry + theorem sdiv_shl_pair1_thm (x x_1 x_2 : BitVec 32) : ((if (x_2 <<< x_1.toNat).sshiftRight x_1.toNat = x_2 then none else if 32#32 ≤ x_1 then none else some (x_2 <<< x_1.toNat)).bind @@ -99,3 +202,37 @@ theorem sdiv_shl_pair3_thm (x x_1 x_2 : BitVec 32) : else if 32#32 ≤ x_1 then none else some (1#32 <<< x_1.toNat)).bind fun a => if 32#32 ≤ x then none else some (a >>> x.toNat) := sorry +theorem udiv_shl_pair1_thm (x x_1 x_2 : BitVec 32) : + ((if x_2 <<< x_1.toNat >>> x_1.toNat = x_2 then none else if 32#32 ≤ x_1 then none else some (x_2 <<< x_1.toNat)).bind + fun a => + (if x_2 <<< x.toNat >>> x.toNat = x_2 then none else if 32#32 ≤ x then none else some (x_2 <<< x.toNat)).bind + fun y' => if y' = 0#32 then none else some (a / y')) ⊑ + (if 1#32 <<< x_1.toNat >>> x_1.toNat = 1#32 then none + else if 32#32 ≤ x_1 then none else some (1#32 <<< x_1.toNat)).bind + fun a => if 32#32 ≤ x then none else some (a >>> x.toNat) := sorry + +theorem udiv_shl_pair2_thm (x x_1 x_2 : BitVec 32) : + ((if (x_2 <<< x_1.toNat).sshiftRight x_1.toNat = x_2 then none + else + if x_2 <<< x_1.toNat >>> x_1.toNat = x_2 then none + else if 32#32 ≤ x_1 then none else some (x_2 <<< x_1.toNat)).bind + fun a => + (if x_2 <<< x.toNat >>> x.toNat = x_2 then none else if 32#32 ≤ x then none else some (x_2 <<< x.toNat)).bind + fun y' => if y' = 0#32 then none else some (a / y')) ⊑ + (if (1#32 <<< x_1.toNat).sshiftRight x_1.toNat = 1#32 then none + else + if 1#32 <<< x_1.toNat >>> x_1.toNat = 1#32 then none + else if 32#32 ≤ x_1 then none else some (1#32 <<< x_1.toNat)).bind + fun a => if 32#32 ≤ x then none else some (a >>> x.toNat) := sorry + +theorem udiv_shl_pair3_thm (x x_1 x_2 : BitVec 32) : + ((if x_2 <<< x_1.toNat >>> x_1.toNat = x_2 then none else if 32#32 ≤ x_1 then none else some (x_2 <<< x_1.toNat)).bind + fun a => + (if (x_2 <<< x.toNat).sshiftRight x.toNat = x_2 then none + else + if x_2 <<< x.toNat >>> x.toNat = x_2 then none else if 32#32 ≤ x then none else some (x_2 <<< x.toNat)).bind + fun y' => if y' = 0#32 then none else some (a / y')) ⊑ + (if 1#32 <<< x_1.toNat >>> x_1.toNat = 1#32 then none + else if 32#32 ≤ x_1 then none else some (1#32 <<< x_1.toNat)).bind + fun a => if 32#32 ≤ x then none else some (a >>> x.toNat) := sorry + diff --git a/SSA/Projects/InstCombine/tests/proofs/gexact.lean b/SSA/Projects/InstCombine/tests/proofs/gexact.lean index f1bd406df..5b56df8eb 100644 --- a/SSA/Projects/InstCombine/tests/proofs/gexact.lean +++ b/SSA/Projects/InstCombine/tests/proofs/gexact.lean @@ -107,6 +107,99 @@ theorem sdiv6_proof : sdiv6_before ⊑ sdiv6_after := by +def udiv1_before := [llvm| +{ +^0(%arg32 : i32, %arg33 : i32): + %0 = llvm.udiv %arg32, %arg33 : i32 + %1 = llvm.mul %0, %arg33 : i32 + "llvm.return"(%1) : (i32) -> () +} +] +def udiv1_after := [llvm| +{ +^0(%arg32 : i32, %arg33 : i32): + "llvm.return"(%arg32) : (i32) -> () +} +] +theorem udiv1_proof : udiv1_before ⊑ udiv1_after := by + unfold udiv1_before udiv1_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN udiv1 + apply udiv1_thm + ---END udiv1 + + + +def udiv2_before := [llvm| +{ +^0(%arg30 : i32, %arg31 : i32): + %0 = "llvm.mlir.constant"() <{value = 1 : i32}> : () -> i32 + %1 = llvm.shl %0, %arg31 : i32 + %2 = llvm.udiv %arg30, %1 : i32 + "llvm.return"(%2) : (i32) -> () +} +] +def udiv2_after := [llvm| +{ +^0(%arg30 : i32, %arg31 : i32): + %0 = llvm.lshr %arg30, %arg31 : i32 + "llvm.return"(%0) : (i32) -> () +} +] +theorem udiv2_proof : udiv2_before ⊑ udiv2_after := by + unfold udiv2_before udiv2_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN udiv2 + apply udiv2_thm + ---END udiv2 + + + +def mul_of_udiv_before := [llvm| +{ +^0(%arg6 : i8): + %0 = "llvm.mlir.constant"() <{value = 12 : i8}> : () -> i8 + %1 = "llvm.mlir.constant"() <{value = 6 : i8}> : () -> i8 + %2 = llvm.udiv %arg6, %0 : i8 + %3 = llvm.mul %2, %1 : i8 + "llvm.return"(%3) : (i8) -> () +} +] +def mul_of_udiv_after := [llvm| +{ +^0(%arg6 : i8): + %0 = "llvm.mlir.constant"() <{value = 1 : i8}> : () -> i8 + %1 = llvm.lshr %arg6, %0 : i8 + "llvm.return"(%1) : (i8) -> () +} +] +theorem mul_of_udiv_proof : mul_of_udiv_before ⊑ mul_of_udiv_after := by + unfold mul_of_udiv_before mul_of_udiv_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN mul_of_udiv + apply mul_of_udiv_thm + ---END mul_of_udiv + + + def mul_of_sdiv_before := [llvm| { ^0(%arg5 : i8): @@ -142,6 +235,41 @@ theorem mul_of_sdiv_proof : mul_of_sdiv_before ⊑ mul_of_sdiv_after := by +def mul_of_udiv_fail_bad_remainder_before := [llvm| +{ +^0(%arg2 : i8): + %0 = "llvm.mlir.constant"() <{value = 11 : i8}> : () -> i8 + %1 = "llvm.mlir.constant"() <{value = 6 : i8}> : () -> i8 + %2 = llvm.udiv %arg2, %0 : i8 + %3 = llvm.mul %2, %1 : i8 + "llvm.return"(%3) : (i8) -> () +} +] +def mul_of_udiv_fail_bad_remainder_after := [llvm| +{ +^0(%arg2 : i8): + %0 = "llvm.mlir.constant"() <{value = 11 : i8}> : () -> i8 + %1 = "llvm.mlir.constant"() <{value = 6 : i8}> : () -> i8 + %2 = llvm.udiv %arg2, %0 : i8 + %3 = llvm.mul %2, %1 overflow : i8 + "llvm.return"(%3) : (i8) -> () +} +] +theorem mul_of_udiv_fail_bad_remainder_proof : mul_of_udiv_fail_bad_remainder_before ⊑ mul_of_udiv_fail_bad_remainder_after := by + unfold mul_of_udiv_fail_bad_remainder_before mul_of_udiv_fail_bad_remainder_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN mul_of_udiv_fail_bad_remainder + apply mul_of_udiv_fail_bad_remainder_thm + ---END mul_of_udiv_fail_bad_remainder + + + def mul_of_sdiv_fail_ub_before := [llvm| { ^0(%arg1 : i8): diff --git a/SSA/Projects/InstCombine/tests/proofs/gexact_proof.lean b/SSA/Projects/InstCombine/tests/proofs/gexact_proof.lean index 96c0ffc1f..38d0dc2af 100644 --- a/SSA/Projects/InstCombine/tests/proofs/gexact_proof.lean +++ b/SSA/Projects/InstCombine/tests/proofs/gexact_proof.lean @@ -10,10 +10,24 @@ theorem sdiv4_thm (x : BitVec 32) : x.sdiv 3#32 * 3#32 = x := sorry theorem sdiv6_thm (x : BitVec 32) : x.sdiv 3#32 * 4294967293#32 = -x := sorry +theorem udiv1_thm (x x_1 : BitVec 32) : + (Option.bind (if x = 0#32 then none else some (x_1 / x)) fun a => some (a * x)) ⊑ some x_1 := sorry + +theorem udiv2_thm (x x_1 : BitVec 32) : + (Option.bind (if 32#32 ≤ x then none else some (1#32 <<< x.toNat)) fun y' => + if y' = 0#32 then none else some (x_1 / y')) ⊑ + if 32#32 ≤ x then none else some (x_1 >>> x.toNat) := sorry + +theorem mul_of_udiv_thm (x : BitVec 8) : x / 12#8 * 6#8 = x >>> 1 := sorry + theorem mul_of_sdiv_thm (x : BitVec 8) : some (x.sdiv 12#8 * 250#8) ⊑ if (-signExtend 9 (x.sshiftRight 1)).msb = (-signExtend 9 (x.sshiftRight 1)).getMsbD 1 then some (-x.sshiftRight 1) else none := sorry +theorem mul_of_udiv_fail_bad_remainder_thm (x : BitVec 8) : + some (x / 11#8 * 6#8) ⊑ + if twoPow 16 7 <<< 1 ≤ setWidth 16 (x / 11#8) * 6#16 then none else some (x / 11#8 * 6#8) := sorry + theorem mul_of_sdiv_fail_ub_thm (x : BitVec 8) : x.sdiv 6#8 * 250#8 = -x := sorry diff --git a/SSA/Projects/InstCombine/tests/proofs/gfreehinversion.lean b/SSA/Projects/InstCombine/tests/proofs/gfreehinversion.lean deleted file mode 100644 index d6fbabbe2..000000000 --- a/SSA/Projects/InstCombine/tests/proofs/gfreehinversion.lean +++ /dev/null @@ -1,50 +0,0 @@ -import SSA.Projects.InstCombine.tests.proofs.gfreehinversion_proof -import SSA.Projects.InstCombine.LLVM.PrettyEDSL -import SSA.Projects.InstCombine.TacticAuto -import SSA.Projects.InstCombine.LLVM.Semantics -open LLVM -open BitVec - -open MLIR AST -open Ctxt (Var) - -set_option linter.deprecated false -set_option linter.unreachableTactic false -set_option linter.unusedTactic false -section gfreehinversion_statements - -def lshr_not_nneg2_before := [llvm| -{ -^0(%arg20 : i8): - %0 = "llvm.mlir.constant"() <{value = -1 : i8}> : () -> i8 - %1 = "llvm.mlir.constant"() <{value = 1 : i8}> : () -> i8 - %2 = llvm.xor %arg20, %0 : i8 - %3 = llvm.lshr %2, %1 : i8 - %4 = llvm.xor %3, %0 : i8 - "llvm.return"(%4) : (i8) -> () -} -] -def lshr_not_nneg2_after := [llvm| -{ -^0(%arg20 : i8): - %0 = "llvm.mlir.constant"() <{value = 1 : i8}> : () -> i8 - %1 = "llvm.mlir.constant"() <{value = -128 : i8}> : () -> i8 - %2 = llvm.lshr %arg20, %0 : i8 - %3 = llvm.or %2, %1 : i8 - "llvm.return"(%3) : (i8) -> () -} -] -theorem lshr_not_nneg2_proof : lshr_not_nneg2_before ⊑ lshr_not_nneg2_after := by - unfold lshr_not_nneg2_before lshr_not_nneg2_after - simp_alive_peephole - simp_alive_undef - simp_alive_ops - try simp - simp_alive_case_bash - try intros - try simp - ---BEGIN lshr_not_nneg2 - apply lshr_not_nneg2_thm - ---END lshr_not_nneg2 - - diff --git a/SSA/Projects/InstCombine/tests/proofs/gfreehinversion_proof.lean b/SSA/Projects/InstCombine/tests/proofs/gfreehinversion_proof.lean deleted file mode 100644 index e58425eb1..000000000 --- a/SSA/Projects/InstCombine/tests/proofs/gfreehinversion_proof.lean +++ /dev/null @@ -1,8 +0,0 @@ - -import SSA.Projects.InstCombine.TacticAuto -import SSA.Projects.InstCombine.LLVM.Semantics -open BitVec - -section gfreehinversion_proof -theorem lshr_not_nneg2_thm (x : BitVec 8) : (x ^^^ 255#8) >>> 1 ^^^ 255#8 = x >>> 1 ||| 128#8 := sorry - diff --git a/SSA/Projects/InstCombine/tests/proofs/gmulhpow2.lean b/SSA/Projects/InstCombine/tests/proofs/gmulhpow2.lean index 6deffa1f0..507e488e8 100644 --- a/SSA/Projects/InstCombine/tests/proofs/gmulhpow2.lean +++ b/SSA/Projects/InstCombine/tests/proofs/gmulhpow2.lean @@ -13,6 +13,148 @@ set_option linter.unreachableTactic false set_option linter.unusedTactic false section gmulhpow2_statements +def mul_selectp2_x_before := [llvm| +{ +^0(%arg22 : i8, %arg23 : i1): + %0 = "llvm.mlir.constant"() <{value = 2 : i8}> : () -> i8 + %1 = "llvm.mlir.constant"() <{value = 4 : i8}> : () -> i8 + %2 = "llvm.select"(%arg23, %0, %1) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i8, i8) -> i8 + %3 = llvm.mul %2, %arg22 : i8 + "llvm.return"(%3) : (i8) -> () +} +] +def mul_selectp2_x_after := [llvm| +{ +^0(%arg22 : i8, %arg23 : i1): + %0 = "llvm.mlir.constant"() <{value = 1 : i8}> : () -> i8 + %1 = "llvm.mlir.constant"() <{value = 2 : i8}> : () -> i8 + %2 = "llvm.select"(%arg23, %0, %1) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i8, i8) -> i8 + %3 = llvm.shl %arg22, %2 : i8 + "llvm.return"(%3) : (i8) -> () +} +] +theorem mul_selectp2_x_proof : mul_selectp2_x_before ⊑ mul_selectp2_x_after := by + unfold mul_selectp2_x_before mul_selectp2_x_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN mul_selectp2_x + apply mul_selectp2_x_thm + ---END mul_selectp2_x + + + +def mul_selectp2_x_propegate_nuw_before := [llvm| +{ +^0(%arg20 : i8, %arg21 : i1): + %0 = "llvm.mlir.constant"() <{value = 2 : i8}> : () -> i8 + %1 = "llvm.mlir.constant"() <{value = 4 : i8}> : () -> i8 + %2 = "llvm.select"(%arg21, %0, %1) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i8, i8) -> i8 + %3 = llvm.mul %2, %arg20 overflow : i8 + "llvm.return"(%3) : (i8) -> () +} +] +def mul_selectp2_x_propegate_nuw_after := [llvm| +{ +^0(%arg20 : i8, %arg21 : i1): + %0 = "llvm.mlir.constant"() <{value = 1 : i8}> : () -> i8 + %1 = "llvm.mlir.constant"() <{value = 2 : i8}> : () -> i8 + %2 = "llvm.select"(%arg21, %0, %1) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i8, i8) -> i8 + %3 = llvm.shl %arg20, %2 overflow : i8 + "llvm.return"(%3) : (i8) -> () +} +] +theorem mul_selectp2_x_propegate_nuw_proof : mul_selectp2_x_propegate_nuw_before ⊑ mul_selectp2_x_propegate_nuw_after := by + unfold mul_selectp2_x_propegate_nuw_before mul_selectp2_x_propegate_nuw_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN mul_selectp2_x_propegate_nuw + apply mul_selectp2_x_propegate_nuw_thm + ---END mul_selectp2_x_propegate_nuw + + + +def mul_selectp2_x_non_const_before := [llvm| +{ +^0(%arg15 : i8, %arg16 : i1, %arg17 : i8): + %0 = "llvm.mlir.constant"() <{value = 1 : i8}> : () -> i8 + %1 = "llvm.mlir.constant"() <{value = 2 : i8}> : () -> i8 + %2 = llvm.shl %0, %arg17 : i8 + %3 = "llvm.select"(%arg16, %1, %2) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i8, i8) -> i8 + %4 = llvm.mul %3, %arg15 : i8 + "llvm.return"(%4) : (i8) -> () +} +] +def mul_selectp2_x_non_const_after := [llvm| +{ +^0(%arg15 : i8, %arg16 : i1, %arg17 : i8): + %0 = "llvm.mlir.constant"() <{value = 1 : i8}> : () -> i8 + %1 = "llvm.select"(%arg16, %0, %arg17) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i8, i8) -> i8 + %2 = llvm.shl %arg15, %1 : i8 + "llvm.return"(%2) : (i8) -> () +} +] +theorem mul_selectp2_x_non_const_proof : mul_selectp2_x_non_const_before ⊑ mul_selectp2_x_non_const_after := by + unfold mul_selectp2_x_non_const_before mul_selectp2_x_non_const_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN mul_selectp2_x_non_const + apply mul_selectp2_x_non_const_thm + ---END mul_selectp2_x_non_const + + + +def mul_x_selectp2_before := [llvm| +{ +^0(%arg10 : i8, %arg11 : i1): + %0 = "llvm.mlir.constant"() <{value = 8 : i8}> : () -> i8 + %1 = "llvm.mlir.constant"() <{value = 1 : i8}> : () -> i8 + %2 = llvm.mul %arg10, %arg10 : i8 + %3 = "llvm.select"(%arg11, %0, %1) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i8, i8) -> i8 + %4 = llvm.mul %2, %3 : i8 + "llvm.return"(%4) : (i8) -> () +} +] +def mul_x_selectp2_after := [llvm| +{ +^0(%arg10 : i8, %arg11 : i1): + %0 = "llvm.mlir.constant"() <{value = 3 : i8}> : () -> i8 + %1 = "llvm.mlir.constant"() <{value = 0 : i8}> : () -> i8 + %2 = llvm.mul %arg10, %arg10 : i8 + %3 = "llvm.select"(%arg11, %0, %1) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i8, i8) -> i8 + %4 = llvm.shl %2, %3 : i8 + "llvm.return"(%4) : (i8) -> () +} +] +theorem mul_x_selectp2_proof : mul_x_selectp2_before ⊑ mul_x_selectp2_after := by + unfold mul_x_selectp2_before mul_x_selectp2_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN mul_x_selectp2 + apply mul_x_selectp2_thm + ---END mul_x_selectp2 + + + def shl_add_log_may_cause_poison_pr62175_with_nuw_before := [llvm| { ^0(%arg2 : i8, %arg3 : i8): diff --git a/SSA/Projects/InstCombine/tests/proofs/gmulhpow2_proof.lean b/SSA/Projects/InstCombine/tests/proofs/gmulhpow2_proof.lean index f2dc415cf..346ed854f 100644 --- a/SSA/Projects/InstCombine/tests/proofs/gmulhpow2_proof.lean +++ b/SSA/Projects/InstCombine/tests/proofs/gmulhpow2_proof.lean @@ -4,6 +4,82 @@ import SSA.Projects.InstCombine.LLVM.Semantics open BitVec section gmulhpow2_proof +theorem mul_selectp2_x_thm (x : BitVec 8) (x_1 : BitVec 1) : + (Option.bind + (match some x_1 with + | none => none + | some { toFin := ⟨1, ⋯⟩ } => some 2#8 + | some { toFin := ⟨0, ⋯⟩ } => some 4#8) + fun a => some (a * x)) ⊑ + Option.bind + (match some x_1 with + | none => none + | some { toFin := ⟨1, ⋯⟩ } => some 1#8 + | some { toFin := ⟨0, ⋯⟩ } => some 2#8) + fun y' => if 8#8 ≤ y' then none else some (x <<< y'.toNat) := sorry + +theorem mul_selectp2_x_propegate_nuw_thm (x : BitVec 8) (x_1 : BitVec 1) : + (Option.bind + (match some x_1 with + | none => none + | some { toFin := ⟨1, ⋯⟩ } => some 2#8 + | some { toFin := ⟨0, ⋯⟩ } => some 4#8) + fun a => + if + signExtend 16 a * signExtend 16 x < signExtend 16 (twoPow 8 7) ∨ + twoPow 16 7 ≤ signExtend 16 a * signExtend 16 x then + none + else if twoPow 16 7 <<< 1 ≤ setWidth 16 a * setWidth 16 x then none else some (a * x)) ⊑ + Option.bind + (match some x_1 with + | none => none + | some { toFin := ⟨1, ⋯⟩ } => some 1#8 + | some { toFin := ⟨0, ⋯⟩ } => some 2#8) + fun y' => + if x <<< y'.toNat >>> y'.toNat = x then none else if 8#8 ≤ y' then none else some (x <<< y'.toNat) := sorry + +theorem mul_selectp2_x_non_const_thm (x : BitVec 8) (x_1 : BitVec 1) : + (Option.bind + (match some x_1 with + | none => none + | some { toFin := ⟨1, ⋯⟩ } => some 2#8 + | some { toFin := ⟨0, ⋯⟩ } => none) + fun a => some (a * x)) ⊑ + Option.bind + (match some x_1 with + | none => none + | some { toFin := ⟨1, ⋯⟩ } => some 1#8 + | some { toFin := ⟨0, ⋯⟩ } => none) + fun y' => if 8#8 ≤ y' then none else some (x <<< y'.toNat) := sorry +info: ././././SSA/Projects/InstCombine/tests/LLVM/gmulhpow2.lean:116:17: theorem mul_selectp2_x_non_const_thm : + ∀ (x x_1 : BitVec 8) (x_2 : BitVec 1), + (Option.bind + (match some x_2 with + | none => none + | some { toFin := ⟨1, ⋯⟩ } => some 2#8 + | some { toFin := ⟨0, ⋯⟩ } => if 8#8 ≤ x_1 then none else some (1#8 <<< x_1.toNat)) + fun a => some (a * x)) ⊑ + Option.bind + (match some x_2 with + | none => none + | some { toFin := ⟨1, ⋯⟩ } => some 1#8 + | some { toFin := ⟨0, ⋯⟩ } => some x_1) + fun y' => if 8#8 ≤ y' then none else some (x <<< y'.toNat) := sorry + +theorem mul_x_selectp2_thm (x : BitVec 1) (x_1 : BitVec 8) : + (Option.bind + (match some x with + | none => none + | some { toFin := ⟨1, ⋯⟩ } => some 8#8 + | some { toFin := ⟨0, ⋯⟩ } => some 1#8) + fun y' => some (x_1 * x_1 * y')) ⊑ + Option.bind + (match some x with + | none => none + | some { toFin := ⟨1, ⋯⟩ } => some 3#8 + | some { toFin := ⟨0, ⋯⟩ } => some 0#8) + fun y' => if 8#8 ≤ y' then none else some ((x_1 * x_1) <<< y'.toNat) := sorry + theorem shl_add_log_may_cause_poison_pr62175_with_nuw_thm (x x_1 : BitVec 8) : ((if 4#8 <<< x.toNat >>> x.toNat = 4#8 then none else if 8#8 ≤ x then none else some (4#8 <<< x.toNat)).bind fun y' => some (x_1 * y')) ⊑ diff --git a/SSA/Projects/InstCombine/tests/proofs/gnot.lean b/SSA/Projects/InstCombine/tests/proofs/gnot.lean deleted file mode 100644 index 98933b8cf..000000000 --- a/SSA/Projects/InstCombine/tests/proofs/gnot.lean +++ /dev/null @@ -1,280 +0,0 @@ -import SSA.Projects.InstCombine.tests.proofs.gnot_proof -import SSA.Projects.InstCombine.LLVM.PrettyEDSL -import SSA.Projects.InstCombine.TacticAuto -import SSA.Projects.InstCombine.LLVM.Semantics -open LLVM -open BitVec - -open MLIR AST -open Ctxt (Var) - -set_option linter.deprecated false -set_option linter.unreachableTactic false -set_option linter.unusedTactic false -section gnot_statements - -def test1_before := [llvm| -{ -^0(%arg153 : i32): - %0 = "llvm.mlir.constant"() <{value = -1 : i32}> : () -> i32 - %1 = llvm.xor %arg153, %0 : i32 - %2 = llvm.xor %1, %0 : i32 - "llvm.return"(%2) : (i32) -> () -} -] -def test1_after := [llvm| -{ -^0(%arg153 : i32): - "llvm.return"(%arg153) : (i32) -> () -} -] -theorem test1_proof : test1_before ⊑ test1_after := by - unfold test1_before test1_after - simp_alive_peephole - simp_alive_undef - simp_alive_ops - try simp - simp_alive_case_bash - try intros - try simp - ---BEGIN test1 - apply test1_thm - ---END test1 - - - -def not_ashr_not_before := [llvm| -{ -^0(%arg139 : i32, %arg140 : i32): - %0 = "llvm.mlir.constant"() <{value = -1 : i32}> : () -> i32 - %1 = llvm.xor %arg139, %0 : i32 - %2 = llvm.ashr %1, %arg140 : i32 - %3 = llvm.xor %2, %0 : i32 - "llvm.return"(%3) : (i32) -> () -} -] -def not_ashr_not_after := [llvm| -{ -^0(%arg139 : i32, %arg140 : i32): - %0 = llvm.ashr %arg139, %arg140 : i32 - "llvm.return"(%0) : (i32) -> () -} -] -theorem not_ashr_not_proof : not_ashr_not_before ⊑ not_ashr_not_after := by - unfold not_ashr_not_before not_ashr_not_after - simp_alive_peephole - simp_alive_undef - simp_alive_ops - try simp - simp_alive_case_bash - try intros - try simp - ---BEGIN not_ashr_not - apply not_ashr_not_thm - ---END not_ashr_not - - - -def not_ashr_const_before := [llvm| -{ -^0(%arg138 : i8): - %0 = "llvm.mlir.constant"() <{value = -42 : i8}> : () -> i8 - %1 = "llvm.mlir.constant"() <{value = -1 : i8}> : () -> i8 - %2 = llvm.ashr %0, %arg138 : i8 - %3 = llvm.xor %2, %1 : i8 - "llvm.return"(%3) : (i8) -> () -} -] -def not_ashr_const_after := [llvm| -{ -^0(%arg138 : i8): - %0 = "llvm.mlir.constant"() <{value = 41 : i8}> : () -> i8 - %1 = llvm.lshr %0, %arg138 : i8 - "llvm.return"(%1) : (i8) -> () -} -] -theorem not_ashr_const_proof : not_ashr_const_before ⊑ not_ashr_const_after := by - unfold not_ashr_const_before not_ashr_const_after - simp_alive_peephole - simp_alive_undef - simp_alive_ops - try simp - simp_alive_case_bash - try intros - try simp - ---BEGIN not_ashr_const - apply not_ashr_const_thm - ---END not_ashr_const - - - -def not_lshr_const_before := [llvm| -{ -^0(%arg135 : i8): - %0 = "llvm.mlir.constant"() <{value = 42 : i8}> : () -> i8 - %1 = "llvm.mlir.constant"() <{value = -1 : i8}> : () -> i8 - %2 = llvm.lshr %0, %arg135 : i8 - %3 = llvm.xor %2, %1 : i8 - "llvm.return"(%3) : (i8) -> () -} -] -def not_lshr_const_after := [llvm| -{ -^0(%arg135 : i8): - %0 = "llvm.mlir.constant"() <{value = -43 : i8}> : () -> i8 - %1 = llvm.ashr %0, %arg135 : i8 - "llvm.return"(%1) : (i8) -> () -} -] -theorem not_lshr_const_proof : not_lshr_const_before ⊑ not_lshr_const_after := by - unfold not_lshr_const_before not_lshr_const_after - simp_alive_peephole - simp_alive_undef - simp_alive_ops - try simp - simp_alive_case_bash - try intros - try simp - ---BEGIN not_lshr_const - apply not_lshr_const_thm - ---END not_lshr_const - - - -def not_sub_before := [llvm| -{ -^0(%arg133 : i32): - %0 = "llvm.mlir.constant"() <{value = 123 : i32}> : () -> i32 - %1 = "llvm.mlir.constant"() <{value = -1 : i32}> : () -> i32 - %2 = llvm.sub %0, %arg133 : i32 - %3 = llvm.xor %2, %1 : i32 - "llvm.return"(%3) : (i32) -> () -} -] -def not_sub_after := [llvm| -{ -^0(%arg133 : i32): - %0 = "llvm.mlir.constant"() <{value = -124 : i32}> : () -> i32 - %1 = llvm.add %arg133, %0 : i32 - "llvm.return"(%1) : (i32) -> () -} -] -theorem not_sub_proof : not_sub_before ⊑ not_sub_after := by - unfold not_sub_before not_sub_after - simp_alive_peephole - simp_alive_undef - simp_alive_ops - try simp - simp_alive_case_bash - try intros - try simp - ---BEGIN not_sub - apply not_sub_thm - ---END not_sub - - - -def not_add_before := [llvm| -{ -^0(%arg124 : i32): - %0 = "llvm.mlir.constant"() <{value = 123 : i32}> : () -> i32 - %1 = "llvm.mlir.constant"() <{value = -1 : i32}> : () -> i32 - %2 = llvm.add %arg124, %0 : i32 - %3 = llvm.xor %2, %1 : i32 - "llvm.return"(%3) : (i32) -> () -} -] -def not_add_after := [llvm| -{ -^0(%arg124 : i32): - %0 = "llvm.mlir.constant"() <{value = -124 : i32}> : () -> i32 - %1 = llvm.sub %0, %arg124 : i32 - "llvm.return"(%1) : (i32) -> () -} -] -theorem not_add_proof : not_add_before ⊑ not_add_after := by - unfold not_add_before not_add_after - simp_alive_peephole - simp_alive_undef - simp_alive_ops - try simp - simp_alive_case_bash - try intros - try simp - ---BEGIN not_add - apply not_add_thm - ---END not_add - - - -def not_or_neg_before := [llvm| -{ -^0(%arg79 : i8, %arg80 : i8): - %0 = "llvm.mlir.constant"() <{value = 0 : i8}> : () -> i8 - %1 = "llvm.mlir.constant"() <{value = -1 : i8}> : () -> i8 - %2 = llvm.sub %0, %arg80 : i8 - %3 = llvm.or %2, %arg79 : i8 - %4 = llvm.xor %3, %1 : i8 - "llvm.return"(%4) : (i8) -> () -} -] -def not_or_neg_after := [llvm| -{ -^0(%arg79 : i8, %arg80 : i8): - %0 = "llvm.mlir.constant"() <{value = -1 : i8}> : () -> i8 - %1 = llvm.add %arg80, %0 : i8 - %2 = llvm.xor %arg79, %0 : i8 - %3 = llvm.and %1, %2 : i8 - "llvm.return"(%3) : (i8) -> () -} -] -theorem not_or_neg_proof : not_or_neg_before ⊑ not_or_neg_after := by - unfold not_or_neg_before not_or_neg_after - simp_alive_peephole - simp_alive_undef - simp_alive_ops - try simp - simp_alive_case_bash - try intros - try simp - ---BEGIN not_or_neg - apply not_or_neg_thm - ---END not_or_neg - - - -def test_invert_demorgan_and2_before := [llvm| -{ -^0(%arg7 : i64): - %0 = "llvm.mlir.constant"() <{value = 9223372036854775807 : i64}> : () -> i64 - %1 = "llvm.mlir.constant"() <{value = -1 : i64}> : () -> i64 - %2 = llvm.add %arg7, %0 : i64 - %3 = llvm.and %2, %0 : i64 - %4 = llvm.xor %3, %1 : i64 - "llvm.return"(%4) : (i64) -> () -} -] -def test_invert_demorgan_and2_after := [llvm| -{ -^0(%arg7 : i64): - %0 = "llvm.mlir.constant"() <{value = 0 : i64}> : () -> i64 - %1 = "llvm.mlir.constant"() <{value = -9223372036854775808 : i64}> : () -> i64 - %2 = llvm.sub %0, %arg7 : i64 - %3 = llvm.or %2, %1 : i64 - "llvm.return"(%3) : (i64) -> () -} -] -theorem test_invert_demorgan_and2_proof : test_invert_demorgan_and2_before ⊑ test_invert_demorgan_and2_after := by - unfold test_invert_demorgan_and2_before test_invert_demorgan_and2_after - simp_alive_peephole - simp_alive_undef - simp_alive_ops - try simp - simp_alive_case_bash - try intros - try simp - ---BEGIN test_invert_demorgan_and2 - apply test_invert_demorgan_and2_thm - ---END test_invert_demorgan_and2 - - diff --git a/SSA/Projects/InstCombine/tests/proofs/gnot_proof.lean b/SSA/Projects/InstCombine/tests/proofs/gnot_proof.lean deleted file mode 100644 index a72ca8276..000000000 --- a/SSA/Projects/InstCombine/tests/proofs/gnot_proof.lean +++ /dev/null @@ -1,31 +0,0 @@ - -import SSA.Projects.InstCombine.TacticAuto -import SSA.Projects.InstCombine.LLVM.Semantics -open BitVec - -section gnot_proof -theorem test1_thm (x : BitVec 32) : x ^^^ 4294967295#32 ^^^ 4294967295#32 = x := sorry - -theorem not_ashr_not_thm (x x_1 : BitVec 32) : - (Option.bind (if 32#32 ≤ x then none else some ((x_1 ^^^ 4294967295#32).sshiftRight x.toNat)) fun x' => - some (x' ^^^ 4294967295#32)) ⊑ - if 32#32 ≤ x then none else some (x_1.sshiftRight x.toNat) := sorry - -theorem not_ashr_const_thm (x : BitVec 8) : - (Option.bind (if 8#8 ≤ x then none else some ((214#8).sshiftRight x.toNat)) fun x' => some (x' ^^^ 255#8)) ⊑ - if 8#8 ≤ x then none else some (41#8 >>> x.toNat) := sorry - -theorem not_lshr_const_thm (x : BitVec 8) : - (Option.bind (if 8#8 ≤ x then none else some (42#8 >>> x.toNat)) fun x' => some (x' ^^^ 255#8)) ⊑ - if 8#8 ≤ x then none else some ((213#8).sshiftRight x.toNat) := sorry - -theorem not_sub_thm (x : BitVec 32) : 123#32 - x ^^^ 4294967295#32 = x + 4294967172#32 := sorry - -theorem not_add_thm (x : BitVec 32) : x + 123#32 ^^^ 4294967295#32 = 4294967172#32 - x := sorry - -theorem not_or_neg_thm (x x_1 : BitVec 8) : (-x_1 ||| x) ^^^ 255#8 = x_1 + 255#8 &&& (x ^^^ 255#8) := sorry - -theorem test_invert_demorgan_and2_thm (x : BitVec 64) : - x + 9223372036854775807#64 &&& 9223372036854775807#64 ^^^ 18446744073709551615#64 = - -x ||| 9223372036854775808#64 := sorry - diff --git a/SSA/Projects/InstCombine/tests/proofs/goperandhcomplexity.lean b/SSA/Projects/InstCombine/tests/proofs/goperandhcomplexity.lean new file mode 100644 index 000000000..0e110fb14 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/proofs/goperandhcomplexity.lean @@ -0,0 +1,88 @@ +import SSA.Projects.InstCombine.tests.proofs.goperandhcomplexity_proof +import SSA.Projects.InstCombine.LLVM.PrettyEDSL +import SSA.Projects.InstCombine.TacticAuto +import SSA.Projects.InstCombine.LLVM.Semantics +open LLVM +open BitVec + +open MLIR AST +open Ctxt (Var) + +set_option linter.deprecated false +set_option linter.unreachableTactic false +set_option linter.unusedTactic false +section goperandhcomplexity_statements + +def neg_before := [llvm| +{ +^0(%arg10 : i8): + %0 = "llvm.mlir.constant"() <{value = 42 : i8}> : () -> i8 + %1 = "llvm.mlir.constant"() <{value = 0 : i8}> : () -> i8 + %2 = llvm.udiv %arg10, %0 : i8 + %3 = llvm.sub %1, %arg10 : i8 + %4 = llvm.xor %3, %2 : i8 + "llvm.return"(%4) : (i8) -> () +} +] +def neg_after := [llvm| +{ +^0(%arg10 : i8): + %0 = "llvm.mlir.constant"() <{value = 42 : i8}> : () -> i8 + %1 = "llvm.mlir.constant"() <{value = 0 : i8}> : () -> i8 + %2 = llvm.udiv %arg10, %0 : i8 + %3 = llvm.sub %1, %arg10 : i8 + %4 = llvm.xor %2, %3 : i8 + "llvm.return"(%4) : (i8) -> () +} +] +theorem neg_proof : neg_before ⊑ neg_after := by + unfold neg_before neg_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN neg + apply neg_thm + ---END neg + + + +def not_before := [llvm| +{ +^0(%arg7 : i8): + %0 = "llvm.mlir.constant"() <{value = 42 : i8}> : () -> i8 + %1 = "llvm.mlir.constant"() <{value = -1 : i8}> : () -> i8 + %2 = llvm.udiv %arg7, %0 : i8 + %3 = llvm.xor %1, %arg7 : i8 + %4 = llvm.mul %3, %2 : i8 + "llvm.return"(%4) : (i8) -> () +} +] +def not_after := [llvm| +{ +^0(%arg7 : i8): + %0 = "llvm.mlir.constant"() <{value = 42 : i8}> : () -> i8 + %1 = "llvm.mlir.constant"() <{value = -1 : i8}> : () -> i8 + %2 = llvm.udiv %arg7, %0 : i8 + %3 = llvm.xor %arg7, %1 : i8 + %4 = llvm.mul %2, %3 : i8 + "llvm.return"(%4) : (i8) -> () +} +] +theorem not_proof : not_before ⊑ not_after := by + unfold not_before not_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN not + apply not_thm + ---END not + + diff --git a/SSA/Projects/InstCombine/tests/proofs/goperandhcomplexity_proof.lean b/SSA/Projects/InstCombine/tests/proofs/goperandhcomplexity_proof.lean new file mode 100644 index 000000000..301935b77 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/proofs/goperandhcomplexity_proof.lean @@ -0,0 +1,10 @@ + +import SSA.Projects.InstCombine.TacticAuto +import SSA.Projects.InstCombine.LLVM.Semantics +open BitVec + +section goperandhcomplexity_proof +theorem neg_thm (x : BitVec 8) : -x ^^^ x / 42#8 = x / 42#8 ^^^ -x := sorry + +theorem not_thm (x : BitVec 8) : (255#8 ^^^ x) * (x / 42#8) = x / 42#8 * (x ^^^ 255#8) := sorry + diff --git a/SSA/Projects/InstCombine/tests/proofs/gpullhconditionalhbinophthroughhshift.lean b/SSA/Projects/InstCombine/tests/proofs/gpullhconditionalhbinophthroughhshift.lean new file mode 100644 index 000000000..7c66ddcd0 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/proofs/gpullhconditionalhbinophthroughhshift.lean @@ -0,0 +1,754 @@ +import SSA.Projects.InstCombine.tests.proofs.gpullhconditionalhbinophthroughhshift_proof +import SSA.Projects.InstCombine.LLVM.PrettyEDSL +import SSA.Projects.InstCombine.TacticAuto +import SSA.Projects.InstCombine.LLVM.Semantics +open LLVM +open BitVec + +open MLIR AST +open Ctxt (Var) + +set_option linter.deprecated false +set_option linter.unreachableTactic false +set_option linter.unusedTactic false +section gpullhconditionalhbinophthroughhshift_statements + +def and_signbit_select_shl_before := [llvm| +{ +^0(%arg46 : i32, %arg47 : i1): + %0 = "llvm.mlir.constant"() <{value = -65536 : i32}> : () -> i32 + %1 = "llvm.mlir.constant"() <{value = 8 : i32}> : () -> i32 + %2 = llvm.and %arg46, %0 : i32 + %3 = "llvm.select"(%arg47, %2, %arg46) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i32, i32) -> i32 + %4 = llvm.shl %3, %1 : i32 + "llvm.return"(%4) : (i32) -> () +} +] +def and_signbit_select_shl_after := [llvm| +{ +^0(%arg46 : i32, %arg47 : i1): + %0 = "llvm.mlir.constant"() <{value = 8 : i32}> : () -> i32 + %1 = "llvm.mlir.constant"() <{value = -16777216 : i32}> : () -> i32 + %2 = llvm.shl %arg46, %0 : i32 + %3 = llvm.and %2, %1 : i32 + %4 = "llvm.select"(%arg47, %3, %2) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i32, i32) -> i32 + "llvm.return"(%4) : (i32) -> () +} +] +theorem and_signbit_select_shl_proof : and_signbit_select_shl_before ⊑ and_signbit_select_shl_after := by + unfold and_signbit_select_shl_before and_signbit_select_shl_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN and_signbit_select_shl + apply and_signbit_select_shl_thm + ---END and_signbit_select_shl + + + +def and_nosignbit_select_shl_before := [llvm| +{ +^0(%arg44 : i32, %arg45 : i1): + %0 = "llvm.mlir.constant"() <{value = 2147418112 : i32}> : () -> i32 + %1 = "llvm.mlir.constant"() <{value = 8 : i32}> : () -> i32 + %2 = llvm.and %arg44, %0 : i32 + %3 = "llvm.select"(%arg45, %2, %arg44) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i32, i32) -> i32 + %4 = llvm.shl %3, %1 : i32 + "llvm.return"(%4) : (i32) -> () +} +] +def and_nosignbit_select_shl_after := [llvm| +{ +^0(%arg44 : i32, %arg45 : i1): + %0 = "llvm.mlir.constant"() <{value = 8 : i32}> : () -> i32 + %1 = "llvm.mlir.constant"() <{value = -16777216 : i32}> : () -> i32 + %2 = llvm.shl %arg44, %0 : i32 + %3 = llvm.and %2, %1 : i32 + %4 = "llvm.select"(%arg45, %3, %2) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i32, i32) -> i32 + "llvm.return"(%4) : (i32) -> () +} +] +theorem and_nosignbit_select_shl_proof : and_nosignbit_select_shl_before ⊑ and_nosignbit_select_shl_after := by + unfold and_nosignbit_select_shl_before and_nosignbit_select_shl_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN and_nosignbit_select_shl + apply and_nosignbit_select_shl_thm + ---END and_nosignbit_select_shl + + + +def or_signbit_select_shl_before := [llvm| +{ +^0(%arg42 : i32, %arg43 : i1): + %0 = "llvm.mlir.constant"() <{value = -65536 : i32}> : () -> i32 + %1 = "llvm.mlir.constant"() <{value = 8 : i32}> : () -> i32 + %2 = llvm.or %arg42, %0 : i32 + %3 = "llvm.select"(%arg43, %2, %arg42) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i32, i32) -> i32 + %4 = llvm.shl %3, %1 : i32 + "llvm.return"(%4) : (i32) -> () +} +] +def or_signbit_select_shl_after := [llvm| +{ +^0(%arg42 : i32, %arg43 : i1): + %0 = "llvm.mlir.constant"() <{value = 8 : i32}> : () -> i32 + %1 = "llvm.mlir.constant"() <{value = -16777216 : i32}> : () -> i32 + %2 = llvm.shl %arg42, %0 : i32 + %3 = llvm.or %2, %1 : i32 + %4 = "llvm.select"(%arg43, %3, %2) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i32, i32) -> i32 + "llvm.return"(%4) : (i32) -> () +} +] +theorem or_signbit_select_shl_proof : or_signbit_select_shl_before ⊑ or_signbit_select_shl_after := by + unfold or_signbit_select_shl_before or_signbit_select_shl_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN or_signbit_select_shl + apply or_signbit_select_shl_thm + ---END or_signbit_select_shl + + + +def or_nosignbit_select_shl_before := [llvm| +{ +^0(%arg40 : i32, %arg41 : i1): + %0 = "llvm.mlir.constant"() <{value = 2147418112 : i32}> : () -> i32 + %1 = "llvm.mlir.constant"() <{value = 8 : i32}> : () -> i32 + %2 = llvm.or %arg40, %0 : i32 + %3 = "llvm.select"(%arg41, %2, %arg40) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i32, i32) -> i32 + %4 = llvm.shl %3, %1 : i32 + "llvm.return"(%4) : (i32) -> () +} +] +def or_nosignbit_select_shl_after := [llvm| +{ +^0(%arg40 : i32, %arg41 : i1): + %0 = "llvm.mlir.constant"() <{value = 8 : i32}> : () -> i32 + %1 = "llvm.mlir.constant"() <{value = -16777216 : i32}> : () -> i32 + %2 = llvm.shl %arg40, %0 : i32 + %3 = llvm.or %2, %1 : i32 + %4 = "llvm.select"(%arg41, %3, %2) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i32, i32) -> i32 + "llvm.return"(%4) : (i32) -> () +} +] +theorem or_nosignbit_select_shl_proof : or_nosignbit_select_shl_before ⊑ or_nosignbit_select_shl_after := by + unfold or_nosignbit_select_shl_before or_nosignbit_select_shl_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN or_nosignbit_select_shl + apply or_nosignbit_select_shl_thm + ---END or_nosignbit_select_shl + + + +def xor_signbit_select_shl_before := [llvm| +{ +^0(%arg38 : i32, %arg39 : i1): + %0 = "llvm.mlir.constant"() <{value = -65536 : i32}> : () -> i32 + %1 = "llvm.mlir.constant"() <{value = 8 : i32}> : () -> i32 + %2 = llvm.xor %arg38, %0 : i32 + %3 = "llvm.select"(%arg39, %2, %arg38) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i32, i32) -> i32 + %4 = llvm.shl %3, %1 : i32 + "llvm.return"(%4) : (i32) -> () +} +] +def xor_signbit_select_shl_after := [llvm| +{ +^0(%arg38 : i32, %arg39 : i1): + %0 = "llvm.mlir.constant"() <{value = 8 : i32}> : () -> i32 + %1 = "llvm.mlir.constant"() <{value = -16777216 : i32}> : () -> i32 + %2 = llvm.shl %arg38, %0 : i32 + %3 = llvm.xor %2, %1 : i32 + %4 = "llvm.select"(%arg39, %3, %2) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i32, i32) -> i32 + "llvm.return"(%4) : (i32) -> () +} +] +theorem xor_signbit_select_shl_proof : xor_signbit_select_shl_before ⊑ xor_signbit_select_shl_after := by + unfold xor_signbit_select_shl_before xor_signbit_select_shl_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN xor_signbit_select_shl + apply xor_signbit_select_shl_thm + ---END xor_signbit_select_shl + + + +def xor_nosignbit_select_shl_before := [llvm| +{ +^0(%arg36 : i32, %arg37 : i1): + %0 = "llvm.mlir.constant"() <{value = 2147418112 : i32}> : () -> i32 + %1 = "llvm.mlir.constant"() <{value = 8 : i32}> : () -> i32 + %2 = llvm.xor %arg36, %0 : i32 + %3 = "llvm.select"(%arg37, %2, %arg36) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i32, i32) -> i32 + %4 = llvm.shl %3, %1 : i32 + "llvm.return"(%4) : (i32) -> () +} +] +def xor_nosignbit_select_shl_after := [llvm| +{ +^0(%arg36 : i32, %arg37 : i1): + %0 = "llvm.mlir.constant"() <{value = 8 : i32}> : () -> i32 + %1 = "llvm.mlir.constant"() <{value = -16777216 : i32}> : () -> i32 + %2 = llvm.shl %arg36, %0 : i32 + %3 = llvm.xor %2, %1 : i32 + %4 = "llvm.select"(%arg37, %3, %2) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i32, i32) -> i32 + "llvm.return"(%4) : (i32) -> () +} +] +theorem xor_nosignbit_select_shl_proof : xor_nosignbit_select_shl_before ⊑ xor_nosignbit_select_shl_after := by + unfold xor_nosignbit_select_shl_before xor_nosignbit_select_shl_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN xor_nosignbit_select_shl + apply xor_nosignbit_select_shl_thm + ---END xor_nosignbit_select_shl + + + +def add_signbit_select_shl_before := [llvm| +{ +^0(%arg34 : i32, %arg35 : i1): + %0 = "llvm.mlir.constant"() <{value = -65536 : i32}> : () -> i32 + %1 = "llvm.mlir.constant"() <{value = 8 : i32}> : () -> i32 + %2 = llvm.add %arg34, %0 : i32 + %3 = "llvm.select"(%arg35, %2, %arg34) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i32, i32) -> i32 + %4 = llvm.shl %3, %1 : i32 + "llvm.return"(%4) : (i32) -> () +} +] +def add_signbit_select_shl_after := [llvm| +{ +^0(%arg34 : i32, %arg35 : i1): + %0 = "llvm.mlir.constant"() <{value = 8 : i32}> : () -> i32 + %1 = "llvm.mlir.constant"() <{value = -16777216 : i32}> : () -> i32 + %2 = llvm.shl %arg34, %0 : i32 + %3 = llvm.add %2, %1 : i32 + %4 = "llvm.select"(%arg35, %3, %2) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i32, i32) -> i32 + "llvm.return"(%4) : (i32) -> () +} +] +theorem add_signbit_select_shl_proof : add_signbit_select_shl_before ⊑ add_signbit_select_shl_after := by + unfold add_signbit_select_shl_before add_signbit_select_shl_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN add_signbit_select_shl + apply add_signbit_select_shl_thm + ---END add_signbit_select_shl + + + +def add_nosignbit_select_shl_before := [llvm| +{ +^0(%arg32 : i32, %arg33 : i1): + %0 = "llvm.mlir.constant"() <{value = 2147418112 : i32}> : () -> i32 + %1 = "llvm.mlir.constant"() <{value = 8 : i32}> : () -> i32 + %2 = llvm.add %arg32, %0 : i32 + %3 = "llvm.select"(%arg33, %2, %arg32) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i32, i32) -> i32 + %4 = llvm.shl %3, %1 : i32 + "llvm.return"(%4) : (i32) -> () +} +] +def add_nosignbit_select_shl_after := [llvm| +{ +^0(%arg32 : i32, %arg33 : i1): + %0 = "llvm.mlir.constant"() <{value = 8 : i32}> : () -> i32 + %1 = "llvm.mlir.constant"() <{value = -16777216 : i32}> : () -> i32 + %2 = llvm.shl %arg32, %0 : i32 + %3 = llvm.add %2, %1 : i32 + %4 = "llvm.select"(%arg33, %3, %2) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i32, i32) -> i32 + "llvm.return"(%4) : (i32) -> () +} +] +theorem add_nosignbit_select_shl_proof : add_nosignbit_select_shl_before ⊑ add_nosignbit_select_shl_after := by + unfold add_nosignbit_select_shl_before add_nosignbit_select_shl_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN add_nosignbit_select_shl + apply add_nosignbit_select_shl_thm + ---END add_nosignbit_select_shl + + + +def and_signbit_select_lshr_before := [llvm| +{ +^0(%arg30 : i32, %arg31 : i1): + %0 = "llvm.mlir.constant"() <{value = -65536 : i32}> : () -> i32 + %1 = "llvm.mlir.constant"() <{value = 8 : i32}> : () -> i32 + %2 = llvm.and %arg30, %0 : i32 + %3 = "llvm.select"(%arg31, %2, %arg30) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i32, i32) -> i32 + %4 = llvm.lshr %3, %1 : i32 + "llvm.return"(%4) : (i32) -> () +} +] +def and_signbit_select_lshr_after := [llvm| +{ +^0(%arg30 : i32, %arg31 : i1): + %0 = "llvm.mlir.constant"() <{value = 8 : i32}> : () -> i32 + %1 = "llvm.mlir.constant"() <{value = 16776960 : i32}> : () -> i32 + %2 = llvm.lshr %arg30, %0 : i32 + %3 = llvm.and %2, %1 : i32 + %4 = "llvm.select"(%arg31, %3, %2) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i32, i32) -> i32 + "llvm.return"(%4) : (i32) -> () +} +] +theorem and_signbit_select_lshr_proof : and_signbit_select_lshr_before ⊑ and_signbit_select_lshr_after := by + unfold and_signbit_select_lshr_before and_signbit_select_lshr_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN and_signbit_select_lshr + apply and_signbit_select_lshr_thm + ---END and_signbit_select_lshr + + + +def and_nosignbit_select_lshr_before := [llvm| +{ +^0(%arg28 : i32, %arg29 : i1): + %0 = "llvm.mlir.constant"() <{value = 2147418112 : i32}> : () -> i32 + %1 = "llvm.mlir.constant"() <{value = 8 : i32}> : () -> i32 + %2 = llvm.and %arg28, %0 : i32 + %3 = "llvm.select"(%arg29, %2, %arg28) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i32, i32) -> i32 + %4 = llvm.lshr %3, %1 : i32 + "llvm.return"(%4) : (i32) -> () +} +] +def and_nosignbit_select_lshr_after := [llvm| +{ +^0(%arg28 : i32, %arg29 : i1): + %0 = "llvm.mlir.constant"() <{value = 8 : i32}> : () -> i32 + %1 = "llvm.mlir.constant"() <{value = 8388352 : i32}> : () -> i32 + %2 = llvm.lshr %arg28, %0 : i32 + %3 = llvm.and %2, %1 : i32 + %4 = "llvm.select"(%arg29, %3, %2) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i32, i32) -> i32 + "llvm.return"(%4) : (i32) -> () +} +] +theorem and_nosignbit_select_lshr_proof : and_nosignbit_select_lshr_before ⊑ and_nosignbit_select_lshr_after := by + unfold and_nosignbit_select_lshr_before and_nosignbit_select_lshr_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN and_nosignbit_select_lshr + apply and_nosignbit_select_lshr_thm + ---END and_nosignbit_select_lshr + + + +def or_signbit_select_lshr_before := [llvm| +{ +^0(%arg26 : i32, %arg27 : i1): + %0 = "llvm.mlir.constant"() <{value = -65536 : i32}> : () -> i32 + %1 = "llvm.mlir.constant"() <{value = 8 : i32}> : () -> i32 + %2 = llvm.or %arg26, %0 : i32 + %3 = "llvm.select"(%arg27, %2, %arg26) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i32, i32) -> i32 + %4 = llvm.lshr %3, %1 : i32 + "llvm.return"(%4) : (i32) -> () +} +] +def or_signbit_select_lshr_after := [llvm| +{ +^0(%arg26 : i32, %arg27 : i1): + %0 = "llvm.mlir.constant"() <{value = 8 : i32}> : () -> i32 + %1 = "llvm.mlir.constant"() <{value = 16776960 : i32}> : () -> i32 + %2 = llvm.lshr %arg26, %0 : i32 + %3 = llvm.or %2, %1 : i32 + %4 = "llvm.select"(%arg27, %3, %2) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i32, i32) -> i32 + "llvm.return"(%4) : (i32) -> () +} +] +theorem or_signbit_select_lshr_proof : or_signbit_select_lshr_before ⊑ or_signbit_select_lshr_after := by + unfold or_signbit_select_lshr_before or_signbit_select_lshr_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN or_signbit_select_lshr + apply or_signbit_select_lshr_thm + ---END or_signbit_select_lshr + + + +def or_nosignbit_select_lshr_before := [llvm| +{ +^0(%arg24 : i32, %arg25 : i1): + %0 = "llvm.mlir.constant"() <{value = 2147418112 : i32}> : () -> i32 + %1 = "llvm.mlir.constant"() <{value = 8 : i32}> : () -> i32 + %2 = llvm.or %arg24, %0 : i32 + %3 = "llvm.select"(%arg25, %2, %arg24) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i32, i32) -> i32 + %4 = llvm.lshr %3, %1 : i32 + "llvm.return"(%4) : (i32) -> () +} +] +def or_nosignbit_select_lshr_after := [llvm| +{ +^0(%arg24 : i32, %arg25 : i1): + %0 = "llvm.mlir.constant"() <{value = 8 : i32}> : () -> i32 + %1 = "llvm.mlir.constant"() <{value = 8388352 : i32}> : () -> i32 + %2 = llvm.lshr %arg24, %0 : i32 + %3 = llvm.or %2, %1 : i32 + %4 = "llvm.select"(%arg25, %3, %2) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i32, i32) -> i32 + "llvm.return"(%4) : (i32) -> () +} +] +theorem or_nosignbit_select_lshr_proof : or_nosignbit_select_lshr_before ⊑ or_nosignbit_select_lshr_after := by + unfold or_nosignbit_select_lshr_before or_nosignbit_select_lshr_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN or_nosignbit_select_lshr + apply or_nosignbit_select_lshr_thm + ---END or_nosignbit_select_lshr + + + +def xor_signbit_select_lshr_before := [llvm| +{ +^0(%arg22 : i32, %arg23 : i1): + %0 = "llvm.mlir.constant"() <{value = -65536 : i32}> : () -> i32 + %1 = "llvm.mlir.constant"() <{value = 8 : i32}> : () -> i32 + %2 = llvm.xor %arg22, %0 : i32 + %3 = "llvm.select"(%arg23, %2, %arg22) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i32, i32) -> i32 + %4 = llvm.lshr %3, %1 : i32 + "llvm.return"(%4) : (i32) -> () +} +] +def xor_signbit_select_lshr_after := [llvm| +{ +^0(%arg22 : i32, %arg23 : i1): + %0 = "llvm.mlir.constant"() <{value = 8 : i32}> : () -> i32 + %1 = "llvm.mlir.constant"() <{value = 16776960 : i32}> : () -> i32 + %2 = llvm.lshr %arg22, %0 : i32 + %3 = llvm.xor %2, %1 : i32 + %4 = "llvm.select"(%arg23, %3, %2) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i32, i32) -> i32 + "llvm.return"(%4) : (i32) -> () +} +] +theorem xor_signbit_select_lshr_proof : xor_signbit_select_lshr_before ⊑ xor_signbit_select_lshr_after := by + unfold xor_signbit_select_lshr_before xor_signbit_select_lshr_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN xor_signbit_select_lshr + apply xor_signbit_select_lshr_thm + ---END xor_signbit_select_lshr + + + +def xor_nosignbit_select_lshr_before := [llvm| +{ +^0(%arg20 : i32, %arg21 : i1): + %0 = "llvm.mlir.constant"() <{value = 2147418112 : i32}> : () -> i32 + %1 = "llvm.mlir.constant"() <{value = 8 : i32}> : () -> i32 + %2 = llvm.xor %arg20, %0 : i32 + %3 = "llvm.select"(%arg21, %2, %arg20) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i32, i32) -> i32 + %4 = llvm.lshr %3, %1 : i32 + "llvm.return"(%4) : (i32) -> () +} +] +def xor_nosignbit_select_lshr_after := [llvm| +{ +^0(%arg20 : i32, %arg21 : i1): + %0 = "llvm.mlir.constant"() <{value = 8 : i32}> : () -> i32 + %1 = "llvm.mlir.constant"() <{value = 8388352 : i32}> : () -> i32 + %2 = llvm.lshr %arg20, %0 : i32 + %3 = llvm.xor %2, %1 : i32 + %4 = "llvm.select"(%arg21, %3, %2) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i32, i32) -> i32 + "llvm.return"(%4) : (i32) -> () +} +] +theorem xor_nosignbit_select_lshr_proof : xor_nosignbit_select_lshr_before ⊑ xor_nosignbit_select_lshr_after := by + unfold xor_nosignbit_select_lshr_before xor_nosignbit_select_lshr_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN xor_nosignbit_select_lshr + apply xor_nosignbit_select_lshr_thm + ---END xor_nosignbit_select_lshr + + + +def and_signbit_select_ashr_before := [llvm| +{ +^0(%arg14 : i32, %arg15 : i1): + %0 = "llvm.mlir.constant"() <{value = -65536 : i32}> : () -> i32 + %1 = "llvm.mlir.constant"() <{value = 8 : i32}> : () -> i32 + %2 = llvm.and %arg14, %0 : i32 + %3 = "llvm.select"(%arg15, %2, %arg14) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i32, i32) -> i32 + %4 = llvm.ashr %3, %1 : i32 + "llvm.return"(%4) : (i32) -> () +} +] +def and_signbit_select_ashr_after := [llvm| +{ +^0(%arg14 : i32, %arg15 : i1): + %0 = "llvm.mlir.constant"() <{value = 8 : i32}> : () -> i32 + %1 = "llvm.mlir.constant"() <{value = -256 : i32}> : () -> i32 + %2 = llvm.ashr %arg14, %0 : i32 + %3 = llvm.and %2, %1 : i32 + %4 = "llvm.select"(%arg15, %3, %2) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i32, i32) -> i32 + "llvm.return"(%4) : (i32) -> () +} +] +theorem and_signbit_select_ashr_proof : and_signbit_select_ashr_before ⊑ and_signbit_select_ashr_after := by + unfold and_signbit_select_ashr_before and_signbit_select_ashr_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN and_signbit_select_ashr + apply and_signbit_select_ashr_thm + ---END and_signbit_select_ashr + + + +def and_nosignbit_select_ashr_before := [llvm| +{ +^0(%arg12 : i32, %arg13 : i1): + %0 = "llvm.mlir.constant"() <{value = 2147418112 : i32}> : () -> i32 + %1 = "llvm.mlir.constant"() <{value = 8 : i32}> : () -> i32 + %2 = llvm.and %arg12, %0 : i32 + %3 = "llvm.select"(%arg13, %2, %arg12) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i32, i32) -> i32 + %4 = llvm.ashr %3, %1 : i32 + "llvm.return"(%4) : (i32) -> () +} +] +def and_nosignbit_select_ashr_after := [llvm| +{ +^0(%arg12 : i32, %arg13 : i1): + %0 = "llvm.mlir.constant"() <{value = 8 : i32}> : () -> i32 + %1 = "llvm.mlir.constant"() <{value = 8388352 : i32}> : () -> i32 + %2 = llvm.ashr %arg12, %0 : i32 + %3 = llvm.and %2, %1 : i32 + %4 = "llvm.select"(%arg13, %3, %2) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i32, i32) -> i32 + "llvm.return"(%4) : (i32) -> () +} +] +theorem and_nosignbit_select_ashr_proof : and_nosignbit_select_ashr_before ⊑ and_nosignbit_select_ashr_after := by + unfold and_nosignbit_select_ashr_before and_nosignbit_select_ashr_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN and_nosignbit_select_ashr + apply and_nosignbit_select_ashr_thm + ---END and_nosignbit_select_ashr + + + +def or_signbit_select_ashr_before := [llvm| +{ +^0(%arg10 : i32, %arg11 : i1): + %0 = "llvm.mlir.constant"() <{value = -65536 : i32}> : () -> i32 + %1 = "llvm.mlir.constant"() <{value = 8 : i32}> : () -> i32 + %2 = llvm.or %arg10, %0 : i32 + %3 = "llvm.select"(%arg11, %2, %arg10) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i32, i32) -> i32 + %4 = llvm.ashr %3, %1 : i32 + "llvm.return"(%4) : (i32) -> () +} +] +def or_signbit_select_ashr_after := [llvm| +{ +^0(%arg10 : i32, %arg11 : i1): + %0 = "llvm.mlir.constant"() <{value = 8 : i32}> : () -> i32 + %1 = "llvm.mlir.constant"() <{value = -256 : i32}> : () -> i32 + %2 = llvm.ashr %arg10, %0 : i32 + %3 = llvm.or %2, %1 : i32 + %4 = "llvm.select"(%arg11, %3, %2) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i32, i32) -> i32 + "llvm.return"(%4) : (i32) -> () +} +] +theorem or_signbit_select_ashr_proof : or_signbit_select_ashr_before ⊑ or_signbit_select_ashr_after := by + unfold or_signbit_select_ashr_before or_signbit_select_ashr_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN or_signbit_select_ashr + apply or_signbit_select_ashr_thm + ---END or_signbit_select_ashr + + + +def or_nosignbit_select_ashr_before := [llvm| +{ +^0(%arg8 : i32, %arg9 : i1): + %0 = "llvm.mlir.constant"() <{value = 2147418112 : i32}> : () -> i32 + %1 = "llvm.mlir.constant"() <{value = 8 : i32}> : () -> i32 + %2 = llvm.or %arg8, %0 : i32 + %3 = "llvm.select"(%arg9, %2, %arg8) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i32, i32) -> i32 + %4 = llvm.ashr %3, %1 : i32 + "llvm.return"(%4) : (i32) -> () +} +] +def or_nosignbit_select_ashr_after := [llvm| +{ +^0(%arg8 : i32, %arg9 : i1): + %0 = "llvm.mlir.constant"() <{value = 8 : i32}> : () -> i32 + %1 = "llvm.mlir.constant"() <{value = 8388352 : i32}> : () -> i32 + %2 = llvm.ashr %arg8, %0 : i32 + %3 = llvm.or %2, %1 : i32 + %4 = "llvm.select"(%arg9, %3, %2) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i32, i32) -> i32 + "llvm.return"(%4) : (i32) -> () +} +] +theorem or_nosignbit_select_ashr_proof : or_nosignbit_select_ashr_before ⊑ or_nosignbit_select_ashr_after := by + unfold or_nosignbit_select_ashr_before or_nosignbit_select_ashr_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN or_nosignbit_select_ashr + apply or_nosignbit_select_ashr_thm + ---END or_nosignbit_select_ashr + + + +def xor_signbit_select_ashr_before := [llvm| +{ +^0(%arg6 : i32, %arg7 : i1): + %0 = "llvm.mlir.constant"() <{value = -65536 : i32}> : () -> i32 + %1 = "llvm.mlir.constant"() <{value = 8 : i32}> : () -> i32 + %2 = llvm.xor %arg6, %0 : i32 + %3 = "llvm.select"(%arg7, %2, %arg6) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i32, i32) -> i32 + %4 = llvm.ashr %3, %1 : i32 + "llvm.return"(%4) : (i32) -> () +} +] +def xor_signbit_select_ashr_after := [llvm| +{ +^0(%arg6 : i32, %arg7 : i1): + %0 = "llvm.mlir.constant"() <{value = 8 : i32}> : () -> i32 + %1 = "llvm.mlir.constant"() <{value = -256 : i32}> : () -> i32 + %2 = llvm.ashr %arg6, %0 : i32 + %3 = llvm.xor %2, %1 : i32 + %4 = "llvm.select"(%arg7, %3, %2) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i32, i32) -> i32 + "llvm.return"(%4) : (i32) -> () +} +] +theorem xor_signbit_select_ashr_proof : xor_signbit_select_ashr_before ⊑ xor_signbit_select_ashr_after := by + unfold xor_signbit_select_ashr_before xor_signbit_select_ashr_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN xor_signbit_select_ashr + apply xor_signbit_select_ashr_thm + ---END xor_signbit_select_ashr + + + +def xor_nosignbit_select_ashr_before := [llvm| +{ +^0(%arg4 : i32, %arg5 : i1): + %0 = "llvm.mlir.constant"() <{value = 2147418112 : i32}> : () -> i32 + %1 = "llvm.mlir.constant"() <{value = 8 : i32}> : () -> i32 + %2 = llvm.xor %arg4, %0 : i32 + %3 = "llvm.select"(%arg5, %2, %arg4) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i32, i32) -> i32 + %4 = llvm.ashr %3, %1 : i32 + "llvm.return"(%4) : (i32) -> () +} +] +def xor_nosignbit_select_ashr_after := [llvm| +{ +^0(%arg4 : i32, %arg5 : i1): + %0 = "llvm.mlir.constant"() <{value = 8 : i32}> : () -> i32 + %1 = "llvm.mlir.constant"() <{value = 8388352 : i32}> : () -> i32 + %2 = llvm.ashr %arg4, %0 : i32 + %3 = llvm.xor %2, %1 : i32 + %4 = "llvm.select"(%arg5, %3, %2) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i32, i32) -> i32 + "llvm.return"(%4) : (i32) -> () +} +] +theorem xor_nosignbit_select_ashr_proof : xor_nosignbit_select_ashr_before ⊑ xor_nosignbit_select_ashr_after := by + unfold xor_nosignbit_select_ashr_before xor_nosignbit_select_ashr_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN xor_nosignbit_select_ashr + apply xor_nosignbit_select_ashr_thm + ---END xor_nosignbit_select_ashr + + diff --git a/SSA/Projects/InstCombine/tests/proofs/gpullhconditionalhbinophthroughhshift_proof.lean b/SSA/Projects/InstCombine/tests/proofs/gpullhconditionalhbinophthroughhshift_proof.lean new file mode 100644 index 000000000..2828812f6 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/proofs/gpullhconditionalhbinophthroughhshift_proof.lean @@ -0,0 +1,486 @@ + +import SSA.Projects.InstCombine.TacticAuto +import SSA.Projects.InstCombine.LLVM.Semantics +open BitVec + +section gpullhconditionalhbinophthroughhshift_proof +theorem and_signbit_select_shl_thm (x : BitVec 1) : + (Option.bind + (match some x with + | none => none + | some { toFin := ⟨1, ⋯⟩ } => none + | some { toFin := ⟨0, ⋯⟩ } => none) + fun x' => some (x' <<< 8)) ⊑ + match some x with + | none => none + | some { toFin := ⟨1, ⋯⟩ } => none + | some { toFin := ⟨0, ⋯⟩ } => none := sorry +info: ././././SSA/Projects/InstCombine/tests/LLVM/gpullhconditionalhbinophthroughhshift.lean:48:17: theorem and_signbit_select_shl_thm : + ∀ (x : BitVec 32) (x_1 : BitVec 1), + (Option.bind + (match some x_1 with + | none => none + | some { toFin := ⟨1, ⋯⟩ } => some (x &&& 4294901760#32) + | some { toFin := ⟨0, ⋯⟩ } => some x) + fun x' => some (x' <<< 8)) ⊑ + match some x_1 with + | none => none + | some { toFin := ⟨1, ⋯⟩ } => some (x <<< 8 &&& 4278190080#32) + | some { toFin := ⟨0, ⋯⟩ } => some (x <<< 8) := sorry + +theorem and_nosignbit_select_shl_thm (x : BitVec 1) : + (Option.bind + (match some x with + | none => none + | some { toFin := ⟨1, ⋯⟩ } => none + | some { toFin := ⟨0, ⋯⟩ } => none) + fun x' => some (x' <<< 8)) ⊑ + match some x with + | none => none + | some { toFin := ⟨1, ⋯⟩ } => none + | some { toFin := ⟨0, ⋯⟩ } => none := sorry +info: ././././SSA/Projects/InstCombine/tests/LLVM/gpullhconditionalhbinophthroughhshift.lean:85:17: theorem and_nosignbit_select_shl_thm : + ∀ (x : BitVec 32) (x_1 : BitVec 1), + (Option.bind + (match some x_1 with + | none => none + | some { toFin := ⟨1, ⋯⟩ } => some (x &&& 2147418112#32) + | some { toFin := ⟨0, ⋯⟩ } => some x) + fun x' => some (x' <<< 8)) ⊑ + match some x_1 with + | none => none + | some { toFin := ⟨1, ⋯⟩ } => some (x <<< 8 &&& 4278190080#32) + | some { toFin := ⟨0, ⋯⟩ } => some (x <<< 8) := sorry + +theorem or_signbit_select_shl_thm (x : BitVec 1) : + (Option.bind + (match some x with + | none => none + | some { toFin := ⟨1, ⋯⟩ } => none + | some { toFin := ⟨0, ⋯⟩ } => none) + fun x' => some (x' <<< 8)) ⊑ + match some x with + | none => none + | some { toFin := ⟨1, ⋯⟩ } => none + | some { toFin := ⟨0, ⋯⟩ } => none := sorry +info: ././././SSA/Projects/InstCombine/tests/LLVM/gpullhconditionalhbinophthroughhshift.lean:122:17: theorem or_signbit_select_shl_thm : + ∀ (x : BitVec 32) (x_1 : BitVec 1), + (Option.bind + (match some x_1 with + | none => none + | some { toFin := ⟨1, ⋯⟩ } => some (x ||| 4294901760#32) + | some { toFin := ⟨0, ⋯⟩ } => some x) + fun x' => some (x' <<< 8)) ⊑ + match some x_1 with + | none => none + | some { toFin := ⟨1, ⋯⟩ } => some (x <<< 8 ||| 4278190080#32) + | some { toFin := ⟨0, ⋯⟩ } => some (x <<< 8) := sorry + +theorem or_nosignbit_select_shl_thm (x : BitVec 1) : + (Option.bind + (match some x with + | none => none + | some { toFin := ⟨1, ⋯⟩ } => none + | some { toFin := ⟨0, ⋯⟩ } => none) + fun x' => some (x' <<< 8)) ⊑ + match some x with + | none => none + | some { toFin := ⟨1, ⋯⟩ } => none + | some { toFin := ⟨0, ⋯⟩ } => none := sorry +info: ././././SSA/Projects/InstCombine/tests/LLVM/gpullhconditionalhbinophthroughhshift.lean:159:17: theorem or_nosignbit_select_shl_thm : + ∀ (x : BitVec 32) (x_1 : BitVec 1), + (Option.bind + (match some x_1 with + | none => none + | some { toFin := ⟨1, ⋯⟩ } => some (x ||| 2147418112#32) + | some { toFin := ⟨0, ⋯⟩ } => some x) + fun x' => some (x' <<< 8)) ⊑ + match some x_1 with + | none => none + | some { toFin := ⟨1, ⋯⟩ } => some (x <<< 8 ||| 4278190080#32) + | some { toFin := ⟨0, ⋯⟩ } => some (x <<< 8) := sorry + +theorem xor_signbit_select_shl_thm (x : BitVec 1) : + (Option.bind + (match some x with + | none => none + | some { toFin := ⟨1, ⋯⟩ } => none + | some { toFin := ⟨0, ⋯⟩ } => none) + fun x' => some (x' <<< 8)) ⊑ + match some x with + | none => none + | some { toFin := ⟨1, ⋯⟩ } => none + | some { toFin := ⟨0, ⋯⟩ } => none := sorry +info: ././././SSA/Projects/InstCombine/tests/LLVM/gpullhconditionalhbinophthroughhshift.lean:196:17: theorem xor_signbit_select_shl_thm : + ∀ (x : BitVec 32) (x_1 : BitVec 1), + (Option.bind + (match some x_1 with + | none => none + | some { toFin := ⟨1, ⋯⟩ } => some (x ^^^ 4294901760#32) + | some { toFin := ⟨0, ⋯⟩ } => some x) + fun x' => some (x' <<< 8)) ⊑ + match some x_1 with + | none => none + | some { toFin := ⟨1, ⋯⟩ } => some (x <<< 8 ^^^ 4278190080#32) + | some { toFin := ⟨0, ⋯⟩ } => some (x <<< 8) := sorry + +theorem xor_nosignbit_select_shl_thm (x : BitVec 1) : + (Option.bind + (match some x with + | none => none + | some { toFin := ⟨1, ⋯⟩ } => none + | some { toFin := ⟨0, ⋯⟩ } => none) + fun x' => some (x' <<< 8)) ⊑ + match some x with + | none => none + | some { toFin := ⟨1, ⋯⟩ } => none + | some { toFin := ⟨0, ⋯⟩ } => none := sorry +info: ././././SSA/Projects/InstCombine/tests/LLVM/gpullhconditionalhbinophthroughhshift.lean:233:17: theorem xor_nosignbit_select_shl_thm : + ∀ (x : BitVec 32) (x_1 : BitVec 1), + (Option.bind + (match some x_1 with + | none => none + | some { toFin := ⟨1, ⋯⟩ } => some (x ^^^ 2147418112#32) + | some { toFin := ⟨0, ⋯⟩ } => some x) + fun x' => some (x' <<< 8)) ⊑ + match some x_1 with + | none => none + | some { toFin := ⟨1, ⋯⟩ } => some (x <<< 8 ^^^ 4278190080#32) + | some { toFin := ⟨0, ⋯⟩ } => some (x <<< 8) := sorry + +theorem add_signbit_select_shl_thm (x : BitVec 1) : + (Option.bind + (match some x with + | none => none + | some { toFin := ⟨1, ⋯⟩ } => none + | some { toFin := ⟨0, ⋯⟩ } => none) + fun x' => some (x' <<< 8)) ⊑ + match some x with + | none => none + | some { toFin := ⟨1, ⋯⟩ } => none + | some { toFin := ⟨0, ⋯⟩ } => none := sorry +info: ././././SSA/Projects/InstCombine/tests/LLVM/gpullhconditionalhbinophthroughhshift.lean:270:17: theorem add_signbit_select_shl_thm : + ∀ (x : BitVec 32) (x_1 : BitVec 1), + (Option.bind + (match some x_1 with + | none => none + | some { toFin := ⟨1, ⋯⟩ } => some (x + 4294901760#32) + | some { toFin := ⟨0, ⋯⟩ } => some x) + fun x' => some (x' <<< 8)) ⊑ + match some x_1 with + | none => none + | some { toFin := ⟨1, ⋯⟩ } => some (x <<< 8 + 4278190080#32) + | some { toFin := ⟨0, ⋯⟩ } => some (x <<< 8) := sorry + +theorem add_nosignbit_select_shl_thm (x : BitVec 1) : + (Option.bind + (match some x with + | none => none + | some { toFin := ⟨1, ⋯⟩ } => none + | some { toFin := ⟨0, ⋯⟩ } => none) + fun x' => some (x' <<< 8)) ⊑ + match some x with + | none => none + | some { toFin := ⟨1, ⋯⟩ } => none + | some { toFin := ⟨0, ⋯⟩ } => none := sorry +info: ././././SSA/Projects/InstCombine/tests/LLVM/gpullhconditionalhbinophthroughhshift.lean:307:17: theorem add_nosignbit_select_shl_thm : + ∀ (x : BitVec 32) (x_1 : BitVec 1), + (Option.bind + (match some x_1 with + | none => none + | some { toFin := ⟨1, ⋯⟩ } => some (x + 2147418112#32) + | some { toFin := ⟨0, ⋯⟩ } => some x) + fun x' => some (x' <<< 8)) ⊑ + match some x_1 with + | none => none + | some { toFin := ⟨1, ⋯⟩ } => some (x <<< 8 + 4278190080#32) + | some { toFin := ⟨0, ⋯⟩ } => some (x <<< 8) := sorry + +theorem and_signbit_select_lshr_thm (x : BitVec 1) : + (Option.bind + (match some x with + | none => none + | some { toFin := ⟨1, ⋯⟩ } => none + | some { toFin := ⟨0, ⋯⟩ } => none) + fun x' => some (x' >>> 8)) ⊑ + match some x with + | none => none + | some { toFin := ⟨1, ⋯⟩ } => none + | some { toFin := ⟨0, ⋯⟩ } => none := sorry +info: ././././SSA/Projects/InstCombine/tests/LLVM/gpullhconditionalhbinophthroughhshift.lean:344:17: theorem and_signbit_select_lshr_thm : + ∀ (x : BitVec 32) (x_1 : BitVec 1), + (Option.bind + (match some x_1 with + | none => none + | some { toFin := ⟨1, ⋯⟩ } => some (x &&& 4294901760#32) + | some { toFin := ⟨0, ⋯⟩ } => some x) + fun x' => some (x' >>> 8)) ⊑ + match some x_1 with + | none => none + | some { toFin := ⟨1, ⋯⟩ } => some (x >>> 8 &&& 16776960#32) + | some { toFin := ⟨0, ⋯⟩ } => some (x >>> 8) := sorry + +theorem and_nosignbit_select_lshr_thm (x : BitVec 1) : + (Option.bind + (match some x with + | none => none + | some { toFin := ⟨1, ⋯⟩ } => none + | some { toFin := ⟨0, ⋯⟩ } => none) + fun x' => some (x' >>> 8)) ⊑ + match some x with + | none => none + | some { toFin := ⟨1, ⋯⟩ } => none + | some { toFin := ⟨0, ⋯⟩ } => none := sorry +info: ././././SSA/Projects/InstCombine/tests/LLVM/gpullhconditionalhbinophthroughhshift.lean:381:17: theorem and_nosignbit_select_lshr_thm : + ∀ (x : BitVec 32) (x_1 : BitVec 1), + (Option.bind + (match some x_1 with + | none => none + | some { toFin := ⟨1, ⋯⟩ } => some (x &&& 2147418112#32) + | some { toFin := ⟨0, ⋯⟩ } => some x) + fun x' => some (x' >>> 8)) ⊑ + match some x_1 with + | none => none + | some { toFin := ⟨1, ⋯⟩ } => some (x >>> 8 &&& 8388352#32) + | some { toFin := ⟨0, ⋯⟩ } => some (x >>> 8) := sorry + +theorem or_signbit_select_lshr_thm (x : BitVec 1) : + (Option.bind + (match some x with + | none => none + | some { toFin := ⟨1, ⋯⟩ } => none + | some { toFin := ⟨0, ⋯⟩ } => none) + fun x' => some (x' >>> 8)) ⊑ + match some x with + | none => none + | some { toFin := ⟨1, ⋯⟩ } => none + | some { toFin := ⟨0, ⋯⟩ } => none := sorry +info: ././././SSA/Projects/InstCombine/tests/LLVM/gpullhconditionalhbinophthroughhshift.lean:418:17: theorem or_signbit_select_lshr_thm : + ∀ (x : BitVec 32) (x_1 : BitVec 1), + (Option.bind + (match some x_1 with + | none => none + | some { toFin := ⟨1, ⋯⟩ } => some (x ||| 4294901760#32) + | some { toFin := ⟨0, ⋯⟩ } => some x) + fun x' => some (x' >>> 8)) ⊑ + match some x_1 with + | none => none + | some { toFin := ⟨1, ⋯⟩ } => some (x >>> 8 ||| 16776960#32) + | some { toFin := ⟨0, ⋯⟩ } => some (x >>> 8) := sorry + +theorem or_nosignbit_select_lshr_thm (x : BitVec 1) : + (Option.bind + (match some x with + | none => none + | some { toFin := ⟨1, ⋯⟩ } => none + | some { toFin := ⟨0, ⋯⟩ } => none) + fun x' => some (x' >>> 8)) ⊑ + match some x with + | none => none + | some { toFin := ⟨1, ⋯⟩ } => none + | some { toFin := ⟨0, ⋯⟩ } => none := sorry +info: ././././SSA/Projects/InstCombine/tests/LLVM/gpullhconditionalhbinophthroughhshift.lean:455:17: theorem or_nosignbit_select_lshr_thm : + ∀ (x : BitVec 32) (x_1 : BitVec 1), + (Option.bind + (match some x_1 with + | none => none + | some { toFin := ⟨1, ⋯⟩ } => some (x ||| 2147418112#32) + | some { toFin := ⟨0, ⋯⟩ } => some x) + fun x' => some (x' >>> 8)) ⊑ + match some x_1 with + | none => none + | some { toFin := ⟨1, ⋯⟩ } => some (x >>> 8 ||| 8388352#32) + | some { toFin := ⟨0, ⋯⟩ } => some (x >>> 8) := sorry + +theorem xor_signbit_select_lshr_thm (x : BitVec 1) : + (Option.bind + (match some x with + | none => none + | some { toFin := ⟨1, ⋯⟩ } => none + | some { toFin := ⟨0, ⋯⟩ } => none) + fun x' => some (x' >>> 8)) ⊑ + match some x with + | none => none + | some { toFin := ⟨1, ⋯⟩ } => none + | some { toFin := ⟨0, ⋯⟩ } => none := sorry +info: ././././SSA/Projects/InstCombine/tests/LLVM/gpullhconditionalhbinophthroughhshift.lean:492:17: theorem xor_signbit_select_lshr_thm : + ∀ (x : BitVec 32) (x_1 : BitVec 1), + (Option.bind + (match some x_1 with + | none => none + | some { toFin := ⟨1, ⋯⟩ } => some (x ^^^ 4294901760#32) + | some { toFin := ⟨0, ⋯⟩ } => some x) + fun x' => some (x' >>> 8)) ⊑ + match some x_1 with + | none => none + | some { toFin := ⟨1, ⋯⟩ } => some (x >>> 8 ^^^ 16776960#32) + | some { toFin := ⟨0, ⋯⟩ } => some (x >>> 8) := sorry + +theorem xor_nosignbit_select_lshr_thm (x : BitVec 1) : + (Option.bind + (match some x with + | none => none + | some { toFin := ⟨1, ⋯⟩ } => none + | some { toFin := ⟨0, ⋯⟩ } => none) + fun x' => some (x' >>> 8)) ⊑ + match some x with + | none => none + | some { toFin := ⟨1, ⋯⟩ } => none + | some { toFin := ⟨0, ⋯⟩ } => none := sorry +info: ././././SSA/Projects/InstCombine/tests/LLVM/gpullhconditionalhbinophthroughhshift.lean:529:17: theorem xor_nosignbit_select_lshr_thm : + ∀ (x : BitVec 32) (x_1 : BitVec 1), + (Option.bind + (match some x_1 with + | none => none + | some { toFin := ⟨1, ⋯⟩ } => some (x ^^^ 2147418112#32) + | some { toFin := ⟨0, ⋯⟩ } => some x) + fun x' => some (x' >>> 8)) ⊑ + match some x_1 with + | none => none + | some { toFin := ⟨1, ⋯⟩ } => some (x >>> 8 ^^^ 8388352#32) + | some { toFin := ⟨0, ⋯⟩ } => some (x >>> 8) := sorry + +theorem and_signbit_select_ashr_thm (x : BitVec 1) : + (Option.bind + (match some x with + | none => none + | some { toFin := ⟨1, ⋯⟩ } => none + | some { toFin := ⟨0, ⋯⟩ } => none) + fun x' => some (x'.sshiftRight 8)) ⊑ + match some x with + | none => none + | some { toFin := ⟨1, ⋯⟩ } => none + | some { toFin := ⟨0, ⋯⟩ } => none := sorry +info: ././././SSA/Projects/InstCombine/tests/LLVM/gpullhconditionalhbinophthroughhshift.lean:566:17: theorem and_signbit_select_ashr_thm : + ∀ (x : BitVec 32) (x_1 : BitVec 1), + (Option.bind + (match some x_1 with + | none => none + | some { toFin := ⟨1, ⋯⟩ } => some (x &&& 4294901760#32) + | some { toFin := ⟨0, ⋯⟩ } => some x) + fun x' => some (x'.sshiftRight 8)) ⊑ + match some x_1 with + | none => none + | some { toFin := ⟨1, ⋯⟩ } => some (x.sshiftRight 8 &&& 4294967040#32) + | some { toFin := ⟨0, ⋯⟩ } => some (x.sshiftRight 8) := sorry + +theorem and_nosignbit_select_ashr_thm (x : BitVec 1) : + (Option.bind + (match some x with + | none => none + | some { toFin := ⟨1, ⋯⟩ } => none + | some { toFin := ⟨0, ⋯⟩ } => none) + fun x' => some (x'.sshiftRight 8)) ⊑ + match some x with + | none => none + | some { toFin := ⟨1, ⋯⟩ } => none + | some { toFin := ⟨0, ⋯⟩ } => none := sorry +info: ././././SSA/Projects/InstCombine/tests/LLVM/gpullhconditionalhbinophthroughhshift.lean:603:17: theorem and_nosignbit_select_ashr_thm : + ∀ (x : BitVec 32) (x_1 : BitVec 1), + (Option.bind + (match some x_1 with + | none => none + | some { toFin := ⟨1, ⋯⟩ } => some (x &&& 2147418112#32) + | some { toFin := ⟨0, ⋯⟩ } => some x) + fun x' => some (x'.sshiftRight 8)) ⊑ + match some x_1 with + | none => none + | some { toFin := ⟨1, ⋯⟩ } => some (x.sshiftRight 8 &&& 8388352#32) + | some { toFin := ⟨0, ⋯⟩ } => some (x.sshiftRight 8) := sorry + +theorem or_signbit_select_ashr_thm (x : BitVec 1) : + (Option.bind + (match some x with + | none => none + | some { toFin := ⟨1, ⋯⟩ } => none + | some { toFin := ⟨0, ⋯⟩ } => none) + fun x' => some (x'.sshiftRight 8)) ⊑ + match some x with + | none => none + | some { toFin := ⟨1, ⋯⟩ } => none + | some { toFin := ⟨0, ⋯⟩ } => none := sorry +info: ././././SSA/Projects/InstCombine/tests/LLVM/gpullhconditionalhbinophthroughhshift.lean:640:17: theorem or_signbit_select_ashr_thm : + ∀ (x : BitVec 32) (x_1 : BitVec 1), + (Option.bind + (match some x_1 with + | none => none + | some { toFin := ⟨1, ⋯⟩ } => some (x ||| 4294901760#32) + | some { toFin := ⟨0, ⋯⟩ } => some x) + fun x' => some (x'.sshiftRight 8)) ⊑ + match some x_1 with + | none => none + | some { toFin := ⟨1, ⋯⟩ } => some (x.sshiftRight 8 ||| 4294967040#32) + | some { toFin := ⟨0, ⋯⟩ } => some (x.sshiftRight 8) := sorry + +theorem or_nosignbit_select_ashr_thm (x : BitVec 1) : + (Option.bind + (match some x with + | none => none + | some { toFin := ⟨1, ⋯⟩ } => none + | some { toFin := ⟨0, ⋯⟩ } => none) + fun x' => some (x'.sshiftRight 8)) ⊑ + match some x with + | none => none + | some { toFin := ⟨1, ⋯⟩ } => none + | some { toFin := ⟨0, ⋯⟩ } => none := sorry +info: ././././SSA/Projects/InstCombine/tests/LLVM/gpullhconditionalhbinophthroughhshift.lean:677:17: theorem or_nosignbit_select_ashr_thm : + ∀ (x : BitVec 32) (x_1 : BitVec 1), + (Option.bind + (match some x_1 with + | none => none + | some { toFin := ⟨1, ⋯⟩ } => some (x ||| 2147418112#32) + | some { toFin := ⟨0, ⋯⟩ } => some x) + fun x' => some (x'.sshiftRight 8)) ⊑ + match some x_1 with + | none => none + | some { toFin := ⟨1, ⋯⟩ } => some (x.sshiftRight 8 ||| 8388352#32) + | some { toFin := ⟨0, ⋯⟩ } => some (x.sshiftRight 8) := sorry + +theorem xor_signbit_select_ashr_thm (x : BitVec 1) : + (Option.bind + (match some x with + | none => none + | some { toFin := ⟨1, ⋯⟩ } => none + | some { toFin := ⟨0, ⋯⟩ } => none) + fun x' => some (x'.sshiftRight 8)) ⊑ + match some x with + | none => none + | some { toFin := ⟨1, ⋯⟩ } => none + | some { toFin := ⟨0, ⋯⟩ } => none := sorry +info: ././././SSA/Projects/InstCombine/tests/LLVM/gpullhconditionalhbinophthroughhshift.lean:714:17: theorem xor_signbit_select_ashr_thm : + ∀ (x : BitVec 32) (x_1 : BitVec 1), + (Option.bind + (match some x_1 with + | none => none + | some { toFin := ⟨1, ⋯⟩ } => some (x ^^^ 4294901760#32) + | some { toFin := ⟨0, ⋯⟩ } => some x) + fun x' => some (x'.sshiftRight 8)) ⊑ + match some x_1 with + | none => none + | some { toFin := ⟨1, ⋯⟩ } => some (x.sshiftRight 8 ^^^ 4294967040#32) + | some { toFin := ⟨0, ⋯⟩ } => some (x.sshiftRight 8) := sorry + +theorem xor_nosignbit_select_ashr_thm (x : BitVec 1) : + (Option.bind + (match some x with + | none => none + | some { toFin := ⟨1, ⋯⟩ } => none + | some { toFin := ⟨0, ⋯⟩ } => none) + fun x' => some (x'.sshiftRight 8)) ⊑ + match some x with + | none => none + | some { toFin := ⟨1, ⋯⟩ } => none + | some { toFin := ⟨0, ⋯⟩ } => none := sorry +info: ././././SSA/Projects/InstCombine/tests/LLVM/gpullhconditionalhbinophthroughhshift.lean:751:17: theorem xor_nosignbit_select_ashr_thm : + ∀ (x : BitVec 32) (x_1 : BitVec 1), + (Option.bind + (match some x_1 with + | none => none + | some { toFin := ⟨1, ⋯⟩ } => some (x ^^^ 2147418112#32) + | some { toFin := ⟨0, ⋯⟩ } => some x) + fun x' => some (x'.sshiftRight 8)) ⊑ + match some x_1 with + | none => none + | some { toFin := ⟨1, ⋯⟩ } => some (x.sshiftRight 8 ^^^ 8388352#32) + | some { toFin := ⟨0, ⋯⟩ } => some (x.sshiftRight 8) := sorry + diff --git a/SSA/Projects/InstCombine/tests/proofs/grem.lean b/SSA/Projects/InstCombine/tests/proofs/grem.lean index 3f2d4456c..ced6de2f6 100644 --- a/SSA/Projects/InstCombine/tests/proofs/grem.lean +++ b/SSA/Projects/InstCombine/tests/proofs/grem.lean @@ -38,7 +38,7 @@ theorem test1_proof : test1_before ⊑ test1_after := by try intros try simp ---BEGIN test1 - apply test1_thm + all_goals (try extract_goal ; sorry) ---END test1 @@ -74,6 +74,41 @@ theorem test3_proof : test3_before ⊑ test3_after := by +def test4_before := [llvm| +{ +^0(%arg97 : i32, %arg98 : i1): + %0 = "llvm.mlir.constant"() <{value = 1 : i32}> : () -> i32 + %1 = "llvm.mlir.constant"() <{value = 8 : i32}> : () -> i32 + %2 = "llvm.select"(%arg98, %0, %1) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i32, i32) -> i32 + %3 = llvm.urem %arg97, %2 : i32 + "llvm.return"(%3) : (i32) -> () +} +] +def test4_after := [llvm| +{ +^0(%arg97 : i32, %arg98 : i1): + %0 = "llvm.mlir.constant"() <{value = 0 : i32}> : () -> i32 + %1 = "llvm.mlir.constant"() <{value = 7 : i32}> : () -> i32 + %2 = "llvm.select"(%arg98, %0, %1) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i32, i32) -> i32 + %3 = llvm.and %arg97, %2 : i32 + "llvm.return"(%3) : (i32) -> () +} +] +theorem test4_proof : test4_before ⊑ test4_after := by + unfold test4_before test4_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN test4 + apply test4_thm + ---END test4 + + + def test7_before := [llvm| { ^0(%arg93 : i32): @@ -501,3 +536,139 @@ theorem test22_proof : test22_before ⊑ test22_after := by ---END test22 + +def srem_constant_dividend_select_of_constants_divisor_before := [llvm| +{ +^0(%arg37 : i1): + %0 = "llvm.mlir.constant"() <{value = 12 : i32}> : () -> i32 + %1 = "llvm.mlir.constant"() <{value = -3 : i32}> : () -> i32 + %2 = "llvm.mlir.constant"() <{value = 42 : i32}> : () -> i32 + %3 = "llvm.select"(%arg37, %0, %1) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i32, i32) -> i32 + %4 = llvm.srem %2, %3 : i32 + "llvm.return"(%4) : (i32) -> () +} +] +def srem_constant_dividend_select_of_constants_divisor_after := [llvm| +{ +^0(%arg37 : i1): + %0 = "llvm.mlir.constant"() <{value = 6 : i32}> : () -> i32 + %1 = "llvm.mlir.constant"() <{value = 0 : i32}> : () -> i32 + %2 = "llvm.select"(%arg37, %0, %1) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i32, i32) -> i32 + "llvm.return"(%2) : (i32) -> () +} +] +theorem srem_constant_dividend_select_of_constants_divisor_proof : srem_constant_dividend_select_of_constants_divisor_before ⊑ srem_constant_dividend_select_of_constants_divisor_after := by + unfold srem_constant_dividend_select_of_constants_divisor_before srem_constant_dividend_select_of_constants_divisor_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN srem_constant_dividend_select_of_constants_divisor + apply srem_constant_dividend_select_of_constants_divisor_thm + ---END srem_constant_dividend_select_of_constants_divisor + + + +def srem_constant_dividend_select_of_constants_divisor_0_arm_before := [llvm| +{ +^0(%arg35 : i1): + %0 = "llvm.mlir.constant"() <{value = 12 : i32}> : () -> i32 + %1 = "llvm.mlir.constant"() <{value = 0 : i32}> : () -> i32 + %2 = "llvm.mlir.constant"() <{value = 42 : i32}> : () -> i32 + %3 = "llvm.select"(%arg35, %0, %1) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i32, i32) -> i32 + %4 = llvm.srem %2, %3 : i32 + "llvm.return"(%4) : (i32) -> () +} +] +def srem_constant_dividend_select_of_constants_divisor_0_arm_after := [llvm| +{ +^0(%arg35 : i1): + %0 = "llvm.mlir.constant"() <{value = 6 : i32}> : () -> i32 + "llvm.return"(%0) : (i32) -> () +} +] +theorem srem_constant_dividend_select_of_constants_divisor_0_arm_proof : srem_constant_dividend_select_of_constants_divisor_0_arm_before ⊑ srem_constant_dividend_select_of_constants_divisor_0_arm_after := by + unfold srem_constant_dividend_select_of_constants_divisor_0_arm_before srem_constant_dividend_select_of_constants_divisor_0_arm_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN srem_constant_dividend_select_of_constants_divisor_0_arm + apply srem_constant_dividend_select_of_constants_divisor_0_arm_thm + ---END srem_constant_dividend_select_of_constants_divisor_0_arm + + + +def urem_constant_dividend_select_of_constants_divisor_before := [llvm| +{ +^0(%arg25 : i1): + %0 = "llvm.mlir.constant"() <{value = 12 : i32}> : () -> i32 + %1 = "llvm.mlir.constant"() <{value = -3 : i32}> : () -> i32 + %2 = "llvm.mlir.constant"() <{value = 42 : i32}> : () -> i32 + %3 = "llvm.select"(%arg25, %0, %1) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i32, i32) -> i32 + %4 = llvm.urem %2, %3 : i32 + "llvm.return"(%4) : (i32) -> () +} +] +def urem_constant_dividend_select_of_constants_divisor_after := [llvm| +{ +^0(%arg25 : i1): + %0 = "llvm.mlir.constant"() <{value = 6 : i32}> : () -> i32 + %1 = "llvm.mlir.constant"() <{value = 42 : i32}> : () -> i32 + %2 = "llvm.select"(%arg25, %0, %1) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i32, i32) -> i32 + "llvm.return"(%2) : (i32) -> () +} +] +theorem urem_constant_dividend_select_of_constants_divisor_proof : urem_constant_dividend_select_of_constants_divisor_before ⊑ urem_constant_dividend_select_of_constants_divisor_after := by + unfold urem_constant_dividend_select_of_constants_divisor_before urem_constant_dividend_select_of_constants_divisor_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN urem_constant_dividend_select_of_constants_divisor + apply urem_constant_dividend_select_of_constants_divisor_thm + ---END urem_constant_dividend_select_of_constants_divisor + + + +def urem_constant_dividend_select_of_constants_divisor_0_arm_before := [llvm| +{ +^0(%arg23 : i1): + %0 = "llvm.mlir.constant"() <{value = 12 : i32}> : () -> i32 + %1 = "llvm.mlir.constant"() <{value = 0 : i32}> : () -> i32 + %2 = "llvm.mlir.constant"() <{value = 42 : i32}> : () -> i32 + %3 = "llvm.select"(%arg23, %0, %1) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i32, i32) -> i32 + %4 = llvm.urem %2, %3 : i32 + "llvm.return"(%4) : (i32) -> () +} +] +def urem_constant_dividend_select_of_constants_divisor_0_arm_after := [llvm| +{ +^0(%arg23 : i1): + %0 = "llvm.mlir.constant"() <{value = 6 : i32}> : () -> i32 + "llvm.return"(%0) : (i32) -> () +} +] +theorem urem_constant_dividend_select_of_constants_divisor_0_arm_proof : urem_constant_dividend_select_of_constants_divisor_0_arm_before ⊑ urem_constant_dividend_select_of_constants_divisor_0_arm_after := by + unfold urem_constant_dividend_select_of_constants_divisor_0_arm_before urem_constant_dividend_select_of_constants_divisor_0_arm_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN urem_constant_dividend_select_of_constants_divisor_0_arm + apply urem_constant_dividend_select_of_constants_divisor_0_arm_thm + ---END urem_constant_dividend_select_of_constants_divisor_0_arm + + diff --git a/SSA/Projects/InstCombine/tests/proofs/grem_proof.lean b/SSA/Projects/InstCombine/tests/proofs/grem_proof.lean index 1ef1b0518..d165a06b9 100644 --- a/SSA/Projects/InstCombine/tests/proofs/grem_proof.lean +++ b/SSA/Projects/InstCombine/tests/proofs/grem_proof.lean @@ -4,10 +4,22 @@ import SSA.Projects.InstCombine.LLVM.Semantics open BitVec section grem_proof -theorem test1_thm (x : BitVec 32) : x - x.sdiv 1#32 = 0#32 := sorry - theorem test3_thm (x : BitVec 32) : x % 8#32 = x &&& 7#32 := sorry +theorem test4_thm (x : BitVec 1) (x_1 : BitVec 32) : + (Option.bind + (match some x with + | none => none + | some { toFin := ⟨1, ⋯⟩ } => some 1#32 + | some { toFin := ⟨0, ⋯⟩ } => some 8#32) + fun y' => if y' = 0#32 then none else some (x_1 % y')) ⊑ + Option.bind + (match some x with + | none => none + | some { toFin := ⟨1, ⋯⟩ } => some 0#32 + | some { toFin := ⟨0, ⋯⟩ } => some 7#32) + fun y' => some (x_1 &&& y') := sorry + theorem test7_thm (x : BitVec 32) : x * 8#32 - (x * 8#32).sdiv 4#32 * 4#32 = 0#32 := sorry theorem test8_thm (x : BitVec 32) : x <<< 4 - (x <<< 4).sdiv 8#32 * 8#32 = 0#32 := sorry @@ -19,7 +31,8 @@ theorem test11_thm (x : BitVec 32) : (x &&& 4294967294#32) * 2#32 % 4#32 = 0#32 theorem test12_thm (x : BitVec 32) : (x &&& 4294967292#32) - (x &&& 4294967292#32).sdiv 2#32 * 2#32 = 0#32 := sorry theorem test13_thm (x : BitVec 32) : - Option.map (fun div => x - div * x) (if x = 0#32 ∨ x = intMin 32 ∧ x = 4294967295#32 then none else some (x.sdiv x)) ⊑ + Option.map (fun div => x - div * x) + (if x = 0#32 ∨ x = intMin 32 ∧ x = 4294967295#32 then none else some (if x = 0#32 then 0#32 else 1#32)) ⊑ some 0#32 := sorry theorem test16_thm (x x_1 : BitVec 32) : @@ -82,3 +95,49 @@ theorem test22_thm (x : BitVec 32) : (x &&& 2147483647#32) - (x &&& 2147483647#32).sdiv 2147483647#32 * 2147483647#32 = (x &&& 2147483647#32) % 2147483647#32 := sorry +theorem srem_constant_dividend_select_of_constants_divisor_thm (x : BitVec 1) : + (Option.bind + (match some x with + | none => none + | some { toFin := ⟨1, ⋯⟩ } => some 12#32 + | some { toFin := ⟨0, ⋯⟩ } => some 4294967293#32) + fun y' => + Option.map (fun div => 42#32 - div * y') + (if y' = 0#32 ∨ 42#32 = intMin 32 ∧ y' = 4294967295#32 then none else some ((42#32).sdiv y'))) ⊑ + match some x with + | none => none + | some { toFin := ⟨1, ⋯⟩ } => some 6#32 + | some { toFin := ⟨0, ⋯⟩ } => some 0#32 := sorry + +theorem srem_constant_dividend_select_of_constants_divisor_0_arm_thm (x : BitVec 1) : + (Option.bind + (match some x with + | none => none + | some { toFin := ⟨1, ⋯⟩ } => some 12#32 + | some { toFin := ⟨0, ⋯⟩ } => some 0#32) + fun y' => + Option.map (fun div => 42#32 - div * y') + (if y' = 0#32 ∨ 42#32 = intMin 32 ∧ y' = 4294967295#32 then none else some ((42#32).sdiv y'))) ⊑ + some 6#32 := sorry + +theorem urem_constant_dividend_select_of_constants_divisor_thm (x : BitVec 1) : + (Option.bind + (match some x with + | none => none + | some { toFin := ⟨1, ⋯⟩ } => some 12#32 + | some { toFin := ⟨0, ⋯⟩ } => some 4294967293#32) + fun y' => if y' = 0#32 then none else some (42#32 % y')) ⊑ + match some x with + | none => none + | some { toFin := ⟨1, ⋯⟩ } => some 6#32 + | some { toFin := ⟨0, ⋯⟩ } => some 42#32 := sorry + +theorem urem_constant_dividend_select_of_constants_divisor_0_arm_thm (x : BitVec 1) : + (Option.bind + (match some x with + | none => none + | some { toFin := ⟨1, ⋯⟩ } => some 12#32 + | some { toFin := ⟨0, ⋯⟩ } => some 0#32) + fun y' => if y' = 0#32 then none else some (42#32 % y')) ⊑ + some 6#32 := sorry + diff --git a/SSA/Projects/InstCombine/tests/proofs/gselecth2.lean b/SSA/Projects/InstCombine/tests/proofs/gselecth2.lean new file mode 100644 index 000000000..a49c2dd2b --- /dev/null +++ b/SSA/Projects/InstCombine/tests/proofs/gselecth2.lean @@ -0,0 +1,224 @@ +import SSA.Projects.InstCombine.tests.proofs.gselecth2_proof +import SSA.Projects.InstCombine.LLVM.PrettyEDSL +import SSA.Projects.InstCombine.TacticAuto +import SSA.Projects.InstCombine.LLVM.Semantics +open LLVM +open BitVec + +open MLIR AST +open Ctxt (Var) + +set_option linter.deprecated false +set_option linter.unreachableTactic false +set_option linter.unusedTactic false +section gselecth2_statements + +def ashr_exact_poison_constant_fold_before := [llvm| +{ +^0(%arg10 : i1, %arg11 : i8): + %0 = "llvm.mlir.constant"() <{value = 42 : i8}> : () -> i8 + %1 = "llvm.mlir.constant"() <{value = 3 : i8}> : () -> i8 + %2 = "llvm.select"(%arg10, %arg11, %0) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i8, i8) -> i8 + %3 = llvm.ashr %2, %1 : i8 + "llvm.return"(%3) : (i8) -> () +} +] +def ashr_exact_poison_constant_fold_after := [llvm| +{ +^0(%arg10 : i1, %arg11 : i8): + %0 = "llvm.mlir.constant"() <{value = 3 : i8}> : () -> i8 + %1 = "llvm.mlir.constant"() <{value = 5 : i8}> : () -> i8 + %2 = llvm.ashr %arg11, %0 : i8 + %3 = "llvm.select"(%arg10, %2, %1) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i8, i8) -> i8 + "llvm.return"(%3) : (i8) -> () +} +] +theorem ashr_exact_poison_constant_fold_proof : ashr_exact_poison_constant_fold_before ⊑ ashr_exact_poison_constant_fold_after := by + unfold ashr_exact_poison_constant_fold_before ashr_exact_poison_constant_fold_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN ashr_exact_poison_constant_fold + apply ashr_exact_poison_constant_fold_thm + ---END ashr_exact_poison_constant_fold + + + +def ashr_exact_before := [llvm| +{ +^0(%arg8 : i1, %arg9 : i8): + %0 = "llvm.mlir.constant"() <{value = 16 : i8}> : () -> i8 + %1 = "llvm.mlir.constant"() <{value = 3 : i8}> : () -> i8 + %2 = "llvm.select"(%arg8, %arg9, %0) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i8, i8) -> i8 + %3 = llvm.ashr %2, %1 : i8 + "llvm.return"(%3) : (i8) -> () +} +] +def ashr_exact_after := [llvm| +{ +^0(%arg8 : i1, %arg9 : i8): + %0 = "llvm.mlir.constant"() <{value = 3 : i8}> : () -> i8 + %1 = "llvm.mlir.constant"() <{value = 2 : i8}> : () -> i8 + %2 = llvm.ashr %arg9, %0 : i8 + %3 = "llvm.select"(%arg8, %2, %1) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i8, i8) -> i8 + "llvm.return"(%3) : (i8) -> () +} +] +theorem ashr_exact_proof : ashr_exact_before ⊑ ashr_exact_after := by + unfold ashr_exact_before ashr_exact_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN ashr_exact + apply ashr_exact_thm + ---END ashr_exact + + + +def shl_nsw_nuw_poison_constant_fold_before := [llvm| +{ +^0(%arg6 : i1, %arg7 : i8): + %0 = "llvm.mlir.constant"() <{value = 3 : i8}> : () -> i8 + %1 = "llvm.mlir.constant"() <{value = 16 : i8}> : () -> i8 + %2 = "llvm.select"(%arg6, %0, %arg7) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i8, i8) -> i8 + %3 = llvm.shl %1, %2 overflow : i8 + "llvm.return"(%3) : (i8) -> () +} +] +def shl_nsw_nuw_poison_constant_fold_after := [llvm| +{ +^0(%arg6 : i1, %arg7 : i8): + %0 = "llvm.mlir.constant"() <{value = 16 : i8}> : () -> i8 + %1 = "llvm.mlir.constant"() <{value = -128 : i8}> : () -> i8 + %2 = llvm.shl %0, %arg7 overflow : i8 + %3 = "llvm.select"(%arg6, %1, %2) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i8, i8) -> i8 + "llvm.return"(%3) : (i8) -> () +} +] +theorem shl_nsw_nuw_poison_constant_fold_proof : shl_nsw_nuw_poison_constant_fold_before ⊑ shl_nsw_nuw_poison_constant_fold_after := by + unfold shl_nsw_nuw_poison_constant_fold_before shl_nsw_nuw_poison_constant_fold_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN shl_nsw_nuw_poison_constant_fold + apply shl_nsw_nuw_poison_constant_fold_thm + ---END shl_nsw_nuw_poison_constant_fold + + + +def shl_nsw_nuw_before := [llvm| +{ +^0(%arg4 : i1, %arg5 : i8): + %0 = "llvm.mlir.constant"() <{value = 3 : i8}> : () -> i8 + %1 = "llvm.mlir.constant"() <{value = 7 : i8}> : () -> i8 + %2 = "llvm.select"(%arg4, %0, %arg5) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i8, i8) -> i8 + %3 = llvm.shl %1, %2 overflow : i8 + "llvm.return"(%3) : (i8) -> () +} +] +def shl_nsw_nuw_after := [llvm| +{ +^0(%arg4 : i1, %arg5 : i8): + %0 = "llvm.mlir.constant"() <{value = 7 : i8}> : () -> i8 + %1 = "llvm.mlir.constant"() <{value = 56 : i8}> : () -> i8 + %2 = llvm.shl %0, %arg5 overflow : i8 + %3 = "llvm.select"(%arg4, %1, %2) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i8, i8) -> i8 + "llvm.return"(%3) : (i8) -> () +} +] +theorem shl_nsw_nuw_proof : shl_nsw_nuw_before ⊑ shl_nsw_nuw_after := by + unfold shl_nsw_nuw_before shl_nsw_nuw_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN shl_nsw_nuw + apply shl_nsw_nuw_thm + ---END shl_nsw_nuw + + + +def add_nsw_poison_constant_fold_before := [llvm| +{ +^0(%arg2 : i1, %arg3 : i8): + %0 = "llvm.mlir.constant"() <{value = 65 : i8}> : () -> i8 + %1 = "llvm.mlir.constant"() <{value = 64 : i8}> : () -> i8 + %2 = "llvm.select"(%arg2, %arg3, %0) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i8, i8) -> i8 + %3 = llvm.add %2, %1 overflow : i8 + "llvm.return"(%3) : (i8) -> () +} +] +def add_nsw_poison_constant_fold_after := [llvm| +{ +^0(%arg2 : i1, %arg3 : i8): + %0 = "llvm.mlir.constant"() <{value = 64 : i8}> : () -> i8 + %1 = "llvm.mlir.constant"() <{value = -127 : i8}> : () -> i8 + %2 = llvm.add %arg3, %0 overflow : i8 + %3 = "llvm.select"(%arg2, %2, %1) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i8, i8) -> i8 + "llvm.return"(%3) : (i8) -> () +} +] +theorem add_nsw_poison_constant_fold_proof : add_nsw_poison_constant_fold_before ⊑ add_nsw_poison_constant_fold_after := by + unfold add_nsw_poison_constant_fold_before add_nsw_poison_constant_fold_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN add_nsw_poison_constant_fold + apply add_nsw_poison_constant_fold_thm + ---END add_nsw_poison_constant_fold + + + +def add_nsw_before := [llvm| +{ +^0(%arg0 : i1, %arg1 : i8): + %0 = "llvm.mlir.constant"() <{value = 7 : i8}> : () -> i8 + %1 = "llvm.mlir.constant"() <{value = 64 : i8}> : () -> i8 + %2 = "llvm.select"(%arg0, %arg1, %0) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i8, i8) -> i8 + %3 = llvm.add %2, %1 overflow : i8 + "llvm.return"(%3) : (i8) -> () +} +] +def add_nsw_after := [llvm| +{ +^0(%arg0 : i1, %arg1 : i8): + %0 = "llvm.mlir.constant"() <{value = 64 : i8}> : () -> i8 + %1 = "llvm.mlir.constant"() <{value = 71 : i8}> : () -> i8 + %2 = llvm.add %arg1, %0 overflow : i8 + %3 = "llvm.select"(%arg0, %2, %1) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i8, i8) -> i8 + "llvm.return"(%3) : (i8) -> () +} +] +theorem add_nsw_proof : add_nsw_before ⊑ add_nsw_after := by + unfold add_nsw_before add_nsw_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN add_nsw + apply add_nsw_thm + ---END add_nsw + + diff --git a/SSA/Projects/InstCombine/tests/proofs/gselecth2_proof.lean b/SSA/Projects/InstCombine/tests/proofs/gselecth2_proof.lean new file mode 100644 index 000000000..c1e3b85f9 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/proofs/gselecth2_proof.lean @@ -0,0 +1,167 @@ + +import SSA.Projects.InstCombine.TacticAuto +import SSA.Projects.InstCombine.LLVM.Semantics +open BitVec + +section gselecth2_proof +theorem ashr_exact_poison_constant_fold_thm (x : BitVec 1) : + (Option.bind + (match some x with + | none => none + | some { toFin := ⟨1, ⋯⟩ } => none + | some { toFin := ⟨0, ⋯⟩ } => some 42#8) + fun x' => some (x'.sshiftRight 3)) ⊑ + match some x with + | none => none + | some { toFin := ⟨1, ⋯⟩ } => none + | some { toFin := ⟨0, ⋯⟩ } => some 5#8 := sorry +info: ././././SSA/Projects/InstCombine/tests/LLVM/gselecth2.lean:46:17: theorem ashr_exact_poison_constant_fold_thm : + ∀ (x : BitVec 8) (x_1 : BitVec 1), + (Option.bind + (match some x_1 with + | none => none + | some { toFin := ⟨1, ⋯⟩ } => some x + | some { toFin := ⟨0, ⋯⟩ } => some 42#8) + fun x' => some (x'.sshiftRight 3)) ⊑ + match some x_1 with + | none => none + | some { toFin := ⟨1, ⋯⟩ } => some (x.sshiftRight 3) + | some { toFin := ⟨0, ⋯⟩ } => some 5#8 := sorry + +theorem ashr_exact_thm (x : BitVec 1) : + (Option.bind + (match some x with + | none => none + | some { toFin := ⟨1, ⋯⟩ } => none + | some { toFin := ⟨0, ⋯⟩ } => some 16#8) + fun x' => some (x'.sshiftRight 3)) ⊑ + match some x with + | none => none + | some { toFin := ⟨1, ⋯⟩ } => none + | some { toFin := ⟨0, ⋯⟩ } => some 2#8 := sorry +info: ././././SSA/Projects/InstCombine/tests/LLVM/gselecth2.lean:81:17: theorem ashr_exact_thm : + ∀ (x : BitVec 8) (x_1 : BitVec 1), + (Option.bind + (match some x_1 with + | none => none + | some { toFin := ⟨1, ⋯⟩ } => some x + | some { toFin := ⟨0, ⋯⟩ } => some 16#8) + fun x' => some (x'.sshiftRight 3)) ⊑ + match some x_1 with + | none => none + | some { toFin := ⟨1, ⋯⟩ } => some (x.sshiftRight 3) + | some { toFin := ⟨0, ⋯⟩ } => some 2#8 := sorry + +theorem shl_nsw_nuw_poison_constant_fold_thm (x : BitVec 1) : + (Option.bind + (match some x with + | none => none + | some { toFin := ⟨1, ⋯⟩ } => some 3#8 + | some { toFin := ⟨0, ⋯⟩ } => none) + fun y' => + if (16#8 <<< y'.toNat).sshiftRight y'.toNat = 16#8 then none + else + if 16#8 <<< y'.toNat >>> y'.toNat = 16#8 then none else if 8#8 ≤ y' then none else some (16#8 <<< y'.toNat)) ⊑ + match some x with + | none => none + | some { toFin := ⟨1, ⋯⟩ } => some 128#8 + | some { toFin := ⟨0, ⋯⟩ } => none := sorry +info: ././././SSA/Projects/InstCombine/tests/LLVM/gselecth2.lean:116:17: theorem shl_nsw_nuw_poison_constant_fold_thm : + ∀ (x : BitVec 8) (x_1 : BitVec 1), + (Option.bind + (match some x_1 with + | none => none + | some { toFin := ⟨1, ⋯⟩ } => some 3#8 + | some { toFin := ⟨0, ⋯⟩ } => some x) + fun y' => + if (16#8 <<< y'.toNat).sshiftRight y'.toNat = 16#8 then none + else + if 16#8 <<< y'.toNat >>> y'.toNat = 16#8 then none else if 8#8 ≤ y' then none else some (16#8 <<< y'.toNat)) ⊑ + match some x_1 with + | none => none + | some { toFin := ⟨1, ⋯⟩ } => some 128#8 + | some { toFin := ⟨0, ⋯⟩ } => + if (16#8 <<< x.toNat).sshiftRight x.toNat = 16#8 then none + else + if 16#8 <<< x.toNat >>> x.toNat = 16#8 then none + else if 8#8 ≤ x then none else some (16#8 <<< x.toNat) := sorry + +theorem shl_nsw_nuw_thm (x : BitVec 1) : + (Option.bind + (match some x with + | none => none + | some { toFin := ⟨1, ⋯⟩ } => some 3#8 + | some { toFin := ⟨0, ⋯⟩ } => none) + fun y' => + if (7#8 <<< y'.toNat).sshiftRight y'.toNat = 7#8 then none + else if 7#8 <<< y'.toNat >>> y'.toNat = 7#8 then none else if 8#8 ≤ y' then none else some (7#8 <<< y'.toNat)) ⊑ + match some x with + | none => none + | some { toFin := ⟨1, ⋯⟩ } => some 56#8 + | some { toFin := ⟨0, ⋯⟩ } => none := sorry +info: ././././SSA/Projects/InstCombine/tests/LLVM/gselecth2.lean:151:17: theorem shl_nsw_nuw_thm : + ∀ (x : BitVec 8) (x_1 : BitVec 1), + (Option.bind + (match some x_1 with + | none => none + | some { toFin := ⟨1, ⋯⟩ } => some 3#8 + | some { toFin := ⟨0, ⋯⟩ } => some x) + fun y' => + if (7#8 <<< y'.toNat).sshiftRight y'.toNat = 7#8 then none + else if 7#8 <<< y'.toNat >>> y'.toNat = 7#8 then none else if 8#8 ≤ y' then none else some (7#8 <<< y'.toNat)) ⊑ + match some x_1 with + | none => none + | some { toFin := ⟨1, ⋯⟩ } => some 56#8 + | some { toFin := ⟨0, ⋯⟩ } => + if (7#8 <<< x.toNat).sshiftRight x.toNat = 7#8 then none + else + if 7#8 <<< x.toNat >>> x.toNat = 7#8 then none else if 8#8 ≤ x then none else some (7#8 <<< x.toNat) := sorry + +theorem add_nsw_poison_constant_fold_thm (x : BitVec 1) : + (Option.bind + (match some x with + | none => none + | some { toFin := ⟨1, ⋯⟩ } => none + | some { toFin := ⟨0, ⋯⟩ } => some 65#8) + fun x' => if x'.msb = (64#8).msb ∧ ¬(x' + 64#8).msb = x'.msb then none else some (x' + 64#8)) ⊑ + match some x with + | none => none + | some { toFin := ⟨1, ⋯⟩ } => none + | some { toFin := ⟨0, ⋯⟩ } => some 129#8 := sorry +info: ././././SSA/Projects/InstCombine/tests/LLVM/gselecth2.lean:186:17: theorem add_nsw_poison_constant_fold_thm : + ∀ (x : BitVec 8) (x_1 : BitVec 1), + (Option.bind + (match some x_1 with + | none => none + | some { toFin := ⟨1, ⋯⟩ } => some x + | some { toFin := ⟨0, ⋯⟩ } => some 65#8) + fun x' => if x'.msb = (64#8).msb ∧ ¬(x' + 64#8).msb = x'.msb then none else some (x' + 64#8)) ⊑ + match some x_1 with + | none => none + | some { toFin := ⟨1, ⋯⟩ } => if x.msb = (64#8).msb ∧ ¬(x + 64#8).msb = x.msb then none else some (x + 64#8) + | some { toFin := ⟨0, ⋯⟩ } => some 129#8 := sorry + +theorem add_nsw_thm (x : BitVec 1) : + (Option.bind + (match some x with + | none => none + | some { toFin := ⟨1, ⋯⟩ } => none + | some { toFin := ⟨0, ⋯⟩ } => some 7#8) + fun x' => if x'.msb = (64#8).msb ∧ ¬(x' + 64#8).msb = x'.msb then none else some (x' + 64#8)) ⊑ + match some x with + | none => none + | some { toFin := ⟨1, ⋯⟩ } => none + | some { toFin := ⟨0, ⋯⟩ } => some 71#8 := sorry +info: ././././SSA/Projects/InstCombine/tests/LLVM/gselecth2.lean:221:17: theorem add_nsw_thm : + ∀ (x : BitVec 8) (x_1 : BitVec 1), + (Option.bind + (match some x_1 with + | none => none + | some { toFin := ⟨1, ⋯⟩ } => some x + | some { toFin := ⟨0, ⋯⟩ } => some 7#8) + fun x' => if x'.msb = (64#8).msb ∧ ¬(x' + 64#8).msb = x'.msb then none else some (x' + 64#8)) ⊑ + match some x_1 with + | none => none + | some { toFin := ⟨1, ⋯⟩ } => if x.msb = (64#8).msb ∧ ¬(x + 64#8).msb = x.msb then none else some (x + 64#8) + | some { toFin := ⟨0, ⋯⟩ } => some 71#8 := sorry + diff --git a/SSA/Projects/InstCombine/tests/proofs/gselecthdivrem.lean b/SSA/Projects/InstCombine/tests/proofs/gselecthdivrem.lean new file mode 100644 index 000000000..ac95d3d82 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/proofs/gselecthdivrem.lean @@ -0,0 +1,334 @@ +import SSA.Projects.InstCombine.tests.proofs.gselecthdivrem_proof +import SSA.Projects.InstCombine.LLVM.PrettyEDSL +import SSA.Projects.InstCombine.TacticAuto +import SSA.Projects.InstCombine.LLVM.Semantics +open LLVM +open BitVec + +open MLIR AST +open Ctxt (Var) + +set_option linter.deprecated false +set_option linter.unreachableTactic false +set_option linter.unusedTactic false +section gselecthdivrem_statements + +def udiv_common_divisor_before := [llvm| +{ +^0(%arg65 : i1, %arg66 : i5, %arg67 : i5, %arg68 : i5): + %0 = llvm.udiv %arg67, %arg66 : i5 + %1 = llvm.udiv %arg68, %arg66 : i5 + %2 = "llvm.select"(%arg65, %1, %0) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i5, i5) -> i5 + "llvm.return"(%2) : (i5) -> () +} +] +def udiv_common_divisor_after := [llvm| +{ +^0(%arg65 : i1, %arg66 : i5, %arg67 : i5, %arg68 : i5): + %0 = "llvm.select"(%arg65, %arg68, %arg67) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i5, i5) -> i5 + %1 = llvm.udiv %0, %arg66 : i5 + "llvm.return"(%1) : (i5) -> () +} +] +theorem udiv_common_divisor_proof : udiv_common_divisor_before ⊑ udiv_common_divisor_after := by + unfold udiv_common_divisor_before udiv_common_divisor_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN udiv_common_divisor + apply udiv_common_divisor_thm + ---END udiv_common_divisor + + + +def urem_common_divisor_before := [llvm| +{ +^0(%arg61 : i1, %arg62 : i5, %arg63 : i5, %arg64 : i5): + %0 = llvm.urem %arg63, %arg62 : i5 + %1 = llvm.urem %arg64, %arg62 : i5 + %2 = "llvm.select"(%arg61, %1, %0) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i5, i5) -> i5 + "llvm.return"(%2) : (i5) -> () +} +] +def urem_common_divisor_after := [llvm| +{ +^0(%arg61 : i1, %arg62 : i5, %arg63 : i5, %arg64 : i5): + %0 = "llvm.select"(%arg61, %arg64, %arg63) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i5, i5) -> i5 + %1 = llvm.urem %0, %arg62 : i5 + "llvm.return"(%1) : (i5) -> () +} +] +theorem urem_common_divisor_proof : urem_common_divisor_before ⊑ urem_common_divisor_after := by + unfold urem_common_divisor_before urem_common_divisor_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN urem_common_divisor + apply urem_common_divisor_thm + ---END urem_common_divisor + + + +def sdiv_common_divisor_defined_cond_before := [llvm| +{ +^0(%arg41 : i1, %arg42 : i5, %arg43 : i5, %arg44 : i5): + %0 = llvm.sdiv %arg43, %arg42 : i5 + %1 = llvm.sdiv %arg44, %arg42 : i5 + %2 = "llvm.select"(%arg41, %1, %0) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i5, i5) -> i5 + "llvm.return"(%2) : (i5) -> () +} +] +def sdiv_common_divisor_defined_cond_after := [llvm| +{ +^0(%arg41 : i1, %arg42 : i5, %arg43 : i5, %arg44 : i5): + %0 = "llvm.select"(%arg41, %arg44, %arg43) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i5, i5) -> i5 + %1 = llvm.sdiv %0, %arg42 : i5 + "llvm.return"(%1) : (i5) -> () +} +] +theorem sdiv_common_divisor_defined_cond_proof : sdiv_common_divisor_defined_cond_before ⊑ sdiv_common_divisor_defined_cond_after := by + unfold sdiv_common_divisor_defined_cond_before sdiv_common_divisor_defined_cond_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN sdiv_common_divisor_defined_cond + apply sdiv_common_divisor_defined_cond_thm + ---END sdiv_common_divisor_defined_cond + + + +def srem_common_divisor_defined_cond_before := [llvm| +{ +^0(%arg37 : i1, %arg38 : i5, %arg39 : i5, %arg40 : i5): + %0 = llvm.srem %arg39, %arg38 : i5 + %1 = llvm.srem %arg40, %arg38 : i5 + %2 = "llvm.select"(%arg37, %1, %0) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i5, i5) -> i5 + "llvm.return"(%2) : (i5) -> () +} +] +def srem_common_divisor_defined_cond_after := [llvm| +{ +^0(%arg37 : i1, %arg38 : i5, %arg39 : i5, %arg40 : i5): + %0 = "llvm.select"(%arg37, %arg40, %arg39) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i5, i5) -> i5 + %1 = llvm.srem %0, %arg38 : i5 + "llvm.return"(%1) : (i5) -> () +} +] +theorem srem_common_divisor_defined_cond_proof : srem_common_divisor_defined_cond_before ⊑ srem_common_divisor_defined_cond_after := by + unfold srem_common_divisor_defined_cond_before srem_common_divisor_defined_cond_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN srem_common_divisor_defined_cond + apply srem_common_divisor_defined_cond_thm + ---END srem_common_divisor_defined_cond + + + +def udiv_common_divisor_defined_cond_before := [llvm| +{ +^0(%arg33 : i1, %arg34 : i5, %arg35 : i5, %arg36 : i5): + %0 = llvm.udiv %arg35, %arg34 : i5 + %1 = llvm.udiv %arg36, %arg34 : i5 + %2 = "llvm.select"(%arg33, %1, %0) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i5, i5) -> i5 + "llvm.return"(%2) : (i5) -> () +} +] +def udiv_common_divisor_defined_cond_after := [llvm| +{ +^0(%arg33 : i1, %arg34 : i5, %arg35 : i5, %arg36 : i5): + %0 = "llvm.select"(%arg33, %arg36, %arg35) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i5, i5) -> i5 + %1 = llvm.udiv %0, %arg34 : i5 + "llvm.return"(%1) : (i5) -> () +} +] +theorem udiv_common_divisor_defined_cond_proof : udiv_common_divisor_defined_cond_before ⊑ udiv_common_divisor_defined_cond_after := by + unfold udiv_common_divisor_defined_cond_before udiv_common_divisor_defined_cond_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN udiv_common_divisor_defined_cond + apply udiv_common_divisor_defined_cond_thm + ---END udiv_common_divisor_defined_cond + + + +def urem_common_divisor_defined_cond_before := [llvm| +{ +^0(%arg29 : i1, %arg30 : i5, %arg31 : i5, %arg32 : i5): + %0 = llvm.urem %arg31, %arg30 : i5 + %1 = llvm.urem %arg32, %arg30 : i5 + %2 = "llvm.select"(%arg29, %1, %0) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i5, i5) -> i5 + "llvm.return"(%2) : (i5) -> () +} +] +def urem_common_divisor_defined_cond_after := [llvm| +{ +^0(%arg29 : i1, %arg30 : i5, %arg31 : i5, %arg32 : i5): + %0 = "llvm.select"(%arg29, %arg32, %arg31) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i5, i5) -> i5 + %1 = llvm.urem %0, %arg30 : i5 + "llvm.return"(%1) : (i5) -> () +} +] +theorem urem_common_divisor_defined_cond_proof : urem_common_divisor_defined_cond_before ⊑ urem_common_divisor_defined_cond_after := by + unfold urem_common_divisor_defined_cond_before urem_common_divisor_defined_cond_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN urem_common_divisor_defined_cond + apply urem_common_divisor_defined_cond_thm + ---END urem_common_divisor_defined_cond + + + +def sdiv_common_dividend_defined_cond_before := [llvm| +{ +^0(%arg25 : i1, %arg26 : i5, %arg27 : i5, %arg28 : i5): + %0 = llvm.sdiv %arg26, %arg27 : i5 + %1 = llvm.sdiv %arg26, %arg28 : i5 + %2 = "llvm.select"(%arg25, %1, %0) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i5, i5) -> i5 + "llvm.return"(%2) : (i5) -> () +} +] +def sdiv_common_dividend_defined_cond_after := [llvm| +{ +^0(%arg25 : i1, %arg26 : i5, %arg27 : i5, %arg28 : i5): + %0 = "llvm.select"(%arg25, %arg28, %arg27) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i5, i5) -> i5 + %1 = llvm.sdiv %arg26, %0 : i5 + "llvm.return"(%1) : (i5) -> () +} +] +theorem sdiv_common_dividend_defined_cond_proof : sdiv_common_dividend_defined_cond_before ⊑ sdiv_common_dividend_defined_cond_after := by + unfold sdiv_common_dividend_defined_cond_before sdiv_common_dividend_defined_cond_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN sdiv_common_dividend_defined_cond + apply sdiv_common_dividend_defined_cond_thm + ---END sdiv_common_dividend_defined_cond + + + +def srem_common_dividend_defined_cond_before := [llvm| +{ +^0(%arg21 : i1, %arg22 : i5, %arg23 : i5, %arg24 : i5): + %0 = llvm.srem %arg22, %arg23 : i5 + %1 = llvm.srem %arg22, %arg24 : i5 + %2 = "llvm.select"(%arg21, %1, %0) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i5, i5) -> i5 + "llvm.return"(%2) : (i5) -> () +} +] +def srem_common_dividend_defined_cond_after := [llvm| +{ +^0(%arg21 : i1, %arg22 : i5, %arg23 : i5, %arg24 : i5): + %0 = "llvm.select"(%arg21, %arg24, %arg23) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i5, i5) -> i5 + %1 = llvm.srem %arg22, %0 : i5 + "llvm.return"(%1) : (i5) -> () +} +] +theorem srem_common_dividend_defined_cond_proof : srem_common_dividend_defined_cond_before ⊑ srem_common_dividend_defined_cond_after := by + unfold srem_common_dividend_defined_cond_before srem_common_dividend_defined_cond_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN srem_common_dividend_defined_cond + apply srem_common_dividend_defined_cond_thm + ---END srem_common_dividend_defined_cond + + + +def udiv_common_dividend_defined_cond_before := [llvm| +{ +^0(%arg17 : i1, %arg18 : i5, %arg19 : i5, %arg20 : i5): + %0 = llvm.udiv %arg18, %arg19 : i5 + %1 = llvm.udiv %arg18, %arg20 : i5 + %2 = "llvm.select"(%arg17, %1, %0) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i5, i5) -> i5 + "llvm.return"(%2) : (i5) -> () +} +] +def udiv_common_dividend_defined_cond_after := [llvm| +{ +^0(%arg17 : i1, %arg18 : i5, %arg19 : i5, %arg20 : i5): + %0 = "llvm.select"(%arg17, %arg20, %arg19) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i5, i5) -> i5 + %1 = llvm.udiv %arg18, %0 : i5 + "llvm.return"(%1) : (i5) -> () +} +] +theorem udiv_common_dividend_defined_cond_proof : udiv_common_dividend_defined_cond_before ⊑ udiv_common_dividend_defined_cond_after := by + unfold udiv_common_dividend_defined_cond_before udiv_common_dividend_defined_cond_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN udiv_common_dividend_defined_cond + apply udiv_common_dividend_defined_cond_thm + ---END udiv_common_dividend_defined_cond + + + +def urem_common_dividend_defined_cond_before := [llvm| +{ +^0(%arg13 : i1, %arg14 : i5, %arg15 : i5, %arg16 : i5): + %0 = llvm.urem %arg14, %arg15 : i5 + %1 = llvm.urem %arg14, %arg16 : i5 + %2 = "llvm.select"(%arg13, %1, %0) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i5, i5) -> i5 + "llvm.return"(%2) : (i5) -> () +} +] +def urem_common_dividend_defined_cond_after := [llvm| +{ +^0(%arg13 : i1, %arg14 : i5, %arg15 : i5, %arg16 : i5): + %0 = "llvm.select"(%arg13, %arg16, %arg15) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i5, i5) -> i5 + %1 = llvm.urem %arg14, %0 : i5 + "llvm.return"(%1) : (i5) -> () +} +] +theorem urem_common_dividend_defined_cond_proof : urem_common_dividend_defined_cond_before ⊑ urem_common_dividend_defined_cond_after := by + unfold urem_common_dividend_defined_cond_before urem_common_dividend_defined_cond_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN urem_common_dividend_defined_cond + apply urem_common_dividend_defined_cond_thm + ---END urem_common_dividend_defined_cond + + diff --git a/SSA/Projects/InstCombine/tests/proofs/gselecthdivrem_proof.lean b/SSA/Projects/InstCombine/tests/proofs/gselecthdivrem_proof.lean new file mode 100644 index 000000000..61a72793c --- /dev/null +++ b/SSA/Projects/InstCombine/tests/proofs/gselecthdivrem_proof.lean @@ -0,0 +1,836 @@ + +import SSA.Projects.InstCombine.TacticAuto +import SSA.Projects.InstCombine.LLVM.Semantics +open BitVec + +section gselecthdivrem_proof +theorem udiv_common_divisor_thm (x : BitVec 1) : + (match some x with + | none => none + | some { toFin := ⟨1, ⋯⟩ } => none + | some { toFin := ⟨0, ⋯⟩ } => none) ⊑ + none := sorry +info: ././././SSA/Projects/InstCombine/tests/LLVM/gselecthdivrem.lean:43:17: theorem udiv_common_divisor_thm : + BitVec 5 → + ∀ (x : BitVec 1), + (match some x with + | none => none + | some { toFin := ⟨1, ⋯⟩ } => none + | some { toFin := ⟨0, ⋯⟩ } => none) ⊑ + none := sorry +info: ././././SSA/Projects/InstCombine/tests/LLVM/gselecthdivrem.lean:43:17: theorem udiv_common_divisor_thm : + ∀ (x : BitVec 5) (x_1 : BitVec 1), + (match some x_1 with + | none => none + | some { toFin := ⟨1, ⋯⟩ } => none + | some { toFin := ⟨0, ⋯⟩ } => none) ⊑ + Option.bind + (match some x_1 with + | none => none + | some { toFin := ⟨1, ⋯⟩ } => none + | some { toFin := ⟨0, ⋯⟩ } => none) + fun a => if x = 0#5 then none else some (a / x) := sorry +info: ././././SSA/Projects/InstCombine/tests/LLVM/gselecthdivrem.lean:43:17: theorem udiv_common_divisor_thm : + ∀ (x x_1 : BitVec 5) (x_2 : BitVec 1), + (match some x_2 with + | none => none + | some { toFin := ⟨1, ⋯⟩ } => if x = 0#5 then none else some (x_1 / x) + | some { toFin := ⟨0, ⋯⟩ } => none) ⊑ + Option.bind + (match some x_2 with + | none => none + | some { toFin := ⟨1, ⋯⟩ } => some x_1 + | some { toFin := ⟨0, ⋯⟩ } => none) + fun a => if x = 0#5 then none else some (a / x) := sorry +info: ././././SSA/Projects/InstCombine/tests/LLVM/gselecthdivrem.lean:43:17: theorem udiv_common_divisor_thm : + BitVec 5 → + ∀ (x : BitVec 1), + (match some x with + | none => none + | some { toFin := ⟨1, ⋯⟩ } => none + | some { toFin := ⟨0, ⋯⟩ } => none) ⊑ + none := sorry +info: ././././SSA/Projects/InstCombine/tests/LLVM/gselecthdivrem.lean:43:17: theorem udiv_common_divisor_thm : + BitVec 5 → + BitVec 5 → + ∀ (x : BitVec 1), + (match some x with + | none => none + | some { toFin := ⟨1, ⋯⟩ } => none + | some { toFin := ⟨0, ⋯⟩ } => none) ⊑ + none := sorry +info: ././././SSA/Projects/InstCombine/tests/LLVM/gselecthdivrem.lean:43:17: theorem udiv_common_divisor_thm : + ∀ (x x_1 : BitVec 5) (x_2 : BitVec 1), + (match some x_2 with + | none => none + | some { toFin := ⟨1, ⋯⟩ } => none + | some { toFin := ⟨0, ⋯⟩ } => if x_1 = 0#5 then none else some (x / x_1)) ⊑ + Option.bind + (match some x_2 with + | none => none + | some { toFin := ⟨1, ⋯⟩ } => none + | some { toFin := ⟨0, ⋯⟩ } => some x) + fun a => if x_1 = 0#5 then none else some (a / x_1) := sorry +info: ././././SSA/Projects/InstCombine/tests/LLVM/gselecthdivrem.lean:43:17: theorem udiv_common_divisor_thm : + ∀ (x x_1 x_2 : BitVec 5) (x_3 : BitVec 1), + (match some x_3 with + | none => none + | some { toFin := ⟨1, ⋯⟩ } => if x_1 = 0#5 then none else some (x_2 / x_1) + | some { toFin := ⟨0, ⋯⟩ } => if x_1 = 0#5 then none else some (x / x_1)) ⊑ + Option.bind + (match some x_3 with + | none => none + | some { toFin := ⟨1, ⋯⟩ } => some x_2 + | some { toFin := ⟨0, ⋯⟩ } => some x) + fun a => if x_1 = 0#5 then none else some (a / x_1) := sorry + +theorem urem_common_divisor_thm (x : BitVec 1) : + (match some x with + | none => none + | some { toFin := ⟨1, ⋯⟩ } => none + | some { toFin := ⟨0, ⋯⟩ } => none) ⊑ + none := sorry +info: ././././SSA/Projects/InstCombine/tests/LLVM/gselecthdivrem.lean:75:17: theorem urem_common_divisor_thm : + BitVec 5 → + ∀ (x : BitVec 1), + (match some x with + | none => none + | some { toFin := ⟨1, ⋯⟩ } => none + | some { toFin := ⟨0, ⋯⟩ } => none) ⊑ + none := sorry +info: ././././SSA/Projects/InstCombine/tests/LLVM/gselecthdivrem.lean:75:17: theorem urem_common_divisor_thm : + ∀ (x : BitVec 5) (x_1 : BitVec 1), + (match some x_1 with + | none => none + | some { toFin := ⟨1, ⋯⟩ } => none + | some { toFin := ⟨0, ⋯⟩ } => none) ⊑ + Option.bind + (match some x_1 with + | none => none + | some { toFin := ⟨1, ⋯⟩ } => none + | some { toFin := ⟨0, ⋯⟩ } => none) + fun a => if x = 0#5 then none else some (a % x) := sorry +info: ././././SSA/Projects/InstCombine/tests/LLVM/gselecthdivrem.lean:75:17: theorem urem_common_divisor_thm : + ∀ (x x_1 : BitVec 5) (x_2 : BitVec 1), + (match some x_2 with + | none => none + | some { toFin := ⟨1, ⋯⟩ } => if x = 0#5 then none else some (x_1 % x) + | some { toFin := ⟨0, ⋯⟩ } => none) ⊑ + Option.bind + (match some x_2 with + | none => none + | some { toFin := ⟨1, ⋯⟩ } => some x_1 + | some { toFin := ⟨0, ⋯⟩ } => none) + fun a => if x = 0#5 then none else some (a % x) := sorry +info: ././././SSA/Projects/InstCombine/tests/LLVM/gselecthdivrem.lean:75:17: theorem urem_common_divisor_thm : + BitVec 5 → + ∀ (x : BitVec 1), + (match some x with + | none => none + | some { toFin := ⟨1, ⋯⟩ } => none + | some { toFin := ⟨0, ⋯⟩ } => none) ⊑ + none := sorry +info: ././././SSA/Projects/InstCombine/tests/LLVM/gselecthdivrem.lean:75:17: theorem urem_common_divisor_thm : + BitVec 5 → + BitVec 5 → + ∀ (x : BitVec 1), + (match some x with + | none => none + | some { toFin := ⟨1, ⋯⟩ } => none + | some { toFin := ⟨0, ⋯⟩ } => none) ⊑ + none := sorry +info: ././././SSA/Projects/InstCombine/tests/LLVM/gselecthdivrem.lean:75:17: theorem urem_common_divisor_thm : + ∀ (x x_1 : BitVec 5) (x_2 : BitVec 1), + (match some x_2 with + | none => none + | some { toFin := ⟨1, ⋯⟩ } => none + | some { toFin := ⟨0, ⋯⟩ } => if x_1 = 0#5 then none else some (x % x_1)) ⊑ + Option.bind + (match some x_2 with + | none => none + | some { toFin := ⟨1, ⋯⟩ } => none + | some { toFin := ⟨0, ⋯⟩ } => some x) + fun a => if x_1 = 0#5 then none else some (a % x_1) := sorry +info: ././././SSA/Projects/InstCombine/tests/LLVM/gselecthdivrem.lean:75:17: theorem urem_common_divisor_thm : + ∀ (x x_1 x_2 : BitVec 5) (x_3 : BitVec 1), + (match some x_3 with + | none => none + | some { toFin := ⟨1, ⋯⟩ } => if x_1 = 0#5 then none else some (x_2 % x_1) + | some { toFin := ⟨0, ⋯⟩ } => if x_1 = 0#5 then none else some (x % x_1)) ⊑ + Option.bind + (match some x_3 with + | none => none + | some { toFin := ⟨1, ⋯⟩ } => some x_2 + | some { toFin := ⟨0, ⋯⟩ } => some x) + fun a => if x_1 = 0#5 then none else some (a % x_1) := sorry + +theorem sdiv_common_divisor_defined_cond_thm (x : BitVec 1) : + (match some x with + | none => none + | some { toFin := ⟨1, ⋯⟩ } => none + | some { toFin := ⟨0, ⋯⟩ } => none) ⊑ + none := sorry +info: ././././SSA/Projects/InstCombine/tests/LLVM/gselecthdivrem.lean:107:17: theorem sdiv_common_divisor_defined_cond_thm : + BitVec 5 → + ∀ (x : BitVec 1), + (match some x with + | none => none + | some { toFin := ⟨1, ⋯⟩ } => none + | some { toFin := ⟨0, ⋯⟩ } => none) ⊑ + none := sorry +info: ././././SSA/Projects/InstCombine/tests/LLVM/gselecthdivrem.lean:107:17: theorem sdiv_common_divisor_defined_cond_thm : + ∀ (x : BitVec 5) (x_1 : BitVec 1), + (match some x_1 with + | none => none + | some { toFin := ⟨1, ⋯⟩ } => none + | some { toFin := ⟨0, ⋯⟩ } => none) ⊑ + Option.bind + (match some x_1 with + | none => none + | some { toFin := ⟨1, ⋯⟩ } => none + | some { toFin := ⟨0, ⋯⟩ } => none) + fun a => if x = 0#5 ∨ a = intMin 5 ∧ x = 31#5 then none else some (a.sdiv x) := sorry +info: ././././SSA/Projects/InstCombine/tests/LLVM/gselecthdivrem.lean:107:17: theorem sdiv_common_divisor_defined_cond_thm : + ∀ (x x_1 : BitVec 5) (x_2 : BitVec 1), + (match some x_2 with + | none => none + | some { toFin := ⟨1, ⋯⟩ } => if x = 0#5 ∨ x_1 = intMin 5 ∧ x = 31#5 then none else some (x_1.sdiv x) + | some { toFin := ⟨0, ⋯⟩ } => none) ⊑ + Option.bind + (match some x_2 with + | none => none + | some { toFin := ⟨1, ⋯⟩ } => some x_1 + | some { toFin := ⟨0, ⋯⟩ } => none) + fun a => if x = 0#5 ∨ a = intMin 5 ∧ x = 31#5 then none else some (a.sdiv x) := sorry +info: ././././SSA/Projects/InstCombine/tests/LLVM/gselecthdivrem.lean:107:17: theorem sdiv_common_divisor_defined_cond_thm : + BitVec 5 → + ∀ (x : BitVec 1), + (match some x with + | none => none + | some { toFin := ⟨1, ⋯⟩ } => none + | some { toFin := ⟨0, ⋯⟩ } => none) ⊑ + none := sorry +info: ././././SSA/Projects/InstCombine/tests/LLVM/gselecthdivrem.lean:107:17: theorem sdiv_common_divisor_defined_cond_thm : + BitVec 5 → + BitVec 5 → + ∀ (x : BitVec 1), + (match some x with + | none => none + | some { toFin := ⟨1, ⋯⟩ } => none + | some { toFin := ⟨0, ⋯⟩ } => none) ⊑ + none := sorry +info: ././././SSA/Projects/InstCombine/tests/LLVM/gselecthdivrem.lean:107:17: theorem sdiv_common_divisor_defined_cond_thm : + ∀ (x x_1 : BitVec 5) (x_2 : BitVec 1), + (match some x_2 with + | none => none + | some { toFin := ⟨1, ⋯⟩ } => none + | some { toFin := ⟨0, ⋯⟩ } => if x_1 = 0#5 ∨ x = intMin 5 ∧ x_1 = 31#5 then none else some (x.sdiv x_1)) ⊑ + Option.bind + (match some x_2 with + | none => none + | some { toFin := ⟨1, ⋯⟩ } => none + | some { toFin := ⟨0, ⋯⟩ } => some x) + fun a => if x_1 = 0#5 ∨ a = intMin 5 ∧ x_1 = 31#5 then none else some (a.sdiv x_1) := sorry +info: ././././SSA/Projects/InstCombine/tests/LLVM/gselecthdivrem.lean:107:17: theorem sdiv_common_divisor_defined_cond_thm : + ∀ (x x_1 x_2 : BitVec 5) (x_3 : BitVec 1), + (match some x_3 with + | none => none + | some { toFin := ⟨1, ⋯⟩ } => if x_1 = 0#5 ∨ x_2 = intMin 5 ∧ x_1 = 31#5 then none else some (x_2.sdiv x_1) + | some { toFin := ⟨0, ⋯⟩ } => if x_1 = 0#5 ∨ x = intMin 5 ∧ x_1 = 31#5 then none else some (x.sdiv x_1)) ⊑ + Option.bind + (match some x_3 with + | none => none + | some { toFin := ⟨1, ⋯⟩ } => some x_2 + | some { toFin := ⟨0, ⋯⟩ } => some x) + fun a => if x_1 = 0#5 ∨ a = intMin 5 ∧ x_1 = 31#5 then none else some (a.sdiv x_1) := sorry + +theorem srem_common_divisor_defined_cond_thm (x : BitVec 1) : + (match some x with + | none => none + | some { toFin := ⟨1, ⋯⟩ } => none + | some { toFin := ⟨0, ⋯⟩ } => none) ⊑ + none := sorry +info: ././././SSA/Projects/InstCombine/tests/LLVM/gselecthdivrem.lean:139:17: theorem srem_common_divisor_defined_cond_thm : + BitVec 5 → + ∀ (x : BitVec 1), + (match some x with + | none => none + | some { toFin := ⟨1, ⋯⟩ } => none + | some { toFin := ⟨0, ⋯⟩ } => none) ⊑ + none := sorry +info: ././././SSA/Projects/InstCombine/tests/LLVM/gselecthdivrem.lean:139:17: theorem srem_common_divisor_defined_cond_thm : + ∀ (x : BitVec 5) (x_1 : BitVec 1), + (match some x_1 with + | none => none + | some { toFin := ⟨1, ⋯⟩ } => none + | some { toFin := ⟨0, ⋯⟩ } => none) ⊑ + Option.bind + (match some x_1 with + | none => none + | some { toFin := ⟨1, ⋯⟩ } => none + | some { toFin := ⟨0, ⋯⟩ } => none) + fun a => + Option.map (fun div => a - div * x) + (if x = 0#5 ∨ a = intMin 5 ∧ x = 31#5 then none else some (a.sdiv x)) := sorry +info: ././././SSA/Projects/InstCombine/tests/LLVM/gselecthdivrem.lean:139:17: theorem srem_common_divisor_defined_cond_thm : + ∀ (x x_1 : BitVec 5) (x_2 : BitVec 1), + (match some x_2 with + | none => none + | some { toFin := ⟨1, ⋯⟩ } => + Option.map (fun div => x_1 - div * x) (if x = 0#5 ∨ x_1 = intMin 5 ∧ x = 31#5 then none else some (x_1.sdiv x)) + | some { toFin := ⟨0, ⋯⟩ } => none) ⊑ + Option.bind + (match some x_2 with + | none => none + | some { toFin := ⟨1, ⋯⟩ } => some x_1 + | some { toFin := ⟨0, ⋯⟩ } => none) + fun a => + Option.map (fun div => a - div * x) + (if x = 0#5 ∨ a = intMin 5 ∧ x = 31#5 then none else some (a.sdiv x)) := sorry +info: ././././SSA/Projects/InstCombine/tests/LLVM/gselecthdivrem.lean:139:17: theorem srem_common_divisor_defined_cond_thm : + BitVec 5 → + ∀ (x : BitVec 1), + (match some x with + | none => none + | some { toFin := ⟨1, ⋯⟩ } => none + | some { toFin := ⟨0, ⋯⟩ } => none) ⊑ + none := sorry +info: ././././SSA/Projects/InstCombine/tests/LLVM/gselecthdivrem.lean:139:17: theorem srem_common_divisor_defined_cond_thm : + BitVec 5 → + BitVec 5 → + ∀ (x : BitVec 1), + (match some x with + | none => none + | some { toFin := ⟨1, ⋯⟩ } => none + | some { toFin := ⟨0, ⋯⟩ } => none) ⊑ + none := sorry +info: ././././SSA/Projects/InstCombine/tests/LLVM/gselecthdivrem.lean:139:17: theorem srem_common_divisor_defined_cond_thm : + ∀ (x x_1 : BitVec 5) (x_2 : BitVec 1), + (match some x_2 with + | none => none + | some { toFin := ⟨1, ⋯⟩ } => none + | some { toFin := ⟨0, ⋯⟩ } => + Option.map (fun div => x - div * x_1) + (if x_1 = 0#5 ∨ x = intMin 5 ∧ x_1 = 31#5 then none else some (x.sdiv x_1))) ⊑ + Option.bind + (match some x_2 with + | none => none + | some { toFin := ⟨1, ⋯⟩ } => none + | some { toFin := ⟨0, ⋯⟩ } => some x) + fun a => + Option.map (fun div => a - div * x_1) + (if x_1 = 0#5 ∨ a = intMin 5 ∧ x_1 = 31#5 then none else some (a.sdiv x_1)) := sorry +info: ././././SSA/Projects/InstCombine/tests/LLVM/gselecthdivrem.lean:139:17: theorem srem_common_divisor_defined_cond_thm : + ∀ (x x_1 x_2 : BitVec 5) (x_3 : BitVec 1), + (match some x_3 with + | none => none + | some { toFin := ⟨1, ⋯⟩ } => + Option.map (fun div => x_2 - div * x_1) + (if x_1 = 0#5 ∨ x_2 = intMin 5 ∧ x_1 = 31#5 then none else some (x_2.sdiv x_1)) + | some { toFin := ⟨0, ⋯⟩ } => + Option.map (fun div => x - div * x_1) + (if x_1 = 0#5 ∨ x = intMin 5 ∧ x_1 = 31#5 then none else some (x.sdiv x_1))) ⊑ + Option.bind + (match some x_3 with + | none => none + | some { toFin := ⟨1, ⋯⟩ } => some x_2 + | some { toFin := ⟨0, ⋯⟩ } => some x) + fun a => + Option.map (fun div => a - div * x_1) + (if x_1 = 0#5 ∨ a = intMin 5 ∧ x_1 = 31#5 then none else some (a.sdiv x_1)) := sorry + +theorem udiv_common_divisor_defined_cond_thm (x : BitVec 1) : + (match some x with + | none => none + | some { toFin := ⟨1, ⋯⟩ } => none + | some { toFin := ⟨0, ⋯⟩ } => none) ⊑ + none := sorry +info: ././././SSA/Projects/InstCombine/tests/LLVM/gselecthdivrem.lean:171:17: theorem udiv_common_divisor_defined_cond_thm : + BitVec 5 → + ∀ (x : BitVec 1), + (match some x with + | none => none + | some { toFin := ⟨1, ⋯⟩ } => none + | some { toFin := ⟨0, ⋯⟩ } => none) ⊑ + none := sorry +info: ././././SSA/Projects/InstCombine/tests/LLVM/gselecthdivrem.lean:171:17: theorem udiv_common_divisor_defined_cond_thm : + ∀ (x : BitVec 5) (x_1 : BitVec 1), + (match some x_1 with + | none => none + | some { toFin := ⟨1, ⋯⟩ } => none + | some { toFin := ⟨0, ⋯⟩ } => none) ⊑ + Option.bind + (match some x_1 with + | none => none + | some { toFin := ⟨1, ⋯⟩ } => none + | some { toFin := ⟨0, ⋯⟩ } => none) + fun a => if x = 0#5 then none else some (a / x) := sorry +info: ././././SSA/Projects/InstCombine/tests/LLVM/gselecthdivrem.lean:171:17: theorem udiv_common_divisor_defined_cond_thm : + ∀ (x x_1 : BitVec 5) (x_2 : BitVec 1), + (match some x_2 with + | none => none + | some { toFin := ⟨1, ⋯⟩ } => if x = 0#5 then none else some (x_1 / x) + | some { toFin := ⟨0, ⋯⟩ } => none) ⊑ + Option.bind + (match some x_2 with + | none => none + | some { toFin := ⟨1, ⋯⟩ } => some x_1 + | some { toFin := ⟨0, ⋯⟩ } => none) + fun a => if x = 0#5 then none else some (a / x) := sorry +info: ././././SSA/Projects/InstCombine/tests/LLVM/gselecthdivrem.lean:171:17: theorem udiv_common_divisor_defined_cond_thm : + BitVec 5 → + ∀ (x : BitVec 1), + (match some x with + | none => none + | some { toFin := ⟨1, ⋯⟩ } => none + | some { toFin := ⟨0, ⋯⟩ } => none) ⊑ + none := sorry +info: ././././SSA/Projects/InstCombine/tests/LLVM/gselecthdivrem.lean:171:17: theorem udiv_common_divisor_defined_cond_thm : + BitVec 5 → + BitVec 5 → + ∀ (x : BitVec 1), + (match some x with + | none => none + | some { toFin := ⟨1, ⋯⟩ } => none + | some { toFin := ⟨0, ⋯⟩ } => none) ⊑ + none := sorry +info: ././././SSA/Projects/InstCombine/tests/LLVM/gselecthdivrem.lean:171:17: theorem udiv_common_divisor_defined_cond_thm : + ∀ (x x_1 : BitVec 5) (x_2 : BitVec 1), + (match some x_2 with + | none => none + | some { toFin := ⟨1, ⋯⟩ } => none + | some { toFin := ⟨0, ⋯⟩ } => if x_1 = 0#5 then none else some (x / x_1)) ⊑ + Option.bind + (match some x_2 with + | none => none + | some { toFin := ⟨1, ⋯⟩ } => none + | some { toFin := ⟨0, ⋯⟩ } => some x) + fun a => if x_1 = 0#5 then none else some (a / x_1) := sorry +info: ././././SSA/Projects/InstCombine/tests/LLVM/gselecthdivrem.lean:171:17: theorem udiv_common_divisor_defined_cond_thm : + ∀ (x x_1 x_2 : BitVec 5) (x_3 : BitVec 1), + (match some x_3 with + | none => none + | some { toFin := ⟨1, ⋯⟩ } => if x_1 = 0#5 then none else some (x_2 / x_1) + | some { toFin := ⟨0, ⋯⟩ } => if x_1 = 0#5 then none else some (x / x_1)) ⊑ + Option.bind + (match some x_3 with + | none => none + | some { toFin := ⟨1, ⋯⟩ } => some x_2 + | some { toFin := ⟨0, ⋯⟩ } => some x) + fun a => if x_1 = 0#5 then none else some (a / x_1) := sorry + +theorem urem_common_divisor_defined_cond_thm (x : BitVec 1) : + (match some x with + | none => none + | some { toFin := ⟨1, ⋯⟩ } => none + | some { toFin := ⟨0, ⋯⟩ } => none) ⊑ + none := sorry +info: ././././SSA/Projects/InstCombine/tests/LLVM/gselecthdivrem.lean:203:17: theorem urem_common_divisor_defined_cond_thm : + BitVec 5 → + ∀ (x : BitVec 1), + (match some x with + | none => none + | some { toFin := ⟨1, ⋯⟩ } => none + | some { toFin := ⟨0, ⋯⟩ } => none) ⊑ + none := sorry +info: ././././SSA/Projects/InstCombine/tests/LLVM/gselecthdivrem.lean:203:17: theorem urem_common_divisor_defined_cond_thm : + ∀ (x : BitVec 5) (x_1 : BitVec 1), + (match some x_1 with + | none => none + | some { toFin := ⟨1, ⋯⟩ } => none + | some { toFin := ⟨0, ⋯⟩ } => none) ⊑ + Option.bind + (match some x_1 with + | none => none + | some { toFin := ⟨1, ⋯⟩ } => none + | some { toFin := ⟨0, ⋯⟩ } => none) + fun a => if x = 0#5 then none else some (a % x) := sorry +info: ././././SSA/Projects/InstCombine/tests/LLVM/gselecthdivrem.lean:203:17: theorem urem_common_divisor_defined_cond_thm : + ∀ (x x_1 : BitVec 5) (x_2 : BitVec 1), + (match some x_2 with + | none => none + | some { toFin := ⟨1, ⋯⟩ } => if x = 0#5 then none else some (x_1 % x) + | some { toFin := ⟨0, ⋯⟩ } => none) ⊑ + Option.bind + (match some x_2 with + | none => none + | some { toFin := ⟨1, ⋯⟩ } => some x_1 + | some { toFin := ⟨0, ⋯⟩ } => none) + fun a => if x = 0#5 then none else some (a % x) := sorry +info: ././././SSA/Projects/InstCombine/tests/LLVM/gselecthdivrem.lean:203:17: theorem urem_common_divisor_defined_cond_thm : + BitVec 5 → + ∀ (x : BitVec 1), + (match some x with + | none => none + | some { toFin := ⟨1, ⋯⟩ } => none + | some { toFin := ⟨0, ⋯⟩ } => none) ⊑ + none := sorry +info: ././././SSA/Projects/InstCombine/tests/LLVM/gselecthdivrem.lean:203:17: theorem urem_common_divisor_defined_cond_thm : + BitVec 5 → + BitVec 5 → + ∀ (x : BitVec 1), + (match some x with + | none => none + | some { toFin := ⟨1, ⋯⟩ } => none + | some { toFin := ⟨0, ⋯⟩ } => none) ⊑ + none := sorry +info: ././././SSA/Projects/InstCombine/tests/LLVM/gselecthdivrem.lean:203:17: theorem urem_common_divisor_defined_cond_thm : + ∀ (x x_1 : BitVec 5) (x_2 : BitVec 1), + (match some x_2 with + | none => none + | some { toFin := ⟨1, ⋯⟩ } => none + | some { toFin := ⟨0, ⋯⟩ } => if x_1 = 0#5 then none else some (x % x_1)) ⊑ + Option.bind + (match some x_2 with + | none => none + | some { toFin := ⟨1, ⋯⟩ } => none + | some { toFin := ⟨0, ⋯⟩ } => some x) + fun a => if x_1 = 0#5 then none else some (a % x_1) := sorry +info: ././././SSA/Projects/InstCombine/tests/LLVM/gselecthdivrem.lean:203:17: theorem urem_common_divisor_defined_cond_thm : + ∀ (x x_1 x_2 : BitVec 5) (x_3 : BitVec 1), + (match some x_3 with + | none => none + | some { toFin := ⟨1, ⋯⟩ } => if x_1 = 0#5 then none else some (x_2 % x_1) + | some { toFin := ⟨0, ⋯⟩ } => if x_1 = 0#5 then none else some (x % x_1)) ⊑ + Option.bind + (match some x_3 with + | none => none + | some { toFin := ⟨1, ⋯⟩ } => some x_2 + | some { toFin := ⟨0, ⋯⟩ } => some x) + fun a => if x_1 = 0#5 then none else some (a % x_1) := sorry + +theorem sdiv_common_dividend_defined_cond_thm (x : BitVec 1) : + (match some x with + | none => none + | some { toFin := ⟨1, ⋯⟩ } => none + | some { toFin := ⟨0, ⋯⟩ } => none) ⊑ + none := sorry +info: ././././SSA/Projects/InstCombine/tests/LLVM/gselecthdivrem.lean:235:17: theorem sdiv_common_dividend_defined_cond_thm : + ∀ (x : BitVec 5) (x_1 : BitVec 1), + (match some x_1 with + | none => none + | some { toFin := ⟨1, ⋯⟩ } => none + | some { toFin := ⟨0, ⋯⟩ } => none) ⊑ + Option.bind + (match some x_1 with + | none => none + | some { toFin := ⟨1, ⋯⟩ } => none + | some { toFin := ⟨0, ⋯⟩ } => none) + fun y' => if y' = 0#5 ∨ x = intMin 5 ∧ y' = 31#5 then none else some (x.sdiv y') := sorry +info: ././././SSA/Projects/InstCombine/tests/LLVM/gselecthdivrem.lean:235:17: theorem sdiv_common_dividend_defined_cond_thm : + BitVec 5 → + ∀ (x : BitVec 1), + (match some x with + | none => none + | some { toFin := ⟨1, ⋯⟩ } => none + | some { toFin := ⟨0, ⋯⟩ } => none) ⊑ + none := sorry +info: ././././SSA/Projects/InstCombine/tests/LLVM/gselecthdivrem.lean:235:17: theorem sdiv_common_dividend_defined_cond_thm : + ∀ (x x_1 : BitVec 5) (x_2 : BitVec 1), + (match some x_2 with + | none => none + | some { toFin := ⟨1, ⋯⟩ } => if x = 0#5 ∨ x_1 = intMin 5 ∧ x = 31#5 then none else some (x_1.sdiv x) + | some { toFin := ⟨0, ⋯⟩ } => none) ⊑ + Option.bind + (match some x_2 with + | none => none + | some { toFin := ⟨1, ⋯⟩ } => some x + | some { toFin := ⟨0, ⋯⟩ } => none) + fun y' => if y' = 0#5 ∨ x_1 = intMin 5 ∧ y' = 31#5 then none else some (x_1.sdiv y') := sorry +info: ././././SSA/Projects/InstCombine/tests/LLVM/gselecthdivrem.lean:235:17: theorem sdiv_common_dividend_defined_cond_thm : + BitVec 5 → + ∀ (x : BitVec 1), + (match some x with + | none => none + | some { toFin := ⟨1, ⋯⟩ } => none + | some { toFin := ⟨0, ⋯⟩ } => none) ⊑ + none := sorry +info: ././././SSA/Projects/InstCombine/tests/LLVM/gselecthdivrem.lean:235:17: theorem sdiv_common_dividend_defined_cond_thm : + ∀ (x x_1 : BitVec 5) (x_2 : BitVec 1), + (match some x_2 with + | none => none + | some { toFin := ⟨1, ⋯⟩ } => none + | some { toFin := ⟨0, ⋯⟩ } => if x = 0#5 ∨ x_1 = intMin 5 ∧ x = 31#5 then none else some (x_1.sdiv x)) ⊑ + Option.bind + (match some x_2 with + | none => none + | some { toFin := ⟨1, ⋯⟩ } => none + | some { toFin := ⟨0, ⋯⟩ } => some x) + fun y' => if y' = 0#5 ∨ x_1 = intMin 5 ∧ y' = 31#5 then none else some (x_1.sdiv y') := sorry +info: ././././SSA/Projects/InstCombine/tests/LLVM/gselecthdivrem.lean:235:17: theorem sdiv_common_dividend_defined_cond_thm : + BitVec 5 → + BitVec 5 → + ∀ (x : BitVec 1), + (match some x with + | none => none + | some { toFin := ⟨1, ⋯⟩ } => none + | some { toFin := ⟨0, ⋯⟩ } => none) ⊑ + none := sorry +info: ././././SSA/Projects/InstCombine/tests/LLVM/gselecthdivrem.lean:235:17: theorem sdiv_common_dividend_defined_cond_thm : + ∀ (x x_1 x_2 : BitVec 5) (x_3 : BitVec 1), + (match some x_3 with + | none => none + | some { toFin := ⟨1, ⋯⟩ } => if x_1 = 0#5 ∨ x_2 = intMin 5 ∧ x_1 = 31#5 then none else some (x_2.sdiv x_1) + | some { toFin := ⟨0, ⋯⟩ } => if x = 0#5 ∨ x_2 = intMin 5 ∧ x = 31#5 then none else some (x_2.sdiv x)) ⊑ + Option.bind + (match some x_3 with + | none => none + | some { toFin := ⟨1, ⋯⟩ } => some x_1 + | some { toFin := ⟨0, ⋯⟩ } => some x) + fun y' => if y' = 0#5 ∨ x_2 = intMin 5 ∧ y' = 31#5 then none else some (x_2.sdiv y') := sorry + +theorem srem_common_dividend_defined_cond_thm (x : BitVec 1) : + (match some x with + | none => none + | some { toFin := ⟨1, ⋯⟩ } => none + | some { toFin := ⟨0, ⋯⟩ } => none) ⊑ + none := sorry +info: ././././SSA/Projects/InstCombine/tests/LLVM/gselecthdivrem.lean:267:17: theorem srem_common_dividend_defined_cond_thm : + ∀ (x : BitVec 5) (x_1 : BitVec 1), + (match some x_1 with + | none => none + | some { toFin := ⟨1, ⋯⟩ } => none + | some { toFin := ⟨0, ⋯⟩ } => none) ⊑ + Option.bind + (match some x_1 with + | none => none + | some { toFin := ⟨1, ⋯⟩ } => none + | some { toFin := ⟨0, ⋯⟩ } => none) + fun y' => + Option.map (fun div => x - div * y') + (if y' = 0#5 ∨ x = intMin 5 ∧ y' = 31#5 then none else some (x.sdiv y')) := sorry +info: ././././SSA/Projects/InstCombine/tests/LLVM/gselecthdivrem.lean:267:17: theorem srem_common_dividend_defined_cond_thm : + BitVec 5 → + ∀ (x : BitVec 1), + (match some x with + | none => none + | some { toFin := ⟨1, ⋯⟩ } => none + | some { toFin := ⟨0, ⋯⟩ } => none) ⊑ + none := sorry +info: ././././SSA/Projects/InstCombine/tests/LLVM/gselecthdivrem.lean:267:17: theorem srem_common_dividend_defined_cond_thm : + ∀ (x x_1 : BitVec 5) (x_2 : BitVec 1), + (match some x_2 with + | none => none + | some { toFin := ⟨1, ⋯⟩ } => + Option.map (fun div => x_1 - div * x) (if x = 0#5 ∨ x_1 = intMin 5 ∧ x = 31#5 then none else some (x_1.sdiv x)) + | some { toFin := ⟨0, ⋯⟩ } => none) ⊑ + Option.bind + (match some x_2 with + | none => none + | some { toFin := ⟨1, ⋯⟩ } => some x + | some { toFin := ⟨0, ⋯⟩ } => none) + fun y' => + Option.map (fun div => x_1 - div * y') + (if y' = 0#5 ∨ x_1 = intMin 5 ∧ y' = 31#5 then none else some (x_1.sdiv y')) := sorry +info: ././././SSA/Projects/InstCombine/tests/LLVM/gselecthdivrem.lean:267:17: theorem srem_common_dividend_defined_cond_thm : + BitVec 5 → + ∀ (x : BitVec 1), + (match some x with + | none => none + | some { toFin := ⟨1, ⋯⟩ } => none + | some { toFin := ⟨0, ⋯⟩ } => none) ⊑ + none := sorry +info: ././././SSA/Projects/InstCombine/tests/LLVM/gselecthdivrem.lean:267:17: theorem srem_common_dividend_defined_cond_thm : + ∀ (x x_1 : BitVec 5) (x_2 : BitVec 1), + (match some x_2 with + | none => none + | some { toFin := ⟨1, ⋯⟩ } => none + | some { toFin := ⟨0, ⋯⟩ } => + Option.map (fun div => x_1 - div * x) + (if x = 0#5 ∨ x_1 = intMin 5 ∧ x = 31#5 then none else some (x_1.sdiv x))) ⊑ + Option.bind + (match some x_2 with + | none => none + | some { toFin := ⟨1, ⋯⟩ } => none + | some { toFin := ⟨0, ⋯⟩ } => some x) + fun y' => + Option.map (fun div => x_1 - div * y') + (if y' = 0#5 ∨ x_1 = intMin 5 ∧ y' = 31#5 then none else some (x_1.sdiv y')) := sorry +info: ././././SSA/Projects/InstCombine/tests/LLVM/gselecthdivrem.lean:267:17: theorem srem_common_dividend_defined_cond_thm : + BitVec 5 → + BitVec 5 → + ∀ (x : BitVec 1), + (match some x with + | none => none + | some { toFin := ⟨1, ⋯⟩ } => none + | some { toFin := ⟨0, ⋯⟩ } => none) ⊑ + none := sorry +info: ././././SSA/Projects/InstCombine/tests/LLVM/gselecthdivrem.lean:267:17: theorem srem_common_dividend_defined_cond_thm : + ∀ (x x_1 x_2 : BitVec 5) (x_3 : BitVec 1), + (match some x_3 with + | none => none + | some { toFin := ⟨1, ⋯⟩ } => + Option.map (fun div => x_2 - div * x_1) + (if x_1 = 0#5 ∨ x_2 = intMin 5 ∧ x_1 = 31#5 then none else some (x_2.sdiv x_1)) + | some { toFin := ⟨0, ⋯⟩ } => + Option.map (fun div => x_2 - div * x) + (if x = 0#5 ∨ x_2 = intMin 5 ∧ x = 31#5 then none else some (x_2.sdiv x))) ⊑ + Option.bind + (match some x_3 with + | none => none + | some { toFin := ⟨1, ⋯⟩ } => some x_1 + | some { toFin := ⟨0, ⋯⟩ } => some x) + fun y' => + Option.map (fun div => x_2 - div * y') + (if y' = 0#5 ∨ x_2 = intMin 5 ∧ y' = 31#5 then none else some (x_2.sdiv y')) := sorry + +theorem udiv_common_dividend_defined_cond_thm (x : BitVec 1) : + (match some x with + | none => none + | some { toFin := ⟨1, ⋯⟩ } => none + | some { toFin := ⟨0, ⋯⟩ } => none) ⊑ + none := sorry +info: ././././SSA/Projects/InstCombine/tests/LLVM/gselecthdivrem.lean:299:17: theorem udiv_common_dividend_defined_cond_thm : + ∀ (x : BitVec 5) (x_1 : BitVec 1), + (match some x_1 with + | none => none + | some { toFin := ⟨1, ⋯⟩ } => none + | some { toFin := ⟨0, ⋯⟩ } => none) ⊑ + Option.bind + (match some x_1 with + | none => none + | some { toFin := ⟨1, ⋯⟩ } => none + | some { toFin := ⟨0, ⋯⟩ } => none) + fun y' => if y' = 0#5 then none else some (x / y') := sorry +info: ././././SSA/Projects/InstCombine/tests/LLVM/gselecthdivrem.lean:299:17: theorem udiv_common_dividend_defined_cond_thm : + BitVec 5 → + ∀ (x : BitVec 1), + (match some x with + | none => none + | some { toFin := ⟨1, ⋯⟩ } => none + | some { toFin := ⟨0, ⋯⟩ } => none) ⊑ + none := sorry +info: ././././SSA/Projects/InstCombine/tests/LLVM/gselecthdivrem.lean:299:17: theorem udiv_common_dividend_defined_cond_thm : + ∀ (x x_1 : BitVec 5) (x_2 : BitVec 1), + (match some x_2 with + | none => none + | some { toFin := ⟨1, ⋯⟩ } => if x = 0#5 then none else some (x_1 / x) + | some { toFin := ⟨0, ⋯⟩ } => none) ⊑ + Option.bind + (match some x_2 with + | none => none + | some { toFin := ⟨1, ⋯⟩ } => some x + | some { toFin := ⟨0, ⋯⟩ } => none) + fun y' => if y' = 0#5 then none else some (x_1 / y') := sorry +info: ././././SSA/Projects/InstCombine/tests/LLVM/gselecthdivrem.lean:299:17: theorem udiv_common_dividend_defined_cond_thm : + BitVec 5 → + ∀ (x : BitVec 1), + (match some x with + | none => none + | some { toFin := ⟨1, ⋯⟩ } => none + | some { toFin := ⟨0, ⋯⟩ } => none) ⊑ + none := sorry +info: ././././SSA/Projects/InstCombine/tests/LLVM/gselecthdivrem.lean:299:17: theorem udiv_common_dividend_defined_cond_thm : + ∀ (x x_1 : BitVec 5) (x_2 : BitVec 1), + (match some x_2 with + | none => none + | some { toFin := ⟨1, ⋯⟩ } => none + | some { toFin := ⟨0, ⋯⟩ } => if x = 0#5 then none else some (x_1 / x)) ⊑ + Option.bind + (match some x_2 with + | none => none + | some { toFin := ⟨1, ⋯⟩ } => none + | some { toFin := ⟨0, ⋯⟩ } => some x) + fun y' => if y' = 0#5 then none else some (x_1 / y') := sorry +info: ././././SSA/Projects/InstCombine/tests/LLVM/gselecthdivrem.lean:299:17: theorem udiv_common_dividend_defined_cond_thm : + BitVec 5 → + BitVec 5 → + ∀ (x : BitVec 1), + (match some x with + | none => none + | some { toFin := ⟨1, ⋯⟩ } => none + | some { toFin := ⟨0, ⋯⟩ } => none) ⊑ + none := sorry +info: ././././SSA/Projects/InstCombine/tests/LLVM/gselecthdivrem.lean:299:17: theorem udiv_common_dividend_defined_cond_thm : + ∀ (x x_1 x_2 : BitVec 5) (x_3 : BitVec 1), + (match some x_3 with + | none => none + | some { toFin := ⟨1, ⋯⟩ } => if x_1 = 0#5 then none else some (x_2 / x_1) + | some { toFin := ⟨0, ⋯⟩ } => if x = 0#5 then none else some (x_2 / x)) ⊑ + Option.bind + (match some x_3 with + | none => none + | some { toFin := ⟨1, ⋯⟩ } => some x_1 + | some { toFin := ⟨0, ⋯⟩ } => some x) + fun y' => if y' = 0#5 then none else some (x_2 / y') := sorry + +theorem urem_common_dividend_defined_cond_thm (x : BitVec 1) : + (match some x with + | none => none + | some { toFin := ⟨1, ⋯⟩ } => none + | some { toFin := ⟨0, ⋯⟩ } => none) ⊑ + none := sorry +info: ././././SSA/Projects/InstCombine/tests/LLVM/gselecthdivrem.lean:331:17: theorem urem_common_dividend_defined_cond_thm : + ∀ (x : BitVec 5) (x_1 : BitVec 1), + (match some x_1 with + | none => none + | some { toFin := ⟨1, ⋯⟩ } => none + | some { toFin := ⟨0, ⋯⟩ } => none) ⊑ + Option.bind + (match some x_1 with + | none => none + | some { toFin := ⟨1, ⋯⟩ } => none + | some { toFin := ⟨0, ⋯⟩ } => none) + fun y' => if y' = 0#5 then none else some (x % y') := sorry +info: ././././SSA/Projects/InstCombine/tests/LLVM/gselecthdivrem.lean:331:17: theorem urem_common_dividend_defined_cond_thm : + BitVec 5 → + ∀ (x : BitVec 1), + (match some x with + | none => none + | some { toFin := ⟨1, ⋯⟩ } => none + | some { toFin := ⟨0, ⋯⟩ } => none) ⊑ + none := sorry +info: ././././SSA/Projects/InstCombine/tests/LLVM/gselecthdivrem.lean:331:17: theorem urem_common_dividend_defined_cond_thm : + ∀ (x x_1 : BitVec 5) (x_2 : BitVec 1), + (match some x_2 with + | none => none + | some { toFin := ⟨1, ⋯⟩ } => if x = 0#5 then none else some (x_1 % x) + | some { toFin := ⟨0, ⋯⟩ } => none) ⊑ + Option.bind + (match some x_2 with + | none => none + | some { toFin := ⟨1, ⋯⟩ } => some x + | some { toFin := ⟨0, ⋯⟩ } => none) + fun y' => if y' = 0#5 then none else some (x_1 % y') := sorry +info: ././././SSA/Projects/InstCombine/tests/LLVM/gselecthdivrem.lean:331:17: theorem urem_common_dividend_defined_cond_thm : + BitVec 5 → + ∀ (x : BitVec 1), + (match some x with + | none => none + | some { toFin := ⟨1, ⋯⟩ } => none + | some { toFin := ⟨0, ⋯⟩ } => none) ⊑ + none := sorry +info: ././././SSA/Projects/InstCombine/tests/LLVM/gselecthdivrem.lean:331:17: theorem urem_common_dividend_defined_cond_thm : + ∀ (x x_1 : BitVec 5) (x_2 : BitVec 1), + (match some x_2 with + | none => none + | some { toFin := ⟨1, ⋯⟩ } => none + | some { toFin := ⟨0, ⋯⟩ } => if x = 0#5 then none else some (x_1 % x)) ⊑ + Option.bind + (match some x_2 with + | none => none + | some { toFin := ⟨1, ⋯⟩ } => none + | some { toFin := ⟨0, ⋯⟩ } => some x) + fun y' => if y' = 0#5 then none else some (x_1 % y') := sorry +info: ././././SSA/Projects/InstCombine/tests/LLVM/gselecthdivrem.lean:331:17: theorem urem_common_dividend_defined_cond_thm : + BitVec 5 → + BitVec 5 → + ∀ (x : BitVec 1), + (match some x with + | none => none + | some { toFin := ⟨1, ⋯⟩ } => none + | some { toFin := ⟨0, ⋯⟩ } => none) ⊑ + none := sorry +info: ././././SSA/Projects/InstCombine/tests/LLVM/gselecthdivrem.lean:331:17: theorem urem_common_dividend_defined_cond_thm : + ∀ (x x_1 x_2 : BitVec 5) (x_3 : BitVec 1), + (match some x_3 with + | none => none + | some { toFin := ⟨1, ⋯⟩ } => if x_1 = 0#5 then none else some (x_2 % x_1) + | some { toFin := ⟨0, ⋯⟩ } => if x = 0#5 then none else some (x_2 % x)) ⊑ + Option.bind + (match some x_3 with + | none => none + | some { toFin := ⟨1, ⋯⟩ } => some x_1 + | some { toFin := ⟨0, ⋯⟩ } => some x) + fun y' => if y' = 0#5 then none else some (x_2 % y') := sorry + diff --git a/SSA/Projects/InstCombine/tests/proofs/gselecthofhsymmetrichselects.lean b/SSA/Projects/InstCombine/tests/proofs/gselecthofhsymmetrichselects.lean new file mode 100644 index 000000000..ae35db4c3 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/proofs/gselecthofhsymmetrichselects.lean @@ -0,0 +1,110 @@ +import SSA.Projects.InstCombine.tests.proofs.gselecthofhsymmetrichselects_proof +import SSA.Projects.InstCombine.LLVM.PrettyEDSL +import SSA.Projects.InstCombine.TacticAuto +import SSA.Projects.InstCombine.LLVM.Semantics +open LLVM +open BitVec + +open MLIR AST +open Ctxt (Var) + +set_option linter.deprecated false +set_option linter.unreachableTactic false +set_option linter.unusedTactic false +section gselecthofhsymmetrichselects_statements + +def select_of_symmetric_selects_before := [llvm| +{ +^0(%arg33 : i32, %arg34 : i32, %arg35 : i1, %arg36 : i1): + %0 = "llvm.select"(%arg35, %arg33, %arg34) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i32, i32) -> i32 + %1 = "llvm.select"(%arg35, %arg34, %arg33) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i32, i32) -> i32 + %2 = "llvm.select"(%arg36, %0, %1) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i32, i32) -> i32 + "llvm.return"(%2) : (i32) -> () +} +] +def select_of_symmetric_selects_after := [llvm| +{ +^0(%arg33 : i32, %arg34 : i32, %arg35 : i1, %arg36 : i1): + %0 = llvm.xor %arg35, %arg36 : i1 + %1 = "llvm.select"(%0, %arg34, %arg33) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i32, i32) -> i32 + "llvm.return"(%1) : (i32) -> () +} +] +theorem select_of_symmetric_selects_proof : select_of_symmetric_selects_before ⊑ select_of_symmetric_selects_after := by + unfold select_of_symmetric_selects_before select_of_symmetric_selects_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN select_of_symmetric_selects + apply select_of_symmetric_selects_thm + ---END select_of_symmetric_selects + + + +def select_of_symmetric_selects_negative1_before := [llvm| +{ +^0(%arg29 : i32, %arg30 : i32, %arg31 : i1, %arg32 : i1): + %0 = "llvm.select"(%arg31, %arg29, %arg30) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i32, i32) -> i32 + %1 = "llvm.select"(%arg32, %arg30, %arg29) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i32, i32) -> i32 + %2 = "llvm.select"(%arg32, %0, %1) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i32, i32) -> i32 + "llvm.return"(%2) : (i32) -> () +} +] +def select_of_symmetric_selects_negative1_after := [llvm| +{ +^0(%arg29 : i32, %arg30 : i32, %arg31 : i1, %arg32 : i1): + %0 = "llvm.select"(%arg31, %arg29, %arg30) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i32, i32) -> i32 + %1 = "llvm.select"(%arg32, %0, %arg29) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i32, i32) -> i32 + "llvm.return"(%1) : (i32) -> () +} +] +theorem select_of_symmetric_selects_negative1_proof : select_of_symmetric_selects_negative1_before ⊑ select_of_symmetric_selects_negative1_after := by + unfold select_of_symmetric_selects_negative1_before select_of_symmetric_selects_negative1_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN select_of_symmetric_selects_negative1 + apply select_of_symmetric_selects_negative1_thm + ---END select_of_symmetric_selects_negative1 + + + +def select_of_symmetric_selects_commuted_before := [llvm| +{ +^0(%arg12 : i32, %arg13 : i32, %arg14 : i1, %arg15 : i1): + %0 = "llvm.select"(%arg14, %arg12, %arg13) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i32, i32) -> i32 + %1 = "llvm.select"(%arg14, %arg13, %arg12) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i32, i32) -> i32 + %2 = "llvm.select"(%arg15, %1, %0) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i32, i32) -> i32 + "llvm.return"(%2) : (i32) -> () +} +] +def select_of_symmetric_selects_commuted_after := [llvm| +{ +^0(%arg12 : i32, %arg13 : i32, %arg14 : i1, %arg15 : i1): + %0 = llvm.xor %arg14, %arg15 : i1 + %1 = "llvm.select"(%0, %arg12, %arg13) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i32, i32) -> i32 + "llvm.return"(%1) : (i32) -> () +} +] +theorem select_of_symmetric_selects_commuted_proof : select_of_symmetric_selects_commuted_before ⊑ select_of_symmetric_selects_commuted_after := by + unfold select_of_symmetric_selects_commuted_before select_of_symmetric_selects_commuted_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN select_of_symmetric_selects_commuted + apply select_of_symmetric_selects_commuted_thm + ---END select_of_symmetric_selects_commuted + + diff --git a/SSA/Projects/InstCombine/tests/proofs/gselecthofhsymmetrichselects_proof.lean b/SSA/Projects/InstCombine/tests/proofs/gselecthofhsymmetrichselects_proof.lean new file mode 100644 index 000000000..8ece66129 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/proofs/gselecthofhsymmetrichselects_proof.lean @@ -0,0 +1,358 @@ + +import SSA.Projects.InstCombine.TacticAuto +import SSA.Projects.InstCombine.LLVM.Semantics +open BitVec + +section gselecthofhsymmetrichselects_proof +theorem select_of_symmetric_selects_thm (x : BitVec 1) : + (match some x with + | none => none + | some { toFin := ⟨1, ⋯⟩ } => none + | some { toFin := ⟨0, ⋯⟩ } => none) ⊑ + none := sorry +info: ././././SSA/Projects/InstCombine/tests/LLVM/gselecthofhsymmetrichselects.lean:43:17: theorem select_of_symmetric_selects_thm : + ∀ (x x_1 : BitVec 1), + (match some x_1 with + | none => none + | some { toFin := ⟨1, ⋯⟩ } => + match some x with + | none => none + | some { toFin := ⟨1, ⋯⟩ } => none + | some { toFin := ⟨0, ⋯⟩ } => none + | some { toFin := ⟨0, ⋯⟩ } => + match some x with + | none => none + | some { toFin := ⟨1, ⋯⟩ } => none + | some { toFin := ⟨0, ⋯⟩ } => none) ⊑ + match some (x ^^^ x_1) with + | none => none + | some { toFin := ⟨1, ⋯⟩ } => none + | some { toFin := ⟨0, ⋯⟩ } => none := sorry +info: ././././SSA/Projects/InstCombine/tests/LLVM/gselecthofhsymmetrichselects.lean:43:17: theorem select_of_symmetric_selects_thm : + BitVec 32 → + ∀ (x : BitVec 1), + (match some x with + | none => none + | some { toFin := ⟨1, ⋯⟩ } => none + | some { toFin := ⟨0, ⋯⟩ } => none) ⊑ + none := sorry +info: ././././SSA/Projects/InstCombine/tests/LLVM/gselecthofhsymmetrichselects.lean:43:17: theorem select_of_symmetric_selects_thm : + ∀ (x : BitVec 32) (x_1 x_2 : BitVec 1), + (match some x_2 with + | none => none + | some { toFin := ⟨1, ⋯⟩ } => + match some x_1 with + | none => none + | some { toFin := ⟨1, ⋯⟩ } => some x + | some { toFin := ⟨0, ⋯⟩ } => none + | some { toFin := ⟨0, ⋯⟩ } => + match some x_1 with + | none => none + | some { toFin := ⟨1, ⋯⟩ } => none + | some { toFin := ⟨0, ⋯⟩ } => some x) ⊑ + match some (x_1 ^^^ x_2) with + | none => none + | some { toFin := ⟨1, ⋯⟩ } => none + | some { toFin := ⟨0, ⋯⟩ } => some x := sorry +info: ././././SSA/Projects/InstCombine/tests/LLVM/gselecthofhsymmetrichselects.lean:43:17: theorem select_of_symmetric_selects_thm : + BitVec 32 → + ∀ (x : BitVec 1), + (match some x with + | none => none + | some { toFin := ⟨1, ⋯⟩ } => none + | some { toFin := ⟨0, ⋯⟩ } => none) ⊑ + none := sorry +info: ././././SSA/Projects/InstCombine/tests/LLVM/gselecthofhsymmetrichselects.lean:43:17: theorem select_of_symmetric_selects_thm : + ∀ (x : BitVec 32) (x_1 x_2 : BitVec 1), + (match some x_2 with + | none => none + | some { toFin := ⟨1, ⋯⟩ } => + match some x_1 with + | none => none + | some { toFin := ⟨1, ⋯⟩ } => none + | some { toFin := ⟨0, ⋯⟩ } => some x + | some { toFin := ⟨0, ⋯⟩ } => + match some x_1 with + | none => none + | some { toFin := ⟨1, ⋯⟩ } => some x + | some { toFin := ⟨0, ⋯⟩ } => none) ⊑ + match some (x_1 ^^^ x_2) with + | none => none + | some { toFin := ⟨1, ⋯⟩ } => some x + | some { toFin := ⟨0, ⋯⟩ } => none := sorry +info: ././././SSA/Projects/InstCombine/tests/LLVM/gselecthofhsymmetrichselects.lean:43:17: theorem select_of_symmetric_selects_thm : + BitVec 32 → + BitVec 32 → + ∀ (x : BitVec 1), + (match some x with + | none => none + | some { toFin := ⟨1, ⋯⟩ } => none + | some { toFin := ⟨0, ⋯⟩ } => none) ⊑ + none := sorry +info: ././././SSA/Projects/InstCombine/tests/LLVM/gselecthofhsymmetrichselects.lean:43:17: theorem select_of_symmetric_selects_thm : + ∀ (x x_1 : BitVec 32) (x_2 x_3 : BitVec 1), + (match some x_3 with + | none => none + | some { toFin := ⟨1, ⋯⟩ } => + match some x_2 with + | none => none + | some { toFin := ⟨1, ⋯⟩ } => some x_1 + | some { toFin := ⟨0, ⋯⟩ } => some x + | some { toFin := ⟨0, ⋯⟩ } => + match some x_2 with + | none => none + | some { toFin := ⟨1, ⋯⟩ } => some x + | some { toFin := ⟨0, ⋯⟩ } => some x_1) ⊑ + match some (x_2 ^^^ x_3) with + | none => none + | some { toFin := ⟨1, ⋯⟩ } => some x + | some { toFin := ⟨0, ⋯⟩ } => some x_1 := sorry + +theorem select_of_symmetric_selects_negative1_thm (x : BitVec 1) : + (match some x with + | none => none + | some { toFin := ⟨1, ⋯⟩ } => none + | some { toFin := ⟨0, ⋯⟩ } => + match some x with + | none => none + | some { toFin := ⟨1, ⋯⟩ } => none + | some { toFin := ⟨0, ⋯⟩ } => none) ⊑ + match some x with + | none => none + | some { toFin := ⟨1, ⋯⟩ } => none + | some { toFin := ⟨0, ⋯⟩ } => none := sorry +info: ././././SSA/Projects/InstCombine/tests/LLVM/gselecthofhsymmetrichselects.lean:75:17: theorem select_of_symmetric_selects_negative1_thm : + ∀ (x x_1 : BitVec 1), + (match some x_1 with + | none => none + | some { toFin := ⟨1, ⋯⟩ } => + match some x with + | none => none + | some { toFin := ⟨1, ⋯⟩ } => none + | some { toFin := ⟨0, ⋯⟩ } => none + | some { toFin := ⟨0, ⋯⟩ } => + match some x_1 with + | none => none + | some { toFin := ⟨1, ⋯⟩ } => none + | some { toFin := ⟨0, ⋯⟩ } => none) ⊑ + match some x_1 with + | none => none + | some { toFin := ⟨1, ⋯⟩ } => + match some x with + | none => none + | some { toFin := ⟨1, ⋯⟩ } => none + | some { toFin := ⟨0, ⋯⟩ } => none + | some { toFin := ⟨0, ⋯⟩ } => none := sorry +info: ././././SSA/Projects/InstCombine/tests/LLVM/gselecthofhsymmetrichselects.lean:75:17: theorem select_of_symmetric_selects_negative1_thm : + ∀ (x : BitVec 32) (x_1 : BitVec 1), + (match some x_1 with + | none => none + | some { toFin := ⟨1, ⋯⟩ } => none + | some { toFin := ⟨0, ⋯⟩ } => + match some x_1 with + | none => none + | some { toFin := ⟨1, ⋯⟩ } => none + | some { toFin := ⟨0, ⋯⟩ } => some x) ⊑ + match some x_1 with + | none => none + | some { toFin := ⟨1, ⋯⟩ } => none + | some { toFin := ⟨0, ⋯⟩ } => some x := sorry +info: ././././SSA/Projects/InstCombine/tests/LLVM/gselecthofhsymmetrichselects.lean:75:17: theorem select_of_symmetric_selects_negative1_thm : + ∀ (x : BitVec 32) (x_1 x_2 : BitVec 1), + (match some x_2 with + | none => none + | some { toFin := ⟨1, ⋯⟩ } => + match some x_1 with + | none => none + | some { toFin := ⟨1, ⋯⟩ } => some x + | some { toFin := ⟨0, ⋯⟩ } => none + | some { toFin := ⟨0, ⋯⟩ } => + match some x_2 with + | none => none + | some { toFin := ⟨1, ⋯⟩ } => none + | some { toFin := ⟨0, ⋯⟩ } => some x) ⊑ + match some x_2 with + | none => none + | some { toFin := ⟨1, ⋯⟩ } => + match some x_1 with + | none => none + | some { toFin := ⟨1, ⋯⟩ } => some x + | some { toFin := ⟨0, ⋯⟩ } => none + | some { toFin := ⟨0, ⋯⟩ } => some x := sorry +info: ././././SSA/Projects/InstCombine/tests/LLVM/gselecthofhsymmetrichselects.lean:75:17: theorem select_of_symmetric_selects_negative1_thm : + ∀ (x : BitVec 32) (x_1 : BitVec 1), + (match some x_1 with + | none => none + | some { toFin := ⟨1, ⋯⟩ } => none + | some { toFin := ⟨0, ⋯⟩ } => + match some x_1 with + | none => none + | some { toFin := ⟨1, ⋯⟩ } => some x + | some { toFin := ⟨0, ⋯⟩ } => none) ⊑ + match some x_1 with + | none => none + | some { toFin := ⟨1, ⋯⟩ } => none + | some { toFin := ⟨0, ⋯⟩ } => none := sorry +info: ././././SSA/Projects/InstCombine/tests/LLVM/gselecthofhsymmetrichselects.lean:75:17: theorem select_of_symmetric_selects_negative1_thm : + ∀ (x : BitVec 32) (x_1 x_2 : BitVec 1), + (match some x_2 with + | none => none + | some { toFin := ⟨1, ⋯⟩ } => + match some x_1 with + | none => none + | some { toFin := ⟨1, ⋯⟩ } => none + | some { toFin := ⟨0, ⋯⟩ } => some x + | some { toFin := ⟨0, ⋯⟩ } => + match some x_2 with + | none => none + | some { toFin := ⟨1, ⋯⟩ } => some x + | some { toFin := ⟨0, ⋯⟩ } => none) ⊑ + match some x_2 with + | none => none + | some { toFin := ⟨1, ⋯⟩ } => + match some x_1 with + | none => none + | some { toFin := ⟨1, ⋯⟩ } => none + | some { toFin := ⟨0, ⋯⟩ } => some x + | some { toFin := ⟨0, ⋯⟩ } => none := sorry +info: ././././SSA/Projects/InstCombine/tests/LLVM/gselecthofhsymmetrichselects.lean:75:17: theorem select_of_symmetric_selects_negative1_thm : + ∀ (x x_1 : BitVec 32) (x_2 : BitVec 1), + (match some x_2 with + | none => none + | some { toFin := ⟨1, ⋯⟩ } => none + | some { toFin := ⟨0, ⋯⟩ } => + match some x_2 with + | none => none + | some { toFin := ⟨1, ⋯⟩ } => some x + | some { toFin := ⟨0, ⋯⟩ } => some x_1) ⊑ + match some x_2 with + | none => none + | some { toFin := ⟨1, ⋯⟩ } => none + | some { toFin := ⟨0, ⋯⟩ } => some x_1 := sorry +info: ././././SSA/Projects/InstCombine/tests/LLVM/gselecthofhsymmetrichselects.lean:75:17: theorem select_of_symmetric_selects_negative1_thm : + ∀ (x x_1 : BitVec 32) (x_2 x_3 : BitVec 1), + (match some x_3 with + | none => none + | some { toFin := ⟨1, ⋯⟩ } => + match some x_2 with + | none => none + | some { toFin := ⟨1, ⋯⟩ } => some x_1 + | some { toFin := ⟨0, ⋯⟩ } => some x + | some { toFin := ⟨0, ⋯⟩ } => + match some x_3 with + | none => none + | some { toFin := ⟨1, ⋯⟩ } => some x + | some { toFin := ⟨0, ⋯⟩ } => some x_1) ⊑ + match some x_3 with + | none => none + | some { toFin := ⟨1, ⋯⟩ } => + match some x_2 with + | none => none + | some { toFin := ⟨1, ⋯⟩ } => some x_1 + | some { toFin := ⟨0, ⋯⟩ } => some x + | some { toFin := ⟨0, ⋯⟩ } => some x_1 := sorry + +theorem select_of_symmetric_selects_commuted_thm (x : BitVec 1) : + (match some x with + | none => none + | some { toFin := ⟨1, ⋯⟩ } => none + | some { toFin := ⟨0, ⋯⟩ } => none) ⊑ + none := sorry +info: ././././SSA/Projects/InstCombine/tests/LLVM/gselecthofhsymmetrichselects.lean:107:17: theorem select_of_symmetric_selects_commuted_thm : + ∀ (x x_1 : BitVec 1), + (match some x_1 with + | none => none + | some { toFin := ⟨1, ⋯⟩ } => + match some x with + | none => none + | some { toFin := ⟨1, ⋯⟩ } => none + | some { toFin := ⟨0, ⋯⟩ } => none + | some { toFin := ⟨0, ⋯⟩ } => + match some x with + | none => none + | some { toFin := ⟨1, ⋯⟩ } => none + | some { toFin := ⟨0, ⋯⟩ } => none) ⊑ + match some (x ^^^ x_1) with + | none => none + | some { toFin := ⟨1, ⋯⟩ } => none + | some { toFin := ⟨0, ⋯⟩ } => none := sorry +info: ././././SSA/Projects/InstCombine/tests/LLVM/gselecthofhsymmetrichselects.lean:107:17: theorem select_of_symmetric_selects_commuted_thm : + BitVec 32 → + ∀ (x : BitVec 1), + (match some x with + | none => none + | some { toFin := ⟨1, ⋯⟩ } => none + | some { toFin := ⟨0, ⋯⟩ } => none) ⊑ + none := sorry +info: ././././SSA/Projects/InstCombine/tests/LLVM/gselecthofhsymmetrichselects.lean:107:17: theorem select_of_symmetric_selects_commuted_thm : + ∀ (x : BitVec 32) (x_1 x_2 : BitVec 1), + (match some x_2 with + | none => none + | some { toFin := ⟨1, ⋯⟩ } => + match some x_1 with + | none => none + | some { toFin := ⟨1, ⋯⟩ } => some x + | some { toFin := ⟨0, ⋯⟩ } => none + | some { toFin := ⟨0, ⋯⟩ } => + match some x_1 with + | none => none + | some { toFin := ⟨1, ⋯⟩ } => none + | some { toFin := ⟨0, ⋯⟩ } => some x) ⊑ + match some (x_1 ^^^ x_2) with + | none => none + | some { toFin := ⟨1, ⋯⟩ } => none + | some { toFin := ⟨0, ⋯⟩ } => some x := sorry +info: ././././SSA/Projects/InstCombine/tests/LLVM/gselecthofhsymmetrichselects.lean:107:17: theorem select_of_symmetric_selects_commuted_thm : + BitVec 32 → + ∀ (x : BitVec 1), + (match some x with + | none => none + | some { toFin := ⟨1, ⋯⟩ } => none + | some { toFin := ⟨0, ⋯⟩ } => none) ⊑ + none := sorry +info: ././././SSA/Projects/InstCombine/tests/LLVM/gselecthofhsymmetrichselects.lean:107:17: theorem select_of_symmetric_selects_commuted_thm : + ∀ (x : BitVec 32) (x_1 x_2 : BitVec 1), + (match some x_2 with + | none => none + | some { toFin := ⟨1, ⋯⟩ } => + match some x_1 with + | none => none + | some { toFin := ⟨1, ⋯⟩ } => none + | some { toFin := ⟨0, ⋯⟩ } => some x + | some { toFin := ⟨0, ⋯⟩ } => + match some x_1 with + | none => none + | some { toFin := ⟨1, ⋯⟩ } => some x + | some { toFin := ⟨0, ⋯⟩ } => none) ⊑ + match some (x_1 ^^^ x_2) with + | none => none + | some { toFin := ⟨1, ⋯⟩ } => some x + | some { toFin := ⟨0, ⋯⟩ } => none := sorry +info: ././././SSA/Projects/InstCombine/tests/LLVM/gselecthofhsymmetrichselects.lean:107:17: theorem select_of_symmetric_selects_commuted_thm : + BitVec 32 → + BitVec 32 → + ∀ (x : BitVec 1), + (match some x with + | none => none + | some { toFin := ⟨1, ⋯⟩ } => none + | some { toFin := ⟨0, ⋯⟩ } => none) ⊑ + none := sorry +info: ././././SSA/Projects/InstCombine/tests/LLVM/gselecthofhsymmetrichselects.lean:107:17: theorem select_of_symmetric_selects_commuted_thm : + ∀ (x x_1 : BitVec 32) (x_2 x_3 : BitVec 1), + (match some x_3 with + | none => none + | some { toFin := ⟨1, ⋯⟩ } => + match some x_2 with + | none => none + | some { toFin := ⟨1, ⋯⟩ } => some x_1 + | some { toFin := ⟨0, ⋯⟩ } => some x + | some { toFin := ⟨0, ⋯⟩ } => + match some x_2 with + | none => none + | some { toFin := ⟨1, ⋯⟩ } => some x + | some { toFin := ⟨0, ⋯⟩ } => some x_1) ⊑ + match some (x_2 ^^^ x_3) with + | none => none + | some { toFin := ⟨1, ⋯⟩ } => some x + | some { toFin := ⟨0, ⋯⟩ } => some x_1 := sorry + diff --git a/SSA/Projects/InstCombine/tests/proofs/gselecthwithhbitwisehops.lean b/SSA/Projects/InstCombine/tests/proofs/gselecthwithhbitwisehops.lean new file mode 100644 index 000000000..1d2e5990c --- /dev/null +++ b/SSA/Projects/InstCombine/tests/proofs/gselecthwithhbitwisehops.lean @@ -0,0 +1,52 @@ +import SSA.Projects.InstCombine.tests.proofs.gselecthwithhbitwisehops_proof +import SSA.Projects.InstCombine.LLVM.PrettyEDSL +import SSA.Projects.InstCombine.TacticAuto +import SSA.Projects.InstCombine.LLVM.Semantics +open LLVM +open BitVec + +open MLIR AST +open Ctxt (Var) + +set_option linter.deprecated false +set_option linter.unreachableTactic false +set_option linter.unusedTactic false +section gselecthwithhbitwisehops_statements + +def set_bits_before := [llvm| +{ +^0(%arg26 : i8, %arg27 : i1): + %0 = "llvm.mlir.constant"() <{value = -6 : i8}> : () -> i8 + %1 = "llvm.mlir.constant"() <{value = 5 : i8}> : () -> i8 + %2 = llvm.and %arg26, %0 : i8 + %3 = llvm.or %arg26, %1 : i8 + %4 = "llvm.select"(%arg27, %3, %2) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i8, i8) -> i8 + "llvm.return"(%4) : (i8) -> () +} +] +def set_bits_after := [llvm| +{ +^0(%arg26 : i8, %arg27 : i1): + %0 = "llvm.mlir.constant"() <{value = -6 : i8}> : () -> i8 + %1 = "llvm.mlir.constant"() <{value = 5 : i8}> : () -> i8 + %2 = "llvm.mlir.constant"() <{value = 0 : i8}> : () -> i8 + %3 = llvm.and %arg26, %0 : i8 + %4 = "llvm.select"(%arg27, %1, %2) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i8, i8) -> i8 + %5 = llvm.or %3, %4 : i8 + "llvm.return"(%5) : (i8) -> () +} +] +theorem set_bits_proof : set_bits_before ⊑ set_bits_after := by + unfold set_bits_before set_bits_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN set_bits + apply set_bits_thm + ---END set_bits + + diff --git a/SSA/Projects/InstCombine/tests/proofs/gselecthwithhbitwisehops_proof.lean b/SSA/Projects/InstCombine/tests/proofs/gselecthwithhbitwisehops_proof.lean new file mode 100644 index 000000000..b87e8de66 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/proofs/gselecthwithhbitwisehops_proof.lean @@ -0,0 +1,25 @@ + +import SSA.Projects.InstCombine.TacticAuto +import SSA.Projects.InstCombine.LLVM.Semantics +open BitVec + +section gselecthwithhbitwisehops_proof +theorem set_bits_thm (x : BitVec 1) : + (match some x with + | none => none + | some { toFin := ⟨1, ⋯⟩ } => none + | some { toFin := ⟨0, ⋯⟩ } => none) ⊑ + none := sorry +info: ././././SSA/Projects/InstCombine/tests/LLVM/gselecthwithhbitwisehops.lean:49:17: theorem set_bits_thm : + ∀ (x : BitVec 8) (x_1 : BitVec 1), + (match some x_1 with + | none => none + | some { toFin := ⟨1, ⋯⟩ } => some (x ||| 5#8) + | some { toFin := ⟨0, ⋯⟩ } => some (x &&& 250#8)) ⊑ + Option.bind + (match some x_1 with + | none => none + | some { toFin := ⟨1, ⋯⟩ } => some 5#8 + | some { toFin := ⟨0, ⋯⟩ } => some 0#8) + fun y' => some (x &&& 250#8 ||| y') := sorry + diff --git a/SSA/Projects/InstCombine/tests/proofs/gshifthshift.lean b/SSA/Projects/InstCombine/tests/proofs/gshifthshift.lean index 00829642b..5c61d5db5 100644 --- a/SSA/Projects/InstCombine/tests/proofs/gshifthshift.lean +++ b/SSA/Projects/InstCombine/tests/proofs/gshifthshift.lean @@ -77,6 +77,41 @@ theorem lshr_lshr_proof : lshr_lshr_before ⊑ lshr_lshr_after := by +def shl_shl_constants_div_before := [llvm| +{ +^0(%arg27 : i32, %arg28 : i32): + %0 = "llvm.mlir.constant"() <{value = 1 : i32}> : () -> i32 + %1 = "llvm.mlir.constant"() <{value = 2 : i32}> : () -> i32 + %2 = llvm.shl %0, %arg28 : i32 + %3 = llvm.shl %2, %1 : i32 + %4 = llvm.udiv %arg27, %3 : i32 + "llvm.return"(%4) : (i32) -> () +} +] +def shl_shl_constants_div_after := [llvm| +{ +^0(%arg27 : i32, %arg28 : i32): + %0 = "llvm.mlir.constant"() <{value = 2 : i32}> : () -> i32 + %1 = llvm.add %arg28, %0 : i32 + %2 = llvm.lshr %arg27, %1 : i32 + "llvm.return"(%2) : (i32) -> () +} +] +theorem shl_shl_constants_div_proof : shl_shl_constants_div_before ⊑ shl_shl_constants_div_after := by + unfold shl_shl_constants_div_before shl_shl_constants_div_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN shl_shl_constants_div + apply shl_shl_constants_div_thm + ---END shl_shl_constants_div + + + def ashr_shl_constants_before := [llvm| { ^0(%arg25 : i32): diff --git a/SSA/Projects/InstCombine/tests/proofs/gshifthshift_proof.lean b/SSA/Projects/InstCombine/tests/proofs/gshifthshift_proof.lean index 900728ebf..357fd5b52 100644 --- a/SSA/Projects/InstCombine/tests/proofs/gshifthshift_proof.lean +++ b/SSA/Projects/InstCombine/tests/proofs/gshifthshift_proof.lean @@ -8,6 +8,11 @@ theorem shl_shl_thm (x : BitVec 32) : x <<< 34 = 0#32 := sorry theorem lshr_lshr_thm (x : BitVec 232) : x >>> 232 = 0#232 := sorry +theorem shl_shl_constants_div_thm (x x_1 : BitVec 32) : + (Option.bind (if 32#32 ≤ x then none else some (1#32 <<< x.toNat)) fun x => + if x <<< 2 = 0#32 then none else some (x_1 / x <<< 2)) ⊑ + if 32#32 ≤ x + 2#32 then none else some (x_1 >>> ((x.toNat + 2) % 4294967296)) := sorry + theorem ashr_shl_constants_thm (x : BitVec 32) : (Option.bind (if 32#32 ≤ x then none else some ((4294967263#32).sshiftRight x.toNat)) fun x' => some (x' <<< 3)) ⊑ Option.bind (if 32#32 ≤ x then none else some ((4294967263#32).sshiftRight x.toNat)) fun x' => diff --git a/SSA/Projects/InstCombine/tests/proofs/gsubhofhnegatible.lean b/SSA/Projects/InstCombine/tests/proofs/gsubhofhnegatible.lean index 9c5464c20..9f2f09ac4 100644 --- a/SSA/Projects/InstCombine/tests/proofs/gsubhofhnegatible.lean +++ b/SSA/Projects/InstCombine/tests/proofs/gsubhofhnegatible.lean @@ -77,6 +77,112 @@ theorem t2_proof : t2_before ⊑ t2_after := by +def t4_before := [llvm| +{ +^0(%arg200 : i8, %arg201 : i1): + %0 = "llvm.mlir.constant"() <{value = -42 : i8}> : () -> i8 + %1 = "llvm.mlir.constant"() <{value = 44 : i8}> : () -> i8 + %2 = "llvm.select"(%arg201, %0, %1) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i8, i8) -> i8 + %3 = llvm.sub %arg200, %2 : i8 + "llvm.return"(%3) : (i8) -> () +} +] +def t4_after := [llvm| +{ +^0(%arg200 : i8, %arg201 : i1): + %0 = "llvm.mlir.constant"() <{value = 42 : i8}> : () -> i8 + %1 = "llvm.mlir.constant"() <{value = -44 : i8}> : () -> i8 + %2 = "llvm.select"(%arg201, %0, %1) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i8, i8) -> i8 + %3 = llvm.add %2, %arg200 : i8 + "llvm.return"(%3) : (i8) -> () +} +] +theorem t4_proof : t4_before ⊑ t4_after := by + unfold t4_before t4_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN t4 + apply t4_thm + ---END t4 + + + +def PR52261_before := [llvm| +{ +^0(%arg198 : i1): + %0 = "llvm.mlir.constant"() <{value = 2 : i32}> : () -> i32 + %1 = "llvm.mlir.constant"() <{value = -2 : i32}> : () -> i32 + %2 = "llvm.mlir.constant"() <{value = 0 : i32}> : () -> i32 + %3 = "llvm.select"(%arg198, %0, %1) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i32, i32) -> i32 + %4 = llvm.sub %2, %3 overflow : i32 + %5 = llvm.and %3, %4 : i32 + "llvm.return"(%5) : (i32) -> () +} +] +def PR52261_after := [llvm| +{ +^0(%arg198 : i1): + %0 = "llvm.mlir.constant"() <{value = 2 : i32}> : () -> i32 + "llvm.return"(%0) : (i32) -> () +} +] +theorem PR52261_proof : PR52261_before ⊑ PR52261_after := by + unfold PR52261_before PR52261_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN PR52261 + apply PR52261_thm + ---END PR52261 + + + +def t7_before := [llvm| +{ +^0(%arg187 : i8, %arg188 : i1, %arg189 : i8): + %0 = "llvm.mlir.constant"() <{value = 1 : i8}> : () -> i8 + %1 = "llvm.mlir.constant"() <{value = 0 : i8}> : () -> i8 + %2 = llvm.shl %0, %arg189 : i8 + %3 = "llvm.select"(%arg188, %1, %2) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i8, i8) -> i8 + %4 = llvm.sub %arg187, %3 : i8 + "llvm.return"(%4) : (i8) -> () +} +] +def t7_after := [llvm| +{ +^0(%arg187 : i8, %arg188 : i1, %arg189 : i8): + %0 = "llvm.mlir.constant"() <{value = -1 : i8}> : () -> i8 + %1 = "llvm.mlir.constant"() <{value = 0 : i8}> : () -> i8 + %2 = llvm.shl %0, %arg189 overflow : i8 + %3 = "llvm.select"(%arg188, %1, %2) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i8, i8) -> i8 + %4 = llvm.add %3, %arg187 : i8 + "llvm.return"(%4) : (i8) -> () +} +] +theorem t7_proof : t7_before ⊑ t7_after := by + unfold t7_before t7_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN t7 + apply t7_thm + ---END t7 + + + def t9_before := [llvm| { ^0(%arg182 : i8, %arg183 : i8): diff --git a/SSA/Projects/InstCombine/tests/proofs/gsubhofhnegatible_proof.lean b/SSA/Projects/InstCombine/tests/proofs/gsubhofhnegatible_proof.lean index dbd1600f6..45e9e6bb9 100644 --- a/SSA/Projects/InstCombine/tests/proofs/gsubhofhnegatible_proof.lean +++ b/SSA/Projects/InstCombine/tests/proofs/gsubhofhnegatible_proof.lean @@ -10,6 +10,67 @@ theorem t2_thm (x x_1 : BitVec 8) : (Option.bind (if 8#8 ≤ x then none else some (214#8 <<< x.toNat)) fun y' => some (x_1 - y')) ⊑ Option.bind (if 8#8 ≤ x then none else some (42#8 <<< x.toNat)) fun a => some (a + x_1) := sorry +theorem t4_thm (x : BitVec 1) (x_1 : BitVec 8) : + (Option.bind + (match some x with + | none => none + | some { toFin := ⟨1, ⋯⟩ } => some 214#8 + | some { toFin := ⟨0, ⋯⟩ } => some 44#8) + fun y' => some (x_1 - y')) ⊑ + Option.bind + (match some x with + | none => none + | some { toFin := ⟨1, ⋯⟩ } => some 42#8 + | some { toFin := ⟨0, ⋯⟩ } => some 212#8) + fun a => some (a + x_1) := sorry + +theorem PR52261_thm (x : BitVec 1) : + (Option.bind + (match some x with + | none => none + | some { toFin := ⟨1, ⋯⟩ } => some 2#32 + | some { toFin := ⟨0, ⋯⟩ } => some 4294967294#32) + fun x' => + Option.bind + (match some x with + | none => none + | some { toFin := ⟨1, ⋯⟩ } => some 2#32 + | some { toFin := ⟨0, ⋯⟩ } => some 4294967294#32) + fun a => + (if (-signExtend 33 a).msb = (-signExtend 33 a).getMsbD 1 then some (-a) else none).bind fun y' => + some (x' &&& y')) ⊑ + some 2#32 := sorry + +theorem t7_thm (x : BitVec 1) (x_1 : BitVec 8) : + (Option.bind + (match some x with + | none => none + | some { toFin := ⟨1, ⋯⟩ } => some 0#8 + | some { toFin := ⟨0, ⋯⟩ } => none) + fun y' => some (x_1 - y')) ⊑ + Option.bind + (match some x with + | none => none + | some { toFin := ⟨1, ⋯⟩ } => some 0#8 + | some { toFin := ⟨0, ⋯⟩ } => none) + fun a => some (a + x_1) := sorry +info: ././././SSA/Projects/InstCombine/tests/LLVM/gsubhofhnegatible.lean:181:17: theorem t7_thm : + ∀ (x : BitVec 8) (x_1 : BitVec 1) (x_2 : BitVec 8), + (Option.bind + (match some x_1 with + | none => none + | some { toFin := ⟨1, ⋯⟩ } => some 0#8 + | some { toFin := ⟨0, ⋯⟩ } => if 8#8 ≤ x then none else some (1#8 <<< x.toNat)) + fun y' => some (x_2 - y')) ⊑ + Option.bind + (match some x_1 with + | none => none + | some { toFin := ⟨1, ⋯⟩ } => some 0#8 + | some { toFin := ⟨0, ⋯⟩ } => + if (255#8 <<< x.toNat).sshiftRight x.toNat = 255#8 then none + else if 8#8 ≤ x then none else some (255#8 <<< x.toNat)) + fun a => some (a + x_2) := sorry + theorem neg_of_sub_from_constant_thm (x : BitVec 8) : x - 42#8 = x + 214#8 := sorry theorem sub_from_constant_of_sub_from_constant_thm (x : BitVec 8) : 11#8 - (42#8 - x) = x + 225#8 := sorry diff --git a/SSA/Projects/InstCombine/tests/proofs/gsubhofhnegatiblehinseltpoison.lean b/SSA/Projects/InstCombine/tests/proofs/gsubhofhnegatiblehinseltpoison.lean index 0d9d8ac81..12952daf5 100644 --- a/SSA/Projects/InstCombine/tests/proofs/gsubhofhnegatiblehinseltpoison.lean +++ b/SSA/Projects/InstCombine/tests/proofs/gsubhofhnegatiblehinseltpoison.lean @@ -77,6 +77,78 @@ theorem t2_proof : t2_before ⊑ t2_after := by +def t4_before := [llvm| +{ +^0(%arg192 : i8, %arg193 : i1): + %0 = "llvm.mlir.constant"() <{value = -42 : i8}> : () -> i8 + %1 = "llvm.mlir.constant"() <{value = 44 : i8}> : () -> i8 + %2 = "llvm.select"(%arg193, %0, %1) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i8, i8) -> i8 + %3 = llvm.sub %arg192, %2 : i8 + "llvm.return"(%3) : (i8) -> () +} +] +def t4_after := [llvm| +{ +^0(%arg192 : i8, %arg193 : i1): + %0 = "llvm.mlir.constant"() <{value = 42 : i8}> : () -> i8 + %1 = "llvm.mlir.constant"() <{value = -44 : i8}> : () -> i8 + %2 = "llvm.select"(%arg193, %0, %1) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i8, i8) -> i8 + %3 = llvm.add %2, %arg192 : i8 + "llvm.return"(%3) : (i8) -> () +} +] +theorem t4_proof : t4_before ⊑ t4_after := by + unfold t4_before t4_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN t4 + apply t4_thm + ---END t4 + + + +def t7_before := [llvm| +{ +^0(%arg181 : i8, %arg182 : i1, %arg183 : i8): + %0 = "llvm.mlir.constant"() <{value = 1 : i8}> : () -> i8 + %1 = "llvm.mlir.constant"() <{value = 0 : i8}> : () -> i8 + %2 = llvm.shl %0, %arg183 : i8 + %3 = "llvm.select"(%arg182, %1, %2) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i8, i8) -> i8 + %4 = llvm.sub %arg181, %3 : i8 + "llvm.return"(%4) : (i8) -> () +} +] +def t7_after := [llvm| +{ +^0(%arg181 : i8, %arg182 : i1, %arg183 : i8): + %0 = "llvm.mlir.constant"() <{value = -1 : i8}> : () -> i8 + %1 = "llvm.mlir.constant"() <{value = 0 : i8}> : () -> i8 + %2 = llvm.shl %0, %arg183 overflow : i8 + %3 = "llvm.select"(%arg182, %1, %2) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i8, i8) -> i8 + %4 = llvm.add %3, %arg181 : i8 + "llvm.return"(%4) : (i8) -> () +} +] +theorem t7_proof : t7_before ⊑ t7_after := by + unfold t7_before t7_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN t7 + apply t7_thm + ---END t7 + + + def t9_before := [llvm| { ^0(%arg176 : i8, %arg177 : i8): diff --git a/SSA/Projects/InstCombine/tests/proofs/gsubhofhnegatiblehinseltpoison_proof.lean b/SSA/Projects/InstCombine/tests/proofs/gsubhofhnegatiblehinseltpoison_proof.lean index d5cdd62b3..4c6f8cd09 100644 --- a/SSA/Projects/InstCombine/tests/proofs/gsubhofhnegatiblehinseltpoison_proof.lean +++ b/SSA/Projects/InstCombine/tests/proofs/gsubhofhnegatiblehinseltpoison_proof.lean @@ -10,6 +10,50 @@ theorem t2_thm (x x_1 : BitVec 8) : (Option.bind (if 8#8 ≤ x then none else some (214#8 <<< x.toNat)) fun y' => some (x_1 - y')) ⊑ Option.bind (if 8#8 ≤ x then none else some (42#8 <<< x.toNat)) fun a => some (a + x_1) := sorry +theorem t4_thm (x : BitVec 1) (x_1 : BitVec 8) : + (Option.bind + (match some x with + | none => none + | some { toFin := ⟨1, ⋯⟩ } => some 214#8 + | some { toFin := ⟨0, ⋯⟩ } => some 44#8) + fun y' => some (x_1 - y')) ⊑ + Option.bind + (match some x with + | none => none + | some { toFin := ⟨1, ⋯⟩ } => some 42#8 + | some { toFin := ⟨0, ⋯⟩ } => some 212#8) + fun a => some (a + x_1) := sorry + +theorem t7_thm (x : BitVec 1) (x_1 : BitVec 8) : + (Option.bind + (match some x with + | none => none + | some { toFin := ⟨1, ⋯⟩ } => some 0#8 + | some { toFin := ⟨0, ⋯⟩ } => none) + fun y' => some (x_1 - y')) ⊑ + Option.bind + (match some x with + | none => none + | some { toFin := ⟨1, ⋯⟩ } => some 0#8 + | some { toFin := ⟨0, ⋯⟩ } => none) + fun a => some (a + x_1) := sorry +info: ././././SSA/Projects/InstCombine/tests/LLVM/gsubhofhnegatiblehinseltpoison.lean:147:17: theorem t7_thm : + ∀ (x : BitVec 8) (x_1 : BitVec 1) (x_2 : BitVec 8), + (Option.bind + (match some x_1 with + | none => none + | some { toFin := ⟨1, ⋯⟩ } => some 0#8 + | some { toFin := ⟨0, ⋯⟩ } => if 8#8 ≤ x then none else some (1#8 <<< x.toNat)) + fun y' => some (x_2 - y')) ⊑ + Option.bind + (match some x_1 with + | none => none + | some { toFin := ⟨1, ⋯⟩ } => some 0#8 + | some { toFin := ⟨0, ⋯⟩ } => + if (255#8 <<< x.toNat).sshiftRight x.toNat = 255#8 then none + else if 8#8 ≤ x then none else some (255#8 <<< x.toNat)) + fun a => some (a + x_2) := sorry + theorem neg_of_sub_from_constant_thm (x : BitVec 8) : x - 42#8 = x + 214#8 := sorry theorem sub_from_constant_of_sub_from_constant_thm (x : BitVec 8) : 11#8 - (42#8 - x) = x + 225#8 := sorry diff --git a/SSA/Projects/InstCombine/tests/proofs/gsubtracthfromhonehhandhofhselect.lean b/SSA/Projects/InstCombine/tests/proofs/gsubtracthfromhonehhandhofhselect.lean new file mode 100644 index 000000000..a89e797cd --- /dev/null +++ b/SSA/Projects/InstCombine/tests/proofs/gsubtracthfromhonehhandhofhselect.lean @@ -0,0 +1,78 @@ +import SSA.Projects.InstCombine.tests.proofs.gsubtracthfromhonehhandhofhselect_proof +import SSA.Projects.InstCombine.LLVM.PrettyEDSL +import SSA.Projects.InstCombine.TacticAuto +import SSA.Projects.InstCombine.LLVM.Semantics +open LLVM +open BitVec + +open MLIR AST +open Ctxt (Var) + +set_option linter.deprecated false +set_option linter.unreachableTactic false +set_option linter.unusedTactic false +section gsubtracthfromhonehhandhofhselect_statements + +def t0_sub_from_trueval_before := [llvm| +{ +^0(%arg13 : i1, %arg14 : i8, %arg15 : i8): + %0 = "llvm.select"(%arg13, %arg14, %arg15) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i8, i8) -> i8 + %1 = llvm.sub %arg14, %0 : i8 + "llvm.return"(%1) : (i8) -> () +} +] +def t0_sub_from_trueval_after := [llvm| +{ +^0(%arg13 : i1, %arg14 : i8, %arg15 : i8): + %0 = "llvm.mlir.constant"() <{value = 0 : i8}> : () -> i8 + %1 = llvm.sub %arg14, %arg15 : i8 + %2 = "llvm.select"(%arg13, %0, %1) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i8, i8) -> i8 + "llvm.return"(%2) : (i8) -> () +} +] +theorem t0_sub_from_trueval_proof : t0_sub_from_trueval_before ⊑ t0_sub_from_trueval_after := by + unfold t0_sub_from_trueval_before t0_sub_from_trueval_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN t0_sub_from_trueval + apply t0_sub_from_trueval_thm + ---END t0_sub_from_trueval + + + +def t1_sub_from_falseval_before := [llvm| +{ +^0(%arg10 : i1, %arg11 : i8, %arg12 : i8): + %0 = "llvm.select"(%arg10, %arg11, %arg12) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i8, i8) -> i8 + %1 = llvm.sub %arg12, %0 : i8 + "llvm.return"(%1) : (i8) -> () +} +] +def t1_sub_from_falseval_after := [llvm| +{ +^0(%arg10 : i1, %arg11 : i8, %arg12 : i8): + %0 = "llvm.mlir.constant"() <{value = 0 : i8}> : () -> i8 + %1 = llvm.sub %arg12, %arg11 : i8 + %2 = "llvm.select"(%arg10, %1, %0) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i8, i8) -> i8 + "llvm.return"(%2) : (i8) -> () +} +] +theorem t1_sub_from_falseval_proof : t1_sub_from_falseval_before ⊑ t1_sub_from_falseval_after := by + unfold t1_sub_from_falseval_before t1_sub_from_falseval_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN t1_sub_from_falseval + apply t1_sub_from_falseval_thm + ---END t1_sub_from_falseval + + diff --git a/SSA/Projects/InstCombine/tests/proofs/gsubtracthfromhonehhandhofhselect_proof.lean b/SSA/Projects/InstCombine/tests/proofs/gsubtracthfromhonehhandhofhselect_proof.lean new file mode 100644 index 000000000..ef1acebe6 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/proofs/gsubtracthfromhonehhandhofhselect_proof.lean @@ -0,0 +1,54 @@ + +import SSA.Projects.InstCombine.TacticAuto +import SSA.Projects.InstCombine.LLVM.Semantics +open BitVec + +section gsubtracthfromhonehhandhofhselect_proof +theorem t0_sub_from_trueval_thm (x : BitVec 1) (x_1 : BitVec 8) : + (Option.bind + (match some x with + | none => none + | some { toFin := ⟨1, ⋯⟩ } => some x_1 + | some { toFin := ⟨0, ⋯⟩ } => none) + fun y' => some (x_1 - y')) ⊑ + match some x with + | none => none + | some { toFin := ⟨1, ⋯⟩ } => some 0#8 + | some { toFin := ⟨0, ⋯⟩ } => none := sorry +info: ././././SSA/Projects/InstCombine/tests/LLVM/gsubtracthfromhonehhandhofhselect.lean:43:17: theorem t0_sub_from_trueval_thm : + ∀ (x : BitVec 8) (x_1 : BitVec 1) (x_2 : BitVec 8), + (Option.bind + (match some x_1 with + | none => none + | some { toFin := ⟨1, ⋯⟩ } => some x_2 + | some { toFin := ⟨0, ⋯⟩ } => some x) + fun y' => some (x_2 - y')) ⊑ + match some x_1 with + | none => none + | some { toFin := ⟨1, ⋯⟩ } => some 0#8 + | some { toFin := ⟨0, ⋯⟩ } => some (x_2 - x) := sorry + +theorem t1_sub_from_falseval_thm (x : BitVec 1) (x_1 : BitVec 8) : + (Option.bind + (match some x with + | none => none + | some { toFin := ⟨1, ⋯⟩ } => none + | some { toFin := ⟨0, ⋯⟩ } => some x_1) + fun y' => some (x_1 - y')) ⊑ + match some x with + | none => none + | some { toFin := ⟨1, ⋯⟩ } => none + | some { toFin := ⟨0, ⋯⟩ } => some 0#8 := sorry +info: ././././SSA/Projects/InstCombine/tests/LLVM/gsubtracthfromhonehhandhofhselect.lean:75:17: theorem t1_sub_from_falseval_thm : + ∀ (x : BitVec 8) (x_1 : BitVec 1) (x_2 : BitVec 8), + (Option.bind + (match some x_1 with + | none => none + | some { toFin := ⟨1, ⋯⟩ } => some x + | some { toFin := ⟨0, ⋯⟩ } => some x_2) + fun y' => some (x_2 - y')) ⊑ + match some x_1 with + | none => none + | some { toFin := ⟨1, ⋯⟩ } => some (x_2 - x) + | some { toFin := ⟨0, ⋯⟩ } => some 0#8 := sorry + diff --git a/SSA/Projects/InstCombine/tests/proofs/gsubtracthofhonehhandhofhselect.lean b/SSA/Projects/InstCombine/tests/proofs/gsubtracthofhonehhandhofhselect.lean new file mode 100644 index 000000000..c0c80892a --- /dev/null +++ b/SSA/Projects/InstCombine/tests/proofs/gsubtracthofhonehhandhofhselect.lean @@ -0,0 +1,78 @@ +import SSA.Projects.InstCombine.tests.proofs.gsubtracthofhonehhandhofhselect_proof +import SSA.Projects.InstCombine.LLVM.PrettyEDSL +import SSA.Projects.InstCombine.TacticAuto +import SSA.Projects.InstCombine.LLVM.Semantics +open LLVM +open BitVec + +open MLIR AST +open Ctxt (Var) + +set_option linter.deprecated false +set_option linter.unreachableTactic false +set_option linter.unusedTactic false +section gsubtracthofhonehhandhofhselect_statements + +def t0_sub_of_trueval_before := [llvm| +{ +^0(%arg13 : i1, %arg14 : i8, %arg15 : i8): + %0 = "llvm.select"(%arg13, %arg14, %arg15) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i8, i8) -> i8 + %1 = llvm.sub %0, %arg14 : i8 + "llvm.return"(%1) : (i8) -> () +} +] +def t0_sub_of_trueval_after := [llvm| +{ +^0(%arg13 : i1, %arg14 : i8, %arg15 : i8): + %0 = "llvm.mlir.constant"() <{value = 0 : i8}> : () -> i8 + %1 = llvm.sub %arg15, %arg14 : i8 + %2 = "llvm.select"(%arg13, %0, %1) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i8, i8) -> i8 + "llvm.return"(%2) : (i8) -> () +} +] +theorem t0_sub_of_trueval_proof : t0_sub_of_trueval_before ⊑ t0_sub_of_trueval_after := by + unfold t0_sub_of_trueval_before t0_sub_of_trueval_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN t0_sub_of_trueval + apply t0_sub_of_trueval_thm + ---END t0_sub_of_trueval + + + +def t1_sub_of_falseval_before := [llvm| +{ +^0(%arg10 : i1, %arg11 : i8, %arg12 : i8): + %0 = "llvm.select"(%arg10, %arg11, %arg12) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i8, i8) -> i8 + %1 = llvm.sub %0, %arg12 : i8 + "llvm.return"(%1) : (i8) -> () +} +] +def t1_sub_of_falseval_after := [llvm| +{ +^0(%arg10 : i1, %arg11 : i8, %arg12 : i8): + %0 = "llvm.mlir.constant"() <{value = 0 : i8}> : () -> i8 + %1 = llvm.sub %arg11, %arg12 : i8 + %2 = "llvm.select"(%arg10, %1, %0) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i8, i8) -> i8 + "llvm.return"(%2) : (i8) -> () +} +] +theorem t1_sub_of_falseval_proof : t1_sub_of_falseval_before ⊑ t1_sub_of_falseval_after := by + unfold t1_sub_of_falseval_before t1_sub_of_falseval_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN t1_sub_of_falseval + apply t1_sub_of_falseval_thm + ---END t1_sub_of_falseval + + diff --git a/SSA/Projects/InstCombine/tests/proofs/gsubtracthofhonehhandhofhselect_proof.lean b/SSA/Projects/InstCombine/tests/proofs/gsubtracthofhonehhandhofhselect_proof.lean new file mode 100644 index 000000000..19118f92f --- /dev/null +++ b/SSA/Projects/InstCombine/tests/proofs/gsubtracthofhonehhandhofhselect_proof.lean @@ -0,0 +1,54 @@ + +import SSA.Projects.InstCombine.TacticAuto +import SSA.Projects.InstCombine.LLVM.Semantics +open BitVec + +section gsubtracthofhonehhandhofhselect_proof +theorem t0_sub_of_trueval_thm (x : BitVec 8) (x_1 : BitVec 1) : + (Option.bind + (match some x_1 with + | none => none + | some { toFin := ⟨1, ⋯⟩ } => some x + | some { toFin := ⟨0, ⋯⟩ } => none) + fun a => some (a - x)) ⊑ + match some x_1 with + | none => none + | some { toFin := ⟨1, ⋯⟩ } => some 0#8 + | some { toFin := ⟨0, ⋯⟩ } => none := sorry +info: ././././SSA/Projects/InstCombine/tests/LLVM/gsubtracthofhonehhandhofhselect.lean:43:17: theorem t0_sub_of_trueval_thm : + ∀ (x x_1 : BitVec 8) (x_2 : BitVec 1), + (Option.bind + (match some x_2 with + | none => none + | some { toFin := ⟨1, ⋯⟩ } => some x_1 + | some { toFin := ⟨0, ⋯⟩ } => some x) + fun a => some (a - x_1)) ⊑ + match some x_2 with + | none => none + | some { toFin := ⟨1, ⋯⟩ } => some 0#8 + | some { toFin := ⟨0, ⋯⟩ } => some (x - x_1) := sorry + +theorem t1_sub_of_falseval_thm (x : BitVec 8) (x_1 : BitVec 1) : + (Option.bind + (match some x_1 with + | none => none + | some { toFin := ⟨1, ⋯⟩ } => none + | some { toFin := ⟨0, ⋯⟩ } => some x) + fun a => some (a - x)) ⊑ + match some x_1 with + | none => none + | some { toFin := ⟨1, ⋯⟩ } => none + | some { toFin := ⟨0, ⋯⟩ } => some 0#8 := sorry +info: ././././SSA/Projects/InstCombine/tests/LLVM/gsubtracthofhonehhandhofhselect.lean:75:17: theorem t1_sub_of_falseval_thm : + ∀ (x x_1 : BitVec 8) (x_2 : BitVec 1), + (Option.bind + (match some x_2 with + | none => none + | some { toFin := ⟨1, ⋯⟩ } => some x_1 + | some { toFin := ⟨0, ⋯⟩ } => some x) + fun a => some (a - x)) ⊑ + match some x_2 with + | none => none + | some { toFin := ⟨1, ⋯⟩ } => some (x_1 - x) + | some { toFin := ⟨0, ⋯⟩ } => some 0#8 := sorry + diff --git a/SSA/Projects/InstCombine/tests/proofs/gudiv_select_to_select_shift.lean b/SSA/Projects/InstCombine/tests/proofs/gudiv_select_to_select_shift.lean new file mode 100644 index 000000000..e597efbc8 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/proofs/gudiv_select_to_select_shift.lean @@ -0,0 +1,54 @@ +import SSA.Projects.InstCombine.tests.proofs.gudiv_select_to_select_shift_proof +import SSA.Projects.InstCombine.LLVM.PrettyEDSL +import SSA.Projects.InstCombine.TacticAuto +import SSA.Projects.InstCombine.LLVM.Semantics +open LLVM +open BitVec + +open MLIR AST +open Ctxt (Var) + +set_option linter.deprecated false +set_option linter.unreachableTactic false +set_option linter.unusedTactic false +section gudiv_select_to_select_shift_statements + +def test_before := [llvm| +{ +^0(%arg2 : i64, %arg3 : i1): + %0 = "llvm.mlir.constant"() <{value = 16 : i64}> : () -> i64 + %1 = "llvm.mlir.constant"() <{value = 8 : i64}> : () -> i64 + %2 = "llvm.mlir.constant"() <{value = 0 : i64}> : () -> i64 + %3 = "llvm.select"(%arg3, %0, %1) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i64, i64) -> i64 + %4 = llvm.udiv %arg2, %3 : i64 + %5 = "llvm.select"(%arg3, %1, %2) <{"fastmathFlags" = #llvm.fastmath}> : (i1, i64, i64) -> i64 + %6 = llvm.udiv %arg2, %5 : i64 + %7 = llvm.add %4, %6 : i64 + "llvm.return"(%7) : (i64) -> () +} +] +def test_after := [llvm| +{ +^0(%arg2 : i64, %arg3 : i1): + %0 = "llvm.mlir.constant"() <{value = 4 : i64}> : () -> i64 + %1 = "llvm.mlir.constant"() <{value = 3 : i64}> : () -> i64 + %2 = llvm.lshr %arg2, %0 : i64 + %3 = llvm.lshr %arg2, %1 : i64 + %4 = llvm.add %2, %3 overflow : i64 + "llvm.return"(%4) : (i64) -> () +} +] +theorem test_proof : test_before ⊑ test_after := by + unfold test_before test_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN test + apply test_thm + ---END test + + diff --git a/SSA/Projects/InstCombine/tests/proofs/gudiv_select_to_select_shift_proof.lean b/SSA/Projects/InstCombine/tests/proofs/gudiv_select_to_select_shift_proof.lean new file mode 100644 index 000000000..4cebacb4e --- /dev/null +++ b/SSA/Projects/InstCombine/tests/proofs/gudiv_select_to_select_shift_proof.lean @@ -0,0 +1,25 @@ + +import SSA.Projects.InstCombine.TacticAuto +import SSA.Projects.InstCombine.LLVM.Semantics +open BitVec + +section gudiv_select_to_select_shift_proof +theorem test_thm (x : BitVec 1) (x_1 : BitVec 64) : + (Option.bind + (match some x with + | none => none + | some { toFin := ⟨1, ⋯⟩ } => some 16#64 + | some { toFin := ⟨0, ⋯⟩ } => some 8#64) + fun a => + Option.bind (if a = 0#64 then none else some (x_1 / a)) fun a => + Option.bind + (match some x with + | none => none + | some { toFin := ⟨1, ⋯⟩ } => some 8#64 + | some { toFin := ⟨0, ⋯⟩ } => some 0#64) + fun x => Option.bind (if x = 0#64 then none else some (x_1 / x)) fun y' => some (a + y')) ⊑ + if (x_1 >>> 4 + x_1 >>> 3).msb = true then none + else + if x_1 >>> 4 + x_1 >>> 3 < x_1 >>> 4 ∨ x_1 >>> 4 + x_1 >>> 3 < x_1 >>> 3 then none + else some (x_1 >>> 4 + x_1 >>> 3) := sorry +